From b521061438b8d25b094db0deeb73cb7b5afa43d8 Mon Sep 17 00:00:00 2001 From: Aaron Lu <50029043+aalu1418@users.noreply.github.com> Date: Wed, 5 Jun 2024 12:00:16 -0600 Subject: [PATCH 01/40] add blockhistory estimator config (#13348) --- core/config/docs/chains-solana.toml | 2 ++ core/scripts/go.mod | 2 +- core/scripts/go.sum | 4 ++-- core/services/chainlink/config_test.go | 2 ++ core/services/chainlink/testdata/config-full.toml | 1 + .../chainlink/testdata/config-multi-chain-effective.toml | 2 ++ core/web/resolver/testdata/config-full.toml | 1 + .../resolver/testdata/config-multi-chain-effective.toml | 2 ++ core/web/solana_chains_controller_test.go | 1 + docs/CONFIG.md | 7 +++++++ go.mod | 2 +- go.sum | 4 ++-- integration-tests/go.mod | 2 +- integration-tests/go.sum | 4 ++-- integration-tests/load/go.mod | 2 +- integration-tests/load/go.sum | 4 ++-- 16 files changed, 30 insertions(+), 12 deletions(-) diff --git a/core/config/docs/chains-solana.toml b/core/config/docs/chains-solana.toml index d0aae876b43..9376445061a 100644 --- a/core/config/docs/chains-solana.toml +++ b/core/config/docs/chains-solana.toml @@ -34,6 +34,8 @@ ComputeUnitPriceMin = 0 # Default ComputeUnitPriceDefault = 0 # Default # FeeBumpPeriod is the amount of time before a tx is retried with a fee bump FeeBumpPeriod = '3s' # Default +# BlockHistoryPollPeriod is the rate to poll for blocks in the block history fee estimator +BlockHistoryPollPeriod = '5s' # Default [[Solana.Nodes]] # Name is a unique (per-chain) identifier for this node. diff --git a/core/scripts/go.mod b/core/scripts/go.mod index c32e2a9f128..6efa07574bf 100644 --- a/core/scripts/go.mod +++ b/core/scripts/go.mod @@ -259,7 +259,7 @@ require ( github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20240524214833-c362c2ebbd2d // indirect github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240220203239-09be0ea34540 // indirect github.com/smartcontractkit/chainlink-feeds v0.0.0-20240522213638-159fb2d99917 // indirect - github.com/smartcontractkit/chainlink-solana v1.0.3-0.20240603183542-58ab0f61506b // indirect + github.com/smartcontractkit/chainlink-solana v1.0.3-0.20240605170242-555ff582f36a // indirect github.com/smartcontractkit/chainlink-starknet/relayer v0.0.1-beta-test.0.20240531021326-99118e47f696 // indirect github.com/smartcontractkit/tdh2/go/ocr2/decryptionplugin v0.0.0-20230906073235-9e478e5e19f1 // indirect github.com/smartcontractkit/tdh2/go/tdh2 v0.0.0-20230906073235-9e478e5e19f1 // indirect diff --git a/core/scripts/go.sum b/core/scripts/go.sum index 06ad66caeaf..986fa9e7f40 100644 --- a/core/scripts/go.sum +++ b/core/scripts/go.sum @@ -1193,8 +1193,8 @@ github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240220203239-09be0ea github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240220203239-09be0ea34540/go.mod h1:sjAmX8K2kbQhvDarZE1ZZgDgmHJ50s0BBc/66vKY2ek= github.com/smartcontractkit/chainlink-feeds v0.0.0-20240522213638-159fb2d99917 h1:MD80ZRCTvxxJ8PBmhtrKoTnky8cVNYrCrIBLVRbrOM0= github.com/smartcontractkit/chainlink-feeds v0.0.0-20240522213638-159fb2d99917/go.mod h1:jwVxhctE6BgLOSSsVq9wbREpZ8Ev34H+UBxeUhESZRs= -github.com/smartcontractkit/chainlink-solana v1.0.3-0.20240603183542-58ab0f61506b h1:pJQ3K0kUdOUICIOZBLAN+MaEfloG2t6Nc1+ve057pYc= -github.com/smartcontractkit/chainlink-solana v1.0.3-0.20240603183542-58ab0f61506b/go.mod h1:QqcZSwLgEIn7YraAIRmomnBMAuVFephiHrIWVlkWbFI= +github.com/smartcontractkit/chainlink-solana v1.0.3-0.20240605170242-555ff582f36a h1:/QIQciKjhZy+iBB74WG4pP88O2FwS1KZtSXO5COTTgI= +github.com/smartcontractkit/chainlink-solana v1.0.3-0.20240605170242-555ff582f36a/go.mod h1:QqcZSwLgEIn7YraAIRmomnBMAuVFephiHrIWVlkWbFI= github.com/smartcontractkit/chainlink-starknet/relayer v0.0.1-beta-test.0.20240531021326-99118e47f696 h1:h1E87+z+JcUEfvbJVF56SnZA/YUFE5ewUE61MaR/Ewg= github.com/smartcontractkit/chainlink-starknet/relayer v0.0.1-beta-test.0.20240531021326-99118e47f696/go.mod h1:OiWUTrrpSLLTMh7FINWjEh6mmDJCVPaC4yEsDCVaWdU= github.com/smartcontractkit/chainlink-vrf v0.0.0-20240222010609-cd67d123c772 h1:LQmRsrzzaYYN3wEU1l5tWiccznhvbyGnu2N+wHSXZAo= diff --git a/core/services/chainlink/config_test.go b/core/services/chainlink/config_test.go index c2b2e288039..20c2dd8d57e 100644 --- a/core/services/chainlink/config_test.go +++ b/core/services/chainlink/config_test.go @@ -657,6 +657,7 @@ func TestConfig_Marshal(t *testing.T) { ComputeUnitPriceMin: ptr[uint64](10), ComputeUnitPriceDefault: ptr[uint64](100), FeeBumpPeriod: commoncfg.MustNewDuration(time.Minute), + BlockHistoryPollPeriod: commoncfg.MustNewDuration(time.Minute), }, Nodes: []*solcfg.Node{ {Name: ptr("primary"), URL: commoncfg.MustParseURL("http://solana.web")}, @@ -1143,6 +1144,7 @@ ComputeUnitPriceMax = 1000 ComputeUnitPriceMin = 10 ComputeUnitPriceDefault = 100 FeeBumpPeriod = '1m0s' +BlockHistoryPollPeriod = '1m0s' [[Solana.Nodes]] Name = 'primary' diff --git a/core/services/chainlink/testdata/config-full.toml b/core/services/chainlink/testdata/config-full.toml index 4e61353543e..103f068c8e8 100644 --- a/core/services/chainlink/testdata/config-full.toml +++ b/core/services/chainlink/testdata/config-full.toml @@ -441,6 +441,7 @@ ComputeUnitPriceMax = 1000 ComputeUnitPriceMin = 10 ComputeUnitPriceDefault = 100 FeeBumpPeriod = '1m0s' +BlockHistoryPollPeriod = '1m0s' [[Solana.Nodes]] Name = 'primary' diff --git a/core/services/chainlink/testdata/config-multi-chain-effective.toml b/core/services/chainlink/testdata/config-multi-chain-effective.toml index 9cf4d4a5d43..05dfe21a5d8 100644 --- a/core/services/chainlink/testdata/config-multi-chain-effective.toml +++ b/core/services/chainlink/testdata/config-multi-chain-effective.toml @@ -579,6 +579,7 @@ ComputeUnitPriceMax = 1000 ComputeUnitPriceMin = 0 ComputeUnitPriceDefault = 0 FeeBumpPeriod = '3s' +BlockHistoryPollPeriod = '5s' [[Solana.Nodes]] Name = 'primary' @@ -601,6 +602,7 @@ ComputeUnitPriceMax = 1000 ComputeUnitPriceMin = 0 ComputeUnitPriceDefault = 0 FeeBumpPeriod = '3s' +BlockHistoryPollPeriod = '5s' [[Solana.Nodes]] Name = 'secondary' diff --git a/core/web/resolver/testdata/config-full.toml b/core/web/resolver/testdata/config-full.toml index ea8c16d8741..7e1b2291106 100644 --- a/core/web/resolver/testdata/config-full.toml +++ b/core/web/resolver/testdata/config-full.toml @@ -440,6 +440,7 @@ ComputeUnitPriceMax = 1000000 ComputeUnitPriceMin = 0 ComputeUnitPriceDefault = 0 FeeBumpPeriod = '3s' +BlockHistoryPollPeriod = '5s' [[Solana.Nodes]] Name = 'primary' diff --git a/core/web/resolver/testdata/config-multi-chain-effective.toml b/core/web/resolver/testdata/config-multi-chain-effective.toml index 9cf4d4a5d43..05dfe21a5d8 100644 --- a/core/web/resolver/testdata/config-multi-chain-effective.toml +++ b/core/web/resolver/testdata/config-multi-chain-effective.toml @@ -579,6 +579,7 @@ ComputeUnitPriceMax = 1000 ComputeUnitPriceMin = 0 ComputeUnitPriceDefault = 0 FeeBumpPeriod = '3s' +BlockHistoryPollPeriod = '5s' [[Solana.Nodes]] Name = 'primary' @@ -601,6 +602,7 @@ ComputeUnitPriceMax = 1000 ComputeUnitPriceMin = 0 ComputeUnitPriceDefault = 0 FeeBumpPeriod = '3s' +BlockHistoryPollPeriod = '5s' [[Solana.Nodes]] Name = 'secondary' diff --git a/core/web/solana_chains_controller_test.go b/core/web/solana_chains_controller_test.go index a2ac904b783..048a3790b1a 100644 --- a/core/web/solana_chains_controller_test.go +++ b/core/web/solana_chains_controller_test.go @@ -57,6 +57,7 @@ ComputeUnitPriceMax = 1000 ComputeUnitPriceMin = 0 ComputeUnitPriceDefault = 0 FeeBumpPeriod = '3s' +BlockHistoryPollPeriod = '5s' Nodes = [] `, } diff --git a/docs/CONFIG.md b/docs/CONFIG.md index 6c94b1d1f62..07a26246d4e 100644 --- a/docs/CONFIG.md +++ b/docs/CONFIG.md @@ -8157,6 +8157,7 @@ ComputeUnitPriceMax = 1000 # Default ComputeUnitPriceMin = 0 # Default ComputeUnitPriceDefault = 0 # Default FeeBumpPeriod = '3s' # Default +BlockHistoryPollPeriod = '5s' # Default ``` @@ -8263,6 +8264,12 @@ FeeBumpPeriod = '3s' # Default ``` FeeBumpPeriod is the amount of time before a tx is retried with a fee bump +### BlockHistoryPollPeriod +```toml +BlockHistoryPollPeriod = '5s' # Default +``` +BlockHistoryPollPeriod is the rate to poll for blocks in the block history fee estimator + ## Solana.Nodes ```toml [[Solana.Nodes]] diff --git a/go.mod b/go.mod index 309ecf16f01..a85094b9952 100644 --- a/go.mod +++ b/go.mod @@ -76,7 +76,7 @@ require ( github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20240524214833-c362c2ebbd2d github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240220203239-09be0ea34540 github.com/smartcontractkit/chainlink-feeds v0.0.0-20240522213638-159fb2d99917 - github.com/smartcontractkit/chainlink-solana v1.0.3-0.20240603183542-58ab0f61506b + github.com/smartcontractkit/chainlink-solana v1.0.3-0.20240605170242-555ff582f36a github.com/smartcontractkit/chainlink-starknet/relayer v0.0.1-beta-test.0.20240531021326-99118e47f696 github.com/smartcontractkit/chainlink-vrf v0.0.0-20231120191722-fef03814f868 github.com/smartcontractkit/libocr v0.0.0-20240419185742-fd3cab206b2c diff --git a/go.sum b/go.sum index f1b2762c452..4ea255f8270 100644 --- a/go.sum +++ b/go.sum @@ -1179,8 +1179,8 @@ github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240220203239-09be0ea github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240220203239-09be0ea34540/go.mod h1:sjAmX8K2kbQhvDarZE1ZZgDgmHJ50s0BBc/66vKY2ek= github.com/smartcontractkit/chainlink-feeds v0.0.0-20240522213638-159fb2d99917 h1:MD80ZRCTvxxJ8PBmhtrKoTnky8cVNYrCrIBLVRbrOM0= github.com/smartcontractkit/chainlink-feeds v0.0.0-20240522213638-159fb2d99917/go.mod h1:jwVxhctE6BgLOSSsVq9wbREpZ8Ev34H+UBxeUhESZRs= -github.com/smartcontractkit/chainlink-solana v1.0.3-0.20240603183542-58ab0f61506b h1:pJQ3K0kUdOUICIOZBLAN+MaEfloG2t6Nc1+ve057pYc= -github.com/smartcontractkit/chainlink-solana v1.0.3-0.20240603183542-58ab0f61506b/go.mod h1:QqcZSwLgEIn7YraAIRmomnBMAuVFephiHrIWVlkWbFI= +github.com/smartcontractkit/chainlink-solana v1.0.3-0.20240605170242-555ff582f36a h1:/QIQciKjhZy+iBB74WG4pP88O2FwS1KZtSXO5COTTgI= +github.com/smartcontractkit/chainlink-solana v1.0.3-0.20240605170242-555ff582f36a/go.mod h1:QqcZSwLgEIn7YraAIRmomnBMAuVFephiHrIWVlkWbFI= github.com/smartcontractkit/chainlink-starknet/relayer v0.0.1-beta-test.0.20240531021326-99118e47f696 h1:h1E87+z+JcUEfvbJVF56SnZA/YUFE5ewUE61MaR/Ewg= github.com/smartcontractkit/chainlink-starknet/relayer v0.0.1-beta-test.0.20240531021326-99118e47f696/go.mod h1:OiWUTrrpSLLTMh7FINWjEh6mmDJCVPaC4yEsDCVaWdU= github.com/smartcontractkit/chainlink-vrf v0.0.0-20231120191722-fef03814f868 h1:FFdvEzlYwcuVHkdZ8YnZR/XomeMGbz5E2F2HZI3I3w8= diff --git a/integration-tests/go.mod b/integration-tests/go.mod index 968c6f04d02..c272b0a615d 100644 --- a/integration-tests/go.mod +++ b/integration-tests/go.mod @@ -378,7 +378,7 @@ require ( github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20240524214833-c362c2ebbd2d // indirect github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240220203239-09be0ea34540 // indirect github.com/smartcontractkit/chainlink-feeds v0.0.0-20240522213638-159fb2d99917 // indirect - github.com/smartcontractkit/chainlink-solana v1.0.3-0.20240603183542-58ab0f61506b // indirect + github.com/smartcontractkit/chainlink-solana v1.0.3-0.20240605170242-555ff582f36a // indirect github.com/smartcontractkit/chainlink-starknet/relayer v0.0.1-beta-test.0.20240531021326-99118e47f696 // indirect github.com/smartcontractkit/chainlink-testing-framework/grafana v0.0.0-20240328204215-ac91f55f1449 // indirect github.com/smartcontractkit/tdh2/go/ocr2/decryptionplugin v0.0.0-20230906073235-9e478e5e19f1 // indirect diff --git a/integration-tests/go.sum b/integration-tests/go.sum index e3a5c0a8e80..1ec43c7be45 100644 --- a/integration-tests/go.sum +++ b/integration-tests/go.sum @@ -1520,8 +1520,8 @@ github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240220203239-09be0ea github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240220203239-09be0ea34540/go.mod h1:sjAmX8K2kbQhvDarZE1ZZgDgmHJ50s0BBc/66vKY2ek= github.com/smartcontractkit/chainlink-feeds v0.0.0-20240522213638-159fb2d99917 h1:MD80ZRCTvxxJ8PBmhtrKoTnky8cVNYrCrIBLVRbrOM0= github.com/smartcontractkit/chainlink-feeds v0.0.0-20240522213638-159fb2d99917/go.mod h1:jwVxhctE6BgLOSSsVq9wbREpZ8Ev34H+UBxeUhESZRs= -github.com/smartcontractkit/chainlink-solana v1.0.3-0.20240603183542-58ab0f61506b h1:pJQ3K0kUdOUICIOZBLAN+MaEfloG2t6Nc1+ve057pYc= -github.com/smartcontractkit/chainlink-solana v1.0.3-0.20240603183542-58ab0f61506b/go.mod h1:QqcZSwLgEIn7YraAIRmomnBMAuVFephiHrIWVlkWbFI= +github.com/smartcontractkit/chainlink-solana v1.0.3-0.20240605170242-555ff582f36a h1:/QIQciKjhZy+iBB74WG4pP88O2FwS1KZtSXO5COTTgI= +github.com/smartcontractkit/chainlink-solana v1.0.3-0.20240605170242-555ff582f36a/go.mod h1:QqcZSwLgEIn7YraAIRmomnBMAuVFephiHrIWVlkWbFI= github.com/smartcontractkit/chainlink-starknet/relayer v0.0.1-beta-test.0.20240531021326-99118e47f696 h1:h1E87+z+JcUEfvbJVF56SnZA/YUFE5ewUE61MaR/Ewg= github.com/smartcontractkit/chainlink-starknet/relayer v0.0.1-beta-test.0.20240531021326-99118e47f696/go.mod h1:OiWUTrrpSLLTMh7FINWjEh6mmDJCVPaC4yEsDCVaWdU= github.com/smartcontractkit/chainlink-testing-framework v1.28.17 h1:zezoeiG3GUGW1T2+genS/HD1BvRJwC3rqFnFTFNB9aY= diff --git a/integration-tests/load/go.mod b/integration-tests/load/go.mod index f12267228f3..81d7167fc54 100644 --- a/integration-tests/load/go.mod +++ b/integration-tests/load/go.mod @@ -367,7 +367,7 @@ require ( github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20240524214833-c362c2ebbd2d // indirect github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240220203239-09be0ea34540 // indirect github.com/smartcontractkit/chainlink-feeds v0.0.0-20240522213638-159fb2d99917 // indirect - github.com/smartcontractkit/chainlink-solana v1.0.3-0.20240603183542-58ab0f61506b // indirect + github.com/smartcontractkit/chainlink-solana v1.0.3-0.20240605170242-555ff582f36a // indirect github.com/smartcontractkit/chainlink-starknet/relayer v0.0.1-beta-test.0.20240531021326-99118e47f696 // indirect github.com/smartcontractkit/chainlink-testing-framework/grafana v0.0.0-20240328204215-ac91f55f1449 // indirect github.com/smartcontractkit/chainlink-vrf v0.0.0-20231120191722-fef03814f868 // indirect diff --git a/integration-tests/load/go.sum b/integration-tests/load/go.sum index 4dc25c5b838..5292cba860f 100644 --- a/integration-tests/load/go.sum +++ b/integration-tests/load/go.sum @@ -1510,8 +1510,8 @@ github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240220203239-09be0ea github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240220203239-09be0ea34540/go.mod h1:sjAmX8K2kbQhvDarZE1ZZgDgmHJ50s0BBc/66vKY2ek= github.com/smartcontractkit/chainlink-feeds v0.0.0-20240522213638-159fb2d99917 h1:MD80ZRCTvxxJ8PBmhtrKoTnky8cVNYrCrIBLVRbrOM0= github.com/smartcontractkit/chainlink-feeds v0.0.0-20240522213638-159fb2d99917/go.mod h1:jwVxhctE6BgLOSSsVq9wbREpZ8Ev34H+UBxeUhESZRs= -github.com/smartcontractkit/chainlink-solana v1.0.3-0.20240603183542-58ab0f61506b h1:pJQ3K0kUdOUICIOZBLAN+MaEfloG2t6Nc1+ve057pYc= -github.com/smartcontractkit/chainlink-solana v1.0.3-0.20240603183542-58ab0f61506b/go.mod h1:QqcZSwLgEIn7YraAIRmomnBMAuVFephiHrIWVlkWbFI= +github.com/smartcontractkit/chainlink-solana v1.0.3-0.20240605170242-555ff582f36a h1:/QIQciKjhZy+iBB74WG4pP88O2FwS1KZtSXO5COTTgI= +github.com/smartcontractkit/chainlink-solana v1.0.3-0.20240605170242-555ff582f36a/go.mod h1:QqcZSwLgEIn7YraAIRmomnBMAuVFephiHrIWVlkWbFI= github.com/smartcontractkit/chainlink-starknet/relayer v0.0.1-beta-test.0.20240531021326-99118e47f696 h1:h1E87+z+JcUEfvbJVF56SnZA/YUFE5ewUE61MaR/Ewg= github.com/smartcontractkit/chainlink-starknet/relayer v0.0.1-beta-test.0.20240531021326-99118e47f696/go.mod h1:OiWUTrrpSLLTMh7FINWjEh6mmDJCVPaC4yEsDCVaWdU= github.com/smartcontractkit/chainlink-testing-framework v1.28.17 h1:zezoeiG3GUGW1T2+genS/HD1BvRJwC3rqFnFTFNB9aY= From 5293b70c8cd56fe5190fd3739ff5b58f58f22d20 Mon Sep 17 00:00:00 2001 From: frank zhu Date: Wed, 5 Jun 2024 12:47:15 -0700 Subject: [PATCH 02/40] fix: slack-notify conditional for ci-core for race tests failures (#13432) --- .github/workflows/ci-core.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci-core.yml b/.github/workflows/ci-core.yml index ee44c1bc46f..9f6fbd8fae4 100644 --- a/.github/workflows/ci-core.yml +++ b/.github/workflows/ci-core.yml @@ -170,7 +170,7 @@ jobs: env: OUTPUT_FILE: ./output.txt USE_TEE: false - CL_DATABASE_URL: ${{ env.DB_URL }} + CL_DATABASE_URL: ${{ env.DB_URL }} run: ./tools/bin/${{ matrix.type.cmd }} ./... - name: Print Filtered Test Results if: ${{ failure() && matrix.type.cmd == 'go_core_tests' && needs.filter.outputs.changes == 'true' }} @@ -187,6 +187,8 @@ jobs: else echo "post_to_slack=false" >> $GITHUB_OUTPUT fi + echo "github.event_name: ${{ github.event_name }}" + echo "github.ref: ${{ github.ref }}" - name: Print postgres logs if: ${{ always() && needs.filter.outputs.changes == 'true' }} run: docker compose logs postgres | tee ../../../postgres_logs.txt @@ -203,7 +205,7 @@ jobs: ./coverage.txt ./postgres_logs.txt - name: Notify Slack - if: ${{ failure() && steps.print-races.outputs.post_to_slack == 'true' && matrix.type.cmd == 'go_core_race_tests' && (github.event_name == 'merge_group' || github.event.branch == 'develop') && needs.filter.outputs.changes == 'true' }} + if: ${{ failure() && steps.print-races.outputs.post_to_slack == 'true' && matrix.type.cmd == 'go_core_race_tests' && (github.event_name == 'merge_group' || github.ref == 'refs/heads/develop') && needs.filter.outputs.changes == 'true' }} uses: slackapi/slack-github-action@6c661ce58804a1a20f6dc5fbee7f0381b469e001 # v1.25.0 env: SLACK_BOT_TOKEN: ${{ secrets.QA_SLACK_API_KEY }} From 58420d6a67a47db16e65e9ca859633df5d6c9a81 Mon Sep 17 00:00:00 2001 From: Jordan Krage Date: Wed, 5 Jun 2024 15:05:34 -0500 Subject: [PATCH 03/40] bump chainlink-common for SLOW QUERY log updates and custom thresholds (#13358) --- core/scripts/go.mod | 2 +- core/scripts/go.sum | 4 ++-- core/services/pipeline/runner.go | 15 +++++++++++++-- go.mod | 2 +- go.sum | 4 ++-- integration-tests/go.mod | 2 +- integration-tests/go.sum | 4 ++-- integration-tests/load/go.mod | 2 +- integration-tests/load/go.sum | 4 ++-- 9 files changed, 25 insertions(+), 14 deletions(-) diff --git a/core/scripts/go.mod b/core/scripts/go.mod index 6efa07574bf..f8faa82fabe 100644 --- a/core/scripts/go.mod +++ b/core/scripts/go.mod @@ -21,7 +21,7 @@ require ( github.com/prometheus/client_golang v1.17.0 github.com/shopspring/decimal v1.3.1 github.com/smartcontractkit/chainlink-automation v1.0.3 - github.com/smartcontractkit/chainlink-common v0.1.7-0.20240605021851-ddaad4797fe1 + github.com/smartcontractkit/chainlink-common v0.1.7-0.20240605181819-316b5eb82110 github.com/smartcontractkit/chainlink-vrf v0.0.0-20240222010609-cd67d123c772 github.com/smartcontractkit/chainlink/v2 v2.0.0-00010101000000-000000000000 github.com/smartcontractkit/libocr v0.0.0-20240419185742-fd3cab206b2c diff --git a/core/scripts/go.sum b/core/scripts/go.sum index 986fa9e7f40..fd3bb134503 100644 --- a/core/scripts/go.sum +++ b/core/scripts/go.sum @@ -1185,8 +1185,8 @@ github.com/smartcontractkit/chain-selectors v1.0.10 h1:t9kJeE6B6G+hKD0GYR4kGJSCq github.com/smartcontractkit/chain-selectors v1.0.10/go.mod h1:d4Hi+E1zqjy9HqMkjBE5q1vcG9VGgxf5VxiRHfzi2kE= github.com/smartcontractkit/chainlink-automation v1.0.3 h1:h/ijT0NiyV06VxYVgcNfsE3+8OEzT3Q0Z9au0z1BPWs= github.com/smartcontractkit/chainlink-automation v1.0.3/go.mod h1:RjboV0Qd7YP+To+OrzHGXaxUxoSONveCoAK2TQ1INLU= -github.com/smartcontractkit/chainlink-common v0.1.7-0.20240605021851-ddaad4797fe1 h1:3Rl4N7u9RRYmXY96ZLoaHVGONXZ8lL4Kc027dFjD46g= -github.com/smartcontractkit/chainlink-common v0.1.7-0.20240605021851-ddaad4797fe1/go.mod h1:DUZccDEW98n+J1mhdWGO7wr/Njad9p9Fzks839JN7Rs= +github.com/smartcontractkit/chainlink-common v0.1.7-0.20240605181819-316b5eb82110 h1:skCp4kAmd0H+/sqiCzpwXKxkSWpf1NsdIUuN73nuz/Y= +github.com/smartcontractkit/chainlink-common v0.1.7-0.20240605181819-316b5eb82110/go.mod h1:DUZccDEW98n+J1mhdWGO7wr/Njad9p9Fzks839JN7Rs= github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20240524214833-c362c2ebbd2d h1:5tgMC5Gi2UAOKZ+m28W8ubjLeR0pQCAcrz6eQ0rW510= github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20240524214833-c362c2ebbd2d/go.mod h1:0UNuO3nDt9MFsZPaHJBEUolxVkN0iC69j1ccDp95e8k= github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240220203239-09be0ea34540 h1:xFSv8561jsLtF6gYZr/zW2z5qUUAkcFkApin2mnbYTo= diff --git a/core/services/pipeline/runner.go b/core/services/pipeline/runner.go index 708a2b07636..e816e96dad8 100644 --- a/core/services/pipeline/runner.go +++ b/core/services/pipeline/runner.go @@ -219,8 +219,18 @@ func (r *runner) OnRunFinished(fn func(*Run)) { r.runFinished = fn } -// github.com/smartcontractkit/libocr/offchainreporting2plus/internal/protocol.ReportingPluginTimeoutWarningGracePeriod -var overtime = 100 * time.Millisecond +var ( + // github.com/smartcontractkit/libocr/offchainreporting2plus/internal/protocol.ReportingPluginTimeoutWarningGracePeriod + overtime = 100 * time.Millisecond + overtimeThresholds = sqlutil.LogThresholds{ + Warn: func(timeout time.Duration) time.Duration { + return timeout - (timeout / 5) // 80% + }, + Error: func(timeout time.Duration) time.Duration { + return timeout - (timeout / 10) // 90% + }, + } +) func init() { // undocumented escape hatch @@ -235,6 +245,7 @@ func init() { // overtimeContext returns a modified context for overtime work, since tasks are expected to keep running and return // results, even after context cancellation. func overtimeContext(ctx context.Context) (context.Context, context.CancelFunc) { + ctx = overtimeThresholds.ContextWithValue(ctx) if d, ok := ctx.Deadline(); ok { // extend deadline return context.WithDeadline(context.WithoutCancel(ctx), d.Add(overtime)) diff --git a/go.mod b/go.mod index a85094b9952..9f0c41b0b95 100644 --- a/go.mod +++ b/go.mod @@ -72,7 +72,7 @@ require ( github.com/shopspring/decimal v1.3.1 github.com/smartcontractkit/chain-selectors v1.0.10 github.com/smartcontractkit/chainlink-automation v1.0.3 - github.com/smartcontractkit/chainlink-common v0.1.7-0.20240605021851-ddaad4797fe1 + github.com/smartcontractkit/chainlink-common v0.1.7-0.20240605181819-316b5eb82110 github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20240524214833-c362c2ebbd2d github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240220203239-09be0ea34540 github.com/smartcontractkit/chainlink-feeds v0.0.0-20240522213638-159fb2d99917 diff --git a/go.sum b/go.sum index 4ea255f8270..e69d1d87f3b 100644 --- a/go.sum +++ b/go.sum @@ -1171,8 +1171,8 @@ github.com/smartcontractkit/chain-selectors v1.0.10 h1:t9kJeE6B6G+hKD0GYR4kGJSCq github.com/smartcontractkit/chain-selectors v1.0.10/go.mod h1:d4Hi+E1zqjy9HqMkjBE5q1vcG9VGgxf5VxiRHfzi2kE= github.com/smartcontractkit/chainlink-automation v1.0.3 h1:h/ijT0NiyV06VxYVgcNfsE3+8OEzT3Q0Z9au0z1BPWs= github.com/smartcontractkit/chainlink-automation v1.0.3/go.mod h1:RjboV0Qd7YP+To+OrzHGXaxUxoSONveCoAK2TQ1INLU= -github.com/smartcontractkit/chainlink-common v0.1.7-0.20240605021851-ddaad4797fe1 h1:3Rl4N7u9RRYmXY96ZLoaHVGONXZ8lL4Kc027dFjD46g= -github.com/smartcontractkit/chainlink-common v0.1.7-0.20240605021851-ddaad4797fe1/go.mod h1:DUZccDEW98n+J1mhdWGO7wr/Njad9p9Fzks839JN7Rs= +github.com/smartcontractkit/chainlink-common v0.1.7-0.20240605181819-316b5eb82110 h1:skCp4kAmd0H+/sqiCzpwXKxkSWpf1NsdIUuN73nuz/Y= +github.com/smartcontractkit/chainlink-common v0.1.7-0.20240605181819-316b5eb82110/go.mod h1:DUZccDEW98n+J1mhdWGO7wr/Njad9p9Fzks839JN7Rs= github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20240524214833-c362c2ebbd2d h1:5tgMC5Gi2UAOKZ+m28W8ubjLeR0pQCAcrz6eQ0rW510= github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20240524214833-c362c2ebbd2d/go.mod h1:0UNuO3nDt9MFsZPaHJBEUolxVkN0iC69j1ccDp95e8k= github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240220203239-09be0ea34540 h1:xFSv8561jsLtF6gYZr/zW2z5qUUAkcFkApin2mnbYTo= diff --git a/integration-tests/go.mod b/integration-tests/go.mod index c272b0a615d..3906c252265 100644 --- a/integration-tests/go.mod +++ b/integration-tests/go.mod @@ -27,7 +27,7 @@ require ( github.com/shopspring/decimal v1.3.1 github.com/slack-go/slack v0.12.2 github.com/smartcontractkit/chainlink-automation v1.0.3 - github.com/smartcontractkit/chainlink-common v0.1.7-0.20240605021851-ddaad4797fe1 + github.com/smartcontractkit/chainlink-common v0.1.7-0.20240605181819-316b5eb82110 github.com/smartcontractkit/chainlink-testing-framework v1.28.17 github.com/smartcontractkit/chainlink-vrf v0.0.0-20231120191722-fef03814f868 github.com/smartcontractkit/chainlink/v2 v2.0.0-00010101000000-000000000000 diff --git a/integration-tests/go.sum b/integration-tests/go.sum index 1ec43c7be45..16994b03560 100644 --- a/integration-tests/go.sum +++ b/integration-tests/go.sum @@ -1512,8 +1512,8 @@ github.com/smartcontractkit/chain-selectors v1.0.10 h1:t9kJeE6B6G+hKD0GYR4kGJSCq github.com/smartcontractkit/chain-selectors v1.0.10/go.mod h1:d4Hi+E1zqjy9HqMkjBE5q1vcG9VGgxf5VxiRHfzi2kE= github.com/smartcontractkit/chainlink-automation v1.0.3 h1:h/ijT0NiyV06VxYVgcNfsE3+8OEzT3Q0Z9au0z1BPWs= github.com/smartcontractkit/chainlink-automation v1.0.3/go.mod h1:RjboV0Qd7YP+To+OrzHGXaxUxoSONveCoAK2TQ1INLU= -github.com/smartcontractkit/chainlink-common v0.1.7-0.20240605021851-ddaad4797fe1 h1:3Rl4N7u9RRYmXY96ZLoaHVGONXZ8lL4Kc027dFjD46g= -github.com/smartcontractkit/chainlink-common v0.1.7-0.20240605021851-ddaad4797fe1/go.mod h1:DUZccDEW98n+J1mhdWGO7wr/Njad9p9Fzks839JN7Rs= +github.com/smartcontractkit/chainlink-common v0.1.7-0.20240605181819-316b5eb82110 h1:skCp4kAmd0H+/sqiCzpwXKxkSWpf1NsdIUuN73nuz/Y= +github.com/smartcontractkit/chainlink-common v0.1.7-0.20240605181819-316b5eb82110/go.mod h1:DUZccDEW98n+J1mhdWGO7wr/Njad9p9Fzks839JN7Rs= github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20240524214833-c362c2ebbd2d h1:5tgMC5Gi2UAOKZ+m28W8ubjLeR0pQCAcrz6eQ0rW510= github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20240524214833-c362c2ebbd2d/go.mod h1:0UNuO3nDt9MFsZPaHJBEUolxVkN0iC69j1ccDp95e8k= github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240220203239-09be0ea34540 h1:xFSv8561jsLtF6gYZr/zW2z5qUUAkcFkApin2mnbYTo= diff --git a/integration-tests/load/go.mod b/integration-tests/load/go.mod index 81d7167fc54..833ac48d453 100644 --- a/integration-tests/load/go.mod +++ b/integration-tests/load/go.mod @@ -16,7 +16,7 @@ require ( github.com/rs/zerolog v1.30.0 github.com/slack-go/slack v0.12.2 github.com/smartcontractkit/chainlink-automation v1.0.3 - github.com/smartcontractkit/chainlink-common v0.1.7-0.20240605021851-ddaad4797fe1 + github.com/smartcontractkit/chainlink-common v0.1.7-0.20240605181819-316b5eb82110 github.com/smartcontractkit/chainlink-testing-framework v1.28.17 github.com/smartcontractkit/chainlink/integration-tests v0.0.0-20240214231432-4ad5eb95178c github.com/smartcontractkit/chainlink/v2 v2.9.0-beta0.0.20240216210048-da02459ddad8 diff --git a/integration-tests/load/go.sum b/integration-tests/load/go.sum index 5292cba860f..15c58ac5f41 100644 --- a/integration-tests/load/go.sum +++ b/integration-tests/load/go.sum @@ -1502,8 +1502,8 @@ github.com/smartcontractkit/chain-selectors v1.0.10 h1:t9kJeE6B6G+hKD0GYR4kGJSCq github.com/smartcontractkit/chain-selectors v1.0.10/go.mod h1:d4Hi+E1zqjy9HqMkjBE5q1vcG9VGgxf5VxiRHfzi2kE= github.com/smartcontractkit/chainlink-automation v1.0.3 h1:h/ijT0NiyV06VxYVgcNfsE3+8OEzT3Q0Z9au0z1BPWs= github.com/smartcontractkit/chainlink-automation v1.0.3/go.mod h1:RjboV0Qd7YP+To+OrzHGXaxUxoSONveCoAK2TQ1INLU= -github.com/smartcontractkit/chainlink-common v0.1.7-0.20240605021851-ddaad4797fe1 h1:3Rl4N7u9RRYmXY96ZLoaHVGONXZ8lL4Kc027dFjD46g= -github.com/smartcontractkit/chainlink-common v0.1.7-0.20240605021851-ddaad4797fe1/go.mod h1:DUZccDEW98n+J1mhdWGO7wr/Njad9p9Fzks839JN7Rs= +github.com/smartcontractkit/chainlink-common v0.1.7-0.20240605181819-316b5eb82110 h1:skCp4kAmd0H+/sqiCzpwXKxkSWpf1NsdIUuN73nuz/Y= +github.com/smartcontractkit/chainlink-common v0.1.7-0.20240605181819-316b5eb82110/go.mod h1:DUZccDEW98n+J1mhdWGO7wr/Njad9p9Fzks839JN7Rs= github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20240524214833-c362c2ebbd2d h1:5tgMC5Gi2UAOKZ+m28W8ubjLeR0pQCAcrz6eQ0rW510= github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20240524214833-c362c2ebbd2d/go.mod h1:0UNuO3nDt9MFsZPaHJBEUolxVkN0iC69j1ccDp95e8k= github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240220203239-09be0ea34540 h1:xFSv8561jsLtF6gYZr/zW2z5qUUAkcFkApin2mnbYTo= From 72c34c02517994e230cdf9ecc128aa955f015a2c Mon Sep 17 00:00:00 2001 From: Ryan Tinianov Date: Wed, 5 Jun 2024 16:18:08 -0400 Subject: [PATCH 04/40] Name unnamed return values Fi where i is the index of the returned parameter. If that name is taken, append _X until it's not taken (#13433) --- core/services/relay/evm/types/codec_entry.go | 14 ++++++- .../relay/evm/types/codec_entry_test.go | 37 +++++++++++++++++-- 2 files changed, 45 insertions(+), 6 deletions(-) diff --git a/core/services/relay/evm/types/codec_entry.go b/core/services/relay/evm/types/codec_entry.go index a63460b0897..b42bf9c0b08 100644 --- a/core/services/relay/evm/types/codec_entry.go +++ b/core/services/relay/evm/types/codec_entry.go @@ -133,13 +133,23 @@ func (entry *codecEntry) Init() (err error) { if err != nil { return err } + allowRename := false if len(arg.Name) == 0 { - return fmt.Errorf("%w: empty field names are not supported for multiple returns", commontypes.ErrInvalidType) + arg.Name = fmt.Sprintf("F%d", i) + allowRename = true } name := strings.ToUpper(arg.Name[:1]) + arg.Name[1:] if seenNames[name] { - return fmt.Errorf("%w: duplicate field name %s, after ToCamelCase", commontypes.ErrInvalidConfig, name) + if !allowRename { + return fmt.Errorf("%w: duplicate field name %s, after ToCamelCase", commontypes.ErrInvalidConfig, name) + } + for { + name = name + "_X" + if !seenNames[name] { + break + } + } } seenNames[name] = true native[i] = reflect.StructField{Name: name, Type: nativeArg} diff --git a/core/services/relay/evm/types/codec_entry_test.go b/core/services/relay/evm/types/codec_entry_test.go index d4a0dd8edea..da1d4cc22a5 100644 --- a/core/services/relay/evm/types/codec_entry_test.go +++ b/core/services/relay/evm/types/codec_entry_test.go @@ -209,11 +209,40 @@ func TestCodecEntry(t *testing.T) { assertHaveSameStructureAndNames(t, iNative.Type(), entry.CheckedType()) }) - t.Run("Multiple unnamed parameters are not supported", func(t *testing.T) { - anyType, err := abi.NewType("int16[3]", "", []abi.ArgumentMarshaling{}) + t.Run("Unnamed parameters are named after their locations", func(t *testing.T) { + // use different types to make sure that the right fields have the right types. + anyType1, err := abi.NewType("int64", "", []abi.ArgumentMarshaling{}) + require.NoError(t, err) + anyType2, err := abi.NewType("int32", "", []abi.ArgumentMarshaling{}) + require.NoError(t, err) + entry := NewCodecEntry(abi.Arguments{{Name: "", Type: anyType1}, {Name: "", Type: anyType2}}, nil, nil) + assert.NoError(t, entry.Init()) + ct := entry.CheckedType() + require.Equal(t, 2, ct.NumField()) + f0 := ct.Field(0) + assert.Equal(t, "F0", f0.Name) + assert.Equal(t, reflect.TypeOf((*int64)(nil)), f0.Type) + f1 := ct.Field(1) + assert.Equal(t, "F1", f1.Name) + assert.Equal(t, reflect.TypeOf((*int32)(nil)), f1.Type) + }) + + t.Run("Unnamed parameters adds _Xes at the end if their location name is taken", func(t *testing.T) { + // use different types to make sure that the right fields have the right types. + anyType1, err := abi.NewType("int64", "", []abi.ArgumentMarshaling{}) + require.NoError(t, err) + anyType2, err := abi.NewType("int32", "", []abi.ArgumentMarshaling{}) require.NoError(t, err) - entry := NewCodecEntry(abi.Arguments{{Name: "", Type: anyType}, {Name: "", Type: anyType}}, nil, nil) - assert.True(t, errors.Is(entry.Init(), commontypes.ErrInvalidType)) + entry := NewCodecEntry(abi.Arguments{{Name: "F1", Type: anyType1}, {Name: "", Type: anyType2}}, nil, nil) + assert.NoError(t, entry.Init()) + ct := entry.CheckedType() + require.Equal(t, 2, ct.NumField()) + f0 := ct.Field(0) + assert.Equal(t, "F1", f0.Name) + assert.Equal(t, reflect.TypeOf((*int64)(nil)), f0.Type) + f1 := ct.Field(1) + assert.Equal(t, "F1_X", f1.Name) + assert.Equal(t, reflect.TypeOf((*int32)(nil)), f1.Type) }) t.Run("Multiple abi arguments with the same name returns an error", func(t *testing.T) { From 9e0dfbaae31e36d160ed49606bb648aa6d59c6a3 Mon Sep 17 00:00:00 2001 From: Njegos Railic Date: Wed, 5 Jun 2024 22:41:48 +0200 Subject: [PATCH 05/40] Bumping setup-github-token to version 0.2.1 (#13418) --- .github/workflows/solidity-wrappers.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/solidity-wrappers.yml b/.github/workflows/solidity-wrappers.yml index 2622a29842f..bbd7ac0c670 100644 --- a/.github/workflows/solidity-wrappers.yml +++ b/.github/workflows/solidity-wrappers.yml @@ -55,7 +55,7 @@ jobs: working-directory: ./contracts - name: Assume role capable of dispatching action - uses: smartcontractkit/.github/actions/setup-github-token@9e7cc0779934cae4a9028b8588c9adb64d8ce68c # setup-github-token@0.1.0 + uses: smartcontractkit/.github/actions/setup-github-token@ef78fa97bf3c77de6563db1175422703e9e6674f # setup-github-token@0.2.1 id: get-gh-token with: aws-role-arn: ${{ secrets.AWS_OIDC_CHAINLINK_CI_AUTO_PR_TOKEN_ISSUER_ROLE_ARN }} From f37afb9ebaeda10f8b3873b069b8a824e60a81c3 Mon Sep 17 00:00:00 2001 From: Bolek <1416262+bolekk@users.noreply.github.com> Date: Wed, 5 Jun 2024 19:11:37 -0700 Subject: [PATCH 06/40] [Keystone] Minor bugfixes (#13436) 1. Fix workflowName decoding in KeystoneFeedsConsumer.sol 2. Fix potential panic in triggerSubscriber.UnregisterTrigger() (KS-225) and make (un)register idempotent 3. Fix empty report check in write_target 4. Some comment/log improvements --- .changeset/chatty-masks-divide.md | 5 ++++ contracts/.changeset/witty-onions-relate.md | 5 ++++ .../v0.8/keystone/KeystoneFeedsConsumer.sol | 4 +-- .../capabilities/remote/trigger_subscriber.go | 28 +++++++++++++------ .../remote/trigger_subscriber_test.go | 7 +++-- core/capabilities/targets/write_target.go | 2 +- .../capabilities/targets/write_target_test.go | 2 +- core/services/relay/evm/cap_encoder.go | 8 +++--- 8 files changed, 43 insertions(+), 18 deletions(-) create mode 100644 .changeset/chatty-masks-divide.md create mode 100644 contracts/.changeset/witty-onions-relate.md diff --git a/.changeset/chatty-masks-divide.md b/.changeset/chatty-masks-divide.md new file mode 100644 index 00000000000..09d50e12f0f --- /dev/null +++ b/.changeset/chatty-masks-divide.md @@ -0,0 +1,5 @@ +--- +"chainlink": patch +--- + +#internal #bugfix keystone bugfixes diff --git a/contracts/.changeset/witty-onions-relate.md b/contracts/.changeset/witty-onions-relate.md new file mode 100644 index 00000000000..30d3da6df92 --- /dev/null +++ b/contracts/.changeset/witty-onions-relate.md @@ -0,0 +1,5 @@ +--- +'@chainlink/contracts': patch +--- + +#internal KeystoneFeedsConsumer bytes10 decoding bugfix diff --git a/contracts/src/v0.8/keystone/KeystoneFeedsConsumer.sol b/contracts/src/v0.8/keystone/KeystoneFeedsConsumer.sol index 1044c70d492..e886c6011dc 100644 --- a/contracts/src/v0.8/keystone/KeystoneFeedsConsumer.sol +++ b/contracts/src/v0.8/keystone/KeystoneFeedsConsumer.sol @@ -88,8 +88,8 @@ contract KeystoneFeedsConsumer is IReceiver, ConfirmedOwner { // workflow_owner // offset 74, size 20 // report_name // offset 94, size 2 assembly { - // shift right by 22 bytes to get the actual value - workflowName := shr(mul(22, 8), mload(add(metadata, 64))) + // no shifting needed for bytes10 type + workflowName := mload(add(metadata, 64)) // shift right by 12 bytes to get the actual value workflowOwner := shr(mul(12, 8), mload(add(metadata, 74))) } diff --git a/core/capabilities/remote/trigger_subscriber.go b/core/capabilities/remote/trigger_subscriber.go index e9704bf1865..b8c3d37a596 100644 --- a/core/capabilities/remote/trigger_subscriber.go +++ b/core/capabilities/remote/trigger_subscriber.go @@ -44,7 +44,7 @@ type triggerEventKey struct { } type subRegState struct { - callback chan<- commoncap.CapabilityResponse + callback chan commoncap.CapabilityResponse rawRequest []byte } @@ -103,14 +103,20 @@ func (s *triggerSubscriber) RegisterTrigger(ctx context.Context, request commonc s.mu.Lock() defer s.mu.Unlock() - callback := make(chan commoncap.CapabilityResponse, defaultSendChannelBufferSize) - s.registeredWorkflows[request.Metadata.WorkflowID] = &subRegState{ - callback: callback, - rawRequest: rawRequest, + s.lggr.Infow("RegisterTrigger called", "capabilityId", s.capInfo.ID, "donId", s.capDonInfo.ID, "workflowID", request.Metadata.WorkflowID) + regState, ok := s.registeredWorkflows[request.Metadata.WorkflowID] + if !ok { + regState = &subRegState{ + callback: make(chan commoncap.CapabilityResponse, defaultSendChannelBufferSize), + rawRequest: rawRequest, + } + s.registeredWorkflows[request.Metadata.WorkflowID] = regState + } else { + regState.rawRequest = rawRequest + s.lggr.Warnw("RegisterTrigger re-registering trigger", "capabilityId", s.capInfo.ID, "donId", s.capDonInfo.ID, "workflowID", request.Metadata.WorkflowID) } - s.lggr.Infow("RegisterTrigger called", "capabilityId", s.capInfo.ID, "donId", s.capDonInfo.ID, "workflowID", request.Metadata.WorkflowID) - return callback, nil + return regState.callback, nil } func (s *triggerSubscriber) registrationLoop() { @@ -124,6 +130,9 @@ func (s *triggerSubscriber) registrationLoop() { case <-ticker.C: s.mu.RLock() s.lggr.Infow("register trigger for remote capability", "capabilityId", s.capInfo.ID, "donId", s.capDonInfo.ID, "nMembers", len(s.capDonInfo.Members), "nWorkflows", len(s.registeredWorkflows)) + if len(s.registeredWorkflows) == 0 { + s.lggr.Infow("no workflows to register") + } for _, registration := range s.registeredWorkflows { // NOTE: send to all by default, introduce different strategies later (KS-76) for _, peerID := range s.capDonInfo.Members { @@ -149,7 +158,10 @@ func (s *triggerSubscriber) UnregisterTrigger(ctx context.Context, request commo s.mu.Lock() defer s.mu.Unlock() - close(s.registeredWorkflows[request.Metadata.WorkflowID].callback) + state := s.registeredWorkflows[request.Metadata.WorkflowID] + if state != nil && state.callback != nil { + close(state.callback) + } delete(s.registeredWorkflows, request.Metadata.WorkflowID) // Registrations will quickly expire on all remote nodes. // Alternatively, we could send UnregisterTrigger messages right away. diff --git a/core/capabilities/remote/trigger_subscriber_test.go b/core/capabilities/remote/trigger_subscriber_test.go index 4d251d49dc8..1ad360418fb 100644 --- a/core/capabilities/remote/trigger_subscriber_test.go +++ b/core/capabilities/remote/trigger_subscriber_test.go @@ -68,11 +68,12 @@ func TestTriggerSubscriber_RegisterAndReceive(t *testing.T) { subscriber := remote.NewTriggerSubscriber(config, capInfo, capDonInfo, workflowDonInfo, dispatcher, nil, lggr) require.NoError(t, subscriber.Start(ctx)) - triggerEventCallbackCh, err := subscriber.RegisterTrigger(ctx, commoncap.CapabilityRequest{ + req := commoncap.CapabilityRequest{ Metadata: commoncap.RequestMetadata{ WorkflowID: workflowID1, }, - }) + } + triggerEventCallbackCh, err := subscriber.RegisterTrigger(ctx, req) require.NoError(t, err) <-awaitRegistrationMessageCh @@ -99,5 +100,7 @@ func TestTriggerSubscriber_RegisterAndReceive(t *testing.T) { response := <-triggerEventCallbackCh require.Equal(t, response.Value, triggerEventValue) + require.NoError(t, subscriber.UnregisterTrigger(ctx, req)) + require.NoError(t, subscriber.UnregisterTrigger(ctx, req)) require.NoError(t, subscriber.Close()) } diff --git a/core/capabilities/targets/write_target.go b/core/capabilities/targets/write_target.go index 9eea8451fd9..97b88330ba3 100644 --- a/core/capabilities/targets/write_target.go +++ b/core/capabilities/targets/write_target.go @@ -91,7 +91,7 @@ func (cap *WriteTarget) Execute(ctx context.Context, request capabilities.Capabi return nil, err } - if inputs.Report == nil { + if len(inputs.Report) == 0 { // We received any empty report -- this means we should skip transmission. cap.lggr.Debugw("Skipping empty report", "request", request) return success(), nil diff --git a/core/capabilities/targets/write_target_test.go b/core/capabilities/targets/write_target_test.go index 6964a9617ea..5d77535bdcb 100644 --- a/core/capabilities/targets/write_target_test.go +++ b/core/capabilities/targets/write_target_test.go @@ -72,7 +72,7 @@ func TestWriteTarget(t *testing.T) { t.Run("succeeds with empty report", func(t *testing.T) { emptyInputs, err2 := values.NewMap(map[string]any{ "signed_report": map[string]any{ - "report": nil, + "report": []byte{}, }, "signatures": [][]byte{}, }) diff --git a/core/services/relay/evm/cap_encoder.go b/core/services/relay/evm/cap_encoder.go index 55cb34a90ac..ef78cb07b48 100644 --- a/core/services/relay/evm/cap_encoder.go +++ b/core/services/relay/evm/cap_encoder.go @@ -113,22 +113,22 @@ func prependMetadataFields(meta consensustypes.Metadata, userPayload []byte) ([] binary.BigEndian.PutUint32(cfgVersionBytes, meta.DONConfigVersion) result = append(result, cfgVersionBytes...) - // 5. Workflow ID / spec hash (32 bytes) + // 6. Workflow ID / spec hash (32 bytes) if result, err = decodeAndAppend(meta.WorkflowID, 32, result, "WorkflowID"); err != nil { return nil, err } - // 6. Workflow Name (10 bytes) + // 7. Workflow Name (10 bytes) if result, err = decodeAndAppend(meta.WorkflowName, 10, result, "WorkflowName"); err != nil { return nil, err } - // 7. Workflow Owner (20 bytes) + // 8. Workflow Owner (20 bytes) if result, err = decodeAndAppend(meta.WorkflowOwner, 20, result, "WorkflowOwner"); err != nil { return nil, err } - // 8. Report ID (2 bytes) + // 9. Report ID (2 bytes) if result, err = decodeAndAppend(meta.ReportID, 2, result, "ReportID"); err != nil { return nil, err } From 4615d183fe37a8ba7bb983ec33dec96bf88a56eb Mon Sep 17 00:00:00 2001 From: Anirudh Warrier <12178754+anirudhwarrier@users.noreply.github.com> Date: Thu, 6 Jun 2024 14:17:04 +0530 Subject: [PATCH 07/40] increase cl node funding to 2 (#13440) --- integration-tests/testconfig/automation/automation.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/integration-tests/testconfig/automation/automation.toml b/integration-tests/testconfig/automation/automation.toml index 61203758148..cf158301127 100644 --- a/integration-tests/testconfig/automation/automation.toml +++ b/integration-tests/testconfig/automation/automation.toml @@ -1,6 +1,6 @@ # product defaults [Common] -chainlink_node_funding = 0.5 +chainlink_node_funding = 2.0 [NodeConfig] BaseConfigTOML = """ From 84db591eb8be35d9c6682bf3f27d58f418c0f6ee Mon Sep 17 00:00:00 2001 From: Lukasz <120112546+lukaszcl@users.noreply.github.com> Date: Thu, 6 Jun 2024 11:04:39 +0200 Subject: [PATCH 08/40] Integrate Anvil into E2E K8s OCR Soak test (#13415) * Fix networks * Bump CTF lib * go mod tidy for load/ * Do not validate seth config unless anvil is deployed Seth config will not have URLs before anvil gets deployed. So, we have to validate it after test env is up and running. * Fix CTF in go mod --- integration-tests/go.mod | 2 +- integration-tests/go.sum | 4 +- integration-tests/load/go.mod | 2 +- integration-tests/load/go.sum | 4 +- integration-tests/soak/ocr_test.go | 6 -- integration-tests/testconfig/default.toml | 10 +++ integration-tests/testsetups/ocr.go | 90 +++++++++++++++++------ 7 files changed, 82 insertions(+), 36 deletions(-) diff --git a/integration-tests/go.mod b/integration-tests/go.mod index 3906c252265..90e2a8a4682 100644 --- a/integration-tests/go.mod +++ b/integration-tests/go.mod @@ -28,7 +28,7 @@ require ( github.com/slack-go/slack v0.12.2 github.com/smartcontractkit/chainlink-automation v1.0.3 github.com/smartcontractkit/chainlink-common v0.1.7-0.20240605181819-316b5eb82110 - github.com/smartcontractkit/chainlink-testing-framework v1.28.17 + github.com/smartcontractkit/chainlink-testing-framework v1.30.1 github.com/smartcontractkit/chainlink-vrf v0.0.0-20231120191722-fef03814f868 github.com/smartcontractkit/chainlink/v2 v2.0.0-00010101000000-000000000000 github.com/smartcontractkit/libocr v0.0.0-20240419185742-fd3cab206b2c diff --git a/integration-tests/go.sum b/integration-tests/go.sum index 16994b03560..e604bc045e9 100644 --- a/integration-tests/go.sum +++ b/integration-tests/go.sum @@ -1524,8 +1524,8 @@ github.com/smartcontractkit/chainlink-solana v1.0.3-0.20240605170242-555ff582f36 github.com/smartcontractkit/chainlink-solana v1.0.3-0.20240605170242-555ff582f36a/go.mod h1:QqcZSwLgEIn7YraAIRmomnBMAuVFephiHrIWVlkWbFI= github.com/smartcontractkit/chainlink-starknet/relayer v0.0.1-beta-test.0.20240531021326-99118e47f696 h1:h1E87+z+JcUEfvbJVF56SnZA/YUFE5ewUE61MaR/Ewg= github.com/smartcontractkit/chainlink-starknet/relayer v0.0.1-beta-test.0.20240531021326-99118e47f696/go.mod h1:OiWUTrrpSLLTMh7FINWjEh6mmDJCVPaC4yEsDCVaWdU= -github.com/smartcontractkit/chainlink-testing-framework v1.28.17 h1:zezoeiG3GUGW1T2+genS/HD1BvRJwC3rqFnFTFNB9aY= -github.com/smartcontractkit/chainlink-testing-framework v1.28.17/go.mod h1:xjxJK+4SUjBmJJWfRFl02poauU4XQE37aH7WYtxTLKg= +github.com/smartcontractkit/chainlink-testing-framework v1.30.1 h1:JFoeSuOvdx8Rmfh5Z4KOH0FnjiLw3M2p7T4GLzTPLMk= +github.com/smartcontractkit/chainlink-testing-framework v1.30.1/go.mod h1:oEIggLGWyWfLkjWvuXLol8inUT4YbBb06fJx/S60gQ4= github.com/smartcontractkit/chainlink-testing-framework/grafana v0.0.0-20240328204215-ac91f55f1449 h1:fX/xmGm1GBsD1ZZnooNT+eWA0hiTAqFlHzOC5CY4dy8= github.com/smartcontractkit/chainlink-testing-framework/grafana v0.0.0-20240328204215-ac91f55f1449/go.mod h1:DC8sQMyTlI/44UCTL8QWFwb0bYNoXCfjwCv2hMivYZU= github.com/smartcontractkit/chainlink-vrf v0.0.0-20231120191722-fef03814f868 h1:FFdvEzlYwcuVHkdZ8YnZR/XomeMGbz5E2F2HZI3I3w8= diff --git a/integration-tests/load/go.mod b/integration-tests/load/go.mod index 833ac48d453..c624cc25a58 100644 --- a/integration-tests/load/go.mod +++ b/integration-tests/load/go.mod @@ -17,7 +17,7 @@ require ( github.com/slack-go/slack v0.12.2 github.com/smartcontractkit/chainlink-automation v1.0.3 github.com/smartcontractkit/chainlink-common v0.1.7-0.20240605181819-316b5eb82110 - github.com/smartcontractkit/chainlink-testing-framework v1.28.17 + github.com/smartcontractkit/chainlink-testing-framework v1.30.1 github.com/smartcontractkit/chainlink/integration-tests v0.0.0-20240214231432-4ad5eb95178c github.com/smartcontractkit/chainlink/v2 v2.9.0-beta0.0.20240216210048-da02459ddad8 github.com/smartcontractkit/libocr v0.0.0-20240419185742-fd3cab206b2c diff --git a/integration-tests/load/go.sum b/integration-tests/load/go.sum index 15c58ac5f41..dfd1161b479 100644 --- a/integration-tests/load/go.sum +++ b/integration-tests/load/go.sum @@ -1514,8 +1514,8 @@ github.com/smartcontractkit/chainlink-solana v1.0.3-0.20240605170242-555ff582f36 github.com/smartcontractkit/chainlink-solana v1.0.3-0.20240605170242-555ff582f36a/go.mod h1:QqcZSwLgEIn7YraAIRmomnBMAuVFephiHrIWVlkWbFI= github.com/smartcontractkit/chainlink-starknet/relayer v0.0.1-beta-test.0.20240531021326-99118e47f696 h1:h1E87+z+JcUEfvbJVF56SnZA/YUFE5ewUE61MaR/Ewg= github.com/smartcontractkit/chainlink-starknet/relayer v0.0.1-beta-test.0.20240531021326-99118e47f696/go.mod h1:OiWUTrrpSLLTMh7FINWjEh6mmDJCVPaC4yEsDCVaWdU= -github.com/smartcontractkit/chainlink-testing-framework v1.28.17 h1:zezoeiG3GUGW1T2+genS/HD1BvRJwC3rqFnFTFNB9aY= -github.com/smartcontractkit/chainlink-testing-framework v1.28.17/go.mod h1:xjxJK+4SUjBmJJWfRFl02poauU4XQE37aH7WYtxTLKg= +github.com/smartcontractkit/chainlink-testing-framework v1.30.1 h1:JFoeSuOvdx8Rmfh5Z4KOH0FnjiLw3M2p7T4GLzTPLMk= +github.com/smartcontractkit/chainlink-testing-framework v1.30.1/go.mod h1:oEIggLGWyWfLkjWvuXLol8inUT4YbBb06fJx/S60gQ4= github.com/smartcontractkit/chainlink-testing-framework/grafana v0.0.0-20240328204215-ac91f55f1449 h1:fX/xmGm1GBsD1ZZnooNT+eWA0hiTAqFlHzOC5CY4dy8= github.com/smartcontractkit/chainlink-testing-framework/grafana v0.0.0-20240328204215-ac91f55f1449/go.mod h1:DC8sQMyTlI/44UCTL8QWFwb0bYNoXCfjwCv2hMivYZU= github.com/smartcontractkit/chainlink-vrf v0.0.0-20231120191722-fef03814f868 h1:FFdvEzlYwcuVHkdZ8YnZR/XomeMGbz5E2F2HZI3I3w8= diff --git a/integration-tests/soak/ocr_test.go b/integration-tests/soak/ocr_test.go index 70cd7974373..e99ecdf072d 100644 --- a/integration-tests/soak/ocr_test.go +++ b/integration-tests/soak/ocr_test.go @@ -6,7 +6,6 @@ import ( "github.com/stretchr/testify/require" "github.com/smartcontractkit/chainlink-testing-framework/logging" - "github.com/smartcontractkit/chainlink-testing-framework/networks" actions_seth "github.com/smartcontractkit/chainlink/integration-tests/actions/seth" tc "github.com/smartcontractkit/chainlink/integration-tests/testconfig" @@ -26,11 +25,6 @@ func TestOCRSoak(t *testing.T) { config, err := tc.GetConfig("Soak", tc.OCR) require.NoError(t, err, "Error getting config") - // validate Seth config before anything else - network := networks.MustGetSelectedNetworkConfig(config.GetNetworkConfig())[0] - _, err = actions_seth.GetChainClient(config, network) - require.NoError(t, err, "Error creating seth client") - ocrSoakTest, err := testsetups.NewOCRSoakTest(t, &config, false) require.NoError(t, err, "Error creating soak test") if !ocrSoakTest.Interrupted() { diff --git a/integration-tests/testconfig/default.toml b/integration-tests/testconfig/default.toml index 451f620fe3f..f99c434bc4d 100644 --- a/integration-tests/testconfig/default.toml +++ b/integration-tests/testconfig/default.toml @@ -148,6 +148,16 @@ gas_price = 150_000_000_000 #150 gwei gas_fee_cap = 150_000_000_000 #150 gwei gas_tip_cap = 50_000_000_000 #50 gwei +[[Seth.networks]] +name = "Anvil" +transaction_timeout = "30s" +transfer_gas_fee = 21_000 +gas_limit = 8_000_000 +gas_price = 1_000_000_000 +eip_1559_dynamic_fees = true +gas_fee_cap = 15_000_000_000 +gas_tip_cap = 5_000_000_000 + [[Seth.networks]] name = "Geth" transaction_timeout = "30s" diff --git a/integration-tests/testsetups/ocr.go b/integration-tests/testsetups/ocr.go index 0a08b08b586..b0424fc8226 100644 --- a/integration-tests/testsetups/ocr.go +++ b/integration-tests/testsetups/ocr.go @@ -32,12 +32,12 @@ import ( "github.com/smartcontractkit/chainlink-testing-framework/k8s/environment" "github.com/smartcontractkit/chainlink-testing-framework/k8s/pkg/helm/chainlink" "github.com/smartcontractkit/chainlink-testing-framework/k8s/pkg/helm/ethereum" + "github.com/smartcontractkit/chainlink-testing-framework/k8s/pkg/helm/foundry" "github.com/smartcontractkit/chainlink-testing-framework/k8s/pkg/helm/mockserver" mockservercfg "github.com/smartcontractkit/chainlink-testing-framework/k8s/pkg/helm/mockserver-cfg" "github.com/smartcontractkit/chainlink-testing-framework/logging" "github.com/smartcontractkit/chainlink-testing-framework/networks" reportModel "github.com/smartcontractkit/chainlink-testing-framework/testreporters" - seth_utils "github.com/smartcontractkit/chainlink-testing-framework/utils/seth" "github.com/smartcontractkit/chainlink-testing-framework/utils/testcontext" "github.com/smartcontractkit/chainlink/integration-tests/actions" @@ -82,6 +82,8 @@ type OCRSoakTest struct { ocrV2Instances []contracts.OffchainAggregatorV2 ocrV2InstanceMap map[string]contracts.OffchainAggregatorV2 // address : instance + + rpcNetwork blockchain.EVMNetwork // network configuration for the blockchain node } // NewOCRSoakTest creates a new OCR soak test to setup and run @@ -106,12 +108,13 @@ func NewOCRSoakTest(t *testing.T, config *tc.TestConfig, forwarderFlow bool) (*O // DeployEnvironment deploys the test environment, starting all Chainlink nodes and other components for the test func (o *OCRSoakTest) DeployEnvironment(customChainlinkNetworkTOML string, ocrTestConfig tt.OcrTestConfig) { - network := networks.MustGetSelectedNetworkConfig(ocrTestConfig.GetNetworkConfig())[0] // Environment currently being used to soak test on + nodeNetwork := networks.MustGetSelectedNetworkConfig(ocrTestConfig.GetNetworkConfig())[0] // Environment currently being used to soak test on nsPre := fmt.Sprintf("soak-ocr-v%s-", *ocrTestConfig.GetOCRConfig().Soak.OCRVersion) if o.OperatorForwarderFlow { nsPre = fmt.Sprintf("%sforwarder-", nsPre) } - nsPre = fmt.Sprintf("%s%s", nsPre, strings.ReplaceAll(strings.ToLower(network.Name), " ", "-")) + + nsPre = fmt.Sprintf("%s%s", nsPre, strings.ReplaceAll(strings.ToLower(nodeNetwork.Name), " ", "-")) nsPre = strings.ReplaceAll(nsPre, "_", "-") baseEnvironmentConfig := &environment.Config{ TTL: time.Hour * 720, // 30 days, @@ -120,6 +123,49 @@ func (o *OCRSoakTest) DeployEnvironment(customChainlinkNetworkTOML string, ocrTe PreventPodEviction: true, } + testEnv := environment.New(baseEnvironmentConfig). + AddHelm(mockservercfg.New(nil)). + AddHelm(mockserver.New(nil)) + + var anvilChart *foundry.Chart + if nodeNetwork.Name == "Anvil" { + anvilConfig := ocrTestConfig.GetNetworkConfig().AnvilConfigs["ANVIL"] + anvilChart = foundry.New(&foundry.Props{ + Values: map[string]interface{}{ + "fullnameOverride": "anvil", + "anvil": map[string]interface{}{ + "chainId": fmt.Sprintf("%d", nodeNetwork.ChainID), + "blockTime": anvilConfig.BlockTime, + "forkURL": anvilConfig.URL, + "forkBlockNumber": anvilConfig.BlockNumber, + "forkRetries": anvilConfig.Retries, + "forkTimeout": anvilConfig.Timeout, + "forkComputeUnitsPerSecond": anvilConfig.ComputePerSecond, + "forkNoRateLimit": anvilConfig.RateLimitDisabled, + }, + "resources": map[string]interface{}{ + "requests": map[string]interface{}{ + "cpu": "4", + "memory": "6Gi", + }, + "limits": map[string]interface{}{ + "cpu": "4", + "memory": "6Gi", + }, + }, + }, + }) + testEnv.AddHelm(anvilChart) + nodeNetwork.URLs = []string{anvilChart.ClusterWSURL} + nodeNetwork.HTTPURLs = []string{anvilChart.ClusterHTTPURL} + } else { + testEnv.AddHelm(ethereum.New(ðereum.Props{ + NetworkName: nodeNetwork.Name, + Simulated: nodeNetwork.Simulated, + WsURLs: nodeNetwork.URLs, + })) + } + var conf string if *ocrTestConfig.GetOCRConfig().Soak.OCRVersion == "1" { conf = config.BaseOCR1Config @@ -134,25 +180,28 @@ func (o *OCRSoakTest) DeployEnvironment(customChainlinkNetworkTOML string, ocrTe cd := chainlink.NewWithOverride(0, map[string]any{ "replicas": 6, - "toml": networks.AddNetworkDetailedConfig(conf, ocrTestConfig.GetPyroscopeConfig(), customChainlinkNetworkTOML, network), + "toml": networks.AddNetworkDetailedConfig(conf, ocrTestConfig.GetPyroscopeConfig(), customChainlinkNetworkTOML, nodeNetwork), "db": map[string]any{ "stateful": true, // stateful DB by default for soak tests }, }, ocrTestConfig.GetChainlinkImageConfig(), overrideFn) + testEnv.AddHelm(cd) - testEnvironment := environment.New(baseEnvironmentConfig). - AddHelm(mockservercfg.New(nil)). - AddHelm(mockserver.New(nil)). - AddHelm(ethereum.New(ðereum.Props{ - NetworkName: network.Name, - Simulated: network.Simulated, - WsURLs: network.URLs, - })). - AddHelm(cd) - err := testEnvironment.Run() + err := testEnv.Run() require.NoError(o.t, err, "Error launching test environment") - o.testEnvironment = testEnvironment - o.namespace = testEnvironment.Cfg.Namespace + o.testEnvironment = testEnv + o.namespace = testEnv.Cfg.Namespace + + o.rpcNetwork = nodeNetwork + if o.rpcNetwork.Simulated && o.rpcNetwork.Name == "Anvil" { + if testEnv.Cfg.InsideK8s { + // Test is running inside K8s, set the cluster URL of Anvil blockchain node + o.rpcNetwork.URLs = []string{anvilChart.ClusterWSURL} + } else { + // Test is running locally, set forwarded URL of Anvil blockchain node + o.rpcNetwork.URLs = []string{anvilChart.ForwardedWSURL} + } + } } // Environment returns the full K8s test environment @@ -161,15 +210,8 @@ func (o *OCRSoakTest) Environment() *environment.Environment { } func (o *OCRSoakTest) Setup(ocrTestConfig tt.OcrTestConfig) { - var ( - err error - network = networks.MustGetSelectedNetworkConfig(ocrTestConfig.GetNetworkConfig())[0] - ) - - network = seth_utils.MustReplaceSimulatedNetworkUrlWithK8(o.log, network, *o.testEnvironment) - seth, err := actions_seth.GetChainClient(o.Config, network) + seth, err := actions_seth.GetChainClient(o.Config, o.rpcNetwork) require.NoError(o.t, err, "Error creating seth client") - o.seth = seth nodes, err := client.ConnectChainlinkNodes(o.testEnvironment) From eeb363f1230415dde573607a095b177c612d3bef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Deividas=20Kar=C5=BEinauskas?= Date: Thu, 6 Jun 2024 12:56:21 +0300 Subject: [PATCH 09/40] Add additional capability and DON metadata (#13425) * Add metadata and validate fault tolerance * Validate node count is more than F * Refactor test constants * Update snapshot * Check capability type is returned * Update getters and add tests * Make capability name and version a string * Gen wrappers and snapshots * Add changesets --- .changeset/four-dragons-deny.md | 5 + contracts/.changeset/long-cups-perform.md | 5 + contracts/gas-snapshots/keystone.gas-snapshot | 155 ++++++++++-------- .../src/v0.8/keystone/CapabilityRegistry.sol | 118 +++++++++---- .../src/v0.8/keystone/test/BaseTest.t.sol | 6 +- ...tyRegistry_GetHashedCapabilityIdTest.t.sol | 10 +- ...CapabilityRegistry_AddCapabilityTest.t.sol | 9 +- .../test/CapabilityRegistry_AddDONTest.t.sol | 67 +++++--- ...abilityRegistry_AddNodeOperatorsTest.t.sol | 3 - .../CapabilityRegistry_AddNodesTest.t.sol | 3 - ...pabilityRegistry_GetCapabilitiesTest.t.sol | 2 + .../test/CapabilityRegistry_GetDONsTest.t.sol | 23 +-- ...abilityRegistry_GetNodeOperatorsTest.t.sol | 3 - .../CapabilityRegistry_GetNodesTest.t.sol | 3 - .../CapabilityRegistry_RemoveDONsTest.t.sol | 10 +- ...lityRegistry_RemoveNodeOperatorsTest.t.sol | 3 - .../CapabilityRegistry_RemoveNodesTest.t.sol | 4 - .../CapabilityRegistry_UpdateDONTest.t.sol | 65 ++++---- .../CapabilityRegistry_UpdateNodesTest.t.sol | 5 - .../src/v0.8/keystone/test/Constants.t.sol | 39 +++-- .../keystone_capability_registry.go | 47 +++--- ...rapper-dependency-versions-do-not-edit.txt | 2 +- 22 files changed, 353 insertions(+), 234 deletions(-) create mode 100644 .changeset/four-dragons-deny.md create mode 100644 contracts/.changeset/long-cups-perform.md diff --git a/.changeset/four-dragons-deny.md b/.changeset/four-dragons-deny.md new file mode 100644 index 00000000000..0408383bd03 --- /dev/null +++ b/.changeset/four-dragons-deny.md @@ -0,0 +1,5 @@ +--- +"chainlink": patch +--- + +#internal diff --git a/contracts/.changeset/long-cups-perform.md b/contracts/.changeset/long-cups-perform.md new file mode 100644 index 00000000000..93fba83b558 --- /dev/null +++ b/contracts/.changeset/long-cups-perform.md @@ -0,0 +1,5 @@ +--- +'@chainlink/contracts': patch +--- + +#internal diff --git a/contracts/gas-snapshots/keystone.gas-snapshot b/contracts/gas-snapshots/keystone.gas-snapshot index 51970c046bd..47c59a149a6 100644 --- a/contracts/gas-snapshots/keystone.gas-snapshot +++ b/contracts/gas-snapshots/keystone.gas-snapshot @@ -1,65 +1,90 @@ -CapabilityRegistry_AddCapabilityTest:test_AddCapability_NoConfigurationContract() (gas: 136922) -CapabilityRegistry_AddCapabilityTest:test_AddCapability_WithConfiguration() (gas: 160688) -CapabilityRegistry_AddCapabilityTest:test_DeprecatesCapability() (gas: 87158) -CapabilityRegistry_AddCapabilityTest:test_EmitsEvent() (gas: 87332) -CapabilityRegistry_AddCapabilityTest:test_RevertWhen_CalledByNonAdmin() (gas: 22371) -CapabilityRegistry_AddCapabilityTest:test_RevertWhen_CalledByNonAdmin() (gas: 23590) -CapabilityRegistry_AddCapabilityTest:test_RevertWhen_CapabilityDoesNotExist() (gas: 15513) -CapabilityRegistry_AddCapabilityTest:test_RevertWhen_CapabilityExists() (gas: 133959) -CapabilityRegistry_AddCapabilityTest:test_RevertWhen_CapabilityIsDeprecated() (gas: 88022) -CapabilityRegistry_AddCapabilityTest:test_RevertWhen_ConfigurationContractDoesNotMatchInterface() (gas: 2725761) -CapabilityRegistry_AddCapabilityTest:test_RevertWhen_ConfigurationContractNotDeployed() (gas: 23513) -CapabilityRegistry_AddDONTest:test_AddDON() (gas: 227135) -CapabilityRegistry_AddDONTest:test_RevertWhen_CalledByNonAdmin() (gas: 21160) -CapabilityRegistry_AddDONTest:test_RevertWhen_CapabilityDoesNotExist() (gas: 89373) -CapabilityRegistry_AddDONTest:test_RevertWhen_DeprecatedCapabilityAdded() (gas: 180895) -CapabilityRegistry_AddDONTest:test_RevertWhen_DuplicateCapabilityAdded() (gas: 210428) -CapabilityRegistry_AddDONTest:test_RevertWhen_DuplicateNodeAdded() (gas: 109784) -CapabilityRegistry_AddDONTest:test_RevertWhen_NodeDoesNotSupportCapability() (gas: 120851) -CapabilityRegistry_AddNodeOperatorsTest:test_AddNodeOperators() (gas: 164127) -CapabilityRegistry_AddNodeOperatorsTest:test_RevertWhen_CalledByNonAdmin() (gas: 28654) -CapabilityRegistry_AddNodeOperatorsTest:test_RevertWhen_NodeOperatorAdminAddressZero() (gas: 29520) -CapabilityRegistry_AddNodesTest:test_AddsNodeParams() (gas: 205953) -CapabilityRegistry_AddNodesTest:test_OwnerCanAddNodes() (gas: 205953) -CapabilityRegistry_AddNodesTest:test_RevertWhen_AddingDuplicateP2PId() (gas: 152430) -CapabilityRegistry_AddNodesTest:test_RevertWhen_AddingNodeWithInvalidCapability() (gas: 57467) -CapabilityRegistry_AddNodesTest:test_RevertWhen_AddingNodeWithoutCapabilities() (gas: 31747) -CapabilityRegistry_AddNodesTest:test_RevertWhen_CalledByNonNodeOperatorAdminAndNonOwner() (gas: 30923) -CapabilityRegistry_AddNodesTest:test_RevertWhen_P2PIDEmpty() (gas: 31612) -CapabilityRegistry_AddNodesTest:test_RevertWhen_SignerAddressEmpty() (gas: 31449) -CapabilityRegistry_GetCapabilitiesTest:test_ExcludesDeprecatedCapabilities() (gas: 109143) -CapabilityRegistry_GetCapabilitiesTest:test_ReturnsCapabilities() (gas: 44169) -CapabilityRegistry_RemoveNodeOperatorsTest:test_RemovesNodeOperator() (gas: 36837) -CapabilityRegistry_RemoveNodeOperatorsTest:test_RevertWhen_CalledByNonOwner() (gas: 17912) -CapabilityRegistry_RemoveNodesTest:test_OwnerCanRemoveNodes() (gas: 35545) -CapabilityRegistry_RemoveNodesTest:test_RemovesNode() (gas: 35556) -CapabilityRegistry_RemoveNodesTest:test_RevertWhen_CalledByNonNodeOperatorAdminAndNonOwner() (gas: 27298) -CapabilityRegistry_RemoveNodesTest:test_RevertWhen_NodeDoesNotExist() (gas: 20508) -CapabilityRegistry_RemoveNodesTest:test_RevertWhen_P2PIDEmpty() (gas: 20498) -CapabilityRegistry_UpdateNodeOperatorTest:test_RevertWhen_CalledByNonAdminAndNonOwner() (gas: 19819) -CapabilityRegistry_UpdateNodeOperatorTest:test_RevertWhen_NodeOperatorAdminIsZeroAddress() (gas: 19754) -CapabilityRegistry_UpdateNodeOperatorTest:test_UpdatesNodeOperator() (gas: 38439) -CapabilityRegistry_UpdateNodesTest:test_OwnerCanUpdateNodes() (gas: 119396) -CapabilityRegistry_UpdateNodesTest:test_RevertWhen_AddingNodeWithInvalidCapability() (gas: 40310) -CapabilityRegistry_UpdateNodesTest:test_RevertWhen_CalledByNonNodeOperatorAdminAndNonOwner() (gas: 30901) -CapabilityRegistry_UpdateNodesTest:test_RevertWhen_NodeDoesNotExist() (gas: 31576) -CapabilityRegistry_UpdateNodesTest:test_RevertWhen_P2PIDEmpty() (gas: 31575) -CapabilityRegistry_UpdateNodesTest:test_RevertWhen_SignerAddressEmpty() (gas: 31390) -CapabilityRegistry_UpdateNodesTest:test_RevertWhen_UpdatingNodeWithoutCapabilities() (gas: 31667) -CapabilityRegistry_UpdateNodesTest:test_UpdatesNodeParams() (gas: 119439) -KeystoneForwarder_ReportTest:test_Report_SuccessfulDelivery() (gas: 133714) -KeystoneForwarder_ReportTest:test_RevertWhen_AnySignatureIsInvalid() (gas: 97790) -KeystoneForwarder_ReportTest:test_RevertWhen_AnySignerIsInvalid() (gas: 110159) -KeystoneForwarder_ReportTest:test_RevertWhen_ReportAlreadyProcessed() (gas: 141632) -KeystoneForwarder_ReportTest:test_RevertWhen_ReportHasDuplicateSignatures() (gas: 110451) -KeystoneForwarder_ReportTest:test_RevertWhen_ReportHasIncorrectDON() (gas: 84208) -KeystoneForwarder_ReportTest:test_RevertWhen_ReportIsMalformed() (gas: 58504) -KeystoneForwarder_ReportTest:test_RevertWhen_TooFewSignatures() (gas: 68813) -KeystoneForwarder_ReportTest:test_RevertWhen_TooManySignatures() (gas: 69493) -KeystoneForwarder_SetConfigTest:test_RevertWhen_ExcessSigners() (gas: 40038) -KeystoneForwarder_SetConfigTest:test_RevertWhen_FaultToleranceIsZero() (gas: 109995) -KeystoneForwarder_SetConfigTest:test_RevertWhen_InsufficientSigners() (gas: 34399) -KeystoneForwarder_SetConfigTest:test_RevertWhen_ProvidingDuplicateSigners() (gas: 867400) -KeystoneForwarder_SetConfigTest:test_SetConfig_FirstTime() (gas: 2224742) -KeystoneForwarder_SetConfigTest:test_SetConfig_WhenSignersAreRemoved() (gas: 2399768) -KeystoneForwarder_TypeAndVersionTest:test_TypeAndVersion() (gas: 9641) \ No newline at end of file +CapabilityRegistry_AddCapabilityTest:test_AddCapability_NoConfigurationContract() (gas: 146887) +CapabilityRegistry_AddCapabilityTest:test_AddCapability_WithConfiguration() (gas: 171153) +CapabilityRegistry_AddCapabilityTest:test_DeprecatesCapability() (gas: 88700) +CapabilityRegistry_AddCapabilityTest:test_EmitsEvent() (gas: 88821) +CapabilityRegistry_AddCapabilityTest:test_RevertWhen_CalledByNonAdmin() (gas: 21734) +CapabilityRegistry_AddCapabilityTest:test_RevertWhen_CalledByNonAdmin() (gas: 22208) +CapabilityRegistry_AddCapabilityTest:test_RevertWhen_CapabilityDoesNotExist() (gas: 15521) +CapabilityRegistry_AddCapabilityTest:test_RevertWhen_CapabilityExists() (gas: 138709) +CapabilityRegistry_AddCapabilityTest:test_RevertWhen_CapabilityIsDeprecated() (gas: 89502) +CapabilityRegistry_AddCapabilityTest:test_RevertWhen_ConfigurationContractDoesNotMatchInterface() (gas: 3889776) +CapabilityRegistry_AddCapabilityTest:test_RevertWhen_ConfigurationContractNotDeployed() (gas: 25007) +CapabilityRegistry_AddDONTest:test_AddDON() (gas: 332981) +CapabilityRegistry_AddDONTest:test_RevertWhen_CalledByNonAdmin() (gas: 19294) +CapabilityRegistry_AddDONTest:test_RevertWhen_CapabilityDoesNotExist() (gas: 155475) +CapabilityRegistry_AddDONTest:test_RevertWhen_DeprecatedCapabilityAdded() (gas: 224972) +CapabilityRegistry_AddDONTest:test_RevertWhen_DuplicateCapabilityAdded() (gas: 239517) +CapabilityRegistry_AddDONTest:test_RevertWhen_DuplicateNodeAdded() (gas: 108063) +CapabilityRegistry_AddDONTest:test_RevertWhen_FaultToleranceIsZero() (gas: 40167) +CapabilityRegistry_AddDONTest:test_RevertWhen_NodeDoesNotSupportCapability() (gas: 169939) +CapabilityRegistry_AddNodeOperatorsTest:test_AddNodeOperators() (gas: 134000) +CapabilityRegistry_AddNodeOperatorsTest:test_RevertWhen_CalledByNonAdmin() (gas: 16961) +CapabilityRegistry_AddNodeOperatorsTest:test_RevertWhen_NodeOperatorAdminAddressZero() (gas: 17813) +CapabilityRegistry_AddNodesTest:test_AddsNodeInfo() (gas: 355902) +CapabilityRegistry_AddNodesTest:test_OwnerCanAddNodes() (gas: 355890) +CapabilityRegistry_AddNodesTest:test_RevertWhen_AddingDuplicateP2PId() (gas: 301737) +CapabilityRegistry_AddNodesTest:test_RevertWhen_AddingNodeWithInvalidCapability() (gas: 55394) +CapabilityRegistry_AddNodesTest:test_RevertWhen_AddingNodeWithoutCapabilities() (gas: 27730) +CapabilityRegistry_AddNodesTest:test_RevertWhen_CalledByNonNodeOperatorAdminAndNonOwner() (gas: 24597) +CapabilityRegistry_AddNodesTest:test_RevertWhen_P2PIDEmpty() (gas: 27436) +CapabilityRegistry_AddNodesTest:test_RevertWhen_SignerAddressEmpty() (gas: 27069) +CapabilityRegistry_AddNodesTest:test_RevertWhen_SignerAddressNotUnique() (gas: 310150) +CapabilityRegistry_GetCapabilitiesTest:test_ExcludesDeprecatedCapabilities() (gas: 115108) +CapabilityRegistry_GetCapabilitiesTest:test_ReturnsCapabilities() (gas: 54030) +CapabilityRegistry_GetDONsTest:test_CorrectlyFetchesDONs() (gas: 72024) +CapabilityRegistry_GetDONsTest:test_DoesNotIncludeRemovedDONs() (gas: 116236) +CapabilityRegistry_GetHashedCapabilityTest:test_CorrectlyGeneratesHashedCapabilityId() (gas: 10848) +CapabilityRegistry_GetHashedCapabilityTest:test_DoesNotCauseIncorrectClashes() (gas: 11927) +CapabilityRegistry_GetNodeOperatorsTest:test_CorrectlyFetchesNodeOperators() (gas: 34409) +CapabilityRegistry_GetNodeOperatorsTest:test_DoesNotIncludeRemovedNodeOperators() (gas: 99043) +CapabilityRegistry_GetNodesTest:test_CorrectlyFetchesNodes() (gas: 60003) +CapabilityRegistry_GetNodesTest:test_DoesNotIncludeRemovedNodes() (gas: 73840) +CapabilityRegistry_RemoveDONsTest:test_RemovesDON() (gas: 99917) +CapabilityRegistry_RemoveDONsTest:test_RevertWhen_CalledByNonAdmin() (gas: 15675) +CapabilityRegistry_RemoveDONsTest:test_RevertWhen_DONDoesNotExist() (gas: 14166) +CapabilityRegistry_RemoveNodeOperatorsTest:test_RemovesNodeOperator() (gas: 141827) +CapabilityRegistry_RemoveNodeOperatorsTest:test_RevertWhen_CalledByNonOwner() (gas: 15767) +CapabilityRegistry_RemoveNodesTest:test_CanAddNodeWithSameSignerAddressAfterRemoving() (gas: 80925) +CapabilityRegistry_RemoveNodesTest:test_OwnerCanRemoveNodes() (gas: 57877) +CapabilityRegistry_RemoveNodesTest:test_RemovesNode() (gas: 57876) +CapabilityRegistry_RemoveNodesTest:test_RevertWhen_CalledByNonNodeOperatorAdminAndNonOwner() (gas: 25091) +CapabilityRegistry_RemoveNodesTest:test_RevertWhen_NodeDoesNotExist() (gas: 18407) +CapabilityRegistry_RemoveNodesTest:test_RevertWhen_P2PIDEmpty() (gas: 18397) +CapabilityRegistry_UpdateDONTest:test_RevertWhen_CalledByNonAdmin() (gas: 19379) +CapabilityRegistry_UpdateDONTest:test_RevertWhen_CapabilityDoesNotExist() (gas: 133511) +CapabilityRegistry_UpdateDONTest:test_RevertWhen_DONDoesNotExist() (gas: 17799) +CapabilityRegistry_UpdateDONTest:test_RevertWhen_DeprecatedCapabilityAdded() (gas: 203008) +CapabilityRegistry_UpdateDONTest:test_RevertWhen_DuplicateCapabilityAdded() (gas: 217599) +CapabilityRegistry_UpdateDONTest:test_RevertWhen_DuplicateNodeAdded() (gas: 86101) +CapabilityRegistry_UpdateDONTest:test_RevertWhen_NodeDoesNotSupportCapability() (gas: 148020) +CapabilityRegistry_UpdateDONTest:test_UpdatesDON() (gas: 331007) +CapabilityRegistry_UpdateNodeOperatorTest:test_RevertWhen_CalledByNonAdminAndNonOwner() (gas: 17727) +CapabilityRegistry_UpdateNodeOperatorTest:test_RevertWhen_NodeOperatorAdminIsZeroAddress() (gas: 17651) +CapabilityRegistry_UpdateNodeOperatorTest:test_UpdatesNodeOperator() (gas: 72390) +CapabilityRegistry_UpdateNodesTest:test_CanUpdateParamsIfNodeSignerAddressNoLongerUsed() (gas: 252355) +CapabilityRegistry_UpdateNodesTest:test_OwnerCanUpdateNodes() (gas: 159643) +CapabilityRegistry_UpdateNodesTest:test_RevertWhen_AddingNodeWithInvalidCapability() (gas: 36277) +CapabilityRegistry_UpdateNodesTest:test_RevertWhen_CalledByNonNodeOperatorAdminAndNonOwner() (gas: 24598) +CapabilityRegistry_UpdateNodesTest:test_RevertWhen_NodeDoesNotExist() (gas: 27368) +CapabilityRegistry_UpdateNodesTest:test_RevertWhen_NodeSignerAlreadyAssignedToAnotherNode() (gas: 29330) +CapabilityRegistry_UpdateNodesTest:test_RevertWhen_P2PIDEmpty() (gas: 27356) +CapabilityRegistry_UpdateNodesTest:test_RevertWhen_SignerAddressEmpty() (gas: 27033) +CapabilityRegistry_UpdateNodesTest:test_RevertWhen_UpdatingNodeWithoutCapabilities() (gas: 25690) +CapabilityRegistry_UpdateNodesTest:test_UpdatesNodeInfo() (gas: 159632) +KeystoneForwarder_ReportTest:test_Report_SuccessfulDelivery() (gas: 143626) +KeystoneForwarder_ReportTest:test_RevertWhen_AnySignatureIsInvalid() (gas: 109344) +KeystoneForwarder_ReportTest:test_RevertWhen_AnySignerIsInvalid() (gas: 140918) +KeystoneForwarder_ReportTest:test_RevertWhen_ReportAlreadyProcessed() (gas: 152819) +KeystoneForwarder_ReportTest:test_RevertWhen_ReportHasDuplicateSignatures() (gas: 117273) +KeystoneForwarder_ReportTest:test_RevertWhen_ReportHasIncorrectDON() (gas: 93443) +KeystoneForwarder_ReportTest:test_RevertWhen_ReportIsMalformed() (gas: 67749) +KeystoneForwarder_ReportTest:test_RevertWhen_TooFewSignatures() (gas: 78061) +KeystoneForwarder_ReportTest:test_RevertWhen_TooManySignatures() (gas: 78741) +KeystoneForwarder_SetConfigTest:test_RevertWhen_ExcessSigners() (gas: 19965) +KeystoneForwarder_SetConfigTest:test_RevertWhen_FaultToleranceIsZero() (gas: 89956) +KeystoneForwarder_SetConfigTest:test_RevertWhen_InsufficientSigners() (gas: 14315) +KeystoneForwarder_SetConfigTest:test_RevertWhen_NotOwner() (gas: 90678) +KeystoneForwarder_SetConfigTest:test_RevertWhen_ProvidingDuplicateSigners() (gas: 847316) +KeystoneForwarder_SetConfigTest:test_SetConfig_FirstTime() (gas: 2224343) +KeystoneForwarder_SetConfigTest:test_SetConfig_WhenSignersAreRemoved() (gas: 2367289) +KeystoneForwarder_TypeAndVersionTest:test_TypeAndVersion() (gas: 9663) \ No newline at end of file diff --git a/contracts/src/v0.8/keystone/CapabilityRegistry.sol b/contracts/src/v0.8/keystone/CapabilityRegistry.sol index 9fe91ebf467..76e56c44416 100644 --- a/contracts/src/v0.8/keystone/CapabilityRegistry.sol +++ b/contracts/src/v0.8/keystone/CapabilityRegistry.sol @@ -71,23 +71,34 @@ contract CapabilityRegistry is OwnerIsCreator, TypeAndVersionInterface { OBSERVATION_IDENTICAL } + /// @notice CapabilityType indicates the type of capability which determines + /// where the capability can be used in a Workflow Spec. + enum CapabilityType { + TRIGGER, + ACTION, + CONSENSUS, + TARGET + } + struct Capability { /// @notice The partially qualified ID for the capability. - /// /// @dev Given the following capability ID: {name}:{label1_key}_{label1_value}:{label2_key}_{label2_value}@{version} // Then we denote the `labelledName` as the `{name}:{label1_key}_{label1_value}:{label2_key}_{label2_value}` portion of the ID. /// /// Ex. id = "data-streams-reports:chain:ethereum@1.0.0" /// labelledName = "data-streams-reports:chain:ethereum" /// - /// bytes32(string); validation regex: ^[a-z0-9_\-:]{1,32}$ - bytes32 labelledName; + /// validation regex: ^[a-z0-9_\-:]{1,32}$ + string labelledName; /// @notice Semver, e.g., "1.2.3" - /// @dev must be valid Semver + max 32 characters. - bytes32 version; - /// @notice Indicates whether remote response requires - // aggregation or is an OCR report. There are multiple possible - // ways to aggregate. + /// @dev must be valid Semver + max 32 characters. + string version; + /// @notice CapabilityType indicates the type of capability which determines + /// where the capability can be used in a Workflow Spec. + CapabilityType capabilityType; + /// @notice CapabilityResponseType indicates whether remote response requires + // aggregation or is an already aggregated report. There are multiple + // possible ways to aggregate. CapabilityResponseType responseType; /// @notice An address to the capability configuration contract. Having this defined // on a capability enforces consistent configuration across DON instances @@ -131,9 +142,15 @@ contract CapabilityRegistry is OwnerIsCreator, TypeAndVersionInterface { uint32 id; /// @notice The number of times the DON was configured uint32 configCount; - /// @notice True if the DON is public. A public DON means that it accepts + /// @notice The f value for the DON. This is the number of faulty nodes + /// that the DON can tolerate. This can be different from the f value of + /// the OCR instances that capabilities spawn. + uint32 f; + /// @notice True if the DON is public. A public DON means that it accepts /// external capability requests bool isPublic; + /// @notice True if the DON accepts Workflows. + bool acceptsWorkflows; /// @notice Mapping of config counts to configurations mapping(uint32 configCount => DONCapabilityConfig donConfig) config; } @@ -143,15 +160,31 @@ contract CapabilityRegistry is OwnerIsCreator, TypeAndVersionInterface { uint32 id; /// @notice The number of times the DON was configured uint32 configCount; + /// @notice The f value for the DON. This is the number of faulty nodes + /// that the DON can tolerate. This can be different from the f value of + /// the OCR instances that capabilities spawn. + uint32 f; /// @notice True if the DON is public. A public DON means that it accepts /// external capability requests bool isPublic; + /// @notice True if the DON accepts Workflows. + bool acceptsWorkflows; /// @notice List of member node P2P Ids bytes32[] nodeP2PIds; /// @notice List of capability configurations CapabilityConfiguration[] capabilityConfigurations; } + /// @notice DONParams is a struct that holds the parameters for a DON. + /// @dev This is needed to avoid "stack too deep" errors in _setDONConfig. + struct DONParams { + uint32 id; + uint32 configCount; + bool isPublic; + bool acceptsWorkflows; + uint32 f; + } + /// @notice This error is thrown when a caller is not allowed /// to execute the transaction error AccessForbidden(); @@ -228,6 +261,12 @@ contract CapabilityRegistry is OwnerIsCreator, TypeAndVersionInterface { /// @param nodeP2PId The P2P ID of the node error DuplicateDONNode(uint32 donId, bytes32 nodeP2PId); + /// @notice This error is thrown when trying to configure a DON with invalid + /// fault tolerance value. + /// @param f The proposed fault tolerance value + /// @param nodeCount The proposed number of nodes in the DON + error InvalidFaultTolerance(uint32 f, uint256 nodeCount); + /// @notice This error is thrown when a capability with the provided hashed ID is /// not found. /// @param hashedCapabilityId The hashed ID used for the lookup. @@ -584,8 +623,8 @@ contract CapabilityRegistry is OwnerIsCreator, TypeAndVersionInterface { /// @param version The capability's version number /// @return bytes32 A unique identifier for the capability /// @dev The hash of the encoded labelledName and version - function getHashedCapabilityId(bytes32 labelledName, bytes32 version) public pure returns (bytes32) { - return keccak256(abi.encodePacked(labelledName, version)); + function getHashedCapabilityId(string calldata labelledName, string calldata version) public pure returns (bytes32) { + return keccak256(abi.encode(labelledName, version)); } /// @notice Returns whether a capability is deprecated @@ -604,11 +643,18 @@ contract CapabilityRegistry is OwnerIsCreator, TypeAndVersionInterface { function addDON( bytes32[] calldata nodes, CapabilityConfiguration[] calldata capabilityConfigurations, - bool isPublic + bool isPublic, + bool acceptsWorkflows, + uint32 f ) external onlyOwner { uint32 id = s_donId; s_dons[id].id = id; - _setDONConfig(id, 1, nodes, capabilityConfigurations, isPublic); + + _setDONConfig( + nodes, + capabilityConfigurations, + DONParams({id: id, configCount: 1, isPublic: isPublic, acceptsWorkflows: acceptsWorkflows, f: f}) + ); ++s_donId; } @@ -624,11 +670,17 @@ contract CapabilityRegistry is OwnerIsCreator, TypeAndVersionInterface { uint32 donId, bytes32[] calldata nodes, CapabilityConfiguration[] calldata capabilityConfigurations, - bool isPublic + bool isPublic, + bool acceptsWorkflows, + uint32 f ) external onlyOwner { uint32 configCount = s_dons[donId].configCount; if (configCount == 0) revert DONDoesNotExist(donId); - _setDONConfig(donId, ++configCount, nodes, capabilityConfigurations, isPublic); + _setDONConfig( + nodes, + capabilityConfigurations, + DONParams({id: donId, configCount: ++configCount, isPublic: isPublic, acceptsWorkflows: acceptsWorkflows, f: f}) + ); } /// @notice Removes DONs from the Capability Registry @@ -680,23 +732,23 @@ contract CapabilityRegistry is OwnerIsCreator, TypeAndVersionInterface { } /// @notice Sets the configuration for a DON - /// @param donId The ID of the DON to set the configuration for - /// @param configCount The number of times the DON has been configured /// @param nodes The nodes making up the DON /// @param capabilityConfigurations The list of configurations for the /// capabilities supported by the DON - /// @param isPublic True if the DON is can accept external workflows + /// @param donParams The DON's parameters function _setDONConfig( - uint32 donId, - uint32 configCount, bytes32[] calldata nodes, CapabilityConfiguration[] calldata capabilityConfigurations, - bool isPublic + DONParams memory donParams ) internal { - DONCapabilityConfig storage donCapabilityConfig = s_dons[donId].config[configCount]; + DONCapabilityConfig storage donCapabilityConfig = s_dons[donParams.id].config[donParams.configCount]; + + // Validate the f value. We are intentionally relaxing the 3f+1 requirement + // as not all DONs will run OCR instances. + if (donParams.f == 0 || donParams.f + 1 > nodes.length) revert InvalidFaultTolerance(donParams.f, nodes.length); for (uint256 i; i < nodes.length; ++i) { - if (donCapabilityConfig.nodes.contains(nodes[i])) revert DuplicateDONNode(donId, nodes[i]); + if (donCapabilityConfig.nodes.contains(nodes[i])) revert DuplicateDONNode(donParams.id, nodes[i]); donCapabilityConfig.nodes.add(nodes[i]); } @@ -709,7 +761,7 @@ contract CapabilityRegistry is OwnerIsCreator, TypeAndVersionInterface { revert CapabilityIsDeprecated(configuration.capabilityId); if (donCapabilityConfig.capabilityConfigs[configuration.capabilityId].length > 0) - revert DuplicateDONCapability(donId, configuration.capabilityId); + revert DuplicateDONCapability(donParams.id, configuration.capabilityId); for (uint256 j; j < nodes.length; ++j) { if ( @@ -720,11 +772,19 @@ contract CapabilityRegistry is OwnerIsCreator, TypeAndVersionInterface { donCapabilityConfig.capabilityIds.push(configuration.capabilityId); donCapabilityConfig.capabilityConfigs[configuration.capabilityId] = configuration.config; - _setDONCapabilityConfig(donId, configCount, configuration.capabilityId, nodes, configuration.config); + _setDONCapabilityConfig( + donParams.id, + donParams.configCount, + configuration.capabilityId, + nodes, + configuration.config + ); } - s_dons[donId].isPublic = isPublic; - s_dons[donId].configCount = configCount; - emit ConfigSet(donId, configCount); + s_dons[donParams.id].isPublic = donParams.isPublic; + s_dons[donParams.id].acceptsWorkflows = donParams.acceptsWorkflows; + s_dons[donParams.id].f = donParams.f; + s_dons[donParams.id].configCount = donParams.configCount; + emit ConfigSet(donParams.id, donParams.configCount); } /// @notice Sets the capability's config on the config contract @@ -789,7 +849,9 @@ contract CapabilityRegistry is OwnerIsCreator, TypeAndVersionInterface { DONInfo({ id: s_dons[donId].id, configCount: configCount, + f: s_dons[donId].f, isPublic: s_dons[donId].isPublic, + acceptsWorkflows: s_dons[donId].acceptsWorkflows, nodeP2PIds: donCapabilityConfig.nodes.values(), capabilityConfigurations: capabilityConfigurations }); diff --git a/contracts/src/v0.8/keystone/test/BaseTest.t.sol b/contracts/src/v0.8/keystone/test/BaseTest.t.sol index b4d12f7ba73..84cce57dc34 100644 --- a/contracts/src/v0.8/keystone/test/BaseTest.t.sol +++ b/contracts/src/v0.8/keystone/test/BaseTest.t.sol @@ -24,13 +24,15 @@ contract BaseTest is Test, Constants { labelledName: "data-streams-reports", version: "1.0.0", responseType: CapabilityRegistry.CapabilityResponseType.REPORT, - configurationContract: address(0) + configurationContract: address(0), + capabilityType: CapabilityRegistry.CapabilityType.TRIGGER }); s_capabilityWithConfigurationContract = CapabilityRegistry.Capability({ labelledName: "read-ethereum-mainnet-gas-price", version: "1.0.2", responseType: CapabilityRegistry.CapabilityResponseType.OBSERVATION_IDENTICAL, - configurationContract: address(s_capabilityConfigurationContract) + configurationContract: address(s_capabilityConfigurationContract), + capabilityType: CapabilityRegistry.CapabilityType.ACTION }); s_basicHashedCapabilityId = s_capabilityRegistry.getHashedCapabilityId( diff --git a/contracts/src/v0.8/keystone/test/CapabiityRegistry_GetHashedCapabilityIdTest.t.sol b/contracts/src/v0.8/keystone/test/CapabiityRegistry_GetHashedCapabilityIdTest.t.sol index 9f8c0644e89..435138c80e9 100644 --- a/contracts/src/v0.8/keystone/test/CapabiityRegistry_GetHashedCapabilityIdTest.t.sol +++ b/contracts/src/v0.8/keystone/test/CapabiityRegistry_GetHashedCapabilityIdTest.t.sol @@ -7,10 +7,10 @@ import {CapabilityConfigurationContract} from "./mocks/CapabilityConfigurationCo import {CapabilityRegistry} from "../CapabilityRegistry.sol"; contract CapabilityRegistry_GetHashedCapabilityTest is BaseTest { - bytes32 constant CAPABILITY_LABELLED_NAME = bytes32("ccip1"); - bytes32 constant CAPABILITY_VERSION = bytes32("1.0.0"); + string constant CAPABILITY_LABELLED_NAME = "ccip1"; + string constant CAPABILITY_VERSION = "1.0.0"; - function test_CorrectlyGeneratesHashedCapabilityId() public { + function test_CorrectlyGeneratesHashedCapabilityId() public view { bytes32 expectedHashedCapabilityId = keccak256(abi.encode(CAPABILITY_LABELLED_NAME, CAPABILITY_VERSION)); assertEq( @@ -19,10 +19,10 @@ contract CapabilityRegistry_GetHashedCapabilityTest is BaseTest { ); } - function test_DoesNotCauseIncorrectClashes() public { + function test_DoesNotCauseIncorrectClashes() public view { assertNotEq( s_capabilityRegistry.getHashedCapabilityId(CAPABILITY_LABELLED_NAME, CAPABILITY_VERSION), - s_capabilityRegistry.getHashedCapabilityId(bytes32("ccip"), bytes32("11.0.0")) + s_capabilityRegistry.getHashedCapabilityId("ccip", "11.0.0") ); } } diff --git a/contracts/src/v0.8/keystone/test/CapabilityRegistry_AddCapabilityTest.t.sol b/contracts/src/v0.8/keystone/test/CapabilityRegistry_AddCapabilityTest.t.sol index dbcc0ae1712..aeb6cc69b11 100644 --- a/contracts/src/v0.8/keystone/test/CapabilityRegistry_AddCapabilityTest.t.sol +++ b/contracts/src/v0.8/keystone/test/CapabilityRegistry_AddCapabilityTest.t.sol @@ -47,10 +47,7 @@ contract CapabilityRegistry_AddCapabilityTest is BaseTest { function test_AddCapability_NoConfigurationContract() public { s_capabilityRegistry.addCapability(s_basicCapability); - bytes32 hashedCapabilityId = s_capabilityRegistry.getHashedCapabilityId( - bytes32("data-streams-reports"), - bytes32("1.0.0") - ); + bytes32 hashedCapabilityId = s_capabilityRegistry.getHashedCapabilityId("data-streams-reports", "1.0.0"); CapabilityRegistry.Capability memory storedCapability = s_capabilityRegistry.getCapability(hashedCapabilityId); assertEq(storedCapability.labelledName, s_basicCapability.labelledName); @@ -63,8 +60,8 @@ contract CapabilityRegistry_AddCapabilityTest is BaseTest { s_capabilityRegistry.addCapability(s_capabilityWithConfigurationContract); bytes32 hashedCapabilityId = s_capabilityRegistry.getHashedCapabilityId( - bytes32(s_capabilityWithConfigurationContract.labelledName), - bytes32(s_capabilityWithConfigurationContract.version) + s_capabilityWithConfigurationContract.labelledName, + s_capabilityWithConfigurationContract.version ); CapabilityRegistry.Capability memory storedCapability = s_capabilityRegistry.getCapability(hashedCapabilityId); diff --git a/contracts/src/v0.8/keystone/test/CapabilityRegistry_AddDONTest.t.sol b/contracts/src/v0.8/keystone/test/CapabilityRegistry_AddDONTest.t.sol index 259332f0de7..ad101131a93 100644 --- a/contracts/src/v0.8/keystone/test/CapabilityRegistry_AddDONTest.t.sol +++ b/contracts/src/v0.8/keystone/test/CapabilityRegistry_AddDONTest.t.sol @@ -8,13 +8,6 @@ import {CapabilityRegistry} from "../CapabilityRegistry.sol"; contract CapabilityRegistry_AddDONTest is BaseTest { event ConfigSet(uint32 donId, uint32 configCount); - uint32 private constant DON_ID = 1; - uint32 private constant TEST_NODE_OPERATOR_ONE_ID = 1; - uint256 private constant TEST_NODE_OPERATOR_TWO_ID = 2; - bytes32 private constant INVALID_P2P_ID = bytes32("fake-p2p"); - bytes private constant BASIC_CAPABILITY_CONFIG = bytes("basic-capability-config"); - bytes private constant CONFIG_CAPABILITY_CONFIG = bytes("config-capability-config"); - function setUp() public override { BaseTest.setUp(); @@ -22,7 +15,7 @@ contract CapabilityRegistry_AddDONTest is BaseTest { s_capabilityRegistry.addCapability(s_basicCapability); s_capabilityRegistry.addCapability(s_capabilityWithConfigurationContract); - CapabilityRegistry.NodeInfo[] memory nodes = new CapabilityRegistry.NodeInfo[](2); + CapabilityRegistry.NodeInfo[] memory nodes = new CapabilityRegistry.NodeInfo[](3); bytes32[] memory capabilityIds = new bytes32[](2); capabilityIds[0] = s_basicHashedCapabilityId; capabilityIds[1] = s_capabilityWithConfigurationContractId; @@ -38,13 +31,19 @@ contract CapabilityRegistry_AddDONTest is BaseTest { nodeTwoCapabilityIds[0] = s_basicHashedCapabilityId; nodes[1] = CapabilityRegistry.NodeInfo({ - nodeOperatorId: TEST_NODE_OPERATOR_ONE_ID, + nodeOperatorId: TEST_NODE_OPERATOR_TWO_ID, p2pId: P2P_ID_TWO, signer: NODE_OPERATOR_TWO_SIGNER_ADDRESS, hashedCapabilityIds: nodeTwoCapabilityIds }); - changePrank(NODE_OPERATOR_ONE_ADMIN); + nodes[2] = CapabilityRegistry.NodeInfo({ + nodeOperatorId: TEST_NODE_OPERATOR_THREE_ID, + p2pId: P2P_ID_THREE, + signer: NODE_OPERATOR_THREE_SIGNER_ADDRESS, + hashedCapabilityIds: capabilityIds + }); + s_capabilityRegistry.addNodes(nodes); changePrank(ADMIN); @@ -61,12 +60,13 @@ contract CapabilityRegistry_AddDONTest is BaseTest { capabilityId: s_basicHashedCapabilityId, config: BASIC_CAPABILITY_CONFIG }); - s_capabilityRegistry.addDON(nodes, capabilityConfigs, true); + s_capabilityRegistry.addDON(nodes, capabilityConfigs, true, true, F_VALUE); } function test_RevertWhen_NodeDoesNotSupportCapability() public { - bytes32[] memory nodes = new bytes32[](1); - nodes[0] = P2P_ID_TWO; + bytes32[] memory nodes = new bytes32[](2); + nodes[0] = P2P_ID; + nodes[1] = P2P_ID_TWO; CapabilityRegistry.CapabilityConfiguration[] memory capabilityConfigs = new CapabilityRegistry.CapabilityConfiguration[](1); capabilityConfigs[0] = CapabilityRegistry.CapabilityConfiguration({ @@ -80,11 +80,13 @@ contract CapabilityRegistry_AddDONTest is BaseTest { s_capabilityWithConfigurationContractId ) ); - s_capabilityRegistry.addDON(nodes, capabilityConfigs, true); + s_capabilityRegistry.addDON(nodes, capabilityConfigs, true, true, F_VALUE); } function test_RevertWhen_CapabilityDoesNotExist() public { - bytes32[] memory nodes = new bytes32[](1); + bytes32[] memory nodes = new bytes32[](2); + nodes[0] = P2P_ID; + nodes[1] = P2P_ID_TWO; CapabilityRegistry.CapabilityConfiguration[] memory capabilityConfigs = new CapabilityRegistry.CapabilityConfiguration[](1); capabilityConfigs[0] = CapabilityRegistry.CapabilityConfiguration({ @@ -94,13 +96,29 @@ contract CapabilityRegistry_AddDONTest is BaseTest { vm.expectRevert( abi.encodeWithSelector(CapabilityRegistry.CapabilityDoesNotExist.selector, s_nonExistentHashedCapabilityId) ); - s_capabilityRegistry.addDON(nodes, capabilityConfigs, true); + s_capabilityRegistry.addDON(nodes, capabilityConfigs, true, true, F_VALUE); } - function test_RevertWhen_DuplicateCapabilityAdded() public { + function test_RevertWhen_FaultToleranceIsZero() public { bytes32[] memory nodes = new bytes32[](1); nodes[0] = P2P_ID; + CapabilityRegistry.CapabilityConfiguration[] + memory capabilityConfigs = new CapabilityRegistry.CapabilityConfiguration[](1); + capabilityConfigs[0] = CapabilityRegistry.CapabilityConfiguration({ + capabilityId: s_basicHashedCapabilityId, + config: BASIC_CAPABILITY_CONFIG + }); + + vm.expectRevert(abi.encodeWithSelector(CapabilityRegistry.InvalidFaultTolerance.selector, 0, 1)); + s_capabilityRegistry.addDON(nodes, capabilityConfigs, true, true, 0); + } + + function test_RevertWhen_DuplicateCapabilityAdded() public { + bytes32[] memory nodes = new bytes32[](2); + nodes[0] = P2P_ID; + nodes[1] = P2P_ID_TWO; + CapabilityRegistry.CapabilityConfiguration[] memory capabilityConfigs = new CapabilityRegistry.CapabilityConfiguration[](2); capabilityConfigs[0] = CapabilityRegistry.CapabilityConfiguration({ @@ -115,15 +133,16 @@ contract CapabilityRegistry_AddDONTest is BaseTest { vm.expectRevert( abi.encodeWithSelector(CapabilityRegistry.DuplicateDONCapability.selector, 1, s_basicHashedCapabilityId) ); - s_capabilityRegistry.addDON(nodes, capabilityConfigs, true); + s_capabilityRegistry.addDON(nodes, capabilityConfigs, true, true, F_VALUE); } function test_RevertWhen_DeprecatedCapabilityAdded() public { bytes32 capabilityId = s_basicHashedCapabilityId; s_capabilityRegistry.deprecateCapability(capabilityId); - bytes32[] memory nodes = new bytes32[](1); + bytes32[] memory nodes = new bytes32[](2); nodes[0] = P2P_ID; + nodes[1] = P2P_ID_TWO; CapabilityRegistry.CapabilityConfiguration[] memory capabilityConfigs = new CapabilityRegistry.CapabilityConfiguration[](1); @@ -133,7 +152,7 @@ contract CapabilityRegistry_AddDONTest is BaseTest { }); vm.expectRevert(abi.encodeWithSelector(CapabilityRegistry.CapabilityIsDeprecated.selector, capabilityId)); - s_capabilityRegistry.addDON(nodes, capabilityConfigs, true); + s_capabilityRegistry.addDON(nodes, capabilityConfigs, true, true, F_VALUE); } function test_RevertWhen_DuplicateNodeAdded() public { @@ -148,12 +167,13 @@ contract CapabilityRegistry_AddDONTest is BaseTest { config: BASIC_CAPABILITY_CONFIG }); vm.expectRevert(abi.encodeWithSelector(CapabilityRegistry.DuplicateDONNode.selector, 1, P2P_ID)); - s_capabilityRegistry.addDON(nodes, capabilityConfigs, true); + s_capabilityRegistry.addDON(nodes, capabilityConfigs, true, true, F_VALUE); } function test_AddDON() public { - bytes32[] memory nodes = new bytes32[](1); + bytes32[] memory nodes = new bytes32[](2); nodes[0] = P2P_ID; + nodes[1] = P2P_ID_THREE; CapabilityRegistry.CapabilityConfiguration[] memory capabilityConfigs = new CapabilityRegistry.CapabilityConfiguration[](2); @@ -179,7 +199,7 @@ contract CapabilityRegistry_AddDONTest is BaseTest { ), 1 ); - s_capabilityRegistry.addDON(nodes, capabilityConfigs, true); + s_capabilityRegistry.addDON(nodes, capabilityConfigs, true, true, F_VALUE); CapabilityRegistry.DONInfo memory donInfo = s_capabilityRegistry.getDON(DON_ID); assertEq(donInfo.id, DON_ID); @@ -191,5 +211,6 @@ contract CapabilityRegistry_AddDONTest is BaseTest { assertEq(donInfo.nodeP2PIds.length, nodes.length); assertEq(donInfo.nodeP2PIds[0], P2P_ID); + assertEq(donInfo.nodeP2PIds[1], P2P_ID_THREE); } } diff --git a/contracts/src/v0.8/keystone/test/CapabilityRegistry_AddNodeOperatorsTest.t.sol b/contracts/src/v0.8/keystone/test/CapabilityRegistry_AddNodeOperatorsTest.t.sol index b2f2d7bef38..d9daaaa4c2b 100644 --- a/contracts/src/v0.8/keystone/test/CapabilityRegistry_AddNodeOperatorsTest.t.sol +++ b/contracts/src/v0.8/keystone/test/CapabilityRegistry_AddNodeOperatorsTest.t.sol @@ -7,9 +7,6 @@ import {CapabilityRegistry} from "../CapabilityRegistry.sol"; contract CapabilityRegistry_AddNodeOperatorsTest is BaseTest { event NodeOperatorAdded(uint256 nodeOperatorId, address indexed admin, string name); - uint32 private constant TEST_NODE_OPERATOR_ONE_ID = 1; - uint256 private constant TEST_NODE_OPERATOR_TWO_ID = 2; - function test_RevertWhen_CalledByNonAdmin() public { changePrank(STRANGER); vm.expectRevert("Only callable by owner"); diff --git a/contracts/src/v0.8/keystone/test/CapabilityRegistry_AddNodesTest.t.sol b/contracts/src/v0.8/keystone/test/CapabilityRegistry_AddNodesTest.t.sol index d5253e1cce4..5899dfa7b84 100644 --- a/contracts/src/v0.8/keystone/test/CapabilityRegistry_AddNodesTest.t.sol +++ b/contracts/src/v0.8/keystone/test/CapabilityRegistry_AddNodesTest.t.sol @@ -7,9 +7,6 @@ import {CapabilityRegistry} from "../CapabilityRegistry.sol"; contract CapabilityRegistry_AddNodesTest is BaseTest { event NodeAdded(bytes32 p2pId, uint256 nodeOperatorId, bytes32 signer); - uint32 private constant TEST_NODE_OPERATOR_ONE_ID = 1; - uint32 private constant TEST_NODE_OPERATOR_TWO_ID = 2; - function setUp() public override { BaseTest.setUp(); changePrank(ADMIN); diff --git a/contracts/src/v0.8/keystone/test/CapabilityRegistry_GetCapabilitiesTest.t.sol b/contracts/src/v0.8/keystone/test/CapabilityRegistry_GetCapabilitiesTest.t.sol index 010fb619ba8..51f43be1dde 100644 --- a/contracts/src/v0.8/keystone/test/CapabilityRegistry_GetCapabilitiesTest.t.sol +++ b/contracts/src/v0.8/keystone/test/CapabilityRegistry_GetCapabilitiesTest.t.sol @@ -20,6 +20,7 @@ contract CapabilityRegistry_GetCapabilitiesTest is BaseTest { assertEq(capabilities[0].labelledName, "data-streams-reports"); assertEq(capabilities[0].version, "1.0.0"); assertEq(uint256(capabilities[0].responseType), uint256(CapabilityRegistry.CapabilityResponseType.REPORT)); + assertEq(uint256(capabilities[0].capabilityType), uint256(CapabilityRegistry.CapabilityType.TRIGGER)); assertEq(capabilities[0].configurationContract, address(0)); assertEq(capabilities[1].labelledName, "read-ethereum-mainnet-gas-price"); @@ -28,6 +29,7 @@ contract CapabilityRegistry_GetCapabilitiesTest is BaseTest { uint256(capabilities[1].responseType), uint256(CapabilityRegistry.CapabilityResponseType.OBSERVATION_IDENTICAL) ); + assertEq(uint256(capabilities[1].capabilityType), uint256(CapabilityRegistry.CapabilityType.ACTION)); assertEq(capabilities[1].configurationContract, address(s_capabilityConfigurationContract)); } diff --git a/contracts/src/v0.8/keystone/test/CapabilityRegistry_GetDONsTest.t.sol b/contracts/src/v0.8/keystone/test/CapabilityRegistry_GetDONsTest.t.sol index ccaa7076a4c..3b5c874ca80 100644 --- a/contracts/src/v0.8/keystone/test/CapabilityRegistry_GetDONsTest.t.sol +++ b/contracts/src/v0.8/keystone/test/CapabilityRegistry_GetDONsTest.t.sol @@ -8,12 +8,6 @@ import {CapabilityRegistry} from "../CapabilityRegistry.sol"; contract CapabilityRegistry_GetDONsTest is BaseTest { event ConfigSet(uint32 donId, uint32 configCount); - uint32 private constant DON_ID_ONE = 1; - uint32 private constant DON_ID_TWO = 2; - uint32 private constant TEST_NODE_OPERATOR_ONE_ID = 1; - uint256 private constant TEST_NODE_OPERATOR_TWO_ID = 2; - bytes32 private constant INVALID_P2P_ID = bytes32("fake-p2p"); - bytes private constant CONFIG = bytes("onchain-config"); CapabilityRegistry.CapabilityConfiguration[] private s_capabilityConfigs; function setUp() public override { @@ -49,7 +43,10 @@ contract CapabilityRegistry_GetDONsTest is BaseTest { s_capabilityRegistry.addNodes(nodes); s_capabilityConfigs.push( - CapabilityRegistry.CapabilityConfiguration({capabilityId: s_basicHashedCapabilityId, config: CONFIG}) + CapabilityRegistry.CapabilityConfiguration({ + capabilityId: s_basicHashedCapabilityId, + config: BASIC_CAPABILITY_CONFIG + }) ); bytes32[] memory nodeIds = new bytes32[](2); @@ -57,16 +54,18 @@ contract CapabilityRegistry_GetDONsTest is BaseTest { nodeIds[1] = P2P_ID_TWO; changePrank(ADMIN); - s_capabilityRegistry.addDON(nodeIds, s_capabilityConfigs, true); - s_capabilityRegistry.addDON(nodeIds, s_capabilityConfigs, false); + s_capabilityRegistry.addDON(nodeIds, s_capabilityConfigs, true, true, 1); + s_capabilityRegistry.addDON(nodeIds, s_capabilityConfigs, false, false, 1); } function test_CorrectlyFetchesDONs() public view { CapabilityRegistry.DONInfo[] memory dons = s_capabilityRegistry.getDONs(); assertEq(dons.length, 2); - assertEq(dons[0].id, DON_ID_ONE); + assertEq(dons[0].id, DON_ID); assertEq(dons[0].configCount, 1); assertEq(dons[0].isPublic, true); + assertEq(dons[0].acceptsWorkflows, true); + assertEq(dons[0].f, 1); assertEq(dons[0].capabilityConfigurations.length, s_capabilityConfigs.length); assertEq(dons[0].capabilityConfigurations[0].capabilityId, s_basicHashedCapabilityId); @@ -79,7 +78,7 @@ contract CapabilityRegistry_GetDONsTest is BaseTest { function test_DoesNotIncludeRemovedDONs() public { uint32[] memory removedDONIDs = new uint32[](1); - removedDONIDs[0] = DON_ID_ONE; + removedDONIDs[0] = DON_ID; s_capabilityRegistry.removeDONs(removedDONIDs); CapabilityRegistry.DONInfo[] memory dons = s_capabilityRegistry.getDONs(); @@ -87,6 +86,8 @@ contract CapabilityRegistry_GetDONsTest is BaseTest { assertEq(dons[0].id, DON_ID_TWO); assertEq(dons[0].configCount, 1); assertEq(dons[0].isPublic, false); + assertEq(dons[0].acceptsWorkflows, false); + assertEq(dons[0].f, 1); assertEq(dons[0].capabilityConfigurations.length, s_capabilityConfigs.length); assertEq(dons[0].capabilityConfigurations[0].capabilityId, s_basicHashedCapabilityId); } diff --git a/contracts/src/v0.8/keystone/test/CapabilityRegistry_GetNodeOperatorsTest.t.sol b/contracts/src/v0.8/keystone/test/CapabilityRegistry_GetNodeOperatorsTest.t.sol index 95d3084caae..2fbf67c4392 100644 --- a/contracts/src/v0.8/keystone/test/CapabilityRegistry_GetNodeOperatorsTest.t.sol +++ b/contracts/src/v0.8/keystone/test/CapabilityRegistry_GetNodeOperatorsTest.t.sol @@ -5,9 +5,6 @@ import {BaseTest} from "./BaseTest.t.sol"; import {CapabilityRegistry} from "../CapabilityRegistry.sol"; contract CapabilityRegistry_GetNodeOperatorsTest is BaseTest { - uint32 private constant TEST_NODE_OPERATOR_ONE_ID = 1; - uint256 private constant TEST_NODE_OPERATOR_TWO_ID = 2; - function setUp() public override { BaseTest.setUp(); changePrank(ADMIN); diff --git a/contracts/src/v0.8/keystone/test/CapabilityRegistry_GetNodesTest.t.sol b/contracts/src/v0.8/keystone/test/CapabilityRegistry_GetNodesTest.t.sol index 02dace7d0e9..530af0365b7 100644 --- a/contracts/src/v0.8/keystone/test/CapabilityRegistry_GetNodesTest.t.sol +++ b/contracts/src/v0.8/keystone/test/CapabilityRegistry_GetNodesTest.t.sol @@ -5,9 +5,6 @@ import {BaseTest} from "./BaseTest.t.sol"; import {CapabilityRegistry} from "../CapabilityRegistry.sol"; contract CapabilityRegistry_GetNodesTest is BaseTest { - uint32 private constant TEST_NODE_OPERATOR_ONE_ID = 1; - uint256 private constant TEST_NODE_OPERATOR_TWO_ID = 2; - function setUp() public override { BaseTest.setUp(); changePrank(ADMIN); diff --git a/contracts/src/v0.8/keystone/test/CapabilityRegistry_RemoveDONsTest.t.sol b/contracts/src/v0.8/keystone/test/CapabilityRegistry_RemoveDONsTest.t.sol index 53f602c9da2..3aaeb5a0723 100644 --- a/contracts/src/v0.8/keystone/test/CapabilityRegistry_RemoveDONsTest.t.sol +++ b/contracts/src/v0.8/keystone/test/CapabilityRegistry_RemoveDONsTest.t.sol @@ -8,12 +8,6 @@ import {CapabilityRegistry} from "../CapabilityRegistry.sol"; contract CapabilityRegistry_RemoveDONsTest is BaseTest { event ConfigSet(uint32 donId, uint32 configCount); - uint32 private constant DON_ID = 1; - uint32 private constant TEST_NODE_OPERATOR_ONE_ID = 1; - uint256 private constant TEST_NODE_OPERATOR_TWO_ID = 2; - bytes32 private constant INVALID_P2P_ID = bytes32("fake-p2p"); - bytes private constant CONFIG = bytes("onchain-config"); - function setUp() public override { BaseTest.setUp(); @@ -50,7 +44,7 @@ contract CapabilityRegistry_RemoveDONsTest is BaseTest { memory capabilityConfigs = new CapabilityRegistry.CapabilityConfiguration[](1); capabilityConfigs[0] = CapabilityRegistry.CapabilityConfiguration({ capabilityId: s_basicHashedCapabilityId, - config: CONFIG + config: BASIC_CAPABILITY_CONFIG }); bytes32[] memory nodeIds = new bytes32[](2); @@ -58,7 +52,7 @@ contract CapabilityRegistry_RemoveDONsTest is BaseTest { nodeIds[1] = P2P_ID_TWO; changePrank(ADMIN); - s_capabilityRegistry.addDON(nodeIds, capabilityConfigs, true); + s_capabilityRegistry.addDON(nodeIds, capabilityConfigs, true, true, 1); } function test_RevertWhen_CalledByNonAdmin() public { diff --git a/contracts/src/v0.8/keystone/test/CapabilityRegistry_RemoveNodeOperatorsTest.t.sol b/contracts/src/v0.8/keystone/test/CapabilityRegistry_RemoveNodeOperatorsTest.t.sol index 99106692c3b..8295544422e 100644 --- a/contracts/src/v0.8/keystone/test/CapabilityRegistry_RemoveNodeOperatorsTest.t.sol +++ b/contracts/src/v0.8/keystone/test/CapabilityRegistry_RemoveNodeOperatorsTest.t.sol @@ -7,9 +7,6 @@ import {CapabilityRegistry} from "../CapabilityRegistry.sol"; contract CapabilityRegistry_RemoveNodeOperatorsTest is BaseTest { event NodeOperatorRemoved(uint256 nodeOperatorId); - uint32 private constant TEST_NODE_OPERATOR_ONE_ID = 1; - uint256 private constant TEST_NODE_OPERATOR_TWO_ID = 2; - function setUp() public override { BaseTest.setUp(); changePrank(ADMIN); diff --git a/contracts/src/v0.8/keystone/test/CapabilityRegistry_RemoveNodesTest.t.sol b/contracts/src/v0.8/keystone/test/CapabilityRegistry_RemoveNodesTest.t.sol index d0feff53dac..f05d1929f66 100644 --- a/contracts/src/v0.8/keystone/test/CapabilityRegistry_RemoveNodesTest.t.sol +++ b/contracts/src/v0.8/keystone/test/CapabilityRegistry_RemoveNodesTest.t.sol @@ -7,10 +7,6 @@ import {CapabilityRegistry} from "../CapabilityRegistry.sol"; contract CapabilityRegistry_RemoveNodesTest is BaseTest { event NodeRemoved(bytes32 p2pId); - uint32 private constant TEST_NODE_OPERATOR_ONE_ID = 1; - uint256 private constant TEST_NODE_OPERATOR_TWO_ID = 2; - bytes32 private constant INVALID_P2P_ID = bytes32("fake-p2p"); - function setUp() public override { BaseTest.setUp(); changePrank(ADMIN); diff --git a/contracts/src/v0.8/keystone/test/CapabilityRegistry_UpdateDONTest.t.sol b/contracts/src/v0.8/keystone/test/CapabilityRegistry_UpdateDONTest.t.sol index 6473839cd43..cbf697677cf 100644 --- a/contracts/src/v0.8/keystone/test/CapabilityRegistry_UpdateDONTest.t.sol +++ b/contracts/src/v0.8/keystone/test/CapabilityRegistry_UpdateDONTest.t.sol @@ -8,13 +8,6 @@ import {CapabilityRegistry} from "../CapabilityRegistry.sol"; contract CapabilityRegistry_UpdateDONTest is BaseTest { event ConfigSet(uint32 donId, uint32 configCount); - uint32 private constant DON_ID = 1; - uint32 private constant TEST_NODE_OPERATOR_ONE_ID = 1; - uint256 private constant TEST_NODE_OPERATOR_TWO_ID = 2; - bytes32 private constant INVALID_P2P_ID = bytes32("fake-p2p"); - bytes private constant BASIC_CAPABILITY_CONFIG = bytes("basic-capability-config"); - bytes private constant CONFIG_CAPABILITY_CONFIG = bytes("config-capability-config"); - function setUp() public override { BaseTest.setUp(); @@ -22,7 +15,7 @@ contract CapabilityRegistry_UpdateDONTest is BaseTest { s_capabilityRegistry.addCapability(s_basicCapability); s_capabilityRegistry.addCapability(s_capabilityWithConfigurationContract); - CapabilityRegistry.NodeInfo[] memory nodes = new CapabilityRegistry.NodeInfo[](2); + CapabilityRegistry.NodeInfo[] memory nodes = new CapabilityRegistry.NodeInfo[](3); bytes32[] memory capabilityIds = new bytes32[](2); capabilityIds[0] = s_basicHashedCapabilityId; capabilityIds[1] = s_capabilityWithConfigurationContractId; @@ -38,19 +31,24 @@ contract CapabilityRegistry_UpdateDONTest is BaseTest { nodeTwoCapabilityIds[0] = s_basicHashedCapabilityId; nodes[1] = CapabilityRegistry.NodeInfo({ - nodeOperatorId: TEST_NODE_OPERATOR_ONE_ID, + nodeOperatorId: TEST_NODE_OPERATOR_TWO_ID, p2pId: P2P_ID_TWO, signer: NODE_OPERATOR_TWO_SIGNER_ADDRESS, hashedCapabilityIds: nodeTwoCapabilityIds }); - changePrank(NODE_OPERATOR_ONE_ADMIN); - s_capabilityRegistry.addNodes(nodes); + nodes[2] = CapabilityRegistry.NodeInfo({ + nodeOperatorId: TEST_NODE_OPERATOR_THREE_ID, + p2pId: P2P_ID_THREE, + signer: NODE_OPERATOR_THREE_SIGNER_ADDRESS, + hashedCapabilityIds: capabilityIds + }); - changePrank(ADMIN); + s_capabilityRegistry.addNodes(nodes); - bytes32[] memory donNodes = new bytes32[](1); + bytes32[] memory donNodes = new bytes32[](2); donNodes[0] = P2P_ID; + donNodes[1] = P2P_ID_TWO; CapabilityRegistry.CapabilityConfiguration[] memory capabilityConfigs = new CapabilityRegistry.CapabilityConfiguration[](1); @@ -58,7 +56,7 @@ contract CapabilityRegistry_UpdateDONTest is BaseTest { capabilityId: s_basicHashedCapabilityId, config: BASIC_CAPABILITY_CONFIG }); - s_capabilityRegistry.addDON(donNodes, capabilityConfigs, true); + s_capabilityRegistry.addDON(donNodes, capabilityConfigs, true, true, F_VALUE); } function test_RevertWhen_CalledByNonAdmin() public { @@ -72,12 +70,13 @@ contract CapabilityRegistry_UpdateDONTest is BaseTest { capabilityId: s_basicHashedCapabilityId, config: BASIC_CAPABILITY_CONFIG }); - s_capabilityRegistry.updateDON(DON_ID, nodes, capabilityConfigs, true); + s_capabilityRegistry.updateDON(DON_ID, nodes, capabilityConfigs, true, true, F_VALUE); } function test_RevertWhen_NodeDoesNotSupportCapability() public { - bytes32[] memory nodes = new bytes32[](1); - nodes[0] = P2P_ID_TWO; + bytes32[] memory nodes = new bytes32[](2); + nodes[0] = P2P_ID; + nodes[1] = P2P_ID_TWO; CapabilityRegistry.CapabilityConfiguration[] memory capabilityConfigs = new CapabilityRegistry.CapabilityConfiguration[](1); capabilityConfigs[0] = CapabilityRegistry.CapabilityConfiguration({ @@ -91,12 +90,14 @@ contract CapabilityRegistry_UpdateDONTest is BaseTest { s_capabilityWithConfigurationContractId ) ); - s_capabilityRegistry.updateDON(DON_ID, nodes, capabilityConfigs, true); + s_capabilityRegistry.updateDON(DON_ID, nodes, capabilityConfigs, true, true, F_VALUE); } function test_RevertWhen_DONDoesNotExist() public { uint32 nonExistentDONId = 10; - bytes32[] memory nodes = new bytes32[](1); + bytes32[] memory nodes = new bytes32[](2); + nodes[0] = P2P_ID; + nodes[1] = P2P_ID_TWO; CapabilityRegistry.CapabilityConfiguration[] memory capabilityConfigs = new CapabilityRegistry.CapabilityConfiguration[](1); capabilityConfigs[0] = CapabilityRegistry.CapabilityConfiguration({ @@ -104,11 +105,13 @@ contract CapabilityRegistry_UpdateDONTest is BaseTest { config: BASIC_CAPABILITY_CONFIG }); vm.expectRevert(abi.encodeWithSelector(CapabilityRegistry.DONDoesNotExist.selector, nonExistentDONId)); - s_capabilityRegistry.updateDON(nonExistentDONId, nodes, capabilityConfigs, true); + s_capabilityRegistry.updateDON(nonExistentDONId, nodes, capabilityConfigs, true, true, F_VALUE); } function test_RevertWhen_CapabilityDoesNotExist() public { - bytes32[] memory nodes = new bytes32[](1); + bytes32[] memory nodes = new bytes32[](2); + nodes[0] = P2P_ID; + nodes[1] = P2P_ID_TWO; CapabilityRegistry.CapabilityConfiguration[] memory capabilityConfigs = new CapabilityRegistry.CapabilityConfiguration[](1); capabilityConfigs[0] = CapabilityRegistry.CapabilityConfiguration({ @@ -118,12 +121,13 @@ contract CapabilityRegistry_UpdateDONTest is BaseTest { vm.expectRevert( abi.encodeWithSelector(CapabilityRegistry.CapabilityDoesNotExist.selector, s_nonExistentHashedCapabilityId) ); - s_capabilityRegistry.updateDON(DON_ID, nodes, capabilityConfigs, true); + s_capabilityRegistry.updateDON(DON_ID, nodes, capabilityConfigs, true, true, F_VALUE); } function test_RevertWhen_DuplicateCapabilityAdded() public { - bytes32[] memory nodes = new bytes32[](1); + bytes32[] memory nodes = new bytes32[](2); nodes[0] = P2P_ID; + nodes[1] = P2P_ID_TWO; CapabilityRegistry.CapabilityConfiguration[] memory capabilityConfigs = new CapabilityRegistry.CapabilityConfiguration[](2); @@ -139,15 +143,16 @@ contract CapabilityRegistry_UpdateDONTest is BaseTest { vm.expectRevert( abi.encodeWithSelector(CapabilityRegistry.DuplicateDONCapability.selector, 1, s_basicHashedCapabilityId) ); - s_capabilityRegistry.updateDON(DON_ID, nodes, capabilityConfigs, true); + s_capabilityRegistry.updateDON(DON_ID, nodes, capabilityConfigs, true, true, F_VALUE); } function test_RevertWhen_DeprecatedCapabilityAdded() public { bytes32 capabilityId = s_basicHashedCapabilityId; s_capabilityRegistry.deprecateCapability(capabilityId); - bytes32[] memory nodes = new bytes32[](1); + bytes32[] memory nodes = new bytes32[](2); nodes[0] = P2P_ID; + nodes[1] = P2P_ID_TWO; CapabilityRegistry.CapabilityConfiguration[] memory capabilityConfigs = new CapabilityRegistry.CapabilityConfiguration[](1); @@ -157,7 +162,7 @@ contract CapabilityRegistry_UpdateDONTest is BaseTest { }); vm.expectRevert(abi.encodeWithSelector(CapabilityRegistry.CapabilityIsDeprecated.selector, capabilityId)); - s_capabilityRegistry.updateDON(DON_ID, nodes, capabilityConfigs, true); + s_capabilityRegistry.updateDON(DON_ID, nodes, capabilityConfigs, true, true, F_VALUE); } function test_RevertWhen_DuplicateNodeAdded() public { @@ -172,12 +177,13 @@ contract CapabilityRegistry_UpdateDONTest is BaseTest { config: BASIC_CAPABILITY_CONFIG }); vm.expectRevert(abi.encodeWithSelector(CapabilityRegistry.DuplicateDONNode.selector, 1, P2P_ID)); - s_capabilityRegistry.updateDON(DON_ID, nodes, capabilityConfigs, true); + s_capabilityRegistry.updateDON(DON_ID, nodes, capabilityConfigs, true, true, F_VALUE); } function test_UpdatesDON() public { - bytes32[] memory nodes = new bytes32[](1); + bytes32[] memory nodes = new bytes32[](2); nodes[0] = P2P_ID; + nodes[1] = P2P_ID_THREE; CapabilityRegistry.CapabilityConfiguration[] memory capabilityConfigs = new CapabilityRegistry.CapabilityConfiguration[](2); @@ -208,7 +214,7 @@ contract CapabilityRegistry_UpdateDONTest is BaseTest { ), 1 ); - s_capabilityRegistry.updateDON(DON_ID, nodes, capabilityConfigs, expectedDONIsPublic); + s_capabilityRegistry.updateDON(DON_ID, nodes, capabilityConfigs, expectedDONIsPublic, true, F_VALUE); CapabilityRegistry.DONInfo memory donInfo = s_capabilityRegistry.getDON(DON_ID); assertEq(donInfo.id, DON_ID); @@ -220,5 +226,6 @@ contract CapabilityRegistry_UpdateDONTest is BaseTest { assertEq(donInfo.nodeP2PIds.length, nodes.length); assertEq(donInfo.nodeP2PIds[0], P2P_ID); + assertEq(donInfo.nodeP2PIds[1], P2P_ID_THREE); } } diff --git a/contracts/src/v0.8/keystone/test/CapabilityRegistry_UpdateNodesTest.t.sol b/contracts/src/v0.8/keystone/test/CapabilityRegistry_UpdateNodesTest.t.sol index 3b099606a70..c97a9c339c4 100644 --- a/contracts/src/v0.8/keystone/test/CapabilityRegistry_UpdateNodesTest.t.sol +++ b/contracts/src/v0.8/keystone/test/CapabilityRegistry_UpdateNodesTest.t.sol @@ -7,11 +7,6 @@ import {CapabilityRegistry} from "../CapabilityRegistry.sol"; contract CapabilityRegistry_UpdateNodesTest is BaseTest { event NodeUpdated(bytes32 p2pId, uint256 nodeOperatorId, bytes32 signer); - uint32 private constant TEST_NODE_OPERATOR_ONE_ID = 1; - uint32 private constant TEST_NODE_OPERATOR_TWO_ID = 2; - bytes32 private constant INVALID_P2P_ID = bytes32("fake-p2p"); - bytes32 private constant NEW_NODE_SIGNER = bytes32("new-signer"); - function setUp() public override { BaseTest.setUp(); changePrank(ADMIN); diff --git a/contracts/src/v0.8/keystone/test/Constants.t.sol b/contracts/src/v0.8/keystone/test/Constants.t.sol index 54cd58e8541..9b13bd91f58 100644 --- a/contracts/src/v0.8/keystone/test/Constants.t.sol +++ b/contracts/src/v0.8/keystone/test/Constants.t.sol @@ -2,15 +2,34 @@ pragma solidity ^0.8.19; contract Constants { - address internal ADMIN = address(1); - address internal STRANGER = address(2); - address internal NODE_OPERATOR_ONE_ADMIN = address(3); - string internal NODE_OPERATOR_ONE_NAME = "node-operator-one"; - bytes32 internal NODE_OPERATOR_ONE_SIGNER_ADDRESS = bytes32(abi.encodePacked(address(3333))); - address internal NODE_OPERATOR_TWO_ADMIN = address(4); - string internal NODE_OPERATOR_TWO_NAME = "node-operator-two"; - bytes32 internal NODE_OPERATOR_TWO_SIGNER_ADDRESS = bytes32(abi.encodePacked(address(4444))); + address internal constant ADMIN = address(1); + address internal constant STRANGER = address(2); - bytes32 internal P2P_ID = hex"e42415859707d90ed4dc534ad730f187a17b0c368e1beec2e9b995587c4b0a05"; - bytes32 internal P2P_ID_TWO = hex"f53415859707d90ed4dc534ad730f187a17b0c368e1beec2e9b995587c4b0a05"; + uint32 internal constant TEST_NODE_OPERATOR_ONE_ID = 1; + address internal constant NODE_OPERATOR_ONE_ADMIN = address(3); + string internal constant NODE_OPERATOR_ONE_NAME = "node-operator-one"; + bytes32 internal constant NODE_OPERATOR_ONE_SIGNER_ADDRESS = bytes32(abi.encodePacked(address(3333))); + bytes32 internal constant P2P_ID = hex"e42415859707d90ed4dc534ad730f187a17b0c368e1beec2e9b995587c4b0a05"; + + uint32 internal constant TEST_NODE_OPERATOR_TWO_ID = 2; + address internal constant NODE_OPERATOR_TWO_ADMIN = address(4); + string internal constant NODE_OPERATOR_TWO_NAME = "node-operator-two"; + bytes32 internal constant NODE_OPERATOR_TWO_SIGNER_ADDRESS = bytes32(abi.encodePacked(address(4444))); + bytes32 internal constant P2P_ID_TWO = hex"f53415859707d90ed4dc534ad730f187a17b0c368e1beec2e9b995587c4b0a05"; + + uint32 internal constant TEST_NODE_OPERATOR_THREE_ID = 3; + address internal constant NODE_OPERATOR_THREE = address(4); + string internal constant NODE_OPERATOR_THREE_NAME = "node-operator-three"; + bytes32 internal constant NODE_OPERATOR_THREE_SIGNER_ADDRESS = bytes32(abi.encodePacked(address(5555))); + bytes32 internal constant P2P_ID_THREE = hex"f53415859707d90ed4dc534ad730f187a17b0c368e1beec2e9b995587c4b0a06"; + + uint32 internal constant F_VALUE = 1; + uint32 internal constant DON_ID = 1; + uint32 internal constant DON_ID_TWO = 2; + + bytes32 internal constant INVALID_P2P_ID = bytes32("fake-p2p"); + bytes32 internal constant NEW_NODE_SIGNER = hex"f53415859707d90ed4dc534ad730f187a17b0c368e1beec2e9b995587c4b0a07"; + + bytes internal constant BASIC_CAPABILITY_CONFIG = bytes("basic-capability-config"); + bytes internal constant CONFIG_CAPABILITY_CONFIG = bytes("config-capability-config"); } diff --git a/core/gethwrappers/keystone/generated/keystone_capability_registry/keystone_capability_registry.go b/core/gethwrappers/keystone/generated/keystone_capability_registry/keystone_capability_registry.go index 1725189ced6..40dfc10d6c2 100644 --- a/core/gethwrappers/keystone/generated/keystone_capability_registry/keystone_capability_registry.go +++ b/core/gethwrappers/keystone/generated/keystone_capability_registry/keystone_capability_registry.go @@ -31,8 +31,9 @@ var ( ) type CapabilityRegistryCapability struct { - LabelledName [32]byte - Version [32]byte + LabelledName string + Version string + CapabilityType uint8 ResponseType uint8 ConfigurationContract common.Address } @@ -45,7 +46,9 @@ type CapabilityRegistryCapabilityConfiguration struct { type CapabilityRegistryDONInfo struct { Id uint32 ConfigCount uint32 + F uint32 IsPublic bool + AcceptsWorkflows bool NodeP2PIds [][32]byte CapabilityConfigurations []CapabilityRegistryCapabilityConfiguration } @@ -63,8 +66,8 @@ type CapabilityRegistryNodeOperator struct { } var CapabilityRegistryMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[],\"name\":\"AccessForbidden\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CapabilityAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hashedCapabilityId\",\"type\":\"bytes32\"}],\"name\":\"CapabilityDoesNotExist\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hashedCapabilityId\",\"type\":\"bytes32\"}],\"name\":\"CapabilityIsDeprecated\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"}],\"name\":\"DONDoesNotExist\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"}],\"name\":\"DuplicateDONCapability\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"nodeP2PId\",\"type\":\"bytes32\"}],\"name\":\"DuplicateDONNode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"proposedConfigurationContract\",\"type\":\"address\"}],\"name\":\"InvalidCapabilityConfigurationContractInterface\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"hashedCapabilityIds\",\"type\":\"bytes32[]\"}],\"name\":\"InvalidNodeCapabilities\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidNodeOperatorAdmin\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"}],\"name\":\"InvalidNodeP2PId\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidNodeSigner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"lengthOne\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lengthTwo\",\"type\":\"uint256\"}],\"name\":\"LengthMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"nodeP2PId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"}],\"name\":\"NodeDoesNotSupportCapability\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"hashedCapabilityId\",\"type\":\"bytes32\"}],\"name\":\"CapabilityAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"hashedCapabilityId\",\"type\":\"bytes32\"}],\"name\":\"CapabilityDeprecated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"configCount\",\"type\":\"uint32\"}],\"name\":\"ConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nodeOperatorId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"signer\",\"type\":\"bytes32\"}],\"name\":\"NodeAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nodeOperatorId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"NodeOperatorAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nodeOperatorId\",\"type\":\"uint256\"}],\"name\":\"NodeOperatorRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nodeOperatorId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"NodeOperatorUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"}],\"name\":\"NodeRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nodeOperatorId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"signer\",\"type\":\"bytes32\"}],\"name\":\"NodeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"labelledName\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"},{\"internalType\":\"enumCapabilityRegistry.CapabilityResponseType\",\"name\":\"responseType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"configurationContract\",\"type\":\"address\"}],\"internalType\":\"structCapabilityRegistry.Capability\",\"name\":\"capability\",\"type\":\"tuple\"}],\"name\":\"addCapability\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"nodes\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"internalType\":\"structCapabilityRegistry.CapabilityConfiguration[]\",\"name\":\"capabilityConfigurations\",\"type\":\"tuple[]\"},{\"internalType\":\"bool\",\"name\":\"isPublic\",\"type\":\"bool\"}],\"name\":\"addDON\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"internalType\":\"structCapabilityRegistry.NodeOperator[]\",\"name\":\"nodeOperators\",\"type\":\"tuple[]\"}],\"name\":\"addNodeOperators\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"signer\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"hashedCapabilityIds\",\"type\":\"bytes32[]\"}],\"internalType\":\"structCapabilityRegistry.NodeInfo[]\",\"name\":\"nodes\",\"type\":\"tuple[]\"}],\"name\":\"addNodes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hashedCapabilityId\",\"type\":\"bytes32\"}],\"name\":\"deprecateCapability\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCapabilities\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"labelledName\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"},{\"internalType\":\"enumCapabilityRegistry.CapabilityResponseType\",\"name\":\"responseType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"configurationContract\",\"type\":\"address\"}],\"internalType\":\"structCapabilityRegistry.Capability[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hashedId\",\"type\":\"bytes32\"}],\"name\":\"getCapability\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"labelledName\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"},{\"internalType\":\"enumCapabilityRegistry.CapabilityResponseType\",\"name\":\"responseType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"configurationContract\",\"type\":\"address\"}],\"internalType\":\"structCapabilityRegistry.Capability\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"}],\"name\":\"getDON\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"id\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"configCount\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"isPublic\",\"type\":\"bool\"},{\"internalType\":\"bytes32[]\",\"name\":\"nodeP2PIds\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"internalType\":\"structCapabilityRegistry.CapabilityConfiguration[]\",\"name\":\"capabilityConfigurations\",\"type\":\"tuple[]\"}],\"internalType\":\"structCapabilityRegistry.DONInfo\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"}],\"name\":\"getDONCapabilityConfig\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDONs\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"id\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"configCount\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"isPublic\",\"type\":\"bool\"},{\"internalType\":\"bytes32[]\",\"name\":\"nodeP2PIds\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"internalType\":\"structCapabilityRegistry.CapabilityConfiguration[]\",\"name\":\"capabilityConfigurations\",\"type\":\"tuple[]\"}],\"internalType\":\"structCapabilityRegistry.DONInfo[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"labelledName\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"}],\"name\":\"getHashedCapabilityId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"}],\"name\":\"getNode\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"signer\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"hashedCapabilityIds\",\"type\":\"bytes32[]\"}],\"internalType\":\"structCapabilityRegistry.NodeInfo\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"configCount\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"nodeOperatorId\",\"type\":\"uint256\"}],\"name\":\"getNodeOperator\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"internalType\":\"structCapabilityRegistry.NodeOperator\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNodeOperators\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"internalType\":\"structCapabilityRegistry.NodeOperator[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNodes\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"signer\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"hashedCapabilityIds\",\"type\":\"bytes32[]\"}],\"internalType\":\"structCapabilityRegistry.NodeInfo[]\",\"name\":\"\",\"type\":\"tuple[]\"},{\"internalType\":\"uint32[]\",\"name\":\"\",\"type\":\"uint32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hashedCapabilityId\",\"type\":\"bytes32\"}],\"name\":\"isCapabilityDeprecated\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32[]\",\"name\":\"donIds\",\"type\":\"uint32[]\"}],\"name\":\"removeDONs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"nodeOperatorIds\",\"type\":\"uint256[]\"}],\"name\":\"removeNodeOperators\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"removedNodeP2PIds\",\"type\":\"bytes32[]\"}],\"name\":\"removeNodes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"typeAndVersion\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32[]\",\"name\":\"nodes\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"internalType\":\"structCapabilityRegistry.CapabilityConfiguration[]\",\"name\":\"capabilityConfigurations\",\"type\":\"tuple[]\"},{\"internalType\":\"bool\",\"name\":\"isPublic\",\"type\":\"bool\"}],\"name\":\"updateDON\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"nodeOperatorIds\",\"type\":\"uint256[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"internalType\":\"structCapabilityRegistry.NodeOperator[]\",\"name\":\"nodeOperators\",\"type\":\"tuple[]\"}],\"name\":\"updateNodeOperators\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"signer\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"hashedCapabilityIds\",\"type\":\"bytes32[]\"}],\"internalType\":\"structCapabilityRegistry.NodeInfo[]\",\"name\":\"nodes\",\"type\":\"tuple[]\"}],\"name\":\"updateNodes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x6080604052601280546001600160401b0319166401000000011790553480156200002857600080fd5b503380600081620000805760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420736574206f776e657220746f207a65726f000000000000000060448201526064015b60405180910390fd5b600080546001600160a01b0319166001600160a01b0384811691909117909155811615620000b357620000b381620000bc565b50505062000167565b336001600160a01b03821603620001165760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640162000077565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b61437580620001776000396000f3fe608060405234801561001057600080fd5b50600436106101ae5760003560e01c806365c14dc7116100ee5780639cb7c5f411610097578063c63239c511610071578063c63239c514610413578063ddbe4f8214610426578063e29581aa1461043b578063f2fde38b1461045157600080fd5b80639cb7c5f4146103cd578063ae3c241c146103ed578063b06e07a71461040057600080fd5b806373ac22b4116100c857806373ac22b41461038a57806379ba50971461039d5780638da5cb5b146103a557600080fd5b806365c14dc71461034257806366acaa33146103625780636ae5c5911461037757600080fd5b8063214502431161015b57806336b402fb1161013557806336b402fb146102b3578063398f3773146102fb57806350c946fe1461030e5780635e65e3091461032f57600080fd5b8063214502431461026b57806323537405146102805780632c01a1e8146102a057600080fd5b8063181f5a771161018c578063181f5a77146102035780631cdf6343146102455780631d05394c1461025857600080fd5b80630c5801e3146101b3578063117392ce146101c857806312570011146101db575b600080fd5b6101c66101c136600461328f565b610464565b005b6101c66101d63660046132fb565b610775565b6101ee6101e9366004613313565b6109c0565b60405190151581526020015b60405180910390f35b60408051808201909152601881527f4361706162696c697479526567697374727920312e302e30000000000000000060208201525b6040516101fa9190613390565b6101c66102533660046133a3565b6109d3565b6101c66102663660046133a3565b610aa3565b610273610be3565b6040516101fa91906134f5565b61029361028e36600461358e565b610d32565b6040516101fa91906135a9565b6101c66102ae3660046133a3565b610d65565b6102ed6102c13660046135bc565b604080516020808201949094528082019290925280518083038201815260609092019052805191012090565b6040519081526020016101fa565b6101c66103093660046133a3565b611009565b61032161031c366004613313565b6111cc565b6040516101fa92919061361f565b6101c661033d3660046133a3565b611201565b610355610350366004613313565b611704565b6040516101fa919061367c565b61036a6117ea565b6040516101fa919061368f565b6101c6610385366004613710565b6119a8565b6101c66103983660046133a3565b611a4b565b6101c6611eb1565b60005460405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101fa565b6103e06103db366004613313565b611fae565b6040516101fa9190613833565b6101c66103fb366004613313565b612058565b61023861040e366004613841565b612123565b6101c661042136600461386b565b6121f8565b61042e612287565b6040516101fa91906138fe565b61044361244d565b6040516101fa92919061394c565b6101c661045f366004613a2d565b6125d8565b8281146104ac576040517fab8b67c600000000000000000000000000000000000000000000000000000000815260048101849052602481018290526044015b60405180910390fd5b6000805473ffffffffffffffffffffffffffffffffffffffff16905b8481101561076d5760008686838181106104e4576104e4613a4a565b905060200201359050600085858481811061050157610501613a4a565b90506020028101906105139190613a79565b61051c90613b81565b805190915073ffffffffffffffffffffffffffffffffffffffff1661056d576040517feeacd93900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805173ffffffffffffffffffffffffffffffffffffffff1633148015906105aa57503373ffffffffffffffffffffffffffffffffffffffff851614155b156105e1576040517fef67f5d800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80516000838152600f602052604090205473ffffffffffffffffffffffffffffffffffffffff908116911614158061069357506020808201516040516106279201613390565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825280516020918201206000868152600f835292909220919261067a926001019101613c9a565b6040516020818303038152906040528051906020012014155b1561075a5780516000838152600f6020908152604090912080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9093169290921782558201516001909101906107009082613d89565b50806000015173ffffffffffffffffffffffffffffffffffffffff167f14c8f513e8a6d86d2d16b0cb64976de4e72386c4f8068eca3b7354373f8fe97a838360200151604051610751929190613ea3565b60405180910390a25b50508061076690613eeb565b90506104c8565b505050505050565b61077d6125ec565b6040805182356020828101919091528084013582840152825180830384018152606090920190925280519101206107b560038261266f565b156107ec576040517fe288638f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006107fe6080840160608501613a2d565b73ffffffffffffffffffffffffffffffffffffffff1614610969576108296080830160608401613a2d565b73ffffffffffffffffffffffffffffffffffffffff163b158061090957506108576080830160608401613a2d565b6040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527f73e8b41d00000000000000000000000000000000000000000000000000000000600482015273ffffffffffffffffffffffffffffffffffffffff91909116906301ffc9a790602401602060405180830381865afa1580156108e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109079190613f23565b155b156109695761091e6080830160608401613a2d565b6040517fabb5e3fd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911660048201526024016104a3565b61097460038261268a565b506000818152600260205260409020829061098f8282613f40565b505060405181907f65610e5677eedff94555572640e442f89848a109ef8593fa927ac30b2565ff0690600090a25050565b60006109cd60058361266f565b92915050565b6109db6125ec565b60005b81811015610a9e5760008383838181106109fa576109fa613a4a565b602090810292909201356000818152600f9093526040832080547fffffffffffffffffffffffff0000000000000000000000000000000000000000168155909350919050610a4b60018301826131f5565b50610a59905060078261268a565b506040518181527f1e5877d7b3001d1569bf733b76c7eceda58bd6c031e5b8d0b7042308ba2e9d4f9060200160405180910390a150610a9781613eeb565b90506109de565b505050565b610aab6125ec565b60005b81811015610a9e576000838383818110610aca57610aca613a4a565b9050602002016020810190610adf919061358e565b63ffffffff808216600090815260116020526040812080549394509264010000000090049091169003610b46576040517f2b62be9b00000000000000000000000000000000000000000000000000000000815263ffffffff831660048201526024016104a3565b63ffffffff808316600081815260116020526040902080547fffffffffffffffffffffffffffffffffffffffffffffff000000000000000000169055610b90916009919061268a16565b506040805163ffffffff84168152600060208201527ff264aae70bf6a9d90e68e0f9b393f4e7fbea67b063b0f336e0b36c1581703651910160405180910390a1505080610bdc90613eeb565b9050610aae565b601254606090640100000000900463ffffffff1660006001610c056009612696565b601254610c209190640100000000900463ffffffff16613fc2565b610c2a9190613fc2565b67ffffffffffffffff811115610c4257610c42613ab7565b604051908082528060200260200182016040528015610cb857816020015b6040805160a08101825260008082526020808301829052928201526060808201819052608082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff909201910181610c605790505b509050600060015b838163ffffffff161015610d2957610ce2600963ffffffff8084169061266f16565b610d1957610cef816126a0565b838381518110610d0157610d01613a4a565b602002602001018190525081610d1690613eeb565b91505b610d2281613fd5565b9050610cc0565b50909392505050565b6040805160a08101825260008082526020820181905291810191909152606080820181905260808201526109cd826126a0565b6000805473ffffffffffffffffffffffffffffffffffffffff163314905b82811015611003576000848483818110610d9f57610d9f613a4a565b602090810292909201356000818152601090935260409092206001015491925050151580610dfc576040517f64e2ee92000000000000000000000000000000000000000000000000000000008152600481018390526024016104a3565b60008281526010602090815260408083205463ffffffff168352600f82528083208151808301909252805473ffffffffffffffffffffffffffffffffffffffff1682526001810180549293919291840191610e5690613c4d565b80601f0160208091040260200160405190810160405280929190818152602001828054610e8290613c4d565b8015610ecf5780601f10610ea457610100808354040283529160200191610ecf565b820191906000526020600020905b815481529060010190602001808311610eb257829003601f168201915b505050505081525050905084158015610eff5750805173ffffffffffffffffffffffffffffffffffffffff163314155b15610f36576040517fef67f5d800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600083815260106020526040902060010154610f5490600b90612939565b50600083815260106020526040902060020154610f7390600d90612939565b5060008381526010602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001681556001810183905560020191909155517f5254e609a97bab37b7cc79fe128f85c097bd6015c6e1624ae0ba392eb975320590610fe79085815260200190565b60405180910390a150505080610ffc90613eeb565b9050610d83565b50505050565b6110116125ec565b60005b81811015610a9e57600083838381811061103057611030613a4a565b90506020028101906110429190613a79565b61104b90613b81565b805190915073ffffffffffffffffffffffffffffffffffffffff1661109c576040517feeacd93900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b601254604080518082018252835173ffffffffffffffffffffffffffffffffffffffff908116825260208086015181840190815263ffffffff9095166000818152600f909252939020825181547fffffffffffffffffffffffff000000000000000000000000000000000000000016921691909117815592519192909160018201906111289082613d89565b5050601280549091506000906111439063ffffffff16613fd5565b91906101000a81548163ffffffff021916908363ffffffff160217905550816000015173ffffffffffffffffffffffffffffffffffffffff167fda6697b182650034bd205cdc2dbfabb06bdb3a0a83a2b45bfefa3c4881284e0b8284602001516040516111b1929190613ea3565b60405180910390a25050806111c590613eeb565b9050611014565b60408051608081018252600080825260208201819052918101829052606080820152906111f883612945565b91509150915091565b60005b81811015610a9e57600083838381811061122057611220613a4a565b90506020028101906112329190613ff8565b61123b9061402c565b9050600061125e60005473ffffffffffffffffffffffffffffffffffffffff1690565b825163ffffffff166000908152600f602090815260408083208151808301909252805473ffffffffffffffffffffffffffffffffffffffff908116835260018201805496909116331496509394919390928401916112bb90613c4d565b80601f01602080910402602001604051908101604052809291908181526020018280546112e790613c4d565b80156113345780601f1061130957610100808354040283529160200191611334565b820191906000526020600020905b81548152906001019060200180831161131757829003601f168201915b5050505050815250509050811580156113645750805173ffffffffffffffffffffffffffffffffffffffff163314155b1561139b576040517fef67f5d800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040808401516000908152601060205220600101541515806113f15783604001516040517f64e2ee920000000000000000000000000000000000000000000000000000000081526004016104a391815260200190565b6020840151158061143757508360200151601060008660400151815260200190815260200160002060010154141580156114375750602084015161143790600b9061266f565b1561146e576040517f8377314600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606084015180516000036114b057806040517f3748d4c60000000000000000000000000000000000000000000000000000000081526004016104a391906140ff565b60408581015160009081526010602052208054640100000000900463ffffffff169060046114dd83613fd5565b82546101009290920a63ffffffff8181021990931691831602179091556040878101516000908152601060205290812054640100000000900490911691505b82518110156115e85761155283828151811061153a5761153a613a4a565b6020026020010151600361266f90919063ffffffff16565b61158a57826040517f3748d4c60000000000000000000000000000000000000000000000000000000081526004016104a391906140ff565b6115d783828151811061159f5761159f613a4a565b6020908102919091018101516040808b015160009081526010845281812063ffffffff80891683526003909101909452209161268a16565b506115e181613eeb565b905061151c565b5085516040808801805160009081526010602090815283822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff9096169590951790945581518082528382206002015581518152828120600190810154948b015192518252929020909101541461169d5761166c600b82612939565b50602080880180516040808b015160009081526010909452909220600101919091555161169b90600b9061268a565b505b60408781015188516020808b0151845193845263ffffffff909216908301528183015290517ff101cfc54994c31624d25789378d71ec4dbdc533e26a4ecc6b7648f4798d09169181900360600190a150505050505050806116fd90613eeb565b9050611204565b6040805180820190915260008152606060208201526000828152600f60209081526040918290208251808401909352805473ffffffffffffffffffffffffffffffffffffffff168352600181018054919284019161176190613c4d565b80601f016020809104026020016040519081016040528092919081815260200182805461178d90613c4d565b80156117da5780601f106117af576101008083540402835291602001916117da565b820191906000526020600020905b8154815290600101906020018083116117bd57829003601f168201915b5050505050815250509050919050565b60125460609063ffffffff16600060016118046007612696565b601254611817919063ffffffff16613fc2565b6118219190613fc2565b67ffffffffffffffff81111561183957611839613ab7565b60405190808252806020026020018201604052801561187f57816020015b6040805180820190915260008152606060208201528152602001906001900390816118575790505b509050600060015b8363ffffffff16811015610d29576118a060078261266f565b611998576000818152600f60209081526040918290208251808401909352805473ffffffffffffffffffffffffffffffffffffffff16835260018101805491928401916118ec90613c4d565b80601f016020809104026020016040519081016040528092919081815260200182805461191890613c4d565b80156119655780601f1061193a57610100808354040283529160200191611965565b820191906000526020600020905b81548152906001019060200180831161194857829003601f168201915b50505050508152505083838151811061198057611980613a4a565b60200260200101819052508161199590613eeb565b91505b6119a181613eeb565b9050611887565b6119b06125ec565b601254640100000000900463ffffffff16600081815260116020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001682179055611a0781600188888888886129ea565b60128054600490611a2590640100000000900463ffffffff16613fd5565b91906101000a81548163ffffffff021916908363ffffffff160217905550505050505050565b60005b81811015610a9e576000838383818110611a6a57611a6a613a4a565b9050602002810190611a7c9190613ff8565b611a859061402c565b90506000611aa860005473ffffffffffffffffffffffffffffffffffffffff1690565b825163ffffffff166000908152600f602090815260408083208151808301909252805473ffffffffffffffffffffffffffffffffffffffff90811683526001820180549690911633149650939491939092840191611b0590613c4d565b80601f0160208091040260200160405190810160405280929190818152602001828054611b3190613c4d565b8015611b7e5780601f10611b5357610100808354040283529160200191611b7e565b820191906000526020600020905b815481529060010190602001808311611b6157829003601f168201915b505050505081525050905081158015611bae5750805173ffffffffffffffffffffffffffffffffffffffff163314155b15611be5576040517fef67f5d800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60408084015160009081526010602052206001015415158080611c0a57506040840151155b15611c495783604001516040517f64e2ee920000000000000000000000000000000000000000000000000000000081526004016104a391815260200190565b60208401511580611c6657506020840151611c6690600b9061266f565b15611c9d576040517f8377314600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60608401518051600003611cdf57806040517f3748d4c60000000000000000000000000000000000000000000000000000000081526004016104a391906140ff565b60408581015160009081526010602052208054600490611d0c90640100000000900463ffffffff16613fd5565b82546101009290920a63ffffffff81810219909316918316021790915560408681015160009081526010602052908120546401000000009004909116905b8251811015611dc657611d6883828151811061153a5761153a613a4a565b611da057826040517f3748d4c60000000000000000000000000000000000000000000000000000000081526004016104a391906140ff565b611db583828151811061159f5761159f613a4a565b50611dbf81613eeb565b9050611d4a565b5085516040808801805160009081526010602090815283822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff9687161790558251808352848320600201558a018051925182529290206001015551611e3891600b919061268a16565b506040860151611e4a90600d9061268a565b5060408681015187516020808a0151845193845263ffffffff909216908301528183015290517fc9296aa9b0951d8000e8ed7f2b5be30c5106de8df3dbedf9a57c93f5f9e4d7da9181900360600190a150505050505080611eaa90613eeb565b9050611a4e565b60015473ffffffffffffffffffffffffffffffffffffffff163314611f32576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4d7573742062652070726f706f736564206f776e65720000000000000000000060448201526064016104a3565b60008054337fffffffffffffffffffffffff00000000000000000000000000000000000000008083168217845560018054909116905560405173ffffffffffffffffffffffffffffffffffffffff90921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b604080516080808201835260008083526020808401829052838501829052606084018290528582526002808252918590208551938401865280548452600180820154928501929092529182015493949293919284019160ff169081111561201757612017613794565b600181111561202857612028613794565b815260029190910154610100900473ffffffffffffffffffffffffffffffffffffffff1660209091015292915050565b6120606125ec565b61206b60038261266f565b6120a4576040517fe181733f000000000000000000000000000000000000000000000000000000008152600481018290526024016104a3565b6120af60058261266f565b156120e9576040517ff7d7a294000000000000000000000000000000000000000000000000000000008152600481018290526024016104a3565b6120f460058261268a565b5060405181907fdcea1b78b6ddc31592a94607d537543fcaafda6cc52d6d5cc7bbfca1422baf2190600090a250565b63ffffffff8083166000908152601160209081526040808320805464010000000090049094168084526001909401825280832085845260030190915290208054606092919061217190613c4d565b80601f016020809104026020016040519081016040528092919081815260200182805461219d90613c4d565b80156121ea5780601f106121bf576101008083540402835291602001916121ea565b820191906000526020600020905b8154815290600101906020018083116121cd57829003601f168201915b505050505091505092915050565b6122006125ec565b63ffffffff808716600090815260116020526040812054640100000000900490911690819003612264576040517f2b62be9b00000000000000000000000000000000000000000000000000000000815263ffffffff881660048201526024016104a3565b61227e8761227183613fd5565b92508288888888886129ea565b50505050505050565b606060006122956003612e76565b905060006122a36005612696565b82516122af9190613fc2565b67ffffffffffffffff8111156122c7576122c7613ab7565b60405190808252806020026020018201604052801561233757816020015b6040805160808101825260008082526020808301829052928201819052606082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092019101816122e55790505b5090506000805b8351811015610d2957600084828151811061235b5761235b613a4a565b6020026020010151905061237981600561266f90919063ffffffff16565b61243c576002600082815260200190815260200160002060405180608001604052908160008201548152602001600182015481526020016002820160009054906101000a900460ff1660018111156123d3576123d3613794565b60018111156123e4576123e4613794565b815260029190910154610100900473ffffffffffffffffffffffffffffffffffffffff16602090910152845185908590811061242257612422613a4a565b6020026020010181905250828061243890613eeb565b9350505b5061244681613eeb565b905061233e565b606080600061245c600d612e76565b90506000815167ffffffffffffffff81111561247a5761247a613ab7565b6040519080825280602002602001820160405280156124e957816020015b60408051608081018252600080825260208083018290529282015260608082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092019101816124985790505b5090506000825167ffffffffffffffff81111561250857612508613ab7565b604051908082528060200260200182016040528015612531578160200160208202803683370190505b50905060005b83518110156125cd57600084828151811061255457612554613a4a565b6020026020010151905060008061256a83612945565b915091508186858151811061258157612581613a4a565b60200260200101819052508085858151811061259f5761259f613a4a565b602002602001019063ffffffff16908163ffffffff1681525050505050806125c690613eeb565b9050612537565b509094909350915050565b6125e06125ec565b6125e981612e83565b50565b60005473ffffffffffffffffffffffffffffffffffffffff16331461266d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4f6e6c792063616c6c61626c65206279206f776e65720000000000000000000060448201526064016104a3565b565b600081815260018301602052604081205415155b9392505050565b60006126838383612f78565b60006109cd825490565b6040805160a081018252600080825260208083018290528284018290526060808401819052608084015263ffffffff85811683526011825284832080546401000000009004909116808452600190910182528483206002810180548751818602810186019098528088529596929591949390919083018282801561274357602002820191906000526020600020905b81548152602001906001019080831161272f575b505050505090506000815167ffffffffffffffff81111561276657612766613ab7565b6040519080825280602002602001820160405280156127ac57816020015b6040805180820190915260008152606060208201528152602001906001900390816127845790505b50905060005b81518110156128cd5760405180604001604052808483815181106127d8576127d8613a4a565b602002602001015181526020018560030160008685815181106127fd576127fd613a4a565b60200260200101518152602001908152602001600020805461281e90613c4d565b80601f016020809104026020016040519081016040528092919081815260200182805461284a90613c4d565b80156128975780601f1061286c57610100808354040283529160200191612897565b820191906000526020600020905b81548152906001019060200180831161287a57829003601f168201915b50505050508152508282815181106128b1576128b1613a4a565b6020026020010181905250806128c690613eeb565b90506127b2565b506040805160a08101825263ffffffff888116600081815260116020818152868320548086168752948b168187015292909152905268010000000000000000900460ff161515918101919091526060810161292785612e76565b81526020019190915295945050505050565b60006126838383612fc7565b604080516080810182526000808252602082018190529181019190915260608082015260408051608081018252600084815260106020908152838220805463ffffffff8082168652600183015484870152600283015486880152640100000000909104168352600301905291822060608201906129c190612e76565b905260009384526010602052604090932054929364010000000090930463ffffffff1692915050565b63ffffffff8088166000908152601160209081526040808320938a16835260019093019052908120905b85811015612ad857612a41878783818110612a3157612a31613a4a565b859260209091020135905061266f565b15612aa25788878783818110612a5957612a59613a4a565b6040517f636e405700000000000000000000000000000000000000000000000000000000815263ffffffff909416600485015260200291909101356024830152506044016104a3565b612ac7878783818110612ab757612ab7613a4a565b859260209091020135905061268a565b50612ad181613eeb565b9050612a14565b5060005b83811015612db75736858583818110612af757612af7613a4a565b9050602002810190612b099190613a79565b9050612b176003823561266f565b612b50576040517fe181733f000000000000000000000000000000000000000000000000000000008152813560048201526024016104a3565b612b5c6005823561266f565b15612b96576040517ff7d7a294000000000000000000000000000000000000000000000000000000008152813560048201526024016104a3565b8035600090815260038401602052604081208054612bb390613c4d565b90501115612bfc576040517f3927d08000000000000000000000000000000000000000000000000000000000815263ffffffff8b166004820152813560248201526044016104a3565b60005b87811015612d0e57612ca38235601060008c8c86818110612c2257612c22613a4a565b9050602002013581526020019081526020016000206003016000601060008e8e88818110612c5257612c52613a4a565b90506020020135815260200190815260200160002060000160049054906101000a900463ffffffff1663ffffffff1663ffffffff16815260200190815260200160002061266f90919063ffffffff16565b612cfe57888882818110612cb957612cb9613a4a565b6040517fa7e7925000000000000000000000000000000000000000000000000000000000815260209091029290920135600483015250823560248201526044016104a3565b612d0781613eeb565b9050612bff565b5060028301805460018101825560009182526020918290208335910155612d3790820182614137565b82356000908152600386016020526040902091612d5591908361419c565b50612da68a8a83358b8b612d6c6020880188614137565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506130ba92505050565b50612db081613eeb565b9050612adc565b5063ffffffff88811660008181526011602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffff0000000000ffffffff1668010000000000000000881515027fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff1617640100000000958d1695860217905581519283528201929092527ff264aae70bf6a9d90e68e0f9b393f4e7fbea67b063b0f336e0b36c1581703651910160405180910390a15050505050505050565b6060600061268383613199565b3373ffffffffffffffffffffffffffffffffffffffff821603612f02576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c6600000000000000000060448201526064016104a3565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b6000818152600183016020526040812054612fbf575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556109cd565b5060006109cd565b600081815260018301602052604081205480156130b0576000612feb600183613fc2565b8554909150600090612fff90600190613fc2565b905081811461306457600086600001828154811061301f5761301f613a4a565b906000526020600020015490508087600001848154811061304257613042613a4a565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080613075576130756142b7565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506109cd565b60009150506109cd565b60008481526002602081905260409091200154610100900473ffffffffffffffffffffffffffffffffffffffff161561076d57600084815260026020819052604091829020015490517ffba64a7c00000000000000000000000000000000000000000000000000000000815261010090910473ffffffffffffffffffffffffffffffffffffffff169063fba64a7c9061315f908690869086908b908d906004016142e6565b600060405180830381600087803b15801561317957600080fd5b505af115801561318d573d6000803e3d6000fd5b50505050505050505050565b6060816000018054806020026020016040519081016040528092919081815260200182805480156131e957602002820191906000526020600020905b8154815260200190600101908083116131d5575b50505050509050919050565b50805461320190613c4d565b6000825580601f10613211575050565b601f0160209004906000526020600020908101906125e991905b8082111561323f576000815560010161322b565b5090565b60008083601f84011261325557600080fd5b50813567ffffffffffffffff81111561326d57600080fd5b6020830191508360208260051b850101111561328857600080fd5b9250929050565b600080600080604085870312156132a557600080fd5b843567ffffffffffffffff808211156132bd57600080fd5b6132c988838901613243565b909650945060208701359150808211156132e257600080fd5b506132ef87828801613243565b95989497509550505050565b60006080828403121561330d57600080fd5b50919050565b60006020828403121561332557600080fd5b5035919050565b6000815180845260005b8181101561335257602081850181015186830182015201613336565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081526000612683602083018461332c565b600080602083850312156133b657600080fd5b823567ffffffffffffffff8111156133cd57600080fd5b6133d985828601613243565b90969095509350505050565b600081518084526020808501945080840160005b83811015613415578151875295820195908201906001016133f9565b509495945050505050565b600063ffffffff8083511684526020818185015116818601526040915081840151151582860152606084015160a0606087015261346060a08701826133e5565b9050608085015186820360808801528181518084528484019150848160051b850101858401935060005b828110156134e7578582037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00184528451805183528701518783018990526134d48984018261332c565b958801959488019492505060010161348a565b509998505050505050505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015613568577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0888603018452613556858351613420565b9450928501929085019060010161351c565b5092979650505050505050565b803563ffffffff8116811461358957600080fd5b919050565b6000602082840312156135a057600080fd5b61268382613575565b6020815260006126836020830184613420565b600080604083850312156135cf57600080fd5b50508035926020909101359150565b63ffffffff81511682526020810151602083015260408101516040830152600060608201516080606085015261361760808501826133e5565b949350505050565b60408152600061363260408301856135de565b905063ffffffff831660208301529392505050565b73ffffffffffffffffffffffffffffffffffffffff81511682526000602082015160406020850152613617604085018261332c565b6020815260006126836020830184613647565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015613568577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08886030184526136f0858351613647565b945092850192908501906001016136b6565b80151581146125e957600080fd5b60008060008060006060868803121561372857600080fd5b853567ffffffffffffffff8082111561374057600080fd5b61374c89838a01613243565b9097509550602088013591508082111561376557600080fd5b5061377288828901613243565b909450925050604086013561378681613702565b809150509295509295909350565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b805182526020810151602083015260408101516002811061380d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b604083015260609081015173ffffffffffffffffffffffffffffffffffffffff16910152565b608081016109cd82846137c3565b6000806040838503121561385457600080fd5b61385d83613575565b946020939093013593505050565b6000806000806000806080878903121561388457600080fd5b61388d87613575565b9550602087013567ffffffffffffffff808211156138aa57600080fd5b6138b68a838b01613243565b909750955060408901359150808211156138cf57600080fd5b506138dc89828a01613243565b90945092505060608701356138f081613702565b809150509295509295509295565b6020808252825182820181905260009190848201906040850190845b818110156139405761392d8385516137c3565b928401926080929092019160010161391a565b50909695505050505050565b6000604082016040835280855180835260608501915060608160051b8601019250602080880160005b838110156139c1577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08887030185526139af8683516135de565b95509382019390820190600101613975565b50508584038187015286518085528782019482019350915060005b828110156139fe57845163ffffffff16845293810193928101926001016139dc565b5091979650505050505050565b73ffffffffffffffffffffffffffffffffffffffff811681146125e957600080fd5b600060208284031215613a3f57600080fd5b813561268381613a0b565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc1833603018112613aad57600080fd5b9190910192915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715613b0957613b09613ab7565b60405290565b6040516080810167ffffffffffffffff81118282101715613b0957613b09613ab7565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715613b7957613b79613ab7565b604052919050565b600060408236031215613b9357600080fd5b613b9b613ae6565b8235613ba681613a0b565b815260208381013567ffffffffffffffff80821115613bc457600080fd5b9085019036601f830112613bd757600080fd5b813581811115613be957613be9613ab7565b613c19847fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601613b32565b91508082523684828501011115613c2f57600080fd5b80848401858401376000908201840152918301919091525092915050565b600181811c90821680613c6157607f821691505b60208210810361330d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000602080835260008454613cae81613c4d565b80848701526040600180841660008114613ccf5760018114613d0757613d35565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008516838a01528284151560051b8a01019550613d35565b896000528660002060005b85811015613d2d5781548b8201860152908301908801613d12565b8a0184019650505b509398975050505050505050565b601f821115610a9e57600081815260208120601f850160051c81016020861015613d6a5750805b601f850160051c820191505b8181101561076d57828155600101613d76565b815167ffffffffffffffff811115613da357613da3613ab7565b613db781613db18454613c4d565b84613d43565b602080601f831160018114613e0a5760008415613dd45750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b17855561076d565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b82811015613e5757888601518255948401946001909101908401613e38565b5085821015613e9357878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b828152604060208201526000613617604083018461332c565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613f1c57613f1c613ebc565b5060010190565b600060208284031215613f3557600080fd5b815161268381613702565b813581556020820135600182015560028101604083013560028110613f6457600080fd5b81546060850135613f7481613a0b565b74ffffffffffffffffffffffffffffffffffffffff008160081b1660ff84167fffffffffffffffffffffff000000000000000000000000000000000000000000841617178455505050505050565b818103818111156109cd576109cd613ebc565b600063ffffffff808316818103613fee57613fee613ebc565b6001019392505050565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81833603018112613aad57600080fd5b60006080823603121561403e57600080fd5b614046613b0f565b61404f83613575565b81526020808401358183015260408401356040830152606084013567ffffffffffffffff8082111561408057600080fd5b9085019036601f83011261409357600080fd5b8135818111156140a5576140a5613ab7565b8060051b91506140b6848301613b32565b81815291830184019184810190368411156140d057600080fd5b938501935b838510156140ee578435825293850193908501906140d5565b606087015250939695505050505050565b6020808252825182820181905260009190848201906040850190845b818110156139405783518352928401929184019160010161411b565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261416c57600080fd5b83018035915067ffffffffffffffff82111561418757600080fd5b60200191503681900382131561328857600080fd5b67ffffffffffffffff8311156141b4576141b4613ab7565b6141c8836141c28354613c4d565b83613d43565b6000601f84116001811461421a57600085156141e45750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b1783556142b0565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b828110156142695786850135825560209485019460019092019101614249565b50868210156142a4577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b6080815284608082015260007f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff86111561431f57600080fd5b8560051b808860a0850137820182810360a090810160208501526143459082018761332c565b91505063ffffffff8085166040840152808416606084015250969550505050505056fea164736f6c6343000813000a", + ABI: "[{\"inputs\":[],\"name\":\"AccessForbidden\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CapabilityAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hashedCapabilityId\",\"type\":\"bytes32\"}],\"name\":\"CapabilityDoesNotExist\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hashedCapabilityId\",\"type\":\"bytes32\"}],\"name\":\"CapabilityIsDeprecated\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"}],\"name\":\"DONDoesNotExist\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"}],\"name\":\"DuplicateDONCapability\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"nodeP2PId\",\"type\":\"bytes32\"}],\"name\":\"DuplicateDONNode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"proposedConfigurationContract\",\"type\":\"address\"}],\"name\":\"InvalidCapabilityConfigurationContractInterface\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"f\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"nodeCount\",\"type\":\"uint256\"}],\"name\":\"InvalidFaultTolerance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"hashedCapabilityIds\",\"type\":\"bytes32[]\"}],\"name\":\"InvalidNodeCapabilities\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidNodeOperatorAdmin\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"}],\"name\":\"InvalidNodeP2PId\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidNodeSigner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"lengthOne\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lengthTwo\",\"type\":\"uint256\"}],\"name\":\"LengthMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"nodeP2PId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"}],\"name\":\"NodeDoesNotSupportCapability\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"hashedCapabilityId\",\"type\":\"bytes32\"}],\"name\":\"CapabilityAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"hashedCapabilityId\",\"type\":\"bytes32\"}],\"name\":\"CapabilityDeprecated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"configCount\",\"type\":\"uint32\"}],\"name\":\"ConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nodeOperatorId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"signer\",\"type\":\"bytes32\"}],\"name\":\"NodeAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nodeOperatorId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"NodeOperatorAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nodeOperatorId\",\"type\":\"uint256\"}],\"name\":\"NodeOperatorRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nodeOperatorId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"NodeOperatorUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"}],\"name\":\"NodeRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nodeOperatorId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"signer\",\"type\":\"bytes32\"}],\"name\":\"NodeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"labelledName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"enumCapabilityRegistry.CapabilityType\",\"name\":\"capabilityType\",\"type\":\"uint8\"},{\"internalType\":\"enumCapabilityRegistry.CapabilityResponseType\",\"name\":\"responseType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"configurationContract\",\"type\":\"address\"}],\"internalType\":\"structCapabilityRegistry.Capability\",\"name\":\"capability\",\"type\":\"tuple\"}],\"name\":\"addCapability\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"nodes\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"internalType\":\"structCapabilityRegistry.CapabilityConfiguration[]\",\"name\":\"capabilityConfigurations\",\"type\":\"tuple[]\"},{\"internalType\":\"bool\",\"name\":\"isPublic\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"acceptsWorkflows\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"f\",\"type\":\"uint32\"}],\"name\":\"addDON\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"internalType\":\"structCapabilityRegistry.NodeOperator[]\",\"name\":\"nodeOperators\",\"type\":\"tuple[]\"}],\"name\":\"addNodeOperators\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"signer\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"hashedCapabilityIds\",\"type\":\"bytes32[]\"}],\"internalType\":\"structCapabilityRegistry.NodeInfo[]\",\"name\":\"nodes\",\"type\":\"tuple[]\"}],\"name\":\"addNodes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hashedCapabilityId\",\"type\":\"bytes32\"}],\"name\":\"deprecateCapability\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCapabilities\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"labelledName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"enumCapabilityRegistry.CapabilityType\",\"name\":\"capabilityType\",\"type\":\"uint8\"},{\"internalType\":\"enumCapabilityRegistry.CapabilityResponseType\",\"name\":\"responseType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"configurationContract\",\"type\":\"address\"}],\"internalType\":\"structCapabilityRegistry.Capability[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hashedId\",\"type\":\"bytes32\"}],\"name\":\"getCapability\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"labelledName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"enumCapabilityRegistry.CapabilityType\",\"name\":\"capabilityType\",\"type\":\"uint8\"},{\"internalType\":\"enumCapabilityRegistry.CapabilityResponseType\",\"name\":\"responseType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"configurationContract\",\"type\":\"address\"}],\"internalType\":\"structCapabilityRegistry.Capability\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"}],\"name\":\"getDON\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"id\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"configCount\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"f\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"isPublic\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"acceptsWorkflows\",\"type\":\"bool\"},{\"internalType\":\"bytes32[]\",\"name\":\"nodeP2PIds\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"internalType\":\"structCapabilityRegistry.CapabilityConfiguration[]\",\"name\":\"capabilityConfigurations\",\"type\":\"tuple[]\"}],\"internalType\":\"structCapabilityRegistry.DONInfo\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"}],\"name\":\"getDONCapabilityConfig\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDONs\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"id\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"configCount\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"f\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"isPublic\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"acceptsWorkflows\",\"type\":\"bool\"},{\"internalType\":\"bytes32[]\",\"name\":\"nodeP2PIds\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"internalType\":\"structCapabilityRegistry.CapabilityConfiguration[]\",\"name\":\"capabilityConfigurations\",\"type\":\"tuple[]\"}],\"internalType\":\"structCapabilityRegistry.DONInfo[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"labelledName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"}],\"name\":\"getHashedCapabilityId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"}],\"name\":\"getNode\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"signer\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"hashedCapabilityIds\",\"type\":\"bytes32[]\"}],\"internalType\":\"structCapabilityRegistry.NodeInfo\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"configCount\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"nodeOperatorId\",\"type\":\"uint256\"}],\"name\":\"getNodeOperator\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"internalType\":\"structCapabilityRegistry.NodeOperator\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNodeOperators\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"internalType\":\"structCapabilityRegistry.NodeOperator[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNodes\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"signer\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"hashedCapabilityIds\",\"type\":\"bytes32[]\"}],\"internalType\":\"structCapabilityRegistry.NodeInfo[]\",\"name\":\"\",\"type\":\"tuple[]\"},{\"internalType\":\"uint32[]\",\"name\":\"\",\"type\":\"uint32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hashedCapabilityId\",\"type\":\"bytes32\"}],\"name\":\"isCapabilityDeprecated\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32[]\",\"name\":\"donIds\",\"type\":\"uint32[]\"}],\"name\":\"removeDONs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"nodeOperatorIds\",\"type\":\"uint256[]\"}],\"name\":\"removeNodeOperators\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"removedNodeP2PIds\",\"type\":\"bytes32[]\"}],\"name\":\"removeNodes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"typeAndVersion\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32[]\",\"name\":\"nodes\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"internalType\":\"structCapabilityRegistry.CapabilityConfiguration[]\",\"name\":\"capabilityConfigurations\",\"type\":\"tuple[]\"},{\"internalType\":\"bool\",\"name\":\"isPublic\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"acceptsWorkflows\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"f\",\"type\":\"uint32\"}],\"name\":\"updateDON\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"nodeOperatorIds\",\"type\":\"uint256[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"internalType\":\"structCapabilityRegistry.NodeOperator[]\",\"name\":\"nodeOperators\",\"type\":\"tuple[]\"}],\"name\":\"updateNodeOperators\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"signer\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"hashedCapabilityIds\",\"type\":\"bytes32[]\"}],\"internalType\":\"structCapabilityRegistry.NodeInfo[]\",\"name\":\"nodes\",\"type\":\"tuple[]\"}],\"name\":\"updateNodes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", + Bin: "0x6080604052601280546001600160401b0319166401000000011790553480156200002857600080fd5b503380600081620000805760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420736574206f776e657220746f207a65726f000000000000000060448201526064015b60405180910390fd5b600080546001600160a01b0319166001600160a01b0384811691909117909155811615620000b357620000b381620000bc565b50505062000167565b336001600160a01b03821603620001165760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640162000077565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b614bef80620001776000396000f3fe608060405234801561001057600080fd5b50600436106101ae5760003560e01c80635e65e309116100ee57806395864d1f11610097578063b06e07a711610071578063b06e07a7146103ec578063ddbe4f82146103ff578063e29581aa14610414578063f2fde38b1461042a57600080fd5b806395864d1f146103a65780639cb7c5f4146103b9578063ae3c241c146103d957600080fd5b806373ac22b4116100c857806373ac22b41461036357806379ba5097146103765780638da5cb5b1461037e57600080fd5b80635e65e3091461031b57806365c14dc71461032e57806366acaa331461034e57600080fd5b80631cdf63431161015b578063235374051161013557806323537405146102b45780632c01a1e8146102d4578063398f3773146102e757806350c946fe146102fa57600080fd5b80631cdf6343146102795780631d05394c1461028c578063214502431461029f57600080fd5b8063178962481161018c5780631789624814610211578063181f5a7714610224578063193ec0061461026657600080fd5b80630c5801e3146101b35780630fe5800a146101c857806312570011146101ee575b600080fd5b6101c66101c1366004613755565b61043d565b005b6101db6101d6366004613803565b61074e565b6040519081526020015b60405180910390f35b6102016101fc366004613863565b610787565b60405190151581526020016101e5565b6101c661021f36600461387c565b61079a565b60408051808201909152601881527f4361706162696c697479526567697374727920312e302e30000000000000000060208201525b6040516101e5919061391b565b6101c6610274366004613955565b6109d6565b6101c66102873660046139fa565b610ab1565b6101c661029a3660046139fa565b610b81565b6102a7610cc1565b6040516101e59190613b64565b6102c76102c2366004613be4565b610e21565b6040516101e59190613bff565b6101c66102e23660046139fa565b610e65565b6101c66102f53660046139fa565b611109565b61030d610308366004613863565b6112cc565b6040516101e5929190613c53565b6101c66103293660046139fa565b611301565b61034161033c366004613863565b611804565b6040516101e59190613cb0565b6103566118ea565b6040516101e59190613cc3565b6101c66103713660046139fa565b611aa8565b6101c6611f0e565b60005460405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101e5565b6101c66103b4366004613d36565b61200b565b6103cc6103c7366004613863565b6120d7565b6040516101e59190613ea7565b6101c66103e7366004613863565b6122dc565b6102596103fa366004613eba565b6123a7565b61040761247c565b6040516101e59190613ee4565b61041c612771565b6040516101e5929190613f57565b6101c6610438366004614038565b6128fc565b828114610485576040517fab8b67c600000000000000000000000000000000000000000000000000000000815260048101849052602481018290526044015b60405180910390fd5b6000805473ffffffffffffffffffffffffffffffffffffffff16905b848110156107465760008686838181106104bd576104bd614055565b90506020020135905060008585848181106104da576104da614055565b90506020028101906104ec9190614084565b6104f59061418c565b805190915073ffffffffffffffffffffffffffffffffffffffff16610546576040517feeacd93900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805173ffffffffffffffffffffffffffffffffffffffff16331480159061058357503373ffffffffffffffffffffffffffffffffffffffff851614155b156105ba576040517fef67f5d800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80516000838152600f602052604090205473ffffffffffffffffffffffffffffffffffffffff908116911614158061066c5750602080820151604051610600920161391b565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825280516020918201206000868152600f83529290922091926106539260010191016142ab565b6040516020818303038152906040528051906020012014155b156107335780516000838152600f6020908152604090912080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9093169290921782558201516001909101906106d9908261439a565b50806000015173ffffffffffffffffffffffffffffffffffffffff167f14c8f513e8a6d86d2d16b0cb64976de4e72386c4f8068eca3b7354373f8fe97a83836020015160405161072a9291906144b4565b60405180910390a25b50508061073f906144fc565b90506104a1565b505050505050565b600084848484604051602001610767949392919061457d565b604051602081830303815290604052805190602001209050949350505050565b6000610794600583612910565b92915050565b6107a261292b565b60006107be6107b183806145af565b6101d660208601866145af565b90506107cb600382612910565b15610802576040517fe288638f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061081460a0840160808501614038565b73ffffffffffffffffffffffffffffffffffffffff161461097f5761083f60a0830160808401614038565b73ffffffffffffffffffffffffffffffffffffffff163b158061091f575061086d60a0830160808401614038565b6040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527f73e8b41d00000000000000000000000000000000000000000000000000000000600482015273ffffffffffffffffffffffffffffffffffffffff91909116906301ffc9a790602401602060405180830381865afa1580156108f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091d9190614614565b155b1561097f5761093460a0830160808401614038565b6040517fabb5e3fd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909116600482015260240161047c565b61098a6003826129ae565b50600081815260026020526040902082906109a58282614801565b505060405181907f65610e5677eedff94555572640e442f89848a109ef8593fa927ac30b2565ff0690600090a25050565b6109de61292b565b60125463ffffffff640100000000909104811660008181526011602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001684179055815160a081018352838152600191810191909152861515918101919091528415156060820152918316608083015290610a6b9089908990899089906129ba565b60128054600490610a8990640100000000900463ffffffff166149c4565b91906101000a81548163ffffffff021916908363ffffffff1602179055505050505050505050565b610ab961292b565b60005b81811015610b7c576000838383818110610ad857610ad8614055565b602090810292909201356000818152600f9093526040832080547fffffffffffffffffffffffff0000000000000000000000000000000000000000168155909350919050610b2960018301826136bb565b50610b3790506007826129ae565b506040518181527f1e5877d7b3001d1569bf733b76c7eceda58bd6c031e5b8d0b7042308ba2e9d4f9060200160405180910390a150610b75816144fc565b9050610abc565b505050565b610b8961292b565b60005b81811015610b7c576000838383818110610ba857610ba8614055565b9050602002016020810190610bbd9190613be4565b63ffffffff808216600090815260116020526040812080549394509264010000000090049091169003610c24576040517f2b62be9b00000000000000000000000000000000000000000000000000000000815263ffffffff8316600482015260240161047c565b63ffffffff808316600081815260116020526040902080547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000169055610c6e91600991906129ae16565b506040805163ffffffff84168152600060208201527ff264aae70bf6a9d90e68e0f9b393f4e7fbea67b063b0f336e0b36c1581703651910160405180910390a1505080610cba906144fc565b9050610b8c565b601254606090640100000000900463ffffffff1660006001610ce36009612f9c565b601254610cfe9190640100000000900463ffffffff166149e7565b610d0891906149e7565b67ffffffffffffffff811115610d2057610d206140c2565b604051908082528060200260200182016040528015610da757816020015b6040805160e081018252600080825260208083018290529282018190526060808301829052608083019190915260a0820181905260c082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff909201910181610d3e5790505b509050600060015b838163ffffffff161015610e1857610dd1600963ffffffff8084169061291016565b610e0857610dde81612fa6565b838381518110610df057610df0614055565b602002602001018190525081610e05906144fc565b91505b610e11816149c4565b9050610daf565b50909392505050565b6040805160e0810182526000808252602082018190529181018290526060808201839052608082019290925260a0810182905260c081019190915261079482612fa6565b6000805473ffffffffffffffffffffffffffffffffffffffff163314905b82811015611103576000848483818110610e9f57610e9f614055565b602090810292909201356000818152601090935260409092206001015491925050151580610efc576040517f64e2ee920000000000000000000000000000000000000000000000000000000081526004810183905260240161047c565b60008281526010602090815260408083205463ffffffff168352600f82528083208151808301909252805473ffffffffffffffffffffffffffffffffffffffff1682526001810180549293919291840191610f5690614258565b80601f0160208091040260200160405190810160405280929190818152602001828054610f8290614258565b8015610fcf5780601f10610fa457610100808354040283529160200191610fcf565b820191906000526020600020905b815481529060010190602001808311610fb257829003601f168201915b505050505081525050905084158015610fff5750805173ffffffffffffffffffffffffffffffffffffffff163314155b15611036576040517fef67f5d800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008381526010602052604090206001015461105490600b90613282565b5060008381526010602052604090206002015461107390600d90613282565b5060008381526010602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001681556001810183905560020191909155517f5254e609a97bab37b7cc79fe128f85c097bd6015c6e1624ae0ba392eb9753205906110e79085815260200190565b60405180910390a1505050806110fc906144fc565b9050610e83565b50505050565b61111161292b565b60005b81811015610b7c57600083838381811061113057611130614055565b90506020028101906111429190614084565b61114b9061418c565b805190915073ffffffffffffffffffffffffffffffffffffffff1661119c576040517feeacd93900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b601254604080518082018252835173ffffffffffffffffffffffffffffffffffffffff908116825260208086015181840190815263ffffffff9095166000818152600f909252939020825181547fffffffffffffffffffffffff00000000000000000000000000000000000000001692169190911781559251919290916001820190611228908261439a565b5050601280549091506000906112439063ffffffff166149c4565b91906101000a81548163ffffffff021916908363ffffffff160217905550816000015173ffffffffffffffffffffffffffffffffffffffff167fda6697b182650034bd205cdc2dbfabb06bdb3a0a83a2b45bfefa3c4881284e0b8284602001516040516112b19291906144b4565b60405180910390a25050806112c5906144fc565b9050611114565b60408051608081018252600080825260208201819052918101829052606080820152906112f88361328e565b91509150915091565b60005b81811015610b7c57600083838381811061132057611320614055565b905060200281019061133291906149fa565b61133b90614a2e565b9050600061135e60005473ffffffffffffffffffffffffffffffffffffffff1690565b825163ffffffff166000908152600f602090815260408083208151808301909252805473ffffffffffffffffffffffffffffffffffffffff908116835260018201805496909116331496509394919390928401916113bb90614258565b80601f01602080910402602001604051908101604052809291908181526020018280546113e790614258565b80156114345780601f1061140957610100808354040283529160200191611434565b820191906000526020600020905b81548152906001019060200180831161141757829003601f168201915b5050505050815250509050811580156114645750805173ffffffffffffffffffffffffffffffffffffffff163314155b1561149b576040517fef67f5d800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040808401516000908152601060205220600101541515806114f15783604001516040517f64e2ee9200000000000000000000000000000000000000000000000000000000815260040161047c91815260200190565b6020840151158061153757508360200151601060008660400151815260200190815260200160002060010154141580156115375750602084015161153790600b90612910565b1561156e576040517f8377314600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606084015180516000036115b057806040517f3748d4c600000000000000000000000000000000000000000000000000000000815260040161047c9190614b01565b60408581015160009081526010602052208054640100000000900463ffffffff169060046115dd836149c4565b82546101009290920a63ffffffff8181021990931691831602179091556040878101516000908152601060205290812054640100000000900490911691505b82518110156116e85761165283828151811061163a5761163a614055565b6020026020010151600361291090919063ffffffff16565b61168a57826040517f3748d4c600000000000000000000000000000000000000000000000000000000815260040161047c9190614b01565b6116d783828151811061169f5761169f614055565b6020908102919091018101516040808b015160009081526010845281812063ffffffff8089168352600390910190945220916129ae16565b506116e1816144fc565b905061161c565b5085516040808801805160009081526010602090815283822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff9096169590951790945581518082528382206002015581518152828120600190810154948b015192518252929020909101541461179d5761176c600b82613282565b50602080880180516040808b015160009081526010909452909220600101919091555161179b90600b906129ae565b505b60408781015188516020808b0151845193845263ffffffff909216908301528183015290517ff101cfc54994c31624d25789378d71ec4dbdc533e26a4ecc6b7648f4798d09169181900360600190a150505050505050806117fd906144fc565b9050611304565b6040805180820190915260008152606060208201526000828152600f60209081526040918290208251808401909352805473ffffffffffffffffffffffffffffffffffffffff168352600181018054919284019161186190614258565b80601f016020809104026020016040519081016040528092919081815260200182805461188d90614258565b80156118da5780601f106118af576101008083540402835291602001916118da565b820191906000526020600020905b8154815290600101906020018083116118bd57829003601f168201915b5050505050815250509050919050565b60125460609063ffffffff16600060016119046007612f9c565b601254611917919063ffffffff166149e7565b61192191906149e7565b67ffffffffffffffff811115611939576119396140c2565b60405190808252806020026020018201604052801561197f57816020015b6040805180820190915260008152606060208201528152602001906001900390816119575790505b509050600060015b8363ffffffff16811015610e18576119a0600782612910565b611a98576000818152600f60209081526040918290208251808401909352805473ffffffffffffffffffffffffffffffffffffffff16835260018101805491928401916119ec90614258565b80601f0160208091040260200160405190810160405280929190818152602001828054611a1890614258565b8015611a655780601f10611a3a57610100808354040283529160200191611a65565b820191906000526020600020905b815481529060010190602001808311611a4857829003601f168201915b505050505081525050838381518110611a8057611a80614055565b602002602001018190525081611a95906144fc565b91505b611aa1816144fc565b9050611987565b60005b81811015610b7c576000838383818110611ac757611ac7614055565b9050602002810190611ad991906149fa565b611ae290614a2e565b90506000611b0560005473ffffffffffffffffffffffffffffffffffffffff1690565b825163ffffffff166000908152600f602090815260408083208151808301909252805473ffffffffffffffffffffffffffffffffffffffff90811683526001820180549690911633149650939491939092840191611b6290614258565b80601f0160208091040260200160405190810160405280929190818152602001828054611b8e90614258565b8015611bdb5780601f10611bb057610100808354040283529160200191611bdb565b820191906000526020600020905b815481529060010190602001808311611bbe57829003601f168201915b505050505081525050905081158015611c0b5750805173ffffffffffffffffffffffffffffffffffffffff163314155b15611c42576040517fef67f5d800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60408084015160009081526010602052206001015415158080611c6757506040840151155b15611ca65783604001516040517f64e2ee9200000000000000000000000000000000000000000000000000000000815260040161047c91815260200190565b60208401511580611cc357506020840151611cc390600b90612910565b15611cfa576040517f8377314600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60608401518051600003611d3c57806040517f3748d4c600000000000000000000000000000000000000000000000000000000815260040161047c9190614b01565b60408581015160009081526010602052208054600490611d6990640100000000900463ffffffff166149c4565b82546101009290920a63ffffffff81810219909316918316021790915560408681015160009081526010602052908120546401000000009004909116905b8251811015611e2357611dc583828151811061163a5761163a614055565b611dfd57826040517f3748d4c600000000000000000000000000000000000000000000000000000000815260040161047c9190614b01565b611e1283828151811061169f5761169f614055565b50611e1c816144fc565b9050611da7565b5085516040808801805160009081526010602090815283822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff9687161790558251808352848320600201558a018051925182529290206001015551611e9591600b91906129ae16565b506040860151611ea790600d906129ae565b5060408681015187516020808a0151845193845263ffffffff909216908301528183015290517fc9296aa9b0951d8000e8ed7f2b5be30c5106de8df3dbedf9a57c93f5f9e4d7da9181900360600190a150505050505080611f07906144fc565b9050611aab565b60015473ffffffffffffffffffffffffffffffffffffffff163314611f8f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4d7573742062652070726f706f736564206f776e657200000000000000000000604482015260640161047c565b60008054337fffffffffffffffffffffffff00000000000000000000000000000000000000008083168217845560018054909116905560405173ffffffffffffffffffffffffffffffffffffffff90921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b61201361292b565b63ffffffff808916600090815260116020526040812054640100000000900490911690819003612077576040517f2b62be9b00000000000000000000000000000000000000000000000000000000815263ffffffff8a16600482015260240161047c565b6120cc888888886040518060a001604052808f63ffffffff1681526020018761209f906149c4565b97508763ffffffff1681526020018a1515815260200189151581526020018863ffffffff168152506129ba565b505050505050505050565b6121076040805160a081018252606080825260208201529081016000815260200160008152600060209091015290565b60008281526002602052604090819020815160a0810190925280548290829061212f90614258565b80601f016020809104026020016040519081016040528092919081815260200182805461215b90614258565b80156121a85780601f1061217d576101008083540402835291602001916121a8565b820191906000526020600020905b81548152906001019060200180831161218b57829003601f168201915b505050505081526020016001820180546121c190614258565b80601f01602080910402602001604051908101604052809291908181526020018280546121ed90614258565b801561223a5780601f1061220f5761010080835404028352916020019161223a565b820191906000526020600020905b81548152906001019060200180831161221d57829003601f168201915b5050509183525050600282015460209091019060ff16600381111561226157612261613deb565b600381111561227257612272613deb565b81526020016002820160019054906101000a900460ff16600181111561229a5761229a613deb565b60018111156122ab576122ab613deb565b81526002919091015462010000900473ffffffffffffffffffffffffffffffffffffffff1660209091015292915050565b6122e461292b565b6122ef600382612910565b612328576040517fe181733f0000000000000000000000000000000000000000000000000000000081526004810182905260240161047c565b612333600582612910565b1561236d576040517ff7d7a2940000000000000000000000000000000000000000000000000000000081526004810182905260240161047c565b6123786005826129ae565b5060405181907fdcea1b78b6ddc31592a94607d537543fcaafda6cc52d6d5cc7bbfca1422baf2190600090a250565b63ffffffff808316600090815260116020908152604080832080546401000000009004909416808452600190940182528083208584526003019091529020805460609291906123f590614258565b80601f016020809104026020016040519081016040528092919081815260200182805461242190614258565b801561246e5780601f106124435761010080835404028352916020019161246e565b820191906000526020600020905b81548152906001019060200180831161245157829003601f168201915b505050505091505092915050565b6060600061248a6003613333565b905060006124986005612f9c565b82516124a491906149e7565b67ffffffffffffffff8111156124bc576124bc6140c2565b60405190808252806020026020018201604052801561251d57816020015b61250a6040805160a081018252606080825260208201529081016000815260200160008152600060209091015290565b8152602001906001900390816124da5790505b5090506000805b8351811015610e1857600084828151811061254157612541614055565b6020026020010151905061255f81600561291090919063ffffffff16565b6127605760008181526002602052604090819020815160a0810190925280548290829061258b90614258565b80601f01602080910402602001604051908101604052809291908181526020018280546125b790614258565b80156126045780601f106125d957610100808354040283529160200191612604565b820191906000526020600020905b8154815290600101906020018083116125e757829003601f168201915b5050505050815260200160018201805461261d90614258565b80601f016020809104026020016040519081016040528092919081815260200182805461264990614258565b80156126965780601f1061266b57610100808354040283529160200191612696565b820191906000526020600020905b81548152906001019060200180831161267957829003601f168201915b5050509183525050600282015460209091019060ff1660038111156126bd576126bd613deb565b60038111156126ce576126ce613deb565b81526020016002820160019054906101000a900460ff1660018111156126f6576126f6613deb565b600181111561270757612707613deb565b81526002919091015462010000900473ffffffffffffffffffffffffffffffffffffffff16602090910152845185908590811061274657612746614055565b6020026020010181905250828061275c906144fc565b9350505b5061276a816144fc565b9050612524565b6060806000612780600d613333565b90506000815167ffffffffffffffff81111561279e5761279e6140c2565b60405190808252806020026020018201604052801561280d57816020015b60408051608081018252600080825260208083018290529282015260608082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092019101816127bc5790505b5090506000825167ffffffffffffffff81111561282c5761282c6140c2565b604051908082528060200260200182016040528015612855578160200160208202803683370190505b50905060005b83518110156128f157600084828151811061287857612878614055565b6020026020010151905060008061288e8361328e565b91509150818685815181106128a5576128a5614055565b6020026020010181905250808585815181106128c3576128c3614055565b602002602001019063ffffffff16908163ffffffff1681525050505050806128ea906144fc565b905061285b565b509094909350915050565b61290461292b565b61290d81613340565b50565b600081815260018301602052604081205415155b9392505050565b60005473ffffffffffffffffffffffffffffffffffffffff1633146129ac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4f6e6c792063616c6c61626c65206279206f776e657200000000000000000000604482015260640161047c565b565b60006129248383613435565b805163ffffffff90811660009081526011602090815260408083208286015185168452600101909152902060808301519091161580612a0e575060808201518590612a06906001614b14565b63ffffffff16115b15612a5a5760808201516040517fd5f5269100000000000000000000000000000000000000000000000000000000815263ffffffff90911660048201526024810186905260440161047c565b60005b85811015612b2257612a8a878783818110612a7a57612a7a614055565b8592602090910201359050612910565b15612aec578251878783818110612aa357612aa3614055565b6040517f636e405700000000000000000000000000000000000000000000000000000000815263ffffffff9094166004850152602002919091013560248301525060440161047c565b612b11878783818110612b0157612b01614055565b85926020909102013590506129ae565b50612b1b816144fc565b9050612a5d565b5060005b83811015612e0e5736858583818110612b4157612b41614055565b9050602002810190612b539190614084565b9050612b6160038235612910565b612b9a576040517fe181733f0000000000000000000000000000000000000000000000000000000081528135600482015260240161047c565b612ba660058235612910565b15612be0576040517ff7d7a2940000000000000000000000000000000000000000000000000000000081528135600482015260240161047c565b8035600090815260038401602052604081208054612bfd90614258565b90501115612c495783516040517f3927d08000000000000000000000000000000000000000000000000000000000815263ffffffff90911660048201528135602482015260440161047c565b60005b87811015612d5b57612cf08235601060008c8c86818110612c6f57612c6f614055565b9050602002013581526020019081526020016000206003016000601060008e8e88818110612c9f57612c9f614055565b90506020020135815260200190815260200160002060000160049054906101000a900463ffffffff1663ffffffff1663ffffffff16815260200190815260200160002061291090919063ffffffff16565b612d4b57888882818110612d0657612d06614055565b6040517fa7e79250000000000000000000000000000000000000000000000000000000008152602090910292909201356004830152508235602482015260440161047c565b612d54816144fc565b9050612c4c565b5060028301805460018101825560009182526020918290208335910155612d84908201826145af565b82356000908152600386016020526040902091612da2919083614631565b508351602080860151612dfd92918435908c908c90612dc3908801886145af565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061348492505050565b50612e07816144fc565b9050612b26565b50604080830151835163ffffffff90811660009081526011602090815284822080549415156c01000000000000000000000000027fffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff90951694909417909355606086015186518316825284822080549115156d0100000000000000000000000000027fffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff9092169190911790556080860151865183168252848220805491841668010000000000000000027fffffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffff909216919091179055918501805186518316845292849020805493909216640100000000027fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff9093169290921790558351905191517ff264aae70bf6a9d90e68e0f9b393f4e7fbea67b063b0f336e0b36c158170365192612f8c929163ffffffff92831681529116602082015260400190565b60405180910390a1505050505050565b6000610794825490565b6040805160e0810182526000808252602080830182905282840182905260608084018390526080840183905260a0840181905260c084015263ffffffff85811683526011825284832080546401000000009004909116808452600190910182528483206002810180548751818602810186019098528088529596929591949390919083018282801561305757602002820191906000526020600020905b815481526020019060010190808311613043575b505050505090506000815167ffffffffffffffff81111561307a5761307a6140c2565b6040519080825280602002602001820160405280156130c057816020015b6040805180820190915260008152606060208201528152602001906001900390816130985790505b50905060005b81518110156131e15760405180604001604052808483815181106130ec576130ec614055565b6020026020010151815260200185600301600086858151811061311157613111614055565b60200260200101518152602001908152602001600020805461313290614258565b80601f016020809104026020016040519081016040528092919081815260200182805461315e90614258565b80156131ab5780601f10613180576101008083540402835291602001916131ab565b820191906000526020600020905b81548152906001019060200180831161318e57829003601f168201915b50505050508152508282815181106131c5576131c5614055565b6020026020010181905250806131da906144fc565b90506130c6565b506040805160e08101825263ffffffff8089166000818152601160208181528683205480861687528b8616828801526801000000000000000081049095169686019690965260ff6c010000000000000000000000008504811615156060870152929091529093526d010000000000000000000000000090049091161515608082015260a0810161327085613333565b81526020019190915295945050505050565b60006129248383613565565b604080516080810182526000808252602082018190529181019190915260608082015260408051608081018252600084815260106020908152838220805463ffffffff80821686526001830154848701526002830154868801526401000000009091041683526003019052918220606082019061330a90613333565b905260009384526010602052604090932054929364010000000090930463ffffffff1692915050565b606060006129248361365f565b3373ffffffffffffffffffffffffffffffffffffffff8216036133bf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640161047c565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b600081815260018301602052604081205461347c57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610794565b506000610794565b6000848152600260208190526040909120015462010000900473ffffffffffffffffffffffffffffffffffffffff161561074657600084815260026020819052604091829020015490517ffba64a7c0000000000000000000000000000000000000000000000000000000081526201000090910473ffffffffffffffffffffffffffffffffffffffff169063fba64a7c9061352b908690869086908b908d90600401614b31565b600060405180830381600087803b15801561354557600080fd5b505af1158015613559573d6000803e3d6000fd5b50505050505050505050565b6000818152600183016020526040812054801561364e5760006135896001836149e7565b855490915060009061359d906001906149e7565b90508181146136025760008660000182815481106135bd576135bd614055565b90600052602060002001549050808760000184815481106135e0576135e0614055565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061361357613613614bb3565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610794565b6000915050610794565b5092915050565b6060816000018054806020026020016040519081016040528092919081815260200182805480156136af57602002820191906000526020600020905b81548152602001906001019080831161369b575b50505050509050919050565b5080546136c790614258565b6000825580601f106136d7575050565b601f01602090049060005260206000209081019061290d91905b8082111561370557600081556001016136f1565b5090565b60008083601f84011261371b57600080fd5b50813567ffffffffffffffff81111561373357600080fd5b6020830191508360208260051b850101111561374e57600080fd5b9250929050565b6000806000806040858703121561376b57600080fd5b843567ffffffffffffffff8082111561378357600080fd5b61378f88838901613709565b909650945060208701359150808211156137a857600080fd5b506137b587828801613709565b95989497509550505050565b60008083601f8401126137d357600080fd5b50813567ffffffffffffffff8111156137eb57600080fd5b60208301915083602082850101111561374e57600080fd5b6000806000806040858703121561381957600080fd5b843567ffffffffffffffff8082111561383157600080fd5b61383d888389016137c1565b9096509450602087013591508082111561385657600080fd5b506137b5878288016137c1565b60006020828403121561387557600080fd5b5035919050565b60006020828403121561388e57600080fd5b813567ffffffffffffffff8111156138a557600080fd5b820160a0818503121561292457600080fd5b6000815180845260005b818110156138dd576020818501810151868301820152016138c1565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b60208152600061292460208301846138b7565b801515811461290d57600080fd5b803563ffffffff8116811461395057600080fd5b919050565b600080600080600080600060a0888a03121561397057600080fd5b873567ffffffffffffffff8082111561398857600080fd5b6139948b838c01613709565b909950975060208a01359150808211156139ad57600080fd5b506139ba8a828b01613709565b90965094505060408801356139ce8161392e565b925060608801356139de8161392e565b91506139ec6080890161393c565b905092959891949750929550565b60008060208385031215613a0d57600080fd5b823567ffffffffffffffff811115613a2457600080fd5b613a3085828601613709565b90969095509350505050565b600081518084526020808501945080840160005b83811015613a6c57815187529582019590820190600101613a50565b509495945050505050565b600063ffffffff80835116845260208181850151168186015260408281860151168187015260608501511515606087015260808501511515608087015260a0850151925060e060a0870152613acf60e0870184613a3c565b925060c085015186840360c08801528381518086528486019150848160051b870101858401935060005b82811015613b56578782037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0018452845180518352870151878301879052613b43878401826138b7565b9588019594880194925050600101613af9565b509998505050505050505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015613bd7577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0888603018452613bc5858351613a77565b94509285019290850190600101613b8b565b5092979650505050505050565b600060208284031215613bf657600080fd5b6129248261393c565b6020815260006129246020830184613a77565b63ffffffff815116825260208101516020830152604081015160408301526000606082015160806060850152613c4b6080850182613a3c565b949350505050565b604081526000613c666040830185613c12565b905063ffffffff831660208301529392505050565b73ffffffffffffffffffffffffffffffffffffffff81511682526000602082015160406020850152613c4b60408501826138b7565b6020815260006129246020830184613c7b565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015613bd7577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0888603018452613d24858351613c7b565b94509285019290850190600101613cea565b60008060008060008060008060c0898b031215613d5257600080fd5b613d5b8961393c565b9750602089013567ffffffffffffffff80821115613d7857600080fd5b613d848c838d01613709565b909950975060408b0135915080821115613d9d57600080fd5b50613daa8b828c01613709565b9096509450506060890135613dbe8161392e565b92506080890135613dce8161392e565b9150613ddc60a08a0161393c565b90509295985092959890939650565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6000815160a08452613e2f60a08501826138b7565b905060208301518482036020860152613e4882826138b7565b915050604083015160048110613e6057613e60613deb565b6040850152606083015160028110613e7a57613e7a613deb565b606085015260809283015173ffffffffffffffffffffffffffffffffffffffff1692909301919091525090565b6020815260006129246020830184613e1a565b60008060408385031215613ecd57600080fd5b613ed68361393c565b946020939093013593505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015613bd7577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0888603018452613f45858351613e1a565b94509285019290850190600101613f0b565b6000604082016040835280855180835260608501915060608160051b8601019250602080880160005b83811015613fcc577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0888703018552613fba868351613c12565b95509382019390820190600101613f80565b50508584038187015286518085528782019482019350915060005b8281101561400957845163ffffffff1684529381019392810192600101613fe7565b5091979650505050505050565b73ffffffffffffffffffffffffffffffffffffffff8116811461290d57600080fd5b60006020828403121561404a57600080fd5b813561292481614016565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc18336030181126140b857600080fd5b9190910192915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715614114576141146140c2565b60405290565b6040516080810167ffffffffffffffff81118282101715614114576141146140c2565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715614184576141846140c2565b604052919050565b60006040823603121561419e57600080fd5b6141a66140f1565b82356141b181614016565b815260208381013567ffffffffffffffff808211156141cf57600080fd5b9085019036601f8301126141e257600080fd5b8135818111156141f4576141f46140c2565b614224847fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160161413d565b9150808252368482850101111561423a57600080fd5b80848401858401376000908201840152918301919091525092915050565b600181811c9082168061426c57607f821691505b6020821081036142a5577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b60006020808352600084546142bf81614258565b808487015260406001808416600081146142e0576001811461431857614346565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008516838a01528284151560051b8a01019550614346565b896000528660002060005b8581101561433e5781548b8201860152908301908801614323565b8a0184019650505b509398975050505050505050565b601f821115610b7c57600081815260208120601f850160051c8101602086101561437b5750805b601f850160051c820191505b8181101561074657828155600101614387565b815167ffffffffffffffff8111156143b4576143b46140c2565b6143c8816143c28454614258565b84614354565b602080601f83116001811461441b57600084156143e55750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555610746565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561446857888601518255948401946001909101908401614449565b50858210156144a457878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b828152604060208201526000613c4b60408301846138b7565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361452d5761452d6144cd565b5060010190565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b604081526000614591604083018688614534565b82810360208401526145a4818587614534565b979650505050505050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126145e457600080fd5b83018035915067ffffffffffffffff8211156145ff57600080fd5b60200191503681900382131561374e57600080fd5b60006020828403121561462657600080fd5b81516129248161392e565b67ffffffffffffffff831115614649576146496140c2565b61465d836146578354614258565b83614354565b6000601f8411600181146146af57600085156146795750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355614745565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b828110156146fe57868501358255602094850194600190920191016146de565b5086821015614739577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b600081356004811061079457600080fd5b6004821061476d5761476d613deb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0081541660ff831681178255505050565b600081356002811061079457600080fd5b600282106147bf576147bf613deb565b805461ff008360081b167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff8216178255505050565b6000813561079481614016565b61480b82836145af565b67ffffffffffffffff811115614823576148236140c2565b614837816148318554614258565b85614354565b6000601f82116001811461488957600083156148535750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600385901b1c1916600184901b17855561491f565b6000858152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0841690835b828110156148d857868501358255602094850194600190920191016148b8565b5084821015614913577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88660031b161c19848701351681555b505060018360011b0185555b5050505061493060208301836145af565b61493e818360018601614631565b5050600281016149596149536040850161474c565b8261475d565b61496e6149686060850161479e565b826147af565b610b7c61497d608085016147f4565b82547fffffffffffffffffffff0000000000000000000000000000000000000000ffff1660109190911b75ffffffffffffffffffffffffffffffffffffffff000016178255565b600063ffffffff8083168181036149dd576149dd6144cd565b6001019392505050565b81810381811115610794576107946144cd565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818336030181126140b857600080fd5b600060808236031215614a4057600080fd5b614a4861411a565b614a518361393c565b81526020808401358183015260408401356040830152606084013567ffffffffffffffff80821115614a8257600080fd5b9085019036601f830112614a9557600080fd5b813581811115614aa757614aa76140c2565b8060051b9150614ab884830161413d565b8181529183018401918481019036841115614ad257600080fd5b938501935b83851015614af057843582529385019390850190614ad7565b606087015250939695505050505050565b6020815260006129246020830184613a3c565b63ffffffff818116838216019080821115613658576136586144cd565b6080815284608082015260007f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff861115614b6a57600080fd5b8560051b808860a0850137820182810360a09081016020850152614b90908201876138b7565b91505063ffffffff80851660408401528084166060840152509695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea164736f6c6343000813000a", } var CapabilityRegistryABI = CapabilityRegistryMetaData.ABI @@ -313,7 +316,7 @@ func (_CapabilityRegistry *CapabilityRegistryCallerSession) GetDONs() ([]Capabil return _CapabilityRegistry.Contract.GetDONs(&_CapabilityRegistry.CallOpts) } -func (_CapabilityRegistry *CapabilityRegistryCaller) GetHashedCapabilityId(opts *bind.CallOpts, labelledName [32]byte, version [32]byte) ([32]byte, error) { +func (_CapabilityRegistry *CapabilityRegistryCaller) GetHashedCapabilityId(opts *bind.CallOpts, labelledName string, version string) ([32]byte, error) { var out []interface{} err := _CapabilityRegistry.contract.Call(opts, &out, "getHashedCapabilityId", labelledName, version) @@ -327,11 +330,11 @@ func (_CapabilityRegistry *CapabilityRegistryCaller) GetHashedCapabilityId(opts } -func (_CapabilityRegistry *CapabilityRegistrySession) GetHashedCapabilityId(labelledName [32]byte, version [32]byte) ([32]byte, error) { +func (_CapabilityRegistry *CapabilityRegistrySession) GetHashedCapabilityId(labelledName string, version string) ([32]byte, error) { return _CapabilityRegistry.Contract.GetHashedCapabilityId(&_CapabilityRegistry.CallOpts, labelledName, version) } -func (_CapabilityRegistry *CapabilityRegistryCallerSession) GetHashedCapabilityId(labelledName [32]byte, version [32]byte) ([32]byte, error) { +func (_CapabilityRegistry *CapabilityRegistryCallerSession) GetHashedCapabilityId(labelledName string, version string) ([32]byte, error) { return _CapabilityRegistry.Contract.GetHashedCapabilityId(&_CapabilityRegistry.CallOpts, labelledName, version) } @@ -515,16 +518,16 @@ func (_CapabilityRegistry *CapabilityRegistryTransactorSession) AddCapability(ca return _CapabilityRegistry.Contract.AddCapability(&_CapabilityRegistry.TransactOpts, capability) } -func (_CapabilityRegistry *CapabilityRegistryTransactor) AddDON(opts *bind.TransactOpts, nodes [][32]byte, capabilityConfigurations []CapabilityRegistryCapabilityConfiguration, isPublic bool) (*types.Transaction, error) { - return _CapabilityRegistry.contract.Transact(opts, "addDON", nodes, capabilityConfigurations, isPublic) +func (_CapabilityRegistry *CapabilityRegistryTransactor) AddDON(opts *bind.TransactOpts, nodes [][32]byte, capabilityConfigurations []CapabilityRegistryCapabilityConfiguration, isPublic bool, acceptsWorkflows bool, f uint32) (*types.Transaction, error) { + return _CapabilityRegistry.contract.Transact(opts, "addDON", nodes, capabilityConfigurations, isPublic, acceptsWorkflows, f) } -func (_CapabilityRegistry *CapabilityRegistrySession) AddDON(nodes [][32]byte, capabilityConfigurations []CapabilityRegistryCapabilityConfiguration, isPublic bool) (*types.Transaction, error) { - return _CapabilityRegistry.Contract.AddDON(&_CapabilityRegistry.TransactOpts, nodes, capabilityConfigurations, isPublic) +func (_CapabilityRegistry *CapabilityRegistrySession) AddDON(nodes [][32]byte, capabilityConfigurations []CapabilityRegistryCapabilityConfiguration, isPublic bool, acceptsWorkflows bool, f uint32) (*types.Transaction, error) { + return _CapabilityRegistry.Contract.AddDON(&_CapabilityRegistry.TransactOpts, nodes, capabilityConfigurations, isPublic, acceptsWorkflows, f) } -func (_CapabilityRegistry *CapabilityRegistryTransactorSession) AddDON(nodes [][32]byte, capabilityConfigurations []CapabilityRegistryCapabilityConfiguration, isPublic bool) (*types.Transaction, error) { - return _CapabilityRegistry.Contract.AddDON(&_CapabilityRegistry.TransactOpts, nodes, capabilityConfigurations, isPublic) +func (_CapabilityRegistry *CapabilityRegistryTransactorSession) AddDON(nodes [][32]byte, capabilityConfigurations []CapabilityRegistryCapabilityConfiguration, isPublic bool, acceptsWorkflows bool, f uint32) (*types.Transaction, error) { + return _CapabilityRegistry.Contract.AddDON(&_CapabilityRegistry.TransactOpts, nodes, capabilityConfigurations, isPublic, acceptsWorkflows, f) } func (_CapabilityRegistry *CapabilityRegistryTransactor) AddNodeOperators(opts *bind.TransactOpts, nodeOperators []CapabilityRegistryNodeOperator) (*types.Transaction, error) { @@ -611,16 +614,16 @@ func (_CapabilityRegistry *CapabilityRegistryTransactorSession) TransferOwnershi return _CapabilityRegistry.Contract.TransferOwnership(&_CapabilityRegistry.TransactOpts, to) } -func (_CapabilityRegistry *CapabilityRegistryTransactor) UpdateDON(opts *bind.TransactOpts, donId uint32, nodes [][32]byte, capabilityConfigurations []CapabilityRegistryCapabilityConfiguration, isPublic bool) (*types.Transaction, error) { - return _CapabilityRegistry.contract.Transact(opts, "updateDON", donId, nodes, capabilityConfigurations, isPublic) +func (_CapabilityRegistry *CapabilityRegistryTransactor) UpdateDON(opts *bind.TransactOpts, donId uint32, nodes [][32]byte, capabilityConfigurations []CapabilityRegistryCapabilityConfiguration, isPublic bool, acceptsWorkflows bool, f uint32) (*types.Transaction, error) { + return _CapabilityRegistry.contract.Transact(opts, "updateDON", donId, nodes, capabilityConfigurations, isPublic, acceptsWorkflows, f) } -func (_CapabilityRegistry *CapabilityRegistrySession) UpdateDON(donId uint32, nodes [][32]byte, capabilityConfigurations []CapabilityRegistryCapabilityConfiguration, isPublic bool) (*types.Transaction, error) { - return _CapabilityRegistry.Contract.UpdateDON(&_CapabilityRegistry.TransactOpts, donId, nodes, capabilityConfigurations, isPublic) +func (_CapabilityRegistry *CapabilityRegistrySession) UpdateDON(donId uint32, nodes [][32]byte, capabilityConfigurations []CapabilityRegistryCapabilityConfiguration, isPublic bool, acceptsWorkflows bool, f uint32) (*types.Transaction, error) { + return _CapabilityRegistry.Contract.UpdateDON(&_CapabilityRegistry.TransactOpts, donId, nodes, capabilityConfigurations, isPublic, acceptsWorkflows, f) } -func (_CapabilityRegistry *CapabilityRegistryTransactorSession) UpdateDON(donId uint32, nodes [][32]byte, capabilityConfigurations []CapabilityRegistryCapabilityConfiguration, isPublic bool) (*types.Transaction, error) { - return _CapabilityRegistry.Contract.UpdateDON(&_CapabilityRegistry.TransactOpts, donId, nodes, capabilityConfigurations, isPublic) +func (_CapabilityRegistry *CapabilityRegistryTransactorSession) UpdateDON(donId uint32, nodes [][32]byte, capabilityConfigurations []CapabilityRegistryCapabilityConfiguration, isPublic bool, acceptsWorkflows bool, f uint32) (*types.Transaction, error) { + return _CapabilityRegistry.Contract.UpdateDON(&_CapabilityRegistry.TransactOpts, donId, nodes, capabilityConfigurations, isPublic, acceptsWorkflows, f) } func (_CapabilityRegistry *CapabilityRegistryTransactor) UpdateNodeOperators(opts *bind.TransactOpts, nodeOperatorIds []*big.Int, nodeOperators []CapabilityRegistryNodeOperator) (*types.Transaction, error) { @@ -2110,7 +2113,7 @@ type CapabilityRegistryInterface interface { GetDONs(opts *bind.CallOpts) ([]CapabilityRegistryDONInfo, error) - GetHashedCapabilityId(opts *bind.CallOpts, labelledName [32]byte, version [32]byte) ([32]byte, error) + GetHashedCapabilityId(opts *bind.CallOpts, labelledName string, version string) ([32]byte, error) GetNode(opts *bind.CallOpts, p2pId [32]byte) (CapabilityRegistryNodeInfo, uint32, error) @@ -2130,7 +2133,7 @@ type CapabilityRegistryInterface interface { AddCapability(opts *bind.TransactOpts, capability CapabilityRegistryCapability) (*types.Transaction, error) - AddDON(opts *bind.TransactOpts, nodes [][32]byte, capabilityConfigurations []CapabilityRegistryCapabilityConfiguration, isPublic bool) (*types.Transaction, error) + AddDON(opts *bind.TransactOpts, nodes [][32]byte, capabilityConfigurations []CapabilityRegistryCapabilityConfiguration, isPublic bool, acceptsWorkflows bool, f uint32) (*types.Transaction, error) AddNodeOperators(opts *bind.TransactOpts, nodeOperators []CapabilityRegistryNodeOperator) (*types.Transaction, error) @@ -2146,7 +2149,7 @@ type CapabilityRegistryInterface interface { TransferOwnership(opts *bind.TransactOpts, to common.Address) (*types.Transaction, error) - UpdateDON(opts *bind.TransactOpts, donId uint32, nodes [][32]byte, capabilityConfigurations []CapabilityRegistryCapabilityConfiguration, isPublic bool) (*types.Transaction, error) + UpdateDON(opts *bind.TransactOpts, donId uint32, nodes [][32]byte, capabilityConfigurations []CapabilityRegistryCapabilityConfiguration, isPublic bool, acceptsWorkflows bool, f uint32) (*types.Transaction, error) UpdateNodeOperators(opts *bind.TransactOpts, nodeOperatorIds []*big.Int, nodeOperators []CapabilityRegistryNodeOperator) (*types.Transaction, error) diff --git a/core/gethwrappers/keystone/generation/generated-wrapper-dependency-versions-do-not-edit.txt b/core/gethwrappers/keystone/generation/generated-wrapper-dependency-versions-do-not-edit.txt index 9167c638fbb..ee15b49b181 100644 --- a/core/gethwrappers/keystone/generation/generated-wrapper-dependency-versions-do-not-edit.txt +++ b/core/gethwrappers/keystone/generation/generated-wrapper-dependency-versions-do-not-edit.txt @@ -1,4 +1,4 @@ GETH_VERSION: 1.13.8 forwarder: ../../../contracts/solc/v0.8.19/KeystoneForwarder/KeystoneForwarder.abi ../../../contracts/solc/v0.8.19/KeystoneForwarder/KeystoneForwarder.bin 892c6ced16576bebd887eb581147c02139853d5143a0c9b77704efefd4ab7ec7 -keystone_capability_registry: ../../../contracts/solc/v0.8.19/CapabilityRegistry/CapabilityRegistry.abi ../../../contracts/solc/v0.8.19/CapabilityRegistry/CapabilityRegistry.bin 0a79d0eba13fd4a4b83d7618bb181c21c42222f3cc6c5a90a09302f685555033 +keystone_capability_registry: ../../../contracts/solc/v0.8.19/CapabilityRegistry/CapabilityRegistry.abi ../../../contracts/solc/v0.8.19/CapabilityRegistry/CapabilityRegistry.bin 462c8a4c5cba9c429320f6ed041a8ea64749ec7c8cec7938c10767d07e3053e3 ocr3_capability: ../../../contracts/solc/v0.8.19/OCR3Capability/OCR3Capability.abi ../../../contracts/solc/v0.8.19/OCR3Capability/OCR3Capability.bin 9dcbdf55bd5729ba266148da3f17733eb592c871c2108ccca546618628fd9ad2 From a02bb0a48cb78c815ec3a2f3bd351f2efc3869d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Evaldas=20Lato=C5=A1kinas?= <34982762+elatoskinas@users.noreply.github.com> Date: Thu, 6 Jun 2024 12:01:19 +0200 Subject: [PATCH 10/40] Add EnumerableMapAddresses library (#13428) * feat: add EnumerableMapAddresses library * refactor: remove redundant helpers --- contracts/.changeset/cyan-apes-perform.md | 5 + contracts/gas-snapshots/shared.gas-snapshot | 15 ++ .../enumerable/EnumerableMapAddresses.sol | 140 ++++++++++++++ .../enumerable/EnumerableMapAddresses.t.sol | 176 ++++++++++++++++++ 4 files changed, 336 insertions(+) create mode 100644 contracts/.changeset/cyan-apes-perform.md create mode 100644 contracts/src/v0.8/shared/enumerable/EnumerableMapAddresses.sol create mode 100644 contracts/src/v0.8/shared/test/enumerable/EnumerableMapAddresses.t.sol diff --git a/contracts/.changeset/cyan-apes-perform.md b/contracts/.changeset/cyan-apes-perform.md new file mode 100644 index 00000000000..b35f80a9814 --- /dev/null +++ b/contracts/.changeset/cyan-apes-perform.md @@ -0,0 +1,5 @@ +--- +'@chainlink/contracts': minor +--- + +#added EnumerableMapAddresses shared lib for AddressToAddress and AddressToBytes32 maps diff --git a/contracts/gas-snapshots/shared.gas-snapshot b/contracts/gas-snapshots/shared.gas-snapshot index 2f46629eb63..ed0620b1276 100644 --- a/contracts/gas-snapshots/shared.gas-snapshot +++ b/contracts/gas-snapshots/shared.gas-snapshot @@ -42,6 +42,21 @@ CallWithExactGas__callWithExactGasSafeReturnData:test_NoContractReverts() (gas: CallWithExactGas__callWithExactGasSafeReturnData:test_NoGasForCallExactCheckReverts() (gas: 16139) CallWithExactGas__callWithExactGasSafeReturnData:test_NotEnoughGasForCallReverts() (gas: 16547) CallWithExactGas__callWithExactGasSafeReturnData:test_callWithExactGasSafeReturnData_ThrowOOGError_Revert() (gas: 36752) +EnumerableMapAddresses_at:testAtSuccess() (gas: 95001) +EnumerableMapAddresses_at:testBytes32AtSuccess() (gas: 94770) +EnumerableMapAddresses_contains:testBytes32ContainsSuccess() (gas: 93518) +EnumerableMapAddresses_contains:testContainsSuccess() (gas: 93696) +EnumerableMapAddresses_get:testBytes32GetSuccess() (gas: 94249) +EnumerableMapAddresses_get:testGetSuccess() (gas: 94436) +EnumerableMapAddresses_get_errorMessage:testGetErrorMessageSuccess() (gas: 94477) +EnumerableMapAddresses_length:testBytes32LengthSuccess() (gas: 72404) +EnumerableMapAddresses_length:testLengthSuccess() (gas: 72582) +EnumerableMapAddresses_remove:testBytes32RemoveSuccess() (gas: 73408) +EnumerableMapAddresses_remove:testRemoveSuccess() (gas: 73686) +EnumerableMapAddresses_set:testBytes32SetSuccess() (gas: 94496) +EnumerableMapAddresses_set:testSetSuccess() (gas: 94685) +EnumerableMapAddresses_tryGet:testBytes32TryGetSuccess() (gas: 94604) +EnumerableMapAddresses_tryGet:testTryGetSuccess() (gas: 94864) OpStackBurnMintERC677_constructor:testConstructorSuccess() (gas: 1743649) OpStackBurnMintERC677_interfaceCompatibility:testBurnCompatibility() (gas: 298649) OpStackBurnMintERC677_interfaceCompatibility:testMintCompatibility() (gas: 137957) diff --git a/contracts/src/v0.8/shared/enumerable/EnumerableMapAddresses.sol b/contracts/src/v0.8/shared/enumerable/EnumerableMapAddresses.sol new file mode 100644 index 00000000000..6fbd37c60d7 --- /dev/null +++ b/contracts/src/v0.8/shared/enumerable/EnumerableMapAddresses.sol @@ -0,0 +1,140 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {EnumerableMap} from "../../vendor/openzeppelin-solidity/v4.8.3/contracts/utils/structs/EnumerableMap.sol"; + +// TODO: the lib can be replaced with OZ v5.1 post-upgrade, which has AddressToAddressMap and AddressToBytes32Map +library EnumerableMapAddresses { + using EnumerableMap for EnumerableMap.UintToAddressMap; + using EnumerableMap for EnumerableMap.Bytes32ToBytes32Map; + + struct AddressToAddressMap { + EnumerableMap.UintToAddressMap _inner; + } + + // solhint-disable-next-line chainlink-solidity/prefix-internal-functions-with-underscore + function set(AddressToAddressMap storage map, address key, address value) internal returns (bool) { + return map._inner.set(uint256(uint160(key)), value); + } + + // solhint-disable-next-line chainlink-solidity/prefix-internal-functions-with-underscore + function remove(AddressToAddressMap storage map, address key) internal returns (bool) { + return map._inner.remove(uint256(uint160(key))); + } + + // solhint-disable-next-line chainlink-solidity/prefix-internal-functions-with-underscore + function contains(AddressToAddressMap storage map, address key) internal view returns (bool) { + return map._inner.contains(uint256(uint160(key))); + } + + // solhint-disable-next-line chainlink-solidity/prefix-internal-functions-with-underscore + function length(AddressToAddressMap storage map) internal view returns (uint256) { + return map._inner.length(); + } + + // solhint-disable-next-line chainlink-solidity/prefix-internal-functions-with-underscore + function at(AddressToAddressMap storage map, uint256 index) internal view returns (address, address) { + (uint256 key, address value) = map._inner.at(index); + return (address(uint160(key)), value); + } + + // solhint-disable-next-line chainlink-solidity/prefix-internal-functions-with-underscore + function tryGet(AddressToAddressMap storage map, address key) internal view returns (bool, address) { + return map._inner.tryGet(uint256(uint160(key))); + } + + // solhint-disable-next-line chainlink-solidity/prefix-internal-functions-with-underscore + function get(AddressToAddressMap storage map, address key) internal view returns (address) { + return map._inner.get(uint256(uint160(key))); + } + + // solhint-disable-next-line chainlink-solidity/prefix-internal-functions-with-underscore + function get( + AddressToAddressMap storage map, + address key, + string memory errorMessage + ) internal view returns (address) { + return map._inner.get(uint256(uint160(key)), errorMessage); + } + + // AddressToBytes32Map + + struct AddressToBytes32Map { + EnumerableMap.Bytes32ToBytes32Map _inner; + } + + /** + * @dev Adds a key-value pair to a map, or updates the value for an existing + * key. O(1). + * + * Returns true if the key was added to the map, that is if it was not + * already present. + */ + // solhint-disable-next-line chainlink-solidity/prefix-internal-functions-with-underscore + function set(AddressToBytes32Map storage map, address key, bytes32 value) internal returns (bool) { + return map._inner.set(bytes32(uint256(uint160(key))), value); + } + + /** + * @dev Removes a value from a map. O(1). + * + * Returns true if the key was removed from the map, that is if it was present. + */ + // solhint-disable-next-line chainlink-solidity/prefix-internal-functions-with-underscore + function remove(AddressToBytes32Map storage map, address key) internal returns (bool) { + return map._inner.remove(bytes32(uint256(uint160(key)))); + } + + /** + * @dev Returns true if the key is in the map. O(1). + */ + // solhint-disable-next-line chainlink-solidity/prefix-internal-functions-with-underscore + function contains(AddressToBytes32Map storage map, address key) internal view returns (bool) { + return map._inner.contains(bytes32(uint256(uint160(key)))); + } + + /** + * @dev Returns the number of elements in the map. O(1). + */ + // solhint-disable-next-line chainlink-solidity/prefix-internal-functions-with-underscore + function length(AddressToBytes32Map storage map) internal view returns (uint256) { + return map._inner.length(); + } + + /** + * @dev Returns the element stored at position `index` in the map. O(1). + * Note that there are no guarantees on the ordering of values inside the + * array, and it may change when more values are added or removed. + * + * Requirements: + * + * - `index` must be strictly less than {length}. + */ + // solhint-disable-next-line chainlink-solidity/prefix-internal-functions-with-underscore + function at(AddressToBytes32Map storage map, uint256 index) internal view returns (address, bytes32) { + (bytes32 key, bytes32 value) = map._inner.at(index); + return (address(uint160(uint256(key))), value); + } + + /** + * @dev Tries to returns the value associated with `key`. O(1). + * Does not revert if `key` is not in the map. + */ + // solhint-disable-next-line chainlink-solidity/prefix-internal-functions-with-underscore + function tryGet(AddressToBytes32Map storage map, address key) internal view returns (bool, bytes32) { + (bool success, bytes32 value) = map._inner.tryGet(bytes32(uint256(uint160(key)))); + return (success, value); + } + + /** + * @dev Returns the value associated with `key`. O(1). + * + * Requirements: + * + * - `key` must be in the map. + */ + // solhint-disable-next-line chainlink-solidity/prefix-internal-functions-with-underscore + function get(AddressToBytes32Map storage map, address key) internal view returns (bytes32) { + return map._inner.get(bytes32(uint256(uint160(key)))); + } +} diff --git a/contracts/src/v0.8/shared/test/enumerable/EnumerableMapAddresses.t.sol b/contracts/src/v0.8/shared/test/enumerable/EnumerableMapAddresses.t.sol new file mode 100644 index 00000000000..900c546f66d --- /dev/null +++ b/contracts/src/v0.8/shared/test/enumerable/EnumerableMapAddresses.t.sol @@ -0,0 +1,176 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.19; + +import {BaseTest} from "../BaseTest.t.sol"; +import {EnumerableMapAddresses} from "../../enumerable/EnumerableMapAddresses.sol"; + +contract EnumerableMapAddressesTest is BaseTest { + using EnumerableMapAddresses for EnumerableMapAddresses.AddressToBytes32Map; + using EnumerableMapAddresses for EnumerableMapAddresses.AddressToAddressMap; + + EnumerableMapAddresses.AddressToAddressMap internal s_addressToAddressMap; + EnumerableMapAddresses.AddressToBytes32Map internal s_addressToBytes32Map; + + bytes32 internal constant MOCK_BYTES32_VALUE = bytes32(uint256(42)); + + function setUp() public virtual override { + BaseTest.setUp(); + } +} + +contract EnumerableMapAddresses_set is EnumerableMapAddressesTest { + using EnumerableMapAddresses for EnumerableMapAddresses.AddressToBytes32Map; + using EnumerableMapAddresses for EnumerableMapAddresses.AddressToAddressMap; + + function testSetSuccess() public { + assertTrue(!s_addressToAddressMap.contains(address(this))); + assertTrue(s_addressToAddressMap.set(address(this), address(this))); + assertTrue(s_addressToAddressMap.contains(address(this))); + assertTrue(!s_addressToAddressMap.set(address(this), address(this))); + } + + function testBytes32SetSuccess() public { + assertTrue(!s_addressToBytes32Map.contains(address(this))); + assertTrue(s_addressToBytes32Map.set(address(this), MOCK_BYTES32_VALUE)); + assertTrue(s_addressToBytes32Map.contains(address(this))); + assertTrue(!s_addressToBytes32Map.set(address(this), MOCK_BYTES32_VALUE)); + } +} + +contract EnumerableMapAddresses_remove is EnumerableMapAddressesTest { + using EnumerableMapAddresses for EnumerableMapAddresses.AddressToBytes32Map; + using EnumerableMapAddresses for EnumerableMapAddresses.AddressToAddressMap; + + function testRemoveSuccess() public { + assertTrue(!s_addressToAddressMap.contains(address(this))); + assertTrue(s_addressToAddressMap.set(address(this), address(this))); + assertTrue(s_addressToAddressMap.contains(address(this))); + assertTrue(s_addressToAddressMap.remove(address(this))); + assertTrue(!s_addressToAddressMap.contains(address(this))); + assertTrue(!s_addressToAddressMap.remove(address(this))); + } + + function testBytes32RemoveSuccess() public { + assertTrue(!s_addressToBytes32Map.contains(address(this))); + assertTrue(s_addressToBytes32Map.set(address(this), MOCK_BYTES32_VALUE)); + assertTrue(s_addressToBytes32Map.contains(address(this))); + assertTrue(s_addressToBytes32Map.remove(address(this))); + assertTrue(!s_addressToBytes32Map.contains(address(this))); + assertTrue(!s_addressToBytes32Map.remove(address(this))); + } +} + +contract EnumerableMapAddresses_contains is EnumerableMapAddressesTest { + using EnumerableMapAddresses for EnumerableMapAddresses.AddressToBytes32Map; + using EnumerableMapAddresses for EnumerableMapAddresses.AddressToAddressMap; + + function testContainsSuccess() public { + assertTrue(!s_addressToAddressMap.contains(address(this))); + assertTrue(s_addressToAddressMap.set(address(this), address(this))); + assertTrue(s_addressToAddressMap.contains(address(this))); + } + + function testBytes32ContainsSuccess() public { + assertTrue(!s_addressToBytes32Map.contains(address(this))); + assertTrue(s_addressToBytes32Map.set(address(this), MOCK_BYTES32_VALUE)); + assertTrue(s_addressToBytes32Map.contains(address(this))); + } +} + +contract EnumerableMapAddresses_length is EnumerableMapAddressesTest { + using EnumerableMapAddresses for EnumerableMapAddresses.AddressToBytes32Map; + using EnumerableMapAddresses for EnumerableMapAddresses.AddressToAddressMap; + + function testLengthSuccess() public { + assertTrue(s_addressToAddressMap.length() == 0); + assertTrue(s_addressToAddressMap.set(address(this), address(this))); + assertTrue(s_addressToAddressMap.length() == 1); + assertTrue(s_addressToAddressMap.remove(address(this))); + assertTrue(s_addressToAddressMap.length() == 0); + } + + function testBytes32LengthSuccess() public { + assertTrue(s_addressToBytes32Map.length() == 0); + assertTrue(s_addressToBytes32Map.set(address(this), MOCK_BYTES32_VALUE)); + assertTrue(s_addressToBytes32Map.length() == 1); + assertTrue(s_addressToBytes32Map.remove(address(this))); + assertTrue(s_addressToBytes32Map.length() == 0); + } +} + +contract EnumerableMapAddresses_at is EnumerableMapAddressesTest { + using EnumerableMapAddresses for EnumerableMapAddresses.AddressToBytes32Map; + using EnumerableMapAddresses for EnumerableMapAddresses.AddressToAddressMap; + + function testAtSuccess() public { + assertTrue(s_addressToAddressMap.length() == 0); + assertTrue(s_addressToAddressMap.set(address(this), address(this))); + assertTrue(s_addressToAddressMap.length() == 1); + (address key, address value) = s_addressToAddressMap.at(0); + assertTrue(key == address(this)); + assertTrue(value == address(this)); + } + + function testBytes32AtSuccess() public { + assertTrue(s_addressToBytes32Map.length() == 0); + assertTrue(s_addressToBytes32Map.set(address(this), MOCK_BYTES32_VALUE)); + assertTrue(s_addressToBytes32Map.length() == 1); + (address key, bytes32 value) = s_addressToBytes32Map.at(0); + assertTrue(key == address(this)); + assertTrue(value == MOCK_BYTES32_VALUE); + } +} + +contract EnumerableMapAddresses_tryGet is EnumerableMapAddressesTest { + using EnumerableMapAddresses for EnumerableMapAddresses.AddressToBytes32Map; + using EnumerableMapAddresses for EnumerableMapAddresses.AddressToAddressMap; + + function testTryGetSuccess() public { + assertTrue(!s_addressToAddressMap.contains(address(this))); + assertTrue(s_addressToAddressMap.set(address(this), address(this))); + assertTrue(s_addressToAddressMap.contains(address(this))); + (bool success, address value) = s_addressToAddressMap.tryGet(address(this)); + assertTrue(success); + assertTrue(value == address(this)); + } + + function testBytes32TryGetSuccess() public { + assertTrue(!s_addressToBytes32Map.contains(address(this))); + assertTrue(s_addressToBytes32Map.set(address(this), MOCK_BYTES32_VALUE)); + assertTrue(s_addressToBytes32Map.contains(address(this))); + (bool success, bytes32 value) = s_addressToBytes32Map.tryGet(address(this)); + assertTrue(success); + assertTrue(value == MOCK_BYTES32_VALUE); + } +} + +contract EnumerableMapAddresses_get is EnumerableMapAddressesTest { + using EnumerableMapAddresses for EnumerableMapAddresses.AddressToBytes32Map; + using EnumerableMapAddresses for EnumerableMapAddresses.AddressToAddressMap; + + function testGetSuccess() public { + assertTrue(!s_addressToAddressMap.contains(address(this))); + assertTrue(s_addressToAddressMap.set(address(this), address(this))); + assertTrue(s_addressToAddressMap.contains(address(this))); + assertTrue(s_addressToAddressMap.get(address(this)) == address(this)); + } + + function testBytes32GetSuccess() public { + assertTrue(!s_addressToBytes32Map.contains(address(this))); + assertTrue(s_addressToBytes32Map.set(address(this), MOCK_BYTES32_VALUE)); + assertTrue(s_addressToBytes32Map.contains(address(this))); + assertTrue(s_addressToBytes32Map.get(address(this)) == MOCK_BYTES32_VALUE); + } +} + +contract EnumerableMapAddresses_get_errorMessage is EnumerableMapAddressesTest { + using EnumerableMapAddresses for EnumerableMapAddresses.AddressToBytes32Map; + using EnumerableMapAddresses for EnumerableMapAddresses.AddressToAddressMap; + + function testGetErrorMessageSuccess() public { + assertTrue(!s_addressToAddressMap.contains(address(this))); + assertTrue(s_addressToAddressMap.set(address(this), address(this))); + assertTrue(s_addressToAddressMap.contains(address(this))); + assertTrue(s_addressToAddressMap.get(address(this), "EnumerableMapAddresses: nonexistent key") == address(this)); + } +} From 66d8d16638f16dc863cbc6d24356c3cf3c9724f0 Mon Sep 17 00:00:00 2001 From: Matthew Pendrey Date: Thu, 6 Jun 2024 12:31:05 +0100 Subject: [PATCH 11/40] standard capability support (#13215) --- .changeset/silver-clocks-prove.md | 5 + core/cmd/jobs_commands.go | 4 + core/scripts/go.mod | 2 +- core/scripts/go.sum | 4 +- core/services/chainlink/application.go | 14 +- core/services/job/models.go | 27 ++++ core/services/job/orm.go | 25 +++- core/services/job/validate.go | 1 + core/services/pipeline/common.go | 1 + .../evm/mercury/wsrpc/pb/mercury_wsrpc.pb.go | 1 - .../services/standardcapabilities/delegate.go | 120 ++++++++++++++++++ .../standard_capabilities.go | 99 +++++++++++++++ .../0241_standardcapability_job_spec.sql | 65 ++++++++++ core/web/jobs_controller.go | 4 + core/web/presenters/job.go | 90 ++++++++----- core/web/presenters/job_test.go | 73 +++++++++++ core/web/resolver/mutation.go | 3 + core/web/resolver/spec.go | 28 ++++ core/web/resolver/spec_test.go | 57 +++++++++ core/web/schema/type/spec.graphql | 10 +- go.mod | 2 +- go.sum | 4 +- integration-tests/go.mod | 2 +- integration-tests/go.sum | 4 +- integration-tests/load/go.mod | 2 +- integration-tests/load/go.sum | 4 +- 26 files changed, 594 insertions(+), 57 deletions(-) create mode 100644 .changeset/silver-clocks-prove.md create mode 100644 core/services/standardcapabilities/delegate.go create mode 100644 core/services/standardcapabilities/standard_capabilities.go create mode 100644 core/store/migrate/migrations/0241_standardcapability_job_spec.sql diff --git a/.changeset/silver-clocks-prove.md b/.changeset/silver-clocks-prove.md new file mode 100644 index 00000000000..a3520d29eb0 --- /dev/null +++ b/.changeset/silver-clocks-prove.md @@ -0,0 +1,5 @@ +--- +"chainlink": minor +--- + +#internal standard capability support diff --git a/core/cmd/jobs_commands.go b/core/cmd/jobs_commands.go index 43a7d72f028..1843d9a20c7 100644 --- a/core/cmd/jobs_commands.go +++ b/core/cmd/jobs_commands.go @@ -168,6 +168,10 @@ func (p JobPresenter) FriendlyCreatedAt() string { if p.WorkflowSpec != nil { return p.WorkflowSpec.CreatedAt.Format(time.RFC3339) } + case presenters.StandardCapabilitiesJobSpec: + if p.StandardCapabilitiesSpec != nil { + return p.StandardCapabilitiesSpec.CreatedAt.Format(time.RFC3339) + } default: return "unknown" } diff --git a/core/scripts/go.mod b/core/scripts/go.mod index f8faa82fabe..71cd2271115 100644 --- a/core/scripts/go.mod +++ b/core/scripts/go.mod @@ -21,7 +21,7 @@ require ( github.com/prometheus/client_golang v1.17.0 github.com/shopspring/decimal v1.3.1 github.com/smartcontractkit/chainlink-automation v1.0.3 - github.com/smartcontractkit/chainlink-common v0.1.7-0.20240605181819-316b5eb82110 + github.com/smartcontractkit/chainlink-common v0.1.7-0.20240606094423-573049c41fa0 github.com/smartcontractkit/chainlink-vrf v0.0.0-20240222010609-cd67d123c772 github.com/smartcontractkit/chainlink/v2 v2.0.0-00010101000000-000000000000 github.com/smartcontractkit/libocr v0.0.0-20240419185742-fd3cab206b2c diff --git a/core/scripts/go.sum b/core/scripts/go.sum index fd3bb134503..24a43793f04 100644 --- a/core/scripts/go.sum +++ b/core/scripts/go.sum @@ -1185,8 +1185,8 @@ github.com/smartcontractkit/chain-selectors v1.0.10 h1:t9kJeE6B6G+hKD0GYR4kGJSCq github.com/smartcontractkit/chain-selectors v1.0.10/go.mod h1:d4Hi+E1zqjy9HqMkjBE5q1vcG9VGgxf5VxiRHfzi2kE= github.com/smartcontractkit/chainlink-automation v1.0.3 h1:h/ijT0NiyV06VxYVgcNfsE3+8OEzT3Q0Z9au0z1BPWs= github.com/smartcontractkit/chainlink-automation v1.0.3/go.mod h1:RjboV0Qd7YP+To+OrzHGXaxUxoSONveCoAK2TQ1INLU= -github.com/smartcontractkit/chainlink-common v0.1.7-0.20240605181819-316b5eb82110 h1:skCp4kAmd0H+/sqiCzpwXKxkSWpf1NsdIUuN73nuz/Y= -github.com/smartcontractkit/chainlink-common v0.1.7-0.20240605181819-316b5eb82110/go.mod h1:DUZccDEW98n+J1mhdWGO7wr/Njad9p9Fzks839JN7Rs= +github.com/smartcontractkit/chainlink-common v0.1.7-0.20240606094423-573049c41fa0 h1:53zVcdDxrHG3oewhP7AWOiLtwTozcQ0/wzFTsaTBS5M= +github.com/smartcontractkit/chainlink-common v0.1.7-0.20240606094423-573049c41fa0/go.mod h1:DUZccDEW98n+J1mhdWGO7wr/Njad9p9Fzks839JN7Rs= github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20240524214833-c362c2ebbd2d h1:5tgMC5Gi2UAOKZ+m28W8ubjLeR0pQCAcrz6eQ0rW510= github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20240524214833-c362c2ebbd2d/go.mod h1:0UNuO3nDt9MFsZPaHJBEUolxVkN0iC69j1ccDp95e8k= github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240220203239-09be0ea34540 h1:xFSv8561jsLtF6gYZr/zW2z5qUUAkcFkApin2mnbYTo= diff --git a/core/services/chainlink/application.go b/core/services/chainlink/application.go index 59e22f5b2c9..076c93009a9 100644 --- a/core/services/chainlink/application.go +++ b/core/services/chainlink/application.go @@ -24,9 +24,9 @@ import ( "github.com/smartcontractkit/chainlink-common/pkg/utils" "github.com/smartcontractkit/chainlink-common/pkg/utils/jsonserializable" "github.com/smartcontractkit/chainlink-common/pkg/utils/mailbox" - "github.com/smartcontractkit/chainlink/v2/core/capabilities" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/logpoller" + "github.com/smartcontractkit/chainlink/v2/core/services/standardcapabilities" "github.com/smartcontractkit/chainlink/v2/core/static" "github.com/smartcontractkit/chainlink/v2/core/bridges" @@ -342,6 +342,8 @@ func NewApplication(opts ApplicationOpts) (Application, error) { srvcs = append(srvcs, pipelineORM) + loopRegistrarConfig := plugins.NewRegistrarConfig(opts.GRPCOpts, opts.LoopRegistry.Register, opts.LoopRegistry.Unregister) + var ( delegates = map[job.Type]job.Delegate{ job.DirectRequest: directrequest.NewDelegate( @@ -394,6 +396,14 @@ func NewApplication(opts ApplicationOpts) (Application, error) { pipelineRunner, cfg.JobPipeline(), ), + job.StandardCapabilities: standardcapabilities.NewDelegate( + globalLogger, + opts.DS, jobORM, + opts.CapabilitiesRegistry, + loopRegistrarConfig, + telemetryManager, + pipelineRunner, + opts.RelayerChainInteroperators), } webhookJobRunner = delegates[job.Webhook].(*webhook.Delegate).WebhookJobRunner() ) @@ -458,8 +468,6 @@ func NewApplication(opts ApplicationOpts) (Application, error) { globalLogger.Debug("Off-chain reporting disabled") } - loopRegistrarConfig := plugins.NewRegistrarConfig(opts.GRPCOpts, opts.LoopRegistry.Register, opts.LoopRegistry.Unregister) - if cfg.OCR2().Enabled() { globalLogger.Debug("Off-chain reporting v2 enabled") diff --git a/core/services/job/models.go b/core/services/job/models.go index 4c6190a0b8e..e1f1e652f53 100644 --- a/core/services/job/models.go +++ b/core/services/job/models.go @@ -49,6 +49,7 @@ const ( VRF Type = (Type)(pipeline.VRFJobType) Webhook Type = (Type)(pipeline.WebhookJobType) Workflow Type = (Type)(pipeline.WorkflowJobType) + StandardCapabilities Type = (Type)(pipeline.StandardCapabilitiesJobType) ) //revive:disable:redefines-builtin-id @@ -88,6 +89,7 @@ var ( VRF: true, Webhook: true, Workflow: false, + StandardCapabilities: false, } supportsAsync = map[Type]bool{ BlockHeaderFeeder: false, @@ -106,6 +108,7 @@ var ( VRF: true, Webhook: true, Workflow: false, + StandardCapabilities: false, } schemaVersions = map[Type]uint32{ BlockHeaderFeeder: 1, @@ -124,6 +127,7 @@ var ( VRF: 1, Webhook: 1, Workflow: 1, + StandardCapabilities: 1, } ) @@ -167,6 +171,8 @@ type Job struct { PipelineSpec *pipeline.Spec WorkflowSpecID *int32 WorkflowSpec *WorkflowSpec + StandardCapabilitiesSpecID *int32 + StandardCapabilitiesSpec *StandardCapabilitiesSpec JobSpecErrors []SpecError Type Type `toml:"type"` SchemaVersion uint32 `toml:"schemaVersion"` @@ -886,3 +892,24 @@ func (w *WorkflowSpec) Validate() error { return nil } + +type StandardCapabilitiesSpec struct { + ID int32 + CreatedAt time.Time `toml:"-"` + UpdatedAt time.Time `toml:"-"` + Command string `toml:"command"` + Config string `toml:"config"` +} + +func (w *StandardCapabilitiesSpec) GetID() string { + return fmt.Sprintf("%v", w.ID) +} + +func (w *StandardCapabilitiesSpec) SetID(value string) error { + ID, err := strconv.ParseInt(value, 10, 32) + if err != nil { + return err + } + w.ID = int32(ID) + return nil +} diff --git a/core/services/job/orm.go b/core/services/job/orm.go index 58b84851749..4dc5478d112 100644 --- a/core/services/job/orm.go +++ b/core/services/job/orm.go @@ -417,6 +417,16 @@ func (o *orm) CreateJob(ctx context.Context, jb *Job) error { return errors.Wrap(err, "failed to create WorkflowSpec for jobSpec") } jb.WorkflowSpecID = &specID + case StandardCapabilities: + sql := `INSERT INTO standardcapabilities_specs (command, config, created_at, updated_at) + VALUES (:command, :config, NOW(), NOW()) + RETURNING id;` + specID, err := tx.prepareQuerySpecID(ctx, sql, jb.StandardCapabilitiesSpec) + if err != nil { + return errors.Wrap(err, "failed to create StandardCapabilities for jobSpec") + } + jb.StandardCapabilitiesSpecID = &specID + default: o.lggr.Panicf("Unsupported jb.Type: %v", jb.Type) } @@ -630,18 +640,18 @@ func (o *orm) InsertJob(ctx context.Context, job *Job) error { if job.ID == 0 { query = `INSERT INTO jobs (name, stream_id, schema_version, type, max_task_duration, ocr_oracle_spec_id, ocr2_oracle_spec_id, direct_request_spec_id, flux_monitor_spec_id, keeper_spec_id, cron_spec_id, vrf_spec_id, webhook_spec_id, blockhash_store_spec_id, bootstrap_spec_id, block_header_feeder_spec_id, gateway_spec_id, - legacy_gas_station_server_spec_id, legacy_gas_station_sidecar_spec_id, workflow_spec_id, external_job_id, gas_limit, forwarding_allowed, created_at) + legacy_gas_station_server_spec_id, legacy_gas_station_sidecar_spec_id, workflow_spec_id, standard_capabilities_spec_id, external_job_id, gas_limit, forwarding_allowed, created_at) VALUES (:name, :stream_id, :schema_version, :type, :max_task_duration, :ocr_oracle_spec_id, :ocr2_oracle_spec_id, :direct_request_spec_id, :flux_monitor_spec_id, :keeper_spec_id, :cron_spec_id, :vrf_spec_id, :webhook_spec_id, :blockhash_store_spec_id, :bootstrap_spec_id, :block_header_feeder_spec_id, :gateway_spec_id, - :legacy_gas_station_server_spec_id, :legacy_gas_station_sidecar_spec_id, :workflow_spec_id, :external_job_id, :gas_limit, :forwarding_allowed, NOW()) + :legacy_gas_station_server_spec_id, :legacy_gas_station_sidecar_spec_id, :workflow_spec_id, :standard_capabilities_spec_id, :external_job_id, :gas_limit, :forwarding_allowed, NOW()) RETURNING *;` } else { query = `INSERT INTO jobs (id, name, stream_id, schema_version, type, max_task_duration, ocr_oracle_spec_id, ocr2_oracle_spec_id, direct_request_spec_id, flux_monitor_spec_id, keeper_spec_id, cron_spec_id, vrf_spec_id, webhook_spec_id, blockhash_store_spec_id, bootstrap_spec_id, block_header_feeder_spec_id, gateway_spec_id, - legacy_gas_station_server_spec_id, legacy_gas_station_sidecar_spec_id, workflow_spec_id, external_job_id, gas_limit, forwarding_allowed, created_at) + legacy_gas_station_server_spec_id, legacy_gas_station_sidecar_spec_id, workflow_spec_id, standard_capabilities_spec_id, external_job_id, gas_limit, forwarding_allowed, created_at) VALUES (:id, :name, :stream_id, :schema_version, :type, :max_task_duration, :ocr_oracle_spec_id, :ocr2_oracle_spec_id, :direct_request_spec_id, :flux_monitor_spec_id, :keeper_spec_id, :cron_spec_id, :vrf_spec_id, :webhook_spec_id, :blockhash_store_spec_id, :bootstrap_spec_id, :block_header_feeder_spec_id, :gateway_spec_id, - :legacy_gas_station_server_spec_id, :legacy_gas_station_sidecar_spec_id, :workflow_spec_id, :external_job_id, :gas_limit, :forwarding_allowed, NOW()) + :legacy_gas_station_server_spec_id, :legacy_gas_station_sidecar_spec_id, :workflow_spec_id, :standard_capabilities_spec_id, :external_job_id, :gas_limit, :forwarding_allowed, NOW()) RETURNING *;` } query, args, err := tx.ds.BindNamed(query, job) @@ -684,7 +694,8 @@ func (o *orm) DeleteJob(ctx context.Context, id int32) error { bootstrap_spec_id, block_header_feeder_spec_id, gateway_spec_id, - workflow_spec_id + workflow_spec_id, + standard_capabilities_spec_id ), deleted_oracle_specs AS ( DELETE FROM ocr_oracle_specs WHERE id IN (SELECT ocr_oracle_spec_id FROM deleted_jobs) @@ -725,6 +736,9 @@ func (o *orm) DeleteJob(ctx context.Context, id int32) error { deleted_workflow_specs AS ( DELETE FROM workflow_specs WHERE id in (SELECT workflow_spec_id FROM deleted_jobs) ), + deleted_standardcapabilities_specs AS ( + DELETE FROM standardcapabilities_specs WHERE id in (SELECT standard_capabilities_spec_id FROM deleted_jobs) + ), deleted_job_pipeline_specs AS ( DELETE FROM job_pipeline_specs WHERE job_id IN (SELECT id FROM deleted_jobs) RETURNING pipeline_spec_id ) @@ -1372,6 +1386,7 @@ func (o *orm) loadAllJobTypes(ctx context.Context, job *Job) error { o.loadJobType(ctx, job, "BootstrapSpec", "bootstrap_specs", job.BootstrapSpecID), o.loadJobType(ctx, job, "GatewaySpec", "gateway_specs", job.GatewaySpecID), o.loadJobType(ctx, job, "WorkflowSpec", "workflow_specs", job.WorkflowSpecID), + o.loadJobType(ctx, job, "StandardCapabilitiesSpec", "standardcapabilities_specs", job.StandardCapabilitiesSpecID), ) } diff --git a/core/services/job/validate.go b/core/services/job/validate.go index 47c9bb5aba6..92a08823fcf 100644 --- a/core/services/job/validate.go +++ b/core/services/job/validate.go @@ -28,6 +28,7 @@ var ( VRF: {}, Webhook: {}, Workflow: {}, + StandardCapabilities: {}, } ) diff --git a/core/services/pipeline/common.go b/core/services/pipeline/common.go index 5d843b8b918..1e2c52dad66 100644 --- a/core/services/pipeline/common.go +++ b/core/services/pipeline/common.go @@ -40,6 +40,7 @@ const ( VRFJobType string = "vrf" WebhookJobType string = "webhook" WorkflowJobType string = "workflow" + StandardCapabilitiesJobType string = "standardcapabilities" ) //go:generate mockery --quiet --name Config --output ./mocks/ --case=underscore diff --git a/core/services/relay/evm/mercury/wsrpc/pb/mercury_wsrpc.pb.go b/core/services/relay/evm/mercury/wsrpc/pb/mercury_wsrpc.pb.go index 0c31a1d7ac9..4d05db4380f 100644 --- a/core/services/relay/evm/mercury/wsrpc/pb/mercury_wsrpc.pb.go +++ b/core/services/relay/evm/mercury/wsrpc/pb/mercury_wsrpc.pb.go @@ -11,7 +11,6 @@ import ( ) // MercuryClient is the client API for Mercury service. -// type MercuryClient interface { Transmit(ctx context.Context, in *TransmitRequest) (*TransmitResponse, error) LatestReport(ctx context.Context, in *LatestReportRequest) (*LatestReportResponse, error) diff --git a/core/services/standardcapabilities/delegate.go b/core/services/standardcapabilities/delegate.go new file mode 100644 index 00000000000..d072c948469 --- /dev/null +++ b/core/services/standardcapabilities/delegate.go @@ -0,0 +1,120 @@ +package standardcapabilities + +import ( + "context" + "fmt" + + "github.com/google/uuid" + "github.com/pelletier/go-toml" + "github.com/pkg/errors" + + "github.com/smartcontractkit/chainlink-common/pkg/loop" + "github.com/smartcontractkit/chainlink-common/pkg/sqlutil" + "github.com/smartcontractkit/chainlink-common/pkg/types" + "github.com/smartcontractkit/chainlink-common/pkg/types/core" + "github.com/smartcontractkit/chainlink/v2/core/logger" + "github.com/smartcontractkit/chainlink/v2/core/services/job" + "github.com/smartcontractkit/chainlink/v2/core/services/ocr2/plugins/generic" + "github.com/smartcontractkit/chainlink/v2/core/services/pipeline" + "github.com/smartcontractkit/chainlink/v2/core/services/telemetry" + "github.com/smartcontractkit/chainlink/v2/plugins" +) + +type RelayGetter interface { + Get(id types.RelayID) (loop.Relayer, error) + GetIDToRelayerMap() (map[types.RelayID]loop.Relayer, error) +} + +type Delegate struct { + logger logger.Logger + ds sqlutil.DataSource + jobORM job.ORM + registry core.CapabilitiesRegistry + cfg plugins.RegistrarConfig + monitoringEndpointGen telemetry.MonitoringEndpointGenerator + pipelineRunner pipeline.Runner + relayers RelayGetter + + isNewlyCreatedJob bool +} + +func NewDelegate(logger logger.Logger, ds sqlutil.DataSource, jobORM job.ORM, registry core.CapabilitiesRegistry, + cfg plugins.RegistrarConfig, monitoringEndpointGen telemetry.MonitoringEndpointGenerator, pipelineRunner pipeline.Runner, + relayers RelayGetter) *Delegate { + return &Delegate{logger: logger, ds: ds, jobORM: jobORM, registry: registry, cfg: cfg, monitoringEndpointGen: monitoringEndpointGen, pipelineRunner: pipelineRunner, + relayers: relayers, isNewlyCreatedJob: false} +} + +func (d *Delegate) JobType() job.Type { + return job.StandardCapabilities +} + +func (d *Delegate) BeforeJobCreated(job job.Job) { + // This is only called first time the job is created + d.isNewlyCreatedJob = true +} + +func (d *Delegate) ServicesForSpec(ctx context.Context, spec job.Job) ([]job.ServiceCtx, error) { + log := d.logger.Named("StandardCapabilities").Named(spec.StandardCapabilitiesSpec.GetID()) + + kvStore := job.NewKVStore(spec.ID, d.ds, log) + telemetryService := generic.NewTelemetryAdapter(d.monitoringEndpointGen) + errorLog := &ErrorLog{jobID: spec.ID, recordError: d.jobORM.RecordError} + pr := generic.NewPipelineRunnerAdapter(log, spec, d.pipelineRunner) + + relayerSet, err := generic.NewRelayerSet(d.relayers, spec.ExternalJobID, spec.ID, d.isNewlyCreatedJob) + if err != nil { + return nil, fmt.Errorf("failed to create relayer set: %w", err) + } + + standardCapability := newStandardCapabilities(log, spec.StandardCapabilitiesSpec, d.cfg, telemetryService, kvStore, d.registry, errorLog, + pr, relayerSet) + + return []job.ServiceCtx{standardCapability}, nil +} + +func (d *Delegate) AfterJobCreated(job job.Job) {} + +func (d *Delegate) BeforeJobDeleted(job job.Job) {} + +func (d *Delegate) OnDeleteJob(ctx context.Context, jb job.Job) error { return nil } + +func ValidatedStandardCapabilitiesSpec(tomlString string) (job.Job, error) { + var jb = job.Job{ExternalJobID: uuid.New()} + + tree, err := toml.Load(tomlString) + if err != nil { + return jb, errors.Wrap(err, "toml error on load standard capabilities") + } + + err = tree.Unmarshal(&jb) + if err != nil { + return jb, errors.Wrap(err, "toml unmarshal error on standard capabilities spec") + } + + var spec job.StandardCapabilitiesSpec + err = tree.Unmarshal(&spec) + if err != nil { + return jb, errors.Wrap(err, "toml unmarshal error on standard capabilities job") + } + + jb.StandardCapabilitiesSpec = &spec + if jb.Type != job.StandardCapabilities { + return jb, errors.Errorf("standard capabilities unsupported job type %s", jb.Type) + } + + if len(jb.StandardCapabilitiesSpec.Command) == 0 { + return jb, errors.Errorf("standard capabilities command must be set") + } + + return jb, nil +} + +type ErrorLog struct { + jobID int32 + recordError func(ctx context.Context, jobID int32, description string) error +} + +func (l *ErrorLog) SaveError(ctx context.Context, msg string) error { + return l.recordError(ctx, l.jobID, msg) +} diff --git a/core/services/standardcapabilities/standard_capabilities.go b/core/services/standardcapabilities/standard_capabilities.go new file mode 100644 index 00000000000..67ee8e10902 --- /dev/null +++ b/core/services/standardcapabilities/standard_capabilities.go @@ -0,0 +1,99 @@ +package standardcapabilities + +import ( + "context" + "fmt" + + "github.com/smartcontractkit/chainlink-common/pkg/loop" + "github.com/smartcontractkit/chainlink-common/pkg/services" + "github.com/smartcontractkit/chainlink-common/pkg/types/core" + "github.com/smartcontractkit/chainlink/v2/core/logger" + "github.com/smartcontractkit/chainlink/v2/core/services/job" + "github.com/smartcontractkit/chainlink/v2/plugins" +) + +type standardCapabilities struct { + services.StateMachine + log logger.Logger + spec *job.StandardCapabilitiesSpec + pluginRegistrar plugins.RegistrarConfig + telemetryService core.TelemetryService + store core.KeyValueStore + capabilityRegistry core.CapabilitiesRegistry + errorLog core.ErrorLog + pipelineRunner core.PipelineRunnerService + relayerSet core.RelayerSet + + capabilitiesLoop *loop.StandardCapabilitiesService +} + +func newStandardCapabilities(log logger.Logger, spec *job.StandardCapabilitiesSpec, + pluginRegistrar plugins.RegistrarConfig, + telemetryService core.TelemetryService, + store core.KeyValueStore, + capabilityRegistry core.CapabilitiesRegistry, + errorLog core.ErrorLog, + pipelineRunner core.PipelineRunnerService, + relayerSet core.RelayerSet) *standardCapabilities { + return &standardCapabilities{ + log: log, + spec: spec, + pluginRegistrar: pluginRegistrar, + telemetryService: telemetryService, + store: store, + capabilityRegistry: capabilityRegistry, + errorLog: errorLog, + pipelineRunner: pipelineRunner, + relayerSet: relayerSet, + } +} + +func (s *standardCapabilities) Start(ctx context.Context) error { + return s.StartOnce("StandardCapabilities", func() error { + cmdName := s.spec.Command + + cmdFn, opts, err := s.pluginRegistrar.RegisterLOOP(plugins.CmdConfig{ + ID: s.log.Name(), + Cmd: cmdName, + Env: nil, + }) + + if err != nil { + return fmt.Errorf("error registering loop: %v", err) + } + + s.capabilitiesLoop = loop.NewStandardCapabilitiesService(s.log, opts, cmdFn) + + if err = s.capabilitiesLoop.Start(ctx); err != nil { + return fmt.Errorf("error starting standard capabilities service: %v", err) + } + + if err = s.capabilitiesLoop.WaitCtx(ctx); err != nil { + return fmt.Errorf("error waiting for standard capabilities service to start: %v", err) + } + + if err = s.capabilitiesLoop.Service.Initialise(ctx, s.spec.Config, s.telemetryService, s.store, s.capabilityRegistry, s.errorLog, + s.pipelineRunner, s.relayerSet); err != nil { + return fmt.Errorf("error initialising standard capabilities service: %v", err) + } + + capabilityInfos, err := s.capabilitiesLoop.Service.Infos(ctx) + if err != nil { + return fmt.Errorf("error getting standard capabilities service info: %v", err) + } + + s.log.Info("Started standard capabilities for job spec", "spec", s.spec, "capabilities", capabilityInfos) + + return nil + }) +} + +func (s *standardCapabilities) Close() error { + return s.StopOnce("StandardCapabilities", func() error { + if s.capabilitiesLoop != nil { + return s.capabilitiesLoop.Close() + } + + return nil + }) +} diff --git a/core/store/migrate/migrations/0241_standardcapability_job_spec.sql b/core/store/migrate/migrations/0241_standardcapability_job_spec.sql new file mode 100644 index 00000000000..1275acca5c6 --- /dev/null +++ b/core/store/migrate/migrations/0241_standardcapability_job_spec.sql @@ -0,0 +1,65 @@ +-- +goose Up +-- +goose StatementBegin +CREATE TABLE standardcapabilities_specs ( + id SERIAL PRIMARY KEY, + created_at timestamp with time zone NOT NULL, + updated_at timestamp with time zone NOT NULL, + command TEXT NOT NULL, + config TEXT +); + +ALTER TABLE jobs + ADD COLUMN standard_capabilities_spec_id INT REFERENCES standardcapabilities_specs (id), +DROP CONSTRAINT chk_specs, + ADD CONSTRAINT chk_specs CHECK ( + num_nonnulls( + ocr_oracle_spec_id, ocr2_oracle_spec_id, + direct_request_spec_id, flux_monitor_spec_id, + keeper_spec_id, cron_spec_id, webhook_spec_id, + vrf_spec_id, blockhash_store_spec_id, + block_header_feeder_spec_id, bootstrap_spec_id, + gateway_spec_id, + legacy_gas_station_server_spec_id, + legacy_gas_station_sidecar_spec_id, + eal_spec_id, + workflow_spec_id, + standard_capabilities_spec_id, + CASE "type" + WHEN 'stream' + THEN 1 + ELSE NULL + END -- 'stream' type lacks a spec but should not cause validation to fail + ) = 1 + ); +-- +goose StatementEnd + +-- +goose Down + +-- +goose StatementBegin +ALTER TABLE jobs +DROP CONSTRAINT chk_specs, + ADD CONSTRAINT chk_specs CHECK ( + num_nonnulls( + ocr_oracle_spec_id, ocr2_oracle_spec_id, + direct_request_spec_id, flux_monitor_spec_id, + keeper_spec_id, cron_spec_id, webhook_spec_id, + vrf_spec_id, blockhash_store_spec_id, + block_header_feeder_spec_id, bootstrap_spec_id, + gateway_spec_id, + legacy_gas_station_server_spec_id, + legacy_gas_station_sidecar_spec_id, + eal_spec_id, + workflow_spec_id, + CASE "type" + WHEN 'stream' + THEN 1 + ELSE NULL + END -- 'stream' type lacks a spec but should not cause validation to fail + ) = 1 + ); + +ALTER TABLE jobs +DROP COLUMN standard_capabilities_spec_id; + +DROP TABLE standardcapabilities_specs; +-- +goose StatementEnd \ No newline at end of file diff --git a/core/web/jobs_controller.go b/core/web/jobs_controller.go index 5ca00476007..da01d8f7b43 100644 --- a/core/web/jobs_controller.go +++ b/core/web/jobs_controller.go @@ -26,6 +26,7 @@ import ( "github.com/smartcontractkit/chainlink/v2/core/services/ocr" "github.com/smartcontractkit/chainlink/v2/core/services/ocr2/validate" "github.com/smartcontractkit/chainlink/v2/core/services/ocrbootstrap" + "github.com/smartcontractkit/chainlink/v2/core/services/standardcapabilities" "github.com/smartcontractkit/chainlink/v2/core/services/streams" "github.com/smartcontractkit/chainlink/v2/core/services/vrf/vrfcommon" "github.com/smartcontractkit/chainlink/v2/core/services/webhook" @@ -255,6 +256,9 @@ func (jc *JobsController) validateJobSpec(ctx context.Context, tomlString string jb, err = streams.ValidatedStreamSpec(tomlString) case job.Workflow: jb, err = workflows.ValidatedWorkflowSpec(tomlString) + case job.StandardCapabilities: + jb, err = standardcapabilities.ValidatedStandardCapabilitiesSpec(tomlString) + default: return jb, http.StatusUnprocessableEntity, errors.Errorf("unknown job type: %s", jobType) } diff --git a/core/web/presenters/job.go b/core/web/presenters/job.go index ff59bc9bd11..8d7dab626cb 100644 --- a/core/web/presenters/job.go +++ b/core/web/presenters/job.go @@ -27,18 +27,19 @@ func (t JobSpecType) String() string { } const ( - DirectRequestJobSpec JobSpecType = "directrequest" - FluxMonitorJobSpec JobSpecType = "fluxmonitor" - OffChainReportingJobSpec JobSpecType = "offchainreporting" - KeeperJobSpec JobSpecType = "keeper" - CronJobSpec JobSpecType = "cron" - VRFJobSpec JobSpecType = "vrf" - WebhookJobSpec JobSpecType = "webhook" - BlockhashStoreJobSpec JobSpecType = "blockhashstore" - BlockHeaderFeederJobSpec JobSpecType = "blockheaderfeeder" - BootstrapJobSpec JobSpecType = "bootstrap" - GatewayJobSpec JobSpecType = "gateway" - WorkflowJobSpec JobSpecType = "workflow" + DirectRequestJobSpec JobSpecType = "directrequest" + FluxMonitorJobSpec JobSpecType = "fluxmonitor" + OffChainReportingJobSpec JobSpecType = "offchainreporting" + KeeperJobSpec JobSpecType = "keeper" + CronJobSpec JobSpecType = "cron" + VRFJobSpec JobSpecType = "vrf" + WebhookJobSpec JobSpecType = "webhook" + BlockhashStoreJobSpec JobSpecType = "blockhashstore" + BlockHeaderFeederJobSpec JobSpecType = "blockheaderfeeder" + BootstrapJobSpec JobSpecType = "bootstrap" + GatewayJobSpec JobSpecType = "gateway" + WorkflowJobSpec JobSpecType = "workflow" + StandardCapabilitiesJobSpec JobSpecType = "standardcapabilities" ) // DirectRequestSpec defines the spec details of a DirectRequest Job @@ -449,6 +450,22 @@ func NewWorkflowSpec(spec *job.WorkflowSpec) *WorkflowSpec { } } +type StandardCapabilitiesSpec struct { + CreatedAt time.Time `json:"createdAt"` + UpdatedAt time.Time `json:"updatedAt"` + Command string `json:"command"` + Config string `json:"config"` +} + +func NewStandardCapabilitiesSpec(spec *job.StandardCapabilitiesSpec) *StandardCapabilitiesSpec { + return &StandardCapabilitiesSpec{ + CreatedAt: spec.CreatedAt, + UpdatedAt: spec.UpdatedAt, + Command: spec.Command, + Config: spec.Config, + } +} + // JobError represents errors on the job type JobError struct { ID int64 `json:"id"` @@ -471,29 +488,30 @@ func NewJobError(e job.SpecError) JobError { // JobResource represents a JobResource type JobResource struct { JAID - Name string `json:"name"` - StreamID *uint32 `json:"streamID,omitempty"` - Type JobSpecType `json:"type"` - SchemaVersion uint32 `json:"schemaVersion"` - GasLimit clnull.Uint32 `json:"gasLimit"` - ForwardingAllowed bool `json:"forwardingAllowed"` - MaxTaskDuration models.Interval `json:"maxTaskDuration"` - ExternalJobID uuid.UUID `json:"externalJobID"` - DirectRequestSpec *DirectRequestSpec `json:"directRequestSpec"` - FluxMonitorSpec *FluxMonitorSpec `json:"fluxMonitorSpec"` - CronSpec *CronSpec `json:"cronSpec"` - OffChainReportingSpec *OffChainReportingSpec `json:"offChainReportingOracleSpec"` - OffChainReporting2Spec *OffChainReporting2Spec `json:"offChainReporting2OracleSpec"` - KeeperSpec *KeeperSpec `json:"keeperSpec"` - VRFSpec *VRFSpec `json:"vrfSpec"` - WebhookSpec *WebhookSpec `json:"webhookSpec"` - BlockhashStoreSpec *BlockhashStoreSpec `json:"blockhashStoreSpec"` - BlockHeaderFeederSpec *BlockHeaderFeederSpec `json:"blockHeaderFeederSpec"` - BootstrapSpec *BootstrapSpec `json:"bootstrapSpec"` - GatewaySpec *GatewaySpec `json:"gatewaySpec"` - WorkflowSpec *WorkflowSpec `json:"workflowSpec"` - PipelineSpec PipelineSpec `json:"pipelineSpec"` - Errors []JobError `json:"errors"` + Name string `json:"name"` + StreamID *uint32 `json:"streamID,omitempty"` + Type JobSpecType `json:"type"` + SchemaVersion uint32 `json:"schemaVersion"` + GasLimit clnull.Uint32 `json:"gasLimit"` + ForwardingAllowed bool `json:"forwardingAllowed"` + MaxTaskDuration models.Interval `json:"maxTaskDuration"` + ExternalJobID uuid.UUID `json:"externalJobID"` + DirectRequestSpec *DirectRequestSpec `json:"directRequestSpec"` + FluxMonitorSpec *FluxMonitorSpec `json:"fluxMonitorSpec"` + CronSpec *CronSpec `json:"cronSpec"` + OffChainReportingSpec *OffChainReportingSpec `json:"offChainReportingOracleSpec"` + OffChainReporting2Spec *OffChainReporting2Spec `json:"offChainReporting2OracleSpec"` + KeeperSpec *KeeperSpec `json:"keeperSpec"` + VRFSpec *VRFSpec `json:"vrfSpec"` + WebhookSpec *WebhookSpec `json:"webhookSpec"` + BlockhashStoreSpec *BlockhashStoreSpec `json:"blockhashStoreSpec"` + BlockHeaderFeederSpec *BlockHeaderFeederSpec `json:"blockHeaderFeederSpec"` + BootstrapSpec *BootstrapSpec `json:"bootstrapSpec"` + GatewaySpec *GatewaySpec `json:"gatewaySpec"` + WorkflowSpec *WorkflowSpec `json:"workflowSpec"` + StandardCapabilitiesSpec *StandardCapabilitiesSpec `json:"standardCapabilitiesSpec"` + PipelineSpec PipelineSpec `json:"pipelineSpec"` + Errors []JobError `json:"errors"` } // NewJobResource initializes a new JSONAPI job resource @@ -540,6 +558,8 @@ func NewJobResource(j job.Job) *JobResource { // no spec; nothing to do case job.Workflow: resource.WorkflowSpec = NewWorkflowSpec(j.WorkflowSpec) + case job.StandardCapabilities: + resource.StandardCapabilitiesSpec = NewStandardCapabilitiesSpec(j.StandardCapabilitiesSpec) case job.LegacyGasStationServer, job.LegacyGasStationSidecar: // unsupported } diff --git a/core/web/presenters/job_test.go b/core/web/presenters/job_test.go index ba485d27789..80856daa8ef 100644 --- a/core/web/presenters/job_test.go +++ b/core/web/presenters/job_test.go @@ -129,6 +129,7 @@ func TestJob(t *testing.T) { "blockHeaderFeederSpec": null, "bootstrapSpec": null, "gatewaySpec": null, + "standardCapabilitiesSpec": null, "errors": [] } } @@ -206,6 +207,7 @@ func TestJob(t *testing.T) { "blockHeaderFeederSpec": null, "bootstrapSpec": null, "gatewaySpec": null, + "standardCapabilitiesSpec": null, "errors": [] } } @@ -293,6 +295,7 @@ func TestJob(t *testing.T) { "blockHeaderFeederSpec": null, "bootstrapSpec": null, "gatewaySpec": null, + "standardCapabilitiesSpec": null, "errors": [] } } @@ -357,6 +360,7 @@ func TestJob(t *testing.T) { "blockHeaderFeederSpec": null, "bootstrapSpec": null, "gatewaySpec": null, + "standardCapabilitiesSpec": null, "errors": [] } } @@ -416,6 +420,7 @@ func TestJob(t *testing.T) { "blockHeaderFeederSpec": null, "bootstrapSpec": null, "gatewaySpec": null, + "standardCapabilitiesSpec": null, "errors": [] } } @@ -473,6 +478,7 @@ func TestJob(t *testing.T) { "blockHeaderFeederSpec": null, "bootstrapSpec": null, "gatewaySpec": null, + "standardCapabilitiesSpec": null, "errors": [] } } @@ -558,6 +564,7 @@ func TestJob(t *testing.T) { "dotDagSource": "" }, "gatewaySpec": null, + "standardCapabilitiesSpec": null, "errors": [] } } @@ -639,6 +646,7 @@ func TestJob(t *testing.T) { "dotDagSource": "" }, "gatewaySpec": null, + "standardCapabilitiesSpec": null, "errors": [] } } @@ -720,6 +728,7 @@ func TestJob(t *testing.T) { "dotDagSource": "" }, "gatewaySpec": null, + "standardCapabilitiesSpec": null, "errors": [] } } @@ -785,6 +794,7 @@ func TestJob(t *testing.T) { "dotDagSource": "" }, "gatewaySpec": null, + "standardCapabilitiesSpec": null, "errors": [] } } @@ -842,6 +852,7 @@ func TestJob(t *testing.T) { "createdAt":"0001-01-01T00:00:00Z", "updatedAt":"0001-01-01T00:00:00Z" }, + "standardCapabilitiesSpec": null, "pipelineSpec": { "id": 1, "jobID": 0, @@ -905,6 +916,67 @@ func TestJob(t *testing.T) { "blockHeaderFeederSpec": null, "bootstrapSpec": null, "gatewaySpec": null, + "standardCapabilitiesSpec": null, + "pipelineSpec": { + "id": 1, + "jobID": 0, + "dotDagSource": "" + }, + "errors": [] + } + } + }`, + }, + { + name: "standardcapabilities spec", + job: job.Job{ + ID: 1, + StandardCapabilitiesSpec: &job.StandardCapabilitiesSpec{ + ID: 3, + Command: "testcommand", + Config: "testconfig", + }, + PipelineSpec: &pipeline.Spec{ + ID: 1, + DotDagSource: "", + }, + ExternalJobID: uuid.MustParse("0eec7e1d-d0d2-476c-a1a8-72dfb6633f46"), + Type: job.StandardCapabilities, + SchemaVersion: 1, + Name: null.StringFrom("standardcapabilities test"), + }, + want: ` + { + "data": { + "type": "jobs", + "id": "1", + "attributes": { + "name": "standardcapabilities test", + "type": "standardcapabilities", + "schemaVersion": 1, + "maxTaskDuration": "0s", + "externalJobID": "0eec7e1d-d0d2-476c-a1a8-72dfb6633f46", + "directRequestSpec": null, + "fluxMonitorSpec": null, + "gasLimit": null, + "forwardingAllowed": false, + "cronSpec": null, + "offChainReportingOracleSpec": null, + "offChainReporting2OracleSpec": null, + "keeperSpec": null, + "vrfSpec": null, + "webhookSpec": null, + "workflowSpec": null, + "blockhashStoreSpec": null, + "blockHeaderFeederSpec": null, + "bootstrapSpec": null, + "gatewaySpec": null, + "standardCapabilitiesSpec": { + "command":"testcommand", + "config":"testconfig", + "createdAt":"0001-01-01T00:00:00Z", + "updatedAt":"0001-01-01T00:00:00Z" + }, "pipelineSpec": { "id": 1, "jobID": 0, @@ -983,6 +1055,7 @@ func TestJob(t *testing.T) { "blockHeaderFeederSpec": null, "bootstrapSpec": null, "gatewaySpec": null, + "standardCapabilitiesSpec": null, "errors": [{ "id": 200, "description": "some error", diff --git a/core/web/resolver/mutation.go b/core/web/resolver/mutation.go index 641eabdfd8b..25019df9761 100644 --- a/core/web/resolver/mutation.go +++ b/core/web/resolver/mutation.go @@ -36,6 +36,7 @@ import ( "github.com/smartcontractkit/chainlink/v2/core/services/ocr" "github.com/smartcontractkit/chainlink/v2/core/services/ocr2/validate" "github.com/smartcontractkit/chainlink/v2/core/services/ocrbootstrap" + "github.com/smartcontractkit/chainlink/v2/core/services/standardcapabilities" "github.com/smartcontractkit/chainlink/v2/core/services/vrf/vrfcommon" "github.com/smartcontractkit/chainlink/v2/core/services/webhook" "github.com/smartcontractkit/chainlink/v2/core/services/workflows" @@ -1050,6 +1051,8 @@ func (r *Resolver) CreateJob(ctx context.Context, args struct { jb, err = gateway.ValidatedGatewaySpec(args.Input.TOML) case job.Workflow: jb, err = workflows.ValidatedWorkflowSpec(args.Input.TOML) + case job.StandardCapabilities: + jb, err = standardcapabilities.ValidatedStandardCapabilitiesSpec(args.Input.TOML) default: return NewCreateJobPayload(r.App, nil, map[string]string{ "Job Type": fmt.Sprintf("unknown job type: %s", jbt), diff --git a/core/web/resolver/spec.go b/core/web/resolver/spec.go index 3230c1bec23..b3c22b3b342 100644 --- a/core/web/resolver/spec.go +++ b/core/web/resolver/spec.go @@ -125,6 +125,14 @@ func (r *SpecResolver) ToWorkflowSpec() (*WorkflowSpecResolver, bool) { return &WorkflowSpecResolver{spec: *r.j.WorkflowSpec}, true } +func (r *SpecResolver) ToStandardCapabilitiesSpec() (*StandardCapabilitiesSpecResolver, bool) { + if r.j.Type != job.StandardCapabilities { + return nil, false + } + + return &StandardCapabilitiesSpecResolver{spec: *r.j.StandardCapabilitiesSpec}, true +} + type CronSpecResolver struct { spec job.CronSpec } @@ -1006,3 +1014,23 @@ func (r *WorkflowSpecResolver) CreatedAt() graphql.Time { func (r *WorkflowSpecResolver) UpdatedAt() graphql.Time { return graphql.Time{Time: r.spec.UpdatedAt} } + +type StandardCapabilitiesSpecResolver struct { + spec job.StandardCapabilitiesSpec +} + +func (r *StandardCapabilitiesSpecResolver) ID() graphql.ID { + return graphql.ID(stringutils.FromInt32(r.spec.ID)) +} + +func (r *StandardCapabilitiesSpecResolver) CreatedAt() graphql.Time { + return graphql.Time{Time: r.spec.CreatedAt} +} + +func (r *StandardCapabilitiesSpecResolver) Command() string { + return r.spec.Command +} + +func (r *StandardCapabilitiesSpecResolver) Config() *string { + return &r.spec.Config +} diff --git a/core/web/resolver/spec_test.go b/core/web/resolver/spec_test.go index 63002e566f1..573d74fcd54 100644 --- a/core/web/resolver/spec_test.go +++ b/core/web/resolver/spec_test.go @@ -1105,3 +1105,60 @@ func TestResolver_GatewaySpec(t *testing.T) { RunGQLTests(t, testCases) } + +func TestResolver_StandardCapabilitiesSpec(t *testing.T) { + var ( + id = int32(1) + ) + + testCases := []GQLTestCase{ + { + name: "StandardCapabilities spec", + authenticated: true, + before: func(ctx context.Context, f *gqlTestFramework) { + f.App.On("JobORM").Return(f.Mocks.jobORM) + f.Mocks.jobORM.On("FindJobWithoutSpecErrors", mock.Anything, id).Return(job.Job{ + Type: job.StandardCapabilities, + StandardCapabilitiesSpec: &job.StandardCapabilitiesSpec{ + ID: id, + CreatedAt: f.Timestamp(), + Command: "testcommand", + Config: "testconfig", + }, + }, nil) + }, + query: ` + query GetJob { + job(id: "1") { + ... on Job { + spec { + __typename + ... on StandardCapabilitiesSpec { + id + createdAt + command + config + } + } + } + } + } + `, + result: ` + { + "job": { + "spec": { + "__typename": "StandardCapabilitiesSpec", + "id": "1", + "createdAt": "2021-01-01T00:00:00Z", + "command": "testcommand", + "config": "testconfig" + } + } + } + `, + }, + } + + RunGQLTests(t, testCases) +} diff --git a/core/web/schema/type/spec.graphql b/core/web/schema/type/spec.graphql index 238f6ef5913..db33dd14ee2 100644 --- a/core/web/schema/type/spec.graphql +++ b/core/web/schema/type/spec.graphql @@ -11,7 +11,8 @@ union JobSpec = BlockHeaderFeederSpec | BootstrapSpec | GatewaySpec | - WorkflowSpec + WorkflowSpec | + StandardCapabilitiesSpec type CronSpec { schedule: String! @@ -170,3 +171,10 @@ type WorkflowSpec { createdAt: Time! updatedAt: Time! } + +type StandardCapabilitiesSpec { + id: ID! + createdAt: Time! + command: String! + config: String +} \ No newline at end of file diff --git a/go.mod b/go.mod index 9f0c41b0b95..24082973fd6 100644 --- a/go.mod +++ b/go.mod @@ -72,7 +72,7 @@ require ( github.com/shopspring/decimal v1.3.1 github.com/smartcontractkit/chain-selectors v1.0.10 github.com/smartcontractkit/chainlink-automation v1.0.3 - github.com/smartcontractkit/chainlink-common v0.1.7-0.20240605181819-316b5eb82110 + github.com/smartcontractkit/chainlink-common v0.1.7-0.20240606094423-573049c41fa0 github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20240524214833-c362c2ebbd2d github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240220203239-09be0ea34540 github.com/smartcontractkit/chainlink-feeds v0.0.0-20240522213638-159fb2d99917 diff --git a/go.sum b/go.sum index e69d1d87f3b..85f84e7722f 100644 --- a/go.sum +++ b/go.sum @@ -1171,8 +1171,8 @@ github.com/smartcontractkit/chain-selectors v1.0.10 h1:t9kJeE6B6G+hKD0GYR4kGJSCq github.com/smartcontractkit/chain-selectors v1.0.10/go.mod h1:d4Hi+E1zqjy9HqMkjBE5q1vcG9VGgxf5VxiRHfzi2kE= github.com/smartcontractkit/chainlink-automation v1.0.3 h1:h/ijT0NiyV06VxYVgcNfsE3+8OEzT3Q0Z9au0z1BPWs= github.com/smartcontractkit/chainlink-automation v1.0.3/go.mod h1:RjboV0Qd7YP+To+OrzHGXaxUxoSONveCoAK2TQ1INLU= -github.com/smartcontractkit/chainlink-common v0.1.7-0.20240605181819-316b5eb82110 h1:skCp4kAmd0H+/sqiCzpwXKxkSWpf1NsdIUuN73nuz/Y= -github.com/smartcontractkit/chainlink-common v0.1.7-0.20240605181819-316b5eb82110/go.mod h1:DUZccDEW98n+J1mhdWGO7wr/Njad9p9Fzks839JN7Rs= +github.com/smartcontractkit/chainlink-common v0.1.7-0.20240606094423-573049c41fa0 h1:53zVcdDxrHG3oewhP7AWOiLtwTozcQ0/wzFTsaTBS5M= +github.com/smartcontractkit/chainlink-common v0.1.7-0.20240606094423-573049c41fa0/go.mod h1:DUZccDEW98n+J1mhdWGO7wr/Njad9p9Fzks839JN7Rs= github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20240524214833-c362c2ebbd2d h1:5tgMC5Gi2UAOKZ+m28W8ubjLeR0pQCAcrz6eQ0rW510= github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20240524214833-c362c2ebbd2d/go.mod h1:0UNuO3nDt9MFsZPaHJBEUolxVkN0iC69j1ccDp95e8k= github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240220203239-09be0ea34540 h1:xFSv8561jsLtF6gYZr/zW2z5qUUAkcFkApin2mnbYTo= diff --git a/integration-tests/go.mod b/integration-tests/go.mod index 90e2a8a4682..a93b35e1544 100644 --- a/integration-tests/go.mod +++ b/integration-tests/go.mod @@ -27,7 +27,7 @@ require ( github.com/shopspring/decimal v1.3.1 github.com/slack-go/slack v0.12.2 github.com/smartcontractkit/chainlink-automation v1.0.3 - github.com/smartcontractkit/chainlink-common v0.1.7-0.20240605181819-316b5eb82110 + github.com/smartcontractkit/chainlink-common v0.1.7-0.20240606094423-573049c41fa0 github.com/smartcontractkit/chainlink-testing-framework v1.30.1 github.com/smartcontractkit/chainlink-vrf v0.0.0-20231120191722-fef03814f868 github.com/smartcontractkit/chainlink/v2 v2.0.0-00010101000000-000000000000 diff --git a/integration-tests/go.sum b/integration-tests/go.sum index e604bc045e9..16cdd4a5cca 100644 --- a/integration-tests/go.sum +++ b/integration-tests/go.sum @@ -1512,8 +1512,8 @@ github.com/smartcontractkit/chain-selectors v1.0.10 h1:t9kJeE6B6G+hKD0GYR4kGJSCq github.com/smartcontractkit/chain-selectors v1.0.10/go.mod h1:d4Hi+E1zqjy9HqMkjBE5q1vcG9VGgxf5VxiRHfzi2kE= github.com/smartcontractkit/chainlink-automation v1.0.3 h1:h/ijT0NiyV06VxYVgcNfsE3+8OEzT3Q0Z9au0z1BPWs= github.com/smartcontractkit/chainlink-automation v1.0.3/go.mod h1:RjboV0Qd7YP+To+OrzHGXaxUxoSONveCoAK2TQ1INLU= -github.com/smartcontractkit/chainlink-common v0.1.7-0.20240605181819-316b5eb82110 h1:skCp4kAmd0H+/sqiCzpwXKxkSWpf1NsdIUuN73nuz/Y= -github.com/smartcontractkit/chainlink-common v0.1.7-0.20240605181819-316b5eb82110/go.mod h1:DUZccDEW98n+J1mhdWGO7wr/Njad9p9Fzks839JN7Rs= +github.com/smartcontractkit/chainlink-common v0.1.7-0.20240606094423-573049c41fa0 h1:53zVcdDxrHG3oewhP7AWOiLtwTozcQ0/wzFTsaTBS5M= +github.com/smartcontractkit/chainlink-common v0.1.7-0.20240606094423-573049c41fa0/go.mod h1:DUZccDEW98n+J1mhdWGO7wr/Njad9p9Fzks839JN7Rs= github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20240524214833-c362c2ebbd2d h1:5tgMC5Gi2UAOKZ+m28W8ubjLeR0pQCAcrz6eQ0rW510= github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20240524214833-c362c2ebbd2d/go.mod h1:0UNuO3nDt9MFsZPaHJBEUolxVkN0iC69j1ccDp95e8k= github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240220203239-09be0ea34540 h1:xFSv8561jsLtF6gYZr/zW2z5qUUAkcFkApin2mnbYTo= diff --git a/integration-tests/load/go.mod b/integration-tests/load/go.mod index c624cc25a58..f045c0f1527 100644 --- a/integration-tests/load/go.mod +++ b/integration-tests/load/go.mod @@ -16,7 +16,7 @@ require ( github.com/rs/zerolog v1.30.0 github.com/slack-go/slack v0.12.2 github.com/smartcontractkit/chainlink-automation v1.0.3 - github.com/smartcontractkit/chainlink-common v0.1.7-0.20240605181819-316b5eb82110 + github.com/smartcontractkit/chainlink-common v0.1.7-0.20240606094423-573049c41fa0 github.com/smartcontractkit/chainlink-testing-framework v1.30.1 github.com/smartcontractkit/chainlink/integration-tests v0.0.0-20240214231432-4ad5eb95178c github.com/smartcontractkit/chainlink/v2 v2.9.0-beta0.0.20240216210048-da02459ddad8 diff --git a/integration-tests/load/go.sum b/integration-tests/load/go.sum index dfd1161b479..549d54919ae 100644 --- a/integration-tests/load/go.sum +++ b/integration-tests/load/go.sum @@ -1502,8 +1502,8 @@ github.com/smartcontractkit/chain-selectors v1.0.10 h1:t9kJeE6B6G+hKD0GYR4kGJSCq github.com/smartcontractkit/chain-selectors v1.0.10/go.mod h1:d4Hi+E1zqjy9HqMkjBE5q1vcG9VGgxf5VxiRHfzi2kE= github.com/smartcontractkit/chainlink-automation v1.0.3 h1:h/ijT0NiyV06VxYVgcNfsE3+8OEzT3Q0Z9au0z1BPWs= github.com/smartcontractkit/chainlink-automation v1.0.3/go.mod h1:RjboV0Qd7YP+To+OrzHGXaxUxoSONveCoAK2TQ1INLU= -github.com/smartcontractkit/chainlink-common v0.1.7-0.20240605181819-316b5eb82110 h1:skCp4kAmd0H+/sqiCzpwXKxkSWpf1NsdIUuN73nuz/Y= -github.com/smartcontractkit/chainlink-common v0.1.7-0.20240605181819-316b5eb82110/go.mod h1:DUZccDEW98n+J1mhdWGO7wr/Njad9p9Fzks839JN7Rs= +github.com/smartcontractkit/chainlink-common v0.1.7-0.20240606094423-573049c41fa0 h1:53zVcdDxrHG3oewhP7AWOiLtwTozcQ0/wzFTsaTBS5M= +github.com/smartcontractkit/chainlink-common v0.1.7-0.20240606094423-573049c41fa0/go.mod h1:DUZccDEW98n+J1mhdWGO7wr/Njad9p9Fzks839JN7Rs= github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20240524214833-c362c2ebbd2d h1:5tgMC5Gi2UAOKZ+m28W8ubjLeR0pQCAcrz6eQ0rW510= github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20240524214833-c362c2ebbd2d/go.mod h1:0UNuO3nDt9MFsZPaHJBEUolxVkN0iC69j1ccDp95e8k= github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240220203239-09be0ea34540 h1:xFSv8561jsLtF6gYZr/zW2z5qUUAkcFkApin2mnbYTo= From 80dd97297f01aec11e5cdb6d1b6a6a4b80e674cb Mon Sep 17 00:00:00 2001 From: Sergey Kudasov Date: Thu, 6 Jun 2024 15:27:38 +0200 Subject: [PATCH 12/40] turn prometheus on by default (#13295) --- integration-tests/testsetups/ocr.go | 1 + 1 file changed, 1 insertion(+) diff --git a/integration-tests/testsetups/ocr.go b/integration-tests/testsetups/ocr.go index b0424fc8226..2c3452b77d5 100644 --- a/integration-tests/testsetups/ocr.go +++ b/integration-tests/testsetups/ocr.go @@ -184,6 +184,7 @@ func (o *OCRSoakTest) DeployEnvironment(customChainlinkNetworkTOML string, ocrTe "db": map[string]any{ "stateful": true, // stateful DB by default for soak tests }, + "prometheus": true, }, ocrTestConfig.GetChainlinkImageConfig(), overrideFn) testEnv.AddHelm(cd) From 3ff51280266dd979cbe2a8fe779c669a4e12fe22 Mon Sep 17 00:00:00 2001 From: Matthew Pendrey Date: Thu, 6 Jun 2024 14:30:52 +0100 Subject: [PATCH 13/40] Ks 146/update operator gui fro standard capabilities (#13445) * update operator gui version * changeset * update operator ui --- .changeset/tough-brooms-appear.md | 5 +++ core/web/assets/index.html | 2 +- core/web/assets/index.html.gz | Bin 418 -> 419 bytes .../assets/main.22957d5aeebe77369ec3.js.gz | Bin 1197031 -> 0 bytes ...369ec3.js => main.d14a79e7e016a7c6b5f5.js} | 41 ++++++------------ .../assets/main.d14a79e7e016a7c6b5f5.js.gz | Bin 0 -> 1195737 bytes operator_ui/TAG | 2 +- 7 files changed, 21 insertions(+), 29 deletions(-) create mode 100644 .changeset/tough-brooms-appear.md delete mode 100644 core/web/assets/main.22957d5aeebe77369ec3.js.gz rename core/web/assets/{main.22957d5aeebe77369ec3.js => main.d14a79e7e016a7c6b5f5.js} (63%) create mode 100644 core/web/assets/main.d14a79e7e016a7c6b5f5.js.gz diff --git a/.changeset/tough-brooms-appear.md b/.changeset/tough-brooms-appear.md new file mode 100644 index 00000000000..ea2acbdbc5d --- /dev/null +++ b/.changeset/tough-brooms-appear.md @@ -0,0 +1,5 @@ +--- +"chainlink": minor +--- + +#internal update operator ui versioun diff --git a/core/web/assets/index.html b/core/web/assets/index.html index 007152e132c..c08e2a365a8 100644 --- a/core/web/assets/index.html +++ b/core/web/assets/index.html @@ -1 +1 @@ -Operator UIChainlink
\ No newline at end of file +Operator UIChainlink
\ No newline at end of file diff --git a/core/web/assets/index.html.gz b/core/web/assets/index.html.gz index 0cd3a7575b498bd9ca737adacd0be13eb223a1a9..bdd02aa740087cf8fa56a16831a3d6be7f73dd2c 100644 GIT binary patch literal 419 zcmV;U0bKqciwFP!000021C^3NYa1~Th5w2w=&AN<-Ntbeq|G5vNTC$k=FsC2vJDahagPULZUd@LxF5X5Em5Yeq>hLA+;zKmEvxTvQ`Yfh4l zlz*v$(djyH5x*Bjp0id%!QSaXWUP0_)C5Il(*j-^N;`UKGK%p7P@WkLdA^6eu=AY8 zg0;SV|Il+uAaespn?I2~XQ|DOc^45zs*UGle69CAB#H<3mA5Q>_n~bUS8cmkx2--m zDu;-5K>RQAJk=}uGYA%f`0mkjuK&WC9;Uf^9#Q`_tNBBnrUW}QFUzBL3H{+Up-be| z7aBzc?6Ej~ytJytJ8hs=lxh-CZo=vcHn+IJc6ALKf4yDz>*i*hW;JV1jQaTVYl9S;;_E!8kV7TncTVNl|dRFw5){XzHvv;mvVX Ne*+^~J9oeW005J}#JB(e literal 418 zcmV;T0bTwdiwFP!000021C^4|ixV*r#{ZQV@X26!&$L}APAGEp1 z84@}@5k8GvL@Uo(FpJYq6l8D#C-S&FJr%Xw3hiR^!N7R4KYW`5CDZw7i^YWx!L%)AX=o)$T zg+@^Udn`_$F0E?uP8+BdrJ4kko7L)OvkeECD znJ@AWKB$Zsl(51KyNK!&Oz`b&E3C>PD;cON7{|t%YoQG^DGE*(W|@5gO`SDoyg9Av MZ!<)GGr$4>02uJd!2kdN diff --git a/core/web/assets/main.22957d5aeebe77369ec3.js.gz b/core/web/assets/main.22957d5aeebe77369ec3.js.gz deleted file mode 100644 index 29b0b312bddeb69481aeb0a14216ffbe61a26cc2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1197031 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
  • RTuR!HfB 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⁢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

    11o3l}}W&G6wTLV!|gV6lgBpHpdPTx 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

    <9Z8=x1RK&nHbh? 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%0D|Tn+ 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À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�F`lt+e#9d@;KDo~ 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≤{BfH3)ascy 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 N{|7id=yS?JKL9Zp9ytI2 diff --git a/core/web/assets/main.22957d5aeebe77369ec3.js b/core/web/assets/main.d14a79e7e016a7c6b5f5.js similarity index 63% rename from core/web/assets/main.22957d5aeebe77369ec3.js rename to core/web/assets/main.d14a79e7e016a7c6b5f5.js index 2fe73fb8cab..253a0178c12 100644 --- a/core/web/assets/main.22957d5aeebe77369ec3.js +++ b/core/web/assets/main.d14a79e7e016a7c6b5f5.js @@ -1,23 +1,10 @@ -(()=>{var __webpack_modules__={23564(e,t,n){"use strict";n.d(t,{Jh:()=>u,ZT:()=>i,_T:()=>o,ev:()=>c,mG:()=>s,pi:()=>a});/*! ***************************************************************************** -Copyright (c) Microsoft Corporation. - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY -AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM -LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THIS SOFTWARE. -***************************************************************************** */ var r=function(e,t){return(r=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 i(e,t){if("function"!=typeof t&&null!==t)throw TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var a=function(){return(a=Object.assign||function(e){for(var t,n=1,r=arguments.length;nt.indexOf(r)&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var i=0,r=Object.getOwnPropertySymbols(e);it.indexOf(r[i])&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n}function s(e,t,n,r){function i(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||(n=Promise))(function(n,a){function o(e){try{u(r.next(e))}catch(t){a(t)}}function s(e){try{u(r.throw(e))}catch(t){a(t)}}function u(e){e.done?n(e.value):i(e.value).then(o,s)}u((r=r.apply(e,t||[])).next())})}function u(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[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(e){return function(t){return u([e,t])}}function u(a){if(n)throw TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]e.length)&&(t=e.length);for(var n=0,r=Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}e.exports=i,e.exports.default=e.exports,e.exports.__esModule=!0},37316(e){function t(e,t){if(null==e)return{};var n,r,i={},a=Object.keys(e);for(r=0;r=0||(i[n]=e[n]);return i}e.exports=t,e.exports.default=e.exports,e.exports.__esModule=!0},78585(e,t,n){var r=n(50008).default,i=n(81506);function a(e,t){return t&&("object"===r(t)||"function"==typeof t)?t:i(e)}e.exports=a,e.exports.default=e.exports,e.exports.__esModule=!0},99489(e){function t(n,r){return e.exports=t=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},e.exports.default=e.exports,e.exports.__esModule=!0,t(n,r)}e.exports=t,e.exports.default=e.exports,e.exports.__esModule=!0},319(e,t,n){var r=n(23646),i=n(46860),a=n(60379),o=n(98206);function s(e){return r(e)||i(e)||a(e)||o()}e.exports=s,e.exports.default=e.exports,e.exports.__esModule=!0},50008(e){function t(n){return"function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?(e.exports=t=function(e){return typeof e},e.exports.default=e.exports,e.exports.__esModule=!0):(e.exports=t=function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports.default=e.exports,e.exports.__esModule=!0),t(n)}e.exports=t,e.exports.default=e.exports,e.exports.__esModule=!0},60379(e,t,n){var r=n(67228);function i(e,t){if(e){if("string"==typeof e)return r(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return r(e,t)}}e.exports=i,e.exports.default=e.exports,e.exports.__esModule=!0},98925(e,t,n){"use strict";let r=n(98633),i=n.g.Date;class a extends i{constructor(e){super(e),this.isDate=!0}toISOString(){return`${this.getUTCFullYear()}-${r(2,this.getUTCMonth()+1)}-${r(2,this.getUTCDate())}`}}e.exports=e=>{let t=new a(e);if(!isNaN(t))return t;throw TypeError("Invalid Datetime")}},86595(e,t,n){"use strict";let r=n(98633);class i extends Date{constructor(e){super(e+"Z"),this.isFloating=!0}toISOString(){let e=`${this.getUTCFullYear()}-${r(2,this.getUTCMonth()+1)}-${r(2,this.getUTCDate())}`,t=`${r(2,this.getUTCHours())}:${r(2,this.getUTCMinutes())}:${r(2,this.getUTCSeconds())}.${r(3,this.getUTCMilliseconds())}`;return`${e}T${t}`}}e.exports=e=>{let t=new i(e);if(!isNaN(t))return t;throw TypeError("Invalid Datetime")}},76114(e){"use strict";e.exports=e=>{let t=new Date(e);if(!isNaN(t))return t;throw TypeError("Invalid Datetime")}},99439(e,t,n){"use strict";let r=n(98633);class i extends Date{constructor(e){super(`0000-01-01T${e}Z`),this.isTime=!0}toISOString(){return`${r(2,this.getUTCHours())}:${r(2,this.getUTCMinutes())}:${r(2,this.getUTCSeconds())}.${r(3,this.getUTCMilliseconds())}`}}e.exports=e=>{let t=new i(e);if(!isNaN(t))return t;throw TypeError("Invalid Datetime")}},98633(e){"use strict";e.exports=(e,t)=>{for(t=String(t);t.length{let t=new TomlError(e.message);return t.code=e.code,t.wrapped=e,t},module.exports.TomlError=TomlError;let createDateTime=__webpack_require__(76114),createDateTimeFloat=__webpack_require__(86595),createDate=__webpack_require__(98925),createTime=__webpack_require__(99439),CTRL_I=9,CTRL_J=10,CTRL_M=13,CTRL_CHAR_BOUNDARY=31,CHAR_SP=32,CHAR_QUOT=34,CHAR_NUM=35,CHAR_APOS=39,CHAR_PLUS=43,CHAR_COMMA=44,CHAR_HYPHEN=45,CHAR_PERIOD=46,CHAR_0=48,CHAR_1=49,CHAR_7=55,CHAR_9=57,CHAR_COLON=58,CHAR_EQUALS=61,CHAR_A=65,CHAR_E=69,CHAR_F=70,CHAR_T=84,CHAR_U=85,CHAR_Z=90,CHAR_LOWBAR=95,CHAR_a=97,CHAR_b=98,CHAR_e=101,CHAR_f=102,CHAR_i=105,CHAR_l=108,CHAR_n=110,CHAR_o=111,CHAR_r=114,CHAR_s=115,CHAR_t=116,CHAR_u=117,CHAR_x=120,CHAR_z=122,CHAR_LCUB=123,CHAR_RCUB=125,CHAR_LSQB=91,CHAR_BSOL=92,CHAR_RSQB=93,CHAR_DEL=127,SURROGATE_FIRST=55296,SURROGATE_LAST=57343,escapes={[CHAR_b]:"\b",[CHAR_t]:" ",[CHAR_n]:"\n",[CHAR_f]:"\f",[CHAR_r]:"\r",[CHAR_QUOT]:'"',[CHAR_BSOL]:"\\"};function isDigit(e){return e>=CHAR_0&&e<=CHAR_9}function isHexit(e){return e>=CHAR_A&&e<=CHAR_F||e>=CHAR_a&&e<=CHAR_f||e>=CHAR_0&&e<=CHAR_9}function isBit(e){return e===CHAR_1||e===CHAR_0}function isOctit(e){return e>=CHAR_0&&e<=CHAR_7}function isAlphaNumQuoteHyphen(e){return e>=CHAR_A&&e<=CHAR_Z||e>=CHAR_a&&e<=CHAR_z||e>=CHAR_0&&e<=CHAR_9||e===CHAR_APOS||e===CHAR_QUOT||e===CHAR_LOWBAR||e===CHAR_HYPHEN}function isAlphaNumHyphen(e){return e>=CHAR_A&&e<=CHAR_Z||e>=CHAR_a&&e<=CHAR_z||e>=CHAR_0&&e<=CHAR_9||e===CHAR_LOWBAR||e===CHAR_HYPHEN}let _type=Symbol("type"),_declared=Symbol("declared"),hasOwnProperty=Object.prototype.hasOwnProperty,defineProperty=Object.defineProperty,descriptor={configurable:!0,enumerable:!0,writable:!0,value:void 0};function hasKey(e,t){return!!hasOwnProperty.call(e,t)||("__proto__"===t&&defineProperty(e,"__proto__",descriptor),!1)}let INLINE_TABLE=Symbol("inline-table");function InlineTable(){return Object.defineProperties({},{[_type]:{value:INLINE_TABLE}})}function isInlineTable(e){return null!==e&&"object"==typeof e&&e[_type]===INLINE_TABLE}let TABLE=Symbol("table");function Table(){return Object.defineProperties({},{[_type]:{value:TABLE},[_declared]:{value:!1,writable:!0}})}function isTable(e){return null!==e&&"object"==typeof e&&e[_type]===TABLE}let _contentType=Symbol("content-type"),INLINE_LIST=Symbol("inline-list");function InlineList(e){return Object.defineProperties([],{[_type]:{value:INLINE_LIST},[_contentType]:{value:e}})}function isInlineList(e){return null!==e&&"object"==typeof e&&e[_type]===INLINE_LIST}let LIST=Symbol("list");function List(){return Object.defineProperties([],{[_type]:{value:LIST}})}function isList(e){return null!==e&&"object"==typeof e&&e[_type]===LIST}let _custom;try{let utilInspect=eval("require('util').inspect");_custom=utilInspect.custom}catch(_){}let _inspect=_custom||"inspect";class BoxedBigInt{constructor(e){try{this.value=__webpack_require__.g.BigInt.asIntN(64,e)}catch(t){this.value=null}Object.defineProperty(this,_type,{value:INTEGER})}isNaN(){return null===this.value}toString(){return String(this.value)}[_inspect](){return`[BigInt: ${this.toString()}]}`}valueOf(){return this.value}}let INTEGER=Symbol("integer");function Integer(e){let t=Number(e);return(Object.is(t,-0)&&(t=0),__webpack_require__.g.BigInt&&!Number.isSafeInteger(t))?new BoxedBigInt(e):Object.defineProperties(new Number(t),{isNaN:{value:function(){return isNaN(this)}},[_type]:{value:INTEGER},[_inspect]:{value:()=>`[Integer: ${e}]`}})}function isInteger(e){return null!==e&&"object"==typeof e&&e[_type]===INTEGER}let FLOAT=Symbol("float");function Float(e){return Object.defineProperties(new Number(e),{[_type]:{value:FLOAT},[_inspect]:{value:()=>`[Float: ${e}]`}})}function isFloat(e){return null!==e&&"object"==typeof e&&e[_type]===FLOAT}function tomlType(e){let t=typeof e;if("object"===t){if(null===e)return"null";if(e instanceof Date)return"datetime";if(_type in e)switch(e[_type]){case INLINE_TABLE:return"inline-table";case INLINE_LIST:return"inline-list";case TABLE:return"table";case LIST:return"list";case FLOAT:return"float";case INTEGER:return"integer"}}return t}function makeParserClass(e){class t extends e{constructor(){super(),this.ctx=this.obj=Table()}atEndOfWord(){return this.char===CHAR_NUM||this.char===CTRL_I||this.char===CHAR_SP||this.atEndOfLine()}atEndOfLine(){return this.char===e.END||this.char===CTRL_J||this.char===CTRL_M}parseStart(){if(this.char===e.END)return null;if(this.char===CHAR_LSQB)return this.call(this.parseTableOrList);if(this.char===CHAR_NUM)return this.call(this.parseComment);if(this.char===CTRL_J||this.char===CHAR_SP||this.char===CTRL_I||this.char===CTRL_M)return null;if(isAlphaNumQuoteHyphen(this.char))return this.callNow(this.parseAssignStatement);else throw this.error(new TomlError(`Unknown character "${this.char}"`))}parseWhitespaceToEOL(){if(this.char===CHAR_SP||this.char===CTRL_I||this.char===CTRL_M)return null;if(this.char===CHAR_NUM)return this.goto(this.parseComment);if(this.char===e.END||this.char===CTRL_J)return this.return();throw this.error(new TomlError("Unexpected character, expected only whitespace or comments till end of line"))}parseAssignStatement(){return this.callNow(this.parseAssign,this.recordAssignStatement)}recordAssignStatement(e){let t=this.ctx,n=e.key.pop();for(let r of e.key){if(hasKey(t,r)&&!isTable(t[r]))throw this.error(new TomlError("Can't redefine existing key"));t=t[r]=t[r]||Table()}if(hasKey(t,n))throw this.error(new TomlError("Can't redefine existing key"));return t[_declared]=!0,isInteger(e.value)||isFloat(e.value)?t[n]=e.value.valueOf():t[n]=e.value,this.goto(this.parseWhitespaceToEOL)}parseAssign(){return this.callNow(this.parseKeyword,this.recordAssignKeyword)}recordAssignKeyword(e){return this.state.resultTable?this.state.resultTable.push(e):this.state.resultTable=[e],this.goto(this.parseAssignKeywordPreDot)}parseAssignKeywordPreDot(){return this.char===CHAR_PERIOD?this.next(this.parseAssignKeywordPostDot):this.char!==CHAR_SP&&this.char!==CTRL_I?this.goto(this.parseAssignEqual):void 0}parseAssignKeywordPostDot(){if(this.char!==CHAR_SP&&this.char!==CTRL_I)return this.callNow(this.parseKeyword,this.recordAssignKeyword)}parseAssignEqual(){if(this.char===CHAR_EQUALS)return this.next(this.parseAssignPreValue);throw this.error(new TomlError('Invalid character, expected "="'))}parseAssignPreValue(){return this.char===CHAR_SP||this.char===CTRL_I?null:this.callNow(this.parseValue,this.recordAssignValue)}recordAssignValue(e){return this.returnNow({key:this.state.resultTable,value:e})}parseComment(){do{if(this.char===e.END||this.char===CTRL_J)return this.return();if(this.char===CHAR_DEL||this.char<=CTRL_CHAR_BOUNDARY&&this.char!==CTRL_I)throw this.errorControlCharIn("comments")}while(this.nextChar())}parseTableOrList(){if(this.char!==CHAR_LSQB)return this.goto(this.parseTable);this.next(this.parseList)}parseTable(){return this.ctx=this.obj,this.goto(this.parseTableNext)}parseTableNext(){return this.char===CHAR_SP||this.char===CTRL_I?null:this.callNow(this.parseKeyword,this.parseTableMore)}parseTableMore(e){if(this.char===CHAR_SP||this.char===CTRL_I)return null;if(this.char===CHAR_RSQB){if(hasKey(this.ctx,e)&&(!isTable(this.ctx[e])||this.ctx[e][_declared]))throw this.error(new TomlError("Can't redefine existing key"));return this.ctx=this.ctx[e]=this.ctx[e]||Table(),this.ctx[_declared]=!0,this.next(this.parseWhitespaceToEOL)}if(this.char===CHAR_PERIOD){if(hasKey(this.ctx,e)){if(isTable(this.ctx[e]))this.ctx=this.ctx[e];else if(isList(this.ctx[e]))this.ctx=this.ctx[e][this.ctx[e].length-1];else throw this.error(new TomlError("Can't redefine existing key"))}else this.ctx=this.ctx[e]=Table();return this.next(this.parseTableNext)}throw this.error(new TomlError("Unexpected character, expected whitespace, . or ]"))}parseList(){return this.ctx=this.obj,this.goto(this.parseListNext)}parseListNext(){return this.char===CHAR_SP||this.char===CTRL_I?null:this.callNow(this.parseKeyword,this.parseListMore)}parseListMore(e){if(this.char===CHAR_SP||this.char===CTRL_I)return null;if(this.char===CHAR_RSQB){if(hasKey(this.ctx,e)||(this.ctx[e]=List()),isInlineList(this.ctx[e]))throw this.error(new TomlError("Can't extend an inline array"));if(isList(this.ctx[e])){let t=Table();this.ctx[e].push(t),this.ctx=t}else throw this.error(new TomlError("Can't redefine an existing key"));return this.next(this.parseListEnd)}if(this.char===CHAR_PERIOD){if(hasKey(this.ctx,e)){if(isInlineList(this.ctx[e]))throw this.error(new TomlError("Can't extend an inline array"));if(isInlineTable(this.ctx[e]))throw this.error(new TomlError("Can't extend an inline table"));else if(isList(this.ctx[e]))this.ctx=this.ctx[e][this.ctx[e].length-1];else if(isTable(this.ctx[e]))this.ctx=this.ctx[e];else throw this.error(new TomlError("Can't redefine an existing key"))}else this.ctx=this.ctx[e]=Table();return this.next(this.parseListNext)}throw this.error(new TomlError("Unexpected character, expected whitespace, . or ]"))}parseListEnd(e){if(this.char===CHAR_RSQB)return this.next(this.parseWhitespaceToEOL);throw this.error(new TomlError("Unexpected character, expected whitespace, . or ]"))}parseValue(){if(this.char===e.END)throw this.error(new TomlError("Key without value"));if(this.char===CHAR_QUOT)return this.next(this.parseDoubleString);if(this.char===CHAR_APOS)return this.next(this.parseSingleString);if(this.char===CHAR_HYPHEN||this.char===CHAR_PLUS)return this.goto(this.parseNumberSign);if(this.char===CHAR_i)return this.next(this.parseInf);if(this.char===CHAR_n)return this.next(this.parseNan);if(isDigit(this.char))return this.goto(this.parseNumberOrDateTime);else if(this.char===CHAR_t||this.char===CHAR_f)return this.goto(this.parseBoolean);else if(this.char===CHAR_LSQB)return this.call(this.parseInlineList,this.recordValue);else if(this.char===CHAR_LCUB)return this.call(this.parseInlineTable,this.recordValue);else throw this.error(new TomlError("Unexpected character, expecting string, number, datetime, boolean, inline array or inline table"))}recordValue(e){return this.returnNow(e)}parseInf(){if(this.char===CHAR_n)return this.next(this.parseInf2);throw this.error(new TomlError('Unexpected character, expected "inf", "+inf" or "-inf"'))}parseInf2(){if(this.char===CHAR_f)return"-"===this.state.buf?this.return(-1/0):this.return(1/0);throw this.error(new TomlError('Unexpected character, expected "inf", "+inf" or "-inf"'))}parseNan(){if(this.char===CHAR_a)return this.next(this.parseNan2);throw this.error(new TomlError('Unexpected character, expected "nan"'))}parseNan2(){if(this.char===CHAR_n)return this.return(NaN);throw this.error(new TomlError('Unexpected character, expected "nan"'))}parseKeyword(){return this.char===CHAR_QUOT?this.next(this.parseBasicString):this.char===CHAR_APOS?this.next(this.parseLiteralString):this.goto(this.parseBareKey)}parseBareKey(){do{if(this.char===e.END)throw this.error(new TomlError("Key ended without value"));if(isAlphaNumHyphen(this.char))this.consume();else if(0!==this.state.buf.length)return this.returnNow();else throw this.error(new TomlError("Empty bare keys are not allowed"))}while(this.nextChar())}parseSingleString(){return this.char===CHAR_APOS?this.next(this.parseLiteralMultiStringMaybe):this.goto(this.parseLiteralString)}parseLiteralString(){do{if(this.char===CHAR_APOS)return this.return();if(this.atEndOfLine())throw this.error(new TomlError("Unterminated string"));if(this.char===CHAR_DEL||this.char<=CTRL_CHAR_BOUNDARY&&this.char!==CTRL_I)throw this.errorControlCharIn("strings");else this.consume()}while(this.nextChar())}parseLiteralMultiStringMaybe(){return this.char===CHAR_APOS?this.next(this.parseLiteralMultiString):this.returnNow()}parseLiteralMultiString(){return this.char===CTRL_M?null:this.char===CTRL_J?this.next(this.parseLiteralMultiStringContent):this.goto(this.parseLiteralMultiStringContent)}parseLiteralMultiStringContent(){do{if(this.char===CHAR_APOS)return this.next(this.parseLiteralMultiEnd);if(this.char===e.END)throw this.error(new TomlError("Unterminated multi-line string"));if(this.char===CHAR_DEL||this.char<=CTRL_CHAR_BOUNDARY&&this.char!==CTRL_I&&this.char!==CTRL_J&&this.char!==CTRL_M)throw this.errorControlCharIn("strings");else this.consume()}while(this.nextChar())}parseLiteralMultiEnd(){return this.char===CHAR_APOS?this.next(this.parseLiteralMultiEnd2):(this.state.buf+="'",this.goto(this.parseLiteralMultiStringContent))}parseLiteralMultiEnd2(){return this.char===CHAR_APOS?this.next(this.parseLiteralMultiEnd3):(this.state.buf+="''",this.goto(this.parseLiteralMultiStringContent))}parseLiteralMultiEnd3(){return this.char===CHAR_APOS?(this.state.buf+="'",this.next(this.parseLiteralMultiEnd4)):this.returnNow()}parseLiteralMultiEnd4(){return this.char===CHAR_APOS?(this.state.buf+="'",this.return()):this.returnNow()}parseDoubleString(){return this.char===CHAR_QUOT?this.next(this.parseMultiStringMaybe):this.goto(this.parseBasicString)}parseBasicString(){do{if(this.char===CHAR_BSOL)return this.call(this.parseEscape,this.recordEscapeReplacement);if(this.char===CHAR_QUOT)return this.return();if(this.atEndOfLine())throw this.error(new TomlError("Unterminated string"));else if(this.char===CHAR_DEL||this.char<=CTRL_CHAR_BOUNDARY&&this.char!==CTRL_I)throw this.errorControlCharIn("strings");else this.consume()}while(this.nextChar())}recordEscapeReplacement(e){return this.state.buf+=e,this.goto(this.parseBasicString)}parseMultiStringMaybe(){return this.char===CHAR_QUOT?this.next(this.parseMultiString):this.returnNow()}parseMultiString(){return this.char===CTRL_M?null:this.char===CTRL_J?this.next(this.parseMultiStringContent):this.goto(this.parseMultiStringContent)}parseMultiStringContent(){do{if(this.char===CHAR_BSOL)return this.call(this.parseMultiEscape,this.recordMultiEscapeReplacement);if(this.char===CHAR_QUOT)return this.next(this.parseMultiEnd);if(this.char===e.END)throw this.error(new TomlError("Unterminated multi-line string"));else if(this.char===CHAR_DEL||this.char<=CTRL_CHAR_BOUNDARY&&this.char!==CTRL_I&&this.char!==CTRL_J&&this.char!==CTRL_M)throw this.errorControlCharIn("strings");else this.consume()}while(this.nextChar())}errorControlCharIn(e){let t="\\u00";return this.char<16&&(t+="0"),t+=this.char.toString(16),this.error(new TomlError(`Control characters (codes < 0x1f and 0x7f) are not allowed in ${e}, use ${t} instead`))}recordMultiEscapeReplacement(e){return this.state.buf+=e,this.goto(this.parseMultiStringContent)}parseMultiEnd(){return this.char===CHAR_QUOT?this.next(this.parseMultiEnd2):(this.state.buf+='"',this.goto(this.parseMultiStringContent))}parseMultiEnd2(){return this.char===CHAR_QUOT?this.next(this.parseMultiEnd3):(this.state.buf+='""',this.goto(this.parseMultiStringContent))}parseMultiEnd3(){return this.char===CHAR_QUOT?(this.state.buf+='"',this.next(this.parseMultiEnd4)):this.returnNow()}parseMultiEnd4(){return this.char===CHAR_QUOT?(this.state.buf+='"',this.return()):this.returnNow()}parseMultiEscape(){return this.char===CTRL_M||this.char===CTRL_J?this.next(this.parseMultiTrim):this.char===CHAR_SP||this.char===CTRL_I?this.next(this.parsePreMultiTrim):this.goto(this.parseEscape)}parsePreMultiTrim(){if(this.char===CHAR_SP||this.char===CTRL_I)return null;if(this.char===CTRL_M||this.char===CTRL_J)return this.next(this.parseMultiTrim);throw this.error(new TomlError("Can't escape whitespace"))}parseMultiTrim(){return this.char===CTRL_J||this.char===CHAR_SP||this.char===CTRL_I||this.char===CTRL_M?null:this.returnNow()}parseEscape(){if(this.char in escapes)return this.return(escapes[this.char]);if(this.char===CHAR_u)return this.call(this.parseSmallUnicode,this.parseUnicodeReturn);if(this.char===CHAR_U)return this.call(this.parseLargeUnicode,this.parseUnicodeReturn);throw this.error(new TomlError("Unknown escape character: "+this.char))}parseUnicodeReturn(e){try{let t=parseInt(e,16);if(t>=SURROGATE_FIRST&&t<=SURROGATE_LAST)throw this.error(new TomlError("Invalid unicode, character in range 0xD800 - 0xDFFF is reserved"));return this.returnNow(String.fromCodePoint(t))}catch(n){throw this.error(TomlError.wrap(n))}}parseSmallUnicode(){if(isHexit(this.char)){if(this.consume(),this.state.buf.length>=4)return this.return()}else throw this.error(new TomlError("Invalid character in unicode sequence, expected hex"))}parseLargeUnicode(){if(isHexit(this.char)){if(this.consume(),this.state.buf.length>=8)return this.return()}else throw this.error(new TomlError("Invalid character in unicode sequence, expected hex"))}parseNumberSign(){return this.consume(),this.next(this.parseMaybeSignedInfOrNan)}parseMaybeSignedInfOrNan(){return this.char===CHAR_i?this.next(this.parseInf):this.char===CHAR_n?this.next(this.parseNan):this.callNow(this.parseNoUnder,this.parseNumberIntegerStart)}parseNumberIntegerStart(){return this.char===CHAR_0?(this.consume(),this.next(this.parseNumberIntegerExponentOrDecimal)):this.goto(this.parseNumberInteger)}parseNumberIntegerExponentOrDecimal(){return this.char===CHAR_PERIOD?(this.consume(),this.call(this.parseNoUnder,this.parseNumberFloat)):this.char===CHAR_E||this.char===CHAR_e?(this.consume(),this.next(this.parseNumberExponentSign)):this.returnNow(Integer(this.state.buf))}parseNumberInteger(){if(isDigit(this.char))this.consume();else{if(this.char===CHAR_LOWBAR)return this.call(this.parseNoUnder);if(this.char===CHAR_E||this.char===CHAR_e)return this.consume(),this.next(this.parseNumberExponentSign);if(this.char===CHAR_PERIOD)return this.consume(),this.call(this.parseNoUnder,this.parseNumberFloat);let e=Integer(this.state.buf);if(!e.isNaN())return this.returnNow(e);throw this.error(new TomlError("Invalid number"))}}parseNoUnder(){if(this.char===CHAR_LOWBAR||this.char===CHAR_PERIOD||this.char===CHAR_E||this.char===CHAR_e)throw this.error(new TomlError("Unexpected character, expected digit"));if(this.atEndOfWord())throw this.error(new TomlError("Incomplete number"));return this.returnNow()}parseNoUnderHexOctBinLiteral(){if(this.char===CHAR_LOWBAR||this.char===CHAR_PERIOD)throw this.error(new TomlError("Unexpected character, expected digit"));if(this.atEndOfWord())throw this.error(new TomlError("Incomplete number"));return this.returnNow()}parseNumberFloat(){if(this.char===CHAR_LOWBAR)return this.call(this.parseNoUnder,this.parseNumberFloat);if(isDigit(this.char))this.consume();else if(this.char===CHAR_E||this.char===CHAR_e)return this.consume(),this.next(this.parseNumberExponentSign);else return this.returnNow(Float(this.state.buf))}parseNumberExponentSign(){if(isDigit(this.char))return this.goto(this.parseNumberExponent);if(this.char===CHAR_HYPHEN||this.char===CHAR_PLUS)this.consume(),this.call(this.parseNoUnder,this.parseNumberExponent);else throw this.error(new TomlError("Unexpected character, expected -, + or digit"))}parseNumberExponent(){if(isDigit(this.char))this.consume();else if(this.char===CHAR_LOWBAR)return this.call(this.parseNoUnder);else return this.returnNow(Float(this.state.buf))}parseNumberOrDateTime(){return this.char===CHAR_0?(this.consume(),this.next(this.parseNumberBaseOrDateTime)):this.goto(this.parseNumberOrDateTimeOnly)}parseNumberOrDateTimeOnly(){if(this.char===CHAR_LOWBAR)return this.call(this.parseNoUnder,this.parseNumberInteger);if(isDigit(this.char))this.consume(),this.state.buf.length>4&&this.next(this.parseNumberInteger);else if(this.char===CHAR_E||this.char===CHAR_e)return this.consume(),this.next(this.parseNumberExponentSign);else if(this.char===CHAR_PERIOD)return this.consume(),this.call(this.parseNoUnder,this.parseNumberFloat);else if(this.char===CHAR_HYPHEN)return this.goto(this.parseDateTime);else if(this.char===CHAR_COLON)return this.goto(this.parseOnlyTimeHour);else return this.returnNow(Integer(this.state.buf))}parseDateTimeOnly(){if(this.state.buf.length<4){if(isDigit(this.char))return this.consume();if(this.char===CHAR_COLON)return this.goto(this.parseOnlyTimeHour);throw this.error(new TomlError("Expected digit while parsing year part of a date"))}if(this.char===CHAR_HYPHEN)return this.goto(this.parseDateTime);throw this.error(new TomlError("Expected hyphen (-) while parsing year part of date"))}parseNumberBaseOrDateTime(){if(this.char===CHAR_b)return this.consume(),this.call(this.parseNoUnderHexOctBinLiteral,this.parseIntegerBin);if(this.char===CHAR_o)return this.consume(),this.call(this.parseNoUnderHexOctBinLiteral,this.parseIntegerOct);if(this.char===CHAR_x)return this.consume(),this.call(this.parseNoUnderHexOctBinLiteral,this.parseIntegerHex);if(this.char===CHAR_PERIOD)return this.goto(this.parseNumberInteger);if(isDigit(this.char))return this.goto(this.parseDateTimeOnly);else return this.returnNow(Integer(this.state.buf))}parseIntegerHex(){if(isHexit(this.char))this.consume();else{if(this.char===CHAR_LOWBAR)return this.call(this.parseNoUnderHexOctBinLiteral);let e=Integer(this.state.buf);if(!e.isNaN())return this.returnNow(e);throw this.error(new TomlError("Invalid number"))}}parseIntegerOct(){if(isOctit(this.char))this.consume();else{if(this.char===CHAR_LOWBAR)return this.call(this.parseNoUnderHexOctBinLiteral);let e=Integer(this.state.buf);if(!e.isNaN())return this.returnNow(e);throw this.error(new TomlError("Invalid number"))}}parseIntegerBin(){if(isBit(this.char))this.consume();else{if(this.char===CHAR_LOWBAR)return this.call(this.parseNoUnderHexOctBinLiteral);let e=Integer(this.state.buf);if(!e.isNaN())return this.returnNow(e);throw this.error(new TomlError("Invalid number"))}}parseDateTime(){if(this.state.buf.length<4)throw this.error(new TomlError("Years less than 1000 must be zero padded to four characters"));return this.state.result=this.state.buf,this.state.buf="",this.next(this.parseDateMonth)}parseDateMonth(){if(this.char===CHAR_HYPHEN){if(this.state.buf.length<2)throw this.error(new TomlError("Months less than 10 must be zero padded to two characters"));return this.state.result+="-"+this.state.buf,this.state.buf="",this.next(this.parseDateDay)}if(isDigit(this.char))this.consume();else throw this.error(new TomlError("Incomplete datetime"))}parseDateDay(){if(this.char===CHAR_T||this.char===CHAR_SP){if(this.state.buf.length<2)throw this.error(new TomlError("Days less than 10 must be zero padded to two characters"));return this.state.result+="-"+this.state.buf,this.state.buf="",this.next(this.parseStartTimeHour)}if(this.atEndOfWord())return this.returnNow(createDate(this.state.result+"-"+this.state.buf));if(isDigit(this.char))this.consume();else throw this.error(new TomlError("Incomplete datetime"))}parseStartTimeHour(){return this.atEndOfWord()?this.returnNow(createDate(this.state.result)):this.goto(this.parseTimeHour)}parseTimeHour(){if(this.char===CHAR_COLON){if(this.state.buf.length<2)throw this.error(new TomlError("Hours less than 10 must be zero padded to two characters"));return this.state.result+="T"+this.state.buf,this.state.buf="",this.next(this.parseTimeMin)}if(isDigit(this.char))this.consume();else throw this.error(new TomlError("Incomplete datetime"))}parseTimeMin(){if(this.state.buf.length<2&&isDigit(this.char))this.consume();else if(2===this.state.buf.length&&this.char===CHAR_COLON)return this.state.result+=":"+this.state.buf,this.state.buf="",this.next(this.parseTimeSec);else throw this.error(new TomlError("Incomplete datetime"))}parseTimeSec(){if(isDigit(this.char)){if(this.consume(),2===this.state.buf.length)return this.state.result+=":"+this.state.buf,this.state.buf="",this.next(this.parseTimeZoneOrFraction)}else throw this.error(new TomlError("Incomplete datetime"))}parseOnlyTimeHour(){if(this.char===CHAR_COLON){if(this.state.buf.length<2)throw this.error(new TomlError("Hours less than 10 must be zero padded to two characters"));return this.state.result=this.state.buf,this.state.buf="",this.next(this.parseOnlyTimeMin)}throw this.error(new TomlError("Incomplete time"))}parseOnlyTimeMin(){if(this.state.buf.length<2&&isDigit(this.char))this.consume();else if(2===this.state.buf.length&&this.char===CHAR_COLON)return this.state.result+=":"+this.state.buf,this.state.buf="",this.next(this.parseOnlyTimeSec);else throw this.error(new TomlError("Incomplete time"))}parseOnlyTimeSec(){if(isDigit(this.char)){if(this.consume(),2===this.state.buf.length)return this.next(this.parseOnlyTimeFractionMaybe)}else throw this.error(new TomlError("Incomplete time"))}parseOnlyTimeFractionMaybe(){if(this.state.result+=":"+this.state.buf,this.char!==CHAR_PERIOD)return this.return(createTime(this.state.result));this.state.buf="",this.next(this.parseOnlyTimeFraction)}parseOnlyTimeFraction(){if(isDigit(this.char))this.consume();else if(this.atEndOfWord()){if(0===this.state.buf.length)throw this.error(new TomlError("Expected digit in milliseconds"));return this.returnNow(createTime(this.state.result+"."+this.state.buf))}else throw this.error(new TomlError("Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z"))}parseTimeZoneOrFraction(){if(this.char===CHAR_PERIOD)this.consume(),this.next(this.parseDateTimeFraction);else if(this.char===CHAR_HYPHEN||this.char===CHAR_PLUS)this.consume(),this.next(this.parseTimeZoneHour);else if(this.char===CHAR_Z)return this.consume(),this.return(createDateTime(this.state.result+this.state.buf));else if(this.atEndOfWord())return this.returnNow(createDateTimeFloat(this.state.result+this.state.buf));else throw this.error(new TomlError("Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z"))}parseDateTimeFraction(){if(isDigit(this.char))this.consume();else if(1===this.state.buf.length)throw this.error(new TomlError("Expected digit in milliseconds"));else if(this.char===CHAR_HYPHEN||this.char===CHAR_PLUS)this.consume(),this.next(this.parseTimeZoneHour);else if(this.char===CHAR_Z)return this.consume(),this.return(createDateTime(this.state.result+this.state.buf));else if(this.atEndOfWord())return this.returnNow(createDateTimeFloat(this.state.result+this.state.buf));else throw this.error(new TomlError("Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z"))}parseTimeZoneHour(){if(isDigit(this.char)){if(this.consume(),/\d\d$/.test(this.state.buf))return this.next(this.parseTimeZoneSep)}else throw this.error(new TomlError("Unexpected character in datetime, expected digit"))}parseTimeZoneSep(){if(this.char===CHAR_COLON)this.consume(),this.next(this.parseTimeZoneMin);else throw this.error(new TomlError("Unexpected character in datetime, expected colon"))}parseTimeZoneMin(){if(isDigit(this.char)){if(this.consume(),/\d\d$/.test(this.state.buf))return this.return(createDateTime(this.state.result+this.state.buf))}else throw this.error(new TomlError("Unexpected character in datetime, expected digit"))}parseBoolean(){return this.char===CHAR_t?(this.consume(),this.next(this.parseTrue_r)):this.char===CHAR_f?(this.consume(),this.next(this.parseFalse_a)):void 0}parseTrue_r(){if(this.char===CHAR_r)return this.consume(),this.next(this.parseTrue_u);throw this.error(new TomlError("Invalid boolean, expected true or false"))}parseTrue_u(){if(this.char===CHAR_u)return this.consume(),this.next(this.parseTrue_e);throw this.error(new TomlError("Invalid boolean, expected true or false"))}parseTrue_e(){if(this.char===CHAR_e)return this.return(!0);throw this.error(new TomlError("Invalid boolean, expected true or false"))}parseFalse_a(){if(this.char===CHAR_a)return this.consume(),this.next(this.parseFalse_l);throw this.error(new TomlError("Invalid boolean, expected true or false"))}parseFalse_l(){if(this.char===CHAR_l)return this.consume(),this.next(this.parseFalse_s);throw this.error(new TomlError("Invalid boolean, expected true or false"))}parseFalse_s(){if(this.char===CHAR_s)return this.consume(),this.next(this.parseFalse_e);throw this.error(new TomlError("Invalid boolean, expected true or false"))}parseFalse_e(){if(this.char===CHAR_e)return this.return(!1);throw this.error(new TomlError("Invalid boolean, expected true or false"))}parseInlineList(){if(this.char===CHAR_SP||this.char===CTRL_I||this.char===CTRL_M||this.char===CTRL_J)return null;if(this.char===e.END)throw this.error(new TomlError("Unterminated inline array"));return this.char===CHAR_NUM?this.call(this.parseComment):this.char===CHAR_RSQB?this.return(this.state.resultArr||InlineList()):this.callNow(this.parseValue,this.recordInlineListValue)}recordInlineListValue(e){return this.state.resultArr||(this.state.resultArr=InlineList(tomlType(e))),isFloat(e)||isInteger(e)?this.state.resultArr.push(e.valueOf()):this.state.resultArr.push(e),this.goto(this.parseInlineListNext)}parseInlineListNext(){if(this.char===CHAR_SP||this.char===CTRL_I||this.char===CTRL_M||this.char===CTRL_J)return null;if(this.char===CHAR_NUM)return this.call(this.parseComment);if(this.char===CHAR_COMMA)return this.next(this.parseInlineList);if(this.char===CHAR_RSQB)return this.goto(this.parseInlineList);throw this.error(new TomlError("Invalid character, expected whitespace, comma (,) or close bracket (])"))}parseInlineTable(){if(this.char===CHAR_SP||this.char===CTRL_I)return null;if(this.char===e.END||this.char===CHAR_NUM||this.char===CTRL_J||this.char===CTRL_M)throw this.error(new TomlError("Unterminated inline array"));return this.char===CHAR_RCUB?this.return(this.state.resultTable||InlineTable()):(this.state.resultTable||(this.state.resultTable=InlineTable()),this.callNow(this.parseAssign,this.recordInlineTableValue))}recordInlineTableValue(e){let t=this.state.resultTable,n=e.key.pop();for(let r of e.key){if(hasKey(t,r)&&(!isTable(t[r])||t[r][_declared]))throw this.error(new TomlError("Can't redefine existing key"));t=t[r]=t[r]||Table()}if(hasKey(t,n))throw this.error(new TomlError("Can't redefine existing key"));return isInteger(e.value)||isFloat(e.value)?t[n]=e.value.valueOf():t[n]=e.value,this.goto(this.parseInlineTableNext)}parseInlineTableNext(){if(this.char===CHAR_SP||this.char===CTRL_I)return null;if(this.char===e.END||this.char===CHAR_NUM||this.char===CTRL_J||this.char===CTRL_M)throw this.error(new TomlError("Unterminated inline array"));if(this.char===CHAR_COMMA)return this.next(this.parseInlineTablePostComma);if(this.char===CHAR_RCUB)return this.goto(this.parseInlineTable);throw this.error(new TomlError("Invalid character, expected whitespace, comma (,) or close bracket (])"))}parseInlineTablePostComma(){if(this.char===CHAR_SP||this.char===CTRL_I)return null;if(this.char===e.END||this.char===CHAR_NUM||this.char===CTRL_J||this.char===CTRL_M)throw this.error(new TomlError("Unterminated inline array"));if(this.char===CHAR_COMMA)throw this.error(new TomlError("Empty elements in inline tables are not permitted"));if(this.char!==CHAR_RCUB)return this.goto(this.parseInlineTable);throw this.error(new TomlError("Trailing commas in inline tables are not permitted"))}}return t}},90560(e,t,n){"use strict";e.exports=a;let r=n(8676),i=n(22418);function a(e,t){t||(t={});let n=0,a=t.blocksize||40960,o=new r;return new Promise((e,t)=>{setImmediate(s,n,a,e,t)});function s(t,n,r,a){if(t>=e.length)try{return r(o.finish())}catch(u){return a(i(u,e))}try{o.parse(e.slice(t,t+n)),setImmediate(s,t+n,n,r,a)}catch(c){a(i(c,e))}}}},22418(e){"use strict";function t(e,t){if(null==e.pos||null==e.line)return e;let n=e.message;if(n+=` at row ${e.line+1}, col ${e.col+1}, pos ${e.pos}: -`,t&&t.split){let r=t.split(/\n/),i=String(Math.min(r.length,e.line+3)).length,a=" ";for(;a.length "+r[o]+"\n",n+=a+" ";for(let u=0;u{let i,a=!1,o=!1;function s(){if(a=!0,!i)try{n(t.finish())}catch(e){r(e)}}function u(e){o=!0,r(e)}function c(){i=!0;let n;for(;null!==(n=e.read());)try{t.parse(n)}catch(r){return u(r)}if(i=!1,a)return s();o||e.once("readable",c)}e.once("end",s),e.once("error",u),c()})}function s(){let e=new i;return new r.Transform({objectMode:!0,transform(t,n,r){try{e.parse(t.toString(n))}catch(i){this.emit("error",i)}r()},flush(t){try{this.push(e.finish())}catch(n){this.emit("error",n)}t()}})}},56530(e,t,n){"use strict";e.exports=a;let r=n(8676),i=n(22418);function a(e){n.g.Buffer&&n.g.Buffer.isBuffer(e)&&(e=e.toString("utf8"));let t=new r;try{return t.parse(e),t.finish()}catch(a){throw i(a,e)}}},83512(e,t,n){"use strict";e.exports=n(56530),e.exports.async=n(90560),e.exports.stream=n(6435),e.exports.prettyError=n(22418)},36921(e){"use strict";function t(e){if(null===e)throw n("null");if(void 0===e)throw n("undefined");if("object"!=typeof e)throw n(typeof e);if("function"==typeof e.toJSON&&(e=e.toJSON()),null==e)return null;let t=u(e);if("table"!==t)throw n(t);return o("","",e)}function n(e){return Error("Can only stringify objects, not "+e)}function r(e){return Object.keys(e).filter(t=>s(e[t]))}function i(e){return Object.keys(e).filter(t=>!s(e[t]))}function a(e){let t=Array.isArray(e)?[]:Object.prototype.hasOwnProperty.call(e,"__proto__")?{["__proto__"]:void 0}:{};for(let n of Object.keys(e))!e[n]||"function"!=typeof e[n].toJSON||"toISOString"in e[n]?t[n]=e[n]:t[n]=e[n].toJSON();return t}function o(e,t,n){let o,s;o=r(n=a(n)),s=i(n);let l=[],f=t||"";o.forEach(e=>{var t=u(n[e]);"undefined"!==t&&"null"!==t&&l.push(f+c(e)+" = "+b(n[e],!0))}),l.length>0&&l.push("");let d=e&&o.length>0?t+" ":"";return s.forEach(t=>{l.push(S(e,d,t,n[t]))}),l.join("\n")}function s(e){switch(u(e)){case"undefined":case"null":case"integer":case"nan":case"float":case"boolean":case"string":case"datetime":return!0;case"array":return 0===e.length||"table"!==u(e[0]);case"table":return 0===Object.keys(e).length;default:return!1}}function u(e){if(void 0===e)return"undefined";if(null===e)return"null";if("bigint"==typeof e||Number.isInteger(e)&&!Object.is(e,-0))return"integer";if("number"==typeof e)return"float";if("boolean"==typeof e)return"boolean";else if("string"==typeof e)return"string";else if("toISOString"in e)return isNaN(e)?"undefined":"datetime";else if(Array.isArray(e))return"array";else return"table"}function c(e){let t=String(e);return/^[-A-Za-z0-9_]+$/.test(t)?t:l(t)}function l(e){return'"'+h(e).replace(/"/g,'\\"')+'"'}function f(e){return"'"+e+"'"}function d(e,t){for(;t.length"\\u"+d(4,e.codePointAt(0).toString(16)))}function p(e){let t=e.split(/\n/).map(e=>h(e).replace(/"(?="")/g,'\\"')).join("\n");return'"'===t.slice(-1)&&(t+="\\\n"),'"""\n'+t+'"""'}function b(e,t){let n=u(e);return"string"===n&&(t&&/\n/.test(e)?n="string-multiline":!/[\b\t\n\f\r']/.test(e)&&/"/.test(e)&&(n="string-literal")),m(e,n)}function m(e,t){switch(t||(t=u(e)),t){case"string-multiline":return p(e);case"string":return l(e);case"string-literal":return f(e);case"integer":return g(e);case"float":return v(e);case"boolean":return y(e);case"datetime":return w(e);case"array":return _(e.filter(e=>"null"!==u(e)&&"undefined"!==u(e)&&"nan"!==u(e)));case"table":return E(e);default:throw n(t)}}function g(e){return String(e).replace(/\B(?=(\d{3})+(?!\d))/g,"_")}function v(e){if(e===1/0)return"inf";if(e===-1/0)return"-inf";if(Object.is(e,NaN))return"nan";if(Object.is(e,-0))return"-0.0";let[t,n]=String(e).split(".");return g(t)+"."+n}function y(e){return String(e)}function w(e){return e.toISOString()}function _(e){e=a(e);let t="[",n=e.map(e=>m(e));return n.join(", ").length>60||/\n/.test(n)?t+="\n "+n.join(",\n ")+"\n":t+=" "+n.join(", ")+(n.length>0?" ":""),t+"]"}function E(e){e=a(e);let t=[];return Object.keys(e).forEach(n=>{t.push(c(n)+" = "+b(e[n],!1))}),"{ "+t.join(", ")+(t.length>0?" ":"")+"}"}function S(e,t,r,i){let a=u(i);if("array"===a)return k(e,t,r,i);if("table"===a)return x(e,t,r,i);throw n(a)}function k(e,t,r,i){i=a(i);let s=u(i[0]);if("table"!==s)throw n(s);let l=e+c(r),f="";return i.forEach(e=>{f.length>0&&(f+="\n"),f+=t+"[["+l+"]]\n",f+=o(l+".",t,e)}),f}function x(e,t,n,i){let a=e+c(n),s="";return r(i).length>0&&(s+=t+"["+a+"]\n"),s+o(a+".",t,i)}e.exports=t,e.exports.value=m},5022(e,t,n){"use strict";t.parse=n(83512),t.stringify=n(36921)},46515(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.styles=void 0;var i=r(n(67154)),a=r(n(59713)),o=r(n(6479)),s=r(n(67294));r(n(45697));var u=r(n(94184)),c=r(n(78252)),l=n(98741),f=r(n(68821)),d=function(e){var t="light"===e.palette.type?e.palette.grey[100]:e.palette.grey[900];return{root:{display:"flex",flexDirection:"column",width:"100%",boxSizing:"border-box",zIndex:e.zIndex.appBar,flexShrink:0},positionFixed:{position:"fixed",top:0,left:"auto",right:0},positionAbsolute:{position:"absolute",top:0,left:"auto",right:0},positionSticky:{position:"sticky",top:0,left:"auto",right:0},positionStatic:{position:"static"},positionRelative:{position:"relative"},colorDefault:{backgroundColor:t,color:e.palette.getContrastText(t)},colorPrimary:{backgroundColor:e.palette.primary.main,color:e.palette.primary.contrastText},colorSecondary:{backgroundColor:e.palette.secondary.main,color:e.palette.secondary.contrastText}}};function h(e){var t,n=e.children,r=e.classes,c=e.className,d=e.color,h=e.position,p=(0,o.default)(e,["children","classes","className","color","position"]),b=(0,u.default)(r.root,r["position".concat((0,l.capitalize)(h))],(t={},(0,a.default)(t,r["color".concat((0,l.capitalize)(d))],"inherit"!==d),(0,a.default)(t,"mui-fixed","fixed"===h),t),c);return s.default.createElement(f.default,(0,i.default)({square:!0,component:"header",elevation:4,className:b},p),n)}t.styles=d,h.defaultProps={color:"primary",position:"fixed"};var p=(0,c.default)(d,{name:"MuiAppBar"})(h);t.default=p},95880(e,t,n){"use strict";var r,i=n(95318);r={value:!0},Object.defineProperty(t,"Z",{enumerable:!0,get:function(){return a.default}});var a=i(n(46515))},68477(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.styles=void 0;var i=r(n(59713)),a=r(n(67154)),o=r(n(6479)),s=r(n(67294));r(n(45697));var u=r(n(94184));n(55252);var c=r(n(78252)),l=function(e){return{root:{position:"relative",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0,width:40,height:40,fontFamily:e.typography.fontFamily,fontSize:e.typography.pxToRem(20),borderRadius:"50%",overflow:"hidden",userSelect:"none"},colorDefault:{color:e.palette.background.default,backgroundColor:"light"===e.palette.type?e.palette.grey[400]:e.palette.grey[600]},img:{width:"100%",height:"100%",textAlign:"center",objectFit:"cover"}}};function f(e){var t=e.alt,n=e.children,r=e.childrenClassName,c=e.classes,l=e.className,f=e.component,d=e.imgProps,h=e.sizes,p=e.src,b=e.srcSet,m=(0,o.default)(e,["alt","children","childrenClassName","classes","className","component","imgProps","sizes","src","srcSet"]),g=null,v=p||b;return g=v?s.default.createElement("img",(0,a.default)({alt:t,src:p,srcSet:b,sizes:h,className:c.img},d)):r&&s.default.isValidElement(n)?s.default.cloneElement(n,{className:(0,u.default)(r,n.props.className)}):n,s.default.createElement(f,(0,a.default)({className:(0,u.default)(c.root,c.system,(0,i.default)({},c.colorDefault,!v),l)},m),g)}t.styles=l,f.defaultProps={component:"div"};var d=(0,c.default)(l,{name:"MuiAvatar"})(f);t.default=d},90338(e,t,n){"use strict";var r,i=n(95318);r={value:!0},Object.defineProperty(t,"Z",{enumerable:!0,get:function(){return a.default}});var a=i(n(68477))},9211(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.styles=void 0;var i=r(n(67154)),a=r(n(59713)),o=r(n(6479)),s=r(n(67294));r(n(45697));var u=r(n(94184)),c=r(n(78252)),l=r(n(46408)),f={root:{zIndex:-1,position:"fixed",right:0,bottom:0,top:0,left:0,backgroundColor:"rgba(0, 0, 0, 0.5)",WebkitTapHighlightColor:"transparent",touchAction:"none"},invisible:{backgroundColor:"transparent"}};function d(e){var t=e.classes,n=e.className,r=e.invisible,c=e.open,f=e.transitionDuration,d=(0,o.default)(e,["classes","className","invisible","open","transitionDuration"]);return s.default.createElement(l.default,(0,i.default)({in:c,timeout:f},d),s.default.createElement("div",{className:(0,u.default)(t.root,(0,a.default)({},t.invisible,r),n),"aria-hidden":"true"}))}t.styles=f,d.defaultProps={invisible:!1};var h=(0,c.default)(f,{name:"MuiBackdrop"})(d);t.default=h},14983(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return i.default}});var i=r(n(9211))},84732(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.styles=void 0;var i=r(n(67154)),a=r(n(59713)),o=r(n(6479)),s=r(n(67294));r(n(45697));var u=r(n(94184));n(55252);var c=r(n(78252)),l=n(98741),f=10,d=function(e){return{root:{position:"relative",display:"inline-flex",verticalAlign:"middle"},badge:{display:"flex",flexDirection:"row",flexWrap:"wrap",justifyContent:"center",alignContent:"center",alignItems:"center",position:"absolute",top:0,right:0,boxSizing:"border-box",fontFamily:e.typography.fontFamily,fontWeight:e.typography.fontWeightMedium,fontSize:e.typography.pxToRem(12),minWidth:2*f,padding:"0 4px",height:2*f,borderRadius:f,backgroundColor:e.palette.color,color:e.palette.textColor,zIndex:1,transform:"scale(1) translate(50%, -50%)",transformOrigin:"100% 0%",transition:e.transitions.create("transform",{easing:e.transitions.easing.easeInOut,duration:e.transitions.duration.enteringScreen})},colorPrimary:{backgroundColor:e.palette.primary.main,color:e.palette.primary.contrastText},colorSecondary:{backgroundColor:e.palette.secondary.main,color:e.palette.secondary.contrastText},colorError:{backgroundColor:e.palette.error.main,color:e.palette.error.contrastText},invisible:{transition:e.transitions.create("transform",{easing:e.transitions.easing.easeInOut,duration:e.transitions.duration.leavingScreen}),transform:"scale(0) translate(50%, -50%)",transformOrigin:"100% 0%"},dot:{height:6,minWidth:6,padding:0}}};function h(e){var t,n=e.badgeContent,r=e.children,c=e.classes,f=e.className,d=e.color,h=e.component,p=e.invisible,b=e.showZero,m=e.max,g=e.variant,v=(0,o.default)(e,["badgeContent","children","classes","className","color","component","invisible","showZero","max","variant"]),y=p;null!=p||0!==Number(n)||b||(y=!0);var w=(0,u.default)(c.badge,(t={},(0,a.default)(t,c["color".concat((0,l.capitalize)(d))],"default"!==d),(0,a.default)(t,c.invisible,y),(0,a.default)(t,c.dot,"dot"===g),t)),_="";return"dot"!==g&&(_=n>m?"".concat(m,"+"):n),s.default.createElement(h,(0,i.default)({className:(0,u.default)(c.root,f)},v),r,s.default.createElement("span",{className:w},_))}t.styles=d,h.defaultProps={color:"default",component:"span",max:99,showZero:!1,variant:"standard"};var p=(0,c.default)(d,{name:"MuiBadge"})(h);t.default=p},70398(e,t,n){"use strict";var r,i=n(95318);r={value:!0},Object.defineProperty(t,"Z",{enumerable:!0,get:function(){return a.default}});var a=i(n(84732))},21783(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.styles=void 0;var i=r(n(59713)),a=r(n(6479)),o=r(n(67154)),s=r(n(67294));r(n(45697));var u=r(n(94184));n(55252);var c=r(n(78252)),l=n(59114),f=r(n(16070)),d=n(98741),h=function(e){return{root:(0,o.default)({lineHeight:1.75},e.typography.button,{boxSizing:"border-box",minWidth:64,padding:"6px 16px",borderRadius:e.shape.borderRadius,color:e.palette.text.primary,transition:e.transitions.create(["background-color","box-shadow","border"],{duration:e.transitions.duration.short}),"&:hover":{textDecoration:"none",backgroundColor:(0,l.fade)(e.palette.text.primary,e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"},"&$disabled":{backgroundColor:"transparent"}},"&$disabled":{color:e.palette.action.disabled}}),label:{width:"100%",display:"inherit",alignItems:"inherit",justifyContent:"inherit"},text:{padding:"6px 8px"},textPrimary:{color:e.palette.primary.main,"&:hover":{backgroundColor:(0,l.fade)(e.palette.primary.main,e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},textSecondary:{color:e.palette.secondary.main,"&:hover":{backgroundColor:(0,l.fade)(e.palette.secondary.main,e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},flat:{},flatPrimary:{},flatSecondary:{},outlined:{padding:"5px 16px",border:"1px solid ".concat("light"===e.palette.type?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)"),"&$disabled":{border:"1px solid ".concat(e.palette.action.disabled)}},outlinedPrimary:{color:e.palette.primary.main,border:"1px solid ".concat((0,l.fade)(e.palette.primary.main,.5)),"&:hover":{border:"1px solid ".concat(e.palette.primary.main),backgroundColor:(0,l.fade)(e.palette.primary.main,e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},outlinedSecondary:{color:e.palette.secondary.main,border:"1px solid ".concat((0,l.fade)(e.palette.secondary.main,.5)),"&:hover":{border:"1px solid ".concat(e.palette.secondary.main),backgroundColor:(0,l.fade)(e.palette.secondary.main,e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},"&$disabled":{border:"1px solid ".concat(e.palette.action.disabled)}},contained:{color:e.palette.getContrastText(e.palette.grey[300]),backgroundColor:e.palette.grey[300],boxShadow:e.shadows[2],"&$focusVisible":{boxShadow:e.shadows[6]},"&:active":{boxShadow:e.shadows[8]},"&$disabled":{color:e.palette.action.disabled,boxShadow:e.shadows[0],backgroundColor:e.palette.action.disabledBackground},"&:hover":{backgroundColor:e.palette.grey.A100,"@media (hover: none)":{backgroundColor:e.palette.grey[300]},"&$disabled":{backgroundColor:e.palette.action.disabledBackground}}},containedPrimary:{color:e.palette.primary.contrastText,backgroundColor:e.palette.primary.main,"&:hover":{backgroundColor:e.palette.primary.dark,"@media (hover: none)":{backgroundColor:e.palette.primary.main}}},containedSecondary:{color:e.palette.secondary.contrastText,backgroundColor:e.palette.secondary.main,"&:hover":{backgroundColor:e.palette.secondary.dark,"@media (hover: none)":{backgroundColor:e.palette.secondary.main}}},raised:{},raisedPrimary:{},raisedSecondary:{},fab:{borderRadius:"50%",padding:0,minWidth:0,width:56,height:56,boxShadow:e.shadows[6],"&:active":{boxShadow:e.shadows[12]}},extendedFab:{borderRadius:24,padding:"0 16px",width:"auto",minWidth:48,height:48},focusVisible:{},disabled:{},colorInherit:{color:"inherit",borderColor:"currentColor"},mini:{width:40,height:40},sizeSmall:{padding:"4px 8px",minWidth:64,fontSize:e.typography.pxToRem(13)},sizeLarge:{padding:"8px 24px",fontSize:e.typography.pxToRem(15)},fullWidth:{width:"100%"}}};function p(e){var t,n=e.children,r=e.classes,c=e.className,l=e.color,h=e.disabled,p=e.disableFocusRipple,b=e.focusVisibleClassName,m=e.fullWidth,g=e.mini,v=e.size,y=e.variant,w=(0,a.default)(e,["children","classes","className","color","disabled","disableFocusRipple","focusVisibleClassName","fullWidth","mini","size","variant"]),_="fab"===y||"extendedFab"===y,E="contained"===y||"raised"===y,S="text"===y||"flat"===y,k=(0,u.default)(r.root,(t={},(0,i.default)(t,r.fab,_),(0,i.default)(t,r.mini,_&&g),(0,i.default)(t,r.extendedFab,"extendedFab"===y),(0,i.default)(t,r.text,S),(0,i.default)(t,r.textPrimary,S&&"primary"===l),(0,i.default)(t,r.textSecondary,S&&"secondary"===l),(0,i.default)(t,r.flat,S),(0,i.default)(t,r.flatPrimary,S&&"primary"===l),(0,i.default)(t,r.flatSecondary,S&&"secondary"===l),(0,i.default)(t,r.contained,E||_),(0,i.default)(t,r.containedPrimary,(E||_)&&"primary"===l),(0,i.default)(t,r.containedSecondary,(E||_)&&"secondary"===l),(0,i.default)(t,r.raised,E||_),(0,i.default)(t,r.raisedPrimary,(E||_)&&"primary"===l),(0,i.default)(t,r.raisedSecondary,(E||_)&&"secondary"===l),(0,i.default)(t,r.outlined,"outlined"===y),(0,i.default)(t,r.outlinedPrimary,"outlined"===y&&"primary"===l),(0,i.default)(t,r.outlinedSecondary,"outlined"===y&&"secondary"===l),(0,i.default)(t,r["size".concat((0,d.capitalize)(v))],"medium"!==v),(0,i.default)(t,r.disabled,h),(0,i.default)(t,r.fullWidth,m),(0,i.default)(t,r.colorInherit,"inherit"===l),t),c);return s.default.createElement(f.default,(0,o.default)({className:k,disabled:h,focusRipple:!p,focusVisibleClassName:(0,u.default)(r.focusVisible,b)},w),s.default.createElement("span",{className:r.label},n))}t.styles=h,p.defaultProps={color:"default",component:"button",disabled:!1,disableFocusRipple:!1,fullWidth:!1,mini:!1,size:"medium",type:"button",variant:"text"};var b=(0,c.default)(h,{name:"MuiButton"})(p);t.default=b},83638(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return i.default}});var i=r(n(21783))},74610(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.styles=void 0;var i=r(n(67154)),a=r(n(59713)),o=r(n(6479)),s=r(n(34575)),u=r(n(93913)),c=r(n(78585)),l=r(n(29754)),f=r(n(2205)),d=r(n(81506)),h=r(n(67294));r(n(45697));var p=r(n(73935)),b=r(n(94184));n(55252);var m=r(n(62614)),g=r(n(78252)),v=r(n(78582)),y=n(32252),w=r(n(65406)),_=r(n(83673)),E={root:{display:"inline-flex",alignItems:"center",justifyContent:"center",position:"relative",WebkitTapHighlightColor:"transparent",backgroundColor:"transparent",outline:"none",border:0,margin:0,borderRadius:0,padding:0,cursor:"pointer",userSelect:"none",verticalAlign:"middle","-moz-appearance":"none","-webkit-appearance":"none",textDecoration:"none",color:"inherit","&::-moz-focus-inner":{borderStyle:"none"},"&$disabled":{pointerEvents:"none",cursor:"default"}},disabled:{},focusVisible:{}};t.styles=E;var S=function(e){function t(){(0,s.default)(this,t);for(var e,n,r=arguments.length,i=Array(r),a=0;a0&&void 0!==arguments[0]?arguments[0]:{},o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},s=arguments.length>2?arguments[2]:void 0,u=o.pulsate,c=void 0!==u&&u,l=o.center,f=void 0===l?n.props.center||o.pulsate:l,h=o.fakeElement,b=void 0!==h&&h;if("mousedown"===a.type&&n.ignoringMouseDown){n.ignoringMouseDown=!1;return}"touchstart"===a.type&&(n.ignoringMouseDown=!0);var m=b?null:p.default.findDOMNode((0,d.default)((0,d.default)(n))),g=m?m.getBoundingClientRect():{width:0,height:0,left:0,top:0};if(!f&&(0!==a.clientX||0!==a.clientY)&&(a.clientX||a.touches)){var v=a.clientX?a.clientX:a.touches[0].clientX,y=a.clientY?a.clientY:a.touches[0].clientY;t=Math.round(v-g.left),r=Math.round(y-g.top)}else t=Math.round(g.width/2),r=Math.round(g.height/2);if(f)(i=Math.sqrt((2*Math.pow(g.width,2)+Math.pow(g.height,2))/3))%2==0&&(i+=1);else{i=Math.sqrt(Math.pow(2*Math.max(Math.abs((m?m.clientWidth:0)-t),t)+2,2)+Math.pow(2*Math.max(Math.abs((m?m.clientHeight:0)-r),r)+2,2))}a.touches?(n.startTimerCommit=function(){n.startCommit({pulsate:c,rippleX:t,rippleY:r,rippleSize:i,cb:s})},n.startTimer=setTimeout(function(){n.startTimerCommit&&(n.startTimerCommit(),n.startTimerCommit=null)},w)):n.startCommit({pulsate:c,rippleX:t,rippleY:r,rippleSize:i,cb:s})},n.startCommit=function(e){var t=e.pulsate,r=e.rippleX,i=e.rippleY,a=e.rippleSize,s=e.cb;n.setState(function(e){return{nextKey:e.nextKey+1,ripples:[].concat((0,o.default)(e.ripples),[h.default.createElement(v.default,{key:e.nextKey,classes:n.props.classes,timeout:{exit:y,enter:y},pulsate:t,rippleX:r,rippleY:i,rippleSize:a})])}},s)},n.stop=function(e,t){clearTimeout(n.startTimer);var r=n.state.ripples;if("touchend"===e.type&&n.startTimerCommit){e.persist(),n.startTimerCommit(),n.startTimerCommit=null,n.startTimer=setTimeout(function(){n.stop(e,t)});return}n.startTimerCommit=null,r&&r.length&&n.setState({ripples:r.slice(1)},t)},n}return(0,f.default)(t,e),(0,u.default)(t,[{key:"componentWillUnmount",value:function(){clearTimeout(this.startTimer)}},{key:"render",value:function(){var e=this.props,t=(e.center,e.classes),n=e.className,r=(0,a.default)(e,["center","classes","className"]);return h.default.createElement(b.default,(0,i.default)({component:"span",enter:!0,exit:!0,className:(0,m.default)(t.root,n)},r),this.state.ripples)}}]),t}(h.default.PureComponent);E.defaultProps={center:!1};var S=(0,g.default)(_,{flip:!1,name:"MuiTouchRipple"})(E);t.default=S},83673(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=function(e,t,n,r){return function(i){r&&r.call(e,i);var a=!1;return i.defaultPrevented&&(a=!0),e.props.disableTouchRipple&&"Blur"!==t&&(a=!0),!a&&e.ripple&&e.ripple[n](i),"function"==typeof e.props["on".concat(t)]&&e.props["on".concat(t)](i),!0}};"undefined"==typeof window&&(n=function(){return function(){}});var r=n;t.default=r},32252(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.detectFocusVisible=s,t.listenForFocusKeys=f,r(n(42473));var i=r(n(16143)),a={focusKeyPressed:!1,keyUpEventTimeout:-1};function o(e){for(var t=e.activeElement;t&&t.shadowRoot&&t.shadowRoot.activeElement;)t=t.shadowRoot.activeElement;return t}function s(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;e.focusVisibleTimeout=setTimeout(function(){var u=(0,i.default)(t),c=o(u);a.focusKeyPressed&&(c===t||t.contains(c))?n():r-1}var l=function(e){c(e)&&(a.focusKeyPressed=!0,clearTimeout(a.keyUpEventTimeout),a.keyUpEventTimeout=setTimeout(function(){a.focusKeyPressed=!1},500))};function f(e){e.addEventListener("keyup",l)}},16070(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return i.default}});var i=r(n(74610))},46003(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.styles=void 0;var i=r(n(67154)),a=r(n(6479)),o=r(n(67294));r(n(45697));var s=r(n(94184)),u=r(n(68821)),c=r(n(78252)),l={root:{overflow:"hidden"}};function f(e){var t=e.classes,n=e.className,r=e.raised,c=(0,a.default)(e,["classes","className","raised"]);return o.default.createElement(u.default,(0,i.default)({className:(0,s.default)(t.root,n),elevation:r?8:1},c))}t.styles=l,f.defaultProps={raised:!1};var d=(0,c.default)(l,{name:"MuiCard"})(f);t.default=d},82204(e,t,n){"use strict";var r,i=n(95318);r={value:!0},Object.defineProperty(t,"Z",{enumerable:!0,get:function(){return a.default}});var a=i(n(46003))},5780(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.styles=void 0;var i=r(n(67154)),a=r(n(6479)),o=r(n(67294));r(n(45697));var s=r(n(94184));n(55252);var u=r(n(78252)),c={root:{padding:16,"&:last-child":{paddingBottom:24}}};function l(e){var t=e.classes,n=e.className,r=e.component,u=(0,a.default)(e,["classes","className","component"]);return o.default.createElement(r,(0,i.default)({className:(0,s.default)(t.root,n)},u))}t.styles=c,l.defaultProps={component:"div"};var f=(0,u.default)(c,{name:"MuiCardContent"})(l);t.default=f},30060(e,t,n){"use strict";var r,i=n(95318);r={value:!0},Object.defineProperty(t,"Z",{enumerable:!0,get:function(){return a.default}});var a=i(n(5780))},50704(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.styles=void 0;var i=r(n(67154)),a=r(n(6479)),o=r(n(67294));r(n(45697));var s=r(n(94184));n(55252);var u=r(n(78252)),c=r(n(71426)),l={root:{display:"flex",alignItems:"center",padding:16},avatar:{flex:"0 0 auto",marginRight:16},action:{flex:"0 0 auto",alignSelf:"flex-start",marginTop:-8,marginRight:-8},content:{flex:"1 1 auto"},title:{},subheader:{}};function f(e){var t=e.action,n=e.avatar,r=e.classes,u=e.className,l=e.component,f=e.disableTypography,d=e.subheader,h=e.subheaderTypographyProps,p=e.title,b=e.titleTypographyProps,m=(0,a.default)(e,["action","avatar","classes","className","component","disableTypography","subheader","subheaderTypographyProps","title","titleTypographyProps"]),g=p;null==g||g.type===c.default||f||(g=o.default.createElement(c.default,(0,i.default)({variant:n?"body2":"headline",internalDeprecatedVariant:!0,className:r.title,component:"span"},b),g));var v=d;return null==v||v.type===c.default||f||(v=o.default.createElement(c.default,(0,i.default)({variant:n?"body2":"body1",className:r.subheader,color:"textSecondary",component:"span"},h),v)),o.default.createElement(l,(0,i.default)({className:(0,s.default)(r.root,u)},m),n&&o.default.createElement("div",{className:r.avatar},n),o.default.createElement("div",{className:r.content},g,v),t&&o.default.createElement("div",{className:r.action},t))}t.styles=l,f.defaultProps={component:"div",disableTypography:!1};var d=(0,u.default)(l,{name:"MuiCardHeader"})(f);t.default=d},52658(e,t,n){"use strict";var r,i=n(95318);r={value:!0},Object.defineProperty(t,"Z",{enumerable:!0,get:function(){return a.default}});var a=i(n(50704))},82811(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.styles=void 0;var i=r(n(67154)),a=r(n(59713)),o=r(n(6479)),s=r(n(67294));r(n(45697));var u=r(n(94184)),c=r(n(85609)),l=r(n(42159)),f=r(n(41549)),d=r(n(61486)),h=n(98741),p=r(n(78252)),b=function(e){return{root:{color:e.palette.text.secondary},checked:{},disabled:{},indeterminate:{},colorPrimary:{"&$checked":{color:e.palette.primary.main},"&$disabled":{color:e.palette.action.disabled}},colorSecondary:{"&$checked":{color:e.palette.secondary.main},"&$disabled":{color:e.palette.action.disabled}}}};function m(e){var t=e.checkedIcon,n=e.classes,r=e.className,l=e.color,f=e.icon,d=e.indeterminate,p=e.indeterminateIcon,b=e.inputProps,m=(0,o.default)(e,["checkedIcon","classes","className","color","icon","indeterminate","indeterminateIcon","inputProps"]);return s.default.createElement(c.default,(0,i.default)({type:"checkbox",checkedIcon:d?p:t,className:(0,u.default)((0,a.default)({},n.indeterminate,d),r),classes:{root:(0,u.default)(n.root,n["color".concat((0,h.capitalize)(l))]),checked:n.checked,disabled:n.disabled},inputProps:(0,i.default)({"data-indeterminate":d},b),icon:d?p:f},m))}t.styles=b,m.defaultProps={checkedIcon:s.default.createElement(f.default,null),color:"secondary",icon:s.default.createElement(l.default,null),indeterminate:!1,indeterminateIcon:s.default.createElement(d.default,null)};var g=(0,p.default)(b,{name:"MuiCheckbox"})(m);t.default=g},71209(e,t,n){"use strict";var r,i=n(95318);r={value:!0},Object.defineProperty(t,"Z",{enumerable:!0,get:function(){return a.default}});var a=i(n(82811))},16444(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.styles=void 0;var i=r(n(67154)),a=r(n(59713)),o=r(n(6479)),s=r(n(34575)),u=r(n(93913)),c=r(n(78585)),l=r(n(29754)),f=r(n(2205)),d=r(n(67294));r(n(45697));var h=r(n(94184));r(n(42473)),n(55252);var p=r(n(99781)),b=r(n(78252)),m=n(59114);r(n(21677));var g=n(98741);n(68477);var v=function(e){var t=32,n="light"===e.palette.type?e.palette.grey[300]:e.palette.grey[700],r=(0,m.fade)(e.palette.text.primary,.26);return{root:{fontFamily:e.typography.fontFamily,fontSize:e.typography.pxToRem(13),display:"inline-flex",alignItems:"center",justifyContent:"center",height:t,color:e.palette.getContrastText(n),backgroundColor:n,borderRadius:t/2,whiteSpace:"nowrap",transition:e.transitions.create(["background-color","box-shadow"]),cursor:"default",outline:"none",textDecoration:"none",border:"none",padding:0,verticalAlign:"middle",boxSizing:"border-box"},colorPrimary:{backgroundColor:e.palette.primary.main,color:e.palette.primary.contrastText},colorSecondary:{backgroundColor:e.palette.secondary.main,color:e.palette.secondary.contrastText},clickable:{WebkitTapHighlightColor:"transparent",cursor:"pointer","&:hover, &:focus":{backgroundColor:(0,m.emphasize)(n,.08)},"&:active":{boxShadow:e.shadows[1],backgroundColor:(0,m.emphasize)(n,.12)}},clickableColorPrimary:{"&:hover, &:focus":{backgroundColor:(0,m.emphasize)(e.palette.primary.main,.08)},"&:active":{backgroundColor:(0,m.emphasize)(e.palette.primary.main,.12)}},clickableColorSecondary:{"&:hover, &:focus":{backgroundColor:(0,m.emphasize)(e.palette.secondary.main,.08)},"&:active":{backgroundColor:(0,m.emphasize)(e.palette.secondary.main,.12)}},deletable:{"&:focus":{backgroundColor:(0,m.emphasize)(n,.08)}},deletableColorPrimary:{"&:focus":{backgroundColor:(0,m.emphasize)(e.palette.primary.main,.2)}},deletableColorSecondary:{"&:focus":{backgroundColor:(0,m.emphasize)(e.palette.secondary.main,.2)}},outlined:{backgroundColor:"transparent",border:"1px solid ".concat("light"===e.palette.type?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)"),"$clickable&:hover, $clickable&:focus, $deletable&:focus":{backgroundColor:(0,m.fade)(e.palette.text.primary,e.palette.action.hoverOpacity)},"& $avatar":{marginLeft:-1}},outlinedPrimary:{color:e.palette.primary.main,border:"1px solid ".concat(e.palette.primary.main),"$clickable&:hover, $clickable&:focus, $deletable&:focus":{backgroundColor:(0,m.fade)(e.palette.primary.main,e.palette.action.hoverOpacity)}},outlinedSecondary:{color:e.palette.secondary.main,border:"1px solid ".concat(e.palette.secondary.main),"$clickable&:hover, $clickable&:focus, $deletable&:focus":{backgroundColor:(0,m.fade)(e.palette.secondary.main,e.palette.action.hoverOpacity)}},avatar:{marginRight:-4,width:t,height:t,color:"light"===e.palette.type?e.palette.grey[700]:e.palette.grey[300],fontSize:e.typography.pxToRem(16)},avatarColorPrimary:{color:e.palette.primary.contrastText,backgroundColor:e.palette.primary.dark},avatarColorSecondary:{color:e.palette.secondary.contrastText,backgroundColor:e.palette.secondary.dark},avatarChildren:{width:19,height:19},icon:{color:"light"===e.palette.type?e.palette.grey[700]:e.palette.grey[300],marginLeft:4,marginRight:-8},iconColorPrimary:{color:"inherit"},iconColorSecondary:{color:"inherit"},label:{display:"flex",alignItems:"center",paddingLeft:12,paddingRight:12,userSelect:"none",whiteSpace:"nowrap",cursor:"inherit"},deleteIcon:{WebkitTapHighlightColor:"transparent",color:r,cursor:"pointer",height:"auto",margin:"0 4px 0 -8px","&:hover":{color:(0,m.fade)(r,.4)}},deleteIconColorPrimary:{color:(0,m.fade)(e.palette.primary.contrastText,.7),"&:hover, &:active":{color:e.palette.primary.contrastText}},deleteIconColorSecondary:{color:(0,m.fade)(e.palette.secondary.contrastText,.7),"&:hover, &:active":{color:e.palette.secondary.contrastText}},deleteIconOutlinedColorPrimary:{color:(0,m.fade)(e.palette.primary.main,.7),"&:hover, &:active":{color:e.palette.primary.main}},deleteIconOutlinedColorSecondary:{color:(0,m.fade)(e.palette.secondary.main,.7),"&:hover, &:active":{color:e.palette.secondary.main}}}};t.styles=v;var y=function(e){function t(){(0,s.default)(this,t);for(var e,n,r=arguments.length,i=Array(r),a=0;a :last-child":{paddingRight:32},"&$expanded":{margin:"20px 0"}},expandIcon:{position:"absolute",top:"50%",right:8,transform:"translateY(-50%) rotate(0deg)",transition:e.transitions.create("transform",t),"&:hover":{backgroundColor:"transparent"},"&$expanded":{transform:"translateY(-50%) rotate(180deg)"}}}};t.styles=g;var v=function(e){function t(){(0,s.default)(this,t);for(var e,n,r=arguments.length,i=Array(r),a=0;a $item":{padding:e/2}})}),n}var b=function(e){return(0,o.default)({container:{boxSizing:"border-box",display:"flex",flexWrap:"wrap",width:"100%"},item:{boxSizing:"border-box",margin:"0"},zeroMinWidth:{minWidth:0},"direction-xs-column":{flexDirection:"column"},"direction-xs-column-reverse":{flexDirection:"column-reverse"},"direction-xs-row-reverse":{flexDirection:"row-reverse"},"wrap-xs-nowrap":{flexWrap:"nowrap"},"wrap-xs-wrap-reverse":{flexWrap:"wrap-reverse"},"align-items-xs-center":{alignItems:"center"},"align-items-xs-flex-start":{alignItems:"flex-start"},"align-items-xs-flex-end":{alignItems:"flex-end"},"align-items-xs-baseline":{alignItems:"baseline"},"align-content-xs-center":{alignContent:"center"},"align-content-xs-flex-start":{alignContent:"flex-start"},"align-content-xs-flex-end":{alignContent:"flex-end"},"align-content-xs-space-between":{alignContent:"space-between"},"align-content-xs-space-around":{alignContent:"space-around"},"justify-xs-center":{justifyContent:"center"},"justify-xs-flex-end":{justifyContent:"flex-end"},"justify-xs-space-between":{justifyContent:"space-between"},"justify-xs-space-around":{justifyContent:"space-around"},"justify-xs-space-evenly":{justifyContent:"space-evenly"}},p(e,"xs"),l.keys.reduce(function(t,n){return h(t,e,n),t},{}))};function m(e){var t,n=e.alignContent,r=e.alignItems,c=e.classes,l=e.className,f=e.component,d=e.container,h=e.direction,p=e.item,b=e.justify,g=e.lg,v=e.md,y=e.sm,w=e.spacing,_=e.wrap,E=e.xl,S=e.xs,k=e.zeroMinWidth,x=(0,a.default)(e,["alignContent","alignItems","classes","className","component","container","direction","item","justify","lg","md","sm","spacing","wrap","xl","xs","zeroMinWidth"]),T=(0,u.default)((t={},(0,i.default)(t,c.container,d),(0,i.default)(t,c.item,p),(0,i.default)(t,c.zeroMinWidth,k),(0,i.default)(t,c["spacing-xs-".concat(String(w))],d&&0!==w),(0,i.default)(t,c["direction-xs-".concat(String(h))],h!==m.defaultProps.direction),(0,i.default)(t,c["wrap-xs-".concat(String(_))],_!==m.defaultProps.wrap),(0,i.default)(t,c["align-items-xs-".concat(String(r))],r!==m.defaultProps.alignItems),(0,i.default)(t,c["align-content-xs-".concat(String(n))],n!==m.defaultProps.alignContent),(0,i.default)(t,c["justify-xs-".concat(String(b))],b!==m.defaultProps.justify),(0,i.default)(t,c["grid-xs-".concat(String(S))],!1!==S),(0,i.default)(t,c["grid-sm-".concat(String(y))],!1!==y),(0,i.default)(t,c["grid-md-".concat(String(v))],!1!==v),(0,i.default)(t,c["grid-lg-".concat(String(g))],!1!==g),(0,i.default)(t,c["grid-xl-".concat(String(E))],!1!==E),t),l);return s.default.createElement(f,(0,o.default)({className:T},x))}t.styles=b,m.defaultProps={alignContent:"stretch",alignItems:"stretch",component:"div",container:!1,direction:"row",item:!1,justify:"flex-start",lg:!1,md:!1,sm:!1,spacing:0,wrap:"wrap",xl:!1,xs:!1,zeroMinWidth:!1};var g,v=(0,c.default)(b,{name:"MuiGrid"})(m);t.default=v},97779(e,t,n){"use strict";var r,i=n(95318);r={value:!0},Object.defineProperty(t,"Z",{enumerable:!0,get:function(){return a.default}});var a=i(n(27973))},57205(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(67154)),a=r(n(6479)),o=r(n(34575)),s=r(n(93913)),u=r(n(78585)),c=r(n(29754)),l=r(n(2205)),f=r(n(67294));r(n(45697));var d=r(n(60644)),h=r(n(82313)),p=n(41929);function b(e){return"scale(".concat(e,", ").concat(Math.pow(e,2),")")}var m={entering:{opacity:1,transform:b(1)},entered:{opacity:1,transform:"".concat(b(1)," translateZ(0)")}},g=function(e){function t(){(0,o.default)(this,t);for(var e,n,r=arguments.length,i=Array(r),a=0;a=Number(e.rows)&&(n=Math.min(Number(e.rowsMax)*t,n)),n=Math.max(n,t),Math.abs(this.state.height-n)>1&&this.setState({height:n}))}}},{key:"render",value:function(){var e=this.props,t=e.classes,n=e.className,r=e.defaultValue,o=(e.onChange,e.rows),s=(e.rowsMax,e.style),u=(e.textareaRef,e.value),c=(0,a.default)(e,["classes","className","defaultValue","onChange","rows","rowsMax","style","textareaRef","value"]);return f.default.createElement("div",{className:t.root},f.default.createElement(p.default,{target:"window",onResize:this.handleResize}),f.default.createElement("textarea",{"aria-hidden":"true",className:(0,d.default)(t.textarea,t.shadow),readOnly:!0,ref:this.handleRefSinglelineShadow,rows:"1",tabIndex:-1,value:""}),f.default.createElement("textarea",{"aria-hidden":"true",className:(0,d.default)(t.textarea,t.shadow),defaultValue:r,readOnly:!0,ref:this.handleRefShadow,rows:o,tabIndex:-1,value:u}),f.default.createElement("textarea",(0,i.default)({rows:o,className:(0,d.default)(t.textarea,n),defaultValue:r,value:u,onChange:this.handleChange,ref:this.handleRefInput,style:(0,i.default)({height:this.state.height},s)},c)))}}]),t}(f.default.Component);y.defaultProps={rows:1};var w=(0,b.default)(v,{name:"MuiPrivateTextarea"})(y);t.default=w},67598(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return i.default}});var i=r(n(62010))},78586(e,t){"use strict";function n(e){return null!=e&&!(Array.isArray(e)&&0===e.length)}function r(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return e&&(n(e.value)&&""!==e.value||t&&n(e.defaultValue)&&""!==e.defaultValue)}function i(e){return e.startAdornment}Object.defineProperty(t,"__esModule",{value:!0}),t.hasValue=n,t.isFilled=r,t.isAdornedStart=i},56030(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.styles=void 0;var i=r(n(67154)),a=r(n(59713)),o=r(n(6479)),s=r(n(67294));r(n(45697));var u=r(n(94184)),c=r(n(58189)),l=r(n(52598)),f=r(n(78252)),d=r(n(69645)),h=function(e){return{root:{transformOrigin:"top left"},focused:{},disabled:{},error:{},required:{},formControl:{position:"absolute",left:0,top:0,transform:"translate(0, 24px) scale(1)"},marginDense:{transform:"translate(0, 21px) scale(1)"},shrink:{transform:"translate(0, 1.5px) scale(0.75)",transformOrigin:"top left"},animated:{transition:e.transitions.create(["color","transform"],{duration:e.transitions.duration.shorter,easing:e.transitions.easing.easeOut})},filled:{zIndex:1,pointerEvents:"none",transform:"translate(12px, 20px) scale(1)","&$marginDense":{transform:"translate(12px, 17px) scale(1)"},"&$shrink":{transform:"translate(12px, 10px) scale(0.75)","&$marginDense":{transform:"translate(12px, 7px) scale(0.75)"}}},outlined:{zIndex:1,pointerEvents:"none",transform:"translate(14px, 20px) scale(1)","&$marginDense":{transform:"translate(14px, 17px) scale(1)"},"&$shrink":{transform:"translate(14px, -6px) scale(0.75)"}}}};function p(e){var t,n=e.children,r=e.classes,l=e.className,f=e.disableAnimation,h=e.FormLabelClasses,p=(e.margin,e.muiFormControl),b=e.shrink,m=(e.variant,(0,o.default)(e,["children","classes","className","disableAnimation","FormLabelClasses","margin","muiFormControl","shrink","variant"])),g=b;void 0===g&&p&&(g=p.filled||p.focused||p.adornedStart);var v=(0,c.default)({props:e,muiFormControl:p,states:["margin","variant"]}),y=(0,u.default)(r.root,(t={},(0,a.default)(t,r.formControl,p),(0,a.default)(t,r.animated,!f),(0,a.default)(t,r.shrink,g),(0,a.default)(t,r.marginDense,"dense"===v.margin),(0,a.default)(t,r.filled,"filled"===v.variant),(0,a.default)(t,r.outlined,"outlined"===v.variant),t),l);return s.default.createElement(d.default,(0,i.default)({"data-shrink":g,className:y,classes:(0,i.default)({focused:r.focused,disabled:r.disabled,error:r.error,required:r.required},h)},m),n)}t.styles=h,p.defaultProps={disableAnimation:!1};var b=(0,f.default)(h,{name:"MuiInputLabel"})((0,l.default)(p));t.default=b},23153(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return i.default}});var i=r(n(56030))},46616(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.styles=void 0;var i=r(n(67154)),a=r(n(59713)),o=r(n(6479)),s=r(n(67294));r(n(45697));var u=r(n(94184));r(n(42473));var c=r(n(78252)),l=n(59114),f=4,d=function(e){return{root:{position:"relative",overflow:"hidden",height:4},colorPrimary:{backgroundColor:(0,l.lighten)(e.palette.primary.light,.6)},colorSecondary:{backgroundColor:(0,l.lighten)(e.palette.secondary.light,.4)},determinate:{},indeterminate:{},buffer:{backgroundColor:"transparent"},query:{transform:"rotate(180deg)"},dashed:{position:"absolute",marginTop:0,height:"100%",width:"100%",animation:"buffer 3s infinite linear",animationName:"$buffer"},dashedColorPrimary:{backgroundImage:"radial-gradient(".concat((0,l.lighten)(e.palette.primary.light,.6)," 0%, ").concat((0,l.lighten)(e.palette.primary.light,.6)," 16%, transparent 42%)"),backgroundSize:"10px 10px",backgroundPosition:"0px -23px"},dashedColorSecondary:{backgroundImage:"radial-gradient(".concat((0,l.lighten)(e.palette.secondary.light,.4)," 0%, ").concat((0,l.lighten)(e.palette.secondary.light,.6)," 16%, transparent 42%)"),backgroundSize:"10px 10px",backgroundPosition:"0px -23px"},bar:{width:"100%",position:"absolute",left:0,bottom:0,top:0,transition:"transform 0.2s linear",transformOrigin:"left"},barColorPrimary:{backgroundColor:e.palette.primary.main},barColorSecondary:{backgroundColor:e.palette.secondary.main},bar1Indeterminate:{width:"auto",animation:"mui-indeterminate1 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite",animationName:"$mui-indeterminate1"},bar1Determinate:{transition:"transform .".concat(f,"s linear")},bar1Buffer:{zIndex:1,transition:"transform .".concat(f,"s linear")},bar2Indeterminate:{width:"auto",animation:"mui-indeterminate2 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite",animationName:"$mui-indeterminate2",animationDelay:"1.15s"},bar2Buffer:{transition:"transform .".concat(f,"s linear")},"@keyframes mui-indeterminate1":{"0%":{left:"-35%",right:"100%"},"60%":{left:"100%",right:"-90%"},"100%":{left:"100%",right:"-90%"}},"@keyframes mui-indeterminate2":{"0%":{left:"-200%",right:"100%"},"60%":{left:"107%",right:"-8%"},"100%":{left:"107%",right:"-8%"}},"@keyframes buffer":{"0%":{opacity:1,backgroundPosition:"0px -23px"},"50%":{opacity:0,backgroundPosition:"0px -23px"},"100%":{opacity:1,backgroundPosition:"-200px -23px"}}}};function h(e){var t,n,r,c,l=e.classes,f=e.className,d=e.color,h=e.value,p=e.valueBuffer,b=e.variant,m=(0,o.default)(e,["classes","className","color","value","valueBuffer","variant"]),g=(0,u.default)(l.root,(t={},(0,a.default)(t,l.colorPrimary,"primary"===d),(0,a.default)(t,l.colorSecondary,"secondary"===d),(0,a.default)(t,l.determinate,"determinate"===b),(0,a.default)(t,l.indeterminate,"indeterminate"===b),(0,a.default)(t,l.buffer,"buffer"===b),(0,a.default)(t,l.query,"query"===b),t),f),v=(0,u.default)(l.dashed,(n={},(0,a.default)(n,l.dashedColorPrimary,"primary"===d),(0,a.default)(n,l.dashedColorSecondary,"secondary"===d),n)),y=(0,u.default)(l.bar,(r={},(0,a.default)(r,l.barColorPrimary,"primary"===d),(0,a.default)(r,l.barColorSecondary,"secondary"===d),(0,a.default)(r,l.bar1Indeterminate,"indeterminate"===b||"query"===b),(0,a.default)(r,l.bar1Determinate,"determinate"===b),(0,a.default)(r,l.bar1Buffer,"buffer"===b),r)),w=(0,u.default)(l.bar,(c={},(0,a.default)(c,l.barColorPrimary,"primary"===d&&"buffer"!==b),(0,a.default)(c,l.colorPrimary,"primary"===d&&"buffer"===b),(0,a.default)(c,l.barColorSecondary,"secondary"===d&&"buffer"!==b),(0,a.default)(c,l.colorSecondary,"secondary"===d&&"buffer"===b),(0,a.default)(c,l.bar2Indeterminate,"indeterminate"===b||"query"===b),(0,a.default)(c,l.bar2Buffer,"buffer"===b),c)),_={},E={bar1:{},bar2:{}};return("determinate"===b||"buffer"===b)&&void 0!==h&&(_["aria-valuenow"]=Math.round(h),E.bar1.transform="scaleX(".concat(h/100,")")),"buffer"===b&&void 0!==p&&(E.bar2.transform="scaleX(".concat((p||0)/100,")")),s.default.createElement("div",(0,i.default)({className:g,role:"progressbar"},_,m),"buffer"===b?s.default.createElement("div",{className:v}):null,s.default.createElement("div",{className:y,style:E.bar1}),"determinate"===b?null:s.default.createElement("div",{className:w,style:E.bar2}))}t.styles=d,h.defaultProps={color:"primary",variant:"indeterminate"};var p=(0,c.default)(d,{name:"MuiLinearProgress"})(h);t.default=p},79424(e,t,n){"use strict";var r,i=n(95318);r={value:!0},Object.defineProperty(t,"Z",{enumerable:!0,get:function(){return a.default}});var a=i(n(46616))},74080(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.styles=void 0;var i=r(n(67154)),a=r(n(59713)),o=r(n(6479)),s=r(n(67294));r(n(45697));var u=r(n(94184));n(55252);var c=r(n(78252)),l=r(n(47457)),f={root:{listStyle:"none",margin:0,padding:0,position:"relative"},padding:{paddingTop:8,paddingBottom:8},dense:{paddingTop:4,paddingBottom:4},subheader:{paddingTop:0}};function d(e){var t,n=e.children,r=e.classes,c=e.className,f=e.component,d=e.dense,h=e.disablePadding,p=e.subheader,b=(0,o.default)(e,["children","classes","className","component","dense","disablePadding","subheader"]);return s.default.createElement(f,(0,i.default)({className:(0,u.default)(r.root,(t={},(0,a.default)(t,r.dense,d&&!h),(0,a.default)(t,r.padding,!h),(0,a.default)(t,r.subheader,p),t),c)},b),s.default.createElement(l.default.Provider,{value:{dense:d}},p,n))}t.styles=f,d.defaultProps={component:"ul",dense:!1,disablePadding:!1};var h=(0,c.default)(f,{name:"MuiList"})(d);t.default=h},47457(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(67294)).default.createContext({});t.default=i},3022(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return i.default}});var i=r(n(74080))},29936(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.styles=void 0;var i=r(n(67154)),a=r(n(59713)),o=r(n(6479)),s=r(n(67294));r(n(45697));var u=r(n(94184));n(55252);var c=r(n(78252)),l=r(n(16070)),f=n(44370),d=r(n(671)),h=function(e){return{root:{display:"flex",justifyContent:"flex-start",alignItems:"center",position:"relative",textDecoration:"none",width:"100%",boxSizing:"border-box",textAlign:"left",paddingTop:11,paddingBottom:11,"&$selected, &$selected:hover, &$selected:focus":{backgroundColor:e.palette.action.selected}},container:{position:"relative"},focusVisible:{},default:{},dense:{paddingTop:8,paddingBottom:8},alignItemsFlexStart:{alignItems:"flex-start"},disabled:{opacity:.5},divider:{borderBottom:"1px solid ".concat(e.palette.divider),backgroundClip:"padding-box"},gutters:{paddingLeft:16,paddingRight:16},button:{transition:e.transitions.create("background-color",{duration:e.transitions.duration.shortest}),"&:hover":{textDecoration:"none",backgroundColor:e.palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},"&:focus":{backgroundColor:e.palette.action.hover}},secondaryAction:{paddingRight:32},selected:{}}};function p(e){var t=e.alignItems,n=e.button,r=e.children,c=e.classes,h=e.className,p=e.component,b=e.ContainerComponent,m=e.ContainerProps,g=(m=void 0===m?{}:m).className,v=(0,o.default)(m,["className"]),y=e.dense,w=e.disabled,_=e.disableGutters,E=e.divider,S=e.focusVisibleClassName,k=e.selected,x=(0,o.default)(e,["alignItems","button","children","classes","className","component","ContainerComponent","ContainerProps","dense","disabled","disableGutters","divider","focusVisibleClassName","selected"]);return s.default.createElement(d.default,{dense:y,alignItems:t},function(e){var o,d=e.dense,m=s.default.Children.toArray(r),y=m.some(function(e){return(0,f.isMuiElement)(e,["ListItemAvatar"])}),T=m.length&&(0,f.isMuiElement)(m[m.length-1],["ListItemSecondaryAction"]),M=(0,u.default)(c.root,c.default,(o={},(0,a.default)(o,c.dense,d||y),(0,a.default)(o,c.gutters,!_),(0,a.default)(o,c.divider,E),(0,a.default)(o,c.disabled,w),(0,a.default)(o,c.button,n),(0,a.default)(o,c.alignItemsFlexStart,"flex-start"===t),(0,a.default)(o,c.secondaryAction,T),(0,a.default)(o,c.selected,k),o),h),O=(0,i.default)({className:M,disabled:w},x),A=p||"li";return(n&&(O.component=p||"div",O.focusVisibleClassName=(0,u.default)(c.focusVisible,S),A=l.default),T)?(A=O.component||p?A:"div","li"===b&&("li"===A?A="div":"li"===O.component&&(O.component="div")),s.default.createElement(b,(0,i.default)({className:(0,u.default)(c.container,g)},v),s.default.createElement(A,O,m),m.pop())):s.default.createElement(A,O,m)})}t.styles=h,p.defaultProps={alignItems:"center",button:!1,ContainerComponent:"li",dense:!1,disabled:!1,disableGutters:!1,divider:!1,selected:!1};var b=(0,c.default)(h,{name:"MuiListItem"})(p);t.default=b},671(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(67294));r(n(45697));var a=r(n(47457));function o(e){var t=e.alignItems,n=e.children,r=e.dense;return i.default.createElement(a.default.Consumer,null,function(e){var o={dense:r||e.dense||!1,alignItems:t};return i.default.createElement(a.default.Provider,{value:o},n(o))})}var s=o;t.default=s},60323(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return i.default}});var i=r(n(29936))},69394(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.styles=void 0;var i=r(n(67154)),a=r(n(6479)),o=r(n(67294));r(n(45697));var s=r(n(94184)),u=r(n(78252)),c=function(e){return{root:{marginRight:16,color:e.palette.action.active,flexShrink:0,display:"inline-flex"}}};function l(e){var t=e.children,n=e.classes,r=e.className,u=(0,a.default)(e,["children","classes","className"]);return o.default.createElement("div",(0,i.default)({className:(0,s.default)(n.root,r)},u),t)}t.styles=c;var f=(0,u.default)(c,{name:"MuiListItemIcon"})(l);t.default=f},11186(e,t,n){"use strict";var r,i=n(95318);r={value:!0},Object.defineProperty(t,"Z",{enumerable:!0,get:function(){return a.default}});var a=i(n(69394))},73390(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.styles=void 0;var i=r(n(67154)),a=r(n(59713)),o=r(n(6479)),s=r(n(67294));r(n(45697));var u=r(n(94184)),c=r(n(78252)),l=r(n(71426)),f=r(n(47457)),d=function(e){return{root:{flex:"1 1 auto",minWidth:0,padding:"0 16px","&:first-child":{paddingLeft:0}},inset:{"&:first-child":{paddingLeft:56}},dense:{fontSize:e.typography.pxToRem(13)},primary:{"&$textDense":{fontSize:"inherit"}},secondary:{"&$textDense":{fontSize:"inherit"}},textDense:{}}};function h(e){var t=e.children,n=e.classes,r=e.className,c=e.disableTypography,d=e.inset,h=e.primary,p=e.primaryTypographyProps,b=e.secondary,m=e.secondaryTypographyProps,g=e.theme,v=(0,o.default)(e,["children","classes","className","disableTypography","inset","primary","primaryTypographyProps","secondary","secondaryTypographyProps","theme"]);return s.default.createElement(f.default.Consumer,null,function(e){var o,f=e.dense,y=null!=h?h:t;null==y||y.type===l.default||c||(y=s.default.createElement(l.default,(0,i.default)({variant:g.typography.useNextVariants?"body1":"subheading",className:(0,u.default)(n.primary,(0,a.default)({},n.textDense,f)),component:"span"},p),y));var w=b;return null==w||w.type===l.default||c||(w=s.default.createElement(l.default,(0,i.default)({className:(0,u.default)(n.secondary,(0,a.default)({},n.textDense,f)),color:"textSecondary"},m),w)),s.default.createElement("div",(0,i.default)({className:(0,u.default)(n.root,(o={},(0,a.default)(o,n.dense,f),(0,a.default)(o,n.inset,d),o),r)},v),y,w)})}t.styles=d,h.defaultProps={disableTypography:!1,inset:!1};var p=(0,c.default)(d,{name:"MuiListItemText",withTheme:!0})(h);t.default=p},87591(e,t,n){"use strict";var r,i=n(95318);r={value:!0},Object.defineProperty(t,"Z",{enumerable:!0,get:function(){return a.default}});var a=i(n(73390))},95890(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.styles=void 0;var i=r(n(67154)),a=r(n(6479)),o=r(n(34575)),s=r(n(93913)),u=r(n(78585)),c=r(n(29754)),l=r(n(2205)),f=r(n(67294));r(n(45697));var d=r(n(73935)),h=r(n(44825)),p=r(n(78252)),b=r(n(50810)),m=r(n(34980)),g={vertical:"top",horizontal:"right"},v={vertical:"top",horizontal:"left"},y={paper:{maxHeight:"calc(100% - 96px)",WebkitOverflowScrolling:"touch"}};t.styles=y;var w=function(e){function t(){(0,o.default)(this,t);for(var e,n,r=arguments.length,i=Array(r),a=0;a=0?t.children[e].focus():t.firstChild.focus())}},{key:"resetTabIndex",value:function(){for(var e=this.listRef,t=(0,h.default)(e).activeElement,n=[],r=0;r0&&void 0!==arguments[0]?arguments[0]:{};(0,i.default)(this,e);var n=t.hideSiblingNodes,r=void 0===n||n,a=t.handleContainerOverflow,o=void 0===a||a;this.hideSiblingNodes=r,this.handleContainerOverflow=o,this.modals=[],this.data=[]}return(0,a.default)(e,[{key:"add",value:function(e,t){var n=this.modals.indexOf(e);if(-1!==n)return n;n=this.modals.length,this.modals.push(e),e.modalRef&&(0,l.ariaHidden)(e.modalRef,!1),this.hideSiblingNodes&&(0,l.ariaHiddenSiblings)(t,e.mountNode,e.modalRef,!0);var r=f(this.data,function(e){return e.container===t});if(-1!==r)return this.data[r].modals.push(e),n;var i={modals:[e],container:t,overflowing:(0,c.default)(t),prevPaddings:[]};return this.data.push(i),n}},{key:"mount",value:function(e){var t=f(this.data,function(t){return -1!==t.modals.indexOf(e)}),n=this.data[t];!n.style&&this.handleContainerOverflow&&h(n)}},{key:"remove",value:function(e){var t=this.modals.indexOf(e);if(-1===t)return t;var n=f(this.data,function(t){return -1!==t.modals.indexOf(e)}),r=this.data[n];if(r.modals.splice(r.modals.indexOf(e),1),this.modals.splice(t,1),0===r.modals.length)this.handleContainerOverflow&&p(r),e.modalRef&&(0,l.ariaHidden)(e.modalRef,!0),this.hideSiblingNodes&&(0,l.ariaHiddenSiblings)(r.container,e.mountNode,e.modalRef,!1),this.data.splice(n,1);else if(this.hideSiblingNodes){var i=r.modals[r.modals.length-1];i.modalRef&&(0,l.ariaHidden)(i.modalRef,!1)}return t}},{key:"isTopModal",value:function(e){return!!this.modals.length&&this.modals[this.modals.length-1]===e}}]),e}();t.default=b},55536(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return i.default}}),Object.defineProperty(t,"ModalManager",{enumerable:!0,get:function(){return a.default}});var i=r(n(58228)),a=r(n(2158))},16575(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.isBody=s,t.default=u;var i=r(n(7624)),a=r(n(16143)),o=r(n(62614));function s(e){return e&&"body"===e.tagName.toLowerCase()}function u(e){var t=(0,a.default)(e),n=(0,o.default)(t);if(!(0,i.default)(t)&&!s(e))return e.scrollHeight>e.clientHeight;var r=n.getComputedStyle(t.body),u=parseInt(r.getPropertyValue("margin-left"),10),c=parseInt(r.getPropertyValue("margin-right"),10);return u+t.body.clientWidth+c0?.75*r+8:0;return s.default.createElement("fieldset",(0,a.default)({"aria-hidden":!0,style:(0,a.default)((0,i.default)({},"padding".concat((0,l.capitalize)(p)),8+(c?0:b/2)),f),className:(0,u.default)(t.root,n)},h),s.default.createElement("legend",{className:t.legend,style:{width:c?b:.01}},s.default.createElement("span",{dangerouslySetInnerHTML:{__html:"​"}})))}t.styles=f;var h=(0,c.withStyles)(f,{name:"MuiPrivateNotchedOutline",withTheme:!0})(d);t.default=h},96405(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.styles=void 0;var i=r(n(67154)),a=r(n(6479)),o=r(n(67294));r(n(45697));var s=r(n(94184));n(55252);var u=r(n(67598)),c=r(n(21142)),l=r(n(78252)),f=function(e){var t="light"===e.palette.type?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)";return{root:{position:"relative","& $notchedOutline":{borderColor:t},"&:hover:not($disabled):not($focused):not($error) $notchedOutline":{borderColor:e.palette.text.primary,"@media (hover: none)":{borderColor:t}},"&$focused $notchedOutline":{borderColor:e.palette.primary.main,borderWidth:2},"&$error $notchedOutline":{borderColor:e.palette.error.main},"&$disabled $notchedOutline":{borderColor:e.palette.action.disabled}},focused:{},disabled:{},adornedStart:{paddingLeft:14},adornedEnd:{paddingRight:14},error:{},multiline:{padding:"18.5px 14px",boxSizing:"border-box"},notchedOutline:{},input:{padding:"18.5px 14px"},inputMarginDense:{paddingTop:15,paddingBottom:15},inputMultiline:{padding:0},inputAdornedStart:{paddingLeft:0},inputAdornedEnd:{paddingRight:0}}};function d(e){var t=e.classes,n=e.labelWidth,r=e.notched,l=(0,a.default)(e,["classes","labelWidth","notched"]);return o.default.createElement(u.default,(0,i.default)({renderPrefix:function(e){return o.default.createElement(c.default,{className:t.notchedOutline,labelWidth:n,notched:void 0!==r?r:Boolean(e.startAdornment||e.filled||e.focused)})},classes:(0,i.default)({},t,{root:(0,s.default)(t.root,t.underline),notchedOutline:null})},l))}t.styles=f,u.default.defaultProps={fullWidth:!1,inputComponent:"input",multiline:!1,type:"text"},d.muiName="Input";var h=(0,l.default)(f,{name:"MuiOutlinedInput"})(d);t.default=h},59537(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return i.default}});var i=r(n(96405))},30083(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.styles=void 0;var i=r(n(59713)),a=r(n(6479)),o=r(n(67154)),s=r(n(67294));r(n(45697));var u=r(n(94184));r(n(42473)),n(55252);var c=r(n(78252)),l=function(e){var t={};return e.shadows.forEach(function(e,n){t["elevation".concat(n)]={boxShadow:e}}),(0,o.default)({root:{backgroundColor:e.palette.background.paper},rounded:{borderRadius:e.shape.borderRadius}},t)};function f(e){var t=e.classes,n=e.className,r=e.component,c=e.square,l=e.elevation,f=(0,a.default)(e,["classes","className","component","square","elevation"]),d=(0,u.default)(t.root,t["elevation".concat(l)],(0,i.default)({},t.rounded,!c),n);return s.default.createElement(r,(0,o.default)({className:d},f))}t.styles=l,f.defaultProps={component:"div",elevation:2,square:!1};var d=(0,c.default)(l,{name:"MuiPaper"})(f);t.default=d},68821(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return i.default}});var i=r(n(30083))},64224(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.styles=void 0;var i=r(n(67154)),a=r(n(6479)),o=r(n(34575)),s=r(n(93913)),u=r(n(78585)),c=r(n(29754)),l=r(n(2205)),f=r(n(67294));r(n(45697));var d=r(n(73935));r(n(42473));var h=r(n(20296)),p=r(n(96421));n(55252);var b=r(n(16143)),m=r(n(62614)),g=n(98741),v=r(n(78252)),y=r(n(55536)),w=r(n(261)),_=r(n(68821));function E(e,t){var n=0;return"number"==typeof t?n=t:"center"===t?n=e.height/2:"bottom"===t&&(n=e.height),n}function S(e,t){var n=0;return"number"==typeof t?n=t:"center"===t?n=e.width/2:"right"===t&&(n=e.width),n}function k(e){return[e.horizontal,e.vertical].map(function(e){return"number"==typeof e?"".concat(e,"px"):e}).join(" ")}function x(e,t){for(var n=t,r=0;n&&n!==e;)r+=(n=n.parentNode).scrollTop;return r}function T(e){return"function"==typeof e?e():e}var M={paper:{position:"absolute",overflowY:"auto",overflowX:"hidden",minWidth:16,minHeight:16,maxWidth:"calc(100% - 32px)",maxHeight:"calc(100% - 32px)",outline:"none"}};t.styles=M;var O=function(e){function t(){var e;return(0,o.default)(this,t),(e=(0,u.default)(this,(0,c.default)(t).call(this))).handleGetOffsetTop=E,e.handleGetOffsetLeft=S,e.componentWillUnmount=function(){e.handleResize.clear()},e.setPositioningStyles=function(t){var n=e.getPositioningStyle(t);null!==n.top&&(t.style.top=n.top),null!==n.left&&(t.style.left=n.left),t.style.transformOrigin=n.transformOrigin},e.getPositioningStyle=function(t){var n=e.props,r=n.anchorEl,i=n.anchorReference,a=n.marginThreshold,o=e.getContentAnchorOffset(t),s={width:t.offsetWidth,height:t.offsetHeight},u=e.getTransformOrigin(s,o);if("none"===i)return{top:null,left:null,transformOrigin:k(u)};var c=e.getAnchorOffset(o),l=c.top-u.vertical,f=c.left-u.horizontal,d=l+s.height,h=f+s.width,p=(0,m.default)(T(r)),b=p.innerHeight-a,g=p.innerWidth-a;if(lb){var y=d-b;l-=y,u.vertical+=y}if(fg){var _=h-g;f-=_,u.horizontal+=_}return{top:"".concat(l,"px"),left:"".concat(f,"px"),transformOrigin:k(u)}},e.handleEntering=function(t){e.props.onEntering&&e.props.onEntering(t),e.setPositioningStyles(t)},"undefined"!=typeof window&&(e.handleResize=(0,h.default)(function(){e.props.open&&e.setPositioningStyles(e.paperRef)},166)),e}return(0,l.default)(t,e),(0,s.default)(t,[{key:"componentDidMount",value:function(){this.props.action&&this.props.action({updatePosition:this.handleResize})}},{key:"getAnchorOffset",value:function(e){var t=this.props,n=t.anchorEl,r=t.anchorOrigin,i=t.anchorReference,a=t.anchorPosition;if("anchorPosition"===i)return a;var o=(T(n)||(0,b.default)(this.paperRef).body).getBoundingClientRect(),s=0===e?r.vertical:"center";return{top:o.top+this.handleGetOffsetTop(o,s),left:o.left+this.handleGetOffsetLeft(o,r.horizontal)}}},{key:"getContentAnchorOffset",value:function(e){var t=this.props,n=t.getContentAnchorEl,r=t.anchorReference,i=0;if(n&&"anchorEl"===r){var a=n(e);if(a&&e.contains(a)){var o=x(e,a);i=a.offsetTop+a.clientHeight/2-o||0}}return i}},{key:"getTransformOrigin",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=this.props.transformOrigin;return{vertical:this.handleGetOffsetTop(e,n.vertical)+t,horizontal:this.handleGetOffsetLeft(e,n.horizontal)}}},{key:"render",value:function(){var e=this,t=this.props,n=(t.action,t.anchorEl),r=(t.anchorOrigin,t.anchorPosition,t.anchorReference,t.children),o=t.classes,s=t.container,u=t.elevation,c=(t.getContentAnchorEl,t.marginThreshold,t.ModalClasses),l=t.onEnter,h=t.onEntered,m=(t.onEntering,t.onExit),v=t.onExited,w=t.onExiting,E=t.open,S=t.PaperProps,k=t.role,x=(t.transformOrigin,t.TransitionComponent),M=t.transitionDuration,O=t.TransitionProps,A=void 0===O?{}:O,L=(0,a.default)(t,["action","anchorEl","anchorOrigin","anchorPosition","anchorReference","children","classes","container","elevation","getContentAnchorEl","marginThreshold","ModalClasses","onEnter","onEntered","onEntering","onExit","onExited","onExiting","open","PaperProps","role","transformOrigin","TransitionComponent","transitionDuration","TransitionProps"]),C=M;"auto"!==M||x.muiSupportAuto||(C=void 0);var I=s||(n?(0,b.default)(T(n)).body:void 0);return f.default.createElement(y.default,(0,i.default)({classes:c,container:I,open:E,BackdropProps:{invisible:!0}},L),f.default.createElement(x,(0,i.default)({appear:!0,in:E,onEnter:l,onEntered:h,onExit:m,onExited:v,onExiting:w,role:k,timeout:C},A,{onEntering:(0,g.createChainedFunction)(this.handleEntering,A.onEntering)}),f.default.createElement(_.default,(0,i.default)({className:o.paper,elevation:u,ref:function(t){e.paperRef=d.default.findDOMNode(t)}},S),f.default.createElement(p.default,{target:"window",onResize:this.handleResize}),r)))}}]),t}(f.default.Component);O.defaultProps={anchorReference:"anchorEl",anchorOrigin:{vertical:"top",horizontal:"left"},elevation:8,marginThreshold:16,transformOrigin:{vertical:"top",horizontal:"left"},TransitionComponent:w.default,transitionDuration:"auto"};var A=(0,v.default)(M,{name:"MuiPopover"})(O);t.default=A},50810(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return i.default}});var i=r(n(64224))},24693(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(6479)),a=r(n(67154)),o=r(n(34575)),s=r(n(93913)),u=r(n(78585)),c=r(n(29754)),l=r(n(2205)),f=r(n(81506)),d=r(n(67294)),h=r(n(73935));r(n(45697));var p=r(n(28981)),b=r(n(25649));function m(e){if("rtl"!==("undefined"!=typeof window&&document.body.getAttribute("dir")||"ltr"))return e;switch(e){case"bottom-end":return"bottom-start";case"bottom-start":return"bottom-end";case"top-end":return"top-start";case"top-start":return"top-end";default:return e}}function g(e){return"function"==typeof e?e():e}var v=function(e){function t(e){var n;return(0,o.default)(this,t),(n=(0,u.default)(this,(0,c.default)(t).call(this))).handleOpen=function(){var e=n.props,t=e.anchorEl,r=e.modifiers,i=e.open,o=e.placement,s=e.popperOptions,u=void 0===s?{}:s,c=e.disablePortal,l=h.default.findDOMNode((0,f.default)((0,f.default)(n)));l&&t&&i&&(n.popper&&(n.popper.destroy(),n.popper=null),n.popper=new p.default(g(t),l,(0,a.default)({placement:m(o)},u,{modifiers:(0,a.default)({},c?{}:{preventOverflow:{boundariesElement:"window"}},r,u.modifiers),onCreate:n.handlePopperUpdate,onUpdate:n.handlePopperUpdate})))},n.handlePopperUpdate=function(e){e.placement!==n.state.placement&&n.setState({placement:e.placement})},n.handleExited=function(){n.setState({exited:!0}),n.handleClose()},n.handleClose=function(){n.popper&&(n.popper.destroy(),n.popper=null)},n.state={exited:!e.open},n}return(0,l.default)(t,e),(0,s.default)(t,[{key:"componentDidUpdate",value:function(e){e.open===this.props.open||this.props.open||this.props.transition||this.handleClose(),(e.open!==this.props.open||e.anchorEl!==this.props.anchorEl||e.popperOptions!==this.props.popperOptions||e.modifiers!==this.props.modifiers||e.disablePortal!==this.props.disablePortal||e.placement!==this.props.placement)&&this.handleOpen()}},{key:"componentWillUnmount",value:function(){this.handleClose()}},{key:"render",value:function(){var e=this.props,t=(e.anchorEl,e.children),n=e.container,r=e.disablePortal,o=e.keepMounted,s=(e.modifiers,e.open),u=e.placement,c=(e.popperOptions,e.transition),l=(0,i.default)(e,["anchorEl","children","container","disablePortal","keepMounted","modifiers","open","placement","popperOptions","transition"]),f=this.state,h=f.exited,p=f.placement;if(!o&&!s&&(!c||h))return null;var g={placement:p||m(u)};return c&&(g.TransitionProps={in:s,onExited:this.handleExited}),d.default.createElement(b.default,{onRendered:this.handleOpen,disablePortal:r,container:n},d.default.createElement("div",(0,a.default)({role:"tooltip",style:{position:"absolute"}},l),"function"==typeof t?t(g):t))}}],[{key:"getDerivedStateFromProps",value:function(e){return e.open?{exited:!1}:e.transition?null:{exited:!0}}}]),t}(d.default.Component);v.defaultProps={disablePortal:!1,placement:"bottom",transition:!1};var y=v;t.default=y},60111(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return i.default}});var i=r(n(24693))},92261(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(34575)),a=r(n(93913)),o=r(n(78585)),s=r(n(29754)),u=r(n(2205)),c=r(n(67294)),l=r(n(73935));r(n(45697));var f=r(n(16143));function d(e,t){return e="function"==typeof e?e():e,l.default.findDOMNode(e)||t}function h(e){return(0,f.default)(l.default.findDOMNode(e))}n(55252);var p=function(e){function t(){(0,i.default)(this,t);for(var e,n,r=arguments.length,a=Array(r),u=0;u1;n.state.labelWrapped!==e&&n.setState({labelWrapped:e})}},n}return(0,c.default)(t,e),(0,o.default)(t,[{key:"componentDidMount",value:function(){this.checkTextWrap()}},{key:"componentDidUpdate",value:function(e,t){this.state.labelWrapped===t.labelWrapped&&this.checkTextWrap()}},{key:"render",value:function(){var e,t,n=this,r=this.props,a=r.classes,o=r.className,s=r.disabled,u=r.fullWidth,c=r.icon,p=r.indicator,g=r.label,v=(r.onChange,r.selected),y=r.textColor,w=(r.value,(0,i.default)(r,["classes","className","disabled","fullWidth","icon","indicator","label","onChange","selected","textColor","value"]));return void 0!==g&&(e=d.default.createElement("span",{className:a.labelContainer},d.default.createElement("span",{className:(0,h.default)(a.label,(0,l.default)({},a.labelWrapped,this.state.labelWrapped)),ref:function(e){n.labelRef=e}},g))),d.default.createElement(b.default,(0,f.default)({focusRipple:!0,className:(0,h.default)(a.root,a["textColor".concat((0,m.capitalize)(y))],(t={},(0,l.default)(t,a.disabled,s),(0,l.default)(t,a.selected,v),(0,l.default)(t,a.labelIcon,c&&e),(0,l.default)(t,a.fullWidth,u),t),o),role:"tab","aria-selected":v,disabled:s},w,{onClick:this.handleChange}),d.default.createElement("span",{className:a.wrapper},c,e),p)}}]),t}(d.default.Component);v.defaultProps={disabled:!1,textColor:"inherit"};var y=(0,p.default)(g,{name:"MuiTab"})(v);t.default=y},75759(e,t,n){"use strict";var r,i=n(95318);r={value:!0},Object.defineProperty(t,"Z",{enumerable:!0,get:function(){return a.default}});var a=i(n(70201))},7575(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.styles=void 0;var i=r(n(67154)),a=r(n(6479)),o=r(n(34575)),s=r(n(93913)),u=r(n(78585)),c=r(n(29754)),l=r(n(2205)),f=r(n(67294));r(n(45697));var d=r(n(94184));n(55252);var h=r(n(78252)),p=r(n(82577)),b=function(e){return{root:{display:"table",fontFamily:e.typography.fontFamily,width:"100%",borderCollapse:"collapse",borderSpacing:0}}};t.styles=b;var m=function(e){function t(){(0,o.default)(this,t);for(var e,n,r=arguments.length,i=Array(r),a=0;ai&&n(null,i)}},{key:"render",value:function(){var e,t=this.props,n=t.ActionsComponent,r=t.backIconButtonProps,o=t.classes,s=t.colSpan,u=t.component,c=t.count,l=t.labelDisplayedRows,d=t.labelRowsPerPage,y=t.nextIconButtonProps,w=t.onChangePage,_=t.onChangeRowsPerPage,E=t.page,S=t.rowsPerPage,k=t.rowsPerPageOptions,x=t.SelectProps,T=void 0===x?{}:x,M=(0,a.default)(t,["ActionsComponent","backIconButtonProps","classes","colSpan","component","count","labelDisplayedRows","labelRowsPerPage","nextIconButtonProps","onChangePage","onChangeRowsPerPage","page","rowsPerPage","rowsPerPageOptions","SelectProps"]);(u===m.default||"td"===u)&&(e=s||1e3);var O=T.native?"option":p.default;return f.default.createElement(u,(0,i.default)({className:o.root,colSpan:e},M),f.default.createElement(g.default,{className:o.toolbar},f.default.createElement("div",{className:o.spacer}),k.length>1&&f.default.createElement(v.default,{color:"inherit",variant:"caption",className:o.caption},d),k.length>1&&f.default.createElement(b.default,(0,i.default)({classes:{root:o.selectRoot,select:o.select,icon:o.selectIcon},input:f.default.createElement(h.default,{className:o.input}),value:S,onChange:_},T),k.map(function(e){return f.default.createElement(O,{className:o.menuItem,key:e,value:e},e)})),f.default.createElement(v.default,{color:"inherit",variant:"caption",className:o.caption},l({from:0===c?0:E*S+1,to:Math.min(c,(E+1)*S),count:c,page:E})),f.default.createElement(n,{className:o.actions,backIconButtonProps:r,count:c,nextIconButtonProps:y,onChangePage:w,page:E,rowsPerPage:S})))}}]),t}(f.default.Component);_.defaultProps={ActionsComponent:y.default,component:m.default,labelDisplayedRows:function(e){var t=e.from,n=e.to,r=e.count;return"".concat(t,"-").concat(n," of ").concat(r)},labelRowsPerPage:"Rows per page:",rowsPerPageOptions:[10,25,50,100]};var E=(0,d.default)(w,{name:"MuiTablePagination"})(_);t.default=E},32844(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(67154)),a=r(n(6479)),o=r(n(34575)),s=r(n(93913)),u=r(n(78585)),c=r(n(29754)),l=r(n(2205)),f=r(n(67294));r(n(45697));var d=r(n(86861)),h=r(n(43836)),p=r(n(82313)),b=r(n(81701)),m=f.default.createElement(h.default,null),g=f.default.createElement(d.default,null),v=f.default.createElement(d.default,null),y=f.default.createElement(h.default,null),w=function(e){function t(){(0,o.default)(this,t);for(var e,n,r=arguments.length,i=Array(r),a=0;a=Math.ceil(n/s)-1,color:"inherit"},r),"rtl"===u.direction?v:y))}}]),t}(f.default.Component),_=(0,p.default)()(w);t.default=_},18217(e,t,n){"use strict";var r,i=n(95318);r={value:!0},Object.defineProperty(t,"Z",{enumerable:!0,get:function(){return a.default}});var a=i(n(71744))},86424(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.styles=void 0;var i=r(n(67154)),a=r(n(59713)),o=r(n(6479)),s=r(n(67294));r(n(45697));var u=r(n(94184));n(55252);var c=r(n(78252)),l=r(n(27628)),f=function(e){return{root:{color:"inherit",display:"table-row",height:48,verticalAlign:"middle",outline:"none","&$selected":{backgroundColor:"light"===e.palette.type?"rgba(0, 0, 0, 0.04)":"rgba(255, 255, 255, 0.08)"},"&$hover:hover":{backgroundColor:"light"===e.palette.type?"rgba(0, 0, 0, 0.07)":"rgba(255, 255, 255, 0.14)"}},selected:{},hover:{},head:{height:56},footer:{height:56}}};function d(e){var t=e.classes,n=e.className,r=e.component,c=e.hover,f=e.selected,d=(0,o.default)(e,["classes","className","component","hover","selected"]);return s.default.createElement(l.default.Consumer,null,function(e){var o,l=(0,u.default)(t.root,(o={},(0,a.default)(o,t.head,e&&"head"===e.variant),(0,a.default)(o,t.footer,e&&"footer"===e.variant),(0,a.default)(o,t.hover,c),(0,a.default)(o,t.selected,f),o),n);return s.default.createElement(r,(0,i.default)({className:l},d))})}t.styles=f,d.defaultProps={component:"tr",hover:!1,selected:!1};var h=(0,c.default)(f,{name:"MuiTableRow"})(d);t.default=h},17175(e,t,n){"use strict";var r,i=n(95318);r={value:!0},Object.defineProperty(t,"Z",{enumerable:!0,get:function(){return a.default}});var a=i(n(86424))},28550(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(34575)),a=r(n(93913)),o=r(n(78585)),s=r(n(29754)),u=r(n(2205)),c=r(n(67294));r(n(45697));var l,f=r(n(96421)),d=r(n(20296)),h={width:90,height:90,position:"absolute",top:-9e3,overflow:"scroll",msOverflowStyle:"scrollbar"},p=function(e){function t(){var e;return(0,i.default)(this,t),(e=(0,o.default)(this,(0,s.default)(t).call(this))).handleRef=function(t){e.nodeRef=t},e.setMeasurements=function(){var t=e.nodeRef;t&&(e.scrollbarHeight=t.offsetHeight-t.clientHeight)},"undefined"!=typeof window&&(e.handleResize=(0,d.default)(function(){var t=e.scrollbarHeight;e.setMeasurements(),t!==e.scrollbarHeight&&e.props.onChange(e.scrollbarHeight)},166)),e}return(0,u.default)(t,e),(0,a.default)(t,[{key:"componentDidMount",value:function(){this.setMeasurements(),this.props.onChange(this.scrollbarHeight)}},{key:"componentWillUnmount",value:function(){this.handleResize.clear()}},{key:"render",value:function(){return c.default.createElement(c.default.Fragment,null,c.default.createElement(f.default,{target:"window",onResize:this.handleResize}),c.default.createElement("div",{style:h,ref:this.handleRef}))}}]),t}(c.default.Component);t.default=p},12417(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.styles=void 0;var i=r(n(67154)),a=r(n(6479)),o=r(n(67294));r(n(45697));var s=r(n(94184)),u=r(n(78252)),c=n(98741),l=function(e){return{root:{position:"absolute",height:2,bottom:0,width:"100%",transition:e.transitions.create()},colorPrimary:{backgroundColor:e.palette.primary.main},colorSecondary:{backgroundColor:e.palette.secondary.main}}};function f(e){var t=e.classes,n=e.className,r=e.color,u=(0,a.default)(e,["classes","className","color"]);return o.default.createElement("span",(0,i.default)({className:(0,s.default)(t.root,t["color".concat((0,c.capitalize)(r))],n)},u))}t.styles=l;var d=(0,u.default)(l,{name:"MuiPrivateTabIndicator"})(f);t.default=d},69583(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.styles=void 0;var i=r(n(67154)),a=r(n(6479)),o=r(n(67294));r(n(45697));var s=r(n(94184)),u=r(n(86861)),c=r(n(43836)),l=r(n(78252)),f=r(n(16070)),d={root:{color:"inherit",width:56,flexShrink:0}};t.styles=d;var h=o.default.createElement(u.default,null),p=o.default.createElement(c.default,null);function b(e){var t=e.classes,n=e.className,r=e.direction,u=e.onClick,c=e.visible,l=(0,a.default)(e,["classes","className","direction","onClick","visible"]),d=(0,s.default)(t.root,n);return c?o.default.createElement(f.default,(0,i.default)({className:d,onClick:u,tabIndex:-1},l),"left"===r?h:p):o.default.createElement("div",{className:d})}b.defaultProps={visible:!0};var m=(0,l.default)(d,{name:"MuiPrivateTabScrollButton"})(b);t.default=m},89172(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.styles=void 0;var i=r(n(67154)),a=r(n(6479)),o=r(n(34575)),s=r(n(93913)),u=r(n(78585)),c=r(n(29754)),l=r(n(2205)),f=r(n(59713)),d=r(n(67294));r(n(45697)),r(n(42473));var h=r(n(94184)),p=r(n(96421)),b=r(n(20296)),m=n(46417);n(55252);var g=r(n(13329)),v=r(n(28550)),y=r(n(78252)),w=r(n(12417)),_=r(n(69583));r(n(346));var E=function(e){return{root:{overflow:"hidden",minHeight:48,WebkitOverflowScrolling:"touch"},flexContainer:{display:"flex"},centered:{justifyContent:"center"},scroller:{position:"relative",display:"inline-block",flex:"1 1 auto",whiteSpace:"nowrap"},fixed:{overflowX:"hidden",width:"100%"},scrollable:{overflowX:"scroll"},scrollButtons:{},scrollButtonsAuto:(0,f.default)({},e.breakpoints.down("xs"),{display:"none"}),indicator:{}}};t.styles=E;var S=function(e){function t(){var e;return(0,o.default)(this,t),(e=(0,u.default)(this,(0,c.default)(t).call(this))).state={indicatorStyle:{},scrollerStyle:{marginBottom:0},showLeftScroll:!1,showRightScroll:!1,mounted:!1},e.getConditionalElements=function(){var t=e.props,n=t.classes,r=t.scrollable,i=t.ScrollButtonComponent,a=t.scrollButtons,o=t.theme,s=t.variant,u={},c="scrollable"===s||r;u.scrollbarSizeListener=c?d.default.createElement(v.default,{onChange:e.handleScrollbarSizeChange}):null;var l=c&&("auto"===a||"on"===a);return u.scrollButtonLeft=l?d.default.createElement(i,{direction:o&&"rtl"===o.direction?"right":"left",onClick:e.handleLeftScrollClick,visible:e.state.showLeftScroll,className:(0,h.default)(n.scrollButtons,(0,f.default)({},n.scrollButtonsAuto,"auto"===a))}):null,u.scrollButtonRight=l?d.default.createElement(i,{direction:o&&"rtl"===o.direction?"left":"right",onClick:e.handleRightScrollClick,visible:e.state.showRightScroll,className:(0,h.default)(n.scrollButtons,(0,f.default)({},n.scrollButtonsAuto,"auto"===a))}):null,u},e.getTabsMeta=function(t,n){if(e.tabsRef){var r,i,a=e.tabsRef.getBoundingClientRect();r={clientWidth:e.tabsRef.clientWidth,scrollLeft:e.tabsRef.scrollLeft,scrollLeftNormalized:(0,m.getNormalizedScrollLeft)(e.tabsRef,n),scrollWidth:e.tabsRef.scrollWidth,left:a.left,right:a.right}}if(e.tabsRef&&!1!==t){var o=e.tabsRef.children[0].children;if(o.length>0){var s=o[e.valueToIndex.get(t)];i=s?s.getBoundingClientRect():null}}return{tabsMeta:r,tabMeta:i}},e.handleLeftScrollClick=function(){e.moveTabsScroll(-e.tabsRef.clientWidth)},e.handleRightScrollClick=function(){e.moveTabsScroll(e.tabsRef.clientWidth)},e.handleScrollbarSizeChange=function(t){e.setState({scrollerStyle:{marginBottom:-t}})},e.moveTabsScroll=function(t){var n=e.props.theme,r="rtl"===n.direction?-1:1,i=e.tabsRef.scrollLeft+t*r,a="rtl"===n.direction&&"reverse"===(0,m.detectScrollType)()?-1:1;e.scroll(a*i)},e.scrollSelectedIntoView=function(){var t=e.props,n=t.theme,r=t.value,i=e.getTabsMeta(r,n.direction),a=i.tabsMeta,o=i.tabMeta;if(o&&a){if(o.lefta.right){var u=a.scrollLeft+(o.right-a.right);e.scroll(u)}}},e.scroll=function(t){(0,g.default)("scrollLeft",e.tabsRef,t)},e.updateScrollButtonState=function(){var t=e.props,n=t.scrollable,r=t.scrollButtons,i=t.theme;if(("scrollable"===t.variant||n)&&"off"!==r){var a=e.tabsRef,o=a.scrollWidth,s=a.clientWidth,u=(0,m.getNormalizedScrollLeft)(e.tabsRef,i.direction),c="rtl"===i.direction?o>s+u:u>0,l="rtl"===i.direction?u>0:o>s+u;(c!==e.state.showLeftScroll||l!==e.state.showRightScroll)&&e.setState({showLeftScroll:c,showRightScroll:l})}},"undefined"!=typeof window&&(e.handleResize=(0,b.default)(function(){e.updateIndicatorState(e.props),e.updateScrollButtonState()},166),e.handleTabsScroll=(0,b.default)(function(){e.updateScrollButtonState()},166)),e}return(0,l.default)(t,e),(0,s.default)(t,[{key:"componentDidMount",value:function(){this.setState({mounted:!0}),this.updateIndicatorState(this.props),this.updateScrollButtonState(),this.props.action&&this.props.action({updateIndicator:this.handleResize})}},{key:"componentDidUpdate",value:function(e,t){this.updateIndicatorState(this.props),this.updateScrollButtonState(),this.state.indicatorStyle!==t.indicatorStyle&&this.scrollSelectedIntoView()}},{key:"componentWillUnmount",value:function(){this.handleResize.clear(),this.handleTabsScroll.clear()}},{key:"updateIndicatorState",value:function(e){var t=e.theme,n=e.value,r=this.getTabsMeta(n,t.direction),i=r.tabsMeta,a=r.tabMeta,o=0;if(a&&i){var s="rtl"===t.direction?i.scrollLeftNormalized+i.clientWidth-i.scrollWidth:i.scrollLeft;o=Math.round(a.left-i.left+s)}var u={left:o,width:a?Math.round(a.width):0};u.left===this.state.indicatorStyle.left&&u.width===this.state.indicatorStyle.width||isNaN(u.left)||isNaN(u.width)||this.setState({indicatorStyle:u})}},{key:"render",value:function(){var e,t=this,n=this.props,r=(n.action,n.centered),o=n.children,s=n.classes,u=n.className,c=n.component,l=n.fullWidth,b=void 0!==l&&l,m=n.indicatorColor,g=n.onChange,v=n.scrollable,y=void 0!==v&&v,_=(n.ScrollButtonComponent,n.scrollButtons,n.TabIndicatorProps),E=void 0===_?{}:_,S=n.textColor,k=(n.theme,n.value),x=n.variant,T=(0,a.default)(n,["action","centered","children","classes","className","component","fullWidth","indicatorColor","onChange","scrollable","ScrollButtonComponent","scrollButtons","TabIndicatorProps","textColor","theme","value","variant"]),M="scrollable"===x||y,O=(0,h.default)(s.root,u),A=(0,h.default)(s.flexContainer,(0,f.default)({},s.centered,r&&!M)),L=(0,h.default)(s.scroller,(e={},(0,f.default)(e,s.fixed,!M),(0,f.default)(e,s.scrollable,M),e)),C=d.default.createElement(w.default,(0,i.default)({className:s.indicator,color:m},E,{style:(0,i.default)({},this.state.indicatorStyle,E.style)}));this.valueToIndex=new Map;var I=0,D=d.default.Children.map(o,function(e){if(!d.default.isValidElement(e))return null;var n=void 0===e.props.value?I:e.props.value;t.valueToIndex.set(n,I);var r=n===k;return I+=1,d.default.cloneElement(e,{fullWidth:"fullWidth"===x||b,indicator:r&&!t.state.mounted&&C,selected:r,onChange:g,textColor:S,value:n})}),N=this.getConditionalElements();return d.default.createElement(c,(0,i.default)({className:O},T),d.default.createElement(p.default,{target:"window",onResize:this.handleResize}),N.scrollbarSizeListener,d.default.createElement("div",{className:s.flexContainer},N.scrollButtonLeft,d.default.createElement("div",{className:L,style:this.state.scrollerStyle,ref:function(e){t.tabsRef=e},role:"tablist",onScroll:this.handleTabsScroll},d.default.createElement("div",{className:A},D),this.state.mounted&&C),N.scrollButtonRight))}}]),t}(d.default.Component);S.defaultProps={centered:!1,component:"div",indicatorColor:"secondary",ScrollButtonComponent:_.default,scrollButtons:"auto",textColor:"inherit",variant:"standard"};var k=(0,y.default)(E,{name:"MuiTabs",withTheme:!0})(S);t.default=k},12794(e,t,n){"use strict";var r,i=n(95318);r={value:!0},Object.defineProperty(t,"Z",{enumerable:!0,get:function(){return a.default}});var a=i(n(89172))},78592(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(67154)),a=r(n(6479)),o=r(n(34575)),s=r(n(93913)),u=r(n(78585)),c=r(n(29754)),l=r(n(2205)),f=r(n(67294)),d=r(n(73935));r(n(42473)),r(n(45697));var h=r(n(54846)),p=r(n(1402)),b=r(n(59537)),m=r(n(23153)),g=r(n(85461)),v=r(n(76023)),y=r(n(11970)),w={standard:h.default,filled:p.default,outlined:b.default},_=function(e){function t(e){var n;return(0,o.default)(this,t),(n=(0,u.default)(this,(0,c.default)(t).call(this,e))).labelRef=f.default.createRef(),n}return(0,l.default)(t,e),(0,s.default)(t,[{key:"componentDidMount",value:function(){"outlined"===this.props.variant&&(this.labelNode=d.default.findDOMNode(this.labelRef.current),this.forceUpdate())}},{key:"render",value:function(){var e=this.props,t=e.autoComplete,n=e.autoFocus,r=e.children,o=e.className,s=e.defaultValue,u=e.error,c=e.FormHelperTextProps,l=e.fullWidth,d=e.helperText,h=e.id,p=e.InputLabelProps,b=e.inputProps,_=e.InputProps,E=e.inputRef,S=e.label,k=e.multiline,x=e.name,T=e.onBlur,M=e.onChange,O=e.onFocus,A=e.placeholder,L=e.required,C=e.rows,I=e.rowsMax,D=e.select,N=e.SelectProps,P=e.type,R=e.value,j=e.variant,F=(0,a.default)(e,["autoComplete","autoFocus","children","className","defaultValue","error","FormHelperTextProps","fullWidth","helperText","id","InputLabelProps","inputProps","InputProps","inputRef","label","multiline","name","onBlur","onChange","onFocus","placeholder","required","rows","rowsMax","select","SelectProps","type","value","variant"]),Y={};"outlined"===j&&(p&&void 0!==p.shrink&&(Y.notched=p.shrink),Y.labelWidth=this.labelNode&&this.labelNode.offsetWidth||0);var B=d&&h?"".concat(h,"-helper-text"):void 0,U=w[j],H=f.default.createElement(U,(0,i.default)({"aria-describedby":B,autoComplete:t,autoFocus:n,defaultValue:s,fullWidth:l,multiline:k,name:x,rows:C,rowsMax:I,type:P,value:R,id:h,inputRef:E,onBlur:T,onChange:M,onFocus:O,placeholder:A,inputProps:b},Y,_));return f.default.createElement(g.default,(0,i.default)({className:o,error:u,fullWidth:l,required:L,variant:j},F),S&&f.default.createElement(m.default,(0,i.default)({htmlFor:h,ref:this.labelRef},p),S),D?f.default.createElement(y.default,(0,i.default)({"aria-describedby":B,value:R,input:H},N),r):H,d&&f.default.createElement(v.default,(0,i.default)({id:B},c),d))}}]),t}(f.default.Component);_.defaultProps={required:!1,select:!1,variant:"standard"};var E=_;t.default=E},60520(e,t,n){"use strict";var r,i=n(95318);r={value:!0},Object.defineProperty(t,"Z",{enumerable:!0,get:function(){return a.default}});var a=i(n(78592))},48596(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.styles=void 0;var i=r(n(67154)),a=r(n(59713)),o=r(n(6479)),s=r(n(67294));r(n(45697));var u=r(n(94184)),c=r(n(78252)),l=function(e){return{root:{position:"relative",display:"flex",alignItems:"center"},gutters:e.mixins.gutters(),regular:e.mixins.toolbar,dense:{minHeight:48}}};function f(e){var t=e.children,n=e.classes,r=e.className,c=e.disableGutters,l=e.variant,f=(0,o.default)(e,["children","classes","className","disableGutters","variant"]),d=(0,u.default)(n.root,n[l],(0,a.default)({},n.gutters,!c),r);return s.default.createElement("div",(0,i.default)({className:d},f),t)}t.styles=l,f.defaultProps={disableGutters:!1,variant:"regular"};var d=(0,c.default)(l,{name:"MuiToolbar"})(f);t.default=d},28902(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return i.default}});var i=r(n(48596))},83065(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.styles=void 0;var i=r(n(67154)),a=r(n(6479)),o=r(n(34575)),s=r(n(93913)),u=r(n(78585)),c=r(n(29754)),l=r(n(2205)),f=r(n(59713)),d=r(n(67294));r(n(45697)),r(n(42473));var h=r(n(94184));n(55252);var p=r(n(39737)),b=r(n(78252)),m=n(98741),g=r(n(261)),v=r(n(60111)),y=function(e){return{popper:{zIndex:e.zIndex.tooltip,opacity:.9,pointerEvents:"none"},popperInteractive:{pointerEvents:"auto"},tooltip:{backgroundColor:e.palette.grey[700],borderRadius:e.shape.borderRadius,color:e.palette.common.white,fontFamily:e.typography.fontFamily,padding:"4px 8px",fontSize:e.typography.pxToRem(10),lineHeight:"".concat(e.typography.round(1.4),"em"),maxWidth:300},touch:{padding:"8px 16px",fontSize:e.typography.pxToRem(14),lineHeight:"".concat(e.typography.round(16/14),"em")},tooltipPlacementLeft:(0,f.default)({transformOrigin:"right center",margin:"0 24px "},e.breakpoints.up("sm"),{margin:"0 14px"}),tooltipPlacementRight:(0,f.default)({transformOrigin:"left center",margin:"0 24px"},e.breakpoints.up("sm"),{margin:"0 14px"}),tooltipPlacementTop:(0,f.default)({transformOrigin:"center bottom",margin:"24px 0"},e.breakpoints.up("sm"),{margin:"14px 0"}),tooltipPlacementBottom:(0,f.default)({transformOrigin:"center top",margin:"24px 0"},e.breakpoints.up("sm"),{margin:"14px 0"})}};t.styles=y;var w=function(e){function t(e){var n;return(0,o.default)(this,t),(n=(0,u.default)(this,(0,c.default)(t).call(this))).ignoreNonTouchEvents=!1,n.onRootRef=function(e){n.childrenRef=e},n.handleFocus=function(e){n.childrenRef||(n.childrenRef=e.currentTarget),n.handleEnter(e);var t=n.props.children.props;t.onFocus&&t.onFocus(e)},n.handleEnter=function(e){var t=n.props,r=t.children,i=t.enterDelay,a=r.props;"mouseover"===e.type&&a.onMouseOver&&a.onMouseOver(e),(!n.ignoreNonTouchEvents||"touchstart"===e.type)&&(n.childrenRef.setAttribute("title",""),clearTimeout(n.enterTimer),clearTimeout(n.leaveTimer),i?(e.persist(),n.enterTimer=setTimeout(function(){n.handleOpen(e)},i)):n.handleOpen(e))},n.handleOpen=function(e){n.isControlled||n.state.open||n.setState({open:!0}),n.props.onOpen&&n.props.onOpen(e)},n.handleLeave=function(e){var t=n.props,r=t.children,i=t.leaveDelay,a=r.props;"blur"===e.type&&a.onBlur&&a.onBlur(e),"mouseleave"===e.type&&a.onMouseLeave&&a.onMouseLeave(e),clearTimeout(n.enterTimer),clearTimeout(n.leaveTimer),i?(e.persist(),n.leaveTimer=setTimeout(function(){n.handleClose(e)},i)):n.handleClose(e)},n.handleClose=function(e){n.isControlled||n.setState({open:!1}),n.props.onClose&&n.props.onClose(e),clearTimeout(n.closeTimer),n.closeTimer=setTimeout(function(){n.ignoreNonTouchEvents=!1},n.props.theme.transitions.duration.shortest)},n.handleTouchStart=function(e){n.ignoreNonTouchEvents=!0;var t=n.props,r=t.children,i=t.enterTouchDelay;r.props.onTouchStart&&r.props.onTouchStart(e),clearTimeout(n.leaveTimer),clearTimeout(n.closeTimer),clearTimeout(n.touchTimer),e.persist(),n.touchTimer=setTimeout(function(){n.handleEnter(e)},i)},n.handleTouchEnd=function(e){var t=n.props,r=t.children,i=t.leaveTouchDelay;r.props.onTouchEnd&&r.props.onTouchEnd(e),clearTimeout(n.touchTimer),clearTimeout(n.leaveTimer),e.persist(),n.leaveTimer=setTimeout(function(){n.handleClose(e)},i)},n.isControlled=null!=e.open,n.state={open:null},n.isControlled||(n.state.open=!1),n}return(0,l.default)(t,e),(0,s.default)(t,[{key:"componentDidMount",value:function(){this.defaultId="mui-tooltip-".concat(Math.round(1e5*Math.random())),this.props.open&&this.forceUpdate()}},{key:"componentWillUnmount",value:function(){clearTimeout(this.closeTimer),clearTimeout(this.enterTimer),clearTimeout(this.focusTimer),clearTimeout(this.leaveTimer),clearTimeout(this.touchTimer)}},{key:"render",value:function(){var e=this,t=this.props,n=t.children,r=t.classes,o=t.disableFocusListener,s=t.disableHoverListener,u=t.disableTouchListener,c=(t.enterDelay,t.enterTouchDelay,t.id),l=t.interactive,b=(t.leaveDelay,t.leaveTouchDelay,t.onClose,t.onOpen,t.open),g=t.placement,y=t.PopperProps,w=t.theme,_=t.title,E=t.TransitionComponent,S=t.TransitionProps,k=(0,a.default)(t,["children","classes","disableFocusListener","disableHoverListener","disableTouchListener","enterDelay","enterTouchDelay","id","interactive","leaveDelay","leaveTouchDelay","onClose","onOpen","open","placement","PopperProps","theme","title","TransitionComponent","TransitionProps"]),x=this.isControlled?b:this.state.open;""===_&&(x=!1);var T=!x&&!s,M=(0,i.default)({"aria-describedby":x?c||this.defaultId:null,title:T&&"string"==typeof _?_:null},k,n.props,{className:(0,h.default)(k.className,n.props.className)});u||(M.onTouchStart=this.handleTouchStart,M.onTouchEnd=this.handleTouchEnd),s||(M.onMouseOver=this.handleEnter,M.onMouseLeave=this.handleLeave),o||(M.onFocus=this.handleFocus,M.onBlur=this.handleLeave);var O=l?{onMouseOver:M.onMouseOver,onMouseLeave:M.onMouseLeave,onFocus:M.onFocus,onBlur:M.onBlur}:{};return d.default.createElement(d.default.Fragment,null,d.default.createElement(p.default,{rootRef:this.onRootRef},d.default.cloneElement(n,M)),d.default.createElement(v.default,(0,i.default)({className:(0,h.default)(r.popper,(0,f.default)({},r.popperInteractive,l)),placement:g,anchorEl:this.childrenRef,open:x,id:M["aria-describedby"],transition:!0},O,y),function(t){var n=t.placement,a=t.TransitionProps;return d.default.createElement(E,(0,i.default)({timeout:w.transitions.duration.shorter},a,S),d.default.createElement("div",{className:(0,h.default)(r.tooltip,(0,f.default)({},r.touch,e.ignoreNonTouchEvents),r["tooltipPlacement".concat((0,m.capitalize)(n.split("-")[0]))])},_))}))}}]),t}(d.default.Component);w.defaultProps={disableFocusListener:!1,disableHoverListener:!1,disableTouchListener:!1,enterDelay:0,enterTouchDelay:1e3,interactive:!1,leaveDelay:0,leaveTouchDelay:1500,placement:"bottom",TransitionComponent:g.default};var _=(0,b.default)(y,{name:"MuiTooltip",withTheme:!0})(w);t.default=_},31657(e,t,n){"use strict";var r,i=n(95318);r={value:!0},Object.defineProperty(t,"Z",{enumerable:!0,get:function(){return a.default}});var a=i(n(83065))},49476(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.styles=void 0;var i=r(n(67154)),a=r(n(59713)),o=r(n(6479)),s=r(n(67294));r(n(45697));var u=r(n(94184));n(55252);var c=r(n(78252)),l=n(98741),f=function(e){return{root:{display:"block",margin:0},display4:e.typography.display4,display3:e.typography.display3,display2:e.typography.display2,display1:e.typography.display1,headline:e.typography.headline,title:e.typography.title,subheading:e.typography.subheading,body2:e.typography.body2,body1:e.typography.body1,caption:e.typography.caption,button:e.typography.button,h1:e.typography.h1,h2:e.typography.h2,h3:e.typography.h3,h4:e.typography.h4,h5:e.typography.h5,h6:e.typography.h6,subtitle1:e.typography.subtitle1,subtitle2:e.typography.subtitle2,overline:e.typography.overline,srOnly:{position:"absolute",height:1,width:1,overflow:"hidden"},alignLeft:{textAlign:"left"},alignCenter:{textAlign:"center"},alignRight:{textAlign:"right"},alignJustify:{textAlign:"justify"},noWrap:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},gutterBottom:{marginBottom:"0.35em"},paragraph:{marginBottom:16},colorInherit:{color:"inherit"},colorPrimary:{color:e.palette.primary.main},colorSecondary:{color:e.palette.secondary.main},colorTextPrimary:{color:e.palette.text.primary},colorTextSecondary:{color:e.palette.text.secondary},colorError:{color:e.palette.error.main},inline:{display:"inline"}}};t.styles=f;var d={display4:"h1",display3:"h2",display2:"h3",display1:"h4",headline:"h5",title:"h6",subheading:"subtitle1"};function h(e,t){var n=e.typography,r=t;return r||(r=n.useNextVariants?"body2":"body1"),n.useNextVariants&&(r=d[r]||r),r}var p={h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",h6:"h6",subtitle1:"h6",subtitle2:"h6",body1:"p",body2:"p",display4:"h1",display3:"h1",display2:"h1",display1:"h1",headline:"h1",title:"h2",subheading:"h3"};function b(e){var t,n=e.align,r=e.classes,c=e.className,f=e.color,d=e.component,b=e.gutterBottom,m=e.headlineMapping,g=e.inline,v=(e.internalDeprecatedVariant,e.noWrap),y=e.paragraph,w=e.theme,_=e.variant,E=(0,o.default)(e,["align","classes","className","color","component","gutterBottom","headlineMapping","inline","internalDeprecatedVariant","noWrap","paragraph","theme","variant"]),S=h(w,_),k=(0,u.default)(r.root,(t={},(0,a.default)(t,r[S],"inherit"!==S),(0,a.default)(t,r["color".concat((0,l.capitalize)(f))],"default"!==f),(0,a.default)(t,r.noWrap,v),(0,a.default)(t,r.gutterBottom,b),(0,a.default)(t,r.paragraph,y),(0,a.default)(t,r["align".concat((0,l.capitalize)(n))],"inherit"!==n),(0,a.default)(t,r.inline,g),t),c),x=d||(y?"p":m[S]||p[S])||"span";return s.default.createElement(x,(0,i.default)({className:k},E))}b.defaultProps={align:"inherit",color:"default",gutterBottom:!1,headlineMapping:p,inline:!1,noWrap:!1,paragraph:!1};var m=(0,c.default)(f,{name:"MuiTypography",withTheme:!0})(b);t.default=m},71426(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return i.default}});var i=r(n(49476))},8070(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n={50:"#fff8e1",100:"#ffecb3",200:"#ffe082",300:"#ffd54f",400:"#ffca28",500:"#ffc107",600:"#ffb300",700:"#ffa000",800:"#ff8f00",900:"#ff6f00",A100:"#ffe57f",A200:"#ffd740",A400:"#ffc400",A700:"#ffab00"};t.default=n},63259(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n={50:"#e3f2fd",100:"#bbdefb",200:"#90caf9",300:"#64b5f6",400:"#42a5f5",500:"#2196f3",600:"#1e88e5",700:"#1976d2",800:"#1565c0",900:"#0d47a1",A100:"#82b1ff",A200:"#448aff",A400:"#2979ff",A700:"#2962ff"};t.default=n},38236(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n={50:"#eceff1",100:"#cfd8dc",200:"#b0bec5",300:"#90a4ae",400:"#78909c",500:"#607d8b",600:"#546e7a",700:"#455a64",800:"#37474f",900:"#263238",A100:"#cfd8dc",A200:"#b0bec5",A400:"#78909c",A700:"#455a64"};t.default=n},60169(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n={50:"#efebe9",100:"#d7ccc8",200:"#bcaaa4",300:"#a1887f",400:"#8d6e63",500:"#795548",600:"#6d4c41",700:"#5d4037",800:"#4e342e",900:"#3e2723",A100:"#d7ccc8",A200:"#bcaaa4",A400:"#8d6e63",A700:"#5d4037"};t.default=n},515(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n={black:"#000",white:"#fff"};t.default=n},57646(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n={50:"#e0f7fa",100:"#b2ebf2",200:"#80deea",300:"#4dd0e1",400:"#26c6da",500:"#00bcd4",600:"#00acc1",700:"#0097a7",800:"#00838f",900:"#006064",A100:"#84ffff",A200:"#18ffff",A400:"#00e5ff",A700:"#00b8d4"};t.default=n},50173(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n={50:"#fbe9e7",100:"#ffccbc",200:"#ffab91",300:"#ff8a65",400:"#ff7043",500:"#ff5722",600:"#f4511e",700:"#e64a19",800:"#d84315",900:"#bf360c",A100:"#ff9e80",A200:"#ff6e40",A400:"#ff3d00",A700:"#dd2c00"};t.default=n},45018(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n={50:"#ede7f6",100:"#d1c4e9",200:"#b39ddb",300:"#9575cd",400:"#7e57c2",500:"#673ab7",600:"#5e35b1",700:"#512da8",800:"#4527a0",900:"#311b92",A100:"#b388ff",A200:"#7c4dff",A400:"#651fff",A700:"#6200ea"};t.default=n},47559(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n={50:"#e8f5e9",100:"#c8e6c9",200:"#a5d6a7",300:"#81c784",400:"#66bb6a",500:"#4caf50",600:"#43a047",700:"#388e3c",800:"#2e7d32",900:"#1b5e20",A100:"#b9f6ca",A200:"#69f0ae",A400:"#00e676",A700:"#00c853"};t.default=n},70167(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n={50:"#fafafa",100:"#f5f5f5",200:"#eeeeee",300:"#e0e0e0",400:"#bdbdbd",500:"#9e9e9e",600:"#757575",700:"#616161",800:"#424242",900:"#212121",A100:"#d5d5d5",A200:"#aaaaaa",A400:"#303030",A700:"#616161"};t.default=n},19350(e,t,n){"use strict";var r,i=n(95318);r={value:!0},Object.defineProperty(t,"y0",{enumerable:!0,get:function(){return a.default}}),r={enumerable:!0,get:function(){return o.default}},r={enumerable:!0,get:function(){return s.default}},r={enumerable:!0,get:function(){return u.default}},r={enumerable:!0,get:function(){return c.default}},r={enumerable:!0,get:function(){return l.default}},r={enumerable:!0,get:function(){return f.default}},r={enumerable:!0,get:function(){return d.default}},r={enumerable:!0,get:function(){return h.default}},r={enumerable:!0,get:function(){return p.default}},Object.defineProperty(t,"ek",{enumerable:!0,get:function(){return b.default}}),r={enumerable:!0,get:function(){return m.default}},r={enumerable:!0,get:function(){return g.default}},r={enumerable:!0,get:function(){return v.default}},r={enumerable:!0,get:function(){return y.default}},r={enumerable:!0,get:function(){return w.default}},r={enumerable:!0,get:function(){return _.default}},r={enumerable:!0,get:function(){return E.default}},Object.defineProperty(t,"BA",{enumerable:!0,get:function(){return S.default}}),r={enumerable:!0,get:function(){return k.default}};var a=i(n(515)),o=i(n(83165)),s=i(n(124)),u=i(n(18118)),c=i(n(45018)),l=i(n(78768)),f=i(n(63259)),d=i(n(4923)),h=i(n(57646)),p=i(n(91605)),b=i(n(47559)),m=i(n(40192)),g=i(n(98567)),v=i(n(74578)),y=i(n(8070)),w=i(n(36594)),_=i(n(50173)),E=i(n(60169)),S=i(n(70167)),k=i(n(38236))},78768(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n={50:"#e8eaf6",100:"#c5cae9",200:"#9fa8da",300:"#7986cb",400:"#5c6bc0",500:"#3f51b5",600:"#3949ab",700:"#303f9f",800:"#283593",900:"#1a237e",A100:"#8c9eff",A200:"#536dfe",A400:"#3d5afe",A700:"#304ffe"};t.default=n},4923(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n={50:"#e1f5fe",100:"#b3e5fc",200:"#81d4fa",300:"#4fc3f7",400:"#29b6f6",500:"#03a9f4",600:"#039be5",700:"#0288d1",800:"#0277bd",900:"#01579b",A100:"#80d8ff",A200:"#40c4ff",A400:"#00b0ff",A700:"#0091ea"};t.default=n},40192(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n={50:"#f1f8e9",100:"#dcedc8",200:"#c5e1a5",300:"#aed581",400:"#9ccc65",500:"#8bc34a",600:"#7cb342",700:"#689f38",800:"#558b2f",900:"#33691e",A100:"#ccff90",A200:"#b2ff59",A400:"#76ff03",A700:"#64dd17"};t.default=n},98567(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n={50:"#f9fbe7",100:"#f0f4c3",200:"#e6ee9c",300:"#dce775",400:"#d4e157",500:"#cddc39",600:"#c0ca33",700:"#afb42b",800:"#9e9d24",900:"#827717",A100:"#f4ff81",A200:"#eeff41",A400:"#c6ff00",A700:"#aeea00"};t.default=n},36594(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n={50:"#fff3e0",100:"#ffe0b2",200:"#ffcc80",300:"#ffb74d",400:"#ffa726",500:"#ff9800",600:"#fb8c00",700:"#f57c00",800:"#ef6c00",900:"#e65100",A100:"#ffd180",A200:"#ffab40",A400:"#ff9100",A700:"#ff6d00"};t.default=n},124(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n={50:"#fce4ec",100:"#f8bbd0",200:"#f48fb1",300:"#f06292",400:"#ec407a",500:"#e91e63",600:"#d81b60",700:"#c2185b",800:"#ad1457",900:"#880e4f",A100:"#ff80ab",A200:"#ff4081",A400:"#f50057",A700:"#c51162"};t.default=n},18118(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n={50:"#f3e5f5",100:"#e1bee7",200:"#ce93d8",300:"#ba68c8",400:"#ab47bc",500:"#9c27b0",600:"#8e24aa",700:"#7b1fa2",800:"#6a1b9a",900:"#4a148c",A100:"#ea80fc",A200:"#e040fb",A400:"#d500f9",A700:"#aa00ff"};t.default=n},83165(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n={50:"#ffebee",100:"#ffcdd2",200:"#ef9a9a",300:"#e57373",400:"#ef5350",500:"#f44336",600:"#e53935",700:"#d32f2f",800:"#c62828",900:"#b71c1c",A100:"#ff8a80",A200:"#ff5252",A400:"#ff1744",A700:"#d50000"};t.default=n},91605(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n={50:"#e0f2f1",100:"#b2dfdb",200:"#80cbc4",300:"#4db6ac",400:"#26a69a",500:"#009688",600:"#00897b",700:"#00796b",800:"#00695c",900:"#004d40",A100:"#a7ffeb",A200:"#64ffda",A400:"#1de9b6",A700:"#00bfa5"};t.default=n},74578(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n={50:"#fffde7",100:"#fff9c4",200:"#fff59d",300:"#fff176",400:"#ffee58",500:"#ffeb3b",600:"#fdd835",700:"#fbc02d",800:"#f9a825",900:"#f57f17",A100:"#ffff8d",A200:"#ffff00",A400:"#ffea00",A700:"#ffd600"};t.default=n},85609(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.styles=void 0;var i=r(n(67154)),a=r(n(59713)),o=r(n(6479)),s=r(n(34575)),u=r(n(93913)),c=r(n(78585)),l=r(n(29754)),f=r(n(2205)),d=r(n(67294));r(n(45697));var h=r(n(94184)),p=r(n(52598)),b=r(n(78252)),m=r(n(81701)),g={root:{display:"inline-flex",alignItems:"center",transition:"none","&:hover":{backgroundColor:"transparent"}},checked:{},disabled:{},input:{cursor:"inherit",position:"absolute",opacity:0,width:"100%",height:"100%",top:0,left:0,margin:0,padding:0}};t.styles=g;var v=function(e){function t(e){var n;return(0,s.default)(this,t),(n=(0,c.default)(this,(0,l.default)(t).call(this))).handleFocus=function(e){n.props.onFocus&&n.props.onFocus(e);var t=n.props.muiFormControl;t&&t.onFocus&&t.onFocus(e)},n.handleBlur=function(e){n.props.onBlur&&n.props.onBlur(e);var t=n.props.muiFormControl;t&&t.onBlur&&t.onBlur(e)},n.handleInputChange=function(e){var t=e.target.checked;n.isControlled||n.setState({checked:t}),n.props.onChange&&n.props.onChange(e,t)},n.isControlled=null!=e.checked,n.state={},n.isControlled||(n.state.checked=void 0!==e.defaultChecked&&e.defaultChecked),n}return(0,f.default)(t,e),(0,u.default)(t,[{key:"render",value:function(){var e,t=this.props,n=t.autoFocus,r=t.checked,s=t.checkedIcon,u=t.classes,c=t.className,l=t.defaultChecked,f=t.disabled,p=t.icon,b=t.id,g=t.inputProps,v=t.inputRef,y=t.muiFormControl,w=t.name,_=(t.onBlur,t.onChange,t.onFocus,t.readOnly),E=t.required,S=t.tabIndex,k=t.type,x=t.value,T=(0,o.default)(t,["autoFocus","checked","checkedIcon","classes","className","defaultChecked","disabled","icon","id","inputProps","inputRef","muiFormControl","name","onBlur","onChange","onFocus","readOnly","required","tabIndex","type","value"]),M=f;y&&void 0===M&&(M=y.disabled);var O=this.isControlled?r:this.state.checked,A="checkbox"===k||"radio"===k;return d.default.createElement(m.default,(0,i.default)({component:"span",className:(0,h.default)(u.root,(e={},(0,a.default)(e,u.checked,O),(0,a.default)(e,u.disabled,M),e),c),disabled:M,tabIndex:null,role:void 0,onFocus:this.handleFocus,onBlur:this.handleBlur},T),O?s:p,d.default.createElement("input",(0,i.default)({autoFocus:n,checked:r,defaultChecked:l,className:u.input,disabled:M,id:A&&b,name:w,onChange:this.handleInputChange,readOnly:_,ref:v,required:E,tabIndex:S,type:k,value:x},g)))}}]),t}(d.default.Component),y=(0,b.default)(g,{name:"MuiPrivateSwitchBase"})((0,p.default)(v));t.default=y},13329(e,t){"use strict";function n(e){return(1+Math.sin(Math.PI*e-Math.PI/2))/2}function r(e,t,r){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:function(){},o=i.ease,s=void 0===o?n:o,u=i.duration,c=void 0===u?300:u,l=null,f=t[e],d=!1,h=function(){d=!0},p=function n(i){if(d){a(Error("Animation cancelled"));return}null===l&&(l=i);var o=Math.min(1,(i-l)/c);if(t[e]=s(o)*(r-f)+f,o>=1){requestAnimationFrame(function(){a(null)});return}requestAnimationFrame(n)};return f===r?(a(Error("Element already at target position")),h):(requestAnimationFrame(p),h)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r;t.default=i},74622(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(67294)),a=r(n(46949)),o=r(n(40577)),s=i.default.createElement("path",{d:"M7 10l5 5 5-5z"}),u=function(e){return i.default.createElement(o.default,e,s)};(u=(0,a.default)(u)).muiName="SvgIcon";var c=u;t.default=c},99781(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(67294)),a=r(n(46949)),o=r(n(40577)),s=i.default.createElement("path",{d:"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z"}),u=function(e){return i.default.createElement(o.default,e,s)};(u=(0,a.default)(u)).muiName="SvgIcon";var c=u;t.default=c},41549(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(67294)),a=r(n(46949)),o=r(n(40577)),s=i.default.createElement("path",{d:"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"}),u=function(e){return i.default.createElement(o.default,e,s)};(u=(0,a.default)(u)).muiName="SvgIcon";var c=u;t.default=c},42159(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(67294)),a=r(n(46949)),o=r(n(40577)),s=i.default.createElement("path",{d:"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"}),u=function(e){return i.default.createElement(o.default,e,s)};(u=(0,a.default)(u)).muiName="SvgIcon";var c=u;t.default=c},61486(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(67294)),a=r(n(46949)),o=r(n(40577)),s=i.default.createElement("path",{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z"}),u=function(e){return i.default.createElement(o.default,e,s)};(u=(0,a.default)(u)).muiName="SvgIcon";var c=u;t.default=c},86861(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(67294)),a=r(n(46949)),o=r(n(40577)),s=i.default.createElement("path",{d:"M15.41 16.09l-4.58-4.59 4.58-4.59L14 5.5l-6 6 6 6z"}),u=function(e){return i.default.createElement(o.default,e,s)};(u=(0,a.default)(u)).muiName="SvgIcon";var c=u;t.default=c},43836(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(67294)),a=r(n(46949)),o=r(n(40577)),s=i.default.createElement("path",{d:"M8.59 16.34l4.58-4.59-4.58-4.59L10 5.75l6 6-6 6z"}),u=function(e){return i.default.createElement(o.default,e,s)};(u=(0,a.default)(u)).muiName="SvgIcon";var c=u;t.default=c},93078(e,t,n){"use strict";/*! +(()=>{var __webpack_modules__={98925(e,t,n){"use strict";let r=n(98633),i=n.g.Date;class a extends i{constructor(e){super(e),this.isDate=!0}toISOString(){return`${this.getUTCFullYear()}-${r(2,this.getUTCMonth()+1)}-${r(2,this.getUTCDate())}`}}e.exports=e=>{let t=new a(e);if(!isNaN(t))return t;throw TypeError("Invalid Datetime")}},86595(e,t,n){"use strict";let r=n(98633);class i extends Date{constructor(e){super(e+"Z"),this.isFloating=!0}toISOString(){let e=`${this.getUTCFullYear()}-${r(2,this.getUTCMonth()+1)}-${r(2,this.getUTCDate())}`,t=`${r(2,this.getUTCHours())}:${r(2,this.getUTCMinutes())}:${r(2,this.getUTCSeconds())}.${r(3,this.getUTCMilliseconds())}`;return`${e}T${t}`}}e.exports=e=>{let t=new i(e);if(!isNaN(t))return t;throw TypeError("Invalid Datetime")}},76114(e){"use strict";e.exports=e=>{let t=new Date(e);if(!isNaN(t))return t;throw TypeError("Invalid Datetime")}},99439(e,t,n){"use strict";let r=n(98633);class i extends Date{constructor(e){super(`0000-01-01T${e}Z`),this.isTime=!0}toISOString(){return`${r(2,this.getUTCHours())}:${r(2,this.getUTCMinutes())}:${r(2,this.getUTCSeconds())}.${r(3,this.getUTCMilliseconds())}`}}e.exports=e=>{let t=new i(e);if(!isNaN(t))return t;throw TypeError("Invalid Datetime")}},98633(e){"use strict";e.exports=(e,t)=>{for(t=String(t);t.length{let t=new TomlError(e.message);return t.code=e.code,t.wrapped=e,t},module.exports.TomlError=TomlError;let createDateTime=__webpack_require__(76114),createDateTimeFloat=__webpack_require__(86595),createDate=__webpack_require__(98925),createTime=__webpack_require__(99439),CTRL_I=9,CTRL_J=10,CTRL_M=13,CTRL_CHAR_BOUNDARY=31,CHAR_SP=32,CHAR_QUOT=34,CHAR_NUM=35,CHAR_APOS=39,CHAR_PLUS=43,CHAR_COMMA=44,CHAR_HYPHEN=45,CHAR_PERIOD=46,CHAR_0=48,CHAR_1=49,CHAR_7=55,CHAR_9=57,CHAR_COLON=58,CHAR_EQUALS=61,CHAR_A=65,CHAR_E=69,CHAR_F=70,CHAR_T=84,CHAR_U=85,CHAR_Z=90,CHAR_LOWBAR=95,CHAR_a=97,CHAR_b=98,CHAR_e=101,CHAR_f=102,CHAR_i=105,CHAR_l=108,CHAR_n=110,CHAR_o=111,CHAR_r=114,CHAR_s=115,CHAR_t=116,CHAR_u=117,CHAR_x=120,CHAR_z=122,CHAR_LCUB=123,CHAR_RCUB=125,CHAR_LSQB=91,CHAR_BSOL=92,CHAR_RSQB=93,CHAR_DEL=127,SURROGATE_FIRST=55296,SURROGATE_LAST=57343,escapes={[CHAR_b]:"\b",[CHAR_t]:" ",[CHAR_n]:"\n",[CHAR_f]:"\f",[CHAR_r]:"\r",[CHAR_QUOT]:'"',[CHAR_BSOL]:"\\"};function isDigit(e){return e>=CHAR_0&&e<=CHAR_9}function isHexit(e){return e>=CHAR_A&&e<=CHAR_F||e>=CHAR_a&&e<=CHAR_f||e>=CHAR_0&&e<=CHAR_9}function isBit(e){return e===CHAR_1||e===CHAR_0}function isOctit(e){return e>=CHAR_0&&e<=CHAR_7}function isAlphaNumQuoteHyphen(e){return e>=CHAR_A&&e<=CHAR_Z||e>=CHAR_a&&e<=CHAR_z||e>=CHAR_0&&e<=CHAR_9||e===CHAR_APOS||e===CHAR_QUOT||e===CHAR_LOWBAR||e===CHAR_HYPHEN}function isAlphaNumHyphen(e){return e>=CHAR_A&&e<=CHAR_Z||e>=CHAR_a&&e<=CHAR_z||e>=CHAR_0&&e<=CHAR_9||e===CHAR_LOWBAR||e===CHAR_HYPHEN}let _type=Symbol("type"),_declared=Symbol("declared"),hasOwnProperty=Object.prototype.hasOwnProperty,defineProperty=Object.defineProperty,descriptor={configurable:!0,enumerable:!0,writable:!0,value:void 0};function hasKey(e,t){return!!hasOwnProperty.call(e,t)||("__proto__"===t&&defineProperty(e,"__proto__",descriptor),!1)}let INLINE_TABLE=Symbol("inline-table");function InlineTable(){return Object.defineProperties({},{[_type]:{value:INLINE_TABLE}})}function isInlineTable(e){return null!==e&&"object"==typeof e&&e[_type]===INLINE_TABLE}let TABLE=Symbol("table");function Table(){return Object.defineProperties({},{[_type]:{value:TABLE},[_declared]:{value:!1,writable:!0}})}function isTable(e){return null!==e&&"object"==typeof e&&e[_type]===TABLE}let _contentType=Symbol("content-type"),INLINE_LIST=Symbol("inline-list");function InlineList(e){return Object.defineProperties([],{[_type]:{value:INLINE_LIST},[_contentType]:{value:e}})}function isInlineList(e){return null!==e&&"object"==typeof e&&e[_type]===INLINE_LIST}let LIST=Symbol("list");function List(){return Object.defineProperties([],{[_type]:{value:LIST}})}function isList(e){return null!==e&&"object"==typeof e&&e[_type]===LIST}let _custom;try{let utilInspect=eval("require('util').inspect");_custom=utilInspect.custom}catch(_){}let _inspect=_custom||"inspect";class BoxedBigInt{constructor(e){try{this.value=__webpack_require__.g.BigInt.asIntN(64,e)}catch(t){this.value=null}Object.defineProperty(this,_type,{value:INTEGER})}isNaN(){return null===this.value}toString(){return String(this.value)}[_inspect](){return`[BigInt: ${this.toString()}]}`}valueOf(){return this.value}}let INTEGER=Symbol("integer");function Integer(e){let t=Number(e);return(Object.is(t,-0)&&(t=0),__webpack_require__.g.BigInt&&!Number.isSafeInteger(t))?new BoxedBigInt(e):Object.defineProperties(new Number(t),{isNaN:{value:function(){return isNaN(this)}},[_type]:{value:INTEGER},[_inspect]:{value:()=>`[Integer: ${e}]`}})}function isInteger(e){return null!==e&&"object"==typeof e&&e[_type]===INTEGER}let FLOAT=Symbol("float");function Float(e){return Object.defineProperties(new Number(e),{[_type]:{value:FLOAT},[_inspect]:{value:()=>`[Float: ${e}]`}})}function isFloat(e){return null!==e&&"object"==typeof e&&e[_type]===FLOAT}function tomlType(e){let t=typeof e;if("object"===t){if(null===e)return"null";if(e instanceof Date)return"datetime";if(_type in e)switch(e[_type]){case INLINE_TABLE:return"inline-table";case INLINE_LIST:return"inline-list";case TABLE:return"table";case LIST:return"list";case FLOAT:return"float";case INTEGER:return"integer"}}return t}function makeParserClass(e){class t extends e{constructor(){super(),this.ctx=this.obj=Table()}atEndOfWord(){return this.char===CHAR_NUM||this.char===CTRL_I||this.char===CHAR_SP||this.atEndOfLine()}atEndOfLine(){return this.char===e.END||this.char===CTRL_J||this.char===CTRL_M}parseStart(){if(this.char===e.END)return null;if(this.char===CHAR_LSQB)return this.call(this.parseTableOrList);if(this.char===CHAR_NUM)return this.call(this.parseComment);if(this.char===CTRL_J||this.char===CHAR_SP||this.char===CTRL_I||this.char===CTRL_M)return null;if(isAlphaNumQuoteHyphen(this.char))return this.callNow(this.parseAssignStatement);else throw this.error(new TomlError(`Unknown character "${this.char}"`))}parseWhitespaceToEOL(){if(this.char===CHAR_SP||this.char===CTRL_I||this.char===CTRL_M)return null;if(this.char===CHAR_NUM)return this.goto(this.parseComment);if(this.char===e.END||this.char===CTRL_J)return this.return();throw this.error(new TomlError("Unexpected character, expected only whitespace or comments till end of line"))}parseAssignStatement(){return this.callNow(this.parseAssign,this.recordAssignStatement)}recordAssignStatement(e){let t=this.ctx,n=e.key.pop();for(let r of e.key){if(hasKey(t,r)&&!isTable(t[r]))throw this.error(new TomlError("Can't redefine existing key"));t=t[r]=t[r]||Table()}if(hasKey(t,n))throw this.error(new TomlError("Can't redefine existing key"));return t[_declared]=!0,isInteger(e.value)||isFloat(e.value)?t[n]=e.value.valueOf():t[n]=e.value,this.goto(this.parseWhitespaceToEOL)}parseAssign(){return this.callNow(this.parseKeyword,this.recordAssignKeyword)}recordAssignKeyword(e){return this.state.resultTable?this.state.resultTable.push(e):this.state.resultTable=[e],this.goto(this.parseAssignKeywordPreDot)}parseAssignKeywordPreDot(){return this.char===CHAR_PERIOD?this.next(this.parseAssignKeywordPostDot):this.char!==CHAR_SP&&this.char!==CTRL_I?this.goto(this.parseAssignEqual):void 0}parseAssignKeywordPostDot(){if(this.char!==CHAR_SP&&this.char!==CTRL_I)return this.callNow(this.parseKeyword,this.recordAssignKeyword)}parseAssignEqual(){if(this.char===CHAR_EQUALS)return this.next(this.parseAssignPreValue);throw this.error(new TomlError('Invalid character, expected "="'))}parseAssignPreValue(){return this.char===CHAR_SP||this.char===CTRL_I?null:this.callNow(this.parseValue,this.recordAssignValue)}recordAssignValue(e){return this.returnNow({key:this.state.resultTable,value:e})}parseComment(){do{if(this.char===e.END||this.char===CTRL_J)return this.return();if(this.char===CHAR_DEL||this.char<=CTRL_CHAR_BOUNDARY&&this.char!==CTRL_I)throw this.errorControlCharIn("comments")}while(this.nextChar())}parseTableOrList(){if(this.char!==CHAR_LSQB)return this.goto(this.parseTable);this.next(this.parseList)}parseTable(){return this.ctx=this.obj,this.goto(this.parseTableNext)}parseTableNext(){return this.char===CHAR_SP||this.char===CTRL_I?null:this.callNow(this.parseKeyword,this.parseTableMore)}parseTableMore(e){if(this.char===CHAR_SP||this.char===CTRL_I)return null;if(this.char===CHAR_RSQB){if(hasKey(this.ctx,e)&&(!isTable(this.ctx[e])||this.ctx[e][_declared]))throw this.error(new TomlError("Can't redefine existing key"));return this.ctx=this.ctx[e]=this.ctx[e]||Table(),this.ctx[_declared]=!0,this.next(this.parseWhitespaceToEOL)}if(this.char===CHAR_PERIOD){if(hasKey(this.ctx,e)){if(isTable(this.ctx[e]))this.ctx=this.ctx[e];else if(isList(this.ctx[e]))this.ctx=this.ctx[e][this.ctx[e].length-1];else throw this.error(new TomlError("Can't redefine existing key"))}else this.ctx=this.ctx[e]=Table();return this.next(this.parseTableNext)}throw this.error(new TomlError("Unexpected character, expected whitespace, . or ]"))}parseList(){return this.ctx=this.obj,this.goto(this.parseListNext)}parseListNext(){return this.char===CHAR_SP||this.char===CTRL_I?null:this.callNow(this.parseKeyword,this.parseListMore)}parseListMore(e){if(this.char===CHAR_SP||this.char===CTRL_I)return null;if(this.char===CHAR_RSQB){if(hasKey(this.ctx,e)||(this.ctx[e]=List()),isInlineList(this.ctx[e]))throw this.error(new TomlError("Can't extend an inline array"));if(isList(this.ctx[e])){let t=Table();this.ctx[e].push(t),this.ctx=t}else throw this.error(new TomlError("Can't redefine an existing key"));return this.next(this.parseListEnd)}if(this.char===CHAR_PERIOD){if(hasKey(this.ctx,e)){if(isInlineList(this.ctx[e]))throw this.error(new TomlError("Can't extend an inline array"));if(isInlineTable(this.ctx[e]))throw this.error(new TomlError("Can't extend an inline table"));else if(isList(this.ctx[e]))this.ctx=this.ctx[e][this.ctx[e].length-1];else if(isTable(this.ctx[e]))this.ctx=this.ctx[e];else throw this.error(new TomlError("Can't redefine an existing key"))}else this.ctx=this.ctx[e]=Table();return this.next(this.parseListNext)}throw this.error(new TomlError("Unexpected character, expected whitespace, . or ]"))}parseListEnd(e){if(this.char===CHAR_RSQB)return this.next(this.parseWhitespaceToEOL);throw this.error(new TomlError("Unexpected character, expected whitespace, . or ]"))}parseValue(){if(this.char===e.END)throw this.error(new TomlError("Key without value"));if(this.char===CHAR_QUOT)return this.next(this.parseDoubleString);if(this.char===CHAR_APOS)return this.next(this.parseSingleString);if(this.char===CHAR_HYPHEN||this.char===CHAR_PLUS)return this.goto(this.parseNumberSign);if(this.char===CHAR_i)return this.next(this.parseInf);if(this.char===CHAR_n)return this.next(this.parseNan);if(isDigit(this.char))return this.goto(this.parseNumberOrDateTime);else if(this.char===CHAR_t||this.char===CHAR_f)return this.goto(this.parseBoolean);else if(this.char===CHAR_LSQB)return this.call(this.parseInlineList,this.recordValue);else if(this.char===CHAR_LCUB)return this.call(this.parseInlineTable,this.recordValue);else throw this.error(new TomlError("Unexpected character, expecting string, number, datetime, boolean, inline array or inline table"))}recordValue(e){return this.returnNow(e)}parseInf(){if(this.char===CHAR_n)return this.next(this.parseInf2);throw this.error(new TomlError('Unexpected character, expected "inf", "+inf" or "-inf"'))}parseInf2(){if(this.char===CHAR_f)return"-"===this.state.buf?this.return(-1/0):this.return(1/0);throw this.error(new TomlError('Unexpected character, expected "inf", "+inf" or "-inf"'))}parseNan(){if(this.char===CHAR_a)return this.next(this.parseNan2);throw this.error(new TomlError('Unexpected character, expected "nan"'))}parseNan2(){if(this.char===CHAR_n)return this.return(NaN);throw this.error(new TomlError('Unexpected character, expected "nan"'))}parseKeyword(){return this.char===CHAR_QUOT?this.next(this.parseBasicString):this.char===CHAR_APOS?this.next(this.parseLiteralString):this.goto(this.parseBareKey)}parseBareKey(){do{if(this.char===e.END)throw this.error(new TomlError("Key ended without value"));if(isAlphaNumHyphen(this.char))this.consume();else if(0!==this.state.buf.length)return this.returnNow();else throw this.error(new TomlError("Empty bare keys are not allowed"))}while(this.nextChar())}parseSingleString(){return this.char===CHAR_APOS?this.next(this.parseLiteralMultiStringMaybe):this.goto(this.parseLiteralString)}parseLiteralString(){do{if(this.char===CHAR_APOS)return this.return();if(this.atEndOfLine())throw this.error(new TomlError("Unterminated string"));if(this.char===CHAR_DEL||this.char<=CTRL_CHAR_BOUNDARY&&this.char!==CTRL_I)throw this.errorControlCharIn("strings");else this.consume()}while(this.nextChar())}parseLiteralMultiStringMaybe(){return this.char===CHAR_APOS?this.next(this.parseLiteralMultiString):this.returnNow()}parseLiteralMultiString(){return this.char===CTRL_M?null:this.char===CTRL_J?this.next(this.parseLiteralMultiStringContent):this.goto(this.parseLiteralMultiStringContent)}parseLiteralMultiStringContent(){do{if(this.char===CHAR_APOS)return this.next(this.parseLiteralMultiEnd);if(this.char===e.END)throw this.error(new TomlError("Unterminated multi-line string"));if(this.char===CHAR_DEL||this.char<=CTRL_CHAR_BOUNDARY&&this.char!==CTRL_I&&this.char!==CTRL_J&&this.char!==CTRL_M)throw this.errorControlCharIn("strings");else this.consume()}while(this.nextChar())}parseLiteralMultiEnd(){return this.char===CHAR_APOS?this.next(this.parseLiteralMultiEnd2):(this.state.buf+="'",this.goto(this.parseLiteralMultiStringContent))}parseLiteralMultiEnd2(){return this.char===CHAR_APOS?this.next(this.parseLiteralMultiEnd3):(this.state.buf+="''",this.goto(this.parseLiteralMultiStringContent))}parseLiteralMultiEnd3(){return this.char===CHAR_APOS?(this.state.buf+="'",this.next(this.parseLiteralMultiEnd4)):this.returnNow()}parseLiteralMultiEnd4(){return this.char===CHAR_APOS?(this.state.buf+="'",this.return()):this.returnNow()}parseDoubleString(){return this.char===CHAR_QUOT?this.next(this.parseMultiStringMaybe):this.goto(this.parseBasicString)}parseBasicString(){do{if(this.char===CHAR_BSOL)return this.call(this.parseEscape,this.recordEscapeReplacement);if(this.char===CHAR_QUOT)return this.return();if(this.atEndOfLine())throw this.error(new TomlError("Unterminated string"));else if(this.char===CHAR_DEL||this.char<=CTRL_CHAR_BOUNDARY&&this.char!==CTRL_I)throw this.errorControlCharIn("strings");else this.consume()}while(this.nextChar())}recordEscapeReplacement(e){return this.state.buf+=e,this.goto(this.parseBasicString)}parseMultiStringMaybe(){return this.char===CHAR_QUOT?this.next(this.parseMultiString):this.returnNow()}parseMultiString(){return this.char===CTRL_M?null:this.char===CTRL_J?this.next(this.parseMultiStringContent):this.goto(this.parseMultiStringContent)}parseMultiStringContent(){do{if(this.char===CHAR_BSOL)return this.call(this.parseMultiEscape,this.recordMultiEscapeReplacement);if(this.char===CHAR_QUOT)return this.next(this.parseMultiEnd);if(this.char===e.END)throw this.error(new TomlError("Unterminated multi-line string"));else if(this.char===CHAR_DEL||this.char<=CTRL_CHAR_BOUNDARY&&this.char!==CTRL_I&&this.char!==CTRL_J&&this.char!==CTRL_M)throw this.errorControlCharIn("strings");else this.consume()}while(this.nextChar())}errorControlCharIn(e){let t="\\u00";return this.char<16&&(t+="0"),t+=this.char.toString(16),this.error(new TomlError(`Control characters (codes < 0x1f and 0x7f) are not allowed in ${e}, use ${t} instead`))}recordMultiEscapeReplacement(e){return this.state.buf+=e,this.goto(this.parseMultiStringContent)}parseMultiEnd(){return this.char===CHAR_QUOT?this.next(this.parseMultiEnd2):(this.state.buf+='"',this.goto(this.parseMultiStringContent))}parseMultiEnd2(){return this.char===CHAR_QUOT?this.next(this.parseMultiEnd3):(this.state.buf+='""',this.goto(this.parseMultiStringContent))}parseMultiEnd3(){return this.char===CHAR_QUOT?(this.state.buf+='"',this.next(this.parseMultiEnd4)):this.returnNow()}parseMultiEnd4(){return this.char===CHAR_QUOT?(this.state.buf+='"',this.return()):this.returnNow()}parseMultiEscape(){return this.char===CTRL_M||this.char===CTRL_J?this.next(this.parseMultiTrim):this.char===CHAR_SP||this.char===CTRL_I?this.next(this.parsePreMultiTrim):this.goto(this.parseEscape)}parsePreMultiTrim(){if(this.char===CHAR_SP||this.char===CTRL_I)return null;if(this.char===CTRL_M||this.char===CTRL_J)return this.next(this.parseMultiTrim);throw this.error(new TomlError("Can't escape whitespace"))}parseMultiTrim(){return this.char===CTRL_J||this.char===CHAR_SP||this.char===CTRL_I||this.char===CTRL_M?null:this.returnNow()}parseEscape(){if(this.char in escapes)return this.return(escapes[this.char]);if(this.char===CHAR_u)return this.call(this.parseSmallUnicode,this.parseUnicodeReturn);if(this.char===CHAR_U)return this.call(this.parseLargeUnicode,this.parseUnicodeReturn);throw this.error(new TomlError("Unknown escape character: "+this.char))}parseUnicodeReturn(e){try{let t=parseInt(e,16);if(t>=SURROGATE_FIRST&&t<=SURROGATE_LAST)throw this.error(new TomlError("Invalid unicode, character in range 0xD800 - 0xDFFF is reserved"));return this.returnNow(String.fromCodePoint(t))}catch(n){throw this.error(TomlError.wrap(n))}}parseSmallUnicode(){if(isHexit(this.char)){if(this.consume(),this.state.buf.length>=4)return this.return()}else throw this.error(new TomlError("Invalid character in unicode sequence, expected hex"))}parseLargeUnicode(){if(isHexit(this.char)){if(this.consume(),this.state.buf.length>=8)return this.return()}else throw this.error(new TomlError("Invalid character in unicode sequence, expected hex"))}parseNumberSign(){return this.consume(),this.next(this.parseMaybeSignedInfOrNan)}parseMaybeSignedInfOrNan(){return this.char===CHAR_i?this.next(this.parseInf):this.char===CHAR_n?this.next(this.parseNan):this.callNow(this.parseNoUnder,this.parseNumberIntegerStart)}parseNumberIntegerStart(){return this.char===CHAR_0?(this.consume(),this.next(this.parseNumberIntegerExponentOrDecimal)):this.goto(this.parseNumberInteger)}parseNumberIntegerExponentOrDecimal(){return this.char===CHAR_PERIOD?(this.consume(),this.call(this.parseNoUnder,this.parseNumberFloat)):this.char===CHAR_E||this.char===CHAR_e?(this.consume(),this.next(this.parseNumberExponentSign)):this.returnNow(Integer(this.state.buf))}parseNumberInteger(){if(isDigit(this.char))this.consume();else{if(this.char===CHAR_LOWBAR)return this.call(this.parseNoUnder);if(this.char===CHAR_E||this.char===CHAR_e)return this.consume(),this.next(this.parseNumberExponentSign);if(this.char===CHAR_PERIOD)return this.consume(),this.call(this.parseNoUnder,this.parseNumberFloat);let e=Integer(this.state.buf);if(!e.isNaN())return this.returnNow(e);throw this.error(new TomlError("Invalid number"))}}parseNoUnder(){if(this.char===CHAR_LOWBAR||this.char===CHAR_PERIOD||this.char===CHAR_E||this.char===CHAR_e)throw this.error(new TomlError("Unexpected character, expected digit"));if(this.atEndOfWord())throw this.error(new TomlError("Incomplete number"));return this.returnNow()}parseNoUnderHexOctBinLiteral(){if(this.char===CHAR_LOWBAR||this.char===CHAR_PERIOD)throw this.error(new TomlError("Unexpected character, expected digit"));if(this.atEndOfWord())throw this.error(new TomlError("Incomplete number"));return this.returnNow()}parseNumberFloat(){if(this.char===CHAR_LOWBAR)return this.call(this.parseNoUnder,this.parseNumberFloat);if(isDigit(this.char))this.consume();else if(this.char===CHAR_E||this.char===CHAR_e)return this.consume(),this.next(this.parseNumberExponentSign);else return this.returnNow(Float(this.state.buf))}parseNumberExponentSign(){if(isDigit(this.char))return this.goto(this.parseNumberExponent);if(this.char===CHAR_HYPHEN||this.char===CHAR_PLUS)this.consume(),this.call(this.parseNoUnder,this.parseNumberExponent);else throw this.error(new TomlError("Unexpected character, expected -, + or digit"))}parseNumberExponent(){if(isDigit(this.char))this.consume();else if(this.char===CHAR_LOWBAR)return this.call(this.parseNoUnder);else return this.returnNow(Float(this.state.buf))}parseNumberOrDateTime(){return this.char===CHAR_0?(this.consume(),this.next(this.parseNumberBaseOrDateTime)):this.goto(this.parseNumberOrDateTimeOnly)}parseNumberOrDateTimeOnly(){if(this.char===CHAR_LOWBAR)return this.call(this.parseNoUnder,this.parseNumberInteger);if(isDigit(this.char))this.consume(),this.state.buf.length>4&&this.next(this.parseNumberInteger);else if(this.char===CHAR_E||this.char===CHAR_e)return this.consume(),this.next(this.parseNumberExponentSign);else if(this.char===CHAR_PERIOD)return this.consume(),this.call(this.parseNoUnder,this.parseNumberFloat);else if(this.char===CHAR_HYPHEN)return this.goto(this.parseDateTime);else if(this.char===CHAR_COLON)return this.goto(this.parseOnlyTimeHour);else return this.returnNow(Integer(this.state.buf))}parseDateTimeOnly(){if(this.state.buf.length<4){if(isDigit(this.char))return this.consume();if(this.char===CHAR_COLON)return this.goto(this.parseOnlyTimeHour);throw this.error(new TomlError("Expected digit while parsing year part of a date"))}if(this.char===CHAR_HYPHEN)return this.goto(this.parseDateTime);throw this.error(new TomlError("Expected hyphen (-) while parsing year part of date"))}parseNumberBaseOrDateTime(){if(this.char===CHAR_b)return this.consume(),this.call(this.parseNoUnderHexOctBinLiteral,this.parseIntegerBin);if(this.char===CHAR_o)return this.consume(),this.call(this.parseNoUnderHexOctBinLiteral,this.parseIntegerOct);if(this.char===CHAR_x)return this.consume(),this.call(this.parseNoUnderHexOctBinLiteral,this.parseIntegerHex);if(this.char===CHAR_PERIOD)return this.goto(this.parseNumberInteger);if(isDigit(this.char))return this.goto(this.parseDateTimeOnly);else return this.returnNow(Integer(this.state.buf))}parseIntegerHex(){if(isHexit(this.char))this.consume();else{if(this.char===CHAR_LOWBAR)return this.call(this.parseNoUnderHexOctBinLiteral);let e=Integer(this.state.buf);if(!e.isNaN())return this.returnNow(e);throw this.error(new TomlError("Invalid number"))}}parseIntegerOct(){if(isOctit(this.char))this.consume();else{if(this.char===CHAR_LOWBAR)return this.call(this.parseNoUnderHexOctBinLiteral);let e=Integer(this.state.buf);if(!e.isNaN())return this.returnNow(e);throw this.error(new TomlError("Invalid number"))}}parseIntegerBin(){if(isBit(this.char))this.consume();else{if(this.char===CHAR_LOWBAR)return this.call(this.parseNoUnderHexOctBinLiteral);let e=Integer(this.state.buf);if(!e.isNaN())return this.returnNow(e);throw this.error(new TomlError("Invalid number"))}}parseDateTime(){if(this.state.buf.length<4)throw this.error(new TomlError("Years less than 1000 must be zero padded to four characters"));return this.state.result=this.state.buf,this.state.buf="",this.next(this.parseDateMonth)}parseDateMonth(){if(this.char===CHAR_HYPHEN){if(this.state.buf.length<2)throw this.error(new TomlError("Months less than 10 must be zero padded to two characters"));return this.state.result+="-"+this.state.buf,this.state.buf="",this.next(this.parseDateDay)}if(isDigit(this.char))this.consume();else throw this.error(new TomlError("Incomplete datetime"))}parseDateDay(){if(this.char===CHAR_T||this.char===CHAR_SP){if(this.state.buf.length<2)throw this.error(new TomlError("Days less than 10 must be zero padded to two characters"));return this.state.result+="-"+this.state.buf,this.state.buf="",this.next(this.parseStartTimeHour)}if(this.atEndOfWord())return this.returnNow(createDate(this.state.result+"-"+this.state.buf));if(isDigit(this.char))this.consume();else throw this.error(new TomlError("Incomplete datetime"))}parseStartTimeHour(){return this.atEndOfWord()?this.returnNow(createDate(this.state.result)):this.goto(this.parseTimeHour)}parseTimeHour(){if(this.char===CHAR_COLON){if(this.state.buf.length<2)throw this.error(new TomlError("Hours less than 10 must be zero padded to two characters"));return this.state.result+="T"+this.state.buf,this.state.buf="",this.next(this.parseTimeMin)}if(isDigit(this.char))this.consume();else throw this.error(new TomlError("Incomplete datetime"))}parseTimeMin(){if(this.state.buf.length<2&&isDigit(this.char))this.consume();else if(2===this.state.buf.length&&this.char===CHAR_COLON)return this.state.result+=":"+this.state.buf,this.state.buf="",this.next(this.parseTimeSec);else throw this.error(new TomlError("Incomplete datetime"))}parseTimeSec(){if(isDigit(this.char)){if(this.consume(),2===this.state.buf.length)return this.state.result+=":"+this.state.buf,this.state.buf="",this.next(this.parseTimeZoneOrFraction)}else throw this.error(new TomlError("Incomplete datetime"))}parseOnlyTimeHour(){if(this.char===CHAR_COLON){if(this.state.buf.length<2)throw this.error(new TomlError("Hours less than 10 must be zero padded to two characters"));return this.state.result=this.state.buf,this.state.buf="",this.next(this.parseOnlyTimeMin)}throw this.error(new TomlError("Incomplete time"))}parseOnlyTimeMin(){if(this.state.buf.length<2&&isDigit(this.char))this.consume();else if(2===this.state.buf.length&&this.char===CHAR_COLON)return this.state.result+=":"+this.state.buf,this.state.buf="",this.next(this.parseOnlyTimeSec);else throw this.error(new TomlError("Incomplete time"))}parseOnlyTimeSec(){if(isDigit(this.char)){if(this.consume(),2===this.state.buf.length)return this.next(this.parseOnlyTimeFractionMaybe)}else throw this.error(new TomlError("Incomplete time"))}parseOnlyTimeFractionMaybe(){if(this.state.result+=":"+this.state.buf,this.char!==CHAR_PERIOD)return this.return(createTime(this.state.result));this.state.buf="",this.next(this.parseOnlyTimeFraction)}parseOnlyTimeFraction(){if(isDigit(this.char))this.consume();else if(this.atEndOfWord()){if(0===this.state.buf.length)throw this.error(new TomlError("Expected digit in milliseconds"));return this.returnNow(createTime(this.state.result+"."+this.state.buf))}else throw this.error(new TomlError("Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z"))}parseTimeZoneOrFraction(){if(this.char===CHAR_PERIOD)this.consume(),this.next(this.parseDateTimeFraction);else if(this.char===CHAR_HYPHEN||this.char===CHAR_PLUS)this.consume(),this.next(this.parseTimeZoneHour);else if(this.char===CHAR_Z)return this.consume(),this.return(createDateTime(this.state.result+this.state.buf));else if(this.atEndOfWord())return this.returnNow(createDateTimeFloat(this.state.result+this.state.buf));else throw this.error(new TomlError("Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z"))}parseDateTimeFraction(){if(isDigit(this.char))this.consume();else if(1===this.state.buf.length)throw this.error(new TomlError("Expected digit in milliseconds"));else if(this.char===CHAR_HYPHEN||this.char===CHAR_PLUS)this.consume(),this.next(this.parseTimeZoneHour);else if(this.char===CHAR_Z)return this.consume(),this.return(createDateTime(this.state.result+this.state.buf));else if(this.atEndOfWord())return this.returnNow(createDateTimeFloat(this.state.result+this.state.buf));else throw this.error(new TomlError("Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z"))}parseTimeZoneHour(){if(isDigit(this.char)){if(this.consume(),/\d\d$/.test(this.state.buf))return this.next(this.parseTimeZoneSep)}else throw this.error(new TomlError("Unexpected character in datetime, expected digit"))}parseTimeZoneSep(){if(this.char===CHAR_COLON)this.consume(),this.next(this.parseTimeZoneMin);else throw this.error(new TomlError("Unexpected character in datetime, expected colon"))}parseTimeZoneMin(){if(isDigit(this.char)){if(this.consume(),/\d\d$/.test(this.state.buf))return this.return(createDateTime(this.state.result+this.state.buf))}else throw this.error(new TomlError("Unexpected character in datetime, expected digit"))}parseBoolean(){return this.char===CHAR_t?(this.consume(),this.next(this.parseTrue_r)):this.char===CHAR_f?(this.consume(),this.next(this.parseFalse_a)):void 0}parseTrue_r(){if(this.char===CHAR_r)return this.consume(),this.next(this.parseTrue_u);throw this.error(new TomlError("Invalid boolean, expected true or false"))}parseTrue_u(){if(this.char===CHAR_u)return this.consume(),this.next(this.parseTrue_e);throw this.error(new TomlError("Invalid boolean, expected true or false"))}parseTrue_e(){if(this.char===CHAR_e)return this.return(!0);throw this.error(new TomlError("Invalid boolean, expected true or false"))}parseFalse_a(){if(this.char===CHAR_a)return this.consume(),this.next(this.parseFalse_l);throw this.error(new TomlError("Invalid boolean, expected true or false"))}parseFalse_l(){if(this.char===CHAR_l)return this.consume(),this.next(this.parseFalse_s);throw this.error(new TomlError("Invalid boolean, expected true or false"))}parseFalse_s(){if(this.char===CHAR_s)return this.consume(),this.next(this.parseFalse_e);throw this.error(new TomlError("Invalid boolean, expected true or false"))}parseFalse_e(){if(this.char===CHAR_e)return this.return(!1);throw this.error(new TomlError("Invalid boolean, expected true or false"))}parseInlineList(){if(this.char===CHAR_SP||this.char===CTRL_I||this.char===CTRL_M||this.char===CTRL_J)return null;if(this.char===e.END)throw this.error(new TomlError("Unterminated inline array"));return this.char===CHAR_NUM?this.call(this.parseComment):this.char===CHAR_RSQB?this.return(this.state.resultArr||InlineList()):this.callNow(this.parseValue,this.recordInlineListValue)}recordInlineListValue(e){return this.state.resultArr||(this.state.resultArr=InlineList(tomlType(e))),isFloat(e)||isInteger(e)?this.state.resultArr.push(e.valueOf()):this.state.resultArr.push(e),this.goto(this.parseInlineListNext)}parseInlineListNext(){if(this.char===CHAR_SP||this.char===CTRL_I||this.char===CTRL_M||this.char===CTRL_J)return null;if(this.char===CHAR_NUM)return this.call(this.parseComment);if(this.char===CHAR_COMMA)return this.next(this.parseInlineList);if(this.char===CHAR_RSQB)return this.goto(this.parseInlineList);throw this.error(new TomlError("Invalid character, expected whitespace, comma (,) or close bracket (])"))}parseInlineTable(){if(this.char===CHAR_SP||this.char===CTRL_I)return null;if(this.char===e.END||this.char===CHAR_NUM||this.char===CTRL_J||this.char===CTRL_M)throw this.error(new TomlError("Unterminated inline array"));return this.char===CHAR_RCUB?this.return(this.state.resultTable||InlineTable()):(this.state.resultTable||(this.state.resultTable=InlineTable()),this.callNow(this.parseAssign,this.recordInlineTableValue))}recordInlineTableValue(e){let t=this.state.resultTable,n=e.key.pop();for(let r of e.key){if(hasKey(t,r)&&(!isTable(t[r])||t[r][_declared]))throw this.error(new TomlError("Can't redefine existing key"));t=t[r]=t[r]||Table()}if(hasKey(t,n))throw this.error(new TomlError("Can't redefine existing key"));return isInteger(e.value)||isFloat(e.value)?t[n]=e.value.valueOf():t[n]=e.value,this.goto(this.parseInlineTableNext)}parseInlineTableNext(){if(this.char===CHAR_SP||this.char===CTRL_I)return null;if(this.char===e.END||this.char===CHAR_NUM||this.char===CTRL_J||this.char===CTRL_M)throw this.error(new TomlError("Unterminated inline array"));if(this.char===CHAR_COMMA)return this.next(this.parseInlineTablePostComma);if(this.char===CHAR_RCUB)return this.goto(this.parseInlineTable);throw this.error(new TomlError("Invalid character, expected whitespace, comma (,) or close bracket (])"))}parseInlineTablePostComma(){if(this.char===CHAR_SP||this.char===CTRL_I)return null;if(this.char===e.END||this.char===CHAR_NUM||this.char===CTRL_J||this.char===CTRL_M)throw this.error(new TomlError("Unterminated inline array"));if(this.char===CHAR_COMMA)throw this.error(new TomlError("Empty elements in inline tables are not permitted"));if(this.char!==CHAR_RCUB)return this.goto(this.parseInlineTable);throw this.error(new TomlError("Trailing commas in inline tables are not permitted"))}}return t}},90560(e,t,n){"use strict";e.exports=a;let r=n(8676),i=n(22418);function a(e,t){t||(t={});let n=0,a=t.blocksize||40960,o=new r;return new Promise((e,t)=>{setImmediate(s,n,a,e,t)});function s(t,n,r,a){if(t>=e.length)try{return r(o.finish())}catch(u){return a(i(u,e))}try{o.parse(e.slice(t,t+n)),setImmediate(s,t+n,n,r,a)}catch(c){a(i(c,e))}}}},22418(e){"use strict";function t(e,t){if(null==e.pos||null==e.line)return e;let n=e.message;if(n+=` at row ${e.line+1}, col ${e.col+1}, pos ${e.pos}: +`,t&&t.split){let r=t.split(/\n/),i=String(Math.min(r.length,e.line+3)).length,a=" ";for(;a.length "+r[o]+"\n",n+=a+" ";for(let u=0;u{let i,a=!1,o=!1;function s(){if(a=!0,!i)try{n(t.finish())}catch(e){r(e)}}function u(e){o=!0,r(e)}function c(){i=!0;let n;for(;null!==(n=e.read());)try{t.parse(n)}catch(r){return u(r)}if(i=!1,a)return s();o||e.once("readable",c)}e.once("end",s),e.once("error",u),c()})}function s(){let e=new i;return new r.Transform({objectMode:!0,transform(t,n,r){try{e.parse(t.toString(n))}catch(i){this.emit("error",i)}r()},flush(t){try{this.push(e.finish())}catch(n){this.emit("error",n)}t()}})}},56530(e,t,n){"use strict";e.exports=a;let r=n(8676),i=n(22418);function a(e){n.g.Buffer&&n.g.Buffer.isBuffer(e)&&(e=e.toString("utf8"));let t=new r;try{return t.parse(e),t.finish()}catch(a){throw i(a,e)}}},83512(e,t,n){"use strict";e.exports=n(56530),e.exports.async=n(90560),e.exports.stream=n(6435),e.exports.prettyError=n(22418)},36921(e){"use strict";function t(e){if(null===e)throw n("null");if(void 0===e)throw n("undefined");if("object"!=typeof e)throw n(typeof e);if("function"==typeof e.toJSON&&(e=e.toJSON()),null==e)return null;let t=u(e);if("table"!==t)throw n(t);return o("","",e)}function n(e){return Error("Can only stringify objects, not "+e)}function r(e){return Object.keys(e).filter(t=>s(e[t]))}function i(e){return Object.keys(e).filter(t=>!s(e[t]))}function a(e){let t=Array.isArray(e)?[]:Object.prototype.hasOwnProperty.call(e,"__proto__")?{["__proto__"]:void 0}:{};for(let n of Object.keys(e))!e[n]||"function"!=typeof e[n].toJSON||"toISOString"in e[n]?t[n]=e[n]:t[n]=e[n].toJSON();return t}function o(e,t,n){let o,s;o=r(n=a(n)),s=i(n);let l=[],f=t||"";o.forEach(e=>{var t=u(n[e]);"undefined"!==t&&"null"!==t&&l.push(f+c(e)+" = "+b(n[e],!0))}),l.length>0&&l.push("");let d=e&&o.length>0?t+" ":"";return s.forEach(t=>{l.push(S(e,d,t,n[t]))}),l.join("\n")}function s(e){switch(u(e)){case"undefined":case"null":case"integer":case"nan":case"float":case"boolean":case"string":case"datetime":return!0;case"array":return 0===e.length||"table"!==u(e[0]);case"table":return 0===Object.keys(e).length;default:return!1}}function u(e){if(void 0===e)return"undefined";if(null===e)return"null";if("bigint"==typeof e||Number.isInteger(e)&&!Object.is(e,-0))return"integer";if("number"==typeof e)return"float";if("boolean"==typeof e)return"boolean";else if("string"==typeof e)return"string";else if("toISOString"in e)return isNaN(e)?"undefined":"datetime";else if(Array.isArray(e))return"array";else return"table"}function c(e){let t=String(e);return/^[-A-Za-z0-9_]+$/.test(t)?t:l(t)}function l(e){return'"'+h(e).replace(/"/g,'\\"')+'"'}function f(e){return"'"+e+"'"}function d(e,t){for(;t.length"\\u"+d(4,e.codePointAt(0).toString(16)))}function p(e){let t=e.split(/\n/).map(e=>h(e).replace(/"(?="")/g,'\\"')).join("\n");return'"'===t.slice(-1)&&(t+="\\\n"),'"""\n'+t+'"""'}function b(e,t){let n=u(e);return"string"===n&&(t&&/\n/.test(e)?n="string-multiline":!/[\b\t\n\f\r']/.test(e)&&/"/.test(e)&&(n="string-literal")),m(e,n)}function m(e,t){switch(t||(t=u(e)),t){case"string-multiline":return p(e);case"string":return l(e);case"string-literal":return f(e);case"integer":return g(e);case"float":return v(e);case"boolean":return y(e);case"datetime":return w(e);case"array":return _(e.filter(e=>"null"!==u(e)&&"undefined"!==u(e)&&"nan"!==u(e)));case"table":return E(e);default:throw n(t)}}function g(e){return String(e).replace(/\B(?=(\d{3})+(?!\d))/g,"_")}function v(e){if(e===1/0)return"inf";if(e===-1/0)return"-inf";if(Object.is(e,NaN))return"nan";if(Object.is(e,-0))return"-0.0";let[t,n]=String(e).split(".");return g(t)+"."+n}function y(e){return String(e)}function w(e){return e.toISOString()}function _(e){e=a(e);let t="[",n=e.map(e=>m(e));return n.join(", ").length>60||/\n/.test(n)?t+="\n "+n.join(",\n ")+"\n":t+=" "+n.join(", ")+(n.length>0?" ":""),t+"]"}function E(e){e=a(e);let t=[];return Object.keys(e).forEach(n=>{t.push(c(n)+" = "+b(e[n],!1))}),"{ "+t.join(", ")+(t.length>0?" ":"")+"}"}function S(e,t,r,i){let a=u(i);if("array"===a)return k(e,t,r,i);if("table"===a)return x(e,t,r,i);throw n(a)}function k(e,t,r,i){i=a(i);let s=u(i[0]);if("table"!==s)throw n(s);let l=e+c(r),f="";return i.forEach(e=>{f.length>0&&(f+="\n"),f+=t+"[["+l+"]]\n",f+=o(l+".",t,e)}),f}function x(e,t,n,i){let a=e+c(n),s="";return r(i).length>0&&(s+=t+"["+a+"]\n"),s+o(a+".",t,i)}e.exports=t,e.exports.value=m},5022(e,t,n){"use strict";t.parse=n(83512),t.stringify=n(36921)},46515(e,t,n){"use strict";var r=n(64836);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.styles=void 0;var i=r(n(10434)),a=r(n(38416)),o=r(n(70215)),s=r(n(67294));r(n(45697));var u=r(n(94184)),c=r(n(78252)),l=n(98741),f=r(n(68821)),d=function(e){var t="light"===e.palette.type?e.palette.grey[100]:e.palette.grey[900];return{root:{display:"flex",flexDirection:"column",width:"100%",boxSizing:"border-box",zIndex:e.zIndex.appBar,flexShrink:0},positionFixed:{position:"fixed",top:0,left:"auto",right:0},positionAbsolute:{position:"absolute",top:0,left:"auto",right:0},positionSticky:{position:"sticky",top:0,left:"auto",right:0},positionStatic:{position:"static"},positionRelative:{position:"relative"},colorDefault:{backgroundColor:t,color:e.palette.getContrastText(t)},colorPrimary:{backgroundColor:e.palette.primary.main,color:e.palette.primary.contrastText},colorSecondary:{backgroundColor:e.palette.secondary.main,color:e.palette.secondary.contrastText}}};function h(e){var t,n=e.children,r=e.classes,c=e.className,d=e.color,h=e.position,p=(0,o.default)(e,["children","classes","className","color","position"]),b=(0,u.default)(r.root,r["position".concat((0,l.capitalize)(h))],(t={},(0,a.default)(t,r["color".concat((0,l.capitalize)(d))],"inherit"!==d),(0,a.default)(t,"mui-fixed","fixed"===h),t),c);return s.default.createElement(f.default,(0,i.default)({square:!0,component:"header",elevation:4,className:b},p),n)}t.styles=d,h.defaultProps={color:"primary",position:"fixed"};var p=(0,c.default)(d,{name:"MuiAppBar"})(h);t.default=p},95880(e,t,n){"use strict";var r,i=n(64836);r={value:!0},Object.defineProperty(t,"Z",{enumerable:!0,get:function(){return a.default}});var a=i(n(46515))},68477(e,t,n){"use strict";var r=n(64836);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.styles=void 0;var i=r(n(38416)),a=r(n(10434)),o=r(n(70215)),s=r(n(67294));r(n(45697));var u=r(n(94184));n(55252);var c=r(n(78252)),l=function(e){return{root:{position:"relative",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0,width:40,height:40,fontFamily:e.typography.fontFamily,fontSize:e.typography.pxToRem(20),borderRadius:"50%",overflow:"hidden",userSelect:"none"},colorDefault:{color:e.palette.background.default,backgroundColor:"light"===e.palette.type?e.palette.grey[400]:e.palette.grey[600]},img:{width:"100%",height:"100%",textAlign:"center",objectFit:"cover"}}};function f(e){var t=e.alt,n=e.children,r=e.childrenClassName,c=e.classes,l=e.className,f=e.component,d=e.imgProps,h=e.sizes,p=e.src,b=e.srcSet,m=(0,o.default)(e,["alt","children","childrenClassName","classes","className","component","imgProps","sizes","src","srcSet"]),g=null,v=p||b;return g=v?s.default.createElement("img",(0,a.default)({alt:t,src:p,srcSet:b,sizes:h,className:c.img},d)):r&&s.default.isValidElement(n)?s.default.cloneElement(n,{className:(0,u.default)(r,n.props.className)}):n,s.default.createElement(f,(0,a.default)({className:(0,u.default)(c.root,c.system,(0,i.default)({},c.colorDefault,!v),l)},m),g)}t.styles=l,f.defaultProps={component:"div"};var d=(0,c.default)(l,{name:"MuiAvatar"})(f);t.default=d},90338(e,t,n){"use strict";var r,i=n(64836);r={value:!0},Object.defineProperty(t,"Z",{enumerable:!0,get:function(){return a.default}});var a=i(n(68477))},9211(e,t,n){"use strict";var r=n(64836);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.styles=void 0;var i=r(n(10434)),a=r(n(38416)),o=r(n(70215)),s=r(n(67294));r(n(45697));var u=r(n(94184)),c=r(n(78252)),l=r(n(46408)),f={root:{zIndex:-1,position:"fixed",right:0,bottom:0,top:0,left:0,backgroundColor:"rgba(0, 0, 0, 0.5)",WebkitTapHighlightColor:"transparent",touchAction:"none"},invisible:{backgroundColor:"transparent"}};function d(e){var t=e.classes,n=e.className,r=e.invisible,c=e.open,f=e.transitionDuration,d=(0,o.default)(e,["classes","className","invisible","open","transitionDuration"]);return s.default.createElement(l.default,(0,i.default)({in:c,timeout:f},d),s.default.createElement("div",{className:(0,u.default)(t.root,(0,a.default)({},t.invisible,r),n),"aria-hidden":"true"}))}t.styles=f,d.defaultProps={invisible:!1};var h=(0,c.default)(f,{name:"MuiBackdrop"})(d);t.default=h},14983(e,t,n){"use strict";var r=n(64836);Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return i.default}});var i=r(n(9211))},84732(e,t,n){"use strict";var r=n(64836);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.styles=void 0;var i=r(n(10434)),a=r(n(38416)),o=r(n(70215)),s=r(n(67294));r(n(45697));var u=r(n(94184));n(55252);var c=r(n(78252)),l=n(98741),f=10,d=function(e){return{root:{position:"relative",display:"inline-flex",verticalAlign:"middle"},badge:{display:"flex",flexDirection:"row",flexWrap:"wrap",justifyContent:"center",alignContent:"center",alignItems:"center",position:"absolute",top:0,right:0,boxSizing:"border-box",fontFamily:e.typography.fontFamily,fontWeight:e.typography.fontWeightMedium,fontSize:e.typography.pxToRem(12),minWidth:2*f,padding:"0 4px",height:2*f,borderRadius:f,backgroundColor:e.palette.color,color:e.palette.textColor,zIndex:1,transform:"scale(1) translate(50%, -50%)",transformOrigin:"100% 0%",transition:e.transitions.create("transform",{easing:e.transitions.easing.easeInOut,duration:e.transitions.duration.enteringScreen})},colorPrimary:{backgroundColor:e.palette.primary.main,color:e.palette.primary.contrastText},colorSecondary:{backgroundColor:e.palette.secondary.main,color:e.palette.secondary.contrastText},colorError:{backgroundColor:e.palette.error.main,color:e.palette.error.contrastText},invisible:{transition:e.transitions.create("transform",{easing:e.transitions.easing.easeInOut,duration:e.transitions.duration.leavingScreen}),transform:"scale(0) translate(50%, -50%)",transformOrigin:"100% 0%"},dot:{height:6,minWidth:6,padding:0}}};function h(e){var t,n=e.badgeContent,r=e.children,c=e.classes,f=e.className,d=e.color,h=e.component,p=e.invisible,b=e.showZero,m=e.max,g=e.variant,v=(0,o.default)(e,["badgeContent","children","classes","className","color","component","invisible","showZero","max","variant"]),y=p;null!=p||0!==Number(n)||b||(y=!0);var w=(0,u.default)(c.badge,(t={},(0,a.default)(t,c["color".concat((0,l.capitalize)(d))],"default"!==d),(0,a.default)(t,c.invisible,y),(0,a.default)(t,c.dot,"dot"===g),t)),_="";return"dot"!==g&&(_=n>m?"".concat(m,"+"):n),s.default.createElement(h,(0,i.default)({className:(0,u.default)(c.root,f)},v),r,s.default.createElement("span",{className:w},_))}t.styles=d,h.defaultProps={color:"default",component:"span",max:99,showZero:!1,variant:"standard"};var p=(0,c.default)(d,{name:"MuiBadge"})(h);t.default=p},70398(e,t,n){"use strict";var r,i=n(64836);r={value:!0},Object.defineProperty(t,"Z",{enumerable:!0,get:function(){return a.default}});var a=i(n(84732))},21783(e,t,n){"use strict";var r=n(64836);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.styles=void 0;var i=r(n(38416)),a=r(n(70215)),o=r(n(10434)),s=r(n(67294));r(n(45697));var u=r(n(94184));n(55252);var c=r(n(78252)),l=n(59114),f=r(n(16070)),d=n(98741),h=function(e){return{root:(0,o.default)({lineHeight:1.75},e.typography.button,{boxSizing:"border-box",minWidth:64,padding:"6px 16px",borderRadius:e.shape.borderRadius,color:e.palette.text.primary,transition:e.transitions.create(["background-color","box-shadow","border"],{duration:e.transitions.duration.short}),"&:hover":{textDecoration:"none",backgroundColor:(0,l.fade)(e.palette.text.primary,e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"},"&$disabled":{backgroundColor:"transparent"}},"&$disabled":{color:e.palette.action.disabled}}),label:{width:"100%",display:"inherit",alignItems:"inherit",justifyContent:"inherit"},text:{padding:"6px 8px"},textPrimary:{color:e.palette.primary.main,"&:hover":{backgroundColor:(0,l.fade)(e.palette.primary.main,e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},textSecondary:{color:e.palette.secondary.main,"&:hover":{backgroundColor:(0,l.fade)(e.palette.secondary.main,e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},flat:{},flatPrimary:{},flatSecondary:{},outlined:{padding:"5px 16px",border:"1px solid ".concat("light"===e.palette.type?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)"),"&$disabled":{border:"1px solid ".concat(e.palette.action.disabled)}},outlinedPrimary:{color:e.palette.primary.main,border:"1px solid ".concat((0,l.fade)(e.palette.primary.main,.5)),"&:hover":{border:"1px solid ".concat(e.palette.primary.main),backgroundColor:(0,l.fade)(e.palette.primary.main,e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},outlinedSecondary:{color:e.palette.secondary.main,border:"1px solid ".concat((0,l.fade)(e.palette.secondary.main,.5)),"&:hover":{border:"1px solid ".concat(e.palette.secondary.main),backgroundColor:(0,l.fade)(e.palette.secondary.main,e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},"&$disabled":{border:"1px solid ".concat(e.palette.action.disabled)}},contained:{color:e.palette.getContrastText(e.palette.grey[300]),backgroundColor:e.palette.grey[300],boxShadow:e.shadows[2],"&$focusVisible":{boxShadow:e.shadows[6]},"&:active":{boxShadow:e.shadows[8]},"&$disabled":{color:e.palette.action.disabled,boxShadow:e.shadows[0],backgroundColor:e.palette.action.disabledBackground},"&:hover":{backgroundColor:e.palette.grey.A100,"@media (hover: none)":{backgroundColor:e.palette.grey[300]},"&$disabled":{backgroundColor:e.palette.action.disabledBackground}}},containedPrimary:{color:e.palette.primary.contrastText,backgroundColor:e.palette.primary.main,"&:hover":{backgroundColor:e.palette.primary.dark,"@media (hover: none)":{backgroundColor:e.palette.primary.main}}},containedSecondary:{color:e.palette.secondary.contrastText,backgroundColor:e.palette.secondary.main,"&:hover":{backgroundColor:e.palette.secondary.dark,"@media (hover: none)":{backgroundColor:e.palette.secondary.main}}},raised:{},raisedPrimary:{},raisedSecondary:{},fab:{borderRadius:"50%",padding:0,minWidth:0,width:56,height:56,boxShadow:e.shadows[6],"&:active":{boxShadow:e.shadows[12]}},extendedFab:{borderRadius:24,padding:"0 16px",width:"auto",minWidth:48,height:48},focusVisible:{},disabled:{},colorInherit:{color:"inherit",borderColor:"currentColor"},mini:{width:40,height:40},sizeSmall:{padding:"4px 8px",minWidth:64,fontSize:e.typography.pxToRem(13)},sizeLarge:{padding:"8px 24px",fontSize:e.typography.pxToRem(15)},fullWidth:{width:"100%"}}};function p(e){var t,n=e.children,r=e.classes,c=e.className,l=e.color,h=e.disabled,p=e.disableFocusRipple,b=e.focusVisibleClassName,m=e.fullWidth,g=e.mini,v=e.size,y=e.variant,w=(0,a.default)(e,["children","classes","className","color","disabled","disableFocusRipple","focusVisibleClassName","fullWidth","mini","size","variant"]),_="fab"===y||"extendedFab"===y,E="contained"===y||"raised"===y,S="text"===y||"flat"===y,k=(0,u.default)(r.root,(t={},(0,i.default)(t,r.fab,_),(0,i.default)(t,r.mini,_&&g),(0,i.default)(t,r.extendedFab,"extendedFab"===y),(0,i.default)(t,r.text,S),(0,i.default)(t,r.textPrimary,S&&"primary"===l),(0,i.default)(t,r.textSecondary,S&&"secondary"===l),(0,i.default)(t,r.flat,S),(0,i.default)(t,r.flatPrimary,S&&"primary"===l),(0,i.default)(t,r.flatSecondary,S&&"secondary"===l),(0,i.default)(t,r.contained,E||_),(0,i.default)(t,r.containedPrimary,(E||_)&&"primary"===l),(0,i.default)(t,r.containedSecondary,(E||_)&&"secondary"===l),(0,i.default)(t,r.raised,E||_),(0,i.default)(t,r.raisedPrimary,(E||_)&&"primary"===l),(0,i.default)(t,r.raisedSecondary,(E||_)&&"secondary"===l),(0,i.default)(t,r.outlined,"outlined"===y),(0,i.default)(t,r.outlinedPrimary,"outlined"===y&&"primary"===l),(0,i.default)(t,r.outlinedSecondary,"outlined"===y&&"secondary"===l),(0,i.default)(t,r["size".concat((0,d.capitalize)(v))],"medium"!==v),(0,i.default)(t,r.disabled,h),(0,i.default)(t,r.fullWidth,m),(0,i.default)(t,r.colorInherit,"inherit"===l),t),c);return s.default.createElement(f.default,(0,o.default)({className:k,disabled:h,focusRipple:!p,focusVisibleClassName:(0,u.default)(r.focusVisible,b)},w),s.default.createElement("span",{className:r.label},n))}t.styles=h,p.defaultProps={color:"default",component:"button",disabled:!1,disableFocusRipple:!1,fullWidth:!1,mini:!1,size:"medium",type:"button",variant:"text"};var b=(0,c.default)(h,{name:"MuiButton"})(p);t.default=b},83638(e,t,n){"use strict";var r=n(64836);Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return i.default}});var i=r(n(21783))},74610(e,t,n){"use strict";var r=n(64836);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.styles=void 0;var i=r(n(10434)),a=r(n(38416)),o=r(n(70215)),s=r(n(56690)),u=r(n(89728)),c=r(n(94993)),l=r(n(73808)),f=r(n(61655)),d=r(n(66115)),h=r(n(67294));r(n(45697));var p=r(n(73935)),b=r(n(94184));n(55252);var m=r(n(62614)),g=r(n(78252)),v=r(n(78582)),y=n(32252),w=r(n(65406)),_=r(n(83673)),E={root:{display:"inline-flex",alignItems:"center",justifyContent:"center",position:"relative",WebkitTapHighlightColor:"transparent",backgroundColor:"transparent",outline:"none",border:0,margin:0,borderRadius:0,padding:0,cursor:"pointer",userSelect:"none",verticalAlign:"middle","-moz-appearance":"none","-webkit-appearance":"none",textDecoration:"none",color:"inherit","&::-moz-focus-inner":{borderStyle:"none"},"&$disabled":{pointerEvents:"none",cursor:"default"}},disabled:{},focusVisible:{}};t.styles=E;var S=function(e){function t(){(0,s.default)(this,t);for(var e,n,r=arguments.length,i=Array(r),a=0;a0&&void 0!==arguments[0]?arguments[0]:{},o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},s=arguments.length>2?arguments[2]:void 0,u=o.pulsate,c=void 0!==u&&u,l=o.center,f=void 0===l?n.props.center||o.pulsate:l,h=o.fakeElement,b=void 0!==h&&h;if("mousedown"===a.type&&n.ignoringMouseDown){n.ignoringMouseDown=!1;return}"touchstart"===a.type&&(n.ignoringMouseDown=!0);var m=b?null:p.default.findDOMNode((0,d.default)((0,d.default)(n))),g=m?m.getBoundingClientRect():{width:0,height:0,left:0,top:0};if(!f&&(0!==a.clientX||0!==a.clientY)&&(a.clientX||a.touches)){var v=a.clientX?a.clientX:a.touches[0].clientX,y=a.clientY?a.clientY:a.touches[0].clientY;t=Math.round(v-g.left),r=Math.round(y-g.top)}else t=Math.round(g.width/2),r=Math.round(g.height/2);if(f)(i=Math.sqrt((2*Math.pow(g.width,2)+Math.pow(g.height,2))/3))%2==0&&(i+=1);else{i=Math.sqrt(Math.pow(2*Math.max(Math.abs((m?m.clientWidth:0)-t),t)+2,2)+Math.pow(2*Math.max(Math.abs((m?m.clientHeight:0)-r),r)+2,2))}a.touches?(n.startTimerCommit=function(){n.startCommit({pulsate:c,rippleX:t,rippleY:r,rippleSize:i,cb:s})},n.startTimer=setTimeout(function(){n.startTimerCommit&&(n.startTimerCommit(),n.startTimerCommit=null)},w)):n.startCommit({pulsate:c,rippleX:t,rippleY:r,rippleSize:i,cb:s})},n.startCommit=function(e){var t=e.pulsate,r=e.rippleX,i=e.rippleY,a=e.rippleSize,s=e.cb;n.setState(function(e){return{nextKey:e.nextKey+1,ripples:[].concat((0,o.default)(e.ripples),[h.default.createElement(v.default,{key:e.nextKey,classes:n.props.classes,timeout:{exit:y,enter:y},pulsate:t,rippleX:r,rippleY:i,rippleSize:a})])}},s)},n.stop=function(e,t){clearTimeout(n.startTimer);var r=n.state.ripples;if("touchend"===e.type&&n.startTimerCommit){e.persist(),n.startTimerCommit(),n.startTimerCommit=null,n.startTimer=setTimeout(function(){n.stop(e,t)});return}n.startTimerCommit=null,r&&r.length&&n.setState({ripples:r.slice(1)},t)},n}return(0,f.default)(t,e),(0,u.default)(t,[{key:"componentWillUnmount",value:function(){clearTimeout(this.startTimer)}},{key:"render",value:function(){var e=this.props,t=(e.center,e.classes),n=e.className,r=(0,a.default)(e,["center","classes","className"]);return h.default.createElement(b.default,(0,i.default)({component:"span",enter:!0,exit:!0,className:(0,m.default)(t.root,n)},r),this.state.ripples)}}]),t}(h.default.PureComponent);E.defaultProps={center:!1};var S=(0,g.default)(_,{flip:!1,name:"MuiTouchRipple"})(E);t.default=S},83673(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=function(e,t,n,r){return function(i){r&&r.call(e,i);var a=!1;return i.defaultPrevented&&(a=!0),e.props.disableTouchRipple&&"Blur"!==t&&(a=!0),!a&&e.ripple&&e.ripple[n](i),"function"==typeof e.props["on".concat(t)]&&e.props["on".concat(t)](i),!0}};"undefined"==typeof window&&(n=function(){return function(){}});var r=n;t.default=r},32252(e,t,n){"use strict";var r=n(64836);Object.defineProperty(t,"__esModule",{value:!0}),t.detectFocusVisible=s,t.listenForFocusKeys=f,r(n(42473));var i=r(n(16143)),a={focusKeyPressed:!1,keyUpEventTimeout:-1};function o(e){for(var t=e.activeElement;t&&t.shadowRoot&&t.shadowRoot.activeElement;)t=t.shadowRoot.activeElement;return t}function s(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;e.focusVisibleTimeout=setTimeout(function(){var u=(0,i.default)(t),c=o(u);a.focusKeyPressed&&(c===t||t.contains(c))?n():r-1}var l=function(e){c(e)&&(a.focusKeyPressed=!0,clearTimeout(a.keyUpEventTimeout),a.keyUpEventTimeout=setTimeout(function(){a.focusKeyPressed=!1},500))};function f(e){e.addEventListener("keyup",l)}},16070(e,t,n){"use strict";var r=n(64836);Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return i.default}});var i=r(n(74610))},46003(e,t,n){"use strict";var r=n(64836);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.styles=void 0;var i=r(n(10434)),a=r(n(70215)),o=r(n(67294));r(n(45697));var s=r(n(94184)),u=r(n(68821)),c=r(n(78252)),l={root:{overflow:"hidden"}};function f(e){var t=e.classes,n=e.className,r=e.raised,c=(0,a.default)(e,["classes","className","raised"]);return o.default.createElement(u.default,(0,i.default)({className:(0,s.default)(t.root,n),elevation:r?8:1},c))}t.styles=l,f.defaultProps={raised:!1};var d=(0,c.default)(l,{name:"MuiCard"})(f);t.default=d},82204(e,t,n){"use strict";var r,i=n(64836);r={value:!0},Object.defineProperty(t,"Z",{enumerable:!0,get:function(){return a.default}});var a=i(n(46003))},5780(e,t,n){"use strict";var r=n(64836);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.styles=void 0;var i=r(n(10434)),a=r(n(70215)),o=r(n(67294));r(n(45697));var s=r(n(94184));n(55252);var u=r(n(78252)),c={root:{padding:16,"&:last-child":{paddingBottom:24}}};function l(e){var t=e.classes,n=e.className,r=e.component,u=(0,a.default)(e,["classes","className","component"]);return o.default.createElement(r,(0,i.default)({className:(0,s.default)(t.root,n)},u))}t.styles=c,l.defaultProps={component:"div"};var f=(0,u.default)(c,{name:"MuiCardContent"})(l);t.default=f},30060(e,t,n){"use strict";var r,i=n(64836);r={value:!0},Object.defineProperty(t,"Z",{enumerable:!0,get:function(){return a.default}});var a=i(n(5780))},50704(e,t,n){"use strict";var r=n(64836);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.styles=void 0;var i=r(n(10434)),a=r(n(70215)),o=r(n(67294));r(n(45697));var s=r(n(94184));n(55252);var u=r(n(78252)),c=r(n(71426)),l={root:{display:"flex",alignItems:"center",padding:16},avatar:{flex:"0 0 auto",marginRight:16},action:{flex:"0 0 auto",alignSelf:"flex-start",marginTop:-8,marginRight:-8},content:{flex:"1 1 auto"},title:{},subheader:{}};function f(e){var t=e.action,n=e.avatar,r=e.classes,u=e.className,l=e.component,f=e.disableTypography,d=e.subheader,h=e.subheaderTypographyProps,p=e.title,b=e.titleTypographyProps,m=(0,a.default)(e,["action","avatar","classes","className","component","disableTypography","subheader","subheaderTypographyProps","title","titleTypographyProps"]),g=p;null==g||g.type===c.default||f||(g=o.default.createElement(c.default,(0,i.default)({variant:n?"body2":"headline",internalDeprecatedVariant:!0,className:r.title,component:"span"},b),g));var v=d;return null==v||v.type===c.default||f||(v=o.default.createElement(c.default,(0,i.default)({variant:n?"body2":"body1",className:r.subheader,color:"textSecondary",component:"span"},h),v)),o.default.createElement(l,(0,i.default)({className:(0,s.default)(r.root,u)},m),n&&o.default.createElement("div",{className:r.avatar},n),o.default.createElement("div",{className:r.content},g,v),t&&o.default.createElement("div",{className:r.action},t))}t.styles=l,f.defaultProps={component:"div",disableTypography:!1};var d=(0,u.default)(l,{name:"MuiCardHeader"})(f);t.default=d},52658(e,t,n){"use strict";var r,i=n(64836);r={value:!0},Object.defineProperty(t,"Z",{enumerable:!0,get:function(){return a.default}});var a=i(n(50704))},82811(e,t,n){"use strict";var r=n(64836);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.styles=void 0;var i=r(n(10434)),a=r(n(38416)),o=r(n(70215)),s=r(n(67294));r(n(45697));var u=r(n(94184)),c=r(n(85609)),l=r(n(42159)),f=r(n(41549)),d=r(n(61486)),h=n(98741),p=r(n(78252)),b=function(e){return{root:{color:e.palette.text.secondary},checked:{},disabled:{},indeterminate:{},colorPrimary:{"&$checked":{color:e.palette.primary.main},"&$disabled":{color:e.palette.action.disabled}},colorSecondary:{"&$checked":{color:e.palette.secondary.main},"&$disabled":{color:e.palette.action.disabled}}}};function m(e){var t=e.checkedIcon,n=e.classes,r=e.className,l=e.color,f=e.icon,d=e.indeterminate,p=e.indeterminateIcon,b=e.inputProps,m=(0,o.default)(e,["checkedIcon","classes","className","color","icon","indeterminate","indeterminateIcon","inputProps"]);return s.default.createElement(c.default,(0,i.default)({type:"checkbox",checkedIcon:d?p:t,className:(0,u.default)((0,a.default)({},n.indeterminate,d),r),classes:{root:(0,u.default)(n.root,n["color".concat((0,h.capitalize)(l))]),checked:n.checked,disabled:n.disabled},inputProps:(0,i.default)({"data-indeterminate":d},b),icon:d?p:f},m))}t.styles=b,m.defaultProps={checkedIcon:s.default.createElement(f.default,null),color:"secondary",icon:s.default.createElement(l.default,null),indeterminate:!1,indeterminateIcon:s.default.createElement(d.default,null)};var g=(0,p.default)(b,{name:"MuiCheckbox"})(m);t.default=g},71209(e,t,n){"use strict";var r,i=n(64836);r={value:!0},Object.defineProperty(t,"Z",{enumerable:!0,get:function(){return a.default}});var a=i(n(82811))},16444(e,t,n){"use strict";var r=n(64836);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.styles=void 0;var i=r(n(10434)),a=r(n(38416)),o=r(n(70215)),s=r(n(56690)),u=r(n(89728)),c=r(n(94993)),l=r(n(73808)),f=r(n(61655)),d=r(n(67294));r(n(45697));var h=r(n(94184));r(n(42473)),n(55252);var p=r(n(99781)),b=r(n(78252)),m=n(59114);r(n(21677));var g=n(98741);n(68477);var v=function(e){var t=32,n="light"===e.palette.type?e.palette.grey[300]:e.palette.grey[700],r=(0,m.fade)(e.palette.text.primary,.26);return{root:{fontFamily:e.typography.fontFamily,fontSize:e.typography.pxToRem(13),display:"inline-flex",alignItems:"center",justifyContent:"center",height:t,color:e.palette.getContrastText(n),backgroundColor:n,borderRadius:t/2,whiteSpace:"nowrap",transition:e.transitions.create(["background-color","box-shadow"]),cursor:"default",outline:"none",textDecoration:"none",border:"none",padding:0,verticalAlign:"middle",boxSizing:"border-box"},colorPrimary:{backgroundColor:e.palette.primary.main,color:e.palette.primary.contrastText},colorSecondary:{backgroundColor:e.palette.secondary.main,color:e.palette.secondary.contrastText},clickable:{WebkitTapHighlightColor:"transparent",cursor:"pointer","&:hover, &:focus":{backgroundColor:(0,m.emphasize)(n,.08)},"&:active":{boxShadow:e.shadows[1],backgroundColor:(0,m.emphasize)(n,.12)}},clickableColorPrimary:{"&:hover, &:focus":{backgroundColor:(0,m.emphasize)(e.palette.primary.main,.08)},"&:active":{backgroundColor:(0,m.emphasize)(e.palette.primary.main,.12)}},clickableColorSecondary:{"&:hover, &:focus":{backgroundColor:(0,m.emphasize)(e.palette.secondary.main,.08)},"&:active":{backgroundColor:(0,m.emphasize)(e.palette.secondary.main,.12)}},deletable:{"&:focus":{backgroundColor:(0,m.emphasize)(n,.08)}},deletableColorPrimary:{"&:focus":{backgroundColor:(0,m.emphasize)(e.palette.primary.main,.2)}},deletableColorSecondary:{"&:focus":{backgroundColor:(0,m.emphasize)(e.palette.secondary.main,.2)}},outlined:{backgroundColor:"transparent",border:"1px solid ".concat("light"===e.palette.type?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)"),"$clickable&:hover, $clickable&:focus, $deletable&:focus":{backgroundColor:(0,m.fade)(e.palette.text.primary,e.palette.action.hoverOpacity)},"& $avatar":{marginLeft:-1}},outlinedPrimary:{color:e.palette.primary.main,border:"1px solid ".concat(e.palette.primary.main),"$clickable&:hover, $clickable&:focus, $deletable&:focus":{backgroundColor:(0,m.fade)(e.palette.primary.main,e.palette.action.hoverOpacity)}},outlinedSecondary:{color:e.palette.secondary.main,border:"1px solid ".concat(e.palette.secondary.main),"$clickable&:hover, $clickable&:focus, $deletable&:focus":{backgroundColor:(0,m.fade)(e.palette.secondary.main,e.palette.action.hoverOpacity)}},avatar:{marginRight:-4,width:t,height:t,color:"light"===e.palette.type?e.palette.grey[700]:e.palette.grey[300],fontSize:e.typography.pxToRem(16)},avatarColorPrimary:{color:e.palette.primary.contrastText,backgroundColor:e.palette.primary.dark},avatarColorSecondary:{color:e.palette.secondary.contrastText,backgroundColor:e.palette.secondary.dark},avatarChildren:{width:19,height:19},icon:{color:"light"===e.palette.type?e.palette.grey[700]:e.palette.grey[300],marginLeft:4,marginRight:-8},iconColorPrimary:{color:"inherit"},iconColorSecondary:{color:"inherit"},label:{display:"flex",alignItems:"center",paddingLeft:12,paddingRight:12,userSelect:"none",whiteSpace:"nowrap",cursor:"inherit"},deleteIcon:{WebkitTapHighlightColor:"transparent",color:r,cursor:"pointer",height:"auto",margin:"0 4px 0 -8px","&:hover":{color:(0,m.fade)(r,.4)}},deleteIconColorPrimary:{color:(0,m.fade)(e.palette.primary.contrastText,.7),"&:hover, &:active":{color:e.palette.primary.contrastText}},deleteIconColorSecondary:{color:(0,m.fade)(e.palette.secondary.contrastText,.7),"&:hover, &:active":{color:e.palette.secondary.contrastText}},deleteIconOutlinedColorPrimary:{color:(0,m.fade)(e.palette.primary.main,.7),"&:hover, &:active":{color:e.palette.primary.main}},deleteIconOutlinedColorSecondary:{color:(0,m.fade)(e.palette.secondary.main,.7),"&:hover, &:active":{color:e.palette.secondary.main}}}};t.styles=v;var y=function(e){function t(){(0,s.default)(this,t);for(var e,n,r=arguments.length,i=Array(r),a=0;a :last-child":{paddingRight:32},"&$expanded":{margin:"20px 0"}},expandIcon:{position:"absolute",top:"50%",right:8,transform:"translateY(-50%) rotate(0deg)",transition:e.transitions.create("transform",t),"&:hover":{backgroundColor:"transparent"},"&$expanded":{transform:"translateY(-50%) rotate(180deg)"}}}};t.styles=g;var v=function(e){function t(){(0,s.default)(this,t);for(var e,n,r=arguments.length,i=Array(r),a=0;a $item":{padding:e/2}})}),n}var b=function(e){return(0,o.default)({container:{boxSizing:"border-box",display:"flex",flexWrap:"wrap",width:"100%"},item:{boxSizing:"border-box",margin:"0"},zeroMinWidth:{minWidth:0},"direction-xs-column":{flexDirection:"column"},"direction-xs-column-reverse":{flexDirection:"column-reverse"},"direction-xs-row-reverse":{flexDirection:"row-reverse"},"wrap-xs-nowrap":{flexWrap:"nowrap"},"wrap-xs-wrap-reverse":{flexWrap:"wrap-reverse"},"align-items-xs-center":{alignItems:"center"},"align-items-xs-flex-start":{alignItems:"flex-start"},"align-items-xs-flex-end":{alignItems:"flex-end"},"align-items-xs-baseline":{alignItems:"baseline"},"align-content-xs-center":{alignContent:"center"},"align-content-xs-flex-start":{alignContent:"flex-start"},"align-content-xs-flex-end":{alignContent:"flex-end"},"align-content-xs-space-between":{alignContent:"space-between"},"align-content-xs-space-around":{alignContent:"space-around"},"justify-xs-center":{justifyContent:"center"},"justify-xs-flex-end":{justifyContent:"flex-end"},"justify-xs-space-between":{justifyContent:"space-between"},"justify-xs-space-around":{justifyContent:"space-around"},"justify-xs-space-evenly":{justifyContent:"space-evenly"}},p(e,"xs"),l.keys.reduce(function(t,n){return h(t,e,n),t},{}))};function m(e){var t,n=e.alignContent,r=e.alignItems,c=e.classes,l=e.className,f=e.component,d=e.container,h=e.direction,p=e.item,b=e.justify,g=e.lg,v=e.md,y=e.sm,w=e.spacing,_=e.wrap,E=e.xl,S=e.xs,k=e.zeroMinWidth,x=(0,a.default)(e,["alignContent","alignItems","classes","className","component","container","direction","item","justify","lg","md","sm","spacing","wrap","xl","xs","zeroMinWidth"]),T=(0,u.default)((t={},(0,i.default)(t,c.container,d),(0,i.default)(t,c.item,p),(0,i.default)(t,c.zeroMinWidth,k),(0,i.default)(t,c["spacing-xs-".concat(String(w))],d&&0!==w),(0,i.default)(t,c["direction-xs-".concat(String(h))],h!==m.defaultProps.direction),(0,i.default)(t,c["wrap-xs-".concat(String(_))],_!==m.defaultProps.wrap),(0,i.default)(t,c["align-items-xs-".concat(String(r))],r!==m.defaultProps.alignItems),(0,i.default)(t,c["align-content-xs-".concat(String(n))],n!==m.defaultProps.alignContent),(0,i.default)(t,c["justify-xs-".concat(String(b))],b!==m.defaultProps.justify),(0,i.default)(t,c["grid-xs-".concat(String(S))],!1!==S),(0,i.default)(t,c["grid-sm-".concat(String(y))],!1!==y),(0,i.default)(t,c["grid-md-".concat(String(v))],!1!==v),(0,i.default)(t,c["grid-lg-".concat(String(g))],!1!==g),(0,i.default)(t,c["grid-xl-".concat(String(E))],!1!==E),t),l);return s.default.createElement(f,(0,o.default)({className:T},x))}t.styles=b,m.defaultProps={alignContent:"stretch",alignItems:"stretch",component:"div",container:!1,direction:"row",item:!1,justify:"flex-start",lg:!1,md:!1,sm:!1,spacing:0,wrap:"wrap",xl:!1,xs:!1,zeroMinWidth:!1};var g,v=(0,c.default)(b,{name:"MuiGrid"})(m);t.default=v},39814(e,t,n){"use strict";var r,i=n(64836);r={value:!0},Object.defineProperty(t,"Z",{enumerable:!0,get:function(){return a.default}});var a=i(n(27973))},57205(e,t,n){"use strict";var r=n(64836);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(10434)),a=r(n(70215)),o=r(n(56690)),s=r(n(89728)),u=r(n(94993)),c=r(n(73808)),l=r(n(61655)),f=r(n(67294));r(n(45697));var d=r(n(60644)),h=r(n(82313)),p=n(41929);function b(e){return"scale(".concat(e,", ").concat(Math.pow(e,2),")")}var m={entering:{opacity:1,transform:b(1)},entered:{opacity:1,transform:"".concat(b(1)," translateZ(0)")}},g=function(e){function t(){(0,o.default)(this,t);for(var e,n,r=arguments.length,i=Array(r),a=0;a=Number(e.rows)&&(n=Math.min(Number(e.rowsMax)*t,n)),n=Math.max(n,t),Math.abs(this.state.height-n)>1&&this.setState({height:n}))}}},{key:"render",value:function(){var e=this.props,t=e.classes,n=e.className,r=e.defaultValue,o=(e.onChange,e.rows),s=(e.rowsMax,e.style),u=(e.textareaRef,e.value),c=(0,a.default)(e,["classes","className","defaultValue","onChange","rows","rowsMax","style","textareaRef","value"]);return f.default.createElement("div",{className:t.root},f.default.createElement(p.default,{target:"window",onResize:this.handleResize}),f.default.createElement("textarea",{"aria-hidden":"true",className:(0,d.default)(t.textarea,t.shadow),readOnly:!0,ref:this.handleRefSinglelineShadow,rows:"1",tabIndex:-1,value:""}),f.default.createElement("textarea",{"aria-hidden":"true",className:(0,d.default)(t.textarea,t.shadow),defaultValue:r,readOnly:!0,ref:this.handleRefShadow,rows:o,tabIndex:-1,value:u}),f.default.createElement("textarea",(0,i.default)({rows:o,className:(0,d.default)(t.textarea,n),defaultValue:r,value:u,onChange:this.handleChange,ref:this.handleRefInput,style:(0,i.default)({height:this.state.height},s)},c)))}}]),t}(f.default.Component);y.defaultProps={rows:1};var w=(0,b.default)(v,{name:"MuiPrivateTextarea"})(y);t.default=w},67598(e,t,n){"use strict";var r=n(64836);Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return i.default}});var i=r(n(62010))},78586(e,t){"use strict";function n(e){return null!=e&&!(Array.isArray(e)&&0===e.length)}function r(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return e&&(n(e.value)&&""!==e.value||t&&n(e.defaultValue)&&""!==e.defaultValue)}function i(e){return e.startAdornment}Object.defineProperty(t,"__esModule",{value:!0}),t.hasValue=n,t.isFilled=r,t.isAdornedStart=i},56030(e,t,n){"use strict";var r=n(64836);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.styles=void 0;var i=r(n(10434)),a=r(n(38416)),o=r(n(70215)),s=r(n(67294));r(n(45697));var u=r(n(94184)),c=r(n(58189)),l=r(n(52598)),f=r(n(78252)),d=r(n(69645)),h=function(e){return{root:{transformOrigin:"top left"},focused:{},disabled:{},error:{},required:{},formControl:{position:"absolute",left:0,top:0,transform:"translate(0, 24px) scale(1)"},marginDense:{transform:"translate(0, 21px) scale(1)"},shrink:{transform:"translate(0, 1.5px) scale(0.75)",transformOrigin:"top left"},animated:{transition:e.transitions.create(["color","transform"],{duration:e.transitions.duration.shorter,easing:e.transitions.easing.easeOut})},filled:{zIndex:1,pointerEvents:"none",transform:"translate(12px, 20px) scale(1)","&$marginDense":{transform:"translate(12px, 17px) scale(1)"},"&$shrink":{transform:"translate(12px, 10px) scale(0.75)","&$marginDense":{transform:"translate(12px, 7px) scale(0.75)"}}},outlined:{zIndex:1,pointerEvents:"none",transform:"translate(14px, 20px) scale(1)","&$marginDense":{transform:"translate(14px, 17px) scale(1)"},"&$shrink":{transform:"translate(14px, -6px) scale(0.75)"}}}};function p(e){var t,n=e.children,r=e.classes,l=e.className,f=e.disableAnimation,h=e.FormLabelClasses,p=(e.margin,e.muiFormControl),b=e.shrink,m=(e.variant,(0,o.default)(e,["children","classes","className","disableAnimation","FormLabelClasses","margin","muiFormControl","shrink","variant"])),g=b;void 0===g&&p&&(g=p.filled||p.focused||p.adornedStart);var v=(0,c.default)({props:e,muiFormControl:p,states:["margin","variant"]}),y=(0,u.default)(r.root,(t={},(0,a.default)(t,r.formControl,p),(0,a.default)(t,r.animated,!f),(0,a.default)(t,r.shrink,g),(0,a.default)(t,r.marginDense,"dense"===v.margin),(0,a.default)(t,r.filled,"filled"===v.variant),(0,a.default)(t,r.outlined,"outlined"===v.variant),t),l);return s.default.createElement(d.default,(0,i.default)({"data-shrink":g,className:y,classes:(0,i.default)({focused:r.focused,disabled:r.disabled,error:r.error,required:r.required},h)},m),n)}t.styles=h,p.defaultProps={disableAnimation:!1};var b=(0,f.default)(h,{name:"MuiInputLabel"})((0,l.default)(p));t.default=b},23153(e,t,n){"use strict";var r=n(64836);Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return i.default}});var i=r(n(56030))},46616(e,t,n){"use strict";var r=n(64836);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.styles=void 0;var i=r(n(10434)),a=r(n(38416)),o=r(n(70215)),s=r(n(67294));r(n(45697));var u=r(n(94184));r(n(42473));var c=r(n(78252)),l=n(59114),f=4,d=function(e){return{root:{position:"relative",overflow:"hidden",height:4},colorPrimary:{backgroundColor:(0,l.lighten)(e.palette.primary.light,.6)},colorSecondary:{backgroundColor:(0,l.lighten)(e.palette.secondary.light,.4)},determinate:{},indeterminate:{},buffer:{backgroundColor:"transparent"},query:{transform:"rotate(180deg)"},dashed:{position:"absolute",marginTop:0,height:"100%",width:"100%",animation:"buffer 3s infinite linear",animationName:"$buffer"},dashedColorPrimary:{backgroundImage:"radial-gradient(".concat((0,l.lighten)(e.palette.primary.light,.6)," 0%, ").concat((0,l.lighten)(e.palette.primary.light,.6)," 16%, transparent 42%)"),backgroundSize:"10px 10px",backgroundPosition:"0px -23px"},dashedColorSecondary:{backgroundImage:"radial-gradient(".concat((0,l.lighten)(e.palette.secondary.light,.4)," 0%, ").concat((0,l.lighten)(e.palette.secondary.light,.6)," 16%, transparent 42%)"),backgroundSize:"10px 10px",backgroundPosition:"0px -23px"},bar:{width:"100%",position:"absolute",left:0,bottom:0,top:0,transition:"transform 0.2s linear",transformOrigin:"left"},barColorPrimary:{backgroundColor:e.palette.primary.main},barColorSecondary:{backgroundColor:e.palette.secondary.main},bar1Indeterminate:{width:"auto",animation:"mui-indeterminate1 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite",animationName:"$mui-indeterminate1"},bar1Determinate:{transition:"transform .".concat(f,"s linear")},bar1Buffer:{zIndex:1,transition:"transform .".concat(f,"s linear")},bar2Indeterminate:{width:"auto",animation:"mui-indeterminate2 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite",animationName:"$mui-indeterminate2",animationDelay:"1.15s"},bar2Buffer:{transition:"transform .".concat(f,"s linear")},"@keyframes mui-indeterminate1":{"0%":{left:"-35%",right:"100%"},"60%":{left:"100%",right:"-90%"},"100%":{left:"100%",right:"-90%"}},"@keyframes mui-indeterminate2":{"0%":{left:"-200%",right:"100%"},"60%":{left:"107%",right:"-8%"},"100%":{left:"107%",right:"-8%"}},"@keyframes buffer":{"0%":{opacity:1,backgroundPosition:"0px -23px"},"50%":{opacity:0,backgroundPosition:"0px -23px"},"100%":{opacity:1,backgroundPosition:"-200px -23px"}}}};function h(e){var t,n,r,c,l=e.classes,f=e.className,d=e.color,h=e.value,p=e.valueBuffer,b=e.variant,m=(0,o.default)(e,["classes","className","color","value","valueBuffer","variant"]),g=(0,u.default)(l.root,(t={},(0,a.default)(t,l.colorPrimary,"primary"===d),(0,a.default)(t,l.colorSecondary,"secondary"===d),(0,a.default)(t,l.determinate,"determinate"===b),(0,a.default)(t,l.indeterminate,"indeterminate"===b),(0,a.default)(t,l.buffer,"buffer"===b),(0,a.default)(t,l.query,"query"===b),t),f),v=(0,u.default)(l.dashed,(n={},(0,a.default)(n,l.dashedColorPrimary,"primary"===d),(0,a.default)(n,l.dashedColorSecondary,"secondary"===d),n)),y=(0,u.default)(l.bar,(r={},(0,a.default)(r,l.barColorPrimary,"primary"===d),(0,a.default)(r,l.barColorSecondary,"secondary"===d),(0,a.default)(r,l.bar1Indeterminate,"indeterminate"===b||"query"===b),(0,a.default)(r,l.bar1Determinate,"determinate"===b),(0,a.default)(r,l.bar1Buffer,"buffer"===b),r)),w=(0,u.default)(l.bar,(c={},(0,a.default)(c,l.barColorPrimary,"primary"===d&&"buffer"!==b),(0,a.default)(c,l.colorPrimary,"primary"===d&&"buffer"===b),(0,a.default)(c,l.barColorSecondary,"secondary"===d&&"buffer"!==b),(0,a.default)(c,l.colorSecondary,"secondary"===d&&"buffer"===b),(0,a.default)(c,l.bar2Indeterminate,"indeterminate"===b||"query"===b),(0,a.default)(c,l.bar2Buffer,"buffer"===b),c)),_={},E={bar1:{},bar2:{}};return("determinate"===b||"buffer"===b)&&void 0!==h&&(_["aria-valuenow"]=Math.round(h),E.bar1.transform="scaleX(".concat(h/100,")")),"buffer"===b&&void 0!==p&&(E.bar2.transform="scaleX(".concat((p||0)/100,")")),s.default.createElement("div",(0,i.default)({className:g,role:"progressbar"},_,m),"buffer"===b?s.default.createElement("div",{className:v}):null,s.default.createElement("div",{className:y,style:E.bar1}),"determinate"===b?null:s.default.createElement("div",{className:w,style:E.bar2}))}t.styles=d,h.defaultProps={color:"primary",variant:"indeterminate"};var p=(0,c.default)(d,{name:"MuiLinearProgress"})(h);t.default=p},79424(e,t,n){"use strict";var r,i=n(64836);r={value:!0},Object.defineProperty(t,"Z",{enumerable:!0,get:function(){return a.default}});var a=i(n(46616))},74080(e,t,n){"use strict";var r=n(64836);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.styles=void 0;var i=r(n(10434)),a=r(n(38416)),o=r(n(70215)),s=r(n(67294));r(n(45697));var u=r(n(94184));n(55252);var c=r(n(78252)),l=r(n(47457)),f={root:{listStyle:"none",margin:0,padding:0,position:"relative"},padding:{paddingTop:8,paddingBottom:8},dense:{paddingTop:4,paddingBottom:4},subheader:{paddingTop:0}};function d(e){var t,n=e.children,r=e.classes,c=e.className,f=e.component,d=e.dense,h=e.disablePadding,p=e.subheader,b=(0,o.default)(e,["children","classes","className","component","dense","disablePadding","subheader"]);return s.default.createElement(f,(0,i.default)({className:(0,u.default)(r.root,(t={},(0,a.default)(t,r.dense,d&&!h),(0,a.default)(t,r.padding,!h),(0,a.default)(t,r.subheader,p),t),c)},b),s.default.createElement(l.default.Provider,{value:{dense:d}},p,n))}t.styles=f,d.defaultProps={component:"ul",dense:!1,disablePadding:!1};var h=(0,c.default)(f,{name:"MuiList"})(d);t.default=h},47457(e,t,n){"use strict";var r=n(64836);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(67294)).default.createContext({});t.default=i},3022(e,t,n){"use strict";var r=n(64836);Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return i.default}});var i=r(n(74080))},29936(e,t,n){"use strict";var r=n(64836);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.styles=void 0;var i=r(n(10434)),a=r(n(38416)),o=r(n(70215)),s=r(n(67294));r(n(45697));var u=r(n(94184));n(55252);var c=r(n(78252)),l=r(n(16070)),f=n(44370),d=r(n(671)),h=function(e){return{root:{display:"flex",justifyContent:"flex-start",alignItems:"center",position:"relative",textDecoration:"none",width:"100%",boxSizing:"border-box",textAlign:"left",paddingTop:11,paddingBottom:11,"&$selected, &$selected:hover, &$selected:focus":{backgroundColor:e.palette.action.selected}},container:{position:"relative"},focusVisible:{},default:{},dense:{paddingTop:8,paddingBottom:8},alignItemsFlexStart:{alignItems:"flex-start"},disabled:{opacity:.5},divider:{borderBottom:"1px solid ".concat(e.palette.divider),backgroundClip:"padding-box"},gutters:{paddingLeft:16,paddingRight:16},button:{transition:e.transitions.create("background-color",{duration:e.transitions.duration.shortest}),"&:hover":{textDecoration:"none",backgroundColor:e.palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},"&:focus":{backgroundColor:e.palette.action.hover}},secondaryAction:{paddingRight:32},selected:{}}};function p(e){var t=e.alignItems,n=e.button,r=e.children,c=e.classes,h=e.className,p=e.component,b=e.ContainerComponent,m=e.ContainerProps,g=(m=void 0===m?{}:m).className,v=(0,o.default)(m,["className"]),y=e.dense,w=e.disabled,_=e.disableGutters,E=e.divider,S=e.focusVisibleClassName,k=e.selected,x=(0,o.default)(e,["alignItems","button","children","classes","className","component","ContainerComponent","ContainerProps","dense","disabled","disableGutters","divider","focusVisibleClassName","selected"]);return s.default.createElement(d.default,{dense:y,alignItems:t},function(e){var o,d=e.dense,m=s.default.Children.toArray(r),y=m.some(function(e){return(0,f.isMuiElement)(e,["ListItemAvatar"])}),T=m.length&&(0,f.isMuiElement)(m[m.length-1],["ListItemSecondaryAction"]),M=(0,u.default)(c.root,c.default,(o={},(0,a.default)(o,c.dense,d||y),(0,a.default)(o,c.gutters,!_),(0,a.default)(o,c.divider,E),(0,a.default)(o,c.disabled,w),(0,a.default)(o,c.button,n),(0,a.default)(o,c.alignItemsFlexStart,"flex-start"===t),(0,a.default)(o,c.secondaryAction,T),(0,a.default)(o,c.selected,k),o),h),O=(0,i.default)({className:M,disabled:w},x),A=p||"li";return(n&&(O.component=p||"div",O.focusVisibleClassName=(0,u.default)(c.focusVisible,S),A=l.default),T)?(A=O.component||p?A:"div","li"===b&&("li"===A?A="div":"li"===O.component&&(O.component="div")),s.default.createElement(b,(0,i.default)({className:(0,u.default)(c.container,g)},v),s.default.createElement(A,O,m),m.pop())):s.default.createElement(A,O,m)})}t.styles=h,p.defaultProps={alignItems:"center",button:!1,ContainerComponent:"li",dense:!1,disabled:!1,disableGutters:!1,divider:!1,selected:!1};var b=(0,c.default)(h,{name:"MuiListItem"})(p);t.default=b},671(e,t,n){"use strict";var r=n(64836);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(67294));r(n(45697));var a=r(n(47457));function o(e){var t=e.alignItems,n=e.children,r=e.dense;return i.default.createElement(a.default.Consumer,null,function(e){var o={dense:r||e.dense||!1,alignItems:t};return i.default.createElement(a.default.Provider,{value:o},n(o))})}var s=o;t.default=s},60323(e,t,n){"use strict";var r=n(64836);Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return i.default}});var i=r(n(29936))},69394(e,t,n){"use strict";var r=n(64836);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.styles=void 0;var i=r(n(10434)),a=r(n(70215)),o=r(n(67294));r(n(45697));var s=r(n(94184)),u=r(n(78252)),c=function(e){return{root:{marginRight:16,color:e.palette.action.active,flexShrink:0,display:"inline-flex"}}};function l(e){var t=e.children,n=e.classes,r=e.className,u=(0,a.default)(e,["children","classes","className"]);return o.default.createElement("div",(0,i.default)({className:(0,s.default)(n.root,r)},u),t)}t.styles=c;var f=(0,u.default)(c,{name:"MuiListItemIcon"})(l);t.default=f},11186(e,t,n){"use strict";var r,i=n(64836);r={value:!0},Object.defineProperty(t,"Z",{enumerable:!0,get:function(){return a.default}});var a=i(n(69394))},73390(e,t,n){"use strict";var r=n(64836);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.styles=void 0;var i=r(n(10434)),a=r(n(38416)),o=r(n(70215)),s=r(n(67294));r(n(45697));var u=r(n(94184)),c=r(n(78252)),l=r(n(71426)),f=r(n(47457)),d=function(e){return{root:{flex:"1 1 auto",minWidth:0,padding:"0 16px","&:first-child":{paddingLeft:0}},inset:{"&:first-child":{paddingLeft:56}},dense:{fontSize:e.typography.pxToRem(13)},primary:{"&$textDense":{fontSize:"inherit"}},secondary:{"&$textDense":{fontSize:"inherit"}},textDense:{}}};function h(e){var t=e.children,n=e.classes,r=e.className,c=e.disableTypography,d=e.inset,h=e.primary,p=e.primaryTypographyProps,b=e.secondary,m=e.secondaryTypographyProps,g=e.theme,v=(0,o.default)(e,["children","classes","className","disableTypography","inset","primary","primaryTypographyProps","secondary","secondaryTypographyProps","theme"]);return s.default.createElement(f.default.Consumer,null,function(e){var o,f=e.dense,y=null!=h?h:t;null==y||y.type===l.default||c||(y=s.default.createElement(l.default,(0,i.default)({variant:g.typography.useNextVariants?"body1":"subheading",className:(0,u.default)(n.primary,(0,a.default)({},n.textDense,f)),component:"span"},p),y));var w=b;return null==w||w.type===l.default||c||(w=s.default.createElement(l.default,(0,i.default)({className:(0,u.default)(n.secondary,(0,a.default)({},n.textDense,f)),color:"textSecondary"},m),w)),s.default.createElement("div",(0,i.default)({className:(0,u.default)(n.root,(o={},(0,a.default)(o,n.dense,f),(0,a.default)(o,n.inset,d),o),r)},v),y,w)})}t.styles=d,h.defaultProps={disableTypography:!1,inset:!1};var p=(0,c.default)(d,{name:"MuiListItemText",withTheme:!0})(h);t.default=p},87591(e,t,n){"use strict";var r,i=n(64836);r={value:!0},Object.defineProperty(t,"Z",{enumerable:!0,get:function(){return a.default}});var a=i(n(73390))},95890(e,t,n){"use strict";var r=n(64836);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.styles=void 0;var i=r(n(10434)),a=r(n(70215)),o=r(n(56690)),s=r(n(89728)),u=r(n(94993)),c=r(n(73808)),l=r(n(61655)),f=r(n(67294));r(n(45697));var d=r(n(73935)),h=r(n(44825)),p=r(n(78252)),b=r(n(50810)),m=r(n(34980)),g={vertical:"top",horizontal:"right"},v={vertical:"top",horizontal:"left"},y={paper:{maxHeight:"calc(100% - 96px)",WebkitOverflowScrolling:"touch"}};t.styles=y;var w=function(e){function t(){(0,o.default)(this,t);for(var e,n,r=arguments.length,i=Array(r),a=0;a=0?t.children[e].focus():t.firstChild.focus())}},{key:"resetTabIndex",value:function(){for(var e=this.listRef,t=(0,h.default)(e).activeElement,n=[],r=0;r0&&void 0!==arguments[0]?arguments[0]:{};(0,i.default)(this,e);var n=t.hideSiblingNodes,r=void 0===n||n,a=t.handleContainerOverflow,o=void 0===a||a;this.hideSiblingNodes=r,this.handleContainerOverflow=o,this.modals=[],this.data=[]}return(0,a.default)(e,[{key:"add",value:function(e,t){var n=this.modals.indexOf(e);if(-1!==n)return n;n=this.modals.length,this.modals.push(e),e.modalRef&&(0,l.ariaHidden)(e.modalRef,!1),this.hideSiblingNodes&&(0,l.ariaHiddenSiblings)(t,e.mountNode,e.modalRef,!0);var r=f(this.data,function(e){return e.container===t});if(-1!==r)return this.data[r].modals.push(e),n;var i={modals:[e],container:t,overflowing:(0,c.default)(t),prevPaddings:[]};return this.data.push(i),n}},{key:"mount",value:function(e){var t=f(this.data,function(t){return -1!==t.modals.indexOf(e)}),n=this.data[t];!n.style&&this.handleContainerOverflow&&h(n)}},{key:"remove",value:function(e){var t=this.modals.indexOf(e);if(-1===t)return t;var n=f(this.data,function(t){return -1!==t.modals.indexOf(e)}),r=this.data[n];if(r.modals.splice(r.modals.indexOf(e),1),this.modals.splice(t,1),0===r.modals.length)this.handleContainerOverflow&&p(r),e.modalRef&&(0,l.ariaHidden)(e.modalRef,!0),this.hideSiblingNodes&&(0,l.ariaHiddenSiblings)(r.container,e.mountNode,e.modalRef,!1),this.data.splice(n,1);else if(this.hideSiblingNodes){var i=r.modals[r.modals.length-1];i.modalRef&&(0,l.ariaHidden)(i.modalRef,!1)}return t}},{key:"isTopModal",value:function(e){return!!this.modals.length&&this.modals[this.modals.length-1]===e}}]),e}();t.default=b},55536(e,t,n){"use strict";var r=n(64836);Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return i.default}}),Object.defineProperty(t,"ModalManager",{enumerable:!0,get:function(){return a.default}});var i=r(n(58228)),a=r(n(2158))},16575(e,t,n){"use strict";var r=n(64836);Object.defineProperty(t,"__esModule",{value:!0}),t.isBody=s,t.default=u;var i=r(n(7624)),a=r(n(16143)),o=r(n(62614));function s(e){return e&&"body"===e.tagName.toLowerCase()}function u(e){var t=(0,a.default)(e),n=(0,o.default)(t);if(!(0,i.default)(t)&&!s(e))return e.scrollHeight>e.clientHeight;var r=n.getComputedStyle(t.body),u=parseInt(r.getPropertyValue("margin-left"),10),c=parseInt(r.getPropertyValue("margin-right"),10);return u+t.body.clientWidth+c0?.75*r+8:0;return s.default.createElement("fieldset",(0,a.default)({"aria-hidden":!0,style:(0,a.default)((0,i.default)({},"padding".concat((0,l.capitalize)(p)),8+(c?0:b/2)),f),className:(0,u.default)(t.root,n)},h),s.default.createElement("legend",{className:t.legend,style:{width:c?b:.01}},s.default.createElement("span",{dangerouslySetInnerHTML:{__html:"​"}})))}t.styles=f;var h=(0,c.withStyles)(f,{name:"MuiPrivateNotchedOutline",withTheme:!0})(d);t.default=h},96405(e,t,n){"use strict";var r=n(64836);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.styles=void 0;var i=r(n(10434)),a=r(n(70215)),o=r(n(67294));r(n(45697));var s=r(n(94184));n(55252);var u=r(n(67598)),c=r(n(21142)),l=r(n(78252)),f=function(e){var t="light"===e.palette.type?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)";return{root:{position:"relative","& $notchedOutline":{borderColor:t},"&:hover:not($disabled):not($focused):not($error) $notchedOutline":{borderColor:e.palette.text.primary,"@media (hover: none)":{borderColor:t}},"&$focused $notchedOutline":{borderColor:e.palette.primary.main,borderWidth:2},"&$error $notchedOutline":{borderColor:e.palette.error.main},"&$disabled $notchedOutline":{borderColor:e.palette.action.disabled}},focused:{},disabled:{},adornedStart:{paddingLeft:14},adornedEnd:{paddingRight:14},error:{},multiline:{padding:"18.5px 14px",boxSizing:"border-box"},notchedOutline:{},input:{padding:"18.5px 14px"},inputMarginDense:{paddingTop:15,paddingBottom:15},inputMultiline:{padding:0},inputAdornedStart:{paddingLeft:0},inputAdornedEnd:{paddingRight:0}}};function d(e){var t=e.classes,n=e.labelWidth,r=e.notched,l=(0,a.default)(e,["classes","labelWidth","notched"]);return o.default.createElement(u.default,(0,i.default)({renderPrefix:function(e){return o.default.createElement(c.default,{className:t.notchedOutline,labelWidth:n,notched:void 0!==r?r:Boolean(e.startAdornment||e.filled||e.focused)})},classes:(0,i.default)({},t,{root:(0,s.default)(t.root,t.underline),notchedOutline:null})},l))}t.styles=f,u.default.defaultProps={fullWidth:!1,inputComponent:"input",multiline:!1,type:"text"},d.muiName="Input";var h=(0,l.default)(f,{name:"MuiOutlinedInput"})(d);t.default=h},59537(e,t,n){"use strict";var r=n(64836);Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return i.default}});var i=r(n(96405))},30083(e,t,n){"use strict";var r=n(64836);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.styles=void 0;var i=r(n(38416)),a=r(n(70215)),o=r(n(10434)),s=r(n(67294));r(n(45697));var u=r(n(94184));r(n(42473)),n(55252);var c=r(n(78252)),l=function(e){var t={};return e.shadows.forEach(function(e,n){t["elevation".concat(n)]={boxShadow:e}}),(0,o.default)({root:{backgroundColor:e.palette.background.paper},rounded:{borderRadius:e.shape.borderRadius}},t)};function f(e){var t=e.classes,n=e.className,r=e.component,c=e.square,l=e.elevation,f=(0,a.default)(e,["classes","className","component","square","elevation"]),d=(0,u.default)(t.root,t["elevation".concat(l)],(0,i.default)({},t.rounded,!c),n);return s.default.createElement(r,(0,o.default)({className:d},f))}t.styles=l,f.defaultProps={component:"div",elevation:2,square:!1};var d=(0,c.default)(l,{name:"MuiPaper"})(f);t.default=d},68821(e,t,n){"use strict";var r=n(64836);Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return i.default}});var i=r(n(30083))},64224(e,t,n){"use strict";var r=n(64836);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.styles=void 0;var i=r(n(10434)),a=r(n(70215)),o=r(n(56690)),s=r(n(89728)),u=r(n(94993)),c=r(n(73808)),l=r(n(61655)),f=r(n(67294));r(n(45697));var d=r(n(73935));r(n(42473));var h=r(n(20296)),p=r(n(96421));n(55252);var b=r(n(16143)),m=r(n(62614)),g=n(98741),v=r(n(78252)),y=r(n(55536)),w=r(n(261)),_=r(n(68821));function E(e,t){var n=0;return"number"==typeof t?n=t:"center"===t?n=e.height/2:"bottom"===t&&(n=e.height),n}function S(e,t){var n=0;return"number"==typeof t?n=t:"center"===t?n=e.width/2:"right"===t&&(n=e.width),n}function k(e){return[e.horizontal,e.vertical].map(function(e){return"number"==typeof e?"".concat(e,"px"):e}).join(" ")}function x(e,t){for(var n=t,r=0;n&&n!==e;)r+=(n=n.parentNode).scrollTop;return r}function T(e){return"function"==typeof e?e():e}var M={paper:{position:"absolute",overflowY:"auto",overflowX:"hidden",minWidth:16,minHeight:16,maxWidth:"calc(100% - 32px)",maxHeight:"calc(100% - 32px)",outline:"none"}};t.styles=M;var O=function(e){function t(){var e;return(0,o.default)(this,t),(e=(0,u.default)(this,(0,c.default)(t).call(this))).handleGetOffsetTop=E,e.handleGetOffsetLeft=S,e.componentWillUnmount=function(){e.handleResize.clear()},e.setPositioningStyles=function(t){var n=e.getPositioningStyle(t);null!==n.top&&(t.style.top=n.top),null!==n.left&&(t.style.left=n.left),t.style.transformOrigin=n.transformOrigin},e.getPositioningStyle=function(t){var n=e.props,r=n.anchorEl,i=n.anchorReference,a=n.marginThreshold,o=e.getContentAnchorOffset(t),s={width:t.offsetWidth,height:t.offsetHeight},u=e.getTransformOrigin(s,o);if("none"===i)return{top:null,left:null,transformOrigin:k(u)};var c=e.getAnchorOffset(o),l=c.top-u.vertical,f=c.left-u.horizontal,d=l+s.height,h=f+s.width,p=(0,m.default)(T(r)),b=p.innerHeight-a,g=p.innerWidth-a;if(lb){var y=d-b;l-=y,u.vertical+=y}if(fg){var _=h-g;f-=_,u.horizontal+=_}return{top:"".concat(l,"px"),left:"".concat(f,"px"),transformOrigin:k(u)}},e.handleEntering=function(t){e.props.onEntering&&e.props.onEntering(t),e.setPositioningStyles(t)},"undefined"!=typeof window&&(e.handleResize=(0,h.default)(function(){e.props.open&&e.setPositioningStyles(e.paperRef)},166)),e}return(0,l.default)(t,e),(0,s.default)(t,[{key:"componentDidMount",value:function(){this.props.action&&this.props.action({updatePosition:this.handleResize})}},{key:"getAnchorOffset",value:function(e){var t=this.props,n=t.anchorEl,r=t.anchorOrigin,i=t.anchorReference,a=t.anchorPosition;if("anchorPosition"===i)return a;var o=(T(n)||(0,b.default)(this.paperRef).body).getBoundingClientRect(),s=0===e?r.vertical:"center";return{top:o.top+this.handleGetOffsetTop(o,s),left:o.left+this.handleGetOffsetLeft(o,r.horizontal)}}},{key:"getContentAnchorOffset",value:function(e){var t=this.props,n=t.getContentAnchorEl,r=t.anchorReference,i=0;if(n&&"anchorEl"===r){var a=n(e);if(a&&e.contains(a)){var o=x(e,a);i=a.offsetTop+a.clientHeight/2-o||0}}return i}},{key:"getTransformOrigin",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=this.props.transformOrigin;return{vertical:this.handleGetOffsetTop(e,n.vertical)+t,horizontal:this.handleGetOffsetLeft(e,n.horizontal)}}},{key:"render",value:function(){var e=this,t=this.props,n=(t.action,t.anchorEl),r=(t.anchorOrigin,t.anchorPosition,t.anchorReference,t.children),o=t.classes,s=t.container,u=t.elevation,c=(t.getContentAnchorEl,t.marginThreshold,t.ModalClasses),l=t.onEnter,h=t.onEntered,m=(t.onEntering,t.onExit),v=t.onExited,w=t.onExiting,E=t.open,S=t.PaperProps,k=t.role,x=(t.transformOrigin,t.TransitionComponent),M=t.transitionDuration,O=t.TransitionProps,A=void 0===O?{}:O,L=(0,a.default)(t,["action","anchorEl","anchorOrigin","anchorPosition","anchorReference","children","classes","container","elevation","getContentAnchorEl","marginThreshold","ModalClasses","onEnter","onEntered","onEntering","onExit","onExited","onExiting","open","PaperProps","role","transformOrigin","TransitionComponent","transitionDuration","TransitionProps"]),C=M;"auto"!==M||x.muiSupportAuto||(C=void 0);var I=s||(n?(0,b.default)(T(n)).body:void 0);return f.default.createElement(y.default,(0,i.default)({classes:c,container:I,open:E,BackdropProps:{invisible:!0}},L),f.default.createElement(x,(0,i.default)({appear:!0,in:E,onEnter:l,onEntered:h,onExit:m,onExited:v,onExiting:w,role:k,timeout:C},A,{onEntering:(0,g.createChainedFunction)(this.handleEntering,A.onEntering)}),f.default.createElement(_.default,(0,i.default)({className:o.paper,elevation:u,ref:function(t){e.paperRef=d.default.findDOMNode(t)}},S),f.default.createElement(p.default,{target:"window",onResize:this.handleResize}),r)))}}]),t}(f.default.Component);O.defaultProps={anchorReference:"anchorEl",anchorOrigin:{vertical:"top",horizontal:"left"},elevation:8,marginThreshold:16,transformOrigin:{vertical:"top",horizontal:"left"},TransitionComponent:w.default,transitionDuration:"auto"};var A=(0,v.default)(M,{name:"MuiPopover"})(O);t.default=A},50810(e,t,n){"use strict";var r=n(64836);Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return i.default}});var i=r(n(64224))},24693(e,t,n){"use strict";var r=n(64836);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(70215)),a=r(n(10434)),o=r(n(56690)),s=r(n(89728)),u=r(n(94993)),c=r(n(73808)),l=r(n(61655)),f=r(n(66115)),d=r(n(67294)),h=r(n(73935));r(n(45697));var p=r(n(28981)),b=r(n(25649));function m(e){if("rtl"!==("undefined"!=typeof window&&document.body.getAttribute("dir")||"ltr"))return e;switch(e){case"bottom-end":return"bottom-start";case"bottom-start":return"bottom-end";case"top-end":return"top-start";case"top-start":return"top-end";default:return e}}function g(e){return"function"==typeof e?e():e}var v=function(e){function t(e){var n;return(0,o.default)(this,t),(n=(0,u.default)(this,(0,c.default)(t).call(this))).handleOpen=function(){var e=n.props,t=e.anchorEl,r=e.modifiers,i=e.open,o=e.placement,s=e.popperOptions,u=void 0===s?{}:s,c=e.disablePortal,l=h.default.findDOMNode((0,f.default)((0,f.default)(n)));l&&t&&i&&(n.popper&&(n.popper.destroy(),n.popper=null),n.popper=new p.default(g(t),l,(0,a.default)({placement:m(o)},u,{modifiers:(0,a.default)({},c?{}:{preventOverflow:{boundariesElement:"window"}},r,u.modifiers),onCreate:n.handlePopperUpdate,onUpdate:n.handlePopperUpdate})))},n.handlePopperUpdate=function(e){e.placement!==n.state.placement&&n.setState({placement:e.placement})},n.handleExited=function(){n.setState({exited:!0}),n.handleClose()},n.handleClose=function(){n.popper&&(n.popper.destroy(),n.popper=null)},n.state={exited:!e.open},n}return(0,l.default)(t,e),(0,s.default)(t,[{key:"componentDidUpdate",value:function(e){e.open===this.props.open||this.props.open||this.props.transition||this.handleClose(),(e.open!==this.props.open||e.anchorEl!==this.props.anchorEl||e.popperOptions!==this.props.popperOptions||e.modifiers!==this.props.modifiers||e.disablePortal!==this.props.disablePortal||e.placement!==this.props.placement)&&this.handleOpen()}},{key:"componentWillUnmount",value:function(){this.handleClose()}},{key:"render",value:function(){var e=this.props,t=(e.anchorEl,e.children),n=e.container,r=e.disablePortal,o=e.keepMounted,s=(e.modifiers,e.open),u=e.placement,c=(e.popperOptions,e.transition),l=(0,i.default)(e,["anchorEl","children","container","disablePortal","keepMounted","modifiers","open","placement","popperOptions","transition"]),f=this.state,h=f.exited,p=f.placement;if(!o&&!s&&(!c||h))return null;var g={placement:p||m(u)};return c&&(g.TransitionProps={in:s,onExited:this.handleExited}),d.default.createElement(b.default,{onRendered:this.handleOpen,disablePortal:r,container:n},d.default.createElement("div",(0,a.default)({role:"tooltip",style:{position:"absolute"}},l),"function"==typeof t?t(g):t))}}],[{key:"getDerivedStateFromProps",value:function(e){return e.open?{exited:!1}:e.transition?null:{exited:!0}}}]),t}(d.default.Component);v.defaultProps={disablePortal:!1,placement:"bottom",transition:!1};var y=v;t.default=y},60111(e,t,n){"use strict";var r=n(64836);Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return i.default}});var i=r(n(24693))},92261(e,t,n){"use strict";var r=n(64836);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(56690)),a=r(n(89728)),o=r(n(94993)),s=r(n(73808)),u=r(n(61655)),c=r(n(67294)),l=r(n(73935));r(n(45697));var f=r(n(16143));function d(e,t){return e="function"==typeof e?e():e,l.default.findDOMNode(e)||t}function h(e){return(0,f.default)(l.default.findDOMNode(e))}n(55252);var p=function(e){function t(){(0,i.default)(this,t);for(var e,n,r=arguments.length,a=Array(r),u=0;u1;n.state.labelWrapped!==e&&n.setState({labelWrapped:e})}},n}return(0,c.default)(t,e),(0,o.default)(t,[{key:"componentDidMount",value:function(){this.checkTextWrap()}},{key:"componentDidUpdate",value:function(e,t){this.state.labelWrapped===t.labelWrapped&&this.checkTextWrap()}},{key:"render",value:function(){var e,t,n=this,r=this.props,a=r.classes,o=r.className,s=r.disabled,u=r.fullWidth,c=r.icon,p=r.indicator,g=r.label,v=(r.onChange,r.selected),y=r.textColor,w=(r.value,(0,i.default)(r,["classes","className","disabled","fullWidth","icon","indicator","label","onChange","selected","textColor","value"]));return void 0!==g&&(e=d.default.createElement("span",{className:a.labelContainer},d.default.createElement("span",{className:(0,h.default)(a.label,(0,l.default)({},a.labelWrapped,this.state.labelWrapped)),ref:function(e){n.labelRef=e}},g))),d.default.createElement(b.default,(0,f.default)({focusRipple:!0,className:(0,h.default)(a.root,a["textColor".concat((0,m.capitalize)(y))],(t={},(0,l.default)(t,a.disabled,s),(0,l.default)(t,a.selected,v),(0,l.default)(t,a.labelIcon,c&&e),(0,l.default)(t,a.fullWidth,u),t),o),role:"tab","aria-selected":v,disabled:s},w,{onClick:this.handleChange}),d.default.createElement("span",{className:a.wrapper},c,e),p)}}]),t}(d.default.Component);v.defaultProps={disabled:!1,textColor:"inherit"};var y=(0,p.default)(g,{name:"MuiTab"})(v);t.default=y},75759(e,t,n){"use strict";var r,i=n(64836);r={value:!0},Object.defineProperty(t,"Z",{enumerable:!0,get:function(){return a.default}});var a=i(n(70201))},7575(e,t,n){"use strict";var r=n(64836);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.styles=void 0;var i=r(n(10434)),a=r(n(70215)),o=r(n(56690)),s=r(n(89728)),u=r(n(94993)),c=r(n(73808)),l=r(n(61655)),f=r(n(67294));r(n(45697));var d=r(n(94184));n(55252);var h=r(n(78252)),p=r(n(82577)),b=function(e){return{root:{display:"table",fontFamily:e.typography.fontFamily,width:"100%",borderCollapse:"collapse",borderSpacing:0}}};t.styles=b;var m=function(e){function t(){(0,o.default)(this,t);for(var e,n,r=arguments.length,i=Array(r),a=0;ai&&n(null,i)}},{key:"render",value:function(){var e,t=this.props,n=t.ActionsComponent,r=t.backIconButtonProps,o=t.classes,s=t.colSpan,u=t.component,c=t.count,l=t.labelDisplayedRows,d=t.labelRowsPerPage,y=t.nextIconButtonProps,w=t.onChangePage,_=t.onChangeRowsPerPage,E=t.page,S=t.rowsPerPage,k=t.rowsPerPageOptions,x=t.SelectProps,T=void 0===x?{}:x,M=(0,a.default)(t,["ActionsComponent","backIconButtonProps","classes","colSpan","component","count","labelDisplayedRows","labelRowsPerPage","nextIconButtonProps","onChangePage","onChangeRowsPerPage","page","rowsPerPage","rowsPerPageOptions","SelectProps"]);(u===m.default||"td"===u)&&(e=s||1e3);var O=T.native?"option":p.default;return f.default.createElement(u,(0,i.default)({className:o.root,colSpan:e},M),f.default.createElement(g.default,{className:o.toolbar},f.default.createElement("div",{className:o.spacer}),k.length>1&&f.default.createElement(v.default,{color:"inherit",variant:"caption",className:o.caption},d),k.length>1&&f.default.createElement(b.default,(0,i.default)({classes:{root:o.selectRoot,select:o.select,icon:o.selectIcon},input:f.default.createElement(h.default,{className:o.input}),value:S,onChange:_},T),k.map(function(e){return f.default.createElement(O,{className:o.menuItem,key:e,value:e},e)})),f.default.createElement(v.default,{color:"inherit",variant:"caption",className:o.caption},l({from:0===c?0:E*S+1,to:Math.min(c,(E+1)*S),count:c,page:E})),f.default.createElement(n,{className:o.actions,backIconButtonProps:r,count:c,nextIconButtonProps:y,onChangePage:w,page:E,rowsPerPage:S})))}}]),t}(f.default.Component);_.defaultProps={ActionsComponent:y.default,component:m.default,labelDisplayedRows:function(e){var t=e.from,n=e.to,r=e.count;return"".concat(t,"-").concat(n," of ").concat(r)},labelRowsPerPage:"Rows per page:",rowsPerPageOptions:[10,25,50,100]};var E=(0,d.default)(w,{name:"MuiTablePagination"})(_);t.default=E},32844(e,t,n){"use strict";var r=n(64836);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(10434)),a=r(n(70215)),o=r(n(56690)),s=r(n(89728)),u=r(n(94993)),c=r(n(73808)),l=r(n(61655)),f=r(n(67294));r(n(45697));var d=r(n(86861)),h=r(n(43836)),p=r(n(82313)),b=r(n(81701)),m=f.default.createElement(h.default,null),g=f.default.createElement(d.default,null),v=f.default.createElement(d.default,null),y=f.default.createElement(h.default,null),w=function(e){function t(){(0,o.default)(this,t);for(var e,n,r=arguments.length,i=Array(r),a=0;a=Math.ceil(n/s)-1,color:"inherit"},r),"rtl"===u.direction?v:y))}}]),t}(f.default.Component),_=(0,p.default)()(w);t.default=_},18217(e,t,n){"use strict";var r,i=n(64836);r={value:!0},Object.defineProperty(t,"Z",{enumerable:!0,get:function(){return a.default}});var a=i(n(71744))},86424(e,t,n){"use strict";var r=n(64836);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.styles=void 0;var i=r(n(10434)),a=r(n(38416)),o=r(n(70215)),s=r(n(67294));r(n(45697));var u=r(n(94184));n(55252);var c=r(n(78252)),l=r(n(27628)),f=function(e){return{root:{color:"inherit",display:"table-row",height:48,verticalAlign:"middle",outline:"none","&$selected":{backgroundColor:"light"===e.palette.type?"rgba(0, 0, 0, 0.04)":"rgba(255, 255, 255, 0.08)"},"&$hover:hover":{backgroundColor:"light"===e.palette.type?"rgba(0, 0, 0, 0.07)":"rgba(255, 255, 255, 0.14)"}},selected:{},hover:{},head:{height:56},footer:{height:56}}};function d(e){var t=e.classes,n=e.className,r=e.component,c=e.hover,f=e.selected,d=(0,o.default)(e,["classes","className","component","hover","selected"]);return s.default.createElement(l.default.Consumer,null,function(e){var o,l=(0,u.default)(t.root,(o={},(0,a.default)(o,t.head,e&&"head"===e.variant),(0,a.default)(o,t.footer,e&&"footer"===e.variant),(0,a.default)(o,t.hover,c),(0,a.default)(o,t.selected,f),o),n);return s.default.createElement(r,(0,i.default)({className:l},d))})}t.styles=f,d.defaultProps={component:"tr",hover:!1,selected:!1};var h=(0,c.default)(f,{name:"MuiTableRow"})(d);t.default=h},17175(e,t,n){"use strict";var r,i=n(64836);r={value:!0},Object.defineProperty(t,"Z",{enumerable:!0,get:function(){return a.default}});var a=i(n(86424))},28550(e,t,n){"use strict";var r=n(64836);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(56690)),a=r(n(89728)),o=r(n(94993)),s=r(n(73808)),u=r(n(61655)),c=r(n(67294));r(n(45697));var l,f=r(n(96421)),d=r(n(20296)),h={width:90,height:90,position:"absolute",top:-9e3,overflow:"scroll",msOverflowStyle:"scrollbar"},p=function(e){function t(){var e;return(0,i.default)(this,t),(e=(0,o.default)(this,(0,s.default)(t).call(this))).handleRef=function(t){e.nodeRef=t},e.setMeasurements=function(){var t=e.nodeRef;t&&(e.scrollbarHeight=t.offsetHeight-t.clientHeight)},"undefined"!=typeof window&&(e.handleResize=(0,d.default)(function(){var t=e.scrollbarHeight;e.setMeasurements(),t!==e.scrollbarHeight&&e.props.onChange(e.scrollbarHeight)},166)),e}return(0,u.default)(t,e),(0,a.default)(t,[{key:"componentDidMount",value:function(){this.setMeasurements(),this.props.onChange(this.scrollbarHeight)}},{key:"componentWillUnmount",value:function(){this.handleResize.clear()}},{key:"render",value:function(){return c.default.createElement(c.default.Fragment,null,c.default.createElement(f.default,{target:"window",onResize:this.handleResize}),c.default.createElement("div",{style:h,ref:this.handleRef}))}}]),t}(c.default.Component);t.default=p},12417(e,t,n){"use strict";var r=n(64836);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.styles=void 0;var i=r(n(10434)),a=r(n(70215)),o=r(n(67294));r(n(45697));var s=r(n(94184)),u=r(n(78252)),c=n(98741),l=function(e){return{root:{position:"absolute",height:2,bottom:0,width:"100%",transition:e.transitions.create()},colorPrimary:{backgroundColor:e.palette.primary.main},colorSecondary:{backgroundColor:e.palette.secondary.main}}};function f(e){var t=e.classes,n=e.className,r=e.color,u=(0,a.default)(e,["classes","className","color"]);return o.default.createElement("span",(0,i.default)({className:(0,s.default)(t.root,t["color".concat((0,c.capitalize)(r))],n)},u))}t.styles=l;var d=(0,u.default)(l,{name:"MuiPrivateTabIndicator"})(f);t.default=d},69583(e,t,n){"use strict";var r=n(64836);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.styles=void 0;var i=r(n(10434)),a=r(n(70215)),o=r(n(67294));r(n(45697));var s=r(n(94184)),u=r(n(86861)),c=r(n(43836)),l=r(n(78252)),f=r(n(16070)),d={root:{color:"inherit",width:56,flexShrink:0}};t.styles=d;var h=o.default.createElement(u.default,null),p=o.default.createElement(c.default,null);function b(e){var t=e.classes,n=e.className,r=e.direction,u=e.onClick,c=e.visible,l=(0,a.default)(e,["classes","className","direction","onClick","visible"]),d=(0,s.default)(t.root,n);return c?o.default.createElement(f.default,(0,i.default)({className:d,onClick:u,tabIndex:-1},l),"left"===r?h:p):o.default.createElement("div",{className:d})}b.defaultProps={visible:!0};var m=(0,l.default)(d,{name:"MuiPrivateTabScrollButton"})(b);t.default=m},89172(e,t,n){"use strict";var r=n(64836);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.styles=void 0;var i=r(n(10434)),a=r(n(70215)),o=r(n(56690)),s=r(n(89728)),u=r(n(94993)),c=r(n(73808)),l=r(n(61655)),f=r(n(38416)),d=r(n(67294));r(n(45697)),r(n(42473));var h=r(n(94184)),p=r(n(96421)),b=r(n(20296)),m=n(46417);n(55252);var g=r(n(13329)),v=r(n(28550)),y=r(n(78252)),w=r(n(12417)),_=r(n(69583));r(n(346));var E=function(e){return{root:{overflow:"hidden",minHeight:48,WebkitOverflowScrolling:"touch"},flexContainer:{display:"flex"},centered:{justifyContent:"center"},scroller:{position:"relative",display:"inline-block",flex:"1 1 auto",whiteSpace:"nowrap"},fixed:{overflowX:"hidden",width:"100%"},scrollable:{overflowX:"scroll"},scrollButtons:{},scrollButtonsAuto:(0,f.default)({},e.breakpoints.down("xs"),{display:"none"}),indicator:{}}};t.styles=E;var S=function(e){function t(){var e;return(0,o.default)(this,t),(e=(0,u.default)(this,(0,c.default)(t).call(this))).state={indicatorStyle:{},scrollerStyle:{marginBottom:0},showLeftScroll:!1,showRightScroll:!1,mounted:!1},e.getConditionalElements=function(){var t=e.props,n=t.classes,r=t.scrollable,i=t.ScrollButtonComponent,a=t.scrollButtons,o=t.theme,s=t.variant,u={},c="scrollable"===s||r;u.scrollbarSizeListener=c?d.default.createElement(v.default,{onChange:e.handleScrollbarSizeChange}):null;var l=c&&("auto"===a||"on"===a);return u.scrollButtonLeft=l?d.default.createElement(i,{direction:o&&"rtl"===o.direction?"right":"left",onClick:e.handleLeftScrollClick,visible:e.state.showLeftScroll,className:(0,h.default)(n.scrollButtons,(0,f.default)({},n.scrollButtonsAuto,"auto"===a))}):null,u.scrollButtonRight=l?d.default.createElement(i,{direction:o&&"rtl"===o.direction?"left":"right",onClick:e.handleRightScrollClick,visible:e.state.showRightScroll,className:(0,h.default)(n.scrollButtons,(0,f.default)({},n.scrollButtonsAuto,"auto"===a))}):null,u},e.getTabsMeta=function(t,n){if(e.tabsRef){var r,i,a=e.tabsRef.getBoundingClientRect();r={clientWidth:e.tabsRef.clientWidth,scrollLeft:e.tabsRef.scrollLeft,scrollLeftNormalized:(0,m.getNormalizedScrollLeft)(e.tabsRef,n),scrollWidth:e.tabsRef.scrollWidth,left:a.left,right:a.right}}if(e.tabsRef&&!1!==t){var o=e.tabsRef.children[0].children;if(o.length>0){var s=o[e.valueToIndex.get(t)];i=s?s.getBoundingClientRect():null}}return{tabsMeta:r,tabMeta:i}},e.handleLeftScrollClick=function(){e.moveTabsScroll(-e.tabsRef.clientWidth)},e.handleRightScrollClick=function(){e.moveTabsScroll(e.tabsRef.clientWidth)},e.handleScrollbarSizeChange=function(t){e.setState({scrollerStyle:{marginBottom:-t}})},e.moveTabsScroll=function(t){var n=e.props.theme,r="rtl"===n.direction?-1:1,i=e.tabsRef.scrollLeft+t*r,a="rtl"===n.direction&&"reverse"===(0,m.detectScrollType)()?-1:1;e.scroll(a*i)},e.scrollSelectedIntoView=function(){var t=e.props,n=t.theme,r=t.value,i=e.getTabsMeta(r,n.direction),a=i.tabsMeta,o=i.tabMeta;if(o&&a){if(o.lefta.right){var u=a.scrollLeft+(o.right-a.right);e.scroll(u)}}},e.scroll=function(t){(0,g.default)("scrollLeft",e.tabsRef,t)},e.updateScrollButtonState=function(){var t=e.props,n=t.scrollable,r=t.scrollButtons,i=t.theme;if(("scrollable"===t.variant||n)&&"off"!==r){var a=e.tabsRef,o=a.scrollWidth,s=a.clientWidth,u=(0,m.getNormalizedScrollLeft)(e.tabsRef,i.direction),c="rtl"===i.direction?o>s+u:u>0,l="rtl"===i.direction?u>0:o>s+u;(c!==e.state.showLeftScroll||l!==e.state.showRightScroll)&&e.setState({showLeftScroll:c,showRightScroll:l})}},"undefined"!=typeof window&&(e.handleResize=(0,b.default)(function(){e.updateIndicatorState(e.props),e.updateScrollButtonState()},166),e.handleTabsScroll=(0,b.default)(function(){e.updateScrollButtonState()},166)),e}return(0,l.default)(t,e),(0,s.default)(t,[{key:"componentDidMount",value:function(){this.setState({mounted:!0}),this.updateIndicatorState(this.props),this.updateScrollButtonState(),this.props.action&&this.props.action({updateIndicator:this.handleResize})}},{key:"componentDidUpdate",value:function(e,t){this.updateIndicatorState(this.props),this.updateScrollButtonState(),this.state.indicatorStyle!==t.indicatorStyle&&this.scrollSelectedIntoView()}},{key:"componentWillUnmount",value:function(){this.handleResize.clear(),this.handleTabsScroll.clear()}},{key:"updateIndicatorState",value:function(e){var t=e.theme,n=e.value,r=this.getTabsMeta(n,t.direction),i=r.tabsMeta,a=r.tabMeta,o=0;if(a&&i){var s="rtl"===t.direction?i.scrollLeftNormalized+i.clientWidth-i.scrollWidth:i.scrollLeft;o=Math.round(a.left-i.left+s)}var u={left:o,width:a?Math.round(a.width):0};u.left===this.state.indicatorStyle.left&&u.width===this.state.indicatorStyle.width||isNaN(u.left)||isNaN(u.width)||this.setState({indicatorStyle:u})}},{key:"render",value:function(){var e,t=this,n=this.props,r=(n.action,n.centered),o=n.children,s=n.classes,u=n.className,c=n.component,l=n.fullWidth,b=void 0!==l&&l,m=n.indicatorColor,g=n.onChange,v=n.scrollable,y=void 0!==v&&v,_=(n.ScrollButtonComponent,n.scrollButtons,n.TabIndicatorProps),E=void 0===_?{}:_,S=n.textColor,k=(n.theme,n.value),x=n.variant,T=(0,a.default)(n,["action","centered","children","classes","className","component","fullWidth","indicatorColor","onChange","scrollable","ScrollButtonComponent","scrollButtons","TabIndicatorProps","textColor","theme","value","variant"]),M="scrollable"===x||y,O=(0,h.default)(s.root,u),A=(0,h.default)(s.flexContainer,(0,f.default)({},s.centered,r&&!M)),L=(0,h.default)(s.scroller,(e={},(0,f.default)(e,s.fixed,!M),(0,f.default)(e,s.scrollable,M),e)),C=d.default.createElement(w.default,(0,i.default)({className:s.indicator,color:m},E,{style:(0,i.default)({},this.state.indicatorStyle,E.style)}));this.valueToIndex=new Map;var I=0,D=d.default.Children.map(o,function(e){if(!d.default.isValidElement(e))return null;var n=void 0===e.props.value?I:e.props.value;t.valueToIndex.set(n,I);var r=n===k;return I+=1,d.default.cloneElement(e,{fullWidth:"fullWidth"===x||b,indicator:r&&!t.state.mounted&&C,selected:r,onChange:g,textColor:S,value:n})}),N=this.getConditionalElements();return d.default.createElement(c,(0,i.default)({className:O},T),d.default.createElement(p.default,{target:"window",onResize:this.handleResize}),N.scrollbarSizeListener,d.default.createElement("div",{className:s.flexContainer},N.scrollButtonLeft,d.default.createElement("div",{className:L,style:this.state.scrollerStyle,ref:function(e){t.tabsRef=e},role:"tablist",onScroll:this.handleTabsScroll},d.default.createElement("div",{className:A},D),this.state.mounted&&C),N.scrollButtonRight))}}]),t}(d.default.Component);S.defaultProps={centered:!1,component:"div",indicatorColor:"secondary",ScrollButtonComponent:_.default,scrollButtons:"auto",textColor:"inherit",variant:"standard"};var k=(0,y.default)(E,{name:"MuiTabs",withTheme:!0})(S);t.default=k},12794(e,t,n){"use strict";var r,i=n(64836);r={value:!0},Object.defineProperty(t,"Z",{enumerable:!0,get:function(){return a.default}});var a=i(n(89172))},78592(e,t,n){"use strict";var r=n(64836);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(10434)),a=r(n(70215)),o=r(n(56690)),s=r(n(89728)),u=r(n(94993)),c=r(n(73808)),l=r(n(61655)),f=r(n(67294)),d=r(n(73935));r(n(42473)),r(n(45697));var h=r(n(54846)),p=r(n(1402)),b=r(n(59537)),m=r(n(23153)),g=r(n(85461)),v=r(n(76023)),y=r(n(11970)),w={standard:h.default,filled:p.default,outlined:b.default},_=function(e){function t(e){var n;return(0,o.default)(this,t),(n=(0,u.default)(this,(0,c.default)(t).call(this,e))).labelRef=f.default.createRef(),n}return(0,l.default)(t,e),(0,s.default)(t,[{key:"componentDidMount",value:function(){"outlined"===this.props.variant&&(this.labelNode=d.default.findDOMNode(this.labelRef.current),this.forceUpdate())}},{key:"render",value:function(){var e=this.props,t=e.autoComplete,n=e.autoFocus,r=e.children,o=e.className,s=e.defaultValue,u=e.error,c=e.FormHelperTextProps,l=e.fullWidth,d=e.helperText,h=e.id,p=e.InputLabelProps,b=e.inputProps,_=e.InputProps,E=e.inputRef,S=e.label,k=e.multiline,x=e.name,T=e.onBlur,M=e.onChange,O=e.onFocus,A=e.placeholder,L=e.required,C=e.rows,I=e.rowsMax,D=e.select,N=e.SelectProps,P=e.type,R=e.value,j=e.variant,F=(0,a.default)(e,["autoComplete","autoFocus","children","className","defaultValue","error","FormHelperTextProps","fullWidth","helperText","id","InputLabelProps","inputProps","InputProps","inputRef","label","multiline","name","onBlur","onChange","onFocus","placeholder","required","rows","rowsMax","select","SelectProps","type","value","variant"]),Y={};"outlined"===j&&(p&&void 0!==p.shrink&&(Y.notched=p.shrink),Y.labelWidth=this.labelNode&&this.labelNode.offsetWidth||0);var B=d&&h?"".concat(h,"-helper-text"):void 0,U=w[j],H=f.default.createElement(U,(0,i.default)({"aria-describedby":B,autoComplete:t,autoFocus:n,defaultValue:s,fullWidth:l,multiline:k,name:x,rows:C,rowsMax:I,type:P,value:R,id:h,inputRef:E,onBlur:T,onChange:M,onFocus:O,placeholder:A,inputProps:b},Y,_));return f.default.createElement(g.default,(0,i.default)({className:o,error:u,fullWidth:l,required:L,variant:j},F),S&&f.default.createElement(m.default,(0,i.default)({htmlFor:h,ref:this.labelRef},p),S),D?f.default.createElement(y.default,(0,i.default)({"aria-describedby":B,value:R,input:H},N),r):H,d&&f.default.createElement(v.default,(0,i.default)({id:B},c),d))}}]),t}(f.default.Component);_.defaultProps={required:!1,select:!1,variant:"standard"};var E=_;t.default=E},60520(e,t,n){"use strict";var r,i=n(64836);r={value:!0},Object.defineProperty(t,"Z",{enumerable:!0,get:function(){return a.default}});var a=i(n(78592))},48596(e,t,n){"use strict";var r=n(64836);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.styles=void 0;var i=r(n(10434)),a=r(n(38416)),o=r(n(70215)),s=r(n(67294));r(n(45697));var u=r(n(94184)),c=r(n(78252)),l=function(e){return{root:{position:"relative",display:"flex",alignItems:"center"},gutters:e.mixins.gutters(),regular:e.mixins.toolbar,dense:{minHeight:48}}};function f(e){var t=e.children,n=e.classes,r=e.className,c=e.disableGutters,l=e.variant,f=(0,o.default)(e,["children","classes","className","disableGutters","variant"]),d=(0,u.default)(n.root,n[l],(0,a.default)({},n.gutters,!c),r);return s.default.createElement("div",(0,i.default)({className:d},f),t)}t.styles=l,f.defaultProps={disableGutters:!1,variant:"regular"};var d=(0,c.default)(l,{name:"MuiToolbar"})(f);t.default=d},28902(e,t,n){"use strict";var r=n(64836);Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return i.default}});var i=r(n(48596))},83065(e,t,n){"use strict";var r=n(64836);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.styles=void 0;var i=r(n(10434)),a=r(n(70215)),o=r(n(56690)),s=r(n(89728)),u=r(n(94993)),c=r(n(73808)),l=r(n(61655)),f=r(n(38416)),d=r(n(67294));r(n(45697)),r(n(42473));var h=r(n(94184));n(55252);var p=r(n(39737)),b=r(n(78252)),m=n(98741),g=r(n(261)),v=r(n(60111)),y=function(e){return{popper:{zIndex:e.zIndex.tooltip,opacity:.9,pointerEvents:"none"},popperInteractive:{pointerEvents:"auto"},tooltip:{backgroundColor:e.palette.grey[700],borderRadius:e.shape.borderRadius,color:e.palette.common.white,fontFamily:e.typography.fontFamily,padding:"4px 8px",fontSize:e.typography.pxToRem(10),lineHeight:"".concat(e.typography.round(1.4),"em"),maxWidth:300},touch:{padding:"8px 16px",fontSize:e.typography.pxToRem(14),lineHeight:"".concat(e.typography.round(16/14),"em")},tooltipPlacementLeft:(0,f.default)({transformOrigin:"right center",margin:"0 24px "},e.breakpoints.up("sm"),{margin:"0 14px"}),tooltipPlacementRight:(0,f.default)({transformOrigin:"left center",margin:"0 24px"},e.breakpoints.up("sm"),{margin:"0 14px"}),tooltipPlacementTop:(0,f.default)({transformOrigin:"center bottom",margin:"24px 0"},e.breakpoints.up("sm"),{margin:"14px 0"}),tooltipPlacementBottom:(0,f.default)({transformOrigin:"center top",margin:"24px 0"},e.breakpoints.up("sm"),{margin:"14px 0"})}};t.styles=y;var w=function(e){function t(e){var n;return(0,o.default)(this,t),(n=(0,u.default)(this,(0,c.default)(t).call(this))).ignoreNonTouchEvents=!1,n.onRootRef=function(e){n.childrenRef=e},n.handleFocus=function(e){n.childrenRef||(n.childrenRef=e.currentTarget),n.handleEnter(e);var t=n.props.children.props;t.onFocus&&t.onFocus(e)},n.handleEnter=function(e){var t=n.props,r=t.children,i=t.enterDelay,a=r.props;"mouseover"===e.type&&a.onMouseOver&&a.onMouseOver(e),(!n.ignoreNonTouchEvents||"touchstart"===e.type)&&(n.childrenRef.setAttribute("title",""),clearTimeout(n.enterTimer),clearTimeout(n.leaveTimer),i?(e.persist(),n.enterTimer=setTimeout(function(){n.handleOpen(e)},i)):n.handleOpen(e))},n.handleOpen=function(e){n.isControlled||n.state.open||n.setState({open:!0}),n.props.onOpen&&n.props.onOpen(e)},n.handleLeave=function(e){var t=n.props,r=t.children,i=t.leaveDelay,a=r.props;"blur"===e.type&&a.onBlur&&a.onBlur(e),"mouseleave"===e.type&&a.onMouseLeave&&a.onMouseLeave(e),clearTimeout(n.enterTimer),clearTimeout(n.leaveTimer),i?(e.persist(),n.leaveTimer=setTimeout(function(){n.handleClose(e)},i)):n.handleClose(e)},n.handleClose=function(e){n.isControlled||n.setState({open:!1}),n.props.onClose&&n.props.onClose(e),clearTimeout(n.closeTimer),n.closeTimer=setTimeout(function(){n.ignoreNonTouchEvents=!1},n.props.theme.transitions.duration.shortest)},n.handleTouchStart=function(e){n.ignoreNonTouchEvents=!0;var t=n.props,r=t.children,i=t.enterTouchDelay;r.props.onTouchStart&&r.props.onTouchStart(e),clearTimeout(n.leaveTimer),clearTimeout(n.closeTimer),clearTimeout(n.touchTimer),e.persist(),n.touchTimer=setTimeout(function(){n.handleEnter(e)},i)},n.handleTouchEnd=function(e){var t=n.props,r=t.children,i=t.leaveTouchDelay;r.props.onTouchEnd&&r.props.onTouchEnd(e),clearTimeout(n.touchTimer),clearTimeout(n.leaveTimer),e.persist(),n.leaveTimer=setTimeout(function(){n.handleClose(e)},i)},n.isControlled=null!=e.open,n.state={open:null},n.isControlled||(n.state.open=!1),n}return(0,l.default)(t,e),(0,s.default)(t,[{key:"componentDidMount",value:function(){this.defaultId="mui-tooltip-".concat(Math.round(1e5*Math.random())),this.props.open&&this.forceUpdate()}},{key:"componentWillUnmount",value:function(){clearTimeout(this.closeTimer),clearTimeout(this.enterTimer),clearTimeout(this.focusTimer),clearTimeout(this.leaveTimer),clearTimeout(this.touchTimer)}},{key:"render",value:function(){var e=this,t=this.props,n=t.children,r=t.classes,o=t.disableFocusListener,s=t.disableHoverListener,u=t.disableTouchListener,c=(t.enterDelay,t.enterTouchDelay,t.id),l=t.interactive,b=(t.leaveDelay,t.leaveTouchDelay,t.onClose,t.onOpen,t.open),g=t.placement,y=t.PopperProps,w=t.theme,_=t.title,E=t.TransitionComponent,S=t.TransitionProps,k=(0,a.default)(t,["children","classes","disableFocusListener","disableHoverListener","disableTouchListener","enterDelay","enterTouchDelay","id","interactive","leaveDelay","leaveTouchDelay","onClose","onOpen","open","placement","PopperProps","theme","title","TransitionComponent","TransitionProps"]),x=this.isControlled?b:this.state.open;""===_&&(x=!1);var T=!x&&!s,M=(0,i.default)({"aria-describedby":x?c||this.defaultId:null,title:T&&"string"==typeof _?_:null},k,n.props,{className:(0,h.default)(k.className,n.props.className)});u||(M.onTouchStart=this.handleTouchStart,M.onTouchEnd=this.handleTouchEnd),s||(M.onMouseOver=this.handleEnter,M.onMouseLeave=this.handleLeave),o||(M.onFocus=this.handleFocus,M.onBlur=this.handleLeave);var O=l?{onMouseOver:M.onMouseOver,onMouseLeave:M.onMouseLeave,onFocus:M.onFocus,onBlur:M.onBlur}:{};return d.default.createElement(d.default.Fragment,null,d.default.createElement(p.default,{rootRef:this.onRootRef},d.default.cloneElement(n,M)),d.default.createElement(v.default,(0,i.default)({className:(0,h.default)(r.popper,(0,f.default)({},r.popperInteractive,l)),placement:g,anchorEl:this.childrenRef,open:x,id:M["aria-describedby"],transition:!0},O,y),function(t){var n=t.placement,a=t.TransitionProps;return d.default.createElement(E,(0,i.default)({timeout:w.transitions.duration.shorter},a,S),d.default.createElement("div",{className:(0,h.default)(r.tooltip,(0,f.default)({},r.touch,e.ignoreNonTouchEvents),r["tooltipPlacement".concat((0,m.capitalize)(n.split("-")[0]))])},_))}))}}]),t}(d.default.Component);w.defaultProps={disableFocusListener:!1,disableHoverListener:!1,disableTouchListener:!1,enterDelay:0,enterTouchDelay:1e3,interactive:!1,leaveDelay:0,leaveTouchDelay:1500,placement:"bottom",TransitionComponent:g.default};var _=(0,b.default)(y,{name:"MuiTooltip",withTheme:!0})(w);t.default=_},31657(e,t,n){"use strict";var r,i=n(64836);r={value:!0},Object.defineProperty(t,"Z",{enumerable:!0,get:function(){return a.default}});var a=i(n(83065))},49476(e,t,n){"use strict";var r=n(64836);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.styles=void 0;var i=r(n(10434)),a=r(n(38416)),o=r(n(70215)),s=r(n(67294));r(n(45697));var u=r(n(94184));n(55252);var c=r(n(78252)),l=n(98741),f=function(e){return{root:{display:"block",margin:0},display4:e.typography.display4,display3:e.typography.display3,display2:e.typography.display2,display1:e.typography.display1,headline:e.typography.headline,title:e.typography.title,subheading:e.typography.subheading,body2:e.typography.body2,body1:e.typography.body1,caption:e.typography.caption,button:e.typography.button,h1:e.typography.h1,h2:e.typography.h2,h3:e.typography.h3,h4:e.typography.h4,h5:e.typography.h5,h6:e.typography.h6,subtitle1:e.typography.subtitle1,subtitle2:e.typography.subtitle2,overline:e.typography.overline,srOnly:{position:"absolute",height:1,width:1,overflow:"hidden"},alignLeft:{textAlign:"left"},alignCenter:{textAlign:"center"},alignRight:{textAlign:"right"},alignJustify:{textAlign:"justify"},noWrap:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},gutterBottom:{marginBottom:"0.35em"},paragraph:{marginBottom:16},colorInherit:{color:"inherit"},colorPrimary:{color:e.palette.primary.main},colorSecondary:{color:e.palette.secondary.main},colorTextPrimary:{color:e.palette.text.primary},colorTextSecondary:{color:e.palette.text.secondary},colorError:{color:e.palette.error.main},inline:{display:"inline"}}};t.styles=f;var d={display4:"h1",display3:"h2",display2:"h3",display1:"h4",headline:"h5",title:"h6",subheading:"subtitle1"};function h(e,t){var n=e.typography,r=t;return r||(r=n.useNextVariants?"body2":"body1"),n.useNextVariants&&(r=d[r]||r),r}var p={h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",h6:"h6",subtitle1:"h6",subtitle2:"h6",body1:"p",body2:"p",display4:"h1",display3:"h1",display2:"h1",display1:"h1",headline:"h1",title:"h2",subheading:"h3"};function b(e){var t,n=e.align,r=e.classes,c=e.className,f=e.color,d=e.component,b=e.gutterBottom,m=e.headlineMapping,g=e.inline,v=(e.internalDeprecatedVariant,e.noWrap),y=e.paragraph,w=e.theme,_=e.variant,E=(0,o.default)(e,["align","classes","className","color","component","gutterBottom","headlineMapping","inline","internalDeprecatedVariant","noWrap","paragraph","theme","variant"]),S=h(w,_),k=(0,u.default)(r.root,(t={},(0,a.default)(t,r[S],"inherit"!==S),(0,a.default)(t,r["color".concat((0,l.capitalize)(f))],"default"!==f),(0,a.default)(t,r.noWrap,v),(0,a.default)(t,r.gutterBottom,b),(0,a.default)(t,r.paragraph,y),(0,a.default)(t,r["align".concat((0,l.capitalize)(n))],"inherit"!==n),(0,a.default)(t,r.inline,g),t),c),x=d||(y?"p":m[S]||p[S])||"span";return s.default.createElement(x,(0,i.default)({className:k},E))}b.defaultProps={align:"inherit",color:"default",gutterBottom:!1,headlineMapping:p,inline:!1,noWrap:!1,paragraph:!1};var m=(0,c.default)(f,{name:"MuiTypography",withTheme:!0})(b);t.default=m},71426(e,t,n){"use strict";var r=n(64836);Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return i.default}});var i=r(n(49476))},8070(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n={50:"#fff8e1",100:"#ffecb3",200:"#ffe082",300:"#ffd54f",400:"#ffca28",500:"#ffc107",600:"#ffb300",700:"#ffa000",800:"#ff8f00",900:"#ff6f00",A100:"#ffe57f",A200:"#ffd740",A400:"#ffc400",A700:"#ffab00"};t.default=n},63259(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n={50:"#e3f2fd",100:"#bbdefb",200:"#90caf9",300:"#64b5f6",400:"#42a5f5",500:"#2196f3",600:"#1e88e5",700:"#1976d2",800:"#1565c0",900:"#0d47a1",A100:"#82b1ff",A200:"#448aff",A400:"#2979ff",A700:"#2962ff"};t.default=n},38236(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n={50:"#eceff1",100:"#cfd8dc",200:"#b0bec5",300:"#90a4ae",400:"#78909c",500:"#607d8b",600:"#546e7a",700:"#455a64",800:"#37474f",900:"#263238",A100:"#cfd8dc",A200:"#b0bec5",A400:"#78909c",A700:"#455a64"};t.default=n},60169(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n={50:"#efebe9",100:"#d7ccc8",200:"#bcaaa4",300:"#a1887f",400:"#8d6e63",500:"#795548",600:"#6d4c41",700:"#5d4037",800:"#4e342e",900:"#3e2723",A100:"#d7ccc8",A200:"#bcaaa4",A400:"#8d6e63",A700:"#5d4037"};t.default=n},515(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n={black:"#000",white:"#fff"};t.default=n},57646(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n={50:"#e0f7fa",100:"#b2ebf2",200:"#80deea",300:"#4dd0e1",400:"#26c6da",500:"#00bcd4",600:"#00acc1",700:"#0097a7",800:"#00838f",900:"#006064",A100:"#84ffff",A200:"#18ffff",A400:"#00e5ff",A700:"#00b8d4"};t.default=n},50173(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n={50:"#fbe9e7",100:"#ffccbc",200:"#ffab91",300:"#ff8a65",400:"#ff7043",500:"#ff5722",600:"#f4511e",700:"#e64a19",800:"#d84315",900:"#bf360c",A100:"#ff9e80",A200:"#ff6e40",A400:"#ff3d00",A700:"#dd2c00"};t.default=n},45018(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n={50:"#ede7f6",100:"#d1c4e9",200:"#b39ddb",300:"#9575cd",400:"#7e57c2",500:"#673ab7",600:"#5e35b1",700:"#512da8",800:"#4527a0",900:"#311b92",A100:"#b388ff",A200:"#7c4dff",A400:"#651fff",A700:"#6200ea"};t.default=n},47559(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n={50:"#e8f5e9",100:"#c8e6c9",200:"#a5d6a7",300:"#81c784",400:"#66bb6a",500:"#4caf50",600:"#43a047",700:"#388e3c",800:"#2e7d32",900:"#1b5e20",A100:"#b9f6ca",A200:"#69f0ae",A400:"#00e676",A700:"#00c853"};t.default=n},70167(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n={50:"#fafafa",100:"#f5f5f5",200:"#eeeeee",300:"#e0e0e0",400:"#bdbdbd",500:"#9e9e9e",600:"#757575",700:"#616161",800:"#424242",900:"#212121",A100:"#d5d5d5",A200:"#aaaaaa",A400:"#303030",A700:"#616161"};t.default=n},19350(e,t,n){"use strict";var r,i=n(64836);r={value:!0},Object.defineProperty(t,"y0",{enumerable:!0,get:function(){return a.default}}),r={enumerable:!0,get:function(){return o.default}},r={enumerable:!0,get:function(){return s.default}},r={enumerable:!0,get:function(){return u.default}},r={enumerable:!0,get:function(){return c.default}},r={enumerable:!0,get:function(){return l.default}},r={enumerable:!0,get:function(){return f.default}},r={enumerable:!0,get:function(){return d.default}},r={enumerable:!0,get:function(){return h.default}},r={enumerable:!0,get:function(){return p.default}},Object.defineProperty(t,"ek",{enumerable:!0,get:function(){return b.default}}),r={enumerable:!0,get:function(){return m.default}},r={enumerable:!0,get:function(){return g.default}},r={enumerable:!0,get:function(){return v.default}},r={enumerable:!0,get:function(){return y.default}},r={enumerable:!0,get:function(){return w.default}},r={enumerable:!0,get:function(){return _.default}},r={enumerable:!0,get:function(){return E.default}},Object.defineProperty(t,"BA",{enumerable:!0,get:function(){return S.default}}),r={enumerable:!0,get:function(){return k.default}};var a=i(n(515)),o=i(n(83165)),s=i(n(124)),u=i(n(18118)),c=i(n(45018)),l=i(n(78768)),f=i(n(63259)),d=i(n(4923)),h=i(n(57646)),p=i(n(91605)),b=i(n(47559)),m=i(n(40192)),g=i(n(98567)),v=i(n(74578)),y=i(n(8070)),w=i(n(36594)),_=i(n(50173)),E=i(n(60169)),S=i(n(70167)),k=i(n(38236))},78768(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n={50:"#e8eaf6",100:"#c5cae9",200:"#9fa8da",300:"#7986cb",400:"#5c6bc0",500:"#3f51b5",600:"#3949ab",700:"#303f9f",800:"#283593",900:"#1a237e",A100:"#8c9eff",A200:"#536dfe",A400:"#3d5afe",A700:"#304ffe"};t.default=n},4923(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n={50:"#e1f5fe",100:"#b3e5fc",200:"#81d4fa",300:"#4fc3f7",400:"#29b6f6",500:"#03a9f4",600:"#039be5",700:"#0288d1",800:"#0277bd",900:"#01579b",A100:"#80d8ff",A200:"#40c4ff",A400:"#00b0ff",A700:"#0091ea"};t.default=n},40192(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n={50:"#f1f8e9",100:"#dcedc8",200:"#c5e1a5",300:"#aed581",400:"#9ccc65",500:"#8bc34a",600:"#7cb342",700:"#689f38",800:"#558b2f",900:"#33691e",A100:"#ccff90",A200:"#b2ff59",A400:"#76ff03",A700:"#64dd17"};t.default=n},98567(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n={50:"#f9fbe7",100:"#f0f4c3",200:"#e6ee9c",300:"#dce775",400:"#d4e157",500:"#cddc39",600:"#c0ca33",700:"#afb42b",800:"#9e9d24",900:"#827717",A100:"#f4ff81",A200:"#eeff41",A400:"#c6ff00",A700:"#aeea00"};t.default=n},36594(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n={50:"#fff3e0",100:"#ffe0b2",200:"#ffcc80",300:"#ffb74d",400:"#ffa726",500:"#ff9800",600:"#fb8c00",700:"#f57c00",800:"#ef6c00",900:"#e65100",A100:"#ffd180",A200:"#ffab40",A400:"#ff9100",A700:"#ff6d00"};t.default=n},124(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n={50:"#fce4ec",100:"#f8bbd0",200:"#f48fb1",300:"#f06292",400:"#ec407a",500:"#e91e63",600:"#d81b60",700:"#c2185b",800:"#ad1457",900:"#880e4f",A100:"#ff80ab",A200:"#ff4081",A400:"#f50057",A700:"#c51162"};t.default=n},18118(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n={50:"#f3e5f5",100:"#e1bee7",200:"#ce93d8",300:"#ba68c8",400:"#ab47bc",500:"#9c27b0",600:"#8e24aa",700:"#7b1fa2",800:"#6a1b9a",900:"#4a148c",A100:"#ea80fc",A200:"#e040fb",A400:"#d500f9",A700:"#aa00ff"};t.default=n},83165(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n={50:"#ffebee",100:"#ffcdd2",200:"#ef9a9a",300:"#e57373",400:"#ef5350",500:"#f44336",600:"#e53935",700:"#d32f2f",800:"#c62828",900:"#b71c1c",A100:"#ff8a80",A200:"#ff5252",A400:"#ff1744",A700:"#d50000"};t.default=n},91605(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n={50:"#e0f2f1",100:"#b2dfdb",200:"#80cbc4",300:"#4db6ac",400:"#26a69a",500:"#009688",600:"#00897b",700:"#00796b",800:"#00695c",900:"#004d40",A100:"#a7ffeb",A200:"#64ffda",A400:"#1de9b6",A700:"#00bfa5"};t.default=n},74578(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n={50:"#fffde7",100:"#fff9c4",200:"#fff59d",300:"#fff176",400:"#ffee58",500:"#ffeb3b",600:"#fdd835",700:"#fbc02d",800:"#f9a825",900:"#f57f17",A100:"#ffff8d",A200:"#ffff00",A400:"#ffea00",A700:"#ffd600"};t.default=n},85609(e,t,n){"use strict";var r=n(64836);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.styles=void 0;var i=r(n(10434)),a=r(n(38416)),o=r(n(70215)),s=r(n(56690)),u=r(n(89728)),c=r(n(94993)),l=r(n(73808)),f=r(n(61655)),d=r(n(67294));r(n(45697));var h=r(n(94184)),p=r(n(52598)),b=r(n(78252)),m=r(n(81701)),g={root:{display:"inline-flex",alignItems:"center",transition:"none","&:hover":{backgroundColor:"transparent"}},checked:{},disabled:{},input:{cursor:"inherit",position:"absolute",opacity:0,width:"100%",height:"100%",top:0,left:0,margin:0,padding:0}};t.styles=g;var v=function(e){function t(e){var n;return(0,s.default)(this,t),(n=(0,c.default)(this,(0,l.default)(t).call(this))).handleFocus=function(e){n.props.onFocus&&n.props.onFocus(e);var t=n.props.muiFormControl;t&&t.onFocus&&t.onFocus(e)},n.handleBlur=function(e){n.props.onBlur&&n.props.onBlur(e);var t=n.props.muiFormControl;t&&t.onBlur&&t.onBlur(e)},n.handleInputChange=function(e){var t=e.target.checked;n.isControlled||n.setState({checked:t}),n.props.onChange&&n.props.onChange(e,t)},n.isControlled=null!=e.checked,n.state={},n.isControlled||(n.state.checked=void 0!==e.defaultChecked&&e.defaultChecked),n}return(0,f.default)(t,e),(0,u.default)(t,[{key:"render",value:function(){var e,t=this.props,n=t.autoFocus,r=t.checked,s=t.checkedIcon,u=t.classes,c=t.className,l=t.defaultChecked,f=t.disabled,p=t.icon,b=t.id,g=t.inputProps,v=t.inputRef,y=t.muiFormControl,w=t.name,_=(t.onBlur,t.onChange,t.onFocus,t.readOnly),E=t.required,S=t.tabIndex,k=t.type,x=t.value,T=(0,o.default)(t,["autoFocus","checked","checkedIcon","classes","className","defaultChecked","disabled","icon","id","inputProps","inputRef","muiFormControl","name","onBlur","onChange","onFocus","readOnly","required","tabIndex","type","value"]),M=f;y&&void 0===M&&(M=y.disabled);var O=this.isControlled?r:this.state.checked,A="checkbox"===k||"radio"===k;return d.default.createElement(m.default,(0,i.default)({component:"span",className:(0,h.default)(u.root,(e={},(0,a.default)(e,u.checked,O),(0,a.default)(e,u.disabled,M),e),c),disabled:M,tabIndex:null,role:void 0,onFocus:this.handleFocus,onBlur:this.handleBlur},T),O?s:p,d.default.createElement("input",(0,i.default)({autoFocus:n,checked:r,defaultChecked:l,className:u.input,disabled:M,id:A&&b,name:w,onChange:this.handleInputChange,readOnly:_,ref:v,required:E,tabIndex:S,type:k,value:x},g)))}}]),t}(d.default.Component),y=(0,b.default)(g,{name:"MuiPrivateSwitchBase"})((0,p.default)(v));t.default=y},13329(e,t){"use strict";function n(e){return(1+Math.sin(Math.PI*e-Math.PI/2))/2}function r(e,t,r){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:function(){},o=i.ease,s=void 0===o?n:o,u=i.duration,c=void 0===u?300:u,l=null,f=t[e],d=!1,h=function(){d=!0},p=function n(i){if(d){a(Error("Animation cancelled"));return}null===l&&(l=i);var o=Math.min(1,(i-l)/c);if(t[e]=s(o)*(r-f)+f,o>=1){requestAnimationFrame(function(){a(null)});return}requestAnimationFrame(n)};return f===r?(a(Error("Element already at target position")),h):(requestAnimationFrame(p),h)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r;t.default=i},74622(e,t,n){"use strict";var r=n(64836);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(67294)),a=r(n(46949)),o=r(n(40577)),s=i.default.createElement("path",{d:"M7 10l5 5 5-5z"}),u=function(e){return i.default.createElement(o.default,e,s)};(u=(0,a.default)(u)).muiName="SvgIcon";var c=u;t.default=c},99781(e,t,n){"use strict";var r=n(64836);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(67294)),a=r(n(46949)),o=r(n(40577)),s=i.default.createElement("path",{d:"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z"}),u=function(e){return i.default.createElement(o.default,e,s)};(u=(0,a.default)(u)).muiName="SvgIcon";var c=u;t.default=c},41549(e,t,n){"use strict";var r=n(64836);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(67294)),a=r(n(46949)),o=r(n(40577)),s=i.default.createElement("path",{d:"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"}),u=function(e){return i.default.createElement(o.default,e,s)};(u=(0,a.default)(u)).muiName="SvgIcon";var c=u;t.default=c},42159(e,t,n){"use strict";var r=n(64836);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(67294)),a=r(n(46949)),o=r(n(40577)),s=i.default.createElement("path",{d:"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"}),u=function(e){return i.default.createElement(o.default,e,s)};(u=(0,a.default)(u)).muiName="SvgIcon";var c=u;t.default=c},61486(e,t,n){"use strict";var r=n(64836);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(67294)),a=r(n(46949)),o=r(n(40577)),s=i.default.createElement("path",{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z"}),u=function(e){return i.default.createElement(o.default,e,s)};(u=(0,a.default)(u)).muiName="SvgIcon";var c=u;t.default=c},86861(e,t,n){"use strict";var r=n(64836);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(67294)),a=r(n(46949)),o=r(n(40577)),s=i.default.createElement("path",{d:"M15.41 16.09l-4.58-4.59 4.58-4.59L14 5.5l-6 6 6 6z"}),u=function(e){return i.default.createElement(o.default,e,s)};(u=(0,a.default)(u)).muiName="SvgIcon";var c=u;t.default=c},43836(e,t,n){"use strict";var r=n(64836);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(67294)),a=r(n(46949)),o=r(n(40577)),s=i.default.createElement("path",{d:"M8.59 16.34l4.58-4.59-4.58-4.59L10 5.75l6 6-6 6z"}),u=function(e){return i.default.createElement(o.default,e,s)};(u=(0,a.default)(u)).muiName="SvgIcon";var c=u;t.default=c},93078(e,t,n){"use strict";/*! * is-plain-object * * Copyright (c) 2014-2017, Jon Schlinkert. * Released under the MIT License. - */ var r=n(47798);function i(e){return!0===r(e)&&"[object Object]"===Object.prototype.toString.call(e)}e.exports=function(e){var t,n;return!1!==i(e)&&"function"==typeof(t=e.constructor)&&!1!==i(n=t.prototype)&&!1!==n.hasOwnProperty("isPrototypeOf")}},72366(e,t,n){"use strict";var r=n(20862),i=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.MuiThemeProviderOld=void 0;var a=i(n(67154)),o=i(n(59713)),s=i(n(34575)),u=i(n(93913)),c=i(n(78585)),l=i(n(29754)),f=i(n(2205)),d=i(n(67294)),h=i(n(45697));i(n(42473));var p=i(n(43890)),b=n(55252),m=r(n(51067)),g=function(e){function t(e,n){var r;return(0,s.default)(this,t),(r=(0,c.default)(this,(0,l.default)(t).call(this))).broadcast=(0,p.default)(),r.outerTheme=m.default.initial(n),r.broadcast.setState(r.mergeOuterLocalTheme(e.theme)),r}return(0,f.default)(t,e),(0,u.default)(t,[{key:"getChildContext",value:function(){var e,t=this.props,n=t.disableStylesGeneration,r=t.sheetsCache,i=t.sheetsManager,a=this.context.muiThemeProviderOptions||{};return void 0!==n&&(a.disableStylesGeneration=n),void 0!==r&&(a.sheetsCache=r),void 0!==i&&(a.sheetsManager=i),e={},(0,o.default)(e,m.CHANNEL,this.broadcast),(0,o.default)(e,"muiThemeProviderOptions",a),e}},{key:"componentDidMount",value:function(){var e=this;this.unsubscribeId=m.default.subscribe(this.context,function(t){e.outerTheme=t,e.broadcast.setState(e.mergeOuterLocalTheme(e.props.theme))})}},{key:"componentDidUpdate",value:function(e){this.props.theme!==e.theme&&this.broadcast.setState(this.mergeOuterLocalTheme(this.props.theme))}},{key:"componentWillUnmount",value:function(){null!==this.unsubscribeId&&m.default.unsubscribe(this.context,this.unsubscribeId)}},{key:"mergeOuterLocalTheme",value:function(e){return"function"==typeof e?e(this.outerTheme):this.outerTheme?(0,a.default)({},this.outerTheme,e):e}},{key:"render",value:function(){return this.props.children}}]),t}(d.default.Component);t.MuiThemeProviderOld=g,g.childContextTypes=(0,a.default)({},m.default.contextTypes,{muiThemeProviderOptions:h.default.object}),g.contextTypes=(0,a.default)({},m.default.contextTypes,{muiThemeProviderOptions:h.default.object}),b.ponyfillGlobal.__MUI_STYLES__||(b.ponyfillGlobal.__MUI_STYLES__={}),b.ponyfillGlobal.__MUI_STYLES__.MuiThemeProvider||(b.ponyfillGlobal.__MUI_STYLES__.MuiThemeProvider=g);var v=b.ponyfillGlobal.__MUI_STYLES__.MuiThemeProvider;t.default=v},59114(e,t,n){"use strict";var r=n(95318);function i(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;return en?n:e}function a(e){e=e.substr(1);var t=RegExp(".{1,".concat(e.length/3,"}"),"g"),n=e.match(t);return n&&1===n[0].length&&(n=n.map(function(e){return e+e})),n?"rgb(".concat(n.map(function(e){return parseInt(e,16)}).join(", "),")"):""}function o(e){if(0===e.indexOf("#"))return e;function t(e){var t=e.toString(16);return 1===t.length?"0".concat(t):t}var n=s(e).values;return n=n.map(function(e){return t(e)}),"#".concat(n.join(""))}function s(e){if("#"===e.charAt(0))return s(a(e));var t=e.indexOf("("),n=e.substring(0,t),r=e.substring(t+1,e.length-1).split(",");return r=r.map(function(e){return parseFloat(e)}),{type:n,values:r}}function u(e){var t=e.type,n=e.values;return -1!==t.indexOf("rgb")&&(n=n.map(function(e,t){return t<3?parseInt(e,10):e})),-1!==t.indexOf("hsl")&&(n[1]="".concat(n[1],"%"),n[2]="".concat(n[2],"%")),"".concat(e.type,"(").concat(n.join(", "),")")}function c(e,t){var n=l(e),r=l(t);return(Math.max(n,r)+.05)/(Math.min(n,r)+.05)}function l(e){var t=s(e);if(-1!==t.type.indexOf("rgb")){var n=t.values.map(function(e){return(e/=255)<=.03928?e/12.92:Math.pow((e+.055)/1.055,2.4)});return Number((.2126*n[0]+.7152*n[1]+.0722*n[2]).toFixed(3))}return t.values[2]/100}function f(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:.15;return l(e)>.5?h(e,t):p(e,t)}function d(e,t){return e?(e=s(e),t=i(t),("rgb"===e.type||"hsl"===e.type)&&(e.type+="a"),e.values[3]=t,u(e)):e}function h(e,t){if(!e)return e;if(e=s(e),t=i(t),-1!==e.type.indexOf("hsl"))e.values[2]*=1-t;else if(-1!==e.type.indexOf("rgb"))for(var n=0;n<3;n+=1)e.values[n]*=1-t;return u(e)}function p(e,t){if(!e)return e;if(e=s(e),t=i(t),-1!==e.type.indexOf("hsl"))e.values[2]+=(100-e.values[2])*t;else if(-1!==e.type.indexOf("rgb"))for(var n=0;n<3;n+=1)e.values[n]+=(255-e.values[n])*t;return u(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.convertHexToRGB=a,t.rgbToHex=o,t.decomposeColor=s,t.recomposeColor=u,t.getContrastRatio=c,t.getLuminance=l,t.emphasize=f,t.fade=d,t.darken=h,t.lighten=p,r(n(42473))},94811(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=s,t.keys=void 0;var i=r(n(67154)),a=r(n(6479)),o=["xs","sm","md","lg","xl"];function s(e){var t=e.values,n=void 0===t?{xs:0,sm:600,md:960,lg:1280,xl:1920}:t,r=e.unit,s=void 0===r?"px":r,u=e.step,c=void 0===u?5:u,l=(0,a.default)(e,["values","unit","step"]);function f(e){var t="number"==typeof n[e]?n[e]:e;return"@media (min-width:".concat(t).concat(s,")")}function d(e){var t=o.indexOf(e)+1,r=n[o[t]];if(t===o.length)return f("xs");var i="number"==typeof r&&t>0?r:e;return"@media (max-width:".concat(i-c/100).concat(s,")")}function h(e,t){var r=o.indexOf(t)+1;return r===o.length?f(e):"@media (min-width:".concat(n[e]).concat(s,") and ")+"(max-width:".concat(n[o[r]]-c/100).concat(s,")")}function p(e){return h(e,e)}function b(e){return n[e]}return(0,i.default)({keys:o,values:n,up:f,down:d,between:h,only:p,width:b},l)}t.keys=o},20237(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=o,r(n(42473));var i=/([[\].#*$><+~=|^:(),"'`\s])/g;function a(e){var t;return String(e).replace(i,"-")}function o(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.dangerouslyUseGlobalCSS,n=void 0!==t&&t,r=e.productionPrefix,i=void 0===r?"jss":r,o=e.seed,s=void 0===o?"":o,u=0;return function(e,t){return(u+=1,n&&t&&t.options.name)?"".concat(a(t.options.name),"-").concat(e.key):"".concat(i).concat(s).concat(u)}}},40226(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=o;var i=r(n(59713)),a=r(n(67154));function o(e,t,n){var r;return(0,a.default)({gutters:function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return(0,a.default)({paddingLeft:2*t.unit,paddingRight:2*t.unit},n,(0,i.default)({},e.up("sm"),(0,a.default)({paddingLeft:3*t.unit,paddingRight:3*t.unit},n[e.up("sm")])))},toolbar:(r={minHeight:56},(0,i.default)(r,"".concat(e.up("xs")," and (orientation: landscape)"),{minHeight:48}),(0,i.default)(r,e.up("sm"),{minHeight:64}),r)},n)}},71615(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,r(n(59713));var i=r(n(67154)),a=r(n(6479)),o=r(n(94863)),s=r(n(93078));r(n(42473));var u=r(n(94811)),c=r(n(40226)),l=r(n(21091)),f=r(n(45184)),d=r(n(80743)),h=r(n(59591)),p=r(n(5324)),b=r(n(15406)),m=r(n(88676));function g(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.breakpoints,r=void 0===n?{}:n,g=t.mixins,v=void 0===g?{}:g,y=t.palette,w=void 0===y?{}:y,_=t.shadows,E=t.spacing,S=void 0===E?{}:E,k=t.typography,x=void 0===k?{}:k,T=(0,a.default)(t,["breakpoints","mixins","palette","shadows","spacing","typography"]),M=(0,l.default)(w),O=(0,u.default)(r),A=(0,i.default)({},p.default,S);return(0,i.default)({breakpoints:O,direction:"ltr",mixins:(0,c.default)(O,A,v),overrides:{},palette:M,props:{},shadows:_||d.default,typography:(0,f.default)(M,x)},(0,o.default)({shape:h.default,spacing:A,transitions:b.default,zIndex:m.default},T,{isMergeableObject:s.default}))}var v=g;t.default=v},21091(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=m,t.dark=t.light=void 0;var i=r(n(67154)),a=r(n(6479));r(n(42473));var o=r(n(94863)),s=r(n(78768)),u=r(n(124)),c=r(n(70167)),l=r(n(83165)),f=r(n(515)),d=n(59114),h={text:{primary:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.54)",disabled:"rgba(0, 0, 0, 0.38)",hint:"rgba(0, 0, 0, 0.38)"},divider:"rgba(0, 0, 0, 0.12)",background:{paper:f.default.white,default:c.default[50]},action:{active:"rgba(0, 0, 0, 0.54)",hover:"rgba(0, 0, 0, 0.08)",hoverOpacity:.08,selected:"rgba(0, 0, 0, 0.14)",disabled:"rgba(0, 0, 0, 0.26)",disabledBackground:"rgba(0, 0, 0, 0.12)"}};t.light=h;var p={text:{primary:f.default.white,secondary:"rgba(255, 255, 255, 0.7)",disabled:"rgba(255, 255, 255, 0.5)",hint:"rgba(255, 255, 255, 0.5)",icon:"rgba(255, 255, 255, 0.5)"},divider:"rgba(255, 255, 255, 0.12)",background:{paper:c.default[800],default:"#303030"},action:{active:f.default.white,hover:"rgba(255, 255, 255, 0.1)",hoverOpacity:.1,selected:"rgba(255, 255, 255, 0.2)",disabled:"rgba(255, 255, 255, 0.3)",disabledBackground:"rgba(255, 255, 255, 0.12)"}};function b(e,t,n,r){e[t]||(e.hasOwnProperty(n)?e[t]=e[n]:"light"===t?e.light=(0,d.lighten)(e.main,r):"dark"===t&&(e.dark=(0,d.darken)(e.main,1.5*r)))}function m(e){var t=e.primary,n=void 0===t?{light:s.default[300],main:s.default[500],dark:s.default[700]}:t,r=e.secondary,m=void 0===r?{light:u.default.A200,main:u.default.A400,dark:u.default.A700}:r,g=e.error,v=void 0===g?{light:l.default[300],main:l.default[500],dark:l.default[700]}:g,y=e.type,w=void 0===y?"light":y,_=e.contrastThreshold,E=void 0===_?3:_,S=e.tonalOffset,k=void 0===S?.2:S,x=(0,a.default)(e,["primary","secondary","error","type","contrastThreshold","tonalOffset"]);function T(e){var t;return(0,d.getContrastRatio)(e,p.text.primary)>=E?p.text.primary:h.text.primary}function M(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:500,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:300,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:700;return!e.main&&e[t]&&(e.main=e[t]),b(e,"light",n,k),b(e,"dark",r,k),e.contrastText||(e.contrastText=T(e.main)),e}M(n),M(m,"A400","A200","A700"),M(v);var O={dark:p,light:h};return(0,o.default)((0,i.default)({common:f.default,type:w,primary:n,secondary:m,error:v,grey:c.default,contrastThreshold:E,getContrastText:T,augmentColor:M,tonalOffset:k},O[w]),x,{clone:!1})}t.dark=p},16059(e,t){"use strict";function n(e){return e}Object.defineProperty(t,"__esModule",{value:!0}),t.default=n},45184(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=f;var i=r(n(67154)),a=r(n(6479)),o=r(n(94863));r(n(42473));var s=n(55252);function u(e){return Math.round(1e5*e)/1e5}var c={textTransform:"uppercase"},l='"Roboto", "Helvetica", "Arial", sans-serif';function f(e,t){var n="function"==typeof t?t(e):t,r=n.fontFamily,f=void 0===r?l:r,d=n.fontSize,h=void 0===d?14:d,p=n.fontWeightLight,b=void 0===p?300:p,m=n.fontWeightRegular,g=void 0===m?400:m,v=n.fontWeightMedium,y=void 0===v?500:v,w=n.htmlFontSize,_=void 0===w?16:w,E=n.useNextVariants,S=void 0===E?Boolean(s.ponyfillGlobal.__MUI_USE_NEXT_TYPOGRAPHY_VARIANTS__):E,k=(n.suppressWarning,n.allVariants),x=(0,a.default)(n,["fontFamily","fontSize","fontWeightLight","fontWeightRegular","fontWeightMedium","htmlFontSize","useNextVariants","suppressWarning","allVariants"]),T=h/14,M=function(e){return"".concat(e/_*T,"rem")},O=function(t,n,r,a,o){return(0,i.default)({color:e.text.primary,fontFamily:f,fontWeight:t,fontSize:M(n),lineHeight:r},f===l?{letterSpacing:"".concat(u(a/n),"em")}:{},o,k)},A={h1:O(b,96,1,-1.5),h2:O(b,60,1,-.5),h3:O(g,48,1.04,0),h4:O(g,34,1.17,.25),h5:O(g,24,1.33,0),h6:O(y,20,1.6,.15),subtitle1:O(g,16,1.75,.15),subtitle2:O(y,14,1.57,.1),body1Next:O(g,16,1.5,.15),body2Next:O(g,14,1.5,.15),buttonNext:O(y,14,1.75,.4,c),captionNext:O(g,12,1.66,.4),overline:O(g,12,2.66,1,c)},L={display4:(0,i.default)({fontSize:M(112),fontWeight:b,fontFamily:f,letterSpacing:"-.04em",lineHeight:"".concat(u(128/112),"em"),marginLeft:"-.04em",color:e.text.secondary},k),display3:(0,i.default)({fontSize:M(56),fontWeight:g,fontFamily:f,letterSpacing:"-.02em",lineHeight:"".concat(u(73/56),"em"),marginLeft:"-.02em",color:e.text.secondary},k),display2:(0,i.default)({fontSize:M(45),fontWeight:g,fontFamily:f,lineHeight:"".concat(u(51/45),"em"),marginLeft:"-.02em",color:e.text.secondary},k),display1:(0,i.default)({fontSize:M(34),fontWeight:g,fontFamily:f,lineHeight:"".concat(u(41/34),"em"),color:e.text.secondary},k),headline:(0,i.default)({fontSize:M(24),fontWeight:g,fontFamily:f,lineHeight:"".concat(u(32.5/24),"em"),color:e.text.primary},k),title:(0,i.default)({fontSize:M(21),fontWeight:y,fontFamily:f,lineHeight:"".concat(u(24.5/21),"em"),color:e.text.primary},k),subheading:(0,i.default)({fontSize:M(16),fontWeight:g,fontFamily:f,lineHeight:"".concat(u(1.5),"em"),color:e.text.primary},k),body2:(0,i.default)({fontSize:M(14),fontWeight:y,fontFamily:f,lineHeight:"".concat(u(24/14),"em"),color:e.text.primary},k),body1:(0,i.default)({fontSize:M(14),fontWeight:g,fontFamily:f,lineHeight:"".concat(u(20.5/14),"em"),color:e.text.primary},k),caption:(0,i.default)({fontSize:M(12),fontWeight:g,fontFamily:f,lineHeight:"".concat(u(1.375),"em"),color:e.text.secondary},k),button:(0,i.default)({fontSize:M(14),textTransform:"uppercase",fontWeight:y,fontFamily:f,color:e.text.primary},k)};return(0,o.default)((0,i.default)({pxToRem:M,round:u,fontFamily:f,fontSize:h,fontWeightLight:b,fontWeightRegular:g,fontWeightMedium:y},L,A,S?{body1:A.body1Next,body2:A.body2Next,button:A.buttonNext,caption:A.captionNext}:{},{useNextVariants:S}),x,{clone:!1})}},42458(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(67154));r(n(50008)),r(n(42473));var a=r(n(94863));function o(e,t){return t}function s(e){var t="function"==typeof e;function n(n,r){var s=t?e(n):e;if(!r||!n.overrides||!n.overrides[r])return s;var u=n.overrides[r],c=(0,i.default)({},s);return Object.keys(u).forEach(function(e){c[e]=(0,a.default)(c[e],u[e],{arrayMerge:o})}),c}return{create:n,options:{},themingEnabled:t}}var u=s;t.default=u},58057(e,t){"use strict";function n(e){var t,n=e.theme,r=e.name,i=e.props;if(!n.props||!r||!n.props[r])return i;var a=n.props[r];for(t in a)void 0===i[t]&&(i[t]=a[t]);return i}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=n;t.default=r},32316(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"createGenerateClassName",{enumerable:!0,get:function(){return i.default}}),Object.defineProperty(t,"createMuiTheme",{enumerable:!0,get:function(){return a.default}}),Object.defineProperty(t,"jssPreset",{enumerable:!0,get:function(){return o.default}}),Object.defineProperty(t,"MuiThemeProvider",{enumerable:!0,get:function(){return s.default}}),Object.defineProperty(t,"createStyles",{enumerable:!0,get:function(){return u.default}}),Object.defineProperty(t,"withStyles",{enumerable:!0,get:function(){return c.default}}),Object.defineProperty(t,"withTheme",{enumerable:!0,get:function(){return l.default}});var i=r(n(20237)),a=r(n(71615)),o=r(n(9399)),s=r(n(72366)),u=r(n(16059)),c=r(n(78252)),l=r(n(82313))},9399(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(29059)),a=r(n(28752)),o=r(n(35828)),s=r(n(50462)),u=r(n(65926)),c=r(n(89347));function l(){return{plugins:[(0,i.default)(),(0,a.default)(),(0,o.default)(),(0,s.default)(),"undefined"==typeof window?null:(0,u.default)(),(0,c.default)()]}}var f=l;t.default=f},35199(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(67154));function a(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.baseClasses,n=e.newClasses;if(e.Component,!n)return t;var r=(0,i.default)({},t);return Object.keys(n).forEach(function(e){n[e]&&(r[e]="".concat(t[e]," ").concat(n[e]))}),r}r(n(42473)),n(55252);var o=a;t.default=o},88693(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n={set:function(e,t,n,r){var i=e.get(t);i||(i=new Map,e.set(t,i)),i.set(n,r)},get:function(e,t,n){var r=e.get(t);return r?r.get(n):void 0},delete:function(e,t,n){e.get(t).delete(n)}};t.default=n},31898(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n={jss:"64a55d578f856d258dc345b094a2a2b3",sheetsRegistry:"d4bd0baacbc52bbd48bbb9eb24344ecd",sheetOptions:"6fc570d6bd61383819d0f9e7407c452d"};t.default=n},80743(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=.2,r=.14,i=.12;function a(){return["".concat(arguments.length<=0?void 0:arguments[0],"px ").concat(arguments.length<=1?void 0:arguments[1],"px ").concat(arguments.length<=2?void 0:arguments[2],"px ").concat(arguments.length<=3?void 0:arguments[3],"px rgba(0,0,0,").concat(n,")"),"".concat(arguments.length<=4?void 0:arguments[4],"px ").concat(arguments.length<=5?void 0:arguments[5],"px ").concat(arguments.length<=6?void 0:arguments[6],"px ").concat(arguments.length<=7?void 0:arguments[7],"px rgba(0,0,0,").concat(r,")"),"".concat(arguments.length<=8?void 0:arguments[8],"px ").concat(arguments.length<=9?void 0:arguments[9],"px ").concat(arguments.length<=10?void 0:arguments[10],"px ").concat(arguments.length<=11?void 0:arguments[11],"px rgba(0,0,0,").concat(i,")")].join(",")}var o=["none",a(0,1,3,0,0,1,1,0,0,2,1,-1),a(0,1,5,0,0,2,2,0,0,3,1,-2),a(0,1,8,0,0,3,4,0,0,3,3,-2),a(0,2,4,-1,0,4,5,0,0,1,10,0),a(0,3,5,-1,0,5,8,0,0,1,14,0),a(0,3,5,-1,0,6,10,0,0,1,18,0),a(0,4,5,-2,0,7,10,1,0,2,16,1),a(0,5,5,-3,0,8,10,1,0,3,14,2),a(0,5,6,-3,0,9,12,1,0,3,16,2),a(0,6,6,-3,0,10,14,1,0,4,18,3),a(0,6,7,-4,0,11,15,1,0,4,20,3),a(0,7,8,-4,0,12,17,2,0,5,22,4),a(0,7,8,-4,0,13,19,2,0,5,24,4),a(0,7,9,-4,0,14,21,2,0,5,26,4),a(0,8,9,-5,0,15,22,2,0,6,28,5),a(0,8,10,-5,0,16,24,2,0,6,30,5),a(0,8,11,-5,0,17,26,2,0,6,32,5),a(0,9,11,-5,0,18,28,2,0,7,34,6),a(0,9,12,-6,0,19,29,2,0,7,36,6),a(0,10,13,-6,0,20,31,3,0,8,38,7),a(0,10,13,-6,0,21,33,3,0,8,40,7),a(0,10,14,-6,0,22,35,3,0,8,42,7),a(0,11,14,-7,0,23,36,3,0,9,44,8),a(0,11,15,-7,0,24,38,3,0,9,46,8)];t.default=o},59591(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n={borderRadius:4};t.default=n},5324(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n={unit:8};t.default=n},51067(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.CHANNEL=void 0;var i=r(n(59713)),a="__THEMING__";t.CHANNEL=a;var o={contextTypes:(0,i.default)({},a,function(){}),initial:function(e){return e[a]?e[a].getState():null},subscribe:function(e,t){return e[a]?e[a].subscribe(t):null},unsubscribe:function(e,t){e[a]&&e[a].unsubscribe(t)}};t.default=o},15406(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.isNumber=t.isString=t.formatMs=t.duration=t.easing=void 0;var i=r(n(6479));r(n(42473));var a={easeInOut:"cubic-bezier(0.4, 0, 0.2, 1)",easeOut:"cubic-bezier(0.0, 0, 0.2, 1)",easeIn:"cubic-bezier(0.4, 0, 1, 1)",sharp:"cubic-bezier(0.4, 0, 0.6, 1)"};t.easing=a;var o={shortest:150,shorter:200,short:250,standard:300,complex:375,enteringScreen:225,leavingScreen:195};t.duration=o;var s=function(e){return"".concat(Math.round(e),"ms")};t.formatMs=s;var u=function(e){return"string"==typeof e};t.isString=u;var c=function(e){return!isNaN(parseFloat(e))};t.isNumber=c;var l={easing:a,duration:o,create:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:["all"],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.duration,r=void 0===n?o.standard:n,u=t.easing,c=void 0===u?a.easeInOut:u,l=t.delay,f=void 0===l?0:l;return(0,i.default)(t,["duration","easing","delay"]),(Array.isArray(e)?e:[e]).map(function(e){return"".concat(e," ").concat("string"==typeof r?r:s(r)," ").concat(c," ").concat("string"==typeof f?f:s(f))}).join(",")},getAutoHeightDuration:function(e){if(!e)return 0;var t=e/36;return Math.round((4+15*Math.pow(t,.25)+t/5)*10)}};t.default=l},78252(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.sheetsManager=void 0;var i=r(n(59713)),a=r(n(67154)),o=r(n(34575)),s=r(n(93913)),u=r(n(78585)),c=r(n(29754)),l=r(n(2205)),f=r(n(6479)),d=r(n(67294)),h=r(n(45697));r(n(42473));var p=r(n(8679)),b=n(55252),m=n(55690),g=r(n(31898)),v=r(n(9399)),y=r(n(35199)),w=r(n(88693)),_=r(n(71615)),E=r(n(51067)),S=r(n(20237)),k=r(n(42458)),x=r(n(58057)),T=(0,m.create)((0,v.default)()),M=(0,S.default)(),O=-1e11,A=new Map;t.sheetsManager=A;var L={},C=(0,_.default)({typography:{suppressWarning:!0}}),I=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function(n){var r,b=t.withTheme,m=void 0!==b&&b,v=t.flip,_=void 0===v?null:v,S=t.name,I=(0,f.default)(t,["withTheme","flip","name"]),D=(0,k.default)(e),N=D.themingEnabled||"string"==typeof S||m;O+=1,D.options.index=O;var P=function(e){function t(e,n){(0,o.default)(this,t),(r=(0,u.default)(this,(0,c.default)(t).call(this,e,n))).jss=n[g.default.jss]||T,r.sheetsManager=A,r.unsubscribeId=null;var r,i=n.muiThemeProviderOptions;return i&&(i.sheetsManager&&(r.sheetsManager=i.sheetsManager),r.sheetsCache=i.sheetsCache,r.disableStylesGeneration=i.disableStylesGeneration),r.stylesCreatorSaved=D,r.sheetOptions=(0,a.default)({generateClassName:M},n[g.default.sheetOptions]),r.theme=N?E.default.initial(n)||C:L,r.attach(r.theme),r.cacheClasses={value:null,lastProp:null,lastJSS:{}},r}return(0,l.default)(t,e),(0,s.default)(t,[{key:"componentDidMount",value:function(){var e=this;N&&(this.unsubscribeId=E.default.subscribe(this.context,function(t){var n=e.theme;e.theme=t,e.attach(e.theme),e.setState({},function(){e.detach(n)})}))}},{key:"componentDidUpdate",value:function(){this.stylesCreatorSaved}},{key:"componentWillUnmount",value:function(){this.detach(this.theme),null!==this.unsubscribeId&&E.default.unsubscribe(this.context,this.unsubscribeId)}},{key:"getClasses",value:function(){if(this.disableStylesGeneration)return this.props.classes||{};var e=!1,t=w.default.get(this.sheetsManager,this.stylesCreatorSaved,this.theme);return t.sheet.classes!==this.cacheClasses.lastJSS&&(this.cacheClasses.lastJSS=t.sheet.classes,e=!0),this.props.classes!==this.cacheClasses.lastProp&&(this.cacheClasses.lastProp=this.props.classes,e=!0),e&&(this.cacheClasses.value=(0,y.default)({baseClasses:this.cacheClasses.lastJSS,newClasses:this.props.classes,Component:n})),this.cacheClasses.value}},{key:"attach",value:function(e){if(!this.disableStylesGeneration){var t=this.stylesCreatorSaved,n=w.default.get(this.sheetsManager,t,e);if(n||(n={refs:0,sheet:null},w.default.set(this.sheetsManager,t,e,n)),0===n.refs){this.sheetsCache&&(r=w.default.get(this.sheetsCache,t,e)),!r&&((r=this.createSheet(e)).attach(),this.sheetsCache&&w.default.set(this.sheetsCache,t,e,r)),n.sheet=r;var r,i=this.context[g.default.sheetsRegistry];i&&i.add(r)}n.refs+=1}}},{key:"createSheet",value:function(e){var t=this.stylesCreatorSaved.create(e,S),r=S;return this.jss.createStyleSheet(t,(0,a.default)({meta:r,classNamePrefix:r,flip:"boolean"==typeof _?_:"rtl"===e.direction,link:!1},this.sheetOptions,this.stylesCreatorSaved.options,{name:S||n.displayName},I))}},{key:"detach",value:function(e){if(!this.disableStylesGeneration){var t=w.default.get(this.sheetsManager,this.stylesCreatorSaved,e);if(t.refs-=1,0===t.refs){w.default.delete(this.sheetsManager,this.stylesCreatorSaved,e),this.jss.removeStyleSheet(t.sheet);var n=this.context[g.default.sheetsRegistry];n&&n.remove(t.sheet)}}}},{key:"render",value:function(){var e=this.props,t=(e.classes,e.innerRef),r=(0,f.default)(e,["classes","innerRef"]),i=(0,x.default)({theme:this.theme,name:S,props:r});return m&&!i.theme&&(i.theme=this.theme),d.default.createElement(n,(0,a.default)({},i,{classes:this.getClasses(),ref:t}))}}]),t}(d.default.Component);return P.contextTypes=(0,a.default)((r={muiThemeProviderOptions:h.default.object},(0,i.default)(r,g.default.jss,h.default.object),(0,i.default)(r,g.default.sheetOptions,h.default.object),(0,i.default)(r,g.default.sheetsRegistry,h.default.object),r),N?E.default.contextTypes:{}),(0,p.default)(P,n),P}};b.ponyfillGlobal.__MUI_STYLES__||(b.ponyfillGlobal.__MUI_STYLES__={}),b.ponyfillGlobal.__MUI_STYLES__.withStyles||(b.ponyfillGlobal.__MUI_STYLES__.withStyles=I);var D=function(e,t){return b.ponyfillGlobal.__MUI_STYLES__.withStyles(e,(0,a.default)({defaultTheme:C},t))};t.default=D},82313(e,t,n){"use strict";var r,i=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=i(n(67154)),o=i(n(6479)),s=i(n(34575)),u=i(n(93913)),c=i(n(78585)),l=i(n(29754)),f=i(n(2205)),d=i(n(67294));i(n(45697));var h=i(n(8679)),p=n(55252),b=i(n(71615)),m=i(n(51067));function g(){return r||(r=(0,b.default)({typography:{suppressWarning:!0}}))}var v=function(){return function(e){var t=function(t){function n(e,t){var r;return(0,s.default)(this,n),(r=(0,c.default)(this,(0,l.default)(n).call(this))).state={theme:m.default.initial(t)||g()},r}return(0,f.default)(n,t),(0,u.default)(n,[{key:"componentDidMount",value:function(){var e=this;this.unsubscribeId=m.default.subscribe(this.context,function(t){e.setState({theme:t})})}},{key:"componentWillUnmount",value:function(){null!==this.unsubscribeId&&m.default.unsubscribe(this.context,this.unsubscribeId)}},{key:"render",value:function(){var t=this.props,n=t.innerRef,r=(0,o.default)(t,["innerRef"]);return d.default.createElement(e,(0,a.default)({theme:this.state.theme,ref:n},r))}}]),n}(d.default.Component);return t.contextTypes=m.default.contextTypes,(0,h.default)(t,e),t}};p.ponyfillGlobal.__MUI_STYLES__||(p.ponyfillGlobal.__MUI_STYLES__={}),p.ponyfillGlobal.__MUI_STYLES__.withTheme||(p.ponyfillGlobal.__MUI_STYLES__.withTheme=v);var y=p.ponyfillGlobal.__MUI_STYLES__.withTheme;t.default=y},88676(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n={mobileStepper:1e3,appBar:1100,drawer:1200,modal:1300,snackbar:1400,tooltip:1500};t.default=n},41929(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getTransitionProps=r,t.reflow=void 0;var n=function(e){return e.scrollTop};function r(e,t){var n=e.timeout,r=e.style,i=void 0===r?{}:r;return{duration:i.transitionDuration||"number"==typeof n?n:n[t.mode],delay:i.transitionDelay}}t.reflow=n},346(e,t){"use strict";function n(e,t){return function(){return null}}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=n;t.default=r},98741(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.capitalize=a,t.contains=o,t.findIndex=s,t.find=u,t.createChainedFunction=c;var i=r(n(50008));function a(e){return e.charAt(0).toUpperCase()+e.slice(1)}function o(e,t){return Object.keys(t).every(function(n){return e.hasOwnProperty(n)&&e[n]===t[n]})}function s(e,t){for(var n=(0,i.default)(t),r=0;r-1?e[n]:void 0}function c(){for(var e=arguments.length,t=Array(e),n=0;n1&&void 0!==arguments[1]?arguments[1]:window,n=(0,i.default)(e);return n.defaultView||n.parentView||t}var o=a;t.default=o},44370(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.cloneElementWithClassName=o,t.cloneChildrenWithClassName=s,t.isMuiElement=u,t.setRef=c;var i=r(n(67294)),a=r(n(94184));function o(e,t){return i.default.cloneElement(e,{className:(0,a.default)(e.props.className,t)})}function s(e,t){return i.default.Children.map(e,function(e){return i.default.isValidElement(e)&&o(e,t)})}function u(e,t){return i.default.isValidElement(e)&&-1!==t.indexOf(e.type.muiName)}function c(e,t){"function"==typeof e?e(t):e&&(e.current=t)}},47348(e,t){"use strict";function n(e){return function(){return null}}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=n;t.default=r},21677(e,t){"use strict";function n(e,t,n,r,i){return null}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=n;t.default=r},78290(e,t,n){"use strict";var r=n(20862);Object.defineProperty(t,"__esModule",{value:!0});var i={};Object.defineProperty(t,"default",{enumerable:!0,get:function(){return a.default}});var a=r(n(88446));Object.keys(a).forEach(function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(i,e)||Object.defineProperty(t,e,{enumerable:!0,get:function(){return a[e]}}))})},88446(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.isWidthDown=t.isWidthUp=void 0;var i=r(n(67154)),a=r(n(6479)),o=r(n(34575)),s=r(n(93913)),u=r(n(78585)),c=r(n(29754)),l=r(n(2205)),f=r(n(67294));r(n(45697));var d=r(n(96421)),h=r(n(20296));n(55252);var p=r(n(8679)),b=r(n(82313)),m=n(94811),g=r(n(58057)),v=function(e,t){var n=!(arguments.length>2)||void 0===arguments[2]||arguments[2];return n?m.keys.indexOf(e)<=m.keys.indexOf(t):m.keys.indexOf(e)2)||void 0===arguments[2]||arguments[2];return n?m.keys.indexOf(t)<=m.keys.indexOf(e):m.keys.indexOf(t)0&&void 0!==arguments[0]?arguments[0]:{};return function(t){var n=e.withTheme,r=void 0!==n&&n,v=e.noSSR,y=void 0!==v&&v,w=e.initialWidth,_=e.resizeInterval,E=void 0===_?166:_,S=function(e){function n(e){var t;return(0,o.default)(this,n),(t=(0,u.default)(this,(0,c.default)(n).call(this,e))).state={width:y?t.getWidth():void 0},"undefined"!=typeof window&&(t.handleResize=(0,h.default)(function(){var e=t.getWidth();e!==t.state.width&&t.setState({width:e})},E)),t}return(0,l.default)(n,e),(0,s.default)(n,[{key:"componentDidMount",value:function(){var e=this.getWidth();e!==this.state.width&&this.setState({width:e})}},{key:"componentWillUnmount",value:function(){this.handleResize.clear()}},{key:"getWidth",value:function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.innerWidth,t=this.props.theme.breakpoints,n=null,r=1;null===n&&ri.Z,componentPropType:()=>r.Z,exactProp:()=>a.ZP,getDisplayName:()=>o.ZP,ponyfillGlobal:()=>s.Z});var r=n(78728),i=n(5477),a=n(43781),o=n(25189),s=n(34712);/** @license Material-UI v3.0.0-alpha.3 + */ var r=n(47798);function i(e){return!0===r(e)&&"[object Object]"===Object.prototype.toString.call(e)}e.exports=function(e){var t,n;return!1!==i(e)&&"function"==typeof(t=e.constructor)&&!1!==i(n=t.prototype)&&!1!==n.hasOwnProperty("isPrototypeOf")}},72366(e,t,n){"use strict";var r=n(75263),i=n(64836);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.MuiThemeProviderOld=void 0;var a=i(n(10434)),o=i(n(38416)),s=i(n(56690)),u=i(n(89728)),c=i(n(94993)),l=i(n(73808)),f=i(n(61655)),d=i(n(67294)),h=i(n(45697));i(n(42473));var p=i(n(43890)),b=n(55252),m=r(n(51067)),g=function(e){function t(e,n){var r;return(0,s.default)(this,t),(r=(0,c.default)(this,(0,l.default)(t).call(this))).broadcast=(0,p.default)(),r.outerTheme=m.default.initial(n),r.broadcast.setState(r.mergeOuterLocalTheme(e.theme)),r}return(0,f.default)(t,e),(0,u.default)(t,[{key:"getChildContext",value:function(){var e,t=this.props,n=t.disableStylesGeneration,r=t.sheetsCache,i=t.sheetsManager,a=this.context.muiThemeProviderOptions||{};return void 0!==n&&(a.disableStylesGeneration=n),void 0!==r&&(a.sheetsCache=r),void 0!==i&&(a.sheetsManager=i),e={},(0,o.default)(e,m.CHANNEL,this.broadcast),(0,o.default)(e,"muiThemeProviderOptions",a),e}},{key:"componentDidMount",value:function(){var e=this;this.unsubscribeId=m.default.subscribe(this.context,function(t){e.outerTheme=t,e.broadcast.setState(e.mergeOuterLocalTheme(e.props.theme))})}},{key:"componentDidUpdate",value:function(e){this.props.theme!==e.theme&&this.broadcast.setState(this.mergeOuterLocalTheme(this.props.theme))}},{key:"componentWillUnmount",value:function(){null!==this.unsubscribeId&&m.default.unsubscribe(this.context,this.unsubscribeId)}},{key:"mergeOuterLocalTheme",value:function(e){return"function"==typeof e?e(this.outerTheme):this.outerTheme?(0,a.default)({},this.outerTheme,e):e}},{key:"render",value:function(){return this.props.children}}]),t}(d.default.Component);t.MuiThemeProviderOld=g,g.childContextTypes=(0,a.default)({},m.default.contextTypes,{muiThemeProviderOptions:h.default.object}),g.contextTypes=(0,a.default)({},m.default.contextTypes,{muiThemeProviderOptions:h.default.object}),b.ponyfillGlobal.__MUI_STYLES__||(b.ponyfillGlobal.__MUI_STYLES__={}),b.ponyfillGlobal.__MUI_STYLES__.MuiThemeProvider||(b.ponyfillGlobal.__MUI_STYLES__.MuiThemeProvider=g);var v=b.ponyfillGlobal.__MUI_STYLES__.MuiThemeProvider;t.default=v},59114(e,t,n){"use strict";var r=n(64836);function i(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;return en?n:e}function a(e){e=e.substr(1);var t=RegExp(".{1,".concat(e.length/3,"}"),"g"),n=e.match(t);return n&&1===n[0].length&&(n=n.map(function(e){return e+e})),n?"rgb(".concat(n.map(function(e){return parseInt(e,16)}).join(", "),")"):""}function o(e){if(0===e.indexOf("#"))return e;function t(e){var t=e.toString(16);return 1===t.length?"0".concat(t):t}var n=s(e).values;return n=n.map(function(e){return t(e)}),"#".concat(n.join(""))}function s(e){if("#"===e.charAt(0))return s(a(e));var t=e.indexOf("("),n=e.substring(0,t),r=e.substring(t+1,e.length-1).split(",");return r=r.map(function(e){return parseFloat(e)}),{type:n,values:r}}function u(e){var t=e.type,n=e.values;return -1!==t.indexOf("rgb")&&(n=n.map(function(e,t){return t<3?parseInt(e,10):e})),-1!==t.indexOf("hsl")&&(n[1]="".concat(n[1],"%"),n[2]="".concat(n[2],"%")),"".concat(e.type,"(").concat(n.join(", "),")")}function c(e,t){var n=l(e),r=l(t);return(Math.max(n,r)+.05)/(Math.min(n,r)+.05)}function l(e){var t=s(e);if(-1!==t.type.indexOf("rgb")){var n=t.values.map(function(e){return(e/=255)<=.03928?e/12.92:Math.pow((e+.055)/1.055,2.4)});return Number((.2126*n[0]+.7152*n[1]+.0722*n[2]).toFixed(3))}return t.values[2]/100}function f(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:.15;return l(e)>.5?h(e,t):p(e,t)}function d(e,t){return e?(e=s(e),t=i(t),("rgb"===e.type||"hsl"===e.type)&&(e.type+="a"),e.values[3]=t,u(e)):e}function h(e,t){if(!e)return e;if(e=s(e),t=i(t),-1!==e.type.indexOf("hsl"))e.values[2]*=1-t;else if(-1!==e.type.indexOf("rgb"))for(var n=0;n<3;n+=1)e.values[n]*=1-t;return u(e)}function p(e,t){if(!e)return e;if(e=s(e),t=i(t),-1!==e.type.indexOf("hsl"))e.values[2]+=(100-e.values[2])*t;else if(-1!==e.type.indexOf("rgb"))for(var n=0;n<3;n+=1)e.values[n]+=(255-e.values[n])*t;return u(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.convertHexToRGB=a,t.rgbToHex=o,t.decomposeColor=s,t.recomposeColor=u,t.getContrastRatio=c,t.getLuminance=l,t.emphasize=f,t.fade=d,t.darken=h,t.lighten=p,r(n(42473))},94811(e,t,n){"use strict";var r=n(64836);Object.defineProperty(t,"__esModule",{value:!0}),t.default=s,t.keys=void 0;var i=r(n(10434)),a=r(n(70215)),o=["xs","sm","md","lg","xl"];function s(e){var t=e.values,n=void 0===t?{xs:0,sm:600,md:960,lg:1280,xl:1920}:t,r=e.unit,s=void 0===r?"px":r,u=e.step,c=void 0===u?5:u,l=(0,a.default)(e,["values","unit","step"]);function f(e){var t="number"==typeof n[e]?n[e]:e;return"@media (min-width:".concat(t).concat(s,")")}function d(e){var t=o.indexOf(e)+1,r=n[o[t]];if(t===o.length)return f("xs");var i="number"==typeof r&&t>0?r:e;return"@media (max-width:".concat(i-c/100).concat(s,")")}function h(e,t){var r=o.indexOf(t)+1;return r===o.length?f(e):"@media (min-width:".concat(n[e]).concat(s,") and ")+"(max-width:".concat(n[o[r]]-c/100).concat(s,")")}function p(e){return h(e,e)}function b(e){return n[e]}return(0,i.default)({keys:o,values:n,up:f,down:d,between:h,only:p,width:b},l)}t.keys=o},20237(e,t,n){"use strict";var r=n(64836);Object.defineProperty(t,"__esModule",{value:!0}),t.default=o,r(n(42473));var i=/([[\].#*$><+~=|^:(),"'`\s])/g;function a(e){var t;return String(e).replace(i,"-")}function o(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.dangerouslyUseGlobalCSS,n=void 0!==t&&t,r=e.productionPrefix,i=void 0===r?"jss":r,o=e.seed,s=void 0===o?"":o,u=0;return function(e,t){return(u+=1,n&&t&&t.options.name)?"".concat(a(t.options.name),"-").concat(e.key):"".concat(i).concat(s).concat(u)}}},40226(e,t,n){"use strict";var r=n(64836);Object.defineProperty(t,"__esModule",{value:!0}),t.default=o;var i=r(n(38416)),a=r(n(10434));function o(e,t,n){var r;return(0,a.default)({gutters:function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return(0,a.default)({paddingLeft:2*t.unit,paddingRight:2*t.unit},n,(0,i.default)({},e.up("sm"),(0,a.default)({paddingLeft:3*t.unit,paddingRight:3*t.unit},n[e.up("sm")])))},toolbar:(r={minHeight:56},(0,i.default)(r,"".concat(e.up("xs")," and (orientation: landscape)"),{minHeight:48}),(0,i.default)(r,e.up("sm"),{minHeight:64}),r)},n)}},71615(e,t,n){"use strict";var r=n(64836);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,r(n(38416));var i=r(n(10434)),a=r(n(70215)),o=r(n(94863)),s=r(n(93078));r(n(42473));var u=r(n(94811)),c=r(n(40226)),l=r(n(21091)),f=r(n(45184)),d=r(n(80743)),h=r(n(59591)),p=r(n(5324)),b=r(n(15406)),m=r(n(88676));function g(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.breakpoints,r=void 0===n?{}:n,g=t.mixins,v=void 0===g?{}:g,y=t.palette,w=void 0===y?{}:y,_=t.shadows,E=t.spacing,S=void 0===E?{}:E,k=t.typography,x=void 0===k?{}:k,T=(0,a.default)(t,["breakpoints","mixins","palette","shadows","spacing","typography"]),M=(0,l.default)(w),O=(0,u.default)(r),A=(0,i.default)({},p.default,S);return(0,i.default)({breakpoints:O,direction:"ltr",mixins:(0,c.default)(O,A,v),overrides:{},palette:M,props:{},shadows:_||d.default,typography:(0,f.default)(M,x)},(0,o.default)({shape:h.default,spacing:A,transitions:b.default,zIndex:m.default},T,{isMergeableObject:s.default}))}var v=g;t.default=v},21091(e,t,n){"use strict";var r=n(64836);Object.defineProperty(t,"__esModule",{value:!0}),t.default=m,t.dark=t.light=void 0;var i=r(n(10434)),a=r(n(70215));r(n(42473));var o=r(n(94863)),s=r(n(78768)),u=r(n(124)),c=r(n(70167)),l=r(n(83165)),f=r(n(515)),d=n(59114),h={text:{primary:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.54)",disabled:"rgba(0, 0, 0, 0.38)",hint:"rgba(0, 0, 0, 0.38)"},divider:"rgba(0, 0, 0, 0.12)",background:{paper:f.default.white,default:c.default[50]},action:{active:"rgba(0, 0, 0, 0.54)",hover:"rgba(0, 0, 0, 0.08)",hoverOpacity:.08,selected:"rgba(0, 0, 0, 0.14)",disabled:"rgba(0, 0, 0, 0.26)",disabledBackground:"rgba(0, 0, 0, 0.12)"}};t.light=h;var p={text:{primary:f.default.white,secondary:"rgba(255, 255, 255, 0.7)",disabled:"rgba(255, 255, 255, 0.5)",hint:"rgba(255, 255, 255, 0.5)",icon:"rgba(255, 255, 255, 0.5)"},divider:"rgba(255, 255, 255, 0.12)",background:{paper:c.default[800],default:"#303030"},action:{active:f.default.white,hover:"rgba(255, 255, 255, 0.1)",hoverOpacity:.1,selected:"rgba(255, 255, 255, 0.2)",disabled:"rgba(255, 255, 255, 0.3)",disabledBackground:"rgba(255, 255, 255, 0.12)"}};function b(e,t,n,r){e[t]||(e.hasOwnProperty(n)?e[t]=e[n]:"light"===t?e.light=(0,d.lighten)(e.main,r):"dark"===t&&(e.dark=(0,d.darken)(e.main,1.5*r)))}function m(e){var t=e.primary,n=void 0===t?{light:s.default[300],main:s.default[500],dark:s.default[700]}:t,r=e.secondary,m=void 0===r?{light:u.default.A200,main:u.default.A400,dark:u.default.A700}:r,g=e.error,v=void 0===g?{light:l.default[300],main:l.default[500],dark:l.default[700]}:g,y=e.type,w=void 0===y?"light":y,_=e.contrastThreshold,E=void 0===_?3:_,S=e.tonalOffset,k=void 0===S?.2:S,x=(0,a.default)(e,["primary","secondary","error","type","contrastThreshold","tonalOffset"]);function T(e){var t;return(0,d.getContrastRatio)(e,p.text.primary)>=E?p.text.primary:h.text.primary}function M(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:500,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:300,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:700;return!e.main&&e[t]&&(e.main=e[t]),b(e,"light",n,k),b(e,"dark",r,k),e.contrastText||(e.contrastText=T(e.main)),e}M(n),M(m,"A400","A200","A700"),M(v);var O={dark:p,light:h};return(0,o.default)((0,i.default)({common:f.default,type:w,primary:n,secondary:m,error:v,grey:c.default,contrastThreshold:E,getContrastText:T,augmentColor:M,tonalOffset:k},O[w]),x,{clone:!1})}t.dark=p},16059(e,t){"use strict";function n(e){return e}Object.defineProperty(t,"__esModule",{value:!0}),t.default=n},45184(e,t,n){"use strict";var r=n(64836);Object.defineProperty(t,"__esModule",{value:!0}),t.default=f;var i=r(n(10434)),a=r(n(70215)),o=r(n(94863));r(n(42473));var s=n(55252);function u(e){return Math.round(1e5*e)/1e5}var c={textTransform:"uppercase"},l='"Roboto", "Helvetica", "Arial", sans-serif';function f(e,t){var n="function"==typeof t?t(e):t,r=n.fontFamily,f=void 0===r?l:r,d=n.fontSize,h=void 0===d?14:d,p=n.fontWeightLight,b=void 0===p?300:p,m=n.fontWeightRegular,g=void 0===m?400:m,v=n.fontWeightMedium,y=void 0===v?500:v,w=n.htmlFontSize,_=void 0===w?16:w,E=n.useNextVariants,S=void 0===E?Boolean(s.ponyfillGlobal.__MUI_USE_NEXT_TYPOGRAPHY_VARIANTS__):E,k=(n.suppressWarning,n.allVariants),x=(0,a.default)(n,["fontFamily","fontSize","fontWeightLight","fontWeightRegular","fontWeightMedium","htmlFontSize","useNextVariants","suppressWarning","allVariants"]),T=h/14,M=function(e){return"".concat(e/_*T,"rem")},O=function(t,n,r,a,o){return(0,i.default)({color:e.text.primary,fontFamily:f,fontWeight:t,fontSize:M(n),lineHeight:r},f===l?{letterSpacing:"".concat(u(a/n),"em")}:{},o,k)},A={h1:O(b,96,1,-1.5),h2:O(b,60,1,-.5),h3:O(g,48,1.04,0),h4:O(g,34,1.17,.25),h5:O(g,24,1.33,0),h6:O(y,20,1.6,.15),subtitle1:O(g,16,1.75,.15),subtitle2:O(y,14,1.57,.1),body1Next:O(g,16,1.5,.15),body2Next:O(g,14,1.5,.15),buttonNext:O(y,14,1.75,.4,c),captionNext:O(g,12,1.66,.4),overline:O(g,12,2.66,1,c)},L={display4:(0,i.default)({fontSize:M(112),fontWeight:b,fontFamily:f,letterSpacing:"-.04em",lineHeight:"".concat(u(128/112),"em"),marginLeft:"-.04em",color:e.text.secondary},k),display3:(0,i.default)({fontSize:M(56),fontWeight:g,fontFamily:f,letterSpacing:"-.02em",lineHeight:"".concat(u(73/56),"em"),marginLeft:"-.02em",color:e.text.secondary},k),display2:(0,i.default)({fontSize:M(45),fontWeight:g,fontFamily:f,lineHeight:"".concat(u(51/45),"em"),marginLeft:"-.02em",color:e.text.secondary},k),display1:(0,i.default)({fontSize:M(34),fontWeight:g,fontFamily:f,lineHeight:"".concat(u(41/34),"em"),color:e.text.secondary},k),headline:(0,i.default)({fontSize:M(24),fontWeight:g,fontFamily:f,lineHeight:"".concat(u(32.5/24),"em"),color:e.text.primary},k),title:(0,i.default)({fontSize:M(21),fontWeight:y,fontFamily:f,lineHeight:"".concat(u(24.5/21),"em"),color:e.text.primary},k),subheading:(0,i.default)({fontSize:M(16),fontWeight:g,fontFamily:f,lineHeight:"".concat(u(1.5),"em"),color:e.text.primary},k),body2:(0,i.default)({fontSize:M(14),fontWeight:y,fontFamily:f,lineHeight:"".concat(u(24/14),"em"),color:e.text.primary},k),body1:(0,i.default)({fontSize:M(14),fontWeight:g,fontFamily:f,lineHeight:"".concat(u(20.5/14),"em"),color:e.text.primary},k),caption:(0,i.default)({fontSize:M(12),fontWeight:g,fontFamily:f,lineHeight:"".concat(u(1.375),"em"),color:e.text.secondary},k),button:(0,i.default)({fontSize:M(14),textTransform:"uppercase",fontWeight:y,fontFamily:f,color:e.text.primary},k)};return(0,o.default)((0,i.default)({pxToRem:M,round:u,fontFamily:f,fontSize:h,fontWeightLight:b,fontWeightRegular:g,fontWeightMedium:y},L,A,S?{body1:A.body1Next,body2:A.body2Next,button:A.buttonNext,caption:A.captionNext}:{},{useNextVariants:S}),x,{clone:!1})}},42458(e,t,n){"use strict";var r=n(64836);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(10434));r(n(18698)),r(n(42473));var a=r(n(94863));function o(e,t){return t}function s(e){var t="function"==typeof e;function n(n,r){var s=t?e(n):e;if(!r||!n.overrides||!n.overrides[r])return s;var u=n.overrides[r],c=(0,i.default)({},s);return Object.keys(u).forEach(function(e){c[e]=(0,a.default)(c[e],u[e],{arrayMerge:o})}),c}return{create:n,options:{},themingEnabled:t}}var u=s;t.default=u},58057(e,t){"use strict";function n(e){var t,n=e.theme,r=e.name,i=e.props;if(!n.props||!r||!n.props[r])return i;var a=n.props[r];for(t in a)void 0===i[t]&&(i[t]=a[t]);return i}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=n;t.default=r},32316(e,t,n){"use strict";var r=n(64836);Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"createGenerateClassName",{enumerable:!0,get:function(){return i.default}}),Object.defineProperty(t,"createMuiTheme",{enumerable:!0,get:function(){return a.default}}),Object.defineProperty(t,"jssPreset",{enumerable:!0,get:function(){return o.default}}),Object.defineProperty(t,"MuiThemeProvider",{enumerable:!0,get:function(){return s.default}}),Object.defineProperty(t,"createStyles",{enumerable:!0,get:function(){return u.default}}),Object.defineProperty(t,"withStyles",{enumerable:!0,get:function(){return c.default}}),Object.defineProperty(t,"withTheme",{enumerable:!0,get:function(){return l.default}});var i=r(n(20237)),a=r(n(71615)),o=r(n(9399)),s=r(n(72366)),u=r(n(16059)),c=r(n(78252)),l=r(n(82313))},9399(e,t,n){"use strict";var r=n(64836);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(29059)),a=r(n(28752)),o=r(n(35828)),s=r(n(50462)),u=r(n(65926)),c=r(n(89347));function l(){return{plugins:[(0,i.default)(),(0,a.default)(),(0,o.default)(),(0,s.default)(),"undefined"==typeof window?null:(0,u.default)(),(0,c.default)()]}}var f=l;t.default=f},35199(e,t,n){"use strict";var r=n(64836);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(10434));function a(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.baseClasses,n=e.newClasses;if(e.Component,!n)return t;var r=(0,i.default)({},t);return Object.keys(n).forEach(function(e){n[e]&&(r[e]="".concat(t[e]," ").concat(n[e]))}),r}r(n(42473)),n(55252);var o=a;t.default=o},88693(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n={set:function(e,t,n,r){var i=e.get(t);i||(i=new Map,e.set(t,i)),i.set(n,r)},get:function(e,t,n){var r=e.get(t);return r?r.get(n):void 0},delete:function(e,t,n){e.get(t).delete(n)}};t.default=n},31898(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n={jss:"64a55d578f856d258dc345b094a2a2b3",sheetsRegistry:"d4bd0baacbc52bbd48bbb9eb24344ecd",sheetOptions:"6fc570d6bd61383819d0f9e7407c452d"};t.default=n},80743(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=.2,r=.14,i=.12;function a(){return["".concat(arguments.length<=0?void 0:arguments[0],"px ").concat(arguments.length<=1?void 0:arguments[1],"px ").concat(arguments.length<=2?void 0:arguments[2],"px ").concat(arguments.length<=3?void 0:arguments[3],"px rgba(0,0,0,").concat(n,")"),"".concat(arguments.length<=4?void 0:arguments[4],"px ").concat(arguments.length<=5?void 0:arguments[5],"px ").concat(arguments.length<=6?void 0:arguments[6],"px ").concat(arguments.length<=7?void 0:arguments[7],"px rgba(0,0,0,").concat(r,")"),"".concat(arguments.length<=8?void 0:arguments[8],"px ").concat(arguments.length<=9?void 0:arguments[9],"px ").concat(arguments.length<=10?void 0:arguments[10],"px ").concat(arguments.length<=11?void 0:arguments[11],"px rgba(0,0,0,").concat(i,")")].join(",")}var o=["none",a(0,1,3,0,0,1,1,0,0,2,1,-1),a(0,1,5,0,0,2,2,0,0,3,1,-2),a(0,1,8,0,0,3,4,0,0,3,3,-2),a(0,2,4,-1,0,4,5,0,0,1,10,0),a(0,3,5,-1,0,5,8,0,0,1,14,0),a(0,3,5,-1,0,6,10,0,0,1,18,0),a(0,4,5,-2,0,7,10,1,0,2,16,1),a(0,5,5,-3,0,8,10,1,0,3,14,2),a(0,5,6,-3,0,9,12,1,0,3,16,2),a(0,6,6,-3,0,10,14,1,0,4,18,3),a(0,6,7,-4,0,11,15,1,0,4,20,3),a(0,7,8,-4,0,12,17,2,0,5,22,4),a(0,7,8,-4,0,13,19,2,0,5,24,4),a(0,7,9,-4,0,14,21,2,0,5,26,4),a(0,8,9,-5,0,15,22,2,0,6,28,5),a(0,8,10,-5,0,16,24,2,0,6,30,5),a(0,8,11,-5,0,17,26,2,0,6,32,5),a(0,9,11,-5,0,18,28,2,0,7,34,6),a(0,9,12,-6,0,19,29,2,0,7,36,6),a(0,10,13,-6,0,20,31,3,0,8,38,7),a(0,10,13,-6,0,21,33,3,0,8,40,7),a(0,10,14,-6,0,22,35,3,0,8,42,7),a(0,11,14,-7,0,23,36,3,0,9,44,8),a(0,11,15,-7,0,24,38,3,0,9,46,8)];t.default=o},59591(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n={borderRadius:4};t.default=n},5324(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n={unit:8};t.default=n},51067(e,t,n){"use strict";var r=n(64836);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.CHANNEL=void 0;var i=r(n(38416)),a="__THEMING__";t.CHANNEL=a;var o={contextTypes:(0,i.default)({},a,function(){}),initial:function(e){return e[a]?e[a].getState():null},subscribe:function(e,t){return e[a]?e[a].subscribe(t):null},unsubscribe:function(e,t){e[a]&&e[a].unsubscribe(t)}};t.default=o},15406(e,t,n){"use strict";var r=n(64836);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.isNumber=t.isString=t.formatMs=t.duration=t.easing=void 0;var i=r(n(70215));r(n(42473));var a={easeInOut:"cubic-bezier(0.4, 0, 0.2, 1)",easeOut:"cubic-bezier(0.0, 0, 0.2, 1)",easeIn:"cubic-bezier(0.4, 0, 1, 1)",sharp:"cubic-bezier(0.4, 0, 0.6, 1)"};t.easing=a;var o={shortest:150,shorter:200,short:250,standard:300,complex:375,enteringScreen:225,leavingScreen:195};t.duration=o;var s=function(e){return"".concat(Math.round(e),"ms")};t.formatMs=s;var u=function(e){return"string"==typeof e};t.isString=u;var c=function(e){return!isNaN(parseFloat(e))};t.isNumber=c;var l={easing:a,duration:o,create:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:["all"],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.duration,r=void 0===n?o.standard:n,u=t.easing,c=void 0===u?a.easeInOut:u,l=t.delay,f=void 0===l?0:l;return(0,i.default)(t,["duration","easing","delay"]),(Array.isArray(e)?e:[e]).map(function(e){return"".concat(e," ").concat("string"==typeof r?r:s(r)," ").concat(c," ").concat("string"==typeof f?f:s(f))}).join(",")},getAutoHeightDuration:function(e){if(!e)return 0;var t=e/36;return Math.round((4+15*Math.pow(t,.25)+t/5)*10)}};t.default=l},78252(e,t,n){"use strict";var r=n(64836);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.sheetsManager=void 0;var i=r(n(38416)),a=r(n(10434)),o=r(n(56690)),s=r(n(89728)),u=r(n(94993)),c=r(n(73808)),l=r(n(61655)),f=r(n(70215)),d=r(n(67294)),h=r(n(45697));r(n(42473));var p=r(n(8679)),b=n(55252),m=n(55690),g=r(n(31898)),v=r(n(9399)),y=r(n(35199)),w=r(n(88693)),_=r(n(71615)),E=r(n(51067)),S=r(n(20237)),k=r(n(42458)),x=r(n(58057)),T=(0,m.create)((0,v.default)()),M=(0,S.default)(),O=-1e11,A=new Map;t.sheetsManager=A;var L={},C=(0,_.default)({typography:{suppressWarning:!0}}),I=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function(n){var r,b=t.withTheme,m=void 0!==b&&b,v=t.flip,_=void 0===v?null:v,S=t.name,I=(0,f.default)(t,["withTheme","flip","name"]),D=(0,k.default)(e),N=D.themingEnabled||"string"==typeof S||m;O+=1,D.options.index=O;var P=function(e){function t(e,n){(0,o.default)(this,t),(r=(0,u.default)(this,(0,c.default)(t).call(this,e,n))).jss=n[g.default.jss]||T,r.sheetsManager=A,r.unsubscribeId=null;var r,i=n.muiThemeProviderOptions;return i&&(i.sheetsManager&&(r.sheetsManager=i.sheetsManager),r.sheetsCache=i.sheetsCache,r.disableStylesGeneration=i.disableStylesGeneration),r.stylesCreatorSaved=D,r.sheetOptions=(0,a.default)({generateClassName:M},n[g.default.sheetOptions]),r.theme=N?E.default.initial(n)||C:L,r.attach(r.theme),r.cacheClasses={value:null,lastProp:null,lastJSS:{}},r}return(0,l.default)(t,e),(0,s.default)(t,[{key:"componentDidMount",value:function(){var e=this;N&&(this.unsubscribeId=E.default.subscribe(this.context,function(t){var n=e.theme;e.theme=t,e.attach(e.theme),e.setState({},function(){e.detach(n)})}))}},{key:"componentDidUpdate",value:function(){this.stylesCreatorSaved}},{key:"componentWillUnmount",value:function(){this.detach(this.theme),null!==this.unsubscribeId&&E.default.unsubscribe(this.context,this.unsubscribeId)}},{key:"getClasses",value:function(){if(this.disableStylesGeneration)return this.props.classes||{};var e=!1,t=w.default.get(this.sheetsManager,this.stylesCreatorSaved,this.theme);return t.sheet.classes!==this.cacheClasses.lastJSS&&(this.cacheClasses.lastJSS=t.sheet.classes,e=!0),this.props.classes!==this.cacheClasses.lastProp&&(this.cacheClasses.lastProp=this.props.classes,e=!0),e&&(this.cacheClasses.value=(0,y.default)({baseClasses:this.cacheClasses.lastJSS,newClasses:this.props.classes,Component:n})),this.cacheClasses.value}},{key:"attach",value:function(e){if(!this.disableStylesGeneration){var t=this.stylesCreatorSaved,n=w.default.get(this.sheetsManager,t,e);if(n||(n={refs:0,sheet:null},w.default.set(this.sheetsManager,t,e,n)),0===n.refs){this.sheetsCache&&(r=w.default.get(this.sheetsCache,t,e)),!r&&((r=this.createSheet(e)).attach(),this.sheetsCache&&w.default.set(this.sheetsCache,t,e,r)),n.sheet=r;var r,i=this.context[g.default.sheetsRegistry];i&&i.add(r)}n.refs+=1}}},{key:"createSheet",value:function(e){var t=this.stylesCreatorSaved.create(e,S),r=S;return this.jss.createStyleSheet(t,(0,a.default)({meta:r,classNamePrefix:r,flip:"boolean"==typeof _?_:"rtl"===e.direction,link:!1},this.sheetOptions,this.stylesCreatorSaved.options,{name:S||n.displayName},I))}},{key:"detach",value:function(e){if(!this.disableStylesGeneration){var t=w.default.get(this.sheetsManager,this.stylesCreatorSaved,e);if(t.refs-=1,0===t.refs){w.default.delete(this.sheetsManager,this.stylesCreatorSaved,e),this.jss.removeStyleSheet(t.sheet);var n=this.context[g.default.sheetsRegistry];n&&n.remove(t.sheet)}}}},{key:"render",value:function(){var e=this.props,t=(e.classes,e.innerRef),r=(0,f.default)(e,["classes","innerRef"]),i=(0,x.default)({theme:this.theme,name:S,props:r});return m&&!i.theme&&(i.theme=this.theme),d.default.createElement(n,(0,a.default)({},i,{classes:this.getClasses(),ref:t}))}}]),t}(d.default.Component);return P.contextTypes=(0,a.default)((r={muiThemeProviderOptions:h.default.object},(0,i.default)(r,g.default.jss,h.default.object),(0,i.default)(r,g.default.sheetOptions,h.default.object),(0,i.default)(r,g.default.sheetsRegistry,h.default.object),r),N?E.default.contextTypes:{}),(0,p.default)(P,n),P}};b.ponyfillGlobal.__MUI_STYLES__||(b.ponyfillGlobal.__MUI_STYLES__={}),b.ponyfillGlobal.__MUI_STYLES__.withStyles||(b.ponyfillGlobal.__MUI_STYLES__.withStyles=I);var D=function(e,t){return b.ponyfillGlobal.__MUI_STYLES__.withStyles(e,(0,a.default)({defaultTheme:C},t))};t.default=D},82313(e,t,n){"use strict";var r,i=n(64836);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=i(n(10434)),o=i(n(70215)),s=i(n(56690)),u=i(n(89728)),c=i(n(94993)),l=i(n(73808)),f=i(n(61655)),d=i(n(67294));i(n(45697));var h=i(n(8679)),p=n(55252),b=i(n(71615)),m=i(n(51067));function g(){return r||(r=(0,b.default)({typography:{suppressWarning:!0}}))}var v=function(){return function(e){var t=function(t){function n(e,t){var r;return(0,s.default)(this,n),(r=(0,c.default)(this,(0,l.default)(n).call(this))).state={theme:m.default.initial(t)||g()},r}return(0,f.default)(n,t),(0,u.default)(n,[{key:"componentDidMount",value:function(){var e=this;this.unsubscribeId=m.default.subscribe(this.context,function(t){e.setState({theme:t})})}},{key:"componentWillUnmount",value:function(){null!==this.unsubscribeId&&m.default.unsubscribe(this.context,this.unsubscribeId)}},{key:"render",value:function(){var t=this.props,n=t.innerRef,r=(0,o.default)(t,["innerRef"]);return d.default.createElement(e,(0,a.default)({theme:this.state.theme,ref:n},r))}}]),n}(d.default.Component);return t.contextTypes=m.default.contextTypes,(0,h.default)(t,e),t}};p.ponyfillGlobal.__MUI_STYLES__||(p.ponyfillGlobal.__MUI_STYLES__={}),p.ponyfillGlobal.__MUI_STYLES__.withTheme||(p.ponyfillGlobal.__MUI_STYLES__.withTheme=v);var y=p.ponyfillGlobal.__MUI_STYLES__.withTheme;t.default=y},88676(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n={mobileStepper:1e3,appBar:1100,drawer:1200,modal:1300,snackbar:1400,tooltip:1500};t.default=n},41929(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getTransitionProps=r,t.reflow=void 0;var n=function(e){return e.scrollTop};function r(e,t){var n=e.timeout,r=e.style,i=void 0===r?{}:r;return{duration:i.transitionDuration||"number"==typeof n?n:n[t.mode],delay:i.transitionDelay}}t.reflow=n},346(e,t){"use strict";function n(e,t){return function(){return null}}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=n;t.default=r},98741(e,t,n){"use strict";var r=n(64836);Object.defineProperty(t,"__esModule",{value:!0}),t.capitalize=a,t.contains=o,t.findIndex=s,t.find=u,t.createChainedFunction=c;var i=r(n(18698));function a(e){return e.charAt(0).toUpperCase()+e.slice(1)}function o(e,t){return Object.keys(t).every(function(n){return e.hasOwnProperty(n)&&e[n]===t[n]})}function s(e,t){for(var n=(0,i.default)(t),r=0;r-1?e[n]:void 0}function c(){for(var e=arguments.length,t=Array(e),n=0;n1&&void 0!==arguments[1]?arguments[1]:window,n=(0,i.default)(e);return n.defaultView||n.parentView||t}var o=a;t.default=o},44370(e,t,n){"use strict";var r=n(64836);Object.defineProperty(t,"__esModule",{value:!0}),t.cloneElementWithClassName=o,t.cloneChildrenWithClassName=s,t.isMuiElement=u,t.setRef=c;var i=r(n(67294)),a=r(n(94184));function o(e,t){return i.default.cloneElement(e,{className:(0,a.default)(e.props.className,t)})}function s(e,t){return i.default.Children.map(e,function(e){return i.default.isValidElement(e)&&o(e,t)})}function u(e,t){return i.default.isValidElement(e)&&-1!==t.indexOf(e.type.muiName)}function c(e,t){"function"==typeof e?e(t):e&&(e.current=t)}},47348(e,t){"use strict";function n(e){return function(){return null}}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=n;t.default=r},21677(e,t){"use strict";function n(e,t,n,r,i){return null}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=n;t.default=r},78290(e,t,n){"use strict";var r=n(75263);Object.defineProperty(t,"__esModule",{value:!0});var i={};Object.defineProperty(t,"default",{enumerable:!0,get:function(){return a.default}});var a=r(n(88446));Object.keys(a).forEach(function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(i,e)||Object.defineProperty(t,e,{enumerable:!0,get:function(){return a[e]}}))})},88446(e,t,n){"use strict";var r=n(64836);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.isWidthDown=t.isWidthUp=void 0;var i=r(n(10434)),a=r(n(70215)),o=r(n(56690)),s=r(n(89728)),u=r(n(94993)),c=r(n(73808)),l=r(n(61655)),f=r(n(67294));r(n(45697));var d=r(n(96421)),h=r(n(20296));n(55252);var p=r(n(8679)),b=r(n(82313)),m=n(94811),g=r(n(58057)),v=function(e,t){var n=!(arguments.length>2)||void 0===arguments[2]||arguments[2];return n?m.keys.indexOf(e)<=m.keys.indexOf(t):m.keys.indexOf(e)2)||void 0===arguments[2]||arguments[2];return n?m.keys.indexOf(t)<=m.keys.indexOf(e):m.keys.indexOf(t)0&&void 0!==arguments[0]?arguments[0]:{};return function(t){var n=e.withTheme,r=void 0!==n&&n,v=e.noSSR,y=void 0!==v&&v,w=e.initialWidth,_=e.resizeInterval,E=void 0===_?166:_,S=function(e){function n(e){var t;return(0,o.default)(this,n),(t=(0,u.default)(this,(0,c.default)(n).call(this,e))).state={width:y?t.getWidth():void 0},"undefined"!=typeof window&&(t.handleResize=(0,h.default)(function(){var e=t.getWidth();e!==t.state.width&&t.setState({width:e})},E)),t}return(0,l.default)(n,e),(0,s.default)(n,[{key:"componentDidMount",value:function(){var e=this.getWidth();e!==this.state.width&&this.setState({width:e})}},{key:"componentWillUnmount",value:function(){this.handleResize.clear()}},{key:"getWidth",value:function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.innerWidth,t=this.props.theme.breakpoints,n=null,r=1;null===n&&ri.Z,componentPropType:()=>r.Z,exactProp:()=>a.ZP,getDisplayName:()=>o.ZP,ponyfillGlobal:()=>s.Z});var r=n(78728),i=n(5477),a=n(43781),o=n(25189),s=n(34712);/** @license Material-UI v3.0.0-alpha.3 * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. @@ -35,12 +22,12 @@ PERFORMANCE OF THIS SOFTWARE. * Copyright(c) 2012-2014 Roman Shtylman * Copyright(c) 2015 Douglas Christopher Wilson * MIT Licensed - */ t.Q=s,n=u;var n,r=decodeURIComponent,i=encodeURIComponent,a=/; */,o=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/;function s(e,t){if("string"!=typeof e)throw TypeError("argument str must be a string");for(var n={},i=t||{},o=e.split(a),s=i.decode||r,u=0;u>8&255]},F=function(e){return[255&e,e>>8&255,e>>16&255,e>>24&255]},Y=function(e){return e[3]<<24|e[2]<<16|e[1]<<8|e[0]},B=function(e){return N(e,23,4)},U=function(e){return N(e,52,8)},H=function(e,t){g(e[x],t,{get:function(){return _(this)[t]}})},$=function(e,t,n,r){var i=d(n),a=_(e);if(i+t>a.byteLength)throw D(M);var o=_(a.buffer).bytes,s=i+a.byteOffset,u=o.slice(s,s+t);return r?u:u.reverse()},z=function(e,t,n,r,i,a){var o=d(n),s=_(e);if(o+t>s.byteLength)throw D(M);for(var u=_(s.buffer).bytes,c=o+s.byteOffset,l=r(+i),f=0;fV;)(G=K[V++])in A||o(A,G,O[G]);W.constructor=A}b&&p(C)!==I&&b(C,I);var q=new L(new A(2)),Z=C.setInt8;q.setInt8(0,2147483648),q.setInt8(1,2147483649),(q.getInt8(0)||!q.getInt8(1))&&s(C,{setInt8:function(e,t){Z.call(this,e,t<<24>>24)},setUint8:function(e,t){Z.call(this,e,t<<24>>24)}},{unsafe:!0})}else A=function(e){c(this,A,S);var t=d(e);E(this,{bytes:v.call(Array(t),0),byteLength:t}),i||(this.byteLength=t)},L=function(e,t,n){c(this,L,k),c(e,A,k);var r=_(e).byteLength,a=l(t);if(a<0||a>r)throw D("Wrong offset");if(n=void 0===n?r-a:f(n),a+n>r)throw D(T);E(this,{buffer:e,byteLength:n,byteOffset:a}),i||(this.buffer=e,this.byteLength=n,this.byteOffset=a)},i&&(H(A,"byteLength"),H(L,"buffer"),H(L,"byteLength"),H(L,"byteOffset")),s(L[x],{getInt8:function(e){return $(this,1,e)[0]<<24>>24},getUint8:function(e){return $(this,1,e)[0]},getInt16:function(e){var t=$(this,2,e,arguments.length>1?arguments[1]:void 0);return(t[1]<<8|t[0])<<16>>16},getUint16:function(e){var t=$(this,2,e,arguments.length>1?arguments[1]:void 0);return t[1]<<8|t[0]},getInt32:function(e){return Y($(this,4,e,arguments.length>1?arguments[1]:void 0))},getUint32:function(e){return Y($(this,4,e,arguments.length>1?arguments[1]:void 0))>>>0},getFloat32:function(e){return P($(this,4,e,arguments.length>1?arguments[1]:void 0),23)},getFloat64:function(e){return P($(this,8,e,arguments.length>1?arguments[1]:void 0),52)},setInt8:function(e,t){z(this,1,e,R,t)},setUint8:function(e,t){z(this,1,e,R,t)},setInt16:function(e,t){z(this,2,e,j,t,arguments.length>2?arguments[2]:void 0)},setUint16:function(e,t){z(this,2,e,j,t,arguments.length>2?arguments[2]:void 0)},setInt32:function(e,t){z(this,4,e,F,t,arguments.length>2?arguments[2]:void 0)},setUint32:function(e,t){z(this,4,e,F,t,arguments.length>2?arguments[2]:void 0)},setFloat32:function(e,t){z(this,4,e,B,t,arguments.length>2?arguments[2]:void 0)},setFloat64:function(e,t){z(this,8,e,U,t,arguments.length>2?arguments[2]:void 0)}});y(A,S),y(L,k),e.exports={ArrayBuffer:A,DataView:L}},1048(e,t,n){"use strict";var r=n(47908),i=n(51400),a=n(17466),o=Math.min;e.exports=[].copyWithin||function(e,t){var n=r(this),s=a(n.length),u=i(e,s),c=i(t,s),l=arguments.length>2?arguments[2]:void 0,f=o((void 0===l?s:i(l,s))-c,s-u),d=1;for(c0;)c in n?n[u]=n[c]:delete n[u],u+=d,c+=d;return n}},21285(e,t,n){"use strict";var r=n(47908),i=n(51400),a=n(17466);e.exports=function(e){for(var t=r(this),n=a(t.length),o=arguments.length,s=i(o>1?arguments[1]:void 0,n),u=o>2?arguments[2]:void 0,c=void 0===u?n:i(u,n);c>s;)t[s++]=e;return t}},18533(e,t,n){"use strict";var r=n(42092).forEach,i=n(9341)("forEach");e.exports=i?[].forEach:function(e){return r(this,e,arguments.length>1?arguments[1]:void 0)}},97745(e){e.exports=function(e,t){for(var n=0,r=t.length,i=new e(r);r>n;)i[n]=t[n++];return i}},48457(e,t,n){"use strict";var r=n(49974),i=n(47908),a=n(53411),o=n(97659),s=n(17466),u=n(86135),c=n(18554),l=n(71246);e.exports=function(e){var t,n,f,d,h,p,b=i(e),m="function"==typeof this?this:Array,g=arguments.length,v=g>1?arguments[1]:void 0,y=void 0!==v,w=l(b),_=0;if(y&&(v=r(v,g>2?arguments[2]:void 0,2)),void 0==w||m==Array&&o(w))for(t=s(b.length),n=new m(t);t>_;_++)p=y?v(b[_],_):b[_],u(n,_,p);else for(h=(d=c(b,w)).next,n=new m;!(f=h.call(d)).done;_++)p=y?a(d,v,[f.value,_],!0):f.value,u(n,_,p);return n.length=_,n}},61386(e,t,n){var r=n(49974),i=n(68361),a=n(47908),o=n(17466),s=n(34948),u=n(70030),c=n(97745),l=[].push;e.exports=function(e,t,n,f){for(var d,h,p,b=a(e),m=i(b),g=r(t,n,3),v=u(null),y=o(m.length),w=0;y>w;w++)(h=s(g(p=m[w],w,b)))in v?l.call(v[h],p):v[h]=[p];if(f&&(d=f(b))!==Array)for(h in v)v[h]=c(d,v[h]);return v}},41318(e,t,n){var r=n(45656),i=n(17466),a=n(51400),o=function(e){return function(t,n,o){var s,u=r(t),c=i(u.length),l=a(o,c);if(e&&n!=n){for(;c>l;)if((s=u[l++])!=s)return!0}else for(;c>l;l++)if((e||l in u)&&u[l]===n)return e||l||0;return!e&&-1}};e.exports={includes:o(!0),indexOf:o(!1)}},9671(e,t,n){var r=n(49974),i=n(68361),a=n(47908),o=n(17466),s=function(e){var t=1==e;return function(n,s,u){for(var c,l,f=a(n),d=i(f),h=r(s,u,3),p=o(d.length);p-- >0;)if(l=h(c=d[p],p,f))switch(e){case 0:return c;case 1:return p}return t?-1:void 0}};e.exports={findLast:s(0),findLastIndex:s(1)}},42092(e,t,n){var r=n(49974),i=n(68361),a=n(47908),o=n(17466),s=n(65417),u=[].push,c=function(e){var t=1==e,n=2==e,c=3==e,l=4==e,f=6==e,d=7==e,h=5==e||f;return function(p,b,m,g){for(var v,y,w=a(p),_=i(w),E=r(b,m,3),S=o(_.length),k=0,x=g||s,T=t?x(p,S):n||d?x(p,0):void 0;S>k;k++)if((h||k in _)&&(y=E(v=_[k],k,w),e)){if(t)T[k]=y;else if(y)switch(e){case 3:return!0;case 5:return v;case 6:return k;case 2:u.call(T,v)}else switch(e){case 4:return!1;case 7:u.call(T,v)}}return f?-1:c||l?l:T}};e.exports={forEach:c(0),map:c(1),filter:c(2),some:c(3),every:c(4),find:c(5),findIndex:c(6),filterReject:c(7)}},86583(e,t,n){"use strict";var r=n(45656),i=n(99958),a=n(17466),o=n(9341),s=Math.min,u=[].lastIndexOf,c=!!u&&1/[1].lastIndexOf(1,-0)<0,l=o("lastIndexOf"),f=c||!l;e.exports=f?function(e){if(c)return u.apply(this,arguments)||0;var t=r(this),n=a(t.length),o=n-1;for(arguments.length>1&&(o=s(o,i(arguments[1]))),o<0&&(o=n+o);o>=0;o--)if(o in t&&t[o]===e)return o||0;return -1}:u},81194(e,t,n){var r=n(47293),i=n(5112),a=n(7392),o=i("species");e.exports=function(e){return a>=51||!r(function(){var t=[];return(t.constructor={})[o]=function(){return{foo:1}},1!==t[e](Boolean).foo})}},9341(e,t,n){"use strict";var r=n(47293);e.exports=function(e,t){var n=[][e];return!!n&&r(function(){n.call(null,t||function(){throw 1},1)})}},53671(e,t,n){var r=n(13099),i=n(47908),a=n(68361),o=n(17466),s=function(e){return function(t,n,s,u){r(n);var c=i(t),l=a(c),f=o(c.length),d=e?f-1:0,h=e?-1:1;if(s<2)for(;;){if(d in l){u=l[d],d+=h;break}if(d+=h,e?d<0:f<=d)throw TypeError("Reduce of empty array with no initial value")}for(;e?d>=0:f>d;d+=h)d in l&&(u=n(u,l[d],d,c));return u}};e.exports={left:s(!1),right:s(!0)}},94362(e){var t=Math.floor,n=function(e,a){var o=e.length,s=t(o/2);return o<8?r(e,a):i(n(e.slice(0,s),a),n(e.slice(s),a),a)},r=function(e,t){for(var n,r,i=e.length,a=1;a0;)e[r]=e[--r];r!==a++&&(e[r]=n)}return e},i=function(e,t,n){for(var r=e.length,i=t.length,a=0,o=0,s=[];a=n(e[a],t[o])?e[a++]:t[o++]):s.push(a1?arguments[1]:void 0;return(r(this),(t=void 0!==c)&&r(c),void 0==e)?new this:(n=[],t?(o=0,s=i(c,u>2?arguments[2]:void 0,2),a(e,function(e){n.push(s(e,o++))})):a(e,n.push,{that:n}),new this(n))}},82044(e){"use strict";e.exports=function(){for(var e=arguments.length,t=Array(e);e--;)t[e]=arguments[e];return new this(t)}},95631(e,t,n){"use strict";var r=n(3070).f,i=n(70030),a=n(12248),o=n(49974),s=n(25787),u=n(20408),c=n(70654),l=n(96340),f=n(19781),d=n(62423).fastKey,h=n(29909),p=h.set,b=h.getterFor;e.exports={getConstructor:function(e,t,n,c){var l=e(function(e,r){s(e,l,t),p(e,{type:t,index:i(null),first:void 0,last:void 0,size:0}),f||(e.size=0),void 0!=r&&u(r,e[c],{that:e,AS_ENTRIES:n})}),h=b(t),m=function(e,t,n){var r,i,a=h(e),o=g(e,t);return o?o.value=n:(a.last=o={index:i=d(t,!0),key:t,value:n,previous:r=a.last,next:void 0,removed:!1},a.first||(a.first=o),r&&(r.next=o),f?a.size++:e.size++,"F"!==i&&(a.index[i]=o)),e},g=function(e,t){var n,r=h(e),i=d(t);if("F"!==i)return r.index[i];for(n=r.first;n;n=n.next)if(n.key==t)return n};return a(l.prototype,{clear:function(){for(var e=this,t=h(e),n=t.index,r=t.first;r;)r.removed=!0,r.previous&&(r.previous=r.previous.next=void 0),delete n[r.index],r=r.next;t.first=t.last=void 0,f?t.size=0:e.size=0},delete:function(e){var t=this,n=h(t),r=g(t,e);if(r){var i=r.next,a=r.previous;delete n.index[r.index],r.removed=!0,a&&(a.next=i),i&&(i.previous=a),n.first==r&&(n.first=i),n.last==r&&(n.last=a),f?n.size--:t.size--}return!!r},forEach:function(e){for(var t,n=h(this),r=o(e,arguments.length>1?arguments[1]:void 0,3);t=t?t.next:n.first;)for(r(t.value,t.key,this);t&&t.removed;)t=t.previous},has:function(e){return!!g(this,e)}}),a(l.prototype,n?{get:function(e){var t=g(this,e);return t&&t.value},set:function(e,t){return m(this,0===e?0:e,t)}}:{add:function(e){return m(this,e=0===e?0:e,e)}}),f&&r(l.prototype,"size",{get:function(){return h(this).size}}),l},setStrong:function(e,t,n){var r=t+" Iterator",i=b(t),a=b(r);c(e,t,function(e,t){p(this,{type:r,target:e,state:i(e),kind:t,last:void 0})},function(){for(var e=a(this),t=e.kind,n=e.last;n&&n.removed;)n=n.previous;return e.target&&(e.last=n=n?n.next:e.state.first)?"keys"==t?{value:n.key,done:!1}:"values"==t?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(e.target=void 0,{value:void 0,done:!0})},n?"entries":"values",!n,!0),l(t)}}},29320(e,t,n){"use strict";var r=n(12248),i=n(62423).getWeakData,a=n(19670),o=n(70111),s=n(25787),u=n(20408),c=n(42092),l=n(86656),f=n(29909),d=f.set,h=f.getterFor,p=c.find,b=c.findIndex,m=0,g=function(e){return e.frozen||(e.frozen=new v)},v=function(){this.entries=[]},y=function(e,t){return p(e.entries,function(e){return e[0]===t})};v.prototype={get:function(e){var t=y(this,e);if(t)return t[1]},has:function(e){return!!y(this,e)},set:function(e,t){var n=y(this,e);n?n[1]=t:this.entries.push([e,t])},delete:function(e){var t=b(this.entries,function(t){return t[0]===e});return~t&&this.entries.splice(t,1),!!~t}},e.exports={getConstructor:function(e,t,n,c){var f=e(function(e,r){s(e,f,t),d(e,{type:t,id:m++,frozen:void 0}),void 0!=r&&u(r,e[c],{that:e,AS_ENTRIES:n})}),p=h(t),b=function(e,t,n){var r=p(e),o=i(a(t),!0);return!0===o?g(r).set(t,n):o[r.id]=n,e};return r(f.prototype,{delete:function(e){var t=p(this);if(!o(e))return!1;var n=i(e);return!0===n?g(t).delete(e):n&&l(n,t.id)&&delete n[t.id]},has:function(e){var t=p(this);if(!o(e))return!1;var n=i(e);return!0===n?g(t).has(e):n&&l(n,t.id)}}),r(f.prototype,n?{get:function(e){var t=p(this);if(o(e)){var n=i(e);return!0===n?g(t).get(e):n?n[t.id]:void 0}},set:function(e,t){return b(this,e,t)}}:{add:function(e){return b(this,e,!0)}}),f}}},77710(e,t,n){"use strict";var r=n(82109),i=n(17854),a=n(54705),o=n(31320),s=n(62423),u=n(20408),c=n(25787),l=n(70111),f=n(47293),d=n(17072),h=n(58003),p=n(79587);e.exports=function(e,t,n){var b=-1!==e.indexOf("Map"),m=-1!==e.indexOf("Weak"),g=b?"set":"add",v=i[e],y=v&&v.prototype,w=v,_={},E=function(e){var t=y[e];o(y,e,"add"==e?function(e){return t.call(this,0===e?0:e),this}:"delete"==e?function(e){return(!m||!!l(e))&&t.call(this,0===e?0:e)}:"get"==e?function(e){return m&&!l(e)?void 0:t.call(this,0===e?0:e)}:"has"==e?function(e){return(!m||!!l(e))&&t.call(this,0===e?0:e)}:function(e,n){return t.call(this,0===e?0:e,n),this})};if(a(e,"function"!=typeof v||!(m||y.forEach&&!f(function(){new v().entries().next()}))))w=n.getConstructor(t,e,b,g),s.enable();else if(a(e,!0)){var S=new w,k=S[g](m?{}:-0,1)!=S,x=f(function(){S.has(1)}),T=d(function(e){new v(e)}),M=!m&&f(function(){for(var e=new v,t=5;t--;)e[g](t,t);return!e.has(-0)});T||((w=t(function(t,n){c(t,w,e);var r=p(new v,t,w);return void 0!=n&&u(n,r[g],{that:r,AS_ENTRIES:b}),r})).prototype=y,y.constructor=w),(x||M)&&(E("delete"),E("has"),b&&E("get")),(M||k)&&E(g),m&&y.clear&&delete y.clear}return _[e]=w,r({global:!0,forced:w!=v},_),h(w,e),m||n.setStrong(w,e,b),w}},10313(e,t,n){var r=n(51532),i=n(4129),a=n(70030),o=n(70111),s=function(){this.object=null,this.symbol=null,this.primitives=null,this.objectsByIndex=a(null)};s.prototype.get=function(e,t){return this[e]||(this[e]=t())},s.prototype.next=function(e,t,n){var a=n?this.objectsByIndex[e]||(this.objectsByIndex[e]=new i):this.primitives||(this.primitives=new r),o=a.get(t);return o||a.set(t,o=new s),o};var u=new s;e.exports=function(){var e,t,n=u,r=arguments.length;for(e=0;e"+s+""}},24994(e,t,n){"use strict";var r=n(13383).IteratorPrototype,i=n(70030),a=n(79114),o=n(58003),s=n(97497),u=function(){return this};e.exports=function(e,t,n){var c=t+" Iterator";return e.prototype=i(r,{next:a(1,n)}),o(e,c,!1,!0),s[c]=u,e}},68880(e,t,n){var r=n(19781),i=n(3070),a=n(79114);e.exports=r?function(e,t,n){return i.f(e,t,a(1,n))}:function(e,t,n){return e[t]=n,e}},79114(e){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},86135(e,t,n){"use strict";var r=n(34948),i=n(3070),a=n(79114);e.exports=function(e,t,n){var o=r(t);o in e?i.f(e,o,a(0,n)):e[o]=n}},85573(e,t,n){"use strict";var r=n(47293),i=n(76650).start,a=Math.abs,o=Date.prototype,s=o.getTime,u=o.toISOString;e.exports=r(function(){return"0385-07-25T07:06:39.999Z"!=u.call(new Date(-5e13-1))})||!r(function(){u.call(new Date(NaN))})?function(){if(!isFinite(s.call(this)))throw RangeError("Invalid time value");var e=this,t=e.getUTCFullYear(),n=e.getUTCMilliseconds(),r=t<0?"-":t>9999?"+":"";return r+i(a(t),r?6:4,0)+"-"+i(e.getUTCMonth()+1,2,0)+"-"+i(e.getUTCDate(),2,0)+"T"+i(e.getUTCHours(),2,0)+":"+i(e.getUTCMinutes(),2,0)+":"+i(e.getUTCSeconds(),2,0)+"."+i(n,3,0)+"Z"}:u},38709(e,t,n){"use strict";var r=n(19670),i=n(92140);e.exports=function(e){if(r(this),"string"===e||"default"===e)e="string";else if("number"!==e)throw TypeError("Incorrect hint");return i(this,e)}},70654(e,t,n){"use strict";var r=n(82109),i=n(24994),a=n(79518),o=n(27674),s=n(58003),u=n(68880),c=n(31320),l=n(5112),f=n(31913),d=n(97497),h=n(13383),p=h.IteratorPrototype,b=h.BUGGY_SAFARI_ITERATORS,m=l("iterator"),g="keys",v="values",y="entries",w=function(){return this};e.exports=function(e,t,n,l,h,_,E){i(n,t,l);var S,k,x,T=function(e){if(e===h&&C)return C;if(!b&&e in A)return A[e];switch(e){case g:case v:case y:return function(){return new n(this,e)}}return function(){return new n(this)}},M=t+" Iterator",O=!1,A=e.prototype,L=A[m]||A["@@iterator"]||h&&A[h],C=!b&&L||T(h),I="Array"==t&&A.entries||L;if(I&&(S=a(I.call(new e)),p!==Object.prototype&&S.next&&(f||a(S)===p||(o?o(S,p):"function"!=typeof S[m]&&u(S,m,w)),s(S,M,!0,!0),f&&(d[M]=w))),h==v&&L&&L.name!==v&&(O=!0,C=function(){return L.call(this)}),(!f||E)&&A[m]!==C&&u(A,m,C),d[t]=C,h){if(k={values:T(v),keys:_?C:T(g),entries:T(y)},E)for(x in k)!b&&!O&&x in A||c(A,x,k[x]);else r({target:t,proto:!0,forced:b||O},k)}return k}},97235(e,t,n){var r=n(40857),i=n(86656),a=n(6061),o=n(3070).f;e.exports=function(e){var t=r.Symbol||(r.Symbol={});i(t,e)||o(t,e,{value:a.f(e)})}},19781(e,t,n){var r=n(47293);e.exports=!r(function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})},80317(e,t,n){var r=n(17854),i=n(70111),a=r.document,o=i(a)&&i(a.createElement);e.exports=function(e){return o?a.createElement(e):{}}},48324(e){e.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},68886(e,t,n){var r=n(88113).match(/firefox\/(\d+)/i);e.exports=!!r&&+r[1]},7871(e){e.exports="object"==typeof window},30256(e,t,n){var r=n(88113);e.exports=/MSIE|Trident/.test(r)},71528(e,t,n){var r=n(88113),i=n(17854);e.exports=/ipad|iphone|ipod/i.test(r)&&void 0!==i.Pebble},6833(e,t,n){var r=n(88113);e.exports=/(?:ipad|iphone|ipod).*applewebkit/i.test(r)},35268(e,t,n){var r=n(84326),i=n(17854);e.exports="process"==r(i.process)},71036(e,t,n){var r=n(88113);e.exports=/web0s(?!.*chrome)/i.test(r)},88113(e,t,n){var r=n(35005);e.exports=r("navigator","userAgent")||""},7392(e,t,n){var r,i,a=n(17854),o=n(88113),s=a.process,u=a.Deno,c=s&&s.versions||u&&u.version,l=c&&c.v8;l?i=(r=l.split("."))[0]<4?1:r[0]+r[1]:o&&(!(r=o.match(/Edge\/(\d+)/))||r[1]>=74)&&(r=o.match(/Chrome\/(\d+)/))&&(i=r[1]),e.exports=i&&+i},98008(e,t,n){var r=n(88113).match(/AppleWebKit\/(\d+)\./);e.exports=!!r&&+r[1]},80748(e){e.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},82109(e,t,n){var r=n(17854),i=n(31236).f,a=n(68880),o=n(31320),s=n(83505),u=n(99920),c=n(54705);e.exports=function(e,t){var n,l,f,d,h,p,b=e.target,m=e.global,g=e.stat;if(l=m?r:g?r[b]||s(b,{}):(r[b]||{}).prototype)for(f in t){if(h=t[f],d=e.noTargetGet?(p=i(l,f))&&p.value:l[f],!(n=c(m?f:b+(g?".":"#")+f,e.forced))&&void 0!==d){if(typeof h==typeof d)continue;u(h,d)}(e.sham||d&&d.sham)&&a(h,"sham",!0),o(l,f,h,e)}}},47293(e){e.exports=function(e){try{return!!e()}catch(t){return!0}}},27007(e,t,n){"use strict";n(74916);var r=n(31320),i=n(22261),a=n(47293),o=n(5112),s=n(68880),u=o("species"),c=RegExp.prototype;e.exports=function(e,t,n,l){var f=o(e),d=!a(function(){var t={};return t[f]=function(){return 7},7!=""[e](t)}),h=d&&!a(function(){var t=!1,n=/a/;return"split"===e&&((n={}).constructor={},n.constructor[u]=function(){return n},n.flags="",n[f]=/./[f]),n.exec=function(){return t=!0,null},n[f](""),!t});if(!d||!h||n){var p=/./[f],b=t(f,""[e],function(e,t,n,r,a){var o=t.exec;return o===i||o===c.exec?d&&!a?{done:!0,value:p.call(t,n,r)}:{done:!0,value:e.call(n,t,r)}:{done:!1}});r(String.prototype,e,b[0]),r(c,f,b[1])}l&&s(c[f],"sham",!0)}},6790(e,t,n){"use strict";var r=n(43157),i=n(17466),a=n(49974),o=function(e,t,n,s,u,c,l,f){for(var d,h=u,p=0,b=!!l&&a(l,f,3);p0&&r(d))h=o(e,t,d,i(d.length),h,c-1)-1;else{if(h>=9007199254740991)throw TypeError("Exceed the acceptable array length");e[h]=d}h++}p++}return h};e.exports=o},76677(e,t,n){var r=n(47293);e.exports=!r(function(){return Object.isExtensible(Object.preventExtensions({}))})},49974(e,t,n){var r=n(13099);e.exports=function(e,t,n){if(r(e),void 0===t)return e;switch(n){case 0:return function(){return e.call(t)};case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,i){return e.call(t,n,r,i)}}return function(){return e.apply(t,arguments)}}},27065(e,t,n){"use strict";var r=n(13099),i=n(70111),a=[].slice,o={},s=function(e,t,n){if(!(t in o)){for(var r=[],i=0;i]*>)/g,s=/\$([$&'`]|\d{1,2})/g;e.exports=function(e,t,n,u,c,l){var f=n+e.length,d=u.length,h=s;return void 0!==c&&(c=r(c),h=o),a.call(l,h,function(r,a){var o;switch(a.charAt(0)){case"$":return"$";case"&":return e;case"`":return t.slice(0,n);case"'":return t.slice(f);case"<":o=c[a.slice(1,-1)];break;default:var s=+a;if(0===s)return r;if(s>d){var l=i(s/10);if(0===l)return r;if(l<=d)return void 0===u[l-1]?a.charAt(1):u[l-1]+a.charAt(1);return r}o=u[s-1]}return void 0===o?"":o})}},17854(e,t,n){var r=function(e){return e&&e.Math==Math&&e};e.exports=r("object"==typeof globalThis&&globalThis)||r("object"==typeof window&&window)||r("object"==typeof self&&self)||r("object"==typeof n.g&&n.g)||function(){return this}()||Function("return this")()},86656(e,t,n){var r=n(47908),i={}.hasOwnProperty;e.exports=Object.hasOwn||function(e,t){return i.call(r(e),t)}},3501(e){e.exports={}},842(e,t,n){var r=n(17854);e.exports=function(e,t){var n=r.console;n&&n.error&&(1===arguments.length?n.error(e):n.error(e,t))}},60490(e,t,n){var r=n(35005);e.exports=r("document","documentElement")},64664(e,t,n){var r=n(19781),i=n(47293),a=n(80317);e.exports=!r&&!i(function(){return 7!=Object.defineProperty(a("div"),"a",{get:function(){return 7}}).a})},11179(e){var t=Math.abs,n=Math.pow,r=Math.floor,i=Math.log,a=Math.LN2,o=function(e,o,s){var u,c,l,f=Array(s),d=8*s-o-1,h=(1<>1,b=23===o?n(2,-24)-n(2,-77):0,m=e<0||0===e&&1/e<0?1:0,g=0;for((e=t(e))!=e||e===1/0?(c=e!=e?1:0,u=h):(u=r(i(e)/a),e*(l=n(2,-u))<1&&(u--,l*=2),u+p>=1?e+=b/l:e+=b*n(2,1-p),e*l>=2&&(u++,l/=2),u+p>=h?(c=0,u=h):u+p>=1?(c=(e*l-1)*n(2,o),u+=p):(c=e*n(2,p-1)*n(2,o),u=0));o>=8;f[g++]=255&c,c/=256,o-=8);for(u=u<0;f[g++]=255&u,u/=256,d-=8);return f[--g]|=128*m,f},s=function(e,t){var r,i=e.length,a=8*i-t-1,o=(1<>1,u=a-7,c=i-1,l=e[c--],f=127&l;for(l>>=7;u>0;f=256*f+e[c],c--,u-=8);for(r=f&(1<<-u)-1,f>>=-u,u+=t;u>0;r=256*r+e[c],c--,u-=8);if(0===f)f=1-s;else{if(f===o)return r?NaN:l?-1/0:1/0;r+=n(2,t),f-=s}return(l?-1:1)*r*n(2,f-t)};e.exports={pack:o,unpack:s}},68361(e,t,n){var r=n(47293),i=n(84326),a="".split;e.exports=r(function(){return!Object("z").propertyIsEnumerable(0)})?function(e){return"String"==i(e)?a.call(e,""):Object(e)}:Object},79587(e,t,n){var r=n(70111),i=n(27674);e.exports=function(e,t,n){var a,o;return i&&"function"==typeof(a=t.constructor)&&a!==n&&r(o=a.prototype)&&o!==n.prototype&&i(e,o),e}},42788(e,t,n){var r=n(5465),i=Function.toString;"function"!=typeof r.inspectSource&&(r.inspectSource=function(e){return i.call(e)}),e.exports=r.inspectSource},62423(e,t,n){var r=n(82109),i=n(3501),a=n(70111),o=n(86656),s=n(3070).f,u=n(8006),c=n(1156),l=n(69711),f=n(76677),d=!1,h=l("meta"),p=0,b=Object.isExtensible||function(){return!0},m=function(e){s(e,h,{value:{objectID:"O"+p++,weakData:{}}})},g=function(e,t){if(!a(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!o(e,h)){if(!b(e))return"F";if(!t)return"E";m(e)}return e[h].objectID},v=function(e,t){if(!o(e,h)){if(!b(e))return!0;if(!t)return!1;m(e)}return e[h].weakData},y=function(e){return f&&d&&b(e)&&!o(e,h)&&m(e),e},w=function(){_.enable=function(){},d=!0;var e=u.f,t=[].splice,n={};n[h]=1,e(n).length&&(u.f=function(n){for(var r=e(n),i=0,a=r.length;ih;h++)if((b=k(e[h]))&&b instanceof l)return b;return new l(!1)}f=s(e,d)}for(m=f.next;!(g=m.call(f)).done;){try{b=k(g.value)}catch(x){c(f,"throw",x)}if("object"==typeof b&&b&&b instanceof l)return b}return new l(!1)}},99212(e,t,n){var r=n(19670);e.exports=function(e,t,n){var i,a;r(e);try{if(void 0===(i=e.return)){if("throw"===t)throw n;return n}i=i.call(e)}catch(o){a=!0,i=o}if("throw"===t)throw n;if(a)throw i;return r(i),n}},54956(e,t,n){"use strict";var r=n(40857),i=n(13099),a=n(19670),o=n(70030),s=n(68880),u=n(12248),c=n(5112),l=n(29909),f=l.set,d=l.get,h=c("toStringTag");e.exports=function(e,t){var n=function(e){e.next=i(e.iterator.next),e.done=!1,e.ignoreArg=!t,f(this,e)};return n.prototype=u(o(r.Iterator.prototype),{next:function(n){var r=d(this),i=arguments.length?[r.ignoreArg?void 0:n]:t?[]:[void 0];r.ignoreArg=!1;var a=r.done?void 0:e.call(r,i);return{done:r.done,value:a}},return:function(e){var t=d(this).iterator;t.done=!0;var n=t.return;return{done:!0,value:void 0===n?e:a(n.call(t,e)).value}},throw:function(e){var t=d(this).iterator;t.done=!0;var n=t.throw;if(void 0===n)throw e;return n.call(t,e)}}),t||s(n.prototype,h,"Generator"),n}},13383(e,t,n){"use strict";var r,i,a,o=n(47293),s=n(79518),u=n(68880),c=n(86656),l=n(5112),f=n(31913),d=l("iterator"),h=!1,p=function(){return this};[].keys&&("next"in(a=[].keys())?(i=s(s(a)))!==Object.prototype&&(r=i):h=!0);var b=void 0==r||o(function(){var e={};return r[d].call(e)!==e});b&&(r={}),f&&!b||c(r,d)||u(r,d,p),e.exports={IteratorPrototype:r,BUGGY_SAFARI_ITERATORS:h}},97497(e){e.exports={}},37502(e,t,n){"use strict";var r=n(19670);e.exports=function(e,t){var n=r(this),i=n.has(e)&&"update"in t?t.update(n.get(e),e,n):t.insert(e,n);return n.set(e,i),i}},8154(e,t,n){"use strict";var r=n(19670);e.exports=function(e,t){var n,i=r(this),a=arguments.length>2?arguments[2]:void 0;if("function"!=typeof t&&"function"!=typeof a)throw TypeError("At least one callback required");return i.has(e)?(n=i.get(e),"function"==typeof t&&(n=t(n),i.set(e,n))):"function"==typeof a&&(n=a(),i.set(e,n)),n}},66736(e){var t=Math.expm1,n=Math.exp;e.exports=!t||t(10)>22025.465794806718||22025.465794806718>t(10)||-.00000000000000002!=t(-.00000000000000002)?function(e){return 0==(e=+e)?e:e>-.000001&&e<1e-6?e+e*e/2:n(e)-1}:t},26130(e,t,n){var r=n(64310),i=Math.abs,a=Math.pow,o=a(2,-52),s=a(2,-23),u=a(2,127)*(2-s),c=a(2,-126),l=function(e){return e+1/o-1/o};e.exports=Math.fround||function(e){var t,n,a=i(e),f=r(e);return au||n!=n?f*(1/0):f*n}},26513(e){var t=Math.log;e.exports=Math.log1p||function(e){return(e=+e)>-.00000001&&e<1e-8?e-e*e/2:t(1+e)}},47103(e){e.exports=Math.scale||function(e,t,n,r,i){return 0===arguments.length||e!=e||t!=t||n!=n||r!=r||i!=i?NaN:e===1/0||e===-1/0?e:(e-t)*(i-r)/(n-t)+r}},64310(e){e.exports=Math.sign||function(e){return 0==(e=+e)||e!=e?e:e<0?-1:1}},95948(e,t,n){var r,i,a,o,s,u,c,l,f=n(17854),d=n(31236).f,h=n(20261).set,p=n(6833),b=n(71528),m=n(71036),g=n(35268),v=f.MutationObserver||f.WebKitMutationObserver,y=f.document,w=f.process,_=f.Promise,E=d(f,"queueMicrotask"),S=E&&E.value;S||(r=function(){var e,t;for(g&&(e=w.domain)&&e.exit();i;){t=i.fn,i=i.next;try{t()}catch(n){throw i?o():a=void 0,n}}a=void 0,e&&e.enter()},p||g||m||!v||!y?!b&&_&&_.resolve?((c=_.resolve(void 0)).constructor=_,l=c.then,o=function(){l.call(c,r)}):o=g?function(){w.nextTick(r)}:function(){h.call(f,r)}:(s=!0,u=y.createTextNode(""),new v(r).observe(u,{characterData:!0}),o=function(){u.data=s=!s})),e.exports=S||function(e){var t={fn:e,next:void 0};a&&(a.next=t),i||(i=t,o()),a=t}},13366(e,t,n){var r=n(17854);e.exports=r.Promise},30133(e,t,n){var r=n(7392),i=n(47293);e.exports=!!Object.getOwnPropertySymbols&&!i(function(){var e=Symbol();return!String(e)||!(Object(e) instanceof Symbol)||!Symbol.sham&&r&&r<41})},590(e,t,n){var r=n(47293),i=n(5112),a=n(31913),o=i("iterator");e.exports=!r(function(){var e=new URL("b?a=1&b=2&c=3","http://a"),t=e.searchParams,n="";return e.pathname="c%20d",t.forEach(function(e,r){t.delete("b"),n+=r+e}),a&&!e.toJSON||!t.sort||"http://a/c%20d?a=1&c=3"!==e.href||"3"!==t.get("c")||"a=1"!==String(new URLSearchParams("?a=1"))||!t[o]||"a"!==new URL("https://a@b").username||"b"!==new URLSearchParams(new URLSearchParams("a=b")).get("a")||"xn--e1aybc"!==new URL("http://тест").host||"#%D0%B1"!==new URL("http://a#б").hash||"a1c3"!==n||"x"!==new URL("http://x",void 0).host})},68536(e,t,n){var r=n(17854),i=n(42788),a=r.WeakMap;e.exports="function"==typeof a&&/native code/.test(i(a))},78523(e,t,n){"use strict";var r=n(13099),i=function(e){var t,n;this.promise=new e(function(e,r){if(void 0!==t||void 0!==n)throw TypeError("Bad Promise constructor");t=e,n=r}),this.resolve=r(t),this.reject=r(n)};e.exports.f=function(e){return new i(e)}},3929(e,t,n){var r=n(47850);e.exports=function(e){if(r(e))throw TypeError("The method doesn't accept regular expressions");return e}},77023(e,t,n){var r=n(17854).isFinite;e.exports=Number.isFinite||function(e){return"number"==typeof e&&r(e)}},2814(e,t,n){var r=n(17854),i=n(41340),a=n(53111).trim,o=n(81361),s=r.parseFloat,u=1/s(o+"-0")!=-1/0;e.exports=u?function(e){var t=a(i(e)),n=s(t);return 0===n&&"-"==t.charAt(0)?-0:n}:s},83009(e,t,n){var r=n(17854),i=n(41340),a=n(53111).trim,o=n(81361),s=r.parseInt,u=/^[+-]?0[Xx]/,c=8!==s(o+"08")||22!==s(o+"0x16");e.exports=c?function(e,t){var n=a(i(e));return s(n,t>>>0||(u.test(n)?16:10))}:s},80430(e,t,n){"use strict";var r=n(29909),i=n(24994),a=n(70111),o=n(36048),s=n(19781),u="Incorrect Number.range arguments",c="NumericRangeIterator",l=r.set,f=r.getterFor(c),d=i(function(e,t,n,r,i,o){if(typeof e!=r||t!==1/0&&t!==-1/0&&typeof t!=r)throw TypeError(u);if(e===1/0||e===-1/0)throw RangeError(u);var f,d=t>e,h=!1;if(void 0===n)f=void 0;else if(a(n))f=n.step,h=!!n.inclusive;else if(typeof n==r)f=n;else throw TypeError(u);if(null==f&&(f=d?o:-o),typeof f!=r)throw TypeError(u);if(f===1/0||f===-1/0||f===i&&e!==t)throw RangeError(u);var p=e!=e||t!=t||f!=f||t>e!=f>i;l(this,{type:c,start:e,end:t,step:f,inclusiveEnd:h,hitsEnd:p,currentCount:i,zero:i}),s||(this.start=e,this.end=t,this.step=f,this.inclusive=h)},c,function(){var e,t=f(this);if(t.hitsEnd)return{value:void 0,done:!0};var n=t.start,r=t.end,i=n+t.step*t.currentCount++;i===r&&(t.hitsEnd=!0);var a=t.inclusiveEnd;return(e=r>n?a?i>r:i>=r:a?r>i:r>=i)?{value:void 0,done:t.hitsEnd=!0}:{value:i,done:!1}}),h=function(e){return{get:e,set:function(){},configurable:!0,enumerable:!1}};s&&o(d.prototype,{start:h(function(){return f(this).start}),end:h(function(){return f(this).end}),inclusive:h(function(){return f(this).inclusiveEnd}),step:h(function(){return f(this).step})}),e.exports=d},21574(e,t,n){"use strict";var r=n(19781),i=n(47293),a=n(81956),o=n(25181),s=n(55296),u=n(47908),c=n(68361),l=Object.assign,f=Object.defineProperty;e.exports=!l||i(function(){if(r&&1!==l({b:1},l(f({},"a",{enumerable:!0,get:function(){f(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var e={},t={},n=Symbol(),i="abcdefghijklmnopqrst";return e[n]=7,i.split("").forEach(function(e){t[e]=e}),7!=l({},e)[n]||a(l({},t)).join("")!=i})?function(e,t){for(var n=u(e),i=arguments.length,l=1,f=o.f,d=s.f;i>l;)for(var h,p=c(arguments[l++]),b=f?a(p).concat(f(p)):a(p),m=b.length,g=0;m>g;)h=b[g++],(!r||d.call(p,h))&&(n[h]=p[h]);return n}:l},70030(e,t,n){var r,i=n(19670),a=n(36048),o=n(80748),s=n(3501),u=n(60490),c=n(80317),l=n(6200),f=">",d="<",h="prototype",p="script",b=l("IE_PROTO"),m=function(){},g=function(e){return d+p+f+e+d+"/"+p+f},v=function(e){e.write(g("")),e.close();var t=e.parentWindow.Object;return e=null,t},y=function(){var e,t=c("iframe"),n="java"+p+":";return t.style.display="none",u.appendChild(t),t.src=String(n),(e=t.contentWindow.document).open(),e.write(g("document.F=Object")),e.close(),e.F},w=function(){try{r=new ActiveXObject("htmlfile")}catch(e){}w="undefined"!=typeof document?document.domain&&r?v(r):y():v(r);for(var t=o.length;t--;)delete w[h][o[t]];return w()};s[b]=!0,e.exports=Object.create||function(e,t){var n;return null!==e?(m[h]=i(e),n=new m,m[h]=null,n[b]=e):n=w(),void 0===t?n:a(n,t)}},36048(e,t,n){var r=n(19781),i=n(3070),a=n(19670),o=n(81956);e.exports=r?Object.defineProperties:function(e,t){a(e);for(var n,r=o(t),s=r.length,u=0;s>u;)i.f(e,n=r[u++],t[n]);return e}},3070(e,t,n){var r=n(19781),i=n(64664),a=n(19670),o=n(34948),s=Object.defineProperty;t.f=r?s:function(e,t,n){if(a(e),t=o(t),a(n),i)try{return s(e,t,n)}catch(r){}if("get"in n||"set"in n)throw TypeError("Accessors not supported");return"value"in n&&(e[t]=n.value),e}},31236(e,t,n){var r=n(19781),i=n(55296),a=n(79114),o=n(45656),s=n(34948),u=n(86656),c=n(64664),l=Object.getOwnPropertyDescriptor;t.f=r?l:function(e,t){if(e=o(e),t=s(t),c)try{return l(e,t)}catch(n){}if(u(e,t))return a(!i.f.call(e,t),e[t])}},1156(e,t,n){var r=n(45656),i=n(8006).f,a={}.toString,o="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],s=function(e){try{return i(e)}catch(t){return o.slice()}};e.exports.f=function(e){return o&&"[object Window]"==a.call(e)?s(e):i(r(e))}},8006(e,t,n){var r=n(16324),i=n(80748).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return r(e,i)}},25181(e,t){t.f=Object.getOwnPropertySymbols},79518(e,t,n){var r=n(86656),i=n(47908),a=n(6200),o=n(49920),s=a("IE_PROTO"),u=Object.prototype;e.exports=o?Object.getPrototypeOf:function(e){return(e=i(e),r(e,s))?e[s]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?u:null}},60996(e,t,n){"use strict";var r=n(29909),i=n(24994),a=n(86656),o=n(81956),s=n(47908),u="Object Iterator",c=r.set,l=r.getterFor(u);e.exports=i(function(e,t){var n=s(e);c(this,{type:u,mode:t,object:n,keys:o(n),index:0})},"Object",function(){for(var e=l(this),t=e.keys;;){if(null===t||e.index>=t.length)return e.object=e.keys=null,{value:void 0,done:!0};var n=t[e.index++],r=e.object;if(a(r,n)){switch(e.mode){case"keys":return{value:n,done:!1};case"values":return{value:r[n],done:!1}}return{value:[n,r[n]],done:!1}}}})},16324(e,t,n){var r=n(86656),i=n(45656),a=n(41318).indexOf,o=n(3501);e.exports=function(e,t){var n,s=i(e),u=0,c=[];for(n in s)!r(o,n)&&r(s,n)&&c.push(n);for(;t.length>u;)r(s,n=t[u++])&&(~a(c,n)||c.push(n));return c}},81956(e,t,n){var r=n(16324),i=n(80748);e.exports=Object.keys||function(e){return r(e,i)}},55296(e,t){"use strict";var n={}.propertyIsEnumerable,r=Object.getOwnPropertyDescriptor,i=r&&!n.call({1:2},1);t.f=i?function(e){var t=r(this,e);return!!t&&t.enumerable}:n},69026(e,t,n){"use strict";var r=n(31913),i=n(17854),a=n(47293),o=n(98008);e.exports=r||!a(function(){if(!o||!(o<535)){var e=Math.random();__defineSetter__.call(null,e,function(){}),delete i[e]}})},27674(e,t,n){var r=n(19670),i=n(96077);e.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var e,t=!1,n={};try{(e=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set).call(n,[]),t=n instanceof Array}catch(a){}return function(n,a){return r(n),i(a),t?e.call(n,a):n.__proto__=a,n}}():void 0)},44699(e,t,n){var r=n(19781),i=n(81956),a=n(45656),o=n(55296).f,s=function(e){return function(t){for(var n,s=a(t),u=i(s),c=u.length,l=0,f=[];c>l;)n=u[l++],(!r||o.call(s,n))&&f.push(e?[n,s[n]]:s[n]);return f}};e.exports={entries:s(!0),values:s(!1)}},90288(e,t,n){"use strict";var r=n(51694),i=n(70648);e.exports=r?({}).toString:function(){return"[object "+i(this)+"]"}},92140(e,t,n){var r=n(70111);e.exports=function(e,t){var n,i;if("string"===t&&"function"==typeof(n=e.toString)&&!r(i=n.call(e))||"function"==typeof(n=e.valueOf)&&!r(i=n.call(e))||"string"!==t&&"function"==typeof(n=e.toString)&&!r(i=n.call(e)))return i;throw TypeError("Can't convert object to primitive value")}},53887(e,t,n){var r=n(35005),i=n(8006),a=n(25181),o=n(19670);e.exports=r("Reflect","ownKeys")||function(e){var t=i.f(o(e)),n=a.f;return n?t.concat(n(e)):t}},40857(e,t,n){var r=n(17854);e.exports=r},12534(e){e.exports=function(e){try{return{error:!1,value:e()}}catch(t){return{error:!0,value:t}}}},69478(e,t,n){var r=n(19670),i=n(70111),a=n(78523);e.exports=function(e,t){if(r(e),i(t)&&t.constructor===e)return t;var n=a.f(e);return(0,n.resolve)(t),n.promise}},12248(e,t,n){var r=n(31320);e.exports=function(e,t,n){for(var i in t)r(e,i,t[i],n);return e}},31320(e,t,n){var r=n(17854),i=n(68880),a=n(86656),o=n(83505),s=n(42788),u=n(29909),c=u.get,l=u.enforce,f=String(String).split("String");(e.exports=function(e,t,n,s){var u,c=!!s&&!!s.unsafe,d=!!s&&!!s.enumerable,h=!!s&&!!s.noTargetGet;if("function"!=typeof n||("string"!=typeof t||a(n,"name")||i(n,"name",t),(u=l(n)).source||(u.source=f.join("string"==typeof t?t:""))),e===r){d?e[t]=n:o(t,n);return}c?!h&&e[t]&&(d=!0):delete e[t],d?e[t]=n:i(e,t,n)})(Function.prototype,"toString",function(){return"function"==typeof this&&c(this).source||s(this)})},38845(e,t,n){var r=n(51532),i=n(4129),a=n(72309)("metadata"),o=a.store||(a.store=new i),s=function(e,t,n){var i=o.get(e);if(!i){if(!n)return;o.set(e,i=new r)}var a=i.get(t);if(!a){if(!n)return;i.set(t,a=new r)}return a},u=function(e,t,n){var r=s(t,n,!1);return void 0!==r&&r.has(e)},c=function(e,t,n){var r=s(t,n,!1);return void 0===r?void 0:r.get(e)},l=function(e,t,n,r){s(n,r,!0).set(e,t)},f=function(e,t){var n=s(e,t,!1),r=[];return n&&n.forEach(function(e,t){r.push(t)}),r},d=function(e){return void 0===e||"symbol"==typeof e?e:String(e)};e.exports={store:o,getMap:s,has:u,get:c,set:l,keys:f,toKey:d}},97651(e,t,n){var r=n(84326),i=n(22261);e.exports=function(e,t){var n=e.exec;if("function"==typeof n){var a=n.call(e,t);if("object"!=typeof a)throw TypeError("RegExp exec method returned something other than an Object or null");return a}if("RegExp"!==r(e))throw TypeError("RegExp#exec called on incompatible receiver");return i.call(e,t)}},22261(e,t,n){"use strict";var r,i,a=n(41340),o=n(67066),s=n(52999),u=n(72309),c=n(70030),l=n(29909).get,f=n(9441),d=n(38173),h=RegExp.prototype.exec,p=u("native-string-replace",String.prototype.replace),b=h,m=(r=/a/,i=/b*/g,h.call(r,"a"),h.call(i,"a"),0!==r.lastIndex||0!==i.lastIndex),g=s.UNSUPPORTED_Y||s.BROKEN_CARET,v=void 0!==/()??/.exec("")[1];(m||v||g||f||d)&&(b=function(e){var t,n,r,i,s,u,f,d=this,y=l(d),w=a(e),_=y.raw;if(_)return _.lastIndex=d.lastIndex,t=b.call(_,w),d.lastIndex=_.lastIndex,t;var E=y.groups,S=g&&d.sticky,k=o.call(d),x=d.source,T=0,M=w;if(S&&(-1===(k=k.replace("y","")).indexOf("g")&&(k+="g"),M=w.slice(d.lastIndex),d.lastIndex>0&&(!d.multiline||d.multiline&&"\n"!==w.charAt(d.lastIndex-1))&&(x="(?: "+x+")",M=" "+M,T++),n=RegExp("^(?:"+x+")",k)),v&&(n=RegExp("^"+x+"$(?!\\s)",k)),m&&(r=d.lastIndex),i=h.call(S?n:d,M),S?i?(i.input=i.input.slice(T),i[0]=i[0].slice(T),i.index=d.lastIndex,d.lastIndex+=i[0].length):d.lastIndex=0:m&&i&&(d.lastIndex=d.global?i.index+i[0].length:r),v&&i&&i.length>1&&p.call(i[0],n,function(){for(s=1;sb)","g");return"b"!==e.exec("b").groups.a||"bc"!=="b".replace(e,"$c")})},84488(e){e.exports=function(e){if(void 0==e)throw TypeError("Can't call method on "+e);return e}},46465(e){e.exports=function(e,t){return e===t||e!=e&&t!=t}},81150(e){e.exports=Object.is||function(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}},83505(e,t,n){var r=n(17854);e.exports=function(e,t){try{Object.defineProperty(r,e,{value:t,configurable:!0,writable:!0})}catch(n){r[e]=t}return t}},96340(e,t,n){"use strict";var r=n(35005),i=n(3070),a=n(5112),o=n(19781),s=a("species");e.exports=function(e){var t=r(e),n=i.f;o&&t&&!t[s]&&n(t,s,{configurable:!0,get:function(){return this}})}},58003(e,t,n){var r=n(3070).f,i=n(86656),a=n(5112)("toStringTag");e.exports=function(e,t,n){e&&!i(e=n?e:e.prototype,a)&&r(e,a,{configurable:!0,value:t})}},6200(e,t,n){var r=n(72309),i=n(69711),a=r("keys");e.exports=function(e){return a[e]||(a[e]=i(e))}},5465(e,t,n){var r=n(17854),i=n(83505),a="__core-js_shared__",o=r[a]||i(a,{});e.exports=o},72309(e,t,n){var r=n(31913),i=n(5465);(e.exports=function(e,t){return i[e]||(i[e]=void 0!==t?t:{})})("versions",[]).push({version:"3.17.0",mode:r?"pure":"global",copyright:"\xa9 2021 Denis Pushkarev (zloirock.ru)"})},36707(e,t,n){var r=n(19670),i=n(13099),a=n(5112)("species");e.exports=function(e,t){var n,o=r(e).constructor;return void 0===o||void 0==(n=r(o)[a])?t:i(n)}},43429(e,t,n){var r=n(47293);e.exports=function(e){return r(function(){var t=""[e]('"');return t!==t.toLowerCase()||t.split('"').length>3})}},28710(e,t,n){var r=n(99958),i=n(41340),a=n(84488),o=function(e){return function(t,n){var o,s,u=i(a(t)),c=r(n),l=u.length;return c<0||c>=l?e?"":void 0:(o=u.charCodeAt(c))<55296||o>56319||c+1===l||(s=u.charCodeAt(c+1))<56320||s>57343?e?u.charAt(c):o:e?u.slice(c,c+2):(o-55296<<10)+(s-56320)+65536}};e.exports={codeAt:o(!1),charAt:o(!0)}},54986(e,t,n){var r=n(88113);e.exports=/Version\/10(?:\.\d+){1,2}(?: [\w./]+)?(?: Mobile\/\w+)? Safari\//.test(r)},76650(e,t,n){var r=n(17466),i=n(41340),a=n(38415),o=n(84488),s=Math.ceil,u=function(e){return function(t,n,u){var c,l,f=i(o(t)),d=f.length,h=void 0===u?" ":i(u),p=r(n);return p<=d||""==h?f:(c=p-d,(l=a.call(h,s(c/h.length))).length>c&&(l=l.slice(0,c)),e?f+l:l+f)}};e.exports={start:u(!1),end:u(!0)}},33197(e){"use strict";var t=2147483647,n=36,r=1,i=26,a=38,o=700,s=72,u=128,c="-",l=/[^\0-\u007E]/,f=/[.\u3002\uFF0E\uFF61]/g,d="Overflow: input needs wider integers to process",h=n-r,p=Math.floor,b=String.fromCharCode,m=function(e){for(var t=[],n=0,r=e.length;n=55296&&i<=56319&&n>1,e+=p(e/t);e>h*i>>1;s+=n)e=p(e/h);return p(s+(h+1)*e/(e+a))},y=function(e){var a,o,l=[],f=(e=m(e)).length,h=u,y=0,w=s;for(a=0;a=h&&op((t-y)/k))throw RangeError(d);for(y+=(S-h)*k,h=S,a=0;at)throw RangeError(d);if(o==h){for(var x=y,T=n;;T+=n){var M=T<=w?r:T>=w+i?i:T-w;if(x0;(o>>>=1)&&(t+=t))1&o&&(n+=t);return n}},76091(e,t,n){var r=n(47293),i=n(81361),a="​\x85᠎";e.exports=function(e){return r(function(){return!!i[e]()||a[e]()!=a||i[e].name!==e})}},53111(e,t,n){var r=n(84488),i=n(41340),a="["+n(81361)+"]",o=RegExp("^"+a+a+"*"),s=RegExp(a+a+"*$"),u=function(e){return function(t){var n=i(r(t));return 1&e&&(n=n.replace(o,"")),2&e&&(n=n.replace(s,"")),n}};e.exports={start:u(1),end:u(2),trim:u(3)}},20261(e,t,n){var r,i,a,o,s=n(17854),u=n(47293),c=n(49974),l=n(60490),f=n(80317),d=n(6833),h=n(35268),p=s.setImmediate,b=s.clearImmediate,m=s.process,g=s.MessageChannel,v=s.Dispatch,y=0,w={},_="onreadystatechange";try{r=s.location}catch(E){}var S=function(e){if(w.hasOwnProperty(e)){var t=w[e];delete w[e],t()}},k=function(e){return function(){S(e)}},x=function(e){S(e.data)},T=function(e){s.postMessage(String(e),r.protocol+"//"+r.host)};p&&b||(p=function(e){for(var t=[],n=arguments.length,r=1;n>r;)t.push(arguments[r++]);return w[++y]=function(){("function"==typeof e?e:Function(e)).apply(void 0,t)},i(y),y},b=function(e){delete w[e]},h?i=function(e){m.nextTick(k(e))}:v&&v.now?i=function(e){v.now(k(e))}:g&&!d?(o=(a=new g).port2,a.port1.onmessage=x,i=c(o.postMessage,o,1)):s.addEventListener&&"function"==typeof postMessage&&!s.importScripts&&r&&"file:"!==r.protocol&&!u(T)?(i=T,s.addEventListener("message",x,!1)):i=_ in f("script")?function(e){l.appendChild(f("script"))[_]=function(){l.removeChild(this),S(e)}}:function(e){setTimeout(k(e),0)}),e.exports={set:p,clear:b}},50863(e,t,n){var r=n(84326);e.exports=function(e){if("number"!=typeof e&&"Number"!=r(e))throw TypeError("Incorrect invocation");return+e}},51400(e,t,n){var r=n(99958),i=Math.max,a=Math.min;e.exports=function(e,t){var n=r(e);return n<0?i(n+t,0):a(n,t)}},57067(e,t,n){var r=n(99958),i=n(17466);e.exports=function(e){if(void 0===e)return 0;var t=r(e),n=i(t);if(t!==n)throw RangeError("Wrong length or index");return n}},45656(e,t,n){var r=n(68361),i=n(84488);e.exports=function(e){return r(i(e))}},99958(e){var t=Math.ceil,n=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?n:t)(e)}},17466(e,t,n){var r=n(99958),i=Math.min;e.exports=function(e){return e>0?i(r(e),9007199254740991):0}},47908(e,t,n){var r=n(84488);e.exports=function(e){return Object(r(e))}},84590(e,t,n){var r=n(73002);e.exports=function(e,t){var n=r(e);if(n%t)throw RangeError("Wrong offset");return n}},73002(e,t,n){var r=n(99958);e.exports=function(e){var t=r(e);if(t<0)throw RangeError("The argument can't be less than 0");return t}},57593(e,t,n){var r=n(70111),i=n(52190),a=n(92140),o=n(5112)("toPrimitive");e.exports=function(e,t){if(!r(e)||i(e))return e;var n,s=e[o];if(void 0!==s){if(void 0===t&&(t="default"),!r(n=s.call(e,t))||i(n))return n;throw TypeError("Can't convert object to primitive value")}return void 0===t&&(t="number"),a(e,t)}},34948(e,t,n){var r=n(57593),i=n(52190);e.exports=function(e){var t=r(e,"string");return i(t)?t:String(t)}},51694(e,t,n){var r=n(5112)("toStringTag"),i={};i[r]="z",e.exports="[object z]"===String(i)},41340(e,t,n){var r=n(52190);e.exports=function(e){if(r(e))throw TypeError("Cannot convert a Symbol value to a string");return String(e)}},19843(e,t,n){"use strict";var r=n(82109),i=n(17854),a=n(19781),o=n(63832),s=n(90260),u=n(13331),c=n(25787),l=n(79114),f=n(68880),d=n(18730),h=n(17466),p=n(57067),b=n(84590),m=n(34948),g=n(86656),v=n(70648),y=n(70111),w=n(52190),_=n(70030),E=n(27674),S=n(8006).f,k=n(97321),x=n(42092).forEach,T=n(96340),M=n(3070),O=n(31236),A=n(29909),L=n(79587),C=A.get,I=A.set,D=M.f,N=O.f,P=Math.round,R=i.RangeError,j=u.ArrayBuffer,F=u.DataView,Y=s.NATIVE_ARRAY_BUFFER_VIEWS,B=s.TYPED_ARRAY_CONSTRUCTOR,U=s.TYPED_ARRAY_TAG,H=s.TypedArray,$=s.TypedArrayPrototype,z=s.aTypedArrayConstructor,G=s.isTypedArray,W="BYTES_PER_ELEMENT",K="Wrong length",V=function(e,t){for(var n=0,r=t.length,i=new(z(e))(r);r>n;)i[n]=t[n++];return i},q=function(e,t){D(e,t,{get:function(){return C(this)[t]}})},Z=function(e){var t;return e instanceof j||"ArrayBuffer"==(t=v(e))||"SharedArrayBuffer"==t},X=function(e,t){return G(e)&&!w(t)&&t in e&&d(+t)&&t>=0},J=function(e,t){return t=m(t),X(e,t)?l(2,e[t]):N(e,t)},Q=function(e,t,n){return(t=m(t),X(e,t)&&y(n)&&g(n,"value")&&!g(n,"get")&&!g(n,"set")&&!n.configurable&&(!g(n,"writable")||n.writable)&&(!g(n,"enumerable")||n.enumerable))?(e[t]=n.value,e):D(e,t,n)};a?(Y||(O.f=J,M.f=Q,q($,"buffer"),q($,"byteOffset"),q($,"byteLength"),q($,"length")),r({target:"Object",stat:!0,forced:!Y},{getOwnPropertyDescriptor:J,defineProperty:Q}),e.exports=function(e,t,n){var a=e.match(/\d+$/)[0]/8,s=e+(n?"Clamped":"")+"Array",u="get"+e,l="set"+e,d=i[s],m=d,g=m&&m.prototype,v={},w=function(e,t){var n=C(e);return n.view[u](t*a+n.byteOffset,!0)},M=function(e,t,r){var i=C(e);n&&(r=(r=P(r))<0?0:r>255?255:255&r),i.view[l](t*a+i.byteOffset,r,!0)},O=function(e,t){D(e,t,{get:function(){return w(this,t)},set:function(e){return M(this,t,e)},enumerable:!0})};Y?o&&(m=t(function(e,t,n,r){return c(e,m,s),L(y(t)?Z(t)?void 0!==r?new d(t,b(n,a),r):void 0!==n?new d(t,b(n,a)):new d(t):G(t)?V(m,t):k.call(m,t):new d(p(t)),e,m)}),E&&E(m,H),x(S(d),function(e){e in m||f(m,e,d[e])}),m.prototype=g):(m=t(function(e,t,n,r){c(e,m,s);var i,o,u,l=0,f=0;if(y(t)){if(Z(t)){i=t,f=b(n,a);var d=t.byteLength;if(void 0===r){if(d%a||(o=d-f)<0)throw R(K)}else if((o=h(r)*a)+f>d)throw R(K);u=o/a}else if(G(t))return V(m,t);else return k.call(m,t)}else o=(u=p(t))*a,i=new j(o);for(I(e,{buffer:i,byteOffset:f,byteLength:o,length:u,view:new F(i)});l1?arguments[1]:void 0,g=void 0!==m,v=o(p);if(void 0!=v&&!s(v))for(h=(d=a(p,v)).next,p=[];!(f=h.call(d)).done;)p.push(f.value);for(g&&b>2&&(m=u(m,arguments[2],2)),n=i(p.length),l=new(c(this))(n),t=0;n>t;t++)l[t]=g?m(p[t],t):p[t];return l}},66304(e,t,n){var r=n(90260),i=n(36707),a=r.TYPED_ARRAY_CONSTRUCTOR,o=r.aTypedArrayConstructor;e.exports=function(e){return o(i(e,e[a]))}},69711(e){var t=0,n=Math.random();e.exports=function(e){return"Symbol("+String(void 0===e?"":e)+")_"+(++t+n).toString(36)}},43307(e,t,n){var r=n(30133);e.exports=r&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},6061(e,t,n){var r=n(5112);t.f=r},5112(e,t,n){var r=n(17854),i=n(72309),a=n(86656),o=n(69711),s=n(30133),u=n(43307),c=i("wks"),l=r.Symbol,f=u?l:l&&l.withoutSetter||o;e.exports=function(e){return a(c,e)&&(s||"string"==typeof c[e])||(s&&a(l,e)?c[e]=l[e]:c[e]=f("Symbol."+e)),c[e]}},81361(e){e.exports=" \n\v\f\r \xa0               \u2028\u2029\uFEFF"},9170(e,t,n){"use strict";var r=n(82109),i=n(79518),a=n(27674),o=n(70030),s=n(68880),u=n(79114),c=n(20408),l=n(41340),f=function(e,t){var n=this;if(!(n instanceof f))return new f(e,t);a&&(n=a(Error(void 0),i(n))),void 0!==t&&s(n,"message",l(t));var r=[];return c(e,r.push,{that:r}),s(n,"errors",r),n};f.prototype=o(Error.prototype,{constructor:u(5,f),message:u(5,""),name:u(5,"AggregateError")}),r({global:!0},{AggregateError:f})},18264(e,t,n){"use strict";var r=n(82109),i=n(17854),a=n(13331),o=n(96340),s="ArrayBuffer",u=a[s];r({global:!0,forced:i[s]!==u},{ArrayBuffer:u}),o(s)},76938(e,t,n){var r=n(82109),i=n(90260);r({target:"ArrayBuffer",stat:!0,forced:!i.NATIVE_ARRAY_BUFFER_VIEWS},{isView:i.isView})},39575(e,t,n){"use strict";var r=n(82109),i=n(47293),a=n(13331),o=n(19670),s=n(51400),u=n(17466),c=n(36707),l=a.ArrayBuffer,f=a.DataView,d=l.prototype.slice,h=i(function(){return!new l(2).slice(1,void 0).byteLength});r({target:"ArrayBuffer",proto:!0,unsafe:!0,forced:h},{slice:function(e,t){if(void 0!==d&&void 0===t)return d.call(o(this),e);for(var n=o(this).byteLength,r=s(e,n),i=s(void 0===t?n:t,n),a=new(c(this,l))(u(i-r)),h=new f(this),p=new f(a),b=0;r=0?r:n+r;return s<0||s>=n?void 0:t[s]}}),s("at")},92222(e,t,n){"use strict";var r=n(82109),i=n(47293),a=n(43157),o=n(70111),s=n(47908),u=n(17466),c=n(86135),l=n(65417),f=n(81194),d=n(5112),h=n(7392),p=d("isConcatSpreadable"),b=9007199254740991,m="Maximum allowed index exceeded",g=h>=51||!i(function(){var e=[];return e[p]=!1,e.concat()[0]!==e}),v=f("concat"),y=function(e){if(!o(e))return!1;var t=e[p];return void 0!==t?!!t:a(e)};r({target:"Array",proto:!0,forced:!g||!v},{concat:function(e){var t,n,r,i,a,o=s(this),f=l(o,0),d=0;for(t=-1,r=arguments.length;tb)throw TypeError(m);for(n=0;n=b)throw TypeError(m);c(f,d++,a)}return f.length=d,f}})},50545(e,t,n){var r=n(82109),i=n(1048),a=n(51223);r({target:"Array",proto:!0},{copyWithin:i}),a("copyWithin")},26541(e,t,n){"use strict";var r=n(82109),i=n(42092).every,a=n(9341)("every");r({target:"Array",proto:!0,forced:!a},{every:function(e){return i(this,e,arguments.length>1?arguments[1]:void 0)}})},43290(e,t,n){var r=n(82109),i=n(21285),a=n(51223);r({target:"Array",proto:!0},{fill:i}),a("fill")},57327(e,t,n){"use strict";var r=n(82109),i=n(42092).filter,a=n(81194)("filter");r({target:"Array",proto:!0,forced:!a},{filter:function(e){return i(this,e,arguments.length>1?arguments[1]:void 0)}})},34553(e,t,n){"use strict";var r=n(82109),i=n(42092).findIndex,a=n(51223),o="findIndex",s=!0;o in[]&&[,][o](function(){s=!1}),r({target:"Array",proto:!0,forced:s},{findIndex:function(e){return i(this,e,arguments.length>1?arguments[1]:void 0)}}),a(o)},69826(e,t,n){"use strict";var r=n(82109),i=n(42092).find,a=n(51223),o="find",s=!0;o in[]&&[,][o](function(){s=!1}),r({target:"Array",proto:!0,forced:s},{find:function(e){return i(this,e,arguments.length>1?arguments[1]:void 0)}}),a(o)},86535(e,t,n){"use strict";var r=n(82109),i=n(6790),a=n(47908),o=n(17466),s=n(13099),u=n(65417);r({target:"Array",proto:!0},{flatMap:function(e){var t,n=a(this),r=o(n.length);return s(e),(t=u(n,0)).length=i(t,n,n,r,0,1,e,arguments.length>1?arguments[1]:void 0),t}})},84944(e,t,n){"use strict";var r=n(82109),i=n(6790),a=n(47908),o=n(17466),s=n(99958),u=n(65417);r({target:"Array",proto:!0},{flat:function(){var e=arguments.length?arguments[0]:void 0,t=a(this),n=o(t.length),r=u(t,0);return r.length=i(r,t,t,n,0,void 0===e?1:s(e)),r}})},89554(e,t,n){"use strict";var r=n(82109),i=n(18533);r({target:"Array",proto:!0,forced:[].forEach!=i},{forEach:i})},91038(e,t,n){var r=n(82109),i=n(48457),a=!n(17072)(function(e){Array.from(e)});r({target:"Array",stat:!0,forced:a},{from:i})},26699(e,t,n){"use strict";var r=n(82109),i=n(41318).includes,a=n(51223);r({target:"Array",proto:!0},{includes:function(e){return i(this,e,arguments.length>1?arguments[1]:void 0)}}),a("includes")},82772(e,t,n){"use strict";var r=n(82109),i=n(41318).indexOf,a=n(9341),o=[].indexOf,s=!!o&&1/[1].indexOf(1,-0)<0,u=a("indexOf");r({target:"Array",proto:!0,forced:s||!u},{indexOf:function(e){return s?o.apply(this,arguments)||0:i(this,e,arguments.length>1?arguments[1]:void 0)}})},79753(e,t,n){var r=n(82109),i=n(43157);r({target:"Array",stat:!0},{isArray:i})},66992(e,t,n){"use strict";var r=n(45656),i=n(51223),a=n(97497),o=n(29909),s=n(70654),u="Array Iterator",c=o.set,l=o.getterFor(u);e.exports=s(Array,"Array",function(e,t){c(this,{type:u,target:r(e),index:0,kind:t})},function(){var e=l(this),t=e.target,n=e.kind,r=e.index++;return!t||r>=t.length?(e.target=void 0,{value:void 0,done:!0}):"keys"==n?{value:r,done:!1}:"values"==n?{value:t[r],done:!1}:{value:[r,t[r]],done:!1}},"values"),a.Arguments=a.Array,i("keys"),i("values"),i("entries")},69600(e,t,n){"use strict";var r=n(82109),i=n(68361),a=n(45656),o=n(9341),s=[].join,u=i!=Object,c=o("join",",");r({target:"Array",proto:!0,forced:u||!c},{join:function(e){return s.call(a(this),void 0===e?",":e)}})},94986(e,t,n){var r=n(82109),i=n(86583);r({target:"Array",proto:!0,forced:i!==[].lastIndexOf},{lastIndexOf:i})},21249(e,t,n){"use strict";var r=n(82109),i=n(42092).map,a=n(81194)("map");r({target:"Array",proto:!0,forced:!a},{map:function(e){return i(this,e,arguments.length>1?arguments[1]:void 0)}})},26572(e,t,n){"use strict";var r=n(82109),i=n(47293),a=n(86135),o=i(function(){function e(){}return!(Array.of.call(e) instanceof e)});r({target:"Array",stat:!0,forced:o},{of:function(){for(var e=0,t=arguments.length,n=new("function"==typeof this?this:Array)(t);t>e;)a(n,e,arguments[e++]);return n.length=t,n}})},96644(e,t,n){"use strict";var r=n(82109),i=n(53671).right,a=n(9341),o=n(7392),s=n(35268),u=a("reduceRight"),c=!s&&o>79&&o<83;r({target:"Array",proto:!0,forced:!u||c},{reduceRight:function(e){return i(this,e,arguments.length,arguments.length>1?arguments[1]:void 0)}})},85827(e,t,n){"use strict";var r=n(82109),i=n(53671).left,a=n(9341),o=n(7392),s=n(35268),u=a("reduce"),c=!s&&o>79&&o<83;r({target:"Array",proto:!0,forced:!u||c},{reduce:function(e){return i(this,e,arguments.length,arguments.length>1?arguments[1]:void 0)}})},65069(e,t,n){"use strict";var r=n(82109),i=n(43157),a=[].reverse,o=[1,2];r({target:"Array",proto:!0,forced:String(o)===String(o.reverse())},{reverse:function(){return i(this)&&(this.length=this.length),a.call(this)}})},47042(e,t,n){"use strict";var r=n(82109),i=n(70111),a=n(43157),o=n(51400),s=n(17466),u=n(45656),c=n(86135),l=n(5112),f=n(81194)("slice"),d=l("species"),h=[].slice,p=Math.max;r({target:"Array",proto:!0,forced:!f},{slice:function(e,t){var n,r,l,f=u(this),b=s(f.length),m=o(e,b),g=o(void 0===t?b:t,b);if(a(f)&&("function"==typeof(n=f.constructor)&&(n===Array||a(n.prototype))?n=void 0:i(n)&&null===(n=n[d])&&(n=void 0),n===Array||void 0===n))return h.call(f,m,g);for(l=0,r=new(void 0===n?Array:n)(p(g-m,0));m1?arguments[1]:void 0)}})},2707(e,t,n){"use strict";var r=n(82109),i=n(13099),a=n(47908),o=n(17466),s=n(41340),u=n(47293),c=n(94362),l=n(9341),f=n(68886),d=n(30256),h=n(7392),p=n(98008),b=[],m=b.sort,g=u(function(){b.sort(void 0)}),v=u(function(){b.sort(null)}),y=l("sort"),w=!u(function(){if(h)return h<70;if(!f||!(f>3)){if(d)return!0;if(p)return p<603;var e,t,n,r,i="";for(e=65;e<76;e++){switch(t=String.fromCharCode(e),e){case 66:case 69:case 70:case 72:n=3;break;case 68:case 71:n=4;break;default:n=2}for(r=0;r<47;r++)b.push({k:t+r,v:n})}for(b.sort(function(e,t){return t.v-e.v}),r=0;rs(n)?1:-1}};r({target:"Array",proto:!0,forced:_},{sort:function(e){void 0!==e&&i(e);var t,n,r=a(this);if(w)return void 0===e?m.call(r):m.call(r,e);var s=[],u=o(r.length);for(n=0;nh)throw TypeError(p);for(b=0,l=u(v,r);by-r+n;b--)delete v[b-1]}else if(n>r)for(b=y-r;b>w;b--)m=b+r-1,g=b+n-1,m in v?v[g]=v[m]:delete v[g];for(b=0;b94906265.62425156?s(e)+c:a(e-1+u(e-1)*u(e+1))}})},82376(e,t,n){var r=n(82109),i=Math.asinh,a=Math.log,o=Math.sqrt;function s(e){return isFinite(e=+e)&&0!=e?e<0?-s(-e):a(e+o(e*e+1)):e}r({target:"Math",stat:!0,forced:!(i&&1/i(0)>0)},{asinh:s})},73181(e,t,n){var r=n(82109),i=Math.atanh,a=Math.log;r({target:"Math",stat:!0,forced:!(i&&1/i(-0)<0)},{atanh:function(e){return 0==(e=+e)?e:a((1+e)/(1-e))/2}})},23484(e,t,n){var r=n(82109),i=n(64310),a=Math.abs,o=Math.pow;r({target:"Math",stat:!0},{cbrt:function(e){return i(e=+e)*o(a(e),1/3)}})},2388(e,t,n){var r=n(82109),i=Math.floor,a=Math.log,o=Math.LOG2E;r({target:"Math",stat:!0},{clz32:function(e){return(e>>>=0)?31-i(a(e+.5)*o):32}})},88621(e,t,n){var r=n(82109),i=n(66736),a=Math.cosh,o=Math.abs,s=Math.E;r({target:"Math",stat:!0,forced:!a||a(710)===1/0},{cosh:function(e){var t=i(o(e)-1)+1;return(t+1/(t*s*s))*(s/2)}})},60403(e,t,n){var r=n(82109),i=n(66736);r({target:"Math",stat:!0,forced:i!=Math.expm1},{expm1:i})},84755(e,t,n){var r=n(82109),i=n(26130);r({target:"Math",stat:!0},{fround:i})},25438(e,t,n){var r=n(82109),i=Math.hypot,a=Math.abs,o=Math.sqrt,s=!!i&&i(1/0,NaN)!==1/0;r({target:"Math",stat:!0,forced:s},{hypot:function(e,t){for(var n,r,i=0,s=0,u=arguments.length,c=0;s0?i+=(r=n/c)*r:i+=n;return c===1/0?1/0:c*o(i)}})},90332(e,t,n){var r=n(82109),i=n(47293),a=Math.imul,o=i(function(){return -5!=a(4294967295,5)||2!=a.length});r({target:"Math",stat:!0,forced:o},{imul:function(e,t){var n=65535,r=+e,i=+t,a=n&r,o=n&i;return 0|a*o+((n&r>>>16)*o+a*(n&i>>>16)<<16>>>0)}})},40658(e,t,n){var r=n(82109),i=Math.log,a=Math.LOG10E;r({target:"Math",stat:!0},{log10:function(e){return i(e)*a}})},40197(e,t,n){var r=n(82109),i=n(26513);r({target:"Math",stat:!0},{log1p:i})},44914(e,t,n){var r=n(82109),i=Math.log,a=Math.LN2;r({target:"Math",stat:!0},{log2:function(e){return i(e)/a}})},52420(e,t,n){var r=n(82109),i=n(64310);r({target:"Math",stat:!0},{sign:i})},60160(e,t,n){var r=n(82109),i=n(47293),a=n(66736),o=Math.abs,s=Math.exp,u=Math.E,c=i(function(){return -.00000000000000002!=Math.sinh(-.00000000000000002)});r({target:"Math",stat:!0,forced:c},{sinh:function(e){return 1>o(e=+e)?(a(e)-a(-e))/2:(s(e-1)-s(-e-1))*(u/2)}})},60970(e,t,n){var r=n(82109),i=n(66736),a=Math.exp;r({target:"Math",stat:!0},{tanh:function(e){var t=i(e=+e),n=i(-e);return t==1/0?1:n==1/0?-1:(t-n)/(a(e)+a(-e))}})},10408(e,t,n){n(58003)(Math,"Math",!0)},73689(e,t,n){var r=n(82109),i=Math.ceil,a=Math.floor;r({target:"Math",stat:!0},{trunc:function(e){return(e>0?a:i)(e)}})},9653(e,t,n){"use strict";var r=n(19781),i=n(17854),a=n(54705),o=n(31320),s=n(86656),u=n(84326),c=n(79587),l=n(52190),f=n(57593),d=n(47293),h=n(70030),p=n(8006).f,b=n(31236).f,m=n(3070).f,g=n(53111).trim,v="Number",y=i[v],w=y.prototype,_=u(h(w))==v,E=function(e){if(l(e))throw TypeError("Cannot convert a Symbol value to a number");var t,n,r,i,a,o,s,u,c=f(e,"number");if("string"==typeof c&&c.length>2){if(43===(t=(c=g(c)).charCodeAt(0))||45===t){if(88===(n=c.charCodeAt(2))||120===n)return NaN}else if(48===t){switch(c.charCodeAt(1)){case 66:case 98:r=2,i=49;break;case 79:case 111:r=8,i=55;break;default:return+c}for(s=0,o=(a=c.slice(2)).length;si)return NaN;return parseInt(a,r)}}return+c};if(a(v,!y(" 0o1")||!y("0b1")||y("+0x1"))){for(var S,k=function(e){var t=arguments.length<1?0:e,n=this;return n instanceof k&&(_?d(function(){w.valueOf.call(n)}):u(n)!=v)?c(new y(E(t)),n,k):E(t)},x=r?p(y):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger,fromString,range".split(","),T=0;x.length>T;T++)s(y,S=x[T])&&!s(k,S)&&m(k,S,b(y,S));k.prototype=w,w.constructor=k,o(i,v,k)}},93299(e,t,n){n(82109)({target:"Number",stat:!0},{EPSILON:2220446049250313e-31})},35192(e,t,n){var r=n(82109),i=n(77023);r({target:"Number",stat:!0},{isFinite:i})},33161(e,t,n){var r=n(82109),i=n(18730);r({target:"Number",stat:!0},{isInteger:i})},44048(e,t,n){n(82109)({target:"Number",stat:!0},{isNaN:function(e){return e!=e}})},78285(e,t,n){var r=n(82109),i=n(18730),a=Math.abs;r({target:"Number",stat:!0},{isSafeInteger:function(e){return i(e)&&9007199254740991>=a(e)}})},44363(e,t,n){n(82109)({target:"Number",stat:!0},{MAX_SAFE_INTEGER:9007199254740991})},55994(e,t,n){n(82109)({target:"Number",stat:!0},{MIN_SAFE_INTEGER:-9007199254740991})},61874(e,t,n){var r=n(82109),i=n(2814);r({target:"Number",stat:!0,forced:Number.parseFloat!=i},{parseFloat:i})},9494(e,t,n){var r=n(82109),i=n(83009);r({target:"Number",stat:!0,forced:Number.parseInt!=i},{parseInt:i})},56977(e,t,n){"use strict";var r=n(82109),i=n(99958),a=n(50863),o=n(38415),s=n(47293),u=1..toFixed,c=Math.floor,l=function(e,t,n){return 0===t?n:t%2==1?l(e,t-1,n*e):l(e*e,t/2,n)},f=function(e){for(var t=0,n=e;n>=4096;)t+=12,n/=4096;for(;n>=2;)t+=1,n/=2;return t},d=function(e,t,n){for(var r=-1,i=n;++r<6;)i+=t*e[r],e[r]=i%1e7,i=c(i/1e7)},h=function(e,t){for(var n=6,r=0;--n>=0;)r+=e[n],e[n]=c(r/t),r=r%t*1e7},p=function(e){for(var t=6,n="";--t>=0;)if(""!==n||0===t||0!==e[t]){var r=String(e[t]);n=""===n?r:n+o.call("0",7-r.length)+r}return n},b=!!u||!s(function(){u.call({})});r({target:"Number",proto:!0,forced:b},{toFixed:function(e){var t,n,r,s,u=a(this),c=i(e),b=[0,0,0,0,0,0],m="",g="0";if(c<0||c>20)throw RangeError("Incorrect fraction digits");if(u!=u)return"NaN";if(u<=-1e21||u>=1e21)return String(u);if(u<0&&(m="-",u=-u),u>1e-21){if(n=(t=f(u*l(2,69,1))-69)<0?u*l(2,-t,1):u/l(2,t,1),n*=4503599627370496,(t=52-t)>0){for(d(b,0,n),r=c;r>=7;)d(b,1e7,0),r-=7;for(d(b,l(10,r,1),0),r=t-1;r>=23;)h(b,8388608),r-=23;h(b,1<0?m+((s=g.length)<=c?"0."+o.call("0",c-s)+g:g.slice(0,s-c)+"."+g.slice(s-c)):m+g}})},55147(e,t,n){"use strict";var r=n(82109),i=n(47293),a=n(50863),o=1..toPrecision,s=i(function(){return"1"!==o.call(1,void 0)})||!i(function(){o.call({})});r({target:"Number",proto:!0,forced:s},{toPrecision:function(e){return void 0===e?o.call(a(this)):o.call(a(this),e)}})},19601(e,t,n){var r=n(82109),i=n(21574);r({target:"Object",stat:!0,forced:Object.assign!==i},{assign:i})},78011(e,t,n){var r=n(82109),i=n(19781),a=n(70030);r({target:"Object",stat:!0,sham:!i},{create:a})},59595(e,t,n){"use strict";var r=n(82109),i=n(19781),a=n(69026),o=n(47908),s=n(13099),u=n(3070);i&&r({target:"Object",proto:!0,forced:a},{__defineGetter__:function(e,t){u.f(o(this),e,{get:s(t),enumerable:!0,configurable:!0})}})},33321(e,t,n){var r=n(82109),i=n(19781),a=n(36048);r({target:"Object",stat:!0,forced:!i,sham:!i},{defineProperties:a})},69070(e,t,n){var r=n(82109),i=n(19781),a=n(3070);r({target:"Object",stat:!0,forced:!i,sham:!i},{defineProperty:a.f})},35500(e,t,n){"use strict";var r=n(82109),i=n(19781),a=n(69026),o=n(47908),s=n(13099),u=n(3070);i&&r({target:"Object",proto:!0,forced:a},{__defineSetter__:function(e,t){u.f(o(this),e,{set:s(t),enumerable:!0,configurable:!0})}})},69720(e,t,n){var r=n(82109),i=n(44699).entries;r({target:"Object",stat:!0},{entries:function(e){return i(e)}})},43371(e,t,n){var r=n(82109),i=n(76677),a=n(47293),o=n(70111),s=n(62423).onFreeze,u=Object.freeze,c=a(function(){u(1)});r({target:"Object",stat:!0,forced:c,sham:!i},{freeze:function(e){return u&&o(e)?u(s(e)):e}})},38559(e,t,n){var r=n(82109),i=n(20408),a=n(86135);r({target:"Object",stat:!0},{fromEntries:function(e){var t={};return i(e,function(e,n){a(t,e,n)},{AS_ENTRIES:!0}),t}})},38880(e,t,n){var r=n(82109),i=n(47293),a=n(45656),o=n(31236).f,s=n(19781),u=i(function(){o(1)}),c=!s||u;r({target:"Object",stat:!0,forced:c,sham:!s},{getOwnPropertyDescriptor:function(e,t){return o(a(e),t)}})},49337(e,t,n){var r=n(82109),i=n(19781),a=n(53887),o=n(45656),s=n(31236),u=n(86135);r({target:"Object",stat:!0,sham:!i},{getOwnPropertyDescriptors:function(e){for(var t,n,r=o(e),i=s.f,c=a(r),l={},f=0;c.length>f;)void 0!==(n=i(r,t=c[f++]))&&u(l,t,n);return l}})},36210(e,t,n){var r=n(82109),i=n(47293),a=n(1156).f,o=i(function(){return!Object.getOwnPropertyNames(1)});r({target:"Object",stat:!0,forced:o},{getOwnPropertyNames:a})},30489(e,t,n){var r=n(82109),i=n(47293),a=n(47908),o=n(79518),s=n(49920),u=i(function(){o(1)});r({target:"Object",stat:!0,forced:u,sham:!s},{getPrototypeOf:function(e){return o(a(e))}})},46314(e,t,n){var r=n(82109),i=n(86656);r({target:"Object",stat:!0},{hasOwn:i})},41825(e,t,n){var r=n(82109),i=n(47293),a=n(70111),o=Object.isExtensible,s=i(function(){o(1)});r({target:"Object",stat:!0,forced:s},{isExtensible:function(e){return!!a(e)&&(!o||o(e))}})},98410(e,t,n){var r=n(82109),i=n(47293),a=n(70111),o=Object.isFrozen,s=i(function(){o(1)});r({target:"Object",stat:!0,forced:s},{isFrozen:function(e){return!a(e)||!!o&&o(e)}})},72200(e,t,n){var r=n(82109),i=n(47293),a=n(70111),o=Object.isSealed,s=i(function(){o(1)});r({target:"Object",stat:!0,forced:s},{isSealed:function(e){return!a(e)||!!o&&o(e)}})},43304(e,t,n){var r=n(82109),i=n(81150);r({target:"Object",stat:!0},{is:i})},47941(e,t,n){var r=n(82109),i=n(47908),a=n(81956),o=n(47293)(function(){a(1)});r({target:"Object",stat:!0,forced:o},{keys:function(e){return a(i(e))}})},94869(e,t,n){"use strict";var r=n(82109),i=n(19781),a=n(69026),o=n(47908),s=n(34948),u=n(79518),c=n(31236).f;i&&r({target:"Object",proto:!0,forced:a},{__lookupGetter__:function(e){var t,n=o(this),r=s(e);do if(t=c(n,r))return t.get;while(n=u(n))}})},33952(e,t,n){"use strict";var r=n(82109),i=n(19781),a=n(69026),o=n(47908),s=n(34948),u=n(79518),c=n(31236).f;i&&r({target:"Object",proto:!0,forced:a},{__lookupSetter__:function(e){var t,n=o(this),r=s(e);do if(t=c(n,r))return t.set;while(n=u(n))}})},57227(e,t,n){var r=n(82109),i=n(70111),a=n(62423).onFreeze,o=n(76677),s=n(47293),u=Object.preventExtensions,c=s(function(){u(1)});r({target:"Object",stat:!0,forced:c,sham:!o},{preventExtensions:function(e){return u&&i(e)?u(a(e)):e}})},60514(e,t,n){var r=n(82109),i=n(70111),a=n(62423).onFreeze,o=n(76677),s=n(47293),u=Object.seal,c=s(function(){u(1)});r({target:"Object",stat:!0,forced:c,sham:!o},{seal:function(e){return u&&i(e)?u(a(e)):e}})},68304(e,t,n){var r=n(82109),i=n(27674);r({target:"Object",stat:!0},{setPrototypeOf:i})},41539(e,t,n){var r=n(51694),i=n(31320),a=n(90288);r||i(Object.prototype,"toString",a,{unsafe:!0})},26833(e,t,n){var r=n(82109),i=n(44699).values;r({target:"Object",stat:!0},{values:function(e){return i(e)}})},54678(e,t,n){var r=n(82109),i=n(2814);r({global:!0,forced:parseFloat!=i},{parseFloat:i})},91058(e,t,n){var r=n(82109),i=n(83009);r({global:!0,forced:parseInt!=i},{parseInt:i})},17922(e,t,n){"use strict";var r=n(82109),i=n(13099),a=n(78523),o=n(12534),s=n(20408);r({target:"Promise",stat:!0},{allSettled:function(e){var t=this,n=a.f(t),r=n.resolve,u=n.reject,c=o(function(){var n=i(t.resolve),a=[],o=0,u=1;s(e,function(e){var i=o++,s=!1;a.push(void 0),u++,n.call(t,e).then(function(e){!s&&(s=!0,a[i]={status:"fulfilled",value:e},--u||r(a))},function(e){!s&&(s=!0,a[i]={status:"rejected",reason:e},--u||r(a))})}),--u||r(a)});return c.error&&u(c.value),n.promise}})},34668(e,t,n){"use strict";var r=n(82109),i=n(13099),a=n(35005),o=n(78523),s=n(12534),u=n(20408),c="No one promise resolved";r({target:"Promise",stat:!0},{any:function(e){var t=this,n=o.f(t),r=n.resolve,l=n.reject,f=s(function(){var n=i(t.resolve),o=[],s=0,f=1,d=!1;u(e,function(e){var i=s++,u=!1;o.push(void 0),f++,n.call(t,e).then(function(e){u||d||(d=!0,r(e))},function(e){!u&&!d&&(u=!0,o[i]=e,--f||l(new(a("AggregateError"))(o,c)))})}),--f||l(new(a("AggregateError"))(o,c))});return f.error&&l(f.value),n.promise}})},17727(e,t,n){"use strict";var r=n(82109),i=n(31913),a=n(13366),o=n(47293),s=n(35005),u=n(36707),c=n(69478),l=n(31320),f=!!a&&o(function(){a.prototype.finally.call({then:function(){}},function(){})});if(r({target:"Promise",proto:!0,real:!0,forced:f},{finally:function(e){var t=u(this,s("Promise")),n="function"==typeof e;return this.then(n?function(n){return c(t,e()).then(function(){return n})}:e,n?function(n){return c(t,e()).then(function(){throw n})}:e)}}),!i&&"function"==typeof a){var d=s("Promise").prototype.finally;a.prototype.finally!==d&&l(a.prototype,"finally",d,{unsafe:!0})}},88674(e,t,n){"use strict";var r,i,a,o,s=n(82109),u=n(31913),c=n(17854),l=n(35005),f=n(13366),d=n(31320),h=n(12248),p=n(27674),b=n(58003),m=n(96340),g=n(70111),v=n(13099),y=n(25787),w=n(42788),_=n(20408),E=n(17072),S=n(36707),k=n(20261).set,x=n(95948),T=n(69478),M=n(842),O=n(78523),A=n(12534),L=n(29909),C=n(54705),I=n(5112),D=n(7871),N=n(35268),P=n(7392),R=I("species"),j="Promise",F=L.get,Y=L.set,B=L.getterFor(j),U=f&&f.prototype,H=f,$=U,z=c.TypeError,G=c.document,W=c.process,K=O.f,V=K,q=!!(G&&G.createEvent&&c.dispatchEvent),Z="function"==typeof PromiseRejectionEvent,X="unhandledrejection",J="rejectionhandled",Q=0,ee=1,et=2,en=1,er=2,ei=!1,ea=C(j,function(){var e=w(H),t=e!==String(H);if(!t&&66===P||u&&!$.finally)return!0;if(P>=51&&/native code/.test(e))return!1;var n=new H(function(e){e(1)}),r=function(e){e(function(){},function(){})};return(n.constructor={})[R]=r,!(ei=n.then(function(){}) instanceof r)||!t&&D&&!Z}),eo=ea||!E(function(e){H.all(e).catch(function(){})}),es=function(e){var t;return!!g(e)&&"function"==typeof(t=e.then)&&t},eu=function(e,t){if(!e.notified){e.notified=!0;var n=e.reactions;x(function(){for(var r=e.value,i=e.state==ee,a=0;n.length>a;){var o,s,u,c=n[a++],l=i?c.ok:c.fail,f=c.resolve,d=c.reject,h=c.domain;try{l?(i||(e.rejection===er&&ed(e),e.rejection=en),!0===l?o=r:(h&&h.enter(),o=l(r),h&&(h.exit(),u=!0)),o===c.promise?d(z("Promise-chain cycle")):(s=es(o))?s.call(o,f,d):f(o)):d(r)}catch(p){h&&!u&&h.exit(),d(p)}}e.reactions=[],e.notified=!1,t&&!e.rejection&&el(e)})}},ec=function(e,t,n){var r,i;q?((r=G.createEvent("Event")).promise=t,r.reason=n,r.initEvent(e,!1,!0),c.dispatchEvent(r)):r={promise:t,reason:n},!Z&&(i=c["on"+e])?i(r):e===X&&M("Unhandled promise rejection",n)},el=function(e){k.call(c,function(){var t,n=e.facade,r=e.value;if(ef(e)&&(t=A(function(){N?W.emit("unhandledRejection",r,n):ec(X,n,r)}),e.rejection=N||ef(e)?er:en,t.error))throw t.value})},ef=function(e){return e.rejection!==en&&!e.parent},ed=function(e){k.call(c,function(){var t=e.facade;N?W.emit("rejectionHandled",t):ec(J,t,e.value)})},eh=function(e,t,n){return function(r){e(t,r,n)}},ep=function(e,t,n){e.done||(e.done=!0,n&&(e=n),e.value=t,e.state=et,eu(e,!0))},eb=function(e,t,n){if(!e.done){e.done=!0,n&&(e=n);try{if(e.facade===t)throw z("Promise can't be resolved itself");var r=es(t);r?x(function(){var n={done:!1};try{r.call(t,eh(eb,n,e),eh(ep,n,e))}catch(i){ep(n,i,e)}}):(e.value=t,e.state=ee,eu(e,!1))}catch(i){ep({done:!1},i,e)}}};if(ea&&($=(H=function(e){y(this,H,j),v(e),r.call(this);var t=F(this);try{e(eh(eb,t),eh(ep,t))}catch(n){ep(t,n)}}).prototype,(r=function(e){Y(this,{type:j,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:Q,value:void 0})}).prototype=h($,{then:function(e,t){var n=B(this),r=K(S(this,H));return r.ok="function"!=typeof e||e,r.fail="function"==typeof t&&t,r.domain=N?W.domain:void 0,n.parent=!0,n.reactions.push(r),n.state!=Q&&eu(n,!1),r.promise},catch:function(e){return this.then(void 0,e)}}),i=function(){var e=new r,t=F(e);this.promise=e,this.resolve=eh(eb,t),this.reject=eh(ep,t)},O.f=K=function(e){return e===H||e===a?new i(e):V(e)},!u&&"function"==typeof f&&U!==Object.prototype)){o=U.then,ei||(d(U,"then",function(e,t){var n=this;return new H(function(e,t){o.call(n,e,t)}).then(e,t)},{unsafe:!0}),d(U,"catch",$.catch,{unsafe:!0}));try{delete U.constructor}catch(em){}p&&p(U,$)}s({global:!0,wrap:!0,forced:ea},{Promise:H}),b(H,j,!1,!0),m(j),a=l(j),s({target:j,stat:!0,forced:ea},{reject:function(e){var t=K(this);return t.reject.call(void 0,e),t.promise}}),s({target:j,stat:!0,forced:u||ea},{resolve:function(e){return T(u&&this===a?H:this,e)}}),s({target:j,stat:!0,forced:eo},{all:function(e){var t=this,n=K(t),r=n.resolve,i=n.reject,a=A(function(){var n=v(t.resolve),a=[],o=0,s=1;_(e,function(e){var u=o++,c=!1;a.push(void 0),s++,n.call(t,e).then(function(e){!c&&(c=!0,a[u]=e,--s||r(a))},i)}),--s||r(a)});return a.error&&i(a.value),n.promise},race:function(e){var t=this,n=K(t),r=n.reject,i=A(function(){var i=v(t.resolve);_(e,function(e){i.call(t,e).then(n.resolve,r)})});return i.error&&r(i.value),n.promise}})},36535(e,t,n){var r=n(82109),i=n(35005),a=n(13099),o=n(19670),s=n(47293),u=i("Reflect","apply"),c=Function.apply,l=!s(function(){u(function(){})});r({target:"Reflect",stat:!0,forced:l},{apply:function(e,t,n){return a(e),o(n),u?u(e,t,n):c.call(e,t,n)}})},12419(e,t,n){var r=n(82109),i=n(35005),a=n(13099),o=n(19670),s=n(70111),u=n(70030),c=n(27065),l=n(47293),f=i("Reflect","construct"),d=l(function(){function e(){}return!(f(function(){},[],e) instanceof e)}),h=!l(function(){f(function(){})}),p=d||h;r({target:"Reflect",stat:!0,forced:p,sham:p},{construct:function(e,t){a(e),o(t);var n=arguments.length<3?e:a(arguments[2]);if(h&&!d)return f(e,t,n);if(e==n){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])}var r=[null];return r.push.apply(r,t),new(c.apply(e,r))}var i=n.prototype,l=u(s(i)?i:Object.prototype),p=Function.apply.call(e,l,t);return s(p)?p:l}})},69596(e,t,n){var r=n(82109),i=n(19781),a=n(19670),o=n(34948),s=n(3070),u=n(47293)(function(){Reflect.defineProperty(s.f({},1,{value:1}),1,{value:2})});r({target:"Reflect",stat:!0,forced:u,sham:!i},{defineProperty:function(e,t,n){a(e);var r=o(t);a(n);try{return s.f(e,r,n),!0}catch(i){return!1}}})},52586(e,t,n){var r=n(82109),i=n(19670),a=n(31236).f;r({target:"Reflect",stat:!0},{deleteProperty:function(e,t){var n=a(i(e),t);return(!n||!!n.configurable)&&delete e[t]}})},95683(e,t,n){var r=n(82109),i=n(19781),a=n(19670),o=n(31236);r({target:"Reflect",stat:!0,sham:!i},{getOwnPropertyDescriptor:function(e,t){return o.f(a(e),t)}})},39361(e,t,n){var r=n(82109),i=n(19670),a=n(79518),o=n(49920);r({target:"Reflect",stat:!0,sham:!o},{getPrototypeOf:function(e){return a(i(e))}})},74819(e,t,n){var r=n(82109),i=n(70111),a=n(19670),o=n(45032),s=n(31236),u=n(79518);function c(e,t){var n,r,l=arguments.length<3?e:arguments[2];return a(e)===l?e[t]:(n=s.f(e,t))?o(n)?n.value:void 0===n.get?void 0:n.get.call(l):i(r=u(e))?c(r,t,l):void 0}r({target:"Reflect",stat:!0},{get:c})},51037(e,t,n){n(82109)({target:"Reflect",stat:!0},{has:function(e,t){return t in e}})},5898(e,t,n){var r=n(82109),i=n(19670),a=Object.isExtensible;r({target:"Reflect",stat:!0},{isExtensible:function(e){return i(e),!a||a(e)}})},67556(e,t,n){var r=n(82109),i=n(53887);r({target:"Reflect",stat:!0},{ownKeys:i})},14361(e,t,n){var r=n(82109),i=n(35005),a=n(19670),o=n(76677);r({target:"Reflect",stat:!0,sham:!o},{preventExtensions:function(e){a(e);try{var t=i("Object","preventExtensions");return t&&t(e),!0}catch(n){return!1}}})},39532(e,t,n){var r=n(82109),i=n(19670),a=n(96077),o=n(27674);o&&r({target:"Reflect",stat:!0},{setPrototypeOf:function(e,t){i(e),a(t);try{return o(e,t),!0}catch(n){return!1}}})},83593(e,t,n){var r=n(82109),i=n(19670),a=n(70111),o=n(45032),s=n(47293),u=n(3070),c=n(31236),l=n(79518),f=n(79114);function d(e,t,n){var r,s,h,p=arguments.length<4?e:arguments[3],b=c.f(i(e),t);if(!b){if(a(s=l(e)))return d(s,t,n,p);b=f(0)}if(o(b)){if(!1===b.writable||!a(p))return!1;if(r=c.f(p,t)){if(r.get||r.set||!1===r.writable)return!1;r.value=n,u.f(p,t,r)}else u.f(p,t,f(0,n))}else{if(void 0===(h=b.set))return!1;h.call(p,n)}return!0}var h=s(function(){var e=function(){},t=u.f(new e,"a",{configurable:!0});return!1!==Reflect.set(e.prototype,"a",1,t)});r({target:"Reflect",stat:!0,forced:h},{set:d})},81299(e,t,n){var r=n(82109),i=n(17854),a=n(58003);r({global:!0},{Reflect:{}}),a(i.Reflect,"Reflect",!0)},24603(e,t,n){var r=n(19781),i=n(17854),a=n(54705),o=n(79587),s=n(68880),u=n(3070).f,c=n(8006).f,l=n(47850),f=n(41340),d=n(67066),h=n(52999),p=n(31320),b=n(47293),m=n(86656),g=n(29909).enforce,v=n(96340),y=n(5112),w=n(9441),_=n(38173),E=y("match"),S=i.RegExp,k=S.prototype,x=/^\?<[^\s\d!#%&*+<=>@^][^\s!#%&*+<=>@^]*>/,T=/a/g,M=/a/g,O=new S(T)!==T,A=h.UNSUPPORTED_Y,L=r&&(!O||A||w||_||b(function(){return M[E]=!1,S(T)!=T||S(M)==M||"/a/i"!=S(T,"i")})),C=function(e){for(var t,n=e.length,r=0,i="",a=!1;r<=n;r++){if("\\"===(t=e.charAt(r))){i+=t+e.charAt(++r);continue}a||"."!==t?("["===t?a=!0:"]"===t&&(a=!1),i+=t):i+="[\\s\\S]"}return i},I=function(e){for(var t,n=e.length,r=0,i="",a=[],o={},s=!1,u=!1,c=0,l="";r<=n;r++){if("\\"===(t=e.charAt(r)))t+=e.charAt(++r);else if("]"===t)s=!1;else if(!s)switch(!0){case"["===t:s=!0;break;case"("===t:x.test(e.slice(r+1))&&(r+=2,u=!0),i+=t,c++;continue;case">"===t&&u:if(""===l||m(o,l))throw SyntaxError("Invalid capture group name");o[l]=!0,a.push([l,c]),u=!1,l="";continue}u?l+=t:i+=t}return[i,a]};if(a("RegExp",L)){for(var D=function(e,t){var n,r,i,a,u,c,h=this instanceof D,p=l(e),b=void 0===t,m=[],v=e;if(!h&&p&&b&&e.constructor===D)return e;if((p||e instanceof D)&&(e=e.source,b&&(t=("flags"in v)?v.flags:d.call(v))),e=void 0===e?"":f(e),t=void 0===t?"":f(t),v=e,w&&("dotAll"in T)&&(r=!!t&&t.indexOf("s")>-1)&&(t=t.replace(/s/g,"")),n=t,A&&("sticky"in T)&&(i=!!t&&t.indexOf("y")>-1)&&(t=t.replace(/y/g,"")),_&&(e=(a=I(e))[0],m=a[1]),u=o(S(e,t),h?this:k,D),(r||i||m.length)&&(c=g(u),r&&(c.dotAll=!0,c.raw=D(C(e),n)),i&&(c.sticky=!0),m.length&&(c.groups=m)),e!==v)try{s(u,"source",""===v?"(?:)":v)}catch(y){}return u},N=function(e){(e in D)||u(D,e,{configurable:!0,get:function(){return S[e]},set:function(t){S[e]=t}})},P=c(S),R=0;P.length>R;)N(P[R++]);k.constructor=D,D.prototype=k,p(i,"RegExp",D)}v("RegExp")},28450(e,t,n){var r=n(19781),i=n(9441),a=n(3070).f,o=n(29909).get,s=RegExp.prototype;r&&i&&a(s,"dotAll",{configurable:!0,get:function(){if(this!==s){if(this instanceof RegExp)return!!o(this).dotAll;throw TypeError("Incompatible receiver, RegExp required")}}})},74916(e,t,n){"use strict";var r=n(82109),i=n(22261);r({target:"RegExp",proto:!0,forced:/./.exec!==i},{exec:i})},92087(e,t,n){var r=n(19781),i=n(3070),a=n(67066),o=n(47293);r&&o(function(){return"sy"!==Object.getOwnPropertyDescriptor(RegExp.prototype,"flags").get.call({dotAll:!0,sticky:!0})})&&i.f(RegExp.prototype,"flags",{configurable:!0,get:a})},88386(e,t,n){var r=n(19781),i=n(52999).UNSUPPORTED_Y,a=n(3070).f,o=n(29909).get,s=RegExp.prototype;r&&i&&a(s,"sticky",{configurable:!0,get:function(){if(this!==s){if(this instanceof RegExp)return!!o(this).sticky;throw TypeError("Incompatible receiver, RegExp required")}}})},77601(e,t,n){"use strict";n(74916);var r,i,a=n(82109),o=n(70111),s=(r=!1,(i=/[ac]/).exec=function(){return r=!0,/./.exec.apply(this,arguments)},!0===i.test("abc")&&r),u=/./.test;a({target:"RegExp",proto:!0,forced:!s},{test:function(e){if("function"!=typeof this.exec)return u.call(this,e);var t=this.exec(e);if(null!==t&&!o(t))throw Error("RegExp exec method returned something other than an Object or null");return!!t}})},39714(e,t,n){"use strict";var r=n(31320),i=n(19670),a=n(41340),o=n(47293),s=n(67066),u="toString",c=RegExp.prototype,l=c[u],f=o(function(){return"/a/b"!=l.call({source:"a",flags:"b"})}),d=l.name!=u;(f||d)&&r(RegExp.prototype,u,function(){var e=i(this),t=a(e.source),n=e.flags,r=a(void 0===n&&e instanceof RegExp&&!("flags"in c)?s.call(e):n);return"/"+t+"/"+r},{unsafe:!0})},70189(e,t,n){"use strict";var r=n(77710),i=n(95631);e.exports=r("Set",function(e){return function(){return e(this,arguments.length?arguments[0]:void 0)}},i)},15218(e,t,n){"use strict";var r=n(82109),i=n(14230),a=n(43429);r({target:"String",proto:!0,forced:a("anchor")},{anchor:function(e){return i(this,"a","name",e)}})},24506(e,t,n){"use strict";var r=n(82109),i=n(84488),a=n(99958),o=n(17466),s=n(41340),u=n(47293)(function(){return"\uD842"!=="𠮷".at(0)});r({target:"String",proto:!0,forced:u},{at:function(e){var t=s(i(this)),n=o(t.length),r=a(e),u=r>=0?r:n+r;return u<0||u>=n?void 0:t.charAt(u)}})},74475(e,t,n){"use strict";var r=n(82109),i=n(14230),a=n(43429);r({target:"String",proto:!0,forced:a("big")},{big:function(){return i(this,"big","","")}})},57929(e,t,n){"use strict";var r=n(82109),i=n(14230),a=n(43429);r({target:"String",proto:!0,forced:a("blink")},{blink:function(){return i(this,"blink","","")}})},50915(e,t,n){"use strict";var r=n(82109),i=n(14230),a=n(43429);r({target:"String",proto:!0,forced:a("bold")},{bold:function(){return i(this,"b","","")}})},79841(e,t,n){"use strict";var r=n(82109),i=n(28710).codeAt;r({target:"String",proto:!0},{codePointAt:function(e){return i(this,e)}})},27852(e,t,n){"use strict";var r,i=n(82109),a=n(31236).f,o=n(17466),s=n(41340),u=n(3929),c=n(84488),l=n(84964),f=n(31913),d="".endsWith,h=Math.min,p=l("endsWith"),b=!f&&!p&&!!(r=a(String.prototype,"endsWith"))&&!r.writable;i({target:"String",proto:!0,forced:!b&&!p},{endsWith:function(e){var t=s(c(this));u(e);var n=arguments.length>1?arguments[1]:void 0,r=o(t.length),i=void 0===n?r:h(o(n),r),a=s(e);return d?d.call(t,a,i):t.slice(i-a.length,i)===a}})},29253(e,t,n){"use strict";var r=n(82109),i=n(14230),a=n(43429);r({target:"String",proto:!0,forced:a("fixed")},{fixed:function(){return i(this,"tt","","")}})},42125(e,t,n){"use strict";var r=n(82109),i=n(14230),a=n(43429);r({target:"String",proto:!0,forced:a("fontcolor")},{fontcolor:function(e){return i(this,"font","color",e)}})},78830(e,t,n){"use strict";var r=n(82109),i=n(14230),a=n(43429);r({target:"String",proto:!0,forced:a("fontsize")},{fontsize:function(e){return i(this,"font","size",e)}})},94953(e,t,n){var r=n(82109),i=n(51400),a=String.fromCharCode,o=String.fromCodePoint;r({target:"String",stat:!0,forced:!!o&&1!=o.length},{fromCodePoint:function(e){for(var t,n=[],r=arguments.length,o=0;r>o;){if(t=+arguments[o++],i(t,1114111)!==t)throw RangeError(t+" is not a valid code point");n.push(t<65536?a(t):a(((t-=65536)>>10)+55296,t%1024+56320))}return n.join("")}})},32023(e,t,n){"use strict";var r=n(82109),i=n(3929),a=n(84488),o=n(41340),s=n(84964);r({target:"String",proto:!0,forced:!s("includes")},{includes:function(e){return!!~o(a(this)).indexOf(o(i(e)),arguments.length>1?arguments[1]:void 0)}})},58734(e,t,n){"use strict";var r=n(82109),i=n(14230),a=n(43429);r({target:"String",proto:!0,forced:a("italics")},{italics:function(){return i(this,"i","","")}})},78783(e,t,n){"use strict";var r=n(28710).charAt,i=n(41340),a=n(29909),o=n(70654),s="String Iterator",u=a.set,c=a.getterFor(s);o(String,"String",function(e){u(this,{type:s,string:i(e),index:0})},function(){var e,t=c(this),n=t.string,i=t.index;return i>=n.length?{value:void 0,done:!0}:(e=r(n,i),t.index+=e.length,{value:e,done:!1})})},29254(e,t,n){"use strict";var r=n(82109),i=n(14230),a=n(43429);r({target:"String",proto:!0,forced:a("link")},{link:function(e){return i(this,"a","href",e)}})},76373(e,t,n){"use strict";var r=n(82109),i=n(24994),a=n(84488),o=n(17466),s=n(41340),u=n(13099),c=n(19670),l=n(84326),f=n(47850),d=n(67066),h=n(68880),p=n(47293),b=n(5112),m=n(36707),g=n(31530),v=n(29909),y=n(31913),w=b("matchAll"),_="RegExp String",E=_+" Iterator",S=v.set,k=v.getterFor(E),x=RegExp.prototype,T=x.exec,M="".matchAll,O=!!M&&!p(function(){"a".matchAll(/./)}),A=function(e,t){var n,r=e.exec;if("function"==typeof r){if("object"!=typeof(n=r.call(e,t)))throw TypeError("Incorrect exec result");return n}return T.call(e,t)},L=i(function(e,t,n,r){S(this,{type:E,regexp:e,string:t,global:n,unicode:r,done:!1})},_,function(){var e=k(this);if(e.done)return{value:void 0,done:!0};var t=e.regexp,n=e.string,r=A(t,n);return null===r?{value:void 0,done:e.done=!0}:e.global?(""===s(r[0])&&(t.lastIndex=g(n,o(t.lastIndex),e.unicode)),{value:r,done:!1}):(e.done=!0,{value:r,done:!1})}),C=function(e){var t,n,r,i,a,u,l=c(this),f=s(e);return t=m(l,RegExp),void 0===(n=l.flags)&&l instanceof RegExp&&!("flags"in x)&&(n=d.call(l)),r=void 0===n?"":s(n),i=new t(t===RegExp?l.source:l,r),a=!!~r.indexOf("g"),u=!!~r.indexOf("u"),i.lastIndex=o(l.lastIndex),new L(i,f,a,u)};r({target:"String",proto:!0,forced:O},{matchAll:function(e){var t,n,r,i,o=a(this);if(null!=e){if(f(e)&&!~(t=s(a("flags"in x?e.flags:d.call(e)))).indexOf("g"))throw TypeError("`.matchAll` does not allow non-global regexes");if(O)return M.apply(o,arguments);if(void 0===(r=e[w])&&y&&"RegExp"==l(e)&&(r=C),null!=r)return u(r).call(e,o)}else if(O)return M.apply(o,arguments);return n=s(o),i=RegExp(e,"g"),y?C.call(i,n):i[w](n)}}),y||w in x||h(x,w,C)},4723(e,t,n){"use strict";var r=n(27007),i=n(19670),a=n(17466),o=n(41340),s=n(84488),u=n(31530),c=n(97651);r("match",function(e,t,n){return[function(t){var n=s(this),r=void 0==t?void 0:t[e];return void 0!==r?r.call(t,n):RegExp(t)[e](o(n))},function(e){var r,s=i(this),l=o(e),f=n(t,s,l);if(f.done)return f.value;if(!s.global)return c(s,l);var d=s.unicode;s.lastIndex=0;for(var h=[],p=0;null!==(r=c(s,l));){var b=o(r[0]);h[p]=b,""===b&&(s.lastIndex=u(l,a(s.lastIndex),d)),p++}return 0===p?null:h}]})},66528(e,t,n){"use strict";var r=n(82109),i=n(76650).end,a=n(54986);r({target:"String",proto:!0,forced:a},{padEnd:function(e){return i(this,e,arguments.length>1?arguments[1]:void 0)}})},83112(e,t,n){"use strict";var r=n(82109),i=n(76650).start,a=n(54986);r({target:"String",proto:!0,forced:a},{padStart:function(e){return i(this,e,arguments.length>1?arguments[1]:void 0)}})},38992(e,t,n){var r=n(82109),i=n(45656),a=n(17466),o=n(41340);r({target:"String",stat:!0},{raw:function(e){for(var t=i(e.raw),n=a(t.length),r=arguments.length,s=[],u=0;n>u;)s.push(o(t[u++])),ue.length?-1:""===t?n:e.indexOf(t,n)};r({target:"String",proto:!0},{replaceAll:function(e,t){var n,r,c,b,m,g,v,y,w,_=i(this),E=0,S=0,k="";if(null!=e){if((n=a(e))&&!~(r=o(i("flags"in d?e.flags:s.call(e)))).indexOf("g"))throw TypeError("`.replaceAll` does not allow non-global regexes");if(void 0!==(c=e[f]))return c.call(e,_,t);if(l&&n)return o(_).replace(e,t)}for(b=o(_),m=o(e),(g="function"==typeof t)||(t=o(t)),y=h(1,v=m.length),E=p(b,m,0);-1!==E;)w=g?o(t(m,E,b)):u(m,b,E,[],void 0,t),k+=b.slice(S,E)+w,S=E+v,E=p(b,m,E+y);return S")});r("replace",function(e,t,n){var r=v?"$":"$0";return[function(e,n){var r=c(this),i=void 0==e?void 0:e[h];return void 0!==i?i.call(e,r,n):t.call(u(r),e,n)},function(e,i){var c=a(this),h=u(e);if("string"==typeof i&&-1===i.indexOf(r)&&-1===i.indexOf("$<")){var g=n(t,c,h,i);if(g.done)return g.value}var v="function"==typeof i;v||(i=u(i));var y=c.global;if(y){var w=c.unicode;c.lastIndex=0}for(var _=[];;){var E=d(c,h);if(null===E||(_.push(E),!y))break;""===u(E[0])&&(c.lastIndex=l(h,s(c.lastIndex),w))}for(var S="",k=0,x=0;x<_.length;x++){for(var T=u((E=_[x])[0]),M=p(b(o(E.index),h.length),0),O=[],A=1;A=k&&(S+=h.slice(k,M)+I,k=M+T.length)}return S+h.slice(k)}]},!y||!g||v)},64765(e,t,n){"use strict";var r=n(27007),i=n(19670),a=n(84488),o=n(81150),s=n(41340),u=n(97651);r("search",function(e,t,n){return[function(t){var n=a(this),r=void 0==t?void 0:t[e];return void 0!==r?r.call(t,n):RegExp(t)[e](s(n))},function(e){var r=i(this),a=s(e),c=n(t,r,a);if(c.done)return c.value;var l=r.lastIndex;o(l,0)||(r.lastIndex=0);var f=u(r,a);return o(r.lastIndex,l)||(r.lastIndex=l),null===f?-1:f.index}]})},37268(e,t,n){"use strict";var r=n(82109),i=n(14230),a=n(43429);r({target:"String",proto:!0,forced:a("small")},{small:function(){return i(this,"small","","")}})},23123(e,t,n){"use strict";var r=n(27007),i=n(47850),a=n(19670),o=n(84488),s=n(36707),u=n(31530),c=n(17466),l=n(41340),f=n(97651),d=n(22261),h=n(52999),p=n(47293),b=h.UNSUPPORTED_Y,m=[].push,g=Math.min,v=4294967295,y=!p(function(){var e=/(?:)/,t=e.exec;e.exec=function(){return t.apply(this,arguments)};var n="ab".split(e);return 2!==n.length||"a"!==n[0]||"b"!==n[1]});r("split",function(e,t,n){var r;return r="c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1).length||2!="ab".split(/(?:ab)*/).length||4!=".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length?function(e,n){var r,a,s,u=l(o(this)),c=void 0===n?v:n>>>0;if(0===c)return[];if(void 0===e)return[u];if(!i(e))return t.call(u,e,c);for(var f=[],h=(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.unicode?"u":"")+(e.sticky?"y":""),p=0,b=RegExp(e.source,h+"g");(r=d.call(b,u))&&(!((a=b.lastIndex)>p)||(f.push(u.slice(p,r.index)),r.length>1&&r.index=c)));)b.lastIndex===r.index&&b.lastIndex++;return p===u.length?(s||!b.test(""))&&f.push(""):f.push(u.slice(p)),f.length>c?f.slice(0,c):f}:"0".split(void 0,0).length?function(e,n){return void 0===e&&0===n?[]:t.call(this,e,n)}:t,[function(t,n){var i=o(this),a=void 0==t?void 0:t[e];return void 0!==a?a.call(t,i,n):r.call(l(i),t,n)},function(e,i){var o=a(this),d=l(e),h=n(r,o,d,i,r!==t);if(h.done)return h.value;var p=s(o,RegExp),m=o.unicode,y=(o.ignoreCase?"i":"")+(o.multiline?"m":"")+(o.unicode?"u":"")+(b?"g":"y"),w=new p(b?"^(?:"+o.source+")":o,y),_=void 0===i?v:i>>>0;if(0===_)return[];if(0===d.length)return null===f(w,d)?[d]:[];for(var E=0,S=0,k=[];S1?arguments[1]:void 0,t.length)),r=s(e);return d?d.call(t,r,n):t.slice(n,n+r.length)===r}})},7397(e,t,n){"use strict";var r=n(82109),i=n(14230),a=n(43429);r({target:"String",proto:!0,forced:a("strike")},{strike:function(){return i(this,"strike","","")}})},60086(e,t,n){"use strict";var r=n(82109),i=n(14230),a=n(43429);r({target:"String",proto:!0,forced:a("sub")},{sub:function(){return i(this,"sub","","")}})},83650(e,t,n){"use strict";var r=n(82109),i=n(84488),a=n(99958),o=n(41340),s="".slice,u=Math.max,c=Math.min;r({target:"String",proto:!0},{substr:function(e,t){var n,r,l=o(i(this)),f=l.length,d=a(e);return(d===1/0&&(d=0),d<0&&(d=u(f+d,0)),(n=void 0===t?f:a(t))<=0||n===1/0)?"":(r=c(d+n,f),d>=r?"":s.call(l,d,r))}})},80623(e,t,n){"use strict";var r=n(82109),i=n(14230),a=n(43429);r({target:"String",proto:!0,forced:a("sup")},{sup:function(){return i(this,"sup","","")}})},48702(e,t,n){"use strict";var r=n(82109),i=n(53111).end,a=n(76091)("trimEnd"),o=a?function(){return i(this)}:"".trimEnd;r({target:"String",proto:!0,forced:a},{trimEnd:o,trimRight:o})},55674(e,t,n){"use strict";var r=n(82109),i=n(53111).start,a=n(76091)("trimStart"),o=a?function(){return i(this)}:"".trimStart;r({target:"String",proto:!0,forced:a},{trimStart:o,trimLeft:o})},73210(e,t,n){"use strict";var r=n(82109),i=n(53111).trim,a=n(76091);r({target:"String",proto:!0,forced:a("trim")},{trim:function(){return i(this)}})},72443(e,t,n){n(97235)("asyncIterator")},41817(e,t,n){"use strict";var r=n(82109),i=n(19781),a=n(17854),o=n(86656),s=n(70111),u=n(3070).f,c=n(99920),l=a.Symbol;if(i&&"function"==typeof l&&(!("description"in l.prototype)||void 0!==l().description)){var f={},d=function(){var e=arguments.length<1||void 0===arguments[0]?void 0:String(arguments[0]),t=this instanceof d?new l(e):void 0===e?l():l(e);return""===e&&(f[t]=!0),t};c(d,l);var h=d.prototype=l.prototype;h.constructor=d;var p=h.toString,b="Symbol(test)"==String(l("test")),m=/^Symbol\((.*)\)[^)]+$/;u(h,"description",{configurable:!0,get:function(){var e=s(this)?this.valueOf():this,t=p.call(e);if(o(f,e))return"";var n=b?t.slice(7,-1):t.replace(m,"$1");return""===n?void 0:n}}),r({global:!0,forced:!0},{Symbol:d})}},92401(e,t,n){n(97235)("hasInstance")},8722(e,t,n){n(97235)("isConcatSpreadable")},32165(e,t,n){n(97235)("iterator")},82526(e,t,n){"use strict";var r=n(82109),i=n(17854),a=n(35005),o=n(31913),s=n(19781),u=n(30133),c=n(47293),l=n(86656),f=n(43157),d=n(70111),h=n(52190),p=n(19670),b=n(47908),m=n(45656),g=n(34948),v=n(41340),y=n(79114),w=n(70030),_=n(81956),E=n(8006),S=n(1156),k=n(25181),x=n(31236),T=n(3070),M=n(55296),O=n(68880),A=n(31320),L=n(72309),C=n(6200),I=n(3501),D=n(69711),N=n(5112),P=n(6061),R=n(97235),j=n(58003),F=n(29909),Y=n(42092).forEach,B=C("hidden"),U="Symbol",H="prototype",$=N("toPrimitive"),z=F.set,G=F.getterFor(U),W=Object[H],K=i.Symbol,V=a("JSON","stringify"),q=x.f,Z=T.f,X=S.f,J=M.f,Q=L("symbols"),ee=L("op-symbols"),et=L("string-to-symbol-registry"),en=L("symbol-to-string-registry"),er=L("wks"),ei=i.QObject,ea=!ei||!ei[H]||!ei[H].findChild,eo=s&&c(function(){return 7!=w(Z({},"a",{get:function(){return Z(this,"a",{value:7}).a}})).a})?function(e,t,n){var r=q(W,t);r&&delete W[t],Z(e,t,n),r&&e!==W&&Z(W,t,r)}:Z,es=function(e,t){var n=Q[e]=w(K[H]);return z(n,{type:U,tag:e,description:t}),s||(n.description=t),n},eu=function(e,t,n){e===W&&eu(ee,t,n),p(e);var r=g(t);return(p(n),l(Q,r))?(n.enumerable?(l(e,B)&&e[B][r]&&(e[B][r]=!1),n=w(n,{enumerable:y(0,!1)})):(l(e,B)||Z(e,B,y(1,{})),e[B][r]=!0),eo(e,r,n)):Z(e,r,n)},ec=function(e,t){p(e);var n=m(t),r=_(n).concat(ep(n));return Y(r,function(t){(!s||ef.call(n,t))&&eu(e,t,n[t])}),e},el=function(e,t){return void 0===t?w(e):ec(w(e),t)},ef=function(e){var t=g(e),n=J.call(this,t);return(!(this===W&&l(Q,t))||!!l(ee,t))&&(!(n||!l(this,t)||!l(Q,t)||l(this,B)&&this[B][t])||n)},ed=function(e,t){var n=m(e),r=g(t);if(!(n===W&&l(Q,r))||l(ee,r)){var i=q(n,r);return i&&l(Q,r)&&!(l(n,B)&&n[B][r])&&(i.enumerable=!0),i}},eh=function(e){var t=X(m(e)),n=[];return Y(t,function(e){l(Q,e)||l(I,e)||n.push(e)}),n},ep=function(e){var t=e===W,n=X(t?ee:m(e)),r=[];return Y(n,function(e){l(Q,e)&&(!t||l(W,e))&&r.push(Q[e])}),r};if(u||(A((K=function(){if(this instanceof K)throw TypeError("Symbol is not a constructor");var e=arguments.length&&void 0!==arguments[0]?v(arguments[0]):void 0,t=D(e),n=function(e){this===W&&n.call(ee,e),l(this,B)&&l(this[B],t)&&(this[B][t]=!1),eo(this,t,y(1,e))};return s&&ea&&eo(W,t,{configurable:!0,set:n}),es(t,e)})[H],"toString",function(){return G(this).tag}),A(K,"withoutSetter",function(e){return es(D(e),e)}),M.f=ef,T.f=eu,x.f=ed,E.f=S.f=eh,k.f=ep,P.f=function(e){return es(N(e),e)},s&&(Z(K[H],"description",{configurable:!0,get:function(){return G(this).description}}),o||A(W,"propertyIsEnumerable",ef,{unsafe:!0}))),r({global:!0,wrap:!0,forced:!u,sham:!u},{Symbol:K}),Y(_(er),function(e){R(e)}),r({target:U,stat:!0,forced:!u},{for:function(e){var t=v(e);if(l(et,t))return et[t];var n=K(t);return et[t]=n,en[n]=t,n},keyFor:function(e){if(!h(e))throw TypeError(e+" is not a symbol");if(l(en,e))return en[e]},useSetter:function(){ea=!0},useSimple:function(){ea=!1}}),r({target:"Object",stat:!0,forced:!u,sham:!s},{create:el,defineProperty:eu,defineProperties:ec,getOwnPropertyDescriptor:ed}),r({target:"Object",stat:!0,forced:!u},{getOwnPropertyNames:eh,getOwnPropertySymbols:ep}),r({target:"Object",stat:!0,forced:c(function(){k.f(1)})},{getOwnPropertySymbols:function(e){return k.f(b(e))}}),V){var eb=!u||c(function(){var e=K();return"[null]"!=V([e])||"{}"!=V({a:e})||"{}"!=V(Object(e))});r({target:"JSON",stat:!0,forced:eb},{stringify:function(e,t,n){for(var r,i=[e],a=1;arguments.length>a;)i.push(arguments[a++]);if(r=t,!(!d(t)&&void 0===e||h(e)))return f(t)||(t=function(e,t){if("function"==typeof r&&(t=r.call(this,e,t)),!h(t))return t}),i[1]=t,V.apply(null,i)}})}K[H][$]||O(K[H],$,K[H].valueOf),j(K,U),I[B]=!0},16066(e,t,n){n(97235)("matchAll")},69007(e,t,n){n(97235)("match")},83510(e,t,n){n(97235)("replace")},41840(e,t,n){n(97235)("search")},6982(e,t,n){n(97235)("species")},32159(e,t,n){n(97235)("split")},96649(e,t,n){n(97235)("toPrimitive")},39341(e,t,n){n(97235)("toStringTag")},60543(e,t,n){n(97235)("unscopables")},48675(e,t,n){"use strict";var r=n(90260),i=n(17466),a=n(99958),o=r.aTypedArray;(0,r.exportTypedArrayMethod)("at",function(e){var t=o(this),n=i(t.length),r=a(e),s=r>=0?r:n+r;return s<0||s>=n?void 0:t[s]})},92990(e,t,n){"use strict";var r=n(90260),i=n(1048),a=r.aTypedArray;(0,r.exportTypedArrayMethod)("copyWithin",function(e,t){return i.call(a(this),e,t,arguments.length>2?arguments[2]:void 0)})},18927(e,t,n){"use strict";var r=n(90260),i=n(42092).every,a=r.aTypedArray;(0,r.exportTypedArrayMethod)("every",function(e){return i(a(this),e,arguments.length>1?arguments[1]:void 0)})},33105(e,t,n){"use strict";var r=n(90260),i=n(21285),a=r.aTypedArray;(0,r.exportTypedArrayMethod)("fill",function(e){return i.apply(a(this),arguments)})},35035(e,t,n){"use strict";var r=n(90260),i=n(42092).filter,a=n(43074),o=r.aTypedArray;(0,r.exportTypedArrayMethod)("filter",function(e){var t=i(o(this),e,arguments.length>1?arguments[1]:void 0);return a(this,t)})},7174(e,t,n){"use strict";var r=n(90260),i=n(42092).findIndex,a=r.aTypedArray;(0,r.exportTypedArrayMethod)("findIndex",function(e){return i(a(this),e,arguments.length>1?arguments[1]:void 0)})},74345(e,t,n){"use strict";var r=n(90260),i=n(42092).find,a=r.aTypedArray;(0,r.exportTypedArrayMethod)("find",function(e){return i(a(this),e,arguments.length>1?arguments[1]:void 0)})},44197(e,t,n){n(19843)("Float32",function(e){return function(t,n,r){return e(this,t,n,r)}})},76495(e,t,n){n(19843)("Float64",function(e){return function(t,n,r){return e(this,t,n,r)}})},32846(e,t,n){"use strict";var r=n(90260),i=n(42092).forEach,a=r.aTypedArray;(0,r.exportTypedArrayMethod)("forEach",function(e){i(a(this),e,arguments.length>1?arguments[1]:void 0)})},98145(e,t,n){"use strict";var r=n(63832),i=n(90260).exportTypedArrayStaticMethod,a=n(97321);i("from",a,r)},44731(e,t,n){"use strict";var r=n(90260),i=n(41318).includes,a=r.aTypedArray;(0,r.exportTypedArrayMethod)("includes",function(e){return i(a(this),e,arguments.length>1?arguments[1]:void 0)})},77209(e,t,n){"use strict";var r=n(90260),i=n(41318).indexOf,a=r.aTypedArray;(0,r.exportTypedArrayMethod)("indexOf",function(e){return i(a(this),e,arguments.length>1?arguments[1]:void 0)})},35109(e,t,n){n(19843)("Int16",function(e){return function(t,n,r){return e(this,t,n,r)}})},65125(e,t,n){n(19843)("Int32",function(e){return function(t,n,r){return e(this,t,n,r)}})},87145(e,t,n){n(19843)("Int8",function(e){return function(t,n,r){return e(this,t,n,r)}})},96319(e,t,n){"use strict";var r=n(17854),i=n(90260),a=n(66992),o=n(5112)("iterator"),s=r.Uint8Array,u=a.values,c=a.keys,l=a.entries,f=i.aTypedArray,d=i.exportTypedArrayMethod,h=s&&s.prototype[o],p=!!h&&("values"==h.name||void 0==h.name),b=function(){return u.call(f(this))};d("entries",function(){return l.call(f(this))}),d("keys",function(){return c.call(f(this))}),d("values",b,!p),d(o,b,!p)},58867(e,t,n){"use strict";var r=n(90260),i=r.aTypedArray,a=r.exportTypedArrayMethod,o=[].join;a("join",function(e){return o.apply(i(this),arguments)})},37789(e,t,n){"use strict";var r=n(90260),i=n(86583),a=r.aTypedArray;(0,r.exportTypedArrayMethod)("lastIndexOf",function(e){return i.apply(a(this),arguments)})},33739(e,t,n){"use strict";var r=n(90260),i=n(42092).map,a=n(66304),o=r.aTypedArray;(0,r.exportTypedArrayMethod)("map",function(e){return i(o(this),e,arguments.length>1?arguments[1]:void 0,function(e,t){return new(a(e))(t)})})},95206(e,t,n){"use strict";var r=n(90260),i=n(63832),a=r.aTypedArrayConstructor;(0,r.exportTypedArrayStaticMethod)("of",function(){for(var e=0,t=arguments.length,n=new(a(this))(t);t>e;)n[e]=arguments[e++];return n},i)},14483(e,t,n){"use strict";var r=n(90260),i=n(53671).right,a=r.aTypedArray;(0,r.exportTypedArrayMethod)("reduceRight",function(e){return i(a(this),e,arguments.length,arguments.length>1?arguments[1]:void 0)})},29368(e,t,n){"use strict";var r=n(90260),i=n(53671).left,a=r.aTypedArray;(0,r.exportTypedArrayMethod)("reduce",function(e){return i(a(this),e,arguments.length,arguments.length>1?arguments[1]:void 0)})},12056(e,t,n){"use strict";var r=n(90260),i=r.aTypedArray,a=r.exportTypedArrayMethod,o=Math.floor;a("reverse",function(){for(var e,t=this,n=i(t).length,r=o(n/2),a=0;a1?arguments[1]:void 0,1),n=this.length,r=o(e),s=i(r.length),c=0;if(s+t>n)throw RangeError("Wrong length");for(;ca;)c[a]=n[a++];return c},c)},27462(e,t,n){"use strict";var r=n(90260),i=n(42092).some,a=r.aTypedArray;(0,r.exportTypedArrayMethod)("some",function(e){return i(a(this),e,arguments.length>1?arguments[1]:void 0)})},33824(e,t,n){"use strict";var r=n(90260),i=n(17854),a=n(47293),o=n(13099),s=n(17466),u=n(94362),c=n(68886),l=n(30256),f=n(7392),d=n(98008),h=r.aTypedArray,p=r.exportTypedArrayMethod,b=i.Uint16Array,m=b&&b.prototype.sort,g=!!m&&!a(function(){var e=new b(2);e.sort(null),e.sort({})}),v=!!m&&!a(function(){if(f)return f<74;if(c)return c<67;if(l)return!0;if(d)return d<602;var e,t,n=new b(516),r=Array(516);for(e=0;e<516;e++)t=e%4,n[e]=515-e,r[e]=e-2*t+3;for(n.sort(function(e,t){return(e/4|0)-(t/4|0)}),e=0;e<516;e++)if(n[e]!==r[e])return!0}),y=function(e){return function(t,n){return void 0!==e?+e(t,n)||0:n!=n?-1:t!=t?1:0===t&&0===n?1/t>0&&1/n<0?1:-1:t>n}};p("sort",function(e){var t,n=this;if(void 0!==e&&o(e),v)return m.call(n,e);h(n);var r=s(n.length),i=Array(r);for(t=0;t1?arguments[1]:void 0)}}),a("filterOut")},34286(e,t,n){"use strict";var r=n(82109),i=n(42092).filterReject,a=n(51223);r({target:"Array",proto:!0},{filterReject:function(e){return i(this,e,arguments.length>1?arguments[1]:void 0)}}),a("filterReject")},77461(e,t,n){"use strict";var r=n(82109),i=n(9671).findLastIndex,a=n(51223);r({target:"Array",proto:!0},{findLastIndex:function(e){return i(this,e,arguments.length>1?arguments[1]:void 0)}}),a("findLastIndex")},3048(e,t,n){"use strict";var r=n(82109),i=n(9671).findLast,a=n(51223);r({target:"Array",proto:!0},{findLast:function(e){return i(this,e,arguments.length>1?arguments[1]:void 0)}}),a("findLast")},1999(e,t,n){"use strict";var r=n(82109),i=n(61386),a=n(77475),o=n(51223);r({target:"Array",proto:!0},{groupBy:function(e){var t=arguments.length>1?arguments[1]:void 0;return i(this,e,t,a)}}),o("groupBy")},8e4(e,t,n){var r=n(82109),i=n(43157),a=Object.isFrozen,o=function(e,t){if(!a||!i(e)||!a(e))return!1;for(var n,r=0,o=e.length;r1?arguments[1]:void 0,3);return!u(n,function(e,n,i){if(!r(n,e,t))return i()},{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).stopped}})},71957(e,t,n){"use strict";var r=n(82109),i=n(31913),a=n(35005),o=n(19670),s=n(13099),u=n(49974),c=n(36707),l=n(54647),f=n(20408);r({target:"Map",proto:!0,real:!0,forced:i},{filter:function(e){var t=o(this),n=l(t),r=u(e,arguments.length>1?arguments[1]:void 0,3),i=new(c(t,a("Map"))),d=s(i.set);return f(n,function(e,n){r(n,e,t)&&d.call(i,e,n)},{AS_ENTRIES:!0,IS_ITERATOR:!0}),i}})},103(e,t,n){"use strict";var r=n(82109),i=n(31913),a=n(19670),o=n(49974),s=n(54647),u=n(20408);r({target:"Map",proto:!0,real:!0,forced:i},{findKey:function(e){var t=a(this),n=s(t),r=o(e,arguments.length>1?arguments[1]:void 0,3);return u(n,function(e,n,i){if(r(n,e,t))return i(e)},{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).result}})},96306(e,t,n){"use strict";var r=n(82109),i=n(31913),a=n(19670),o=n(49974),s=n(54647),u=n(20408);r({target:"Map",proto:!0,real:!0,forced:i},{find:function(e){var t=a(this),n=s(t),r=o(e,arguments.length>1?arguments[1]:void 0,3);return u(n,function(e,n,i){if(r(n,e,t))return i(n)},{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).result}})},8582(e,t,n){var r=n(82109),i=n(27296);r({target:"Map",stat:!0},{from:i})},90618(e,t,n){"use strict";var r=n(82109),i=n(20408),a=n(13099);r({target:"Map",stat:!0},{groupBy:function(e,t){var n=new this;a(t);var r=a(n.has),o=a(n.get),s=a(n.set);return i(e,function(e){var i=t(e);r.call(n,i)?o.call(n,i).push(e):s.call(n,i,[e])}),n}})},74592(e,t,n){"use strict";var r=n(82109),i=n(31913),a=n(19670),o=n(54647),s=n(46465),u=n(20408);r({target:"Map",proto:!0,real:!0,forced:i},{includes:function(e){return u(o(a(this)),function(t,n,r){if(s(n,e))return r()},{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).stopped}})},88440(e,t,n){"use strict";var r=n(82109),i=n(20408),a=n(13099);r({target:"Map",stat:!0},{keyBy:function(e,t){var n=new this;a(t);var r=a(n.set);return i(e,function(e){r.call(n,t(e),e)}),n}})},58276(e,t,n){"use strict";var r=n(82109),i=n(31913),a=n(19670),o=n(54647),s=n(20408);r({target:"Map",proto:!0,real:!0,forced:i},{keyOf:function(e){return s(o(a(this)),function(t,n,r){if(n===e)return r(t)},{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).result}})},35082(e,t,n){"use strict";var r=n(82109),i=n(31913),a=n(35005),o=n(19670),s=n(13099),u=n(49974),c=n(36707),l=n(54647),f=n(20408);r({target:"Map",proto:!0,real:!0,forced:i},{mapKeys:function(e){var t=o(this),n=l(t),r=u(e,arguments.length>1?arguments[1]:void 0,3),i=new(c(t,a("Map"))),d=s(i.set);return f(n,function(e,n){d.call(i,r(n,e,t),n)},{AS_ENTRIES:!0,IS_ITERATOR:!0}),i}})},12813(e,t,n){"use strict";var r=n(82109),i=n(31913),a=n(35005),o=n(19670),s=n(13099),u=n(49974),c=n(36707),l=n(54647),f=n(20408);r({target:"Map",proto:!0,real:!0,forced:i},{mapValues:function(e){var t=o(this),n=l(t),r=u(e,arguments.length>1?arguments[1]:void 0,3),i=new(c(t,a("Map"))),d=s(i.set);return f(n,function(e,n){d.call(i,e,r(n,e,t))},{AS_ENTRIES:!0,IS_ITERATOR:!0}),i}})},18222(e,t,n){"use strict";var r=n(82109),i=n(31913),a=n(19670),o=n(13099),s=n(20408);r({target:"Map",proto:!0,real:!0,forced:i},{merge:function(e){for(var t=a(this),n=o(t.set),r=arguments.length,i=0;i1?arguments[1]:void 0,3);return u(n,function(e,n,i){if(r(n,e,t))return i()},{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).stopped}})},74442(e,t,n){"use strict";var r=n(82109),i=n(31913),a=n(8154);r({target:"Map",proto:!0,real:!0,forced:i},{updateOrInsert:a})},7512(e,t,n){"use strict";var r=n(82109),i=n(31913),a=n(19670),o=n(13099);r({target:"Map",proto:!0,real:!0,forced:i},{update:function(e,t){var n=a(this),r=arguments.length;o(t);var i=n.has(e);if(!i&&r<3)throw TypeError("Updating absent value");var s=i?n.get(e):o(r>2?arguments[2]:void 0)(e,n);return n.set(e,t(s,e,n)),n}})},87713(e,t,n){"use strict";var r=n(82109),i=n(31913),a=n(8154);r({target:"Map",proto:!0,real:!0,forced:i},{upsert:a})},46603(e,t,n){var r=n(82109),i=Math.min,a=Math.max;r({target:"Math",stat:!0},{clamp:function(e,t,n){return i(n,a(t,e))}})},70100(e,t,n){n(82109)({target:"Math",stat:!0},{DEG_PER_RAD:Math.PI/180})},26429(e,t,n){var r=n(82109),i=180/Math.PI;r({target:"Math",stat:!0},{degrees:function(e){return e*i}})},13187(e,t,n){var r=n(82109),i=n(47103),a=n(26130);r({target:"Math",stat:!0},{fscale:function(e,t,n,r,o){return a(i(e,t,n,r,o))}})},60092(e,t,n){n(82109)({target:"Math",stat:!0},{iaddh:function(e,t,n,r){var i=e>>>0,a=n>>>0;return(t>>>0)+(r>>>0)+((i&a|(i|a)&~(i+a>>>0))>>>31)|0}})},19041(e,t,n){n(82109)({target:"Math",stat:!0},{imulh:function(e,t){var n=65535,r=+e,i=+t,a=r&n,o=i&n,s=r>>16,u=i>>16,c=(s*o>>>0)+(a*o>>>16);return s*u+(c>>16)+((a*u>>>0)+(c&n)>>16)}})},30666(e,t,n){n(82109)({target:"Math",stat:!0},{isubh:function(e,t,n,r){var i=e>>>0,a=n>>>0;return(t>>>0)-(r>>>0)-((~i&a|~(i^a)&i-a>>>0)>>>31)|0}})},51638(e,t,n){n(82109)({target:"Math",stat:!0},{RAD_PER_DEG:180/Math.PI})},62975(e,t,n){var r=n(82109),i=Math.PI/180;r({target:"Math",stat:!0},{radians:function(e){return e*i}})},15728(e,t,n){var r=n(82109),i=n(47103);r({target:"Math",stat:!0},{scale:i})},46056(e,t,n){var r=n(82109),i=n(19670),a=n(77023),o=n(24994),s=n(29909),u="Seeded Random",c=u+" Generator",l=s.set,f=s.getterFor(c),d='Math.seededPRNG() argument should have a "seed" field with a finite value.',h=o(function(e){l(this,{type:c,seed:e%2147483647})},u,function(){var e=f(this);return{value:(1073741823&(e.seed=(1103515245*e.seed+12345)%2147483647))/1073741823,done:!1}});r({target:"Math",stat:!0,forced:!0},{seededPRNG:function(e){var t=i(e).seed;if(!a(t))throw TypeError(d);return new h(t)}})},44299(e,t,n){n(82109)({target:"Math",stat:!0},{signbit:function(e){return(e=+e)==e&&0==e?1/e==-1/0:e<0}})},5162(e,t,n){n(82109)({target:"Math",stat:!0},{umulh:function(e,t){var n=65535,r=+e,i=+t,a=r&n,o=i&n,s=r>>>16,u=i>>>16,c=(s*o>>>0)+(a*o>>>16);return s*u+(c>>>16)+((a*u>>>0)+(c&n)>>>16)}})},50292(e,t,n){"use strict";var r=n(82109),i=n(99958),a=n(83009),o="Invalid number representation",s="Invalid radix",u=/^[\da-z]+$/;r({target:"Number",stat:!0},{fromString:function(e,t){var n,r,c=1;if("string"!=typeof e)throw TypeError(o);if(!e.length||"-"==e.charAt(0)&&(c=-1,!(e=e.slice(1)).length))throw SyntaxError(o);if((n=void 0===t?10:i(t))<2||n>36)throw RangeError(s);if(!u.test(e)||(r=a(e,n)).toString(n)!==e)throw SyntaxError(o);return c*r}})},29427(e,t,n){"use strict";var r=n(82109),i=n(80430);r({target:"Number",stat:!0},{range:function(e,t,n){return new i(e,t,n,"number",0,1)}})},96936(e,t,n){n(46314)},99964(e,t,n){"use strict";var r=n(82109),i=n(60996);r({target:"Object",stat:!0},{iterateEntries:function(e){return new i(e,"entries")}})},75238(e,t,n){"use strict";var r=n(82109),i=n(60996);r({target:"Object",stat:!0},{iterateKeys:function(e){return new i(e,"keys")}})},4987(e,t,n){"use strict";var r=n(82109),i=n(60996);r({target:"Object",stat:!0},{iterateValues:function(e){return new i(e,"values")}})},1025(e,t,n){"use strict";var r=n(82109),i=n(19781),a=n(96340),o=n(13099),s=n(19670),u=n(70111),c=n(25787),l=n(3070).f,f=n(68880),d=n(12248),h=n(18554),p=n(58173),b=n(20408),m=n(842),g=n(5112),v=n(29909),y=g("observable"),w=v.get,_=v.set,E=function(e){var t=e.cleanup;if(t){e.cleanup=void 0;try{t()}catch(n){m(n)}}},S=function(e){return void 0===e.observer},k=function(e){var t=e.facade;if(!i){t.closed=!0;var n=e.subscriptionObserver;n&&(n.closed=!0)}e.observer=void 0},x=function(e,t){var n,r=_(this,{cleanup:void 0,observer:s(e),subscriptionObserver:void 0});i||(this.closed=!1);try{(n=p(e.start))&&n.call(e,this)}catch(a){m(a)}if(!S(r)){var u=r.subscriptionObserver=new T(this);try{var c=t(u),l=c;null!=c&&(r.cleanup="function"==typeof c.unsubscribe?function(){l.unsubscribe()}:o(c))}catch(f){u.error(f);return}S(r)&&E(r)}};x.prototype=d({},{unsubscribe:function(){var e=w(this);S(e)||(k(e),E(e))}}),i&&l(x.prototype,"closed",{configurable:!0,get:function(){return S(w(this))}});var T=function(e){_(this,{subscription:e}),i||(this.closed=!1)};T.prototype=d({},{next:function(e){var t=w(w(this).subscription);if(!S(t)){var n=t.observer;try{var r=p(n.next);r&&r.call(n,e)}catch(i){m(i)}}},error:function(e){var t=w(w(this).subscription);if(!S(t)){var n=t.observer;k(t);try{var r=p(n.error);r?r.call(n,e):m(e)}catch(i){m(i)}E(t)}},complete:function(){var e=w(w(this).subscription);if(!S(e)){var t=e.observer;k(e);try{var n=p(t.complete);n&&n.call(t)}catch(r){m(r)}E(e)}}}),i&&l(T.prototype,"closed",{configurable:!0,get:function(){return S(w(w(this).subscription))}});var M=function(e){c(this,M,"Observable"),_(this,{subscriber:o(e)})};d(M.prototype,{subscribe:function(e){var t=arguments.length;return new x("function"==typeof e?{next:e,error:t>1?arguments[1]:void 0,complete:t>2?arguments[2]:void 0}:u(e)?e:{},w(this).subscriber)}}),d(M,{from:function(e){var t="function"==typeof this?this:M,n=p(s(e)[y]);if(n){var r=s(n.call(e));return r.constructor===t?r:new t(function(e){return r.subscribe(e)})}var i=h(e);return new t(function(e){b(i,function(t,n){if(e.next(t),e.closed)return n()},{IS_ITERATOR:!0,INTERRUPTED:!0}),e.complete()})},of:function(){for(var e="function"==typeof this?this:M,t=arguments.length,n=Array(t),r=0;r1?arguments[1]:void 0,3);return!u(n,function(e,n){if(!r(e,e,t))return n()},{IS_ITERATOR:!0,INTERRUPTED:!0}).stopped}})},64362(e,t,n){"use strict";var r=n(82109),i=n(31913),a=n(35005),o=n(19670),s=n(13099),u=n(49974),c=n(36707),l=n(96767),f=n(20408);r({target:"Set",proto:!0,real:!0,forced:i},{filter:function(e){var t=o(this),n=l(t),r=u(e,arguments.length>1?arguments[1]:void 0,3),i=new(c(t,a("Set"))),d=s(i.add);return f(n,function(e){r(e,e,t)&&d.call(i,e)},{IS_ITERATOR:!0}),i}})},15389(e,t,n){"use strict";var r=n(82109),i=n(31913),a=n(19670),o=n(49974),s=n(96767),u=n(20408);r({target:"Set",proto:!0,real:!0,forced:i},{find:function(e){var t=a(this),n=s(t),r=o(e,arguments.length>1?arguments[1]:void 0,3);return u(n,function(e,n){if(r(e,e,t))return n(e)},{IS_ITERATOR:!0,INTERRUPTED:!0}).result}})},46006(e,t,n){var r=n(82109),i=n(27296);r({target:"Set",stat:!0},{from:i})},90401(e,t,n){"use strict";var r=n(82109),i=n(31913),a=n(35005),o=n(19670),s=n(13099),u=n(36707),c=n(20408);r({target:"Set",proto:!0,real:!0,forced:i},{intersection:function(e){var t=o(this),n=new(u(t,a("Set"))),r=s(t.has),i=s(n.add);return c(e,function(e){r.call(t,e)&&i.call(n,e)}),n}})},45164(e,t,n){"use strict";var r=n(82109),i=n(31913),a=n(19670),o=n(13099),s=n(20408);r({target:"Set",proto:!0,real:!0,forced:i},{isDisjointFrom:function(e){var t=a(this),n=o(t.has);return!s(e,function(e,r){if(!0===n.call(t,e))return r()},{INTERRUPTED:!0}).stopped}})},91238(e,t,n){"use strict";var r=n(82109),i=n(31913),a=n(35005),o=n(19670),s=n(13099),u=n(18554),c=n(20408);r({target:"Set",proto:!0,real:!0,forced:i},{isSubsetOf:function(e){var t=u(this),n=o(e),r=n.has;return"function"!=typeof r&&(n=new(a("Set"))(e),r=s(n.has)),!c(t,function(e,t){if(!1===r.call(n,e))return t()},{IS_ITERATOR:!0,INTERRUPTED:!0}).stopped}})},54837(e,t,n){"use strict";var r=n(82109),i=n(31913),a=n(19670),o=n(13099),s=n(20408);r({target:"Set",proto:!0,real:!0,forced:i},{isSupersetOf:function(e){var t=a(this),n=o(t.has);return!s(e,function(e,r){if(!1===n.call(t,e))return r()},{INTERRUPTED:!0}).stopped}})},87485(e,t,n){"use strict";var r=n(82109),i=n(31913),a=n(19670),o=n(96767),s=n(20408);r({target:"Set",proto:!0,real:!0,forced:i},{join:function(e){var t=a(this),n=o(t),r=void 0===e?",":String(e),i=[];return s(n,i.push,{that:i,IS_ITERATOR:!0}),i.join(r)}})},56767(e,t,n){"use strict";var r=n(82109),i=n(31913),a=n(35005),o=n(19670),s=n(13099),u=n(49974),c=n(36707),l=n(96767),f=n(20408);r({target:"Set",proto:!0,real:!0,forced:i},{map:function(e){var t=o(this),n=l(t),r=u(e,arguments.length>1?arguments[1]:void 0,3),i=new(c(t,a("Set"))),d=s(i.add);return f(n,function(e){d.call(i,r(e,e,t))},{IS_ITERATOR:!0}),i}})},69916(e,t,n){var r=n(82109),i=n(82044);r({target:"Set",stat:!0},{of:i})},76651(e,t,n){"use strict";var r=n(82109),i=n(31913),a=n(19670),o=n(13099),s=n(96767),u=n(20408);r({target:"Set",proto:!0,real:!0,forced:i},{reduce:function(e){var t=a(this),n=s(t),r=arguments.length<2,i=r?void 0:arguments[1];if(o(e),u(n,function(n){r?(r=!1,i=n):i=e(i,n,n,t)},{IS_ITERATOR:!0}),r)throw TypeError("Reduce of empty set with no initial value");return i}})},61437(e,t,n){"use strict";var r=n(82109),i=n(31913),a=n(19670),o=n(49974),s=n(96767),u=n(20408);r({target:"Set",proto:!0,real:!0,forced:i},{some:function(e){var t=a(this),n=s(t),r=o(e,arguments.length>1?arguments[1]:void 0,3);return u(n,function(e,n){if(r(e,e,t))return n()},{IS_ITERATOR:!0,INTERRUPTED:!0}).stopped}})},35285(e,t,n){"use strict";var r=n(82109),i=n(31913),a=n(35005),o=n(19670),s=n(13099),u=n(36707),c=n(20408);r({target:"Set",proto:!0,real:!0,forced:i},{symmetricDifference:function(e){var t=o(this),n=new(u(t,a("Set")))(t),r=s(n.delete),i=s(n.add);return c(e,function(e){r.call(n,e)||i.call(n,e)}),n}})},39865(e,t,n){"use strict";var r=n(82109),i=n(31913),a=n(35005),o=n(19670),s=n(13099),u=n(36707),c=n(20408);r({target:"Set",proto:!0,real:!0,forced:i},{union:function(e){var t=o(this),n=new(u(t,a("Set")))(t);return c(e,s(n.add),{that:n}),n}})},86035(e,t,n){"use strict";var r=n(82109),i=n(28710).charAt,a=n(47293)(function(){return"𠮷"!=="𠮷".at(0)});r({target:"String",proto:!0,forced:a},{at:function(e){return i(this,e)}})},67501(e,t,n){"use strict";var r=n(82109),i=n(24994),a=n(84488),o=n(41340),s=n(29909),u=n(28710),c=u.codeAt,l=u.charAt,f="String Iterator",d=s.set,h=s.getterFor(f),p=i(function(e){d(this,{type:f,string:e,index:0})},"String",function(){var e,t=h(this),n=t.string,r=t.index;return r>=n.length?{value:void 0,done:!0}:(e=l(n,r),t.index+=e.length,{value:{codePoint:c(e,0),position:r},done:!1})});r({target:"String",proto:!0},{codePoints:function(){return new p(o(a(this)))}})},13728(e,t,n){n(76373)},27207(e,t,n){n(68757)},609(e,t,n){n(97235)("asyncDispose")},21568(e,t,n){n(97235)("dispose")},54534(e,t,n){n(97235)("matcher")},95090(e,t,n){n(97235)("metadata")},48824(e,t,n){n(97235)("observable")},44130(e,t,n){n(97235)("patternMatch")},35954(e,t,n){n(97235)("replaceAll")},38012(e,t,n){n(48675)},26182(e,t,n){"use strict";var r=n(90260),i=n(42092).filterReject,a=n(43074),o=r.aTypedArray;(0,r.exportTypedArrayMethod)("filterOut",function(e){var t=i(o(this),e,arguments.length>1?arguments[1]:void 0);return a(this,t)})},8922(e,t,n){"use strict";var r=n(90260),i=n(42092).filterReject,a=n(43074),o=r.aTypedArray;(0,r.exportTypedArrayMethod)("filterReject",function(e){var t=i(o(this),e,arguments.length>1?arguments[1]:void 0);return a(this,t)})},1118(e,t,n){"use strict";var r=n(90260),i=n(9671).findLastIndex,a=r.aTypedArray;(0,r.exportTypedArrayMethod)("findLastIndex",function(e){return i(a(this),e,arguments.length>1?arguments[1]:void 0)})},37380(e,t,n){"use strict";var r=n(90260),i=n(9671).findLast,a=r.aTypedArray;(0,r.exportTypedArrayMethod)("findLast",function(e){return i(a(this),e,arguments.length>1?arguments[1]:void 0)})},5835(e,t,n){"use strict";var r=n(90260),i=n(61386),a=n(66304),o=r.aTypedArray;(0,r.exportTypedArrayMethod)("groupBy",function(e){var t=arguments.length>1?arguments[1]:void 0;return i(o(this),e,t,a)})},84444(e,t,n){"use strict";var r=n(90260),i=n(60956),a=n(43074),o=r.aTypedArray;(0,r.exportTypedArrayMethod)("uniqueBy",function(e){return a(this,i.call(o(this),e))})},78206(e,t,n){"use strict";var r=n(82109),i=n(31913),a=n(34092);r({target:"WeakMap",proto:!0,real:!0,forced:i},{deleteAll:function(){return a.apply(this,arguments)}})},12714(e,t,n){"use strict";var r=n(82109),i=n(31913),a=n(37502);r({target:"WeakMap",proto:!0,real:!0,forced:i},{emplace:a})},76478(e,t,n){var r=n(82109),i=n(27296);r({target:"WeakMap",stat:!0},{from:i})},79715(e,t,n){var r=n(82109),i=n(82044);r({target:"WeakMap",stat:!0},{of:i})},5964(e,t,n){"use strict";var r=n(82109),i=n(31913),a=n(8154);r({target:"WeakMap",proto:!0,real:!0,forced:i},{upsert:a})},43561(e,t,n){"use strict";var r=n(82109),i=n(31913),a=n(31501);r({target:"WeakSet",proto:!0,real:!0,forced:i},{addAll:function(){return a.apply(this,arguments)}})},32049(e,t,n){"use strict";var r=n(82109),i=n(31913),a=n(34092);r({target:"WeakSet",proto:!0,real:!0,forced:i},{deleteAll:function(){return a.apply(this,arguments)}})},86020(e,t,n){var r=n(82109),i=n(27296);r({target:"WeakSet",stat:!0},{from:i})},56585(e,t,n){var r=n(82109),i=n(82044);r({target:"WeakSet",stat:!0},{of:i})},54747(e,t,n){var r=n(17854),i=n(48324),a=n(18533),o=n(68880);for(var s in i){var u=r[s],c=u&&u.prototype;if(c&&c.forEach!==a)try{o(c,"forEach",a)}catch(l){c.forEach=a}}},33948(e,t,n){var r=n(17854),i=n(48324),a=n(66992),o=n(68880),s=n(5112),u=s("iterator"),c=s("toStringTag"),l=a.values;for(var f in i){var d=r[f],h=d&&d.prototype;if(h){if(h[u]!==l)try{o(h,u,l)}catch(p){h[u]=l}if(h[c]||o(h,c,f),i[f]){for(var b in a)if(h[b]!==a[b])try{o(h,b,a[b])}catch(m){h[b]=a[b]}}}}},84633(e,t,n){var r=n(82109),i=n(17854),a=n(20261);r({global:!0,bind:!0,enumerable:!0,forced:!i.setImmediate||!i.clearImmediate},{setImmediate:a.set,clearImmediate:a.clear})},85844(e,t,n){var r=n(82109),i=n(17854),a=n(95948),o=n(35268),s=i.process;r({global:!0,enumerable:!0,noTargetGet:!0},{queueMicrotask:function(e){var t=o&&s.domain;a(t?t.bind(e):e)}})},32564(e,t,n){var r=n(82109),i=n(17854),a=n(88113),o=[].slice,s=/MSIE .\./.test(a),u=function(e){return function(t,n){var r=arguments.length>2,i=r?o.call(arguments,2):void 0;return e(r?function(){("function"==typeof t?t:Function(t)).apply(this,i)}:t,n)}};r({global:!0,bind:!0,forced:s},{setTimeout:u(i.setTimeout),setInterval:u(i.setInterval)})},41637(e,t,n){"use strict";n(66992);var r=n(82109),i=n(35005),a=n(590),o=n(31320),s=n(12248),u=n(58003),c=n(24994),l=n(29909),f=n(25787),d=n(86656),h=n(49974),p=n(70648),b=n(19670),m=n(70111),g=n(41340),v=n(70030),y=n(79114),w=n(18554),_=n(71246),E=n(5112),S=i("fetch"),k=i("Request"),x=k&&k.prototype,T=i("Headers"),M=E("iterator"),O="URLSearchParams",A=O+"Iterator",L=l.set,C=l.getterFor(O),I=l.getterFor(A),D=/\+/g,N=[,,,,],P=function(e){return N[e-1]||(N[e-1]=RegExp("((?:%[\\da-f]{2}){"+e+"})","gi"))},R=function(e){try{return decodeURIComponent(e)}catch(t){return e}},j=function(e){var t=e.replace(D," "),n=4;try{return decodeURIComponent(t)}catch(r){for(;n;)t=t.replace(P(n--),R);return t}},F=/[!'()~]|%20/g,Y={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"},B=function(e){return Y[e]},U=function(e){return encodeURIComponent(e).replace(F,B)},H=function(e,t){if(t)for(var n,r,i=t.split("&"),a=0;a0?arguments[0]:void 0,l=this,h=[];if(L(l,{type:O,entries:h,updateURL:function(){},updateSearchParams:$}),void 0!==c){if(m(c)){if("function"==typeof(e=_(c)))for(n=(t=w(c,e)).next;!(r=n.call(t)).done;){if((o=(a=(i=w(b(r.value))).next).call(i)).done||(s=a.call(i)).done||!a.call(i).done)throw TypeError("Expected sequence with length 2");h.push({key:g(o.value),value:g(s.value)})}else for(u in c)d(c,u)&&h.push({key:u,value:g(c[u])})}else H(h,"string"==typeof c?"?"===c.charAt(0)?c.slice(1):c:g(c))}},K=W.prototype;if(s(K,{append:function(e,t){z(arguments.length,2);var n=C(this);n.entries.push({key:g(e),value:g(t)}),n.updateURL()},delete:function(e){z(arguments.length,1);for(var t=C(this),n=t.entries,r=g(e),i=0;ie.key){i.splice(t,0,e);break}t===n&&i.push(e)}r.updateURL()},forEach:function(e){for(var t,n=C(this).entries,r=h(e,arguments.length>1?arguments[1]:void 0,3),i=0;i1?V(arguments[1]):{})}}),"function"==typeof k){var q=function(e){return f(this,q,"Request"),new k(e,arguments.length>1?V(arguments[1]):{})};x.constructor=q,q.prototype=x,r({global:!0,forced:!0},{Request:q})}}e.exports={URLSearchParams:W,getState:C}},60285(e,t,n){"use strict";n(78783);var r,i=n(82109),a=n(19781),o=n(590),s=n(17854),u=n(36048),c=n(31320),l=n(25787),f=n(86656),d=n(21574),h=n(48457),p=n(28710).codeAt,b=n(33197),m=n(41340),g=n(58003),v=n(41637),y=n(29909),w=s.URL,_=v.URLSearchParams,E=v.getState,S=y.set,k=y.getterFor("URL"),x=Math.floor,T=Math.pow,M="Invalid authority",O="Invalid scheme",A="Invalid host",L="Invalid port",C=/[A-Za-z]/,I=/[\d+-.A-Za-z]/,D=/\d/,N=/^0x/i,P=/^[0-7]+$/,R=/^\d+$/,j=/^[\dA-Fa-f]+$/,F=/[\0\t\n\r #%/:<>?@[\\\]^|]/,Y=/[\0\t\n\r #/:<>?@[\\\]^|]/,B=/^[\u0000-\u0020]+|[\u0000-\u0020]+$/g,U=/[\t\n\r]/g,H=function(e,t){var n,r,i;if("["==t.charAt(0)){if("]"!=t.charAt(t.length-1)||!(n=z(t.slice(1,-1))))return A;e.host=n}else if(Q(e)){if(t=b(t),F.test(t)||null===(n=$(t)))return A;e.host=n}else{if(Y.test(t))return A;for(i=0,n="",r=h(t);i4)return e;for(r=0,n=[];r1&&"0"==i.charAt(0)&&(a=N.test(i)?16:8,i=i.slice(8==a?1:2)),""===i)o=0;else{if(!(10==a?R:8==a?P:j).test(i))return e;o=parseInt(i,a)}n.push(o)}for(r=0;r=T(256,5-t))return null}else if(o>255)return null;for(r=0,s=n.pop();r6))return;for(r=0;d();){if(i=null,r>0){if("."!=d()||!(r<4))return;f++}if(!D.test(d()))return;for(;D.test(d());){if(a=parseInt(d(),10),null===i)i=a;else{if(0==i)return;i=10*i+a}if(i>255)return;f++}u[c]=256*u[c]+i,(2==++r||4==r)&&c++}if(4!=r)return;break}if(":"==d()){if(f++,!d())return}else if(d())return;u[c++]=t}if(null!==l)for(o=c-l,c=7;0!=c&&o>0;)s=u[c],u[c--]=u[l+o-1],u[l+--o]=s;else if(8!=c)return;return u},G=function(e){for(var t=null,n=1,r=null,i=0,a=0;a<8;a++)0!==e[a]?(i>n&&(t=r,n=i),r=null,i=0):(null===r&&(r=a),++i);return i>n&&(t=r,n=i),t},W=function(e){var t,n,r,i;if("number"==typeof e){for(n=0,t=[];n<4;n++)t.unshift(e%256),e=x(e/256);return t.join(".")}if("object"==typeof e){for(n=0,t="",r=G(e);n<8;n++)(!i||0!==e[n])&&(i&&(i=!1),r===n?(t+=n?":":"::",i=!0):(t+=e[n].toString(16),n<7&&(t+=":")));return"["+t+"]"}return e},K={},V=d({},K,{" ":1,'"':1,"<":1,">":1,"`":1}),q=d({},V,{"#":1,"?":1,"{":1,"}":1}),Z=d({},q,{"/":1,":":1,";":1,"=":1,"@":1,"[":1,"\\":1,"]":1,"^":1,"|":1}),X=function(e,t){var n=p(e,0);return n>32&&n<127&&!f(t,e)?e:encodeURIComponent(e)},J={ftp:21,file:null,http:80,https:443,ws:80,wss:443},Q=function(e){return f(J,e.scheme)},ee=function(e){return""!=e.username||""!=e.password},et=function(e){return!e.host||e.cannotBeABaseURL||"file"==e.scheme},en=function(e,t){var n;return 2==e.length&&C.test(e.charAt(0))&&(":"==(n=e.charAt(1))||!t&&"|"==n)},er=function(e){var t;return e.length>1&&en(e.slice(0,2))&&(2==e.length||"/"===(t=e.charAt(2))||"\\"===t||"?"===t||"#"===t)},ei=function(e){var t=e.path,n=t.length;n&&("file"!=e.scheme||1!=n||!en(t[0],!0))&&t.pop()},ea=function(e){return"."===e||"%2e"===e.toLowerCase()},eo=function(e){return".."===(e=e.toLowerCase())||"%2e."===e||".%2e"===e||"%2e%2e"===e},es={},eu={},ec={},el={},ef={},ed={},eh={},ep={},eb={},em={},eg={},ev={},ey={},ew={},e_={},eE={},eS={},ek={},ex={},eT={},eM={},eO=function(e,t,n,i){var a,o,s,u,c=n||es,l=0,d="",p=!1,b=!1,m=!1;for(n||(e.scheme="",e.username="",e.password="",e.host=null,e.port=null,e.path=[],e.query=null,e.fragment=null,e.cannotBeABaseURL=!1,t=t.replace(B,"")),t=t.replace(U,""),a=h(t);l<=a.length;){switch(o=a[l],c){case es:if(o&&C.test(o))d+=o.toLowerCase(),c=eu;else{if(n)return O;c=ec;continue}break;case eu:if(o&&(I.test(o)||"+"==o||"-"==o||"."==o))d+=o.toLowerCase();else if(":"==o){if(n&&(Q(e)!=f(J,d)||"file"==d&&(ee(e)||null!==e.port)||"file"==e.scheme&&!e.host))return;if(e.scheme=d,n){Q(e)&&J[e.scheme]==e.port&&(e.port=null);return}d="","file"==e.scheme?c=ew:Q(e)&&i&&i.scheme==e.scheme?c=el:Q(e)?c=ep:"/"==a[l+1]?(c=ef,l++):(e.cannotBeABaseURL=!0,e.path.push(""),c=ex)}else{if(n)return O;d="",c=ec,l=0;continue}break;case ec:if(!i||i.cannotBeABaseURL&&"#"!=o)return O;if(i.cannotBeABaseURL&&"#"==o){e.scheme=i.scheme,e.path=i.path.slice(),e.query=i.query,e.fragment="",e.cannotBeABaseURL=!0,c=eM;break}c="file"==i.scheme?ew:ed;continue;case el:if("/"==o&&"/"==a[l+1])c=eb,l++;else{c=ed;continue}break;case ef:if("/"==o){c=em;break}c=ek;continue;case ed:if(e.scheme=i.scheme,o==r)e.username=i.username,e.password=i.password,e.host=i.host,e.port=i.port,e.path=i.path.slice(),e.query=i.query;else if("/"==o||"\\"==o&&Q(e))c=eh;else if("?"==o)e.username=i.username,e.password=i.password,e.host=i.host,e.port=i.port,e.path=i.path.slice(),e.query="",c=eT;else if("#"==o)e.username=i.username,e.password=i.password,e.host=i.host,e.port=i.port,e.path=i.path.slice(),e.query=i.query,e.fragment="",c=eM;else{e.username=i.username,e.password=i.password,e.host=i.host,e.port=i.port,e.path=i.path.slice(),e.path.pop(),c=ek;continue}break;case eh:if(Q(e)&&("/"==o||"\\"==o))c=eb;else if("/"==o)c=em;else{e.username=i.username,e.password=i.password,e.host=i.host,e.port=i.port,c=ek;continue}break;case ep:if(c=eb,"/"!=o||"/"!=d.charAt(l+1))continue;l++;break;case eb:if("/"!=o&&"\\"!=o){c=em;continue}break;case em:if("@"==o){p&&(d="%40"+d),p=!0,s=h(d);for(var g=0;g65535)return L;e.port=Q(e)&&w===J[e.scheme]?null:w,d=""}if(n)return;c=eS;continue}break;case ew:if(e.scheme="file","/"==o||"\\"==o)c=e_;else if(i&&"file"==i.scheme){if(o==r)e.host=i.host,e.path=i.path.slice(),e.query=i.query;else if("?"==o)e.host=i.host,e.path=i.path.slice(),e.query="",c=eT;else if("#"==o)e.host=i.host,e.path=i.path.slice(),e.query=i.query,e.fragment="",c=eM;else{er(a.slice(l).join(""))||(e.host=i.host,e.path=i.path.slice(),ei(e)),c=ek;continue}}else{c=ek;continue}break;case e_:if("/"==o||"\\"==o){c=eE;break}i&&"file"==i.scheme&&!er(a.slice(l).join(""))&&(en(i.path[0],!0)?e.path.push(i.path[0]):e.host=i.host),c=ek;continue;case eE:if(o==r||"/"==o||"\\"==o||"?"==o||"#"==o){if(!n&&en(d))c=ek;else if(""==d){if(e.host="",n)return;c=eS}else{if(u=H(e,d))return u;if("localhost"==e.host&&(e.host=""),n)return;d="",c=eS}continue}d+=o;break;case eS:if(Q(e)){if(c=ek,"/"!=o&&"\\"!=o)continue}else if(n||"?"!=o){if(n||"#"!=o){if(o!=r&&(c=ek,"/"!=o))continue}else e.fragment="",c=eM}else e.query="",c=eT;break;case ek:if(o==r||"/"==o||"\\"==o&&Q(e)||!n&&("?"==o||"#"==o)){if(eo(d)?(ei(e),"/"==o||"\\"==o&&Q(e)||e.path.push("")):ea(d)?"/"==o||"\\"==o&&Q(e)||e.path.push(""):("file"==e.scheme&&!e.path.length&&en(d)&&(e.host&&(e.host=""),d=d.charAt(0)+":"),e.path.push(d)),d="","file"==e.scheme&&(o==r||"?"==o||"#"==o))for(;e.path.length>1&&""===e.path[0];)e.path.shift();"?"==o?(e.query="",c=eT):"#"==o&&(e.fragment="",c=eM)}else d+=X(o,q);break;case ex:"?"==o?(e.query="",c=eT):"#"==o?(e.fragment="",c=eM):o!=r&&(e.path[0]+=X(o,K));break;case eT:n||"#"!=o?o!=r&&("'"==o&&Q(e)?e.query+="%27":"#"==o?e.query+="%23":e.query+=X(o,K)):(e.fragment="",c=eM);break;case eM:o!=r&&(e.fragment+=X(o,V))}l++}},eA=function(e){var t,n,r=l(this,eA,"URL"),i=arguments.length>1?arguments[1]:void 0,o=m(e),s=S(r,{type:"URL"});if(void 0!==i){if(i instanceof eA)t=k(i);else if(n=eO(t={},m(i)))throw TypeError(n)}if(n=eO(s,o,null,t))throw TypeError(n);var u=s.searchParams=new _,c=E(u);c.updateSearchParams(s.query),c.updateURL=function(){s.query=String(u)||null},a||(r.href=eC.call(r),r.origin=eI.call(r),r.protocol=eD.call(r),r.username=eN.call(r),r.password=eP.call(r),r.host=eR.call(r),r.hostname=ej.call(r),r.port=eF.call(r),r.pathname=eY.call(r),r.search=eB.call(r),r.searchParams=eU.call(r),r.hash=eH.call(r))},eL=eA.prototype,eC=function(){var e=k(this),t=e.scheme,n=e.username,r=e.password,i=e.host,a=e.port,o=e.path,s=e.query,u=e.fragment,c=t+":";return null!==i?(c+="//",ee(e)&&(c+=n+(r?":"+r:"")+"@"),c+=W(i),null!==a&&(c+=":"+a)):"file"==t&&(c+="//"),c+=e.cannotBeABaseURL?o[0]:o.length?"/"+o.join("/"):"",null!==s&&(c+="?"+s),null!==u&&(c+="#"+u),c},eI=function(){var e=k(this),t=e.scheme,n=e.port;if("blob"==t)try{return new eA(t.path[0]).origin}catch(r){return"null"}return"file"!=t&&Q(e)?t+"://"+W(e.host)+(null!==n?":"+n:""):"null"},eD=function(){return k(this).scheme+":"},eN=function(){return k(this).username},eP=function(){return k(this).password},eR=function(){var e=k(this),t=e.host,n=e.port;return null===t?"":null===n?W(t):W(t)+":"+n},ej=function(){var e=k(this).host;return null===e?"":W(e)},eF=function(){var e=k(this).port;return null===e?"":String(e)},eY=function(){var e=k(this),t=e.path;return e.cannotBeABaseURL?t[0]:t.length?"/"+t.join("/"):""},eB=function(){var e=k(this).query;return e?"?"+e:""},eU=function(){return k(this).searchParams},eH=function(){var e=k(this).fragment;return e?"#"+e:""},e$=function(e,t){return{get:e,set:t,configurable:!0,enumerable:!0}};if(a&&u(eL,{href:e$(eC,function(e){var t=k(this),n=m(e),r=eO(t,n);if(r)throw TypeError(r);E(t.searchParams).updateSearchParams(t.query)}),origin:e$(eI),protocol:e$(eD,function(e){var t=k(this);eO(t,m(e)+":",es)}),username:e$(eN,function(e){var t=k(this),n=h(m(e));if(!et(t)){t.username="";for(var r=0;rc});var r={value:function(){}};function i(){for(var e,t=0,n=arguments.length,r={};t=0&&(n=e.slice(r+1),e=e.slice(0,r)),e&&!t.hasOwnProperty(e))throw Error("unknown type: "+e);return{type:e,name:n}})}function s(e,t){for(var n,r=0,i=e.length;r0)for(var n,r,i=Array(n),a=0;am,dragDisable:()=>u.Z,dragEnable:()=>u.D});var r=n(92626),i=n(25109),a=n(43095),o=n(94017),s=n(24793),u=n(44266),c=n(34299);function l(e){return function(){return e}}function f(e,t,n,r,i,a,o,s,u,c){this.target=e,this.type=t,this.subject=n,this.identifier=r,this.active=i,this.x=a,this.y=o,this.dx=s,this.dy=u,this._=c}function d(){return!i.B.ctrlKey&&!i.B.button}function h(){return this.parentNode}function p(e){return null==e?{x:i.B.x,y:i.B.y}:e}function b(){return navigator.maxTouchPoints||"ontouchstart"in this}function m(){var e,t,n,m,g=d,v=h,y=p,w=b,_={},E=(0,r.Z)("start","drag","end"),S=0,k=0;function x(e){e.on("mousedown.drag",T).filter(w).on("touchstart.drag",A).on("touchmove.drag",L).on("touchend.drag touchcancel.drag",C).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function T(){if(!m&&g.apply(this,arguments)){var r=I("mouse",v.apply(this,arguments),a.Z,this,arguments);r&&((0,o.Z)(i.B.view).on("mousemove.drag",M,!0).on("mouseup.drag",O,!0),(0,u.Z)(i.B.view),(0,c.r)(),n=!1,e=i.B.clientX,t=i.B.clientY,r("start"))}}function M(){if((0,c.Z)(),!n){var r=i.B.clientX-e,a=i.B.clientY-t;n=r*r+a*a>k}_.mouse("drag")}function O(){(0,o.Z)(i.B.view).on("mousemove.drag mouseup.drag",null),(0,u.D)(i.B.view,n),(0,c.Z)(),_.mouse("end")}function A(){if(g.apply(this,arguments)){var e,t,n=i.B.changedTouches,r=v.apply(this,arguments),a=n.length;for(e=0;eo,Z:()=>a});var r=n(94017),i=n(34299);function a(e){var t=e.document.documentElement,n=(0,r.Z)(e).on("dragstart.drag",i.Z,!0);"onselectstart"in t?n.on("selectstart.drag",i.Z,!0):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect="none")}function o(e,t){var n=e.document.documentElement,a=(0,r.Z)(e).on("dragstart.drag",null);t&&(a.on("click.drag",i.Z,!0),setTimeout(function(){a.on("click.drag",null)},0)),"onselectstart"in n?a.on("selectstart.drag",null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}},34299(e,t,n){"use strict";n.d(t,{Z:()=>a,r:()=>i});var r=n(25109);function i(){r.B.stopImmediatePropagation()}function a(){r.B.preventDefault(),r.B.stopImmediatePropagation()}},9893(e,t,n){"use strict";function r(e,t){var n;function r(){var r,i,a=n.length,o=0,s=0;for(r=0;r=(a=(b+g)/2))?b=a:g=a,(l=n>=(o=(m+v)/2))?m=o:v=o,i=h,!(h=h[f=l<<1|c]))return i[f]=p,e;if(s=+e._x.call(null,h.data),u=+e._y.call(null,h.data),t===s&&n===u)return p.next=h,i?i[f]=p:e._root=p,e;do i=i?i[f]=[,,,,]:e._root=[,,,,],(c=t>=(a=(b+g)/2))?b=a:g=a,(l=n>=(o=(m+v)/2))?m=o:v=o;while((f=l<<1|c)==(d=(u>=o)<<1|s>=a))return i[d]=h,i[f]=p,e}function u(e){var t,n,r,i,a=e.length,o=Array(a),u=Array(a),c=1/0,l=1/0,f=-1/0,d=-1/0;for(n=0;nf&&(f=r),id&&(d=i));if(c>f||l>d)return this;for(this.cover(c,l).cover(f,d),n=0;ne||e>=i||r>t||t>=a;)switch(s=(th)&&!((a=u.y0)>p)&&!((o=u.x1)=v)<<1|e>=g)&&(u=b[b.length-1],b[b.length-1]=b[b.length-1-c],b[b.length-1-c]=u)}else{var y=e-+this._x.call(null,m.data),w=t-+this._y.call(null,m.data),_=y*y+w*w;if(_=(s=(p+m)/2))?p=s:m=s,(l=o>=(u=(b+g)/2))?b=u:g=u,t=h,!(h=h[f=l<<1|c]))return this;if(!h.length)break;(t[f+1&3]||t[f+2&3]||t[f+3&3])&&(n=t,d=f)}for(;h.data!==e;)if(r=h,!(h=h.next))return this;return((i=h.next)&&delete h.next,r)?(i?r.next=i:delete r.next,this):t?(i?t[f]=i:delete t[f],(h=t[0]||t[1]||t[2]||t[3])&&h===(t[3]||t[2]||t[1]||t[0])&&!h.length&&(n?n[d]=h:this._root=h),this):(this._root=i,this)}function b(e){for(var t=0,n=e.length;tr,forceCollide:()=>L,forceLink:()=>B,forceManyBody:()=>V,forceRadial:()=>q,forceSimulation:()=>K,forceX:()=>Z,forceY:()=>X});var M=k.prototype=x.prototype;function O(e){return e.x+e.vx}function A(e){return e.y+e.vy}function L(e){var t,n,r=1,o=1;function s(){for(var e,i,s,c,l,f,d,h=t.length,p=0;ps.index){var b=c-u.x-u.vx,m=l-u.y-u.vy,g=b*b+m*m;gc+p||il+p||oe.r&&(e.r=e[t].r)}function c(){if(t){var r,i,a=t.length;for(r=0,n=Array(a);r1?(null==n?s.remove(e):s.set(e,h(n)),t):s.get(e)},find:function(t,n,r){var i,a,o,s,u,c=0,l=e.length;for(null==r?r=1/0:r*=r,c=0;c1?(c.on(e,n),t):c.on(e)}}}function V(){var e,t,n,r,o=i(-30),s=1,u=1/0,c=.81;function l(r){var i,a=e.length,o=k(e,$,z).visitAfter(d);for(n=r,i=0;i=u)){(e.data!==t||e.next)&&(0===f&&(p+=(f=a())*f),0===d&&(p+=(d=a())*d),ps});var r=n(73888),i=n(31986);function a(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===i.P&&t.documentElement.namespaceURI===i.P?t.createElement(e):t.createElementNS(n,e)}}function o(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function s(e){var t=(0,r.Z)(e);return(t.local?o:a)(t)}},58556(e,t,n){"use strict";n.r(t),n.d(t,{clientPoint:()=>h.Z,create:()=>a,creator:()=>r.Z,customEvent:()=>S._H,event:()=>S.B,local:()=>s,matcher:()=>c.Z,mouse:()=>l.Z,namespace:()=>f.Z,namespaces:()=>d.Z,select:()=>i.Z,selectAll:()=>b,selection:()=>p.ZP,selector:()=>m.Z,selectorAll:()=>g.Z,style:()=>v.S,touch:()=>y.Z,touches:()=>_,window:()=>E.Z});var r=n(789),i=n(94017);function a(e){return(0,i.Z)((0,r.Z)(e).call(document.documentElement))}var o=0;function s(){return new u}function u(){this._="@"+(++o).toString(36)}u.prototype=s.prototype={constructor:u,get:function(e){for(var t=this._;!(t in e);)if(!(e=e.parentNode))return;return e[t]},set:function(e,t){return e[this._]=t},remove:function(e){return this._ in e&&delete e[this._]},toString:function(){return this._}};var c=n(3083),l=n(43095),f=n(73888),d=n(31986),h=n(42115),p=n(23817);function b(e){return"string"==typeof e?new p.Y1([document.querySelectorAll(e)],[document.documentElement]):new p.Y1([null==e?[]:e],p.Jz)}var m=n(82634),g=n(3545),v=n(49986),y=n(24793),w=n(45553);function _(e,t){null==t&&(t=(0,w.Z)().touches);for(var n=0,r=t?t.length:0,i=Array(r);nr})},43095(e,t,n){"use strict";n.d(t,{Z:()=>a});var r=n(45553),i=n(42115);function a(e){var t=(0,r.Z)();return t.changedTouches&&(t=t.changedTouches[0]),(0,i.Z)(e,t)}},73888(e,t,n){"use strict";n.d(t,{Z:()=>i});var r=n(31986);function i(e){var t=e+="",n=t.indexOf(":");return n>=0&&"xmlns"!==(t=e.slice(0,n))&&(e=e.slice(n+1)),r.Z.hasOwnProperty(t)?{space:r.Z[t],local:e}:e}},31986(e,t,n){"use strict";n.d(t,{P:()=>r,Z:()=>i});var r="http://www.w3.org/1999/xhtml";let i={svg:"http://www.w3.org/2000/svg",xhtml:r,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"}},42115(e,t,n){"use strict";function r(e,t){var n=e.ownerSVGElement||e;if(n.createSVGPoint){var r=n.createSVGPoint();return r.x=t.clientX,r.y=t.clientY,[(r=r.matrixTransform(e.getScreenCTM().inverse())).x,r.y]}var i=e.getBoundingClientRect();return[t.clientX-i.left-e.clientLeft,t.clientY-i.top-e.clientTop]}n.d(t,{Z:()=>r})},94017(e,t,n){"use strict";n.d(t,{Z:()=>i});var r=n(23817);function i(e){return"string"==typeof e?new r.Y1([[document.querySelector(e)]],[document.documentElement]):new r.Y1([[e]],r.Jz)}},23817(e,t,n){"use strict";n.d(t,{Y1:()=>eT,ZP:()=>eO,Jz:()=>ex});var r=n(82634);function i(e){"function"!=typeof e&&(e=(0,r.Z)(e));for(var t=this._groups,n=t.length,i=Array(n),a=0;a=k&&(k=S+1);!(E=y[k])&&++k=0;)(r=i[a])&&(o&&4^r.compareDocumentPosition(o)&&o.parentNode.insertBefore(r,o),o=r);return this}function _(e){function t(t,n){return t&&n?e(t.__data__,n.__data__):!t-!n}e||(e=E);for(var n=this._groups,r=n.length,i=Array(r),a=0;at?1:e>=t?0:NaN}function S(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function k(){var e=Array(this.size()),t=-1;return this.each(function(){e[++t]=this}),e}function x(){for(var e=this._groups,t=0,n=e.length;t1?this.each((null==t?F:"function"==typeof t?B:Y)(e,t)):this.node()[e]}function H(e){return e.trim().split(/^|\s+/)}function $(e){return e.classList||new z(e)}function z(e){this._node=e,this._names=H(e.getAttribute("class")||"")}function G(e,t){for(var n=$(e),r=-1,i=t.length;++rthis._names.indexOf(e)&&(this._names.push(e),this._node.setAttribute("class",this._names.join(" ")))},remove:function(e){var t=this._names.indexOf(e);t>=0&&(this._names.splice(t,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(e){return this._names.indexOf(e)>=0}};var ec=n(789);function el(e){var t="function"==typeof e?e:(0,ec.Z)(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}function ef(){return null}function ed(e,t){var n="function"==typeof e?e:(0,ec.Z)(e),i=null==t?ef:"function"==typeof t?t:(0,r.Z)(t);return this.select(function(){return this.insertBefore(n.apply(this,arguments),i.apply(this,arguments)||null)})}function eh(){var e=this.parentNode;e&&e.removeChild(this)}function ep(){return this.each(eh)}function eb(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function em(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function eg(e){return this.select(e?em:eb)}function ev(e){return arguments.length?this.property("__data__",e):this.node().__data__}var ey=n(25109),ew=n(85021);function e_(e,t,n){var r=(0,ew.Z)(e),i=r.CustomEvent;"function"==typeof i?i=new i(t,n):(i=r.document.createEvent("Event"),n?(i.initEvent(t,n.bubbles,n.cancelable),i.detail=n.detail):i.initEvent(t,!1,!1)),e.dispatchEvent(i)}function eE(e,t){return function(){return e_(this,e,t)}}function eS(e,t){return function(){return e_(this,e,t.apply(this,arguments))}}function ek(e,t){return this.each(("function"==typeof t?eS:eE)(e,t))}var ex=[null];function eT(e,t){this._groups=e,this._parents=t}function eM(){return new eT([[document.documentElement]],ex)}eT.prototype=eM.prototype={constructor:eT,select:i,selectAll:o,filter:u,data:m,enter:l,exit:g,join:v,merge:y,order:w,sort:_,call:S,nodes:k,node:x,size:T,empty:M,each:O,attr:R,style:j.Z,property:U,classed:Z,text:ee,html:ei,raise:eo,lower:eu,append:el,insert:ed,remove:ep,clone:eg,datum:ev,on:ey.ZP,dispatch:ek};let eO=eM},25109(e,t,n){"use strict";n.d(t,{B:()=>i,ZP:()=>l,_H:()=>f});var r={},i=null;function a(e,t,n){return e=o(e,t,n),function(t){var n=t.relatedTarget;n&&(n===this||8&n.compareDocumentPosition(this))||e.call(this,t)}}function o(e,t,n){return function(r){var a=i;i=r;try{e.call(this,this.__data__,t,n)}finally{i=a}}}function s(e){return e.trim().split(/^|\s+/).map(function(e){var t="",n=e.indexOf(".");return n>=0&&(t=e.slice(n+1),e=e.slice(0,n)),{type:e,name:t}})}function u(e){return function(){var t=this.__on;if(t){for(var n,r=0,i=-1,a=t.length;ru,Z:()=>s});var r=n(85021);function i(e){return function(){this.style.removeProperty(e)}}function a(e,t,n){return function(){this.style.setProperty(e,t,n)}}function o(e,t,n){return function(){var r=t.apply(this,arguments);null==r?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function s(e,t,n){return arguments.length>1?this.each((null==t?i:"function"==typeof t?o:a)(e,t,null==n?"":n)):u(this.node(),e)}function u(e,t){return e.style.getPropertyValue(t)||(0,r.Z)(e).getComputedStyle(e,null).getPropertyValue(t)}},82634(e,t,n){"use strict";function r(){}function i(e){return null==e?r:function(){return this.querySelector(e)}}n.d(t,{Z:()=>i})},3545(e,t,n){"use strict";function r(){return[]}function i(e){return null==e?r:function(){return this.querySelectorAll(e)}}n.d(t,{Z:()=>i})},45553(e,t,n){"use strict";n.d(t,{Z:()=>i});var r=n(25109);function i(){for(var e,t=r.B;e=t.sourceEvent;)t=e;return t}},24793(e,t,n){"use strict";n.d(t,{Z:()=>a});var r=n(45553),i=n(42115);function a(e,t,n){arguments.length<3&&(n=t,t=(0,r.Z)().changedTouches);for(var a,o=0,s=t?t.length:0;or})},71098(e,t,n){"use strict";n.r(t),n.d(t,{arc:()=>C,area:()=>j,areaRadial:()=>W,curveBasis:()=>eM,curveBasisClosed:()=>eA,curveBasisOpen:()=>eC,curveBundle:()=>eD,curveCardinal:()=>eR,curveCardinalClosed:()=>eF,curveCardinalOpen:()=>eB,curveCatmullRom:()=>e$,curveCatmullRomClosed:()=>eG,curveCatmullRomOpen:()=>eK,curveLinear:()=>D,curveLinearClosed:()=>eq,curveMonotoneX:()=>e3,curveMonotoneY:()=>e4,curveNatural:()=>e9,curveStep:()=>e7,curveStepAfter:()=>tt,curveStepBefore:()=>te,line:()=>R,lineRadial:()=>G,linkHorizontal:()=>et,linkRadial:()=>er,linkVertical:()=>en,pie:()=>B,pointRadial:()=>K,radialArea:()=>W,radialLine:()=>G,stack:()=>ta,stackOffsetDiverging:()=>ts,stackOffsetExpand:()=>to,stackOffsetNone:()=>tn,stackOffsetSilhouette:()=>tu,stackOffsetWiggle:()=>tc,stackOrderAppearance:()=>tl,stackOrderAscending:()=>td,stackOrderDescending:()=>tp,stackOrderInsideOut:()=>tb,stackOrderNone:()=>tr,stackOrderReverse:()=>tm,symbol:()=>eS,symbolCircle:()=>ei,symbolCross:()=>ea,symbolDiamond:()=>eu,symbolSquare:()=>ep,symbolStar:()=>eh,symbolTriangle:()=>em,symbolWye:()=>e_,symbols:()=>eE});var r=Math.PI,i=2*r,a=1e-6,o=i-a;function s(){this._x0=this._y0=this._x1=this._y1=null,this._=""}function u(){return new s}s.prototype=u.prototype={constructor:s,moveTo:function(e,t){this._+="M"+(this._x0=this._x1=+e)+","+(this._y0=this._y1=+t)},closePath:function(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")},lineTo:function(e,t){this._+="L"+(this._x1=+e)+","+(this._y1=+t)},quadraticCurveTo:function(e,t,n,r){this._+="Q"+ +e+","+ +t+","+(this._x1=+n)+","+(this._y1=+r)},bezierCurveTo:function(e,t,n,r,i,a){this._+="C"+ +e+","+ +t+","+ +n+","+ +r+","+(this._x1=+i)+","+(this._y1=+a)},arcTo:function(e,t,n,i,o){e=+e,t=+t,n=+n,i=+i,o=+o;var s=this._x1,u=this._y1,c=n-e,l=i-t,f=s-e,d=u-t,h=f*f+d*d;if(o<0)throw Error("negative radius: "+o);if(null===this._x1)this._+="M"+(this._x1=e)+","+(this._y1=t);else if(h>a){if(Math.abs(d*c-l*f)>a&&o){var p=n-s,b=i-u,m=c*c+l*l,g=Math.sqrt(m),v=Math.sqrt(h),y=o*Math.tan((r-Math.acos((m+h-(p*p+b*b))/(2*g*v)))/2),w=y/v,_=y/g;Math.abs(w-1)>a&&(this._+="L"+(e+w*f)+","+(t+w*d)),this._+="A"+o+","+o+",0,0,"+ +(d*p>f*b)+","+(this._x1=e+_*c)+","+(this._y1=t+_*l)}else this._+="L"+(this._x1=e)+","+(this._y1=t)}},arc:function(e,t,n,s,u,c){e=+e,t=+t,n=+n,c=!!c;var l=n*Math.cos(s),f=n*Math.sin(s),d=e+l,h=t+f,p=1^c,b=c?s-u:u-s;if(n<0)throw Error("negative radius: "+n);null===this._x1?this._+="M"+d+","+h:(Math.abs(this._x1-d)>a||Math.abs(this._y1-h)>a)&&(this._+="L"+d+","+h),n&&(b<0&&(b=b%i+i),b>o?this._+="A"+n+","+n+",0,1,"+p+","+(e-l)+","+(t-f)+"A"+n+","+n+",0,1,"+p+","+(this._x1=d)+","+(this._y1=h):b>a&&(this._+="A"+n+","+n+",0,"+ +(b>=r)+","+p+","+(this._x1=e+n*Math.cos(u))+","+(this._y1=t+n*Math.sin(u))))},rect:function(e,t,n,r){this._+="M"+(this._x0=this._x1=+e)+","+(this._y0=this._y1=+t)+"h"+ +n+"v"+ +r+"h"+-n+"Z"},toString:function(){return this._}};let c=u;function l(e){return function(){return e}}var f=Math.abs,d=Math.atan2,h=Math.cos,p=Math.max,b=Math.min,m=Math.sin,g=Math.sqrt,v=1e-12,y=Math.PI,w=y/2,_=2*y;function E(e){return e>1?0:e<-1?y:Math.acos(e)}function S(e){return e>=1?w:e<=-1?-w:Math.asin(e)}function k(e){return e.innerRadius}function x(e){return e.outerRadius}function T(e){return e.startAngle}function M(e){return e.endAngle}function O(e){return e&&e.padAngle}function A(e,t,n,r,i,a,o,s){var u=n-e,c=r-t,l=o-i,f=s-a,d=f*u-l*c;if(!(d*dI*I+D*D&&(T=O,M=A),{cx:T,cy:M,x01:-l,y01:-f,x11:T*(i/S-1),y11:M*(i/S-1)}}function C(){var e=k,t=x,n=l(0),r=null,i=T,a=M,o=O,s=null;function u(){var u,l,p=+e.apply(this,arguments),k=+t.apply(this,arguments),x=i.apply(this,arguments)-w,T=a.apply(this,arguments)-w,M=f(T-x),O=T>x;if(s||(s=u=c()),kv){if(M>_-v)s.moveTo(k*h(x),k*m(x)),s.arc(0,0,k,x,T,!O),p>v&&(s.moveTo(p*h(T),p*m(T)),s.arc(0,0,p,T,x,O));else{var C,I,D=x,N=T,P=x,R=T,j=M,F=M,Y=o.apply(this,arguments)/2,B=Y>v&&(r?+r.apply(this,arguments):g(p*p+k*k)),U=b(f(k-p)/2,+n.apply(this,arguments)),H=U,$=U;if(B>v){var z=S(B/p*m(Y)),G=S(B/k*m(Y));(j-=2*z)>v?(z*=O?1:-1,P+=z,R-=z):(j=0,P=R=(x+T)/2),(F-=2*G)>v?(G*=O?1:-1,D+=G,N-=G):(F=0,D=N=(x+T)/2)}var W=k*h(D),K=k*m(D),V=p*h(R),q=p*m(R);if(U>v){var Z,X=k*h(N),J=k*m(N),Q=p*h(P),ee=p*m(P);if(Mv?$>v?(C=L(Q,ee,W,K,k,$,O),I=L(X,J,V,q,k,$,O),s.moveTo(C.cx+C.x01,C.cy+C.y01),$v&&j>v?H>v?(C=L(V,q,X,J,p,-H,O),I=L(W,K,Q,ee,p,-H,O),s.lineTo(C.cx+C.x01,C.cy+C.y01),H=f;--d)s.point(g[d],v[d]);s.lineEnd(),s.areaEnd()}}m&&(g[l]=+e(h,l,u),v[l]=+n(h,l,u),s.point(t?+t(h,l,u):g[l],r?+r(h,l,u):v[l]))}if(p)return s=null,p+""||null}function f(){return R().defined(i).curve(o).context(a)}return u.x=function(n){return arguments.length?(e="function"==typeof n?n:l(+n),t=null,u):e},u.x0=function(t){return arguments.length?(e="function"==typeof t?t:l(+t),u):e},u.x1=function(e){return arguments.length?(t=null==e?null:"function"==typeof e?e:l(+e),u):t},u.y=function(e){return arguments.length?(n="function"==typeof e?e:l(+e),r=null,u):n},u.y0=function(e){return arguments.length?(n="function"==typeof e?e:l(+e),u):n},u.y1=function(e){return arguments.length?(r=null==e?null:"function"==typeof e?e:l(+e),u):r},u.lineX0=u.lineY0=function(){return f().x(e).y(n)},u.lineY1=function(){return f().x(e).y(r)},u.lineX1=function(){return f().x(t).y(n)},u.defined=function(e){return arguments.length?(i="function"==typeof e?e:l(!!e),u):i},u.curve=function(e){return arguments.length?(o=e,null!=a&&(s=o(a)),u):o},u.context=function(e){return arguments.length?(null==e?a=s=null:s=o(a=e),u):a},u}function F(e,t){return te?1:t>=e?0:NaN}function Y(e){return e}function B(){var e=Y,t=F,n=null,r=l(0),i=l(_),a=l(0);function o(o){var s,u,c,l,f,d=o.length,h=0,p=Array(d),b=Array(d),m=+r.apply(this,arguments),g=Math.min(_,Math.max(-_,i.apply(this,arguments)-m)),v=Math.min(Math.abs(g)/d,a.apply(this,arguments)),y=v*(g<0?-1:1);for(s=0;s0&&(h+=f);for(null!=t?p.sort(function(e,n){return t(b[e],b[n])}):null!=n&&p.sort(function(e,t){return n(o[e],o[t])}),s=0,c=h?(g-d*y)/h:0;s0?f*c:0)+y,b[u]={data:o[u],index:s,value:f,startAngle:m,endAngle:l,padAngle:v};return b}return o.value=function(t){return arguments.length?(e="function"==typeof t?t:l(+t),o):e},o.sortValues=function(e){return arguments.length?(t=e,n=null,o):t},o.sort=function(e){return arguments.length?(n=e,t=null,o):n},o.startAngle=function(e){return arguments.length?(r="function"==typeof e?e:l(+e),o):r},o.endAngle=function(e){return arguments.length?(i="function"==typeof e?e:l(+e),o):i},o.padAngle=function(e){return arguments.length?(a="function"==typeof e?e:l(+e),o):a},o}I.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:this._context.lineTo(e,t)}}};var U=$(D);function H(e){this._curve=e}function $(e){function t(t){return new H(e(t))}return t._curve=e,t}function z(e){var t=e.curve;return e.angle=e.x,delete e.x,e.radius=e.y,delete e.y,e.curve=function(e){return arguments.length?t($(e)):t()._curve},e}function G(){return z(R().curve(U))}function W(){var e=j().curve(U),t=e.curve,n=e.lineX0,r=e.lineX1,i=e.lineY0,a=e.lineY1;return e.angle=e.x,delete e.x,e.startAngle=e.x0,delete e.x0,e.endAngle=e.x1,delete e.x1,e.radius=e.y,delete e.y,e.innerRadius=e.y0,delete e.y0,e.outerRadius=e.y1,delete e.y1,e.lineStartAngle=function(){return z(n())},delete e.lineX0,e.lineEndAngle=function(){return z(r())},delete e.lineX1,e.lineInnerRadius=function(){return z(i())},delete e.lineY0,e.lineOuterRadius=function(){return z(a())},delete e.lineY1,e.curve=function(e){return arguments.length?t($(e)):t()._curve},e}function K(e,t){return[(t=+t)*Math.cos(e-=Math.PI/2),t*Math.sin(e)]}H.prototype={areaStart:function(){this._curve.areaStart()},areaEnd:function(){this._curve.areaEnd()},lineStart:function(){this._curve.lineStart()},lineEnd:function(){this._curve.lineEnd()},point:function(e,t){this._curve.point(t*Math.sin(e),-(t*Math.cos(e)))}};var V=Array.prototype.slice;function q(e){return e.source}function Z(e){return e.target}function X(e){var t=q,n=Z,r=N,i=P,a=null;function o(){var o,s=V.call(arguments),u=t.apply(this,s),l=n.apply(this,s);if(a||(a=o=c()),e(a,+r.apply(this,(s[0]=u,s)),+i.apply(this,s),+r.apply(this,(s[0]=l,s)),+i.apply(this,s)),o)return a=null,o+""||null}return o.source=function(e){return arguments.length?(t=e,o):t},o.target=function(e){return arguments.length?(n=e,o):n},o.x=function(e){return arguments.length?(r="function"==typeof e?e:l(+e),o):r},o.y=function(e){return arguments.length?(i="function"==typeof e?e:l(+e),o):i},o.context=function(e){return arguments.length?(a=null==e?null:e,o):a},o}function J(e,t,n,r,i){e.moveTo(t,n),e.bezierCurveTo(t=(t+r)/2,n,t,i,r,i)}function Q(e,t,n,r,i){e.moveTo(t,n),e.bezierCurveTo(t,n=(n+i)/2,r,n,r,i)}function ee(e,t,n,r,i){var a=K(t,n),o=K(t,n=(n+i)/2),s=K(r,n),u=K(r,i);e.moveTo(a[0],a[1]),e.bezierCurveTo(o[0],o[1],s[0],s[1],u[0],u[1])}function et(){return X(J)}function en(){return X(Q)}function er(){var e=X(ee);return e.angle=e.x,delete e.x,e.radius=e.y,delete e.y,e}let ei={draw:function(e,t){var n=Math.sqrt(t/y);e.moveTo(n,0),e.arc(0,0,n,0,_)}},ea={draw:function(e,t){var n=Math.sqrt(t/5)/2;e.moveTo(-3*n,-n),e.lineTo(-n,-n),e.lineTo(-n,-3*n),e.lineTo(n,-3*n),e.lineTo(n,-n),e.lineTo(3*n,-n),e.lineTo(3*n,n),e.lineTo(n,n),e.lineTo(n,3*n),e.lineTo(-n,3*n),e.lineTo(-n,n),e.lineTo(-3*n,n),e.closePath()}};var eo=Math.sqrt(1/3),es=2*eo;let eu={draw:function(e,t){var n=Math.sqrt(t/es),r=n*eo;e.moveTo(0,-n),e.lineTo(r,0),e.lineTo(0,n),e.lineTo(-r,0),e.closePath()}};var ec=.8908130915292852,el=Math.sin(y/10)/Math.sin(7*y/10),ef=Math.sin(_/10)*el,ed=-Math.cos(_/10)*el;let eh={draw:function(e,t){var n=Math.sqrt(t*ec),r=ef*n,i=ed*n;e.moveTo(0,-n),e.lineTo(r,i);for(var a=1;a<5;++a){var o=_*a/5,s=Math.cos(o),u=Math.sin(o);e.lineTo(u*n,-s*n),e.lineTo(s*r-u*i,u*r+s*i)}e.closePath()}},ep={draw:function(e,t){var n=Math.sqrt(t),r=-n/2;e.rect(r,r,n,n)}};var eb=Math.sqrt(3);let em={draw:function(e,t){var n=-Math.sqrt(t/(3*eb));e.moveTo(0,2*n),e.lineTo(-eb*n,-n),e.lineTo(eb*n,-n),e.closePath()}};var eg=-.5,ev=Math.sqrt(3)/2,ey=1/Math.sqrt(12),ew=(ey/2+1)*3;let e_={draw:function(e,t){var n=Math.sqrt(t/ew),r=n/2,i=n*ey,a=r,o=n*ey+n,s=-a,u=o;e.moveTo(r,i),e.lineTo(a,o),e.lineTo(s,u),e.lineTo(eg*r-ev*i,ev*r+eg*i),e.lineTo(eg*a-ev*o,ev*a+eg*o),e.lineTo(eg*s-ev*u,ev*s+eg*u),e.lineTo(eg*r+ev*i,eg*i-ev*r),e.lineTo(eg*a+ev*o,eg*o-ev*a),e.lineTo(eg*s+ev*u,eg*u-ev*s),e.closePath()}};var eE=[ei,ea,eu,ep,eh,em,e_];function eS(){var e=l(ei),t=l(64),n=null;function r(){var r;if(n||(n=r=c()),e.apply(this,arguments).draw(n,+t.apply(this,arguments)),r)return n=null,r+""||null}return r.type=function(t){return arguments.length?(e="function"==typeof t?t:l(t),r):e},r.size=function(e){return arguments.length?(t="function"==typeof e?e:l(+e),r):t},r.context=function(e){return arguments.length?(n=null==e?null:e,r):n},r}function ek(){}function ex(e,t,n){e._context.bezierCurveTo((2*e._x0+e._x1)/3,(2*e._y0+e._y1)/3,(e._x0+2*e._x1)/3,(e._y0+2*e._y1)/3,(e._x0+4*e._x1+t)/6,(e._y0+4*e._y1+n)/6)}function eT(e){this._context=e}function eM(e){return new eT(e)}function eO(e){this._context=e}function eA(e){return new eO(e)}function eL(e){this._context=e}function eC(e){return new eL(e)}function eI(e,t){this._basis=new eT(e),this._beta=t}eT.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:ex(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:ex(this,e,t)}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}},eO.prototype={areaStart:ek,areaEnd:ek,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x2,this._y2),this._context.closePath();break;case 2:this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break;case 3:this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4)}},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x2=e,this._y2=t;break;case 1:this._point=2,this._x3=e,this._y3=t;break;case 2:this._point=3,this._x4=e,this._y4=t,this._context.moveTo((this._x0+4*this._x1+e)/6,(this._y0+4*this._y1+t)/6);break;default:ex(this,e,t)}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}},eL.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var n=(this._x0+4*this._x1+e)/6,r=(this._y0+4*this._y1+t)/6;this._line?this._context.lineTo(n,r):this._context.moveTo(n,r);break;case 3:this._point=4;default:ex(this,e,t)}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}},eI.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var e=this._x,t=this._y,n=e.length-1;if(n>0)for(var r,i=e[0],a=t[0],o=e[n]-i,s=t[n]-a,u=-1;++u<=n;)r=u/n,this._basis.point(this._beta*e[u]+(1-this._beta)*(i+r*o),this._beta*t[u]+(1-this._beta)*(a+r*s));this._x=this._y=null,this._basis.lineEnd()},point:function(e,t){this._x.push(+e),this._y.push(+t)}};let eD=function e(t){function n(e){return 1===t?new eT(e):new eI(e,t)}return n.beta=function(t){return e(+t)},n}(.85);function eN(e,t,n){e._context.bezierCurveTo(e._x1+e._k*(e._x2-e._x0),e._y1+e._k*(e._y2-e._y0),e._x2+e._k*(e._x1-t),e._y2+e._k*(e._y1-n),e._x2,e._y2)}function eP(e,t){this._context=e,this._k=(1-t)/6}eP.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:eN(this,this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2,this._x1=e,this._y1=t;break;case 2:this._point=3;default:eN(this,e,t)}this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};let eR=function e(t){function n(e){return new eP(e,0)}return n.tension=function(t){return e(+t)},n}(0);function ej(e,t){this._context=e,this._k=(1-t)/6}ej.prototype={areaStart:ek,areaEnd:ek,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x3=e,this._y3=t;break;case 1:this._point=2,this._context.moveTo(this._x4=e,this._y4=t);break;case 2:this._point=3,this._x5=e,this._y5=t;break;default:eN(this,e,t)}this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};let eF=function e(t){function n(e){return new ej(e,0)}return n.tension=function(t){return e(+t)},n}(0);function eY(e,t){this._context=e,this._k=(1-t)/6}eY.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:eN(this,e,t)}this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};let eB=function e(t){function n(e){return new eY(e,0)}return n.tension=function(t){return e(+t)},n}(0);function eU(e,t,n){var r=e._x1,i=e._y1,a=e._x2,o=e._y2;if(e._l01_a>v){var s=2*e._l01_2a+3*e._l01_a*e._l12_a+e._l12_2a,u=3*e._l01_a*(e._l01_a+e._l12_a);r=(r*s-e._x0*e._l12_2a+e._x2*e._l01_2a)/u,i=(i*s-e._y0*e._l12_2a+e._y2*e._l01_2a)/u}if(e._l23_a>v){var c=2*e._l23_2a+3*e._l23_a*e._l12_a+e._l12_2a,l=3*e._l23_a*(e._l23_a+e._l12_a);a=(a*c+e._x1*e._l23_2a-t*e._l12_2a)/l,o=(o*c+e._y1*e._l23_2a-n*e._l12_2a)/l}e._context.bezierCurveTo(r,i,a,o,e._x2,e._y2)}function eH(e,t){this._context=e,this._alpha=t}eH.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){if(e=+e,t=+t,this._point){var n=this._x2-e,r=this._y2-t;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3;default:eU(this,e,t)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};let e$=function e(t){function n(e){return t?new eH(e,t):new eP(e,0)}return n.alpha=function(t){return e(+t)},n}(.5);function ez(e,t){this._context=e,this._alpha=t}ez.prototype={areaStart:ek,areaEnd:ek,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(e,t){if(e=+e,t=+t,this._point){var n=this._x2-e,r=this._y2-t;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=e,this._y3=t;break;case 1:this._point=2,this._context.moveTo(this._x4=e,this._y4=t);break;case 2:this._point=3,this._x5=e,this._y5=t;break;default:eU(this,e,t)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};let eG=function e(t){function n(e){return t?new ez(e,t):new ej(e,0)}return n.alpha=function(t){return e(+t)},n}(.5);function eW(e,t){this._context=e,this._alpha=t}eW.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){if(e=+e,t=+t,this._point){var n=this._x2-e,r=this._y2-t;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:eU(this,e,t)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};let eK=function e(t){function n(e){return t?new eW(e,t):new eY(e,0)}return n.alpha=function(t){return e(+t)},n}(.5);function eV(e){this._context=e}function eq(e){return new eV(e)}function eZ(e){return e<0?-1:1}function eX(e,t,n){var r=e._x1-e._x0,i=t-e._x1,a=(e._y1-e._y0)/(r||i<0&&-0),o=(n-e._y1)/(i||r<0&&-0),s=(a*i+o*r)/(r+i);return(eZ(a)+eZ(o))*Math.min(Math.abs(a),Math.abs(o),.5*Math.abs(s))||0}function eJ(e,t){var n=e._x1-e._x0;return n?(3*(e._y1-e._y0)/n-t)/2:t}function eQ(e,t,n){var r=e._x0,i=e._y0,a=e._x1,o=e._y1,s=(a-r)/3;e._context.bezierCurveTo(r+s,i+s*t,a-s,o-s*n,a,o)}function e1(e){this._context=e}function e0(e){this._context=new e2(e)}function e2(e){this._context=e}function e3(e){return new e1(e)}function e4(e){return new e0(e)}function e5(e){this._context=e}function e6(e){var t,n,r=e.length-1,i=Array(r),a=Array(r),o=Array(r);for(i[0]=0,a[0]=2,o[0]=e[0]+2*e[1],t=1;t=0;--t)i[t]=(o[t]-i[t+1])/a[t];for(t=0,a[r-1]=(e[r]+i[r-1])/2;t1)for(var n,r,i,a=1,o=e[t[0]],s=o.length;a=0;)n[t]=t;return n}function ti(e,t){return e[t]}function ta(){var e=l([]),t=tr,n=tn,r=ti;function i(i){var a,o,s=e.apply(this,arguments),u=i.length,c=s.length,l=Array(c);for(a=0;a0){for(var n,r,i,a=0,o=e[0].length;a0)for(var n,r,i,a,o,s,u=0,c=e[t[0]].length;u0?(r[0]=a,r[1]=a+=i):i<0?(r[1]=o,r[0]=o+=i):(r[0]=0,r[1]=i)}function tu(e,t){if((n=e.length)>0){for(var n,r=0,i=e[t[0]],a=i.length;r0&&(r=(n=e[t[0]]).length)>0){for(var n,r,i,a=0,o=1;oa&&(a=t,r=n);return r}function td(e){var t=e.map(th);return tr(e).sort(function(e,n){return t[e]-t[n]})}function th(e){for(var t,n=0,r=-1,i=e.length;++r=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:if(this._t<=0)this._context.lineTo(this._x,t),this._context.lineTo(e,t);else{var n=this._x*(1-this._t)+e*this._t;this._context.lineTo(n,this._y),this._context.lineTo(n,t)}}this._x=e,this._y=t}}},35374(e,t,n){"use strict";n.d(t,{B7:()=>m,HT:()=>g,zO:()=>p});var r,i,a=0,o=0,s=0,u=1e3,c=0,l=0,f=0,d="object"==typeof performance&&performance.now?performance:Date,h="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function p(){return l||(h(b),l=d.now()+f)}function b(){l=0}function m(){this._call=this._time=this._next=null}function g(e,t,n){var r=new m;return r.restart(e,t,n),r}function v(){p(),++a;for(var e,t=r;t;)(e=l-t._time)>=0&&t._call.call(null,e),t=t._next;--a}function y(){l=(c=d.now())+f,a=o=0;try{v()}finally{a=0,_(),l=0}}function w(){var e=d.now(),t=e-c;t>u&&(f-=t,c=e)}function _(){for(var e,t,n=r,a=1/0;n;)n._call?(a>n._time&&(a=n._time),e=n,n=n._next):(t=n._next,n._next=null,n=e?e._next=t:r=t);i=e,E(a)}function E(e){if(!a){var t;o&&(o=clearTimeout(o)),e-l>24?(e<1/0&&(o=setTimeout(y,e-d.now()-f)),s&&(s=clearInterval(s))):(s||(c=d.now(),s=setInterval(w,u)),a=1,h(y))}}m.prototype=g.prototype={constructor:m,restart:function(e,t,n){if("function"!=typeof e)throw TypeError("callback is not a function");n=(null==n?p():+n)+(null==t?0:+t),this._next||i===this||(i?i._next=this:r=this,i=this),this._call=e,this._time=n,E()},stop:function(){this._call&&(this._call=null,this._time=1/0,E())}}},76626(e,t,n){"use strict";n.r(t),n.d(t,{zoom:()=>t5,zoomIdentity:()=>tq,zoomTransform:()=>tZ});var r,i,a,o,s=n(92626),u=n(44266),c=Math.SQRT2,l=2,f=4,d=1e-12;function h(e){return((e=Math.exp(e))+1/e)/2}function p(e){return((e=Math.exp(e))-1/e)/2}function b(e){return((e=Math.exp(2*e))-1)/(e+1)}function m(e,t){var n,r,i=e[0],a=e[1],o=e[2],s=t[0],u=t[1],m=t[2],g=s-i,v=u-a,y=g*g+v*v;if(yT)throw Error("too late; already scheduled");return n}function P(e,t){var n=R(e,t);if(n.state>A)throw Error("too late; already running");return n}function R(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw Error("transition not found");return n}function j(e,t,n){var r,i=e.__transition;function a(e){n.state=M,n.timer.restart(o,n.delay,n.time),n.delay<=e&&o(e-n.delay)}function o(a){var c,l,f,d;if(n.state!==M)return u();for(c in i)if((d=i[c]).name===n.name){if(d.state===A)return S(o);d.state===L?(d.state=I,d.timer.stop(),d.on.call("interrupt",e,e.__data__,d.index,d.group),delete i[c]):+cO&&n.state180?t+=360:t-e>180&&(e+=360),a.push({i:n.push(i(n)+"rotate(",null,r)-2,x:B(e,t)})):t&&n.push(i(n)+"rotate("+t+r)}function s(e,t,n,a){e!==t?a.push({i:n.push(i(n)+"skewX(",null,r)-2,x:B(e,t)}):t&&n.push(i(n)+"skewX("+t+r)}function u(e,t,n,r,a,o){if(e!==n||t!==r){var s=a.push(i(a)+"scale(",null,",",null,")");o.push({i:s-4,x:B(e,n)},{i:s-2,x:B(t,r)})}else(1!==n||1!==r)&&a.push(i(a)+"scale("+n+","+r+")")}return function(t,n){var r=[],i=[];return t=e(t),n=e(n),a(t.translateX,t.translateY,n.translateX,n.translateY,r,i),o(t.rotate,n.rotate,r,i),s(t.skewX,n.skewX,r,i),u(t.scaleX,t.scaleY,n.scaleX,n.scaleY,r,i),t=n=null,function(e){for(var t,n=-1,a=i.length;++n>8&15|t>>4&240,t>>4&15|240&t,(15&t)<<4|15&t,1):8===n?e_(t>>24&255,t>>16&255,t>>8&255,(255&t)/255):4===n?e_(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|240&t,((15&t)<<4|15&t)/255):null):(t=ec.exec(e))?new ek(t[1],t[2],t[3],1):(t=el.exec(e))?new ek(255*t[1]/100,255*t[2]/100,255*t[3]/100,1):(t=ef.exec(e))?e_(t[1],t[2],t[3],t[4]):(t=ed.exec(e))?e_(255*t[1]/100,255*t[2]/100,255*t[3]/100,t[4]):(t=eh.exec(e))?eO(t[1],t[2]/100,t[3]/100,1):(t=ep.exec(e))?eO(t[1],t[2]/100,t[3]/100,t[4]):eb.hasOwnProperty(e)?ew(eb[e]):"transparent"===e?new ek(NaN,NaN,NaN,0):null}function ew(e){return new ek(e>>16&255,e>>8&255,255&e,1)}function e_(e,t,n,r){return r<=0&&(e=t=n=NaN),new ek(e,t,n,r)}function eE(e){return(e instanceof en||(e=ey(e)),e)?(e=e.rgb(),new ek(e.r,e.g,e.b,e.opacity)):new ek}function eS(e,t,n,r){return 1===arguments.length?eE(e):new ek(e,t,n,null==r?1:r)}function ek(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}function ex(){return"#"+eM(this.r)+eM(this.g)+eM(this.b)}function eT(){var e=this.opacity;return(1===(e=isNaN(e)?1:Math.max(0,Math.min(1,e)))?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===e?")":", "+e+")")}function eM(e){return((e=Math.max(0,Math.min(255,Math.round(e)||0)))<16?"0":"")+e.toString(16)}function eO(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new eC(e,t,n,r)}function eA(e){if(e instanceof eC)return new eC(e.h,e.s,e.l,e.opacity);if(e instanceof en||(e=ey(e)),!e)return new eC;if(e instanceof eC)return e;var t=(e=e.rgb()).r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),a=Math.max(t,n,r),o=NaN,s=a-i,u=(a+i)/2;return s?(o=t===a?(n-r)/s+(n0&&u<1?0:o,new eC(o,s,u,e.opacity)}function eL(e,t,n,r){return 1===arguments.length?eA(e):new eC(e,t,n,null==r?1:r)}function eC(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}function eI(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}function eD(e,t,n,r,i){var a=e*e,o=a*e;return((1-3*e+3*a-o)*t+(4-6*a+3*o)*n+(1+3*e+3*a-3*o)*r+o*i)/6}function eN(e){var t=e.length-1;return function(n){var r=n<=0?n=0:n>=1?(n=1,t-1):Math.floor(n*t),i=e[r],a=e[r+1],o=r>0?e[r-1]:2*i-a,s=r=240?e-240:e+120,i,r),eI(e,i,r),eI(e<120?e+240:e-120,i,r),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl:function(){var e=this.opacity;return(1===(e=isNaN(e)?1:Math.max(0,Math.min(1,e)))?"hsl(":"hsla(")+(this.h||0)+", "+100*(this.s||0)+"%, "+100*(this.l||0)+"%"+(1===e?")":", "+e+")")}}));let eU=function e(t){var n=eY(1);function r(e,t){var r=n((e=eS(e)).r,(t=eS(t)).r),i=n(e.g,t.g),a=n(e.b,t.b),o=eB(e.opacity,t.opacity);return function(t){return e.r=r(t),e.g=i(t),e.b=a(t),e.opacity=o(t),e+""}}return r.gamma=e,r}(1);function eH(e){return function(t){var n,r,i=t.length,a=Array(i),o=Array(i),s=Array(i);for(n=0;na&&(i=t.slice(a,i),s[o]?s[o]+=i:s[++o]=i),(n=n[0])===(r=r[0])?s[o]?s[o]+=r:s[++o]=r:(s[++o]=null,u.push({i:o,x:B(n,r)})),a=ez.lastIndex;return a=0&&(e=e.slice(0,t)),!e||"start"===e})}function tc(e,t,n){var r,i,a=tu(t)?N:P;return function(){var o=a(this,e),s=o.on;s!==r&&(i=(r=s).copy()).on(t,n),o.on=i}}function tl(e,t){var n=this._id;return arguments.length<2?R(this.node(),n).on.on(e):this.each(tc(n,e,t))}function tf(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function td(){return this.on("end.remove",tf(this._id))}var th=n(82634);function tp(e){var t=this._name,n=this._id;"function"!=typeof e&&(e=(0,th.Z)(e));for(var r=this._groups,i=r.length,a=Array(i),o=0;or?(r+i)/2:Math.min(0,r)||Math.max(0,i),o>a?(a+o)/2:Math.min(0,a)||Math.max(0,o))}function t5(){var e,t,n=tQ,r=t1,i=t4,a=t2,o=t3,c=[0,1/0],l=[[-1/0,-1/0],[1/0,1/0]],f=250,d=m,h=(0,s.Z)("start","zoom","end"),p=500,b=150,_=0;function E(e){e.property("__zoom",t0).on("wheel.zoom",A).on("mousedown.zoom",L).on("dblclick.zoom",C).filter(o).on("touchstart.zoom",I).on("touchmove.zoom",D).on("touchend.zoom touchcancel.zoom",N).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function S(e,t){return(t=Math.max(c[0],Math.min(c[1],t)))===e.k?e:new tV(t,e.x,e.y)}function k(e,t,n){var r=t[0]-n[0]*e.k,i=t[1]-n[1]*e.k;return r===e.x&&i===e.y?e:new tV(e.k,r,i)}function x(e){return[(+e[0][0]+ +e[1][0])/2,(+e[0][1]+ +e[1][1])/2]}function T(e,t,n){e.on("start.zoom",function(){M(this,arguments).start()}).on("interrupt.zoom end.zoom",function(){M(this,arguments).end()}).tween("zoom",function(){var e=this,i=arguments,a=M(e,i),o=r.apply(e,i),s=null==n?x(o):"function"==typeof n?n.apply(e,i):n,u=Math.max(o[1][0]-o[0][0],o[1][1]-o[0][1]),c=e.__zoom,l="function"==typeof t?t.apply(e,i):t,f=d(c.invert(s).concat(u/c.k),l.invert(s).concat(u/l.k));return function(e){if(1===e)e=l;else{var t=f(e),n=u/t[2];e=new tV(n,s[0]-t[0]*n,s[1]-t[1]*n)}a.zoom(null,e)}})}function M(e,t,n){return!n&&e.__zooming||new O(e,t)}function O(e,t){this.that=e,this.args=t,this.active=0,this.extent=r.apply(e,t),this.taps=0}function A(){if(n.apply(this,arguments)){var e=M(this,arguments),t=this.__zoom,r=Math.max(c[0],Math.min(c[1],t.k*Math.pow(2,a.apply(this,arguments)))),o=(0,v.Z)(this);if(e.wheel)(e.mouse[0][0]!==o[0]||e.mouse[0][1]!==o[1])&&(e.mouse[1]=t.invert(e.mouse[0]=o)),clearTimeout(e.wheel);else{if(t.k===r)return;e.mouse=[o,t.invert(o)],F(this),e.start()}tJ(),e.wheel=setTimeout(s,b),e.zoom("mouse",i(k(S(t,r),e.mouse[0],e.mouse[1]),e.extent,l))}function s(){e.wheel=null,e.end()}}function L(){if(!t&&n.apply(this,arguments)){var e=M(this,arguments,!0),r=(0,y.Z)(g.B.view).on("mousemove.zoom",c,!0).on("mouseup.zoom",f,!0),a=(0,v.Z)(this),o=g.B.clientX,s=g.B.clientY;(0,u.Z)(g.B.view),tX(),e.mouse=[a,this.__zoom.invert(a)],F(this),e.start()}function c(){if(tJ(),!e.moved){var t=g.B.clientX-o,n=g.B.clientY-s;e.moved=t*t+n*n>_}e.zoom("mouse",i(k(e.that.__zoom,e.mouse[0]=(0,v.Z)(e.that),e.mouse[1]),e.extent,l))}function f(){r.on("mousemove.zoom mouseup.zoom",null),(0,u.D)(g.B.view,e.moved),tJ(),e.end()}}function C(){if(n.apply(this,arguments)){var e=this.__zoom,t=(0,v.Z)(this),a=e.invert(t),o=e.k*(g.B.shiftKey?.5:2),s=i(k(S(e,o),t,a),r.apply(this,arguments),l);tJ(),f>0?(0,y.Z)(this).transition().duration(f).call(T,s,t):(0,y.Z)(this).call(E.transform,s)}}function I(){if(n.apply(this,arguments)){var t,r,i,a,o=g.B.touches,s=o.length,u=M(this,arguments,g.B.changedTouches.length===s);for(tX(),r=0;r=0?i=setTimeout(r,t-c):(i=null,n||(u=e.apply(o,a),o=a=null))}null==t&&(t=100);var i,a,o,s,u,c=function(){o=this,a=arguments,s=Date.now();var c=n&&!i;return i||(i=setTimeout(r,t)),c&&(u=e.apply(o,a),o=a=null),u};return c.clear=function(){i&&(clearTimeout(i),i=null)},c.flush=function(){i&&(u=e.apply(o,a),o=a=null,clearTimeout(i),i=null)},c}t.debounce=t,e.exports=t},94863:function(e){var t,n;t=this,n=function(){"use strict";var e=function(e){return t(e)&&!n(e)};function t(e){return!!e&&"object"==typeof e}function n(e){var t=Object.prototype.toString.call(e);return"[object RegExp]"===t||"[object Date]"===t||i(e)}var r="function"==typeof Symbol&&Symbol.for?Symbol.for("react.element"):60103;function i(e){return e.$$typeof===r}function a(e){return Array.isArray(e)?[]:{}}function o(e,t){return!1!==t.clone&&t.isMergeableObject(e)?d(a(e),e,t):e}function s(e,t,n){return e.concat(t).map(function(e){return o(e,n)})}function u(e,t){if(!t.customMerge)return d;var n=t.customMerge(e);return"function"==typeof n?n:d}function c(e){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter(function(t){return e.propertyIsEnumerable(t)}):[]}function l(e){return Object.keys(e).concat(c(e))}function f(e,t,n){var r={};return n.isMergeableObject(e)&&l(e).forEach(function(t){r[t]=o(e[t],n)}),l(t).forEach(function(i){n.isMergeableObject(t[i])&&e[i]?r[i]=u(i,n)(e[i],t[i],n):r[i]=o(t[i],n)}),r}function d(t,n,r){(r=r||{}).arrayMerge=r.arrayMerge||s,r.isMergeableObject=r.isMergeableObject||e;var i=Array.isArray(n);return i!==Array.isArray(t)?o(n,r):i?r.arrayMerge(t,n,r):f(t,n,r)}return d.all=function(e,t){if(!Array.isArray(e))throw Error("first argument should be an array");return e.reduce(function(e,n){return d(e,n,t)},{})},d},e.exports=n()},7624(e,t){"use strict";function n(e){return e===e.window?e:9===e.nodeType&&(e.defaultView||e.parentWindow)}t.__esModule=!0,t.default=n,e.exports=t.default},87797(e,t,n){"use strict";var r=n(95318);t.__esModule=!0,t.default=s;var i=r(n(53497)),a=/^(top|right|bottom|left)$/,o=/^([+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|))(?!px)[a-z%]+$/i;function s(e){if(!e)throw TypeError("No Element passed to `getComputedStyle()`");var t=e.ownerDocument;return"defaultView"in t?t.defaultView.opener?e.ownerDocument.defaultView.getComputedStyle(e,null):window.getComputedStyle(e,null):{getPropertyValue:function(t){var n=e.style;"float"==(t=(0,i.default)(t))&&(t="styleFloat");var r=e.currentStyle[t]||null;if(null==r&&n&&n[t]&&(r=n[t]),o.test(r)&&!a.test(t)){var s=n.left,u=e.runtimeStyle,c=u&&u.left;c&&(u.left=e.currentStyle.left),n.left="fontSize"===t?"1em":r,r=n.pixelLeft+"px",n.left=s,c&&(u.left=c)}return r}}}e.exports=t.default},10162(e,t,n){"use strict";var r=n(95318);t.__esModule=!0,t.default=l;var i=r(n(53497)),a=r(n(24403)),o=r(n(87797)),s=r(n(91760)),u=n(20702),c=r(n(43293));function l(e,t,n){var r="",l="",f=t;if("string"==typeof t){if(void 0===n)return e.style[(0,i.default)(t)]||(0,o.default)(e).getPropertyValue((0,a.default)(t));(f={})[t]=n}Object.keys(f).forEach(function(t){var n=f[t];n||0===n?(0,c.default)(t)?l+=t+"("+n+") ":r+=(0,a.default)(t)+": "+n+";":(0,s.default)(e,(0,a.default)(t))}),l&&(r+=u.transform+": "+l+";"),e.style.cssText+=";"+r}e.exports=t.default},91760(e,t){"use strict";function n(e,t){return"removeProperty"in e.style?e.style.removeProperty(t):e.style.removeAttribute(t)}t.__esModule=!0,t.default=n,e.exports=t.default},43293(e,t){"use strict";t.__esModule=!0,t.default=r;var n=/^((translate|rotate|scale)(X|Y|Z|3d)?|matrix(3d)?|perspective|skew(X|Y)?)$/i;function r(e){return!!(e&&n.test(e))}e.exports=t.default},20702(e,t,n){"use strict";var r,i,a,o,s,u,c,l,f,d,h,p=n(95318);t.__esModule=!0,t.default=t.animationEnd=t.animationDelay=t.animationTiming=t.animationDuration=t.animationName=t.transitionEnd=t.transitionDuration=t.transitionDelay=t.transitionTiming=t.transitionProperty=t.transform=void 0;var b=p(n(50139)),m="transform";if(t.transform=m,t.animationEnd=a,t.transitionEnd=i,t.transitionDelay=c,t.transitionTiming=u,t.transitionDuration=s,t.transitionProperty=o,t.animationDelay=h,t.animationTiming=d,t.animationDuration=f,t.animationName=l,b.default){var g=y();r=g.prefix,t.transitionEnd=i=g.transitionEnd,t.animationEnd=a=g.animationEnd,t.transform=m=r+"-"+m,t.transitionProperty=o=r+"-transition-property",t.transitionDuration=s=r+"-transition-duration",t.transitionDelay=c=r+"-transition-delay",t.transitionTiming=u=r+"-transition-timing-function",t.animationName=l=r+"-animation-name",t.animationDuration=f=r+"-animation-duration",t.animationTiming=d=r+"-animation-delay",t.animationDelay=h=r+"-animation-timing-function"}var v={transform:m,end:i,property:o,timing:u,delay:c,duration:s};function y(){for(var e,t,n=document.createElement("div").style,r={O:function(e){return"o"+e.toLowerCase()},Moz:function(e){return e.toLowerCase()},Webkit:function(e){return"webkit"+e},ms:function(e){return"MS"+e}},i=Object.keys(r),a="",o=0;o0&&void 0!==arguments[0]?arguments[0]:{},r=n.defaultLayoutOptions,a=void 0===r?{}:r,s=n.algorithms,u=void 0===s?["layered","stress","mrtree","radial","force","disco","sporeOverlap","sporeCompaction","rectpacking"]:s,c=n.workerFactory,l=n.workerUrl;if(i(this,e),this.defaultLayoutOptions=a,this.initialized=!1,void 0===l&&void 0===c)throw Error("Cannot construct an ELK without both 'workerUrl' and 'workerFactory'.");var f=c;void 0!==l&&void 0===c&&(f=function(e){return new Worker(e)});var d=f(l);if("function"!=typeof d.postMessage)throw TypeError("Created worker does not provide the required 'postMessage' function.");this.worker=new o(d),this.worker.postMessage({cmd:"register",algorithms:u}).then(function(e){return t.initialized=!0}).catch(console.err)}return r(e,[{key:"layout",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.layoutOptions,r=void 0===n?this.defaultLayoutOptions:n,i=t.logging,a=void 0!==i&&i,o=t.measureExecutionTime,s=void 0!==o&&o;return e?this.worker.postMessage({cmd:"layout",graph:e,layoutOptions:r,options:{logging:a,measureExecutionTime:s}}):Promise.reject(Error("Missing mandatory parameter 'graph'."))}},{key:"knownLayoutAlgorithms",value:function(){return this.worker.postMessage({cmd:"algorithms"})}},{key:"knownLayoutOptions",value:function(){return this.worker.postMessage({cmd:"options"})}},{key:"knownLayoutCategories",value:function(){return this.worker.postMessage({cmd:"categories"})}},{key:"terminateWorker",value:function(){this.worker.terminate()}}]),e}();n.default=a;var o=function(){function e(t){var n=this;if(i(this,e),void 0===t)throw Error("Missing mandatory parameter 'worker'.");this.resolvers={},this.worker=t,this.worker.onmessage=function(e){setTimeout(function(){n.receive(n,e)},0)}}return r(e,[{key:"postMessage",value:function(e){var t=this.id||0;this.id=t+1,e.id=t;var n=this;return new Promise(function(r,i){n.resolvers[t]=function(e,t){e?(n.convertGwtStyleError(e),i(e)):r(t)},n.worker.postMessage(e)})}},{key:"receive",value:function(e,t){var n=t.data,r=e.resolvers[n.id];r&&(delete e.resolvers[n.id],n.error?r(n.error):r(null,n.data))}},{key:"terminate",value:function(){this.worker.terminate&&this.worker.terminate()}},{key:"convertGwtStyleError",value:function(e){if(e){var t=e.__java$exception;t&&(t.cause&&t.cause.backingJsObject&&(e.cause=t.cause.backingJsObject,this.convertGwtStyleError(e.cause)),delete e.__java$exception)}}}]),e}()},{}],2:[function(e,t,n){"use strict";var r=e("./elk-api.js").default;Object.defineProperty(t.exports,"__esModule",{value:!0}),t.exports=r,r.default=r},{"./elk-api.js":1}]},{},[2])(2)},e.exports=t()},55273(e,t,n){"use strict";function r(){}function i(){}function a(){}function o(){}function s(){}function u(){}function c(){}function l(){}function f(){}function d(){}function h(){}function p(){}function b(){}function m(){}function g(){}function v(){}function y(){}function w(){}function _(){}function E(){}function S(){}function k(){}function x(){}function T(){}function M(){}function O(){}function A(){}function L(){}function C(){}function I(){}function D(){}function N(){}function P(){}function R(){}function j(){}function F(){}function Y(){}function B(){}function U(){}function H(){}function $(){}function z(){}function G(){}function W(){}function K(){}function V(){}function q(){}function Z(){}function X(){}function J(){}function Q(){}function ee(){}function et(){}function en(){}function er(){}function ei(){}function ea(){}function eo(){}function es(){}function eu(){}function ec(){}function el(){}function ef(){}function ed(){}function eh(){}function ep(){}function eb(){}function em(){}function eg(){}function ev(){}function ey(){}function ew(){}function e_(){}function eE(){}function eS(){}function ek(){}function ex(){}function eT(){}function eM(){}function eO(){}function eA(){}function eL(){}function eC(){}function eI(){}function eD(){}function eN(){}function eP(){}function eR(){}function ej(){}function eF(){}function eY(){}function eB(){}function eU(){}function eH(){}function e$(){}function ez(){}function eG(){}function eW(){}function eK(){}function eV(){}function eq(){}function eZ(){}function eX(){}function eJ(){}function eQ(){}function e1(){}function e0(){}function e2(){}function e3(){}function e4(){}function e5(){}function e6(){}function e9(){}function e8(){}function e7(){}function te(){}function tt(){}function tn(){}function tr(){}function ti(){}function ta(){}function to(){}function ts(){}function tu(){}function tc(){}function tl(){}function tf(){}function td(){}function th(){}function tp(){}function tb(){}function tm(){}function tg(){}function tv(){}function ty(){}function tw(){}function t_(){}function tE(){}function tS(){}function tk(){}function tx(){}function tT(){}function tM(){}function tO(){}function tA(){}function tL(){}function tC(){}function tI(){}function tD(){}function tN(){}function tP(){}function tR(){}function tj(){}function tF(){}function tY(){}function tB(){}function tU(){}function tH(){}function t$(){}function tz(){}function tG(){}function tW(){}function tK(){}function tV(){}function tq(){}function tZ(){}function tX(){}function tJ(){}function tQ(){}function t1(){}function t0(){}function t2(){}function t3(){}function t4(){}function t5(){}function t6(){}function t9(){}function t8(){}function t7(){}function ne(){}function nt(){}function nn(){}function nr(){}function ni(){}function na(){}function no(){}function ns(){}function nu(){}function nc(){}function nl(){}function nf(){}function nd(){}function nh(){}function np(){}function nb(){}function nm(){}function ng(){}function nv(){}function ny(){}function nw(){}function n_(){}function nE(){}function nS(){}function nk(){}function nx(){}function nT(){}function nM(){}function nO(){}function nA(){}function nL(){}function nC(){}function nI(){}function nD(){}function nN(){}function nP(){}function nR(){}function nj(){}function nF(){}function nY(){}function nB(){}function nU(){}function nH(){}function n$(){}function nz(){}function nG(){}function nW(){}function nK(){}function nV(){}function nq(){}function nZ(){}function nX(){}function nJ(){}function nQ(){}function n1(){}function n0(){}function n2(){}function n3(){}function n4(){}function n5(){}function n6(){}function n9(){}function n8(){}function n7(){}function re(){}function rt(){}function rn(){}function rr(){}function ri(){}function ra(){}function ro(){}function rs(){}function ru(){}function rc(){}function rl(){}function rf(){}function rd(){}function rh(){}function rp(){}function rb(){}function rm(){}function rg(){}function rv(){}function ry(){}function rw(){}function r_(){}function rE(){}function rS(){}function rk(){}function rx(){}function rT(){}function rM(){}function rO(){}function rA(){}function rL(){}function rC(){}function rI(){}function rD(){}function rN(){}function rP(){}function rR(){}function rj(){}function rF(){}function rY(){}function rB(){}function rU(){}function rH(){}function r$(){}function rz(){}function rG(){}function rW(){}function rK(){}function rV(){}function rq(){}function rZ(){}function rX(){}function rJ(){}function rQ(){}function r1(){}function r0(){}function r2(){}function r3(){}function r4(){}function r5(){}function r6(){}function r9(){}function r8(){}function r7(){}function ie(){}function it(){}function ir(){}function ii(){}function ia(){}function io(){}function is(){}function iu(){}function ic(){}function il(){}function id(){}function ih(){}function ip(){}function ib(){}function im(){}function ig(){}function iv(){}function iy(){}function iw(){}function i_(){}function iE(){}function iS(){}function ik(){}function ix(){}function iT(){}function iM(){}function iO(){}function iA(){}function iL(){}function iC(){}function iI(){}function iD(){}function iN(){}function iP(){}function iR(){}function ij(){}function iF(){}function iY(){}function iB(){}function iU(){}function iH(){}function i$(){}function iz(){}function iG(){}function iW(){}function iK(){}function iV(){}function iq(){}function iZ(){}function iX(){}function iJ(){}function iQ(){}function i1(){}function i0(){}function i2(){}function i3(){}function i4(){}function i5(){}function i6(){}function i9(){}function i8(){}function i7(){}function ae(){}function at(){}function an(){}function ar(){}function ai(){}function aa(){}function ao(){}function as(){}function au(){}function ac(){}function al(){}function af(){}function ad(){}function ah(){}function ap(){}function ab(){}function am(){}function ag(){}function av(){}function ay(){}function aw(){}function a_(){}function aE(){}function aS(){}function ak(){}function ax(){}function aT(){}function aM(){}function aO(){}function aA(){}function aL(){}function aC(){}function aI(){}function aD(){}function aN(){}function aP(){}function aR(){}function aj(){}function aF(){}function aY(){}function aB(){}function aU(){}function aH(){}function a$(){}function az(){}function aG(){}function aW(){}function aK(){}function aV(){}function aq(){}function aZ(){}function aX(){}function aJ(){}function aQ(){}function a1(){}function a0(){}function a2(){}function a3(){}function a4(){}function a5(){}function a6(){}function a9(){}function a8(){}function a7(){}function oe(){}function ot(){}function on(){}function or(){}function oi(){}function oa(){}function oo(){}function os(){}function ou(){}function oc(){}function ol(){}function of(){}function od(){}function oh(){}function op(){}function ob(){}function om(){}function og(){}function ov(){}function oy(){}function ow(){}function o_(){}function oE(){}function oS(){}function ok(){}function ox(){}function oT(){}function oM(){}function oO(){}function oA(){}function oL(){}function oC(){}function oI(){}function oD(){}function oN(){}function oP(){}function oR(){}function oj(){}function oF(){}function oY(){}function oB(){}function oU(){}function oH(){}function o$(){}function oz(){}function oG(){}function oW(){}function oK(){}function oV(){}function oq(){}function oZ(){}function oX(){}function oJ(){}function oQ(){}function o1(){}function o0(){}function o2(){}function o3(){}function o4(){}function o5(){}function o6(){}function o9(){}function o8(){}function o7(){}function se(){}function st(){}function sn(){}function sr(){}function si(){}function sa(){}function so(){}function ss(){}function su(){}function sc(){}function sl(){}function sf(){}function sd(){}function sh(){}function sp(){}function sb(){}function sm(){}function sg(){}function sv(){}function sy(){}function sw(){}function s_(){}function sE(){}function sS(){}function sk(){}function sx(){}function sT(){}function sM(){}function sO(){}function sA(){}function sL(){}function sC(){}function sI(){}function sD(){}function sN(){}function sP(){}function sR(){}function sj(){}function sF(){}function sY(){}function sB(){}function sU(){}function sH(){}function s$(){}function sz(){}function sG(){}function sW(){}function sK(){}function sV(){}function sq(){}function sZ(){}function sX(){}function sJ(){}function sQ(){}function s1(){}function s0(){}function s2(){}function s3(){}function s4(){}function s5(){}function s6(){}function s9(){}function s8(){}function s7(){}function ue(){}function ut(){}function un(){}function ur(){}function ui(){}function ua(){}function uo(){}function us(){}function uu(){}function uc(){}function ul(){}function uf(){}function ud(){}function uh(){}function up(){}function ub(){}function um(){}function ug(){}function uv(){}function uy(){}function uw(){}function u_(){}function uE(){}function uS(){}function uk(){}function ux(){}function uT(){}function uM(){}function uO(){}function uA(){}function uL(){}function uC(){}function uI(){}function uD(){}function uN(){}function uP(){}function uR(){}function uj(){}function uF(){}function uY(){}function uB(){}function uU(){}function uH(){}function u$(){}function uz(){}function uG(){}function uW(){}function uK(){}function uV(){}function uq(){}function uZ(){}function uX(){}function uJ(){}function uQ(){}function u1(){}function u0(){}function u2(){}function u3(){}function u4(){}function u5(){}function u6(){}function u9(){}function u8(){}function u7(){}function ce(){}function ct(){}function cn(e){}function cr(e){}function ci(){m4()}function ca(){eug()}function co(){epz()}function cs(){evw()}function cu(){eEg()}function cc(){eCk()}function cl(){egA()}function cf(){egq()}function cd(){_O()}function ch(){_k()}function cp(){DR()}function cb(){_A()}function cm(){erJ()}function cg(){_C()}function cv(){Xi()}function cy(){en6()}function cw(){Jb()}function c_(){Gw()}function cE(){euv()}function cS(){e_z()}function ck(){en9()}function cx(){K9()}function cT(){eBH()}function cM(){egP()}function cO(){G_()}function cA(){eBy()}function cL(){Gv()}function cC(){en8()}function cI(){eoz()}function cD(){Gx()}function cN(){JK()}function cP(){_I()}function cR(){eTK()}function cj(){egj()}function cF(){eiQ()}function cY(){e_L()}function cB(){eCT()}function cU(){ebJ()}function cH(){eTj()}function c$(){eaB()}function cz(){GS()}function cG(){eDn()}function cW(){eTU()}function cK(){eMK()}function cV(){J1()}function cq(){e_C()}function cZ(){eBB()}function cX(){euw()}function cJ(){ed5()}function cQ(){ePm()}function c1(){De()}function c0(){eiM()}function c2(){eD4()}function c3(e){BJ(e)}function c4(e){this.a=e}function c5(e){this.a=e}function c6(e){this.a=e}function c9(e){this.a=e}function c8(e){this.a=e}function c7(e){this.a=e}function le(e){this.a=e}function lt(e){this.a=e}function ln(e){this.a=e}function lr(e){this.a=e}function li(e){this.a=e}function la(e){this.a=e}function lo(e){this.a=e}function ls(e){this.a=e}function lu(e){this.a=e}function lc(e){this.a=e}function ll(e){this.a=e}function lf(e){this.a=e}function ld(e){this.a=e}function lh(e){this.a=e}function lp(e){this.a=e}function lb(e){this.b=e}function lm(e){this.c=e}function lg(e){this.a=e}function lv(e){this.a=e}function ly(e){this.a=e}function lw(e){this.a=e}function l_(e){this.a=e}function lE(e){this.a=e}function lS(e){this.a=e}function lk(e){this.a=e}function lx(e){this.a=e}function lT(e){this.a=e}function lM(e){this.a=e}function lO(e){this.a=e}function lA(e){this.a=e}function lL(e){this.a=e}function lC(e){this.a=e}function lI(e){this.a=e}function lD(e){this.a=e}function lN(){this.a=[]}function lP(e,t){e.a=t}function lR(e,t){e.a=t}function lj(e,t){e.b=t}function lF(e,t){e.b=t}function lY(e,t){e.b=t}function lB(e,t){e.j=t}function lU(e,t){e.g=t}function lH(e,t){e.i=t}function l$(e,t){e.c=t}function lz(e,t){e.d=t}function lG(e,t){e.d=t}function lW(e,t){e.c=t}function lK(e,t){e.k=t}function lV(e,t){e.c=t}function lq(e,t){e.c=t}function lZ(e,t){e.a=t}function lX(e,t){e.a=t}function lJ(e,t){e.f=t}function lQ(e,t){e.a=t}function l1(e,t){e.b=t}function l0(e,t){e.d=t}function l2(e,t){e.i=t}function l3(e,t){e.o=t}function l4(e,t){e.r=t}function l5(e,t){e.a=t}function l6(e,t){e.b=t}function l9(e,t){e.e=t}function l8(e,t){e.f=t}function l7(e,t){e.g=t}function fe(e,t){e.e=t}function ft(e,t){e.f=t}function fn(e,t){e.f=t}function fr(e,t){e.n=t}function fi(e,t){e.a=t}function fa(e,t){e.a=t}function fo(e,t){e.c=t}function fs(e,t){e.c=t}function fu(e,t){e.d=t}function fc(e,t){e.e=t}function fl(e,t){e.g=t}function ff(e,t){e.a=t}function fd(e,t){e.c=t}function fh(e,t){e.d=t}function fp(e,t){e.e=t}function fb(e,t){e.f=t}function fm(e,t){e.j=t}function fg(e,t){e.a=t}function fv(e,t){e.b=t}function fy(e,t){e.a=t}function fw(e){e.b=e.a}function f_(e){e.c=e.d.d}function fE(e){this.d=e}function fS(e){this.a=e}function fk(e){this.a=e}function fx(e){this.a=e}function fT(e){this.a=e}function fM(e){this.a=e}function fO(e){this.a=e}function fA(e){this.a=e}function fL(e){this.a=e}function fC(e){this.a=e}function fI(e){this.a=e}function fD(e){this.a=e}function fN(e){this.a=e}function fP(e){this.a=e}function fR(e){this.a=e}function fj(e){this.b=e}function fF(e){this.b=e}function fY(e){this.b=e}function fB(e){this.a=e}function fU(e){this.a=e}function fH(e){this.a=e}function f$(e){this.c=e}function fz(e){this.c=e}function fG(e){this.c=e}function fW(e){this.a=e}function fK(e){this.a=e}function fV(e){this.a=e}function fq(e){this.a=e}function fZ(e){this.a=e}function fX(e){this.a=e}function fJ(e){this.a=e}function fQ(e){this.a=e}function f1(e){this.a=e}function f0(e){this.a=e}function f2(e){this.a=e}function f3(e){this.a=e}function f4(e){this.a=e}function f5(e){this.a=e}function f6(e){this.a=e}function f9(e){this.a=e}function f8(e){this.a=e}function f7(e){this.a=e}function de(e){this.a=e}function dt(e){this.a=e}function dn(e){this.a=e}function dr(e){this.a=e}function di(e){this.a=e}function da(e){this.a=e}function ds(e){this.a=e}function du(e){this.a=e}function dc(e){this.a=e}function dl(e){this.a=e}function df(e){this.a=e}function dd(e){this.a=e}function dh(e){this.a=e}function dp(e){this.a=e}function db(e){this.a=e}function dm(e){this.a=e}function dg(e){this.a=e}function dv(e){this.a=e}function dy(e){this.a=e}function dw(e){this.a=e}function d_(e){this.a=e}function dE(e){this.a=e}function dS(e){this.a=e}function dk(e){this.a=e}function dx(e){this.a=e}function dT(e){this.a=e}function dM(e){this.a=e}function dO(e){this.e=e}function dA(e){this.a=e}function dL(e){this.a=e}function dC(e){this.a=e}function dI(e){this.a=e}function dD(e){this.a=e}function dN(e){this.a=e}function dP(e){this.a=e}function dR(e){this.a=e}function dj(e){this.a=e}function dF(e){this.a=e}function dY(e){this.a=e}function dB(e){this.a=e}function dU(e){this.a=e}function dH(e){this.a=e}function d$(e){this.a=e}function dz(e){this.a=e}function dG(e){this.a=e}function dW(e){this.a=e}function dK(e){this.a=e}function dV(e){this.a=e}function dq(e){this.a=e}function dZ(e){this.a=e}function dX(e){this.a=e}function dJ(e){this.a=e}function dQ(e){this.a=e}function d1(e){this.a=e}function d0(e){this.a=e}function d2(e){this.a=e}function d3(e){this.a=e}function d4(e){this.a=e}function d5(e){this.a=e}function d6(e){this.a=e}function d9(e){this.a=e}function d8(e){this.a=e}function d7(e){this.a=e}function he(e){this.a=e}function ht(e){this.a=e}function hn(e){this.a=e}function hr(e){this.a=e}function hi(e){this.a=e}function ha(e){this.a=e}function ho(e){this.a=e}function hs(e){this.a=e}function hu(e){this.a=e}function hc(e){this.a=e}function hl(e){this.a=e}function hf(e){this.a=e}function hd(e){this.a=e}function hh(e){this.a=e}function hp(e){this.a=e}function hb(e){this.a=e}function hm(e){this.a=e}function hg(e){this.a=e}function hv(e){this.c=e}function hy(e){this.b=e}function hw(e){this.a=e}function h_(e){this.a=e}function hE(e){this.a=e}function hS(e){this.a=e}function hk(e){this.a=e}function hx(e){this.a=e}function hT(e){this.a=e}function hM(e){this.a=e}function hO(e){this.a=e}function hA(e){this.a=e}function hL(e){this.a=e}function hC(e){this.a=e}function hI(e){this.a=e}function hD(e){this.a=e}function hN(e){this.a=e}function hP(e){this.a=e}function hR(e){this.a=e}function hj(e){this.a=e}function hF(e){this.a=e}function hY(e){this.a=e}function hB(e){this.a=e}function hU(e){this.a=e}function hH(e){this.a=e}function h$(e){this.a=e}function hz(e){this.a=e}function hG(e){this.a=e}function hW(e){this.a=e}function hK(e){this.a=e}function hV(e){this.a=e}function hq(e){this.a=e}function hZ(e){this.a=e}function hX(e){this.a=e}function hJ(e){this.a=e}function hQ(e){this.a=e}function h1(e){this.a=e}function h0(e){this.a=e}function h2(e){this.a=e}function h3(e){this.a=e}function h4(e){this.a=e}function h5(e){this.a=e}function h6(e){this.a=e}function h9(e){this.a=e}function h8(e){this.a=e}function h7(e){this.a=e}function pe(e){this.a=e}function pt(e){this.a=e}function pn(e){this.a=e}function pr(e){this.a=e}function pi(e){this.a=e}function pa(e){this.a=e}function po(e){this.a=e}function ps(e){this.a=e}function pu(e){this.a=e}function pc(e){this.a=e}function pl(e){this.a=e}function pf(e){this.a=e}function pd(e){this.a=e}function ph(e){this.a=e}function pp(e){this.a=e}function pb(e){this.a=e}function pm(e){this.a=e}function pg(e){this.a=e}function pv(e){this.a=e}function py(e){this.a=e}function pw(e){this.a=e}function p_(e){this.a=e}function pE(e){this.a=e}function pS(e){this.a=e}function pk(e){this.a=e}function px(e){this.a=e}function pT(e){this.a=e}function pM(e){this.a=e}function pO(e){this.b=e}function pA(e){this.f=e}function pL(e){this.a=e}function pC(e){this.a=e}function pI(e){this.a=e}function pD(e){this.a=e}function pN(e){this.a=e}function pP(e){this.a=e}function pR(e){this.a=e}function pj(e){this.a=e}function pF(e){this.a=e}function pY(e){this.a=e}function pB(e){this.a=e}function pU(e){this.b=e}function pH(e){this.c=e}function p$(e){this.e=e}function pz(e){this.a=e}function pG(e){this.a=e}function pW(e){this.a=e}function pK(e){this.a=e}function pV(e){this.a=e}function pq(e){this.d=e}function pZ(e){this.a=e}function pX(e){this.a=e}function pJ(e){this.e=e}function pQ(){this.a=0}function p1(){TG(this)}function p0(){Tz(this)}function p2(){Yy(this)}function p3(){UP(this)}function p4(){cn(this)}function p5(){this.c=tgK}function p6(e,t){t.Wb(e)}function p9(e,t){e.b+=t}function p8(e){e.b=new gQ}function p7(e){return e.e}function be(e){return e.a}function bt(e){return e.a}function bn(e){return e.a}function br(e){return e.a}function bi(e){return e.a}function ba(){return null}function bo(){return null}function bs(){yC(),eY2()}function bu(e){e.b.tf(e.e)}function bc(e,t){e.b=t-e.b}function bl(e,t){e.a=t-e.a}function bf(e,t){t.ad(e.a)}function bd(e,t){ekv(t,e)}function bh(e,t,n){e.Od(n,t)}function bp(e,t){e.e=t,t.b=e}function bb(e){Dn(),this.a=e}function bm(e){Dn(),this.a=e}function bg(e){Dn(),this.a=e}function bv(e){Bx(),this.a=e}function by(e){$O(),e0E.be(e)}function bw(){O5.call(this)}function b_(){O5.call(this)}function bE(){bw.call(this)}function bS(){bw.call(this)}function bk(){bw.call(this)}function bx(){bw.call(this)}function bT(){bw.call(this)}function bM(){bw.call(this)}function bO(){bw.call(this)}function bA(){bw.call(this)}function bL(){bw.call(this)}function bC(){bw.call(this)}function bI(){bw.call(this)}function bD(){this.a=this}function bN(){this.Bb|=256}function bP(){this.b=new xW}function bR(){bR=A,new p2}function bj(){bE.call(this)}function bF(e,t){e.length=t}function bY(e,t){P_(e.a,t)}function bB(e,t){eEU(e.c,t)}function bU(e,t){Yf(e.b,t)}function bH(e,t){ebB(e.a,t)}function b$(e,t){elj(e.a,t)}function bz(e,t){eam(e.e,t)}function bG(e){exZ(e.c,e.b)}function bW(e,t){e.kc().Nb(t)}function bK(e){this.a=efh(e)}function bV(){this.a=new p2}function bq(){this.a=new p2}function bZ(){this.a=new p0}function bX(){this.a=new p0}function bJ(){this.a=new p0}function bQ(){this.a=new ey}function b1(){this.a=new Z6}function b0(){this.a=new tt}function b2(){this.a=new w7}function b3(){this.a=new W9}function b4(){this.a=new zZ}function b5(){this.a=new Cz}function b6(){this.a=new p0}function b9(){this.a=new p0}function b8(){this.a=new p0}function b7(){this.a=new p0}function me(){this.d=new p0}function mt(){this.a=new bV}function mn(){this.a=new p2}function mr(){this.b=new p2}function mi(){this.b=new p0}function ma(){this.e=new p0}function mo(){this.d=new p0}function ms(){this.a=new cS}function mu(){p0.call(this)}function mc(){bZ.call(this)}function ml(){CK.call(this)}function mf(){b9.call(this)}function md(){mh.call(this)}function mh(){p4.call(this)}function mp(){p4.call(this)}function mb(){mp.call(this)}function mm(){$m.call(this)}function mg(){$m.call(this)}function mv(){mq.call(this)}function my(){mq.call(this)}function mw(){mq.call(this)}function m_(){mZ.call(this)}function mE(){_n.call(this)}function mS(){oZ.call(this)}function mk(){oZ.call(this)}function mx(){m0.call(this)}function mT(){m0.call(this)}function mM(){p2.call(this)}function mO(){p2.call(this)}function mA(){p2.call(this)}function mL(){bV.call(this)}function mC(){en0.call(this)}function mI(){bN.call(this)}function mD(){Oy.call(this)}function mN(){Oy.call(this)}function mP(){p2.call(this)}function mR(){p2.call(this)}function mj(){p2.call(this)}function mF(){sr.call(this)}function mY(){sr.call(this)}function mB(){mF.call(this)}function mU(){u7.call(this)}function mH(e){eti.call(this,e)}function m$(e){eti.call(this,e)}function mz(e){ln.call(this,e)}function mG(e){wB.call(this,e)}function mW(e){mG.call(this,e)}function mK(e){wB.call(this,e)}function mV(){this.a=new _n}function mq(){this.a=new bV}function mZ(){this.a=new p2}function mX(){this.a=new p0}function mJ(){this.j=new p0}function mQ(){this.a=new aX}function m1(){this.a=new y4}function m0(){this.a=new sn}function m2(){m2=A,e0d=new vm}function m3(){m3=A,e0f=new vb}function m4(){m4=A,e0l=new i}function m5(){m5=A,e0m=new OV}function m6(e){mG.call(this,e)}function m9(e){mG.call(this,e)}function m8(e){ql.call(this,e)}function m7(e){ql.call(this,e)}function ge(e){IJ.call(this,e)}function gt(e){eEb.call(this,e)}function gn(e){w$.call(this,e)}function gr(e){wG.call(this,e)}function gi(e){wG.call(this,e)}function ga(e){wG.call(this,e)}function go(e){Fu.call(this,e)}function gs(e){go.call(this,e)}function gu(){lD.call(this,{})}function gc(e){Og(),this.a=e}function gl(e){e.b=null,e.c=0}function gf(e,t){e.e=t,eA9(e,t)}function gd(e,t){e.a=t,eSG(e)}function gh(e,t,n){e.a[t.g]=n}function gp(e,t,n){evq(n,e,t)}function gb(e,t){In(t.i,e.n)}function gm(e,t){esW(e).td(t)}function gg(e,t){return e*e/t}function gv(e,t){return e.g-t.g}function gy(e){return new lI(e)}function gw(e){return new B_(e)}function g_(e){go.call(this,e)}function gE(e){go.call(this,e)}function gS(e){go.call(this,e)}function gk(e){Fu.call(this,e)}function gx(e){eiJ(),this.a=e}function gT(e){I7(),this.a=e}function gM(e){jK(),this.f=e}function gO(e){jK(),this.f=e}function gA(e){go.call(this,e)}function gL(e){go.call(this,e)}function gC(e){go.call(this,e)}function gI(e){go.call(this,e)}function gD(e){go.call(this,e)}function gN(e){return BJ(e),e}function gP(e){return BJ(e),e}function gR(e){return BJ(e),e}function gj(e){return BJ(e),e}function gF(e){return BJ(e),e}function gY(e){return e.b==e.c}function gB(e){return!!e&&e.b}function gU(e){return!!e&&e.k}function gH(e){return!!e&&e.j}function g$(e){BJ(e),this.a=e}function gz(e){return esR(e),e}function gG(e){Ya(e,e.length)}function gW(e){go.call(this,e)}function gK(e){go.call(this,e)}function gV(e){go.call(this,e)}function gq(e){go.call(this,e)}function gZ(e){go.call(this,e)}function gX(e){go.call(this,e)}function gJ(e){AI.call(this,e,0)}function gQ(){G$.call(this,12,3)}function g1(){g1=A,e0_=new _}function g0(){g0=A,e0y=new r}function g2(){g2=A,e0k=new b}function g3(){g3=A,e0M=new g}function g4(){throw p7(new bO)}function g5(){throw p7(new bO)}function g6(){throw p7(new bO)}function g9(){throw p7(new bO)}function g8(){throw p7(new bO)}function g7(){throw p7(new bO)}function ve(){this.a=Lq(Y9(eUd))}function vt(e){Dn(),this.a=Y9(e)}function vn(e,t){e.Td(t),t.Sd(e)}function vr(e,t){e.a.ec().Mc(t)}function vi(e,t,n){e.c.lf(t,n)}function va(e){gE.call(this,e)}function vo(e){gL.call(this,e)}function vs(){fM.call(this,"")}function vu(){fM.call(this,"")}function vc(){fM.call(this,"")}function vl(){fM.call(this,"")}function vf(e){gE.call(this,e)}function vd(e){fF.call(this,e)}function vh(e){O2.call(this,e)}function vp(e){vd.call(this,e)}function vb(){ls.call(this,null)}function vm(){ls.call(this,null)}function vg(){vg=A,$O()}function vv(){vv=A,e2d=eyz()}function vy(e){return e.a?e.b:0}function vw(e){return e.a?e.b:0}function v_(e,t){return e.a-t.a}function vE(e,t){return e.a-t.a}function vS(e,t){return e.a-t.a}function vk(e,t){return QO(e,t)}function vx(e,t){return z9(e,t)}function vT(e,t){return t in e.a}function vM(e,t){return e.f=t,e}function vO(e,t){return e.b=t,e}function vA(e,t){return e.c=t,e}function vL(e,t){return e.g=t,e}function vC(e,t){return e.a=t,e}function vI(e,t){return e.f=t,e}function vD(e,t){return e.k=t,e}function vN(e,t){return e.a=t,e}function vP(e,t){return e.e=t,e}function vR(e,t){return e.e=t,e}function vj(e,t){return e.f=t,e}function vF(e,t){e.b=!0,e.d=t}function vY(e,t){e.b=new TS(t)}function vB(e,t,n){t.td(e.a[n])}function vU(e,t,n){t.we(e.a[n])}function vH(e,t){return e.b-t.b}function v$(e,t){return e.g-t.g}function vz(e,t){return e.s-t.s}function vG(e,t){return e?0:t-1}function vW(e,t){return e?0:t-1}function vK(e,t){return e?t-1:0}function vV(e,t){return t.Yf(e)}function vq(e,t){return e.b=t,e}function vZ(e,t){return e.a=t,e}function vX(e,t){return e.c=t,e}function vJ(e,t){return e.d=t,e}function vQ(e,t){return e.e=t,e}function v1(e,t){return e.f=t,e}function v0(e,t){return e.a=t,e}function v2(e,t){return e.b=t,e}function v3(e,t){return e.c=t,e}function v4(e,t){return e.c=t,e}function v5(e,t){return e.b=t,e}function v6(e,t){return e.d=t,e}function v9(e,t){return e.e=t,e}function v8(e,t){return e.f=t,e}function v7(e,t){return e.g=t,e}function ye(e,t){return e.a=t,e}function yt(e,t){return e.i=t,e}function yn(e,t){return e.j=t,e}function yr(e,t){return e.k=t,e}function yi(e,t){return e.j=t,e}function ya(e,t){e_z(),Gc(t,e)}function yo(e,t,n){jX(e.a,t,n)}function ys(e){U8.call(this,e)}function yu(e){U8.call(this,e)}function yc(e){I3.call(this,e)}function yl(e){efB.call(this,e)}function yf(e){eta.call(this,e)}function yd(e){HO.call(this,e)}function yh(e){HO.call(this,e)}function yp(){MA.call(this,"")}function yb(){this.a=0,this.b=0}function ym(){this.b=0,this.a=0}function yg(e,t){e.b=0,enh(e,t)}function yv(e,t){e.c=t,e.b=!0}function yy(e,t){return e.c._b(t)}function yw(e){return e.e&&e.e()}function y_(e){return e?e.d:null}function yE(e,t){return ecD(e.b,t)}function yS(e){return e?e.g:null}function yk(e){return e?e.i:null}function yx(e){return LW(e),e.o}function yT(){yT=A,tmc=evO()}function yM(){yM=A,tml=ewS()}function yO(){yO=A,tgg=evL()}function yA(){yA=A,tvE=evA()}function yL(){yL=A,tvS=eSH()}function yC(){yC=A,tmF=enF()}function yI(){throw p7(new bO)}function yD(){throw p7(new bO)}function yN(){throw p7(new bO)}function yP(){throw p7(new bO)}function yR(){throw p7(new bO)}function yj(){throw p7(new bO)}function yF(e){this.a=new w8(e)}function yY(e){eF7(),eBh(this,e)}function yB(e){this.a=new FG(e)}function yU(e,t){for(;e.ye(t););}function yH(e,t){for(;e.sd(t););}function y$(e,t){return e.a+=t,e}function yz(e,t){return e.a+=t,e}function yG(e,t){return e.a+=t,e}function yW(e,t){return e.a+=t,e}function yK(e){return B1(e),e.a}function yV(e){return e.b!=e.d.c}function yq(e){return e.l|e.m<<22}function yZ(e,t){return e.d[t.p]}function yX(e,t){return eA5(e,t)}function yJ(e,t,n){e.splice(t,n)}function yQ(e){e.c?eL3(e):eL4(e)}function y1(e){this.a=0,this.b=e}function y0(){this.a=new eAs(e5I)}function y2(){this.b=new eAs(e5T)}function y3(){this.b=new eAs(e5H)}function y4(){this.b=new eAs(e5H)}function y5(){throw p7(new bO)}function y6(){throw p7(new bO)}function y9(){throw p7(new bO)}function y8(){throw p7(new bO)}function y7(){throw p7(new bO)}function we(){throw p7(new bO)}function wt(){throw p7(new bO)}function wn(){throw p7(new bO)}function wr(){throw p7(new bO)}function wi(){throw p7(new bO)}function wa(){throw p7(new bC)}function wo(){throw p7(new bC)}function ws(e){this.a=new wu(e)}function wu(e){erh(this,e,ey0())}function wc(e){return!e||BV(e)}function wl(e){return -1!=tvJ[e]}function wf(){0!=e1Z&&(e1Z=0),e1J=-1}function wd(){null==eUn&&(eUn=[])}function wh(e,t){eTl(H9(e.a),t)}function wp(e,t){eTl(H9(e.a),t)}function wb(e,t){OC.call(this,e,t)}function wm(e,t){wb.call(this,e,t)}function wg(e,t){this.b=e,this.c=t}function wv(e,t){this.b=e,this.a=t}function wy(e,t){this.a=e,this.b=t}function ww(e,t){this.a=e,this.b=t}function w_(e,t){this.a=e,this.b=t}function wE(e,t){this.a=e,this.b=t}function wS(e,t){this.a=e,this.b=t}function wk(e,t){this.a=e,this.b=t}function wx(e,t){this.a=e,this.b=t}function wT(e,t){this.a=e,this.b=t}function wM(e,t){this.b=e,this.a=t}function wO(e,t){this.b=e,this.a=t}function wA(e,t){this.b=e,this.a=t}function wL(e,t){this.b=e,this.a=t}function wC(e,t){this.f=e,this.g=t}function wI(e,t){this.e=e,this.d=t}function wD(e,t){this.g=e,this.i=t}function wN(e,t){this.a=e,this.b=t}function wP(e,t){this.a=e,this.f=t}function wR(e,t){this.b=e,this.c=t}function wj(e,t){this.a=e,this.b=t}function wF(e,t){this.a=e,this.b=t}function wY(e,t){this.a=e,this.b=t}function wB(e){Oq(e.dc()),this.c=e}function wU(e){this.b=Pp(Y9(e),83)}function wH(e){this.a=Pp(Y9(e),83)}function w$(e){this.a=Pp(Y9(e),15)}function wz(e){this.a=Pp(Y9(e),15)}function wG(e){this.b=Pp(Y9(e),47)}function wW(){this.q=new eB4.Date}function wK(){wK=A,e0V=new L}function wV(){wV=A,e2o=new T}function wq(e){return e.f.c+e.g.c}function wZ(e,t){return e.b.Hc(t)}function wX(e,t){return e.b.Ic(t)}function wJ(e,t){return e.b.Qc(t)}function wQ(e,t){return e.b.Hc(t)}function w1(e,t){return e.c.uc(t)}function w0(e,t){return e.a._b(t)}function w2(e,t){return ecX(e.c,t)}function w3(e,t){return F9(e.b,t)}function w4(e,t){return e>t&&t0}function Ei(e,t){return 0>ecd(e,t)}function Ea(e,t){return e.a.get(t)}function Eo(e,t){return t.split(e)}function Es(e,t){return F9(e.e,t)}function Eu(e){return BJ(e),!1}function Ec(e){Gq.call(this,e,21)}function El(e,t){zL.call(this,e,t)}function Ef(e,t){wC.call(this,e,t)}function Ed(e,t){wC.call(this,e,t)}function Eh(e){BT(),IJ.call(this,e)}function Ep(e,t){jA(e,e.length,t)}function Eb(e,t){Yj(e,e.length,t)}function Em(e,t,n){t.ud(e.a.Ge(n))}function Eg(e,t,n){t.we(e.a.Fe(n))}function Ev(e,t,n){t.td(e.a.Kb(n))}function Ey(e,t,n){e.Mb(n)&&t.td(n)}function Ew(e,t,n){e.splice(t,0,n)}function E_(e,t){return Aa(e.e,t)}function EE(e,t){this.d=e,this.e=t}function ES(e,t){this.b=e,this.a=t}function Ek(e,t){this.b=e,this.a=t}function Ex(e,t){this.b=e,this.a=t}function ET(e,t){this.a=e,this.b=t}function EM(e,t){this.a=e,this.b=t}function EO(e,t){this.a=e,this.b=t}function EA(e,t){this.a=e,this.b=t}function EL(e,t){this.a=e,this.b=t}function EC(e,t){this.b=e,this.a=t}function EI(e,t){this.b=e,this.a=t}function ED(e,t){wC.call(this,e,t)}function EN(e,t){wC.call(this,e,t)}function EP(e,t){wC.call(this,e,t)}function ER(e,t){wC.call(this,e,t)}function Ej(e,t){wC.call(this,e,t)}function EF(e,t){wC.call(this,e,t)}function EY(e,t){wC.call(this,e,t)}function EB(e,t){wC.call(this,e,t)}function EU(e,t){wC.call(this,e,t)}function EH(e,t){wC.call(this,e,t)}function E$(e,t){wC.call(this,e,t)}function Ez(e,t){wC.call(this,e,t)}function EG(e,t){wC.call(this,e,t)}function EW(e,t){wC.call(this,e,t)}function EK(e,t){wC.call(this,e,t)}function EV(e,t){wC.call(this,e,t)}function Eq(e,t){wC.call(this,e,t)}function EZ(e,t){wC.call(this,e,t)}function EX(e,t){this.a=e,this.b=t}function EJ(e,t){this.a=e,this.b=t}function EQ(e,t){this.a=e,this.b=t}function E1(e,t){this.a=e,this.b=t}function E0(e,t){this.a=e,this.b=t}function E2(e,t){this.a=e,this.b=t}function E3(e,t){this.a=e,this.b=t}function E4(e,t){this.a=e,this.b=t}function E5(e,t){this.a=e,this.b=t}function E6(e,t){this.b=e,this.a=t}function E9(e,t){this.b=e,this.a=t}function E8(e,t){this.b=e,this.a=t}function E7(e,t){this.b=e,this.a=t}function Se(e,t){this.c=e,this.d=t}function St(e,t){this.e=e,this.d=t}function Sn(e,t){this.a=e,this.b=t}function Sr(e,t){this.b=t,this.c=e}function Si(e,t){wC.call(this,e,t)}function Sa(e,t){wC.call(this,e,t)}function So(e,t){wC.call(this,e,t)}function Ss(e,t){wC.call(this,e,t)}function Su(e,t){wC.call(this,e,t)}function Sc(e,t){wC.call(this,e,t)}function Sl(e,t){wC.call(this,e,t)}function Sf(e,t){wC.call(this,e,t)}function Sd(e,t){wC.call(this,e,t)}function Sh(e,t){wC.call(this,e,t)}function Sp(e,t){wC.call(this,e,t)}function Sb(e,t){wC.call(this,e,t)}function Sm(e,t){wC.call(this,e,t)}function Sg(e,t){wC.call(this,e,t)}function Sv(e,t){wC.call(this,e,t)}function Sy(e,t){wC.call(this,e,t)}function Sw(e,t){wC.call(this,e,t)}function S_(e,t){wC.call(this,e,t)}function SE(e,t){wC.call(this,e,t)}function SS(e,t){wC.call(this,e,t)}function Sk(e,t){wC.call(this,e,t)}function Sx(e,t){wC.call(this,e,t)}function ST(e,t){wC.call(this,e,t)}function SM(e,t){wC.call(this,e,t)}function SO(e,t){wC.call(this,e,t)}function SA(e,t){wC.call(this,e,t)}function SL(e,t){wC.call(this,e,t)}function SC(e,t){wC.call(this,e,t)}function SI(e,t){wC.call(this,e,t)}function SD(e,t){wC.call(this,e,t)}function SN(e,t){wC.call(this,e,t)}function SP(e,t){wC.call(this,e,t)}function SR(e,t){wC.call(this,e,t)}function Sj(e,t){wC.call(this,e,t)}function SF(e,t){this.b=e,this.a=t}function SY(e,t){this.a=e,this.b=t}function SB(e,t){this.a=e,this.b=t}function SU(e,t){this.a=e,this.b=t}function SH(e,t){this.a=e,this.b=t}function S$(e,t){wC.call(this,e,t)}function Sz(e,t){wC.call(this,e,t)}function SG(e,t){this.b=e,this.d=t}function SW(e,t){wC.call(this,e,t)}function SK(e,t){wC.call(this,e,t)}function SV(e,t){this.a=e,this.b=t}function Sq(e,t){this.a=e,this.b=t}function SZ(e,t){wC.call(this,e,t)}function SX(e,t){wC.call(this,e,t)}function SJ(e,t){wC.call(this,e,t)}function SQ(e,t){wC.call(this,e,t)}function S1(e,t){wC.call(this,e,t)}function S0(e,t){wC.call(this,e,t)}function S2(e,t){wC.call(this,e,t)}function S3(e,t){wC.call(this,e,t)}function S4(e,t){wC.call(this,e,t)}function S5(e,t){wC.call(this,e,t)}function S6(e,t){wC.call(this,e,t)}function S9(e,t){wC.call(this,e,t)}function S8(e,t){wC.call(this,e,t)}function S7(e,t){wC.call(this,e,t)}function ke(e,t){wC.call(this,e,t)}function kt(e,t){wC.call(this,e,t)}function kn(e,t){return Aa(e.c,t)}function kr(e,t){return Aa(t.b,e)}function ki(e,t){return-e.b.Je(t)}function ka(e,t){return Aa(e.g,t)}function ko(e,t){wC.call(this,e,t)}function ks(e,t){wC.call(this,e,t)}function ku(e,t){this.a=e,this.b=t}function kc(e,t){this.a=e,this.b=t}function kl(e,t){this.a=e,this.b=t}function kf(e,t){wC.call(this,e,t)}function kd(e,t){wC.call(this,e,t)}function kh(e,t){wC.call(this,e,t)}function kp(e,t){wC.call(this,e,t)}function kb(e,t){wC.call(this,e,t)}function km(e,t){wC.call(this,e,t)}function kg(e,t){wC.call(this,e,t)}function kv(e,t){wC.call(this,e,t)}function ky(e,t){wC.call(this,e,t)}function kw(e,t){wC.call(this,e,t)}function k_(e,t){wC.call(this,e,t)}function kE(e,t){wC.call(this,e,t)}function kS(e,t){wC.call(this,e,t)}function kk(e,t){wC.call(this,e,t)}function kx(e,t){wC.call(this,e,t)}function kT(e,t){wC.call(this,e,t)}function kM(e,t){this.a=e,this.b=t}function kO(e,t){this.a=e,this.b=t}function kA(e,t){this.a=e,this.b=t}function kL(e,t){this.a=e,this.b=t}function kC(e,t){this.a=e,this.b=t}function kI(e,t){this.a=e,this.b=t}function kD(e,t){this.a=e,this.b=t}function kN(e,t){wC.call(this,e,t)}function kP(e,t){this.a=e,this.b=t}function kR(e,t){this.a=e,this.b=t}function kj(e,t){this.a=e,this.b=t}function kF(e,t){this.a=e,this.b=t}function kY(e,t){this.a=e,this.b=t}function kB(e,t){this.a=e,this.b=t}function kU(e,t){this.b=e,this.a=t}function kH(e,t){this.b=e,this.a=t}function k$(e,t){this.b=e,this.a=t}function kz(e,t){this.b=e,this.a=t}function kG(e,t){this.a=e,this.b=t}function kW(e,t){this.a=e,this.b=t}function kK(e,t){eOU(e.a,Pp(t,56))}function kV(e,t){QM(e.a,Pp(t,11))}function kq(e,t){return Pj(),t!=e}function kZ(){return vv(),new e2d}function kX(){Gk(),this.b=new bV}function kJ(){eAV(),this.a=new bV}function kQ(){Gy(),jG.call(this)}function k1(e,t){wC.call(this,e,t)}function k0(e,t){this.a=e,this.b=t}function k2(e,t){this.a=e,this.b=t}function k3(e,t){this.a=e,this.b=t}function k4(e,t){this.a=e,this.b=t}function k5(e,t){this.a=e,this.b=t}function k6(e,t){this.a=e,this.b=t}function k9(e,t){this.d=e,this.b=t}function k8(e,t){this.d=e,this.e=t}function k7(e,t){this.f=e,this.c=t}function xe(e,t){this.b=e,this.c=t}function xt(e,t){this.i=e,this.g=t}function xn(e,t){this.e=e,this.a=t}function xr(e,t){this.a=e,this.b=t}function xi(e,t){e.i=null,erA(e,t)}function xa(e,t){e&&Um(tmR,e,t)}function xo(e,t){return edG(e.a,t)}function xs(e){return edK(e.c,e.b)}function xu(e){return e?e.dd():null}function xc(e){return null==e?null:e}function xl(e){return typeof e===eUi}function xf(e){return typeof e===eUa}function xd(e){return typeof e===eUo}function xh(e,t){return e.Hd().Xb(t)}function xp(e,t){return ei7(e.Kc(),t)}function xb(e,t){return 0==ecd(e,t)}function xm(e,t){return ecd(e,t)>=0}function xg(e,t){return 0!=ecd(e,t)}function xv(e){return""+(BJ(e),e)}function xy(e,t){return e.substr(t)}function xw(e){return efH(e),e.d.gc()}function x_(e){return eTe(e,e.c),e}function xE(e){return Rb(null==e),e}function xS(e,t){return e.a+=""+t,e}function xk(e,t){return e.a+=""+t,e}function xx(e,t){return e.a+=""+t,e}function xT(e,t){return e.a+=""+t,e}function xM(e,t){return e.a+=""+t,e}function xO(e,t){return e.a+=""+t,e}function xA(e,t){qQ(e,t,e.a,e.a.a)}function xL(e,t){qQ(e,t,e.c.b,e.c)}function xC(e,t,n){eyc(t,eSE(e,n))}function xI(e,t,n){eyc(t,eSE(e,n))}function xD(e,t){eeS(new Ow(e),t)}function xN(e,t){e.q.setTime(Kj(t))}function xP(e,t){FH.call(this,e,t)}function xR(e,t){FH.call(this,e,t)}function xj(e,t){FH.call(this,e,t)}function xF(e){Yy(this),eij(this,e)}function xY(e){return GK(e,0),null}function xB(e){return e.a=0,e.b=0,e}function xU(e,t){return e.a=t.g+1,e}function xH(e,t){return 2==e.j[t.p]}function x$(e){return YZ(Pp(e,79))}function xz(){xz=A,e4r=euY(epE())}function xG(){xG=A,e7$=euY(eAn())}function xW(){this.b=new w8(ee0(12))}function xK(){this.b=0,this.a=!1}function xV(){this.b=0,this.a=!1}function xq(e){this.a=e,ci.call(this)}function xZ(e){this.a=e,ci.call(this)}function xX(e,t){Cm.call(this,e,t)}function xJ(e,t){Ii.call(this,e,t)}function xQ(e,t){xt.call(this,e,t)}function x1(e,t){eaN.call(this,e,t)}function x0(e,t){AA.call(this,e,t)}function x2(e,t){_5(),Um(tmU,e,t)}function x3(e,t){return Az(e.a,0,t)}function x4(e,t){return e.a.a.a.cc(t)}function x5(e,t){return xc(e)===xc(t)}function x6(e,t){return elN(e.a,t.a)}function x9(e,t){return ME(e.a,t.a)}function x8(e,t){return YM(e.a,t.a)}function x7(e,t){return e.indexOf(t)}function Te(e,t){return e==t?0:e?1:-1}function Tt(e){return e<10?"0"+e:""+e}function Tn(e){return Y9(e),new xq(e)}function Tr(e){return Mk(e.l,e.m,e.h)}function Ti(e){return zy((BJ(e),e))}function Ta(e){return zy((BJ(e),e))}function To(e,t){return ME(e.g,t.g)}function Ts(e){return typeof e===eUa}function Tu(e){return e==e8f||e==e8p}function Tc(e){return e==e8f||e==e8d}function Tl(e){return QI(e.b.b,e,0)}function Tf(e){this.a=kZ(),this.b=e}function Td(e){this.a=kZ(),this.b=e}function Th(e,t){return P_(e.a,t),t}function Tp(e,t){return P_(e.c,t),e}function Tb(e,t){return eat(e.a,t),e}function Tm(e,t){return Dj(),t.a+=e}function Tg(e,t){return Dj(),t.a+=e}function Tv(e,t){return Dj(),t.c+=e}function Ty(e,t){Qe(e,0,e.length,t)}function Tw(){fJ.call(this,new qh)}function T_(){jp.call(this,0,0,0,0)}function TE(){Hr.call(this,0,0,0,0)}function TS(e){this.a=e.a,this.b=e.b}function Tk(e){return e==tpm||e==tpg}function Tx(e){return e==tpy||e==tpb}function TT(e){return e==tss||e==tso}function TM(e){return e!=tbc&&e!=tbl}function TO(e){return e.Lg()&&e.Mg()}function TA(e){return UB(Pp(e,118))}function TL(e){return eat(new K2,e)}function TC(e,t){return new eaN(t,e)}function TI(e,t){return new eaN(t,e)}function TD(e,t,n){ent(e,t),enn(e,n)}function TN(e,t,n){ena(e,t),eni(e,n)}function TP(e,t,n){eno(e,t),ens(e,n)}function TR(e,t,n){enr(e,t),enc(e,n)}function Tj(e,t,n){enu(e,t),enl(e,n)}function TF(e,t){euc(e,t),enp(e,e.D)}function TY(e){k7.call(this,e,!0)}function TB(e,t,n){L3.call(this,e,t,n)}function TU(e){eLQ(),ead.call(this,e)}function TH(){Ef.call(this,"Head",1)}function T$(){Ef.call(this,"Tail",3)}function Tz(e){e.c=Je(e1R,eUp,1,0,5,1)}function TG(e){e.a=Je(e1R,eUp,1,8,5,1)}function TW(e){ety(e.xf(),new dh(e))}function TK(e){return null!=e?esj(e):0}function TV(e,t){return etg(t,zY(e))}function Tq(e,t){return etg(t,zY(e))}function TZ(e,t){return e[e.length]=t}function TX(e,t){return e[e.length]=t}function TJ(e){return Ph(e.b.Kc(),e.a)}function TQ(e,t){return erb(Bi(e.d),t)}function T1(e,t){return erb(Bi(e.g),t)}function T0(e,t){return erb(Bi(e.j),t)}function T2(e,t){Cm.call(this,e.b,t)}function T3(e){jp.call(this,e,e,e,e)}function T4(e){return e.b&&ePE(e),e.a}function T5(e){return e.b&&ePE(e),e.c}function T6(e,t){!e2M&&(e.b=t)}function T9(e,t,n){return Bc(e,t,n),n}function T8(e,t,n){Bc(e.c[t.g],t.g,n)}function T7(e,t,n){Pp(e.c,69).Xh(t,n)}function Me(e,t,n){TP(n,n.i+e,n.j+t)}function Mt(e,t){JL(qt(e.a),Gj(t))}function Mn(e,t){JL(QX(e.a),GF(t))}function Mr(e){eBG(),pJ.call(this,e)}function Mi(e){return null==e?0:esj(e)}function Ma(){Ma=A,tuT=new efY(e59)}function Mo(){Mo=A,new Ms,new p0}function Ms(){new p2,new p2,new p2}function Mu(){Mu=A,bR(),e0S=new p2}function Mc(){Mc=A,eB4.Math.log(2)}function Ml(){Ml=A,tgZ=(_Z(),tmE)}function Mf(){throw p7(new gW(e1O))}function Md(){throw p7(new gW(e1O))}function Mh(){throw p7(new gW(e1A))}function Mp(){throw p7(new gW(e1A))}function Mb(e){this.a=e,PS.call(this,e)}function Mm(e){this.a=e,wU.call(this,e)}function Mg(e){this.a=e,wU.call(this,e)}function Mv(e,t){jM(e.c,e.c.length,t)}function My(e){return e.at?1:0}function MS(e,t){return ecd(e,t)>0?e:t}function Mk(e,t,n){return{l:e,m:t,h:n}}function Mx(e,t){null!=e.a&&kV(t,e.a)}function MT(e){e.a=new C,e.c=new C}function MM(e){this.b=e,this.a=new p0}function MO(e){this.b=new e1,this.a=e}function MA(e){CW.call(this),this.a=e}function ML(){Ef.call(this,"Range",2)}function MC(){evR(),this.a=new eAs(e4k)}function MI(e,t){Y9(t),Uz(e).Jc(new d)}function MD(e,t){return GE(),t.n.b+=e}function MN(e,t,n){return Um(e.g,n,t)}function MP(e,t,n){return Um(e.k,n,t)}function MR(e,t){return Um(e.a,t.a,t)}function Mj(e,t,n){return eho(t,n,e.c)}function MF(e){return new kl(e.c,e.d)}function MY(e){return new kl(e.c,e.d)}function MB(e){return new kl(e.a,e.b)}function MU(e,t){return ej8(e.a,t,null)}function MH(e){Gs(e,null),Go(e,null)}function M$(e){GA(e,null),GL(e,null)}function Mz(){AA.call(this,null,null)}function MG(){AL.call(this,null,null)}function MW(e){this.a=e,p2.call(this)}function MK(e){this.b=(Hj(),new f$(e))}function MV(e){e.j=Je(e18,eUP,310,0,0,1)}function Mq(e,t,n){e.c.Vc(t,Pp(n,133))}function MZ(e,t,n){e.c.ji(t,Pp(n,133))}function MX(e,t){eRT(e),e.Gc(Pp(t,15))}function MJ(e,t){return eR4(e.c,e.b,t)}function MQ(e,t){return new O6(e.Kc(),t)}function M1(e,t){return -1!=eoD(e.Kc(),t)}function M0(e,t){return null!=e.a.Bc(t)}function M2(e){return e.Ob()?e.Pb():null}function M3(e){return ehv(e,0,e.length)}function M4(e,t){return null!=e&&ebs(e,t)}function M5(e,t){e.q.setHours(t),eNq(e,t)}function M6(e,t){e.c&&(Re(t),zd(t))}function M9(e,t,n){Pp(e.Kb(n),164).Nb(t)}function M8(e,t,n){return ejq(e,t,n),n}function M7(e,t,n){e.a=1502^t,e.b=n^e$d}function Oe(e,t,n){return e.a[t.g][n.g]}function Ot(e,t){return e.a[t.c.p][t.p]}function On(e,t){return e.e[t.c.p][t.p]}function Or(e,t){return e.c[t.c.p][t.p]}function Oi(e,t){return e.j[t.p]=eOo(t)}function Oa(e,t){return ZZ(e.f,t.tg())}function Oo(e,t){return ZZ(e.b,t.tg())}function Os(e,t){return e.a0?t*t/e:t*t*100}function Li(e,t){return e>0?t/(e*e):100*t}function La(e,t,n){return P_(t,ef5(e,n))}function Lo(e,t,n){J1(),e.Xe(t)&&n.td(e)}function Ls(e,t,n){var r;(r=e.Zc(t)).Rb(n)}function Lu(e,t,n){return e.a+=t,e.b+=n,e}function Lc(e,t,n){return e.a*=t,e.b*=n,e}function Ll(e,t,n){return e.a-=t,e.b-=n,e}function Lf(e,t){return e.a=t.a,e.b=t.b,e}function Ld(e){return e.a=-e.a,e.b=-e.b,e}function Lh(e){this.c=e,this.a=1,this.b=1}function Lp(e){this.c=e,eno(e,0),ens(e,0)}function Lb(e){_n.call(this),enD(this,e)}function Lm(e){eBp(),p8(this),this.mf(e)}function Lg(e,t){_0(),AA.call(this,e,t)}function Lv(e,t){_2(),AL.call(this,e,t)}function Ly(e,t){_2(),AL.call(this,e,t)}function Lw(e,t){_2(),Lv.call(this,e,t)}function L_(e,t,n){JY.call(this,e,t,n,2)}function LE(e,t){Ml(),jd.call(this,e,t)}function LS(e,t){Ml(),LE.call(this,e,t)}function Lk(e,t){Ml(),LE.call(this,e,t)}function Lx(e,t){Ml(),Lk.call(this,e,t)}function LT(e,t){Ml(),jd.call(this,e,t)}function LM(e,t){Ml(),LT.call(this,e,t)}function LO(e,t){Ml(),jd.call(this,e,t)}function LA(e,t){return e.c.Fc(Pp(t,133))}function LL(e,t,n){return eP9(Qq(e,t),n)}function LC(e,t,n){return t.Qk(e.e,e.c,n)}function LI(e,t,n){return t.Rk(e.e,e.c,n)}function LD(e,t){return ecv(e.e,Pp(t,49))}function LN(e,t,n){elm(QX(e.a),t,GF(n))}function LP(e,t,n){elm(qt(e.a),t,Gj(n))}function LR(e,t){t.$modCount=e.$modCount}function Lj(){Lj=A,tcV=new pO("root")}function LF(){LF=A,tmB=new mx,new mT}function LY(){this.a=new zu,this.b=new zu}function LB(){en0.call(this),this.Bb|=eH3}function LU(){wC.call(this,"GROW_TREE",0)}function LH(e){return null==e?null:eYt(e)}function L$(e){return null==e?null:eEO(e)}function Lz(e){return null==e?null:efF(e)}function LG(e){return null==e?null:efF(e)}function LW(e){null==e.o&&eMb(e)}function LK(e){return Rb(null==e||xl(e)),e}function LV(e){return Rb(null==e||xf(e)),e}function Lq(e){return Rb(null==e||xd(e)),e}function LZ(e){this.q=new eB4.Date(Kj(e))}function LX(e,t){this.c=e,wI.call(this,e,t)}function LJ(e,t){this.a=e,LX.call(this,e,t)}function LQ(e,t){this.d=e,f_(this),this.b=t}function L1(e,t){Jo.call(this,e),this.a=t}function L0(e,t){Jo.call(this,e),this.a=t}function L2(e){edL.call(this,0,0),this.f=e}function L3(e,t,n){XS.call(this,e,t,n,null)}function L4(e,t,n){XS.call(this,e,t,n,null)}function L5(e,t,n){return 0>=e.ue(t,n)?n:t}function L6(e,t,n){return 0>=e.ue(t,n)?t:n}function L9(e,t){return Pp(eef(e.b,t),149)}function L8(e,t){return Pp(eef(e.c,t),229)}function L7(e){return Pp(RJ(e.a,e.b),287)}function Ce(e){return new kl(e.c,e.d+e.a)}function Ct(e){return GE(),TT(Pp(e,197))}function Cn(){Cn=A,e4i=el9((ed6(),tbq))}function Cr(e,t){t.a?eLc(e,t):Ai(e.a,t.b)}function Ci(e,t){!e2M&&P_(e.a,t)}function Ca(e,t){return _k(),eag(t.d.i,e)}function Co(e,t){return erJ(),new eIu(t,e)}function Cs(e,t){return $C(t,ezr),e.f=t,e}function Cu(e,t,n){return n=eDg(e,t,3,n)}function Cc(e,t,n){return n=eDg(e,t,6,n)}function Cl(e,t,n){return n=eDg(e,t,9,n)}function Cf(e,t,n){++e.j,e.Ki(),X8(e,t,n)}function Cd(e,t,n){++e.j,e.Hi(t,e.oi(t,n))}function Ch(e,t,n){var r;(r=e.Zc(t)).Rb(n)}function Cp(e,t,n){return ePT(e.c,e.b,t,n)}function Cb(e,t){return(t&eUu)%e.d.length}function Cm(e,t){pO.call(this,e),this.a=t}function Cg(e,t){pH.call(this,e),this.a=t}function Cv(e,t){pH.call(this,e),this.a=t}function Cy(e,t){this.c=e,eta.call(this,t)}function Cw(e,t){this.a=e,pU.call(this,t)}function C_(e,t){this.a=e,pU.call(this,t)}function CE(e){this.a=(enG(e,eU3),new XM(e))}function CS(e){this.a=(enG(e,eU3),new XM(e))}function Ck(e){return e.a||(e.a=new h),e.a}function Cx(e){return e>8?0:e+1}function CT(e,t){return OQ(),e==t?0:e?1:-1}function CM(e,t,n){return jT(e,Pp(t,22),n)}function CO(e,t,n){return e.apply(t,n)}function CA(e,t,n){return e.a+=ehv(t,0,n),e}function CL(e,t){var n;return n=e.e,e.e=t,n}function CC(e,t){var n;(n=e[e$c]).call(e,t)}function CI(e,t){var n;(n=e[e$c]).call(e,t)}function CD(e,t){e.a.Vc(e.b,t),++e.b,e.c=-1}function CN(e){Yy(e.e),e.d.b=e.d,e.d.a=e.d}function CP(e){e.b?CP(e.b):e.f.c.zc(e.e,e.d)}function CR(e,t,n){_w(),lP(e,t.Ce(e.a,n))}function Cj(e,t){return y_(ehn(e.a,t,!0))}function CF(e,t){return y_(ehr(e.a,t,!0))}function CY(e,t){return vk(Array(t),e)}function CB(e){return String.fromCharCode(e)}function CU(e){return null==e?null:e.message}function CH(){this.a=new p0,this.b=new p0}function C$(){this.a=new tt,this.b=new bP}function Cz(){this.b=new yb,this.c=new p0}function CG(){this.d=new yb,this.e=new yb}function CW(){this.n=new yb,this.o=new yb}function CK(){this.n=new mp,this.i=new TE}function CV(){this.a=new cg,this.b=new i_}function Cq(){this.a=new p0,this.d=new p0}function CZ(){this.b=new bV,this.a=new bV}function CX(){this.b=new p2,this.a=new p2}function CJ(){this.b=new y2,this.a=new ay}function CQ(){CK.call(this),this.a=new yb}function C1(e){eaD.call(this,e,(Qu(),e2D))}function C0(e,t,n,r){jp.call(this,e,t,n,r)}function C2(e,t,n){null!=n&&ern(t,emI(e,n))}function C3(e,t,n){null!=n&&err(t,emI(e,n))}function C4(e,t,n){return n=eDg(e,t,11,n)}function C5(e,t){return e.a+=t.a,e.b+=t.b,e}function C6(e,t){return e.a-=t.a,e.b-=t.b,e}function C9(e,t){return e.n.a=(BJ(t),t+10)}function C8(e,t){return e.n.a=(BJ(t),t+10)}function C7(e,t){return t==e||ev9(eOg(t),e)}function Ie(e,t){return null==Um(e.a,t,"")}function It(e,t){return _k(),!eag(t.d.i,e)}function In(e,t){Tk(e.f)?eMi(e,t):ewz(e,t)}function Ir(e,t){var n;return t.Hh(e.a)}function Ii(e,t){gE.call(this,eJT+e+eXH+t)}function Ia(e,t,n,r){FQ.call(this,e,t,n,r)}function Io(e,t,n,r){FQ.call(this,e,t,n,r)}function Is(e,t,n,r){Io.call(this,e,t,n,r)}function Iu(e,t,n,r){F1.call(this,e,t,n,r)}function Ic(e,t,n,r){F1.call(this,e,t,n,r)}function Il(e,t,n,r){F1.call(this,e,t,n,r)}function If(e,t,n,r){Ic.call(this,e,t,n,r)}function Id(e,t,n,r){Ic.call(this,e,t,n,r)}function Ih(e,t,n,r){Il.call(this,e,t,n,r)}function Ip(e,t,n,r){Id.call(this,e,t,n,r)}function Ib(e,t,n,r){FZ.call(this,e,t,n,r)}function Im(e,t,n){this.a=e,AI.call(this,t,n)}function Ig(e,t,n){this.c=t,this.b=n,this.a=e}function Iv(e,t,n){return e.d=Pp(t.Kb(n),164)}function Iy(e,t){return e.Aj().Nh().Kh(e,t)}function Iw(e,t){return e.Aj().Nh().Ih(e,t)}function I_(e,t){return BJ(e),xc(e)===xc(t)}function IE(e,t){return BJ(e),xc(e)===xc(t)}function IS(e,t){return y_(ehn(e.a,t,!1))}function Ik(e,t){return y_(ehr(e.a,t,!1))}function Ix(e,t){return e.b.sd(new EM(e,t))}function IT(e,t){return e.b.sd(new EO(e,t))}function IM(e,t){return e.b.sd(new EA(e,t))}function IO(e,t,n){return e.lastIndexOf(t,n)}function IA(e,t,n){return elN(e[t.b],e[n.b])}function IL(e,t){return eo3(t,(eBy(),tat),e)}function IC(e,t){return ME(t.a.d.p,e.a.d.p)}function II(e,t){return ME(e.a.d.p,t.a.d.p)}function ID(e,t){return elN(e.c-e.s,t.c-t.s)}function IN(e){return e.c?QI(e.c.a,e,0):-1}function IP(e){return e<100?null:new yf(e)}function IR(e){return e==tba||e==tbs||e==tbo}function Ij(e,t){return M4(t,15)&&eCc(e.c,t)}function IF(e,t){!e2M&&t&&(e.d=t)}function IY(e,t){var n;return!!esq(e,n=t)}function IB(e,t){this.c=e,YC.call(this,e,t)}function IU(e){this.c=e,xj.call(this,eUY,0)}function IH(e,t){Px.call(this,e,e.length,t)}function I$(e,t,n){return Pp(e.c,69).lk(t,n)}function Iz(e,t,n){return Pp(e.c,69).mk(t,n)}function IG(e,t,n){return LC(e,Pp(t,332),n)}function IW(e,t,n){return LI(e,Pp(t,332),n)}function IK(e,t,n){return ey1(e,Pp(t,332),n)}function IV(e,t,n){return e_t(e,Pp(t,332),n)}function Iq(e,t){return null==t?null:ecA(e.b,t)}function IZ(e){return xf(e)?(BJ(e),e):e.ke()}function IX(e){return!isNaN(e)&&!isFinite(e)}function IJ(e){Dn(),this.a=(Hj(),new vd(e))}function IQ(e){Pj(),this.d=e,this.a=new p1}function I1(e,t,n){this.a=e,this.b=t,this.c=n}function I0(e,t,n){this.a=e,this.b=t,this.c=n}function I2(e,t,n){this.d=e,this.b=n,this.a=t}function I3(e){MT(this),HC(this),er7(this,e)}function I4(e){Tz(this),PO(this.c,0,e.Pc())}function I5(e){BH(e.a),Jl(e.c,e.b),e.b=null}function I6(e){this.a=e,wK(),eap(Date.now())}function I9(){I9=A,e2G=new r,e2W=new r}function I8(){I8=A,e2h=new I,e2p=new D}function I7(){I7=A,tmY=Je(e1R,eUp,1,0,5,1)}function De(){De=A,tgH=Je(e1R,eUp,1,0,5,1)}function Dt(){Dt=A,tg$=Je(e1R,eUp,1,0,5,1)}function Dn(){Dn=A,new bb((Hj(),Hj(),e2r))}function Dr(e){return Qu(),eeM((Qc(),e2j),e)}function Di(e){return eum(),eeM((XC(),e2$),e)}function Da(e){return epC(),eeM((qk(),e3d),e)}function Do(e){return eeR(),eeM((qx(),e3b),e)}function Ds(e){return eCp(),eeM((eaF(),e3I),e)}function Du(e){return etx(),eeM((XO(),e3R),e)}function Dc(e){return Qs(),eeM((XA(),e3B),e)}function Dl(e){return QQ(),eeM((XL(),e3z),e)}function Df(e){return eBW(),eeM((xz(),e4r),e)}function Dd(e){return eaY(),eeM((Qf(),e4l),e)}function Dh(e){return ep7(),eeM((Qd(),e4b),e)}function Dp(e){return ebe(),eeM((Qh(),e6z),e)}function Db(e){return _y(),eeM((Vt(),e6W),e)}function Dm(e){return eej(),eeM((qT(),e9h),e)}function Dg(e){return QJ(),eeM((XI(),e96),e)}function Dv(e){return e_x(),eeM((eeW(),e8a),e)}function Dy(e){return eok(),eeM((Ql(),e8b),e)}function Dw(e){return ec4(),eeM((XD(),e8T),e)}function D_(e,t){if(!e)throw p7(new gL(t))}function DE(e){return eEn(),eeM((etQ(),e8R),e)}function DS(e){jp.call(this,e.d,e.c,e.a,e.b)}function Dk(e){jp.call(this,e.d,e.c,e.a,e.b)}function Dx(e,t,n){this.b=e,this.c=t,this.a=n}function DT(e,t,n){this.b=e,this.a=t,this.c=n}function DM(e,t,n){this.a=e,this.b=t,this.c=n}function DO(e,t,n){this.a=e,this.b=t,this.c=n}function DA(e,t,n){this.a=e,this.b=t,this.c=n}function DL(e,t,n){this.a=e,this.b=t,this.c=n}function DC(e,t,n){this.b=e,this.a=t,this.c=n}function DI(e,t,n){this.e=t,this.b=e,this.d=n}function DD(e,t,n){return _w(),e.a.Od(t,n),t}function DN(e){var t;return(t=new ew).e=e,t}function DP(e){var t;return(t=new me).b=e,t}function DR(){DR=A,e8V=new nd,e8q=new nh}function Dj(){Dj=A,e75=new rB,e76=new rU}function DF(e){return eoE(),eeM((Qb(),e7X),e)}function DY(e){return eoS(),eeM((Qg(),tet),e)}function DB(e){return eLz(),eeM((ei3(),tek),e)}function DU(e){return eSg(),eeM((et2(),teI),e)}function DH(e){return Jp(),eeM((qI(),teP),e)}function D$(e){return en7(),eeM((XN(),teY),e)}function Dz(e){return ey4(),eeM((eeU(),tes),e)}function DG(e){return erX(),eeM((Xj(),teb),e)}function DW(e){return enB(),eeM((XP(),te$),e)}function DK(e){return eb6(),eeM((eeY(),teq),e)}function DV(e){return eeF(),eeM((qO(),teJ),e)}function Dq(e){return eoG(),eeM((XR(),te2),e)}function DZ(e){return eEf(),eeM((et6(),te7),e)}function DX(e){return Qx(),eeM((qA(),ttn),e)}function DJ(e){return eyd(),eeM((et4(),ttc),e)}function DQ(e){return e_3(),eeM((et3(),ttm),e)}function D1(e){return eLR(),eeM((eoH(),ttM),e)}function D0(e){return eaU(),eeM((XY(),ttC),e)}function D2(e){return Q1(),eeM((XF(),ttP),e)}function D3(e){return K6(),eeM((qD(),ttF),e)}function D4(e){return ef_(),eeM((eeH(),tnF),e)}function D5(e){return ewY(),eeM((et5(),tst),e)}function D6(e){return euJ(),eeM((XB(),tsa),e)}function D9(e){return ebk(),eeM((Qv(),tsl),e)}function D8(e){return enY(),eeM((X$(),tsR),e)}function D7(e){return eOJ(),eeM((ei2(),tsx),e)}function Ne(e){return esn(),eeM((XH(),tsA),e)}function Nt(e){return Q0(),eeM((qC(),tsI),e)}function Nn(e){return ei0(),eeM((XU(),tsB),e)}function Nr(e){return ebG(),eeM((eeB(),tsm),e)}function Ni(e){return Xo(),eeM((qL(),ts$),e)}function Na(e){return euy(),eeM((XG(),tsK),e)}function No(e){return eiO(),eeM((XW(),tsX),e)}function Ns(e){return eox(),eeM((Xz(),ts0),e)}function Nu(e){return enU(),eeM((XK(),tuo),e)}function Nc(e){return qG(),eeM((qP(),tud),e)}function Nl(e){return zs(),eeM((qR(),tu_),e)}function Nf(e){return zQ(),eeM((qj(),tuk),e)}function Nd(e){return Xa(),eeM((qN(),tu$),e)}function Nh(e){return zo(),eeM((qF(),tuX),e)}function Np(e){return egR(),eeM((Qp(),tu2),e)}function Nb(e){return eS_(),eeM((et9(),tu7),e)}function Nm(e){return z1(),eeM((qU(),tcB),e)}function Ng(e){return erZ(),eeM((qB(),tcX),e)}function Nv(e){return Kn(),eeM((qY(),tc$),e)}function Ny(e){return efx(),eeM((XV(),tc0),e)}function Nw(e){return J0(),eeM((qH(),tc4),e)}function N_(e){return eub(),eeM((Xq(),tc8),e)}function NE(e){return emC(),eeM((Qm(),tlA),e)}function NS(e){return ei1(),eeM((XX(),tlD),e)}function Nk(e){return efS(),eeM((XZ(),tlj),e)}function Nx(e){return eOB(),eeM((eeG(),tfl),e)}function NT(e){return efk(),eeM((XJ(),tfp),e)}function NM(e){return _D(),eeM((K7(),tfm),e)}function NO(e){return _N(),eeM((K8(),tfv),e)}function NA(e){return Xs(),eeM((qz(),tf_),e)}function NL(e){return eEM(),eeM((ee$(),tfM),e)}function NC(e){return _P(),eeM((Ve(),tf7),e)}function NI(e){return eoT(),eeM((q$(),tdn),e)}function ND(e){return epx(),eeM((eez(),tdb),e)}function NN(e){return eSd(),eeM((ei4(),tdk),e)}function NP(e){return ebx(),eeM((et0(),tdD),e)}function NR(e){return eyY(),eeM((et1(),tdJ),e)}function Nj(e){return eB$(),eeM((xG(),e7$),e)}function NF(e){return erq(),eeM((qM(),e8K),e)}function NY(e){return ec3(),eeM((eeK(),tpw),e)}function NB(e){return etT(),eeM((X1(),tpk),e)}function NU(e){return efE(),eeM((Q_(),tpA),e)}function NH(e){return e_a(),eeM((et7(),tpR),e)}function N$(e){return eck(),eeM((XQ(),tpK),e)}function Nz(e){return egF(),eeM((Qw(),tpJ),e)}function NG(e){return eT7(),eeM((eaj(),tp8),e)}function NW(e){return epT(),eeM((eeV(),tbi),e)}function NK(e){return ewf(),eeM((etC(),tbf),e)}function NV(e){return ekU(),eeM((et8(),tbv),e)}function Nq(e){return ed6(),eeM((QS(),tbZ),e)}function NZ(e){return eI3(),eeM((eo$(),tb6),e)}function NX(e){return eYu(),eeM((eeq(),tbB),e)}function NJ(e){return edM(),eeM((QE(),tmt),e)}function NQ(e){return eup(),eeM((Qy(),tmo),e)}function N1(e){return eTy(),eeM((ei5(),tmP),e)}function N0(e,t){return BJ(e),e+(BJ(t),t)}function N2(e,t){return wK(),JL(H9(e.a),t)}function N3(e,t){return wK(),JL(H9(e.a),t)}function N4(e,t){this.c=e,this.a=t,this.b=t-e}function N5(e,t,n){this.a=e,this.b=t,this.c=n}function N6(e,t,n){this.a=e,this.b=t,this.c=n}function N9(e,t,n){this.a=e,this.b=t,this.c=n}function N8(e,t,n){this.a=e,this.b=t,this.c=n}function N7(e,t,n){this.a=e,this.b=t,this.c=n}function Pe(e,t,n){this.e=e,this.a=t,this.c=n}function Pt(e,t,n){Ml(),zl.call(this,e,t,n)}function Pn(e,t,n){Ml(),BP.call(this,e,t,n)}function Pr(e,t,n){Ml(),BP.call(this,e,t,n)}function Pi(e,t,n){Ml(),BP.call(this,e,t,n)}function Pa(e,t,n){Ml(),Pn.call(this,e,t,n)}function Po(e,t,n){Ml(),Pn.call(this,e,t,n)}function Ps(e,t,n){Ml(),Po.call(this,e,t,n)}function Pu(e,t,n){Ml(),Pr.call(this,e,t,n)}function Pc(e,t,n){Ml(),Pi.call(this,e,t,n)}function Pl(e,t){return Y9(e),Y9(t),new wx(e,t)}function Pf(e,t){return Y9(e),Y9(t),new Rn(e,t)}function Pd(e,t){return Y9(e),Y9(t),new Rr(e,t)}function Ph(e,t){return Y9(e),Y9(t),new wM(e,t)}function Pp(e,t){return Rb(null==e||ebs(e,t)),e}function Pb(e){var t;return t=new p0,eel(t,e),t}function Pm(e){var t;return t=new bV,eel(t,e),t}function Pg(e){var t;return ein(t=new b2,e),t}function Pv(e){var t;return ein(t=new _n,e),t}function Py(e){return e.e||(e.e=new p0),e.e}function Pw(e){return e.c||(e.c=new sk),e.c}function P_(e,t){return e.c[e.c.length]=t,!0}function PE(e,t){this.c=e,this.b=t,this.a=!1}function PS(e){this.d=e,f_(this),this.b=Ft(e.d)}function Pk(){this.a=";,;",this.b="",this.c=""}function Px(e,t,n){F$.call(this,t,n),this.a=e}function PT(e,t,n){this.b=e,xP.call(this,t,n)}function PM(e,t,n){this.c=e,EE.call(this,t,n)}function PO(e,t,n){ekp(n,0,e,t,n.length,!1)}function PA(e,t,n,r,i){e.b=t,e.c=n,e.d=r,e.a=i}function PL(e,t){t&&(e.b=t,e.a=(B1(t),t.a))}function PC(e,t,n,r,i){e.d=t,e.c=n,e.a=r,e.b=i}function PI(e){var t,n;t=e.b,n=e.c,e.b=n,e.c=t}function PD(e){var t,n;n=e.d,t=e.a,e.d=t,e.a=n}function PN(e){return eal(YE(Ts(e)?eaL(e):e))}function PP(e,t){return ME(Rx(e.d),Rx(t.d))}function PR(e,t){return t==(eYu(),tbY)?e.c:e.d}function Pj(){Pj=A,tuu=(eYu(),tbY),tuc=tby}function PF(){this.b=gP(LV(epB((eCk(),e9N))))}function PY(e){return _w(),Je(e1R,eUp,1,e,5,1)}function PB(e){return new kl(e.c+e.b,e.d+e.a)}function PU(e,t){return _C(),ME(e.d.p,t.d.p)}function PH(e){return A6(0!=e.b),etw(e,e.a.a)}function P$(e){return A6(0!=e.b),etw(e,e.c.b)}function Pz(e,t){if(!e)throw p7(new gS(t))}function PG(e,t){if(!e)throw p7(new gL(t))}function PW(e,t,n){Se.call(this,e,t),this.b=n}function PK(e,t,n){k8.call(this,e,t),this.c=n}function PV(e,t,n){etn.call(this,t,n),this.d=e}function Pq(e){Dt(),sr.call(this),this.th(e)}function PZ(e,t,n){this.a=e,xQ.call(this,t,n)}function PX(e,t,n){this.a=e,xQ.call(this,t,n)}function PJ(e,t,n){k8.call(this,e,t),this.c=n}function PQ(){ZE(),BY.call(this,(_Q(),tgp))}function P1(e){return null!=e&&!efz(e,tm1,tm0)}function P0(e,t){return(elt(e)<<4|elt(t))&eHd}function P2(e,t){return U_(),eb2(e,t),new Uf(e,t)}function P3(e,t){var n;e.n&&(n=t,P_(e.f,n))}function P4(e,t,n){var r;ee3(e,t,r=new B_(n))}function P5(e,t){var n;return n=e.c,ers(e,t),n}function P6(e,t){return t<0?e.g=-1:e.g=t,e}function P9(e,t){return etN(e),e.a*=t,e.b*=t,e}function P8(e,t,n,r,i){e.c=t,e.d=n,e.b=r,e.a=i}function P7(e,t){return qQ(e,t,e.c.b,e.c),!0}function Re(e){e.a.b=e.b,e.b.a=e.a,e.a=e.b=null}function Rt(e){this.b=e,this.a=Fc(this.b.a).Ed()}function Rn(e,t){this.b=e,this.a=t,ci.call(this)}function Rr(e,t){this.a=e,this.b=t,ci.call(this)}function Ri(e,t){F$.call(this,t,1040),this.a=e}function Ra(e){return 0==e||isNaN(e)?e:e<0?-1:1}function Ro(e){return HR(),e_I(e)==z$(e_P(e))}function Rs(e){return HR(),e_P(e)==z$(e_I(e))}function Ru(e,t){return eyE(e,new Se(t.a,t.b))}function Rc(e){return!q8(e)&&e.c.i.c==e.d.i.c}function Rl(e){var t;return t=e.n,e.a.b+t.d+t.a}function Rf(e){var t;return t=e.n,e.e.b+t.d+t.a}function Rd(e){var t;return t=e.n,e.e.a+t.b+t.c}function Rh(e){return eBG(),++tyv,new jb(0,e)}function Rp(e){return e.a?e.a:Hh(e)}function Rb(e){if(!e)throw p7(new gA(null))}function Rm(){Rm=A,tvm=(Hj(),new fB(eQU))}function Rg(){Rg=A,new ebw((m2(),e0d),(m3(),e0f))}function Rv(){Rv=A,e0B=Je(e15,eUP,19,256,0,1)}function Ry(e,t,n,r){ef3.call(this,e,t,n,r,0,0)}function Rw(e,t,n){return Um(e.b,Pp(n.b,17),t)}function R_(e,t,n){return Um(e.b,Pp(n.b,17),t)}function RE(e,t){return P_(e,new kl(t.a,t.b))}function RS(e,t){return e.c=t)throw p7(new bj)}function FR(e,t,n){return Bc(t,0,R5(t[0],n[0])),t}function Fj(e,t,n){t.Ye(n,gP(LV(Bp(e.b,n)))*e.a)}function FF(e,t,n){return eLG(),eiq(e,t)&&eiq(e,n)}function FY(e){return ekU(),!e.Hc(tbp)&&!e.Hc(tbm)}function FB(e){return new kl(e.c+e.b/2,e.d+e.a/2)}function FU(e,t){return t.kh()?ecv(e.b,Pp(t,49)):t}function FH(e,t){this.e=e,this.d=(64&t)!=0?t|eUR:t}function F$(e,t){this.c=0,this.d=e,this.b=64|t|eUR}function Fz(e){this.b=new XM(11),this.a=(HF(),e)}function FG(e){this.b=null,this.a=(HF(),e||e2s)}function FW(e){this.a=ebb(e.a),this.b=new I4(e.b)}function FK(e){this.b=e,AF.call(this,e),Op(this)}function FV(e){this.b=e,AB.call(this,e),Ob(this)}function Fq(e,t,n){this.a=e,Ia.call(this,t,n,5,6)}function FZ(e,t,n,r){this.b=e,O_.call(this,t,n,r)}function FX(e,t,n,r,i){JB.call(this,e,t,n,r,i,-1)}function FJ(e,t,n,r,i){JU.call(this,e,t,n,r,i,-1)}function FQ(e,t,n,r){O_.call(this,e,t,n),this.b=r}function F1(e,t,n,r){PK.call(this,e,t,n),this.b=r}function F0(e){k7.call(this,e,!1),this.a=!1}function F2(e,t){this.b=e,lm.call(this,e.b),this.a=t}function F3(e,t){Bx(),wj.call(this,e,ecT(new g$(t)))}function F4(e,t){return eBG(),++tyv,new BR(e,t,0)}function F5(e,t){return eBG(),++tyv,new BR(6,e,t)}function F6(e,t){return IE(e.substr(0,t.length),t)}function F9(e,t){return xd(t)?$r(e,t):!!$I(e.f,t)}function F8(e,t){for(BJ(t);e.Ob();)t.td(e.Pb())}function F7(e,t,n){eLQ(),this.e=e,this.d=t,this.a=n}function Ye(e,t,n,r){var i;(i=e.i).i=t,i.a=n,i.b=r}function Yt(e){var t;for(t=e;t.f;)t=t.f;return t}function Yn(e){var t;return A6(null!=(t=eso(e))),t}function Yr(e){var t;return A6(null!=(t=elT(e))),t}function Yi(e,t){var n;return ZQ(t,n=e.a.gc()),n-t}function Ya(e,t){var n;for(n=0;n0?eB4.Math.log(e/t):-100}function YM(e,t){return 0>ecd(e,t)?-1:ecd(e,t)>0?1:0}function YO(e,t,n){return ePQ(e,Pp(t,46),Pp(n,167))}function YA(e,t){return Pp(Ff(Fc(e.a)).Xb(t),42).cd()}function YL(e,t){return eto(t,e.length),new Ri(e,t)}function YC(e,t){this.d=e,Ow.call(this,e),this.e=t}function YI(e){this.d=(BJ(e),e),this.a=0,this.c=eUY}function YD(e,t){pJ.call(this,1),this.a=e,this.b=t}function YN(e,t){return e.c?YN(e.c,t):P_(e.b,t),e}function YP(e,t,n){var r;return r=eep(e,t),V7(e,t,n),r}function YR(e,t){var n;return QO(n=e.slice(0,t),e)}function Yj(e,t,n){var r;for(r=0;r=e.g}function BL(e,t,n){var r;return r=er$(e,t,n),eCK(e,r)}function BC(e,t){var n;n=e.a.length,eep(e,n),V7(e,n,t)}function BI(e,t){var n;(n=console[e]).call(console,t)}function BD(e,t){var n;++e.j,n=e.Vi(),e.Ii(e.oi(n,t))}function BN(e,t,n){Pp(t.b,65),ety(t.a,new N6(e,n,t))}function BP(e,t,n){p$.call(this,t),this.a=e,this.b=n}function BR(e,t,n){pJ.call(this,e),this.a=t,this.b=n}function Bj(e,t,n){this.a=e,pH.call(this,t),this.b=n}function BF(e,t,n){this.a=e,K3.call(this,8,t,null,n)}function BY(e){this.a=(BJ(eJ7),eJ7),this.b=e,new mP}function BB(e){this.c=e,this.b=this.c.a,this.a=this.c.e}function BU(e){this.c=e,this.b=e.a.d.a,LR(e.a.e,this)}function BH(e){A4(-1!=e.c),e.d.$c(e.c),e.b=e.c,e.c=-1}function B$(e){return eB4.Math.sqrt(e.a*e.a+e.b*e.b)}function Bz(e,t){return FP(t,e.a.c.length),RJ(e.a,t)}function BG(e,t){return xc(e)===xc(t)||null!=e&&ecX(e,t)}function BW(e){return 0>=e?new _e:erg(e-1)}function BK(e){return!!tyb&&$r(tyb,e)}function BV(e){return e?e.dc():!e.Kc().Ob()}function Bq(e){return!e.a&&e.c?e.c.b:e.a}function BZ(e){return e.a||(e.a=new O_(e6f,e,4)),e.a}function BX(e){return e.d||(e.d=new O_(tgr,e,1)),e.d}function BJ(e){if(null==e)throw p7(new bM);return e}function BQ(e){e.c?e.c.He():(e.d=!0,eAA(e))}function B1(e){e.c?B1(e.c):(el3(e),e.d=!0)}function B0(e){UG(e.a),e.b=Je(e1R,eUp,1,e.b.length,5,1)}function B2(e,t){return ME(t.j.c.length,e.j.c.length)}function B3(e,t){e.c<0||e.b.b=0?e.Bh(n):ekN(e,t)}function B5(e){var t,n;return(t=e.c.i.c)==(n=e.d.i.c)}function B6(e){if(4!=e.p)throw p7(new bT);return e.e}function B9(e){if(3!=e.p)throw p7(new bT);return e.e}function B8(e){if(6!=e.p)throw p7(new bT);return e.f}function B7(e){if(6!=e.p)throw p7(new bT);return e.k}function Ue(e){if(3!=e.p)throw p7(new bT);return e.j}function Ut(e){if(4!=e.p)throw p7(new bT);return e.j}function Un(e){return e.b||(e.b=new pG(new mR)),e.b}function Ur(e){return -2==e.c&&fd(e,e_d(e.g,e.b)),e.c}function Ui(e,t){var n;return(n=Y6("",e)).n=t,n.i=1,n}function Ua(e,t){jB(Pp(t.b,65),e),ety(t.a,new dv(e))}function Uo(e,t){JL((e.a||(e.a=new C_(e,e)),e.a),t)}function Us(e,t){this.b=e,YC.call(this,e,t),Op(this)}function Uu(e,t){this.b=e,IB.call(this,e,t),Ob(this)}function Uc(e,t,n,r){wD.call(this,e,t),this.d=n,this.a=r}function Ul(e,t,n,r){wD.call(this,e,n),this.a=t,this.f=r}function Uf(e,t){MK.call(this,erv(Y9(e),Y9(t))),this.a=t}function Ud(){e_w.call(this,eQB,(yA(),tvE)),ejt(this)}function Uh(){e_w.call(this,eQc,(yO(),tgg)),eP3(this)}function Up(){wC.call(this,"DELAUNAY_TRIANGULATION",0)}function Ub(e){return String.fromCharCode.apply(null,e)}function Um(e,t,n){return xd(t)?Ge(e,t,n):eS9(e.f,t,n)}function Ug(e){return Hj(),e?e.ve():(HF(),HF(),e2c)}function Uv(e,t,n){return eoM(),n.pg(e,Pp(t.cd(),146))}function Uy(e,t){return Rg(),new ebw(new OK(e),new OW(t))}function Uw(e){return enG(e,eU6),ee1(eft(eft(5,e),e/10|0))}function U_(){U_=A,e0p=new gt(eow(vx(e1$,1),eUK,42,0,[]))}function UE(e){return e.d||(e.d=new fF(e.c.Cc())),e.d}function US(e){return e.a||(e.a=new vp(e.c.vc())),e.a}function Uk(e){return e.b||(e.b=new vd(e.c.ec())),e.b}function Ux(e,t){for(;t-- >0;)e=e<<1|(e<0?1:0);return e}function UT(e,t){return xc(e)===xc(t)||null!=e&&ecX(e,t)}function UM(e,t){return OQ(),Pp(t.b,19).ar&&++r,r}function Hl(e){var t,n;return etV(n=t=new p5,e),n}function Hf(e){var t,n;return e_U(n=t=new p5,e),n}function Hd(e,t){var n;return n=Bp(e.f,t),eiX(t,n),null}function Hh(e){var t;return(t=erw(e))?t:null}function Hp(e){return e.b||(e.b=new FQ(e6g,e,12,3)),e.b}function Hb(e){return null!=e&&wZ(tm$,e.toLowerCase())}function Hm(e,t){return elN(jl(e)*jc(e),jl(t)*jc(t))}function Hg(e,t){return elN(jl(e)*jc(e),jl(t)*jc(t))}function Hv(e,t){return elN(e.d.c+e.d.b/2,t.d.c+t.d.b/2)}function Hy(e,t){return elN(e.g.c+e.g.b/2,t.g.c+t.g.b/2)}function Hw(e,t,n){n.a?ens(e,t.b-e.f/2):eno(e,t.a-e.g/2)}function H_(e,t,n,r){this.a=e,this.b=t,this.c=n,this.d=r}function HE(e,t,n,r){this.a=e,this.b=t,this.c=n,this.d=r}function HS(e,t,n,r){this.e=e,this.a=t,this.c=n,this.d=r}function Hk(e,t,n,r){this.a=e,this.c=t,this.d=n,this.b=r}function Hx(e,t,n,r){Ml(),ZU.call(this,t,n,r),this.a=e}function HT(e,t,n,r){Ml(),ZU.call(this,t,n,r),this.a=e}function HM(e,t){this.a=e,LQ.call(this,e,Pp(e.d,15).Zc(t))}function HO(e){this.f=e,this.c=this.f.e,e.f>0&&evH(this)}function HA(e,t,n,r){this.b=e,this.c=r,xj.call(this,t,n)}function HL(e){return A6(e.b=0&&IE(e.substr(n,t.length),t)}function $N(e,t,n,r,i,a,o){return new qu(e.e,t,n,r,i,a,o)}function $P(e,t,n,r,i,a){this.a=e,en1.call(this,t,n,r,i,a)}function $R(e,t,n,r,i,a){this.a=e,en1.call(this,t,n,r,i,a)}function $j(e,t){this.g=e,this.d=eow(vx(e4N,1),eGW,10,0,[t])}function $F(e,t){this.e=e,this.a=e1R,this.b=eCz(t),this.c=t}function $Y(e,t){CK.call(this),etk(this),this.a=e,this.c=t}function $B(e,t,n,r){Bc(e.c[t.g],n.g,r),Bc(e.c[n.g],t.g,r)}function $U(e,t,n,r){Bc(e.c[t.g],t.g,n),Bc(e.b[t.g],t.g,r)}function $H(){return Xo(),eow(vx(e5u,1),eU4,376,0,[tsH,tsU])}function $$(){return Qx(),eow(vx(e40,1),eU4,479,0,[ttt,tte])}function $z(){return eeF(),eow(vx(e4J,1),eU4,419,0,[teZ,teX])}function $G(){return Jp(),eow(vx(e4V,1),eU4,422,0,[teD,teN])}function $W(){return K6(),eow(vx(e49,1),eU4,420,0,[ttR,ttj])}function $K(){return Q0(),eow(vx(e5a,1),eU4,421,0,[tsL,tsC])}function $V(){return qG(),eow(vx(e5v,1),eU4,523,0,[tuf,tul])}function $q(){return Xa(),eow(vx(e5k,1),eU4,520,0,[tuH,tuU])}function $Z(){return zs(),eow(vx(e5E,1),eU4,516,0,[tuw,tuy])}function $X(){return zQ(),eow(vx(e5S,1),eU4,515,0,[tuE,tuS])}function $J(){return zo(),eow(vx(e5x,1),eU4,455,0,[tuq,tuZ])}function $Q(){return Kn(),eow(vx(e5C,1),eU4,425,0,[tcH,tcU])}function $1(){return z1(),eow(vx(e5L,1),eU4,480,0,[tcF,tcY])}function $0(){return erZ(),eow(vx(e5I,1),eU4,495,0,[tcq,tcZ])}function $2(){return J0(),eow(vx(e5N,1),eU4,426,0,[tc2,tc3])}function $3(){return eoT(),eow(vx(e5V,1),eU4,429,0,[tdt,tde])}function $4(){return Xs(),eow(vx(e5G,1),eU4,430,0,[tfw,tfy])}function $5(){return epC(),eow(vx(e2Q,1),eU4,428,0,[e3f,e3l])}function $6(){return eeR(),eow(vx(e21,1),eU4,427,0,[e3h,e3p])}function $9(){return eej(),eow(vx(e4E,1),eU4,424,0,[e9f,e9d])}function $8(){return erq(),eow(vx(e4F,1),eU4,511,0,[e8W,e8G])}function $7(e,t,n,r){return n>=0?e.jh(t,n,r):e.Sg(null,n,r)}function ze(e){return 0==e.b.b?e.a.$e():PH(e.b)}function zt(e){if(5!=e.p)throw p7(new bT);return jE(e.f)}function zn(e){if(5!=e.p)throw p7(new bT);return jE(e.k)}function zr(e){return xc(e.a)===xc((eiM(),tgW))&&eR1(e),e.a}function zi(e){this.a=Pp(Y9(e),271),this.b=(Hj(),new O4(e))}function za(e,t){l5(this,new kl(e.a,e.b)),l6(this,Pv(t))}function zo(){zo=A,tuq=new SK(ezt,0),tuZ=new SK(ezn,1)}function zs(){zs=A,tuw=new Sz(ezn,0),tuy=new Sz(ezt,1)}function zu(){m9.call(this,new w8(ee0(12))),Oq(!0),this.a=2}function zc(e,t,n){eBG(),pJ.call(this,e),this.b=t,this.a=n}function zl(e,t,n){Ml(),p$.call(this,t),this.a=e,this.b=n}function zf(e){CK.call(this),etk(this),this.a=e,this.c=!0}function zd(e){var t;t=e.c.d.b,e.b=t,e.a=e.c.d,t.a=e.c.d.b=e}function zh(e){var t;enZ(e.a),TW(e.a),efJ(t=new dp(e.a))}function zp(e,t){eC_(e,!0),ety(e.e.wf(),new Dx(e,!0,t))}function zb(e,t){return qe(t),enL(e,Je(ty_,eHT,25,t,15,1),t)}function zm(e,t){return HR(),e==z$(e_I(t))||e==z$(e_P(t))}function zg(e,t){return null==t?xu($I(e.f,null)):Ea(e.g,t)}function zv(e){return 0==e.b?null:(A6(0!=e.b),etw(e,e.a.a))}function zy(e){return 0|Math.max(Math.min(e,eUu),-2147483648)}function zw(e,t){var n=e0w[e.charCodeAt(0)];return null==n?e:n}function z_(e,t){return H5(e,"set1"),H5(t,"set2"),new wF(e,t)}function zE(e,t){var n;return C5(Ld(n=et$(e.f,t)),e.f.d)}function zS(e,t){var n,r;return ej4(e,n=t,r=new H),r.d}function zk(e,t,n,r){var i;i=new CQ,t.a[n.g]=i,jT(e.b,r,i)}function zx(e,t,n){var r;(r=e.Yg(t))>=0?e.sh(r,n):eOh(e,t,n)}function zT(e,t,n){z0(),e&&Um(tmj,e,t),e&&Um(tmR,e,n)}function zM(e,t,n){this.i=new p0,this.b=e,this.g=t,this.a=n}function zO(e,t,n){this.c=new p0,this.e=e,this.f=t,this.b=n}function zA(e,t,n){this.a=new p0,this.e=e,this.f=t,this.c=n}function zL(e,t){MV(this),this.f=t,this.g=e,HD(this),this._d()}function zC(e,t){var n;n=e.q.getHours(),e.q.setDate(t),eNq(e,n)}function zI(e,t){var n;for(Y9(t),n=e.a;n;n=n.c)t.Od(n.g,n.i)}function zD(e){var t;return esb(t=new yF(ee0(e.length)),e),t}function zN(e){function t(){}return t.prototype=e||{},new t}function zP(e,t){return!!eos(e,t)&&(enP(e),!0)}function zR(e,t){if(null==t)throw p7(new bM);return ehF(e,t)}function zj(e){return e.qe()?null:(0,eUt[e.n])}function zF(e){return e.Db>>16!=3?null:Pp(e.Cb,33)}function zY(e){return e.Db>>16!=9?null:Pp(e.Cb,33)}function zB(e){return e.Db>>16!=6?null:Pp(e.Cb,79)}function zU(e){return e.Db>>16!=7?null:Pp(e.Cb,235)}function zH(e){return e.Db>>16!=7?null:Pp(e.Cb,160)}function z$(e){return e.Db>>16!=11?null:Pp(e.Cb,33)}function zz(e,t){var n;return(n=e.Yg(t))>=0?e.lh(n):exu(e,t)}function zG(e,t){var n;return n=new RZ(t),e_h(n,e),new I4(n)}function zW(e){var t;return t=e.d,t=e.si(e.f),JL(e,t),t.Ob()}function zK(e,t){return e.b+=t.b,e.c+=t.c,e.d+=t.d,e.a+=t.a,e}function zV(e,t){return eB4.Math.abs(e)0}function zZ(){this.a=new Tw,this.e=new bV,this.g=0,this.i=0}function zX(e){this.a=e,this.b=Je(e5b,eUP,1944,e.e.length,0,2)}function zJ(e,t,n){var r;r=esg(e,t,n),e.b=new erH(r.c.length)}function zQ(){zQ=A,tuE=new S$(ezh,0),tuS=new S$("UP",1)}function z1(){z1=A,tcF=new SJ(eV2,0),tcY=new SJ("FAN",1)}function z0(){z0=A,tmj=new p2,tmR=new p2,xa(e0r,new o8)}function z2(e){if(0!=e.p)throw p7(new bT);return xg(e.f,0)}function z3(e){if(0!=e.p)throw p7(new bT);return xg(e.k,0)}function z4(e){return e.Db>>16!=3?null:Pp(e.Cb,147)}function z5(e){return e.Db>>16!=6?null:Pp(e.Cb,235)}function z6(e){return e.Db>>16!=17?null:Pp(e.Cb,26)}function z9(e,t){var n=e.a=e.a||[];return n[t]||(n[t]=e.le(t))}function z8(e,t){var n;return null==(n=e.a.get(t))?[]:n}function z7(e,t){var n;n=e.q.getHours(),e.q.setMonth(t),eNq(e,n)}function Ge(e,t,n){return null==t?eS9(e.f,null,n):efi(e.g,t,n)}function Gt(e,t,n,r,i,a){return new Q$(e.e,t,e.aj(),n,r,i,a)}function Gn(e,t,n){return e.a=Az(e.a,0,t)+""+n+xy(e.a,t),e}function Gr(e,t,n){return P_(e.a,(U_(),eb2(t,n),new wD(t,n))),e}function Gi(e){return OX(e.c),e.e=e.a=e.c,e.c=e.c.c,++e.d,e.a.f}function Ga(e){return OX(e.e),e.c=e.a=e.e,e.e=e.e.e,--e.d,e.a.f}function Go(e,t){e.d&&QA(e.d.e,e),e.d=t,e.d&&P_(e.d.e,e)}function Gs(e,t){e.c&&QA(e.c.g,e),e.c=t,e.c&&P_(e.c.g,e)}function Gu(e,t){e.c&&QA(e.c.a,e),e.c=t,e.c&&P_(e.c.a,e)}function Gc(e,t){e.i&&QA(e.i.j,e),e.i=t,e.i&&P_(e.i.j,e)}function Gl(e,t,n){this.a=t,this.c=e,this.b=(Y9(n),new I4(n))}function Gf(e,t,n){this.a=t,this.c=e,this.b=(Y9(n),new I4(n))}function Gd(e,t){this.a=e,this.c=MB(this.a),this.b=new $g(t)}function Gh(e){var t;return el3(e),t=new bV,UJ(e,new di(t))}function Gp(e,t){if(e<0||e>t)throw p7(new gE(e$O+e+e$A+t))}function Gb(e,t){return jR(e.a,t)?Yl(e,Pp(t,22).g,null):null}function Gm(e){return euQ(),OQ(),0!=Pp(e.a,81).d.e}function Gg(){Gg=A,e0g=euY((m5(),eow(vx(e1W,1),eU4,538,0,[e0m])))}function Gv(){Gv=A,ts2=j0(new K2,(e_x(),e8i),(eB$(),e7N))}function Gy(){Gy=A,ts3=j0(new K2,(e_x(),e8i),(eB$(),e7N))}function Gw(){Gw=A,ts5=j0(new K2,(e_x(),e8i),(eB$(),e7N))}function G_(){G_=A,tuh=RI(new K2,(e_x(),e8i),(eB$(),e7o))}function GE(){GE=A,tug=RI(new K2,(e_x(),e8i),(eB$(),e7o))}function GS(){GS=A,tuv=RI(new K2,(e_x(),e8i),(eB$(),e7o))}function Gk(){Gk=A,tux=RI(new K2,(e_x(),e8i),(eB$(),e7o))}function Gx(){Gx=A,tcz=j0(new K2,(egR(),tu0),(eS_(),tu3))}function GT(e,t,n,r){this.c=e,this.d=r,GA(this,t),GL(this,n)}function GM(e){this.c=new _n,this.b=e.b,this.d=e.c,this.a=e.a}function GO(e){this.a=eB4.Math.cos(e),this.b=eB4.Math.sin(e)}function GA(e,t){e.a&&QA(e.a.k,e),e.a=t,e.a&&P_(e.a.k,e)}function GL(e,t){e.b&&QA(e.b.f,e),e.b=t,e.b&&P_(e.b.f,e)}function GC(e,t){BN(e,e.b,e.c),Pp(e.b.b,65),t&&Pp(t.b,65).b}function GI(e,t){elJ(e,t),M4(e.Cb,88)&&eko(Zd(Pp(e.Cb,88)),2)}function GD(e,t){M4(e.Cb,88)&&eko(Zd(Pp(e.Cb,88)),4),er3(e,t)}function GN(e,t){M4(e.Cb,179)&&(Pp(e.Cb,179).tb=null),er3(e,t)}function GP(e,t){return _4(),eec(t)?new RA(t,e):new xe(t,e)}function GR(e,t){var n,r;(r=null!=(n=t.c))&&BC(e,new B_(t.c))}function Gj(e){var t,n;return n=(yO(),t=new p5),etV(n,e),n}function GF(e){var t,n;return n=(yO(),t=new p5),etV(n,e),n}function GY(e,t){var n;return n=new By(e),t.c[t.c.length]=n,n}function GB(e,t){var n;return(n=Pp(ecA(HU(e.a),t),14))?n.gc():0}function GU(e){var t;return el3(e),etc(e,t=(HF(),HF(),e2u))}function GH(e){for(var t;;)if(t=e.Pb(),!e.Ob())return t}function G$(e,t){mK.call(this,new w8(ee0(e))),enG(t,eUN),this.a=t}function Gz(e,t,n){ec5(t,n,e.gc()),this.c=e,this.a=t,this.b=n-t}function GG(e,t,n){var r;ec5(t,n,e.c.length),r=n-t,yJ(e.c,t,r)}function GW(e,t){M7(e,jE(WM(Fv(t,24),e$b)),jE(WM(t,e$b)))}function GK(e,t){if(e<0||e>=t)throw p7(new gE(e$O+e+e$A+t))}function GV(e,t){if(e<0||e>=t)throw p7(new vf(e$O+e+e$A+t))}function Gq(e,t){this.b=(BJ(e),e),this.a=(t&eH0)==0?64|t|eUR:t}function GZ(e){TG(this),bF(this.a,esi(eB4.Math.max(8,e))<<1)}function GX(e){return esp(eow(vx(e50,1),eUP,8,0,[e.i.n,e.n,e.a]))}function GJ(){return eum(),eow(vx(e2L,1),eU4,132,0,[e2B,e2U,e2H])}function GQ(){return etx(),eow(vx(e26,1),eU4,232,0,[e3D,e3N,e3P])}function G1(){return Qs(),eow(vx(e27,1),eU4,461,0,[e3F,e3j,e3Y])}function G0(){return QQ(),eow(vx(e3t,1),eU4,462,0,[e3$,e3H,e3U])}function G2(){return ec4(),eow(vx(e4L,1),eU4,423,0,[e8x,e8k,e8S])}function G3(){return QJ(),eow(vx(e4S,1),eU4,379,0,[e94,e93,e95])}function G4(){return euJ(),eow(vx(e5e,1),eU4,378,0,[tsn,tsr,tsi])}function G5(){return en7(),eow(vx(e4q,1),eU4,314,0,[tej,teR,teF])}function G6(){return enB(),eow(vx(e4Z,1),eU4,337,0,[teB,teH,teU])}function G9(){return eoG(),eow(vx(e4Q,1),eU4,450,0,[te1,teQ,te0])}function G8(){return erX(),eow(vx(e4G,1),eU4,361,0,[tep,teh,ted])}function G7(){return Q1(),eow(vx(e46,1),eU4,303,0,[ttD,ttN,ttI])}function We(){return eaU(),eow(vx(e45,1),eU4,292,0,[ttA,ttL,ttO])}function Wt(){return enY(),eow(vx(e5o,1),eU4,452,0,[tsP,tsD,tsN])}function Wn(){return esn(),eow(vx(e5i,1),eU4,339,0,[tsM,tsT,tsO])}function Wr(){return ei0(),eow(vx(e5s,1),eU4,375,0,[tsj,tsF,tsY])}function Wi(){return eox(),eow(vx(e5f,1),eU4,377,0,[tsQ,ts1,tsJ])}function Wa(){return euy(),eow(vx(e5c,1),eU4,336,0,[tsz,tsG,tsW])}function Wo(){return eiO(),eow(vx(e5l,1),eU4,338,0,[tsZ,tsV,tsq])}function Ws(){return enU(),eow(vx(e5p,1),eU4,454,0,[tur,tui,tua])}function Wu(){return efx(),eow(vx(e5D,1),eU4,442,0,[tc1,tcJ,tcQ])}function Wc(){return eub(),eow(vx(e5P,1),eU4,380,0,[tc5,tc6,tc9])}function Wl(){return efS(),eow(vx(e5Y,1),eU4,381,0,[tlP,tlR,tlN])}function Wf(){return ei1(),eow(vx(e5j,1),eU4,293,0,[tlC,tlI,tlL])}function Wd(){return efk(),eow(vx(e5H,1),eU4,437,0,[tff,tfd,tfh])}function Wh(){return eck(),eow(vx(e57,1),eU4,334,0,[tpG,tpz,tpW])}function Wp(){return etT(),eow(vx(e56,1),eU4,272,0,[tp_,tpE,tpS])}function Wb(e,t){return eMw(e,t,M4(t,99)&&(Pp(t,18).Bb&eH3)!=0)}function Wm(e,t,n){var r;return(r=ePI(e,t,!1)).b<=t&&r.a<=n}function Wg(e,t,n){var r;(r=new ac).b=t,r.a=n,++t.b,P_(e.d,r)}function Wv(e,t){var n;return A3(!!(n=(BJ(e),e).g)),BJ(t),n(t)}function Wy(e,t){var n,r;return r=Yi(e,t),n=e.a.Zc(r),new wR(e,n)}function Ww(e){return e.Db>>16!=6?null:Pp(eTp(e),235)}function W_(e){if(2!=e.p)throw p7(new bT);return jE(e.f)&eHd}function WE(e){if(2!=e.p)throw p7(new bT);return jE(e.k)&eHd}function WS(e){return e.a==(ZE(),tvd)&&ff(e,eM0(e.g,e.b)),e.a}function Wk(e){return e.d==(ZE(),tvd)&&fh(e,eIj(e.g,e.b)),e.d}function Wx(e){return A6(e.ar?1:0}function WY(e,t){var n,r;return r=n=QP(t),Pp(Bp(e.c,r),19).a}function WB(e,t){var n;for(n=e+"";n.length0&&0==e.a[--e.d];);0==e.a[e.d++]&&(e.e=0)}function Kc(e){return e.a?0==e.e.length?e.a.a:e.a.a+""+e.e:e.c}function Kl(e){return!!e.a&&0!=QX(e.a.a).i&&!(e.b&&ebq(e.b))}function Kf(e){return!!e.u&&0!=qt(e.u.a).i&&!(e.n&&ebV(e.n))}function Kd(e){return Rj(e.e.Hd().gc()*e.c.Hd().gc(),16,new c9(e))}function Kh(e,t){return YM(eap(e.q.getTime()),eap(t.q.getTime()))}function Kp(e){return Pp(epg(e,Je(e4C,eGG,17,e.c.length,0,1)),474)}function Kb(e){return Pp(epg(e,Je(e4N,eGW,10,e.c.length,0,1)),193)}function Km(e){return GE(),!q8(e)&&!(!q8(e)&&e.c.i.c==e.d.i.c)}function Kg(e,t,n){var r;r=(Y9(e),new I4(e)),egT(new Gl(r,t,n))}function Kv(e,t,n){var r;r=(Y9(e),new I4(e)),egM(new Gf(r,t,n))}function Ky(e,t){var n;return n=1-t,e.a[n]=erj(e.a[n],n),erj(e,t)}function Kw(e,t){var n;e.e=new mQ,n=eLj(t),Mv(n,e.c),eLJ(e,n,0)}function K_(e,t,n,r){var i;(i=new od).a=t,i.b=n,i.c=r,P7(e.a,i)}function KE(e,t,n,r){var i;(i=new od).a=t,i.b=n,i.c=r,P7(e.b,i)}function KS(e){var t,n,r;return n=eI4(t=new YQ,e),eFg(t),r=n}function Kk(){var e,t,n;return P_(tg6,t=n=e=new p5),t}function Kx(e){return e.j.c=Je(e1R,eUp,1,0,5,1),UG(e.c),Uj(e.a),e}function KT(e){return(_L(),M4(e.g,10))?Pp(e.g,10):null}function KM(e){return!Uz(e).dc()&&(MI(e,new v),!0)}function KO(e){if(!("stack"in e))try{throw e}catch(t){}return e}function KA(e,t){if(e<0||e>=t)throw p7(new gE(eku(e,t)));return e}function KL(e,t,n){if(e<0||tn)throw p7(new gE(eE3(e,t,n)))}function KC(e,t){if(Yf(e.a,t),t.d)throw p7(new go(e$P));t.d=e}function KI(e,t){if(t.$modCount!=e.$modCount)throw p7(new bA)}function KD(e,t){return!!M4(t,42)&&emT(e.a,Pp(t,42))}function KN(e,t){return!!M4(t,42)&&emT(e.a,Pp(t,42))}function KP(e,t){return!!M4(t,42)&&emT(e.a,Pp(t,42))}function KR(e,t){return e.a<=e.b&&(t.ud(e.a++),!0)}function Kj(e){var t;return Ts(e)?-0==(t=e)?0:t:eem(e)}function KF(e){var t;return B1(e),t=new Y,yU(e.a,new dn(t)),t}function KY(e){var t;return B1(e),t=new F,yU(e.a,new dt(t)),t}function KB(e,t){this.a=e,fE.call(this,e),Gp(t,e.gc()),this.b=t}function KU(e){this.e=e,this.b=this.e.a.entries(),this.a=[]}function KH(e){return Rj(e.e.Hd().gc()*e.c.Hd().gc(),273,new c6(e))}function K$(e){return new XM((enG(e,eU6),ee1(eft(eft(5,e),e/10|0))))}function Kz(e){return Pp(epg(e,Je(e4j,eGK,11,e.c.length,0,1)),1943)}function KG(e,t,n){return n.f.c.length>0?YO(e.a,t,n):YO(e.b,t,n)}function KW(e,t,n){e.d&&QA(e.d.e,e),e.d=t,e.d&&jO(e.d.e,n,e)}function KK(e,t){eY5(t,e),PD(e.d),PD(Pp(e_k(e,(eBy(),taq)),207))}function KV(e,t){eY4(t,e),PI(e.d),PI(Pp(e_k(e,(eBy(),taq)),207))}function Kq(e,t){var n,r;return n=zR(e,t),r=null,n&&(r=n.fe()),r}function KZ(e,t){var n,r;return n=eep(e,t),r=null,n&&(r=n.ie()),r}function KX(e,t){var n,r;return n=zR(e,t),r=null,n&&(r=n.ie()),r}function KJ(e,t){var n,r;return n=zR(e,t),r=null,n&&(r=eSa(n)),r}function KQ(e,t,n){var r;return r=ehM(n),eIg(e.g,r,t),eIg(e.i,t,n),t}function K1(e,t,n){var r;r=ehl();try{return CO(e,t,n)}finally{Vx(r)}}function K0(e){var t;t=e.Wg(),this.a=M4(t,69)?Pp(t,69).Zh():t.Kc()}function K2(){mJ.call(this),this.j.c=Je(e1R,eUp,1,0,5,1),this.a=-1}function K3(e,t,n,r){this.d=e,this.n=t,this.g=n,this.o=r,this.p=-1}function K4(e,t,n,r){this.e=r,this.d=null,this.c=e,this.a=t,this.b=n}function K5(e,t,n){this.d=new hg(this),this.e=e,this.i=t,this.f=n}function K6(){K6=A,ttR=new S_(e$8,0),ttj=new S_("TOP_LEFT",1)}function K9(){K9=A,ts7=Uy(ell(1),ell(4)),ts8=Uy(ell(1),ell(2))}function K8(){K8=A,tfv=euY((_N(),eow(vx(e5z,1),eU4,551,0,[tfg])))}function K7(){K7=A,tfm=euY((_D(),eow(vx(e5$,1),eU4,482,0,[tfb])))}function Ve(){Ve=A,tf7=euY((_P(),eow(vx(e5K,1),eU4,530,0,[tf8])))}function Vt(){Vt=A,e6W=euY((_y(),eow(vx(e4w,1),eU4,481,0,[e6G])))}function Vn(){return eaY(),eow(vx(e3r,1),eU4,406,0,[e4c,e4o,e4s,e4u])}function Vr(){return Qu(),eow(vx(e2E,1),eU4,297,0,[e2D,e2N,e2P,e2R])}function Vi(){return ebe(),eow(vx(e4y,1),eU4,394,0,[e6U,e6B,e6H,e6$])}function Va(){return ep7(),eow(vx(e3i,1),eU4,323,0,[e4d,e4f,e4h,e4p])}function Vo(){return eok(),eow(vx(e4A,1),eU4,405,0,[e8f,e8p,e8d,e8h])}function Vs(){return eoE(),eow(vx(e4U,1),eU4,360,0,[e7Z,e7V,e7q,e7K])}function Vu(e,t,n,r){return M4(n,54)?new A7(e,t,n,r):new Fo(e,t,n,r)}function Vc(){return eoS(),eow(vx(e4$,1),eU4,411,0,[e79,e78,e77,tee])}function Vl(e){var t;return e.j==(eYu(),tbj)&&(t=eTt(e),Aa(t,tby))}function Vf(e,t){var n;Gs(n=t.a,t.c.d),Go(n,t.d.d),etH(n.a,e.n)}function Vd(e,t){return Pp(Af(FT(Pp(Zq(e.k,t),15).Oc(),tex)),113)}function Vh(e,t){return Pp(Af(FM(Pp(Zq(e.k,t),15).Oc(),tex)),113)}function Vp(e){return new Gq(eip(Pp(e.a.dd(),14).gc(),e.a.cd()),16)}function Vb(e){return M4(e,14)?Pp(e,14).dc():!e.Kc().Ob()}function Vm(e){return(_L(),M4(e.g,145))?Pp(e.g,145):null}function Vg(e){if(e.e.g!=e.b)throw p7(new bA);return!!e.c&&e.d>0}function Vv(e){return A6(e.b!=e.d.c),e.c=e.b,e.b=e.b.a,++e.a,e.c.c}function Vy(e,t){BJ(t),Bc(e.a,e.c,t),e.c=e.c+1&e.a.length-1,ega(e)}function Vw(e,t){BJ(t),e.b=e.b-1&e.a.length-1,Bc(e.a,e.b,t),ega(e)}function V_(e,t){var n;for(n=e.j.c.length;n0&&ePD(e.g,0,t,0,e.i),t}function VB(e,t){var n;return _5(),!(n=Pp(Bp(tmU,e),55))||n.wj(t)}function VU(e){if(1!=e.p)throw p7(new bT);return jE(e.f)<<24>>24}function VH(e){if(1!=e.p)throw p7(new bT);return jE(e.k)<<24>>24}function V$(e){if(7!=e.p)throw p7(new bT);return jE(e.k)<<16>>16}function Vz(e){if(7!=e.p)throw p7(new bT);return jE(e.f)<<16>>16}function VG(e){var t;for(t=0;e.Ob();)e.Pb(),t=eft(t,1);return ee1(t)}function VW(e,t){var n;return n=new vl,e.xd(n),n.a+="..",t.yd(n),n.a}function VK(e,t,n){var r;r=Pp(Bp(e.g,n),57),P_(e.a.c,new kD(t,r))}function VV(e,t,n){return F_(LV(xu($I(e.f,t))),LV(xu($I(e.f,n))))}function Vq(e,t,n){return eNA(e,t,n,M4(t,99)&&(Pp(t,18).Bb&eH3)!=0)}function VZ(e,t,n){return eN1(e,t,n,M4(t,99)&&(Pp(t,18).Bb&eH3)!=0)}function VX(e,t,n){return eMN(e,t,n,M4(t,99)&&(Pp(t,18).Bb&eH3)!=0)}function VJ(e,t){return e==(eEn(),e8N)&&t==e8N?4:e==e8N||t==e8N?8:32}function VQ(e,t){return xc(t)===xc(e)?"(this Map)":null==t?eUg:efF(t)}function V1(e,t){return Pp(null==t?xu($I(e.f,null)):Ea(e.g,t),281)}function V0(e,t,n){var r;return r=ehM(n),Um(e.b,r,t),Um(e.c,t,n),t}function V2(e,t){var n;for(n=t;n;)Lu(e,n.i,n.j),n=z$(n);return e}function V3(e,t){var n;return n=$a(Pb(new Qj(e,t))),RG(new Qj(e,t)),n}function V4(e,t){var n;return _4(),eEy(n=Pp(e,66).Mj(),t),n.Ok(t)}function V5(e,t,n,r,i){var a;a=eMW(i,n,r),P_(t,eS4(i,a)),e_X(e,i,t)}function V6(e,t,n){e.i=0,e.e=0,t!=n&&(esC(e,t,n),esL(e,t,n))}function V9(e,t){var n;n=e.q.getHours(),e.q.setFullYear(t+eHx),eNq(e,n)}function V8(e,t,n){if(n){var r=n.ee();e.a[t]=r(n)}else delete e.a[t]}function V7(e,t,n){n=n?n.ee()(n):void 0,e.a[t]=n}function qe(e){if(e<0)throw p7(new gI("Negative array size: "+e))}function qt(e){return e.n||(Zd(e),e.n=new j4(e,tgr,e),$E(e)),e.n}function qn(e){return A6(e.a=0&&e.a[n]===t[n];n--);return n<0}function qy(e,t){var n;return(euv(),0!=(n=e.j.g-t.j.g))?n:0}function qw(e,t){return(BJ(t),null!=e.a)?jN(t.Kb(e.a)):e2b}function q_(e){var t;return e?new RZ(e):(t=new Tw,ein(t,e),t)}function qE(e,t){var n;return t.b.Kb(QD(e,t.c.Ee(),n=new ds(t)))}function qS(e){ewP(),M7(this,jE(WM(Fv(e,24),e$b)),jE(WM(e,e$b)))}function qk(){qk=A,e3d=euY((epC(),eow(vx(e2Q,1),eU4,428,0,[e3f,e3l])))}function qx(){qx=A,e3b=euY((eeR(),eow(vx(e21,1),eU4,427,0,[e3h,e3p])))}function qT(){qT=A,e9h=euY((eej(),eow(vx(e4E,1),eU4,424,0,[e9f,e9d])))}function qM(){qM=A,e8K=euY((erq(),eow(vx(e4F,1),eU4,511,0,[e8W,e8G])))}function qO(){qO=A,teJ=euY((eeF(),eow(vx(e4J,1),eU4,419,0,[teZ,teX])))}function qA(){qA=A,ttn=euY((Qx(),eow(vx(e40,1),eU4,479,0,[ttt,tte])))}function qL(){qL=A,ts$=euY((Xo(),eow(vx(e5u,1),eU4,376,0,[tsH,tsU])))}function qC(){qC=A,tsI=euY((Q0(),eow(vx(e5a,1),eU4,421,0,[tsL,tsC])))}function qI(){qI=A,teP=euY((Jp(),eow(vx(e4V,1),eU4,422,0,[teD,teN])))}function qD(){qD=A,ttF=euY((K6(),eow(vx(e49,1),eU4,420,0,[ttR,ttj])))}function qN(){qN=A,tu$=euY((Xa(),eow(vx(e5k,1),eU4,520,0,[tuH,tuU])))}function qP(){qP=A,tud=euY((qG(),eow(vx(e5v,1),eU4,523,0,[tuf,tul])))}function qR(){qR=A,tu_=euY((zs(),eow(vx(e5E,1),eU4,516,0,[tuw,tuy])))}function qj(){qj=A,tuk=euY((zQ(),eow(vx(e5S,1),eU4,515,0,[tuE,tuS])))}function qF(){qF=A,tuX=euY((zo(),eow(vx(e5x,1),eU4,455,0,[tuq,tuZ])))}function qY(){qY=A,tc$=euY((Kn(),eow(vx(e5C,1),eU4,425,0,[tcH,tcU])))}function qB(){qB=A,tcX=euY((erZ(),eow(vx(e5I,1),eU4,495,0,[tcq,tcZ])))}function qU(){qU=A,tcB=euY((z1(),eow(vx(e5L,1),eU4,480,0,[tcF,tcY])))}function qH(){qH=A,tc4=euY((J0(),eow(vx(e5N,1),eU4,426,0,[tc2,tc3])))}function q$(){q$=A,tdn=euY((eoT(),eow(vx(e5V,1),eU4,429,0,[tdt,tde])))}function qz(){qz=A,tf_=euY((Xs(),eow(vx(e5G,1),eU4,430,0,[tfw,tfy])))}function qG(){qG=A,tuf=new Sj("UPPER",0),tul=new Sj("LOWER",1)}function qW(e,t){var n;H1(n=new gu,"x",t.a),H1(n,"y",t.b),BC(e,n)}function qK(e,t){var n;H1(n=new gu,"x",t.a),H1(n,"y",t.b),BC(e,n)}function qV(e,t){var n,r;r=!1;do n=eo6(e,t),r|=n;while(n)return r}function qq(e,t){var n,r;for(n=t,r=0;n>0;)r+=e.a[n],n-=n&-n;return r}function qZ(e,t){var n;for(n=t;n;)Lu(e,-n.i,-n.j),n=z$(n);return e}function qX(e,t){var n,r;for(BJ(t),r=e.Kc();r.Ob();)n=r.Pb(),t.td(n)}function qJ(e,t){var n;return n=t.cd(),new wD(n,e.e.pc(n,Pp(t.dd(),14)))}function qQ(e,t,n,r){var i;(i=new C).c=t,i.b=n,i.a=r,r.b=n.a=i,++e.b}function q1(e,t,n){var r;return r=(GK(t,e.c.length),e.c[t]),e.c[t]=n,r}function q0(e,t,n){return Pp(null==t?eS9(e.f,null,n):efi(e.g,t,n),281)}function q2(e){return e.c&&e.d?WH(e.c)+"->"+WH(e.d):"e_"+Ao(e)}function q3(e,t){return(el3(e),yK(new R1(e,new Qa(t,e.a)))).sd(e2z)}function q4(){return e_x(),eow(vx(e4k,1),eU4,356,0,[e8e,e8t,e8n,e8r,e8i])}function q5(){return eYu(),eow(vx(e6a,1),eGj,61,0,[tbF,tbw,tby,tbj,tbY])}function q6(e){return vg(),function(){return K1(e,this,arguments)}}function q9(){return Date.now?Date.now():(new Date).getTime()}function q8(e){return!!e.c&&!!e.d&&!!e.c.i&&e.c.i==e.d.i}function q7(e){if(!e.c.Sb())throw p7(new bC);return e.a=!0,e.c.Ub()}function Ze(e){e.i=0,Eb(e.b,null),Eb(e.c,null),e.a=null,e.e=null,++e.g}function Zt(e){El.call(this,null==e?eUg:efF(e),M4(e,78)?Pp(e,78):null)}function Zn(e){eBD(),p8(this),this.a=new _n,esJ(this,e),P7(this.a,e)}function Zr(){Tz(this),this.b=new kl(eHQ,eHQ),this.a=new kl(eH1,eH1)}function Zi(e,t){this.c=0,this.b=t,xR.call(this,e,17493),this.a=this.c}function Za(e){Zo(),!e2M&&(this.c=e,this.e=!0,this.a=new p0)}function Zo(){Zo=A,e2M=!0,e2x=!1,e2T=!1,e2A=!1,e2O=!1}function Zs(e,t){return!!M4(t,149)&&IE(e.c,Pp(t,149).c)}function Zu(e,t){var n;return n=0,e&&(n+=e.f.a/2),t&&(n+=t.f.a/2),n}function Zc(e,t){var n;return(n=Pp(eef(e.d,t),23))||Pp(eef(e.e,t),23)}function Zl(e){this.b=e,Ow.call(this,e),this.a=Pp(eaS(this.b.a,4),126)}function Zf(e){this.b=e,AY.call(this,e),this.a=Pp(eaS(this.b.a,4),126)}function Zd(e){return e.t||(e.t=new pR(e),elm(new gT(e),0,e.t)),e.t}function Zh(){return ec3(),eow(vx(e55,1),eU4,103,0,[tpv,tpg,tpm,tpb,tpy])}function Zp(){return epT(),eow(vx(e6n,1),eU4,249,0,[tbt,tbr,tp7,tbe,tbn])}function Zb(){return epx(),eow(vx(e5Q,1),eU4,175,0,[tdh,tdd,tdl,tdp,tdf])}function Zm(){return eEM(),eow(vx(e5W,1),eU4,316,0,[tfE,tfS,tfT,tfk,tfx])}function Zg(){return ebG(),eow(vx(e5n,1),eU4,315,0,[tsb,tsd,tsh,tsf,tsp])}function Zv(){return eb6(),eow(vx(e4X,1),eU4,335,0,[teG,tez,teK,teV,teW])}function Zy(){return eOB(),eow(vx(e5U,1),eU4,355,0,[tfo,tfa,tfu,tfs,tfc])}function Zw(){return ey4(),eow(vx(e4z,1),eU4,363,0,[ter,tea,teo,tei,ten])}function Z_(){return ef_(),eow(vx(e48,1),eU4,163,0,[tnj,tnD,tnN,tnP,tnR])}function ZE(){var e,t;ZE=A,tvf=(yO(),t=new bN),tvd=e=new mC}function ZS(e){var t;return!e.c&&M4(t=e.r,88)&&(e.c=Pp(t,26)),e.c}function Zk(e){return e.e=3,e.d=e.Yb(),2!=e.e&&(e.e=0,!0)}function Zx(e){var t,n,r;return t=e&eHH,Mk(t,n=e>>22&eHH,r=e<0?eH$:0)}function ZT(e){var t,n,r,i;for(r=0,i=(n=e).length;r0?ehe(e,t):eA8(e,-t)}function ZL(e,t){return 0==t||0==e.e?e:t>0?eA8(e,t):ehe(e,-t)}function ZC(e){if(eTk(e))return e.c=e.a,e.a.Pb();throw p7(new bC)}function ZI(e){var t,n;return t=e.c.i,n=e.d.i,t.k==(eEn(),e8C)&&n.k==e8C}function ZD(e){var t;return t=new $b,eaW(t,e),eo3(t,(eBy(),taR),null),t}function ZN(e,t,n){var r;return(r=e.Yg(t))>=0?e._g(r,n,!0):exk(e,t,n)}function ZP(e,t,n,r){var i;for(i=0;it)throw p7(new gE(eS1(e,t,"index")));return e}function Z1(e,t,n,r){var i;return i=Je(ty_,eHT,25,t,15,1),ewD(i,e,t,n,r),i}function Z0(e,t){var n;n=e.q.getHours()+(t/60|0),e.q.setMinutes(t),eNq(e,n)}function Z2(e,t){return eB4.Math.min(Jh(t.a,e.d.d.c),Jh(t.b,e.d.d.c))}function Z3(e,t){return xd(t)?null==t?eTx(e.f,null):eaK(e.g,t):eTx(e.f,t)}function Z4(e){this.c=e,this.a=new fz(this.c.a),this.b=new fz(this.c.b)}function Z5(){this.e=new p0,this.c=new p0,this.d=new p0,this.b=new p0}function Z6(){this.g=new bJ,this.b=new bJ,this.a=new p0,this.k=new p0}function Z9(e,t,n){this.a=e,this.c=t,this.d=n,P_(t.e,this),P_(n.b,this)}function Z8(e,t){xP.call(this,t.rd(),-6&t.qd()),BJ(e),this.a=e,this.b=t}function Z7(e,t){xR.call(this,t.rd(),-6&t.qd()),BJ(e),this.a=e,this.b=t}function Xe(e,t){xj.call(this,t.rd(),-6&t.qd()),BJ(e),this.a=e,this.b=t}function Xt(e,t,n){this.a=e,this.b=t,this.c=n,P_(e.t,this),P_(t.i,this)}function Xn(){this.b=new _n,this.a=new _n,this.b=new _n,this.a=new _n}function Xr(){Xr=A,tdx=new pO("org.eclipse.elk.labels.labelManager")}function Xi(){Xi=A,e7W=new Cm("separateLayerConnections",(eoE(),e7Z))}function Xa(){Xa=A,tuH=new SW("REGULAR",0),tuU=new SW("CRITICAL",1)}function Xo(){Xo=A,tsH=new SI("STACKED",0),tsU=new SI("SEQUENCED",1)}function Xs(){Xs=A,tfw=new S7("FIXED",0),tfy=new S7("CENTER_NODE",1)}function Xu(e,t){var n;return n=ejH(e,t),e.b=new erH(n.c.length),eRj(e,n)}function Xc(e,t,n){var r;return++e.e,--e.f,(r=Pp(e.d[t].$c(n),133)).dd()}function Xl(e){var t;return!e.a&&M4(t=e.r,148)&&(e.a=Pp(t,148)),e.a}function Xf(e){return e.a?e.e?Xf(e.e):null:e}function Xd(e,t){return e.pt.p?-1:0}function Xh(e,t){return BJ(t),e.c=0,"Initial capacity must not be negative")}function XO(){XO=A,e3R=euY((etx(),eow(vx(e26,1),eU4,232,0,[e3D,e3N,e3P])))}function XA(){XA=A,e3B=euY((Qs(),eow(vx(e27,1),eU4,461,0,[e3F,e3j,e3Y])))}function XL(){XL=A,e3z=euY((QQ(),eow(vx(e3t,1),eU4,462,0,[e3$,e3H,e3U])))}function XC(){XC=A,e2$=euY((eum(),eow(vx(e2L,1),eU4,132,0,[e2B,e2U,e2H])))}function XI(){XI=A,e96=euY((QJ(),eow(vx(e4S,1),eU4,379,0,[e94,e93,e95])))}function XD(){XD=A,e8T=euY((ec4(),eow(vx(e4L,1),eU4,423,0,[e8x,e8k,e8S])))}function XN(){XN=A,teY=euY((en7(),eow(vx(e4q,1),eU4,314,0,[tej,teR,teF])))}function XP(){XP=A,te$=euY((enB(),eow(vx(e4Z,1),eU4,337,0,[teB,teH,teU])))}function XR(){XR=A,te2=euY((eoG(),eow(vx(e4Q,1),eU4,450,0,[te1,teQ,te0])))}function Xj(){Xj=A,teb=euY((erX(),eow(vx(e4G,1),eU4,361,0,[tep,teh,ted])))}function XF(){XF=A,ttP=euY((Q1(),eow(vx(e46,1),eU4,303,0,[ttD,ttN,ttI])))}function XY(){XY=A,ttC=euY((eaU(),eow(vx(e45,1),eU4,292,0,[ttA,ttL,ttO])))}function XB(){XB=A,tsa=euY((euJ(),eow(vx(e5e,1),eU4,378,0,[tsn,tsr,tsi])))}function XU(){XU=A,tsB=euY((ei0(),eow(vx(e5s,1),eU4,375,0,[tsj,tsF,tsY])))}function XH(){XH=A,tsA=euY((esn(),eow(vx(e5i,1),eU4,339,0,[tsM,tsT,tsO])))}function X$(){X$=A,tsR=euY((enY(),eow(vx(e5o,1),eU4,452,0,[tsP,tsD,tsN])))}function Xz(){Xz=A,ts0=euY((eox(),eow(vx(e5f,1),eU4,377,0,[tsQ,ts1,tsJ])))}function XG(){XG=A,tsK=euY((euy(),eow(vx(e5c,1),eU4,336,0,[tsz,tsG,tsW])))}function XW(){XW=A,tsX=euY((eiO(),eow(vx(e5l,1),eU4,338,0,[tsZ,tsV,tsq])))}function XK(){XK=A,tuo=euY((enU(),eow(vx(e5p,1),eU4,454,0,[tur,tui,tua])))}function XV(){XV=A,tc0=euY((efx(),eow(vx(e5D,1),eU4,442,0,[tc1,tcJ,tcQ])))}function Xq(){Xq=A,tc8=euY((eub(),eow(vx(e5P,1),eU4,380,0,[tc5,tc6,tc9])))}function XZ(){XZ=A,tlj=euY((efS(),eow(vx(e5Y,1),eU4,381,0,[tlP,tlR,tlN])))}function XX(){XX=A,tlD=euY((ei1(),eow(vx(e5j,1),eU4,293,0,[tlC,tlI,tlL])))}function XJ(){XJ=A,tfp=euY((efk(),eow(vx(e5H,1),eU4,437,0,[tff,tfd,tfh])))}function XQ(){XQ=A,tpK=euY((eck(),eow(vx(e57,1),eU4,334,0,[tpG,tpz,tpW])))}function X1(){X1=A,tpk=euY((etT(),eow(vx(e56,1),eU4,272,0,[tp_,tpE,tpS])))}function X0(){return ewf(),eow(vx(e6r,1),eU4,98,0,[tbl,tbc,tbu,tba,tbs,tbo])}function X2(e,t){return e.o||(e.o=new JY((eBa(),tmy),e6O,e,0)),edG(e.o,t)}function X3(e){return e.g||(e.g=new o2),e.g.d||(e.g.d=new pD(e)),e.g.d}function X4(e){return e.g||(e.g=new o2),e.g.a||(e.g.a=new pN(e)),e.g.a}function X5(e){return e.g||(e.g=new o2),e.g.b||(e.g.b=new pI(e)),e.g.b}function X6(e){return e.g||(e.g=new o2),e.g.c||(e.g.c=new pP(e)),e.g.c}function X9(e,t,n){var r,i;for(r=0,i=new eaN(t,e);rn||t=0?e._g(n,!0,!0):exk(e,t,!0)}function JW(e,t){return elN(gP(LV(e_k(e,(eBU(),tnv)))),gP(LV(e_k(t,tnv))))}function JK(){JK=A,tcG=ehY(ehY(_G(new K2,(egR(),tuQ)),(eS_(),tu8)),tu4)}function JV(e,t,n){var r;return r=esg(e,t,n),e.b=new erH(r.c.length),eLI(e,r)}function Jq(e){if(e.b<=0)throw p7(new bC);return--e.b,e.a-=e.c.c,ell(e.a)}function JZ(e){var t;if(!e.a)throw p7(new UD);return t=e.a,e.a=z$(e.a),t}function JX(e){for(;!e.a;)if(!IM(e.c,new dr(e)))return!1;return!0}function JJ(e){var t;return(Y9(e),M4(e,198))?t=Pp(e,198):new lp(e)}function JQ(e){J1(),Pp(e.We((eBB(),thJ)),174).Fc((ekU(),tbb)),e.Ye(thX,null)}function J1(){J1=A,tdo=new os,tdu=new ou,tds=es0((eBB(),thX),tdo,thL,tdu)}function J0(){J0=A,tc2=new S2("LEAF_NUMBER",0),tc3=new S2("NODE_SIZE",1)}function J2(e,t,n){e.a=t,e.c=n,e.b.a.$b(),HC(e.d),e.e.a.c=Je(e1R,eUp,1,0,5,1)}function J3(e){e.a=Je(ty_,eHT,25,e.b+1,15,1),e.c=Je(ty_,eHT,25,e.b,15,1),e.d=0}function J4(e,t){e.a.ue(t.d,e.b)>0&&(P_(e.c,new PW(t.c,t.d,e.d)),e.b=t.d)}function J5(e,t){if(null==e.g||t>=e.i)throw p7(new xJ(t,e.i));return e.g[t]}function J6(e,t,n){if(euu(e,n),null!=n&&!e.wj(n))throw p7(new bS);return n}function J9(e){var t;if(e.Ek())for(t=e.i-1;t>=0;--t)etj(e,t);return VY(e)}function J8(e){var t,n;if(!e.b)return null;for(n=e.b;t=n.a[0];)n=t;return n}function J7(e,t){var n,r;return qe(t),(n=QO(r=e.slice(0,t),e)).length=t,n}function Qe(e,t,n,r){var i;r=(HF(),r||e2s),eS0(i=e.slice(t,n),e,t,n,-t,r)}function Qt(e,t,n,r,i){return t<0?exk(e,n,r):Pp(n,66).Nj().Pj(e,e.yh(),t,r,i)}function Qn(e){return M4(e,172)?""+Pp(e,172).a:null==e?null:efF(e)}function Qr(e){return M4(e,172)?""+Pp(e,172).a:null==e?null:efF(e)}function Qi(e,t){if(t.a)throw p7(new go(e$P));Yf(e.a,t),t.a=e,e.j||(e.j=t)}function Qa(e,t){xj.call(this,t.rd(),-16449&t.qd()),BJ(e),this.a=e,this.c=t}function Qo(e,t){var n,r;return r=t/e.c.Hd().gc()|0,n=t%e.c.Hd().gc(),X_(e,r,n)}function Qs(){Qs=A,e3F=new EY(ezt,0),e3j=new EY(e$8,1),e3Y=new EY(ezn,2)}function Qu(){Qu=A,e2D=new Ef("All",0),e2N=new TH,e2P=new ML,e2R=new T$}function Qc(){Qc=A,e2j=euY((Qu(),eow(vx(e2E,1),eU4,297,0,[e2D,e2N,e2P,e2R])))}function Ql(){Ql=A,e8b=euY((eok(),eow(vx(e4A,1),eU4,405,0,[e8f,e8p,e8d,e8h])))}function Qf(){Qf=A,e4l=euY((eaY(),eow(vx(e3r,1),eU4,406,0,[e4c,e4o,e4s,e4u])))}function Qd(){Qd=A,e4b=euY((ep7(),eow(vx(e3i,1),eU4,323,0,[e4d,e4f,e4h,e4p])))}function Qh(){Qh=A,e6z=euY((ebe(),eow(vx(e4y,1),eU4,394,0,[e6U,e6B,e6H,e6$])))}function Qp(){Qp=A,tu2=euY((egR(),eow(vx(e5T,1),eU4,393,0,[tuJ,tuQ,tu1,tu0])))}function Qb(){Qb=A,e7X=euY((eoE(),eow(vx(e4U,1),eU4,360,0,[e7Z,e7V,e7q,e7K])))}function Qm(){Qm=A,tlA=euY((emC(),eow(vx(e5R,1),eU4,340,0,[tlO,tlT,tlM,tlx])))}function Qg(){Qg=A,tet=euY((eoS(),eow(vx(e4$,1),eU4,411,0,[e79,e78,e77,tee])))}function Qv(){Qv=A,tsl=euY((ebk(),eow(vx(e5t,1),eU4,197,0,[tsu,tsc,tss,tso])))}function Qy(){Qy=A,tmo=euY((eup(),eow(vx(e6l,1),eU4,396,0,[tmr,tmi,tmn,tma])))}function Qw(){Qw=A,tpJ=euY((egF(),eow(vx(e6e,1),eU4,285,0,[tpX,tpV,tpq,tpZ])))}function Q_(){Q_=A,tpA=euY((efE(),eow(vx(e59,1),eU4,218,0,[tpO,tpT,tpx,tpM])))}function QE(){QE=A,tmt=euY((edM(),eow(vx(e6u,1),eU4,311,0,[tme,tb9,tb7,tb8])))}function QS(){QS=A,tbZ=euY((ed6(),eow(vx(e6o,1),eU4,374,0,[tbV,tbq,tbK,tbW])))}function Qk(){Qk=A,ePm(),tvq=eHQ,tvV=eH1,tvX=new fL(eHQ),tvZ=new fL(eH1)}function Qx(){Qx=A,ttt=new Sb(eGR,0),tte=new Sb("IMPROVE_STRAIGHTNESS",1)}function QT(e,t){return Pj(),P_(e,new kD(t,ell(t.e.c.length+t.g.c.length)))}function QM(e,t){return Pj(),P_(e,new kD(t,ell(t.e.c.length+t.g.c.length)))}function QO(e,t){return 10!=eeg(t)&&eow(esF(t),t.hm,t.__elementTypeId$,eeg(t),e),e}function QA(e,t){var n;return -1!=(n=QI(e,t,0))&&(ZV(e,n),!0)}function QL(e,t){var n;return(n=Pp(Z3(e.e,t),387))?(Re(n),n.e):null}function QC(e){var t;return Ts(e)&&!isNaN(t=0-e)?t:eal(eoQ(e))}function QI(e,t,n){for(;n=0?ebl(e,n,!0,!0):exk(e,t,!0)}function Q8(e,t){var n,r;return _L(),n=Vm(e),r=Vm(t),!!n&&!!r&&!ep5(n.k,r.k)}function Q7(e,t){eno(e,null==t||IX((BJ(t),t))||isNaN((BJ(t),t))?0:(BJ(t),t))}function eee(e,t){ens(e,null==t||IX((BJ(t),t))||isNaN((BJ(t),t))?0:(BJ(t),t))}function eet(e,t){ena(e,null==t||IX((BJ(t),t))||isNaN((BJ(t),t))?0:(BJ(t),t))}function een(e,t){eni(e,null==t||IX((BJ(t),t))||isNaN((BJ(t),t))?0:(BJ(t),t))}function eer(e){(this.q?this.q:(Hj(),Hj(),e2i)).Ac(e.q?e.q:(Hj(),Hj(),e2i))}function eei(e,t){return M4(t,99)&&(Pp(t,18).Bb&eH3)!=0?new x1(t,e):new eaN(t,e)}function eea(e,t){return M4(t,99)&&(Pp(t,18).Bb&eH3)!=0?new x1(t,e):new eaN(t,e)}function eeo(e,t){e4g=new e0,e4v=t,Pp((e4m=e).b,65),Jr(e4m,e4g,null),eRk(e4m)}function ees(e,t,n){var r;return r=e.g[t],Of(e,t,e.oi(t,n)),e.gi(t,n,r),e.ci(),r}function eeu(e,t){var n;return(n=e.Xc(t))>=0&&(e.$c(n),!0)}function eec(e){var t;return e.d!=e.r&&(t=evl(e),e.e=!!t&&t.Cj()==eJK,e.d=t),e.e}function eel(e,t){var n;for(Y9(e),Y9(t),n=!1;t.Ob();)n|=e.Fc(t.Pb());return n}function eef(e,t){var n;return(n=Pp(Bp(e.e,t),387))?(M6(e,n),n.e):null}function eed(e){var t,n;return(t=e/60|0,0==(n=e%60))?""+t:""+t+":"+n}function eeh(e,t){var n,r;return el3(e),r=new Xe(t,e.a),n=new IU(r),new R1(e,n)}function eep(e,t){var n=e.a[t],r=(eoW(),e0O)[typeof n];return r?r(n):euV(typeof n)}function eeb(e){switch(e.g){case 0:return eUu;case 1:return -1;default:return 0}}function eem(e){return 0>evy(e,(Q2(),e0D))?-As(eoQ(e)):e.l+e.m*eHG+e.h*eHW}function eeg(e){return null==e.__elementTypeCategory$?10:e.__elementTypeCategory$}function eev(e){var t;return null!=(t=0==e.b.c.length?null:RJ(e.b,0))&&erD(e,0),t}function eey(e,t){for(;t[0]=0;)++t[0]}function eew(e,t){this.e=t,this.a=eaJ(e),this.a<54?this.f=Kj(e):this.c=ep_(e)}function ee_(e,t,n,r){eBG(),pJ.call(this,26),this.c=e,this.a=t,this.d=n,this.b=r}function eeE(e,t,n){var r,i;for(i=0,r=10;ie.a[r]&&(r=n);return r}function eeI(e,t){var n;return 0==(n=efT(e.e.c,t.e.c))?elN(e.e.d,t.e.d):n}function eeD(e,t){return 0==t.e||0==e.e?e08:(exX(),eAl(e,t))}function eeN(e,t){if(!e)throw p7(new gL(eAL("Enum constant undefined: %s",t)))}function eeP(){eeP=A,e8v=new tp,e8y=new td,e8m=new ty,e8g=new tw,e8w=new t_}function eeR(){eeR=A,e3h=new ER("BY_SIZE",0),e3p=new ER("BY_SIZE_AND_SHAPE",1)}function eej(){eej=A,e9f=new EH("EADES",0),e9d=new EH("FRUCHTERMAN_REINGOLD",1)}function eeF(){eeF=A,teZ=new Sd("READING_DIRECTION",0),teX=new Sd("ROTATION",1)}function eeY(){eeY=A,teq=euY((eb6(),eow(vx(e4X,1),eU4,335,0,[teG,tez,teK,teV,teW])))}function eeB(){eeB=A,tsm=euY((ebG(),eow(vx(e5n,1),eU4,315,0,[tsb,tsd,tsh,tsf,tsp])))}function eeU(){eeU=A,tes=euY((ey4(),eow(vx(e4z,1),eU4,363,0,[ter,tea,teo,tei,ten])))}function eeH(){eeH=A,tnF=euY((ef_(),eow(vx(e48,1),eU4,163,0,[tnj,tnD,tnN,tnP,tnR])))}function ee$(){ee$=A,tfM=euY((eEM(),eow(vx(e5W,1),eU4,316,0,[tfE,tfS,tfT,tfk,tfx])))}function eez(){eez=A,tdb=euY((epx(),eow(vx(e5Q,1),eU4,175,0,[tdh,tdd,tdl,tdp,tdf])))}function eeG(){eeG=A,tfl=euY((eOB(),eow(vx(e5U,1),eU4,355,0,[tfo,tfa,tfu,tfs,tfc])))}function eeW(){eeW=A,e8a=euY((e_x(),eow(vx(e4k,1),eU4,356,0,[e8e,e8t,e8n,e8r,e8i])))}function eeK(){eeK=A,tpw=euY((ec3(),eow(vx(e55,1),eU4,103,0,[tpv,tpg,tpm,tpb,tpy])))}function eeV(){eeV=A,tbi=euY((epT(),eow(vx(e6n,1),eU4,249,0,[tbt,tbr,tp7,tbe,tbn])))}function eeq(){eeq=A,tbB=euY((eYu(),eow(vx(e6a,1),eGj,61,0,[tbF,tbw,tby,tbj,tbY])))}function eeZ(e,t){var n;return(n=Pp(Bp(e.a,t),134))||(n=new eX,Um(e.a,t,n)),n}function eeX(e){var t;return!!(t=Pp(e_k(e,(eBU(),ttU)),305))&&t.a==e}function eeJ(e){var t;return!!(t=Pp(e_k(e,(eBU(),ttU)),305))&&t.i==e}function eeQ(e,t){return BJ(t),FD(e),!!e.d.Ob()&&(t.td(e.d.Pb()),!0)}function ee1(e){return ecd(e,eUu)>0?eUu:0>ecd(e,eHt)?eHt:jE(e)}function ee0(e){return e<3?(enG(e,eU0),e+1):e=0&&t=-.01&&e.a<=ezs&&(e.a=0),e.b>=-.01&&e.b<=ezs&&(e.b=0),e}function ee5(e,t){return t==(I8(),I8(),e2p)?e.toLocaleLowerCase():e.toLowerCase()}function ee6(e){return((2&e.i)!=0?"interface ":(1&e.i)!=0?"":"class ")+(LW(e),e.o)}function ee9(e){var t,n;n=t=new mD,JL((e.q||(e.q=new FQ(tgi,e,11,10)),e.q),n)}function ee8(e,t){var n;return n=t>0?t-1:t,yr(yi(eny(P6(new mV,n),e.n),e.j),e.k)}function ee7(e,t,n,r){var i;e.j=-1,ex8(e,eSu(e,t,n),(_4(),(i=Pp(t,66).Mj()).Ok(r)))}function ete(e){this.g=e,this.f=new p0,this.a=eB4.Math.min(this.g.c.c,this.g.d.c)}function ett(e){this.b=new p0,this.a=new p0,this.c=new p0,this.d=new p0,this.e=e}function etn(e,t){this.a=new p2,this.e=new p2,this.b=(euJ(),tsi),this.c=e,this.b=t}function etr(e,t,n){CK.call(this),etk(this),this.a=e,this.c=n,this.b=t.d,this.f=t.e}function eti(e){this.d=e,this.c=e.c.vc().Kc(),this.b=null,this.a=null,this.e=(m5(),e0m)}function eta(e){if(e<0)throw p7(new gL("Illegal Capacity: "+e));this.g=this.ri(e)}function eto(e,t){if(0>e||e>t)throw p7(new va("fromIndex: 0, toIndex: "+e+e$m+t))}function ets(e){var t;if(e.a==e.b.a)throw p7(new bC);return t=e.a,e.c=t,e.a=e.a.e,t}function etu(e){var t;A4(!!e.c),t=e.c.a,etw(e.d,e.c),e.b==e.c?e.b=t:--e.a,e.c=null}function etc(e,t){var n;return el3(e),n=new HA(e,e.a.rd(),4|e.a.qd(),t),new R1(e,n)}function etl(e,t){var n,r;return(n=Pp(ecA(e.d,t),14))?(r=t,e.e.pc(r,n)):null}function etf(e,t){var n,r;for(r=e.Kc();r.Ob();)eo3(n=Pp(r.Pb(),70),(eBU(),tnt),t)}function etd(e){var t;return(t=gP(LV(e_k(e,(eBy(),tak)))))<0&&eo3(e,tak,t=0),t}function eth(e,t,n){var r;ev_(n,r=eB4.Math.max(0,e.b/2-.5),1),P_(t,new EJ(n,r))}function etp(e,t,n){var r;return zy(Ra(r=e.a.e[Pp(t.a,10).p]-e.a.e[Pp(n.a,10).p]))}function etb(e,t,n,r,i,a){var o;o=ZD(r),Gs(o,i),Go(o,a),exg(e.a,r,new DT(o,t,n.f))}function etm(e,t){var n;if(!(n=eAh(e.Tg(),t)))throw p7(new gL(eZV+t+eZX));return n}function etg(e,t){var n;for(n=e;z$(n);)if((n=z$(n))==t)return!0;return!1}function etv(e,t){var n,r,i;for(i=0,r=t.a.cd(),n=Pp(t.a.dd(),14).gc();i0&&(e.a/=t,e.b/=t),e}function etP(e){var t;return e.w?e.w:((t=Ww(e))&&!t.kh()&&(e.w=t),t)}function etR(e){var t;return null==e?null:e_e(t=Pp(e,190),t.length)}function etj(e,t){if(null==e.g||t>=e.i)throw p7(new xJ(t,e.i));return e.li(t,e.g[t])}function etF(e){var t,n;for(t=e.a.d.j,n=e.c.d.j;t!=n;)erC(e.b,t),t=elI(t);erC(e.b,t)}function etY(e){var t;for(t=0;t=14&&t<=16)),e}function etW(e,t,n){var r=function(){return e.apply(r,arguments)};return t.apply(r,n),r}function etK(e,t,n){var r,i;r=t;do i=gP(e.p[r.p])+n,e.p[r.p]=i,r=e.a[r.p];while(r!=t)}function etV(e,t){var n,r;r=e.a,n=elr(e,t,null),r==t||e.e||(n=eFr(e,t,n)),n&&n.Fi()}function etq(e,t){return Mc(),enj(eHe),eB4.Math.abs(e-t)<=eHe||e==t||isNaN(e)&&isNaN(t)}function etZ(e,t){return Mc(),enj(eHe),eB4.Math.abs(e-t)<=eHe||e==t||isNaN(e)&&isNaN(t)}function etX(e,t){return e_z(),ME(e.b.c.length-e.e.c.length,t.b.c.length-t.e.c.length)}function etJ(e,t){return yk(eif(e,t,jE(efn(eUJ,Ux(jE(efn(null==t?0:esj(t),eUQ)),15)))))}function etQ(){etQ=A,e8R=euY((eEn(),eow(vx(e4P,1),eU4,267,0,[e8N,e8D,e8C,e8P,e8I,e8L])))}function et1(){et1=A,tdJ=euY((eyY(),eow(vx(e54,1),eU4,291,0,[tdX,tdZ,tdq,tdK,tdW,tdV])))}function et0(){et0=A,tdD=euY((ebx(),eow(vx(e53,1),eU4,248,0,[tdM,tdL,tdC,tdI,tdO,tdA])))}function et2(){et2=A,teI=euY((eSg(),eow(vx(e4K,1),eU4,227,0,[teO,teL,teM,teA,teC,teT])))}function et3(){et3=A,ttm=euY((e_3(),eow(vx(e43,1),eU4,275,0,[ttp,ttf,ttb,tth,ttd,ttl])))}function et4(){et4=A,ttc=euY((eyd(),eow(vx(e42,1),eU4,274,0,[tto,tta,ttu,tti,tts,ttr])))}function et5(){et5=A,tst=euY((ewY(),eow(vx(e47,1),eU4,313,0,[to7,to9,to5,to6,tse,to8])))}function et6(){et6=A,te7=euY((eEf(),eow(vx(e41,1),eU4,276,0,[te4,te3,te6,te5,te8,te9])))}function et9(){et9=A,tu7=euY((eS_(),eow(vx(e5A,1),eU4,327,0,[tu8,tu4,tu6,tu5,tu9,tu3])))}function et8(){et8=A,tbv=euY((ekU(),eow(vx(e6i,1),eU4,273,0,[tbm,tbp,tbb,tbh,tbd,tbg])))}function et7(){et7=A,tpR=euY((e_a(),eow(vx(e58,1),eU4,312,0,[tpN,tpI,tpP,tpL,tpD,tpC])))}function ene(){return eT7(),eow(vx(e6t,1),eU4,93,0,[tp1,tpQ,tp2,tp9,tp6,tp5,tp3,tp4,tp0])}function ent(e,t){var n;n=e.a,e.a=t,(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new qo(e,0,n,e.a))}function enn(e,t){var n;n=e.b,e.b=t,(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new qo(e,1,n,e.b))}function enr(e,t){var n;n=e.b,e.b=t,(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new qo(e,3,n,e.b))}function eni(e,t){var n;n=e.f,e.f=t,(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new qo(e,3,n,e.f))}function ena(e,t){var n;n=e.g,e.g=t,(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new qo(e,4,n,e.g))}function eno(e,t){var n;n=e.i,e.i=t,(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new qo(e,5,n,e.i))}function ens(e,t){var n;n=e.j,e.j=t,(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new qo(e,6,n,e.j))}function enu(e,t){var n;n=e.j,e.j=t,(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new qo(e,1,n,e.j))}function enc(e,t){var n;n=e.c,e.c=t,(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new qo(e,4,n,e.c))}function enl(e,t){var n;n=e.k,e.k=t,(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new qo(e,2,n,e.k))}function enf(e,t){var n;n=e.d,e.d=t,(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new qs(e,2,n,e.d))}function end(e,t){var n;n=e.s,e.s=t,(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new qs(e,4,n,e.s))}function enh(e,t){var n;n=e.t,e.t=t,(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new qs(e,5,n,e.t))}function enp(e,t){var n;n=e.F,e.F=t,(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new FX(e,1,5,n,t))}function enb(e,t){var n;return(n=Pp(Bp((_5(),tmU),e),55))?n.xj(t):Je(e1R,eUp,1,t,5,1)}function enm(e,t){var n,r;return(n=t in e.a)&&(r=zR(e,t).he())?r.a:null}function eng(e,t){var n,r,i;return n=(r=(yT(),i=new o0),t&&eAu(r,t),r),eri(n,e),n}function env(e,t,n){if(euu(e,n),!e.Bk()&&null!=n&&!e.wj(n))throw p7(new bS);return n}function eny(e,t){return e.n=t,e.n?(e.f=new p0,e.e=new p0):(e.f=null,e.e=null),e}function enw(e,t,n,r,i,a){var o;return enA(n,o=Y6(e,t)),o.i=i?8:0,o.f=r,o.e=i,o.g=a,o}function en_(e,t,n,r,i){this.d=t,this.k=r,this.f=i,this.o=-1,this.p=1,this.c=e,this.a=n}function enE(e,t,n,r,i){this.d=t,this.k=r,this.f=i,this.o=-1,this.p=2,this.c=e,this.a=n}function enS(e,t,n,r,i){this.d=t,this.k=r,this.f=i,this.o=-1,this.p=6,this.c=e,this.a=n}function enk(e,t,n,r,i){this.d=t,this.k=r,this.f=i,this.o=-1,this.p=7,this.c=e,this.a=n}function enx(e,t,n,r,i){this.d=t,this.j=r,this.e=i,this.o=-1,this.p=4,this.c=e,this.a=n}function enT(e,t){var n,r,i,a;for(i=0,a=(r=t).length;i=0),0>ehP(e.d,e.c)&&(e.a=e.a-1&e.d.a.length-1,e.b=e.d.c),e.c=-1}function enR(e){return e.a<54?e.f<0?-1:e.f>0?1:0:(e.c||(e.c=euK(e.f)),e.c).e}function enj(e){if(!(e>=0))throw p7(new gL("tolerance ("+e+") must be >= 0"));return e}function enF(){return tdc||(tdc=new eC$,es4(tdc,eow(vx(e20,1),eUp,130,0,[new cZ]))),tdc}function enY(){enY=A,tsP=new SL(ezo,0),tsD=new SL("INPUT",1),tsN=new SL("OUTPUT",2)}function enB(){enB=A,teB=new Sl("ARD",0),teH=new Sl("MSD",1),teU=new Sl("MANUAL",2)}function enU(){enU=A,tur=new SR("BARYCENTER",0),tui=new SR(eG7,1),tua=new SR(eWe,2)}function enH(e,t){var n;if(n=e.gc(),t<0||t>n)throw p7(new Ii(t,n));return new IB(e,t)}function en$(e,t){var n;return M4(t,42)?e.c.Mc(t):(n=edG(e,t),ehx(e,t),n)}function enz(e,t,n){return eu2(e,t),er3(e,n),end(e,0),enh(e,1),els(e,!0),eli(e,!0),e}function enG(e,t){if(e<0)throw p7(new gL(t+" cannot be negative but was: "+e));return e}function enW(e,t){var n,r;for(n=0,r=e.gc();n0)?Pp(RJ(n.a,r-1),10):null}function ert(e,t){var n;n=e.k,e.k=t,(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new FX(e,1,2,n,e.k))}function ern(e,t){var n;n=e.f,e.f=t,(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new FX(e,1,8,n,e.f))}function err(e,t){var n;n=e.i,e.i=t,(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new FX(e,1,7,n,e.i))}function eri(e,t){var n;n=e.a,e.a=t,(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new FX(e,1,8,n,e.a))}function era(e,t){var n;n=e.b,e.b=t,(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new FX(e,1,0,n,e.b))}function ero(e,t){var n;n=e.b,e.b=t,(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new FX(e,1,0,n,e.b))}function ers(e,t){var n;n=e.c,e.c=t,(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new FX(e,1,1,n,e.c))}function eru(e,t){var n;n=e.c,e.c=t,(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new FX(e,1,1,n,e.c))}function erc(e,t){var n;n=e.c,e.c=t,(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new FX(e,1,4,n,e.c))}function erl(e,t){var n;n=e.d,e.d=t,(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new FX(e,1,1,n,e.d))}function erf(e,t){var n;n=e.D,e.D=t,(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new FX(e,1,2,n,e.D))}function erd(e,t){e.r>0&&e.c0&&0!=e.g&&erd(e.i,t/e.r*e.i.d))}function erh(e,t,n){var r;e.b=t,e.a=n,r=(512&e.a)==512?new mU:new u7,e.c=eLV(r,e.b,e.a)}function erp(e,t){return eLt(e.e,t)?(_4(),eec(t)?new RA(t,e):new xe(t,e)):new xr(t,e)}function erb(e,t){return yS(eid(e.a,t,jE(efn(eUJ,Ux(jE(efn(null==t?0:esj(t),eUQ)),15)))))}function erm(e,t,n){return Qz(e,new f9(t),new ea,new f8(n),eow(vx(e2L,1),eU4,132,0,[]))}function erg(e){var t,n;return 0>e?new _e:(t=e+1,n=new Zi(t,e),new L0(null,n))}function erv(e,t){var n;return Hj(),n=new w8(1),xd(e)?Ge(n,e,t):eS9(n.f,e,t),new f$(n)}function ery(e,t){var n,r;return(n=e.o+e.p)<(r=t.o+t.p)?-1:n==r?0:1}function erw(e){var t;return(t=e_k(e,(eBU(),tnc)),M4(t,160))?edo(Pp(t,160)):null}function er_(e){var t;return(t=esi(e=eB4.Math.max(e,2)),e>t)?(t<<=1)>0?t:eU2:t}function erE(e){switch(OZ(3!=e.e),e.e){case 2:return!1;case 0:return!0}return Zk(e)}function erS(e,t){var n;return!!M4(t,8)&&(n=Pp(t,8),e.a==n.a&&e.b==n.b)}function erk(e,t,n){var r,i,a;return a=t>>5,i=31&t,r=WM(Fy(e.n[n][a],jE(Fg(i,1))),3)}function erx(e,t){var n,r;for(r=t.vc().Kc();r.Ob();)evQ(e,(n=Pp(r.Pb(),42)).cd(),n.dd())}function erT(e,t){var n;n=new e0,Pp(t.b,65),Pp(t.b,65),Pp(t.b,65),ety(t.a,new N9(e,n,t))}function erM(e,t){var n;n=e.b,e.b=t,(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new FX(e,1,21,n,e.b))}function erO(e,t){var n;n=e.d,e.d=t,(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new FX(e,1,11,n,e.d))}function erA(e,t){var n;n=e.j,e.j=t,(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new FX(e,1,13,n,e.j))}function erL(e,t,n){var r,i,a;for(a=e.a.length-1,i=e.b,r=0;r>>31;0!=r&&(e[n]=r)}function eip(e,t){var n,r;for(Hj(),r=new p0,n=0;n0&&(this.g=this.ri(this.i+(this.i/8|0)+1),e.Qc(this.g))}function eiR(e,t){PJ.call(this,tgd,e,t),this.b=this,this.a=eAY(e.Tg(),ee2(this.e.Tg(),this.c))}function eij(e,t){var n,r;for(BJ(t),r=t.vc().Kc();r.Ob();)n=Pp(r.Pb(),42),e.zc(n.cd(),n.dd())}function eiF(e,t,n){var r;for(r=n.Kc();r.Ob();)if(!Vq(e,t,r.Pb()))return!1;return!0}function eiY(e,t,n,r,i){var a;return n&&(a=edv(t.Tg(),e.c),i=n.gh(t,-1-(-1==a?r:a),null,i)),i}function eiB(e,t,n,r,i){var a;return n&&(a=edv(t.Tg(),e.c),i=n.ih(t,-1-(-1==a?r:a),null,i)),i}function eiU(e){var t;if(-2==e.b){if(0==e.e)t=-1;else for(t=0;0==e.a[t];t++);e.b=t}return e.b}function eiH(e){switch(e.g){case 2:return eYu(),tbY;case 4:return eYu(),tby;default:return e}}function ei$(e){switch(e.g){case 1:return eYu(),tbj;case 3:return eYu(),tbw;default:return e}}function eiz(e){var t,n,r;return e.j==(eYu(),tbw)&&(t=eTt(e),n=Aa(t,tby),(r=Aa(t,tbY))||r&&n)}function eiG(e){var t,n;return t=Pp(e.e&&e.e(),9),n=Pp(YR(t,t.length),9),new I1(t,n,t.length)}function eiW(e,t){ewG(t,eG9,1),efJ(_p(new dp((__(),new U7(e,!1,!1,new tO))))),eEj(t)}function eiK(e,t){return OQ(),xd(e)?ZZ(e,Lq(t)):xf(e)?F_(e,LV(t)):xl(e)?Fw(e,LK(t)):e.wd(t)}function eiV(e,t){t.q=e,e.d=eB4.Math.max(e.d,t.r),e.b+=t.d+(0==e.a.c.length?0:e.c),P_(e.a,t)}function eiq(e,t){var n,r,i,a;return i=e.c,n=e.c+e.b,a=e.d,r=e.d+e.a,t.a>i&&t.aa&&t.b1||e.Ob())return++e.a,e.g=0,t=e.i,e.Ob(),t;throw p7(new bC)}function eaA(e){var t;return Ma(),En(tuT,e)||((t=new af).a=e,CM(tuT,e,t)),Pp(UA(tuT,e),635)}function eaL(e){var t,n,r,i;return r=0,(i=e)<0&&(i+=eHW,r=eH$),n=zy(i/eHG),Mk(t=zy(i-n*eHG),n,r)}function eaC(e){var t,n,r;for(r=0,n=new _t(e.a);n.aecd(e,0)&&(e=PN(e)),64-(0!=(t=jE(Fv(e,32)))?exv(t):exv(jE(e))+32)}function eaQ(e){var t;return t=Pp(e_k(e,(eBU(),tt1)),61),e.k==(eEn(),e8C)&&(t==(eYu(),tbY)||t==tby)}function ea1(e,t,n){var r,i;(i=Pp(e_k(e,(eBy(),taR)),74))&&(eu_(r=new mE,0,i),etH(r,n),er7(t,r))}function ea0(e,t,n){var r,i,a,o;r=(o=Bq(e)).d,i=o.c,a=e.n,t&&(a.a=a.a-r.b-i.a),n&&(a.b=a.b-r.d-i.b)}function ea2(e,t){var n,r;return(n=e.j)!=(r=t.j)?n.g-r.g:e.p==t.p?0:n==(eYu(),tbw)?e.p-t.p:t.p-e.p}function ea3(e){var t,n;for(eYp(e),n=new fz(e.d);n.a>22),i=e.h+t.h+(r>>22),Mk(n&eHH,r&eHH,i&eH$)}function eor(e,t){var n,r,i;return n=e.l-t.l,r=e.m-t.m+(n>>22),i=e.h-t.h+(r>>22),Mk(n&eHH,r&eHH,i&eH$)}function eoi(e){var t;return e<128?((t=(RH(),e0Y)[e])||(t=e0Y[e]=new fA(e)),t):new fA(e)}function eoa(e){var t;return M4(e,78)?e:((t=e&&e.__java$exception)||(t=new euq(e),by(t)),t)}function eoo(e){if(M4(e,186))return Pp(e,118);if(e)return null;throw p7(new gD(eXR))}function eos(e,t){if(null==t)return!1;for(;e.a!=e.b;)if(ecX(t,ecn(e)))return!0;return!1}function eou(e){return!!e.a.Ob()||e.a==e.d&&(e.a=new KU(e.e.f),e.a.Ob())}function eoc(e,t){var n,r;return 0!=(r=(n=t.Pc()).length)&&(PO(e.c,e.c.length,n),!0)}function eol(e,t,n){var r,i;for(i=t.vc().Kc();i.Ob();)r=Pp(i.Pb(),42),e.yc(r.cd(),r.dd(),n);return e}function eof(e,t){var n,r;for(r=new fz(e.b);r.a=0,"Negative initial capacity"),PG(t>=0,"Non-positive load factor"),Yy(this)}function eoV(e,t,n){return!(e>=128)&&(e<64?xg(WM(Fg(1,e),n),0):xg(WM(Fg(1,e-64),t),0))}function eoq(e,t){return!!e&&!!t&&e!=t&&0>efT(e.b.c,t.b.c+t.b.b)&&0>efT(t.b.c,e.b.c+e.b.b)}function eoZ(e){var t,n,r;return n=e.n,r=e.o,t=e.d,new Hr(n.a-t.b,n.b-t.d,r.a+(t.b+t.c),r.b+(t.d+t.a))}function eoX(e){var t,n,r,i;for(n=e.a,r=0,i=n.length;r(r=e.gc()))throw p7(new Ii(t,r));return e.hi()&&(n=zG(e,n)),e.Vh(t,n)}function eo2(e,t,n){return null==n?(e.q||(e.q=new p2),Z3(e.q,t)):(e.q||(e.q=new p2),Um(e.q,t,n)),e}function eo3(e,t,n){return null==n?(e.q||(e.q=new p2),Z3(e.q,t)):(e.q||(e.q=new p2),Um(e.q,t,n)),e}function eo4(e){var t,n;return n=new Z5,eaW(n,e),eo3(n,(erV(),e9j),e),t=new p2,eNY(e,n,t),eFS(e,n,t),n}function eo5(e){var t,n,r;for(eLG(),n=Je(e50,eUP,8,2,0,1),r=0,t=0;t<2;t++)r+=.5,n[t]=emh(r,e);return n}function eo6(e,t){var n,r,i,a;for(a=0,n=!1,r=e.a[t].length;a>=1);return t}function esa(e){var t,n;return 32==(n=exv(e.h))?32==(t=exv(e.m))?exv(e.l)+32:t+20-10:n-12}function eso(e){var t;return null==(t=e.a[e.b])?null:(Bc(e.a,e.b,null),e.b=e.b+1&e.a.length-1,t)}function ess(e){var t,n;return t=e.t-e.k[e.o.p]*e.d+e.j[e.o.p]>e.f,n=e.u+e.e[e.o.p]*e.d>e.f*e.s*e.d,t||n}function esu(e,t,n){var r,i;return r=new Js(t,n),i=new H,e.b=eLg(e,e.b,r,i),i.b||++e.c,e.b.b=!1,i.d}function esc(e,t,n){var r,i,a,o;for(o=ecZ(t,n),a=0,i=o.Kc();i.Ob();)r=Pp(i.Pb(),11),Um(e.c,r,ell(a++))}function esl(e){var t,n;for(n=new fz(e.a.b);n.an&&(n=e[t]);return n}function esg(e,t,n){var r;return r=new p0,eA0(e,t,r,(eYu(),tby),!0,!1),eA0(e,n,r,tbY,!1,!1),r}function esv(e,t,n){var r,i,a,o;return a=null,i=Kq(o=t,"labels"),a=(eT2((r=new kG(e,n)).a,r.b,i),i)}function esy(e,t,n,r){var i;return!(!(i=eMv(e,t,n,r))&&(i=elh(e,n,r)))||eR3(e,t,i)?i:null}function esw(e,t,n,r){var i;return!(!(i=eMy(e,t,n,r))&&(i=elp(e,n,r)))||eR3(e,t,i)?i:null}function es_(e,t){var n;for(n=0;n1||t>=0&&e.b<3)}function esP(e){var t,n,r;for(t=new mE,r=epL(e,0);r.b!=r.d.c;)n=Pp(Vv(r),8),Ls(t,0,new TS(n));return t}function esR(e){var t,n;for(n=new fz(e.a.b);n.ar?1:0}function esJ(e,t){return!!eO2(e,t)&&(exg(e.b,Pp(e_k(t,(eBU(),ttX)),21),t),P7(e.a,t),!0)}function esQ(e){var t,n;(t=Pp(e_k(e,(eBU(),tng)),10))&&(QA((n=t.c).a,t),0==n.a.c.length&&QA(Bq(t).b,n))}function es1(e){return e2M?Je(e2k,e$_,572,0,0,1):Pp(epg(e.a,Je(e2k,e$_,572,e.a.c.length,0,1)),842)}function es0(e,t,n,r){return U_(),new gt(eow(vx(e1$,1),eUK,42,0,[(eb2(e,t),new wD(e,t)),(eb2(n,r),new wD(n,r))]))}function es2(e,t,n){var r,i;return enz(i=r=new mD,t,n),JL((e.q||(e.q=new FQ(tgi,e,11,10)),e.q),i),i}function es3(e){var t,n,r,i;for(t=0,r=Je(e17,eUP,2,n=(i=Eo(tmx,e)).length,6,1);t=e.b.c.length)&&(es6(e,2*t+1),(n=2*t+2)=0&&e[r]===t[r];r--);return r<0?0:Ei(WM(e[r],eH8),WM(t[r],eH8))?-1:1}function es7(e,t){var n,r;for(r=epL(e,0);r.b!=r.d.c;)(n=Pp(Vv(r),214)).e.length>0&&(t.td(n),n.i&&elk(n))}function eue(e,t){var n,r;return r=Pp(eaS(e.a,4),126),n=Je(e6N,eJM,415,t,0,1),null!=r&&ePD(r,0,n,0,r.length),n}function eut(e,t){var n;return n=new eCg((256&e.f)!=0,e.i,e.a,e.d,(16&e.f)!=0,e.j,e.g,t),null!=e.e||(n.c=e),n}function eun(e,t){var n,r;for(r=e.Zb().Cc().Kc();r.Ob();)if((n=Pp(r.Pb(),14)).Hc(t))return!0;return!1}function eur(e,t,n,r,i){var a,o;for(o=n;o<=i;o++)for(a=t;a<=r;a++)if(emy(e,a,o))return!0;return!1}function eui(e,t,n){var r,i,a,o;for(BJ(n),o=!1,a=e.Zc(t),i=n.Kc();i.Ob();)r=i.Pb(),a.Rb(r),o=!0;return o}function eua(e,t){var n;return e===t||!!M4(t,83)&&(n=Pp(t,83),eEB(Fc(e),n.vc()))}function euo(e,t,n){var r,i;for(i=n.Kc();i.Ob();)if(r=Pp(i.Pb(),42),e.re(t,r.dd()))return!0;return!1}function eus(e,t,n){return e.d[t.p][n.p]||(ebp(e,t,n),e.d[t.p][n.p]=!0,e.d[n.p][t.p]=!0),e.a[t.p][n.p]}function euu(e,t){if(!e.ai()&&null==t)throw p7(new gL("The 'no null' constraint is violated"));return t}function euc(e,t){null==e.D&&null!=e.B&&(e.D=e.B,e.B=null),erf(e,null==t?null:(BJ(t),t)),e.C&&e.yk(null)}function eul(e,t){var n;return!!(e&&e!=t&&Ln(t,(eBU(),tt8)))&&(n=Pp(e_k(t,(eBU(),tt8)),10))!=e}function euf(e){switch(e.i){case 2:return!0;case 1:return!1;case -1:++e.c;default:return e.pl()}}function eud(e){switch(e.i){case -2:return!0;case -1:return!1;case 1:--e.c;default:return e.ql()}}function euh(e){zL.call(this,"The given string does not match the expected format for individual spacings.",e)}function eup(){eup=A,tmr=new kN("ELK",0),tmi=new kN("JSON",1),tmn=new kN("DOT",2),tma=new kN("SVG",3)}function eub(){eub=A,tc5=new S3(eGR,0),tc6=new S3("RADIAL_COMPACTION",1),tc9=new S3("WEDGE_COMPACTION",2)}function eum(){eum=A,e2B=new Ed("CONCURRENT",0),e2U=new Ed("IDENTITY_FINISH",1),e2H=new Ed("UNORDERED",2)}function eug(){eug=A,e6q=(_y(),e6G),e6V=new xX(ezj,e6q),e6K=new pO(ezF),e6Z=new pO(ezY),e6X=new pO(ezB)}function euv(){euv=A,e72=new n1,e73=new n0,e70=new n2,e71=new n3,e7J=(BJ(e7Q=new n4),new P)}function euy(){euy=A,tsz=new SD("CONSERVATIVE",0),tsG=new SD("CONSERVATIVE_SOFT",1),tsW=new SD("SLOPPY",2)}function euw(){euw=A,tpH=new T3(15),tpU=new T2((eBB(),thN),tpH),tp$=th3,tpj=td3,tpF=thx,tpB=thO,tpY=thM}function eu_(e,t,n){var r,i,a;for(r=new _n,a=epL(n,0);a.b!=a.d.c;)i=Pp(Vv(a),8),P7(r,new TS(i));eui(e,t,r)}function euE(e){var t,n,r;for(t=0,r=Je(e50,eUP,8,e.b,0,1),n=epL(e,0);n.b!=n.d.c;)r[t++]=Pp(Vv(n),8);return r}function euS(e){var t;return 0!=(t=(e.a||(e.a=new FQ(tgn,e,9,5)),e.a)).i?_K(Pp(etj(t,0),678)):null}function euk(e,t){var n;return(n=eft(e,t),Ei(WA(e,t),0)|xm(WA(e,n),0))?n:eft(eUY,WA(Fy(n,63),1))}function eux(e,t){var n;n=null!=epB((edk(),to3))&&null!=t.wg()?gP(LV(t.wg()))/gP(LV(epB(to3))):1,Um(e.b,t,n)}function euT(e,t){var n,r;return(n=Pp(e.d.Bc(t),14))?((r=e.e.hc()).Gc(n),e.e.d-=n.gc(),n.$b(),r):null}function euM(e,t){var n,r;if(0!=(r=e.c[t]))for(e.c[t]=0,e.d-=r,n=t+1;n0)return FP(t-1,e.a.c.length),ZV(e.a,t-1);throw p7(new bL)}function euA(e,t,n){if(t<0)throw p7(new gE(eq1+t));tt)throw p7(new gL(e$x+e+e$T+t));if(e<0||t>n)throw p7(new va(e$x+e+e$M+t+e$m+n))}function euC(e){if(!e.a||(8&e.a.i)==0)throw p7(new gC("Enumeration class expected for layout option "+e.f))}function euI(e){var t;++e.j,0==e.i?e.g=null:e.ieVq?e-n>eVq:n-e>eVq)}function euG(e,t){return!e||t&&!e.j||M4(e,124)&&0==Pp(e,124).a.b?0:e.Re()}function euW(e,t){return!e||t&&!e.k||M4(e,124)&&0==Pp(e,124).a.a?0:e.Se()}function euK(e){return(eLQ(),e<0)?-1!=e?new ep4(-1,-e):e03:e<=10?e05[zy(e)]:new ep4(1,e)}function euV(e){throw eoW(),p7(new gs("Unexpected typeof result '"+e+"'; please report this bug to the GWT team"))}function euq(e){g0(),MV(this),HD(this),this.e=e,eA9(this,e),this.g=null==e?eUg:efF(e),this.a="",this.b=e,this.a=""}function euZ(){this.a=new a4,this.f=new hW(this),this.b=new hK(this),this.i=new hV(this),this.e=new hq(this)}function euX(){m6.call(this,new Ju(ee0(16))),enG(2,eUN),this.b=2,this.a=new Uc(null,null,0,null),bp(this.a,this.a)}function euJ(){euJ=A,tsn=new SS("DUMMY_NODE_OVER",0),tsr=new SS("DUMMY_NODE_UNDER",1),tsi=new SS("EQUAL",2)}function euQ(){euQ=A,e8u=zD(eow(vx(e55,1),eU4,103,0,[(ec3(),tpm),tpg])),e8c=zD(eow(vx(e55,1),eU4,103,0,[tpy,tpb]))}function eu1(e){return(eYu(),tbC).Hc(e.j)?gP(LV(e_k(e,(eBU(),tnM)))):esp(eow(vx(e50,1),eUP,8,0,[e.i.n,e.n,e.a])).b}function eu0(e){var t,n,r,i;for(n=(r=e.b.a).a.ec().Kc();n.Ob();)t=Pp(n.Pb(),561),i=new eMq(t,e.e,e.f),P_(e.g,i)}function eu2(e,t){var n,r,i;r=e.nk(t,null),i=null,t&&(i=(yO(),n=new p5),etV(i,e.r)),(r=ew3(e,i,r))&&r.Fi()}function eu3(e,t){var n,r;for(r=0!=eMU(e.d,1),n=!0;n;)n=!1,n=t.c.Tf(t.e,r),n|=eAb(e,t,r,!1),r=!r;er0(e)}function eu4(e,t){var n,r,i;return r=!1,n=t.q.d,t.di&&(eyC(t.q,i),r=n!=t.q.d)),r}function eu5(e,t){var n,r,i,a,o,s,u,c;return u=t.i,c=t.j,i=(r=e.f).i,a=r.j,o=u-i,s=c-a,n=eB4.Math.sqrt(o*o+s*s)}function eu6(e,t){var n,r;return(r=ehO(e))||(tmT||(tmT=new sh),n=(eRe(),eSR(t)),JL((r=new pq(n)).Vk(),e)),r}function eu9(e,t){var n,r;return(n=Pp(e.c.Bc(t),14))?((r=e.hc()).Gc(n),e.d-=n.gc(),n.$b(),e.mc(r)):e.jc()}function eu8(e,t){var n;for(n=0;n=e.c.b:e.a<=e.c.b))throw p7(new bC);return t=e.a,e.a+=e.c.c,++e.b,ell(t)}function eci(e){var t;return t=new ete(e),Kv(e.a,e8w,new g$(eow(vx(e4M,1),eUp,369,0,[t]))),t.d&&P_(t.f,t.d),t.f}function eca(e){var t;return eaW(t=new MA(e.a),e),eo3(t,(eBU(),tnc),e),t.o.a=e.g,t.o.b=e.f,t.n.a=e.i,t.n.b=e.j,t}function eco(e,t,n,r){var i,a;for(a=e.Kc();a.Ob();)(i=Pp(a.Pb(),70)).n.a=t.a+(r.a-i.o.a)/2,i.n.b=t.b,t.b+=i.o.b+n}function ecs(e,t,n){var r,i;for(i=t.a.a.ec().Kc();i.Ob();)if($o(e,r=Pp(i.Pb(),57),n))return!0;return!1}function ecu(e){var t,n;for(n=new fz(e.r);n.a=0?t:-t;r>0;)r%2==0?(n*=n,r=r/2|0):(i*=n,r-=1);return t<0?1/i:i}function ecw(e,t){var n,r,i;for(i=1,n=e,r=t>=0?t:-t;r>0;)r%2==0?(n*=n,r=r/2|0):(i*=n,r-=1);return t<0?1/i:i}function ec_(e){var t,n,r,i;if(null!=e){for(n=0;n0&&esJ(n=Pp(RJ(e.a,e.a.c.length-1),570),t))&&P_(e.a,new Zn(t))}function ecP(e){var t,n;Dj(),t=e.d.c-e.e.c,ety((n=Pp(e.g,145)).b,new d7(t)),ety(n.c,new he(t)),qX(n.i,new ht(t))}function ecR(e){var t;return t=new vc,t.a+="VerticalSegment ",xT(t,e.e),t.a+=" ",xM(t,OU(new ve,new fz(e.k))),t.a}function ecj(e){var t;return(t=Pp(eef(e.c.c,""),229))||(t=new GM(v3(v2(new of,""),"Other")),epy(e.c.c,"",t)),t}function ecF(e){var t;return(64&e.Db)!=0?eMT(e):(t=new O1(eMT(e)),t.a+=" (name: ",xk(t,e.zb),t.a+=")",t.a)}function ecY(e,t,n){var r,i;return i=e.sb,e.sb=t,(4&e.Db)!=0&&(1&e.Db)==0&&(r=new FX(e,1,4,i,t),n?n.Ei(r):n=r),n}function ecB(e,t){var n,r,i;for(n=0,i=efr(e,t).Kc();i.Ob();)n+=null!=e_k(r=Pp(i.Pb(),11),(eBU(),tng))?1:0;return n}function ecU(e,t,n){var r,i,a;for(r=0,a=epL(e,0);a.b!=a.d.c&&!((i=gP(LV(Vv(a))))>n);)i>=t&&++r;return r}function ecH(e,t,n){var r,i;return r=new Q$(e.e,3,13,null,(i=t.c)||(eBK(),tgA),ebv(e,t),!1),n?n.Ei(r):n=r,n}function ec$(e,t,n){var r,i;return r=new Q$(e.e,4,13,(i=t.c)||(eBK(),tgA),null,ebv(e,t),!1),n?n.Ei(r):n=r,n}function ecz(e,t,n){var r,i;return i=e.r,e.r=t,(4&e.Db)!=0&&(1&e.Db)==0&&(r=new FX(e,1,8,i,e.r),n?n.Ei(r):n=r),n}function ecG(e,t){var n,r;return(r=(n=Pp(t,676)).vk())||n.wk(r=M4(t,88)?new k9(e,Pp(t,26)):new Ke(e,Pp(t,148))),r}function ecW(e,t,n){var r;e.qi(e.i+1),r=e.oi(t,n),t!=e.i&&ePD(e.g,t,e.g,t+1,e.i-t),Bc(e.g,t,r),++e.i,e.bi(t,n),e.ci()}function ecK(e,t){var n;return t.a&&(n=t.a.a.length,e.a?xM(e.a,e.b):e.a=new O0(e.d),Ka(e.a,t.a,t.d.length,n)),e}function ecV(e,t){var n,r,i,a;if(t.vi(e.a),null!=(a=Pp(eaS(e.a,8),1936)))for(r=0,i=(n=a).length;rn)throw p7(new gE(e$x+e+e$M+t+", size: "+n));if(e>t)throw p7(new gL(e$x+e+e$T+t))}function ec6(e,t,n){if(t<0)ekN(e,n);else{if(!n.Ij())throw p7(new gL(eZV+n.ne()+eZq));Pp(n,66).Nj().Vj(e,e.yh(),t)}}function ec9(e,t,n,r,i,a,o,s){var u;for(u=n;a=r||t=s.ue(e[t],e[u])?Bc(i,a++,e[t++]):Bc(i,a++,e[u++])}function ec8(e,t,n,r,i,a){this.e=new p0,this.f=(enY(),tsP),P_(this.e,e),this.d=t,this.a=n,this.b=r,this.f=i,this.c=a}function ec7(e,t){var n,r;for(r=new Ow(e);r.e!=r.i.gc();)if(n=Pp(epH(r),26),xc(t)===xc(n))return!0;return!1}function ele(e){var t,n,r,i;for(eBW(),n=epE(),r=0,i=n.length;r=65&&e<=70?e-65+10:e>=97&&e<=102?e-97+10:e>=48&&e<=57?e-48:0}function eln(e){var t;return(64&e.Db)!=0?eMT(e):(t=new O1(eMT(e)),t.a+=" (source: ",xk(t,e.d),t.a+=")",t.a)}function elr(e,t,n){var r,i;return i=e.a,e.a=t,(4&e.Db)!=0&&(1&e.Db)==0&&(r=new FX(e,1,5,i,e.a),n?ey7(n,r):n=r),n}function eli(e,t){var n;n=(256&e.Bb)!=0,t?e.Bb|=256:e.Bb&=-257,(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new ZB(e,1,2,n,t))}function ela(e,t){var n;n=(256&e.Bb)!=0,t?e.Bb|=256:e.Bb&=-257,(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new ZB(e,1,8,n,t))}function elo(e,t){var n;n=(256&e.Bb)!=0,t?e.Bb|=256:e.Bb&=-257,(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new ZB(e,1,8,n,t))}function els(e,t){var n;n=(512&e.Bb)!=0,t?e.Bb|=512:e.Bb&=-513,(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new ZB(e,1,3,n,t))}function elu(e,t){var n;n=(512&e.Bb)!=0,t?e.Bb|=512:e.Bb&=-513,(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new ZB(e,1,9,n,t))}function elc(e,t){var n;return -1==e.b&&e.a&&(n=e.a.Gj(),e.b=n?e.c.Xg(e.a.aj(),n):edv(e.c.Tg(),e.a)),e.c.Og(e.b,t)}function ell(e){var t,n;return e>-129&&e<128?(t=e+128,(n=(Rv(),e0B)[t])||(n=e0B[t]=new fC(e)),n):new fC(e)}function elf(e){var t,n;return e>-129&&e<128?(t=e+128,(n=(RU(),e0K)[t])||(n=e0K[t]=new fD(e)),n):new fD(e)}function eld(e){var t,n;return(t=e.k)==(eEn(),e8C)&&((n=Pp(e_k(e,(eBU(),tt1)),61))==(eYu(),tbw)||n==tbj)}function elh(e,t,n){var r,i,a;return(a=i=eMC(e.b,t))&&(r=Pp(eP9(Qq(e,a),""),26))?eMv(e,r,t,n):null}function elp(e,t,n){var r,i,a;return(a=i=eMC(e.b,t))&&(r=Pp(eP9(Qq(e,a),""),26))?eMy(e,r,t,n):null}function elb(e,t){var n,r;for(r=new Ow(e);r.e!=r.i.gc();)if(n=Pp(epH(r),138),xc(t)===xc(n))return!0;return!1}function elm(e,t,n){var r;if(t>(r=e.gc()))throw p7(new Ii(t,r));if(e.hi()&&e.Hc(n))throw p7(new gL(eXB));e.Xh(t,n)}function elg(e,t){var n;if(null==(n=etJ(e.i,t)))throw p7(new gK("Node did not exist in input."));return eiX(t,n),null}function elv(e,t){var n;if(n=eAh(e,t),M4(n,322))return Pp(n,34);throw p7(new gL(eZV+t+"' is not a valid attribute"))}function ely(e,t,n){var r,i;for(r=0,i=M4(t,99)&&(Pp(t,18).Bb&eH3)!=0?new x1(t,e):new eaN(t,e);rt?1:e==t?0==e?elN(1/e,1/t):0:isNaN(e)?isNaN(t)?0:1:-1}function elP(e,t){ewG(t,"Sort end labels",1),_r(UJ(eeh(new R1(null,new Gq(e.b,16)),new t2),new t3),new t4),eEj(t)}function elR(e,t,n){var r,i;return e.ej()?(i=e.fj(),r=exm(e,t,n),e.$i(e.Zi(7,ell(n),r,t,i)),r):exm(e,t,n)}function elj(e,t){var n,r,i;null==e.d?(++e.e,--e.f):(i=t.cd(),r=((n=t.Sh())&eUu)%e.d.length,Xc(e,r,eML(e,r,n,i)))}function elF(e,t){var n;n=(e.Bb&eXt)!=0,t?e.Bb|=eXt:e.Bb&=-1025,(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new ZB(e,1,10,n,t))}function elY(e,t){var n;n=(e.Bb&eH0)!=0,t?e.Bb|=eH0:e.Bb&=-4097,(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new ZB(e,1,12,n,t))}function elB(e,t){var n;n=(e.Bb&eJV)!=0,t?e.Bb|=eJV:e.Bb&=-8193,(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new ZB(e,1,15,n,t))}function elU(e,t){var n;n=(e.Bb&eJq)!=0,t?e.Bb|=eJq:e.Bb&=-2049,(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new ZB(e,1,11,n,t))}function elH(e,t){var n;return 0!=(n=elN(e.b.c,t.b.c))||0!=(n=elN(e.a.a,t.a.a))?n:elN(e.a.b,t.a.b)}function el$(e,t){var n;if(null==(n=Bp(e.k,t)))throw p7(new gK("Port did not exist in input."));return eiX(t,n),null}function elz(e){var t,n;for(n=eM$(etP(e)).Kc();n.Ob();)if(eDM(e,t=Lq(n.Pb())))return qb((_X(),tgh),t);return null}function elG(e,t){var n,r,i,a,o;for(i=0,o=eAY(e.e.Tg(),t),a=0,n=Pp(e.g,119);i>10)+eH4&eHd,t[1]=(1023&e)+56320&eHd,ehv(t,0,t.length)}function el0(e){var t,n;return(n=Pp(e_k(e,(eBy(),tal)),103))==(ec3(),tpv)?(t=gP(LV(e_k(e,tiX))))>=1?tpg:tpb:n}function el2(e){switch(Pp(e_k(e,(eBy(),tag)),218).g){case 1:return new ig;case 3:return new iE;default:return new im}}function el3(e){if(e.c)el3(e.c);else if(e.d)throw p7(new gC("Stream already terminated, can't be modified or used"))}function el4(e){var t;return(64&e.Db)!=0?eMT(e):(t=new O1(eMT(e)),t.a+=" (identifier: ",xk(t,e.k),t.a+=")",t.a)}function el5(e,t,n){var r,i;return r=(yT(),i=new oJ),ent(r,t),enn(r,n),e&&JL((e.a||(e.a=new O_(e6h,e,5)),e.a),r),r}function el6(e,t,n,r){var i,a;return BJ(r),BJ(n),null==(a=null==(i=e.xc(t))?n:_i(Pp(i,15),Pp(n,14)))?e.Bc(t):e.zc(t,a),a}function el9(e){var t,n,r,i;return n=(t=Pp(yw((i=(r=e.gm).f)==e1G?r:i),9),new I1(t,Pp(CY(t,t.length),9),0)),erC(n,e),n}function el8(e,t,n){var r,i;for(i=e.a.ec().Kc();i.Ob();)if(r=Pp(i.Pb(),10),eot(n,Pp(RJ(t,r.p),14)))return r;return null}function el7(e,t,n){var r;try{esE(e,t,n)}catch(i){if(i=eoa(i),M4(i,597))throw r=i,p7(new Zt(r));throw p7(i)}return t}function efe(e,t){var n;return Ts(e)&&Ts(t)&&eHV<(n=e-t)&&n>1,e.k=n-1>>1}function efo(){var e,t,n;ewP(),n=e2w+++Date.now(),e=zy(eB4.Math.floor(n*e$h))&e$b,t=zy(n-e*e$p),this.a=1502^e,this.b=t^e$d}function efs(e){var t,n,r;for(t=new p0,r=new fz(e.j);r.a34028234663852886e22?eHQ:t<-34028234663852886e22?eH1:t}function efp(e){return e-=e>>1&1431655765,e=((e=(e>>2&858993459)+(858993459&e))>>4)+e&252645135,e+=e>>8,63&(e+=e>>16)}function efb(e){var t,n,r,i;for(t=new CS(e.Hd().gc()),i=0,r=JJ(e.Hd().Kc());r.Ob();)Gr(t,n=r.Pb(),ell(i++));return eEA(t.a)}function efm(e,t){var n,r,i;for(i=new p2,r=t.vc().Kc();r.Ob();)Um(i,(n=Pp(r.Pb(),42)).cd(),eab(e,Pp(n.dd(),15)));return i}function efg(e,t){0==e.n.c.length&&P_(e.n,new zO(e.s,e.t,e.i)),P_(e.b,t),eml(Pp(RJ(e.n,e.n.c.length-1),211),t),eNk(e,t)}function efv(e){return(e.c!=e.b.b||e.i!=e.g.b)&&(e.a.c=Je(e1R,eUp,1,0,5,1),eoc(e.a,e.b),eoc(e.a,e.g),e.c=e.b.b,e.i=e.g.b),e.a}function efy(e,t){var n,r,i;for(i=0,r=Pp(t.Kb(e),20).Kc();r.Ob();)gN(LK(e_k(n=Pp(r.Pb(),17),(eBU(),tnE))))||++i;return i}function efw(e,t){var n,r,i;i=gP(LV(ed$(r=KT(t),(eBy(),toO)))),ev_(t,n=eB4.Math.max(0,i/2-.5),1),P_(e,new E9(t,n))}function ef_(){ef_=A,tnj=new ST(eGR,0),tnD=new ST("FIRST",1),tnN=new ST(eWi,2),tnP=new ST("LAST",3),tnR=new ST(eWa,4)}function efE(){efE=A,tpO=new kb(ezo,0),tpT=new kb("POLYLINE",1),tpx=new kb("ORTHOGONAL",2),tpM=new kb("SPLINES",3)}function efS(){efS=A,tlP=new S6("ASPECT_RATIO_DRIVEN",0),tlR=new S6("MAX_SCALE_DRIVEN",1),tlN=new S6("AREA_DRIVEN",2)}function efk(){efk=A,tff=new S8("P1_STRUCTURE",0),tfd=new S8("P2_PROCESSING_ORDER",1),tfh=new S8("P3_EXECUTION",2)}function efx(){efx=A,tc1=new S0("OVERLAP_REMOVAL",0),tcJ=new S0("COMPACTION",1),tcQ=new S0("GRAPH_SIZE_CALCULATION",2)}function efT(e,t){return Mc(),enj(eHe),eB4.Math.abs(e-t)<=eHe||e==t||isNaN(e)&&isNaN(t)?0:et?1:Te(isNaN(e),isNaN(t))}function efM(e,t){var n,r;for(n=epL(e,0);n.b!=n.d.c;){if((r=gR(LV(Vv(n))))==t)return;if(r>t){Ks(n);break}}YU(n,t)}function efO(e,t){var n,r,i,a,o;if(n=t.f,epy(e.c.d,n,t),null!=t.g)for(i=t.g,a=0,o=i.length;at&&r.ue(e[a-1],e[a])>0;--a)o=e[a],Bc(e,a,e[a-1]),Bc(e,a-1,o)}function efL(e,t,n,r){if(t<0)eOh(e,n,r);else{if(!n.Ij())throw p7(new gL(eZV+n.ne()+eZq));Pp(n,66).Nj().Tj(e,e.yh(),t,r)}}function efC(e,t){if(t==e.d)return e.e;if(t==e.e)return e.d;throw p7(new gL("Node "+t+" not part of edge "+e))}function efI(e,t){switch(t.g){case 2:return e.b;case 1:return e.c;case 4:return e.d;case 3:return e.a;default:return!1}}function efD(e,t){switch(t.g){case 2:return e.b;case 1:return e.c;case 4:return e.d;case 3:return e.a;default:return!1}}function efN(e,t,n,r){switch(t){case 3:return e.f;case 4:return e.g;case 5:return e.i;case 6:return e.j}return ec2(e,t,n,r)}function efP(e){return e.k==(eEn(),e8N)&&q3(new R1(null,new YI(new Fa(OH(efc(e).a.Kc(),new c)))),new it)}function efR(e){return null==e.e?e:(e.c||(e.c=new eCg((256&e.f)!=0,e.i,e.a,e.d,(16&e.f)!=0,e.j,e.g,null)),e.c)}function efj(e,t){return e.h==eHz&&0==e.m&&0==e.l?(t&&(e0A=Mk(0,0,0)),Tr((Q2(),e0I))):(t&&(e0A=Mk(e.l,e.m,e.h)),Mk(0,0,0))}function efF(e){var t;return Array.isArray(e)&&e.im===O?yx(esF(e))+"@"+(t=esj(e)>>>0).toString(16):e.toString()}function efY(e){var t;this.a=(t=Pp(e.e&&e.e(),9),new I1(t,Pp(CY(t,t.length),9),0)),this.b=Je(e1R,eUp,1,this.a.a.length,5,1)}function efB(e){var t,n,r;for(this.a=new Tw,r=new fz(e);r.a0&&(GV(t-1,e.length),58==e.charCodeAt(t-1))&&!efz(e,tm1,tm0)}function efz(e,t,n){var r,i;for(r=0,i=e.length;r=i)return t.c+n;return t.c+t.b.gc()}function efK(e,t){var n,r,i,a;for(LF(),r=J9(e),i=t,Qe(r,0,r.length,i),n=0;n0&&(r+=i,++n);return n>1&&(r+=e.d*(n-1)),r}function efq(e){var t,n,r;for(r=new vs,r.a+="[",t=0,n=e.gc();t0&&this.b>0&&ji(this.c,this.b,this.a)}function ef4(e){edk(),this.c=ZW(eow(vx(e5Z,1),eUp,831,0,[to2])),this.b=new p2,this.a=e,Um(this.b,to3,1),ety(to4,new h4(this))}function ef5(e,t){var n;return e.d?F9(e.b,t)?Pp(Bp(e.b,t),51):(n=t.Kf(),Um(e.b,t,n),n):t.Kf()}function ef6(e,t){var n;return xc(e)===xc(t)||!!M4(t,91)&&(n=Pp(t,91),e.e==n.e&&e.d==n.d&&qv(e,n.a))}function ef9(e){switch(eYu(),e.g){case 4:return tbw;case 1:return tby;case 3:return tbj;case 2:return tbY;default:return tbF}}function ef8(e,t){switch(t){case 3:return 0!=e.f;case 4:return 0!=e.g;case 5:return 0!=e.i;case 6:return 0!=e.j}return eaT(e,t)}function ef7(e){switch(e.g){case 0:return new aV;case 1:return new aq;default:throw p7(new gL(eqa+(null!=e.f?e.f:""+e.g)))}}function ede(e){switch(e.g){case 0:return new aK;case 1:return new aZ;default:throw p7(new gL(eWt+(null!=e.f?e.f:""+e.g)))}}function edt(e){switch(e.g){case 0:return new mZ;case 1:return new m_;default:throw p7(new gL(eqN+(null!=e.f?e.f:""+e.g)))}}function edn(e){switch(e.g){case 1:return new aU;case 2:return new LY;default:throw p7(new gL(eqa+(null!=e.f?e.f:""+e.g)))}}function edr(e){var t,n;if(e.b)return e.b;for(n=e2M?null:e.d;n;){if(t=e2M?null:n.b)return t;n=e2M?null:n.d}return _g(),e2F}function edi(e){var t,n,r;return 0==e.e?0:(t=e.d<<5,n=e.a[e.d-1],e.e<0&&(r=eiU(e))==e.d-1&&(--n,n|=0),t-=exv(n))}function eda(e){var t,n,r;return e>5,t=31&e,(r=Je(ty_,eHT,25,n+1,15,1))[n]=1<3;)i*=10,--a;e=(e+(i>>1))/i|0}return r.i=e,!0}function edl(e){return euQ(),OQ(),!!(efD(Pp(e.a,81).j,Pp(e.b,103))||0!=Pp(e.a,81).d.e&&efD(Pp(e.a,81).j,Pp(e.b,103)))}function edf(e){J1(),Pp(e.We((eBB(),thL)),174).Hc((eI3(),tb4))&&(Pp(e.We(thJ),174).Fc((ekU(),tbg)),Pp(e.We(thL),174).Mc(tb4))}function edd(e,t){var n,r;if(!t)return!1;for(n=0;n=0;--r)for(i=0,t=n[r];i>1,this.k=t-1>>1}function edC(e,t){ewG(t,"End label post-processing",1),_r(UJ(eeh(new R1(null,new Gq(e.b,16)),new tV),new tq),new tZ),eEj(t)}function edI(e,t,n){var r,i;return r=gP(e.p[t.i.p])+gP(e.d[t.i.p])+t.n.b+t.a.b,(i=gP(e.p[n.i.p])+gP(e.d[n.i.p])+n.n.b+n.a.b)-r}function edD(e,t,n){var r,i;for(i=0,r=WM(n,eH8);0!=ecd(r,0)&&i0&&(GV(0,t.length),43==t.charCodeAt(0))?t.substr(1):t)}function edR(e){var t;return null==e?null:new TU((t=ePh(e,!0)).length>0&&(GV(0,t.length),43==t.charCodeAt(0))?t.substr(1):t)}function edj(e,t){var n;return e.i>0&&(t.lengthe.i&&Bc(t,e.i,null),t}function edF(e,t,n){var r,i,a;return e.ej()?(r=e.i,a=e.fj(),ecW(e,r,t),i=e.Zi(3,null,t,r,a),n?n.Ei(i):n=i):ecW(e,e.i,t),n}function edY(e,t,n){var r,i;return r=new Q$(e.e,4,10,M4(i=t.c,88)?Pp(i,26):(eBK(),tgI),null,ebv(e,t),!1),n?n.Ei(r):n=r,n}function edB(e,t,n){var r,i;return r=new Q$(e.e,3,10,null,M4(i=t.c,88)?Pp(i,26):(eBK(),tgI),ebv(e,t),!1),n?n.Ei(r):n=r,n}function edU(e){var t;return Cn(),t=new TS(Pp(e.e.We((eBB(),thO)),8)),e.B.Hc((eI3(),tbQ))&&(t.a<=0&&(t.a=20),t.b<=0&&(t.b=20)),t}function edH(e){var t;return ebk(),t=(e.q?e.q:(Hj(),Hj(),e2i))._b((eBy(),ta0))?Pp(e_k(e,ta0),197):Pp(e_k(Bq(e),ta2),197)}function ed$(e,t){var n,r;return r=null,Ln(e,(eBy(),toD))&&(n=Pp(e_k(e,toD),94)).Xe(t)&&(r=n.We(t)),null==r&&(r=e_k(Bq(e),t)),r}function edz(e,t){var n,r,i;return!!M4(t,42)&&(r=(n=Pp(t,42)).cd(),i=ecA(e.Rc(),r),BG(i,n.dd())&&(null!=i||e.Rc()._b(r)))}function edG(e,t){var n,r,i;return e.f>0&&(e.qj(),i=((r=null==t?0:esj(t))&eUu)%e.d.length,-1!=(n=eML(e,i,r,t)))}function edW(e,t){var n,r,i;return e.f>0&&(e.qj(),i=((r=null==t?0:esj(t))&eUu)%e.d.length,n=exx(e,i,r,t))?n.dd():null}function edK(e,t){var n,r,i,a;for(i=0,a=eAY(e.e.Tg(),t),n=Pp(e.g,119);i1?WO(Fg(t.a[1],32),WM(t.a[0],eH8)):WM(t.a[0],eH8),Kj(efn(t.e,n))))}function edQ(e,t){var n;return Ts(e)&&Ts(t)&&eHV<(n=e%t)&&n>5,t&=31,r=Je(ty_,eHT,25,i=e.d+n+(0==t?0:1),15,1),ewZ(r,e.a,n,t),a=new F7(e.e,i,r),Ku(a),a}function eht(e,t,n){var r,i;r=Pp(zg(tv4,t),117),i=Pp(zg(tv5,t),117),n?(Ge(tv4,e,r),Ge(tv5,e,i)):(Ge(tv5,e,r),Ge(tv4,e,i))}function ehn(e,t,n){var r,i,a;for(i=null,a=e.b;a;){if(r=e.a.ue(t,a.d),n&&0==r)return a;r>=0?a=a.a[1]:(i=a,a=a.a[0])}return i}function ehr(e,t,n){var r,i,a;for(i=null,a=e.b;a;){if(r=e.a.ue(t,a.d),n&&0==r)return a;r<=0?a=a.a[0]:(i=a,a=a.a[1])}return i}function ehi(e,t,n,r){var i,a,o;return i=!1,ejB(e.f,n,r)&&(epn(e.f,e.a[t][n],e.a[t][r]),o=(a=e.a[t])[r],a[r]=a[n],a[n]=o,i=!0),i}function eha(e,t,n,r,i){var a,o,s;for(o=i;t.b!=t.c;)a=Pp(Yn(t),10),s=Pp(efr(a,r).Xb(0),11),e.d[s.p]=o++,n.c[n.c.length]=s;return o}function eho(e,t,n){var r,i,a,o,s;return o=e.k,s=t.k,i=LV(ed$(e,r=n[o.g][s.g])),a=LV(ed$(t,r)),eB4.Math.max((BJ(i),i),(BJ(a),a))}function ehs(e,t,n){var r,i,a,o;for(r=n/e.c.length,i=0,o=new fz(e);o.a2e3&&(e1X=e,e1J=eB4.setTimeout(wf,10)),0==e1Z++&&(eeA((g1(),e0_)),!0)}function ehf(e,t){var n,r,i;for(r=new Fa(OH(efc(e).a.Kc(),new c));eTk(r);)if((i=(n=Pp(ZC(r),17)).d.i).c==t)return!1;return!0}function ehd(e,t){var n,r;if(M4(t,245)){r=Pp(t,245);try{return n=e.vd(r),0==n}catch(i){if(i=eoa(i),!M4(i,205))throw p7(i)}}return!1}function ehh(){return Error.stackTraceLimit>0?(eB4.Error.stackTraceLimit=Error.stackTraceLimit=64,!0):"stack"in Error()}function ehp(e,t){return Mc(),Mc(),enj(eHe),(eB4.Math.abs(e-t)<=eHe||e==t||isNaN(e)&&isNaN(t)?0:et?1:Te(isNaN(e),isNaN(t)))>0}function ehb(e,t){return Mc(),Mc(),enj(eHe),(eB4.Math.abs(e-t)<=eHe||e==t||isNaN(e)&&isNaN(t)?0:et?1:Te(isNaN(e),isNaN(t)))<0}function ehm(e,t){return Mc(),Mc(),enj(eHe),(eB4.Math.abs(e-t)<=eHe||e==t||isNaN(e)&&isNaN(t)?0:et?1:Te(isNaN(e),isNaN(t)))<=0}function ehg(e,t){for(var n=0;!t[n]||""==t[n];)n++;for(var r=t[n++];neH6)return n.fh();if((r=n.Zg())||n==e)break}return r}function ehA(e){return(z0(),M4(e,156))?Pp(Bp(tmR,e0r),288).vg(e):F9(tmR,esF(e))?Pp(Bp(tmR,esF(e)),288).vg(e):null}function ehL(e){if(ehZ(eq6,e))return OQ(),e0P;if(ehZ(eq9,e))return OQ(),e0N;throw p7(new gL("Expecting true or false"))}function ehC(e,t){if(t.c==e)return t.d;if(t.d==e)return t.c;throw p7(new gL("Input edge is not connected to the input port."))}function ehI(e,t){return e.e>t.e?1:e.et.d?e.e:e.d=48&&e<48+eB4.Math.min(10,10)?e-48:e>=97&&e<97?e-97+10:e>=65&&e<65?e-65+10:-1}function ehN(e,t){var n;return xc(t)===xc(e)||!!M4(t,21)&&(n=Pp(t,21)).gc()==e.gc()&&e.Ic(n)}function ehP(e,t){var n,r,i,a;return(r=e.a.length-1,n=t-e.b&r,a=e.c-t&r,A2(n<(i=e.c-e.b&r)),n>=a)?(euD(e,t),-1):(euN(e,t),1)}function ehR(e,t){var n,r;for(n=(GV(t,e.length),e.charCodeAt(t)),r=t+1;rt.e?1:e.ft.f?1:esj(e)-esj(t)}function ehZ(e,t){return BJ(e),null!=t&&(!!IE(e,t)||e.length==t.length&&IE(e.toLowerCase(),t.toLowerCase()))}function ehX(e,t){var n,r,i,a;for(r=0,i=t.gc();r0&&0>ecd(e,128)?(t=jE(e)+128,(n=(RB(),e0H)[t])||(n=e0H[t]=new fI(e)),n):new fI(e)}function eh1(e,t){var n,r;return(n=t.Hh(e.a))&&null!=(r=Lq(edW((n.b||(n.b=new L_((eBK(),tgF),tgf,n)),n.b),eXP)))?r:t.ne()}function eh0(e,t){var n,r;return(n=t.Hh(e.a))&&null!=(r=Lq(edW((n.b||(n.b=new L_((eBK(),tgF),tgf,n)),n.b),eXP)))?r:t.ne()}function eh2(e,t){var n,r;for(Gk(),r=new Fa(OH(efs(e).a.Kc(),new c));eTk(r);)if((n=Pp(ZC(r),17)).d.i==t||n.c.i==t)return n;return null}function eh3(e,t,n){this.c=e,this.f=new p0,this.e=new yb,this.j=new R$,this.n=new R$,this.b=t,this.g=new Hr(t.c,t.d,t.b,t.a),this.a=n}function eh4(e){var t,n,r,i;for(r=0,this.a=new Tw,this.d=new bV,this.e=0,i=(n=e).length;r0)}function ept(e){var t;xc(eT8(e,(eBB(),thl)))===xc((eck(),tpG))&&(z$(e)?(t=Pp(eT8(z$(e),thl),334),ebu(e,thl,t)):ebu(e,thl,tpW))}function epn(e,t,n){var r,i;e_m(e.e,t,n,(eYu(),tbY)),e_m(e.i,t,n,tby),e.a&&(i=Pp(e_k(t,(eBU(),tnc)),11),r=Pp(e_k(n,tnc),11),WW(e.g,i,r))}function epr(e,t,n){var r,i,a;r=t.c.p,a=t.p,e.b[r][a]=new $j(e,t),n&&(e.a[r][a]=new hv(t),(i=Pp(e_k(t,(eBU(),tt8)),10))&&exg(e.d,i,t))}function epi(e,t){var n,r,i;if(P_(e9n,e),t.Fc(e),n=Pp(Bp(e9t,e),21))for(i=n.Kc();i.Ob();)-1!=QI(e9n,r=Pp(i.Pb(),33),0)||epi(r,t)}function epa(e,t,n){var r;(e2x?(edr(e),0):e2T?(_g(),0):e2A?(_g(),0):!e2O||(_g(),1))||((r=new I6(t)).b=n,eEt(e,r))}function epo(e,t){var n;n=!e.A.Hc((ed6(),tbq))||e.q==(ewf(),tbo),e.u.Hc((ekU(),tbp))?n?eY_(e,t):eF3(e,t):e.u.Hc(tbm)&&(n?eFO(e,t):eYY(e,t))}function eps(e,t){var n,r;if(++e.j,null!=t&&exM(t,n=M4(r=e.a.Cb,97)?Pp(r,97).Jg():null)){ehU(e.a,4,n);return}ehU(e.a,4,Pp(t,126))}function epu(e,t,n){return new Hr(eB4.Math.min(e.a,t.a)-n/2,eB4.Math.min(e.b,t.b)-n/2,eB4.Math.abs(e.a-t.a)+n,eB4.Math.abs(e.b-t.b)+n)}function epc(e,t){var n,r;return 0!=(n=ME(e.a.c.p,t.a.c.p))?n:0!=(r=ME(e.a.d.i.p,t.a.d.i.p))?r:ME(t.a.d.p,e.a.d.p)}function epl(e,t,n){var r,i,a,o;return(a=t.j)!=(o=n.j)?a.g-o.g:(r=e.f[t.p],i=e.f[n.p],0==r&&0==i?0:0==r?-1:0==i?1:elN(r,i))}function epf(e,t,n){var r,i,a;if(!n[t.d])for(n[t.d]=!0,i=new fz(efv(t));i.a=(i=e.length))return i;for(t=t>0?t:0;tr&&Bc(t,r,null),t}function epv(e,t){var n,r;for(r=e.a.length,t.lengthr&&Bc(t,r,null),t}function epy(e,t,n){var r,i,a;return(i=Pp(Bp(e.e,t),387))?(a=CL(i,n),M6(e,i),a):(r=new PM(e,t,n),Um(e.e,t,r),zd(r),null)}function epw(e){var t;if(null==e)return null;if(null==(t=eMI(ePh(e,!0))))throw p7(new gV("Invalid hexBinary value: '"+e+"'"));return t}function ep_(e){return(eLQ(),0>ecd(e,0))?0!=ecd(e,-1)?new ey$(-1,QC(e)):e03:0>=ecd(e,10)?e05[jE(e)]:new ey$(1,e)}function epE(){return eBW(),eow(vx(e3n,1),eU4,159,0,[e4e,e37,e4t,e30,e31,e32,e35,e34,e33,e38,e39,e36,e3J,e3X,e3Q,e3q,e3V,e3Z,e3W,e3G,e3K,e4n])}function epS(e){var t;this.d=new p0,this.j=new yb,this.g=new yb,t=e.g.b,this.f=Pp(e_k(Bq(t),(eBy(),tal)),103),this.e=gP(LV(epj(t,toN)))}function epk(e){this.b=new p0,this.e=new p0,this.d=e,this.a=!yK(UJ(new R1(null,new YI(new Z4(e.b))),new f2(new ir))).sd((_w(),e2z))}function epx(){epx=A,tdh=new ko("PARENTS",0),tdd=new ko("NODES",1),tdl=new ko("EDGES",2),tdp=new ko("PORTS",3),tdf=new ko("LABELS",4)}function epT(){epT=A,tbt=new kw("DISTRIBUTED",0),tbr=new kw("JUSTIFIED",1),tp7=new kw("BEGIN",2),tbe=new kw(e$8,3),tbn=new kw("END",4)}function epM(e){var t;switch(t=e.yi(null)){case 10:return 0;case 15:return 1;case 14:return 2;case 11:return 3;case 21:return 4}return -1}function epO(e){switch(e.g){case 1:return ec3(),tpy;case 4:return ec3(),tpm;case 2:return ec3(),tpg;case 3:return ec3(),tpb}return ec3(),tpv}function epA(e,t,n){var r;switch((r=n.q.getFullYear()-eHx+eHx)<0&&(r=-r),t){case 1:e.a+=r;break;case 2:eeE(e,r%100,2);break;default:eeE(e,r,t)}}function epL(e,t){var n,r;if(Gp(t,e.b),t>=e.b>>1)for(r=e.c,n=e.b;n>t;--n)r=r.b;else for(n=0,r=e.a.a;n=64&&t<128&&(i=WO(i,Fg(1,t-64)));return i}function epj(e,t){var n,r;return r=null,Ln(e,(eBB(),tpa))&&(n=Pp(e_k(e,tpa),94)).Xe(t)&&(r=n.We(t)),null==r&&Bq(e)&&(r=e_k(Bq(e),t)),r}function epF(e,t){var n,r,i;(r=(i=t.d.i).k)!=(eEn(),e8N)&&r!=e8L&&(n=new Fa(OH(efc(i).a.Kc(),new c)),eTk(n)&&Um(e.k,t,Pp(ZC(n),17)))}function epY(e,t){var n,r,i;return r=ee2(e.Tg(),t),(n=t-e.Ah())<0?(i=e.Yg(r))>=0?e.lh(i):exu(e,r):n<0?exu(e,r):Pp(r,66).Nj().Sj(e,e.yh(),n)}function epB(e){var t;if(!M4(e.a,4))return e.a;if(null==(t=ehA(e.a)))throw p7(new gC(eq8+e.b+"'. "+eq4+(LW(e6D),e6D.k)+eq5));return t}function epU(e){var t;if(null==e)return null;if(null==(t=eYD(ePh(e,!0))))throw p7(new gV("Invalid base64Binary value: '"+e+"'"));return t}function epH(e){var t;try{return t=e.i.Xb(e.e),e.mj(),e.g=e.e++,t}catch(n){if(n=eoa(n),M4(n,73))throw e.mj(),p7(new bC);throw p7(n)}}function ep$(e){var t;try{return t=e.c.ki(e.e),e.mj(),e.g=e.e++,t}catch(n){if(n=eoa(n),M4(n,73))throw e.mj(),p7(new bC);throw p7(n)}}function epz(){epz=A,e67=(eBB(),tpt),e63=ths,e6J=td2,e64=thN,e69=(evw(),e3y),e66=e3g,e68=e3_,e65=e3m,e61=(eug(),e6V),e6Q=e6K,e60=e6Z,e62=e6X}function epG(e){switch(_M(),this.c=new p0,this.d=e,e.g){case 0:case 2:this.a=Ug(e8_),this.b=eHQ;break;case 3:case 1:this.a=e8_,this.b=eH1}}function epW(e,t,n){var r,i;if(e.c)eno(e.c,e.c.i+t),ens(e.c,e.c.j+n);else for(i=new fz(e.b);i.a0&&(P_(e.b,new PE(t.a,n)),0<(r=t.a.length)?t.a=t.a.substr(0,0):0>r&&(t.a+=M3(Je(tyw,eHl,25,-r,15,1))))}function epq(e,t){var n,r,i;for(n=e.o,i=Pp(Pp(Zq(e.r,t),21),84).Kc();i.Ob();)(r=Pp(i.Pb(),111)).e.a=ego(r,n.a),r.e.b=n.b*gP(LV(r.b.We(e4a)))}function epZ(e,t){var n,r,i,a;return i=e.k,n=gP(LV(e_k(e,(eBU(),tnv)))),a=t.k,r=gP(LV(e_k(t,tnv))),a!=(eEn(),e8C)?-1:i!=e8C?1:n==r?0:n=0?e.hh(t,n,r):(e.eh()&&(r=(i=e.Vg())>=0?e.Qg(r):e.eh().ih(e,-1-i,null,r)),e.Sg(t,n,r))}function ep2(e,t){switch(t){case 7:e.e||(e.e=new Ih(e6g,e,7,4)),eRT(e.e);return;case 8:e.d||(e.d=new Ih(e6g,e,8,5)),eRT(e.d);return}edS(e,t)}function ep3(e,t){var n;n=e.Zc(t);try{return n.Pb()}catch(r){if(r=eoa(r),M4(r,109))throw p7(new gE("Can't get element "+t));throw p7(r)}}function ep4(e,t){this.e=e,t=0&&(n.d=e.t);break;case 3:e.t>=0&&(n.a=e.t)}e.C&&(n.b=e.C.b,n.c=e.C.c)}function ep7(){ep7=A,e4d=new EN(ezb,0),e4f=new EN(ezm,1),e4h=new EN(ezg,2),e4p=new EN(ezv,3),e4d.a=!1,e4f.a=!0,e4h.a=!1,e4p.a=!0}function ebe(){ebe=A,e6U=new ED(ezb,0),e6B=new ED(ezm,1),e6H=new ED(ezg,2),e6$=new ED(ezv,3),e6U.a=!1,e6B.a=!0,e6H.a=!1,e6$.a=!0}function ebt(e){var t;t=e.a;do(t=Pp(ZC(new Fa(OH(efu(t).a.Kc(),new c))),17).c.i).k==(eEn(),e8D)&&e.b.Fc(t);while(t.k==(eEn(),e8D))e.b=eaa(e.b)}function ebn(e){var t,n,r;for(r=e.c.a,e.p=(Y9(r),new I4(r)),n=new fz(r);n.an.b))}function ebs(e,t){return xd(e)?!!e0c[t]:e.hm?!!e.hm[t]:xf(e)?!!e0u[t]:!!xl(e)&&!!e0s[t]}function ebu(e,t,n){return null==n?(e.o||(e.o=new JY((eBa(),tmy),e6O,e,0)),ehx(e.o,t)):(e.o||(e.o=new JY((eBa(),tmy),e6O,e,0)),evQ(e.o,t,n)),e}function ebc(e,t,n,r){var i,a;a=t.Xe((eBB(),thS))?Pp(t.We(thS),21):e.j,(i=ele(a))!=(eBW(),e4n)&&(!n||ehj(i))&&eEU(eMD(e,i,r),t)}function ebl(e,t,n,r){var i,a,o;return a=ee2(e.Tg(),t),(i=t-e.Ah())<0?(o=e.Yg(a))>=0?e._g(o,n,!0):exk(e,a,n):Pp(a,66).Nj().Pj(e,e.yh(),i,n,r)}function ebf(e,t,n,r){var i,a,o;n.mh(t)&&(_4(),eec(t)?ehX(e,i=Pp(n.ah(t),153)):(a=(o=t)?Pp(r,49).xh(o):null)&&p6(n.ah(t),a))}function ebd(e){switch(e.g){case 1:return eaY(),e4c;case 3:return eaY(),e4o;case 2:return eaY(),e4u;case 4:return eaY(),e4s;default:return null}}function ebh(e){switch(typeof e){case eUo:return ebA(e);case eUa:return zy(e);case eUi:return OQ(),e?1231:1237;default:return null==e?0:Ao(e)}}function ebp(e,t,n){if(e.e)switch(e.b){case 1:HJ(e.c,t,n);break;case 0:HQ(e.c,t,n)}else V6(e.c,t,n);e.a[t.p][n.p]=e.c.i,e.a[n.p][t.p]=e.c.e}function ebb(e){var t,n;if(null==e)return null;for(t=0,n=Je(e4N,eUP,193,e.length,0,2);t=0)return i;if(e.Fk()){for(r=0;r=(i=e.gc()))throw p7(new Ii(t,i));if(e.hi()&&(r=e.Xc(n))>=0&&r!=t)throw p7(new gL(eXB));return e.mi(t,n)}function ebw(e,t){if(this.a=Pp(Y9(e),245),this.b=Pp(Y9(t),245),e.vd(t)>0||e==(m3(),e0f)||t==(m2(),e0d))throw p7(new gL("Invalid range: "+VW(e,t)))}function eb_(e){var t,n;for(this.b=new p0,this.c=e,this.a=!1,n=new fz(e.a);n.a0),(t&-t)==t)return zy(t*eMU(e,31)*4656612873077393e-25);do r=(n=eMU(e,31))%t;while(n-r+(t-1)<0)return zy(r)}function ebA(e){var t,n,r;return(I9(),null!=(r=e2W[n=":"+e]))?zy((BJ(r),r)):(t=null==(r=e2G[n])?eAC(e):zy((BJ(r),r)),HB(),e2W[n]=t,t)}function ebL(e,t,n){ewG(n,"Compound graph preprocessor",1),e.a=new zu,eFC(e,t,null),eRs(e,t),eOz(e),eo3(t,(eBU(),ttW),e.a),e.a=null,Yy(e.b),eEj(n)}function ebC(e,t,n){switch(n.g){case 1:e.a=t.a/2,e.b=0;break;case 2:e.a=t.a,e.b=t.b/2;break;case 3:e.a=t.a/2,e.b=t.b;break;case 4:e.a=0,e.b=t.b/2}}function ebI(e){var t,n,r;for(r=Pp(Zq(e.a,(ey4(),tea)),15).Kc();r.Ob();)t=egD(n=Pp(r.Pb(),101)),Yz(e,n,t[0],(erX(),ted),0),Yz(e,n,t[1],tep,1)}function ebD(e){var t,n,r;for(r=Pp(Zq(e.a,(ey4(),teo)),15).Kc();r.Ob();)t=egD(n=Pp(r.Pb(),101)),Yz(e,n,t[0],(erX(),ted),0),Yz(e,n,t[1],tep,1)}function ebN(e){switch(e.g){case 0:return null;case 1:return new er1;case 2:return new mQ;default:throw p7(new gL(eqa+(null!=e.f?e.f:""+e.g)))}}function ebP(e,t,n){var r,i;for(eod(e,t-e.s,n-e.t),i=new fz(e.n);i.a1&&(a=ebE(e,t)),a}function ebj(e){var t;return e.f&&e.f.kh()&&(t=Pp(e.f,49),e.f=Pp(ecv(e,t),82),e.f!=t&&(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new FX(e,9,8,t,e.f))),e.f}function ebF(e){var t;return e.i&&e.i.kh()&&(t=Pp(e.i,49),e.i=Pp(ecv(e,t),82),e.i!=t&&(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new FX(e,9,7,t,e.i))),e.i}function ebY(e){var t;return e.b&&(64&e.b.Db)!=0&&(t=e.b,e.b=Pp(ecv(e,t),18),e.b!=t&&(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new FX(e,9,21,t,e.b))),e.b}function ebB(e,t){var n,r,i;null==e.d?(++e.e,++e.f):(r=t.Sh(),eO1(e,e.f+1),i=(r&eUu)%e.d.length,(n=e.d[i])||(n=e.d[i]=e.uj()),n.Fc(t),++e.f)}function ebU(e,t,n){var r;return!t.Kj()&&(-2!=t.Zj()?null==(r=t.zj())?null==n:ecX(r,n):t.Hj()==e.e.Tg()&&null==n)}function ebH(){var e;enG(16,eU0),e=er_(16),this.b=Je(e1z,eU1,317,e,0,1),this.c=Je(e1z,eU1,317,e,0,1),this.a=null,this.e=null,this.i=0,this.f=e-1,this.g=0}function eb$(e){CW.call(this),this.k=(eEn(),e8N),this.j=(enG(6,eU3),new XM(6)),this.b=(enG(2,eU3),new XM(2)),this.d=new md,this.f=new mb,this.a=e}function ebz(e){var t,n;!(e.c.length<=1)&&(t=eLW(e,(eYu(),tbj)),eSe(e,Pp(t.a,19).a,Pp(t.b,19).a),n=eLW(e,tbY),eSe(e,Pp(n.a,19).a,Pp(n.b,19).a))}function ebG(){ebG=A,tsb=new Sx("SIMPLE",0),tsd=new Sx(eWg,1),tsh=new Sx("LINEAR_SEGMENTS",2),tsf=new Sx("BRANDES_KOEPF",3),tsp=new Sx(eVI,4)}function ebW(e,t,n){IR(Pp(e_k(t,(eBy(),tol)),98))||(Q3(e,t,eEC(t,n)),Q3(e,t,eEC(t,(eYu(),tbj))),Q3(e,t,eEC(t,tbw)),Hj(),Mv(t.j,new hm(e)))}function ebK(e,t,n,r){var i,a,o;for(o=(i=r?Pp(Zq(e.a,t),21):Pp(Zq(e.b,t),21)).Kc();o.Ob();)if(eL8(e,n,a=Pp(o.Pb(),33)))return!0;return!1}function ebV(e){var t,n;for(n=new Ow(e);n.e!=n.i.gc();)if((t=Pp(epH(n),87)).e||0!=(t.d||(t.d=new O_(tgr,t,1)),t.d).i)return!0;return!1}function ebq(e){var t,n;for(n=new Ow(e);n.e!=n.i.gc();)if((t=Pp(epH(n),87)).e||0!=(t.d||(t.d=new O_(tgr,t,1)),t.d).i)return!0;return!1}function ebZ(e){var t,n,r;for(t=0,r=new fz(e.c.a);r.a102?-1:e<=57?e-48:e<65?-1:e<=70?e-65+10:e<97?-1:e-97+10}function eb2(e,t){if(null==e)throw p7(new gD("null key in entry: null="+t));if(null==t)throw p7(new gD("null value in entry: "+e+"=null"))}function eb3(e,t){for(var n,r;e.Ob();)if(!t.Ob()||(n=e.Pb(),r=t.Pb(),!(xc(n)===xc(r)||null!=n&&ecX(n,r))))return!1;return!t.Ob()}function eb4(e,t){var n;return n=eow(vx(tyx,1),eH5,25,15,[euG(e.a[0],t),euG(e.a[1],t),euG(e.a[2],t)]),e.d&&(n[0]=eB4.Math.max(n[0],n[2]),n[2]=n[0]),n}function eb5(e,t){var n;return n=eow(vx(tyx,1),eH5,25,15,[euW(e.a[0],t),euW(e.a[1],t),euW(e.a[2],t)]),e.d&&(n[0]=eB4.Math.max(n[0],n[2]),n[2]=n[0]),n}function eb6(){eb6=A,teG=new Sf("GREEDY",0),tez=new Sf(eWv,1),teK=new Sf(eWg,2),teV=new Sf("MODEL_ORDER",3),teW=new Sf("GREEDY_MODEL_ORDER",4)}function eb9(e,t){var n,r,i;for(e.b[t.g]=1,r=epL(t.d,0);r.b!=r.d.c;)i=(n=Pp(Vv(r),188)).c,1==e.b[i.g]?P7(e.a,n):2==e.b[i.g]?e.b[i.g]=1:eb9(e,i)}function eb8(e,t){var n,r,i;for(i=new XM(t.gc()),r=t.Kc();r.Ob();)(n=Pp(r.Pb(),286)).c==n.f?eE5(e,n,n.c):eEQ(e,n)||(i.c[i.c.length]=n);return i}function eb7(e,t,n){var r,i,a,o,s;for(s=e.r+t,e.r+=t,e.d+=n,r=n/e.n.c.length,i=0,o=new fz(e.n);o.aa&&Bc(t,a,null),t}function emx(e,t){var n,r;if(r=e.gc(),null==t){for(n=0;n0&&(u+=i),c[l]=o,o+=s*(u+r)}function emj(e){var t,n,r;for(t=0,r=e.f,e.n=Je(tyx,eH5,25,r,15,1),e.d=Je(tyx,eH5,25,r,15,1);t0?e.c:0),++i;e.b=r,e.d=a}function emW(e,t){var n,r,i,a,o;for(r=0,i=0,n=0,o=new fz(t);o.a0?e.g:0),++n;e.c=i,e.d=r}function emK(e,t){var n;return n=eow(vx(tyx,1),eH5,25,15,[ebM(e,(etx(),e3D),t),ebM(e,e3N,t),ebM(e,e3P,t)]),e.f&&(n[0]=eB4.Math.max(n[0],n[2]),n[2]=n[0]),n}function emV(e,t,n){var r;try{eCQ(e,t+e.j,n+e.k,!1,!0)}catch(i){if(i=eoa(i),M4(i,73))throw r=i,p7(new gE(r.g+ezk+t+eUd+n+")."));throw p7(i)}}function emq(e,t,n){var r;try{eCQ(e,t+e.j,n+e.k,!0,!1)}catch(i){if(i=eoa(i),M4(i,73))throw r=i,p7(new gE(r.g+ezk+t+eUd+n+")."));throw p7(i)}}function emZ(e){var t;Ln(e,(eBy(),taZ))&&((t=Pp(e_k(e,taZ),21)).Hc((eT7(),tp1))?(t.Mc(tp1),t.Fc(tp2)):t.Hc(tp2)&&(t.Mc(tp2),t.Fc(tp1)))}function emX(e){var t;Ln(e,(eBy(),taZ))&&((t=Pp(e_k(e,taZ),21)).Hc((eT7(),tp9))?(t.Mc(tp9),t.Fc(tp5)):t.Hc(tp5)&&(t.Mc(tp5),t.Fc(tp9)))}function emJ(e,t,n){ewG(n,"Self-Loop ordering",1),_r(UQ(UJ(UJ(eeh(new R1(null,new Gq(t.b,16)),new n9),new n8),new n7),new re),new d1(e)),eEj(n)}function emQ(e,t,n,r){var i,a;for(i=t;i0&&(i.b+=t),i}function em8(e,t){var n,r,i;for(i=new yb,r=e.Kc();r.Ob();)eIn(n=Pp(r.Pb(),37),0,i.b),i.b+=n.f.b+t,i.a=eB4.Math.max(i.a,n.f.a);return i.a>0&&(i.a+=t),i}function em7(e){var t,n,r;for(r=eUu,n=new fz(e.a);n.a>16==6?e.Cb.ih(e,5,e6E,t):(r=ebY(Pp(ee2((n=Pp(eaS(e,16),26))||e.zh(),e.Db>>16),18)),e.Cb.ih(e,r.n,r.f,t))}function egr(e){$O();var t=e.e;if(t&&t.stack){var n=t.stack,r=t+"\n";return n.substring(0,r.length)==r&&(n=n.substring(r.length)),n.split("\n")}return[]}function egi(e){var t;return(t=(en4(),e0U))[e>>>28]|t[e>>24&15]<<4|t[e>>20&15]<<8|t[e>>16&15]<<12|t[e>>12&15]<<16|t[e>>8&15]<<20|t[e>>4&15]<<24|t[15&e]<<28}function ega(e){var t,n,r;e.b==e.c&&(r=e.a.length,n=esi(eB4.Math.max(8,r))<<1,0!=e.b?(t=CY(e.a,n),erL(e,t,r),e.a=t,e.b=0):bF(e.a,n),e.c=r)}function ego(e,t){var n;return(n=e.b).Xe((eBB(),thK))?n.Hf()==(eYu(),tbY)?-n.rf().a-gP(LV(n.We(thK))):t+gP(LV(n.We(thK))):n.Hf()==(eYu(),tbY)?-n.rf().a:t}function egs(e){var t;return 0!=e.b.c.length&&Pp(RJ(e.b,0),70).a?Pp(RJ(e.b,0),70).a:null!=(t=Hh(e))?t:""+(e.c?QI(e.c.a,e,0):-1)}function egu(e){var t;return 0!=e.f.c.length&&Pp(RJ(e.f,0),70).a?Pp(RJ(e.f,0),70).a:null!=(t=Hh(e))?t:""+(e.i?QI(e.i.j,e,0):-1)}function egc(e,t){var n,r;if(t<0||t>=e.gc())return null;for(n=t;n0?e.c:0),i=eB4.Math.max(i,t.d),++r;e.e=a,e.b=i}function egd(e){var t,n;if(!e.b)for(e.b=K$(Pp(e.f,118).Ag().i),n=new Ow(Pp(e.f,118).Ag());n.e!=n.i.gc();)t=Pp(epH(n),137),P_(e.b,new gO(t));return e.b}function egh(e,t){var n,r,i;if(t.dc())return LF(),LF(),tmB;for(n=new Cy(e,t.gc()),i=new Ow(e);i.e!=i.i.gc();)r=epH(i),t.Hc(r)&&JL(n,r);return n}function egp(e,t,n,r){return 0==t?r?(e.o||(e.o=new JY((eBa(),tmy),e6O,e,0)),e.o):(e.o||(e.o=new JY((eBa(),tmy),e6O,e,0)),X6(e.o)):ebl(e,t,n,r)}function egb(e){var t,n;if(e.rb)for(t=0,n=e.rb.i;t>22))>>22)<0)&&(e.l=n&eHH,e.m=r&eHH,e.h=i&eH$,!0))}function egw(e,t,n,r,i,a,o){var s,u;return!(t.Ae()&&((u=e.a.ue(n,r))<0||!i&&0==u)||t.Be()&&((s=e.a.ue(n,a))>0||!o&&0==s))}function eg_(e,t){var n;if(euv(),0!=(n=e.j.g-t.j.g))return 0;switch(e.j.g){case 2:return efy(t,e73)-efy(e,e73);case 4:return efy(e,e72)-efy(t,e72)}return 0}function egE(e){switch(e.g){case 0:return te3;case 1:return te4;case 2:return te5;case 3:return te6;case 4:return te9;case 5:return te8;default:return null}}function egS(e,t,n){var r,i;return r=(eu2(i=new mN,t),er3(i,n),JL((e.c||(e.c=new FQ(tga,e,12,10)),e.c),i),i),end(r,0),enh(r,1),els(r,!0),eli(r,!0),r}function egk(e,t){var n,r;if(t>=e.i)throw p7(new xJ(t,e.i));return++e.j,n=e.g[t],(r=e.i-t-1)>0&&ePD(e.g,t+1,e.g,t,r),Bc(e.g,--e.i,null),e.fi(t,n),e.ci(),n}function egx(e,t){var n,r;return e.Db>>16==17?e.Cb.ih(e,21,tm7,t):(r=ebY(Pp(ee2((n=Pp(eaS(e,16),26))||e.zh(),e.Db>>16),18)),e.Cb.ih(e,r.n,r.f,t))}function egT(e){var t,n,r,i;for(Hj(),Mv(e.c,e.a),i=new fz(e.c);i.an.a.c.length))throw p7(new gL("index must be >= 0 and <= layer node count"));e.c&&QA(e.c.a,e),e.c=n,n&&jO(n.a,t,e)}function egH(e,t){var n,r,i;for(r=new Fa(OH(efs(e).a.Kc(),new c));eTk(r);)return n=Pp(ZC(r),17),i=Pp(t.Kb(n),10),new c5(Y9(i.n.b+i.o.b/2));return m4(),m4(),e0l}function eg$(e,t){this.c=new p2,this.a=e,this.b=t,this.d=Pp(e_k(e,(eBU(),tnx)),304),xc(e_k(e,(eBy(),taX)))===xc((Qx(),tte))?this.e=new mg:this.e=new mm}function egz(e,t){var n,r,i,a;for(a=0,r=new fz(e);r.a>16==6?e.Cb.ih(e,6,e6g,t):(r=ebY(Pp(ee2((n=Pp(eaS(e,16),26))||(eBa(),tmp),e.Db>>16),18)),e.Cb.ih(e,r.n,r.f,t))}function eg0(e,t){var n,r;return e.Db>>16==7?e.Cb.ih(e,1,e6p,t):(r=ebY(Pp(ee2((n=Pp(eaS(e,16),26))||(eBa(),tmm),e.Db>>16),18)),e.Cb.ih(e,r.n,r.f,t))}function eg2(e,t){var n,r;return e.Db>>16==9?e.Cb.ih(e,9,e6k,t):(r=ebY(Pp(ee2((n=Pp(eaS(e,16),26))||(eBa(),tmv),e.Db>>16),18)),e.Cb.ih(e,r.n,r.f,t))}function eg3(e,t){var n,r;return e.Db>>16==5?e.Cb.ih(e,9,tgt,t):(r=ebY(Pp(ee2((n=Pp(eaS(e,16),26))||(eBK(),tgT),e.Db>>16),18)),e.Cb.ih(e,r.n,r.f,t))}function eg4(e,t){var n,r;return e.Db>>16==3?e.Cb.ih(e,0,e6y,t):(r=ebY(Pp(ee2((n=Pp(eaS(e,16),26))||(eBK(),tgy),e.Db>>16),18)),e.Cb.ih(e,r.n,r.f,t))}function eg5(e,t){var n,r;return e.Db>>16==7?e.Cb.ih(e,6,e6E,t):(r=ebY(Pp(ee2((n=Pp(eaS(e,16),26))||(eBK(),tgP),e.Db>>16),18)),e.Cb.ih(e,r.n,r.f,t))}function eg6(){this.a=new o6,this.g=new ebH,this.j=new ebH,this.b=new p2,this.d=new ebH,this.i=new ebH,this.k=new p2,this.c=new p2,this.e=new p2,this.f=new p2}function eg9(e,t,n){var r,i,a;for(n<0&&(n=0),a=e.i,i=n;ieH6)return eg7(e,r);if(r==e)return!0}}return!1}function eve(e){switch(Ab(),e.q.g){case 5:ekK(e,(eYu(),tbw)),ekK(e,tbj);break;case 4:eMz(e,(eYu(),tbw)),eMz(e,tbj);break;default:eYa(e,(eYu(),tbw)),eYa(e,tbj)}}function evt(e){switch(Ab(),e.q.g){case 5:exG(e,(eYu(),tby)),exG(e,tbY);break;case 4:epq(e,(eYu(),tby)),epq(e,tbY);break;default:eYo(e,(eYu(),tby)),eYo(e,tbY)}}function evn(e){var t,n;(t=Pp(e_k(e,(eCk(),e9O)),19))?0==(n=t.a)?eo3(e,(erV(),e9F),new efo):eo3(e,(erV(),e9F),new qS(n)):eo3(e,(erV(),e9F),new qS(1))}function evr(e,t){var n;switch(n=e.i,t.g){case 1:return-(e.n.b+e.o.b);case 2:return e.n.a-n.o.a;case 3:return e.n.b-n.o.b;case 4:return-(e.n.a+e.o.a)}return 0}function evi(e,t){switch(e.g){case 0:return t==(ef_(),tnN)?e7V:e7q;case 1:return t==(ef_(),tnN)?e7V:e7K;case 2:return t==(ef_(),tnN)?e7K:e7q;default:return e7K}}function eva(e,t){var n,r,i;for(QA(e.a,t),e.e-=t.r+(0==e.a.c.length?0:e.c),i=eqe,r=new fz(e.a);r.a>16==3?e.Cb.ih(e,12,e6k,t):(r=ebY(Pp(ee2((n=Pp(eaS(e,16),26))||(eBa(),tmh),e.Db>>16),18)),e.Cb.ih(e,r.n,r.f,t))}function evs(e,t){var n,r;return e.Db>>16==11?e.Cb.ih(e,10,e6k,t):(r=ebY(Pp(ee2((n=Pp(eaS(e,16),26))||(eBa(),tmg),e.Db>>16),18)),e.Cb.ih(e,r.n,r.f,t))}function evu(e,t){var n,r;return e.Db>>16==10?e.Cb.ih(e,11,tm7,t):(r=ebY(Pp(ee2((n=Pp(eaS(e,16),26))||(eBK(),tgD),e.Db>>16),18)),e.Cb.ih(e,r.n,r.f,t))}function evc(e,t){var n,r;return e.Db>>16==10?e.Cb.ih(e,12,tgi,t):(r=ebY(Pp(ee2((n=Pp(eaS(e,16),26))||(eBK(),tgR),e.Db>>16),18)),e.Cb.ih(e,r.n,r.f,t))}function evl(e){var t;return(1&e.Bb)==0&&e.r&&e.r.kh()&&(t=Pp(e.r,49),e.r=Pp(ecv(e,t),138),e.r!=t&&(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new FX(e,9,8,t,e.r))),e.r}function evf(e,t,n){var r;return r=eow(vx(tyx,1),eH5,25,15,[e_u(e,(etx(),e3D),t,n),e_u(e,e3N,t,n),e_u(e,e3P,t,n)]),e.f&&(r[0]=eB4.Math.max(r[0],r[2]),r[2]=r[0]),r}function evd(e,t){var n,r,i;if(0!=(i=eb8(e,t)).c.length)for(Mv(i,new nD),n=i.c.length,r=0;r>19)!=(c=t.h>>19)?c-u:(i=e.h)!=(s=t.h)?i-s:(r=e.m)!=(o=t.m)?r-o:(n=e.l)-(a=t.l)}function evw(){evw=A,e3E=(eCp(),e3A),e3_=new xX(e$J,e3E),e3w=(eeR(),e3p),e3y=new xX(e$Q,e3w),e3v=(epC(),e3f),e3g=new xX(e$1,e3v),e3m=new xX(e$0,(OQ(),!0))}function ev_(e,t,n){var r,i;r=t*n,M4(e.g,145)?(i=Vm(e)).f.d?i.f.a||(e.d.a+=r+ezs):(e.d.d-=r+ezs,e.d.a+=r+ezs):M4(e.g,10)&&(e.d.d-=r,e.d.a+=2*r)}function evE(e,t,n){var r,i,a,o,s;for(i=e[n.g],s=new fz(t.d);s.a0?e.g:0),++n;t.b=r,t.e=i}function evk(e){var t,n,r;if(r=e.b,w4(e.i,r.length)){for(n=2*r.length,e.b=Je(e1z,eU1,317,n,0,1),e.c=Je(e1z,eU1,317,n,0,1),e.f=n-1,e.i=0,t=e.a;t;t=t.c)ekT(e,t,t);++e.g}}function evx(e,t,n,r){var i,a,o,s;for(i=0;io&&(s=o/r),i>a&&(u=a/i),Ol(e,eB4.Math.min(s,u)),e}function evO(){var e,t;ePm();try{if(t=Pp(eyv((_Q(),tgp),eXe),2014))return t}catch(n){if(n=eoa(n),M4(n,102))e=n,Fi((Mo(),e));else throw p7(n)}return new o1}function evA(){var e,t;Qk();try{if(t=Pp(eyv((_Q(),tgp),eQB),2024))return t}catch(n){if(n=eoa(n),M4(n,102))e=n,Fi((Mo(),e));else throw p7(n)}return new uc}function evL(){var e,t;ePm();try{if(t=Pp(eyv((_Q(),tgp),eQc),1941))return t}catch(n){if(n=eoa(n),M4(n,102))e=n,Fi((Mo(),e));else throw p7(n)}return new sT}function evC(e,t,n){var r,i;return i=e.e,e.e=t,(4&e.Db)!=0&&(1&e.Db)==0&&(r=new FX(e,1,4,i,t),n?n.Ei(r):n=r),i!=t&&(n=t?eFr(e,eOl(e,t),n):eFr(e,e.a,n)),n}function evI(){wW.call(this),this.e=-1,this.a=!1,this.p=eHt,this.k=-1,this.c=-1,this.b=-1,this.g=!1,this.f=-1,this.j=-1,this.n=-1,this.i=-1,this.d=-1,this.o=eHt}function evD(e,t){var n,r,i;if(r=e.b.d.d,e.a||(r+=e.b.d.a),i=t.b.d.d,t.a||(i+=t.b.d.a),0==(n=elN(r,i))){if(!e.a&&t.a)return -1;if(!t.a&&e.a)return 1}return n}function evN(e,t){var n,r,i;if(r=e.b.b.d,e.a||(r+=e.b.b.a),i=t.b.b.d,t.a||(i+=t.b.b.a),0==(n=elN(r,i))){if(!e.a&&t.a)return -1;if(!t.a&&e.a)return 1}return n}function evP(e,t){var n,r,i;if(r=e.b.g.d,e.a||(r+=e.b.g.a),i=t.b.g.d,t.a||(i+=t.b.g.a),0==(n=elN(r,i))){if(!e.a&&t.a)return -1;if(!t.a&&e.a)return 1}return n}function evR(){evR=A,e99=j0(RI(RI(RI(new K2,(e_x(),e8r),(eB$(),e7f)),e8r,e7b),e8i,e7E),e8i,e87),e97=RI(RI(new K2,e8r,e8Q),e8r,e7e),e98=j0(new K2,e8i,e7n)}function evj(e){var t,n,r,i,a;for(t=Pp(e_k(e,(eBU(),ttq)),83),a=e.n,r=t.Cc().Kc();r.Ob();)i=(n=Pp(r.Pb(),306)).i,i.c+=a.a,i.d+=a.b,n.c?eL3(n):eL4(n);eo3(e,ttq,null)}function evF(e,t,n){var r,i;switch(r=(i=e.b).d,t.g){case 1:return-r.d-n;case 2:return i.o.a+r.c+n;case 3:return i.o.b+r.a+n;case 4:return-r.b-n;default:return -1}}function evY(e){var t,n,r,i,a;if(r=0,i=ezq,e.b)for(t=0;t<360;t++)n=.017453292519943295*t,eIq(e,e.d,0,0,eV7,n),(a=e.b.ig(e.d))0&&(o=(a&eUu)%e.d.length,i=exx(e,o,a,t)))?s=i.ed(n):(r=e.tj(a,t,n),e.c.Fc(r),null)}function ev1(e,t){var n,r,i,a;switch(ecG(e,t)._k()){case 3:case 2:for(i=0,a=(n=ePk(t)).i;i=0;r--)if(IE(e[r].d,t)||IE(e[r].d,n)){e.length>=r+1&&e.splice(0,r+1);break}return e}function eyt(e,t){var n;return Ts(e)&&Ts(t)&&eHV<(n=e/t)&&n0&&(e.b+=2,e.a+=r):(e.b+=1,e.a+=eB4.Math.min(r,i))}function eyc(e,t){var n,r;if(r=!1,xd(t)&&(r=!0,BC(e,new B_(Lq(t)))),!r&&M4(t,236)&&(r=!0,BC(e,(n=IZ(Pp(t,236)),new lI(n)))),!r)throw p7(new gk(eXE))}function eyl(e,t,n,r){var i,a,o;return i=new Q$(e.e,1,10,M4(o=t.c,88)?Pp(o,26):(eBK(),tgI),M4(a=n.c,88)?Pp(a,26):(eBK(),tgI),ebv(e,t),!1),r?r.Ei(i):r=i,r}function eyf(e){var t,n;switch(Pp(e_k(Bq(e),(eBy(),taP)),420).g){case 0:return t=e.n,n=e.o,new kl(t.a+n.a/2,t.b+n.b/2);case 1:return new TS(e.n);default:return null}}function eyd(){eyd=A,tto=new Sm(eGR,0),tta=new Sm("LEFTUP",1),ttu=new Sm("RIGHTUP",2),tti=new Sm("LEFTDOWN",3),tts=new Sm("RIGHTDOWN",4),ttr=new Sm("BALANCED",5)}function eyh(e,t,n){var r,i,a;if(0==(r=elN(e.a[t.p],e.a[n.p]))){if(i=Pp(e_k(t,(eBU(),tt7)),15),a=Pp(e_k(n,tt7),15),i.Hc(n))return -1;if(a.Hc(t))return 1}return r}function eyp(e){switch(e.g){case 1:return new a$;case 2:return new az;case 3:return new aH;case 0:return null;default:throw p7(new gL(eqa+(null!=e.f?e.f:""+e.g)))}}function eyb(e,t,n){switch(t){case 1:e.n||(e.n=new FQ(e6S,e,1,7)),eRT(e.n),e.n||(e.n=new FQ(e6S,e,1,7)),Y4(e.n,Pp(n,14));return;case 2:ert(e,Lq(n));return}esU(e,t,n)}function eym(e,t,n){switch(t){case 3:eni(e,gP(LV(n)));return;case 4:ena(e,gP(LV(n)));return;case 5:eno(e,gP(LV(n)));return;case 6:ens(e,gP(LV(n)));return}eyb(e,t,n)}function eyg(e,t,n){var r,i,a;(i=ew3(a=r=new mN,t,null))&&i.Fi(),er3(a,n),JL((e.c||(e.c=new FQ(tga,e,12,10)),e.c),a),end(a,0),enh(a,1),els(a,!0),eli(a,!0)}function eyv(e,t){var n,r,i;return M4(n=Ea(e.g,t),235)?((i=Pp(n,235)).Qh(),i.Nh()):M4(n,498)?i=(r=Pp(n,1938)).b:null}function eyy(e,t,n,r){var i,a;return Y9(t),Y9(n),a=Pp(Iq(e.d,t),19),QW(!!a,"Row %s not in %s",t,e.e),i=Pp(Iq(e.b,n),19),QW(!!i,"Column %s not in %s",n,e.c),eoy(e,a.a,i.a,r)}function eyw(e,t,n,r,i,a,o){var s,u,c,l,f;if(l=i[a],f=emH(s=(c=a==o-1)?r:0,l),10!=r&&eow(vx(e,o-a),t[a],n[a],s,f),!c)for(++a,u=0;u1||-1==s?(a=Pp(u,15),i.Wb(ehk(e,a))):i.Wb(eI4(e,Pp(u,56))))}function eyP(e,t,n,r){wd();var i=eUn;function a(){for(var e=0;eeVW);)i>-.000001&&++n;return n}function eyW(e,t){var n;t!=e.b?(n=null,e.b&&(n=$7(e.b,e,-4,n)),t&&(n=ep0(t,e,-4,n)),(n=ecm(e,t,n))&&n.Fi()):(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new FX(e,1,3,t,t))}function eyK(e,t){var n;t!=e.f?(n=null,e.f&&(n=$7(e.f,e,-1,n)),t&&(n=ep0(t,e,-1,n)),(n=ecg(e,t,n))&&n.Fi()):(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new FX(e,1,0,t,t))}function eyV(e){var t,n,r;if(null==e)return null;if((n=Pp(e,15)).dc())return"";for(r=new vs,t=n.Kc();t.Ob();)xk(r,(eR7(),Lq(t.Pb()))),r.a+=" ";return x3(r,r.a.length-1)}function eyq(e){var t,n,r;if(null==e)return null;if((n=Pp(e,15)).dc())return"";for(r=new vs,t=n.Kc();t.Ob();)xk(r,(eR7(),Lq(t.Pb()))),r.a+=" ";return x3(r,r.a.length-1)}function eyZ(e,t,n){var r,i;return(r=e.c[t.c.p][t.p],i=e.c[n.c.p][n.p],null!=r.a&&null!=i.a)?F_(r.a,i.a):null!=r.a?-1:null!=i.a?1:0}function eyX(e,t){var n,r,i,a,o,s;if(t)for(a=t.a.length,s=((n=new Fs(a)).b-n.a)*n.c<0?(_9(),eB3):new OR(n);s.Ob();)i=KZ(t,(o=Pp(s.Pb(),19)).a),UX((r=new pu(e)).a,i)}function eyJ(e,t){var n,r,i,a,o,s;if(t)for(a=t.a.length,s=((n=new Fs(a)).b-n.a)*n.c<0?(_9(),eB3):new OR(n);s.Ob();)i=KZ(t,(o=Pp(s.Pb(),19)).a),UZ((r=new h7(e)).a,i)}function eyQ(e){var t;if(null!=e&&e.length>0&&33==UI(e,e.length-1))try{return t=eSR(Az(e,0,e.length-1)),null==t.e}catch(n){if(n=eoa(n),!M4(n,32))throw p7(n)}return!1}function ey1(e,t,n){var r,i,a;return r=t.ak(),a=t.dd(),i=r.$j()?$N(e,3,r,null,a,eN1(e,r,a,M4(r,99)&&(Pp(r,18).Bb&eH3)!=0),!0):$N(e,1,r,r.zj(),a,-1,!0),n?n.Ei(i):n=i,n}function ey0(){var e,t,n;for(e=0,t=0;e<1;e++){if(0==(n=eTa((GV(e,1),"X".charCodeAt(e)))))throw p7(new gX("Unknown Option: "+"X".substr(e)));t|=n}return t}function ey2(e,t,n){var r,i,a;switch(i=el0(r=Bq(t)),a=new eES,Gc(a,t),n.g){case 1:ekv(a,elC(ef9(i)));break;case 2:ekv(a,ef9(i))}return eo3(a,(eBy(),toc),LV(e_k(e,toc))),a}function ey3(e){var t,n;return t=Pp(ZC(new Fa(OH(efu(e.a).a.Kc(),new c))),17),n=Pp(ZC(new Fa(OH(efc(e.a).a.Kc(),new c))),17),gN(LK(e_k(t,(eBU(),tnE))))||gN(LK(e_k(n,tnE)))}function ey4(){ey4=A,ter=new Sa("ONE_SIDE",0),tea=new Sa("TWO_SIDES_CORNER",1),teo=new Sa("TWO_SIDES_OPPOSING",2),tei=new Sa("THREE_SIDES",3),ten=new Sa("FOUR_SIDES",4)}function ey5(e,t,n,r,i){var a,o;a=Pp(qE(UJ(t.Oc(),new ih),JF(new U,new B,new en,eow(vx(e2L,1),eU4,132,0,[(eum(),e2U)]))),15),o=Pp(eay(e.b,n,r),15),0==i?o.Wc(0,a):o.Gc(a)}function ey6(e,t){var n,r,i,a,o;for(a=new fz(t.a);a.a0&&egL(this,this.c-1,(eYu(),tby)),this.c0&&e[0].length>0&&(this.c=gN(LK(e_k(Bq(e[0][0]),(eBU(),tne))))),this.a=Je(e5d,eUP,2018,e.length,0,2),this.b=Je(e5h,eUP,2019,e.length,0,2),this.d=new euX}function ewu(e){return 0!=e.c.length&&((GK(0,e.c.length),Pp(e.c[0],17)).c.i.k==(eEn(),e8D)||q3(UQ(new R1(null,new Gq(e,16)),new iJ),new iQ))}function ewc(e,t,n){return ewG(n,"Tree layout",1),Kx(e.b),Yb(e.b,(egR(),tuJ),tuJ),Yb(e.b,tuQ,tuQ),Yb(e.b,tu1,tu1),Yb(e.b,tu0,tu0),e.a=eRq(e.b,t),eAG(e,t,eiI(n,1)),eEj(n),t}function ewl(e,t){var n,r,i,a,o,s,u;for(s=eLj(t),a=t.f,u=t.g,o=eB4.Math.sqrt(a*a+u*u),i=0,r=new fz(s);r.a=0?(n=eyt(e,eHK),r=edQ(e,eHK)):(n=eyt(t=Fy(e,1),5e8),r=eft(Fg(r=edQ(t,5e8),1),WM(e,1))),WO(Fg(r,32),WM(n,eH8))}function ewM(e,t,n){var r,i;switch(r=(A6(0!=t.b),Pp(etw(t,t.a.a),8)),n.g){case 0:r.b=0;break;case 2:r.b=e.f;break;case 3:r.a=0;break;default:r.a=e.g}return YU(i=epL(t,0),r),t}function ewO(e,t,n,r){var i,a,o,s,u;switch(u=e.b,s=epd(o=(a=t.d).j,u.d[o.g],n),i=C5(MB(a.n),a.a),a.j.g){case 1:case 3:s.a+=i.a;break;case 2:case 4:s.b+=i.b}qQ(r,s,r.c.b,r.c)}function ewA(e,t,n){var r,i,a,o;for(o=QI(e.e,t,0),(a=new ma).b=n,r=new KB(e.e,o);r.b1;t>>=1)(1&t)!=0&&(r=eeD(r,n)),n=1==n.d?eeD(n,n):new eh5(eDE(n.a,n.d,Je(ty_,eHT,25,n.d<<1,15,1)));return eeD(r,n)}function ewP(){var e,t,n,r;for(t=32,ewP=A,e2v=Je(tyx,eH5,25,25,15,1),e2y=Je(tyx,eH5,25,33,15,1),r=152587890625e-16;t>=0;t--)e2y[t]=r,r*=.5;for(e=24,n=1;e>=0;e--)e2v[e]=n,n*=.5}function ewR(e){var t,n;if(gN(LK(eT8(e,(eBy(),taI))))){for(n=new Fa(OH(eOi(e).a.Kc(),new c));eTk(n);)if(t=Pp(ZC(n),79),exb(t)&&gN(LK(eT8(t,taD))))return!0}return!1}function ewj(e,t){var n,r,i;Yf(e.f,t)&&(t.b=e,r=t.c,-1!=QI(e.j,r,0)||P_(e.j,r),i=t.d,-1!=QI(e.j,i,0)||P_(e.j,i),0!=(n=t.a.b).c.length&&(e.i||(e.i=new epS(e)),ea_(e.i,n)))}function ewF(e){var t,n,r,i,a;return(r=(n=e.c.d).j)==(a=(i=e.d.d).j)?n.p=0&&IE(e.substr(t,3),"GMT")?(n[0]=t+3,eDh(e,n,r)):(t>=0&&IE(e.substr(t,3),"UTC")&&(n[0]=t+3),eDh(e,n,r))}function ewz(e,t){var n,r,i,a,o;for(a=e.g.a,o=e.g.b,r=new fz(e.d);r.an;a--)e[a]|=t[a-n-1]>>>o,e[a-1]=t[a-n-1]<=e.f)break;a.c[a.c.length]=n}return a}function ew1(e){var t,n,r,i;for(t=null,i=new fz(e.wf());i.a0&&ePD(e.g,t,e.g,t+r,s),o=n.Kc(),e.i+=r,i=0;ia&&F6(c,ee5(n[s],e2h))&&(i=s,a=u);return i>=0&&(r[0]=t+a),i}function ew9(e,t){var n;if(0!=(n=To(e.b.Hf(),t.b.Hf())))return n;switch(e.b.Hf().g){case 1:case 2:return ME(e.b.sf(),t.b.sf());case 3:case 4:return ME(t.b.sf(),e.b.sf())}return 0}function ew8(e){var t,n,r;for(r=e.e.c.length,e.a=RF(ty_,[eUP,eHT],[48,25],15,[r,r],2),n=new fz(e.c);n.a>4&15,a=15&e[r],o[i++]=tmk[n],o[i++]=tmk[a];return ehv(o,0,o.length)}function e_t(e,t,n){var r,i,a;return r=t.ak(),a=t.dd(),i=r.$j()?$N(e,4,r,a,null,eN1(e,r,a,M4(r,99)&&(Pp(r,18).Bb&eH3)!=0),!0):$N(e,r.Kj()?2:1,r,a,r.zj(),-1,!0),n?n.Ei(i):n=i,n}function e_n(e){var t,n;return e>=eH3?(t=eH4+(e-eH3>>10&1023)&eHd,n=56320+(e-eH3&1023)&eHd,String.fromCharCode(t)+""+String.fromCharCode(n)):String.fromCharCode(e&eHd)}function e_r(e,t){var n,r,i,a;return Cn(),(i=Pp(Pp(Zq(e.r,t),21),84)).gc()>=2&&(r=Pp(i.Kc().Pb(),111),n=e.u.Hc((ekU(),tbh)),a=e.u.Hc(tbg),!r.a&&!n&&(2==i.gc()||a))}function e_i(e,t,n,r,i){var a,o,s;for(a=eLx(e,t,n,r,i),s=!1;!a;)eME(e,i,!0),s=!0,a=eLx(e,t,n,r,i);s&&eME(e,i,!1),0!=(o=eoA(i)).c.length&&(e.d&&e.d.lg(o),e_i(e,i,n,r,o))}function e_a(){e_a=A,tpN=new km(eGR,0),tpI=new km("DIRECTED",1),tpP=new km("UNDIRECTED",2),tpL=new km("ASSOCIATION",3),tpD=new km("GENERALIZATION",4),tpC=new km("DEPENDENCY",5)}function e_o(e,t){var n;if(!zY(e))throw p7(new gC(eZL));switch(n=zY(e),t.g){case 1:return-(e.j+e.f);case 2:return e.i-n.g;case 3:return e.j-n.f;case 4:return-(e.i+e.g)}return 0}function e_s(e,t){var n,r;for(BJ(t),r=e.b.c.length,P_(e.b,t);r>0;){if(n=r,r=(r-1)/2|0,0>=e.a.ue(RJ(e.b,r),t))return q1(e.b,n,t),!0;q1(e.b,n,RJ(e.b,r))}return q1(e.b,r,t),!0}function e_u(e,t,n,r){var i,a;if(i=0,n)i=euW(e.a[n.g][t.g],r);else for(a=0;a=s)}function e_l(e,t,n,r){var i;if(i=!1,xd(r)&&(i=!0,P4(t,n,Lq(r))),!i&&xl(r)&&(i=!0,e_l(e,t,n,r)),!i&&M4(r,236)&&(i=!0,H1(t,n,Pp(r,236))),!i)throw p7(new gk(eXE))}function e_f(e,t){var n,r,i;if((n=t.Hh(e.a))&&null!=(i=edW((n.b||(n.b=new L_((eBK(),tgF),tgf,n)),n.b),eQe))){for(r=1;r<(eSp(),tvs).length;++r)if(IE(tvs[r],i))return r}return 0}function e_d(e,t){var n,r,i;if((n=t.Hh(e.a))&&null!=(i=edW((n.b||(n.b=new L_((eBK(),tgF),tgf,n)),n.b),eQe))){for(r=1;r<(eSp(),tvu).length;++r)if(IE(tvu[r],i))return r}return 0}function e_h(e,t){var n,r,i,a;if(BJ(t),(a=e.a.gc())0?1:0;a.a[i]!=n;)a=a.a[i],i=e.a.ue(n.d,a.d)>0?1:0;a.a[i]=r,r.b=n.b,r.a[0]=n.a[0],r.a[1]=n.a[1],n.a[0]=null,n.a[1]=null}function e_y(e){var t,n;return ekU(),t=jL(tbp,eow(vx(e6i,1),eU4,273,0,[tbm])),!(eaC(z_(t,e))>1)&&(n=jL(tbh,eow(vx(e6i,1),eU4,273,0,[tbd,tbg])),!(eaC(z_(n,e))>1))}function e_w(e,t){var n;M4(n=zg((_Q(),tgp),e),498)?Ge(tgp,e,new k5(this,t)):Ge(tgp,e,this),e_8(this,t),t==(yO(),tgg)?(this.wb=Pp(this,1939),Pp(t,1941)):this.wb=(BM(),tgv)}function e__(e){var t,n,r;if(null==e)return null;for(n=0,t=null;n=eHf?"error":r>=900?"warn":r>=800?"info":"log",e.a),e.b&&eAp(t,n,e.b,"Exception: ",!0))}function e_k(e,t){var n,r;return null!=(r=(e.q||(e.q=new p2),Bp(e.q,t)))?r:(M4(n=t.wg(),4)&&(null==n?(e.q||(e.q=new p2),Z3(e.q,t)):(e.q||(e.q=new p2),Um(e.q,t,n))),n)}function e_x(){e_x=A,e8e=new Ez("P1_CYCLE_BREAKING",0),e8t=new Ez("P2_LAYERING",1),e8n=new Ez("P3_NODE_ORDERING",2),e8r=new Ez("P4_NODE_PLACEMENT",3),e8i=new Ez("P5_EDGE_ROUTING",4)}function e_T(e,t){var n,r,i,a,o;for(r=(i=1==t?e8c:e8u).a.ec().Kc();r.Ob();)for(n=Pp(r.Pb(),103),o=Pp(Zq(e.f.c,n),21).Kc();o.Ob();)a=Pp(o.Pb(),46),QA(e.b.b,a.b),QA(e.b.a,Pp(a.b,81).d)}function e_M(e,t){var n;if(eeP(),e.c!=t.c)return elN(e.c,t.c);if(e.b==t.b||eiS(e.b,t.b)){if(n=Tu(e.b)?1:-1,e.a&&!t.a)return n;if(!e.a&&t.a)return-n}return ME(e.b.g,t.b.g)}function e_O(e,t){var n;ewG(t,"Hierarchical port position processing",1),(n=e.b).c.length>0&&eI6((GK(0,n.c.length),Pp(n.c[0],29)),e),n.c.length>1&&eI6(Pp(RJ(n,n.c.length-1),29),e),eEj(t)}function e_A(e,t){var n,r,i;if(e_Y(e,t))return!0;for(r=new fz(t);r.a=(i=e.Vi())||t<0)throw p7(new gE(eXU+t+eXH+i));if(n>=i||n<0)throw p7(new gE(eX$+n+eXH+i));return t!=n?(a=e.Ti(n),e.Hi(t,a),a):e.Oi(n)}function e_j(e){var t,n,r;if(r=e,e)for(t=0,n=e.Ug();n;n=n.Ug()){if(++t>eH6)return e_j(n);if(r=n,n==e)throw p7(new gC("There is a cycle in the containment hierarchy of "+e))}return r}function e_F(e){var t,n,r;for(r=new eaP(eUd,"[","]"),n=e.Kc();n.Ob();)ZJ(r,xc(t=n.Pb())===xc(e)?"(this Collection)":null==t?eUg:efF(t));return r.a?0==r.e.length?r.a.a:r.a.a+""+r.e:r.c}function e_Y(e,t){var n,r;if(r=!1,2>t.gc())return!1;for(n=0;n=e.charCodeAt(r));)++r;for(t=n;t>r&&(GV(t-1,e.length),32>=e.charCodeAt(t-1));)--t;return r>0||t1&&(e.j.b+=e.e)):(e.j.a+=n.a,e.j.b=eB4.Math.max(e.j.b,n.b),e.d.c.length>1&&(e.j.a+=e.e))}function e_z(){e_z=A,tec=eow(vx(e6a,1),eGj,61,0,[(eYu(),tbw),tby,tbj]),teu=eow(vx(e6a,1),eGj,61,0,[tby,tbj,tbY]),tel=eow(vx(e6a,1),eGj,61,0,[tbj,tbY,tbw]),tef=eow(vx(e6a,1),eGj,61,0,[tbY,tbw,tby])}function e_G(e,t,n,r){var i,a,o,s,u,c,l;if(o=e.c.d,s=e.d.d,o.j!=s.j)for(l=e.b,i=o.j,u=null;i!=s.j;)u=0==t?elI(i):elL(i),P7(r,C5(a=epd(i,l.d[i.g],n),c=epd(u,l.d[u.g],n))),i=u}function e_W(e,t,n,r){var i,a,o,s,u;return o=egN(e.a,t,n),s=Pp(o.a,19).a,a=Pp(o.b,19).a,r&&(u=Pp(e_k(t,(eBU(),tng)),10),i=Pp(e_k(n,tng),10),u&&i&&(V6(e.b,u,i),s+=e.b.i,a+=e.b.e)),s>a}function e_K(e){var t,n,r,i,a,o,s,u,c;for(r=0,this.a=ebb(e),this.b=new p0,i=(n=e).length;rL7(e.d).c?(e.i+=e.g.c,ed3(e.d)):L7(e.d).c>L7(e.g).c?(e.e+=e.d.c,ed3(e.g)):(e.i+=R6(e.g),e.e+=R6(e.d),ed3(e.g),ed3(e.d))}function e_X(e,t,n){var r,i,a,o;for(a=t.q,o=t.r,new GT((Xa(),tuU),t,a,1),new GT(tuU,a,o,1),i=new fz(n);i.as&&(u=s/r),i>a&&(c=a/i),o=eB4.Math.min(u,c),e.a+=o*(t.a-e.a),e.b+=o*(t.b-e.b)}function e_5(e,t,n,r,i){var a,o;for(o=!1,a=Pp(RJ(n.b,0),33);eNK(e,t,a,r,i)&&(o=!0,eyL(n,a),0!=n.b.c.length);)a=Pp(RJ(n.b,0),33);return 0==n.b.c.length&&eva(n.j,n),o&&emG(t.q),o}function e_6(e,t){var n,r,i,a;if(eLG(),t.b<2)return!1;for(r=n=Pp(Vv(a=epL(t,0)),8);a.b!=a.d.c;){if(eOV(e,r,i=Pp(Vv(a),8)))return!0;r=i}return!!eOV(e,r,n)}function e_9(e,t,n,r){var i,a;return 0==n?(e.o||(e.o=new JY((eBa(),tmy),e6O,e,0)),Iz(e.o,t,r)):(a=Pp(ee2((i=Pp(eaS(e,16),26))||e.zh(),n),66)).Nj().Rj(e,ehH(e),n-Y1(e.zh()),t,r)}function e_8(e,t){var n;t!=e.sb?(n=null,e.sb&&(n=Pp(e.sb,49).ih(e,1,e6w,n)),t&&(n=Pp(t,49).gh(e,1,e6w,n)),(n=ecY(e,t,n))&&n.Fi()):(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new FX(e,1,4,t,t))}function e_7(e,t){var n,r,i,a;if(t)i=enm(t,"x"),enr((n=new pa(e)).a,(BJ(i),i)),a=enm(t,"y"),enc((r=new po(e)).a,(BJ(a),a));else throw p7(new gK("All edge sections need an end point."))}function eEe(e,t){var n,r,i,a;if(t)i=enm(t,"x"),enu((n=new pn(e)).a,(BJ(i),i)),a=enm(t,"y"),enl((r=new pr(e)).a,(BJ(a),a));else throw p7(new gK("All edge sections need a start point."))}function eEt(e,t){var n,r,i,a,o,s,u;for(r=es1(e),a=0,s=r.length;a>22-t,i=e.h<>22-t):t<44?(n=0,r=e.l<>44-t):(n=0,r=0,i=e.l<e))return 0==t||t==e?1:0==e?0:ev6(e)/(ev6(t)*ev6(e-t));throw p7(new gL("k must be smaller than n"))}function eEh(e,t){var n,r,i,a;for(n=new TY(e);null!=n.g||n.c?null==n.g||0!=n.i&&Pp(n.g[n.i-1],47).Ob():zW(n);)if(M4(a=Pp(eM5(n),56),160))for(i=0,r=Pp(a,160);i>4],t[2*n+1]=tv0[15&a];return ehv(t,0,t.length)}function eEA(e){var t,n,r;switch(U_(),r=e.c.length){case 0:return e0p;case 1:return P2((t=Pp(ekM(new fz(e)),42)).cd(),t.dd());default:return n=Pp(epg(e,Je(e1$,eUK,42,e.c.length,0,1)),165),new gt(n)}}function eEL(e){var t,n,r,i,a,o;for(t=new p1,n=new p1,Vw(t,e),Vw(n,e);n.b!=n.c;)for(i=Pp(Yn(n),37),o=new fz(i.a);o.a0&&eIl(e,n,t),i):exV(e,t,n)}function eEN(e,t,n){var r,i,a,o;if(0!=t.b){for(r=new _n,o=epL(t,0);o.b!=o.d.c;)er7(r,eoO(a=Pp(Vv(o),86))),(i=a.e).a=Pp(e_k(a,(eR6(),tcg)),19).a,i.b=Pp(e_k(a,tcv),19).a;eEN(e,r,eiI(n,r.b/e.a|0))}}function eEP(e,t){var n,r,i,a,o;if(e.e<=t||Wm(e,e.g,t))return e.g;for(a=e.r,r=e.g,o=e.r,i=(a-r)/2+r;r+11&&(e.e.b+=e.a)):(e.e.a+=n.a,e.e.b=eB4.Math.max(e.e.b,n.b),e.d.c.length>1&&(e.e.a+=e.a))}function eEH(e){var t,n,r,i;switch(t=(i=e.i).b,r=i.j,n=i.g,i.a.g){case 0:n.a=(e.g.b.o.a-r.a)/2;break;case 1:n.a=t.d.n.a+t.d.a.a;break;case 2:n.a=t.d.n.a+t.d.a.a-r.a;break;case 3:n.b=t.d.n.b+t.d.a.b}}function eE$(e,t,n,r,i){if(rr&&(e.a=r),e.bi&&(e.b=i),e}function eEz(e){if(M4(e,149))return eAi(Pp(e,149));if(M4(e,229))return efZ(Pp(e,229));if(M4(e,23))return eEa(Pp(e,23));throw p7(new gL(eXx+e_F(new g$(eow(vx(e1R,1),eUp,1,5,[e])))))}function eEG(e,t,n,r,i){var a,o,s;for(o=0,a=!0;o>>i|n[o+r+1]<>>i,++o}return a}function eEW(e,t,n,r){var i,a,o;if(t.k==(eEn(),e8D)){for(a=new Fa(OH(efu(t).a.Kc(),new c));eTk(a);)if((o=(i=Pp(ZC(a),17)).c.i.k)==e8D&&e.c.a[i.c.i.c.p]==r&&e.c.a[t.c.p]==n)return!0}return!1}function eEK(e,t){var n,r,i,a;return t&=63,n=e.h&eH$,t<22?(a=n>>>t,i=e.m>>t|n<<22-t,r=e.l>>t|e.m<<22-t):t<44?(a=0,i=n>>>t-22,r=e.m>>t-22|e.h<<44-t):(a=0,i=0,r=n>>>t-44),Mk(r&eHH,i&eHH,a&eH$)}function eEV(e,t,n,r){var i;this.b=r,this.e=e==(enU(),tui),i=t[n],this.d=RF(tyE,[eUP,e$5],[177,25],16,[i.length,i.length],2),this.a=RF(ty_,[eUP,eHT],[48,25],15,[i.length,i.length],2),this.c=new ewo(t,n)}function eEq(e){var t,n,r;for(e.k=new G$((eYu(),eow(vx(e6a,1),eGj,61,0,[tbF,tbw,tby,tbj,tbY])).length,e.j.c.length),r=new fz(e.j);r.a=n)return eE5(e,t,r.p),!0;return!1}function eE1(e){var t;return(64&e.Db)!=0?eEp(e):(t=new O0(eZ$),e.a&&xM(xM((t.a+=' "',t),e.a),'"'),xM(yW(xM(yW(xM(yW(xM(yW((t.a+=" (",t),e.i),","),e.j)," | "),e.g),","),e.f),")"),t.a)}function eE0(e,t,n){var r,i,a,o,s;for(o=0,s=eAY(e.e.Tg(),t),i=Pp(e.g,119),r=0;on?eS1(e,n,"start index"):t<0||t>n?eS1(t,n,"end index"):eCG("end index (%s) must not be less than start index (%s)",eow(vx(e1R,1),eUp,1,5,[ell(t),ell(e)]))}function eE4(e,t){var n,r,i,a;for(r=0,i=e.length;r0&&eE9(e,a,n));t.p=0}function eE8(e){var t;this.c=new _n,this.f=e.e,this.e=e.d,this.i=e.g,this.d=e.c,this.b=e.b,this.k=e.j,this.a=e.a,e.i?this.j=e.i:this.j=(t=Pp(yw(e5Q),9),new I1(t,Pp(CY(t,t.length),9),0)),this.g=e.f}function eE7(e){var t,n,r,i;for(t=Bd(xM(new O0("Predicates."),"and"),40),n=!0,i=new fE(e);i.b0?s[o-1]:Je(e4N,eGW,10,0,0,1),i=s[o],c=o=0?e.Bh(i):ekN(e,r);else throw p7(new gL(eZV+r.ne()+eZq))}else throw p7(new gL(eZJ+t+eZQ))}else ec6(e,n,r)}function eSa(e){var t,n;if(n=null,t=!1,M4(e,204)&&(t=!0,n=Pp(e,204).a),!t&&M4(e,258)&&(t=!0,n=""+Pp(e,258).a),!t&&M4(e,483)&&(t=!0,n=""+Pp(e,483).a),!t)throw p7(new gk(eXE));return n}function eSo(e,t){var n,r;if(!e.f)return t.Ob();for(;t.Ob();)if(M4(r=(n=Pp(t.Pb(),72)).ak(),99)&&(Pp(r,18).Bb&eZ1)!=0&&(!e.e||r.Gj()!=e6d||0!=r.aj())&&null!=n.dd())return t.Ub(),!0;return!1}function eSs(e,t){var n,r;if(!e.f)return t.Sb();for(;t.Sb();)if(M4(r=(n=Pp(t.Ub(),72)).ak(),99)&&(Pp(r,18).Bb&eZ1)!=0&&(!e.e||r.Gj()!=e6d||0!=r.aj())&&null!=n.dd())return t.Pb(),!0;return!1}function eSu(e,t,n){var r,i,a,o,s,u;for(o=0,u=eAY(e.e.Tg(),t),r=0,s=e.i,i=Pp(e.g,119);o1&&(t.c[t.c.length]=a)}function eSf(e){var t,n,r,i;for(er7(n=new _n,e.o),r=new mc;0!=n.b;)(i=eYP(e,t=Pp(0==n.b?null:(A6(0!=n.b),etw(n,n.a.a)),508),!0))&&P_(r.a,t);for(;0!=r.a.c.length;)eYP(e,t=Pp(euO(r),508),!1)}function eSd(){eSd=A,tdS=new ks(ezo,0),tdm=new ks("BOOLEAN",1),tdw=new ks("INT",2),tdE=new ks("STRING",3),tdg=new ks("DOUBLE",4),tdv=new ks("ENUM",5),tdy=new ks("ENUMSET",6),td_=new ks("OBJECT",7)}function eSh(e,t){var n,r,i,a,o;r=eB4.Math.min(e.c,t.c),a=eB4.Math.min(e.d,t.d),i=eB4.Math.max(e.c+e.b,t.c+t.b),o=eB4.Math.max(e.d+e.a,t.d+t.a),i=(i/2|0))for(this.e=r?r.c:null,this.d=i;n++0;)Gi(this);this.b=t,this.a=null}function eSk(e,t){var n,r;t.a?eAk(e,t):((n=Pp(Ik(e.b,t.b),57))&&n==e.a[t.b.f]&&n.a&&n.a!=t.b.a&&n.c.Fc(t.b),(r=Pp(IS(e.b,t.b),57))&&e.a[r.f]==t.b&&r.a&&r.a!=t.b.a&&t.b.c.Fc(r),Ai(e.b,t.b))}function eSx(e,t){var n,r;if(n=Pp(UA(e.b,t),124),Pp(Pp(Zq(e.r,t),21),84).dc()){n.n.b=0,n.n.c=0;return}n.n.b=e.C.b,n.n.c=e.C.c,e.A.Hc((ed6(),tbq))&&eCD(e,t),r=ebi(e,t),eLZ(e,t)==(epT(),tbt)&&(r+=2*e.w),n.a.a=r}function eST(e,t){var n,r;if(n=Pp(UA(e.b,t),124),Pp(Pp(Zq(e.r,t),21),84).dc()){n.n.d=0,n.n.a=0;return}n.n.d=e.C.d,n.n.a=e.C.a,e.A.Hc((ed6(),tbq))&&eCN(e,t),r=eba(e,t),eLZ(e,t)==(epT(),tbt)&&(r+=2*e.w),n.a.b=r}function eSM(e,t){var n,r,i,a;for(a=new p0,r=new fz(t);r.aeB4.Math.abs(r-i))}function eSU(e,t,n){var r,i,a,o,s,u;if(null!=(s=Pp(eaS(e.a,8),1936)))for(a=0,o=(i=s).length;an.a&&(r.Hc((eyY(),tdW))?i=(t.a-n.a)/2:r.Hc(tdV)&&(i=t.a-n.a)),t.b>n.b&&(r.Hc((eyY(),tdZ))?a=(t.b-n.b)/2:r.Hc(tdq)&&(a=t.b-n.b)),e_g(e,i,a)}function eSJ(e,t,n,r,i,a,o,s,u,c,l,f,d){M4(e.Cb,88)&&eko(Zd(Pp(e.Cb,88)),4),er3(e,n),e.f=o,elY(e,s),elU(e,u),elF(e,c),elB(e,l),els(e,f),elZ(e,d),eli(e,!0),end(e,i),e.ok(a),eu2(e,t),null!=r&&(e.i=null,erA(e,r))}function eSQ(e){var t,n;if(!e.f)return e.n>0;for(;e.n>0;){if(M4(n=(t=Pp(e.k.Xb(e.n-1),72)).ak(),99)&&(Pp(n,18).Bb&eZ1)!=0&&(!e.e||n.Gj()!=e6d||0!=n.aj())&&null!=t.dd())return!0;--e.n}return!1}function eS1(e,t,n){if(e<0)return eCG(eUh,eow(vx(e1R,1),eUp,1,5,[n,ell(e)]));if(!(t<0))return eCG("%s (%s) must not be greater than size (%s)",eow(vx(e1R,1),eUp,1,5,[n,ell(e),ell(t)]));throw p7(new gL(eUb+t))}function eS0(e,t,n,r,i,a){var o,s,u,c;if((o=r-n)<7){efA(t,n,r,a);return}if(c=(u=n+i)+((s=r+i)-u>>1),eS0(t,e,u,c,-i,a),eS0(t,e,c,s,-i,a),0>=a.ue(e[c-1],e[c])){for(;n=0?e.sh(a,n):eOh(e,i,n);else throw p7(new gL(eZV+i.ne()+eZq))}else throw p7(new gL(eZJ+t+eZQ))}else efL(e,r,i,n)}function eS6(e){var t,n,r,i;if(n=Pp(e,49).qh())try{if(r=null,(t=eMC((_Q(),tgp),eDv(efR(n))))&&(i=t.rh())&&(r=i.Wk(gF(n.e))),r&&r!=e)return eS6(r)}catch(a){if(a=eoa(a),!M4(a,60))throw p7(a)}return e}function eS9(e,t,n){var r,i,a,o;if(o=null==t?0:e.b.se(t),0==(i=null==(r=e.a.get(o))?[]:r).length)e.a.set(o,i);else if(a=euj(e,t,i))return a.ed(n);return Bc(i,i.length,new EE(t,n)),++e.c,$c(e.b),null}function eS8(e,t){var n,r;return Kx(e.a),Yb(e.a,(erZ(),tcq),tcq),Yb(e.a,tcZ,tcZ),r=new K2,RI(r,tcZ,(efx(),tc1)),xc(eT8(t,(egj(),tlf)))!==xc((eub(),tc5))&&RI(r,tcZ,tcJ),RI(r,tcZ,tcQ),Tb(e.a,r),n=eRq(e.a,t)}function eS7(e){if(!e)return g3(),e0M;var t=e.valueOf?e.valueOf():e;if(t!==e){var n=e0O[typeof t];return n?n(t):euV(typeof t)}return e instanceof Array||e instanceof eB4.Array?new lL(e):new lD(e)}function eke(e,t,n){var r,i,a;switch(a=e.o,(i=(r=Pp(UA(e.p,n),244)).i).b=ek0(r),i.a=ek1(r),i.b=eB4.Math.max(i.b,a.a),i.b>a.a&&!t&&(i.b=a.a),i.c=-(i.b-a.a)/2,n.g){case 1:i.d=-i.a;break;case 3:i.d=a.b}eNE(r),eNM(r)}function ekt(e,t,n){var r,i,a;switch(a=e.o,(i=(r=Pp(UA(e.p,n),244)).i).b=ek0(r),i.a=ek1(r),i.a=eB4.Math.max(i.a,a.b),i.a>a.b&&!t&&(i.a=a.b),i.d=-(i.a-a.b)/2,n.g){case 4:i.c=-i.b;break;case 2:i.c=a.a}eNE(r),eNM(r)}function ekn(e,t){var n,r,i,a,o;if(!t.dc()){if(i=Pp(t.Xb(0),128),1==t.gc()){eA1(e,i,i,1,0,t);return}for(n=1;n0)try{i=eDa(t,eHt,eUu)}catch(a){if(a=eoa(a),M4(a,127))throw r=a,p7(new QH(r));throw p7(a)}return i<(n=(e.a||(e.a=new pK(e)),e.a)).i&&i>=0?Pp(etj(n,i),56):null}function eku(e,t){if(e<0)return eCG(eUh,eow(vx(e1R,1),eUp,1,5,["index",ell(e)]));if(!(t<0))return eCG("%s (%s) must be less than size (%s)",eow(vx(e1R,1),eUp,1,5,["index",ell(e),ell(t)]));throw p7(new gL(eUb+t))}function ekc(e){var t,n,r,i,a;if(null==e)return eUg;for(r=0,a=new eaP(eUd,"[","]"),i=(n=e).length;re.a.ue(RJ(e.b,o),RJ(e.b,a))&&(s=o),s),!(0>e.a.ue(i,RJ(e.b,r))));)q1(e.b,t,RJ(e.b,r)),t=r;q1(e.b,t,i)}function ekp(e,t,n,r,i,a){var o,s,u,c,l;for(xc(e)===xc(n)&&(e=e.slice(t,t+i),t=0),u=n,s=t,c=t+i;s0)for(o=e.c.d,s=e.d.d,i=Ol(C6(new kl(s.a,s.b),o),1/(r+1)),a=new kl(o.a,o.b),n=new fz(e.a);n.a=0?e._g(n,!0,!0):exk(e,i,!0),153),Pp(r,215).ol(t);else throw p7(new gL(eZV+t.ne()+eZq))}function ekP(e){var t,n;return e>-140737488355328&&e<0x800000000000?0==e?0:((t=e<0)&&(e=-e),n=zy(eB4.Math.floor(eB4.Math.log(e)/.6931471805599453)),(!t||e!=eB4.Math.pow(2,n))&&++n,n):eaJ(eap(e))}function ekR(e){var t,n,r,i,a,o,s;for(a=new Tw,n=new fz(e);n.a2&&s.e.b+s.j.b<=2&&(i=s,r=o),a.a.zc(i,a),i.q=r);return a}function ekj(e,t){var n,r,i;return r=new eb$(e),eaW(r,t),eo3(r,(eBU(),ttQ),t),eo3(r,(eBy(),tol),(ewf(),tbo)),eo3(r,tiq,(ebx(),tdA)),lK(r,(eEn(),e8C)),n=new eES,Gc(n,r),ekv(n,(eYu(),tbY)),i=new eES,Gc(i,r),ekv(i,tby),r}function ekF(e){switch(e.g){case 0:return new gx((enU(),tur));case 1:return new cC;case 2:return new cF;default:throw p7(new gL("No implementation is available for the crossing minimizer "+(null!=e.f?e.f:""+e.g)))}}function ekY(e,t){var n,r,i,a,o;for(e.c[t.p]=!0,P_(e.a,t),o=new fz(t.j);o.a=(a=o.gc()))o.$b();else for(r=0,i=o.Kc();r0?g5():o<0&&ekJ(e,t,-o),!0)}function ek1(e){var t,n,r,i,a,o,s;if(s=0,0==e.b){for(i=0,o=eb4(e,!0),t=0,a=(r=o).length;i0&&(s+=n,++t);t>1&&(s+=e.c*(t-1))}else s=vy(eib(U1(UJ(Yw(e.a),new eS),new ek)));return s>0?s+e.n.d+e.n.a:0}function ek0(e){var t,n,r,i,a,o,s;if(s=0,0==e.b)s=vy(eib(U1(UJ(Yw(e.a),new e_),new eE)));else{for(i=0,o=eb5(e,!0),t=0,a=(r=o).length;i0&&(s+=n,++t);t>1&&(s+=e.c*(t-1))}return s>0?s+e.n.b+e.n.c:0}function ek2(e,t){var n,r,i,a;for(n=(a=Pp(UA(e.b,t),124)).a,i=Pp(Pp(Zq(e.r,t),21),84).Kc();i.Ob();)(r=Pp(i.Pb(),111)).c&&(n.a=eB4.Math.max(n.a,Rd(r.c)));if(n.a>0)switch(t.g){case 2:a.n.c=e.s;break;case 4:a.n.b=e.s}}function ek3(e,t){var n,r,i;return 0==(n=Pp(e_k(t,(eCk(),e9M)),19).a-Pp(e_k(e,e9M),19).a)?(r=C6(MB(Pp(e_k(e,(erV(),e9P)),8)),Pp(e_k(e,e9R),8)),i=C6(MB(Pp(e_k(t,e9P),8)),Pp(e_k(t,e9R),8)),elN(r.a*r.b,i.a*i.b)):n}function ek4(e,t){var n,r,i;return 0==(n=Pp(e_k(t,(eTj(),tcD)),19).a-Pp(e_k(e,tcD),19).a)?(r=C6(MB(Pp(e_k(e,(eR6(),tce)),8)),Pp(e_k(e,tct),8)),i=C6(MB(Pp(e_k(t,tce),8)),Pp(e_k(t,tct),8)),elN(r.a*r.b,i.a*i.b)):n}function ek5(e){var t,n;return n=new vc,n.a+="e_",null!=(t=eaZ(e))&&(n.a+=""+t),e.c&&e.d&&(xM((n.a+=" ",n),egu(e.c)),xM(xT((n.a+="[",n),e.c.i),"]"),xM((n.a+=eGH,n),egu(e.d)),xM(xT((n.a+="[",n),e.d.i),"]")),n.a}function ek6(e){switch(e.g){case 0:return new cD;case 1:return new cN;case 2:return new cI;case 3:return new cP;default:throw p7(new gL("No implementation is available for the layout phase "+(null!=e.f?e.f:""+e.g)))}}function ek9(e,t,n,r,i){var a;switch(a=0,i.g){case 1:a=eB4.Math.max(0,t.b+e.b-(n.b+r));break;case 3:a=eB4.Math.max(0,-e.b-r);break;case 2:a=eB4.Math.max(0,-e.a-r);break;case 4:a=eB4.Math.max(0,t.a+e.a-(n.a+r))}return a}function ek8(e,t,n){var r,i,a,o,s;if(n)for(i=n.a.length,s=((r=new Fs(i)).b-r.a)*r.c<0?(_9(),eB3):new OR(r);s.Ob();)eXh in(a=KZ(n,(o=Pp(s.Pb(),19)).a)).a||eXp in a.a?eId(e,a,t):eBe(e,a,t),Om(Pp(Bp(e.b,ehM(a)),79))}function ek7(e){var t,n;switch(e.b){case -1:return!0;case 0:if((n=e.t)>1||-1==n||(t=evl(e))&&(_4(),t.Cj()==eJK))return e.b=-1,!0;return e.b=1,!1;default:return!1}}function exe(e,t){var n,r,i,a,o;for(i=0,r=(t.s||(t.s=new FQ(tm6,t,21,17)),t.s),a=null,o=r.i;i=0&&r=0?e._g(n,!0,!0):exk(e,i,!0),153),Pp(r,215).ll(t);throw p7(new gL(eZV+t.ne()+eZX))}function exc(){var e;return(_6(),tg9)?Pp(eMC((_Q(),tgp),eQc),1939):(x2(e1$,new ut),ej9(),e=Pp(M4(zg((_Q(),tgp),eQc),547)?zg(tgp,eQc):new Uh,547),tg9=!0,eBY(e),eB0(e),Um((_1(),tgm),e,new sM),Ge(tgp,eQc,e),e)}function exl(e,t){var n,r,i,a;e.j=-1,TO(e.e)?(n=e.i,a=0!=e.i,Zz(e,t),r=new Q$(e.e,3,e.c,null,t,n,a),i=t.Qk(e.e,e.c,null),(i=ey1(e,t,i))?(i.Ei(r),i.Fi()):eam(e.e,r)):(Zz(e,t),(i=t.Qk(e.e,e.c,null))&&i.Fi())}function exf(e,t){var n,r,i;if(i=0,(r=t[0])>=e.length)return -1;for(n=(GV(r,e.length),e.charCodeAt(r));n>=48&&n<=57&&(i=10*i+(n-48),!(++r>=e.length));)n=(GV(r,e.length),e.charCodeAt(r));return r>t[0]?t[0]=r:i=-1,i}function exd(e){var t,n,r,i,a;return i=Pp(e.a,19).a,a=Pp(e.b,19).a,n=i,r=a,t=eB4.Math.max(eB4.Math.abs(i),eB4.Math.abs(a)),i<=0&&i==a?(n=0,r=a-1):i==-t&&a!=t?(n=a,r=i,a>=0&&++n):(n=-a,r=i),new kD(ell(n),ell(r))}function exh(e,t,n,r){var i,a,o,s,u,c;for(i=0;i=0&&c>=0&&u=e.i)throw p7(new gE(eXU+t+eXH+e.i));if(n>=e.i)throw p7(new gE(eX$+n+eXH+e.i));return r=e.g[n],t!=n&&(t>16))>>16&16),e>>=t,n+=t=(r=e-256)>>16&8,e<<=t,n+=t=(r=e-eH0)>>16&4,e<<=t,n+=t=(r=e-eUR)>>16&2,e<<=t,n+2-(t=(r=e>>14)&~(r>>1)))}function exy(e){var t,n,r,i;for(HR(),e9n=new p0,e9t=new p2,e9e=new p0,t=(e.a||(e.a=new FQ(e6k,e,10,11)),e.a),eYE(t),i=new Ow(t);i.e!=i.i.gc();)r=Pp(epH(i),33),-1==QI(e9n,r,0)&&(n=new p0,P_(e9e,n),epi(r,n));return e9e}function exw(e,t,n){var r,i,a,o;e.a=n.b.d,M4(t,352)?(i=eLO(Pp(t,79),!1,!1),a=eEF(i),qX(a,r=new d_(e)),eNI(a,i),null!=t.We((eBB(),thg))&&qX(Pp(t.We(thg),74),r)):((o=Pp(t,470)).Hg(o.Dg()+e.a.a),o.Ig(o.Eg()+e.a.b))}function ex_(e,t){var n,r,i,a,o,s,u,c;for(s=1,c=gP(LV(e_k(t,(eBy(),toH)))),u=e[0].n.a+e[0].o.a+e[0].d.c+c;s=0)?n:(s=B$(C6(new kl(o.c+o.b/2,o.d+o.a/2),new kl(a.c+a.b/2,a.d+a.a/2))),-(eDz(a,o)-1)*s)}function exS(e,t,n){var r;_r(new R1(null,(n.a||(n.a=new FQ(e6v,n,6,6)),new Gq(n.a,16))),new kC(e,t)),_r(new R1(null,(n.n||(n.n=new FQ(e6S,n,1,7)),new Gq(n.n,16))),new kI(e,t)),(r=Pp(eT8(n,(eBB(),thg)),74))&&eil(r,e,t)}function exk(e,t,n){var r,i,a;if(a=eR3((eSp(),tvc),e.Tg(),t))return _4(),Pp(a,66).Oj()||(a=Wk(QZ(tvc,a))),i=Pp((r=e.Yg(a))>=0?e._g(r,!0,!0):exk(e,a,!0),153),Pp(i,215).hl(t,n);throw p7(new gL(eZV+t.ne()+eZX))}function exx(e,t,n,r){var i,a,o,s,u;if(i=e.d[t]){if(a=i.g,u=i.i,null!=r){for(s=0;s=n&&(r=t,o=(c=(u.c+u.a)/2)-n,u.c<=c-n&&(i=new N4(u.c,o),jO(e,r++,i)),(s=c+n)<=u.a&&(a=new N4(s,u.a),Gp(r,e.c.length),Ew(e.c,r,a)))}function exI(e){var t;if(e.c||null!=e.g){if(null==e.g)return!0;if(0==e.i)return!1;t=Pp(e.g[e.i-1],47)}else e.d=e.si(e.f),JL(e,e.d),t=e.d;return t==e.b&&null.km>=null.jm()?(eM5(e),exI(e)):t.Ob()}function exD(e,t,n){var r,i,a,o,s;if((s=n)||(s=P6(new mV,0)),ewG(s,eGA,1),ejY(e.c,t),1==(o=ejz(e.a,t)).gc())eRd(Pp(o.Xb(0),37),s);else for(a=1/o.gc(),i=o.Kc();i.Ob();)eRd(r=Pp(i.Pb(),37),eiI(s,a));vi(e.a,o,t),eL7(t),eEj(s)}function exN(e){if(this.a=e,e.c.i.k==(eEn(),e8C))this.c=e.c,this.d=Pp(e_k(e.c.i,(eBU(),tt1)),61);else if(e.d.i.k==e8C)this.c=e.d,this.d=Pp(e_k(e.d.i,(eBU(),tt1)),61);else throw p7(new gL("Edge "+e+" is not an external edge."))}function exP(e,t){var n,r,i;i=e.b,e.b=t,(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new FX(e,1,3,i,e.b)),t?t!=e&&(er3(e,t.zb),enf(e,t.d),erc(e,null==(n=null==(r=t.c)?t.zb:r)||IE(n,t.zb)?null:n)):(er3(e,null),enf(e,0),erc(e,null))}function exR(e){var t,n;if(!e.f)return e.n=(o=null==(n=Pp(eaS(e.a,4),126))?0:n.length))throw p7(new Ii(t,o));return i=n[t],1==o?r=null:(r=Je(e6N,eJM,415,o-1,0,1),ePD(n,0,r,0,t),(a=o-t-1)>0&&ePD(n,t+1,r,t,a)),eps(e,r),eSU(e,t,i),i}function ex$(){ex$=A,tvw=Pp(etj(H9((yL(),tvS).qb),6),34),tvg=Pp(etj(H9(tvS.qb),3),34),tvv=Pp(etj(H9(tvS.qb),4),34),tvy=Pp(etj(H9(tvS.qb),5),18),eyD(tvw),eyD(tvg),eyD(tvv),eyD(tvy),tv_=new g$(eow(vx(tm6,1),eJ4,170,0,[tvw,tvg]))}function exz(e,t){var n;this.d=new mh,this.b=t,this.e=new TS(t.qf()),n=e.u.Hc((ekU(),tbb)),e.u.Hc(tbp)?e.D?this.a=n&&!t.If():this.a=!0:e.u.Hc(tbm)&&n?this.a=!(t.zf().Kc().Ob()||t.Bf().Kc().Ob()):this.a=!1}function exG(e,t){var n,r,i,a;for(n=e.o.a,a=Pp(Pp(Zq(e.r,t),21),84).Kc();a.Ob();)(i=Pp(a.Pb(),111)).e.a=(r=i.b).Xe((eBB(),thK))?r.Hf()==(eYu(),tbY)?-r.rf().a-gP(LV(r.We(thK))):n+gP(LV(r.We(thK))):r.Hf()==(eYu(),tbY)?-r.rf().a:n}function exW(e,t){var n,r,i,a;n=Pp(e_k(e,(eBy(),tal)),103),a=Pp(eT8(t,tob),61),(i=Pp(e_k(e,tol),98))!=(ewf(),tbc)&&i!=tbl?a==(eYu(),tbF)&&(a=eNh(t,n))==tbF&&(a=ef9(n)):a=(r=eRl(t))>0?ef9(n):elC(ef9(n)),ebu(t,tob,a)}function exK(e,t){var n,r,i,a,o;for(o=e.j,t.a!=t.b&&Mv(o,new ia),i=o.c.length/2|0,r=0;r0&&eIl(e,n,t),a):null!=r.a?(eIl(e,t,n),-1):null!=i.a?(eIl(e,n,t),1):0}function exq(e,t){var n,r,i,a;e.ej()?(n=e.Vi(),a=e.fj(),++e.j,e.Hi(n,e.oi(n,t)),r=e.Zi(3,null,t,n,a),e.bj()&&(i=e.cj(t,null))?(i.Ei(r),i.Fi()):e.$i(r)):(BD(e,t),e.bj()&&(i=e.cj(t,null))&&i.Fi())}function exZ(e,t){var n,r,i,a,o;for(o=eAY(e.e.Tg(),t),i=new o7,n=Pp(e.g,119),a=e.i;--a>=0;)r=n[a],o.rl(r.ak())&&JL(i,r);!eYK(e,i)&&TO(e.e)&&bz(e,t.$j()?$N(e,6,t,(Hj(),e2r),null,-1,!1):$N(e,t.Kj()?2:1,t,null,null,-1,!1))}function exX(){var e,t;for(t=0,exX=A,e2t=Je(e0t,eUP,91,32,0,1),e2n=Je(e0t,eUP,91,32,0,1),e=1;t<=18;t++)e2t[t]=ep_(e),e2n[t]=ep_(Fg(e,t)),e=efn(e,5);for(;to)))&&(!t.q||(o=(r=t.C).c.c.a-r.o.a/2,!((i=r.n.a-n)>o))))}function exQ(e,t){var n;ewG(t,"Partition preprocessing",1),n=Pp(qE(UJ(eeh(UJ(new R1(null,new Gq(e.a,16)),new nZ),new nX),new nJ),JF(new U,new B,new en,eow(vx(e2L,1),eU4,132,0,[(eum(),e2U)]))),15),_r(n.Oc(),new nQ),eEj(t)}function ex1(e){var t,n,r,i,a,o,s;for(Gk(),n=new qh,i=new fz(e.e.b);i.a1?e.e*=gP(e.a):e.f/=gP(e.a),eu0(e),ehK(e),eCj(e),eo3(e.b,(epz(),e62),e.g)}function ex9(e,t,n){var r,i,a,o,s,u;for(r=0,u=n,t||(r=n*(e.c.length-1),u*=-1),a=new fz(e);a.a=0?(!t&&(t=new vu,r>0&&xk(t,e.substr(0,r))),t.a+="\\",Bf(t,n&eHd)):t&&Bf(t,n&eHd);return t?t.a:e}function eTh(e){var t;if(!e.a)throw p7(new gC("IDataType class expected for layout option "+e.f));if(null==(t=VN(e.a)))throw p7(new gC("Couldn't create new instance of property '"+e.f+"'. "+eq4+(LW(e6D),e6D.k)+eq5));return Pp(t,414)}function eTp(e){var t,n,r,i,a;return(a=e.eh())&&a.kh()&&(i=ecv(e,a))!=a?(n=e.Vg(),r=(t=e.Vg())>=0?e.Qg(null):e.eh().ih(e,-1-t,null,null),e.Rg(Pp(i,49),n),r&&r.Fi(),e.Lg()&&e.Mg()&&n>-1&&eam(e,new FX(e,9,n,a,i)),i):a}function eTb(e){var t,n,r,i,a,o,s,u;for(r=0,o=0,a=e.f.e;r>5)>=e.d)return e.e<0;if(n=e.a[i],t=1<<(31&t),e.e<0){if(i<(r=eiU(e)))return!1;n=r==i?-n:~n}return(n&t)!=0}function eT_(e,t,n,r){var i;Pp(n.b,65),Pp(n.b,65),Pp(r.b,65),Pp(r.b,65),P9(i=C6(MB(Pp(n.b,65).c),Pp(r.b,65).c),ekg(Pp(n.b,65),Pp(r.b,65),i)),Pp(r.b,65),Pp(r.b,65),Pp(r.b,65).c.a,i.a,Pp(r.b,65).c.b,i.b,Pp(r.b,65),ety(r.a,new N9(e,t,r))}function eTE(e,t){var n,r,i,a,o,s,u;if(a=t.e){for(o=0,n=eTp(a),r=Pp(e.g,674);o>16)),15).Xc(a))0&&(Tk(e.a.c)&&t.n.d||Tx(e.a.c)&&t.n.b||(t.g.d+=eB4.Math.max(0,r/2-.5)),Tk(e.a.c)&&t.n.a||Tx(e.a.c)&&t.n.c||(t.g.a-=r-1))}function eTO(e){var t,n,r,i,a;if(i=new p0,a=eDC(e,i),t=Pp(e_k(e,(eBU(),tng)),10))for(r=new fz(t.j);r.a>t,a=e.m>>t|n<<22-t,i=e.l>>t|e.m<<22-t):t<44?(o=r?eH$:0,a=n>>t-22,i=e.m>>t-22|n<<44-t):(o=r?eH$:0,a=r?eHH:0,i=n>>t-44),Mk(i&eHH,a&eHH,o&eH$)}function eTI(e){var t,n,r,i,a,o;for(this.c=new p0,this.d=e,r=eHQ,i=eHQ,t=eH1,n=eH1,o=epL(e,0);o.b!=o.d.c;)a=Pp(Vv(o),8),r=eB4.Math.min(r,a.a),i=eB4.Math.min(i,a.b),t=eB4.Math.max(t,a.a),n=eB4.Math.max(n,a.b);this.a=new Hr(r,i,t-r,n-i)}function eTD(e,t){var n,r,i,a,o,s;for(a=new fz(e.b);a.a0&&M4(t,42)&&(e.a.qj(),a=null==(u=(c=Pp(t,42)).cd())?0:esj(u),o=Cb(e.a,a),n=e.a.d[o])){for(s=0,r=Pp(n.g,367),l=n.i;s=2)for(t=LV((n=i.Kc()).Pb());n.Ob();)a=t,t=LV(n.Pb()),r=eB4.Math.min(r,(BJ(t),t-(BJ(a),a)));return r}function eTX(e,t){var n,r,i,a,o;qQ(r=new _n,t,r.c.b,r.c);do for(n=(A6(0!=r.b),Pp(etw(r,r.a.a),86)),e.b[n.g]=1,a=epL(n.d,0);a.b!=a.d.c;)o=(i=Pp(Vv(a),188)).c,1==e.b[o.g]?P7(e.a,i):2==e.b[o.g]?e.b[o.g]=1:qQ(r,o,r.c.b,r.c);while(0!=r.b)}function eTJ(e,t){var n,r,i;if(xc(t)===xc(Y9(e)))return!0;if(!M4(t,15)||(r=Pp(t,15),(i=e.gc())!=r.gc()))return!1;if(!M4(r,54))return eb3(e.Kc(),r.Kc());for(n=0;n0&&(i=n),o=new fz(e.f.e);o.a0?(t-=1,n-=1):r>=0&&i<0?(t+=1,n+=1):r>0&&i>=0?(t-=1,n+=1):(t+=1,n-=1),new kD(ell(t),ell(n))}function eMf(e,t){if(e.ct.c)return 1;if(e.bt.b)return 1;if(e.a!=t.a)return esj(e.a)-esj(t.a);else if(e.d==(qG(),tuf)&&t.d==tul)return -1;else if(e.d==tul&&t.d==tuf)return 1;return 0}function eMd(e,t){var n,r,i,a,o;return(o=(a=t.a).c.i==t.b?a.d:a.c,r=a.c.i==t.b?a.c:a.d,(i=edI(e.a,o,r))>0&&i0):i<0&&-i0)}function eMh(e,t,n,r){var i,a,o,s,u,c,l,f;for(i=(t-e.d)/e.c.c.length,a=0,e.a+=n,e.d=t,f=new fz(e.c);f.a>24;return o}function eMb(e){if(e.pe()){var t=e.c;t.qe()?e.o="["+t.n:t.pe()?e.o="["+t.ne():e.o="[L"+t.ne()+";",e.b=t.me()+"[]",e.k=t.oe()+"[]";return}var n=e.j,r=e.d;r=r.split("/"),e.o=ehg(".",[n,ehg("$",r)]),e.b=ehg(".",[n,ehg(".",r)]),e.k=r[r.length-1]}function eMm(e,t){var n,r,i,a,o;for(o=null,a=new fz(e.e.a);a.a=0;t-=2)for(n=0;n<=t;n+=2)(e.b[n]>e.b[n+2]||e.b[n]===e.b[n+2]&&e.b[n+1]>e.b[n+3])&&(r=e.b[n+2],e.b[n+2]=e.b[n],e.b[n]=r,r=e.b[n+3],e.b[n+3]=e.b[n+1],e.b[n+1]=r);e.c=!0}}function eMk(e,t){var n,r,i,a,o,s,u,c;for(a=(o=1==t?e8c:e8u).a.ec().Kc();a.Ob();)for(i=Pp(a.Pb(),103),u=Pp(Zq(e.f.c,i),21).Kc();u.Ob();)switch(s=Pp(u.Pb(),46),r=Pp(s.b,81),n=(c=Pp(s.a,189)).c,i.g){case 2:case 1:r.g.d+=n;break;case 4:case 3:r.g.c+=n}}function eMx(e,t){var n,r,i,a,o,s,u,c,l;for(s=0,c=-1,l=0,u=(o=e).length;s0&&++l;++c}return l}function eMT(e){var t,n;return n=new O0(yx(e.gm)),n.a+="@",xM(n,(t=esj(e)>>>0).toString(16)),e.kh()?(n.a+=" (eProxyURI: ",xT(n,e.qh()),e.$g()&&(n.a+=" eClass: ",xT(n,e.$g())),n.a+=")"):e.$g()&&(n.a+=" (eClass: ",xT(n,e.$g()),n.a+=")"),n.a}function eMM(e){var t,n,r,i;if(e.e)throw p7(new gC((LW(e2J),e$j+e2J.k+e$F)));for(e.d==(ec3(),tpv)&&eF_(e,tpm),n=new fz(e.a.a);n.a>24}return n}function eMD(e,t,n){var r,i,a;if(!(i=Pp(UA(e.i,t),306))){if(i=new etr(e.d,t,n),jT(e.i,t,i),ehj(t))Od(e.a,t.c,t.b,i);else switch(a=eSv(t),r=Pp(UA(e.p,a),244),a.g){case 1:case 3:i.j=!0,gh(r,t.b,i);break;case 4:case 2:i.k=!0,gh(r,t.c,i)}}return i}function eMN(e,t,n,r){var i,a,o,s,u,c;if(s=new o7,u=eAY(e.e.Tg(),t),i=Pp(e.g,119),_4(),Pp(t,66).Oj())for(o=0;o=0)return i;for(a=1,s=new fz(t.j);s.a0&&t.ue((GK(i-1,e.c.length),Pp(e.c[i-1],10)),a)>0;)q1(e,i,(GK(i-1,e.c.length),Pp(e.c[i-1],10))),--i;GK(i,e.c.length),e.c[i]=a}n.a=new p2,n.b=new p2}function eMj(e,t,n){var r,i,a,o,s,u,c,l;for(o=0,l=(r=Pp(t.e&&t.e(),9),new I1(r,Pp(CY(r,r.length),9),0)),s=(a=u=eIk(n,"[\\[\\]\\s,]+")).length;o0&&(Tk(e.a.c)&&t.n.d||Tx(e.a.c)&&t.n.b||(t.g.d-=eB4.Math.max(0,r/2-.5)),Tk(e.a.c)&&t.n.a||Tx(e.a.c)&&t.n.c||(t.g.a+=eB4.Math.max(0,r-1)))}function eMY(e,t,n){var r,i;if((e.c-e.b&e.a.length-1)==2)t==(eYu(),tbw)||t==tby?(etf(Pp(eso(e),15),(egF(),tpV)),etf(Pp(eso(e),15),tpq)):(etf(Pp(eso(e),15),(egF(),tpq)),etf(Pp(eso(e),15),tpV));else for(i=new UN(e);i.a!=i.b;)etf(r=Pp(ecn(i),15),n)}function eMB(e,t){var n,r,i,a,o,s,u;for(i=Pb(new pL(e)),s=new KB(i,i.c.length),a=Pb(new pL(t)),u=new KB(a,a.c.length),o=null;s.b>0&&u.b>0;)if((n=(A6(s.b>0),Pp(s.a.Xb(s.c=--s.b),33)))==(r=(A6(u.b>0),Pp(u.a.Xb(u.c=--u.b),33))))o=n;else break;return o}function eMU(e,t){var n,r,i,a,o,s;return(a=e.a*e$d+1502*e.b,s=e.b*e$d+11,a+=n=eB4.Math.floor(s*e$h),s-=n*e$p,a%=e$p,e.a=a,e.b=s,t<=24)?eB4.Math.floor(e.a*e2v[t]):((r=(i=e.a*(1<=2147483648&&(r-=eH7),r)}function eMH(e,t,n){var r,i,a,o;WY(e,t)>WY(e,n)?(r=efr(n,(eYu(),tby)),e.d=r.dc()?0:Rk(Pp(r.Xb(0),11)),o=efr(t,tbY),e.b=o.dc()?0:Rk(Pp(o.Xb(0),11))):(i=efr(n,(eYu(),tbY)),e.d=i.dc()?0:Rk(Pp(i.Xb(0),11)),a=efr(t,tby),e.b=a.dc()?0:Rk(Pp(a.Xb(0),11)))}function eM$(e){var t,n,r,i,a,o,s;if(e&&(t=e.Hh(eQc))&&null!=(o=Lq(edW((t.b||(t.b=new L_((eBK(),tgF),tgf,t)),t.b),"conversionDelegates")))){for(s=new p0,r=eIk(o,"\\w+"),i=0,a=r.length;ie.c);o++)i.a>=e.s&&(a<0&&(a=o),s=o);return u=(e.s+e.c)/2,a>=0&&(r=eIe(e,t,a,s),u=_V((GK(r,t.c.length),Pp(t.c[r],329))),exC(t,r,n)),u}function eMK(){eMK=A,tlK=new T2((eBB(),td2),1.3),tlX=thc,tfe=new T3(15),tl7=new T2(thN,tfe),tfr=new T2(tpl,15),tlV=td9,tl3=thx,tl4=thO,tl5=thL,tl2=thS,tl6=thD,tft=thJ,tl8=(eTU(),tl$),tl0=tlU,tl9=tlH,tfn=tlG,tlJ=tlB,tlQ=thb,tl1=thm,tlZ=tlY,tlq=tlF,tfi=tlW}function eMV(e,t,n){var r,i,a,o,s,u,c;for(erl(o=a=new sa,(BJ(t),t)),c=(o.b||(o.b=new L_((eBK(),tgF),tgf,o)),o.b),u=1;u0&&eRJ(this,i)}function eMZ(e,t,n,r,i,a){var o,s,u;if(!i[t.b]){for(i[t.b]=!0,(o=r)||(o=new Z5),P_(o.e,t),u=a[t.b].Kc();u.Ob();)(s=Pp(u.Pb(),282)).d!=n&&s.c!=n&&(s.c!=t&&eMZ(e,s.c,t,o,i,a),s.d!=t&&eMZ(e,s.d,t,o,i,a),P_(o.c,s),eoc(o.d,s.b));return o}return null}function eMX(e){var t,n,r,i,a,o,s;for(t=0,i=new fz(e.e);i.a=2}function eMJ(e,t){var n,r,i,a;for(ewG(t,"Self-Loop pre-processing",1),r=new fz(e.a);r.a1)&&(t=jL(tp1,eow(vx(e6t,1),eU4,93,0,[tpQ,tp2])),!(eaC(z_(t,e))>1)&&(r=jL(tp9,eow(vx(e6t,1),eU4,93,0,[tp6,tp5])),!(eaC(z_(r,e))>1)))}function eM0(e,t){var n,r,i;return(n=t.Hh(e.a))&&null!=(i=Lq(edW((n.b||(n.b=new L_((eBK(),tgF),tgf,n)),n.b),"affiliation")))?-1==(r=O8(i,e_n(35)))?elp(e,Fr(e,etP(t.Hj())),i):0==r?elp(e,null,i.substr(1)):elp(e,i.substr(0,r),i.substr(r+1)):null}function eM2(e){var t,n,r;try{return null==e?eUg:efF(e)}catch(i){if(i=eoa(i),M4(i,102))return t=i,r=yx(esF(e))+"@"+(n=(wK(),ebh(e)>>>0)).toString(16),epa(eob(),(_g(),"Exception during lenientFormat for "+r),t),"<"+r+" threw "+yx(t.gm)+">";throw p7(i)}}function eM3(e){switch(e.g){case 0:return new ck;case 1:return new cy;case 2:return new _j;case 3:return new i$;case 4:return new CZ;case 5:return new cx;default:throw p7(new gL("No implementation is available for the layerer "+(null!=e.f?e.f:""+e.g)))}}function eM4(e,t,n){var r,i,a;for(a=new fz(e.t);a.a0&&(r.b.n-=r.c,r.b.n<=0&&r.b.u>0&&P7(t,r.b));for(i=new fz(e.i);i.a0&&(r.a.u-=r.c,r.a.u<=0&&r.a.n>0&&P7(n,r.a))}function eM5(e){var t,n,r,i,a;if(null==e.g&&(e.d=e.si(e.f),JL(e,e.d),e.c))return e.f;if(i=(t=Pp(e.g[e.i-1],47)).Pb(),e.e=t,(n=e.si(i)).Ob())e.d=n,JL(e,n);else for(e.d=null;!t.Ob()&&(Bc(e.g,--e.i,null),0!=e.i);)t=r=Pp(e.g[e.i-1],47);return i}function eM6(e,t){var n,r,i,a,o,s;if(i=(r=t).ak(),eLt(e.e,i)){if(i.hi()&&Vq(e,i,r.dd()))return!1}else for(a=0,s=eAY(e.e.Tg(),i),n=Pp(e.g,119);a1||n>1)return 2;return t+n==1?2:0}function eOs(e,t,n){var r,i,a,o,s;for(ewG(n,"ELK Force",1),gN(LK(eT8(t,(eCk(),e9E))))||zh(r=new df((_q(),new gM(t)))),s=eo4(t),evn(s),esO(e,Pp(e_k(s,e9v),424)),a=(o=eNx(e.a,s)).Kc();a.Ob();)i=Pp(a.Pb(),231),eIL(e.b,i,eiI(n,1/o.gc()));s=eYC(o),eYh(s),eEj(n)}function eOu(e,t){var n,r,i,a,o;if(ewG(t,"Breaking Point Processor",1),eFM(e),gN(LK(e_k(e,(eBy(),toJ))))){for(i=new fz(e.b);i.a=0?e._g(r,!0,!0):exk(e,a,!0),153),Pp(i,215).ml(t,n)}else throw p7(new gL(eZV+t.ne()+eZq))}function eOp(e,t){var n,r,i,a,o;for(r=1,n=new p0,i=eeh(new R1(null,new Gq(e,16)),new aM),a=eeh(new R1(null,new Gq(e,16)),new aO),o=QN(Xg(U1(eAa(eow(vx(e2C,1),eUp,833,0,[i,a])),new aA)));r=2*t&&P_(n,new N4(o[r-1]+t,o[r]-t));return n}function eOb(e,t,n){ewG(n,"Eades radial",1),n.n&&t&&WG(n,KS(t),(eup(),tmr)),e.d=Pp(eT8(t,(Lj(),tcV)),33),e.c=gP(LV(eT8(t,(egj(),tl_)))),e.e=ebN(Pp(eT8(t,tlE),293)),e.a=ef7(Pp(eT8(t,tlk),426)),e.b=eyp(Pp(eT8(t,tlg),340)),evY(e),n.n&&t&&WG(n,KS(t),(eup(),tmr))}function eOm(e,t,n){var r,i,a,o,s,u,c,l;if(n)for(a=n.a.length,s=((r=new Fs(a)).b-r.a)*r.c<0?(_9(),eB3):new OR(r);s.Ob();)(i=KZ(n,(o=Pp(s.Pb(),19)).a))&&(eB8=null,u=Vj(e,(c=(yT(),l=new mk),t&&eOL(c,t),c),i),ert(u,KJ(i,eXS)),ewU(i,u),eka(i,u),esv(e,i,u))}function eOg(e){var t,n,r,i,a,o;if(!e.j){if(o=new sd,null==(a=(t=tgz).a.zc(e,t))){for(r=new Ow($E(e));r.e!=r.i.gc();)n=Pp(epH(r),26),i=eOg(n),Y4(o,i),JL(o,n);t.a.Bc(e)}euI(o),e.j=new xQ((Pp(etj(H9((BM(),tgv).o),11),18),o.i),o.g),Zd(e).b&=-33}return e.j}function eOv(e){var t,n,r,i;if(null==e)return null;if(r=ePh(e,!0),i=eQq.length,IE(r.substr(r.length-i,i),eQq)){if(4==(n=r.length)){if(43==(t=(GV(0,r.length),r.charCodeAt(0))))return tvX;if(45==t)return tvZ}else if(3==n)return tvX}return new bK(r)}function eOy(e){var t,n,r;return((n=e.l)&n-1)!=0||((r=e.m)&r-1)!=0||((t=e.h)&t-1)!=0||0==t&&0==r&&0==n?-1:0==t&&0==r&&0!=n?enq(n):0==t&&0!=r&&0==n?enq(r)+22:0!=t&&0==r&&0==n?enq(t)+44:-1}function eOw(e,t){var n,r,i,a,o;for(ewG(t,"Edge joining",1),n=gN(LK(e_k(e,(eBy(),toz)))),i=new fz(e.b);i.a1)for(i=new fz(e.a);i.a0),a.a.Xb(a.c=--a.b),CD(a,i),A6(a.becd(r,0)?(i=eHf-jE(edQ(QC(r),eHf)))==eHf&&(i=0):i=jE(edQ(r,eHf)),1==t?Bd(e,48+(i=eB4.Math.min((i+50)/100|0,9))&eHd):2==t?eeE(e,i=eB4.Math.min((i+5)/10|0,99),2):(eeE(e,i,3),t>3&&eeE(e,0,t-3))}function eOM(e){var t,n,r,i;return xc(e_k(e,(eBy(),taM)))===xc((eck(),tpz))?!e.e&&xc(e_k(e,tat))!==xc((eaU(),ttO)):(r=Pp(e_k(e,tan),292),i=gN(LK(e_k(e,tao)))||xc(e_k(e,tas))===xc((en7(),teR)),t=Pp(e_k(e,tae),19).a,n=e.a.c.length,!i&&r!=(eaU(),ttO)&&(0==t||t>n))}function eOO(e){var t,n;for(n=0;n0);n++);if(n>0&&n0);t++);return t>0&&n>16!=6&&t){if(eg7(e,t))throw p7(new gL(eZ4+ex2(e)));r=null,e.Cb&&(r=(n=e.Db>>16)>=0?eg1(e,r):e.Cb.ih(e,-1-n,null,r)),t&&(r=ep0(t,e,6,r)),(r=Cc(e,t,r))&&r.Fi()}else(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new FX(e,1,6,t,t))}function eOL(e,t){var n,r;if(t!=e.Cb||e.Db>>16!=9&&t){if(eg7(e,t))throw p7(new gL(eZ4+eC5(e)));r=null,e.Cb&&(r=(n=e.Db>>16)>=0?eg2(e,r):e.Cb.ih(e,-1-n,null,r)),t&&(r=ep0(t,e,9,r)),(r=Cl(e,t,r))&&r.Fi()}else(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new FX(e,1,9,t,t))}function eOC(e,t){var n,r;if(t!=e.Cb||e.Db>>16!=3&&t){if(eg7(e,t))throw p7(new gL(eZ4+ePY(e)));r=null,e.Cb&&(r=(n=e.Db>>16)>=0?evo(e,r):e.Cb.ih(e,-1-n,null,r)),t&&(r=ep0(t,e,12,r)),(r=Cu(e,t,r))&&r.Fi()}else(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new FX(e,1,3,t,t))}function eOI(e){var t,n,r,i,a;if(r=evl(e),null==(a=e.j)&&r)return e.$j()?null:r.zj();if(M4(r,148)){if((n=r.Aj())&&(i=n.Nh())!=e.i){if((t=Pp(r,148)).Ej())try{e.g=i.Kh(t,a)}catch(o){if(o=eoa(o),M4(o,78))e.g=null;else throw p7(o)}e.i=i}return e.g}return null}function eOD(e){var t;return t=new p0,P_(t,new EL(new kl(e.c,e.d),new kl(e.c+e.b,e.d))),P_(t,new EL(new kl(e.c,e.d),new kl(e.c,e.d+e.a))),P_(t,new EL(new kl(e.c+e.b,e.d+e.a),new kl(e.c+e.b,e.d))),P_(t,new EL(new kl(e.c+e.b,e.d+e.a),new kl(e.c,e.d+e.a))),t}function eON(e,t,n,r){var i,a,o;if(o=eyn(t,n),r.c[r.c.length]=t,-1==e.j[o.p]||2==e.j[o.p]||e.a[t.p])return r;for(e.j[o.p]=-1,a=new Fa(OH(efs(o).a.Kc(),new c));eTk(a);)if(i=Pp(ZC(a),17),!q8(i)&&!(!q8(i)&&i.c.i.c==i.d.i.c)&&i!=t)return eON(e,i,o,r);return r}function eOP(e,t,n){var r,i,a;for(a=t.a.ec().Kc();a.Ob();)i=Pp(a.Pb(),79),(r=Pp(Bp(e.b,i),266))||(z$(e_I(i))==z$(e_P(i))?eLk(e,i,n):e_I(i)==z$(e_P(i))?null==Bp(e.c,i)&&null!=Bp(e.b,e_P(i))&&eFt(e,i,n,!1):null==Bp(e.d,i)&&null!=Bp(e.b,e_I(i))&&eFt(e,i,n,!0))}function eOR(e,t){var n,r,i,a,o,s,u;for(i=e.Kc();i.Ob();)for(r=Pp(i.Pb(),10),s=new eES,Gc(s,r),ekv(s,(eYu(),tby)),eo3(s,(eBU(),tnm),(OQ(),!0)),o=t.Kc();o.Ob();)a=Pp(o.Pb(),10),u=new eES,Gc(u,a),ekv(u,tbY),eo3(u,tnm,!0),n=new $b,eo3(n,tnm,!0),Gs(n,s),Go(n,u)}function eOj(e,t,n,r){var i,a,o,s;i=ehu(e,t,n),a=ehu(e,n,t),o=Pp(Bp(e.c,t),112),s=Pp(Bp(e.c,n),112),ir.b.g&&(a.c[a.c.length]=r);return a}function eOB(){eOB=A,tfo=new S9("CANDIDATE_POSITION_LAST_PLACED_RIGHT",0),tfa=new S9("CANDIDATE_POSITION_LAST_PLACED_BELOW",1),tfu=new S9("CANDIDATE_POSITION_WHOLE_DRAWING_RIGHT",2),tfs=new S9("CANDIDATE_POSITION_WHOLE_DRAWING_BELOW",3),tfc=new S9("WHOLE_DRAWING",4)}function eOU(e,t){if(M4(t,239))return elg(e,Pp(t,33));if(M4(t,186))return el$(e,Pp(t,118));if(M4(t,354))return Hd(e,Pp(t,137));if(M4(t,352))return eNP(e,Pp(t,79));if(t)return null;else throw p7(new gL(eXx+e_F(new g$(eow(vx(e1R,1),eUp,1,5,[t])))))}function eOH(e){var t,n,r,i,a,o,s;for(a=new _n,i=new fz(e.d.a);i.a1)for(t=Al((n=new b1,++e.b,n),e.d),s=epL(a,0);s.b!=s.d.c;)o=Pp(Vv(s),121),eAx(_f(_l(_d(_c(new bQ,1),0),t),o))}function eO$(e,t){var n,r;if(t!=e.Cb||e.Db>>16!=11&&t){if(eg7(e,t))throw p7(new gL(eZ4+eC4(e)));r=null,e.Cb&&(r=(n=e.Db>>16)>=0?evs(e,r):e.Cb.ih(e,-1-n,null,r)),t&&(r=ep0(t,e,10,r)),(r=C4(e,t,r))&&r.Fi()}else(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new FX(e,1,11,t,t))}function eOz(e){var t,n,r,i;for(r=new esz(new fS(e.b).a);r.b;)n=etz(r),i=Pp(n.cd(),11),eo3(t=Pp(n.dd(),10),(eBU(),tnc),i),eo3(i,tng,t),eo3(i,tt6,(OQ(),!0)),ekv(i,Pp(e_k(t,tt1),61)),e_k(t,tt1),eo3(i.i,(eBy(),tol),(ewf(),tbu)),Pp(e_k(Bq(i.i),tt3),21).Fc((eLR(),ttS))}function eOG(e,t,n){var r,i,a,o,s,u;if(a=0,o=0,e.c)for(u=new fz(e.d.i.j);u.aa.a)?-1:i.a(u=null==e.d?0:e.d.length)))return!1;for(a=0,l=e.d,e.d=Je(e6C,eJA,63,2*u+4,0,1);a=0x7fffffffffffffff?(Q2(),e0L):(i=!1,e<0&&(i=!0,e=-e),r=0,e>=eHW&&(r=zy(e/eHW),e-=r*eHW),n=0,e>=eHG&&(n=zy(e/eHG),e-=n*eHG),a=Mk(t=zy(e),n,r),i&&esh(a),a)}function eO6(e,t){var n,r,i,a;for(n=!t||!e.u.Hc((ekU(),tbp)),a=0,i=new fz(e.e.Cf());i.a=-t&&r==t?new kD(ell(n-1),ell(r)):new kD(ell(n),ell(r-1))}function eAn(){return eB$(),eow(vx(e4B,1),eU4,77,0,[e85,e82,e86,e7d,e7C,e7m,e7j,e7_,e7A,e7s,e7x,e7w,e7L,e7r,e7Y,e8Z,e7k,e7D,e7h,e7I,e7U,e7M,e8X,e7O,e7H,e7P,e7B,e7p,e7e,e7b,e7f,e7F,e81,e88,e7v,e8Q,e7y,e7c,e7i,e7E,e7o,e83,e80,e7l,e7a,e7S,e7R,e8J,e7T,e7u,e7g,e7t,e87,e7N,e89,e7n,e84])}function eAr(e,t,n){e.d=0,e.b=0,t.k==(eEn(),e8P)&&n.k==e8P&&Pp(e_k(t,(eBU(),tnc)),10)==Pp(e_k(n,tnc),10)&&(QP(t).j==(eYu(),tbw)?eMH(e,t,n):eMH(e,n,t)),t.k==e8P&&n.k==e8D?QP(t).j==(eYu(),tbw)?e.d=1:e.b=1:n.k==e8P&&t.k==e8D&&(QP(n).j==(eYu(),tbw)?e.b=1:e.d=1),emu(e,t,n)}function eAi(e){var t,n,r,i,a,o,s,u,c,l,f;return f=ewW(e),(u=null!=(t=e.a))&&P4(f,"category",e.a),(o=!(i=wc(new fk(e.d))))&&(ee3(f,"knownOptions",c=new lN),n=new pS(c),qX(new fk(e.d),n)),(s=!(a=wc(e.g)))&&(ee3(f,"supportedFeatures",l=new lN),r=new pk(l),qX(e.g,r)),f}function eAa(e){var t,n,r,i,a,o,s,u,c;for(u=0,r=!1,t=336,n=0,a=new CE(e.length),c=(s=e).length;u>16!=7&&t){if(eg7(e,t))throw p7(new gL(eZ4+eE1(e)));r=null,e.Cb&&(r=(n=e.Db>>16)>=0?eg0(e,r):e.Cb.ih(e,-1-n,null,r)),t&&(r=Pp(t,49).gh(e,1,e6p,r)),(r=j2(e,t,r))&&r.Fi()}else(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new FX(e,1,7,t,t))}function eAc(e,t){var n,r;if(t!=e.Cb||e.Db>>16!=3&&t){if(eg7(e,t))throw p7(new gL(eZ4+eln(e)));r=null,e.Cb&&(r=(n=e.Db>>16)>=0?eg4(e,r):e.Cb.ih(e,-1-n,null,r)),t&&(r=Pp(t,49).gh(e,0,e6y,r)),(r=j3(e,t,r))&&r.Fi()}else(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new FX(e,1,3,t,t))}function eAl(e,t){var n,r,i,a,o,s,u,c,l;return(exX(),t.d>e.d&&(s=e,e=t,t=s),t.d<63)?eLm(e,t):(o=(-2&e.d)<<4,c=ZL(e,o),l=ZL(t,o),r=eNz(e,ZA(c,o)),i=eNz(t,ZA(l,o)),u=eAl(c,l),n=eAl(r,i),a=eAl(eNz(c,r),eNz(i,l)),a=eP5(eP5(a,u),n),a=ZA(a,o),u=ZA(u,o<<1),eP5(eP5(u,a),n))}function eAf(e,t,n){var r,i,a,o,s;for(o=ecZ(e,n),s=Je(e4N,eGW,10,t.length,0,1),r=0,a=o.Kc();a.Ob();)gN(LK(e_k(i=Pp(a.Pb(),11),(eBU(),tt6))))&&(s[r++]=Pp(e_k(i,tng),10));if(r=0;a+=n?1:-1)o|=t.c.Sf(u,a,n,r&&!gN(LK(e_k(t.j,(eBU(),tt2))))&&!gN(LK(e_k(t.j,(eBU(),tnS))))),o|=t.q._f(u,a,n),o|=eCA(e,u[a],n,r);return Yf(e.c,t),o}function eAm(e,t,n){var r,i,a,o,s,u,c,l,f,d;for(l=Kz(e.j),f=0,d=l.length;f1&&(e.a=!0),jU(Pp(n.b,65),C5(MB(Pp(t.b,65).c),Ol(C6(MB(Pp(n.b,65).a),Pp(t.b,65).a),i))),GC(e,t),eAy(e,n)}function eAw(e){var t,n,r,i,a,o,s;for(a=new fz(e.a.a);a.a0&&a>0?o.p=t++:r>0?o.p=n++:a>0?o.p=i++:o.p=n++}Hj(),Mv(e.j,new nG)}function eAE(e){var t,n;n=null,t=Pp(RJ(e.g,0),17);do{if(Ln(n=t.d.i,(eBU(),tna)))return Pp(e_k(n,tna),11).i;if(n.k!=(eEn(),e8N)&&eTk(new Fa(OH(efc(n).a.Kc(),new c))))t=Pp(ZC(new Fa(OH(efc(n).a.Kc(),new c))),17);else if(n.k!=e8N)return null}while(!!n&&n.k!=(eEn(),e8N))return n}function eAS(e,t){var n,r,i,a,o,s,u,c,l;for(a=1,s=t.j,o=t.g,c=em1(e,o,u=Pp(RJ(s,s.c.length-1),113),l=(GK(0,s.c.length),Pp(s.c[0],113)));ac&&(u=n,l=i,c=r);t.a=l,t.c=u}function eAk(e,t){var n,r;if(!(r=YB(e.b,t.b)))throw p7(new gC("Invalid hitboxes for scanline constraint calculation."));(eop(t.b,Pp(CF(e.b,t.b),57))||eop(t.b,Pp(Cj(e.b,t.b),57)))&&(wK(),t.b),e.a[t.b.f]=Pp(Ik(e.b,t.b),57),(n=Pp(IS(e.b,t.b),57))&&(e.a[n.f]=t.b)}function eAx(e){if(!e.a.d||!e.a.e)throw p7(new gC((LW(e23),e23.k+" must have a source and target "+(LW(e24),e24.k)+" specified.")));if(e.a.d==e.a.e)throw p7(new gC("Network simplex does not support self-loops: "+e.a+" "+e.a.d+" "+e.a.e));return Am(e.a.d.g,e.a),Am(e.a.e.b,e.a),e.a}function eAT(e,t,n){var r,i,a,o,s,u,c;for(c=new yB(new hA(e)),o=eow(vx(e4j,1),eGK,11,0,[t,n]),s=0,u=o.length;su-e.b&&su-e.a&&s0&&++h;++d}return h}function eAF(e,t){var n,r,i,a,o;for(o=Pp(e_k(t,(eTj(),tcN)),425),a=epL(t.b,0);a.b!=a.d.c;)if(i=Pp(Vv(a),86),0==e.b[i.g]){switch(o.g){case 0:eb9(e,i);break;case 1:eTX(e,i)}e.b[i.g]=2}for(r=epL(e.a,0);r.b!=r.d.c;)eds((n=Pp(Vv(r),188)).b.d,n,!0),eds(n.c.b,n,!0);eo3(t,(eR6(),tch),e.a)}function eAY(e,t){var n,r,i,a;return(_4(),t)?t==(eR7(),tvG)||(t==tvM||t==tvx||t==tvT)&&e!=tvk?new eF2(e,t):((n=(r=Pp(t,677)).pk())||(UH(QZ((eSp(),tvc),t)),n=r.pk()),a=(n.i||(n.i=new p2),n.i),(i=Pp(xu($I(a.f,e)),1942))||Um(a,e,i=new eF2(e,t)),i):tvb}function eAB(e,t){var n,r,i,a,o,s,u,c,l;for(a=0,u=Pp(e_k(e,(eBU(),tnc)),11),c=esp(eow(vx(e50,1),eUP,8,0,[u.i.n,u.n,u.a])).a,l=e.i.n.b,o=(i=n=Kp(e.e)).length;a0?a.a?n>(s=a.b.rf().a)&&(i=(n-s)/2,a.d.b=i,a.d.c=i):a.d.c=e.s+n:FY(e.u)&&((r=ew1(a.b)).c<0&&(a.d.b=-r.c),r.c+r.b>a.b.rf().a&&(a.d.c=r.c+r.b-a.b.rf().a))}function eAz(e,t){var n,r,i,a;for(ewG(t,"Semi-Interactive Crossing Minimization Processor",1),n=!1,i=new fz(e.b);i.a=0){if(t==n)return new kD(ell(-t-1),ell(-t-1));if(t==-n)return new kD(ell(-t),ell(n+1))}return eB4.Math.abs(t)>eB4.Math.abs(n)?t<0?new kD(ell(-t),ell(n)):new kD(ell(-t),ell(n+1)):new kD(ell(t+1),ell(n))}function eAK(e){var t,n;n=Pp(e_k(e,(eBy(),taY)),163),t=Pp(e_k(e,(eBU(),tt9)),303),n==(ef_(),tnN)?(eo3(e,taY,tnj),eo3(e,tt9,(Q1(),ttN))):n==tnR?(eo3(e,taY,tnj),eo3(e,tt9,(Q1(),ttI))):t==(Q1(),ttN)?(eo3(e,taY,tnN),eo3(e,tt9,ttD)):t==ttI&&(eo3(e,taY,tnR),eo3(e,tt9,ttD))}function eAV(){eAV=A,tuY=new ad,tuP=RI(new K2,(e_x(),e8n),(eB$(),e7h)),tuF=j0(RI(new K2,e8n,e7M),e8i,e7T),tuB=ehY(ehY(_G(j0(RI(new K2,e8e,e7j),e8i,e7R),e8r),e7P),e7F),tuR=j0(RI(RI(RI(new K2,e8t,e7m),e8r,e7v),e8r,e7y),e8i,e7g),tuj=j0(RI(RI(new K2,e8r,e7y),e8r,e88),e8i,e89)}function eAq(){eAq=A,tuz=RI(j0(new K2,(e_x(),e8i),(eB$(),e7t)),e8n,e7h),tuV=ehY(ehY(_G(j0(RI(new K2,e8e,e7j),e8i,e7R),e8r),e7P),e7F),tuG=j0(RI(RI(RI(new K2,e8t,e7m),e8r,e7v),e8r,e7y),e8i,e7g),tuK=RI(RI(new K2,e8n,e7M),e8i,e7T),tuW=j0(RI(RI(new K2,e8r,e7y),e8r,e88),e8i,e89)}function eAZ(e,t,n,r,i){var a,o;(q8(t)||t.c.i.c!=t.d.i.c)&&erS(esp(eow(vx(e50,1),eUP,8,0,[i.i.n,i.n,i.a])),n)||q8(t)||(t.c==i?Ls(t.a,0,new TS(n)):P7(t.a,new TS(n)),r&&!w0(e.a,n)&&((o=Pp(e_k(t,(eBy(),taR)),74))||eo3(t,taR,o=new mE),qQ(o,a=new TS(n),o.c.b,o.c),Yf(e.a,a)))}function eAX(e){var t,n;for(n=new Fa(OH(efu(e).a.Kc(),new c));eTk(n);)if((t=Pp(ZC(n),17)).c.i.k!=(eEn(),e8I))throw p7(new gq(eWr+egs(e)+"' has its layer constraint set to FIRST, but has at least one incoming edge that does not come from a FIRST_SEPARATE node. That must not happen."))}function eAJ(e,t,n){var r,i,a,o,s,u,c;if(0==(i=efp(254&e.Db)))e.Eb=n;else{if(1==i)s=Je(e1R,eUp,1,2,5,1),0==(a=emF(e,t))?(s[0]=n,s[1]=e.Eb):(s[0]=e.Eb,s[1]=n);else for(r=2,s=Je(e1R,eUp,1,i+1,5,1),o=etG(e.Eb),u=0,c=0;r<=128;r<<=1)r==t?s[c++]=n:(e.Db&r)!=0&&(s[c++]=o[u++]);e.Eb=s}e.Db|=t}function eAQ(e,t,n){var r,i,a,o;for(this.b=new p0,i=0,r=0,o=new fz(e);o.a0&&(i+=(a=Pp(RJ(this.b,0),167)).o,r+=a.p),i*=2,r*=2,t>1?i=zy(eB4.Math.ceil(i*t)):r=zy(eB4.Math.ceil(r/t)),this.a=new edL(i,r)}function eA1(e,t,n,r,i,a){var o,s,u,c,l,f,d,h,p,b,m,g;for(l=r,t.j&&t.o?(b=(h=Pp(Bp(e.f,t.A),57)).d.c+h.d.b,--l):b=t.a.c+t.a.b,f=i,n.q&&n.o?(c=(h=Pp(Bp(e.f,n.C),57)).d.c,++f):c=n.a.c,m=c-b,p=b+(s=m/(u=eB4.Math.max(2,f-l))),d=l;d=0;o+=i?1:-1){for(s=t[o],u=r==(eYu(),tby)?i?efr(s,r):eaa(efr(s,r)):i?eaa(efr(s,r)):efr(s,r),a&&(e.c[s.p]=u.gc()),f=u.Kc();f.Ob();)l=Pp(f.Pb(),11),e.d[l.p]=c++;eoc(n,u)}}function eA2(e,t,n){var r,i,a,o,s,u,c,l;for(a=gP(LV(e.b.Kc().Pb())),c=gP(LV(eaX(t.b))),l=C5(r=Ol(MB(e.a),c-n),i=Ol(MB(t.a),n-a)),Ol(l,1/(c-a)),this.a=l,this.b=new p0,s=!0,(o=e.b.Kc()).Pb();o.Ob();)u=gP(LV(o.Pb())),s&&u-n>eVW&&(this.b.Fc(n),s=!1),this.b.Fc(u);s&&this.b.Fc(n)}function eA3(e){var t,n,r,i;if(eIh(e,e.n),e.d.c.length>0){for(gG(e.c);eTT(e,Pp(Wx(new fz(e.e.a)),121))>5,t&=31,r>=e.d)return e.e<0?(eLQ(),e03):(eLQ(),e08);if(i=Je(ty_,eHT,25,(a=e.d-r)+1,15,1),eEG(i,a,e.a,r,t),e.e<0){for(n=0;n0&&e.a[n]<<32-t!=0){for(n=0;n=0)&&(!(n=eR3((eSp(),tvc),i,t))||((r=n.Zj())>1||-1==r)&&3!=Ur(QZ(tvc,n))))}function eLn(e,t,n,r){var i,a,o,s,u;return(s=ewH(Pp(etj((t.b||(t.b=new Ih(e6m,t,4,7)),t.b),0),82)),u=ewH(Pp(etj((t.c||(t.c=new Ih(e6m,t,5,8)),t.c),0),82)),z$(s)==z$(u)||etg(u,s))?null:(o=zF(t))==n?r:(a=Pp(Bp(e.a,o),10))&&(i=a.e)?i:null}function eLr(e,t){var n;switch(n=Pp(e_k(e,(eBy(),tam)),276),ewG(t,"Label side selection ("+n+")",1),n.g){case 0:eTD(e,(egF(),tpV));break;case 1:eTD(e,(egF(),tpq));break;case 2:eNW(e,(egF(),tpV));break;case 3:eNW(e,(egF(),tpq));break;case 4:eLL(e,(egF(),tpV));break;case 5:eLL(e,(egF(),tpq))}eEj(t)}function eLi(e,t,n){var r,i,a,o,s,u;if((o=e[r=vK(n,e.length)])[0].k==(eEn(),e8C))for(i=0,a=vW(n,o.length),u=t.j;i0&&(n[0]+=e.d,o-=n[0]),n[2]>0&&(n[2]+=e.d,o-=n[2]),a=eB4.Math.max(0,o),n[1]=eB4.Math.max(n[1],o),ZR(e,e3N,i.c+r.b+n[0]-(n[1]-o)/2,n),t==e3N&&(e.c.b=a,e.c.c=i.c+r.b+(a-o)/2)}function eLy(){this.c=Je(tyx,eH5,25,(eYu(),eow(vx(e6a,1),eGj,61,0,[tbF,tbw,tby,tbj,tbY])).length,15,1),this.b=Je(tyx,eH5,25,eow(vx(e6a,1),eGj,61,0,[tbF,tbw,tby,tbj,tbY]).length,15,1),this.a=Je(tyx,eH5,25,eow(vx(e6a,1),eGj,61,0,[tbF,tbw,tby,tbj,tbY]).length,15,1),Ep(this.c,eHQ),Ep(this.b,eH1),Ep(this.a,eH1)}function eLw(e,t,n){var r,i,a,o;if(t<=n?(i=t,a=n):(i=n,a=t),r=0,null==e.b)e.b=Je(ty_,eHT,25,2,15,1),e.b[0]=i,e.b[1]=a,e.c=!0;else{if(r=e.b.length,e.b[r-1]+1==i){e.b[r-1]=a;return}o=Je(ty_,eHT,25,r+2,15,1),ePD(e.b,0,o,0,r),e.b=o,e.b[r-1]>=i&&(e.c=!1,e.a=!1),e.b[r++]=i,e.b[r]=a,e.c||eMS(e)}}function eL_(e,t,n){var r,i,a,o,s,u,c;for(c=t.d,e.a=new XM(c.c.length),e.c=new p2,s=new fz(c);s.a=0?e._g(c,!1,!0):exk(e,n,!1),58);n:for(a=f.Kc();a.Ob();){for(l=0,i=Pp(a.Pb(),56);l1;)eLN(i,i.i-1);return r}function eLA(e,t){var n,r,i,a,o,s,u;for(ewG(t,"Comment post-processing",1),a=new fz(e.b);a.ae.d[o.p]&&(n+=qq(e.b,a),Vw(e.a,ell(a)));for(;!gY(e.a);)eek(e.b,Pp(Yn(e.a),19).a)}return n}function eLD(e,t,n){var r,i,a,o;for(a=(t.a||(t.a=new FQ(e6k,t,10,11)),t.a).i,i=new Ow((t.a||(t.a=new FQ(e6k,t,10,11)),t.a));i.e!=i.i.gc();)0==((r=Pp(epH(i),33)).a||(r.a=new FQ(e6k,r,10,11)),r.a).i||(a+=eLD(e,r,!1));if(n)for(o=z$(t);o;)a+=(o.a||(o.a=new FQ(e6k,o,10,11)),o.a).i,o=z$(o);return a}function eLN(e,t){var n,r,i,a;return e.ej()?(r=null,i=e.fj(),e.ij()&&(r=e.kj(e.pi(t),null)),n=e.Zi(4,a=egk(e,t),null,t,i),e.bj()&&null!=a?(r=e.dj(a,r))?(r.Ei(n),r.Fi()):e.$i(n):r?(r.Ei(n),r.Fi()):e.$i(n),a):(a=egk(e,t),e.bj()&&null!=a&&(r=e.dj(a,null))&&r.Fi(),a)}function eLP(e){var t,n,r,i,a,o,s,u,c,l;for(c=e.a,t=new bV,u=0,r=new fz(e.d);r.as.d&&(l=s.d+s.a+c));n.c.d=l,t.a.zc(n,t),u=eB4.Math.max(u,n.c.d+n.c.a)}return u}function eLR(){eLR=A,ttv=new Sv("COMMENTS",0),ttw=new Sv("EXTERNAL_PORTS",1),tt_=new Sv("HYPEREDGES",2),ttE=new Sv("HYPERNODES",3),ttS=new Sv("NON_FREE_PORTS",4),ttk=new Sv("NORTH_SOUTH_PORTS",5),ttT=new Sv(eWw,6),ttg=new Sv("CENTER_LABELS",7),tty=new Sv("END_LABELS",8),ttx=new Sv("PARTITIONS",9)}function eLj(e){var t,n,r,i,a;for(i=new p0,t=new Rq((e.a||(e.a=new FQ(e6k,e,10,11)),e.a)),r=new Fa(OH(eOi(e).a.Kc(),new c));eTk(r);)n=Pp(ZC(r),79),!M4(etj((n.b||(n.b=new Ih(e6m,n,4,7)),n.b),0),186)&&(a=ewH(Pp(etj((n.c||(n.c=new Ih(e6m,n,5,8)),n.c),0),82)),t.a._b(a)||(i.c[i.c.length]=a));return i}function eLF(e){var t,n,r,i,a,o;for(a=new bV,t=new Rq((e.a||(e.a=new FQ(e6k,e,10,11)),e.a)),i=new Fa(OH(eOi(e).a.Kc(),new c));eTk(i);)r=Pp(ZC(i),79),!M4(etj((r.b||(r.b=new Ih(e6m,r,4,7)),r.b),0),186)&&(o=ewH(Pp(etj((r.c||(r.c=new Ih(e6m,r,5,8)),r.c),0),82)),t.a._b(o)||(n=a.a.zc(o,a)));return a}function eLY(e,t,n,r,i){return r<0?((r=ew6(e,i,eow(vx(e17,1),eUP,2,6,[eHh,eHp,eHb,eHm,eHg,eHv,eHy,eHw,eH_,eHE,eHS,eHk]),t))<0&&(r=ew6(e,i,eow(vx(e17,1),eUP,2,6,["Jan","Feb","Mar","Apr",eHg,"Jun","Jul","Aug","Sep","Oct","Nov","Dec"]),t)),!(r<0)&&(n.k=r,!0)):r>0&&(n.k=r-1,!0)}function eLB(e,t,n,r,i){return r<0?((r=ew6(e,i,eow(vx(e17,1),eUP,2,6,[eHh,eHp,eHb,eHm,eHg,eHv,eHy,eHw,eH_,eHE,eHS,eHk]),t))<0&&(r=ew6(e,i,eow(vx(e17,1),eUP,2,6,["Jan","Feb","Mar","Apr",eHg,"Jun","Jul","Aug","Sep","Oct","Nov","Dec"]),t)),!(r<0)&&(n.k=r,!0)):r>0&&(n.k=r-1,!0)}function eLU(e,t,n,r,i,a){var o,s,u,c;if(s=32,r<0){if(t[0]>=e.length||43!=(s=UI(e,t[0]))&&45!=s||(++t[0],(r=exf(e,t))<0))return!1;45==s&&(r=-r)}return 32==s&&t[0]-n==2&&2==i.b&&(o=(c=(u=new wW).q.getFullYear()-eHx+eHx-80)%100,a.a=r==o,r+=(c/100|0)*100+(r=c&&(u=r);u&&(l=eB4.Math.max(l,u.a.o.a)),l>d&&(f=c,d=l)}return f}function eLV(e,t,n){var r,i,a;if(e.e=n,e.d=0,e.b=0,e.f=1,e.i=t,(16&e.e)==16&&(e.i=eIw(e.i)),e.j=e.i.length,eBM(e),a=ehT(e),e.d!=e.j)throw p7(new gX(eBJ((Mo(),eXV))));if(e.g){for(r=0;reqg?Mv(u,e.b):r<=eqg&&r>eqv?Mv(u,e.d):r<=eqv&&r>eqy?Mv(u,e.c):r<=eqy&&Mv(u,e.a),a=eLJ(e,u,a);return i}function eLQ(){var e;for(e=0,eLQ=A,e04=new XE(1,1),e06=new XE(1,10),e08=new XE(0,0),e03=new XE(-1,1),e05=eow(vx(e0t,1),eUP,91,0,[e08,e04,new XE(1,2),new XE(1,3),new XE(1,4),new XE(1,5),new XE(1,6),new XE(1,7),new XE(1,8),new XE(1,9),e06]),e09=Je(e0t,eUP,91,32,0,1);e1)&&(r=new kl(i,n.b),P7(t.a,r)),enD(t.a,eow(vx(e50,1),eUP,8,0,[d,f]))}function eL6(e){_Y(e,new ewB(vQ(vq(vJ(vX(new oc,eZA),"ELK Randomizer"),'Distributes the nodes randomly on the plane, leading to very obfuscating layouts. Can be useful to demonstrate the power of "real" layout algorithms.'),new oz))),KE(e,eZA,ezW,tb$),KE(e,eZA,eGi,15),KE(e,eZA,eGo,ell(0)),KE(e,eZA,ezG,eGt)}function eL9(){var e,t,n,r,i,a;for(t=0,eL9=A,tv1=Je(tyk,eZ8,25,255,15,1),tv0=Je(tyw,eHl,25,16,15,1);t<255;t++)tv1[t]=-1;for(n=57;n>=48;n--)tv1[n]=n-48<<24>>24;for(r=70;r>=65;r--)tv1[r]=r-65+10<<24>>24;for(i=102;i>=97;i--)tv1[i]=i-97+10<<24>>24;for(a=0;a<10;a++)tv0[a]=48+a&eHd;for(e=10;e<=15;e++)tv0[e]=65+e-10&eHd}function eL8(e,t,n){var r,i,a,o,s,u,c,l;return s=t.i-e.g/2,u=n.i-e.g/2,c=t.j-e.g/2,l=n.j-e.g/2,a=t.g+e.g/2,o=n.g+e.g/2,r=t.f+e.g/2,i=n.f+e.g/2,!!(s>19!=0)return"-"+eCr(eoQ(e));for(n=e,r="";!(0==n.l&&0==n.m&&0==n.h);){if(n=eRV(n,i=Zx(eHK),!0),t=""+yq(e0A),!(0==n.l&&0==n.m&&0==n.h))for(a=9-t.length;a>0;a--)t="0"+t;r=t+r}return r}function eCi(){if(!Object.create||!Object.getOwnPropertyNames)return!1;var e="__proto__",t=Object.create(null);return void 0===t[e]&&0==Object.getOwnPropertyNames(t).length&&(t[e]=42,42===t[e]&&0!=Object.getOwnPropertyNames(t).length)}function eCa(e){var t,n,r,i,a,o,s;for(t=!1,n=0,i=new fz(e.d.b);i.a=e.a||!ewg(t,n))return -1;if(Vb(Pp(r.Kb(t),20)))return 1;for(i=0,o=Pp(r.Kb(t),20).Kc();o.Ob();)if(-1==(s=eCu(e,u=(a=Pp(o.Pb(),17)).c.i==t?a.d.i:a.c.i,n,r))||(i=eB4.Math.max(i,s))>e.c-1)return -1;return i+1}function eCc(e,t){var n,r,i,a,o,s;if(xc(t)===xc(e))return!0;if(!M4(t,15)||(r=Pp(t,15),s=e.gc(),r.gc()!=s))return!1;if(o=r.Kc(),e.ni()){for(n=0;n0){if(e.qj(),null!=t){for(a=0;a>24;case 97:case 98:case 99:case 100:case 101:case 102:return e-97+10<<24>>24;case 65:case 66:case 67:case 68:case 69:case 70:return e-65+10<<24>>24;default:throw p7(new vo("Invalid hexadecimal"))}}function eCh(e,t,n){var r,i,a,o;for(ewG(n,"Processor order nodes",2),e.a=gP(LV(e_k(t,(eTj(),tcR)))),i=new _n,o=epL(t.b,0);o.b!=o.d.c;)gN(LK(e_k(a=Pp(Vv(o),86),(eR6(),tcm))))&&qQ(i,a,i.c.b,i.c);eRt(e,r=(A6(0!=i.b),Pp(i.a.a.c,86))),n.b||erd(n,1),eC1(e,r,0-gP(LV(e_k(r,(eR6(),tcu))))/2,0),n.b||erd(n,1),eEj(n)}function eCp(){eCp=A,e3C=new Ej("SPIRAL",0),e3T=new Ej("LINE_BY_LINE",1),e3M=new Ej("MANHATTAN",2),e3x=new Ej("JITTER",3),e3A=new Ej("QUADRANTS_LINE_BY_LINE",4),e3L=new Ej("QUADRANTS_MANHATTAN",5),e3O=new Ej("QUADRANTS_JITTER",6),e3k=new Ej("COMBINE_LINE_BY_LINE_MANHATTAN",7),e3S=new Ej("COMBINE_JITTER_MANHATTAN",8)}function eCb(e,t,n,r){var i,a,o,s,u,c;for(u=eya(e,n),c=eya(t,n),i=!1;u&&c;)if(r||egl(u,c,n))o=eya(u,n),s=eya(c,n),QB(t),QB(e),a=u.c,ejf(u,!1),ejf(c,!1),n?(egU(t,c.p,a),t.p=c.p,egU(e,u.p+1,a),e.p=u.p):(egU(e,u.p,a),e.p=u.p,egU(t,c.p+1,a),t.p=c.p),Gu(u,null),Gu(c,null),u=o,c=s,i=!0;else break;return i}function eCm(e,t,n,r){var i,a,o,s,u;for(i=!1,a=!1,s=new fz(r.j);s.a=t.length)throw p7(new gE("Greedy SwitchDecider: Free layer not in graph."));this.c=t[e],this.e=new IQ(r),er$(this.e,this.c,(eYu(),tbY)),this.i=new IQ(r),er$(this.i,this.c,tby),this.f=new jy(this.c),this.a=!a&&i.i&&!i.s&&this.c[0].k==(eEn(),e8C),this.a&&eSt(this,e,t.length)}function eC_(e,t){var n,r,i,a,o,s;a=!e.B.Hc((eI3(),tbX)),o=e.B.Hc(tb1),e.a=new edA(o,a,e.c),e.n&&HI(e.a.n,e.n),gh(e.g,(etx(),e3N),e.a),t||((r=new eh6(1,a,e.c)).n.a=e.k,jT(e.p,(eYu(),tbw),r),(i=new eh6(1,a,e.c)).n.d=e.k,jT(e.p,tbj,i),(s=new eh6(0,a,e.c)).n.c=e.k,jT(e.p,tbY,s),(n=new eh6(0,a,e.c)).n.b=e.k,jT(e.p,tby,n))}function eCE(e){var t,n,r;switch((t=Pp(e_k(e.d,(eBy(),tag)),218)).g){case 2:n=eBn(e);break;case 3:n=(r=new p0,_r(UJ(UQ(eeh(eeh(new R1(null,new Gq(e.d.b,16)),new rJ),new rQ),new r1),new rY),new ha(r)),r);break;default:throw p7(new gC("Compaction not supported for "+t+" edges."))}eRD(e,n),qX(new fk(e.g),new hr(e))}function eCS(e,t){var n;return(n=new eX,t&&eaW(n,Pp(Bp(e.a,e6p),94)),M4(t,470)&&eaW(n,Pp(Bp(e.a,e6b),94)),M4(t,354))?(eaW(n,Pp(Bp(e.a,e6S),94)),n):(M4(t,82)&&eaW(n,Pp(Bp(e.a,e6m),94)),M4(t,239))?(eaW(n,Pp(Bp(e.a,e6k),94)),n):M4(t,186)?(eaW(n,Pp(Bp(e.a,e6x),94)),n):(M4(t,352)&&eaW(n,Pp(Bp(e.a,e6g),94)),n)}function eCk(){eCk=A,e9M=new T2((eBB(),th4),ell(1)),e9D=new T2(tpl,80),e9I=new T2(tpr,5),e9p=new T2(td2,eGt),e9O=new T2(th5,ell(1)),e9C=new T2(th8,(OQ(),!0)),e9k=new T3(50),e9S=new T2(thN,e9k),e9m=thb,e9x=thV,e9b=new T2(thn,!1),e9E=thD,e9_=thL,e9w=thx,e9y=thS,e9T=thJ,e9v=(eEg(),e9i),e9N=e9c,e9g=e9r,e9A=e9o,e9L=e9u}function eCx(e){var t,n,r,i,a,o,s,u;for(u=new Zr,s=new fz(e.a);s.a0&&t=0)return!1;if(t.p=n.b,P_(n.e,t),i==(eEn(),e8D)||i==e8P){for(o=new fz(t.j);o.a1||-1==o)&&(a|=16),(i.Bb&eZ1)!=0&&(a|=64)),(n.Bb&eH3)!=0&&(a|=eJq),a|=eXt):M4(t,457)?a|=512:(r=t.Bj())&&(1&r.i)!=0&&(a|=256),(512&e.Bb)!=0&&(a|=128),a}function eCG(e,t){var n,r,i,a,o;for(i=0,e=null==e?eUg:(BJ(e),e);ie.d[s.p]&&(n+=qq(e.b,a),Vw(e.a,ell(a))):++o;for(n+=e.b.d*o;!gY(e.a);)eek(e.b,Pp(Yn(e.a),19).a)}return n}function eCV(e,t){var n;return e.f==tvm?(n=Ur(QZ((eSp(),tvc),t)),e.e?4==n&&t!=(ex$(),tvw)&&t!=(ex$(),tvg)&&t!=(ex$(),tvv)&&t!=(ex$(),tvy):2==n):!!(e.d&&(e.d.Hc(t)||e.d.Hc(Wk(QZ((eSp(),tvc),t)))||e.d.Hc(eR3((eSp(),tvc),e.b,t))))||!!(e.f&&eOq((eSp(),e.f),U$(QZ(tvc,t))))&&(n=Ur(QZ(tvc,t)),e.e?4==n:2==n)}function eCq(e,t,n,r){var i,a,o,s,u,c,l,f;return u=(o=Pp(eT8(n,(eBB(),th3)),8)).a,l=o.b+e,(i=eB4.Math.atan2(l,u))<0&&(i+=eV7),(i+=t)>eV7&&(i-=eV7),c=(s=Pp(eT8(r,th3),8)).a,f=s.b+e,(a=eB4.Math.atan2(f,c))<0&&(a+=eV7),(a+=t)>eV7&&(a-=eV7),Mc(),enj(1e-10),1e-10>=eB4.Math.abs(i-a)||i==a||isNaN(i)&&isNaN(a)?0:ia?1:Te(isNaN(i),isNaN(a))}function eCZ(e){var t,n,r,i,a,o,s;for(s=new p2,r=new fz(e.a.b);r.a=e.o)throw p7(new bj);s=t>>5,o=31&t,a=Fg(1,jE(Fg(o,1))),i?e.n[n][s]=WO(e.n[n][s],a):e.n[n][s]=WM(e.n[n][s],PN(a)),a=Fg(a,1),r?e.n[n][s]=WO(e.n[n][s],a):e.n[n][s]=WM(e.n[n][s],PN(a))}catch(u){if(u=eoa(u),M4(u,320))throw p7(new gE(ez_+e.o+"*"+e.p+ezE+t+eUd+n+ezS));throw p7(u)}}function eC1(e,t,n,r){var i,a,o;t&&(a=gP(LV(e_k(t,(eR6(),tcd))))+r,o=n+gP(LV(e_k(t,tcu)))/2,eo3(t,tcg,ell(jE(eap(eB4.Math.round(a))))),eo3(t,tcv,ell(jE(eap(eB4.Math.round(o))))),0==t.d.b||eC1(e,Pp(M2((i=epL(new hz(t).a.d,0),new hG(i))),86),n+gP(LV(e_k(t,tcu)))+e.a,r+gP(LV(e_k(t,tcc)))),null!=e_k(t,tcb)&&eC1(e,Pp(e_k(t,tcb),86),n,r))}function eC0(e,t){var n,r,i,a,o,s,u,c,l,f,d;for(i=2*gP(LV(e_k(u=Bq(t.a),(eBy(),toI)))),l=gP(LV(e_k(u,toY))),c=eB4.Math.max(i,l),a=Je(tyx,eH5,25,t.f-t.c+1,15,1),r=-c,n=0,s=t.b.Kc();s.Ob();)o=Pp(s.Pb(),10),r+=e.a[o.c.p]+c,a[n++]=r;for(r+=e.a[t.a.c.p]+c,a[n++]=r,d=new fz(t.e);d.a0&&(r=(e.n||(e.n=new FQ(e6S,e,1,7)),Pp(etj(e.n,0),137)).a)&&xM(xM((t.a+=' "',t),r),'"')),xM(yW(xM(yW(xM(yW(xM(yW((t.a+=" (",t),e.i),","),e.j)," | "),e.g),","),e.f),")"),t.a)}function eC5(e){var t,n,r;return(64&e.Db)!=0?eEp(e):(t=new O0(eZG),(n=e.k)?xM(xM((t.a+=' "',t),n),'"'):(e.n||(e.n=new FQ(e6S,e,1,7)),e.n.i>0&&(r=(e.n||(e.n=new FQ(e6S,e,1,7)),Pp(etj(e.n,0),137)).a)&&xM(xM((t.a+=' "',t),r),'"')),xM(yW(xM(yW(xM(yW(xM(yW((t.a+=" (",t),e.i),","),e.j)," | "),e.g),","),e.f),")"),t.a)}function eC6(e,t){var n,r,i,a,o,s,u;if(null==t||0==t.length)return null;if(!(i=Pp(zg(e.a,t),149))){for(r=(s=new fT(e.b).a.vc().Kc(),new fN(s));r.a.Ob();)if(o=(n=(a=Pp(r.a.Pb(),42),Pp(a.dd(),149))).c,u=t.length,IE(o.substr(o.length-u,u),t)&&(t.length==o.length||46==UI(o,o.length-t.length-1))){if(i)return null;i=n}i&&Ge(e.a,t,i)}return i}function eC9(e,t){var n,r,i,a;return(n=new eD,i=(r=Pp(qE(UQ(new R1(null,new Gq(e.f,16)),n),Qz(new q,new Z,new er,new ei,eow(vx(e2L,1),eU4,132,0,[(eum(),e2H),e2U]))),21)).gc(),a=(r=Pp(qE(UQ(new R1(null,new Gq(t.f,16)),n),Qz(new q,new Z,new er,new ei,eow(vx(e2L,1),eU4,132,0,[e2H,e2U]))),21)).gc(),ii.p?(ekv(a,tbj),a.d&&(s=a.o.b,t=a.a.b,a.a.b=s-t)):a.j==tbj&&i.p>e.p&&(ekv(a,tbw),a.d&&(s=a.o.b,t=a.a.b,a.a.b=-(s-t)));break}return i}function eIe(e,t,n,r){var i,a,o,s,u,c,l,f,d,h,p;if(a=n,n1)&&(r=new kl(i,n.b),P7(t.a,r)),enD(t.a,eow(vx(e50,1),eUP,8,0,[d,f]))}function eIy(e,t,n){var r,i,a,o,s,u;if(!t)return null;if(!(n<=-1))return ebY(Pp(ee2(e.Tg(),n),18));if(r=ee2(t.Tg(),-1-n),M4(r,99))return Pp(r,18);for(s=0,u=(o=Pp(t.ah(r),153)).gc();s0){for(i=u.length;i>0&&""==u[i-1];)--i;i=t.d.a.gc()){o=t.a.c,s=t.a.c+t.a.b,u=new kl(o+(s-o)/2,t.b),P7(Pp(t.d.a.ec().Kc().Pb(),17).a,u);continue}if((i=Pp(Bp(t.c,n),459)).b||i.c){eIv(e,n,t);continue}(a=e.d==(euy(),tsW)&&(i.d||i.e)&&exJ(e,t)&&1>=t.d.a.gc())?eFd(n,t):eL5(e,n,t)}t.k&&qX(t.d,new nn)}}function eIq(e,t,n,r,i,a){var o,s,u,c,l,f,d,h,p,b,m,g,v,y;for(s=(r+i)/2+(d=a),m=n*eB4.Math.cos(s),g=n*eB4.Math.sin(s),v=m-t.g/2,y=g-t.f/2,eno(t,v),ens(t,y),f=e.a.jg(t),(b=2*eB4.Math.acos(n/n+e.c))=40)&&eNo(e),eRi(e),eA3(e),n=elM(e),r=0;n&&r0&&P7(e.f,a)):(e.c[o]-=c+1,e.c[o]<=0&&e.a[o]>0&&P7(e.e,a))))}function eI1(e){var t,n,r,i,a,o,s,u,c;for(s=new yB(Pp(Y9(new eP),62)),c=eH1,n=new fz(e.d);n.a=0&&un?t:n;c<=f;++c)c==n?s=r++:(a=i[c],l=p.rl(a.ak()),c==t&&(u=c!=f||l?r:r-1),l&&++r);return d=Pp(elR(e,t,n),72),s!=u&&bz(e,new JU(e.e,7,o,ell(s),h.dd(),u)),d}return Pp(elR(e,t,n),72)}function eDe(e,t){var n,r,i,a,o,s,u;for(ewG(t,"Port order processing",1),u=Pp(e_k(e,(eBy(),tom)),421),r=new fz(e.b);r.a=0&&(!(s=egy(e,o))||(c<22?u.l|=1<>>1,o.m=l>>>1|(1&f)<<21,o.l=d>>>1|(1&l)<<21,--c;return n&&esh(u),a&&(r?(e0A=eoQ(e),i&&(e0A=eor(e0A,(Q2(),e0I)))):e0A=Mk(e.l,e.m,e.h)),u}function eDi(e,t){var n,r,i,a,o,s,u,c,l,f;for(c=e.e[t.c.p][t.p]+1,u=t.c.a.c.length+1,s=new fz(e.a);s.a0&&(GV(0,e.length),45==e.charCodeAt(0)||(GV(0,e.length),43==e.charCodeAt(0)))?1:0;rn)throw p7(new vo(eHJ+e+'"'));return s}function eDo(e){var t,n,r,i,a,o,s;for(o=new _n,a=new fz(e.a);a.a1)&&1==t&&Pp(e.a[e.b],10).k==(eEn(),e8I)?eD3(Pp(e.a[e.b],10),(egF(),tpV)):r&&(!n||(e.c-e.b&e.a.length-1)>1)&&1==t&&Pp(e.a[e.c-1&e.a.length-1],10).k==(eEn(),e8I)?eD3(Pp(e.a[e.c-1&e.a.length-1],10),(egF(),tpq)):(e.c-e.b&e.a.length-1)==2?(eD3(Pp(eso(e),10),(egF(),tpV)),eD3(Pp(eso(e),10),tpq)):eM8(e,i),qr(e)}function eDf(e,t,n){var r,i,a,o,s;for(a=0,i=new Ow((e.a||(e.a=new FQ(e6k,e,10,11)),e.a));i.e!=i.i.gc();)r=Pp(epH(i),33),o="",0==(r.n||(r.n=new FQ(e6S,r,1,7)),r.n).i||(o=Pp(etj((r.n||(r.n=new FQ(e6S,r,1,7)),r.n),0),137).a),eaW(s=new esH(a++,t,o),r),eo3(s,(eR6(),tcl),r),s.e.b=r.j+r.f/2,s.f.a=eB4.Math.max(r.g,1),s.e.a=r.i+r.g/2,s.f.b=eB4.Math.max(r.f,1),P7(t.b,s),eS9(n.f,r,s)}function eDd(e){var t,n,r,i,a;r=Pp(e_k(e,(eBU(),tnc)),33),a=Pp(eT8(r,(eBy(),ta4)),174).Hc((ed6(),tbq)),!e.e&&(i=Pp(e_k(e,tt3),21),t=new kl(e.f.a+e.d.b+e.d.c,e.f.b+e.d.d+e.d.a),i.Hc((eLR(),ttw))?(ebu(r,tol,(ewf(),tbo)),eYx(r,t.a,t.b,!1,!0)):gN(LK(eT8(r,ta5)))||eYx(r,t.a,t.b,!0,!0)),a?ebu(r,ta4,el9(tbq)):ebu(r,ta4,(n=Pp(yw(e6o),9),new I1(n,Pp(CY(n,n.length),9),0)))}function eDh(e,t,n){var r,i,a,o;if(t[0]>=e.length)return n.o=0,!0;switch(UI(e,t[0])){case 43:i=1;break;case 45:i=-1;break;default:return n.o=0,!0}if(++t[0],a=t[0],0==(o=exf(e,t))&&t[0]==a)return!1;if(t[0]=0&&s!=n&&(a=new FX(e,1,s,o,null),r?r.Ei(a):r=a),n>=0&&(a=new FX(e,1,n,s==n?o:null,t),r?r.Ei(a):r=a)),r}function eDv(e){var t,n,r;if(null==e.b){if(r=new vs,null!=e.i&&(xk(r,e.i),r.a+=":"),(256&e.f)!=0){for((256&e.f)!=0&&null!=e.a&&(Hb(e.i)||(r.a+="//"),xk(r,e.a)),null!=e.d&&(r.a+="/",xk(r,e.d)),(16&e.f)!=0&&(r.a+="/"),t=0,n=e.j.length;td)&&(f=(u=ePI(r,d,!1)).a,l+s+f<=t.b&&(JR(n,a-n.s),n.c=!0,JR(r,a-n.s),ebP(r,n.s,n.t+n.d+s),r.k=!0,eiV(n.q,r),h=!0,i&&(enN(t,r),r.j=t,e.c.length>o&&(eva((GK(o,e.c.length),Pp(e.c[o],200)),r),0==(GK(o,e.c.length),Pp(e.c[o],200)).a.c.length&&ZV(e,o)))),h)}function eDx(e,t){var n,r,i,a,o,s;if(ewG(t,"Partition midprocessing",1),i=new zu,_r(UJ(new R1(null,new Gq(e.a,16)),new nK),new dQ(i)),0!=i.d){for(r=(s=Pp(qE(GU((a=i.i,new R1(null,(a||(i.i=new OC(i,i.c))).Nc()))),JF(new U,new B,new en,eow(vx(e2L,1),eU4,132,0,[(eum(),e2U)]))),15)).Kc(),n=Pp(r.Pb(),19);r.Ob();)o=Pp(r.Pb(),19),eOR(Pp(Zq(i,n),21),Pp(Zq(i,o),21)),n=o;eEj(t)}}function eDT(e,t,n){var r,i,a,o,s,u,c,l;if(0==t.p){for(t.p=1,(o=n)||(i=new p0,a=(r=Pp(yw(e6a),9),new I1(r,Pp(CY(r,r.length),9),0)),o=new kD(i,a)),Pp(o.a,15).Fc(t),t.k==(eEn(),e8C)&&Pp(o.b,21).Fc(Pp(e_k(t,(eBU(),tt1)),61)),u=new fz(t.j);u.a0){if(i=Pp(e.Ab.g,1934),null==t){for(a=0;a1)for(r=new fz(i);r.an.s&&ss&&(s=i,f.c=Je(e1R,eUp,1,0,5,1)),i==s&&P_(f,new kD(n.c.i,n)));Hj(),Mv(f,e.c),jO(e.b,u.p,f)}}function eDR(e,t){var n,r,i,a,o,s,u,l,f;for(o=new fz(t.b);o.as&&(s=i,f.c=Je(e1R,eUp,1,0,5,1)),i==s&&P_(f,new kD(n.d.i,n)));Hj(),Mv(f,e.c),jO(e.f,u.p,f)}}function eDj(e){_Y(e,new ewB(vQ(vq(vJ(vX(new oc,eZn),"ELK Box"),"Algorithm for packing of unconnected boxes, i.e. graphs without edges."),new oA))),KE(e,eZn,ezW,td$),KE(e,eZn,eGi,15),KE(e,eZn,eGr,ell(0)),KE(e,eZn,eqC,epB(tdj)),KE(e,eZn,eGh,epB(tdY)),KE(e,eZn,eGd,epB(tdU)),KE(e,eZn,ezG,eZt),KE(e,eZn,eGu,epB(tdF)),KE(e,eZn,eGM,epB(tdB)),KE(e,eZn,eZr,epB(tdP)),KE(e,eZn,eVg,epB(tdR))}function eDF(e,t){var n,r,i,a,o,s,u,c,l;if(o=(i=e.i).o.a,a=i.o.b,o<=0&&a<=0)return eYu(),tbF;switch(c=e.n.a,l=e.n.b,s=e.o.a,n=e.o.b,t.g){case 2:case 1:if(c<0)return eYu(),tbY;if(c+s>o)return eYu(),tby;break;case 4:case 3:if(l<0)return eYu(),tbw;if(l+n>a)return eYu(),tbj}return(u=(c+s/2)/o)+(r=(l+n/2)/a)<=1&&u-r<=0?(eYu(),tbY):u+r>=1&&u-r>=0?(eYu(),tby):r<.5?(eYu(),tbw):(eYu(),tbj)}function eDY(e,t){var n,r,i,a,o,s,u,c,l,f,d,h,p,b;for(n=!1,l=gP(LV(e_k(t,(eBy(),toF)))),p=eHe*l,i=new fz(t.b);i.a(u=s.n.b-s.d.d+d.a)+p&&(b=f.g+d.g,d.a=(d.g*d.a+f.g*f.a)/b,d.g=b,f.f=d,n=!0)),a=s,f=d;return n}function eDB(e,t,n,r,i,a,o){var s,u,c,l,f,d;for(d=new TE,c=t.Kc();c.Ob();)for(s=Pp(c.Pb(),839),f=new fz(s.wf());f.a0?s.a?i>(c=s.b.rf().b)&&(e.v||1==s.c.d.c.length?(o=(i-c)/2,s.d.d=o,s.d.a=o):(r=((n=Pp(RJ(s.c.d,0),181).rf().b)-c)/2,s.d.d=eB4.Math.max(0,r),s.d.a=i-r-c)):s.d.a=e.t+i:FY(e.u)&&((a=ew1(s.b)).d<0&&(s.d.d=-a.d),a.d+a.a>s.b.rf().b&&(s.d.a=a.d+a.a-s.b.rf().b))}function eD$(e,t){var n;switch(eeg(e)){case 6:return xd(t);case 7:return xf(t);case 8:return xl(t);case 3:return Array.isArray(t)&&!((n=eeg(t))>=14&&n<=16);case 11:return null!=t&&typeof t===eUs;case 12:return null!=t&&(typeof t===eUr||typeof t==eUs);case 0:return ebs(t,e.__elementTypeId$);case 2:return YS(t)&&t.im!==O;case 1:return YS(t)&&t.im!==O||ebs(t,e.__elementTypeId$);default:return!0}}function eDz(e,t){var n,r,i,a;return(r=eB4.Math.min(eB4.Math.abs(e.c-(t.c+t.b)),eB4.Math.abs(e.c+e.b-t.c)),a=eB4.Math.min(eB4.Math.abs(e.d-(t.d+t.a)),eB4.Math.abs(e.d+e.a-t.d)),(n=eB4.Math.abs(e.c+e.b/2-(t.c+t.b/2)))>e.b/2+t.b/2||(i=eB4.Math.abs(e.d+e.a/2-(t.d+t.a/2)))>e.a/2+t.a/2)?1:0==n&&0==i?0:0==n?a/i+1:0==i?r/n+1:eB4.Math.min(r/n,a/i)+1}function eDG(e,t){var n,r,i,a,o,s;return(i=enR(e),s=enR(t),i!=s)?it.f?1:0:(r=e.e-t.e,(n=(e.d>0?e.d:eB4.Math.floor((e.a-1)*eH9)+1)-(t.d>0?t.d:eB4.Math.floor((t.a-1)*eH9)+1))>r+1)?i:n0&&(o=eeD(o,eN4(r))),ehI(a,o))}function eDW(e,t){var n,r,i,a,o,s,u;for(a=0,s=0,u=0,i=new fz(e.f.e);i.a0&&e.d!=(QJ(),e95)&&(s+=o*(r.d.a+e.a[t.b][r.b]*(t.d.a-r.d.a)/n)),n>0&&e.d!=(QJ(),e93)&&(u+=o*(r.d.b+e.a[t.b][r.b]*(t.d.b-r.d.b)/n)));switch(e.d.g){case 1:return new kl(s/a,t.d.b);case 2:return new kl(t.d.a,u/a);default:return new kl(s/a,u/a)}}function eDK(e,t){var n,r,i,a,o;if(euv(),o=Pp(e_k(e.i,(eBy(),tol)),98),0!=(a=e.j.g-t.j.g)||!(o==(ewf(),tba)||o==tbs||o==tbo))return 0;if(o==(ewf(),tba)&&(n=Pp(e_k(e,tof),19),r=Pp(e_k(t,tof),19),n&&r&&0!=(i=n.a-r.a)))return i;switch(e.j.g){case 1:return elN(e.n.a,t.n.a);case 2:return elN(e.n.b,t.n.b);case 3:return elN(t.n.a,e.n.a);case 4:return elN(t.n.b,e.n.b);default:throw p7(new gC(eGz))}}function eDV(e){var t,n,r,i,a,o;for(n=(e.a||(e.a=new O_(e6h,e,5)),e.a).i+2,o=new XM(n),P_(o,new kl(e.j,e.k)),_r(new R1(null,(e.a||(e.a=new O_(e6h,e,5)),new Gq(e.a,16))),new h6(o)),P_(o,new kl(e.b,e.c)),t=1;t0&&(eoY(u,!1,(ec3(),tpm)),eoY(u,!0,tpg)),ety(t.g,new E4(e,n)),Um(e.g,t,n)}function eDZ(){var e;for(e=2,eDZ=A,e0$=eow(vx(ty_,1),eHT,25,15,[-1,-1,30,19,15,13,11,11,10,9,9,8,8,8,8,7,7,7,7,7,7,7,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5]),e0z=Je(ty_,eHT,25,37,15,1),e0G=eow(vx(ty_,1),eHT,25,15,[-1,-1,63,40,32,28,25,23,21,20,19,19,18,18,17,17,16,16,16,15,15,15,15,14,14,14,14,14,14,13,13,13,13,13,13,13,13]),e0W=Je(tyS,eH2,25,37,14,1);e<=36;e++)e0z[e]=zy(eB4.Math.pow(e,e0$[e])),e0W[e]=eyt(eUY,e0z[e])}function eDX(e){var t;if(1!=(e.a||(e.a=new FQ(e6v,e,6,6)),e.a).i)throw p7(new gL(eZC+(e.a||(e.a=new FQ(e6v,e,6,6)),e.a).i));return t=new mE,eoo(Pp(etj((e.b||(e.b=new Ih(e6m,e,4,7)),e.b),0),82))&&er7(t,eBE(e,eoo(Pp(etj((e.b||(e.b=new Ih(e6m,e,4,7)),e.b),0),82)),!1)),eoo(Pp(etj((e.c||(e.c=new Ih(e6m,e,5,8)),e.c),0),82))&&er7(t,eBE(e,eoo(Pp(etj((e.c||(e.c=new Ih(e6m,e,5,8)),e.c),0),82)),!0)),t}function eDJ(e,t){var n,r,i,a,o;for(i=t.d?e.a.c==(zs(),tuw)?efu(t.b):efc(t.b):e.a.c==(zs(),tuy)?efu(t.b):efc(t.b),a=!1,r=new Fa(OH(i.a.Kc(),new c));eTk(r);)if(n=Pp(ZC(r),17),!(!(o=gN(e.a.f[e.a.g[t.b.p].p]))&&!q8(n)&&n.c.i.c==n.d.i.c||gN(e.a.n[e.a.g[t.b.p].p])||gN(e.a.n[e.a.g[t.b.p].p]))&&(a=!0,w0(e.b,e.a.g[emN(n,t.b).p])))return t.c=!0,t.a=n,t;return t.c=a,t.a=null,t}function eDQ(e,t,n,r,i){var a,o,s,u,c,l,f;for(Hj(),Mv(e,new oU),s=new KB(e,0),f=new p0,a=0;s.b2*a?(l=new etD(f),c=jl(o)/jc(o),u=eY9(l,t,new mp,n,r,i,c),C5(xB(l.e),u),f.c=Je(e1R,eUp,1,0,5,1),a=0,f.c[f.c.length]=l,f.c[f.c.length]=o,a=jl(l)*jc(l)+jl(o)*jc(o)):(f.c[f.c.length]=o,a+=jl(o)*jc(o));return f}function eD1(e,t,n){var r,i,a,o,s,u,c;if(0==(r=n.gc()))return!1;if(e.ej()){if(u=e.fj(),edu(e,t,n),o=1==r?e.Zi(3,null,n.Kc().Pb(),t,u):e.Zi(5,null,n,t,u),e.bj()){for(s=r<100?null:new yf(r),a=t+r,i=t;i0){for(o=0;o>16==-15&&e.Cb.nh()&&QU(new JB(e.Cb,9,13,n,e.c,ebv(QX(Pp(e.Cb,59)),e))):M4(e.Cb,88)&&e.Db>>16==-23&&e.Cb.nh()&&(M4(t=e.c,88)||(t=(eBK(),tgI)),M4(n,88)||(n=(eBK(),tgI)),QU(new JB(e.Cb,9,10,n,t,ebv(qt(Pp(e.Cb,26)),e)))))),e.c}function eD6(e,t){var n,r,i,a,o,s,u,c,l,f;for(ewG(t,"Hypernodes processing",1),i=new fz(e.b);i.an)return i}function eNe(e,t){var n,r,i;r=0!=eMU(e.d,1),(gN(LK(e_k(t.j,(eBU(),tt2))))||gN(LK(e_k(t.j,tnS))))&&xc(e_k(t.j,(eBy(),ti9)))!==xc((esn(),tsM))?r=gN(LK(e_k(t.j,tt2))):t.c.Tf(t.e,r),eAb(e,t,r,!0),gN(LK(e_k(t.j,tnS)))&&eo3(t.j,tnS,(OQ(),!1)),gN(LK(e_k(t.j,tt2)))&&(eo3(t.j,tt2,(OQ(),!1)),eo3(t.j,tnS,!0)),n=eSY(e,t);do{if(er0(e),0==n)return 0;r=!r,i=n,eAb(e,t,r,!1),n=eSY(e,t)}while(i>n)return i}function eNt(e,t,n){var r,i,a,o,s,u,c,l,f,d,h,p;if(t==n)return!0;if(t=eTE(e,t),n=eTE(e,n),!(r=eb1(t)))return(s=t.e)==(h=n.e);if((l=eb1(n))!=r)return!!l&&(u=r.Dj())==(p=l.Dj())&&null!=u;if(a=(o=(t.d||(t.d=new O_(tgr,t,1)),t.d)).i,d=(n.d||(n.d=new O_(tgr,n,1)),n.d),a==d.i){for(c=0;c0,s=efC(t,a),n?Ag(s.b,t):Ag(s.g,t),1==efv(s).c.length&&qQ(r,s,r.c.b,r.c),i=new kD(a,t),Vw(e.o,i),QA(e.e.a,a))}function eNs(e,t){var n,r,i,a,o,s,u;return r=eB4.Math.abs(FB(e.b).a-FB(t.b).a),s=eB4.Math.abs(FB(e.b).b-FB(t.b).b),i=0,u=0,n=1,o=1,r>e.b.b/2+t.b.b/2&&(n=1-(i=eB4.Math.min(eB4.Math.abs(e.b.c-(t.b.c+t.b.b)),eB4.Math.abs(e.b.c+e.b.b-t.b.c)))/r),s>e.b.a/2+t.b.a/2&&(o=1-(u=eB4.Math.min(eB4.Math.abs(e.b.d-(t.b.d+t.b.a)),eB4.Math.abs(e.b.d+e.b.a-t.b.d)))/s),(1-(a=eB4.Math.min(n,o)))*eB4.Math.sqrt(r*r+s*s)}function eNu(e){var t,n,r,i;for(eFX(e,e.e,e.f,(zo(),tuq),!0,e.c,e.i),eFX(e,e.e,e.f,tuq,!1,e.c,e.i),eFX(e,e.e,e.f,tuZ,!0,e.c,e.i),eFX(e,e.e,e.f,tuZ,!1,e.c,e.i),eNd(e,e.c,e.e,e.f,e.i),r=new KB(e.i,0);r.b=65;n--)tvJ[n]=n-65<<24>>24;for(r=122;r>=97;r--)tvJ[r]=r-97+26<<24>>24;for(i=57;i>=48;i--)tvJ[i]=i-48+52<<24>>24;for(a=0,tvJ[43]=62,tvJ[47]=63;a<=25;a++)tvQ[a]=65+a&eHd;for(o=26,u=0;o<=51;++o,u++)tvQ[o]=97+u&eHd;for(e=52,s=0;e<=61;++e,s++)tvQ[e]=48+s&eHd;tvQ[62]=43,tvQ[63]=47}function eNf(e,t){var n,r,i,a,o,s,u,c,l,f,d,h;if(e.dc())return new yb;for(c=0,f=0,i=e.Kc();i.Ob();)a=(r=Pp(i.Pb(),37)).f,c=eB4.Math.max(c,a.a),f+=a.a*a.b;for(c=eB4.Math.max(c,eB4.Math.sqrt(f)*gP(LV(e_k(Pp(e.Kc().Pb(),37),(eBy(),tiX))))),d=0,h=0,u=0,n=t,s=e.Kc();s.Ob();)d+(l=(o=Pp(s.Pb(),37)).f).a>c&&(d=0,h+=u+t,u=0),eIn(o,d,h),n=eB4.Math.max(n,d+l.a),u=eB4.Math.max(u,l.b),d+=l.a+t;return new kl(n+t,h+u+t)}function eNd(e,t,n,r,i){var a,o,s,u,c,l,f;for(o=new fz(t);o.aa)return eYu(),tby;break;case 4:case 3:if(u<0)return eYu(),tbw;if(u+e.f>i)return eYu(),tbj}return(o=(s+e.g/2)/a)+(n=(u+e.f/2)/i)<=1&&o-n<=0?(eYu(),tbY):o+n>=1&&o-n>=0?(eYu(),tby):n<.5?(eYu(),tbw):(eYu(),tbj)}function eNp(e,t,n,r,i){var a,o;if(a=eft(WM(t[0],eH8),WM(r[0],eH8)),e[0]=jE(a),a=Fv(a,32),n>=i){for(o=1;o0&&(i.b[o++]=0,i.b[o++]=a.b[0]-1),t=1;t0&&(l0(u,u.d-i.d),i.c==(Xa(),tuU)&&lQ(u,u.a-i.d),u.d<=0&&u.i>0&&qQ(t,u,t.c.b,t.c));for(a=new fz(e.f);a.a0&&(l2(s,s.i-i.d),i.c==(Xa(),tuU)&&l1(s,s.b-i.d),s.i<=0&&s.d>0&&qQ(n,s,n.c.b,n.c))}function eNv(e,t,n){var r,i,a,o,s,u,c,l;for(ewG(n,"Processor compute fanout",1),Yy(e.b),Yy(e.a),s=null,a=epL(t.b,0);!s&&a.b!=a.d.c;)gN(LK(e_k(c=Pp(Vv(a),86),(eR6(),tcm))))&&(s=c);for(qQ(u=new _n,s,u.c.b,u.c),eYc(e,u),l=epL(t.b,0);l.b!=l.d.c;)o=Lq(e_k(c=Pp(Vv(l),86),(eR6(),tca))),eo3(c,tci,ell(i=null!=zg(e.b,o)?Pp(zg(e.b,o),19).a:0)),eo3(c,tcn,ell(r=1+(null!=zg(e.a,o)?Pp(zg(e.a,o),19).a:0)));eEj(n)}function eNy(e,t,n,r,i){var a,o,s,u,c,l,f,d,h,p;for(u=0,d=eyG(e,n);u0),r.a.Xb(r.c=--r.b),f>d+u&&BH(r);for(o=new fz(h);o.a0),r.a.Xb(r.c=--r.b)}}function eNw(){var e,t,n,r,i,a;if(eBG(),tyg)return tyg;for(e=(++tyv,new WZ(4)),ePR(e,eYB(e1_,!0)),ej0(e,eYB("M",!0)),ej0(e,eYB("C",!0)),a=(++tyv,new WZ(4)),r=0;r<11;r++)eLw(a,r,r);return t=(++tyv,new WZ(4)),ePR(t,eYB("M",!0)),eLw(t,4448,4607),eLw(t,65438,65439),i=(++tyv,new Mr(2)),eRv(i,e),eRv(i,tye),(n=(++tyv,new Mr(2))).$l(jS(a,eYB("L",!0))),n.$l(t),n=(++tyv,new qa(3,n)),tyg=n=(++tyv,new YD(i,n))}function eN_(e){var t,n;if(t=Lq(eT8(e,(eBB(),tdQ))),!eae(t,e)&&!X2(e,th6)&&(0!=(e.a||(e.a=new FQ(e6k,e,10,11)),e.a).i||gN(LK(eT8(e,thh))))){if(null==t||0==e_H(t).length){if(!eae(eG1,e))throw eFh(e,n=xM(xM(new O0("Unable to load default layout algorithm "),eG1)," for unconfigured node ")),p7(new gq(n.a))}else throw eFh(e,n=xM(xM(new O0("Layout algorithm '"),t),"' not found for ")),p7(new gq(n.a))}}function eNE(e){var t,n,r,i,a,o,s,u,c,l,f,d,h;if(n=e.i,t=e.n,0==e.b)for(h=n.c+t.b,d=n.b-t.b-t.c,o=e.a,u=0,l=o.length;u0&&(f-=r[0]+e.c,r[0]+=e.c),r[2]>0&&(f-=r[2]+e.c),r[1]=eB4.Math.max(r[1],f),jQ(e.a[1],n.c+t.b+r[0]-(r[1]-f)/2,r[1]);for(a=e.a,s=0,c=a.length;s0?(e.n.c.length-1)*e.i:0,r=new fz(e.n);r.a1)for(r=epL(i,0);r.b!=r.d.c;)for(n=Pp(Vv(r),231),a=0,u=new fz(n.e);u.a0&&(t[0]+=e.c,f-=t[0]),t[2]>0&&(f-=t[2]+e.c),t[1]=eB4.Math.max(t[1],f),j1(e.a[1],r.d+n.d+t[0]-(t[1]-f)/2,t[1]);else for(p=r.d+n.d,h=r.a-n.d-n.a,o=e.a,u=0,l=o.length;u=0&&a!=n)throw p7(new gL(eXB));for(u=0,i=0;u=efT(e.b.c,i.b.c+i.b.b)&&0>=efT(i.b.c,e.b.c+e.b.b)&&0>=efT(e.b.d,i.b.d+i.b.a)&&0>=efT(i.b.d,e.b.d+e.b.a)){if(0==efT(i.b.c,e.b.c+e.b.b)&&r.a<0||0==efT(i.b.c+i.b.b,e.b.c)&&r.a>0||0==efT(i.b.d,e.b.d+e.b.a)&&r.b<0||0==efT(i.b.d+i.b.a,e.b.d)&&r.b>0){s=0;break}}else s=eB4.Math.min(s,ekg(e,i,r));s=eB4.Math.min(s,eNC(e,a,s,r))}return s}function eNI(e,t){var n,r,i,a,o,s,u;if(e.b<2)throw p7(new gL("The vector chain must contain at least a source and a target point."));for(Tj(t,(i=(A6(0!=e.b),Pp(e.a.a.c,8))).a,i.b),u=new AF((t.a||(t.a=new O_(e6h,t,5)),t.a)),o=epL(e,1);o.agP(Ot(o.g,o.d[0]).a)?(A6(u.b>0),u.a.Xb(u.c=--u.b),CD(u,o),i=!0):s.e&&s.e.gc()>0&&(a=(s.e||(s.e=new p0),s.e).Mc(t),c=(s.e||(s.e=new p0),s.e).Mc(n),(a||c)&&((s.e||(s.e=new p0),s.e).Fc(o),++o.c));i||(r.c[r.c.length]=o)}function eNH(e){var t,n,r;if(TM(Pp(e_k(e,(eBy(),tol)),98)))for(n=new fz(e.j);n.a>>0).toString(16),n.length-2,n.length):e>=eH3?"\\v"+Az(n="0"+(t=e>>>0).toString(16),n.length-6,n.length):""+String.fromCharCode(e&eHd)}return r}function eNz(e,t){var n,r,i,a,o,s,u,c,l,f;if(o=e.e,0==(u=t.e))return e;if(0==o)return 0==t.e?t:new F7(-t.e,t.d,t.a);if((a=e.d)+(s=t.d)==2)return n=WM(e.a[0],eH8),r=WM(t.a[0],eH8),o<0&&(n=QC(n)),u<0&&(r=QC(r)),ep_(efe(n,r));if(-1==(i=a!=s?a>s?1:-1:es8(e.a,t.a,a)))f=-u,l=o==u?Z1(t.a,s,e.a,a):X7(t.a,s,e.a,a);else if(f=o,o==u){if(0==i)return eLQ(),e08;l=Z1(e.a,a,t.a,s)}else l=X7(e.a,a,t.a,s);return c=new F7(f,l.length,l),Ku(c),c}function eNG(e){var t,n,r,i,a,o;for(this.e=new p0,this.a=new p0,n=e.b-1;n<3;n++)Ls(e,0,Pp(ep3(e,0),8));if(e.b<4)throw p7(new gL("At (least dimension + 1) control points are necessary!"));for(this.b=3,this.d=!0,this.c=!1,eMO(this,e.b+this.b-1),o=new p0,a=new fz(this.e),t=0;t=t.o&&n.f<=t.f||.5*t.a<=n.f&&1.5*t.a>=n.f){if((o=Pp(RJ(t.n,t.n.c.length-1),211)).e+o.d+n.g+i<=r&&((a=Pp(RJ(t.n,t.n.c.length-1),211)).f-e.f+n.f<=e.b||1==e.a.c.length))return efg(t,n),!0;if(t.s+n.g<=r&&(t.t+t.d+n.f+i<=e.b||1==e.a.c.length))return P_(t.b,n),s=Pp(RJ(t.n,t.n.c.length-1),211),P_(t.n,new zO(t.s,s.f+s.a+t.i,t.i)),eml(Pp(RJ(t.n,t.n.c.length-1),211),n),eNk(t,n),!0}return!1}function eNV(e,t,n){var r,i,a,o;return e.ej()?(i=null,a=e.fj(),r=e.Zi(1,o=ees(e,t,n),n,t,a),e.bj()&&!(e.ni()&&null!=o?ecX(o,n):xc(o)===xc(n))?(null!=o&&(i=e.dj(o,i)),i=e.cj(n,i),e.ij()&&(i=e.lj(o,n,i)),i?(i.Ei(r),i.Fi()):e.$i(r)):(e.ij()&&(i=e.lj(o,n,i)),i?(i.Ei(r),i.Fi()):e.$i(r)),o):(o=ees(e,t,n),e.bj()&&!(e.ni()&&null!=o?ecX(o,n):xc(o)===xc(n))&&(i=null,null!=o&&(i=e.dj(o,null)),(i=e.cj(n,i))&&i.Fi()),o)}function eNq(e,t){var n,r,i,a,o,s,u,c;t%=24,e.q.getHours()!=t&&((r=new eB4.Date(e.q.getTime())).setDate(r.getDate()+1),(s=e.q.getTimezoneOffset()-r.getTimezoneOffset())>0&&(u=s/60|0,c=s%60,i=e.q.getDate(),(n=e.q.getHours())+u>=24&&++i,a=new eB4.Date(e.q.getFullYear(),e.q.getMonth(),i,t+u,e.q.getMinutes()+c,e.q.getSeconds(),e.q.getMilliseconds()),e.q.setTime(a.getTime()))),o=e.q.getTime(),e.q.setTime(o+36e5),e.q.getHours()!=t&&e.q.setTime(o)}function eNZ(e,t){var n,r,i,a,o;if(ewG(t,"Path-Like Graph Wrapping",1),0==e.b.c.length||(n=(o=(null==(i=new eTN(e)).i&&(i.i=eis(i,new iP)),gP(i.i)*i.f))/(null==i.i&&(i.i=eis(i,new iP)),gP(i.i)),i.b>n)){eEj(t);return}switch(Pp(e_k(e,(eBy(),toq)),337).g){case 2:a=new iF;break;case 0:a=new iO;break;default:a=new iY}if(r=a.Vf(e,i),!a.Wf())switch(Pp(e_k(e,to0),338).g){case 2:r=ekE(i,r);break;case 1:r=ewQ(i,r)}eRw(e,i,r),eEj(t)}function eNX(e,t){var n,r,i,a;if(GW(e.d,e.e),e.c.a.$b(),0!=gP(LV(e_k(t.j,(eBy(),ti3))))||0!=gP(LV(e_k(t.j,ti3))))for(n=ezq,xc(e_k(t.j,ti9))!==xc((esn(),tsM))&&eo3(t.j,(eBU(),tt2),(OQ(),!0)),a=Pp(e_k(t.j,to$),19).a,i=0;i(i=(GK(s+1,t.c.length),Pp(t.c[s+1],19)).a-r)&&++c,P_(o,(GK(s+c,t.c.length),Pp(t.c[s+c],19))),u+=(GK(s+c,t.c.length),Pp(t.c[s+c],19)).a-r,++n;n1&&(u>jl(s)*jc(s)/2||0==o.b)&&(f=new etD(d),l=jl(s)/jc(s),c=eY9(f,t,new mp,n,r,i,l),C5(xB(f.e),c),s=f,h.c[h.c.length]=f,u=0,d.c=Je(e1R,eUp,1,0,5,1)));return eoc(h,d),h}function eN2(e,t,n,r){var i,a,o,s,u,c,l,f,d,h,p,b;if(n.mh(t)&&(l=(h=t)?Pp(r,49).xh(h):null)){if(b=n.bh(t,e.a),(p=t.t)>1||-1==p){if(f=Pp(b,69),d=Pp(l,69),f.dc())d.$b();else for(o=!!ebY(t),a=0,s=e.a?f.Kc():f.Zh();s.Ob();)c=Pp(s.Pb(),56),(i=Pp(eef(e,c),56))?(o?-1==(u=d.Xc(i))?d.Xh(a,i):a!=u&&d.ji(a,i):d.Xh(a,i),++a):e.b&&!o&&(d.Xh(a,c),++a)}else null==b?l.Wb(null):null==(i=eef(e,b))?e.b&&!ebY(t)&&l.Wb(b):l.Wb(i)}}function eN3(e,t){var n,r,i,a,o,s,u,l;for(n=new nf,i=new Fa(OH(efu(t).a.Kc(),new c));eTk(i);)if(r=Pp(ZC(i),17),!q8(r)&&ewg(s=r.c.i,e8q)){if(-1==(l=eCu(e,s,e8q,e8V)))continue;n.b=eB4.Math.max(n.b,l),n.a||(n.a=new p0),P_(n.a,s)}for(o=new Fa(OH(efc(t).a.Kc(),new c));eTk(o);)if(a=Pp(ZC(o),17),!q8(a)&&ewg(u=a.d.i,e8V)){if(-1==(l=eCu(e,u,e8V,e8q)))continue;n.d=eB4.Math.max(n.d,l),n.c||(n.c=new p0),P_(n.c,u)}return n}function eN4(e){var t,n,r,i;if(exX(),t=zy(e),e1e6)throw p7(new g_("power of ten too big"));if(e<=eUu)return ZA(exT(e2t[1],t),t);for(i=r=exT(e2t[1],eUu),n=eap(e-eUu),t=zy(e%eUu);ecd(n,eUu)>0;)i=eeD(i,r),n=efe(n,eUu);for(i=eeD(i,exT(e2t[1],t)),i=ZA(i,eUu),n=eap(e-eUu);ecd(n,eUu)>0;)i=ZA(i,eUu),n=efe(n,eUu);return ZA(i,t)}function eN5(e,t){var n,r,i,a,o,s,u,c,l;for(ewG(t,"Hierarchical port dummy size processing",1),u=new p0,l=new p0,n=2*(r=gP(LV(e_k(e,(eBy(),toA))))),a=new fz(e.b);a.ac&&r>c)l=s,c=gP(t.p[s.p])+gP(t.d[s.p])+s.o.b+s.d.a;else{i=!1,n.n&&P3(n,"bk node placement breaks on "+s+" which should have been after "+l);break}if(!i)break}return n.n&&P3(n,t+" is feasible: "+i),i}function ePr(e,t,n,r){var i,a,o,s,u,c,l;for(s=-1,l=new fz(e);l.a=m&&e.e[u.p]>p*e.b||y>=n*m)&&(d.c[d.c.length]=s,s=new p0,er7(o,a),a.a.$b(),c-=l,h=eB4.Math.max(h,c*e.b+b),c+=y,v=y,y=0,l=0,b=0);return new kD(h,d)}function ePs(e){var t,n,r,i,a,o,s,u,c,l,f,d,h;for(n=(c=new fT(e.c.b).a.vc().Kc(),new fN(c));n.a.Ob();)null==(i=(t=(s=Pp(n.a.Pb(),42),Pp(s.dd(),149))).a)&&(i=""),(r=L8(e.c,i))||0!=i.length||(r=ecj(e)),r&&!eds(r.c,t,!1)&&P7(r.c,t);for(o=epL(e.a,0);o.b!=o.d.c;)a=Pp(Vv(o),478),l=Zc(e.c,a.a),h=Zc(e.c,a.b),l&&h&&P7(l.c,new kD(h,a.c));for(HC(e.a),d=epL(e.b,0);d.b!=d.d.c;)f=Pp(Vv(d),478),t=L9(e.c,f.a),u=Zc(e.c,f.b),t&&u&&_U(t,u,f.c);HC(e.b)}function ePu(e,t,n){var r,i,a,o,s,u,c,l,f,d,h;a=new lD(e),o=new eg6,i=(Ze(o.g),Ze(o.j),Yy(o.b),Ze(o.d),Ze(o.i),Yy(o.k),Yy(o.c),Yy(o.e),h=ekH(o,a,null),eMA(o,a),h),t&&(s=ePA(c=new lD(t)),eEh(i,eow(vx(e5q,1),eUp,527,0,[s]))),d=!1,f=!1,n&&(eXW in(c=new lD(n)).a&&(d=zR(c,eXW).ge().a),eXK in c.a&&(f=zR(c,eXK).ge().a)),l=yr(eny(new mV,d),f),eER(new or,i,l),eXW in a.a&&ee3(a,eXW,null),(d||f)&&(eNj(l,u=new gu,d,f),ee3(a,eXW,u)),r=new pp(o),esA(new TY(i),r)}function ePc(e,t,n){var r,i,a,o,s,u,c,l,f;for(u=0,o=new evI,c=eow(vx(ty_,1),eHT,25,15,[0]),i=-1,a=0,r=0;u0){if(i<0&&l.a&&(i=u,a=c[0],r=0),i>=0){if(s=l.b,u==i&&0==(s-=r++))return 0;if(!eYw(t,c,l,s,o)){u=i-1,c[0]=a;continue}}else if(i=-1,!eYw(t,c,l,0,o))return 0}else{if(i=-1,32==UI(l.c,0)){if(f=c[0],eey(t,c),c[0]>f)continue}else if($D(t,l.c,c[0])){c[0]+=l.c.length;continue}return 0}return eYn(o,n)?c[0]:0}function ePl(e){var t,n,r,i,a,o,s,u;if(!e.f){if(u=new su,s=new su,null==(o=(t=tgz).a.zc(e,t))){for(a=new Ow($E(e));a.e!=a.i.gc();)i=Pp(epH(a),26),Y4(u,ePl(i));t.a.Bc(e),t.a.gc()}for(r=(e.s||(e.s=new FQ(tm6,e,21,17)),new Ow(e.s));r.e!=r.i.gc();)n=Pp(epH(r),170),M4(n,99)&&JL(s,Pp(n,18));euI(s),e.r=new PX(e,(Pp(etj(H9((BM(),tgv).o),6),18),s.i),s.g),Y4(u,e.r),euI(u),e.f=new xQ((Pp(etj(H9(tgv.o),5),18),u.i),u.g),Zd(e).b&=-3}return e.f}function ePf(e){var t,n,r,i,a,o,s,u,c,l,f,d,h,p;for(c=0,r=Je(ty_,eHT,25,o=e.o,15,1),i=Je(ty_,eHT,25,o,15,1),t=Je(ty_,eHT,25,n=e.p,15,1),a=Je(ty_,eHT,25,n,15,1);c=0&&!emy(e,l,f);)--f;i[l]=f}for(h=0;h=0&&!emy(e,s,p);)--s;a[p]=s}for(u=0;ut[d]&&dr[u]&&eCQ(e,u,d,!1,!0)}function ePd(e){var t,n,r,i,a,o,s,u;n=gN(LK(e_k(e,(eCk(),e9b)))),a=e.a.c.d,s=e.a.d.d,n?(o=Ol(C6(new kl(s.a,s.b),a),.5),u=Ol(MB(e.e),.5),t=C6(C5(new kl(a.a,a.b),o),u),Lf(e.d,t)):(i=gP(LV(e_k(e.a,e9I))),r=e.d,a.a>=s.a?a.b>=s.b?(r.a=s.a+(a.a-s.a)/2+i,r.b=s.b+(a.b-s.b)/2-i-e.e.b):(r.a=s.a+(a.a-s.a)/2+i,r.b=a.b+(s.b-a.b)/2+i):a.b>=s.b?(r.a=a.a+(s.a-a.a)/2+i,r.b=s.b+(a.b-s.b)/2+i):(r.a=a.a+(s.a-a.a)/2+i,r.b=a.b+(s.b-a.b)/2-i-e.e.b))}function ePh(e,t){var n,r,i,a,o,s,u;if(null==e)return null;if(0==(a=e.length))return"";for(u=Je(tyw,eHl,25,a,15,1),Ji(0,a,e.length),Ji(0,a,u.length),YF(e,0,a,u,0),n=null,s=t,i=0,o=0;i0?Az(n.a,0,a-1):"":e.substr(0,a-1):n?n.a:e}function ePp(e){_Y(e,new ewB(vQ(vq(vJ(vX(new oc,ezH),"ELK DisCo"),"Layouter for arranging unconnected subgraphs. The subgraphs themselves are, by default, not laid out."),new e4))),KE(e,ezH,ez$,epB(e67)),KE(e,ezH,ezz,epB(e63)),KE(e,ezH,ezG,epB(e6J)),KE(e,ezH,ezW,epB(e64)),KE(e,ezH,e$Q,epB(e69)),KE(e,ezH,e$1,epB(e66)),KE(e,ezH,e$J,epB(e68)),KE(e,ezH,e$0,epB(e65)),KE(e,ezH,ezj,epB(e61)),KE(e,ezH,ezF,epB(e6Q)),KE(e,ezH,ezY,epB(e60)),KE(e,ezH,ezB,epB(e62))}function ePb(e,t,n,r){var i,a,o,s,u,c,l,f,d;if(a=new eb$(e),lK(a,(eEn(),e8P)),eo3(a,(eBy(),tol),(ewf(),tbo)),i=0,t){for(o=new eES,eo3(o,(eBU(),tnc),t),eo3(a,tnc,t.i),ekv(o,(eYu(),tbY)),Gc(o,a),d=Kp(t.e),l=0,f=(c=d).length;lenR(e)?1:0,n=e.e,i=(r.length,eB4.Math.abs(zy(e.e)),new vl),1==t&&(i.a+="-"),e.e>0){if((n-=r.length-t)>=0){for(i.a+="0.";n>e0Z.length;n-=e0Z.length)RX(i,e0Z);CA(i,e0Z,zy(n)),xM(i,r.substr(t))}else n=t-n,xM(i,Az(r,t,zy(n))),i.a+=".",xM(i,xy(r,zy(n)))}else{for(xM(i,r.substr(t));n<-e0Z.length;n+=e0Z.length)RX(i,e0Z);CA(i,e0Z,zy(-n))}return i.a}function ePv(e,t,n,r){var i,a,o,s,u,c,l,f,d;return(c=(u=C6(new kl(n.a,n.b),e)).a*t.b-u.b*t.a,l=t.a*r.b-t.b*r.a,f=(u.a*r.b-u.b*r.a)/l,d=c/l,0!=l)?f>=0&&f<=1&&d>=0&&d<=1?C5(new kl(e.a,e.b),Ol(new kl(t.a,t.b),f)):null:0!=c?null:(a=Jh(e,i=C5(new kl(n.a,n.b),Ol(new kl(r.a,r.b),.5))),o=Jh(C5(new kl(e.a,e.b),t),i),s=.5*eB4.Math.sqrt(r.a*r.a+r.b*r.b),at.a&&(r.Hc((eyY(),tdW))?e.c.a+=(n.a-t.a)/2:r.Hc(tdV)&&(e.c.a+=n.a-t.a)),n.b>t.b&&(r.Hc((eyY(),tdZ))?e.c.b+=(n.b-t.b)/2:r.Hc(tdq)&&(e.c.b+=n.b-t.b)),Pp(e_k(e,(eBU(),tt3)),21).Hc((eLR(),ttw))&&(n.a>t.a||n.b>t.b))for(s=new fz(e.a);s.at.a&&(r.Hc((eyY(),tdW))?e.c.a+=(n.a-t.a)/2:r.Hc(tdV)&&(e.c.a+=n.a-t.a)),n.b>t.b&&(r.Hc((eyY(),tdZ))?e.c.b+=(n.b-t.b)/2:r.Hc(tdq)&&(e.c.b+=n.b-t.b)),Pp(e_k(e,(eBU(),tt3)),21).Hc((eLR(),ttw))&&(n.a>t.a||n.b>t.b))for(o=new fz(e.a);o.at&&(i=0,a+=l.b+n,f.c[f.c.length]=l,l=new W6(a,n),r=new es$(0,l.f,l,n),enN(l,r),i=0),0==r.b.c.length||u.f>=r.o&&u.f<=r.f||.5*r.a<=u.f&&1.5*r.a>=u.f?efg(r,u):(o=new es$(r.s+r.r+n,l.f,l,n),enN(l,o),efg(o,u)),i=u.i+u.g;return f.c[f.c.length]=l,f}function ePk(e){var t,n,r,i,a,o,s,u;if(!e.a){if(e.o=null,u=new pj(e),t=new sc,null==(s=(n=tgz).a.zc(e,n))){for(o=new Ow($E(e));o.e!=o.i.gc();)a=Pp(epH(o),26),Y4(u,ePk(a));n.a.Bc(e),n.a.gc()}for(i=(e.s||(e.s=new FQ(tm6,e,21,17)),new Ow(e.s));i.e!=i.i.gc();)r=Pp(epH(i),170),M4(r,322)&&JL(t,Pp(r,34));euI(t),e.k=new PZ(e,(Pp(etj(H9((BM(),tgv).o),7),18),t.i),t.g),Y4(u,e.k),euI(u),e.a=new xQ((Pp(etj(H9(tgv.o),4),18),u.i),u.g),Zd(e).b&=-2}return e.a}function ePx(e,t,n,r,i,a,o){var s,u,c,l,f,d;return f=!1,u=eO4(n.q,t.f+t.b-n.q.f),!((d=i-(n.q.e+u-o))=(GK(a,e.c.length),Pp(e.c[a],200)).e,(!((l=(s=ePI(r,d,!1)).a)>t.b)||!!c)&&((c||l<=t.b)&&(c&&l>t.b?(n.d=l,JR(n,eEP(n,l))):(eyC(n.q,u),n.c=!0),JR(r,i-(n.s+n.r)),ebP(r,n.q.e+n.q.d,t.f),enN(t,r),e.c.length>a&&(eva((GK(a,e.c.length),Pp(e.c[a],200)),r),0==(GK(a,e.c.length),Pp(e.c[a],200)).a.c.length&&ZV(e,a)),f=!0),f))}function ePT(e,t,n,r){var i,a,o,s,u,c,l;if(l=eAY(e.e.Tg(),t),i=0,a=Pp(e.g,119),u=null,_4(),Pp(t,66).Oj()){for(s=0;se.o.a&&(l=(u-e.o.a)/2,s.b=eB4.Math.max(s.b,l),s.c=eB4.Math.max(s.c,l))}}function ePA(e){var t,n,r,i,a,o,s,u;for(a=new W8,Tp(a,(eoM(),tdr)),r=(i=erG(e,Je(e17,eUP,2,0,6,1)),new fE(new g$(new wY(e,i).b)));r.b0?e.i:0)>t&&u>0&&(a=0,o+=u+e.i,i=eB4.Math.max(i,d),r+=u+e.i,u=0,d=0,n&&(++f,P_(e.n,new zO(e.s,o,e.i))),s=0),d+=c.g+(s>0?e.i:0),u=eB4.Math.max(u,c.f),n&&eml(Pp(RJ(e.n,f),211),c),a+=c.g+(s>0?e.i:0),++s;return i=eB4.Math.max(i,d),r+=u,n&&(e.r=i,e.d=r,egf(e.j)),new Hr(e.s,e.t,i,r)}function ePD(e,t,n,r,i){var a,o,s,u,c,l,f,d,h;if(wK(),Yh(e,"src"),Yh(n,"dest"),d=esF(e),u=esF(n),Pz((4&d.i)!=0,"srcType is not an array"),Pz((4&u.i)!=0,"destType is not an array"),f=d.c,o=u.c,Pz((1&f.i)!=0?f==o:(1&o.i)==0,"Array types don't match"),h=e.length,c=n.length,t<0||r<0||i<0||t+i>h||r+i>c)throw p7(new bE);if((1&f.i)==0&&d!=u){if(l=etG(e),a=etG(n),xc(e)===xc(n)&&tr;)Bc(a,s,l[--t]);else for(s=r+i;r0&&ekp(e,t,n,r,i,!0)}function ePN(){ePN=A,e07=eow(vx(ty_,1),eHT,25,15,[eHt,1162261467,eU2,1220703125,362797056,1977326743,eU2,387420489,eHK,214358881,429981696,815730721,1475789056,170859375,268435456,410338673,612220032,893871739,128e7,1801088541,113379904,148035889,191102976,244140625,308915776,387420489,481890304,594823321,729e6,887503681,eU2,1291467969,1544804416,1838265625,60466176]),e2e=eow(vx(ty_,1),eHT,25,15,[-1,-1,31,19,15,13,11,11,10,9,9,8,8,8,8,7,7,7,7,7,7,7,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5])}function ePP(e){var t,n,r,i,a,o,s,u;for(i=new fz(e.b);i.a=e.b.length?(a[i++]=o.b[r++],a[i++]=o.b[r++]):r>=o.b.length?(a[i++]=e.b[n++],a[i++]=e.b[n++]):o.b[r]0?e.i:0)),++t;for(efX(e.n,u),e.d=n,e.r=r,e.g=0,e.f=0,e.e=0,e.o=eHQ,e.p=eHQ,a=new fz(e.b);a.a0&&(i=(e.n||(e.n=new FQ(e6S,e,1,7)),Pp(etj(e.n,0),137)).a)&&xM(xM((t.a+=' "',t),i),'"')),(n=(e.b||(e.b=new Ih(e6m,e,4,7)),!(e.b.i<=1&&(e.c||(e.c=new Ih(e6m,e,5,8)),e.c.i<=1))))?(t.a+=" [",t):(t.a+=" ",t),xM(t,OU(new ve,new Ow(e.b))),n&&(t.a+="]"),t.a+=eGH,n&&(t.a+="["),xM(t,OU(new ve,new Ow(e.c))),n&&(t.a+="]"),t.a)}function ePB(e,t){var n,r,i,a,o,s,u;if(e.a){if(s=e.a.ne(),u=null,null!=s?t.a+=""+s:null!=(o=e.a.Dj())&&(-1!=(a=x7(o,e_n(91)))?(u=o.substr(a),t.a+=""+Az(null==o?eUg:(BJ(o),o),0,a)):t.a+=""+o),e.d&&0!=e.d.i){for(i=!0,t.a+="<",r=new Ow(e.d);r.e!=r.i.gc();)n=Pp(epH(r),87),i?i=!1:(t.a+=eUd,t),ePB(n,t);t.a+=">"}null!=u&&(t.a+=""+u)}else e.e?null!=(s=e.e.zb)&&(t.a+=""+s):(t.a+="?",e.b?(t.a+=" super ",ePB(e.b,t)):e.f&&(t.a+=" extends ",ePB(e.f,t)))}function ePU(e,t){var n,r,i,a,o,s,u,c,l,f,d,h,p,b,m,g,v,y,w,_,E,S,k,x,T;for(_=e.c,E=t.c,n=QI(_.a,e,0),r=QI(E.a,t,0),y=Pp(edE(e,(enY(),tsD)).Kc().Pb(),11),x=Pp(edE(e,tsN).Kc().Pb(),11),w=Pp(edE(t,tsD).Kc().Pb(),11),T=Pp(edE(t,tsN).Kc().Pb(),11),g=Kp(y.e),S=Kp(x.g),v=Kp(w.e),k=Kp(T.g),egU(e,r,E),l=0,p=(o=v).length;ll?new GT((Xa(),tuH),n,t,c-l):c>0&&l>0&&(new GT((Xa(),tuH),t,n,0),new GT(tuH,n,t,0))),o)}function ePz(e,t){var n,r,i,a,o,s;for(o=new esz(new fS(e.f.b).a);o.b;){if(a=etz(o),i=Pp(a.cd(),594),1==t){if(i.gf()!=(ec3(),tpy)&&i.gf()!=tpb)continue}else if(i.gf()!=(ec3(),tpm)&&i.gf()!=tpg)continue;switch(r=Pp(Pp(a.dd(),46).b,81),n=(s=Pp(Pp(a.dd(),46).a,189)).c,i.gf().g){case 2:r.g.c=e.e.a,r.g.b=eB4.Math.max(1,r.g.b+n);break;case 1:r.g.c=r.g.c+n,r.g.b=eB4.Math.max(1,r.g.b-n);break;case 4:r.g.d=e.e.b,r.g.a=eB4.Math.max(1,r.g.a+n);break;case 3:r.g.d=r.g.d+n,r.g.a=eB4.Math.max(1,r.g.a-n)}}}function ePG(e,t){var n,r,i,a,o,s,u,c,l,f,d,h,p,b;for(s=Je(ty_,eHT,25,t.b.c.length,15,1),c=Je(e4P,eU4,267,t.b.c.length,0,1),u=Je(e4N,eGW,10,t.b.c.length,0,1),f=e.a,d=0,h=f.length;d0&&u[r]&&(p=Mj(e.b,u[r],i)),b=eB4.Math.max(b,i.c.c.b+p);for(a=new fz(l.e);a.a1)throw p7(new gL(eQ$));u||(a=V4(t,r.Kc().Pb()),o.Fc(a))}return eo0(e,eSu(e,t,n),o)}function ePZ(e,t){var n,r,i,a;for(etY(t.b.j),_r(UQ(new R1(null,new Gq(t.d,16)),new iy),new iw),a=new fz(t.d);a.ae.o.b||(n=efr(e,tby),(s=t.d+t.a+(n.gc()-1)*o)>e.o.b)))}function eP5(e,t){var n,r,i,a,o,s,u,c,l,f,d,h,p;if(o=e.e,u=t.e,0==o)return t;if(0==u)return e;if((a=e.d)+(s=t.d)==2)return(n=WM(e.a[0],eH8),r=WM(t.a[0],eH8),o==u)?(p=jE(l=eft(n,r)),0==(h=jE(Fy(l,32)))?new XE(o,p):new F7(o,2,eow(vx(ty_,1),eHT,25,15,[p,h]))):ep_(o<0?efe(r,n):efe(n,r));if(o==u)d=o,f=a>=s?X7(e.a,a,t.a,s):X7(t.a,s,e.a,a);else{if(0==(i=a!=s?a>s?1:-1:es8(e.a,t.a,a)))return eLQ(),e08;1==i?(d=o,f=Z1(e.a,a,t.a,s)):(d=u,f=Z1(t.a,s,e.a,a))}return c=new F7(d,f.length,f),Ku(c),c}function eP6(e,t,n,r,i,a,o){var s,u,c,l,f,d,h;return f=gN(LK(e_k(t,(eBy(),taV)))),d=null,a==(enY(),tsD)&&r.c.i==n?d=r.c:a==tsN&&r.d.i==n&&(d=r.d),(c=o)&&f&&!d?(P_(c.e,r),h=eB4.Math.max(gP(LV(e_k(c.d,tak))),gP(LV(e_k(r,tak)))),eo3(c.d,tak,h)):(l=(eYu(),tbF),d?l=d.j:TM(Pp(e_k(n,tol),98))&&(l=a==tsD?tbY:tby),u=eP8(e,t,n,a,l,r),s=ZD((Bq(n),r)),a==tsD?(Gs(s,Pp(RJ(u.j,0),11)),Go(s,i)):(Gs(s,i),Go(s,Pp(RJ(u.j,0),11))),c=new ec8(r,s,u,Pp(e_k(u,(eBU(),tnc)),11),a,!d)),exg(e.a,r,new DT(c.d,t,a)),c}function eP9(e,t){var n,r,i,a,o,s,u,c,l,f;if(l=null,e.d&&(l=Pp(zg(e.d,t),138)),!l){if(f=(a=e.a.Mh()).i,!e.d||wq(e.d)!=f){for(u=new p2,e.d&&eij(u,e.d),s=c=u.f.c+u.g.c;s0?(h=(p-1)*n,s&&(h+=r),l&&(h+=r),!(h=e.b[i+1])i+=2;else if(n0)for(r=new I4(Pp(Zq(e.a,a),21)),Hj(),Mv(r,new dT(t)),i=new KB(a.b,0);i.b_)?(u=2,o=eUu):0==u?(u=1,o=S):(u=0,o=S):(h=S>=o||o-S0?1:Te(isNaN(r),isNaN(0)))>=0^(enj(eVU),(eB4.Math.abs(s)<=eVU||0==s||isNaN(s)&&isNaN(0)?0:s<0?-1:s>0?1:Te(isNaN(s),isNaN(0)))>=0))?eB4.Math.max(s,r):(enj(eVU),(eB4.Math.abs(r)<=eVU||0==r||isNaN(r)&&isNaN(0)?0:r<0?-1:r>0?1:Te(isNaN(r),isNaN(0)))>0)?eB4.Math.sqrt(s*s+r*r):-eB4.Math.sqrt(s*s+r*r)}function eRv(e,t){var n,r,i,a,o,s;if(t){if(e.a||(e.a=new bZ),2==e.e){bY(e.a,t);return}if(1==t.e){for(i=0;i=eH3?xk(n,el1(r)):Bf(n,r&eHd),o=(++tyv,new zc(10,null,0)),Yu(e.a,o,s-1)):xk(n=(o.bm().length,new vu),o.bm()),0==t.e?(r=t._l())>=eH3?xk(n,el1(r)):Bf(n,r&eHd):xk(n,t.bm()),Pp(o,521).b=n.a}}function eRy(e){var t,n,r,i,a;return null!=e.g?e.g:e.a<32?(e.g=eYS(eap(e.f),zy(e.e)),e.g):(i=eBw((e.c||(e.c=euK(e.f)),e.c),0),0==e.e)?i:(t=(e.c||(e.c=euK(e.f)),e.c).e<0?2:1,n=i.length,r=-e.e+n-t,a=new vc,a.a+=""+i,e.e>0&&r>=-6?r>=0?Gn(a,n-zy(e.e),"."):(a.a=Az(a.a,0,t-1)+"0."+xy(a.a,t-1),Gn(a,t+1,ehv(e0Z,0,-zy(r)-1))):(n-t>=1&&(Gn(a,t,"."),++n),Gn(a,n,"E"),r>0&&Gn(a,++n,"+"),Gn(a,++n,""+Fb(eap(r)))),e.g=a.a,e.g)}function eRw(e,t,n){var r,i,a,o,s,u,c,l,f,d,h,p,b,m;if(!n.dc()){for(s=0,d=0,p=Pp((r=n.Kc()).Pb(),19).a;s1&&(u=c.mg(u,e.a,s));return 1==u.c.length?Pp(RJ(u,u.c.length-1),220):2==u.c.length?eRr((GK(0,u.c.length),Pp(u.c[0],220)),(GK(1,u.c.length),Pp(u.c[1],220)),o,a):null}function eRk(e){var t,n,r,i,a,o;for(ety(e.a,new eJ),n=new fz(e.a);n.a=eB4.Math.abs(r.b)?(r.b=0,a.d+a.a>o.d&&a.do.c&&a.c0){if(t=new xt(e.i,e.g),a=(n=e.i)<100?null:new yf(n),e.ij())for(r=0;r0){for(s=e.g,c=e.i,ZG(e),a=c<100?null:new yf(c),r=0;r>13|(15&e.m)<<9,i=e.m>>4&8191,a=e.m>>17|(255&e.h)<<5,o=(1048320&e.h)>>8,s=8191&t.l,u=t.l>>13|(15&t.m)<<9,c=t.m>>4&8191,l=t.m>>17|(255&t.h)<<5,f=(1048320&t.h)>>8,k=n*s,x=r*s,T=i*s,M=a*s,O=o*s,0!=u&&(x+=n*u,T+=r*u,M+=i*u,O+=a*u),0!=c&&(T+=n*c,M+=r*c,O+=i*c),0!=l&&(M+=n*l,O+=r*l),0!=f&&(O+=n*f),d=(h=k&eHH)+(p=(511&x)<<13),m=k>>22,g=x>>9,b=m+g+(v=(262143&T)<<4)+(y=(31&M)<<17),_=T>>18,w=_+(E=M>>5)+(S=(4095&O)<<8),b+=d>>22,d&=eHH,w+=b>>22,Mk(d,b&=eHH,w&=eH$)}function eRA(e){var t,n,r,i,a,o,s;if(0!=(s=Pp(RJ(e.j,0),11)).g.c.length&&0!=s.e.c.length)throw p7(new gC("Interactive layout does not support NORTH/SOUTH ports with incoming _and_ outgoing edges."));if(0!=s.g.c.length){for(a=eHQ,n=new fz(s.g);n.a4){if(!e.wj(t))return!1;if(e.rk()){if(u=(r=(i=Pp(t,49)).Ug())==e.e&&(e.Dk()?i.Og(i.Vg(),e.zk())==e.Ak():-1-i.Vg()==e.aj()),e.Ek()&&!u&&!r&&i.Zg()){for(a=0;a0&&(c=e.n.a/a);break;case 2:case 4:(i=e.i.o.b)>0&&(c=e.n.b/i)}eo3(e,(eBU(),tnv),c)}if(u=e.o,o=e.a,r)o.a=r.a,o.b=r.b,e.d=!0;else if(t!=tbc&&t!=tbl&&s!=tbF)switch(s.g){case 1:o.a=u.a/2;break;case 2:o.a=u.a,o.b=u.b/2;break;case 3:o.a=u.a/2,o.b=u.b;break;case 4:o.b=u.b/2}else o.a=u.a/2,o.b=u.b/2}function eRP(e){var t,n,r,i,a,o,s,u,c,l;if(e.ej()){if(l=e.Vi(),u=e.fj(),l>0){if(t=new eiP(e.Gi()),a=(n=l)<100?null:new yf(n),Cf(e,n,t.g),i=1==n?e.Zi(4,etj(t,0),null,0,u):e.Zi(6,t,null,-1,u),e.bj()){for(r=new Ow(t);r.e!=r.i.gc();)a=e.dj(epH(r),a);a?(a.Ei(i),a.Fi()):e.$i(i)}else a?(a.Ei(i),a.Fi()):e.$i(i)}else Cf(e,e.Vi(),e.Wi()),e.$i(e.Zi(6,(Hj(),e2r),null,-1,u))}else if(e.bj()){if((l=e.Vi())>0){for(s=e.Wi(),c=l,Cf(e,l,s),a=c<100?null:new yf(c),r=0;re.d[o.p]&&(n+=qq(e.b,a)*Pp(u.b,19).a,Vw(e.a,ell(a)));for(;!gY(e.a);)eek(e.b,Pp(Yn(e.a),19).a)}return n}function eRF(e,t,n,r){var i,a,o,s,u,c,l,f,d,h,p,b,m;for((f=new TS(Pp(eT8(e,(e_C(),tdB)),8))).a=eB4.Math.max(f.a-n.b-n.c,0),f.b=eB4.Math.max(f.b-n.d-n.a,0),(null==(i=LV(eT8(e,tdN)))||(BJ(i),i<=0))&&(i=1.3),s=new p0,p=new Ow((e.a||(e.a=new FQ(e6k,e,10,11)),e.a));p.e!=p.i.gc();)h=Pp(epH(p),33),o=new Lp(h),s.c[s.c.length]=o;switch((d=Pp(eT8(e,tdP),311)).g){case 3:m=eDQ(s,t,f.a,f.b,(c=r,BJ(i),c));break;case 1:m=eN0(s,t,f.a,f.b,(l=r,BJ(i),l));break;default:m=eRH(s,t,f.a,f.b,(u=r,BJ(i),u))}a=new etD(m),b=eY9(a,t,n,f.a,f.b,r,(BJ(i),i)),eYx(e,b.a,b.b,!1,!0)}function eRY(e,t){var n,r,i,a;n=t.b,a=new I4(n.j),i=0,(r=n.j).c=Je(e1R,eUp,1,0,5,1),Y$(Pp(eay(e.b,(eYu(),tbw),(erX(),tep)),15),n),i=emQ(a,i,new r3,r),Y$(Pp(eay(e.b,tbw,teh),15),n),i=emQ(a,i,new r2,r),Y$(Pp(eay(e.b,tbw,ted),15),n),Y$(Pp(eay(e.b,tby,tep),15),n),Y$(Pp(eay(e.b,tby,teh),15),n),i=emQ(a,i,new r4,r),Y$(Pp(eay(e.b,tby,ted),15),n),Y$(Pp(eay(e.b,tbj,tep),15),n),i=emQ(a,i,new r5,r),Y$(Pp(eay(e.b,tbj,teh),15),n),i=emQ(a,i,new r6,r),Y$(Pp(eay(e.b,tbj,ted),15),n),Y$(Pp(eay(e.b,tbY,tep),15),n),i=emQ(a,i,new ic,r),Y$(Pp(eay(e.b,tbY,teh),15),n),Y$(Pp(eay(e.b,tbY,ted),15),n)}function eRB(e,t){var n,r,i,a,o,s,u,c,l,f,d,h,p,b;for(ewG(t,"Layer size calculation",1),l=eHQ,c=eH1,i=!1,s=new fz(e.b);s.a.5?g-=2*o*(p-.5):p<.5&&(g+=2*a*(.5-p)),g<(i=s.d.b)&&(g=i),b=s.d.c,g>m.a-b-l&&(g=m.a-b-l),s.n.a=t+g}}function eRH(e,t,n,r,i){var a,o,s,u,c,l,f,d,h,p,b,m;for(s=Je(tyx,eH5,25,e.c.length,15,1),d=new Fz(new oB),egV(d,e),c=0,b=new p0;0!=d.b.c.length;)if(o=Pp(0==d.b.c.length?null:RJ(d.b,0),157),c>1&&jl(o)*jc(o)/2>s[0]){for(a=0;as[a];)++a;p=new Gz(b,0,a+1),f=new etD(p),l=jl(o)/jc(o),u=eY9(f,t,new mp,n,r,i,l),C5(xB(f.e),u),Ja(e_s(d,f)),egV(d,h=new Gz(b,a+1,b.c.length)),b.c=Je(e1R,eUp,1,0,5,1),c=0,jA(s,s.length,0)}else null!=(m=0==d.b.c.length?null:RJ(d.b,0))&&erD(d,0),c>0&&(s[c]=s[c-1]),s[c]+=jl(o)*jc(o),++c,b.c[b.c.length]=o;return b}function eR$(e){var t,n,r,i,a;if((r=Pp(e_k(e,(eBy(),taY)),163))==(ef_(),tnN)){for(n=new Fa(OH(efu(e).a.Kc(),new c));eTk(n);)if(t=Pp(ZC(n),17),!ZI(t))throw p7(new gq(eWr+egs(e)+"' has its layer constraint set to FIRST_SEPARATE, but has at least one incoming edge. FIRST_SEPARATE nodes must not have incoming edges."))}else if(r==tnR){for(a=new Fa(OH(efc(e).a.Kc(),new c));eTk(a);)if(i=Pp(ZC(a),17),!ZI(i))throw p7(new gq(eWr+egs(e)+"' has its layer constraint set to LAST_SEPARATE, but has at least one outgoing edge. LAST_SEPARATE nodes must not have outgoing edges."))}}function eRz(e,t){var n,r,i,a,o,s,u,c,l,f,d,h,p;for(ewG(t,"Label dummy removal",1),r=gP(LV(e_k(e,(eBy(),toL)))),i=gP(LV(e_k(e,toN))),c=Pp(e_k(e,tal),103),u=new fz(e.b);u.a0&&eE9(e,s,f);for(i=new fz(f);i.a>19!=0&&(t=eoQ(t),u=!u),o=eOy(t),a=!1,i=!1,r=!1,e.h==eHz&&0==e.m&&0==e.l){if(i=!0,a=!0,-1!=o)return s=eTC(e,o),u&&esh(s),n&&(e0A=Mk(0,0,0)),s;e=Tr((Q2(),e0L)),r=!0,u=!u}else e.h>>19!=0&&(a=!0,e=eoQ(e),r=!0,u=!u);return -1!=o?esk(e,o,u,a,n):0>evy(e,t)?(n&&(e0A=a?eoQ(e):Mk(e.l,e.m,e.h)),Mk(0,0,0)):eDr(r?e:Mk(e.l,e.m,e.h),t,u,a,i,n)}function eRq(e,t){var n,r,i,a,o,s,u,c,l,f,d,h,p;if(e.e&&e.c.ct.f)&&!(t.g>e.f)){for(n=0,r=0,o=e.w.a.ec().Kc();o.Ob();)i=Pp(o.Pb(),11),euz(esp(eow(vx(e50,1),eUP,8,0,[i.i.n,i.n,i.a])).b,t.g,t.f)&&++n;for(s=e.r.a.ec().Kc();s.Ob();)i=Pp(s.Pb(),11),euz(esp(eow(vx(e50,1),eUP,8,0,[i.i.n,i.n,i.a])).b,t.g,t.f)&&--n;for(u=t.w.a.ec().Kc();u.Ob();)i=Pp(u.Pb(),11),euz(esp(eow(vx(e50,1),eUP,8,0,[i.i.n,i.n,i.a])).b,e.g,e.f)&&++r;for(a=t.r.a.ec().Kc();a.Ob();)i=Pp(a.Pb(),11),euz(esp(eow(vx(e50,1),eUP,8,0,[i.i.n,i.n,i.a])).b,e.g,e.f)&&--r;n=0)return i=efd(e,t.substr(1,o-1)),eYF(e,l=t.substr(o+1,u-(o+1)),i)}else{if(n=-1,null==e0F&&(e0F=RegExp("\\d")),e0F.test(String.fromCharCode(s))&&(n=IO(t,e_n(46),u-1))>=0){r=Pp(ZN(e,etm(e,t.substr(1,n-1)),!1),58),c=0;try{c=eDa(t.substr(n+1),eHt,eUu)}catch(d){if(d=eoa(d),M4(d,127))throw a=d,p7(new QH(a));throw p7(d)}if(c=0)return n;switch(Ur(QZ(e,n))){case 2:if(IE("",ecG(e,n.Hj()).ne())){if(u=U$(QZ(e,n)),s=UH(QZ(e,n)),l=eMv(e,t,u,s))return l;for(o=0,f=(i=eIx(e,t)).gc();o1)throw p7(new gL(eQ$));for(o=0,l=eAY(e.e.Tg(),t),r=Pp(e.g,119);o1,c=new Z4(d.b);My(c.a)||My(c.b);)f=(u=Pp(My(c.a)?Wx(c.a):Wx(c.b),17)).c==d?u.d:u.c,eB4.Math.abs(esp(eow(vx(e50,1),eUP,8,0,[f.i.n,f.n,f.a])).b-o.b)>1&&eAZ(e,u,o,a,d)}}function eR8(e){var t,n,r,i,a,o;if(i=new KB(e.e,0),r=new KB(e.a,0),e.d)for(n=0;neVW;){for(a=t,o=0;eB4.Math.abs(t-a)0),i.a.Xb(i.c=--i.b),eNy(e,e.b-o,a,r,i),A6(i.b0),r.a.Xb(r.c=--r.b)}if(!e.d)for(n=0;n0?(e.f[l.p]=h/(l.e.c.length+l.g.c.length),e.c=eB4.Math.min(e.c,e.f[l.p]),e.b=eB4.Math.max(e.b,e.f[l.p])):s&&(e.f[l.p]=h)}}function ejt(e){e.b=null,e.bb=null,e.fb=null,e.qb=null,e.a=null,e.c=null,e.d=null,e.e=null,e.f=null,e.n=null,e.M=null,e.L=null,e.Q=null,e.R=null,e.K=null,e.db=null,e.eb=null,e.g=null,e.i=null,e.j=null,e.k=null,e.gb=null,e.o=null,e.p=null,e.q=null,e.r=null,e.$=null,e.ib=null,e.S=null,e.T=null,e.t=null,e.s=null,e.u=null,e.v=null,e.w=null,e.B=null,e.A=null,e.C=null,e.D=null,e.F=null,e.G=null,e.H=null,e.I=null,e.J=null,e.P=null,e.Z=null,e.U=null,e.V=null,e.W=null,e.X=null,e.Y=null,e._=null,e.ab=null,e.cb=null,e.hb=null,e.nb=null,e.lb=null,e.mb=null,e.ob=null,e.pb=null,e.jb=null,e.kb=null,e.N=!1,e.O=!1}function ejn(e,t,n){var r,i,a,o;for(ewG(n,"Graph transformation ("+e.a+")",1),o=WC(t.a),a=new fz(t.b);a.a0&&(e.a=u+(p-1)*a,t.c.b+=e.a,t.f.b+=e.a),0!=b.a.gc()&&(p=ejF(h=new YJ(1,a),t,b,m,t.f.b+u-t.c.b))>0&&(t.f.b+=u+(p-1)*a)}function eji(e,t){var n,r,i,a;a=e.F,null==t?(e.F=null,euc(e,null)):(e.F=(BJ(t),t),-1!=(r=x7(t,e_n(60)))?(i=t.substr(0,r),-1!=x7(t,e_n(46))||IE(i,eUi)||IE(i,eJZ)||IE(i,eJX)||IE(i,eJJ)||IE(i,eJQ)||IE(i,eJ1)||IE(i,eJ0)||IE(i,eJ2)||(i=eJ3),-1!=(n=O8(t,e_n(62)))&&(i+=""+t.substr(n+1)),euc(e,i)):(i=t,-1==x7(t,e_n(46))&&(-1!=(r=x7(t,e_n(91)))&&(i=t.substr(0,r)),IE(i,eUi)||IE(i,eJZ)||IE(i,eJX)||IE(i,eJJ)||IE(i,eJQ)||IE(i,eJ1)||IE(i,eJ0)||IE(i,eJ2)?i=t:(i=eJ3,-1!=r&&(i+=""+t.substr(r)))),euc(e,i),i==t&&(e.F=e.D))),(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new FX(e,1,5,a,t))}function eja(e,t){var n,r,i,a,o,s,u,c,l,f,d,h,p,b,m,g,v,y;if(!((b=t.b.c.length)<3)){for(h=Je(ty_,eHT,25,b,15,1),f=0,l=new fz(t.b);l.ao)&&Yf(e.b,Pp(m.b,17));++s}a=o}}}function ejo(e,t){var n;if(null==t||IE(t,eUg)||0==t.length&&e.k!=(eSd(),tdy))return null;switch(e.k.g){case 1:return ehZ(t,eq6)?(OQ(),e0P):ehZ(t,eq9)?(OQ(),e0N):null;case 2:try{return ell(eDa(t,eHt,eUu))}catch(r){if(r=eoa(r),M4(r,127))return null;throw p7(r)}case 4:try{return eEu(t)}catch(i){if(i=eoa(i),M4(i,127))return null;throw p7(i)}case 3:return t;case 5:return euC(e),exs(e,t);case 6:return euC(e),eMj(e,e.a,t);case 7:try{return(n=eTh(e)).Jf(t),n}catch(a){if(a=eoa(a),M4(a,32))return null;throw p7(a)}default:throw p7(new gC("Invalid type set for this layout option."))}}function ejs(e){var t,n,r,i,a,o,s;for(eeP(),s=new b6,n=new fz(e);n.a=s.b.c)&&(s.b=t),(!s.c||t.c<=s.c.c)&&(s.d=s.c,s.c=t),(!s.e||t.d>=s.e.d)&&(s.e=t),(!s.f||t.d<=s.f.d)&&(s.f=t);return r=new epG((eok(),e8f)),Kv(e,e8y,new g$(eow(vx(e4M,1),eUp,369,0,[r]))),o=new epG(e8p),Kv(e,e8v,new g$(eow(vx(e4M,1),eUp,369,0,[o]))),i=new epG(e8d),Kv(e,e8g,new g$(eow(vx(e4M,1),eUp,369,0,[i]))),a=new epG(e8h),Kv(e,e8m,new g$(eow(vx(e4M,1),eUp,369,0,[a]))),eOk(r.c,e8f),eOk(i.c,e8d),eOk(a.c,e8h),eOk(o.c,e8p),s.a.c=Je(e1R,eUp,1,0,5,1),eoc(s.a,r.c),eoc(s.a,eaa(i.c)),eoc(s.a,a.c),eoc(s.a,eaa(o.c)),s}function eju(e){var t;switch(e.d){case 1:if(e.hj())return -2!=e.o;break;case 2:if(e.hj())return -2==e.o;break;case 3:case 5:case 4:case 6:case 7:return e.o>-2;default:return!1}switch(t=e.gj(),e.p){case 0:return null!=t&&gN(LK(t))!=xg(e.k,0);case 1:return null!=t&&Pp(t,217).a!=jE(e.k)<<24>>24;case 2:return null!=t&&Pp(t,172).a!=(jE(e.k)&eHd);case 6:return null!=t&&xg(Pp(t,162).a,e.k);case 5:return null!=t&&Pp(t,19).a!=jE(e.k);case 7:return null!=t&&Pp(t,184).a!=jE(e.k)<<16>>16;case 3:return null!=t&&gP(LV(t))!=e.j;case 4:return null!=t&&Pp(t,155).a!=e.j;default:return null==t?null!=e.n:!ecX(t,e.n)}}function ejc(e,t,n){var r,i,a,o;return e.Fk()&&e.Ek()&&(o=FU(e,Pp(n,56)),xc(o)!==xc(n))?(e.Oi(t),e.Ui(t,J6(e,t,o)),e.rk()&&(a=(i=Pp(n,49),e.Dk()?e.Bk()?i.ih(e.b,ebY(Pp(ee2($S(e.b),e.aj()),18)).n,Pp(ee2($S(e.b),e.aj()).Yj(),26).Bj(),null):i.ih(e.b,edv(i.Tg(),ebY(Pp(ee2($S(e.b),e.aj()),18))),null,null):i.ih(e.b,-1-e.aj(),null,null)),Pp(o,49).eh()||(a=(r=Pp(o,49),e.Dk()?e.Bk()?r.gh(e.b,ebY(Pp(ee2($S(e.b),e.aj()),18)).n,Pp(ee2($S(e.b),e.aj()).Yj(),26).Bj(),a):r.gh(e.b,edv(r.Tg(),ebY(Pp(ee2($S(e.b),e.aj()),18))),null,a):r.gh(e.b,-1-e.aj(),null,a))),a&&a.Fi()),TO(e.b)&&e.$i(e.Zi(9,n,o,t,!1)),o):n}function ejl(e,t,n){var r,i,a,o,s,u,c,l,f,d,h,p,b,m,g,v,y,w;for(l=gP(LV(e_k(e,(eBy(),toC)))),r=gP(LV(e_k(e,toG))),eo3(d=new oG,toC,l+r),g=(c=t).d,b=c.c.i,v=c.d.i,m=Tl(b.c),y=Tl(v.c),i=new p0,f=m;f<=y;f++)s=new eb$(e),lK(s,(eEn(),e8D)),eo3(s,(eBU(),tnc),c),eo3(s,tol,(ewf(),tbo)),eo3(s,toD,d),h=Pp(RJ(e.b,f),29),f==m?egU(s,h.a.c.length-n,h):Gu(s,h),(w=gP(LV(e_k(c,tak))))<0&&eo3(c,tak,w=0),s.o.b=w,p=eB4.Math.floor(w/2),o=new eES,ekv(o,(eYu(),tbY)),Gc(o,s),o.n.b=p,u=new eES,ekv(u,tby),Gc(u,s),u.n.b=p,Go(c,o),a=new $b,eaW(a,c),eo3(a,taR,null),Gs(a,u),Go(a,g),evT(s,c,a),i.c[i.c.length]=a,c=a;return i}function ejf(e,t){var n,r,i,a,o,s,u,c,l,f,d,h,p,b,m,g,v,y;for(u=Pp(eEC(e,(eYu(),tbY)).Kc().Pb(),11).e,h=Pp(eEC(e,tby).Kc().Pb(),11).g,s=u.c.length,y=GX(Pp(RJ(e.j,0),11));s-- >0;){for(b=(GK(0,u.c.length),Pp(u.c[0],17)),a=QI(v=(i=(GK(0,h.c.length),Pp(h.c[0],17))).d.e,i,0),KW(b,i.d,a),Gs(i,null),Go(i,null),p=b.a,t&&P7(p,new TS(y)),r=epL(i.a,0);r.b!=r.d.c;)n=Pp(Vv(r),8),P7(p,new TS(n));for(g=b.b,d=new fz(i.b);d.a0&&(o=eB4.Math.max(o,eix(e.C.b+r.d.b,i))),l=r,f=i,d=a;e.C&&e.C.c>0&&(h=d+e.C.c,c&&(h+=l.d.c),o=eB4.Math.max(o,(Mc(),enj(ezs),eB4.Math.abs(f-1)<=ezs||1==f||isNaN(f)&&isNaN(1)?0:h/(1-f)))),n.n.b=0,n.a.a=o}function ejh(e,t){var n,r,i,a,o,s,u,c,l,f,d,h;if(n=Pp(UA(e.b,t),124),(u=Pp(Pp(Zq(e.r,t),21),84)).dc()){n.n.d=0,n.n.a=0;return}for(c=e.u.Hc((ekU(),tbp)),o=0,e.A.Hc((ed6(),tbq))&&eCN(e,t),s=u.Kc(),l=null,d=0,f=0;s.Ob();)a=gP(LV((r=Pp(s.Pb(),111)).b.We((Ab(),e4a)))),i=r.b.rf().b,l?(h=f+l.d.a+e.w+r.d.d,o=eB4.Math.max(o,(Mc(),enj(ezs),eB4.Math.abs(d-a)<=ezs||d==a||isNaN(d)&&isNaN(a)?0:h/(a-d)))):e.C&&e.C.d>0&&(o=eB4.Math.max(o,eix(e.C.d+r.d.d,a))),l=r,d=a,f=i;e.C&&e.C.a>0&&(h=f+e.C.a,c&&(h+=l.d.a),o=eB4.Math.max(o,(Mc(),enj(ezs),eB4.Math.abs(d-1)<=ezs||1==d||isNaN(d)&&isNaN(1)?0:h/(1-d)))),n.n.d=0,n.a.b=o}function ejp(e,t,n){var r,i,a,o,s,u;for(o=0,this.g=e,s=t.d.length,u=n.d.length,this.d=Je(e4N,eGW,10,s+u,0,1);o0?etU(this,this.f/this.a):null!=Ot(t.g,t.d[0]).a&&null!=Ot(n.g,n.d[0]).a?etU(this,(gP(Ot(t.g,t.d[0]).a)+gP(Ot(n.g,n.d[0]).a))/2):null!=Ot(t.g,t.d[0]).a?etU(this,Ot(t.g,t.d[0]).a):null!=Ot(n.g,n.d[0]).a&&etU(this,Ot(n.g,n.d[0]).a)}function ejb(e,t){var n,r,i,a,o,s,u,c,l,f;for(e.a=new Bv(eiG(e55)),r=new fz(t.a);r.a=1&&(m-o>0&&f>=0?(u.n.a+=b,u.n.b+=a*o):m-o<0&&l>=0&&(u.n.a+=b*m,u.n.b+=a));e.o.a=t.a,e.o.b=t.b,eo3(e,(eBy(),ta4),(ed6(),r=Pp(yw(e6o),9),new I1(r,Pp(CY(r,r.length),9),0)))}function ej_(e,t,n,r,i,a){var o;if(!(null==t||!efz(t,tmJ,tmQ)))throw p7(new gL("invalid scheme: "+t));if(!e&&!(null!=n&&-1==x7(n,e_n(35))&&n.length>0&&(GV(0,n.length),47!=n.charCodeAt(0))))throw p7(new gL("invalid opaquePart: "+n));if(e&&!(null!=t&&wZ(tm$,t.toLowerCase()))&&!(null==n||!efz(n,tm1,tm0))||e&&null!=t&&wZ(tm$,t.toLowerCase())&&!eyQ(n))throw p7(new gL(eJI+n));if(!ef$(r))throw p7(new gL("invalid device: "+r));if(!ece(i))throw o=null==i?"invalid segments: null":"invalid segment: "+euR(i),p7(new gL(o));if(!(null==a||-1==x7(a,e_n(35))))throw p7(new gL("invalid query: "+a))}function ejE(e,t){var n,r,i,a,o,s,u,c,l,f,d,h,p,b,m,g;for(ewG(t,"Calculate Graph Size",1),t.n&&e&&WG(t,KS(e),(eup(),tmr)),s=ezq,u=ezq,a=eqe,o=eqe,f=new Ow((e.a||(e.a=new FQ(e6k,e,10,11)),e.a));f.e!=f.i.gc();)p=(c=Pp(epH(f),33)).i,b=c.j,g=c.g,r=c.f,i=Pp(eT8(c,(eBB(),thy)),142),s=eB4.Math.min(s,p-i.b),u=eB4.Math.min(u,b-i.d),a=eB4.Math.max(a,p+g+i.c),o=eB4.Math.max(o,b+r+i.a);for(h=Pp(eT8(e,(eBB(),thN)),116),d=new kl(s-h.b,u-h.d),l=new Ow((e.a||(e.a=new FQ(e6k,e,10,11)),e.a));l.e!=l.i.gc();)c=Pp(epH(l),33),eno(c,c.i-d.a),ens(c,c.j-d.b);m=a-s+(h.b+h.c),n=o-u+(h.d+h.a),ena(e,m),eni(e,n),t.n&&e&&WG(t,KS(e),(eup(),tmr))}function ejS(e){var t,n,r,i,a,o,s,u,c,l;for(r=new p0,o=new fz(e.e.a);o.a0){epV(e,n,0),n.a+=String.fromCharCode(r),epV(e,n,i=ehR(t,a)),a+=i-1;continue}39==r?a+11)for(b=Je(ty_,eHT,25,e.b.b.c.length,15,1),f=0,c=new fz(e.b.b);c.a=s&&i<=u)s<=i&&a<=u?(n[l++]=i,n[l++]=a,r+=2):s<=i?(n[l++]=i,n[l++]=u,e.b[r]=u+1,o+=2):a<=u?(n[l++]=s,n[l++]=a,r+=2):(n[l++]=s,n[l++]=u,e.b[r]=u+1);else if(ueHe)&&s<10)vR(e.c,new tf),ejM(e),Ym(e.c),ejv(e.f)}function ejL(e,t,n){var r,i,a,o,s,u,c,l,f,d,h,p,b,m;if(gN(LK(e_k(n,(eBy(),taI)))))for(s=new fz(n.j);s.a=2){for(o=Pp(Vv(u=epL(n,0)),8),s=Pp(Vv(u),8);s.a0&&eoY(l,!0,(ec3(),tpg)),s.k==(eEn(),e8C)&&UP(l),Um(e.f,s,t)}}function ejN(e,t,n){var r,i,a,o,s,u,c,l,f,d;switch(ewG(n,"Node promotion heuristic",1),e.g=t,eYs(e),e.q=Pp(e_k(t,(eBy(),taz)),260),l=Pp(e_k(e.g,ta$),19).a,a=new nH,e.q.g){case 2:case 1:default:eRn(e,a);break;case 3:for(e.q=(eOJ(),tsk),eRn(e,a),u=0,s=new fz(e.a);s.ae.j&&(e.q=tsv,eRn(e,a));break;case 4:for(e.q=(eOJ(),tsk),eRn(e,a),c=0,i=new fz(e.b);i.ae.k&&(e.q=ts_,eRn(e,a));break;case 6:d=zy(eB4.Math.ceil(e.f.length*l/100)),eRn(e,new dq(d));break;case 5:f=zy(eB4.Math.ceil(e.d*l/100)),eRn(e,new dZ(f))}eLC(e,t),eEj(n)}function ejP(e,t,n){var r,i,a,o;this.j=e,this.e=ewi(e),this.o=this.j.e,this.i=!!this.o,this.p=this.i?Pp(RJ(n,Bq(this.o).p),214):null,i=Pp(e_k(e,(eBU(),tt3)),21),this.g=i.Hc((eLR(),ttw)),this.b=new p0,this.d=new ed0(this.e),o=Pp(e_k(this.j,tnw),230),this.q=eaG(t,o,this.e),this.k=new zX(this),a=ZW(eow(vx(e4H,1),eUp,225,0,[this,this.d,this.k,this.q])),t!=(enU(),tur)||gN(LK(e_k(e,(eBy(),ti7))))?t==tur&&gN(LK(e_k(e,(eBy(),ti7))))?(r=new ews(this.e),a.c[a.c.length]=r,this.c=new erB(r,o,Pp(this.q,402))):this.c=new Sr(t,this):(r=new ews(this.e),a.c[a.c.length]=r,this.c=new K5(r,o,Pp(this.q,402))),P_(a,this.c),eP0(a,this.e),this.s=eY0(this.k)}function ejR(e,t){var n,r,i,a,o,s,u,c,l,f,d,h,p,b,m,g,v,y,w;for(p=(f=Pp(M2((o=epL(new hz(t).a.d,0),new hG(o))),86))?Pp(e_k(f,(eR6(),tco)),86):null,i=1;f&&p;){for(s=0,u=0,w=0,n=f,r=p;s=e.i?(++e.i,P_(e.a,ell(1)),P_(e.b,f)):(r=e.c[t.p][1],q1(e.a,l,ell(Pp(RJ(e.a,l),19).a+1-r)),q1(e.b,l,gP(LV(RJ(e.b,l)))+f-r*e.e)),(e.q==(eOJ(),tsv)&&(Pp(RJ(e.a,l),19).a>e.j||Pp(RJ(e.a,l-1),19).a>e.j)||e.q==ts_&&(gP(LV(RJ(e.b,l)))>e.k||gP(LV(RJ(e.b,l-1)))>e.k))&&(u=!1),o=new Fa(OH(efu(t).a.Kc(),new c));eTk(o);)s=(a=Pp(ZC(o),17)).c.i,e.f[s.p]==l&&(d=ejj(e,s),i+=Pp(d.a,19).a,u=u&&gN(LK(d.b)));return e.f[t.p]=l,i+=e.c[t.p][0],new kD(ell(i),(OQ(),!!u))}function ejF(e,t,n,r,i){var a,o,s,u,c,l,f,d,h,p,b,m,g;for(f=new p2,o=new p0,ekD(e,n,e.d.fg(),o,f),ekD(e,r,e.d.gg(),o,f),e.b=.2*(b=eTZ(eeh(new R1(null,new Gq(o,16)),new aL)),m=eTZ(eeh(new R1(null,new Gq(o,16)),new aC)),eB4.Math.min(b,m)),a=0,s=0;s=2&&(g=eOY(o,!0,d),e.e||(e.e=new h$(e)),ehB(e.e,g,o,e.b)),ewv(o,d),eFn(o),h=-1,l=new fz(o);l.as)}function ejU(e,t){var n,r,i,a,o,s,u,c,l,f,d,h,p,b;for(n=Pp(e_k(e,(eBy(),tol)),98),o=e.f,a=e.d,s=o.a+a.b+a.c,u=0-a.d-e.c.b,l=o.b+a.d+a.a-e.c.b,c=new p0,f=new p0,i=new fz(t);i.a0),Pp(l.a.Xb(l.c=--l.b),17));a!=r&&l.b>0;)e.a[a.p]=!0,e.a[r.p]=!0,a=(A6(l.b>0),Pp(l.a.Xb(l.c=--l.b),17));l.b>0&&BH(l)}}function ejZ(e,t,n){var r,i,a,o,s,u,c,l,f;if(e.a!=t.Aj())throw p7(new gL(eZ5+t.ne()+eZ6));if(r=ecG((eSp(),tvc),t).$k())return r.Aj().Nh().Ih(r,n);if(o=ecG(tvc,t).al()){if(null==n)return null;if((s=Pp(n,15)).dc())return"";for(f=new vs,a=s.Kc();a.Ob();)i=a.Pb(),xk(f,o.Aj().Nh().Ih(o,i)),f.a+=" ";return x3(f,f.a.length-1)}if(!(l=ecG(tvc,t).bl()).dc()){for(c=l.Kc();c.Ob();)if((u=Pp(c.Pb(),148)).wj(n))try{if(f=u.Aj().Nh().Ih(u,n),null!=f)return f}catch(d){if(d=eoa(d),!M4(d,102))throw p7(d)}throw p7(new gL("Invalid value: '"+n+"' for datatype :"+t.ne()))}return Pp(t,834).Fj(),null==n?null:M4(n,172)?""+Pp(n,172).a:esF(n)==e1Q?MU(tmS[0],Pp(n,199)):efF(n)}function ejX(e){var t,n,r,i,a,o,s,u,c,l;for(c=new _n,s=new _n,a=new fz(e);a.a-1){for(i=epL(s,0);i.b!=i.d.c;)(r=Pp(Vv(i),128)).v=o;for(;0!=s.b;)for(r=Pp(egW(s,0),128),n=new fz(r.i);n.a0&&(n+=u.n.a+u.o.a/2,++f),p=new fz(u.j);p.a0&&(n/=f),g=Je(tyx,eH5,25,r.a.c.length,15,1),s=0,c=new fz(r.a);c.a=s&&i<=u)s<=i&&a<=u?r+=2:s<=i?(e.b[r]=u+1,o+=2):a<=u?(n[l++]=i,n[l++]=s-1,r+=2):(n[l++]=i,n[l++]=s-1,e.b[r]=u+1,o+=2);else if(u0?i-=864e5:i+=864e5,u=new LZ(eft(eap(t.q.getTime()),i))),l=new vl,c=e.a.length,a=0;a=97&&r<=122||r>=65&&r<=90){for(o=a+1;o=c)throw p7(new gL("Missing trailing '"));o+10&&0==n.c&&(t||(t=new p0),t.c[t.c.length]=n);if(t)for(;0!=t.c.length;){if((n=Pp(ZV(t,0),233)).b&&n.b.c.length>0){for(a=(n.b||(n.b=new p0),new fz(n.b));a.aQI(e,n,0))return new kD(i,n)}else if(gP(Ot(i.g,i.d[0]).a)>gP(Ot(n.g,n.d[0]).a))return new kD(i,n)}for(s=(n.e||(n.e=new p0),n.e).Kc();s.Ob();)u=((o=Pp(s.Pb(),233)).b||(o.b=new p0),o.b),Gp(0,u.c.length),Ew(u.c,0,n),o.c==u.c.length&&(t.c[t.c.length]=o)}return null}function eFe(e,t){var n,r,i,a,o,s,u,c,l;if(null==e)return eUg;if(null!=(u=t.a.zc(e,t)))return"[...]";for(a=0,n=new eaP(eUd,"[","]"),o=(i=e).length;a=14&&l<=16)?t.a._b(r)?(n.a?xM(n.a,n.b):n.a=new O0(n.d),xx(n.a,"[...]")):ZJ(n,eFe(s=etG(r),c=new Rq(t))):M4(r,177)?ZJ(n,ekd(Pp(r,177))):M4(r,190)?ZJ(n,ewh(Pp(r,190))):M4(r,195)?ZJ(n,eEm(Pp(r,195))):M4(r,2012)?ZJ(n,ewp(Pp(r,2012))):M4(r,48)?ZJ(n,ekf(Pp(r,48))):M4(r,364)?ZJ(n,ekG(Pp(r,364))):M4(r,832)?ZJ(n,ekl(Pp(r,832))):M4(r,104)&&ZJ(n,ekc(Pp(r,104))):ZJ(n,null==r?eUg:efF(r));return n.a?0==n.e.length?n.a.a:n.a.a+""+n.e:n.c}function eFt(e,t,n,r){var i,a,o,s,u,c,l,f,d,h,p,b,m,g,v,y;for(s=eLO(t,!1,!1),g=eEF(s),r&&(g=esP(g)),y=gP(LV(eT8(t,(epz(),e63)))),m=(A6(0!=g.b),Pp(g.a.a.c,8)),f=Pp(ep3(g,1),8),g.b>2?(l=new p0,eoc(l,new Gz(g,1,g.b)),a=eBk(l,y+e.a),v=new eTI(a),eaW(v,t),n.c[n.c.length]=v):v=r?Pp(Bp(e.b,e_I(t)),266):Pp(Bp(e.b,e_P(t)),266),u=e_I(t),r&&(u=e_P(t)),o=eEJ(m,u),c=y+e.a,o.a?(c+=eB4.Math.abs(m.b-f.b),b=new kl(f.a,(f.b+m.b)/2)):(c+=eB4.Math.abs(m.a-f.a),b=new kl((f.a+m.a)/2,f.b)),r?Um(e.d,t,new emL(v,o,b,c)):Um(e.c,t,new emL(v,o,b,c)),Um(e.b,t,v),p=(t.n||(t.n=new FQ(e6S,t,1,7)),t.n),h=new Ow(p);h.e!=h.i.gc();)d=Pp(epH(h),137),i=eIt(e,d,!0,0,0),n.c[n.c.length]=i}function eFn(e){var t,n,r,i,a,o,s,u,c,l;for(c=new p0,s=new p0,o=new fz(e);o.a-1){for(a=new fz(s);a.a0)&&(l3(u,eB4.Math.min(u.o,i.o-1)),l2(u,u.i-1),0==u.i&&(s.c[s.c.length]=u))}}function eFr(e,t,n){var r,i,a,o,s,u,c;if(c=e.c,t||(t=tgK),e.c=t,(4&e.Db)!=0&&(1&e.Db)==0&&(u=new FX(e,1,2,c,e.c),n?n.Ei(u):n=u),c!=t){if(M4(e.Cb,284))e.Db>>16==-10?n=Pp(e.Cb,284).nk(t,n):e.Db>>16==-15&&(t||(t=(eBK(),tgA)),c||(c=(eBK(),tgA)),e.Cb.nh()&&(u=new Q$(e.Cb,1,13,c,t,ebv(QX(Pp(e.Cb,59)),e),!1),n?n.Ei(u):n=u));else if(M4(e.Cb,88))e.Db>>16==-23&&(M4(t,88)||(t=(eBK(),tgI)),M4(c,88)||(c=(eBK(),tgI)),e.Cb.nh()&&(u=new Q$(e.Cb,1,10,c,t,ebv(qt(Pp(e.Cb,26)),e),!1),n?n.Ei(u):n=u));else if(M4(e.Cb,444))for(o=((s=Pp(e.Cb,836)).b||(s.b=new pG(new mR)),s.b),a=(r=new esz(new fS(o.a).a),new pW(r));a.a.b;)n=eFr(i=Pp(etz(a.a).cd(),87),eOl(i,s),n)}return n}function eFi(e,t){var n,r,i,a,o,s,u,c,l,f,d;for(o=gN(LK(eT8(e,(eBy(),taI)))),d=Pp(eT8(e,toh),21),u=!1,c=!1,f=new Ow((e.c||(e.c=new FQ(e6x,e,9,9)),e.c));f.e!=f.i.gc()&&(!u||!c);){for(a=Pp(epH(f),118),s=0,i=Y_(enM(eow(vx(e1B,1),eUp,20,0,[(a.d||(a.d=new Ih(e6g,a,8,5)),a.d),(a.e||(a.e=new Ih(e6g,a,7,4)),a.e)])));eTk(i)&&(r=Pp(ZC(i),79),l=o&&exb(r)&&gN(LK(eT8(r,taD))),n=eRL((r.b||(r.b=new Ih(e6m,r,4,7)),r.b),a)?e==z$(ewH(Pp(etj((r.c||(r.c=new Ih(e6m,r,5,8)),r.c),0),82))):e==z$(ewH(Pp(etj((r.b||(r.b=new Ih(e6m,r,4,7)),r.b),0),82))),!((l||n)&&++s>1)););s>0?u=!0:d.Hc((ekU(),tbp))&&(a.n||(a.n=new FQ(e6S,a,1,7)),a.n).i>0&&(u=!0),s>1&&(c=!0)}u&&t.Fc((eLR(),ttw)),c&&t.Fc((eLR(),tt_))}function eFa(e){var t,n,r,i,a,o,s,u,c,l,f,d;if((d=Pp(eT8(e,(eBB(),thx)),21)).dc())return null;if(s=0,o=0,d.Hc((ed6(),tbV))){for(l=Pp(eT8(e,thV),98),r=2,n=2,i=2,a=2,t=z$(e)?Pp(eT8(z$(e),the),103):Pp(eT8(e,the),103),c=new Ow((e.c||(e.c=new FQ(e6x,e,9,9)),e.c));c.e!=c.i.gc();)if(u=Pp(epH(c),118),(f=Pp(eT8(u,th0),61))==(eYu(),tbF)&&(f=eNh(u,t),ebu(u,th0,f)),l==(ewf(),tbo))switch(f.g){case 1:r=eB4.Math.max(r,u.i+u.g);break;case 2:n=eB4.Math.max(n,u.j+u.f);break;case 3:i=eB4.Math.max(i,u.i+u.g);break;case 4:a=eB4.Math.max(a,u.j+u.f)}else switch(f.g){case 1:r+=u.g+2;break;case 2:n+=u.f+2;break;case 3:i+=u.g+2;break;case 4:a+=u.f+2}s=eB4.Math.max(r,i),o=eB4.Math.max(n,a)}return eYx(e,s,o,!0,!0)}function eFo(e,t,n,r,i){var a,o,s,u,c,l,f,d,h,p,b,m,g,v,y,w;for(v=Pp(qE(etc(UJ(new R1(null,new Gq(t.d,16)),new hc(n)),new hl(n)),JF(new U,new B,new en,eow(vx(e2L,1),eU4,132,0,[(eum(),e2U)]))),15),f=eUu,l=eHt,u=new fz(t.b.j);u.a0)?c&&(d=g.p,o?++d:--d,h=!(eOV(r=eoZ(f=Pp(RJ(g.c.a,d),10)),E,n[0])||FF(r,E,n[0]))):h=!0),p=!1,(_=t.D.i)&&_.c&&s.e&&((l=o&&_.p>0||!o&&_.p<_.c.a.c.length-1)?(d=_.p,o?--d:++d,p=!(eOV(r=eoZ(f=Pp(RJ(_.c.a,d),10)),n[0],k)||FF(r,n[0],k))):p=!0),h&&p&&P7(e.a,S),h||enD(e.a,eow(vx(e50,1),eUP,8,0,[b,m])),p||enD(e.a,eow(vx(e50,1),eUP,8,0,[w,y]))}function eFh(e,t){var n,r,i,a,o,s,u,c;if(M4(e.Ug(),160)?(eFh(Pp(e.Ug(),160),t),t.a+=" > "):t.a+="Root ",IE((n=e.Tg().zb).substr(0,3),"Elk")?xM(t,n.substr(3)):(t.a+=""+n,t),i=e.zg()){xM((t.a+=" ",t),i);return}if(M4(e,354)&&(c=Pp(e,137).a)){xM((t.a+=" ",t),c);return}for(o=new Ow(e.Ag());o.e!=o.i.gc();)if(c=(a=Pp(epH(o),137)).a){xM((t.a+=" ",t),c);return}if(M4(e,352)&&((r=Pp(e,79)).b||(r.b=new Ih(e6m,r,4,7)),0!=r.b.i&&(r.c||(r.c=new Ih(e6m,r,5,8)),0!=r.c.i))){for(t.a+=" (",s=new AF((r.b||(r.b=new Ih(e6m,r,4,7)),r.b));s.e!=s.i.gc();)s.e>0&&(t.a+=eUd),eFh(Pp(epH(s),160),t);for(t.a+=eGH,u=new AF((r.c||(r.c=new Ih(e6m,r,5,8)),r.c));u.e!=u.i.gc();)u.e>0&&(t.a+=eUd),eFh(Pp(epH(u),160),t);t.a+=")"}}function eFp(e,t,n){var r,i,a,o,s,u,c,l,f,d,h;if(a=Pp(e_k(e,(eBU(),tnc)),79)){for(r=e.a,C5(i=new TS(n),eyr(e)),eag(e.d.i,e.c.i)?(d=e.c,f=esp(eow(vx(e50,1),eUP,8,0,[d.n,d.a])),C6(f,n)):f=GX(e.c),qQ(r,f,r.a,r.a.a),h=GX(e.d),null!=e_k(e,tnC)&&C5(h,Pp(e_k(e,tnC),8)),qQ(r,h,r.c.b,r.c),etH(r,i),o=eLO(a,!0,!0),ern(o,Pp(etj((a.b||(a.b=new Ih(e6m,a,4,7)),a.b),0),82)),err(o,Pp(etj((a.c||(a.c=new Ih(e6m,a,5,8)),a.c),0),82)),eNI(r,o),l=new fz(e.b);l.a=0){for(u=null,s=new KB(l.a,c+1);s.bo?1:Te(isNaN(0),isNaN(o)))<0&&(enj(eVU),(eB4.Math.abs(o-1)<=eVU||1==o||isNaN(o)&&isNaN(1)?0:o<1?-1:o>1?1:Te(isNaN(o),isNaN(1)))<0)&&(enj(eVU),(eB4.Math.abs(0-s)<=eVU||0==s||isNaN(0)&&isNaN(s)?0:0s?1:Te(isNaN(0),isNaN(s)))<0)&&(enj(eVU),(eB4.Math.abs(s-1)<=eVU||1==s||isNaN(s)&&isNaN(1)?0:s<1?-1:s>1?1:Te(isNaN(s),isNaN(1)))<0)))}function eFg(e){var t,n,r,i,a,o,s,u,c,l,f,d,h,p,b,m,g,v,y,w,_,E;for(f=new BU(new fQ(e));f.b!=f.c.a.d;)for(b=0,s=Pp((l=JO(f)).d,56),t=Pp(l.e,56),w=(null==(o=s.Tg()).i&&eNT(o),o.i).length;b=0&&b=c.c.c.length?VJ((eEn(),e8N),e8D):VJ((eEn(),e8D),e8D),l*=2,a=n.a.g,n.a.g=eB4.Math.max(a,a+(l-a)),o=n.b.g,n.b.g=eB4.Math.max(o,o+(l-o)),i=t}}}function eFw(e,t,n,r,i){var a,o,s,u,c,l,f,d,h,p,b,m,g,v,y,w,_;for(_=Pg(e),l=new p0,f=(s=e.c.length)-1,d=s+1;0!=_.a.c;){for(;0!=n.b;)y=(A6(0!=n.b),Pp(etw(n,n.a.a),112)),zS(_.a,y),y.g=f--,eNg(y,t,n,r);for(;0!=t.b;)w=(A6(0!=t.b),Pp(etw(t,t.a.a),112)),zS(_.a,w),w.g=d++,eNg(w,t,n,r);for(c=eHt,g=(o=new C1(new Ap(new fP(_.a).a).b),new fR(o));Et(g.a.a);){if(m=(a=AJ(g.a),Pp(a.cd(),112)),!r&&m.b>0&&m.a<=0){l.c=Je(e1R,eUp,1,0,5,1),l.c[l.c.length]=m;break}(b=m.i-m.d)>=c&&(b>c&&(l.c=Je(e1R,eUp,1,0,5,1),c=b),l.c[l.c.length]=m)}0!=l.c.length&&(u=Pp(RJ(l,ebO(i,l.c.length)),112),zS(_.a,u),u.g=d++,eNg(u,t,n,r),l.c=Je(e1R,eUp,1,0,5,1))}for(v=e.c.length+1,p=new fz(e);p.a0&&(d.d+=l.n.d,d.d+=l.d),d.a>0&&(d.a+=l.n.a,d.a+=l.d),d.b>0&&(d.b+=l.n.b,d.b+=l.d),d.c>0&&(d.c+=l.n.c,d.c+=l.d),d}function eFx(e,t,n){var r,i,a,o,s,u,c,l,f,d,h,p;for(d=n.d,f=n.c,o=(a=new kl(n.f.a+n.d.b+n.d.c,n.f.b+n.d.d+n.d.a)).b,c=new fz(e.a);c.a=(l=Pp(Pp(Zq(e.r,t),21),84)).gc()||t==(eYu(),tby)||t==(eYu(),tbY)){eYY(e,t);return}for(b=e.u.Hc((ekU(),tbg)),n=t==(eYu(),tbw)?(eaY(),e4c):(eaY(),e4o),g=t==tbw?(QQ(),e3U):(QQ(),e3$),r=vN(DP(n),e.s),m=t==tbw?eHQ:eH1,c=l.Kc();c.Ob();)(s=Pp(c.Pb(),111)).c&&!(s.c.d.c.length<=0)&&(p=s.b.rf(),h=s.e,(d=(f=s.c).i).b=(a=f.n,f.e.a+a.b+a.c),d.a=(o=f.n,f.e.b+o.d+o.a),b?(d.c=h.a-(i=f.n,f.e.a+i.b+i.c)-e.s,b=!1):d.c=h.a+p.a+e.s,$C(g,ezr),f.f=g,JC(f,(Qs(),e3Y)),P_(r.d,new jH(d,elO(r,d))),m=t==tbw?eB4.Math.min(m,h.b):eB4.Math.max(m,h.b+s.b.rf().b));for(m+=t==tbw?-e.t:e.t,edp((r.e=m,r)),u=l.Kc();u.Ob();)(s=Pp(u.Pb(),111)).c&&!(s.c.d.c.length<=0)&&(d=s.c.i,d.c-=s.e.a,d.d-=s.e.b)}function eFA(e,t,n){var r;if(ewG(n,"StretchWidth layering",1),0==t.a.c.length){eEj(n);return}for(e.c=t,e.t=0,e.u=0,e.i=eHQ,e.g=eH1,e.d=gP(LV(e_k(t,(eBy(),toO)))),ebn(e),eTR(e),eTP(e),eyo(e),ed2(e),e.i=eB4.Math.max(1,e.i),e.g=eB4.Math.max(1,e.g),e.d=e.d/e.i,e.f=e.g/e.i,e.s=ebZ(e),r=new By(e.c),P_(e.c.b,r),e.r=WC(e.p),e.n=zb(e.k,e.k.length);0!=e.r.c.length;)e.o=ecu(e),!e.o||ess(e)&&0!=e.b.a.gc()?(ey6(e,r),r=new By(e.c),P_(e.c.b,r),er7(e.a,e.b),e.b.a.$b(),e.t=e.u,e.u=0):ess(e)?(e.c.b.c=Je(e1R,eUp,1,0,5,1),r=new By(e.c),P_(e.c.b,r),e.t=0,e.u=0,e.b.a.$b(),e.a.a.$b(),++e.f,e.r=WC(e.p),e.n=zb(e.k,e.k.length)):(Gu(e.o,r),QA(e.r,e.o),Yf(e.b,e.o),e.t=e.t-e.k[e.o.p]*e.d+e.j[e.o.p],e.u+=e.e[e.o.p]*e.d);t.a.c=Je(e1R,eUp,1,0,5,1),eSj(t.b),eEj(n)}function eFL(e){var t,n,r,i;for(_r(UJ(new R1(null,new Gq(e.a.b,16)),new rH),new r$),eyR(e),_r(UJ(new R1(null,new Gq(e.a.b,16)),new rz),new rG),e.c==(efE(),tpM)&&(_r(UJ(eeh(new R1(null,new Gq(new fk(e.f),1)),new rW),new rK),new hn(e)),_r(UJ(UQ(eeh(eeh(new R1(null,new Gq(e.d.b,16)),new rV),new rq),new rZ),new rX),new hi(e))),i=new kl(eHQ,eHQ),t=new kl(eH1,eH1),r=new fz(e.a.b);r.a0&&(e.c[t.c.p][t.p].d+=eMU(e.i,24)*e$h*.07000000029802322-.03500000014901161,e.c[t.c.p][t.p].a=e.c[t.c.p][t.p].d/e.c[t.c.p][t.p].b)}}function eFD(e){var t,n,r,i,a,o,s,u,c,l,f,d,h,p,b,m;for(p=new fz(e);p.ar.d,r.d=eB4.Math.max(r.d,t),s&&n&&(r.d=eB4.Math.max(r.d,r.a),r.a=r.d+i);break;case 3:n=t>r.a,r.a=eB4.Math.max(r.a,t),s&&n&&(r.a=eB4.Math.max(r.a,r.d),r.d=r.a+i);break;case 2:n=t>r.c,r.c=eB4.Math.max(r.c,t),s&&n&&(r.c=eB4.Math.max(r.b,r.c),r.b=r.c+i);break;case 4:n=t>r.b,r.b=eB4.Math.max(r.b,t),s&&n&&(r.b=eB4.Math.max(r.b,r.c),r.c=r.b+i)}}}function eFj(e){var t,n,r,i,a,o,s,u,c,l,f;for(c=new fz(e);c.a0||l.j==tbY&&l.e.c.length-l.g.c.length<0)){t=!1;break}for(i=new fz(l.g);i.a=c&&_>=m&&(d+=p.n.b+b.n.b+b.a.b-w,++s));if(n)for(o=new fz(v.e);o.a=c&&_>=m&&(d+=p.n.b+b.n.b+b.a.b-w,++s))}s>0&&(E+=d/s,++h)}h>0?(t.a=i*E/h,t.g=h):(t.a=0,t.g=0)}function eFY(e,t){var n,r,i,a,o,s,u,c,l,f,d;for(i=new fz(e.a.b);i.aeH1||t.o==tuE&&l0&&eno(g,w*E),_>0&&ens(g,_*S);for(ear(e.b,new te),t=new p0,s=new esz(new fS(e.c).a);s.b;)o=etz(s),r=Pp(o.cd(),79),n=Pp(o.dd(),395).a,i=eLO(r,!1,!1),f=ewM(e_I(r),eEF(i),n),eNI(f,i),(y=e_D(r))&&-1==QI(t,y,0)&&(t.c[t.c.length]=y,Hw(y,(A6(0!=f.b),Pp(f.a.a.c,8)),n));for(m=new esz(new fS(e.d).a);m.b;)b=etz(m),r=Pp(b.cd(),79),n=Pp(b.dd(),395).a,i=eLO(r,!1,!1),f=ewM(e_P(r),esP(eEF(i)),n),eNI(f=esP(f),i),(y=e_N(r))&&-1==QI(t,y,0)&&(t.c[t.c.length]=y,Hw(y,(A6(0!=f.b),Pp(f.c.b.c,8)),n))}function eFz(e,t,n,r){var i,a,o,s,u,c,l,f,d,h,p,b,m,g,v,y,w,_,E,S,k;if(0!=n.c.length){for(p=new p0,h=new fz(n);h.aeB4.Math.abs(v-m))continue;v1)for(h=new eRM(p,y,r),qX(y,new SV(e,h)),o.c[o.c.length]=h,f=y.a.ec().Kc();f.Ob();)QA(a,(l=Pp(f.Pb(),46)).b);if(s.a.gc()>1)for(h=new eRM(p,s,r),qX(s,new Sq(e,h)),o.c[o.c.length]=h,f=s.a.ec().Kc();f.Ob();)QA(a,(l=Pp(f.Pb(),46)).b)}}function eFJ(e){_Y(e,new ewB(vZ(vQ(vq(vJ(vX(new oc,eqp),"ELK Radial"),'A radial layout provider which is based on the algorithm of Peter Eades published in "Drawing free trees.", published by International Institute for Advanced Study of Social Information Science, Fujitsu Limited in 1991. The radial layouter takes a tree and places the nodes in radial order around the root. The nodes of the same tree level are placed on the same radius.'),new aW),eqp))),KE(e,eqp,eVT,epB(tlw)),KE(e,eqp,eGi,epB(tlS)),KE(e,eqp,eGh,epB(tlh)),KE(e,eqp,eGM,epB(tlp)),KE(e,eqp,eGd,epB(tlb)),KE(e,eqp,eGp,epB(tld)),KE(e,eqp,eGf,epB(tlm)),KE(e,eqp,eGb,epB(tly)),KE(e,eqp,eql,epB(tll)),KE(e,eqp,eqc,epB(tlf)),KE(e,eqp,eqh,epB(tlg)),KE(e,eqp,eqs,epB(tlv)),KE(e,eqp,equ,epB(tl_)),KE(e,eqp,eqf,epB(tlE)),KE(e,eqp,eqd,epB(tlk))}function eFQ(e){var t;if(this.r=U2(new ex,new eT),this.b=new efY(Pp(Y9(e6a),290)),this.p=new efY(Pp(Y9(e6a),290)),this.i=new efY(Pp(Y9(e3n),290)),this.e=e,this.o=new TS(e.rf()),this.D=e.Df()||gN(LK(e.We((eBB(),thh)))),this.A=Pp(e.We((eBB(),thx)),21),this.B=Pp(e.We(thL),21),this.q=Pp(e.We(thV),98),this.u=Pp(e.We(thJ),21),!e_y(this.u))throw p7(new gq("Invalid port label placement: "+this.u));if(this.v=gN(LK(e.We(th1))),this.j=Pp(e.We(thS),21),!eM1(this.j))throw p7(new gq("Invalid node label placement: "+this.j));this.n=Pp(egG(e,th_),116),this.k=gP(LV(egG(e,tps))),this.d=gP(LV(egG(e,tpo))),this.w=gP(LV(egG(e,tpp))),this.s=gP(LV(egG(e,tpu))),this.t=gP(LV(egG(e,tpc))),this.C=Pp(egG(e,tpd),142),this.c=2*this.d,t=!this.B.Hc((eI3(),tbX)),this.f=new eh6(0,t,0),this.g=new eh6(1,t,0),gh(this.f,(etx(),e3N),this.g)}function eF1(e,t,n,r,i){var a,o,s,u,l,f,d,h,p,b,m,g,v,y,w,_,E,S,k,x,T,M;for(w=0,b=0,p=0,h=1,y=new Ow((e.a||(e.a=new FQ(e6k,e,10,11)),e.a));y.e!=y.i.gc();)g=Pp(epH(y),33),h+=VG(new Fa(OH(eOi(g).a.Kc(),new c))),x=g.g,b=eB4.Math.max(b,x),d=g.f,p=eB4.Math.max(p,d),w+=x*d;for(m=(e.a||(e.a=new FQ(e6k,e,10,11)),e.a).i,o=w+2*r*r*h*m,a=eB4.Math.sqrt(o),u=eB4.Math.max(a*n,b),s=eB4.Math.max(a/n,p),v=new Ow((e.a||(e.a=new FQ(e6k,e,10,11)),e.a));v.e!=v.i.gc();)g=Pp(epH(v),33),T=i.b+(eMU(t,26)*e$l+eMU(t,27)*e$f)*(u-g.g),M=i.b+(eMU(t,26)*e$l+eMU(t,27)*e$f)*(s-g.f),eno(g,T),ens(g,M);for(k=u+(i.b+i.c),S=s+(i.d+i.a),E=new Ow((e.a||(e.a=new FQ(e6k,e,10,11)),e.a));E.e!=E.i.gc();)for(_=Pp(epH(E),33),f=new Fa(OH(eOi(_).a.Kc(),new c));eTk(f);)l=Pp(ZC(f),79),eTc(l)||eBv(l,t,k,S);eYx(e,k+=i.b+i.c,S+=i.d+i.a,!1,!0)}function eF0(e){var t,n,r,i,a,o,s,u,c,l,f;if(null==e)throw p7(new vo(eUg));if(c=e,a=e.length,u=!1,a>0&&(45==(t=(GV(0,e.length),e.charCodeAt(0)))||43==t)&&(e=e.substr(1),--a,u=45==t),0==a)throw p7(new vo(eHJ+c+'"'));for(;e.length>0&&(GV(0,e.length),48==e.charCodeAt(0));)e=e.substr(1),--a;if(a>(eDZ(),e0G)[10])throw p7(new vo(eHJ+c+'"'));for(i=0;i0&&(f=-parseInt(e.substr(0,r),10),e=e.substr(r),a-=r,n=!1);a>=o;){if(r=parseInt(e.substr(0,o),10),e=e.substr(o),a-=o,n)n=!1;else{if(0>ecd(f,s))throw p7(new vo(eHJ+c+'"'));f=efn(f,l)}f=efe(f,r)}if(ecd(f,0)>0||!u&&(f=QC(f),0>ecd(f,0)))throw p7(new vo(eHJ+c+'"'));return f}function eF2(e,t){var n,r,i,a,o,s,u;if(Rm(),this.a=new MW(this),this.b=e,this.c=t,this.f=Yg(QZ((eSp(),tvc),t)),this.f.dc()){if((s=ev1(tvc,e))==t)for(this.e=!0,this.d=new p0,this.f=new o5,this.f.Fc(eQB),Pp(eP9(Qq(tvc,etP(e)),""),26)==e&&this.f.Fc(Fr(tvc,etP(e))),i=eIT(tvc,e).Kc();i.Ob();)switch(Ur(QZ(tvc,r=Pp(i.Pb(),170)))){case 4:this.d.Fc(r);break;case 5:this.f.Gc(Yg(QZ(tvc,r)))}else if(_4(),Pp(t,66).Oj())for(o=0,this.e=!0,this.f=null,this.d=new p0,u=(null==e.i&&eNT(e),e.i).length;o=0&&o0&&(Pp(UA(e.b,t),124).a.b=n)}function eF4(e,t){var n,r,i,a,o,s,u,c,l,f,d,h,p,b,m,g;for(ewG(t,"Comment pre-processing",1),n=0,u=new fz(e.a);u.a0&&64!=(u=(GV(0,t.length),t.charCodeAt(0)))){if(37==u&&(f=t.lastIndexOf("%"),c=!1,0!=f&&(f==d-1||(c=(GV(f+1,t.length),46==t.charCodeAt(f+1)))))){if(y=IE("%",o=t.substr(1,f-1))?null:eYy(o),r=0,c)try{r=eDa(t.substr(f+2),eHt,eUu)}catch(w){if(w=eoa(w),M4(w,127))throw s=w,p7(new QH(s));throw p7(w)}for(m=erW(e.Wg());m.Ob();)if(M4(p=eaO(m),510)&&(v=(i=Pp(p,590)).d,(null==y?null==v:IE(y,v))&&0==r--))return i;return null}if(h=-1==(l=t.lastIndexOf("."))?t:t.substr(0,l),n=0,-1!=l)try{n=eDa(t.substr(l+1),eHt,eUu)}catch(_){if(_=eoa(_),M4(_,127))h=t;else throw p7(_)}for(h=IE("%",h)?null:eYy(h),b=erW(e.Wg());b.Ob();)if(M4(p=eaO(b),191)&&(g=(a=Pp(p,191)).ne(),(null==h?null==g:IE(h,g))&&0==n--))return a;return null}return eR2(e,t)}function eF8(e){var t,n,r,i,a,o,s,u,c,l,f,d,h,p,b,m,g,v,y,w,_,E,S,k,x,T,M;for(E=new p0,p=new fz(e.b);p.a=e.length)return{done:!0};var r=e[n++];return{value:[r,t.get(r)],done:!1}}}},eCi()||(e.prototype.createObject=function(){return{}},e.prototype.get=function(e){return this.obj[":"+e]},e.prototype.set=function(e,t){this.obj[":"+e]=t},e.prototype[e$c]=function(e){delete this.obj[":"+e]},e.prototype.keys=function(){var e=[];for(var t in this.obj)58==t.charCodeAt(0)&&e.push(t.substring(1));return e}),e}function eYt(e){var t,n,r,i,a,o,s,u,c,l,f,d,h,p,b,m;if(eNl(),null==e)return null;if(0==(f=8*e.length))return"";for(u=0,s=f%24,h=f/24|0,a=null,a=Je(tyw,eHl,25,4*(d=0!=s?h+1:h),15,1),c=0,l=0,t=0,n=0,r=0,o=0,i=0;u>24,c=(3&t)<<24>>24,p=(-128&t)==0?t>>2<<24>>24:(t>>2^192)<<24>>24,b=(-128&n)==0?n>>4<<24>>24:(n>>4^240)<<24>>24,m=(-128&r)==0?r>>6<<24>>24:(r>>6^252)<<24>>24,a[o++]=tvQ[p],a[o++]=tvQ[b|c<<4],a[o++]=tvQ[l<<2|m],a[o++]=tvQ[63&r];return 8==s?(c=(3&(t=e[i]))<<24>>24,p=(-128&t)==0?t>>2<<24>>24:(t>>2^192)<<24>>24,a[o++]=tvQ[p],a[o++]=tvQ[c<<4],a[o++]=61,a[o++]=61):16==s&&(t=e[i],l=(15&(n=e[i+1]))<<24>>24,c=(3&t)<<24>>24,p=(-128&t)==0?t>>2<<24>>24:(t>>2^192)<<24>>24,b=(-128&n)==0?n>>4<<24>>24:(n>>4^240)<<24>>24,a[o++]=tvQ[p],a[o++]=tvQ[b|c<<4],a[o++]=tvQ[l<<2],a[o++]=61),ehv(a,0,a.length)}function eYn(e,t){var n,r,i,a,o,s,u;if(0==e.e&&e.p>0&&(e.p=-(e.p-1)),e.p>eHt&&V9(t,e.p-eHx),o=t.q.getDate(),zC(t,1),e.k>=0&&z7(t,e.k),e.c>=0?zC(t,e.c):e.k>=0?(r=35-(u=new est(t.q.getFullYear()-eHx,t.q.getMonth(),35)).q.getDate(),zC(t,eB4.Math.min(r,o))):zC(t,o),e.f<0&&(e.f=t.q.getHours()),e.b>0&&e.f<12&&(e.f+=12),M5(t,24==e.f&&e.g?0:e.f),e.j>=0&&Z0(t,e.j),e.n>=0&&Jf(t,e.n),e.i>=0&&xN(t,eft(efn(eyt(eap(t.q.getTime()),eHf),eHf),e.i)),e.a&&(V9(i=new wW,i.q.getFullYear()-eHx-80),Ei(eap(t.q.getTime()),eap(i.q.getTime()))&&V9(t,i.q.getFullYear()-eHx+100)),e.d>=0){if(-1==e.c)(n=(7+e.d-t.q.getDay())%7)>3&&(n-=7),s=t.q.getMonth(),zC(t,t.q.getDate()+n),t.q.getMonth()!=s&&zC(t,t.q.getDate()+(n>0?-7:7));else if(t.q.getDay()!=e.d)return!1}return e.o>eHt&&(a=t.q.getTimezoneOffset(),xN(t,eft(eap(t.q.getTime()),(e.o-a)*60*eHf))),!0}function eYr(e,t){var n,r,i,a,o,s,u,c,l,f,d,h,p,b,m,g,v,y,w;if(i=e_k(t,(eBU(),tnc)),M4(i,239)){for(p=Pp(i,33),b=t.e,d=new TS(t.c),a=t.d,d.a+=a.b,d.b+=a.d,w=Pp(eT8(p,(eBy(),ta9)),174),Aa(w,(eI3(),tbJ))&&(h=Pp(eT8(p,ta7),116),lR(h,a.a),lG(h,a.d),lj(h,a.b),lW(h,a.c)),n=new p0,l=new fz(t.a);l.a0&&P_(e.p,f),P_(e.o,f);t-=r,p=u+t,l+=t*e.e,q1(e.a,s,ell(p)),q1(e.b,s,l),e.j=eB4.Math.max(e.j,p),e.k=eB4.Math.max(e.k,l),e.d+=t,t+=m}}function eYu(){var e;eYu=A,tbF=new kS(ezo,0),tbw=new kS(ezb,1),tby=new kS(ezm,2),tbj=new kS(ezg,3),tbY=new kS(ezv,4),tbx=(Hj(),new vd((e=Pp(yw(e6a),9),new I1(e,Pp(CY(e,e.length),9),0)))),tbT=ecO(jL(tbw,eow(vx(e6a,1),eGj,61,0,[]))),tb_=ecO(jL(tby,eow(vx(e6a,1),eGj,61,0,[]))),tbN=ecO(jL(tbj,eow(vx(e6a,1),eGj,61,0,[]))),tbR=ecO(jL(tbY,eow(vx(e6a,1),eGj,61,0,[]))),tbC=ecO(jL(tbw,eow(vx(e6a,1),eGj,61,0,[tbj]))),tbk=ecO(jL(tby,eow(vx(e6a,1),eGj,61,0,[tbY]))),tbD=ecO(jL(tbw,eow(vx(e6a,1),eGj,61,0,[tbY]))),tbM=ecO(jL(tbw,eow(vx(e6a,1),eGj,61,0,[tby]))),tbP=ecO(jL(tbj,eow(vx(e6a,1),eGj,61,0,[tbY]))),tbE=ecO(jL(tby,eow(vx(e6a,1),eGj,61,0,[tbj]))),tbL=ecO(jL(tbw,eow(vx(e6a,1),eGj,61,0,[tby,tbY]))),tbS=ecO(jL(tby,eow(vx(e6a,1),eGj,61,0,[tbj,tbY]))),tbI=ecO(jL(tbw,eow(vx(e6a,1),eGj,61,0,[tbj,tbY]))),tbO=ecO(jL(tbw,eow(vx(e6a,1),eGj,61,0,[tby,tbj]))),tbA=ecO(jL(tbw,eow(vx(e6a,1),eGj,61,0,[tby,tbj,tbY])))}function eYc(e,t){var n,r,i,a,o,s,u,c,l,f,d,h,p,b,m,g,v,y;if(0!=t.b){for(h=new _n,s=null,p=null,r=zy(eB4.Math.floor(eB4.Math.log(t.b)*eB4.Math.LOG10E)+1),u=0,y=epL(t,0);y.b!=y.d.c;)for(g=Pp(Vv(y),86),xc(p)!==xc(e_k(g,(eR6(),tca)))&&(p=Lq(e_k(g,tca)),u=0),eo3(g,tca,s=null!=p?p+WB(u++,r):WB(u++,r)),m=(i=epL(new hz(g).a.d,0),new hG(i));yV(m.a);)qQ(h,b=Pp(Vv(m.a),188).c,h.c.b,h.c),eo3(b,tca,s);for(o=0,d=new p2;o=u){A6(g.b>0),g.a.Xb(g.c=--g.b);break}b.a>c&&(i?(eoc(i.b,b.b),i.a=eB4.Math.max(i.a,b.a),BH(g)):(P_(b.b,f),b.c=eB4.Math.min(b.c,c),b.a=eB4.Math.max(b.a,u),i=b))}i||((i=new mi).c=c,i.a=u,CD(g,i),P_(i.b,f))}for(s=t.b,l=0,m=new fz(r);m.as?1:0:(e.b&&(e.b._b(a)&&(i=Pp(e.b.xc(a),19).a),e.b._b(u)&&(s=Pp(e.b.xc(u),19).a)),is?1:0);return 0!=t.e.c.length&&0!=n.g.c.length?1:-1}function eYd(e,t){var n,r,i,a,o,s,u,c,l,f,d,h,p,b,m,g,v,y,w,_,E,S;for(ewG(t,eWo,1),b=new p0,E=new p0,c=new fz(e.b);c.a0&&(w-=p),eRU(o,w),f=0,h=new fz(o.a);h.a0),s.a.Xb(s.c=--s.b)),u=.4*r*f,!a&&s.bt.d.c){if((p=e.c[t.a.d])==(g=e.c[d.a.d]))continue;eAx(_f(_l(_d(_c(new bQ,1),100),p),g))}}}}}}function eYy(e){var t,n,r,i,a,o,s,u;if(eRe(),null==e)return null;if((i=x7(e,e_n(37)))<0)return e;for(u=new O0(e.substr(0,i)),t=Je(tyk,eZ8,25,4,15,1),s=0,r=0,o=e.length;ii+2&&eoV((GV(i+1,e.length),e.charCodeAt(i+1)),tmZ,tmX)&&eoV((GV(i+2,e.length),e.charCodeAt(i+2)),tmZ,tmX)){if(n=P0((GV(i+1,e.length),e.charCodeAt(i+1)),(GV(i+2,e.length),e.charCodeAt(i+2))),i+=2,r>0?(192&n)==128?t[s++]=n<<24>>24:r=0:n>=128&&((224&n)==192?(t[s++]=n<<24>>24,r=2):(240&n)==224?(t[s++]=n<<24>>24,r=3):(248&n)==240&&(t[s++]=n<<24>>24,r=4)),r>0){if(s==r){switch(s){case 2:Bd(u,((31&t[0])<<6|63&t[1])&eHd);break;case 3:Bd(u,((15&t[0])<<12|(63&t[1])<<6|63&t[2])&eHd)}s=0,r=0}}else{for(a=0;a0){if(o+r>e.length)return!1;s=exf(e.substr(0,o+r),t)}else s=exf(e,t)}switch(a){case 71:return s=ew6(e,o,eow(vx(e17,1),eUP,2,6,[eHM,eHO]),t),i.e=s,!0;case 77:return eLY(e,t,i,s,o);case 76:return eLB(e,t,i,s,o);case 69:return eS$(e,t,o,i);case 99:return eSz(e,t,o,i);case 97:return s=ew6(e,o,eow(vx(e17,1),eUP,2,6,["AM","PM"]),t),i.b=s,!0;case 121:return eLU(e,t,o,s,n,i);case 100:if(s<=0)return!1;return i.c=s,!0;case 83:if(s<0)return!1;return edc(s,o,t[0],i);case 104:12==s&&(s=0);case 75:case 72:if(s<0)return!1;return i.f=s,i.g=!1,!0;case 107:if(s<0)return!1;return i.f=s,i.g=!0,!0;case 109:if(s<0)return!1;return i.j=s,!0;case 115:if(s<0)return!1;return i.n=s,!0;case 90:if(oE&&(p.c=E-p.b),P_(o.d,new jH(p,elO(o,p))),v=t==tbw?eB4.Math.max(v,b.b+c.b.rf().b):eB4.Math.min(v,b.b));for(v+=t==tbw?e.t:-e.t,(y=edp((o.e=v,o)))>0&&(Pp(UA(e.b,t),124).a.b=y),l=d.Kc();l.Ob();)(c=Pp(l.Pb(),111)).c&&!(c.c.d.c.length<=0)&&(p=c.c.i,p.c-=c.e.a,p.d-=c.e.b)}function eYE(e){var t,n,r,i,a,o,s,u,l,f,d,h,p;for(t=new p2,u=new Ow(e);u.e!=u.i.gc();){for(s=Pp(epH(u),33),n=new bV,Um(e9t,s,n),p=new e5,i=Pp(qE(new R1(null,new YI(new Fa(OH(eOr(s).a.Kc(),new c)))),jD(p,JF(new U,new B,new en,eow(vx(e2L,1),eU4,132,0,[(eum(),e2U)])))),83),enC(n,Pp(i.xc((OQ(),!0)),14),new e6),o=(r=Pp(qE(UJ(Pp(i.xc(!1),15).Lc(),new e9),JF(new U,new B,new en,eow(vx(e2L,1),eU4,132,0,[e2U]))),15)).Kc();o.Ob();)(h=e_D(a=Pp(o.Pb(),79)))&&((l=Pp(xu($I(t.f,h)),21))||(l=eA7(h),eS9(t.f,h,l)),er7(n,l));for(i=Pp(qE(new R1(null,new YI(new Fa(OH(eOi(s).a.Kc(),new c)))),jD(p,JF(new U,new B,new en,eow(vx(e2L,1),eU4,132,0,[e2U])))),83),enC(n,Pp(i.xc(!0),14),new e8),d=(r=Pp(qE(UJ(Pp(i.xc(!1),15).Lc(),new e7),JF(new U,new B,new en,eow(vx(e2L,1),eU4,132,0,[e2U]))),15)).Kc();d.Ob();)(h=e_N(f=Pp(d.Pb(),79)))&&((l=Pp(xu($I(t.f,h)),21))||(l=eA7(h),eS9(t.f,h,l)),er7(n,l))}}function eYS(e,t){var n,r,i,a,o,s,u,c,l,f,d,h,p,b;if(ePN(),(u=0>ecd(e,0))&&(e=QC(e)),0==ecd(e,0))switch(t){case 0:return"0";case 1:return e$e;case 2:return"0.00";case 3:return"0.000";case 4:return"0.0000";case 5:return"0.00000";case 6:return"0.000000";default:return h=new vc,t<0?(h.a+="0E+",h):(h.a+="0E",h),h.a+=t==eHt?"2147483648":""+-t,h.a}f=Je(tyw,eHl,25,(l=18)+1,15,1),n=l,b=e;do c=b,b=eyt(b,10),f[--n]=jE(eft(48,efe(c,efn(b,10))))&eHd;while(0!=ecd(b,0))if(i=efe(efe(efe(l,n),t),1),0==t)return u&&(f[--n]=45),ehv(f,n,l-n);if(t>0&&ecd(i,-6)>=0){if(ecd(i,0)>=0){for(a=n+jE(i),s=l-1;s>=a;s--)f[s+1]=f[s];return f[++a]=46,u&&(f[--n]=45),ehv(f,n,l-n+1)}for(o=2;Ei(o,eft(QC(i),1));o++)f[--n]=48;return f[--n]=46,f[--n]=48,u&&(f[--n]=45),ehv(f,n,l-n)}return p=n+1,r=l,d=new vl,u&&(d.a+="-"),r-p>=1?(Bd(d,f[n]),d.a+=".",d.a+=ehv(f,n+1,l-n-1)):d.a+=ehv(f,n,l-n),d.a+="E",ecd(i,0)>0&&(d.a+="+"),d.a+=""+Fb(i),d.a}function eYk(e,t,n){var r,i,a,o,s,u,c,l,f,d,h;if(e.e.a.$b(),e.f.a.$b(),e.c.c=Je(e1R,eUp,1,0,5,1),e.i.c=Je(e1R,eUp,1,0,5,1),e.g.a.$b(),t)for(o=new fz(t.a);o.a=1&&(_-c>0&&p>=0?(eno(f,f.i+w),ens(f,f.j+u*c)):_-c<0&&h>=0&&(eno(f,f.i+w*_),ens(f,f.j+u)));return ebu(e,(eBB(),thx),(ed6(),a=Pp(yw(e6o),9),new I1(a,Pp(CY(a,a.length),9),0))),new kl(E,l)}function eYT(e){var t,n,r,i,a,o,s,u,c,l,f,d,h,p;if(h=z$(ewH(Pp(etj((e.b||(e.b=new Ih(e6m,e,4,7)),e.b),0),82))),p=z$(ewH(Pp(etj((e.c||(e.c=new Ih(e6m,e,5,8)),e.c),0),82))),f=h==p,s=new yb,(t=Pp(eT8(e,(euw(),tpj)),74))&&t.b>=2){if(0==(e.a||(e.a=new FQ(e6v,e,6,6)),e.a).i)n=(yT(),i=new oQ),JL((e.a||(e.a=new FQ(e6v,e,6,6)),e.a),n);else if((e.a||(e.a=new FQ(e6v,e,6,6)),e.a).i>1)for(d=new AF((e.a||(e.a=new FQ(e6v,e,6,6)),e.a));d.e!=d.i.gc();)ey_(d);eNI(t,Pp(etj((e.a||(e.a=new FQ(e6v,e,6,6)),e.a),0),202))}if(f)for(r=new Ow((e.a||(e.a=new FQ(e6v,e,6,6)),e.a));r.e!=r.i.gc();)for(n=Pp(epH(r),202),c=new Ow((n.a||(n.a=new O_(e6h,n,5)),n.a));c.e!=c.i.gc();)u=Pp(epH(c),469),s.a=eB4.Math.max(s.a,u.a),s.b=eB4.Math.max(s.b,u.b);for(o=new Ow((e.n||(e.n=new FQ(e6S,e,1,7)),e.n));o.e!=o.i.gc();)a=Pp(epH(o),137),(l=Pp(eT8(a,tp$),8))&&TP(a,l.a,l.b),f&&(s.a=eB4.Math.max(s.a,a.i+a.g),s.b=eB4.Math.max(s.b,a.j+a.f));return s}function eYM(e,t,n){var r,i,a,o,s,u,c,l,f,d,h,p,b,m,g,v,y,w,_,E,k,x;for(s=0,y=t.c.length,i=new eIW(e.a,n,null,null),x=Je(tyx,eH5,25,y,15,1),b=Je(tyx,eH5,25,y,15,1),p=Je(tyx,eH5,25,y,15,1),m=0;sx[u]&&(m=u),f=new fz(e.a.b);f.ah&&(a&&(xL(E,d),xL(k,ell(c.b-1))),A=n.b,L+=d+t,d=0,l=eB4.Math.max(l,n.b+n.c+O)),eno(s,A),ens(s,L),l=eB4.Math.max(l,A+O+n.c),d=eB4.Math.max(d,f),A+=O+t;if(l=eB4.Math.max(l,r),(M=L+d+n.a)ez8,x=eB4.Math.abs(d.b-p.b)>ez8,(!n&&k&&x||n&&(k||x))&&P7(m.a,w)),er7(m.a,r),d=0==r.b?w:(A6(0!=r.b),Pp(r.c.b.c,8)),ea1(h,f,b),eiy(i)==S&&(Bq(S.i)!=i.a&&eSb(b=new yb,Bq(S.i),v),eo3(m,tnC,b)),eEw(h,m,v),l.a.zc(h,l);Gs(m,_),Go(m,S)}for(c=l.a.ec().Kc();c.Ob();)Gs(u=Pp(c.Pb(),17),null),Go(u,null);eEj(t)}function eYC(e){var t,n,r,i,a,o,s,u,c,l,f,d,h,p,b,m,g,v,y,w;if(1==e.gc())return Pp(e.Xb(0),231);if(0>=e.gc())return new Z5;for(i=e.Kc();i.Ob();){for(n=Pp(i.Pb(),231),p=0,l=eUu,f=eUu,u=eHt,c=eHt,h=new fz(n.e);h.as&&(y=0,w+=o+g,o=0),eIJ(b,n,y,w),t=eB4.Math.max(t,y+m.a),o=eB4.Math.max(o,m.b),y+=m.a+g;return b}function eYI(e,t){var n,r,i,a,o,s,u,c,l,f,d,h,p;switch(l=new mE,e.a.g){case 3:d=Pp(e_k(t.e,(eBU(),tnO)),15),h=Pp(e_k(t.j,tnO),15),p=Pp(e_k(t.f,tnO),15),n=Pp(e_k(t.e,tnT),15),r=Pp(e_k(t.j,tnT),15),i=Pp(e_k(t.f,tnT),15),o=new p0,eoc(o,d),h.Jc(new iN),eoc(o,M4(h,152)?ZK(Pp(h,152)):M4(h,131)?Pp(h,131).a:M4(h,54)?new gn(h):new w$(h)),eoc(o,p),a=new p0,eoc(a,n),eoc(a,M4(r,152)?ZK(Pp(r,152)):M4(r,131)?Pp(r,131).a:M4(r,54)?new gn(r):new w$(r)),eoc(a,i),eo3(t.f,tnO,o),eo3(t.f,tnT,a),eo3(t.f,tnA,t.f),eo3(t.e,tnO,null),eo3(t.e,tnT,null),eo3(t.j,tnO,null),eo3(t.j,tnT,null);break;case 1:er7(l,t.e.a),P7(l,t.i.n),er7(l,eaa(t.j.a)),P7(l,t.a.n),er7(l,t.f.a);break;default:er7(l,t.e.a),er7(l,eaa(t.j.a)),er7(l,t.f.a)}HC(t.f.a),er7(t.f.a,l),Gs(t.f,t.e.c),s=Pp(e_k(t.e,(eBy(),taR)),74),c=Pp(e_k(t.j,taR),74),u=Pp(e_k(t.f,taR),74),(s||c||u)&&(Yp(f=new mE,u),Yp(f,c),Yp(f,s),eo3(t.f,taR,f)),Gs(t.j,null),Go(t.j,null),Gs(t.e,null),Go(t.e,null),Gu(t.a,null),Gu(t.i,null),t.g&&eYI(e,t.g)}function eYD(e){var t,n,r,i,a,o,s,u,c,l,f,d,h,p,b,m;if(eNl(),null==e||(a=Q4(e),(p=elw(a))%4!=0))return null;if(0==(b=p/4|0))return Je(tyk,eZ8,25,0,15,1);for(f=null,t=0,n=0,r=0,i=0,o=0,s=0,u=0,c=0,h=0,d=0,l=0,f=Je(tyk,eZ8,25,3*b,15,1);h>4)<<24>>24,f[d++]=((15&n)<<4|r>>2&15)<<24>>24,f[d++]=(r<<6|i)<<24>>24}if(!wl(o=a[l++])||!wl(s=a[l++]))return null;if(t=tvJ[o],n=tvJ[s],u=a[l++],c=a[l++],-1==tvJ[u]||-1==tvJ[c])return 61==u&&61==c?(15&n)!=0?null:(m=Je(tyk,eZ8,25,3*h+1,15,1),ePD(f,0,m,0,3*h),m[d]=(t<<2|n>>4)<<24>>24,m):61==u||61!=c?null:(3&(r=tvJ[u]))!=0?null:(m=Je(tyk,eZ8,25,3*h+2,15,1),ePD(f,0,m,0,3*h),m[d++]=(t<<2|n>>4)<<24>>24,m[d]=((15&n)<<4|r>>2&15)<<24>>24,m);return r=tvJ[u],i=tvJ[c],f[d++]=(t<<2|n>>4)<<24>>24,f[d++]=((15&n)<<4|r>>2&15)<<24>>24,f[d++]=(r<<6|i)<<24>>24,f}function eYN(e,t){var n,r,i,a,o,s,u,c,l,f,d,h,p,b,m,g,v,y,w,_;for(ewG(t,eWo,1),p=Pp(e_k(e,(eBy(),tag)),218),i=new fz(e.b);i.a=2){for(b=!0,n=Pp(Wx(d=new fz(a.j)),11),h=null;d.a0&&(i=Pp(RJ(m.c.a,E-1),10),o=e.i[i.p],k=eB4.Math.ceil(Mj(e.n,i,m)),a=_.a.e-m.d.d-(o.a.e+i.o.b+i.d.a)-k),c=eHQ,E0&&S.a.e.e-S.a.a-(S.b.e.e-S.b.a)<0,p=y.a.e.e-y.a.a-(y.b.e.e-y.b.a)<0&&S.a.e.e-S.a.a-(S.b.e.e-S.b.a)>0,h=y.a.e.e+y.b.aS.b.e.e+S.a.a,w=0,!b&&!p&&(d?a+f>0?w=f:c-r>0&&(w=r):h&&(a+s>0?w=s:c-v>0&&(w=v))),_.a.e+=w,_.b&&(_.d.e+=w),!1))}function eYR(e,t,n){var r,i,a,o,s,u,c,l,f,d;if(r=new Hr(t.qf().a,t.qf().b,t.rf().a,t.rf().b),i=new TE,e.c)for(o=new fz(t.wf());o.ac&&(r.a+=M3(Je(tyw,eHl,25,-c,15,1))),r.a+="Is",x7(u,e_n(32))>=0)for(i=0;i=r.o.b/2}v?(g=Pp(e_k(r,(eBU(),tnI)),15))?d?a=g:(i=Pp(e_k(r,ttB),15))?a=g.gc()<=i.gc()?g:i:(a=new p0,eo3(r,ttB,a)):(a=new p0,eo3(r,tnI,a)):(i=Pp(e_k(r,(eBU(),ttB)),15))?f?a=i:(g=Pp(e_k(r,tnI),15))?a=i.gc()<=g.gc()?i:g:(a=new p0,eo3(r,tnI,a)):(a=new p0,eo3(r,ttB,a)),a.Fc(e),eo3(e,(eBU(),ttH),n),t.d==n?(Go(t,null),n.e.c.length+n.g.c.length==0&&Gc(n,null),esQ(n)):(Gs(t,null),n.e.c.length+n.g.c.length==0&&Gc(n,null)),HC(t.a)}function eYH(e,t){var n,r,i,a,o,s,u,l,f,d,h,p,b,m,g,v,y,w,_,E,S,k,x,T,M,O,A,L;for(y=new KB(e.b,0),f=t.Kc(),b=0,l=Pp(f.Pb(),19).a,E=0,n=new bV,k=new Tw;y.b=e.a&&(r=eN3(e,y),f=eB4.Math.max(f,r.b),_=eB4.Math.max(_,r.d),P_(s,new kD(y,r)));for(l=0,x=new p0;l0),g.a.Xb(g.c=--g.b),T=new By(e.b),CD(g,T),A6(g.b0?(c=0,m&&(c+=s),c+=(x-1)*o,y&&(c+=s),k&&y&&(c=eB4.Math.max(c,eAD(y,o,v,S))),!(c0){for(i=0,d=l<100?null:new yf(l),p=(c=new eiP(t)).g,g=Je(ty_,eHT,25,l,15,1),r=0,w=new eta(l);i=0;)if(null!=h?ecX(h,p[u]):xc(h)===xc(p[u])){g.length<=r&&(m=g,g=Je(ty_,eHT,25,2*g.length,15,1),ePD(m,0,g,0,r)),g[r++]=i,JL(w,p[u]);break v}if(xc(h)===xc(s))break}}if(c=w,p=w.g,l=r,r>g.length&&(m=g,g=Je(ty_,eHT,25,r,15,1),ePD(m,0,g,0,r)),r>0){for(a=0,y=!0;a=0;)egk(e,g[o]);if(r!=l){for(i=l;--i>=r;)egk(c,i);m=g,g=Je(ty_,eHT,25,r,15,1),ePD(m,0,g,0,r)}t=c}}}else for(t=egh(e,t),i=e.i;--i>=0;)t.Hc(e.g[i])&&(egk(e,i),y=!0);if(!y)return!1;if(null!=g){for(f=1==(n=t.gc())?Gt(e,4,t.Kc().Pb(),null,g[0],b):Gt(e,6,t,g,g[0],b),d=n<100?null:new yf(n),i=t.Kc();i.Ob();)d=IW(e,Pp(h=i.Pb(),72),d);d?(d.Ei(f),d.Fi()):eam(e.e,f)}else{for(d=IP(t.gc()),i=t.Kc();i.Ob();)d=IW(e,Pp(h=i.Pb(),72),d);d&&d.Fi()}return!0}function eYV(e,t){var n,r,i,a,o,s,u,l,f,d,h,p,b,m,g,v,y,w;for((n=new eb_(t)).a||eDc(t),l=eCx(t),u=new zu,g=new eLy,m=new fz(t.a);m.a0||n.o==tuS&&i0?(f=Pp(RJ(d.c.a,o-1),10),k=Mj(e.b,d,f),m=d.n.b-d.d.d-(f.n.b+f.o.b+f.d.a+k)):m=d.n.b-d.d.d,c=eB4.Math.min(m,c),oo?eIc(e,t,n):eIc(e,n,t),io?1:0}return r=Pp(e_k(t,(eBU(),tnu)),19).a,a=Pp(e_k(n,tnu),19).a,r>a?eIc(e,t,n):eIc(e,n,t),ra?1:0}function eYQ(e,t,n,r){var i,a,o,s,u,c,l,f,d,h,p,b,m,g,v;if(gN(LK(eT8(t,(eBB(),thI))))||(c=0!=(t.a||(t.a=new FQ(e6k,t,10,11)),t.a).i,l=!(f=ekq(t)).dc(),!c&&!l))return Hj(),Hj(),e2r;if(!(i=Pp(eT8(t,th6),149)))throw p7(new gq("Resolved algorithm is not set; apply a LayoutAlgorithmResolver before computing layout."));if(v=ka(i,(eTy(),tmC)),ept(t),!c&&l&&!v)return Hj(),Hj(),e2r;if(u=new p0,xc(eT8(t,thl))===xc((eck(),tpz))&&(ka(i,tmO)||ka(i,tmM)))for(h=eCL(e,t),er7(p=new _n,(t.a||(t.a=new FQ(e6k,t,10,11)),t.a));0!=p.b;)ept(d=Pp(0==p.b?null:(A6(0!=p.b),etw(p,p.a.a)),33)),(g=xc(eT8(d,thl))===xc(tpW))||X2(d,tdQ)&&!Zs(i,eT8(d,th6))?(s=eYQ(e,d,n,r),eoc(u,s),ebu(d,thl,tpW),eIU(d)):er7(p,(d.a||(d.a=new FQ(e6k,d,10,11)),d.a));else for(h=(t.a||(t.a=new FQ(e6k,t,10,11)),t.a).i,o=new Ow((t.a||(t.a=new FQ(e6k,t,10,11)),t.a));o.e!=o.i.gc();)a=Pp(epH(o),33),s=eYQ(e,a,n,r),eoc(u,s),eIU(a);for(m=new fz(u);m.a=0?ef9(s):elC(ef9(s)),e.Ye(tob,h)),c=new yb,d=!1,e.Xe(tou)?(Lf(c,Pp(e.We(tou),8)),d=!0):Oc(c,o.a/2,o.b/2),h.g){case 4:eo3(l,taY,(ef_(),tnN)),eo3(l,ttV,(eoG(),te0)),l.o.b=o.b,b<0&&(l.o.a=-b),ekv(f,(eYu(),tby)),d||(c.a=o.a),c.a-=o.a;break;case 2:eo3(l,taY,(ef_(),tnR)),eo3(l,ttV,(eoG(),teQ)),l.o.b=o.b,b<0&&(l.o.a=-b),ekv(f,(eYu(),tbY)),d||(c.a=0);break;case 1:eo3(l,tt9,(Q1(),ttN)),l.o.a=o.a,b<0&&(l.o.b=-b),ekv(f,(eYu(),tbj)),d||(c.b=o.b),c.b-=o.b;break;case 3:eo3(l,tt9,(Q1(),ttI)),l.o.a=o.a,b<0&&(l.o.b=-b),ekv(f,(eYu(),tbw)),d||(c.b=0)}if(Lf(f.n,c),eo3(l,tou,c),t==tba||t==tbs||t==tbo){if(p=0,t==tba&&e.Xe(tof))switch(h.g){case 1:case 2:p=Pp(e.We(tof),19).a;break;case 3:case 4:p=-Pp(e.We(tof),19).a}else switch(h.g){case 4:case 2:p=a.b,t==tbs&&(p/=i.b);break;case 1:case 3:p=a.a,t==tbs&&(p/=i.a)}eo3(l,tnv,p)}return eo3(l,tt1,h),l}function eY0(e){var t,n,r,i,a,o,s,u,l,f,d,h,p,b,m,g,v,y,w,_,E,S,k,x,T;if((n=gP(LV(e_k(e.a.j,(eBy(),tar)))))<-1||!e.a.i||IR(Pp(e_k(e.a.o,tol),98))||2>efr(e.a.o,(eYu(),tby)).gc()&&2>efr(e.a.o,tbY).gc())return!0;if(e.a.c.Rf())return!1;for(E=0,_=0,w=new p0,u=e.a.e,l=0,f=u.length;l=n}function eY2(){function n(e){var t=this;this.dispatch=function(t){var n=t.data;switch(n.cmd){case"algorithms":var r=edh((Hj(),new fF(new fT(tmF.b))));e.postMessage({id:n.id,data:r});break;case"categories":var i=edh((Hj(),new fF(new fT(tmF.c))));e.postMessage({id:n.id,data:i});break;case"options":var a=edh((Hj(),new fF(new fT(tmF.d))));e.postMessage({id:n.id,data:a});break;case"register":ejy(n.algorithms),e.postMessage({id:n.id});break;case"layout":ePu(n.graph,n.layoutOptions||{},n.options||{}),e.postMessage({id:n.id,data:n.graph})}},this.saveDispatch=function(n){try{t.dispatch(n)}catch(r){e.postMessage({id:n.data.id,error:r})}}}function r(e){var t=this;this.dispatcher=new n({postMessage:function(e){t.onmessage({data:e})}}),this.postMessage=function(e){setTimeout(function(){t.dispatcher.saveDispatch({data:e})},0)}}if(yC(),typeof document===e$E&&typeof self!==e$E){var i=new n(self);self.onmessage=i.saveDispatch}else"object"!==e$E&&e.exports&&(Object.defineProperty(t,"__esModule",{value:!0}),e.exports={default:r,Worker:r})}function eY3(e){e.N||(e.N=!0,e.b=eak(e,0),er6(e.b,0),er6(e.b,1),er6(e.b,2),e.bb=eak(e,1),er6(e.bb,0),er6(e.bb,1),e.fb=eak(e,2),er6(e.fb,3),er6(e.fb,4),er9(e.fb,5),e.qb=eak(e,3),er6(e.qb,0),er9(e.qb,1),er9(e.qb,2),er6(e.qb,3),er6(e.qb,4),er9(e.qb,5),er6(e.qb,6),e.a=eax(e,4),e.c=eax(e,5),e.d=eax(e,6),e.e=eax(e,7),e.f=eax(e,8),e.g=eax(e,9),e.i=eax(e,10),e.j=eax(e,11),e.k=eax(e,12),e.n=eax(e,13),e.o=eax(e,14),e.p=eax(e,15),e.q=eax(e,16),e.s=eax(e,17),e.r=eax(e,18),e.t=eax(e,19),e.u=eax(e,20),e.v=eax(e,21),e.w=eax(e,22),e.B=eax(e,23),e.A=eax(e,24),e.C=eax(e,25),e.D=eax(e,26),e.F=eax(e,27),e.G=eax(e,28),e.H=eax(e,29),e.J=eax(e,30),e.I=eax(e,31),e.K=eax(e,32),e.M=eax(e,33),e.L=eax(e,34),e.P=eax(e,35),e.Q=eax(e,36),e.R=eax(e,37),e.S=eax(e,38),e.T=eax(e,39),e.U=eax(e,40),e.V=eax(e,41),e.X=eax(e,42),e.W=eax(e,43),e.Y=eax(e,44),e.Z=eax(e,45),e.$=eax(e,46),e._=eax(e,47),e.ab=eax(e,48),e.cb=eax(e,49),e.db=eax(e,50),e.eb=eax(e,51),e.gb=eax(e,52),e.hb=eax(e,53),e.ib=eax(e,54),e.jb=eax(e,55),e.kb=eax(e,56),e.lb=eax(e,57),e.mb=eax(e,58),e.nb=eax(e,59),e.ob=eax(e,60),e.pb=eax(e,61))}function eY4(e,t){var n,r,i,a,o,s,u,c,l,f,d,h,p,b,m,g,v,y,w;if(v=0,0==t.f.a)for(m=new fz(e);m.ac&&0==(GK(c,t.c.length),Pp(t.c[c],200)).a.c.length;)QA(t,(GK(c,t.c.length),t.c[c]));if(!u){--a;continue}if(eDk(t,l,i,u,d,n,c,r)){f=!0;continue}if(d){if(ePx(t,l,i,u,n,c,r)){f=!0;continue}if(eu4(l,i)){i.c=!0,f=!0;continue}}else if(eu4(l,i)){i.c=!0,f=!0;continue}if(f)continue}if(eu4(l,i)){i.c=!0,f=!0,u&&(u.k=!1);continue}emG(i.q)}return f}function eY9(e,t,n,r,i,a,o){var s,u,c,l,f,d,h,p,b,m,g,v,y,w,_,E,S,k,x,T,M,O,A,L;for(b=0,T=0,c=new fz(e.b);c.ab&&(a&&(xL(E,h),xL(k,ell(l.b-1)),P_(e.d,p),s.c=Je(e1R,eUp,1,0,5,1)),A=n.b,L+=h+t,h=0,f=eB4.Math.max(f,n.b+n.c+O)),s.c[s.c.length]=u,epW(u,A,L),f=eB4.Math.max(f,A+O+n.c),h=eB4.Math.max(h,d),A+=O+t,p=u;if(eoc(e.a,s),P_(e.d,Pp(RJ(s,s.c.length-1),157)),f=eB4.Math.max(f,r),(M=L+h+n.a)1&&(o=eB4.Math.min(o,eB4.Math.abs(Pp(ep3(s.a,1),8).b-l.b)))));else for(b=new fz(t.j);b.ai&&(a=d.a-i,o=eUu,r.c=Je(e1R,eUp,1,0,5,1),i=d.a),d.a>=i&&(r.c[r.c.length]=s,s.a.b>1&&(o=eB4.Math.min(o,eB4.Math.abs(Pp(ep3(s.a,s.a.b-2),8).b-d.b)))));if(0!=r.c.length&&a>t.o.a/2&&o>t.o.b/2){for(h=new eES,Gc(h,t),ekv(h,(eYu(),tbw)),h.n.a=t.o.a/2,g=new eES,Gc(g,t),ekv(g,tbj),g.n.a=t.o.a/2,g.n.b=t.o.b,u=new fz(r);u.a=c.b?Gs(s,g):Gs(s,h)):(c=Pp(P$(s.a),8),(m=0==s.a.b?GX(s.c):Pp(AZ(s.a),8)).b>=c.b?Go(s,g):Go(s,h)),(f=Pp(e_k(s,(eBy(),taR)),74))&&eds(f,c,!0);t.n.a=i-t.o.a/2}}function eBe(e,t,n){var r,i,a,o,s,u,c,l,f,d,h,p,b,m,g,v,y,w,_,E,S,k,x,T,M,O,A,L,C,I;if(T=null,O=t,M=V0(e,VF(n),O),ert(M,KJ(O,eXS)),A=Pp(etJ(e.g,ekZ(zR(O,eXi))),33),d=zR(O,"sourcePort"),r=null,d&&(r=ekZ(d)),L=Pp(etJ(e.j,r),118),!A)throw b=(p="An edge must have a source node (edge id: '"+(s=ehM(O)))+eXO,p7(new gK(b));if(L&&!BG(zY(L),A))throw g=(m="The source port of an edge must be a port of the edge's source node (edge id: '"+(u=KJ(O,eXS)))+eXO,p7(new gK(g));if(k=(M.b||(M.b=new Ih(e6m,M,4,7)),M.b),a=null,JL(k,a=L||A),C=Pp(etJ(e.g,ekZ(zR(O,eXC))),33),h=zR(O,"targetPort"),i=null,h&&(i=ekZ(h)),I=Pp(etJ(e.j,i),118),!C)throw y=(v="An edge must have a target node (edge id: '"+(f=ehM(O)))+eXO,p7(new gK(y));if(I&&!BG(zY(I),C))throw _=(w="The target port of an edge must be a port of the edge's target node (edge id: '"+(c=KJ(O,eXS)))+eXO,p7(new gK(_));if(x=(M.c||(M.c=new Ih(e6m,M,5,8)),M.c),o=null,JL(x,o=I||C),0==(M.b||(M.b=new Ih(e6m,M,4,7)),M.b).i||0==(M.c||(M.c=new Ih(e6m,M,5,8)),M.c).i)throw S=(E=eXM+(l=KJ(O,eXS)))+eXO,p7(new gK(S));return ewU(O,M),eMu(O,M),T=esv(e,O,M)}function eBt(e,t){var n,r,i,a,o,s,u,c,l,f,d,h,p,b,m,g,v,y,w,_,E,S,k,x,T;return f=eNf(A_(e,(eYu(),tbx)),t),p=em9(A_(e,tbT),t),w=em9(A_(e,tbN),t),k=em8(A_(e,tbR),t),d=em8(A_(e,tb_),t),v=em9(A_(e,tbD),t),b=em9(A_(e,tbM),t),E=em9(A_(e,tbP),t),_=em9(A_(e,tbE),t),x=em8(A_(e,tbk),t),g=em9(A_(e,tbC),t),y=em9(A_(e,tbL),t),S=em9(A_(e,tbS),t),T=em8(A_(e,tbI),t),h=em8(A_(e,tbO),t),m=em9(A_(e,tbA),t),n=esm(eow(vx(tyx,1),eH5,25,15,[v.a,k.a,E.a,T.a])),r=esm(eow(vx(tyx,1),eH5,25,15,[p.a,f.a,w.a,m.a])),i=g.a,a=esm(eow(vx(tyx,1),eH5,25,15,[b.a,d.a,_.a,h.a])),c=esm(eow(vx(tyx,1),eH5,25,15,[v.b,p.b,b.b,y.b])),u=esm(eow(vx(tyx,1),eH5,25,15,[k.b,f.b,d.b,m.b])),l=x.b,s=esm(eow(vx(tyx,1),eH5,25,15,[E.b,w.b,_.b,S.b])),JD(A_(e,tbx),n+i,c+l),JD(A_(e,tbA),n+i,c+l),JD(A_(e,tbT),n+i,0),JD(A_(e,tbN),n+i,c+l+u),JD(A_(e,tbR),0,c+l),JD(A_(e,tb_),n+i+r,c+l),JD(A_(e,tbM),n+i+r,0),JD(A_(e,tbP),0,c+l+u),JD(A_(e,tbE),n+i+r,c+l+u),JD(A_(e,tbk),0,c),JD(A_(e,tbC),n,0),JD(A_(e,tbS),0,c+l+u),JD(A_(e,tbO),n+i+r,0),(o=new yb).a=esm(eow(vx(tyx,1),eH5,25,15,[n+r+i+a,x.a,y.a,S.a])),o.b=esm(eow(vx(tyx,1),eH5,25,15,[c+u+l+s,g.b,T.b,h.b])),o}function eBn(e){var t,n,r,i,a,o,s,u,l,f,d,h,p,b,m,g;for(m=new p0,h=new fz(e.d.b);h.ai.d.d+i.d.a?f.f.d=!0:(f.f.d=!0,f.f.a=!0))),r.b!=r.d.c&&(t=n);f&&(a=Pp(Bp(e.f,o.d.i),57),t.ba.d.d+a.d.a?f.f.d=!0:(f.f.d=!0,f.f.a=!0))}for(s=new Fa(OH(efu(p).a.Kc(),new c));eTk(s);)0!=(o=Pp(ZC(s),17)).a.b&&(t=Pp(AZ(o.a),8),o.d.j==(eYu(),tbw)&&((g=new ePe(t,new kl(t.a,i.d.d),i,o)).f.a=!0,g.a=o.d,m.c[m.c.length]=g),o.d.j==tbj&&((g=new ePe(t,new kl(t.a,i.d.d+i.d.a),i,o)).f.d=!0,g.a=o.d,m.c[m.c.length]=g))}return m}function eBr(e,t,n){var r,i,a,o,s,u,c,l,f;if(ewG(n,"Network simplex node placement",1),e.e=t,e.n=Pp(e_k(t,(eBU(),tnx)),304),eRx(e),ey8(e),_r(eeh(new R1(null,new Gq(e.e.b,16)),new i2),new hR(e)),_r(UJ(eeh(UJ(eeh(new R1(null,new Gq(e.e.b,16)),new aa),new ao),new as),new au),new hP(e)),gN(LK(e_k(e.e,(eBy(),taQ))))&&(o=eiI(n,1),ewG(o,"Straight Edges Pre-Processing",1),eFy(e),eEj(o)),ebR(e.f),a=Pp(e_k(t,to$),19).a*e.f.a.c.length,eIX(vC(vI(DN(e.f),a),!1),eiI(n,1)),0!=e.d.a.gc()){for(o=eiI(n,1),ewG(o,"Flexible Where Space Processing",1),s=Pp(Af(FM(UQ(new R1(null,new Gq(e.f.a,16)),new i3),new iZ)),19).a,c=(u=Pp(Af(FT(UQ(new R1(null,new Gq(e.f.a,16)),new i4),new iX)),19).a)-s,l=Al(new b1,e.f),f=Al(new b1,e.f),eAx(_f(_l(_c(_d(new bQ,2e4),c),l),f)),_r(UJ(UJ(Yw(e.i),new i5),new i6),new Hn(s,l,c,f)),i=e.d.a.ec().Kc();i.Ob();)(r=Pp(i.Pb(),213)).g=1;eIX(vC(vI(DN(e.f),a),!1),eiI(o,1)),eEj(o)}gN(LK(e_k(t,taQ)))&&(o=eiI(n,1),ewG(o,"Straight Edges Post-Processing",1),eSf(e),eEj(o)),ej3(e),e.e=null,e.f=null,e.i=null,e.c=null,Yy(e.k),e.j=null,e.a=null,e.o=null,e.d.a.$b(),eEj(n)}function eBi(e,t,n){var r,i,a,o,s,u,c,l,f,d,h,p,b,m,g,v,y,w,_;for(s=new fz(e.a.b);s.a0){if(r=f.gc(),c=zy(eB4.Math.floor((r+1)/2))-1,i=zy(eB4.Math.ceil((r+1)/2))-1,t.o==tuS)for(l=i;l>=c;l--)t.a[w.p]==w&&(b=Pp(f.Xb(l),46),p=Pp(b.a,10),!w0(n,b.b)&&h>e.b.e[p.p]&&(t.a[p.p]=w,t.g[w.p]=t.g[p.p],t.a[w.p]=t.g[w.p],t.f[t.g[w.p].p]=(OQ(),!!(gN(t.f[t.g[w.p].p])&w.k==(eEn(),e8D))),h=e.b.e[p.p]));else for(l=c;l<=i;l++)t.a[w.p]==w&&(g=Pp(f.Xb(l),46),m=Pp(g.a,10),!w0(n,g.b)&&h=p&&(v>p&&(h.c=Je(e1R,eUp,1,0,5,1),p=v),h.c[h.c.length]=o);0!=h.c.length&&(d=Pp(RJ(h,ebO(t,h.c.length)),128),M.a.Bc(d),d.s=b++,eM4(d,x,E),h.c=Je(e1R,eUp,1,0,5,1))}for(w=e.c.length+1,s=new fz(e);s.aT.s&&(BH(n),QA(T.i,r),r.c>0&&(r.a=T,P_(T.t,r),r.b=S,P_(S.i,r)))}function eBs(e){var t,n,r,i,a;switch(t=e.c){case 11:return e.Ml();case 12:return e.Ol();case 14:return e.Ql();case 15:return e.Tl();case 16:return e.Rl();case 17:return e.Ul();case 21:return eBM(e),eBG(),eBG(),tye;case 10:switch(e.a){case 65:return e.yl();case 90:return e.Dl();case 122:return e.Kl();case 98:return e.El();case 66:return e.zl();case 60:return e.Jl();case 62:return e.Hl()}}switch(a=eY8(e),t=e.c){case 3:return e.Zl(a);case 4:return e.Xl(a);case 5:return e.Yl(a);case 0:if(123==e.a&&e.d=48&&t<=57){for(r=t-48;i=48&&t<=57;)if((r=10*r+t-48)<0)throw p7(new gX(eBJ((Mo(),eJ_))))}else throw p7(new gX(eBJ((Mo(),eJg))));if(n=r,44==t){if(i>=e.j)throw p7(new gX(eBJ((Mo(),eJy))));if((t=UI(e.i,i++))>=48&&t<=57){for(n=t-48;i=48&&t<=57;)if((n=10*n+t-48)<0)throw p7(new gX(eBJ((Mo(),eJ_))));if(r>n)throw p7(new gX(eBJ((Mo(),eJw))))}else n=-1}if(125!=t)throw p7(new gX(eBJ((Mo(),eJv))));e.sl(i)?(a=(eBG(),eBG(),++tyv,new qa(9,a)),e.d=i+1):(a=(eBG(),eBG(),++tyv,new qa(3,a)),e.d=i),a.dm(r),a.cm(n),eBM(e)}}return a}function eBu(e,t,n,r,i){var a,o,s,u,c,l,f,d,h,p,b,m,g,v,y,w,_,E,S,k,x,T,M;for(b=new XM(t.b),w=new XM(t.b),d=new XM(t.b),k=new XM(t.b),m=new XM(t.b),S=epL(t,0);S.b!=S.d.c;)for(_=Pp(Vv(S),11),s=new fz(_.g);s.a0,g=_.g.c.length>0,c&&g?d.c[d.c.length]=_:c?b.c[b.c.length]=_:g&&(w.c[w.c.length]=_);for(p=new fz(b);p.aefT(Jh(y.d,x),Jh(y.d,y.a))&&(a.c[a.c.length]=y);for(n.c=Je(e1R,eUp,1,0,5,1),w=new fz(a);w.a1)for(p=new AF((e.a||(e.a=new FQ(e6v,e,6,6)),e.a));p.e!=p.i.gc();)ey_(p);for(o=Pp(etj((e.a||(e.a=new FQ(e6v,e,6,6)),e.a),0),202),m=A,A>_+w?m=_+w:A<_-w&&(m=_-w),g=L,L>E+b?g=E+b:L_-w&&m<_+w&&g>E-b&&gA+O?k=A+O:_L+S?x=L+S:EA-O&&kL-S&&xn&&(d=n-1),(h=P+eMU(t,24)*e$h*f-f/2)<0?h=1:h>r&&(h=r-1),i=(yT(),u=new oJ),ent(i,d),enn(i,h),JL((o.a||(o.a=new O_(e6h,o,5)),o.a),i)}function eBy(){eBy=A,tox=(eBB(),th7),toT=tpe,toM=tpt,toO=tpn,toL=tpr,toC=tpi,toN=tpo,toR=tpu,toj=tpc,toP=tps,toF=tpl,toB=tpf,toH=tpp,toD=tpa,tok=(eBH(),tih),toA=tip,toI=tib,toY=tim,tov=new T2(th4,ell(0)),toy=til,tow=tif,to_=tid,toQ=tiB,toG=tiy,toW=tiE,toq=tiL,toK=tix,toV=tiM,to0=tiG,to1=tiH,toX=tiR,toZ=tiN,toJ=tiF,ta0=tit,ta2=tin,taE=trE,taS=trx,toe=new T3(12),ta7=new T2(thN,toe),tav=(efE(),tpx),tag=new T2(tha,tav),toc=new T2(thK,0),toE=new T2(th5,ell(1)),tiX=new T2(td2,eGt),ta8=thI,tol=thV,tob=th0,tac=td7,tiq=td1,taM=thl,toS=new T2(th8,(OQ(),!0)),taI=thh,taD=thp,ta4=thx,ta9=thL,ta5=thM,tad=(ec3(),tpv),tal=new T2(the,tad),taZ=thS,taq=th_,toh=thJ,tod=thX,top=th1,tor=(epT(),tbr),new T2(thB,tor),toa=th$,too=thz,tos=thG,toi=thH,toz=tiv,taG=trZ,taz=trV,to$=tig,taY=trB,tau=trs,tas=tra,ti7=tn1,tae=tn0,tan=tn6,tat=tn2,tao=trr,taK=trJ,taV=trQ,taP=trD,ta3=tio,taJ=tr3,tax=trO,ta1=tr7,taw=trg,ta_=trw,ti8=td9,taX=tr1,ti0=tn$,ti1=tnU,tiQ=tnB,taA=trC,taO=trL,taL=trI,ta6=thO,taR=thg,tak=ths,tab=thr,tap=thn,tar=tn7,tof=thZ,tiJ=td6,taC=thd,tou=thW,tot=thR,ton=thF,taU=tr$,taH=trG,tog=th3,tiZ=tnY,ta$=trK,tam=trh,tah=trf,taW=thy,taj=trj,taQ=tr6,toU=tpd,taf=trc,tom=tiu,tay=trb,taF=trY,tai=trt,taN=thm,taB=trH,taa=trn,ti9=tnJ,ti5=tnq,ti3=tnK,ti4=tnV,ti6=tnX,ti2=tnG,taT=trA}function eBw(e,t){var n,r,i,a,o,s,u,c,l,f,d,h,p,b,m,g,v,y,w,_,E,S,k,x,T,M,O,A;if(ePN(),k=e.e,p=e.d,i=e.a,0==k)switch(t){case 0:return"0";case 1:return e$e;case 2:return"0.00";case 3:return"0.000";case 4:return"0.0000";case 5:return"0.00000";case 6:return"0.000000";default:return E=new vc,t<0?(E.a+="0E+",E):(E.a+="0E",E),E.a+=-t,E.a}if(w=Je(tyw,eHl,25,(y=10*p+1+7)+1,15,1),n=y,1==p){if((s=i[0])<0){A=WM(s,eH8);do b=A,A=eyt(A,10),w[--n]=48+jE(efe(b,efn(A,10)))&eHd;while(0!=ecd(A,0))}else{A=s;do b=A,A=A/10|0,w[--n]=48+(b-10*A)&eHd;while(0!=A)}}else{T=Je(ty_,eHT,25,p,15,1),ePD(i,0,T,0,O=p);I:for(;;){for(S=0,c=O-1;c>=0;c--)g=ewT(M=eft(Fg(S,32),WM(T[c],eH8))),T[c]=jE(g),S=jE(Fv(g,32));v=jE(S),m=n;do w[--n]=48+v%10&eHd;while(0!=(v=v/10|0)&&0!=n)for(u=0,r=9-m+n;u0;u++)w[--n]=48;for(f=O-1;0==T[f];f--)if(0==f)break I;O=f+1}for(;48==w[n];)++n}if(h=k<0,o=y-n-t-1,0==t)return h&&(w[--n]=45),ehv(w,n,y-n);if(t>0&&o>=-6){if(o>=0){for(l=n+o,d=y-1;d>=l;d--)w[d+1]=w[d];return w[++l]=46,h&&(w[--n]=45),ehv(w,n,y-n+1)}for(f=2;f<-o+1;f++)w[--n]=48;return w[--n]=46,w[--n]=48,h&&(w[--n]=45),ehv(w,n,y-n)}return x=n+1,a=y,_=new vl,h&&(_.a+="-"),a-x>=1?(Bd(_,w[n]),_.a+=".",_.a+=ehv(w,n+1,y-n-1)):_.a+=ehv(w,n,y-n),_.a+="E",o>0&&(_.a+="+"),_.a+=""+o,_.a}function eB_(e,t){var n,r,i,a,o,s,u,c,l,f,d,h,p,b,m,g,v,y,w,_,E;switch(e.c=t,e.g=new p2,n=(_q(),new gM(e.c)),efJ(r=new dp(n)),y=Lq(eT8(e.c,(e_L(),tfD))),u=Pp(eT8(e.c,tfP),316),_=Pp(eT8(e.c,tfR),429),o=Pp(eT8(e.c,tfO),482),w=Pp(eT8(e.c,tfN),430),e.j=gP(LV(eT8(e.c,tfj))),s=e.a,u.g){case 0:s=e.a;break;case 1:s=e.b;break;case 2:s=e.i;break;case 3:s=e.e;break;case 4:s=e.f;break;default:throw p7(new gL(eqN+(null!=u.f?u.f:""+u.g)))}if(e.d=new zM(s,_,o),eo3(e.d,(ei6(),e6F),LK(eT8(e.c,tfL))),e.d.c=gN(LK(eT8(e.c,tfA))),0==H8(e.c).i)return e.d;for(f=new Ow(H8(e.c));f.e!=f.i.gc();){for(h=(l=Pp(epH(f),33)).g/2,d=l.f/2,E=new kl(l.i+h,l.j+d);F9(e.g,E);)Lu(E,(eB4.Math.random()-.5)*ez8,(eB4.Math.random()-.5)*ez8);b=Pp(eT8(l,(eBB(),thy)),142),m=new Gd(E,new Hr(E.a-h-e.j/2-b.b,E.b-d-e.j/2-b.d,l.g+e.j+(b.b+b.c),l.f+e.j+(b.d+b.a))),P_(e.d.i,m),Um(e.g,E,new kD(m,l))}switch(w.g){case 0:if(null==y)e.d.d=Pp(RJ(e.d.i,0),65);else for(v=new fz(e.d.i);v.a1&&qQ(l,g,l.c.b,l.c),etu(i)));g=v}return l}function eBS(e,t,n){var r,i,a,o,s,u,c,l,f,d,h,p,b,m,g,v,y,w,_,E,S,k,x,T,M,O,A,L,C,I,D;for(ewG(n,"Greedy cycle removal",1),D=(y=t.a).c.length,e.a=Je(ty_,eHT,25,D,15,1),e.c=Je(ty_,eHT,25,D,15,1),e.b=Je(ty_,eHT,25,D,15,1),c=0,g=new fz(y);g.a0?O+1:1);for(o=new fz(E.g);o.a0?O+1:1)}0==e.c[c]?P7(e.e,b):0==e.a[c]&&P7(e.f,b),++c}for(p=-1,h=1,f=new p0,e.d=Pp(e_k(t,(eBU(),tnw)),230);D>0;){for(;0!=e.e.b;)L=Pp(PH(e.e),10),e.b[L.p]=p--,eIQ(e,L),--D;for(;0!=e.f.b;)C=Pp(PH(e.f),10),e.b[C.p]=h++,eIQ(e,C),--D;if(D>0){for(d=eHt,v=new fz(y);v.a=d&&(w>d&&(f.c=Je(e1R,eUp,1,0,5,1),d=w),f.c[f.c.length]=b);l=e.Zf(f),e.b[l.p]=h++,eIQ(e,l),--D}}for(c=0,A=y.c.length+1;ce.b[I]&&(eNF(r,!0),eo3(t,ttK,(OQ(),!0)));e.a=null,e.c=null,e.b=null,HC(e.f),HC(e.e),eEj(n)}function eBk(e,t){var n,r,i,a,o,s,u,c,l,f,d,h,p,b,m,g;for(r=new p0,s=new p0,m=t/2,h=e.gc(),i=Pp(e.Xb(0),8),g=Pp(e.Xb(1),8),p=eT5(i.a,i.b,g.a,g.b,m),P_(r,(GK(0,p.c.length),Pp(p.c[0],8))),P_(s,(GK(1,p.c.length),Pp(p.c[1],8))),c=2;c=0;u--)P7(n,(GK(u,o.c.length),Pp(o.c[u],8)));return n}function eBx(e){var t,n,r,i,a,o,s,u,c,l,f,d,h;if(o=!0,f=null,r=null,i=null,t=!1,h=tmH,c=null,a=null,(u=epm(e,s=0,tmJ,tmQ))=0&&IE(e.substr(s,2),"//")?(s+=2,u=epm(e,s,tm1,tm0),r=e.substr(s,u-s),s=u):null!=f&&(s==e.length||(GV(s,e.length),47!=e.charCodeAt(s)))&&(o=!1,-1==(u=O7(e,e_n(35),s))&&(u=e.length),r=e.substr(s,u-s),s=u);if(!n&&s0&&58==UI(l,l.length-1)&&(i=l,s=u)),s=e.j){e.a=-1,e.c=1;return}if(t=UI(e.i,e.d++),e.a=t,1==e.b){switch(t){case 92:if(r=10,e.d>=e.j)throw p7(new gX(eBJ((Mo(),eXZ))));e.a=UI(e.i,e.d++);break;case 45:(512&e.e)==512&&e.d=e.j||63!=UI(e.i,e.d))break;if(++e.d>=e.j)throw p7(new gX(eBJ((Mo(),eXX))));switch(t=UI(e.i,e.d++)){case 58:r=13;break;case 61:r=14;break;case 33:r=15;break;case 91:r=19;break;case 62:r=18;break;case 60:if(e.d>=e.j)throw p7(new gX(eBJ((Mo(),eXX))));if(61==(t=UI(e.i,e.d++)))r=16;else if(33==t)r=17;else throw p7(new gX(eBJ((Mo(),eXJ))));break;case 35:for(;e.d=e.j)throw p7(new gX(eBJ((Mo(),eXZ))));e.a=UI(e.i,e.d++);break;default:r=0}e.c=r}function eBO(e){var t,n,r,i,a,o,s,u,l,f,d,h,p,b,m,g,v,y,w,_,E,S,k,x,T,M,O,A;if((k=Pp(e_k(e,(eBy(),tol)),98))!=(ewf(),tbc)&&k!=tbl){for(p=(b=e.b).c.length,f=new XM((enG(p+2,eU6),ee1(eft(eft(5,p+2),(p+2)/10|0)))),m=new XM((enG(p+2,eU6),ee1(eft(eft(5,p+2),(p+2)/10|0)))),P_(f,new p2),P_(f,new p2),P_(m,new p0),P_(m,new p0),S=new p0,t=0;t=E||!ehf(v,r))&&(r=GY(t,f)),Gu(v,r),a=new Fa(OH(efu(v).a.Kc(),new c));eTk(a);)i=Pp(ZC(a),17),!e.a[i.p]&&(m=i.c.i,--e.e[m.p],0==e.e[m.p]&&Ja(e_s(p,m)));for(l=f.c.length-1;l>=0;--l)P_(t.b,(GK(l,f.c.length),Pp(f.c[l],29)));t.a.c=Je(e1R,eUp,1,0,5,1),eEj(n)}function eBL(e){var t,n,r,i,a,o,s,u,c;for(e.b=1,eBM(e),t=null,0==e.c&&94==e.a?(eBM(e),t=(eBG(),eBG(),++tyv,new WZ(4)),eLw(t,0,e1f),s=(++tyv,new WZ(4))):s=(eBG(),eBG(),++tyv,new WZ(4)),i=!0;1!=(c=e.c);){if(0==c&&93==e.a&&!i){t&&(ej0(t,s),s=t);break}if(n=e.a,r=!1,10==c)switch(n){case 100:case 68:case 119:case 87:case 115:case 83:ePR(s,eDu(n)),r=!0;break;case 105:case 73:case 99:case 67:(n=(ePR(s,eDu(n)),-1))<0&&(r=!0);break;case 112:case 80:if(!(u=ext(e,n)))throw p7(new gX(eBJ((Mo(),eJe))));ePR(s,u),r=!0;break;default:n=eCn(e)}else if(24==c&&!i){if(t&&(ej0(t,s),s=t),a=eBL(e),ej0(s,a),0!=e.c||93!=e.a)throw p7(new gX(eBJ((Mo(),eJi))));break}if(eBM(e),!r){if(0==c){if(91==n)throw p7(new gX(eBJ((Mo(),eJa))));if(93==n)throw p7(new gX(eBJ((Mo(),eJo))));if(45==n&&!i&&93!=e.a)throw p7(new gX(eBJ((Mo(),eJs))))}if(0!=e.c||45!=e.a||45==n&&i)eLw(s,n,n);else{if(eBM(e),1==(c=e.c))throw p7(new gX(eBJ((Mo(),eJn))));if(0==c&&93==e.a)eLw(s,n,n),eLw(s,45,45);else if(0==c&&93==e.a||24==c)throw p7(new gX(eBJ((Mo(),eJs))));else{if(o=e.a,0==c){if(91==o)throw p7(new gX(eBJ((Mo(),eJa))));if(93==o)throw p7(new gX(eBJ((Mo(),eJo))));if(45==o)throw p7(new gX(eBJ((Mo(),eJs))))}else 10==c&&(o=eCn(e));if(eBM(e),n>o)throw p7(new gX(eBJ((Mo(),eJl))));eLw(s,n,o)}}}i=!1}if(1==e.c)throw p7(new gX(eBJ((Mo(),eJn))));return eMS(s),eRo(s),e.b=0,eBM(e),s}function eBC(e){eMV(e.c,eJ7,eow(vx(e17,1),eUP,2,6,[eQd,"http://www.w3.org/2001/XMLSchema#decimal"])),eMV(e.d,eJ7,eow(vx(e17,1),eUP,2,6,[eQd,"http://www.w3.org/2001/XMLSchema#integer"])),eMV(e.e,eJ7,eow(vx(e17,1),eUP,2,6,[eQd,"http://www.w3.org/2001/XMLSchema#boolean"])),eMV(e.f,eJ7,eow(vx(e17,1),eUP,2,6,[eQd,"EBoolean",eXP,"EBoolean:Object"])),eMV(e.i,eJ7,eow(vx(e17,1),eUP,2,6,[eQd,"http://www.w3.org/2001/XMLSchema#byte"])),eMV(e.g,eJ7,eow(vx(e17,1),eUP,2,6,[eQd,"http://www.w3.org/2001/XMLSchema#hexBinary"])),eMV(e.j,eJ7,eow(vx(e17,1),eUP,2,6,[eQd,"EByte",eXP,"EByte:Object"])),eMV(e.n,eJ7,eow(vx(e17,1),eUP,2,6,[eQd,"EChar",eXP,"EChar:Object"])),eMV(e.t,eJ7,eow(vx(e17,1),eUP,2,6,[eQd,"http://www.w3.org/2001/XMLSchema#double"])),eMV(e.u,eJ7,eow(vx(e17,1),eUP,2,6,[eQd,"EDouble",eXP,"EDouble:Object"])),eMV(e.F,eJ7,eow(vx(e17,1),eUP,2,6,[eQd,"http://www.w3.org/2001/XMLSchema#float"])),eMV(e.G,eJ7,eow(vx(e17,1),eUP,2,6,[eQd,"EFloat",eXP,"EFloat:Object"])),eMV(e.I,eJ7,eow(vx(e17,1),eUP,2,6,[eQd,"http://www.w3.org/2001/XMLSchema#int"])),eMV(e.J,eJ7,eow(vx(e17,1),eUP,2,6,[eQd,"EInt",eXP,"EInt:Object"])),eMV(e.N,eJ7,eow(vx(e17,1),eUP,2,6,[eQd,"http://www.w3.org/2001/XMLSchema#long"])),eMV(e.O,eJ7,eow(vx(e17,1),eUP,2,6,[eQd,"ELong",eXP,"ELong:Object"])),eMV(e.Z,eJ7,eow(vx(e17,1),eUP,2,6,[eQd,"http://www.w3.org/2001/XMLSchema#short"])),eMV(e.$,eJ7,eow(vx(e17,1),eUP,2,6,[eQd,"EShort",eXP,"EShort:Object"])),eMV(e._,eJ7,eow(vx(e17,1),eUP,2,6,[eQd,"http://www.w3.org/2001/XMLSchema#string"]))}function eBI(e){var t,n,r,i,a,o,s,u,c,l,f,d,h,p,b,m,g,v,y,w,_,E,S,k,x,T,M,O;if(1==e.c.length)return GK(0,e.c.length),Pp(e.c[0],135);if(e.c.length<=0)return new Xn;for(u=new fz(e);u.af&&(M=0,O+=l+S,l=0),eOd(_,o,M,O),t=eB4.Math.max(t,M+E.a),l=eB4.Math.max(l,E.b),M+=E.a+S;for(w=new p2,n=new p2,x=new fz(e);x.aeMg(a))&&(f=a);for(f||(f=(GK(0,m.c.length),Pp(m.c[0],180))),b=new fz(t.b);b.a=-1900?1:0,n>=4?xM(e,eow(vx(e17,1),eUP,2,6,[eHM,eHO])[s]):xM(e,eow(vx(e17,1),eUP,2,6,["BC","AD"])[s]);break;case 121:epA(e,n,r);break;case 77:eIZ(e,n,r);break;case 107:0==(u=i.q.getHours())?eeE(e,24,n):eeE(e,u,n);break;case 83:eOT(e,n,i);break;case 69:l=r.q.getDay(),5==n?xM(e,eow(vx(e17,1),eUP,2,6,["S","M","T","W","T","F","S"])[l]):4==n?xM(e,eow(vx(e17,1),eUP,2,6,[eHA,eHL,eHC,eHI,eHD,eHN,eHP])[l]):xM(e,eow(vx(e17,1),eUP,2,6,["Sun","Mon","Tue","Wed","Thu","Fri","Sat"])[l]);break;case 97:i.q.getHours()>=12&&24>i.q.getHours()?xM(e,eow(vx(e17,1),eUP,2,6,["AM","PM"])[1]):xM(e,eow(vx(e17,1),eUP,2,6,["AM","PM"])[0]);break;case 104:0==(f=i.q.getHours()%12)?eeE(e,12,n):eeE(e,f,n);break;case 75:eeE(e,d=i.q.getHours()%12,n);break;case 72:eeE(e,h=i.q.getHours(),n);break;case 99:p=r.q.getDay(),5==n?xM(e,eow(vx(e17,1),eUP,2,6,["S","M","T","W","T","F","S"])[p]):4==n?xM(e,eow(vx(e17,1),eUP,2,6,[eHA,eHL,eHC,eHI,eHD,eHN,eHP])[p]):3==n?xM(e,eow(vx(e17,1),eUP,2,6,["Sun","Mon","Tue","Wed","Thu","Fri","Sat"])[p]):eeE(e,p,1);break;case 76:b=r.q.getMonth(),5==n?xM(e,eow(vx(e17,1),eUP,2,6,["J","F","M","A","M","J","J","A","S","O","N","D"])[b]):4==n?xM(e,eow(vx(e17,1),eUP,2,6,[eHh,eHp,eHb,eHm,eHg,eHv,eHy,eHw,eH_,eHE,eHS,eHk])[b]):3==n?xM(e,eow(vx(e17,1),eUP,2,6,["Jan","Feb","Mar","Apr",eHg,"Jun","Jul","Aug","Sep","Oct","Nov","Dec"])[b]):eeE(e,b+1,n);break;case 81:m=r.q.getMonth()/3|0,n<4?xM(e,eow(vx(e17,1),eUP,2,6,["Q1","Q2","Q3","Q4"])[m]):xM(e,eow(vx(e17,1),eUP,2,6,["1st quarter","2nd quarter","3rd quarter","4th quarter"])[m]);break;case 100:eeE(e,g=r.q.getDate(),n);break;case 109:eeE(e,c=i.q.getMinutes(),n);break;case 115:eeE(e,o=i.q.getSeconds(),n);break;case 122:n<4?xM(e,a.c[0]):xM(e,a.c[1]);break;case 118:xM(e,a.b);break;case 90:n<3?xM(e,ekA(a)):3==n?xM(e,ek$(a)):xM(e,ekz(a.a));break;default:return!1}return!0}function eBF(e,t,n,r){var i,a,o,s,u,c,l,f,d,h,p,b,m,g,v,y,w,_,E,S,k,x,T,M,O,A;if(eIi(t),u=Pp(etj((t.b||(t.b=new Ih(e6m,t,4,7)),t.b),0),82),l=Pp(etj((t.c||(t.c=new Ih(e6m,t,5,8)),t.c),0),82),s=ewH(u),c=ewH(l),o=0==(t.a||(t.a=new FQ(e6v,t,6,6)),t.a).i?null:Pp(etj((t.a||(t.a=new FQ(e6v,t,6,6)),t.a),0),202),S=Pp(Bp(e.a,s),10),M=Pp(Bp(e.a,c),10),k=null,O=null,M4(u,186)&&(M4(E=Pp(Bp(e.a,u),299),11)?k=Pp(E,11):M4(E,10)&&(S=Pp(E,10),k=Pp(RJ(S.j,0),11))),M4(l,186)&&(M4(T=Pp(Bp(e.a,l),299),11)?O=Pp(T,11):M4(T,10)&&(M=Pp(T,10),O=Pp(RJ(M.j,0),11))),!S||!M)throw p7(new gZ("The source or the target of edge "+t+" could not be found. This usually happens when an edge connects a node laid out by ELK Layered to a node in another level of hierarchy laid out by either another instance of ELK Layered or another layout algorithm alltogether. The former can be solved by setting the hierarchyHandling option to INCLUDE_CHILDREN."));for(b=new $b,eaW(b,t),eo3(b,(eBU(),tnc),t),eo3(b,(eBy(),taR),null),h=Pp(e_k(r,tt3),21),S==M&&h.Fc((eLR(),ttT)),k||(_=(enY(),tsN),x=null,o&&TM(Pp(e_k(S,tol),98))&&(V2(x=new kl(o.j,o.k),zF(t)),qZ(x,n),etg(c,s)&&(_=tsD,C5(x,S.n))),k=ePH(S,x,_,r)),O||(_=(enY(),tsD),A=null,o&&TM(Pp(e_k(M,tol),98))&&(V2(A=new kl(o.b,o.c),zF(t)),qZ(A,n)),O=ePH(M,A,_,Bq(M))),Gs(b,k),Go(b,O),(k.e.c.length>1||k.g.c.length>1||O.e.c.length>1||O.g.c.length>1)&&h.Fc((eLR(),tt_)),d=new Ow((t.n||(t.n=new FQ(e6S,t,1,7)),t.n));d.e!=d.i.gc();)if(f=Pp(epH(d),137),!gN(LK(eT8(f,ta8)))&&f.a)switch(m=eca(f),P_(b.b,m),Pp(e_k(m,tab),272).g){case 1:case 2:h.Fc((eLR(),tty));break;case 0:h.Fc((eLR(),ttg)),eo3(m,tab,(etT(),tp_))}if(a=Pp(e_k(r,tas),314),g=Pp(e_k(r,ta3),315),i=a==(en7(),teR)||g==(ebG(),tsd),o&&0!=(o.a||(o.a=new O_(e6h,o,5)),o.a).i&&i){for(v=eEF(o),p=new mE,w=epL(v,0);w.b!=w.d.c;)y=Pp(Vv(w),8),P7(p,new TS(y));eo3(b,tnl,p)}return b}function eBY(e){e.gb||(e.gb=!0,e.b=eak(e,0),er6(e.b,18),er9(e.b,19),e.a=eak(e,1),er6(e.a,1),er9(e.a,2),er9(e.a,3),er9(e.a,4),er9(e.a,5),e.o=eak(e,2),er6(e.o,8),er6(e.o,9),er9(e.o,10),er9(e.o,11),er9(e.o,12),er9(e.o,13),er9(e.o,14),er9(e.o,15),er9(e.o,16),er9(e.o,17),er9(e.o,18),er9(e.o,19),er9(e.o,20),er9(e.o,21),er9(e.o,22),er9(e.o,23),ee9(e.o),ee9(e.o),ee9(e.o),ee9(e.o),ee9(e.o),ee9(e.o),ee9(e.o),ee9(e.o),ee9(e.o),ee9(e.o),e.p=eak(e,3),er6(e.p,2),er6(e.p,3),er6(e.p,4),er6(e.p,5),er9(e.p,6),er9(e.p,7),ee9(e.p),ee9(e.p),e.q=eak(e,4),er6(e.q,8),e.v=eak(e,5),er9(e.v,9),ee9(e.v),ee9(e.v),ee9(e.v),e.w=eak(e,6),er6(e.w,2),er6(e.w,3),er6(e.w,4),er9(e.w,5),e.B=eak(e,7),er9(e.B,1),ee9(e.B),ee9(e.B),ee9(e.B),e.Q=eak(e,8),er9(e.Q,0),ee9(e.Q),e.R=eak(e,9),er6(e.R,1),e.S=eak(e,10),ee9(e.S),ee9(e.S),ee9(e.S),ee9(e.S),ee9(e.S),ee9(e.S),ee9(e.S),ee9(e.S),ee9(e.S),ee9(e.S),ee9(e.S),ee9(e.S),ee9(e.S),ee9(e.S),ee9(e.S),e.T=eak(e,11),er9(e.T,10),er9(e.T,11),er9(e.T,12),er9(e.T,13),er9(e.T,14),ee9(e.T),ee9(e.T),e.U=eak(e,12),er6(e.U,2),er6(e.U,3),er9(e.U,4),er9(e.U,5),er9(e.U,6),er9(e.U,7),ee9(e.U),e.V=eak(e,13),er9(e.V,10),e.W=eak(e,14),er6(e.W,18),er6(e.W,19),er6(e.W,20),er9(e.W,21),er9(e.W,22),er9(e.W,23),e.bb=eak(e,15),er6(e.bb,10),er6(e.bb,11),er6(e.bb,12),er6(e.bb,13),er6(e.bb,14),er6(e.bb,15),er6(e.bb,16),er9(e.bb,17),ee9(e.bb),ee9(e.bb),e.eb=eak(e,16),er6(e.eb,2),er6(e.eb,3),er6(e.eb,4),er6(e.eb,5),er6(e.eb,6),er6(e.eb,7),er9(e.eb,8),er9(e.eb,9),e.ab=eak(e,17),er6(e.ab,0),er6(e.ab,1),e.H=eak(e,18),er9(e.H,0),er9(e.H,1),er9(e.H,2),er9(e.H,3),er9(e.H,4),er9(e.H,5),ee9(e.H),e.db=eak(e,19),er9(e.db,2),e.c=eax(e,20),e.d=eax(e,21),e.e=eax(e,22),e.f=eax(e,23),e.i=eax(e,24),e.g=eax(e,25),e.j=eax(e,26),e.k=eax(e,27),e.n=eax(e,28),e.r=eax(e,29),e.s=eax(e,30),e.t=eax(e,31),e.u=eax(e,32),e.fb=eax(e,33),e.A=eax(e,34),e.C=eax(e,35),e.D=eax(e,36),e.F=eax(e,37),e.G=eax(e,38),e.I=eax(e,39),e.J=eax(e,40),e.L=eax(e,41),e.M=eax(e,42),e.N=eax(e,43),e.O=eax(e,44),e.P=eax(e,45),e.X=eax(e,46),e.Y=eax(e,47),e.Z=eax(e,48),e.$=eax(e,49),e._=eax(e,50),e.cb=eax(e,51),e.K=eax(e,52))}function eBB(){var e,t;eBB=A,tdQ=new pO(eZi),th6=new pO(eZa),td0=(ebx(),tdM),td1=new xX(eVi,td0),new pQ,td2=new xX(ezG,null),td3=new pO(eZo),td8=(eyY(),jL(tdX,eow(vx(e54,1),eU4,291,0,[tdK]))),td9=new xX(eVg,td8),td7=new xX(eVr,(OQ(),!1)),tht=(ec3(),tpv),the=new xX(eVu,tht),tho=(efE(),tpO),tha=new xX(eKB,tho),thc=new xX(eqC,!1),thf=(eck(),tpG),thl=new xX(eKP,thf),thP=new T3(12),thN=new xX(ezW,thP),thb=new xX(eGu,!1),thm=new xX(eVA,!1),thD=new xX(eGf,!1),thq=(ewf(),tbl),thV=new xX(eGc,thq),th3=new pO(eVT),th4=new pO(eGr),th5=new pO(eGo),th8=new pO(eGs),thv=new mE,thg=new xX(eVv,thv),td6=new xX(eV_,!1),thd=new xX(eVE,!1),new pO(eZs),thw=new mh,thy=new xX(eVM,thw),thI=new xX(eVt,!1),new pQ,th9=new xX(eZu,1),new xX(eZc,!0),ell(0),new xX(eZl,ell(100)),new xX(eZf,!1),ell(0),new xX(eZd,ell(4e3)),ell(0),new xX(eZh,ell(400)),new xX(eZp,!1),new xX(eZb,!1),new xX(eZm,!0),new xX(eZg,!1),td5=(edM(),tme),td4=new xX(eZr,td5),th7=new xX(eKQ,10),tpe=new xX(eK1,10),tpt=new xX(ez$,20),tpn=new xX(eK0,10),tpr=new xX(eGa,2),tpi=new xX(eK2,10),tpo=new xX(eK3,0),tps=new xX(eK6,5),tpu=new xX(eK4,1),tpc=new xX(eK5,1),tpl=new xX(eGi,20),tpf=new xX(eK9,10),tpp=new xX(eK8,10),tpa=new pO(eK7),tph=new T_,tpd=new xX(eVO,tph),thF=new pO(eVx),thj=!1,thR=new xX(eVk,thj),thE=new T3(5),th_=new xX(eVc,thE),thk=(eT7(),t=Pp(yw(e6t),9),new I1(t,Pp(CY(t,t.length),9),0)),thS=new xX(eGp,thk),thU=(epT(),tbt),thB=new xX(eVd,thU),th$=new pO(eVh),thz=new pO(eVp),thG=new pO(eVb),thH=new pO(eVm),thT=(e=Pp(yw(e6o),9),new I1(e,Pp(CY(e,e.length),9),0)),thx=new xX(eGh,thT),thC=el9((eI3(),tbQ)),thL=new xX(eGd,thC),thA=new kl(0,0),thO=new xX(eGM,thA),thM=new xX(eVs,!1),thi=(etT(),tp_),thr=new xX(eVy,thi),thn=new xX(eGl,!1),new pO(eZv),ell(1),new xX(eZy,null),thW=new pO(eVS),thZ=new pO(eVw),th2=(eYu(),tbF),th0=new xX(eVn,th2),thK=new pO(eVe),thQ=(ekU(),el9(tbm)),thJ=new xX(eGb,thQ),thX=new xX(eVl,!1),th1=new xX(eVf,!0),thh=new xX(eVa,!1),thp=new xX(eVo,!1),ths=new xX(ezz,1),thu=(e_a(),tpN),new xX(eZw,thu),thY=!0}function eBU(){var e,t;eBU=A,tnc=new pO(eGm),ttz=new pO("coordinateOrigin"),tny=new pO("processors"),tt$=new Cm("compoundNode",(OQ(),!1)),tt6=new Cm("insideConnections",!1),tnl=new pO("originalBendpoints"),tnf=new pO("originalDummyNodePosition"),tnd=new pO("originalLabelEdge"),tn_=new pO("representedLabels"),ttq=new pO("endLabels"),ttZ=new pO("endLabel.origin"),tnt=new Cm("labelSide",(egF(),tpX)),tns=new Cm("maxEdgeThickness",0),tnE=new Cm("reversed",!1),tnw=new pO(eGg),tni=new Cm("longEdgeSource",null),tna=new Cm("longEdgeTarget",null),tnr=new Cm("longEdgeHasLabelDummies",!1),tnn=new Cm("longEdgeBeforeLabelDummy",!1),ttV=new Cm("edgeConstraint",(eoG(),te1)),tt8=new pO("inLayerLayoutUnit"),tt9=new Cm("inLayerConstraint",(Q1(),ttD)),tt7=new Cm("inLayerSuccessorConstraint",new p0),tne=new Cm("inLayerSuccessorConstraintBetweenNonDummies",!1),tng=new pO("portDummy"),ttG=new Cm("crossingHint",ell(0)),tt3=new Cm("graphProperties",(t=Pp(yw(e44),9),new I1(t,Pp(CY(t,t.length),9),0))),tt1=new Cm("externalPortSide",(eYu(),tbF)),tt0=new Cm("externalPortSize",new yb),ttJ=new pO("externalPortReplacedDummies"),ttQ=new pO("externalPortReplacedDummy"),ttX=new Cm("externalPortConnections",(e=Pp(yw(e6a),9),new I1(e,Pp(CY(e,e.length),9),0))),tnv=new Cm(ezf,0),ttY=new pO("barycenterAssociates"),tnI=new pO("TopSideComments"),ttB=new pO("BottomSideComments"),ttH=new pO("CommentConnectionPort"),tt5=new Cm("inputCollect",!1),tnb=new Cm("outputCollect",!1),ttK=new Cm("cyclic",!1),ttW=new pO("crossHierarchyMap"),tnC=new pO("targetOffset"),new Cm("splineLabelSize",new yb),tnx=new pO("spacings"),tnm=new Cm("partitionConstraint",!1),ttU=new pO("breakingPoint.info"),tnA=new pO("splines.survivingEdge"),tnO=new pO("splines.route.start"),tnT=new pO("splines.edgeChain"),tnp=new pO("originalPortConstraints"),tnk=new pO("selfLoopHolder"),tnM=new pO("splines.nsPortY"),tnu=new pO("modelOrder"),tno=new pO("longEdgeTargetNode"),tt2=new Cm(eW_,!1),tnS=new Cm(eW_,!1),tt4=new pO("layerConstraints.hiddenNodes"),tnh=new pO("layerConstraints.opposidePort"),tnL=new pO("targetNode.modelOrder")}function eBH(){eBH=A,trl=(eeF(),teZ),trc=new xX(eWE,trl),trO=new xX(eWS,(OQ(),!1)),trN=(K6(),ttR),trD=new xX(eWk,trN),trJ=new xX(eWx,!1),trQ=new xX(eWT,!0),tnY=new xX(eWM,!1),tic=(Q0(),tsL),tiu=new xX(eWO,tic),ell(1),tig=new xX(eWA,ell(7)),tiv=new xX(eWL,!1),trA=new xX(eWC,!1),tru=(eb6(),teG),trs=new xX(eWI,tru),trX=(ewY(),to7),trZ=new xX(eWD,trX),trU=(ef_(),tnj),trB=new xX(eWN,trU),ell(-1),trY=new xX(eWP,ell(-1)),ell(-1),trH=new xX(eWR,ell(-1)),ell(-1),tr$=new xX(eWj,ell(4)),ell(-1),trG=new xX(eWF,ell(2)),trq=(eOJ(),tsS),trV=new xX(eWY,trq),ell(0),trK=new xX(eWB,ell(0)),trj=new xX(eWU,ell(eUu)),tro=(en7(),tej),tra=new xX(eWH,tro),tn1=new xX(eW$,!1),tn7=new xX(eWz,.1),trr=new xX(eWG,!1),ell(-1),trt=new xX(eWW,ell(-1)),ell(-1),trn=new xX(eWK,ell(-1)),ell(0),tn0=new xX(eWV,ell(40)),tn9=(eaU(),ttL),tn6=new xX(eWq,tn9),tn3=ttO,tn2=new xX(eWZ,tn3),tis=(ebG(),tsf),tio=new xX(eWX,tis),tr6=new pO(eWJ),tr0=(Qx(),tte),tr1=new xX(eWQ,tr0),tr4=(eyd(),tto),tr3=new xX(eW1,tr4),new pQ,tr7=new xX(eW0,.3),tit=new pO(eW2),tir=(ebk(),tsu),tin=new xX(eW3,tir),trv=(ei0(),tsF),trg=new xX(eW4,trv),tr_=(Xo(),tsH),trw=new xX(eW5,tr_),trS=(euy(),tsW),trE=new xX(eW6,trS),trx=new xX(eW9,.2),trb=new xX(eW8,2),tih=new xX(eW7,null),tib=new xX(eKe,10),tip=new xX(eKt,10),tim=new xX(eKn,20),ell(0),til=new xX(eKr,ell(0)),ell(0),tif=new xX(eKi,ell(0)),ell(0),tid=new xX(eKa,ell(0)),tnB=new xX(eKo,!1),tnz=(e_3(),ttp),tn$=new xX(eKs,tnz),tnH=(Jp(),teN),tnU=new xX(eKu,tnH),trC=new xX(eKc,!1),ell(0),trL=new xX(eKl,ell(16)),ell(0),trI=new xX(eKf,ell(5)),tiU=(eox(),tsQ),tiB=new xX(eKd,tiU),tiy=new xX(eKh,10),tiE=new xX(eKp,1),tiC=(enB(),teH),tiL=new xX(eKb,tiC),tix=new pO(eKm),tiO=ell(1),ell(0),tiM=new xX(eKg,tiO),tiW=(eiO(),tsV),tiG=new xX(eKv,tiW),tiH=new pO(eKy),tiR=new xX(eKw,!0),tiN=new xX(eK_,2),tiF=new xX(eKE,!0),trp=(eEf(),te9),trh=new xX(eKS,trp),trd=(eSg(),teO),trf=new xX(eKk,trd),tnQ=(esn(),tsM),tnJ=new xX(eKx,tnQ),tnX=new xX(eKT,!1),tnW=(ec4(),e8x),tnG=new xX(eKM,tnW),tnZ=(euJ(),tsn),tnq=new xX(eKO,tnZ),tnK=new xX(eKA,0),tnV=new xX(eKL,0),trR=teK,trP=teR,trz=to8,trW=to8,trF=to5,tre=(eck(),tpz),tri=tej,tn8=tej,tn4=tej,tn5=tpz,tr9=tsp,tr8=tsf,tr2=tsf,tr5=tsf,tie=tsh,tia=tsp,tii=tsp,trk=(efE(),tpM),trT=tpM,trM=tsW,trm=tpT,tiw=ts1,ti_=tsJ,tiS=ts1,tik=tsJ,tiI=ts1,tiD=tsJ,tiT=teU,tiA=teH,tiK=ts1,tiV=tsJ,ti$=ts1,tiz=tsJ,tij=tsJ,tiP=tsJ,tiY=tsJ}function eB$(){eB$=A,e85=new Eq("DIRECTION_PREPROCESSOR",0),e82=new Eq("COMMENT_PREPROCESSOR",1),e86=new Eq("EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER",2),e7d=new Eq("INTERACTIVE_EXTERNAL_PORT_POSITIONER",3),e7C=new Eq("PARTITION_PREPROCESSOR",4),e7m=new Eq("LABEL_DUMMY_INSERTER",5),e7j=new Eq("SELF_LOOP_PREPROCESSOR",6),e7_=new Eq("LAYER_CONSTRAINT_PREPROCESSOR",7),e7A=new Eq("PARTITION_MIDPROCESSOR",8),e7s=new Eq("HIGH_DEGREE_NODE_LAYER_PROCESSOR",9),e7x=new Eq("NODE_PROMOTION",10),e7w=new Eq("LAYER_CONSTRAINT_POSTPROCESSOR",11),e7L=new Eq("PARTITION_POSTPROCESSOR",12),e7r=new Eq("HIERARCHICAL_PORT_CONSTRAINT_PROCESSOR",13),e7Y=new Eq("SEMI_INTERACTIVE_CROSSMIN_PROCESSOR",14),e8Z=new Eq("BREAKING_POINT_INSERTER",15),e7k=new Eq("LONG_EDGE_SPLITTER",16),e7D=new Eq("PORT_SIDE_PROCESSOR",17),e7h=new Eq("INVERTED_PORT_PROCESSOR",18),e7I=new Eq("PORT_LIST_SORTER",19),e7U=new Eq("SORT_BY_INPUT_ORDER_OF_MODEL",20),e7M=new Eq("NORTH_SOUTH_PORT_PREPROCESSOR",21),e8X=new Eq("BREAKING_POINT_PROCESSOR",22),e7O=new Eq(eG7,23),e7H=new Eq(eWe,24),e7P=new Eq("SELF_LOOP_PORT_RESTORER",25),e7B=new Eq("SINGLE_EDGE_GRAPH_WRAPPER",26),e7p=new Eq("IN_LAYER_CONSTRAINT_PROCESSOR",27),e7e=new Eq("END_NODE_PORT_LABEL_MANAGEMENT_PROCESSOR",28),e7b=new Eq("LABEL_AND_NODE_SIZE_PROCESSOR",29),e7f=new Eq("INNERMOST_NODE_MARGIN_CALCULATOR",30),e7F=new Eq("SELF_LOOP_ROUTER",31),e81=new Eq("COMMENT_NODE_MARGIN_CALCULATOR",32),e88=new Eq("END_LABEL_PREPROCESSOR",33),e7v=new Eq("LABEL_DUMMY_SWITCHER",34),e8Q=new Eq("CENTER_LABEL_MANAGEMENT_PROCESSOR",35),e7y=new Eq("LABEL_SIDE_SELECTOR",36),e7c=new Eq("HYPEREDGE_DUMMY_MERGER",37),e7i=new Eq("HIERARCHICAL_PORT_DUMMY_SIZE_PROCESSOR",38),e7E=new Eq("LAYER_SIZE_AND_GRAPH_HEIGHT_CALCULATOR",39),e7o=new Eq("HIERARCHICAL_PORT_POSITION_PROCESSOR",40),e83=new Eq("CONSTRAINTS_POSTPROCESSOR",41),e80=new Eq("COMMENT_POSTPROCESSOR",42),e7l=new Eq("HYPERNODE_PROCESSOR",43),e7a=new Eq("HIERARCHICAL_PORT_ORTHOGONAL_EDGE_ROUTER",44),e7S=new Eq("LONG_EDGE_JOINER",45),e7R=new Eq("SELF_LOOP_POSTPROCESSOR",46),e8J=new Eq("BREAKING_POINT_REMOVER",47),e7T=new Eq("NORTH_SOUTH_PORT_POSTPROCESSOR",48),e7u=new Eq("HORIZONTAL_COMPACTOR",49),e7g=new Eq("LABEL_DUMMY_REMOVER",50),e7t=new Eq("FINAL_SPLINE_BENDPOINTS_CALCULATOR",51),e87=new Eq("END_LABEL_SORTER",52),e7N=new Eq("REVERSED_EDGE_RESTORER",53),e89=new Eq("END_LABEL_POSTPROCESSOR",54),e7n=new Eq("HIERARCHICAL_NODE_RESIZER",55),e84=new Eq("DIRECTION_POSTPROCESSOR",56)}function eBz(e,t,n){var r,i,a,o,s,u,c,l,f,d,h,p,b,m,g,v,y,w,_,E,S,k,x,T,M,O,A,L,C,I,D,N,P,R,j,F,Y,B,U,H,$,z,G,W,K,V,q,Z,X,J,Q,ee,et,en,er,ei,ea,eo;for(I=0,X=0,P=(A=t).length;I0&&(e.a[H.p]=X++)}for(D=0,en=0,R=(L=n).length;D0;){for(H=(A6(W.b>0),Pp(W.a.Xb(W.c=--W.b),11)),G=0,s=new fz(H.e);s.a0&&(H.j==(eYu(),tbw)?(e.a[H.p]=en,++en):(e.a[H.p]=en+j+Y,++Y))}en+=Y}for(C=0,z=new p2,p=new Tw,N=(O=t).length;Cc.b&&(c.b=K)):H.i.c==Z&&(Kc.c&&(c.c=K));for(Qe(b,0,b.length,null),et=Je(ty_,eHT,25,b.length,15,1),r=Je(ty_,eHT,25,en+1,15,1),g=0;g0;)S%2>0&&(i+=ea[S+1]),S=(S-1)/2|0,++ea[S];for(w=0,x=Je(e5g,eUp,362,2*b.length,0,1);w'?":IE(eXJ,e)?"'(?<' or '(? toIndex: ",e$M=", toIndex: ",e$O="Index: ",e$A=", Size: ",e$L="org.eclipse.elk.alg.common",e$C={62:1},e$I="org.eclipse.elk.alg.common.compaction",e$D="Scanline/EventHandler",e$N="org.eclipse.elk.alg.common.compaction.oned",e$P="CNode belongs to another CGroup.",e$R="ISpacingsHandler/1",e$j="The ",e$F=" instance has been finished already.",e$Y="The direction ",e$B=" is not supported by the CGraph instance.",e$U="OneDimensionalCompactor",e$H="OneDimensionalCompactor/lambda$0$Type",e$$="Quadruplet",e$z="ScanlineConstraintCalculator",e$G="ScanlineConstraintCalculator/ConstraintsScanlineHandler",e$W="ScanlineConstraintCalculator/ConstraintsScanlineHandler/lambda$0$Type",e$K="ScanlineConstraintCalculator/Timestamp",e$V="ScanlineConstraintCalculator/lambda$0$Type",e$q={169:1,45:1},e$Z="org.eclipse.elk.alg.common.compaction.options",e$X="org.eclipse.elk.core.data",e$J="org.eclipse.elk.polyomino.traversalStrategy",e$Q="org.eclipse.elk.polyomino.lowLevelSort",e$1="org.eclipse.elk.polyomino.highLevelSort",e$0="org.eclipse.elk.polyomino.fill",e$2={130:1},e$3="polyomino",e$4="org.eclipse.elk.alg.common.networksimplex",e$5={177:1,3:1,4:1},e$6="org.eclipse.elk.alg.common.nodespacing",e$9="org.eclipse.elk.alg.common.nodespacing.cellsystem",e$8="CENTER",e$7={212:1,326:1},eze={3:1,4:1,5:1,595:1},ezt="LEFT",ezn="RIGHT",ezr="Vertical alignment cannot be null",ezi="BOTTOM",eza="org.eclipse.elk.alg.common.nodespacing.internal",ezo="UNDEFINED",ezs=.01,ezu="org.eclipse.elk.alg.common.nodespacing.internal.algorithm",ezc="LabelPlacer/lambda$0$Type",ezl="LabelPlacer/lambda$1$Type",ezf="portRatioOrPosition",ezd="org.eclipse.elk.alg.common.overlaps",ezh="DOWN",ezp="org.eclipse.elk.alg.common.polyomino",ezb="NORTH",ezm="EAST",ezg="SOUTH",ezv="WEST",ezy="org.eclipse.elk.alg.common.polyomino.structures",ezw="Direction",ez_="Grid is only of size ",ezE=". Requested point (",ezS=") is out of bounds.",ezk=" Given center based coordinates were (",ezx="org.eclipse.elk.graph.properties",ezT="IPropertyHolder",ezM={3:1,94:1,134:1},ezO="org.eclipse.elk.alg.common.spore",ezA="org.eclipse.elk.alg.common.utils",ezL={209:1},ezC="org.eclipse.elk.core",ezI="Connected Components Compaction",ezD="org.eclipse.elk.alg.disco",ezN="org.eclipse.elk.alg.disco.graph",ezP="org.eclipse.elk.alg.disco.options",ezR="CompactionStrategy",ezj="org.eclipse.elk.disco.componentCompaction.strategy",ezF="org.eclipse.elk.disco.componentCompaction.componentLayoutAlgorithm",ezY="org.eclipse.elk.disco.debug.discoGraph",ezB="org.eclipse.elk.disco.debug.discoPolys",ezU="componentCompaction",ezH="org.eclipse.elk.disco",ez$="org.eclipse.elk.spacing.componentComponent",ezz="org.eclipse.elk.edge.thickness",ezG="org.eclipse.elk.aspectRatio",ezW="org.eclipse.elk.padding",ezK="org.eclipse.elk.alg.disco.transform",ezV=1.5707963267948966,ezq=17976931348623157e292,ezZ={3:1,4:1,5:1,192:1},ezX={3:1,6:1,4:1,5:1,106:1,120:1},ezJ="org.eclipse.elk.alg.force",ezQ="ComponentsProcessor",ez1="ComponentsProcessor/1",ez0="org.eclipse.elk.alg.force.graph",ez2="Component Layout",ez3="org.eclipse.elk.alg.force.model",ez4="org.eclipse.elk.force.model",ez5="org.eclipse.elk.force.iterations",ez6="org.eclipse.elk.force.repulsivePower",ez9="org.eclipse.elk.force.temperature",ez8=.001,ez7="org.eclipse.elk.force.repulsion",eGe="org.eclipse.elk.alg.force.options",eGt=1.600000023841858,eGn="org.eclipse.elk.force",eGr="org.eclipse.elk.priority",eGi="org.eclipse.elk.spacing.nodeNode",eGa="org.eclipse.elk.spacing.edgeLabel",eGo="org.eclipse.elk.randomSeed",eGs="org.eclipse.elk.separateConnectedComponents",eGu="org.eclipse.elk.interactive",eGc="org.eclipse.elk.portConstraints",eGl="org.eclipse.elk.edgeLabels.inline",eGf="org.eclipse.elk.omitNodeMicroLayout",eGd="org.eclipse.elk.nodeSize.options",eGh="org.eclipse.elk.nodeSize.constraints",eGp="org.eclipse.elk.nodeLabels.placement",eGb="org.eclipse.elk.portLabels.placement",eGm="origin",eGg="random",eGv="boundingBox.upLeft",eGy="boundingBox.lowRight",eGw="org.eclipse.elk.stress.fixed",eG_="org.eclipse.elk.stress.desiredEdgeLength",eGE="org.eclipse.elk.stress.dimension",eGS="org.eclipse.elk.stress.epsilon",eGk="org.eclipse.elk.stress.iterationLimit",eGx="org.eclipse.elk.stress",eGT="ELK Stress",eGM="org.eclipse.elk.nodeSize.minimum",eGO="org.eclipse.elk.alg.force.stress",eGA="Layered layout",eGL="org.eclipse.elk.alg.layered",eGC="org.eclipse.elk.alg.layered.compaction.components",eGI="org.eclipse.elk.alg.layered.compaction.oned",eGD="org.eclipse.elk.alg.layered.compaction.oned.algs",eGN="org.eclipse.elk.alg.layered.compaction.recthull",eGP="org.eclipse.elk.alg.layered.components",eGR="NONE",eGj={3:1,6:1,4:1,9:1,5:1,122:1},eGF={3:1,6:1,4:1,5:1,141:1,106:1,120:1},eGY="org.eclipse.elk.alg.layered.compound",eGB={51:1},eGU="org.eclipse.elk.alg.layered.graph",eGH=" -> ",eG$="Not supported by LGraph",eGz="Port side is undefined",eGG={3:1,6:1,4:1,5:1,474:1,141:1,106:1,120:1},eGW={3:1,6:1,4:1,5:1,141:1,193:1,203:1,106:1,120:1},eGK={3:1,6:1,4:1,5:1,141:1,1943:1,203:1,106:1,120:1},eGV="([{\"' \r\n",eGq=")]}\"' \r\n",eGZ="The given string contains parts that cannot be parsed as numbers.",eGX="org.eclipse.elk.core.math",eGJ={3:1,4:1,142:1,207:1,414:1},eGQ={3:1,4:1,116:1,207:1,414:1},eG1="org.eclipse.elk.layered",eG0="org.eclipse.elk.alg.layered.graph.transform",eG2="ElkGraphImporter",eG3="ElkGraphImporter/lambda$0$Type",eG4="ElkGraphImporter/lambda$1$Type",eG5="ElkGraphImporter/lambda$2$Type",eG6="ElkGraphImporter/lambda$4$Type",eG9="Node margin calculation",eG8="org.eclipse.elk.alg.layered.intermediate",eG7="ONE_SIDED_GREEDY_SWITCH",eWe="TWO_SIDED_GREEDY_SWITCH",eWt="No implementation is available for the layout processor ",eWn="IntermediateProcessorStrategy",eWr="Node '",eWi="FIRST_SEPARATE",eWa="LAST_SEPARATE",eWo="Odd port side processing",eWs="org.eclipse.elk.alg.layered.intermediate.compaction",eWu="org.eclipse.elk.alg.layered.intermediate.greedyswitch",eWc="org.eclipse.elk.alg.layered.p3order.counting",eWl={225:1},eWf="org.eclipse.elk.alg.layered.intermediate.loops",eWd="org.eclipse.elk.alg.layered.intermediate.loops.ordering",eWh="org.eclipse.elk.alg.layered.intermediate.loops.routing",eWp="org.eclipse.elk.alg.layered.intermediate.preserveorder",eWb="org.eclipse.elk.alg.layered.intermediate.wrapping",eWm="org.eclipse.elk.alg.layered.options",eWg="INTERACTIVE",eWv="DEPTH_FIRST",eWy="EDGE_LENGTH",eWw="SELF_LOOPS",eW_="firstTryWithInitialOrder",eWE="org.eclipse.elk.layered.directionCongruency",eWS="org.eclipse.elk.layered.feedbackEdges",eWk="org.eclipse.elk.layered.interactiveReferencePoint",eWx="org.eclipse.elk.layered.mergeEdges",eWT="org.eclipse.elk.layered.mergeHierarchyEdges",eWM="org.eclipse.elk.layered.allowNonFlowPortsToSwitchSides",eWO="org.eclipse.elk.layered.portSortingStrategy",eWA="org.eclipse.elk.layered.thoroughness",eWL="org.eclipse.elk.layered.unnecessaryBendpoints",eWC="org.eclipse.elk.layered.generatePositionAndLayerIds",eWI="org.eclipse.elk.layered.cycleBreaking.strategy",eWD="org.eclipse.elk.layered.layering.strategy",eWN="org.eclipse.elk.layered.layering.layerConstraint",eWP="org.eclipse.elk.layered.layering.layerChoiceConstraint",eWR="org.eclipse.elk.layered.layering.layerId",eWj="org.eclipse.elk.layered.layering.minWidth.upperBoundOnWidth",eWF="org.eclipse.elk.layered.layering.minWidth.upperLayerEstimationScalingFactor",eWY="org.eclipse.elk.layered.layering.nodePromotion.strategy",eWB="org.eclipse.elk.layered.layering.nodePromotion.maxIterations",eWU="org.eclipse.elk.layered.layering.coffmanGraham.layerBound",eWH="org.eclipse.elk.layered.crossingMinimization.strategy",eW$="org.eclipse.elk.layered.crossingMinimization.forceNodeModelOrder",eWz="org.eclipse.elk.layered.crossingMinimization.hierarchicalSweepiness",eWG="org.eclipse.elk.layered.crossingMinimization.semiInteractive",eWW="org.eclipse.elk.layered.crossingMinimization.positionChoiceConstraint",eWK="org.eclipse.elk.layered.crossingMinimization.positionId",eWV="org.eclipse.elk.layered.crossingMinimization.greedySwitch.activationThreshold",eWq="org.eclipse.elk.layered.crossingMinimization.greedySwitch.type",eWZ="org.eclipse.elk.layered.crossingMinimization.greedySwitchHierarchical.type",eWX="org.eclipse.elk.layered.nodePlacement.strategy",eWJ="org.eclipse.elk.layered.nodePlacement.favorStraightEdges",eWQ="org.eclipse.elk.layered.nodePlacement.bk.edgeStraightening",eW1="org.eclipse.elk.layered.nodePlacement.bk.fixedAlignment",eW0="org.eclipse.elk.layered.nodePlacement.linearSegments.deflectionDampening",eW2="org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility",eW3="org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility.default",eW4="org.eclipse.elk.layered.edgeRouting.selfLoopDistribution",eW5="org.eclipse.elk.layered.edgeRouting.selfLoopOrdering",eW6="org.eclipse.elk.layered.edgeRouting.splines.mode",eW9="org.eclipse.elk.layered.edgeRouting.splines.sloppy.layerSpacingFactor",eW8="org.eclipse.elk.layered.edgeRouting.polyline.slopedEdgeZoneWidth",eW7="org.eclipse.elk.layered.spacing.baseValue",eKe="org.eclipse.elk.layered.spacing.edgeNodeBetweenLayers",eKt="org.eclipse.elk.layered.spacing.edgeEdgeBetweenLayers",eKn="org.eclipse.elk.layered.spacing.nodeNodeBetweenLayers",eKr="org.eclipse.elk.layered.priority.direction",eKi="org.eclipse.elk.layered.priority.shortness",eKa="org.eclipse.elk.layered.priority.straightness",eKo="org.eclipse.elk.layered.compaction.connectedComponents",eKs="org.eclipse.elk.layered.compaction.postCompaction.strategy",eKu="org.eclipse.elk.layered.compaction.postCompaction.constraints",eKc="org.eclipse.elk.layered.highDegreeNodes.treatment",eKl="org.eclipse.elk.layered.highDegreeNodes.threshold",eKf="org.eclipse.elk.layered.highDegreeNodes.treeHeight",eKd="org.eclipse.elk.layered.wrapping.strategy",eKh="org.eclipse.elk.layered.wrapping.additionalEdgeSpacing",eKp="org.eclipse.elk.layered.wrapping.correctionFactor",eKb="org.eclipse.elk.layered.wrapping.cutting.strategy",eKm="org.eclipse.elk.layered.wrapping.cutting.cuts",eKg="org.eclipse.elk.layered.wrapping.cutting.msd.freedom",eKv="org.eclipse.elk.layered.wrapping.validify.strategy",eKy="org.eclipse.elk.layered.wrapping.validify.forbiddenIndices",eKw="org.eclipse.elk.layered.wrapping.multiEdge.improveCuts",eK_="org.eclipse.elk.layered.wrapping.multiEdge.distancePenalty",eKE="org.eclipse.elk.layered.wrapping.multiEdge.improveWrappedEdges",eKS="org.eclipse.elk.layered.edgeLabels.sideSelection",eKk="org.eclipse.elk.layered.edgeLabels.centerLabelPlacementStrategy",eKx="org.eclipse.elk.layered.considerModelOrder.strategy",eKT="org.eclipse.elk.layered.considerModelOrder.noModelOrder",eKM="org.eclipse.elk.layered.considerModelOrder.components",eKO="org.eclipse.elk.layered.considerModelOrder.longEdgeStrategy",eKA="org.eclipse.elk.layered.considerModelOrder.crossingCounterNodeInfluence",eKL="org.eclipse.elk.layered.considerModelOrder.crossingCounterPortInfluence",eKC="layering",eKI="layering.minWidth",eKD="layering.nodePromotion",eKN="crossingMinimization",eKP="org.eclipse.elk.hierarchyHandling",eKR="crossingMinimization.greedySwitch",eKj="nodePlacement",eKF="nodePlacement.bk",eKY="edgeRouting",eKB="org.eclipse.elk.edgeRouting",eKU="spacing",eKH="priority",eK$="compaction",eKz="compaction.postCompaction",eKG="Specifies whether and how post-process compaction is applied.",eKW="highDegreeNodes",eKK="wrapping",eKV="wrapping.cutting",eKq="wrapping.validify",eKZ="wrapping.multiEdge",eKX="edgeLabels",eKJ="considerModelOrder",eKQ="org.eclipse.elk.spacing.commentComment",eK1="org.eclipse.elk.spacing.commentNode",eK0="org.eclipse.elk.spacing.edgeEdge",eK2="org.eclipse.elk.spacing.edgeNode",eK3="org.eclipse.elk.spacing.labelLabel",eK4="org.eclipse.elk.spacing.labelPortHorizontal",eK5="org.eclipse.elk.spacing.labelPortVertical",eK6="org.eclipse.elk.spacing.labelNode",eK9="org.eclipse.elk.spacing.nodeSelfLoop",eK8="org.eclipse.elk.spacing.portPort",eK7="org.eclipse.elk.spacing.individual",eVe="org.eclipse.elk.port.borderOffset",eVt="org.eclipse.elk.noLayout",eVn="org.eclipse.elk.port.side",eVr="org.eclipse.elk.debugMode",eVi="org.eclipse.elk.alignment",eVa="org.eclipse.elk.insideSelfLoops.activate",eVo="org.eclipse.elk.insideSelfLoops.yo",eVs="org.eclipse.elk.nodeSize.fixedGraphSize",eVu="org.eclipse.elk.direction",eVc="org.eclipse.elk.nodeLabels.padding",eVl="org.eclipse.elk.portLabels.nextToPortIfPossible",eVf="org.eclipse.elk.portLabels.treatAsGroup",eVd="org.eclipse.elk.portAlignment.default",eVh="org.eclipse.elk.portAlignment.north",eVp="org.eclipse.elk.portAlignment.south",eVb="org.eclipse.elk.portAlignment.west",eVm="org.eclipse.elk.portAlignment.east",eVg="org.eclipse.elk.contentAlignment",eVv="org.eclipse.elk.junctionPoints",eVy="org.eclipse.elk.edgeLabels.placement",eVw="org.eclipse.elk.port.index",eV_="org.eclipse.elk.commentBox",eVE="org.eclipse.elk.hypernode",eVS="org.eclipse.elk.port.anchor",eVk="org.eclipse.elk.partitioning.activate",eVx="org.eclipse.elk.partitioning.partition",eVT="org.eclipse.elk.position",eVM="org.eclipse.elk.margins",eVO="org.eclipse.elk.spacing.portsSurrounding",eVA="org.eclipse.elk.interactiveLayout",eVL="org.eclipse.elk.core.util",eVC={3:1,4:1,5:1,593:1},eVI="NETWORK_SIMPLEX",eVD={123:1,51:1},eVN="org.eclipse.elk.alg.layered.p1cycles",eVP="org.eclipse.elk.alg.layered.p2layers",eVR={402:1,225:1},eVj={832:1,3:1,4:1},eVF="org.eclipse.elk.alg.layered.p3order",eVY="org.eclipse.elk.alg.layered.p4nodes",eVB={3:1,4:1,5:1,840:1},eVU=1e-5,eVH="org.eclipse.elk.alg.layered.p4nodes.bk",eV$="org.eclipse.elk.alg.layered.p5edges",eVz="org.eclipse.elk.alg.layered.p5edges.orthogonal",eVG="org.eclipse.elk.alg.layered.p5edges.orthogonal.direction",eVW=1e-6,eVK="org.eclipse.elk.alg.layered.p5edges.splines",eVV=.09999999999999998,eVq=1e-8,eVZ=4.71238898038469,eVX=3.141592653589793,eVJ="org.eclipse.elk.alg.mrtree",eVQ="org.eclipse.elk.alg.mrtree.graph",eV1="org.eclipse.elk.alg.mrtree.intermediate",eV0="Set neighbors in level",eV2="DESCENDANTS",eV3="org.eclipse.elk.mrtree.weighting",eV4="org.eclipse.elk.mrtree.searchOrder",eV5="org.eclipse.elk.alg.mrtree.options",eV6="org.eclipse.elk.mrtree",eV9="org.eclipse.elk.tree",eV8="org.eclipse.elk.alg.radial",eV7=6.283185307179586,eqe=5e-324,eqt="org.eclipse.elk.alg.radial.intermediate",eqn="org.eclipse.elk.alg.radial.intermediate.compaction",eqr={3:1,4:1,5:1,106:1},eqi="org.eclipse.elk.alg.radial.intermediate.optimization",eqa="No implementation is available for the layout option ",eqo="org.eclipse.elk.alg.radial.options",eqs="org.eclipse.elk.radial.orderId",equ="org.eclipse.elk.radial.radius",eqc="org.eclipse.elk.radial.compactor",eql="org.eclipse.elk.radial.compactionStepSize",eqf="org.eclipse.elk.radial.sorter",eqd="org.eclipse.elk.radial.wedgeCriteria",eqh="org.eclipse.elk.radial.optimizationCriteria",eqp="org.eclipse.elk.radial",eqb="org.eclipse.elk.alg.radial.p1position.wedge",eqm="org.eclipse.elk.alg.radial.sorting",eqg=5.497787143782138,eqv=3.9269908169872414,eqy=2.356194490192345,eqw="org.eclipse.elk.alg.rectpacking",eq_="org.eclipse.elk.alg.rectpacking.firstiteration",eqE="org.eclipse.elk.alg.rectpacking.options",eqS="org.eclipse.elk.rectpacking.optimizationGoal",eqk="org.eclipse.elk.rectpacking.lastPlaceShift",eqx="org.eclipse.elk.rectpacking.currentPosition",eqT="org.eclipse.elk.rectpacking.desiredPosition",eqM="org.eclipse.elk.rectpacking.onlyFirstIteration",eqO="org.eclipse.elk.rectpacking.rowCompaction",eqA="org.eclipse.elk.rectpacking.expandToAspectRatio",eqL="org.eclipse.elk.rectpacking.targetWidth",eqC="org.eclipse.elk.expandNodes",eqI="org.eclipse.elk.rectpacking",eqD="org.eclipse.elk.alg.rectpacking.util",eqN="No implementation available for ",eqP="org.eclipse.elk.alg.spore",eqR="org.eclipse.elk.alg.spore.options",eqj="org.eclipse.elk.sporeCompaction",eqF="org.eclipse.elk.underlyingLayoutAlgorithm",eqY="org.eclipse.elk.processingOrder.treeConstruction",eqB="org.eclipse.elk.processingOrder.spanningTreeCostFunction",eqU="org.eclipse.elk.processingOrder.preferredRoot",eqH="org.eclipse.elk.processingOrder.rootSelection",eq$="org.eclipse.elk.structure.structureExtractionStrategy",eqz="org.eclipse.elk.compaction.compactionStrategy",eqG="org.eclipse.elk.compaction.orthogonal",eqW="org.eclipse.elk.overlapRemoval.maxIterations",eqK="org.eclipse.elk.overlapRemoval.runScanline",eqV="processingOrder",eqq="overlapRemoval",eqZ="org.eclipse.elk.sporeOverlap",eqX="org.eclipse.elk.alg.spore.p1structure",eqJ="org.eclipse.elk.alg.spore.p2processingorder",eqQ="org.eclipse.elk.alg.spore.p3execution",eq1="Invalid index: ",eq0="org.eclipse.elk.core.alg",eq2={331:1},eq3={288:1},eq4="Make sure its type is registered with the ",eq5=" utility class.",eq6="true",eq9="false",eq8="Couldn't clone property '",eq7=.05,eZe="org.eclipse.elk.core.options",eZt=1.2999999523162842,eZn="org.eclipse.elk.box",eZr="org.eclipse.elk.box.packingMode",eZi="org.eclipse.elk.algorithm",eZa="org.eclipse.elk.resolvedAlgorithm",eZo="org.eclipse.elk.bendPoints",eZs="org.eclipse.elk.labelManager",eZu="org.eclipse.elk.scaleFactor",eZc="org.eclipse.elk.animate",eZl="org.eclipse.elk.animTimeFactor",eZf="org.eclipse.elk.layoutAncestors",eZd="org.eclipse.elk.maxAnimTime",eZh="org.eclipse.elk.minAnimTime",eZp="org.eclipse.elk.progressBar",eZb="org.eclipse.elk.validateGraph",eZm="org.eclipse.elk.validateOptions",eZg="org.eclipse.elk.zoomToFit",eZv="org.eclipse.elk.font.name",eZy="org.eclipse.elk.font.size",eZw="org.eclipse.elk.edge.type",eZ_="partitioning",eZE="nodeLabels",eZS="portAlignment",eZk="nodeSize",eZx="port",eZT="portLabels",eZM="insideSelfLoops",eZO="org.eclipse.elk.fixed",eZA="org.eclipse.elk.random",eZL="port must have a parent node to calculate the port side",eZC="The edge needs to have exactly one edge section. Found: ",eZI="org.eclipse.elk.core.util.adapters",eZD="org.eclipse.emf.ecore",eZN="org.eclipse.elk.graph",eZP="EMapPropertyHolder",eZR="ElkBendPoint",eZj="ElkGraphElement",eZF="ElkConnectableShape",eZY="ElkEdge",eZB="ElkEdgeSection",eZU="EModelElement",eZH="ENamedElement",eZ$="ElkLabel",eZz="ElkNode",eZG="ElkPort",eZW={92:1,90:1},eZK="org.eclipse.emf.common.notify.impl",eZV="The feature '",eZq="' is not a valid changeable feature",eZZ="Expecting null",eZX="' is not a valid feature",eZJ="The feature ID",eZQ=" is not a valid feature ID",eZ1=32768,eZ0={105:1,92:1,90:1,56:1,49:1,97:1},eZ2="org.eclipse.emf.ecore.impl",eZ3="org.eclipse.elk.graph.impl",eZ4="Recursive containment not allowed for ",eZ5="The datatype '",eZ6="' is not a valid classifier",eZ9="The value '",eZ8={190:1,3:1,4:1},eZ7="The class '",eXe="http://www.eclipse.org/elk/ElkGraph",eXt=1024,eXn="property",eXr="value",eXi="source",eXa="properties",eXo="identifier",eXs="height",eXu="width",eXc="parent",eXl="text",eXf="children",eXd="hierarchical",eXh="sources",eXp="targets",eXb="sections",eXm="bendPoints",eXg="outgoingShape",eXv="incomingShape",eXy="outgoingSections",eXw="incomingSections",eX_="org.eclipse.emf.common.util",eXE="Severe implementation error in the Json to ElkGraph importer.",eXS="id",eXk="org.eclipse.elk.graph.json",eXx="Unhandled parameter types: ",eXT="startPoint",eXM="An edge must have at least one source and one target (edge id: '",eXO="').",eXA="Referenced edge section does not exist: ",eXL=" (edge id: '",eXC="target",eXI="sourcePoint",eXD="targetPoint",eXN="group",eXP="name",eXR="connectableShape cannot be null",eXj="edge cannot be null",eXF="Passed edge is not 'simple'.",eXY="org.eclipse.elk.graph.util",eXB="The 'no duplicates' constraint is violated",eXU="targetIndex=",eXH=", size=",eX$="sourceIndex=",eXz={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1},eXG={3:1,4:1,20:1,28:1,52:1,14:1,47:1,15:1,54:1,67:1,63:1,58:1,588:1},eXW="logging",eXK="measureExecutionTime",eXV="parser.parse.1",eXq="parser.parse.2",eXZ="parser.next.1",eXX="parser.next.2",eXJ="parser.next.3",eXQ="parser.next.4",eX1="parser.factor.1",eX0="parser.factor.2",eX2="parser.factor.3",eX3="parser.factor.4",eX4="parser.factor.5",eX5="parser.factor.6",eX6="parser.atom.1",eX9="parser.atom.2",eX8="parser.atom.3",eX7="parser.atom.4",eJe="parser.atom.5",eJt="parser.cc.1",eJn="parser.cc.2",eJr="parser.cc.3",eJi="parser.cc.5",eJa="parser.cc.6",eJo="parser.cc.7",eJs="parser.cc.8",eJu="parser.ope.1",eJc="parser.ope.2",eJl="parser.ope.3",eJf="parser.descape.1",eJd="parser.descape.2",eJh="parser.descape.3",eJp="parser.descape.4",eJb="parser.descape.5",eJm="parser.process.1",eJg="parser.quantifier.1",eJv="parser.quantifier.2",eJy="parser.quantifier.3",eJw="parser.quantifier.4",eJ_="parser.quantifier.5",eJE="org.eclipse.emf.common.notify",eJS={415:1,672:1},eJk={3:1,4:1,20:1,28:1,52:1,14:1,15:1,67:1,58:1},eJx={366:1,143:1},eJT="index=",eJM={3:1,4:1,5:1,126:1},eJO={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,58:1},eJA={3:1,6:1,4:1,5:1,192:1},eJL={3:1,4:1,5:1,165:1,367:1},eJC=";/?:@&=+$,",eJI="invalid authority: ",eJD="EAnnotation",eJN="ETypedElement",eJP="EStructuralFeature",eJR="EAttribute",eJj="EClassifier",eJF="EEnumLiteral",eJY="EGenericType",eJB="EOperation",eJU="EParameter",eJH="EReference",eJ$="ETypeParameter",eJz="org.eclipse.emf.ecore.util",eJG={76:1},eJW={3:1,20:1,14:1,15:1,58:1,589:1,76:1,69:1,95:1},eJK="org.eclipse.emf.ecore.util.FeatureMap$Entry",eJV=8192,eJq=2048,eJZ="byte",eJX="char",eJJ="double",eJQ="float",eJ1="int",eJ0="long",eJ2="short",eJ3="java.lang.Object",eJ4={3:1,4:1,5:1,247:1},eJ5={3:1,4:1,5:1,673:1},eJ6={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1,69:1},eJ9={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1,76:1,69:1,95:1},eJ8="mixed",eJ7="http:///org/eclipse/emf/ecore/util/ExtendedMetaData",eQe="kind",eQt={3:1,4:1,5:1,674:1},eQn={3:1,4:1,20:1,28:1,52:1,14:1,15:1,67:1,58:1,76:1,69:1,95:1},eQr={20:1,28:1,52:1,14:1,15:1,58:1,69:1},eQi={47:1,125:1,279:1},eQa={72:1,332:1},eQo="The value of type '",eQs="' must be of type '",eQu=1316,eQc="http://www.eclipse.org/emf/2002/Ecore",eQl=-32768,eQf="constraints",eQd="baseType",eQh="getEStructuralFeature",eQp="getFeatureID",eQb="feature",eQm="getOperationID",eQg="operation",eQv="defaultValue",eQy="eTypeParameters",eQw="isInstance",eQ_="getEEnumLiteral",eQE="eContainingClass",eQS={55:1},eQk={3:1,4:1,5:1,119:1},eQx="org.eclipse.emf.ecore.resource",eQT={92:1,90:1,591:1,1935:1},eQM="org.eclipse.emf.ecore.resource.impl",eQO="unspecified",eQA="simple",eQL="attribute",eQC="attributeWildcard",eQI="element",eQD="elementWildcard",eQN="collapse",eQP="itemType",eQR="namespace",eQj="##targetNamespace",eQF="whiteSpace",eQY="wildcards",eQB="http://www.eclipse.org/emf/2003/XMLType",eQU="##any",eQH="uninitialized",eQ$="The multiplicity constraint is violated",eQz="org.eclipse.emf.ecore.xml.type",eQG="ProcessingInstruction",eQW="SimpleAnyType",eQK="XMLTypeDocumentRoot",eQV="org.eclipse.emf.ecore.xml.type.impl",eQq="INF",eQZ="processing",eQX="ENTITIES_._base",eQJ="minLength",eQQ="ENTITY",eQ1="NCName",eQ0="IDREFS_._base",eQ2="integer",eQ3="token",eQ4="pattern",eQ5="[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*",eQ6="\\i\\c*",eQ9="[\\i-[:]][\\c-[:]]*",eQ8="nonPositiveInteger",eQ7="maxInclusive",e1e="NMTOKEN",e1t="NMTOKENS_._base",e1n="nonNegativeInteger",e1r="minInclusive",e1i="normalizedString",e1a="unsignedByte",e1o="unsignedInt",e1s="18446744073709551615",e1u="unsignedShort",e1c="processingInstruction",e1l="org.eclipse.emf.ecore.xml.type.internal",e1f=1114111,e1d="Internal Error: shorthands: \\u",e1h="xml:isDigit",e1p="xml:isWord",e1b="xml:isSpace",e1m="xml:isNameChar",e1g="xml:isInitialNameChar",e1v="09٠٩۰۹०९০৯੦੯૦૯୦୯௧௯౦౯೦೯൦൯๐๙໐໙༠༩",e1y="AZaz\xc0\xd6\xd8\xf6\xf8ıĴľŁňŊžƀǃǍǰǴǵǺȗɐʨʻˁΆΆΈΊΌΌΎΡΣώϐϖϚϚϜϜϞϞϠϠϢϳЁЌЎяёќўҁҐӄӇӈӋӌӐӫӮӵӸӹԱՖՙՙաֆאתװײءغفيٱڷںھۀێېۓەەۥۦअहऽऽक़ॡঅঌএঐওনপরললশহড়ঢ়য়ৡৰৱਅਊਏਐਓਨਪਰਲਲ਼ਵਸ਼ਸਹਖ਼ੜਫ਼ਫ਼ੲੴઅઋઍઍએઑઓનપરલળવહઽઽૠૠଅଌଏଐଓନପରଲଳଶହଽଽଡ଼ଢ଼ୟୡஅஊஎஐஒகஙசஜஜஞடணதநபமவஷஹఅఌఎఐఒనపళవహౠౡಅಌಎಐಒನಪಳವಹೞೞೠೡഅഌഎഐഒനപഹൠൡกฮะะาำเๅກຂຄຄງຈຊຊຍຍດທນຟມຣລລວວສຫອຮະະາຳຽຽເໄཀཇཉཀྵႠჅაჶᄀᄀᄂᄃᄅᄇᄉᄉᄋᄌᄎᄒᄼᄼᄾᄾᅀᅀᅌᅌᅎᅎᅐᅐᅔᅕᅙᅙᅟᅡᅣᅣᅥᅥᅧᅧᅩᅩᅭᅮᅲᅳᅵᅵᆞᆞᆨᆨᆫᆫᆮᆯᆷᆸᆺᆺᆼᇂᇫᇫᇰᇰᇹᇹḀẛẠỹἀἕἘἝἠὅὈὍὐὗὙὙὛὛὝὝὟώᾀᾴᾶᾼιιῂῄῆῌῐΐῖΊῠῬῲῴῶῼΩΩKÅ℮℮ↀↂ〇〇〡〩ぁゔァヺㄅㄬ一龥가힣",e1w="Private Use",e1_="ASSIGNED",e1E="\0\x7f\x80\xffĀſƀɏɐʯʰ˿̀ͯͰϿЀӿ԰֏֐׿؀ۿ܀ݏހ޿ऀॿঀ৿਀੿઀૿଀୿஀௿ఀ౿ಀ೿ഀൿ඀෿฀๿຀໿ༀ࿿က႟Ⴀჿᄀᇿሀ፿Ꭰ᏿᐀ᙿ ᚟ᚠ᛿ក៿᠀᢯Ḁỿἀ῿ ⁰₟₠⃏⃐⃿℀⅏⅐↏←⇿∀⋿⌀⏿␀␿⑀⑟①⓿─╿▀▟■◿☀⛿✀➿⠀⣿⺀⻿⼀⿟⿰⿿ 〿぀ゟ゠ヿ㄀ㄯ㄰㆏㆐㆟ㆠㆿ㈀㋿㌀㏿㐀䶵一鿿ꀀ꒏꒐꓏가힣豈﫿ffﭏﭐ﷿︠︯︰﹏﹐﹯ﹰ﻾\uFEFF\uFEFF＀￯",e1S="UNASSIGNED",e1k={3:1,117:1},e1x="org.eclipse.emf.ecore.xml.type.util",e1T={3:1,4:1,5:1,368:1},e1M="org.eclipse.xtext.xbase.lib",e1O="Cannot add elements to a Range",e1A="Cannot set elements in a Range",e1L="Cannot remove elements from a Range",e1C="locale",e1I="default",e1D="user.agent",e1N=null;eB4.goog=eB4.goog||{},eB4.goog.global=eB4.goog.global||eB4,e_Q(),eTS(1,null,{},r),eUe.Fb=function(e){return x5(this,e)},eUe.Gb=function(){return this.gm},eUe.Hb=function(){return Ao(this)},eUe.Ib=function(){var e;return yx(esF(this))+"@"+(e=esj(this)>>>0).toString(16)},eUe.equals=function(e){return this.Fb(e)},eUe.hashCode=function(){return this.Hb()},eUe.toString=function(){return this.Ib()},eTS(290,1,{290:1,2026:1},ese),eUe.le=function(e){var t;return(t=new ese).i=4,e>1?t.c=z9(this,e-1):t.c=this,t},eUe.me=function(){return LW(this),this.b},eUe.ne=function(){return yx(this)},eUe.oe=function(){return LW(this),this.k},eUe.pe=function(){return(4&this.i)!=0},eUe.qe=function(){return(1&this.i)!=0},eUe.Ib=function(){return ee6(this)},eUe.i=0;var e1P=1,e1R=Y5(eUc,"Object",1),e1j=Y5(eUc,"Class",290);eTS(1998,1,eUl),Y5(eUf,"Optional",1998),eTS(1170,1998,eUl,i),eUe.Fb=function(e){return e===this},eUe.Hb=function(){return 2040732332},eUe.Ib=function(){return"Optional.absent()"},eUe.Jb=function(e){return Y9(e),m4(),e0l},Y5(eUf,"Absent",1170),eTS(628,1,{},ve),Y5(eUf,"Joiner",628);var e1F=RL(eUf,"Predicate");eTS(582,1,{169:1,582:1,3:1,45:1},c4),eUe.Mb=function(e){return es_(this,e)},eUe.Lb=function(e){return es_(this,e)},eUe.Fb=function(e){var t;return!!M4(e,582)&&(t=Pp(e,582),eT$(this.a,t.a))},eUe.Hb=function(){return esS(this.a)+306654252},eUe.Ib=function(){return eE7(this.a)},Y5(eUf,"Predicates/AndPredicate",582),eTS(408,1998,{408:1,3:1},c5),eUe.Fb=function(e){var t;return!!M4(e,408)&&(t=Pp(e,408),ecX(this.a,t.a))},eUe.Hb=function(){return 1502476572+esj(this.a)},eUe.Ib=function(){return eUm+this.a+")"},eUe.Jb=function(e){return new c5(H5(e.Kb(this.a),"the Function passed to Optional.transform() must not return null."))},Y5(eUf,"Present",408),eTS(198,1,eUv),eUe.Nb=function(e){F8(this,e)},eUe.Qb=function(){g4()},Y5(eUy,"UnmodifiableIterator",198),eTS(1978,198,eUw),eUe.Qb=function(){g4()},eUe.Rb=function(e){throw p7(new bO)},eUe.Wb=function(e){throw p7(new bO)},Y5(eUy,"UnmodifiableListIterator",1978),eTS(386,1978,eUw),eUe.Ob=function(){return this.c0},eUe.Pb=function(){if(this.c>=this.d)throw p7(new bC);return this.Xb(this.c++)},eUe.Tb=function(){return this.c},eUe.Ub=function(){if(this.c<=0)throw p7(new bC);return this.Xb(--this.c)},eUe.Vb=function(){return this.c-1},eUe.c=0,eUe.d=0,Y5(eUy,"AbstractIndexedListIterator",386),eTS(699,198,eUv),eUe.Ob=function(){return erE(this)},eUe.Pb=function(){return QR(this)},eUe.e=1,Y5(eUy,"AbstractIterator",699),eTS(1986,1,{224:1}),eUe.Zb=function(){var e;return(e=this.f)||(this.f=this.ac())},eUe.Fb=function(e){return es5(this,e)},eUe.Hb=function(){return esj(this.Zb())},eUe.dc=function(){return 0==this.gc()},eUe.ec=function(){return Fh(this)},eUe.Ib=function(){return efF(this.Zb())},Y5(eUy,"AbstractMultimap",1986),eTS(726,1986,eU_),eUe.$b=function(){enK(this)},eUe._b=function(e){return yy(this,e)},eUe.ac=function(){return new wI(this,this.c)},eUe.ic=function(e){return this.hc()},eUe.bc=function(){return new OC(this,this.c)},eUe.jc=function(){return this.mc(this.hc())},eUe.kc=function(){return new m$(this)},eUe.lc=function(){return ew4(this.c.vc().Nc(),new o,64,this.d)},eUe.cc=function(e){return Zq(this,e)},eUe.fc=function(e){return eu9(this,e)},eUe.gc=function(){return this.d},eUe.mc=function(e){return Hj(),new fF(e)},eUe.nc=function(){return new mH(this)},eUe.oc=function(){return ew4(this.c.Cc().Nc(),new a,64,this.d)},eUe.pc=function(e,t){return new XS(this,e,t,null)},eUe.d=0,Y5(eUy,"AbstractMapBasedMultimap",726),eTS(1631,726,eU_),eUe.hc=function(){return new XM(this.a)},eUe.jc=function(){return Hj(),Hj(),e2r},eUe.cc=function(e){return Pp(Zq(this,e),15)},eUe.fc=function(e){return Pp(eu9(this,e),15)},eUe.Zb=function(){return HU(this)},eUe.Fb=function(e){return es5(this,e)},eUe.qc=function(e){return Pp(Zq(this,e),15)},eUe.rc=function(e){return Pp(eu9(this,e),15)},eUe.mc=function(e){return $a(Pp(e,15))},eUe.pc=function(e,t){return Vu(this,e,Pp(t,15),null)},Y5(eUy,"AbstractListMultimap",1631),eTS(732,1,eUE),eUe.Nb=function(e){F8(this,e)},eUe.Ob=function(){return this.c.Ob()||this.e.Ob()},eUe.Pb=function(){var e;return this.e.Ob()||(e=Pp(this.c.Pb(),42),this.b=e.cd(),this.a=Pp(e.dd(),14),this.e=this.a.Kc()),this.sc(this.b,this.e.Pb())},eUe.Qb=function(){this.e.Qb(),this.a.dc()&&this.c.Qb(),--this.d.d},Y5(eUy,"AbstractMapBasedMultimap/Itr",732),eTS(1099,732,eUE,mH),eUe.sc=function(e,t){return t},Y5(eUy,"AbstractMapBasedMultimap/1",1099),eTS(1100,1,{},a),eUe.Kb=function(e){return Pp(e,14).Nc()},Y5(eUy,"AbstractMapBasedMultimap/1methodref$spliterator$Type",1100),eTS(1101,732,eUE,m$),eUe.sc=function(e,t){return new wD(e,t)},Y5(eUy,"AbstractMapBasedMultimap/2",1101);var e1Y=RL(eUS,"Map");eTS(1967,1,eUk),eUe.wc=function(e){ear(this,e)},eUe.yc=function(e,t,n){return el6(this,e,t,n)},eUe.$b=function(){this.vc().$b()},eUe.tc=function(e){return emT(this,e)},eUe._b=function(e){return!!ewt(this,e,!1)},eUe.uc=function(e){var t,n,r;for(n=this.vc().Kc();n.Ob();)if(r=(t=Pp(n.Pb(),42)).dd(),xc(e)===xc(r)||null!=e&&ecX(e,r))return!0;return!1},eUe.Fb=function(e){var t,n,r;if(e===this)return!0;if(!M4(e,83)||(r=Pp(e,83),this.gc()!=r.gc()))return!1;for(n=r.vc().Kc();n.Ob();)if(t=Pp(n.Pb(),42),!this.tc(t))return!1;return!0},eUe.xc=function(e){return xu(ewt(this,e,!1))},eUe.Hb=function(){return eoP(this.vc())},eUe.dc=function(){return 0==this.gc()},eUe.ec=function(){return new fk(this)},eUe.zc=function(e,t){throw p7(new gW("Put not supported on this map"))},eUe.Ac=function(e){eij(this,e)},eUe.Bc=function(e){return xu(ewt(this,e,!0))},eUe.gc=function(){return this.vc().gc()},eUe.Ib=function(){return ewb(this)},eUe.Cc=function(){return new fT(this)},Y5(eUS,"AbstractMap",1967),eTS(1987,1967,eUk),eUe.bc=function(){return new wU(this)},eUe.vc=function(){return Fd(this)},eUe.ec=function(){var e;return(e=this.g)||(this.g=this.bc())},eUe.Cc=function(){var e;return(e=this.i)||(this.i=new wH(this))},Y5(eUy,"Maps/ViewCachingAbstractMap",1987),eTS(389,1987,eUk,wI),eUe.xc=function(e){return etl(this,e)},eUe.Bc=function(e){return euT(this,e)},eUe.$b=function(){this.d==this.e.c?this.e.$b():RG(new RK(this))},eUe._b=function(e){return ecD(this.d,e)},eUe.Ec=function(){return new c7(this)},eUe.Dc=function(){return this.Ec()},eUe.Fb=function(e){return this===e||ecX(this.d,e)},eUe.Hb=function(){return esj(this.d)},eUe.ec=function(){return this.e.ec()},eUe.gc=function(){return this.d.gc()},eUe.Ib=function(){return efF(this.d)},Y5(eUy,"AbstractMapBasedMultimap/AsMap",389);var e1B=RL(eUc,"Iterable");eTS(28,1,eUx),eUe.Jc=function(e){qX(this,e)},eUe.Lc=function(){return this.Oc()},eUe.Nc=function(){return new Gq(this,0)},eUe.Oc=function(){return new R1(null,this.Nc())},eUe.Fc=function(e){throw p7(new gW("Add not supported on this collection"))},eUe.Gc=function(e){return er7(this,e)},eUe.$b=function(){UG(this)},eUe.Hc=function(e){return eds(this,e,!1)},eUe.Ic=function(e){return eot(this,e)},eUe.dc=function(){return 0==this.gc()},eUe.Mc=function(e){return eds(this,e,!0)},eUe.Pc=function(){return Fn(this)},eUe.Qc=function(e){return emk(this,e)},eUe.Ib=function(){return e_F(this)},Y5(eUS,"AbstractCollection",28);var e1U=RL(eUS,"Set");eTS(eUT,28,eUM),eUe.Nc=function(){return new Gq(this,1)},eUe.Fb=function(e){return ehN(this,e)},eUe.Hb=function(){return eoP(this)},Y5(eUS,"AbstractSet",eUT),eTS(1970,eUT,eUM),Y5(eUy,"Sets/ImprovedAbstractSet",1970),eTS(1971,1970,eUM),eUe.$b=function(){this.Rc().$b()},eUe.Hc=function(e){return edz(this,e)},eUe.dc=function(){return this.Rc().dc()},eUe.Mc=function(e){var t;return!!this.Hc(e)&&(t=Pp(e,42),this.Rc().ec().Mc(t.cd()))},eUe.gc=function(){return this.Rc().gc()},Y5(eUy,"Maps/EntrySet",1971),eTS(1097,1971,eUM,c7),eUe.Hc=function(e){return ecC(this.a.d.vc(),e)},eUe.Kc=function(){return new RK(this.a)},eUe.Rc=function(){return this.a},eUe.Mc=function(e){var t;return!!ecC(this.a.d.vc(),e)&&(t=Pp(e,42),ZM(this.a.e,t.cd()),!0)},eUe.Nc=function(){return Pl(this.a.d.vc().Nc(),new le(this.a))},Y5(eUy,"AbstractMapBasedMultimap/AsMap/AsMapEntries",1097),eTS(1098,1,{},le),eUe.Kb=function(e){return qJ(this.a,Pp(e,42))},Y5(eUy,"AbstractMapBasedMultimap/AsMap/AsMapEntries/0methodref$wrapEntry$Type",1098),eTS(730,1,eUE,RK),eUe.Nb=function(e){F8(this,e)},eUe.Pb=function(){var e;return e=Pp(this.b.Pb(),42),this.a=Pp(e.dd(),14),qJ(this.c,e)},eUe.Ob=function(){return this.b.Ob()},eUe.Qb=function(){eah(!!this.a),this.b.Qb(),this.c.e.d-=this.a.gc(),this.a.$b(),this.a=null},Y5(eUy,"AbstractMapBasedMultimap/AsMap/AsMapIterator",730),eTS(532,1970,eUM,wU),eUe.$b=function(){this.b.$b()},eUe.Hc=function(e){return this.b._b(e)},eUe.Jc=function(e){Y9(e),this.b.wc(new lk(e))},eUe.dc=function(){return this.b.dc()},eUe.Kc=function(){return new gr(this.b.vc().Kc())},eUe.Mc=function(e){return!!this.b._b(e)&&(this.b.Bc(e),!0)},eUe.gc=function(){return this.b.gc()},Y5(eUy,"Maps/KeySet",532),eTS(318,532,eUM,OC),eUe.$b=function(){var e;RG((e=this.b.vc().Kc(),new wg(this,e)))},eUe.Ic=function(e){return this.b.ec().Ic(e)},eUe.Fb=function(e){return this===e||ecX(this.b.ec(),e)},eUe.Hb=function(){return esj(this.b.ec())},eUe.Kc=function(){var e;return e=this.b.vc().Kc(),new wg(this,e)},eUe.Mc=function(e){var t,n;return n=0,(t=Pp(this.b.Bc(e),14))&&(n=t.gc(),t.$b(),this.a.d-=n),n>0},eUe.Nc=function(){return this.b.ec().Nc()},Y5(eUy,"AbstractMapBasedMultimap/KeySet",318),eTS(731,1,eUE,wg),eUe.Nb=function(e){F8(this,e)},eUe.Ob=function(){return this.c.Ob()},eUe.Pb=function(){return this.a=Pp(this.c.Pb(),42),this.a.cd()},eUe.Qb=function(){var e;eah(!!this.a),e=Pp(this.a.dd(),14),this.c.Qb(),this.b.a.d-=e.gc(),e.$b(),this.a=null},Y5(eUy,"AbstractMapBasedMultimap/KeySet/1",731),eTS(491,389,{83:1,161:1},LX),eUe.bc=function(){return this.Sc()},eUe.ec=function(){return this.Tc()},eUe.Sc=function(){return new wb(this.c,this.Uc())},eUe.Tc=function(){var e;return(e=this.b)||(this.b=this.Sc())},eUe.Uc=function(){return Pp(this.d,161)},Y5(eUy,"AbstractMapBasedMultimap/SortedAsMap",491),eTS(542,491,eUO,LJ),eUe.bc=function(){return new wm(this.a,Pp(Pp(this.d,161),171))},eUe.Sc=function(){return new wm(this.a,Pp(Pp(this.d,161),171))},eUe.ec=function(){var e;return Pp((e=this.b)||(this.b=new wm(this.a,Pp(Pp(this.d,161),171))),271)},eUe.Tc=function(){var e;return Pp((e=this.b)||(this.b=new wm(this.a,Pp(Pp(this.d,161),171))),271)},eUe.Uc=function(){return Pp(Pp(this.d,161),171)},Y5(eUy,"AbstractMapBasedMultimap/NavigableAsMap",542),eTS(490,318,eUA,wb),eUe.Nc=function(){return this.b.ec().Nc()},Y5(eUy,"AbstractMapBasedMultimap/SortedKeySet",490),eTS(388,490,eUL,wm),Y5(eUy,"AbstractMapBasedMultimap/NavigableKeySet",388),eTS(541,28,eUx,XS),eUe.Fc=function(e){var t,n;return efH(this),n=this.d.dc(),(t=this.d.Fc(e))&&(++this.f.d,n&&CP(this)),t},eUe.Gc=function(e){var t,n,r;return!e.dc()&&(r=(efH(this),this.d.gc()),(t=this.d.Gc(e))&&(n=this.d.gc(),this.f.d+=n-r,0==r&&CP(this)),t)},eUe.$b=function(){var e;0!=(e=(efH(this),this.d.gc()))&&(this.d.$b(),this.f.d-=e,jY(this))},eUe.Hc=function(e){return efH(this),this.d.Hc(e)},eUe.Ic=function(e){return efH(this),this.d.Ic(e)},eUe.Fb=function(e){return e===this||(efH(this),ecX(this.d,e))},eUe.Hb=function(){return efH(this),esj(this.d)},eUe.Kc=function(){return efH(this),new PS(this)},eUe.Mc=function(e){var t;return efH(this),(t=this.d.Mc(e))&&(--this.f.d,jY(this)),t},eUe.gc=function(){return xw(this)},eUe.Nc=function(){return efH(this),this.d.Nc()},eUe.Ib=function(){return efH(this),efF(this.d)},Y5(eUy,"AbstractMapBasedMultimap/WrappedCollection",541);var e1H=RL(eUS,"List");eTS(728,541,{20:1,28:1,14:1,15:1},Fo),eUe.ad=function(e){er8(this,e)},eUe.Nc=function(){return efH(this),this.d.Nc()},eUe.Vc=function(e,t){var n;efH(this),n=this.d.dc(),Pp(this.d,15).Vc(e,t),++this.a.d,n&&CP(this)},eUe.Wc=function(e,t){var n,r,i;return!t.dc()&&(i=(efH(this),this.d.gc()),(n=Pp(this.d,15).Wc(e,t))&&(r=this.d.gc(),this.a.d+=r-i,0==i&&CP(this)),n)},eUe.Xb=function(e){return efH(this),Pp(this.d,15).Xb(e)},eUe.Xc=function(e){return efH(this),Pp(this.d,15).Xc(e)},eUe.Yc=function(){return efH(this),new Mb(this)},eUe.Zc=function(e){return efH(this),new HM(this,e)},eUe.$c=function(e){var t;return efH(this),t=Pp(this.d,15).$c(e),--this.a.d,jY(this),t},eUe._c=function(e,t){return efH(this),Pp(this.d,15)._c(e,t)},eUe.bd=function(e,t){return efH(this),Vu(this.a,this.e,Pp(this.d,15).bd(e,t),this.b?this.b:this)},Y5(eUy,"AbstractMapBasedMultimap/WrappedList",728),eTS(1096,728,{20:1,28:1,14:1,15:1,54:1},A7),Y5(eUy,"AbstractMapBasedMultimap/RandomAccessWrappedList",1096),eTS(620,1,eUE,PS),eUe.Nb=function(e){F8(this,e)},eUe.Ob=function(){return UW(this),this.b.Ob()},eUe.Pb=function(){return UW(this),this.b.Pb()},eUe.Qb=function(){OG(this)},Y5(eUy,"AbstractMapBasedMultimap/WrappedCollection/WrappedIterator",620),eTS(729,620,eUC,Mb,HM),eUe.Qb=function(){OG(this)},eUe.Rb=function(e){var t;t=0==xw(this.a),(UW(this),Pp(this.b,125)).Rb(e),++this.a.a.d,t&&CP(this.a)},eUe.Sb=function(){return(UW(this),Pp(this.b,125)).Sb()},eUe.Tb=function(){return(UW(this),Pp(this.b,125)).Tb()},eUe.Ub=function(){return(UW(this),Pp(this.b,125)).Ub()},eUe.Vb=function(){return(UW(this),Pp(this.b,125)).Vb()},eUe.Wb=function(e){(UW(this),Pp(this.b,125)).Wb(e)},Y5(eUy,"AbstractMapBasedMultimap/WrappedList/WrappedListIterator",729),eTS(727,541,eUA,L3),eUe.Nc=function(){return efH(this),this.d.Nc()},Y5(eUy,"AbstractMapBasedMultimap/WrappedSortedSet",727),eTS(1095,727,eUL,TB),Y5(eUy,"AbstractMapBasedMultimap/WrappedNavigableSet",1095),eTS(1094,541,eUM,L4),eUe.Nc=function(){return efH(this),this.d.Nc()},Y5(eUy,"AbstractMapBasedMultimap/WrappedSet",1094),eTS(1103,1,{},o),eUe.Kb=function(e){return Xb(Pp(e,42))},Y5(eUy,"AbstractMapBasedMultimap/lambda$1$Type",1103),eTS(1102,1,{},lt),eUe.Kb=function(e){return new wD(this.a,e)},Y5(eUy,"AbstractMapBasedMultimap/lambda$2$Type",1102);var e1$=RL(eUS,"Map/Entry");eTS(345,1,eUI),eUe.Fb=function(e){var t;return!!M4(e,42)&&(t=Pp(e,42),BG(this.cd(),t.cd())&&BG(this.dd(),t.dd()))},eUe.Hb=function(){var e,t;return e=this.cd(),t=this.dd(),(null==e?0:esj(e))^(null==t?0:esj(t))},eUe.ed=function(e){throw p7(new bO)},eUe.Ib=function(){return this.cd()+"="+this.dd()},Y5(eUy,eUD,345),eTS(1988,28,eUx),eUe.$b=function(){this.fd().$b()},eUe.Hc=function(e){var t;return!!M4(e,42)&&(t=Pp(e,42),Kr(this.fd(),t.cd(),t.dd()))},eUe.Mc=function(e){var t;return!!M4(e,42)&&(t=Pp(e,42),Ki(this.fd(),t.cd(),t.dd()))},eUe.gc=function(){return this.fd().d},Y5(eUy,"Multimaps/Entries",1988),eTS(733,1988,eUx,ln),eUe.Kc=function(){return this.a.kc()},eUe.fd=function(){return this.a},eUe.Nc=function(){return this.a.lc()},Y5(eUy,"AbstractMultimap/Entries",733),eTS(734,733,eUM,mz),eUe.Nc=function(){return this.a.lc()},eUe.Fb=function(e){return eEB(this,e)},eUe.Hb=function(){return eie(this)},Y5(eUy,"AbstractMultimap/EntrySet",734),eTS(735,28,eUx,lr),eUe.$b=function(){this.a.$b()},eUe.Hc=function(e){return eun(this.a,e)},eUe.Kc=function(){return this.a.nc()},eUe.gc=function(){return this.a.d},eUe.Nc=function(){return this.a.oc()},Y5(eUy,"AbstractMultimap/Values",735),eTS(1989,28,{835:1,20:1,28:1,14:1}),eUe.Jc=function(e){Y9(e),Uz(this).Jc(new lS(e))},eUe.Nc=function(){var e;return ew4(e=Uz(this).Nc(),new y,64|1296&e.qd(),this.a.d)},eUe.Fc=function(e){return g5(),!0},eUe.Gc=function(e){return Y9(this),Y9(e),M4(e,543)?KM(Pp(e,835)):!e.dc()&&eel(this,e.Kc())},eUe.Hc=function(e){var t;return((t=Pp(ecA(HU(this.a),e),14))?t.gc():0)>0},eUe.Fb=function(e){return eMc(this,e)},eUe.Hb=function(){return esj(Uz(this))},eUe.dc=function(){return Uz(this).dc()},eUe.Mc=function(e){return ekJ(this,e,1)>0},eUe.Ib=function(){return efF(Uz(this))},Y5(eUy,"AbstractMultiset",1989),eTS(1991,1970,eUM),eUe.$b=function(){enK(this.a.a)},eUe.Hc=function(e){var t,n;return!!M4(e,492)&&(n=Pp(e,416),!(0>=Pp(n.a.dd(),14).gc())&&(t=GB(this.a,n.a.cd()))==Pp(n.a.dd(),14).gc())},eUe.Mc=function(e){var t,n,r,i;return!!M4(e,492)&&(t=(n=Pp(e,416)).a.cd(),0!=(r=Pp(n.a.dd(),14).gc()))&&ekQ(i=this.a,t,r)},Y5(eUy,"Multisets/EntrySet",1991),eTS(1109,1991,eUM,li),eUe.Kc=function(){return new ga(Fd(HU(this.a.a)).Kc())},eUe.gc=function(){return HU(this.a.a).gc()},Y5(eUy,"AbstractMultiset/EntrySet",1109),eTS(619,726,eU_),eUe.hc=function(){return this.gd()},eUe.jc=function(){return this.hd()},eUe.cc=function(e){return this.jd(e)},eUe.fc=function(e){return this.kd(e)},eUe.Zb=function(){var e;return(e=this.f)||(this.f=this.ac())},eUe.hd=function(){return Hj(),Hj(),e2a},eUe.Fb=function(e){return es5(this,e)},eUe.jd=function(e){return Pp(Zq(this,e),21)},eUe.kd=function(e){return Pp(eu9(this,e),21)},eUe.mc=function(e){return Hj(),new vd(Pp(e,21))},eUe.pc=function(e,t){return new L4(this,e,Pp(t,21))},Y5(eUy,"AbstractSetMultimap",619),eTS(1657,619,eU_),eUe.hc=function(){return new yB(this.b)},eUe.gd=function(){return new yB(this.b)},eUe.jc=function(){return Bo(new yB(this.b))},eUe.hd=function(){return Bo(new yB(this.b))},eUe.cc=function(e){return Pp(Pp(Zq(this,e),21),84)},eUe.jd=function(e){return Pp(Pp(Zq(this,e),21),84)},eUe.fc=function(e){return Pp(Pp(eu9(this,e),21),84)},eUe.kd=function(e){return Pp(Pp(eu9(this,e),21),84)},eUe.mc=function(e){return M4(e,271)?Bo(Pp(e,271)):(Hj(),new O4(Pp(e,84)))},eUe.Zb=function(){var e;return(e=this.f)||(this.f=M4(this.c,171)?new LJ(this,Pp(this.c,171)):M4(this.c,161)?new LX(this,Pp(this.c,161)):new wI(this,this.c))},eUe.pc=function(e,t){return M4(t,271)?new TB(this,e,Pp(t,271)):new L3(this,e,Pp(t,84))},Y5(eUy,"AbstractSortedSetMultimap",1657),eTS(1658,1657,eU_),eUe.Zb=function(){var e;return Pp(Pp((e=this.f)||(this.f=M4(this.c,171)?new LJ(this,Pp(this.c,171)):M4(this.c,161)?new LX(this,Pp(this.c,161)):new wI(this,this.c)),161),171)},eUe.ec=function(){var e;return Pp(Pp((e=this.i)||(this.i=M4(this.c,171)?new wm(this,Pp(this.c,171)):M4(this.c,161)?new wb(this,Pp(this.c,161)):new OC(this,this.c)),84),271)},eUe.bc=function(){return M4(this.c,171)?new wm(this,Pp(this.c,171)):M4(this.c,161)?new wb(this,Pp(this.c,161)):new OC(this,this.c)},Y5(eUy,"AbstractSortedKeySortedSetMultimap",1658),eTS(2010,1,{1947:1}),eUe.Fb=function(e){return ev7(this,e)},eUe.Hb=function(){var e;return eoP((e=this.g)||(this.g=new la(this)))},eUe.Ib=function(){var e;return ewb((e=this.f)||(this.f=new OP(this)))},Y5(eUy,"AbstractTable",2010),eTS(665,eUT,eUM,la),eUe.$b=function(){g6()},eUe.Hc=function(e){var t,n;return!!M4(e,468)&&(t=Pp(e,682),!!(n=Pp(ecA(Y7(this.a),xh(t.c.e,t.b)),83))&&ecC(n.vc(),new wD(xh(t.c.c,t.a),X_(t.c,t.b,t.a))))},eUe.Kc=function(){return $e(this.a)},eUe.Mc=function(e){var t,n;return!!M4(e,468)&&(t=Pp(e,682),!!(n=Pp(ecA(Y7(this.a),xh(t.c.e,t.b)),83))&&ecI(n.vc(),new wD(xh(t.c.c,t.a),X_(t.c,t.b,t.a))))},eUe.gc=function(){return R8(this.a)},eUe.Nc=function(){return KH(this.a)},Y5(eUy,"AbstractTable/CellSet",665),eTS(1928,28,eUx,lo),eUe.$b=function(){g6()},eUe.Hc=function(e){return ewx(this.a,e)},eUe.Kc=function(){return $t(this.a)},eUe.gc=function(){return R8(this.a)},eUe.Nc=function(){return Kd(this.a)},Y5(eUy,"AbstractTable/Values",1928),eTS(1632,1631,eU_),Y5(eUy,"ArrayListMultimapGwtSerializationDependencies",1632),eTS(513,1632,eU_,gQ,G$),eUe.hc=function(){return new XM(this.a)},eUe.a=0,Y5(eUy,"ArrayListMultimap",513),eTS(664,2010,{664:1,1947:1,3:1},exj),Y5(eUy,"ArrayTable",664),eTS(1924,386,eUw,OI),eUe.Xb=function(e){return new eo7(this.a,e)},Y5(eUy,"ArrayTable/1",1924),eTS(1925,1,{},c6),eUe.ld=function(e){return new eo7(this.a,e)},Y5(eUy,"ArrayTable/1methodref$getCell$Type",1925),eTS(2011,1,{682:1}),eUe.Fb=function(e){var t;return e===this||!!M4(e,468)&&(t=Pp(e,682),BG(xh(this.c.e,this.b),xh(t.c.e,t.b))&&BG(xh(this.c.c,this.a),xh(t.c.c,t.a))&&BG(X_(this.c,this.b,this.a),X_(t.c,t.b,t.a)))},eUe.Hb=function(){return euF(eow(vx(e1R,1),eUp,1,5,[xh(this.c.e,this.b),xh(this.c.c,this.a),X_(this.c,this.b,this.a)]))},eUe.Ib=function(){return"("+xh(this.c.e,this.b)+","+xh(this.c.c,this.a)+")="+X_(this.c,this.b,this.a)},Y5(eUy,"Tables/AbstractCell",2011),eTS(468,2011,{468:1,682:1},eo7),eUe.a=0,eUe.b=0,eUe.d=0,Y5(eUy,"ArrayTable/2",468),eTS(1927,1,{},c9),eUe.ld=function(e){return Qo(this.a,e)},Y5(eUy,"ArrayTable/2methodref$getValue$Type",1927),eTS(1926,386,eUw,OD),eUe.Xb=function(e){return Qo(this.a,e)},Y5(eUy,"ArrayTable/3",1926),eTS(1979,1967,eUk),eUe.$b=function(){RG(this.kc())},eUe.vc=function(){return new lx(this)},eUe.lc=function(){return new Uq(this.kc(),this.gc())},Y5(eUy,"Maps/IteratorBasedAbstractMap",1979),eTS(828,1979,eUk),eUe.$b=function(){throw p7(new bO)},eUe._b=function(e){return yE(this.c,e)},eUe.kc=function(){return new ON(this,this.c.b.c.gc())},eUe.lc=function(){return Rj(this.c.b.c.gc(),16,new c8(this))},eUe.xc=function(e){var t;return(t=Pp(Iq(this.c,e),19))?this.nd(t.a):null},eUe.dc=function(){return this.c.b.c.dc()},eUe.ec=function(){return Fl(this.c)},eUe.zc=function(e,t){var n;if(!(n=Pp(Iq(this.c,e),19)))throw p7(new gL(this.md()+" "+e+" not in "+Fl(this.c)));return this.od(n.a,t)},eUe.Bc=function(e){throw p7(new bO)},eUe.gc=function(){return this.c.b.c.gc()},Y5(eUy,"ArrayTable/ArrayMap",828),eTS(1923,1,{},c8),eUe.ld=function(e){return Bs(this.a,e)},Y5(eUy,"ArrayTable/ArrayMap/0methodref$getEntry$Type",1923),eTS(1921,345,eUI,wk),eUe.cd=function(){return OB(this.a,this.b)},eUe.dd=function(){return this.a.nd(this.b)},eUe.ed=function(e){return this.a.od(this.b,e)},eUe.b=0,Y5(eUy,"ArrayTable/ArrayMap/1",1921),eTS(1922,386,eUw,ON),eUe.Xb=function(e){return Bs(this.a,e)},Y5(eUy,"ArrayTable/ArrayMap/2",1922),eTS(1920,828,eUk,F2),eUe.md=function(){return"Column"},eUe.nd=function(e){return X_(this.b,this.a,e)},eUe.od=function(e,t){return eoy(this.b,this.a,e,t)},eUe.a=0,Y5(eUy,"ArrayTable/Row",1920),eTS(829,828,eUk,OP),eUe.nd=function(e){return new F2(this.a,e)},eUe.zc=function(e,t){return Pp(t,83),g9()},eUe.od=function(e,t){return Pp(t,83),g8()},eUe.md=function(){return"Row"},Y5(eUy,"ArrayTable/RowMap",829),eTS(1120,1,eUj,wx),eUe.qd=function(){return -262&this.a.qd()},eUe.rd=function(){return this.a.rd()},eUe.Nb=function(e){this.a.Nb(new ww(e,this.b))},eUe.sd=function(e){return this.a.sd(new wy(e,this.b))},Y5(eUy,"CollectSpliterators/1",1120),eTS(1121,1,eUF,wy),eUe.td=function(e){this.a.td(this.b.Kb(e))},Y5(eUy,"CollectSpliterators/1/lambda$0$Type",1121),eTS(1122,1,eUF,ww),eUe.td=function(e){this.a.td(this.b.Kb(e))},Y5(eUy,"CollectSpliterators/1/lambda$1$Type",1122),eTS(1123,1,eUj,K4),eUe.qd=function(){return this.a},eUe.rd=function(){return this.d&&(this.b=MS(this.b,this.d.rd())),MS(this.b,0)},eUe.Nb=function(e){this.d&&(this.d.Nb(e),this.d=null),this.c.Nb(new wv(this.e,e)),this.b=0},eUe.sd=function(e){for(;;){if(this.d&&this.d.sd(e))return xg(this.b,eUY)&&(this.b=efe(this.b,1)),!0;if(this.d=null,!this.c.sd(new w_(this,this.e)))return!1}},eUe.a=0,eUe.b=0,Y5(eUy,"CollectSpliterators/1FlatMapSpliterator",1123),eTS(1124,1,eUF,w_),eUe.td=function(e){Iv(this.a,this.b,e)},Y5(eUy,"CollectSpliterators/1FlatMapSpliterator/lambda$0$Type",1124),eTS(1125,1,eUF,wv),eUe.td=function(e){M9(this.b,this.a,e)},Y5(eUy,"CollectSpliterators/1FlatMapSpliterator/lambda$1$Type",1125),eTS(1117,1,eUj,Ig),eUe.qd=function(){return 16464|this.b},eUe.rd=function(){return this.a.rd()},eUe.Nb=function(e){this.a.xe(new wS(e,this.c))},eUe.sd=function(e){return this.a.ye(new wE(e,this.c))},eUe.b=0,Y5(eUy,"CollectSpliterators/1WithCharacteristics",1117),eTS(1118,1,eUB,wE),eUe.ud=function(e){this.a.td(this.b.ld(e))},Y5(eUy,"CollectSpliterators/1WithCharacteristics/lambda$0$Type",1118),eTS(1119,1,eUB,wS),eUe.ud=function(e){this.a.td(this.b.ld(e))},Y5(eUy,"CollectSpliterators/1WithCharacteristics/lambda$1$Type",1119),eTS(245,1,eUU),eUe.wd=function(e){return this.vd(Pp(e,245))},eUe.vd=function(e){var t;return e==(m2(),e0d)?1:e==(m3(),e0f)?-1:0!=(t=(Rg(),eiK(this.a,e.a)))?t:M4(this,519)==M4(e,519)?0:M4(this,519)?1:-1},eUe.zd=function(){return this.a},eUe.Fb=function(e){return ehd(this,e)},Y5(eUy,"Cut",245),eTS(1761,245,eUU,vb),eUe.vd=function(e){return e==this?0:1},eUe.xd=function(e){throw p7(new b_)},eUe.yd=function(e){e.a+="+∞)"},eUe.zd=function(){throw p7(new gC(eUH))},eUe.Hb=function(){return wK(),ebh(this)},eUe.Ad=function(e){return!1},eUe.Ib=function(){return"+∞"},Y5(eUy,"Cut/AboveAll",1761),eTS(519,245,{245:1,519:1,3:1,35:1},OW),eUe.xd=function(e){xT((e.a+="(",e),this.a)},eUe.yd=function(e){Bd(xT(e,this.a),93)},eUe.Hb=function(){return~esj(this.a)},eUe.Ad=function(e){return Rg(),0>eiK(this.a,e)},eUe.Ib=function(){return"/"+this.a+"\\"},Y5(eUy,"Cut/AboveValue",519),eTS(1760,245,eUU,vm),eUe.vd=function(e){return e==this?0:-1},eUe.xd=function(e){e.a+="(-∞"},eUe.yd=function(e){throw p7(new b_)},eUe.zd=function(){throw p7(new gC(eUH))},eUe.Hb=function(){return wK(),ebh(this)},eUe.Ad=function(e){return!0},eUe.Ib=function(){return"-∞"},Y5(eUy,"Cut/BelowAll",1760),eTS(1762,245,eUU,OK),eUe.xd=function(e){xT((e.a+="[",e),this.a)},eUe.yd=function(e){Bd(xT(e,this.a),41)},eUe.Hb=function(){return esj(this.a)},eUe.Ad=function(e){return Rg(),0>=eiK(this.a,e)},eUe.Ib=function(){return"\\"+this.a+"/"},Y5(eUy,"Cut/BelowValue",1762),eTS(537,1,eU$),eUe.Jc=function(e){qX(this,e)},eUe.Ib=function(){return elq(Pp(H5(this,"use Optional.orNull() instead of Optional.or(null)"),20).Kc())},Y5(eUy,"FluentIterable",537),eTS(433,537,eU$,xq),eUe.Kc=function(){return new Fa(OH(this.a.Kc(),new c))},Y5(eUy,"FluentIterable/2",433),eTS(1046,537,eU$,xZ),eUe.Kc=function(){return Y_(this)},Y5(eUy,"FluentIterable/3",1046),eTS(708,386,eUw,Oj),eUe.Xb=function(e){return this.a[e].Kc()},Y5(eUy,"FluentIterable/3/1",708),eTS(1972,1,{}),eUe.Ib=function(){return efF(this.Bd().b)},Y5(eUy,"ForwardingObject",1972),eTS(1973,1972,eUz),eUe.Bd=function(){return this.Cd()},eUe.Jc=function(e){qX(this,e)},eUe.Lc=function(){return this.Oc()},eUe.Nc=function(){return new Gq(this,0)},eUe.Oc=function(){return new R1(null,this.Nc())},eUe.Fc=function(e){return this.Cd(),yD()},eUe.Gc=function(e){return this.Cd(),yN()},eUe.$b=function(){this.Cd(),yP()},eUe.Hc=function(e){return this.Cd().Hc(e)},eUe.Ic=function(e){return this.Cd().Ic(e)},eUe.dc=function(){return this.Cd().b.dc()},eUe.Kc=function(){return this.Cd().Kc()},eUe.Mc=function(e){return this.Cd(),yR()},eUe.gc=function(){return this.Cd().b.gc()},eUe.Pc=function(){return this.Cd().Pc()},eUe.Qc=function(e){return this.Cd().Qc(e)},Y5(eUy,"ForwardingCollection",1973),eTS(1980,28,eUG),eUe.Kc=function(){return this.Ed()},eUe.Fc=function(e){throw p7(new bO)},eUe.Gc=function(e){throw p7(new bO)},eUe.$b=function(){throw p7(new bO)},eUe.Hc=function(e){return null!=e&&eds(this,e,!1)},eUe.Dd=function(){switch(this.gc()){case 0:return Bx(),Bx(),e0h;case 1:return Bx(),new Rz(Y9(this.Ed().Pb()));default:return new F3(this,this.Pc())}},eUe.Mc=function(e){throw p7(new bO)},Y5(eUy,"ImmutableCollection",1980),eTS(712,1980,eUG,bb),eUe.Kc=function(){return JJ(this.a.Kc())},eUe.Hc=function(e){return null!=e&&this.a.Hc(e)},eUe.Ic=function(e){return this.a.Ic(e)},eUe.dc=function(){return this.a.dc()},eUe.Ed=function(){return JJ(this.a.Kc())},eUe.gc=function(){return this.a.gc()},eUe.Pc=function(){return this.a.Pc()},eUe.Qc=function(e){return this.a.Qc(e)},eUe.Ib=function(){return efF(this.a)},Y5(eUy,"ForwardingImmutableCollection",712),eTS(152,1980,eUW),eUe.Kc=function(){return this.Ed()},eUe.Yc=function(){return this.Fd(0)},eUe.Zc=function(e){return this.Fd(e)},eUe.ad=function(e){er8(this,e)},eUe.Nc=function(){return new Gq(this,16)},eUe.bd=function(e,t){return this.Gd(e,t)},eUe.Vc=function(e,t){throw p7(new bO)},eUe.Wc=function(e,t){throw p7(new bO)},eUe.Fb=function(e){return eTJ(this,e)},eUe.Hb=function(){return eaI(this)},eUe.Xc=function(e){return null==e?-1:emx(this,e)},eUe.Ed=function(){return this.Fd(0)},eUe.Fd=function(e){return AR(this,e)},eUe.$c=function(e){throw p7(new bO)},eUe._c=function(e,t){throw p7(new bO)},eUe.Gd=function(e,t){var n;return ecT((n=new wz(this),new Gz(n,e,t)))},Y5(eUy,"ImmutableList",152),eTS(2006,152,eUW),eUe.Kc=function(){return JJ(this.Hd().Kc())},eUe.bd=function(e,t){return ecT(this.Hd().bd(e,t))},eUe.Hc=function(e){return null!=e&&this.Hd().Hc(e)},eUe.Ic=function(e){return this.Hd().Ic(e)},eUe.Fb=function(e){return ecX(this.Hd(),e)},eUe.Xb=function(e){return xh(this,e)},eUe.Hb=function(){return esj(this.Hd())},eUe.Xc=function(e){return this.Hd().Xc(e)},eUe.dc=function(){return this.Hd().dc()},eUe.Ed=function(){return JJ(this.Hd().Kc())},eUe.gc=function(){return this.Hd().gc()},eUe.Gd=function(e,t){return ecT(this.Hd().bd(e,t))},eUe.Pc=function(){return this.Hd().Qc(Je(e1R,eUp,1,this.Hd().gc(),5,1))},eUe.Qc=function(e){return this.Hd().Qc(e)},eUe.Ib=function(){return efF(this.Hd())},Y5(eUy,"ForwardingImmutableList",2006),eTS(714,1,eUV),eUe.vc=function(){return Fc(this)},eUe.wc=function(e){ear(this,e)},eUe.ec=function(){return Fl(this)},eUe.yc=function(e,t,n){return el6(this,e,t,n)},eUe.Cc=function(){return this.Ld()},eUe.$b=function(){throw p7(new bO)},eUe._b=function(e){return null!=this.xc(e)},eUe.uc=function(e){return this.Ld().Hc(e)},eUe.Jd=function(){return new bm(this)},eUe.Kd=function(){return new bg(this)},eUe.Fb=function(e){return eua(this,e)},eUe.Hb=function(){return Fc(this).Hb()},eUe.dc=function(){return 0==this.gc()},eUe.zc=function(e,t){return g7()},eUe.Bc=function(e){throw p7(new bO)},eUe.Ib=function(){return eEo(this)},eUe.Ld=function(){return this.e?this.e:this.e=this.Kd()},eUe.c=null,eUe.d=null,eUe.e=null,Y5(eUy,"ImmutableMap",714),eTS(715,714,eUV),eUe._b=function(e){return yE(this,e)},eUe.uc=function(e){return w1(this.b,e)},eUe.Id=function(){return ecM(new lu(this))},eUe.Jd=function(){return ecM(Uk(this.b))},eUe.Kd=function(){return Dn(),new bb(UE(this.b))},eUe.Fb=function(e){return w2(this.b,e)},eUe.xc=function(e){return Iq(this,e)},eUe.Hb=function(){return esj(this.b.c)},eUe.dc=function(){return this.b.c.dc()},eUe.gc=function(){return this.b.c.gc()},eUe.Ib=function(){return efF(this.b.c)},Y5(eUy,"ForwardingImmutableMap",715),eTS(1974,1973,eUq),eUe.Bd=function(){return this.Md()},eUe.Cd=function(){return this.Md()},eUe.Nc=function(){return new Gq(this,1)},eUe.Fb=function(e){return e===this||this.Md().Fb(e)},eUe.Hb=function(){return this.Md().Hb()},Y5(eUy,"ForwardingSet",1974),eTS(1069,1974,eUq,lu),eUe.Bd=function(){return US(this.a.b)},eUe.Cd=function(){return US(this.a.b)},eUe.Hc=function(e){if(M4(e,42)&&null==Pp(e,42).cd())return!1;try{return wQ(US(this.a.b),e)}catch(t){if(t=eoa(t),M4(t,205))return!1;throw p7(t)}},eUe.Md=function(){return US(this.a.b)},eUe.Qc=function(e){var t;return t=$L(US(this.a.b),e),US(this.a.b).b.gc()=0?"+":"")+(n/60|0),t=Tt(eB4.Math.abs(n)%60),(e_E(),e2l)[this.q.getDay()]+" "+e2f[this.q.getMonth()]+" "+Tt(this.q.getDate())+" "+Tt(this.q.getHours())+":"+Tt(this.q.getMinutes())+":"+Tt(this.q.getSeconds())+" GMT"+e+t+" "+this.q.getFullYear()};var e1Q=Y5(eUS,"Date",199);eTS(1915,199,eHB,evI),eUe.a=!1,eUe.b=0,eUe.c=0,eUe.d=0,eUe.e=0,eUe.f=0,eUe.g=!1,eUe.i=0,eUe.j=0,eUe.k=0,eUe.n=0,eUe.o=0,eUe.p=0,Y5("com.google.gwt.i18n.shared.impl","DateRecord",1915),eTS(1966,1,{}),eUe.fe=function(){return null},eUe.ge=function(){return null},eUe.he=function(){return null},eUe.ie=function(){return null},eUe.je=function(){return null},Y5(eHU,"JSONValue",1966),eTS(216,1966,{216:1},lN,lL),eUe.Fb=function(e){return!!M4(e,216)&&W$(this.a,Pp(e,216).a)},eUe.ee=function(){return be},eUe.Hb=function(){return $n(this.a)},eUe.fe=function(){return this},eUe.Ib=function(){var e,t,n;for(t=0,n=new O0("["),e=this.a.length;t0&&(n.a+=","),xT(n,eep(this,t));return n.a+="]",n.a},Y5(eHU,"JSONArray",216),eTS(483,1966,{483:1},lC),eUe.ee=function(){return bt},eUe.ge=function(){return this},eUe.Ib=function(){return OQ(),""+this.a},eUe.a=!1,Y5(eHU,"JSONBoolean",483),eTS(985,60,eHr,gs),Y5(eHU,"JSONException",985),eTS(1023,1966,{},g),eUe.ee=function(){return bo},eUe.Ib=function(){return eUg},Y5(eHU,"JSONNull",1023),eTS(258,1966,{258:1},lI),eUe.Fb=function(e){return!!M4(e,258)&&this.a==Pp(e,258).a},eUe.ee=function(){return bn},eUe.Hb=function(){return Ti(this.a)},eUe.he=function(){return this},eUe.Ib=function(){return this.a+""},eUe.a=0,Y5(eHU,"JSONNumber",258),eTS(183,1966,{183:1},gu,lD),eUe.Fb=function(e){return!!M4(e,183)&&W$(this.a,Pp(e,183).a)},eUe.ee=function(){return br},eUe.Hb=function(){return $n(this.a)},eUe.ie=function(){return this},eUe.Ib=function(){var e,t,n,r,i,a,o;for(r=0,o=new O0("{"),e=!0,i=(n=a=erG(this,Je(e17,eUP,2,0,6,1))).length;r=0?":"+this.c:"")+")"},eUe.c=0;var e18=Y5(eUc,"StackTraceElement",310);e0c={3:1,475:1,35:1,2:1};var e17=Y5(eUc,eHa,2);eTS(107,418,{475:1},vs,vu,O1),Y5(eUc,"StringBuffer",107),eTS(100,418,{475:1},vc,vl,O0),Y5(eUc,"StringBuilder",100),eTS(687,73,eHZ,vf),Y5(eUc,"StringIndexOutOfBoundsException",687),eTS(2043,1,{}),eTS(844,1,{},N),eUe.Kb=function(e){return Pp(e,78).e},Y5(eUc,"Throwable/lambda$0$Type",844),eTS(41,60,{3:1,102:1,60:1,78:1,41:1},bO,gW),Y5(eUc,"UnsupportedOperationException",41),eTS(240,236,{3:1,35:1,236:1,240:1},eew,yY),eUe.wd=function(e){return eDG(this,Pp(e,240))},eUe.ke=function(){return eEu(eRy(this))},eUe.Fb=function(e){var t;return this===e||!!M4(e,240)&&(t=Pp(e,240),this.e==t.e&&0==eDG(this,t))},eUe.Hb=function(){var e;return 0!=this.b?this.b:this.a<54?(e=eap(this.f),this.b=jE(WM(e,-1)),this.b=33*this.b+jE(WM(Fv(e,32),-1)),this.b=17*this.b+zy(this.e),this.b):(this.b=17*ect(this.c)+zy(this.e),this.b)},eUe.Ib=function(){return eRy(this)},eUe.a=0,eUe.b=0,eUe.d=0,eUe.e=0,eUe.f=0;var e0e=Y5("java.math","BigDecimal",240);eTS(91,236,{3:1,35:1,236:1,91:1},ep4,XE,F7,ey$,eh5,TU),eUe.wd=function(e){return ehI(this,Pp(e,91))},eUe.ke=function(){return eEu(eBw(this,0))},eUe.Fb=function(e){return ef6(this,e)},eUe.Hb=function(){return ect(this)},eUe.Ib=function(){return eBw(this,0)},eUe.b=-2,eUe.c=0,eUe.d=0,eUe.e=0;var e0t=Y5("java.math","BigInteger",91);eTS(488,1967,eUk),eUe.$b=function(){Yy(this)},eUe._b=function(e){return F9(this,e)},eUe.uc=function(e){return euo(this,e,this.g)||euo(this,e,this.f)},eUe.vc=function(){return new fS(this)},eUe.xc=function(e){return Bp(this,e)},eUe.zc=function(e,t){return Um(this,e,t)},eUe.Bc=function(e){return Z3(this,e)},eUe.gc=function(){return wq(this)},Y5(eUS,"AbstractHashMap",488),eTS(261,eUT,eUM,fS),eUe.$b=function(){this.a.$b()},eUe.Hc=function(e){return KN(this,e)},eUe.Kc=function(){return new esz(this.a)},eUe.Mc=function(e){var t;return!!KN(this,e)&&(t=Pp(e,42).cd(),this.a.Bc(t),!0)},eUe.gc=function(){return this.a.gc()},Y5(eUS,"AbstractHashMap/EntrySet",261),eTS(262,1,eUE,esz),eUe.Nb=function(e){F8(this,e)},eUe.Pb=function(){return etz(this)},eUe.Ob=function(){return this.b},eUe.Qb=function(){JM(this)},eUe.b=!1,Y5(eUS,"AbstractHashMap/EntrySetIterator",262),eTS(417,1,eUE,fE),eUe.Nb=function(e){F8(this,e)},eUe.Ob=function(){return Et(this)},eUe.Pb=function(){return HL(this)},eUe.Qb=function(){BH(this)},eUe.b=0,eUe.c=-1,Y5(eUS,"AbstractList/IteratorImpl",417),eTS(96,417,eUC,KB),eUe.Qb=function(){BH(this)},eUe.Rb=function(e){CD(this,e)},eUe.Sb=function(){return this.b>0},eUe.Tb=function(){return this.b},eUe.Ub=function(){return A6(this.b>0),this.a.Xb(this.c=--this.b)},eUe.Vb=function(){return this.b-1},eUe.Wb=function(e){A4(-1!=this.c),this.a._c(this.c,e)},Y5(eUS,"AbstractList/ListIteratorImpl",96),eTS(219,52,eU5,Gz),eUe.Vc=function(e,t){Gp(e,this.b),this.c.Vc(this.a+e,t),++this.b},eUe.Xb=function(e){return GK(e,this.b),this.c.Xb(this.a+e)},eUe.$c=function(e){var t;return GK(e,this.b),t=this.c.$c(this.a+e),--this.b,t},eUe._c=function(e,t){return GK(e,this.b),this.c._c(this.a+e,t)},eUe.gc=function(){return this.b},eUe.a=0,eUe.b=0,Y5(eUS,"AbstractList/SubList",219),eTS(384,eUT,eUM,fk),eUe.$b=function(){this.a.$b()},eUe.Hc=function(e){return this.a._b(e)},eUe.Kc=function(){var e;return e=this.a.vc().Kc(),new fx(e)},eUe.Mc=function(e){return!!this.a._b(e)&&(this.a.Bc(e),!0)},eUe.gc=function(){return this.a.gc()},Y5(eUS,"AbstractMap/1",384),eTS(691,1,eUE,fx),eUe.Nb=function(e){F8(this,e)},eUe.Ob=function(){return this.a.Ob()},eUe.Pb=function(){var e;return(e=Pp(this.a.Pb(),42)).cd()},eUe.Qb=function(){this.a.Qb()},Y5(eUS,"AbstractMap/1/1",691),eTS(226,28,eUx,fT),eUe.$b=function(){this.a.$b()},eUe.Hc=function(e){return this.a.uc(e)},eUe.Kc=function(){var e;return e=this.a.vc().Kc(),new fN(e)},eUe.gc=function(){return this.a.gc()},Y5(eUS,"AbstractMap/2",226),eTS(294,1,eUE,fN),eUe.Nb=function(e){F8(this,e)},eUe.Ob=function(){return this.a.Ob()},eUe.Pb=function(){var e;return(e=Pp(this.a.Pb(),42)).dd()},eUe.Qb=function(){this.a.Qb()},Y5(eUS,"AbstractMap/2/1",294),eTS(484,1,{484:1,42:1}),eUe.Fb=function(e){var t;return!!M4(e,42)&&(t=Pp(e,42),UT(this.d,t.cd())&&UT(this.e,t.dd()))},eUe.cd=function(){return this.d},eUe.dd=function(){return this.e},eUe.Hb=function(){return TK(this.d)^TK(this.e)},eUe.ed=function(e){return CL(this,e)},eUe.Ib=function(){return this.d+"="+this.e},Y5(eUS,"AbstractMap/AbstractEntry",484),eTS(383,484,{484:1,383:1,42:1},EE),Y5(eUS,"AbstractMap/SimpleEntry",383),eTS(1984,1,e$t),eUe.Fb=function(e){var t;return!!M4(e,42)&&(t=Pp(e,42),UT(this.cd(),t.cd())&&UT(this.dd(),t.dd()))},eUe.Hb=function(){return TK(this.cd())^TK(this.dd())},eUe.Ib=function(){return this.cd()+"="+this.dd()},Y5(eUS,eUD,1984),eTS(1992,1967,eUO),eUe.tc=function(e){return ZO(this,e)},eUe._b=function(e){return IY(this,e)},eUe.vc=function(){return new fj(this)},eUe.xc=function(e){var t;return xu(esq(this,t=e))},eUe.ec=function(){return new fP(this)},Y5(eUS,"AbstractNavigableMap",1992),eTS(739,eUT,eUM,fj),eUe.Hc=function(e){return M4(e,42)&&ZO(this.b,Pp(e,42))},eUe.Kc=function(){return new C1(this.b)},eUe.Mc=function(e){var t;return!!M4(e,42)&&(t=Pp(e,42),Jl(this.b,t))},eUe.gc=function(){return this.b.c},Y5(eUS,"AbstractNavigableMap/EntrySet",739),eTS(493,eUT,eUL,fP),eUe.Nc=function(){return new Ec(this)},eUe.$b=function(){gl(this.a)},eUe.Hc=function(e){return IY(this.a,e)},eUe.Kc=function(){var e;return e=new C1(new Ap(this.a).b),new fR(e)},eUe.Mc=function(e){return!!IY(this.a,e)&&(zS(this.a,e),!0)},eUe.gc=function(){return this.a.c},Y5(eUS,"AbstractNavigableMap/NavigableKeySet",493),eTS(494,1,eUE,fR),eUe.Nb=function(e){F8(this,e)},eUe.Ob=function(){return Et(this.a.a)},eUe.Pb=function(){var e;return(e=AJ(this.a)).cd()},eUe.Qb=function(){I5(this.a)},Y5(eUS,"AbstractNavigableMap/NavigableKeySet/1",494),eTS(2004,28,eUx),eUe.Fc=function(e){return Ja(e_s(this,e)),!0},eUe.Gc=function(e){return BJ(e),PG(e!=this,"Can't add a queue to itself"),er7(this,e)},eUe.$b=function(){for(;null!=eev(this););},Y5(eUS,"AbstractQueue",2004),eTS(302,28,{4:1,20:1,28:1,14:1},p1,GZ),eUe.Fc=function(e){return Vy(this,e),!0},eUe.$b=function(){qr(this)},eUe.Hc=function(e){return eos(new UN(this),e)},eUe.dc=function(){return gY(this)},eUe.Kc=function(){return new UN(this)},eUe.Mc=function(e){return zP(new UN(this),e)},eUe.gc=function(){return this.c-this.b&this.a.length-1},eUe.Nc=function(){return new Gq(this,272)},eUe.Qc=function(e){var t;return t=this.c-this.b&this.a.length-1,e.lengtht&&Bc(e,t,null),e},eUe.b=0,eUe.c=0,Y5(eUS,"ArrayDeque",302),eTS(446,1,eUE,UN),eUe.Nb=function(e){F8(this,e)},eUe.Ob=function(){return this.a!=this.b},eUe.Pb=function(){return ecn(this)},eUe.Qb=function(){enP(this)},eUe.a=0,eUe.b=0,eUe.c=-1,Y5(eUS,"ArrayDeque/IteratorImpl",446),eTS(12,52,e$n,p0,XM,I4),eUe.Vc=function(e,t){jO(this,e,t)},eUe.Fc=function(e){return P_(this,e)},eUe.Wc=function(e,t){return euP(this,e,t)},eUe.Gc=function(e){return eoc(this,e)},eUe.$b=function(){this.c=Je(e1R,eUp,1,0,5,1)},eUe.Hc=function(e){return -1!=QI(this,e,0)},eUe.Jc=function(e){ety(this,e)},eUe.Xb=function(e){return RJ(this,e)},eUe.Xc=function(e){return QI(this,e,0)},eUe.dc=function(){return 0==this.c.length},eUe.Kc=function(){return new fz(this)},eUe.$c=function(e){return ZV(this,e)},eUe.Mc=function(e){return QA(this,e)},eUe.Ud=function(e,t){GG(this,e,t)},eUe._c=function(e,t){return q1(this,e,t)},eUe.gc=function(){return this.c.length},eUe.ad=function(e){Mv(this,e)},eUe.Pc=function(){return AW(this)},eUe.Qc=function(e){return epg(this,e)};var e0n=Y5(eUS,"ArrayList",12);eTS(7,1,eUE,fz),eUe.Nb=function(e){F8(this,e)},eUe.Ob=function(){return My(this)},eUe.Pb=function(){return Wx(this)},eUe.Qb=function(){Yv(this)},eUe.a=0,eUe.b=-1,Y5(eUS,"ArrayList/1",7),eTS(2013,eB4.Function,{},S),eUe.te=function(e,t){return elN(e,t)},eTS(154,52,e$r,g$),eUe.Hc=function(e){return -1!=enW(this,e)},eUe.Jc=function(e){var t,n,r,i;for(BJ(e),n=this.a,r=0,i=n.length;r>>0).toString(16))},eUe.f=0,eUe.i=eH1;var e2X=Y5(e$N,"CNode",57);eTS(814,1,{},b5),Y5(e$N,"CNode/CNodeBuilder",814),eTS(1525,1,{},eh),eUe.Oe=function(e,t){return 0},eUe.Pe=function(e,t){return 0},Y5(e$N,e$R,1525),eTS(1790,1,{},ep),eUe.Le=function(e){var t,n,r,i,a,o,s,u,c,l,f,d,h,p,b;for(c=eHQ,r=new fz(e.a.b);r.ar.d.c||r.d.c==a.d.c&&r.d.b0?e+this.n.d+this.n.a:0},eUe.Se=function(){var e,t,n,r,i;if(i=0,this.e)this.b?i=this.b.a:this.a[1][1]&&(i=this.a[1][1].Se());else if(this.g)i=efV(this,evf(this,null,!0));else for(t=(etx(),eow(vx(e26,1),eU4,232,0,[e3D,e3N,e3P])),n=0,r=t.length;n0?i+this.n.b+this.n.c:0},eUe.Te=function(){var e,t,n,r,i;if(this.g)for(e=evf(this,null,!1),n=(etx(),eow(vx(e26,1),eU4,232,0,[e3D,e3N,e3P])),r=0,i=n.length;r0&&(r[0]+=this.d,n-=r[0]),r[2]>0&&(r[2]+=this.d,n-=r[2]),this.c.a=eB4.Math.max(0,n),this.c.d=t.d+e.d+(this.c.a-n)/2,r[1]=eB4.Math.max(r[1],n),ZP(this,e3N,t.d+e.d+r[0]-(r[1]-n)/2,r)},eUe.b=null,eUe.d=0,eUe.e=!1,eUe.f=!1,eUe.g=!1;var e29=0,e28=0;Y5(e$9,"GridContainerCell",1473),eTS(461,22,{3:1,35:1,22:1,461:1},EY);var e27=enw(e$9,"HorizontalLabelAlignment",461,e1G,G1,Dc);eTS(306,212,{212:1,306:1},zf,etr,$Y),eUe.Re=function(){return Rf(this)},eUe.Se=function(){return Rd(this)},eUe.a=0,eUe.c=!1;var e3e=Y5(e$9,"LabelCell",306);eTS(244,326,{212:1,326:1,244:1},eh6),eUe.Re=function(){return ek1(this)},eUe.Se=function(){return ek0(this)},eUe.Te=function(){eNE(this)},eUe.Ue=function(){eNM(this)},eUe.b=0,eUe.c=0,eUe.d=!1,Y5(e$9,"StripContainerCell",244),eTS(1626,1,eU8,e_),eUe.Mb=function(e){return gU(Pp(e,212))},Y5(e$9,"StripContainerCell/lambda$0$Type",1626),eTS(1627,1,{},eE),eUe.Fe=function(e){return Pp(e,212).Se()},Y5(e$9,"StripContainerCell/lambda$1$Type",1627),eTS(1628,1,eU8,eS),eUe.Mb=function(e){return gH(Pp(e,212))},Y5(e$9,"StripContainerCell/lambda$2$Type",1628),eTS(1629,1,{},ek),eUe.Fe=function(e){return Pp(e,212).Re()},Y5(e$9,"StripContainerCell/lambda$3$Type",1629),eTS(462,22,{3:1,35:1,22:1,462:1},EB);var e3t=enw(e$9,"VerticalLabelAlignment",462,e1G,G0,Dl);eTS(789,1,{},eFQ),eUe.c=0,eUe.d=0,eUe.k=0,eUe.s=0,eUe.t=0,eUe.v=!1,eUe.w=0,eUe.D=!1,Y5(eza,"NodeContext",789),eTS(1471,1,e$C,ex),eUe.ue=function(e,t){return To(Pp(e,61),Pp(t,61))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y5(eza,"NodeContext/0methodref$comparePortSides$Type",1471),eTS(1472,1,e$C,eT),eUe.ue=function(e,t){return ew9(Pp(e,111),Pp(t,111))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y5(eza,"NodeContext/1methodref$comparePortContexts$Type",1472),eTS(159,22,{3:1,35:1,22:1,159:1},ei_);var e3n=enw(eza,"NodeLabelLocation",159,e1G,epE,Df);eTS(111,1,{111:1},exz),eUe.a=!1,Y5(eza,"PortContext",111),eTS(1476,1,eUF,eM),eUe.td=function(e){yQ(Pp(e,306))},Y5(ezu,ezc,1476),eTS(1477,1,eU8,eO),eUe.Mb=function(e){return!!Pp(e,111).c},Y5(ezu,ezl,1477),eTS(1478,1,eUF,eA),eUe.td=function(e){yQ(Pp(e,111).c)},Y5(ezu,"LabelPlacer/lambda$2$Type",1478),eTS(1475,1,eUF,eC),eUe.td=function(e){Cn(),bu(Pp(e,111))},Y5(ezu,"NodeLabelAndSizeUtilities/lambda$0$Type",1475),eTS(790,1,eUF,Dx),eUe.td=function(e){_H(this.b,this.c,this.a,Pp(e,181))},eUe.a=!1,eUe.c=!1,Y5(ezu,"NodeLabelCellCreator/lambda$0$Type",790),eTS(1474,1,eUF,db),eUe.td=function(e){bB(this.a,Pp(e,181))},Y5(ezu,"PortContextCreator/lambda$0$Type",1474),eTS(1829,1,{},eI),Y5(ezd,"GreedyRectangleStripOverlapRemover",1829),eTS(1830,1,e$C,eL),eUe.ue=function(e,t){return Ay(Pp(e,222),Pp(t,222))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y5(ezd,"GreedyRectangleStripOverlapRemover/0methodref$compareByYCoordinate$Type",1830),eTS(1786,1,{},me),eUe.a=5,eUe.e=0,Y5(ezd,"RectangleStripOverlapRemover",1786),eTS(1787,1,e$C,eN),eUe.ue=function(e,t){return Aw(Pp(e,222),Pp(t,222))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y5(ezd,"RectangleStripOverlapRemover/0methodref$compareLeftRectangleBorders$Type",1787),eTS(1789,1,e$C,eP),eUe.ue=function(e,t){return YY(Pp(e,222),Pp(t,222))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y5(ezd,"RectangleStripOverlapRemover/1methodref$compareRightRectangleBorders$Type",1789),eTS(406,22,{3:1,35:1,22:1,406:1},EU);var e3r=enw(ezd,"RectangleStripOverlapRemover/OverlapRemovalDirection",406,e1G,Vn,Dd);eTS(222,1,{222:1},jH),Y5(ezd,"RectangleStripOverlapRemover/RectangleNode",222),eTS(1788,1,eUF,dm),eUe.td=function(e){emA(this.a,Pp(e,222))},Y5(ezd,"RectangleStripOverlapRemover/lambda$1$Type",1788),eTS(1304,1,e$C,eR),eUe.ue=function(e,t){return eRu(Pp(e,167),Pp(t,167))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y5(ezp,"PolyominoCompactor/CornerCasesGreaterThanRestComparator",1304),eTS(1307,1,{},ej),eUe.Kb=function(e){return Pp(e,324).a},Y5(ezp,"PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$0$Type",1307),eTS(1308,1,eU8,eF),eUe.Mb=function(e){return Pp(e,323).a},Y5(ezp,"PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$1$Type",1308),eTS(1309,1,eU8,eY),eUe.Mb=function(e){return Pp(e,323).a},Y5(ezp,"PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$2$Type",1309),eTS(1302,1,e$C,eB),eUe.ue=function(e,t){return eC9(Pp(e,167),Pp(t,167))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y5(ezp,"PolyominoCompactor/MinNumOfExtensionDirectionsComparator",1302),eTS(1305,1,{},eD),eUe.Kb=function(e){return Pp(e,324).a},Y5(ezp,"PolyominoCompactor/MinNumOfExtensionDirectionsComparator/lambda$0$Type",1305),eTS(767,1,e$C,eU),eUe.ue=function(e,t){return eaq(Pp(e,167),Pp(t,167))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y5(ezp,"PolyominoCompactor/MinNumOfExtensionsComparator",767),eTS(1300,1,e$C,eH),eUe.ue=function(e,t){return ery(Pp(e,321),Pp(t,321))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y5(ezp,"PolyominoCompactor/MinPerimeterComparator",1300),eTS(1301,1,e$C,e$),eUe.ue=function(e,t){return ebg(Pp(e,321),Pp(t,321))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y5(ezp,"PolyominoCompactor/MinPerimeterComparatorWithShape",1301),eTS(1303,1,e$C,ez),eUe.ue=function(e,t){return eIz(Pp(e,167),Pp(t,167))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y5(ezp,"PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator",1303),eTS(1306,1,{},eG),eUe.Kb=function(e){return Pp(e,324).a},Y5(ezp,"PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator/lambda$0$Type",1306),eTS(777,1,{},EC),eUe.Ce=function(e,t){return KG(this,Pp(e,46),Pp(t,167))},Y5(ezp,"SuccessorCombination",777),eTS(644,1,{},eW),eUe.Ce=function(e,t){var n;return exd((n=Pp(e,46),Pp(t,167),n))},Y5(ezp,"SuccessorJitter",644),eTS(643,1,{},eK),eUe.Ce=function(e,t){var n;return eAW((n=Pp(e,46),Pp(t,167),n))},Y5(ezp,"SuccessorLineByLine",643),eTS(568,1,{},eV),eUe.Ce=function(e,t){var n;return eMl((n=Pp(e,46),Pp(t,167),n))},Y5(ezp,"SuccessorManhattan",568),eTS(1356,1,{},eq),eUe.Ce=function(e,t){var n;return eAt((n=Pp(e,46),Pp(t,167),n))},Y5(ezp,"SuccessorMaxNormWindingInMathPosSense",1356),eTS(400,1,{},dg),eUe.Ce=function(e,t){return YO(this,e,t)},eUe.c=!1,eUe.d=!1,eUe.e=!1,eUe.f=!1,Y5(ezp,"SuccessorQuadrantsGeneric",400),eTS(1357,1,{},eZ),eUe.Kb=function(e){return Pp(e,324).a},Y5(ezp,"SuccessorQuadrantsGeneric/lambda$0$Type",1357),eTS(323,22,{3:1,35:1,22:1,323:1},EN),eUe.a=!1;var e3i=enw(ezy,ezw,323,e1G,Va,Dh);eTS(1298,1,{}),eUe.Ib=function(){var e,t,n,r,i,a;for(i=0,n=" ",e=ell(0);i=0?"b"+e+"["+q2(this.a)+"]":"b["+q2(this.a)+"]":"b_"+Ao(this)},Y5(ez0,"FBendpoint",559),eTS(282,134,{3:1,282:1,94:1,134:1},CH),eUe.Ib=function(){return q2(this)},Y5(ez0,"FEdge",282),eTS(231,134,{3:1,231:1,94:1,134:1},Z5);var e4_=Y5(ez0,"FGraph",231);eTS(447,357,{3:1,447:1,357:1,94:1,134:1},qp),eUe.Ib=function(){return null==this.b||0==this.b.length?"l["+q2(this.a)+"]":"l_"+this.b},Y5(ez0,"FLabel",447),eTS(144,357,{3:1,144:1,357:1,94:1,134:1},Bw),eUe.Ib=function(){return WH(this)},eUe.b=0,Y5(ez0,"FNode",144),eTS(2003,1,{}),eUe.bf=function(e){eD2(this,e)},eUe.cf=function(){emz(this)},eUe.d=0,Y5(ez3,"AbstractForceModel",2003),eTS(631,2003,{631:1},eaR),eUe.af=function(e,t){var n,r,i,a,o;return ekL(this.f,e,t),i=C6(MB(t.d),e.d),o=eB4.Math.sqrt(i.a*i.a+i.b*i.b),r=eB4.Math.max(0,o-B$(e.e)/2-B$(t.e)/2),a=(n=esT(this.e,e,t))>0?-YT(r,this.c)*n:Li(r,this.b)*Pp(e_k(e,(eCk(),e9M)),19).a,Ol(i,a/o),i},eUe.bf=function(e){eD2(this,e),this.a=Pp(e_k(e,(eCk(),e9g)),19).a,this.c=gP(LV(e_k(e,e9D))),this.b=gP(LV(e_k(e,e9A)))},eUe.df=function(e){return e0&&(a-=gg(r,this.a)*n),Ol(i,a*this.b/o),i},eUe.bf=function(e){var t,n,r,i,a,o,s;for(eD2(this,e),this.b=gP(LV(e_k(e,(eCk(),e9N)))),this.c=this.b/Pp(e_k(e,e9g),19).a,r=e.e.c.length,a=0,i=0,s=new fz(e.e);s.a0},eUe.a=0,eUe.b=0,eUe.c=0,Y5(ez3,"FruchtermanReingoldModel",632),eTS(849,1,e$2,cu),eUe.Qe=function(e){efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,ez4),""),"Force Model"),"Determines the model for force calculation."),e9a),(eSd(),tdv)),e4E),el9((epx(),tdh))))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,ez5),""),"Iterations"),"The number of iterations on the force model."),ell(300)),tdw),e15),el9(tdh)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,ez6),""),"Repulsive Power"),"Determines how many bend points are added to the edge; such bend points are regarded as repelling particles in the force model"),ell(0)),tdw),e15),el9(tdl)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,ez9),""),"FR Temperature"),"The temperature is used as a scaling factor for particle displacements."),ez8),tdg),e13),el9(tdh)))),K_(e,ez9,ez4,e9l),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,ez7),""),"Eades Repulsion"),"Factor for repulsive forces in Eades' model."),5),tdg),e13),el9(tdh)))),K_(e,ez7,ez4,e9s),eYi((new cc,e))},Y5(eGe,"ForceMetaDataProvider",849),eTS(424,22,{3:1,35:1,22:1,424:1},EH);var e4E=enw(eGe,"ForceModelStrategy",424,e1G,$9,Dm);eTS(988,1,e$2,cc),eUe.Qe=function(e){eYi(e)},Y5(eGe,"ForceOptions",988),eTS(989,1,{},tr),eUe.$e=function(){return new b0},eUe._e=function(e){},Y5(eGe,"ForceOptions/ForceFactory",989),eTS(850,1,e$2,cl),eUe.Qe=function(e){efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eGw),""),"Fixed Position"),"Prevent that the node is moved by the layout algorithm."),(OQ(),!1)),(eSd(),tdm)),e11),el9((epx(),tdd))))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eG_),""),"Desired Edge Length"),"Either specified for parent nodes or for individual edges, where the latter takes higher precedence."),100),tdg),e13),jL(tdh,eow(vx(e5Q,1),eU4,175,0,[tdl]))))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eGE),""),"Layout Dimension"),"Dimensions that are permitted to be altered during layout."),e9U),tdv),e4S),el9(tdh)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eGS),""),"Stress Epsilon"),"Termination criterion for the iterative process."),ez8),tdg),e13),el9(tdh)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eGk),""),"Iteration Limit"),"Maximum number of performed iterations. Takes higher precedence than 'epsilon'."),ell(eUu)),tdw),e15),el9(tdh)))),ejQ((new cf,e))},Y5(eGe,"StressMetaDataProvider",850),eTS(992,1,e$2,cf),eUe.Qe=function(e){ejQ(e)},Y5(eGe,"StressOptions",992),eTS(993,1,{},ti),eUe.$e=function(){return new C$},eUe._e=function(e){},Y5(eGe,"StressOptions/StressFactory",993),eTS(1128,209,ezL,C$),eUe.Ze=function(e,t){var n,r,i,a,o;for(ewG(t,eGT,1),gN(LK(eT8(e,(egq(),e9q))))?gN(LK(eT8(e,e90)))||zh(n=new df((_q(),new gM(e)))):eOs(new b0,e,eiI(t,1)),i=eo4(e),o=(r=eNx(this.a,i)).Kc();o.Ob();)!((a=Pp(o.Pb(),231)).e.c.length<=1)&&(eRa(this.b,a),eMn(this.b),ety(a.d,new ta));i=eYC(r),eYh(i),eEj(t)},Y5(eGO,"StressLayoutProvider",1128),eTS(1129,1,eUF,ta),eUe.td=function(e){ePd(Pp(e,447))},Y5(eGO,"StressLayoutProvider/lambda$0$Type",1129),eTS(990,1,{},bP),eUe.c=0,eUe.e=0,eUe.g=0,Y5(eGO,"StressMajorization",990),eTS(379,22,{3:1,35:1,22:1,379:1},E$);var e4S=enw(eGO,"StressMajorization/Dimension",379,e1G,G3,Dg);eTS(991,1,e$C,dE),eUe.ue=function(e,t){return IA(this.a,Pp(e,144),Pp(t,144))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y5(eGO,"StressMajorization/lambda$0$Type",991),eTS(1229,1,{},W9),Y5(eGL,"ElkLayered",1229),eTS(1230,1,eUF,to),eUe.td=function(e){exn(Pp(e,37))},Y5(eGL,"ElkLayered/lambda$0$Type",1230),eTS(1231,1,eUF,dS),eUe.td=function(e){IL(this.a,Pp(e,37))},Y5(eGL,"ElkLayered/lambda$1$Type",1231),eTS(1263,1,{},MC),Y5(eGL,"GraphConfigurator",1263),eTS(759,1,eUF,dk),eUe.td=function(e){e_1(this.a,Pp(e,10))},Y5(eGL,"GraphConfigurator/lambda$0$Type",759),eTS(760,1,{},ts),eUe.Kb=function(e){return evR(),new R1(null,new Gq(Pp(e,29).a,16))},Y5(eGL,"GraphConfigurator/lambda$1$Type",760),eTS(761,1,eUF,dx),eUe.td=function(e){e_1(this.a,Pp(e,10))},Y5(eGL,"GraphConfigurator/lambda$2$Type",761),eTS(1127,209,ezL,b3),eUe.Ze=function(e,t){var n;n=eN7(new mn,e),xc(eT8(e,(eBy(),taM)))===xc((eck(),tpz))?ef0(this.a,n,t):exD(this.a,n,t),eYr(new ch,n)},Y5(eGL,"LayeredLayoutProvider",1127),eTS(356,22,{3:1,35:1,22:1,356:1},Ez);var e4k=enw(eGL,"LayeredPhases",356,e1G,q4,Dv);eTS(1651,1,{},enX),eUe.i=0,Y5(eGC,"ComponentsToCGraphTransformer",1651),eTS(1652,1,{},tu),eUe.ef=function(e,t){return eB4.Math.min(null!=e.a?gP(e.a):e.c.i,null!=t.a?gP(t.a):t.c.i)},eUe.ff=function(e,t){return eB4.Math.min(null!=e.a?gP(e.a):e.c.i,null!=t.a?gP(t.a):t.c.i)},Y5(eGC,"ComponentsToCGraphTransformer/1",1652),eTS(81,1,{81:1}),eUe.i=0,eUe.k=!0,eUe.o=eH1;var e4x=Y5(eGI,"CNode",81);eTS(460,81,{460:1,81:1},Ah,eh3),eUe.Ib=function(){return""},Y5(eGC,"ComponentsToCGraphTransformer/CRectNode",460),eTS(1623,1,{},tc),Y5(eGC,"OneDimensionalComponentsCompaction",1623),eTS(1624,1,{},tl),eUe.Kb=function(e){return Gm(Pp(e,46))},eUe.Fb=function(e){return this===e},Y5(eGC,"OneDimensionalComponentsCompaction/lambda$0$Type",1624),eTS(1625,1,{},tf),eUe.Kb=function(e){return edl(Pp(e,46))},eUe.Fb=function(e){return this===e},Y5(eGC,"OneDimensionalComponentsCompaction/lambda$1$Type",1625),eTS(1654,1,{},Bv),Y5(eGI,"CGraph",1654),eTS(189,1,{189:1},eh4),eUe.b=0,eUe.c=0,eUe.e=0,eUe.g=!0,eUe.i=eH1,Y5(eGI,"CGroup",189),eTS(1653,1,{},tb),eUe.ef=function(e,t){return eB4.Math.max(null!=e.a?gP(e.a):e.c.i,null!=t.a?gP(t.a):t.c.i)},eUe.ff=function(e,t){return eB4.Math.max(null!=e.a?gP(e.a):e.c.i,null!=t.a?gP(t.a):t.c.i)},Y5(eGI,e$R,1653),eTS(1655,1,{},exO),eUe.d=!1;var e4T=Y5(eGI,e$U,1655);eTS(1656,1,{},tm),eUe.Kb=function(e){return _T(),OQ(),0!=Pp(Pp(e,46).a,81).d.e},eUe.Fb=function(e){return this===e},Y5(eGI,e$H,1656),eTS(823,1,{},R$),eUe.a=!1,eUe.b=!1,eUe.c=!1,eUe.d=!1,Y5(eGI,e$$,823),eTS(1825,1,{},j$),Y5(eGD,e$z,1825);var e4M=RL(eGN,e$D);eTS(1826,1,{369:1},$h),eUe.Ke=function(e){eLh(this,Pp(e,466))},Y5(eGD,e$G,1826),eTS(1827,1,e$C,tg),eUe.ue=function(e,t){return Hy(Pp(e,81),Pp(t,81))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y5(eGD,e$W,1827),eTS(466,1,{466:1},E6),eUe.a=!1,Y5(eGD,e$K,466),eTS(1828,1,e$C,tv),eUe.ue=function(e,t){return evP(Pp(e,466),Pp(t,466))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y5(eGD,e$V,1828),eTS(140,1,{140:1},Se,PW),eUe.Fb=function(e){var t;return null!=e&&e4O==esF(e)&&(t=Pp(e,140),UT(this.c,t.c)&&UT(this.d,t.d))},eUe.Hb=function(){return euF(eow(vx(e1R,1),eUp,1,5,[this.c,this.d]))},eUe.Ib=function(){return"("+this.c+eUd+this.d+(this.a?"cx":"")+this.b+")"},eUe.a=!0,eUe.c=0,eUe.d=0;var e4O=Y5(eGN,"Point",140);eTS(405,22,{3:1,35:1,22:1,405:1},EG);var e4A=enw(eGN,"Point/Quadrant",405,e1G,Vo,Dy);eTS(1642,1,{},b6),eUe.b=null,eUe.c=null,eUe.d=null,eUe.e=null,eUe.f=null,Y5(eGN,"RectilinearConvexHull",1642),eTS(574,1,{369:1},epG),eUe.Ke=function(e){J4(this,Pp(e,140))},eUe.b=0,Y5(eGN,"RectilinearConvexHull/MaximalElementsEventHandler",574),eTS(1644,1,e$C,th),eUe.ue=function(e,t){return U3(LV(e),LV(t))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y5(eGN,"RectilinearConvexHull/MaximalElementsEventHandler/lambda$0$Type",1644),eTS(1643,1,{369:1},ete),eUe.Ke=function(e){eAo(this,Pp(e,140))},eUe.a=0,eUe.b=null,eUe.c=null,eUe.d=null,eUe.e=null,Y5(eGN,"RectilinearConvexHull/RectangleEventHandler",1643),eTS(1645,1,e$C,tp),eUe.ue=function(e,t){return WI(Pp(e,140),Pp(t,140))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y5(eGN,"RectilinearConvexHull/lambda$0$Type",1645),eTS(1646,1,e$C,td),eUe.ue=function(e,t){return WD(Pp(e,140),Pp(t,140))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y5(eGN,"RectilinearConvexHull/lambda$1$Type",1646),eTS(1647,1,e$C,ty),eUe.ue=function(e,t){return WP(Pp(e,140),Pp(t,140))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y5(eGN,"RectilinearConvexHull/lambda$2$Type",1647),eTS(1648,1,e$C,tw),eUe.ue=function(e,t){return WN(Pp(e,140),Pp(t,140))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y5(eGN,"RectilinearConvexHull/lambda$3$Type",1648),eTS(1649,1,e$C,t_),eUe.ue=function(e,t){return e_M(Pp(e,140),Pp(t,140))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y5(eGN,"RectilinearConvexHull/lambda$4$Type",1649),eTS(1650,1,{},Gf),Y5(eGN,"Scanline",1650),eTS(2005,1,{}),Y5(eGP,"AbstractGraphPlacer",2005),eTS(325,1,{325:1},Lm),eUe.mf=function(e){return!!this.nf(e)&&(exg(this.b,Pp(e_k(e,(eBU(),ttX)),21),e),!0)},eUe.nf=function(e){var t,n,r,i;for(t=Pp(e_k(e,(eBU(),ttX)),21),r=(i=Pp(Zq(e8E,t),21)).Kc();r.Ob();)if(n=Pp(r.Pb(),21),!Pp(Zq(this.b,n),15).dc())return!1;return!0},Y5(eGP,"ComponentGroup",325),eTS(765,2005,{},b9),eUe.of=function(e){var t,n;for(n=new fz(this.a);n.ah&&(_=0,E+=d+i,d=0),m=o.c,eIn(o,_+m.a,E+m.b),xB(m),n=eB4.Math.max(n,_+v.a),d=eB4.Math.max(d,v.b),_+=v.a+i;if(t.f.a=n,t.f.b=E+d,gN(LK(e_k(a,tiQ)))){for(eBb(r=new tE,e,i),f=e.Kc();f.Ob();)C5(xB((l=Pp(f.Pb(),37)).c),r.e);C5(xB(t.f),r.a)}JN(t,e)},Y5(eGP,"SimpleRowGraphPlacer",1291),eTS(1292,1,e$C,tx),eUe.ue=function(e,t){return eaV(Pp(e,37),Pp(t,37))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y5(eGP,"SimpleRowGraphPlacer/1",1292),eTS(1262,1,e$q,tT),eUe.Lb=function(e){var t;return!!(t=Pp(e_k(Pp(e,243).b,(eBy(),taR)),74))&&0!=t.b},eUe.Fb=function(e){return this===e},eUe.Mb=function(e){var t;return!!(t=Pp(e_k(Pp(e,243).b,(eBy(),taR)),74))&&0!=t.b},Y5(eGY,"CompoundGraphPostprocessor/1",1262),eTS(1261,1,eGB,mr),eUe.pf=function(e,t){ebL(this,Pp(e,37),t)},Y5(eGY,"CompoundGraphPreprocessor",1261),eTS(441,1,{441:1},ec8),eUe.c=!1,Y5(eGY,"CompoundGraphPreprocessor/ExternalPort",441),eTS(243,1,{243:1},DT),eUe.Ib=function(){return AV(this.c)+":"+ek5(this.b)},Y5(eGY,"CrossHierarchyEdge",243),eTS(763,1,e$C,dT),eUe.ue=function(e,t){return egB(this,Pp(e,243),Pp(t,243))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y5(eGY,"CrossHierarchyEdgeComparator",763),eTS(299,134,{3:1,299:1,94:1,134:1}),eUe.p=0,Y5(eGU,"LGraphElement",299),eTS(17,299,{3:1,17:1,299:1,94:1,134:1},$b),eUe.Ib=function(){return ek5(this)};var e4C=Y5(eGU,"LEdge",17);eTS(37,299,{3:1,20:1,37:1,299:1,94:1,134:1},enJ),eUe.Jc=function(e){qX(this,e)},eUe.Kc=function(){return new fz(this.b)},eUe.Ib=function(){return 0==this.b.c.length?"G-unlayered"+e_F(this.a):0==this.a.c.length?"G-layered"+e_F(this.b):"G[layerless"+e_F(this.a)+", layers"+e_F(this.b)+"]"};var e4I=Y5(eGU,"LGraph",37);eTS(657,1,{}),eUe.qf=function(){return this.e.n},eUe.We=function(e){return e_k(this.e,e)},eUe.rf=function(){return this.e.o},eUe.sf=function(){return this.e.p},eUe.Xe=function(e){return Ln(this.e,e)},eUe.tf=function(e){this.e.n.a=e.a,this.e.n.b=e.b},eUe.uf=function(e){this.e.o.a=e.a,this.e.o.b=e.b},eUe.vf=function(e){this.e.p=e},Y5(eGU,"LGraphAdapters/AbstractLShapeAdapter",657),eTS(577,1,{839:1},dM),eUe.wf=function(){var e,t;if(!this.b)for(this.b=AH(this.a.b.c.length),t=new fz(this.a.b);t.a0&&eu7((GV(t-1,e.length),e.charCodeAt(t-1)),eGq);)--t;if(a> ",e),egu(n)),xM(xT((e.a+="[",e),n.i),"]")),e.a},eUe.c=!0,eUe.d=!1;var e4j=Y5(eGU,"LPort",11);eTS(397,1,eU$,dA),eUe.Jc=function(e){qX(this,e)},eUe.Kc=function(){var e;return e=new fz(this.a.e),new dL(e)},Y5(eGU,"LPort/1",397),eTS(1290,1,eUE,dL),eUe.Nb=function(e){F8(this,e)},eUe.Pb=function(){return Pp(Wx(this.a),17).c},eUe.Ob=function(){return My(this.a)},eUe.Qb=function(){Yv(this.a)},Y5(eGU,"LPort/1/1",1290),eTS(359,1,eU$,dC),eUe.Jc=function(e){qX(this,e)},eUe.Kc=function(){var e;return e=new fz(this.a.g),new dI(e)},Y5(eGU,"LPort/2",359),eTS(762,1,eUE,dI),eUe.Nb=function(e){F8(this,e)},eUe.Pb=function(){return Pp(Wx(this.a),17).d},eUe.Ob=function(){return My(this.a)},eUe.Qb=function(){Yv(this.a)},Y5(eGU,"LPort/2/1",762),eTS(1283,1,eU$,E5),eUe.Jc=function(e){qX(this,e)},eUe.Kc=function(){return new Z4(this)},Y5(eGU,"LPort/CombineIter",1283),eTS(201,1,eUE,Z4),eUe.Nb=function(e){F8(this,e)},eUe.Qb=function(){yI()},eUe.Ob=function(){return Ak(this)},eUe.Pb=function(){return My(this.a)?Wx(this.a):Wx(this.b)},Y5(eGU,"LPort/CombineIter/1",201),eTS(1285,1,e$q,tA),eUe.Lb=function(e){return FO(e)},eUe.Fb=function(e){return this===e},eUe.Mb=function(e){return eiA(),0!=Pp(e,11).e.c.length},Y5(eGU,"LPort/lambda$0$Type",1285),eTS(1284,1,e$q,tL),eUe.Lb=function(e){return FA(e)},eUe.Fb=function(e){return this===e},eUe.Mb=function(e){return eiA(),0!=Pp(e,11).g.c.length},Y5(eGU,"LPort/lambda$1$Type",1284),eTS(1286,1,e$q,tC),eUe.Lb=function(e){return eiA(),Pp(e,11).j==(eYu(),tbw)},eUe.Fb=function(e){return this===e},eUe.Mb=function(e){return eiA(),Pp(e,11).j==(eYu(),tbw)},Y5(eGU,"LPort/lambda$2$Type",1286),eTS(1287,1,e$q,tI),eUe.Lb=function(e){return eiA(),Pp(e,11).j==(eYu(),tby)},eUe.Fb=function(e){return this===e},eUe.Mb=function(e){return eiA(),Pp(e,11).j==(eYu(),tby)},Y5(eGU,"LPort/lambda$3$Type",1287),eTS(1288,1,e$q,tD),eUe.Lb=function(e){return eiA(),Pp(e,11).j==(eYu(),tbj)},eUe.Fb=function(e){return this===e},eUe.Mb=function(e){return eiA(),Pp(e,11).j==(eYu(),tbj)},Y5(eGU,"LPort/lambda$4$Type",1288),eTS(1289,1,e$q,tN),eUe.Lb=function(e){return eiA(),Pp(e,11).j==(eYu(),tbY)},eUe.Fb=function(e){return this===e},eUe.Mb=function(e){return eiA(),Pp(e,11).j==(eYu(),tbY)},Y5(eGU,"LPort/lambda$5$Type",1289),eTS(29,299,{3:1,20:1,299:1,29:1,94:1,134:1},By),eUe.Jc=function(e){qX(this,e)},eUe.Kc=function(){return new fz(this.a)},eUe.Ib=function(){return"L_"+QI(this.b.b,this,0)+e_F(this.a)},Y5(eGU,"Layer",29),eTS(1342,1,{},mn),Y5(eG0,eG2,1342),eTS(1346,1,{},tP),eUe.Kb=function(e){return ewH(Pp(e,82))},Y5(eG0,"ElkGraphImporter/0methodref$connectableShapeToNode$Type",1346),eTS(1349,1,{},tR),eUe.Kb=function(e){return ewH(Pp(e,82))},Y5(eG0,"ElkGraphImporter/1methodref$connectableShapeToNode$Type",1349),eTS(1343,1,eUF,dD),eUe.td=function(e){exW(this.a,Pp(e,118))},Y5(eG0,eG3,1343),eTS(1344,1,eUF,dN),eUe.td=function(e){exW(this.a,Pp(e,118))},Y5(eG0,eG4,1344),eTS(1345,1,{},tj),eUe.Kb=function(e){return new R1(null,new Gq(UF(Pp(e,79)),16))},Y5(eG0,eG5,1345),eTS(1347,1,eU8,dP),eUe.Mb=function(e){return TV(this.a,Pp(e,33))},Y5(eG0,eG6,1347),eTS(1348,1,{},tF),eUe.Kb=function(e){return new R1(null,new Gq(UY(Pp(e,79)),16))},Y5(eG0,"ElkGraphImporter/lambda$5$Type",1348),eTS(1350,1,eU8,dR),eUe.Mb=function(e){return Tq(this.a,Pp(e,33))},Y5(eG0,"ElkGraphImporter/lambda$7$Type",1350),eTS(1351,1,eU8,tY),eUe.Mb=function(e){return HH(Pp(e,79))},Y5(eG0,"ElkGraphImporter/lambda$8$Type",1351),eTS(1278,1,{},ch),Y5(eG0,"ElkGraphLayoutTransferrer",1278),eTS(1279,1,eU8,dj),eUe.Mb=function(e){return It(this.a,Pp(e,17))},Y5(eG0,"ElkGraphLayoutTransferrer/lambda$0$Type",1279),eTS(1280,1,eUF,dF),eUe.td=function(e){_k(),P_(this.a,Pp(e,17))},Y5(eG0,"ElkGraphLayoutTransferrer/lambda$1$Type",1280),eTS(1281,1,eU8,dY),eUe.Mb=function(e){return Ca(this.a,Pp(e,17))},Y5(eG0,"ElkGraphLayoutTransferrer/lambda$2$Type",1281),eTS(1282,1,eUF,dB),eUe.td=function(e){_k(),P_(this.a,Pp(e,17))},Y5(eG0,"ElkGraphLayoutTransferrer/lambda$3$Type",1282),eTS(1485,1,eGB,tB),eUe.pf=function(e,t){eiu(Pp(e,37),t)},Y5(eG8,"CommentNodeMarginCalculator",1485),eTS(1486,1,{},tU),eUe.Kb=function(e){return new R1(null,new Gq(Pp(e,29).a,16))},Y5(eG8,"CommentNodeMarginCalculator/lambda$0$Type",1486),eTS(1487,1,eUF,tH),eUe.td=function(e){ePO(Pp(e,10))},Y5(eG8,"CommentNodeMarginCalculator/lambda$1$Type",1487),eTS(1488,1,eGB,t$),eUe.pf=function(e,t){eLA(Pp(e,37),t)},Y5(eG8,"CommentPostprocessor",1488),eTS(1489,1,eGB,tz),eUe.pf=function(e,t){eF4(Pp(e,37),t)},Y5(eG8,"CommentPreprocessor",1489),eTS(1490,1,eGB,tG),eUe.pf=function(e,t){eOf(Pp(e,37),t)},Y5(eG8,"ConstraintsPostprocessor",1490),eTS(1491,1,eGB,tW),eUe.pf=function(e,t){eau(Pp(e,37),t)},Y5(eG8,"EdgeAndLayerConstraintEdgeReverser",1491),eTS(1492,1,eGB,tK),eUe.pf=function(e,t){edC(Pp(e,37),t)},Y5(eG8,"EndLabelPostprocessor",1492),eTS(1493,1,{},tV),eUe.Kb=function(e){return new R1(null,new Gq(Pp(e,29).a,16))},Y5(eG8,"EndLabelPostprocessor/lambda$0$Type",1493),eTS(1494,1,eU8,tq),eUe.Mb=function(e){return $T(Pp(e,10))},Y5(eG8,"EndLabelPostprocessor/lambda$1$Type",1494),eTS(1495,1,eUF,tZ),eUe.td=function(e){evj(Pp(e,10))},Y5(eG8,"EndLabelPostprocessor/lambda$2$Type",1495),eTS(1496,1,eGB,tX),eUe.pf=function(e,t){eSF(Pp(e,37),t)},Y5(eG8,"EndLabelPreprocessor",1496),eTS(1497,1,{},tJ),eUe.Kb=function(e){return new R1(null,new Gq(Pp(e,29).a,16))},Y5(eG8,"EndLabelPreprocessor/lambda$0$Type",1497),eTS(1498,1,eUF,DA),eUe.td=function(e){_$(this.a,this.b,this.c,Pp(e,10))},eUe.a=0,eUe.b=0,eUe.c=!1,Y5(eG8,"EndLabelPreprocessor/lambda$1$Type",1498),eTS(1499,1,eU8,tQ),eUe.Mb=function(e){return xc(e_k(Pp(e,70),(eBy(),tab)))===xc((etT(),tpS))},Y5(eG8,"EndLabelPreprocessor/lambda$2$Type",1499),eTS(1500,1,eUF,dU),eUe.td=function(e){P7(this.a,Pp(e,70))},Y5(eG8,"EndLabelPreprocessor/lambda$3$Type",1500),eTS(1501,1,eU8,t1),eUe.Mb=function(e){return xc(e_k(Pp(e,70),(eBy(),tab)))===xc((etT(),tpE))},Y5(eG8,"EndLabelPreprocessor/lambda$4$Type",1501),eTS(1502,1,eUF,dH),eUe.td=function(e){P7(this.a,Pp(e,70))},Y5(eG8,"EndLabelPreprocessor/lambda$5$Type",1502),eTS(1551,1,eGB,cd),eUe.pf=function(e,t){elP(Pp(e,37),t)},Y5(eG8,"EndLabelSorter",1551),eTS(1552,1,e$C,t0),eUe.ue=function(e,t){return epc(Pp(e,456),Pp(t,456))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y5(eG8,"EndLabelSorter/1",1552),eTS(456,1,{456:1},HP),Y5(eG8,"EndLabelSorter/LabelGroup",456),eTS(1553,1,{},t2),eUe.Kb=function(e){return _O(),new R1(null,new Gq(Pp(e,29).a,16))},Y5(eG8,"EndLabelSorter/lambda$0$Type",1553),eTS(1554,1,eU8,t3),eUe.Mb=function(e){return _O(),Pp(e,10).k==(eEn(),e8N)},Y5(eG8,"EndLabelSorter/lambda$1$Type",1554),eTS(1555,1,eUF,t4),eUe.td=function(e){eEr(Pp(e,10))},Y5(eG8,"EndLabelSorter/lambda$2$Type",1555),eTS(1556,1,eU8,t5),eUe.Mb=function(e){return _O(),xc(e_k(Pp(e,70),(eBy(),tab)))===xc((etT(),tpE))},Y5(eG8,"EndLabelSorter/lambda$3$Type",1556),eTS(1557,1,eU8,t6),eUe.Mb=function(e){return _O(),xc(e_k(Pp(e,70),(eBy(),tab)))===xc((etT(),tpS))},Y5(eG8,"EndLabelSorter/lambda$4$Type",1557),eTS(1503,1,eGB,t9),eUe.pf=function(e,t){eP2(this,Pp(e,37))},eUe.b=0,eUe.c=0,Y5(eG8,"FinalSplineBendpointsCalculator",1503),eTS(1504,1,{},t8),eUe.Kb=function(e){return new R1(null,new Gq(Pp(e,29).a,16))},Y5(eG8,"FinalSplineBendpointsCalculator/lambda$0$Type",1504),eTS(1505,1,{},t7),eUe.Kb=function(e){return new R1(null,new YI(new Fa(OH(efc(Pp(e,10)).a.Kc(),new c))))},Y5(eG8,"FinalSplineBendpointsCalculator/lambda$1$Type",1505),eTS(1506,1,eU8,ne),eUe.Mb=function(e){return!q8(Pp(e,17))},Y5(eG8,"FinalSplineBendpointsCalculator/lambda$2$Type",1506),eTS(1507,1,eU8,nt),eUe.Mb=function(e){return Ln(Pp(e,17),(eBU(),tnO))},Y5(eG8,"FinalSplineBendpointsCalculator/lambda$3$Type",1507),eTS(1508,1,eUF,d$),eUe.td=function(e){eIV(this.a,Pp(e,128))},Y5(eG8,"FinalSplineBendpointsCalculator/lambda$4$Type",1508),eTS(1509,1,eUF,nn),eUe.td=function(e){eSj(Pp(e,17).a)},Y5(eG8,"FinalSplineBendpointsCalculator/lambda$5$Type",1509),eTS(792,1,eGB,dz),eUe.pf=function(e,t){ejn(this,Pp(e,37),t)},Y5(eG8,"GraphTransformer",792),eTS(511,22,{3:1,35:1,22:1,511:1},EV);var e4F=enw(eG8,"GraphTransformer/Mode",511,e1G,$8,NF);eTS(1510,1,eGB,nr),eUe.pf=function(e,t){eAP(Pp(e,37),t)},Y5(eG8,"HierarchicalNodeResizingProcessor",1510),eTS(1511,1,eGB,ni),eUe.pf=function(e,t){erP(Pp(e,37),t)},Y5(eG8,"HierarchicalPortConstraintProcessor",1511),eTS(1512,1,e$C,na),eUe.ue=function(e,t){return epZ(Pp(e,10),Pp(t,10))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y5(eG8,"HierarchicalPortConstraintProcessor/NodeComparator",1512),eTS(1513,1,eGB,no),eUe.pf=function(e,t){eN5(Pp(e,37),t)},Y5(eG8,"HierarchicalPortDummySizeProcessor",1513),eTS(1514,1,eGB,ns),eUe.pf=function(e,t){eCf(this,Pp(e,37),t)},eUe.a=0,Y5(eG8,"HierarchicalPortOrthogonalEdgeRouter",1514),eTS(1515,1,e$C,nu),eUe.ue=function(e,t){return Av(Pp(e,10),Pp(t,10))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y5(eG8,"HierarchicalPortOrthogonalEdgeRouter/1",1515),eTS(1516,1,e$C,nc),eUe.ue=function(e,t){return JW(Pp(e,10),Pp(t,10))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y5(eG8,"HierarchicalPortOrthogonalEdgeRouter/2",1516),eTS(1517,1,eGB,nl),eUe.pf=function(e,t){e_O(Pp(e,37),t)},Y5(eG8,"HierarchicalPortPositionProcessor",1517),eTS(1518,1,eGB,cp),eUe.pf=function(e,t){eYG(this,Pp(e,37))},eUe.a=0,eUe.c=0,Y5(eG8,"HighDegreeNodeLayeringProcessor",1518),eTS(571,1,{571:1},nf),eUe.b=-1,eUe.d=-1,Y5(eG8,"HighDegreeNodeLayeringProcessor/HighDegreeNodeInformation",571),eTS(1519,1,{},nd),eUe.Kb=function(e){return DR(),efu(Pp(e,10))},eUe.Fb=function(e){return this===e},Y5(eG8,"HighDegreeNodeLayeringProcessor/lambda$0$Type",1519),eTS(1520,1,{},nh),eUe.Kb=function(e){return DR(),efc(Pp(e,10))},eUe.Fb=function(e){return this===e},Y5(eG8,"HighDegreeNodeLayeringProcessor/lambda$1$Type",1520),eTS(1526,1,eGB,np),eUe.pf=function(e,t){eD8(this,Pp(e,37),t)},Y5(eG8,"HyperedgeDummyMerger",1526),eTS(793,1,{},DL),eUe.a=!1,eUe.b=!1,eUe.c=!1,Y5(eG8,"HyperedgeDummyMerger/MergeState",793),eTS(1527,1,{},nb),eUe.Kb=function(e){return new R1(null,new Gq(Pp(e,29).a,16))},Y5(eG8,"HyperedgeDummyMerger/lambda$0$Type",1527),eTS(1528,1,{},nm),eUe.Kb=function(e){return new R1(null,new Gq(Pp(e,10).j,16))},Y5(eG8,"HyperedgeDummyMerger/lambda$1$Type",1528),eTS(1529,1,eUF,ng),eUe.td=function(e){Pp(e,11).p=-1},Y5(eG8,"HyperedgeDummyMerger/lambda$2$Type",1529),eTS(1530,1,eGB,nv),eUe.pf=function(e,t){eD6(Pp(e,37),t)},Y5(eG8,"HypernodesProcessor",1530),eTS(1531,1,eGB,ny),eUe.pf=function(e,t){eD9(Pp(e,37),t)},Y5(eG8,"InLayerConstraintProcessor",1531),eTS(1532,1,eGB,nw),eUe.pf=function(e,t){eiW(Pp(e,37),t)},Y5(eG8,"InnermostNodeMarginCalculator",1532),eTS(1533,1,eGB,n_),eUe.pf=function(e,t){eFW(this,Pp(e,37))},eUe.a=eH1,eUe.b=eH1,eUe.c=eHQ,eUe.d=eHQ;var e4Y=Y5(eG8,"InteractiveExternalPortPositioner",1533);eTS(1534,1,{},nE),eUe.Kb=function(e){return Pp(e,17).d.i},eUe.Fb=function(e){return this===e},Y5(eG8,"InteractiveExternalPortPositioner/lambda$0$Type",1534),eTS(1535,1,{},dG),eUe.Kb=function(e){return AE(this.a,LV(e))},eUe.Fb=function(e){return this===e},Y5(eG8,"InteractiveExternalPortPositioner/lambda$1$Type",1535),eTS(1536,1,{},nS),eUe.Kb=function(e){return Pp(e,17).c.i},eUe.Fb=function(e){return this===e},Y5(eG8,"InteractiveExternalPortPositioner/lambda$2$Type",1536),eTS(1537,1,{},dW),eUe.Kb=function(e){return AS(this.a,LV(e))},eUe.Fb=function(e){return this===e},Y5(eG8,"InteractiveExternalPortPositioner/lambda$3$Type",1537),eTS(1538,1,{},dK),eUe.Kb=function(e){return C9(this.a,LV(e))},eUe.Fb=function(e){return this===e},Y5(eG8,"InteractiveExternalPortPositioner/lambda$4$Type",1538),eTS(1539,1,{},dV),eUe.Kb=function(e){return C8(this.a,LV(e))},eUe.Fb=function(e){return this===e},Y5(eG8,"InteractiveExternalPortPositioner/lambda$5$Type",1539),eTS(77,22,{3:1,35:1,22:1,77:1,234:1},Eq),eUe.Kf=function(){switch(this.g){case 15:return new iA;case 22:return new iL;case 47:return new iD;case 28:case 35:return new nN;case 32:return new tB;case 42:return new t$;case 1:return new tz;case 41:return new tG;case 56:return new dz((erq(),e8W));case 0:return new dz((erq(),e8G));case 2:return new tW;case 54:return new tK;case 33:return new tX;case 51:return new t9;case 55:return new nr;case 13:return new ni;case 38:return new no;case 44:return new ns;case 40:return new nl;case 9:return new cp;case 49:return new AU;case 37:return new np;case 43:return new nv;case 27:return new ny;case 30:return new nw;case 3:return new n_;case 18:return new nx;case 29:return new nT;case 5:return new cb;case 50:return new nk;case 34:return new cm;case 36:return new nP;case 52:return new cd;case 11:return new nj;case 7:return new cv;case 39:return new nF;case 45:return new nY;case 16:return new nB;case 10:return new nU;case 48:return new n$;case 21:return new nz;case 23:return new gx((enU(),tui));case 8:return new nW;case 12:return new nV;case 4:return new nq;case 19:return new cE;case 17:return new n5;case 53:return new n6;case 6:return new rc;case 25:return new ms;case 46:return new rn;case 31:return new CV;case 14:return new rg;case 26:return new iB;case 20:return new rE;case 24:return new gx((enU(),tua));default:throw p7(new gL(eWt+(null!=this.f?this.f:""+this.g)))}};var e4B=enw(eG8,eWn,77,e1G,eAn,Nj);eTS(1540,1,eGB,nx),eUe.pf=function(e,t){eFq(Pp(e,37),t)},Y5(eG8,"InvertedPortProcessor",1540),eTS(1541,1,eGB,nT),eUe.pf=function(e,t){eIR(Pp(e,37),t)},Y5(eG8,"LabelAndNodeSizeProcessor",1541),eTS(1542,1,eU8,nM),eUe.Mb=function(e){return Pp(e,10).k==(eEn(),e8N)},Y5(eG8,"LabelAndNodeSizeProcessor/lambda$0$Type",1542),eTS(1543,1,eU8,nO),eUe.Mb=function(e){return Pp(e,10).k==(eEn(),e8C)},Y5(eG8,"LabelAndNodeSizeProcessor/lambda$1$Type",1543),eTS(1544,1,eUF,DC),eUe.td=function(e){_z(this.b,this.a,this.c,Pp(e,10))},eUe.a=!1,eUe.c=!1,Y5(eG8,"LabelAndNodeSizeProcessor/lambda$2$Type",1544),eTS(1545,1,eGB,cb),eUe.pf=function(e,t){eFu(Pp(e,37),t)},Y5(eG8,"LabelDummyInserter",1545),eTS(1546,1,e$q,nA),eUe.Lb=function(e){return xc(e_k(Pp(e,70),(eBy(),tab)))===xc((etT(),tp_))},eUe.Fb=function(e){return this===e},eUe.Mb=function(e){return xc(e_k(Pp(e,70),(eBy(),tab)))===xc((etT(),tp_))},Y5(eG8,"LabelDummyInserter/1",1546),eTS(1547,1,eGB,nk),eUe.pf=function(e,t){eRz(Pp(e,37),t)},Y5(eG8,"LabelDummyRemover",1547),eTS(1548,1,eU8,nL),eUe.Mb=function(e){return gN(LK(e_k(Pp(e,70),(eBy(),tap))))},Y5(eG8,"LabelDummyRemover/lambda$0$Type",1548),eTS(1359,1,eGB,cm),eUe.pf=function(e,t){ejC(this,Pp(e,37),t)},eUe.a=null,Y5(eG8,"LabelDummySwitcher",1359),eTS(286,1,{286:1},eIu),eUe.c=0,eUe.d=null,eUe.f=0,Y5(eG8,"LabelDummySwitcher/LabelDummyInfo",286),eTS(1360,1,{},nC),eUe.Kb=function(e){return erJ(),new R1(null,new Gq(Pp(e,29).a,16))},Y5(eG8,"LabelDummySwitcher/lambda$0$Type",1360),eTS(1361,1,eU8,nI),eUe.Mb=function(e){return erJ(),Pp(e,10).k==(eEn(),e8I)},Y5(eG8,"LabelDummySwitcher/lambda$1$Type",1361),eTS(1362,1,{},dX),eUe.Kb=function(e){return Co(this.a,Pp(e,10))},Y5(eG8,"LabelDummySwitcher/lambda$2$Type",1362),eTS(1363,1,eUF,dJ),eUe.td=function(e){BO(this.a,Pp(e,286))},Y5(eG8,"LabelDummySwitcher/lambda$3$Type",1363),eTS(1364,1,e$C,nD),eUe.ue=function(e,t){return FL(Pp(e,286),Pp(t,286))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y5(eG8,"LabelDummySwitcher/lambda$4$Type",1364),eTS(791,1,eGB,nN),eUe.pf=function(e,t){XT(Pp(e,37),t)},Y5(eG8,"LabelManagementProcessor",791),eTS(1549,1,eGB,nP),eUe.pf=function(e,t){eLr(Pp(e,37),t)},Y5(eG8,"LabelSideSelector",1549),eTS(1550,1,eU8,nR),eUe.Mb=function(e){return gN(LK(e_k(Pp(e,70),(eBy(),tap))))},Y5(eG8,"LabelSideSelector/lambda$0$Type",1550),eTS(1558,1,eGB,nj),eUe.pf=function(e,t){eN6(Pp(e,37),t)},Y5(eG8,"LayerConstraintPostprocessor",1558),eTS(1559,1,eGB,cv),eUe.pf=function(e,t){eMr(Pp(e,37),t)},Y5(eG8,"LayerConstraintPreprocessor",1559),eTS(360,22,{3:1,35:1,22:1,360:1},EZ);var e4U=enw(eG8,"LayerConstraintPreprocessor/HiddenNodeConnections",360,e1G,Vs,DF);eTS(1560,1,eGB,nF),eUe.pf=function(e,t){eRB(Pp(e,37),t)},Y5(eG8,"LayerSizeAndGraphHeightCalculator",1560),eTS(1561,1,eGB,nY),eUe.pf=function(e,t){eOw(Pp(e,37),t)},Y5(eG8,"LongEdgeJoiner",1561),eTS(1562,1,eGB,nB),eUe.pf=function(e,t){eRf(Pp(e,37),t)},Y5(eG8,"LongEdgeSplitter",1562),eTS(1563,1,eGB,nU),eUe.pf=function(e,t){ejN(this,Pp(e,37),t)},eUe.d=0,eUe.e=0,eUe.i=0,eUe.j=0,eUe.k=0,eUe.n=0,Y5(eG8,"NodePromotion",1563),eTS(1564,1,{},nH),eUe.Kb=function(e){return Pp(e,46),OQ(),!0},eUe.Fb=function(e){return this===e},Y5(eG8,"NodePromotion/lambda$0$Type",1564),eTS(1565,1,{},dq),eUe.Kb=function(e){return UM(this.a,Pp(e,46))},eUe.Fb=function(e){return this===e},eUe.a=0,Y5(eG8,"NodePromotion/lambda$1$Type",1565),eTS(1566,1,{},dZ),eUe.Kb=function(e){return UO(this.a,Pp(e,46))},eUe.Fb=function(e){return this===e},eUe.a=0,Y5(eG8,"NodePromotion/lambda$2$Type",1566),eTS(1567,1,eGB,n$),eUe.pf=function(e,t){eYN(Pp(e,37),t)},Y5(eG8,"NorthSouthPortPostprocessor",1567),eTS(1568,1,eGB,nz),eUe.pf=function(e,t){eYd(Pp(e,37),t)},Y5(eG8,"NorthSouthPortPreprocessor",1568),eTS(1569,1,e$C,nG),eUe.ue=function(e,t){return ea2(Pp(e,11),Pp(t,11))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y5(eG8,"NorthSouthPortPreprocessor/lambda$0$Type",1569),eTS(1570,1,eGB,nW),eUe.pf=function(e,t){eDx(Pp(e,37),t)},Y5(eG8,"PartitionMidprocessor",1570),eTS(1571,1,eU8,nK),eUe.Mb=function(e){return Ln(Pp(e,10),(eBy(),ton))},Y5(eG8,"PartitionMidprocessor/lambda$0$Type",1571),eTS(1572,1,eUF,dQ),eUe.td=function(e){H$(this.a,Pp(e,10))},Y5(eG8,"PartitionMidprocessor/lambda$1$Type",1572),eTS(1573,1,eGB,nV),eUe.pf=function(e,t){eO3(Pp(e,37),t)},Y5(eG8,"PartitionPostprocessor",1573),eTS(1574,1,eGB,nq),eUe.pf=function(e,t){exQ(Pp(e,37),t)},Y5(eG8,"PartitionPreprocessor",1574),eTS(1575,1,eU8,nZ),eUe.Mb=function(e){return Ln(Pp(e,10),(eBy(),ton))},Y5(eG8,"PartitionPreprocessor/lambda$0$Type",1575),eTS(1576,1,{},nX),eUe.Kb=function(e){return new R1(null,new YI(new Fa(OH(efc(Pp(e,10)).a.Kc(),new c))))},Y5(eG8,"PartitionPreprocessor/lambda$1$Type",1576),eTS(1577,1,eU8,nJ),eUe.Mb=function(e){return epe(Pp(e,17))},Y5(eG8,"PartitionPreprocessor/lambda$2$Type",1577),eTS(1578,1,eUF,nQ),eUe.td=function(e){eoL(Pp(e,17))},Y5(eG8,"PartitionPreprocessor/lambda$3$Type",1578),eTS(1579,1,eGB,cE),eUe.pf=function(e,t){eDe(Pp(e,37),t)},Y5(eG8,"PortListSorter",1579),eTS(1580,1,{},n1),eUe.Kb=function(e){return euv(),Pp(e,11).e},Y5(eG8,"PortListSorter/lambda$0$Type",1580),eTS(1581,1,{},n0),eUe.Kb=function(e){return euv(),Pp(e,11).g},Y5(eG8,"PortListSorter/lambda$1$Type",1581),eTS(1582,1,e$C,n2),eUe.ue=function(e,t){return qy(Pp(e,11),Pp(t,11))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y5(eG8,"PortListSorter/lambda$2$Type",1582),eTS(1583,1,e$C,n3),eUe.ue=function(e,t){return eg_(Pp(e,11),Pp(t,11))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y5(eG8,"PortListSorter/lambda$3$Type",1583),eTS(1584,1,e$C,n4),eUe.ue=function(e,t){return eDK(Pp(e,11),Pp(t,11))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y5(eG8,"PortListSorter/lambda$4$Type",1584),eTS(1585,1,eGB,n5),eUe.pf=function(e,t){eT3(Pp(e,37),t)},Y5(eG8,"PortSideProcessor",1585),eTS(1586,1,eGB,n6),eUe.pf=function(e,t){eCH(Pp(e,37),t)},Y5(eG8,"ReversedEdgeRestorer",1586),eTS(1591,1,eGB,ms),eUe.pf=function(e,t){emJ(this,Pp(e,37),t)},Y5(eG8,"SelfLoopPortRestorer",1591),eTS(1592,1,{},n9),eUe.Kb=function(e){return new R1(null,new Gq(Pp(e,29).a,16))},Y5(eG8,"SelfLoopPortRestorer/lambda$0$Type",1592),eTS(1593,1,eU8,n8),eUe.Mb=function(e){return Pp(e,10).k==(eEn(),e8N)},Y5(eG8,"SelfLoopPortRestorer/lambda$1$Type",1593),eTS(1594,1,eU8,n7),eUe.Mb=function(e){return Ln(Pp(e,10),(eBU(),tnk))},Y5(eG8,"SelfLoopPortRestorer/lambda$2$Type",1594),eTS(1595,1,{},re),eUe.Kb=function(e){return Pp(e_k(Pp(e,10),(eBU(),tnk)),403)},Y5(eG8,"SelfLoopPortRestorer/lambda$3$Type",1595),eTS(1596,1,eUF,d1),eUe.td=function(e){eE_(this.a,Pp(e,403))},Y5(eG8,"SelfLoopPortRestorer/lambda$4$Type",1596),eTS(794,1,eUF,rt),eUe.td=function(e){eEq(Pp(e,101))},Y5(eG8,"SelfLoopPortRestorer/lambda$5$Type",794),eTS(1597,1,eGB,rn),eUe.pf=function(e,t){ep1(Pp(e,37),t)},Y5(eG8,"SelfLoopPostProcessor",1597),eTS(1598,1,{},rr),eUe.Kb=function(e){return new R1(null,new Gq(Pp(e,29).a,16))},Y5(eG8,"SelfLoopPostProcessor/lambda$0$Type",1598),eTS(1599,1,eU8,ri),eUe.Mb=function(e){return Pp(e,10).k==(eEn(),e8N)},Y5(eG8,"SelfLoopPostProcessor/lambda$1$Type",1599),eTS(1600,1,eU8,ra),eUe.Mb=function(e){return Ln(Pp(e,10),(eBU(),tnk))},Y5(eG8,"SelfLoopPostProcessor/lambda$2$Type",1600),eTS(1601,1,eUF,ro),eUe.td=function(e){eyi(Pp(e,10))},Y5(eG8,"SelfLoopPostProcessor/lambda$3$Type",1601),eTS(1602,1,{},rs),eUe.Kb=function(e){return new R1(null,new Gq(Pp(e,101).f,1))},Y5(eG8,"SelfLoopPostProcessor/lambda$4$Type",1602),eTS(1603,1,eUF,d0),eUe.td=function(e){Vf(this.a,Pp(e,409))},Y5(eG8,"SelfLoopPostProcessor/lambda$5$Type",1603),eTS(1604,1,eU8,ru),eUe.Mb=function(e){return!!Pp(e,101).i},Y5(eG8,"SelfLoopPostProcessor/lambda$6$Type",1604),eTS(1605,1,eUF,d2),eUe.td=function(e){gb(this.a,Pp(e,101))},Y5(eG8,"SelfLoopPostProcessor/lambda$7$Type",1605),eTS(1587,1,eGB,rc),eUe.pf=function(e,t){eMJ(Pp(e,37),t)},Y5(eG8,"SelfLoopPreProcessor",1587),eTS(1588,1,{},rl),eUe.Kb=function(e){return new R1(null,new Gq(Pp(e,101).f,1))},Y5(eG8,"SelfLoopPreProcessor/lambda$0$Type",1588),eTS(1589,1,{},rf),eUe.Kb=function(e){return Pp(e,409).a},Y5(eG8,"SelfLoopPreProcessor/lambda$1$Type",1589),eTS(1590,1,eUF,rd),eUe.td=function(e){MH(Pp(e,17))},Y5(eG8,"SelfLoopPreProcessor/lambda$2$Type",1590),eTS(1606,1,eGB,CV),eUe.pf=function(e,t){eEi(this,Pp(e,37),t)},Y5(eG8,"SelfLoopRouter",1606),eTS(1607,1,{},rh),eUe.Kb=function(e){return new R1(null,new Gq(Pp(e,29).a,16))},Y5(eG8,"SelfLoopRouter/lambda$0$Type",1607),eTS(1608,1,eU8,rp),eUe.Mb=function(e){return Pp(e,10).k==(eEn(),e8N)},Y5(eG8,"SelfLoopRouter/lambda$1$Type",1608),eTS(1609,1,eU8,rb),eUe.Mb=function(e){return Ln(Pp(e,10),(eBU(),tnk))},Y5(eG8,"SelfLoopRouter/lambda$2$Type",1609),eTS(1610,1,{},rm),eUe.Kb=function(e){return Pp(e_k(Pp(e,10),(eBU(),tnk)),403)},Y5(eG8,"SelfLoopRouter/lambda$3$Type",1610),eTS(1611,1,eUF,EX),eUe.td=function(e){Hs(this.a,this.b,Pp(e,403))},Y5(eG8,"SelfLoopRouter/lambda$4$Type",1611),eTS(1612,1,eGB,rg),eUe.pf=function(e,t){eAz(Pp(e,37),t)},Y5(eG8,"SemiInteractiveCrossMinProcessor",1612),eTS(1613,1,eU8,rv),eUe.Mb=function(e){return Pp(e,10).k==(eEn(),e8N)},Y5(eG8,"SemiInteractiveCrossMinProcessor/lambda$0$Type",1613),eTS(1614,1,eU8,ry),eUe.Mb=function(e){return R9(Pp(e,10))._b((eBy(),tog))},Y5(eG8,"SemiInteractiveCrossMinProcessor/lambda$1$Type",1614),eTS(1615,1,e$C,rw),eUe.ue=function(e,t){return erF(Pp(e,10),Pp(t,10))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y5(eG8,"SemiInteractiveCrossMinProcessor/lambda$2$Type",1615),eTS(1616,1,{},r_),eUe.Ce=function(e,t){return H4(Pp(e,10),Pp(t,10))},Y5(eG8,"SemiInteractiveCrossMinProcessor/lambda$3$Type",1616),eTS(1618,1,eGB,rE),eUe.pf=function(e,t){eN8(Pp(e,37),t)},Y5(eG8,"SortByInputModelProcessor",1618),eTS(1619,1,eU8,rS),eUe.Mb=function(e){return 0!=Pp(e,11).g.c.length},Y5(eG8,"SortByInputModelProcessor/lambda$0$Type",1619),eTS(1620,1,eUF,d3),eUe.td=function(e){eE6(this.a,Pp(e,11))},Y5(eG8,"SortByInputModelProcessor/lambda$1$Type",1620),eTS(1693,803,{},erY),eUe.Me=function(e){var t,n,r,i;switch(this.c=e,this.a.g){case 2:t=new p0,_r(UJ(new R1(null,new Gq(this.c.a.b,16)),new rj),new E2(this,t)),eS2(this,new rT),ety(t,new rM),t.c=Je(e1R,eUp,1,0,5,1),_r(UJ(new R1(null,new Gq(this.c.a.b,16)),new rO),new d5(t)),eS2(this,new rA),ety(t,new rL),t.c=Je(e1R,eUp,1,0,5,1),n=M_(eim(U1(new R1(null,new Gq(this.c.a.b,16)),new d6(this))),new rC),_r(new R1(null,new Gq(this.c.a.a,16)),new EQ(n,t)),eS2(this,new rD),ety(t,new rk),t.c=Je(e1R,eUp,1,0,5,1);break;case 3:r=new p0,eS2(this,new rx),i=M_(eim(U1(new R1(null,new Gq(this.c.a.b,16)),new d4(this))),new rI),_r(UJ(new R1(null,new Gq(this.c.a.b,16)),new rN),new E0(i,r)),eS2(this,new rP),ety(r,new rR),r.c=Je(e1R,eUp,1,0,5,1);break;default:throw p7(new bI)}},eUe.b=0,Y5(eWs,"EdgeAwareScanlineConstraintCalculation",1693),eTS(1694,1,e$q,rx),eUe.Lb=function(e){return M4(Pp(e,57).g,145)},eUe.Fb=function(e){return this===e},eUe.Mb=function(e){return M4(Pp(e,57).g,145)},Y5(eWs,"EdgeAwareScanlineConstraintCalculation/lambda$0$Type",1694),eTS(1695,1,{},d4),eUe.Fe=function(e){return eky(this.a,Pp(e,57))},Y5(eWs,"EdgeAwareScanlineConstraintCalculation/lambda$1$Type",1695),eTS(1703,1,eU7,EJ),eUe.Vd=function(){ev_(this.a,this.b,-1)},eUe.b=0,Y5(eWs,"EdgeAwareScanlineConstraintCalculation/lambda$10$Type",1703),eTS(1705,1,e$q,rT),eUe.Lb=function(e){return M4(Pp(e,57).g,145)},eUe.Fb=function(e){return this===e},eUe.Mb=function(e){return M4(Pp(e,57).g,145)},Y5(eWs,"EdgeAwareScanlineConstraintCalculation/lambda$11$Type",1705),eTS(1706,1,eUF,rM),eUe.td=function(e){Pp(e,365).Vd()},Y5(eWs,"EdgeAwareScanlineConstraintCalculation/lambda$12$Type",1706),eTS(1707,1,eU8,rO),eUe.Mb=function(e){return M4(Pp(e,57).g,10)},Y5(eWs,"EdgeAwareScanlineConstraintCalculation/lambda$13$Type",1707),eTS(1709,1,eUF,d5),eUe.td=function(e){efw(this.a,Pp(e,57))},Y5(eWs,"EdgeAwareScanlineConstraintCalculation/lambda$14$Type",1709),eTS(1708,1,eU7,E9),eUe.Vd=function(){ev_(this.b,this.a,-1)},eUe.a=0,Y5(eWs,"EdgeAwareScanlineConstraintCalculation/lambda$15$Type",1708),eTS(1710,1,e$q,rA),eUe.Lb=function(e){return M4(Pp(e,57).g,10)},eUe.Fb=function(e){return this===e},eUe.Mb=function(e){return M4(Pp(e,57).g,10)},Y5(eWs,"EdgeAwareScanlineConstraintCalculation/lambda$16$Type",1710),eTS(1711,1,eUF,rL),eUe.td=function(e){Pp(e,365).Vd()},Y5(eWs,"EdgeAwareScanlineConstraintCalculation/lambda$17$Type",1711),eTS(1712,1,{},d6),eUe.Fe=function(e){return ekw(this.a,Pp(e,57))},Y5(eWs,"EdgeAwareScanlineConstraintCalculation/lambda$18$Type",1712),eTS(1713,1,{},rC),eUe.De=function(){return 0},Y5(eWs,"EdgeAwareScanlineConstraintCalculation/lambda$19$Type",1713),eTS(1696,1,{},rI),eUe.De=function(){return 0},Y5(eWs,"EdgeAwareScanlineConstraintCalculation/lambda$2$Type",1696),eTS(1715,1,eUF,EQ),eUe.td=function(e){jq(this.a,this.b,Pp(e,307))},eUe.a=0,Y5(eWs,"EdgeAwareScanlineConstraintCalculation/lambda$20$Type",1715),eTS(1714,1,eU7,E1),eUe.Vd=function(){eT4(this.a,this.b,-1)},eUe.b=0,Y5(eWs,"EdgeAwareScanlineConstraintCalculation/lambda$21$Type",1714),eTS(1716,1,e$q,rD),eUe.Lb=function(e){return Pp(e,57),!0},eUe.Fb=function(e){return this===e},eUe.Mb=function(e){return Pp(e,57),!0},Y5(eWs,"EdgeAwareScanlineConstraintCalculation/lambda$22$Type",1716),eTS(1717,1,eUF,rk),eUe.td=function(e){Pp(e,365).Vd()},Y5(eWs,"EdgeAwareScanlineConstraintCalculation/lambda$23$Type",1717),eTS(1697,1,eU8,rN),eUe.Mb=function(e){return M4(Pp(e,57).g,10)},Y5(eWs,"EdgeAwareScanlineConstraintCalculation/lambda$3$Type",1697),eTS(1699,1,eUF,E0),eUe.td=function(e){jZ(this.a,this.b,Pp(e,57))},eUe.a=0,Y5(eWs,"EdgeAwareScanlineConstraintCalculation/lambda$4$Type",1699),eTS(1698,1,eU7,E8),eUe.Vd=function(){ev_(this.b,this.a,-1)},eUe.a=0,Y5(eWs,"EdgeAwareScanlineConstraintCalculation/lambda$5$Type",1698),eTS(1700,1,e$q,rP),eUe.Lb=function(e){return Pp(e,57),!0},eUe.Fb=function(e){return this===e},eUe.Mb=function(e){return Pp(e,57),!0},Y5(eWs,"EdgeAwareScanlineConstraintCalculation/lambda$6$Type",1700),eTS(1701,1,eUF,rR),eUe.td=function(e){Pp(e,365).Vd()},Y5(eWs,"EdgeAwareScanlineConstraintCalculation/lambda$7$Type",1701),eTS(1702,1,eU8,rj),eUe.Mb=function(e){return M4(Pp(e,57).g,145)},Y5(eWs,"EdgeAwareScanlineConstraintCalculation/lambda$8$Type",1702),eTS(1704,1,eUF,E2),eUe.td=function(e){eth(this.a,this.b,Pp(e,57))},Y5(eWs,"EdgeAwareScanlineConstraintCalculation/lambda$9$Type",1704),eTS(1521,1,eGB,AU),eUe.pf=function(e,t){eRE(this,Pp(e,37),t)},Y5(eWs,"HorizontalGraphCompactor",1521),eTS(1522,1,{},d9),eUe.Oe=function(e,t){var n,r,i;return Q8(e,t)?0:(n=KT(e),r=KT(t),n&&n.k==(eEn(),e8C)||r&&r.k==(eEn(),e8C))?0:(i=Pp(e_k(this.a.a,(eBU(),tnx)),304),Ax(i,n?n.k:(eEn(),e8D),r?r.k:(eEn(),e8D)))},eUe.Pe=function(e,t){var n,r,i;return Q8(e,t)?1:(n=KT(e),r=KT(t),i=Pp(e_k(this.a.a,(eBU(),tnx)),304),AT(i,n?n.k:(eEn(),e8D),r?r.k:(eEn(),e8D)))},Y5(eWs,"HorizontalGraphCompactor/1",1522),eTS(1523,1,{},rF),eUe.Ne=function(e,t){return _L(),0==e.a.i},Y5(eWs,"HorizontalGraphCompactor/lambda$0$Type",1523),eTS(1524,1,{},d8),eUe.Ne=function(e,t){return HZ(this.a,e,t)},Y5(eWs,"HorizontalGraphCompactor/lambda$1$Type",1524),eTS(1664,1,{},QF),Y5(eWs,"LGraphToCGraphTransformer",1664),eTS(1672,1,eU8,rY),eUe.Mb=function(e){return null!=e},Y5(eWs,"LGraphToCGraphTransformer/0methodref$nonNull$Type",1672),eTS(1665,1,{},rB),eUe.Kb=function(e){return Dj(),efF(e_k(Pp(Pp(e,57).g,10),(eBU(),tnc)))},Y5(eWs,"LGraphToCGraphTransformer/lambda$0$Type",1665),eTS(1666,1,{},rU),eUe.Kb=function(e){return Dj(),ecR(Pp(Pp(e,57).g,145))},Y5(eWs,"LGraphToCGraphTransformer/lambda$1$Type",1666),eTS(1675,1,eU8,rH),eUe.Mb=function(e){return Dj(),M4(Pp(e,57).g,10)},Y5(eWs,"LGraphToCGraphTransformer/lambda$10$Type",1675),eTS(1676,1,eUF,r$),eUe.td=function(e){Hq(Pp(e,57))},Y5(eWs,"LGraphToCGraphTransformer/lambda$11$Type",1676),eTS(1677,1,eU8,rz),eUe.Mb=function(e){return Dj(),M4(Pp(e,57).g,145)},Y5(eWs,"LGraphToCGraphTransformer/lambda$12$Type",1677),eTS(1681,1,eUF,rG),eUe.td=function(e){ecP(Pp(e,57))},Y5(eWs,"LGraphToCGraphTransformer/lambda$13$Type",1681),eTS(1678,1,eUF,d7),eUe.td=function(e){Tm(this.a,Pp(e,8))},eUe.a=0,Y5(eWs,"LGraphToCGraphTransformer/lambda$14$Type",1678),eTS(1679,1,eUF,he),eUe.td=function(e){Tv(this.a,Pp(e,110))},eUe.a=0,Y5(eWs,"LGraphToCGraphTransformer/lambda$15$Type",1679),eTS(1680,1,eUF,ht),eUe.td=function(e){Tg(this.a,Pp(e,8))},eUe.a=0,Y5(eWs,"LGraphToCGraphTransformer/lambda$16$Type",1680),eTS(1682,1,{},rW),eUe.Kb=function(e){return Dj(),new R1(null,new YI(new Fa(OH(efc(Pp(e,10)).a.Kc(),new c))))},Y5(eWs,"LGraphToCGraphTransformer/lambda$17$Type",1682),eTS(1683,1,eU8,rK),eUe.Mb=function(e){return Dj(),q8(Pp(e,17))},Y5(eWs,"LGraphToCGraphTransformer/lambda$18$Type",1683),eTS(1684,1,eUF,hn),eUe.td=function(e){eex(this.a,Pp(e,17))},Y5(eWs,"LGraphToCGraphTransformer/lambda$19$Type",1684),eTS(1668,1,eUF,hr),eUe.td=function(e){Wj(this.a,Pp(e,145))},Y5(eWs,"LGraphToCGraphTransformer/lambda$2$Type",1668),eTS(1685,1,{},rV),eUe.Kb=function(e){return Dj(),new R1(null,new Gq(Pp(e,29).a,16))},Y5(eWs,"LGraphToCGraphTransformer/lambda$20$Type",1685),eTS(1686,1,{},rq),eUe.Kb=function(e){return Dj(),new R1(null,new YI(new Fa(OH(efc(Pp(e,10)).a.Kc(),new c))))},Y5(eWs,"LGraphToCGraphTransformer/lambda$21$Type",1686),eTS(1687,1,{},rZ),eUe.Kb=function(e){return Dj(),Pp(e_k(Pp(e,17),(eBU(),tnO)),15)},Y5(eWs,"LGraphToCGraphTransformer/lambda$22$Type",1687),eTS(1688,1,eU8,rX),eUe.Mb=function(e){return AN(Pp(e,15))},Y5(eWs,"LGraphToCGraphTransformer/lambda$23$Type",1688),eTS(1689,1,eUF,hi),eUe.td=function(e){ekn(this.a,Pp(e,15))},Y5(eWs,"LGraphToCGraphTransformer/lambda$24$Type",1689),eTS(1667,1,eUF,E3),eUe.td=function(e){VK(this.a,this.b,Pp(e,145))},Y5(eWs,"LGraphToCGraphTransformer/lambda$3$Type",1667),eTS(1669,1,{},rJ),eUe.Kb=function(e){return Dj(),new R1(null,new Gq(Pp(e,29).a,16))},Y5(eWs,"LGraphToCGraphTransformer/lambda$4$Type",1669),eTS(1670,1,{},rQ),eUe.Kb=function(e){return Dj(),new R1(null,new YI(new Fa(OH(efc(Pp(e,10)).a.Kc(),new c))))},Y5(eWs,"LGraphToCGraphTransformer/lambda$5$Type",1670),eTS(1671,1,{},r1),eUe.Kb=function(e){return Dj(),Pp(e_k(Pp(e,17),(eBU(),tnO)),15)},Y5(eWs,"LGraphToCGraphTransformer/lambda$6$Type",1671),eTS(1673,1,eUF,ha),eUe.td=function(e){exr(this.a,Pp(e,15))},Y5(eWs,"LGraphToCGraphTransformer/lambda$8$Type",1673),eTS(1674,1,eUF,E4),eUe.td=function(e){MN(this.a,this.b,Pp(e,145))},Y5(eWs,"LGraphToCGraphTransformer/lambda$9$Type",1674),eTS(1663,1,{},r0),eUe.Le=function(e){var t,n,r,i,a;for(this.a=e,this.d=new bX,this.c=Je(e24,eUp,121,this.a.a.a.c.length,0,1),this.b=0,n=new fz(this.a.a.a);n.a=b&&(P_(a,ell(l)),v=eB4.Math.max(v,y[l-1]-f),s+=p,m+=y[l-1]-m,f=y[l-1],p=u[l]),p=eB4.Math.max(p,u[l]),++l;s+=p}(h=eB4.Math.min(1/v,1/t.b/s))>r&&(r=h,n=a)}return n},eUe.Wf=function(){return!1},Y5(eWb,"MSDCutIndexHeuristic",802),eTS(1617,1,eGB,iB),eUe.pf=function(e,t){eNZ(Pp(e,37),t)},Y5(eWb,"SingleEdgeGraphWrapper",1617),eTS(227,22,{3:1,35:1,22:1,227:1},Ss);var e4K=enw(eWm,"CenterEdgeLabelPlacementStrategy",227,e1G,Jv,DU);eTS(422,22,{3:1,35:1,22:1,422:1},Su);var e4V=enw(eWm,"ConstraintCalculationStrategy",422,e1G,$G,DH);eTS(314,22,{3:1,35:1,22:1,314:1,246:1,234:1},Sc),eUe.Kf=function(){return ekF(this)},eUe.Xf=function(){return ekF(this)};var e4q=enw(eWm,"CrossingMinimizationStrategy",314,e1G,G5,D$);eTS(337,22,{3:1,35:1,22:1,337:1},Sl);var e4Z=enw(eWm,"CuttingStrategy",337,e1G,G6,DW);eTS(335,22,{3:1,35:1,22:1,335:1,246:1,234:1},Sf),eUe.Kf=function(){return eTW(this)},eUe.Xf=function(){return eTW(this)};var e4X=enw(eWm,"CycleBreakingStrategy",335,e1G,Zv,DK);eTS(419,22,{3:1,35:1,22:1,419:1},Sd);var e4J=enw(eWm,"DirectionCongruency",419,e1G,$z,DV);eTS(450,22,{3:1,35:1,22:1,450:1},Sh);var e4Q=enw(eWm,"EdgeConstraint",450,e1G,G9,Dq);eTS(276,22,{3:1,35:1,22:1,276:1},Sp);var e41=enw(eWm,"EdgeLabelSideSelection",276,e1G,JE,DZ);eTS(479,22,{3:1,35:1,22:1,479:1},Sb);var e40=enw(eWm,"EdgeStraighteningStrategy",479,e1G,$$,DX);eTS(274,22,{3:1,35:1,22:1,274:1},Sm);var e42=enw(eWm,"FixedAlignment",274,e1G,Jw,DJ);eTS(275,22,{3:1,35:1,22:1,275:1},Sg);var e43=enw(eWm,"GraphCompactionStrategy",275,e1G,Jy,DQ);eTS(256,22,{3:1,35:1,22:1,256:1},Sv);var e44=enw(eWm,"GraphProperties",256,e1G,eiT,D1);eTS(292,22,{3:1,35:1,22:1,292:1},Sy);var e45=enw(eWm,"GreedySwitchType",292,e1G,We,D0);eTS(303,22,{3:1,35:1,22:1,303:1},Sw);var e46=enw(eWm,"InLayerConstraint",303,e1G,G7,D2);eTS(420,22,{3:1,35:1,22:1,420:1},S_);var e49=enw(eWm,"InteractiveReferencePoint",420,e1G,$W,D3);eTS(163,22,{3:1,35:1,22:1,163:1},ST);var e48=enw(eWm,"LayerConstraint",163,e1G,Z_,D4);eTS(848,1,e$2,cT),eUe.Qe=function(e){efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eWE),""),"Direction Congruency"),"Specifies how drawings of the same graph with different layout directions compare to each other: either a natural reading direction is preserved or the drawings are rotated versions of each other."),trl),(eSd(),tdv)),e4J),el9((epx(),tdh))))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eWS),""),"Feedback Edges"),"Whether feedback edges should be highlighted by routing around the nodes."),(OQ(),!1)),tdm),e11),el9(tdh)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eWk),""),"Interactive Reference Point"),"Determines which point of a node is considered by interactive layout phases."),trN),tdv),e49),el9(tdh)))),K_(e,eWk,eWI,trR),K_(e,eWk,eWH,trP),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eWx),""),"Merge Edges"),"Edges that have no ports are merged so they touch the connected nodes at the same points. When this option is disabled, one port is created for each edge directly connected to a node. When it is enabled, all such incoming edges share an input port, and all outgoing edges share an output port."),!1),tdm),e11),el9(tdh)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eWT),""),"Merge Hierarchy-Crossing Edges"),"If hierarchical layout is active, hierarchy-crossing edges use as few hierarchical ports as possible. They are broken by the algorithm, with hierarchical ports inserted as required. Usually, one such port is created for each edge at each hierarchy crossing point. With this option set to true, we try to create as few hierarchical ports as possible in the process. In particular, all edges that form a hyperedge can share a port."),!0),tdm),e11),el9(tdh)))),efO(e,new eE8(v8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eWM),""),"Allow Non-Flow Ports To Switch Sides"),"Specifies whether non-flow ports may switch sides if their node's port constraints are either FIXED_SIDE or FIXED_ORDER. A non-flow port is a port on a side that is not part of the currently configured layout flow. For instance, given a left-to-right layout direction, north and south ports would be considered non-flow ports. Further note that the underlying criterium whether to switch sides or not solely relies on the minimization of edge crossings. Hence, edge length and other aesthetics criteria are not addressed."),!1),tdm),e11),el9(tdp)),eow(vx(e17,1),eUP,2,6,["org.eclipse.elk.layered.northOrSouthPort"])))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eWO),""),"Port Sorting Strategy"),"Only relevant for nodes with FIXED_SIDE port constraints. Determines the way a node's ports are distributed on the sides of a node if their order is not prescribed. The option is set on parent nodes."),tic),tdv),e5a),el9(tdh)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eWA),""),"Thoroughness"),"How much effort should be spent to produce a nice layout."),ell(7)),tdw),e15),el9(tdh)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eWL),""),"Add Unnecessary Bendpoints"),"Adds bend points even if an edge does not change direction. If true, each long edge dummy will contribute a bend point to its edges and hierarchy-crossing edges will always get a bend point where they cross hierarchy boundaries. By default, bend points are only added where an edge changes direction."),!1),tdm),e11),el9(tdh)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eWC),""),"Generate Position and Layer IDs"),"If enabled position id and layer id are generated, which are usually only used internally when setting the interactiveLayout option. This option should be specified on the root node."),!1),tdm),e11),el9(tdh)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eWI),"cycleBreaking"),"Cycle Breaking Strategy"),"Strategy for cycle breaking. Cycle breaking looks for cycles in the graph and determines which edges to reverse to break the cycles. Reversed edges will end up pointing to the opposite direction of regular edges (that is, reversed edges will point left if edges usually point right)."),tru),tdv),e4X),el9(tdh)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eWD),eKC),"Node Layering Strategy"),"Strategy for node layering."),trX),tdv),e47),el9(tdh)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eWN),eKC),"Layer Constraint"),"Determines a constraint on the placement of the node regarding the layering."),trU),tdv),e48),el9(tdd)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eWP),eKC),"Layer Choice Constraint"),"Allows to set a constraint regarding the layer placement of a node. Let i be the value of teh constraint. Assumed the drawing has n layers and i < n. If set to i, it expresses that the node should be placed in i-th layer. Should i>=n be true then the node is placed in the last layer of the drawing. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine."),ell(-1)),tdw),e15),el9(tdd)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eWR),eKC),"Layer ID"),"Layer identifier that was calculated by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set."),ell(-1)),tdw),e15),el9(tdd)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eWj),eKI),"Upper Bound On Width [MinWidth Layerer]"),"Defines a loose upper bound on the width of the MinWidth layerer. If set to '-1' multiple values are tested and the best result is selected."),ell(4)),tdw),e15),el9(tdh)))),K_(e,eWj,eWD,trz),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eWF),eKI),"Upper Layer Estimation Scaling Factor [MinWidth Layerer]"),"Multiplied with Upper Bound On Width for defining an upper bound on the width of layers which haven't been determined yet, but whose maximum width had been (roughly) estimated by the MinWidth algorithm. Compensates for too high estimations. If set to '-1' multiple values are tested and the best result is selected."),ell(2)),tdw),e15),el9(tdh)))),K_(e,eWF,eWD,trW),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eWY),eKD),"Node Promotion Strategy"),"Reduces number of dummy nodes after layering phase (if possible)."),trq),tdv),e5r),el9(tdh)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eWB),eKD),"Max Node Promotion Iterations"),"Limits the number of iterations for node promotion."),ell(0)),tdw),e15),el9(tdh)))),K_(e,eWB,eWY,null),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eWU),"layering.coffmanGraham"),"Layer Bound"),"The maximum number of nodes allowed per layer."),ell(eUu)),tdw),e15),el9(tdh)))),K_(e,eWU,eWD,trF),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eWH),eKN),"Crossing Minimization Strategy"),"Strategy for crossing minimization."),tro),tdv),e4q),el9(tdh)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eW$),eKN),"Force Node Model Order"),"The node order given by the model does not change to produce a better layout. E.g. if node A is before node B in the model this is not changed during crossing minimization. This assumes that the node model order is already respected before crossing minimization. This can be achieved by setting considerModelOrder.strategy to NODES_AND_EDGES."),!1),tdm),e11),el9(tdh)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eWz),eKN),"Hierarchical Sweepiness"),"How likely it is to use cross-hierarchy (1) vs bottom-up (-1)."),.1),tdg),e13),el9(tdh)))),K_(e,eWz,eKP,tre),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eWG),eKN),"Semi-Interactive Crossing Minimization"),"Preserves the order of nodes within a layer but still minimizes crossings between edges connecting long edge dummies. Derives the desired order from positions specified by the 'org.eclipse.elk.position' layout option. Requires a crossing minimization strategy that is able to process 'in-layer' constraints."),!1),tdm),e11),el9(tdh)))),K_(e,eWG,eWH,tri),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eWW),eKN),"Position Choice Constraint"),"Allows to set a constraint regarding the position placement of a node in a layer. Assumed the layer in which the node placed includes n other nodes and i < n. If set to i, it expresses that the node should be placed at the i-th position. Should i>=n be true then the node is placed at the last position in the layer. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine."),ell(-1)),tdw),e15),el9(tdd)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eWK),eKN),"Position ID"),"Position within a layer that was determined by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set."),ell(-1)),tdw),e15),el9(tdd)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eWV),eKR),"Greedy Switch Activation Threshold"),"By default it is decided automatically if the greedy switch is activated or not. The decision is based on whether the size of the input graph (without dummy nodes) is smaller than the value of this option. A '0' enforces the activation."),ell(40)),tdw),e15),el9(tdh)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eWq),eKR),"Greedy Switch Crossing Minimization"),"Greedy Switch strategy for crossing minimization. The greedy switch heuristic is executed after the regular crossing minimization as a post-processor. Note that if 'hierarchyHandling' is set to 'INCLUDE_CHILDREN', the 'greedySwitchHierarchical.type' option must be used."),tn9),tdv),e45),el9(tdh)))),K_(e,eWq,eWH,tn8),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eWZ),"crossingMinimization.greedySwitchHierarchical"),"Greedy Switch Crossing Minimization (hierarchical)"),"Activates the greedy switch heuristic in case hierarchical layout is used. The differences to the non-hierarchical case (see 'greedySwitch.type') are: 1) greedy switch is inactive by default, 3) only the option value set on the node at which hierarchical layout starts is relevant, and 2) if it's activated by the user, it properly addresses hierarchy-crossing edges."),tn3),tdv),e45),el9(tdh)))),K_(e,eWZ,eWH,tn4),K_(e,eWZ,eKP,tn5),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eWX),eKj),"Node Placement Strategy"),"Strategy for node placement."),tis),tdv),e5n),el9(tdh)))),efO(e,new eE8(yt(ye(yn(v4(v7(v6(v9(new oN,eWJ),eKj),"Favor Straight Edges Over Balancing"),"Favor straight edges over a balanced node placement. The default behavior is determined automatically based on the used 'edgeRouting'. For an orthogonal style it is set to true, for all other styles to false."),tdm),e11),el9(tdh)))),K_(e,eWJ,eWX,tr9),K_(e,eWJ,eWX,tr8),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eWQ),eKF),"BK Edge Straightening"),"Specifies whether the Brandes Koepf node placer tries to increase the number of straight edges at the expense of diagram size. There is a subtle difference to the 'favorStraightEdges' option, which decides whether a balanced placement of the nodes is desired, or not. In bk terms this means combining the four alignments into a single balanced one, or not. This option on the other hand tries to straighten additional edges during the creation of each of the four alignments."),tr0),tdv),e40),el9(tdh)))),K_(e,eWQ,eWX,tr2),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eW1),eKF),"BK Fixed Alignment"),"Tells the BK node placer to use a certain alignment (out of its four) instead of the one producing the smallest height, or the combination of all four."),tr4),tdv),e42),el9(tdh)))),K_(e,eW1,eWX,tr5),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eW0),"nodePlacement.linearSegments"),"Linear Segments Deflection Dampening"),"Dampens the movement of nodes to keep the diagram from getting too large."),.3),tdg),e13),el9(tdh)))),K_(e,eW0,eWX,tie),efO(e,new eE8(yt(ye(yn(v4(v7(v6(v9(new oN,eW2),"nodePlacement.networkSimplex"),"Node Flexibility"),"Aims at shorter and straighter edges. Two configurations are possible: (a) allow ports to move freely on the side they are assigned to (the order is always defined beforehand), (b) additionally allow to enlarge a node wherever it helps. If this option is not configured for a node, the 'nodeFlexibility.default' value is used, which is specified for the node's parent."),tdv),e5t),el9(tdd)))),K_(e,eW2,eWX,tia),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eW3),"nodePlacement.networkSimplex.nodeFlexibility"),"Node Flexibility Default"),"Default value of the 'nodeFlexibility' option for the children of a hierarchical node."),tir),tdv),e5t),el9(tdh)))),K_(e,eW3,eWX,tii),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eW4),eKY),"Self-Loop Distribution"),"Alter the distribution of the loops around the node. It only takes effect for PortConstraints.FREE."),trv),tdv),e5s),el9(tdd)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eW5),eKY),"Self-Loop Ordering"),"Alter the ordering of the loops they can either be stacked or sequenced. It only takes effect for PortConstraints.FREE."),tr_),tdv),e5u),el9(tdd)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eW6),"edgeRouting.splines"),"Spline Routing Mode"),"Specifies the way control points are assembled for each individual edge. CONSERVATIVE ensures that edges are properly routed around the nodes but feels rather orthogonal at times. SLOPPY uses fewer control points to obtain curvier edge routes but may result in edges overlapping nodes."),trS),tdv),e5c),el9(tdh)))),K_(e,eW6,eKB,trk),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eW9),"edgeRouting.splines.sloppy"),"Sloppy Spline Layer Spacing Factor"),"Spacing factor for routing area between layers when using sloppy spline routing."),.2),tdg),e13),el9(tdh)))),K_(e,eW9,eKB,trT),K_(e,eW9,eW6,trM),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eW8),"edgeRouting.polyline"),"Sloped Edge Zone Width"),"Width of the strip to the left and to the right of each layer where the polyline edge router is allowed to refrain from ensuring that edges are routed horizontally. This prevents awkward bend points for nodes that extent almost to the edge of their layer."),2),tdg),e13),el9(tdh)))),K_(e,eW8,eKB,trm),efO(e,new eE8(yt(ye(yn(v4(v7(v6(v9(new oN,eW7),eKU),"Spacing Base Value"),"An optional base value for all other layout options of the 'spacing' group. It can be used to conveniently alter the overall 'spaciousness' of the drawing. Whenever an explicit value is set for the other layout options, this base value will have no effect. The base value is not inherited, i.e. it must be set for each hierarchical node."),tdg),e13),el9(tdh)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eKe),eKU),"Edge Node Between Layers Spacing"),"The spacing to be preserved between nodes and edges that are routed next to the node's layer. For the spacing between nodes and edges that cross the node's layer 'spacing.edgeNode' is used."),10),tdg),e13),el9(tdh)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eKt),eKU),"Edge Edge Between Layer Spacing"),"Spacing to be preserved between pairs of edges that are routed between the same pair of layers. Note that 'spacing.edgeEdge' is used for the spacing between pairs of edges crossing the same layer."),10),tdg),e13),el9(tdh)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eKn),eKU),"Node Node Between Layers Spacing"),"The spacing to be preserved between any pair of nodes of two adjacent layers. Note that 'spacing.nodeNode' is used for the spacing between nodes within the layer itself."),20),tdg),e13),el9(tdh)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eKr),eKH),"Direction Priority"),"Defines how important it is to have a certain edge point into the direction of the overall layout. This option is evaluated during the cycle breaking phase."),ell(0)),tdw),e15),el9(tdl)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eKi),eKH),"Shortness Priority"),"Defines how important it is to keep an edge as short as possible. This option is evaluated during the layering phase."),ell(0)),tdw),e15),el9(tdl)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eKa),eKH),"Straightness Priority"),"Defines how important it is to keep an edge straight, i.e. aligned with one of the two axes. This option is evaluated during node placement."),ell(0)),tdw),e15),el9(tdl)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eKo),eK$),ezI),"Tries to further compact components (disconnected sub-graphs)."),!1),tdm),e11),el9(tdh)))),K_(e,eKo,eGs,!0),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eKs),eKz),"Post Compaction Strategy"),eKG),tnz),tdv),e43),el9(tdh)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eKu),eKz),"Post Compaction Constraint Calculation"),eKG),tnH),tdv),e4V),el9(tdh)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eKc),eKW),"High Degree Node Treatment"),"Makes room around high degree nodes to place leafs and trees."),!1),tdm),e11),el9(tdh)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eKl),eKW),"High Degree Node Threshold"),"Whether a node is considered to have a high degree."),ell(16)),tdw),e15),el9(tdh)))),K_(e,eKl,eKc,!0),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eKf),eKW),"High Degree Node Maximum Tree Height"),"Maximum height of a subtree connected to a high degree node to be moved to separate layers."),ell(5)),tdw),e15),el9(tdh)))),K_(e,eKf,eKc,!0),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eKd),eKK),"Graph Wrapping Strategy"),"For certain graphs and certain prescribed drawing areas it may be desirable to split the laid out graph into chunks that are placed side by side. The edges that connect different chunks are 'wrapped' around from the end of one chunk to the start of the other chunk. The points between the chunks are referred to as 'cuts'."),tiU),tdv),e5f),el9(tdh)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eKh),eKK),"Additional Wrapped Edges Spacing"),"To visually separate edges that are wrapped from regularly routed edges an additional spacing value can be specified in form of this layout option. The spacing is added to the regular edgeNode spacing."),10),tdg),e13),el9(tdh)))),K_(e,eKh,eKd,tiw),K_(e,eKh,eKd,ti_),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eKp),eKK),"Correction Factor for Wrapping"),"At times and for certain types of graphs the executed wrapping may produce results that are consistently biased in the same fashion: either wrapping to often or to rarely. This factor can be used to correct the bias. Internally, it is simply multiplied with the 'aspect ratio' layout option."),1),tdg),e13),el9(tdh)))),K_(e,eKp,eKd,tiS),K_(e,eKp,eKd,tik),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eKb),eKV),"Cutting Strategy"),"The strategy by which the layer indexes are determined at which the layering crumbles into chunks."),tiC),tdv),e4Z),el9(tdh)))),K_(e,eKb,eKd,tiI),K_(e,eKb,eKd,tiD),efO(e,new eE8(yt(ye(yn(v4(v7(v6(v9(new oN,eKm),eKV),"Manually Specified Cuts"),"Allows the user to specify her own cuts for a certain graph."),td_),e1H),el9(tdh)))),K_(e,eKm,eKb,tiT),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eKg),"wrapping.cutting.msd"),"MSD Freedom"),"The MSD cutting strategy starts with an initial guess on the number of chunks the graph should be split into. The freedom specifies how much the strategy may deviate from this guess. E.g. if an initial number of 3 is computed, a freedom of 1 allows 2, 3, and 4 cuts."),tiO),tdw),e15),el9(tdh)))),K_(e,eKg,eKb,tiA),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eKv),eKq),"Validification Strategy"),"When wrapping graphs, one can specify indices that are not allowed as split points. The validification strategy makes sure every computed split point is allowed."),tiW),tdv),e5l),el9(tdh)))),K_(e,eKv,eKd,tiK),K_(e,eKv,eKd,tiV),efO(e,new eE8(yt(ye(yn(v4(v7(v6(v9(new oN,eKy),eKq),"Valid Indices for Wrapping"),null),td_),e1H),el9(tdh)))),K_(e,eKy,eKd,ti$),K_(e,eKy,eKd,tiz),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eKw),eKZ),"Improve Cuts"),"For general graphs it is important that not too many edges wrap backwards. Thus a compromise between evenly-distributed cuts and the total number of cut edges is sought."),!0),tdm),e11),el9(tdh)))),K_(e,eKw,eKd,tij),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eK_),eKZ),"Distance Penalty When Improving Cuts"),null),2),tdg),e13),el9(tdh)))),K_(e,eK_,eKd,tiP),K_(e,eK_,eKw,!0),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eKE),eKZ),"Improve Wrapped Edges"),"The initial wrapping is performed in a very simple way. As a consequence, edges that wrap from one chunk to another may be unnecessarily long. Activating this option tries to shorten such edges."),!0),tdm),e11),el9(tdh)))),K_(e,eKE,eKd,tiY),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eKS),eKX),"Edge Label Side Selection"),"Method to decide on edge label sides."),trp),tdv),e41),el9(tdh)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eKk),eKX),"Edge Center Label Placement Strategy"),"Determines in which layer center labels of long edges should be placed."),trd),tdv),e4K),jL(tdh,eow(vx(e5Q,1),eU4,175,0,[tdf]))))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eKx),eKJ),"Consider Model Order"),"Preserves the order of nodes and edges in the model file if this does not lead to additional edge crossings. Depending on the strategy this is not always possible since the node and edge order might be conflicting."),tnQ),tdv),e5i),el9(tdh)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eKT),eKJ),"No Model Order"),"Set on a node to not set a model order for this node even though it is a real node."),!1),tdm),e11),el9(tdd)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eKM),eKJ),"Consider Model Order for Components"),"If set to NONE the usual ordering strategy (by cumulative node priority and size of nodes) is used. INSIDE_PORT_SIDES orders the components with external ports only inside the groups with the same port side. FORCE_MODEL_ORDER enforces the mode order on components. This option might produce bad alignments and sub optimal drawings in terms of used area since the ordering should be respected."),tnW),tdv),e4L),el9(tdh)))),K_(e,eKM,eGs,null),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eKO),eKJ),"Long Edge Ordering Strategy"),"Indicates whether long edges are sorted under, over, or equal to nodes that have no connection to a previous layer in a left-to-right or right-to-left layout. Under and over changes to right and left in a vertical layout."),tnZ),tdv),e5e),el9(tdh)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eKA),eKJ),"Crossing Counter Node Order Influence"),"Indicates with what percentage (1 for 100%) violations of the node model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal node order. Defaults to no influence (0)."),0),tdg),e13),el9(tdh)))),K_(e,eKA,eKx,null),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eKL),eKJ),"Crossing Counter Port Order Influence"),"Indicates with what percentage (1 for 100%) violations of the port model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal port order. Defaults to no influence (0)."),0),tdg),e13),el9(tdh)))),K_(e,eKL,eKx,null),eBq((new cA,e))},Y5(eWm,"LayeredMetaDataProvider",848),eTS(986,1,e$2,cA),eUe.Qe=function(e){eBq(e)},Y5(eWm,"LayeredOptions",986),eTS(987,1,{},iH),eUe.$e=function(){return new b3},eUe._e=function(e){},Y5(eWm,"LayeredOptions/LayeredFactory",987),eTS(1372,1,{}),eUe.a=0,Y5(eVL,"ElkSpacings/AbstractSpacingsBuilder",1372),eTS(779,1372,{},ef4),Y5(eWm,"LayeredSpacings/LayeredSpacingsBuilder",779),eTS(313,22,{3:1,35:1,22:1,313:1,246:1,234:1},SE),eUe.Kf=function(){return eM3(this)},eUe.Xf=function(){return eM3(this)};var e47=enw(eWm,"LayeringStrategy",313,e1G,J_,D5);eTS(378,22,{3:1,35:1,22:1,378:1},SS);var e5e=enw(eWm,"LongEdgeOrderingStrategy",378,e1G,G4,D6);eTS(197,22,{3:1,35:1,22:1,197:1},Sk);var e5t=enw(eWm,"NodeFlexibility",197,e1G,VT,D9);eTS(315,22,{3:1,35:1,22:1,315:1,246:1,234:1},Sx),eUe.Kf=function(){return eTG(this)},eUe.Xf=function(){return eTG(this)};var e5n=enw(eWm,"NodePlacementStrategy",315,e1G,Zg,Nr);eTS(260,22,{3:1,35:1,22:1,260:1},SM);var e5r=enw(eWm,"NodePromotionStrategy",260,e1G,etL,D7);eTS(339,22,{3:1,35:1,22:1,339:1},SO);var e5i=enw(eWm,"OrderingStrategy",339,e1G,Wn,Ne);eTS(421,22,{3:1,35:1,22:1,421:1},SA);var e5a=enw(eWm,"PortSortingStrategy",421,e1G,$K,Nt);eTS(452,22,{3:1,35:1,22:1,452:1},SL);var e5o=enw(eWm,"PortType",452,e1G,Wt,D8);eTS(375,22,{3:1,35:1,22:1,375:1},SC);var e5s=enw(eWm,"SelfLoopDistributionStrategy",375,e1G,Wr,Nn);eTS(376,22,{3:1,35:1,22:1,376:1},SI);var e5u=enw(eWm,"SelfLoopOrderingStrategy",376,e1G,$H,Ni);eTS(304,1,{304:1},ejm),Y5(eWm,"Spacings",304),eTS(336,22,{3:1,35:1,22:1,336:1},SD);var e5c=enw(eWm,"SplineRoutingMode",336,e1G,Wa,Na);eTS(338,22,{3:1,35:1,22:1,338:1},SN);var e5l=enw(eWm,"ValidifyStrategy",338,e1G,Wo,No);eTS(377,22,{3:1,35:1,22:1,377:1},SP);var e5f=enw(eWm,"WrappingStrategy",377,e1G,Wi,Ns);eTS(1383,1,eVD,cL),eUe.Yf=function(e){return Pp(e,37),ts2},eUe.pf=function(e,t){eRb(this,Pp(e,37),t)},Y5(eVN,"DepthFirstCycleBreaker",1383),eTS(782,1,eVD,jG),eUe.Yf=function(e){return Pp(e,37),ts3},eUe.pf=function(e,t){eBS(this,Pp(e,37),t)},eUe.Zf=function(e){return Pp(RJ(e,ebO(this.d,e.c.length)),10)},Y5(eVN,"GreedyCycleBreaker",782),eTS(1386,782,eVD,kQ),eUe.Zf=function(e){var t,n,r,i;for(i=null,t=eUu,r=new fz(e);r.a1&&(gN(LK(e_k(Bq((GK(0,e.c.length),Pp(e.c[0],10))),(eBy(),ti7))))?eMR(e,this.d,Pp(this,660)):(Hj(),Mv(e,this.d)),eaz(this.e,e))},eUe.Sf=function(e,t,n,r){var i,a,o,s,u,c,l;for(t!=ja(n,e.length)&&(a=e[t-(n?1:-1)],Xy(this.f,a,n?(enY(),tsN):(enY(),tsD))),i=e[t][0],l=!r||i.k==(eEn(),e8C),c=ZW(e[t]),this.ag(c,l,!1,n),o=0,u=new fz(c);u.a"),e0?zJ(this.a,e[t-1],e[t]):!n&&t1&&(gN(LK(e_k(Bq((GK(0,e.c.length),Pp(e.c[0],10))),(eBy(),ti7))))?eMR(e,this.d,this):(Hj(),Mv(e,this.d)),gN(LK(e_k(Bq((GK(0,e.c.length),Pp(e.c[0],10))),ti7)))||eaz(this.e,e))},Y5(eVF,"ModelOrderBarycenterHeuristic",660),eTS(1803,1,e$C,hx),eUe.ue=function(e,t){return eED(this.a,Pp(e,10),Pp(t,10))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y5(eVF,"ModelOrderBarycenterHeuristic/lambda$0$Type",1803),eTS(1403,1,eVD,cF),eUe.Yf=function(e){var t;return Pp(e,37),t=TL(tus),RI(t,(e_x(),e8n),(eB$(),e7I)),t},eUe.pf=function(e,t){$w((Pp(e,37),t))},Y5(eVF,"NoCrossingMinimizer",1403),eTS(796,402,eVR,yu),eUe.$f=function(e,t,n){var r,i,a,o,s,u,c,l,f,d,h;switch(f=this.g,n.g){case 1:for(i=0,a=0,l=new fz(e.j);l.a1&&(i.j==(eYu(),tby)?this.b[e]=!0:i.j==tbY&&e>0&&(this.b[e-1]=!0))},eUe.f=0,Y5(eWc,"AllCrossingsCounter",1798),eTS(587,1,{},erH),eUe.b=0,eUe.d=0,Y5(eWc,"BinaryIndexedTree",587),eTS(524,1,{},IQ),Y5(eWc,"CrossingsCounter",524),eTS(1906,1,e$C,hT),eUe.ue=function(e,t){return je(this.a,Pp(e,11),Pp(t,11))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y5(eWc,"CrossingsCounter/lambda$0$Type",1906),eTS(1907,1,e$C,hM),eUe.ue=function(e,t){return jt(this.a,Pp(e,11),Pp(t,11))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y5(eWc,"CrossingsCounter/lambda$1$Type",1907),eTS(1908,1,e$C,hO),eUe.ue=function(e,t){return jn(this.a,Pp(e,11),Pp(t,11))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y5(eWc,"CrossingsCounter/lambda$2$Type",1908),eTS(1909,1,e$C,hA),eUe.ue=function(e,t){return jr(this.a,Pp(e,11),Pp(t,11))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y5(eWc,"CrossingsCounter/lambda$3$Type",1909),eTS(1910,1,eUF,hL),eUe.td=function(e){QT(this.a,Pp(e,11))},Y5(eWc,"CrossingsCounter/lambda$4$Type",1910),eTS(1911,1,eU8,hC),eUe.Mb=function(e){return kq(this.a,Pp(e,11))},Y5(eWc,"CrossingsCounter/lambda$5$Type",1911),eTS(1912,1,eUF,hI),eUe.td=function(e){kV(this,e)},Y5(eWc,"CrossingsCounter/lambda$6$Type",1912),eTS(1913,1,eUF,SF),eUe.td=function(e){var t;Pj(),Vw(this.b,(t=this.a,Pp(e,11),t))},Y5(eWc,"CrossingsCounter/lambda$7$Type",1913),eTS(826,1,e$q,iq),eUe.Lb=function(e){return Pj(),Ln(Pp(e,11),(eBU(),tng))},eUe.Fb=function(e){return this===e},eUe.Mb=function(e){return Pj(),Ln(Pp(e,11),(eBU(),tng))},Y5(eWc,"CrossingsCounter/lambda$8$Type",826),eTS(1905,1,{},hD),Y5(eWc,"HyperedgeCrossingsCounter",1905),eTS(467,1,{35:1,467:1},Cq),eUe.wd=function(e){return ehq(this,Pp(e,467))},eUe.b=0,eUe.c=0,eUe.e=0,eUe.f=0;var e5m=Y5(eWc,"HyperedgeCrossingsCounter/Hyperedge",467);eTS(362,1,{35:1,362:1},He),eUe.wd=function(e){return eMf(this,Pp(e,362))},eUe.b=0,eUe.c=0;var e5g=Y5(eWc,"HyperedgeCrossingsCounter/HyperedgeCorner",362);eTS(523,22,{3:1,35:1,22:1,523:1},Sj);var e5v=enw(eWc,"HyperedgeCrossingsCounter/HyperedgeCorner/Type",523,e1G,$V,Nc);eTS(1405,1,eVD,cO),eUe.Yf=function(e){return Pp(e_k(Pp(e,37),(eBU(),tt3)),21).Hc((eLR(),ttw))?tuh:null},eUe.pf=function(e,t){evK(this,Pp(e,37),t)},Y5(eVY,"InteractiveNodePlacer",1405),eTS(1406,1,eVD,cM),eUe.Yf=function(e){return Pp(e_k(Pp(e,37),(eBU(),tt3)),21).Hc((eLR(),ttw))?tup:null},eUe.pf=function(e,t){emS(this,Pp(e,37),t)},Y5(eVY,"LinearSegmentsNodePlacer",1406),eTS(257,1,{35:1,257:1},ma),eUe.wd=function(e){return vH(this,Pp(e,257))},eUe.Fb=function(e){var t;return!!M4(e,257)&&(t=Pp(e,257),this.b==t.b)},eUe.Hb=function(){return this.b},eUe.Ib=function(){return"ls"+e_F(this.e)},eUe.a=0,eUe.b=0,eUe.c=-1,eUe.d=-1,eUe.g=0;var e5y=Y5(eVY,"LinearSegmentsNodePlacer/LinearSegment",257);eTS(1408,1,eVD,jW),eUe.Yf=function(e){return Pp(e_k(Pp(e,37),(eBU(),tt3)),21).Hc((eLR(),ttw))?tug:null},eUe.pf=function(e,t){eBr(this,Pp(e,37),t)},eUe.b=0,eUe.g=0,Y5(eVY,"NetworkSimplexPlacer",1408),eTS(1427,1,e$C,iZ),eUe.ue=function(e,t){return ME(Pp(e,19).a,Pp(t,19).a)},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y5(eVY,"NetworkSimplexPlacer/0methodref$compare$Type",1427),eTS(1429,1,e$C,iX),eUe.ue=function(e,t){return ME(Pp(e,19).a,Pp(t,19).a)},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y5(eVY,"NetworkSimplexPlacer/1methodref$compare$Type",1429),eTS(649,1,{649:1},SY);var e5w=Y5(eVY,"NetworkSimplexPlacer/EdgeRep",649);eTS(401,1,{401:1},Ht),eUe.b=!1;var e5_=Y5(eVY,"NetworkSimplexPlacer/NodeRep",401);eTS(508,12,{3:1,4:1,20:1,28:1,52:1,12:1,14:1,15:1,54:1,508:1},mu),Y5(eVY,"NetworkSimplexPlacer/Path",508),eTS(1409,1,{},iJ),eUe.Kb=function(e){return Pp(e,17).d.i.k},Y5(eVY,"NetworkSimplexPlacer/Path/lambda$0$Type",1409),eTS(1410,1,eU8,iQ),eUe.Mb=function(e){return Pp(e,267)==(eEn(),e8D)},Y5(eVY,"NetworkSimplexPlacer/Path/lambda$1$Type",1410),eTS(1411,1,{},i1),eUe.Kb=function(e){return Pp(e,17).d.i},Y5(eVY,"NetworkSimplexPlacer/Path/lambda$2$Type",1411),eTS(1412,1,eU8,hN),eUe.Mb=function(e){return Ct(edH(Pp(e,10)))},Y5(eVY,"NetworkSimplexPlacer/Path/lambda$3$Type",1412),eTS(1413,1,eU8,i0),eUe.Mb=function(e){return RM(Pp(e,11))},Y5(eVY,"NetworkSimplexPlacer/lambda$0$Type",1413),eTS(1414,1,eUF,SB),eUe.td=function(e){MP(this.a,this.b,Pp(e,11))},Y5(eVY,"NetworkSimplexPlacer/lambda$1$Type",1414),eTS(1423,1,eUF,hP),eUe.td=function(e){ekS(this.a,Pp(e,17))},Y5(eVY,"NetworkSimplexPlacer/lambda$10$Type",1423),eTS(1424,1,{},i2),eUe.Kb=function(e){return GE(),new R1(null,new Gq(Pp(e,29).a,16))},Y5(eVY,"NetworkSimplexPlacer/lambda$11$Type",1424),eTS(1425,1,eUF,hR),eUe.td=function(e){eCe(this.a,Pp(e,10))},Y5(eVY,"NetworkSimplexPlacer/lambda$12$Type",1425),eTS(1426,1,{},i3),eUe.Kb=function(e){return GE(),ell(Pp(e,121).e)},Y5(eVY,"NetworkSimplexPlacer/lambda$13$Type",1426),eTS(1428,1,{},i4),eUe.Kb=function(e){return GE(),ell(Pp(e,121).e)},Y5(eVY,"NetworkSimplexPlacer/lambda$15$Type",1428),eTS(1430,1,eU8,i5),eUe.Mb=function(e){return GE(),Pp(e,401).c.k==(eEn(),e8N)},Y5(eVY,"NetworkSimplexPlacer/lambda$17$Type",1430),eTS(1431,1,eU8,i6),eUe.Mb=function(e){return GE(),Pp(e,401).c.j.c.length>1},Y5(eVY,"NetworkSimplexPlacer/lambda$18$Type",1431),eTS(1432,1,eUF,Hn),eUe.td=function(e){ef2(this.c,this.b,this.d,this.a,Pp(e,401))},eUe.c=0,eUe.d=0,Y5(eVY,"NetworkSimplexPlacer/lambda$19$Type",1432),eTS(1415,1,{},i9),eUe.Kb=function(e){return GE(),new R1(null,new Gq(Pp(e,29).a,16))},Y5(eVY,"NetworkSimplexPlacer/lambda$2$Type",1415),eTS(1433,1,eUF,hj),eUe.td=function(e){MD(this.a,Pp(e,11))},eUe.a=0,Y5(eVY,"NetworkSimplexPlacer/lambda$20$Type",1433),eTS(1434,1,{},i8),eUe.Kb=function(e){return GE(),new R1(null,new Gq(Pp(e,29).a,16))},Y5(eVY,"NetworkSimplexPlacer/lambda$21$Type",1434),eTS(1435,1,eUF,hF),eUe.td=function(e){Oi(this.a,Pp(e,10))},Y5(eVY,"NetworkSimplexPlacer/lambda$22$Type",1435),eTS(1436,1,eU8,i7),eUe.Mb=function(e){return Ct(e)},Y5(eVY,"NetworkSimplexPlacer/lambda$23$Type",1436),eTS(1437,1,{},ae),eUe.Kb=function(e){return GE(),new R1(null,new Gq(Pp(e,29).a,16))},Y5(eVY,"NetworkSimplexPlacer/lambda$24$Type",1437),eTS(1438,1,eU8,hY),eUe.Mb=function(e){return xH(this.a,Pp(e,10))},Y5(eVY,"NetworkSimplexPlacer/lambda$25$Type",1438),eTS(1439,1,eUF,SU),eUe.td=function(e){eSl(this.a,this.b,Pp(e,10))},Y5(eVY,"NetworkSimplexPlacer/lambda$26$Type",1439),eTS(1440,1,eU8,at),eUe.Mb=function(e){return GE(),!q8(Pp(e,17))},Y5(eVY,"NetworkSimplexPlacer/lambda$27$Type",1440),eTS(1441,1,eU8,an),eUe.Mb=function(e){return GE(),!q8(Pp(e,17))},Y5(eVY,"NetworkSimplexPlacer/lambda$28$Type",1441),eTS(1442,1,{},hB),eUe.Ce=function(e,t){return M8(this.a,Pp(e,29),Pp(t,29))},Y5(eVY,"NetworkSimplexPlacer/lambda$29$Type",1442),eTS(1416,1,{},ar),eUe.Kb=function(e){return GE(),new R1(null,new YI(new Fa(OH(efc(Pp(e,10)).a.Kc(),new c))))},Y5(eVY,"NetworkSimplexPlacer/lambda$3$Type",1416),eTS(1417,1,eU8,ai),eUe.Mb=function(e){return GE(),Km(Pp(e,17))},Y5(eVY,"NetworkSimplexPlacer/lambda$4$Type",1417),eTS(1418,1,eUF,hU),eUe.td=function(e){eNB(this.a,Pp(e,17))},Y5(eVY,"NetworkSimplexPlacer/lambda$5$Type",1418),eTS(1419,1,{},aa),eUe.Kb=function(e){return GE(),new R1(null,new Gq(Pp(e,29).a,16))},Y5(eVY,"NetworkSimplexPlacer/lambda$6$Type",1419),eTS(1420,1,eU8,ao),eUe.Mb=function(e){return GE(),Pp(e,10).k==(eEn(),e8N)},Y5(eVY,"NetworkSimplexPlacer/lambda$7$Type",1420),eTS(1421,1,{},as),eUe.Kb=function(e){return GE(),new R1(null,new YI(new Fa(OH(efs(Pp(e,10)).a.Kc(),new c))))},Y5(eVY,"NetworkSimplexPlacer/lambda$8$Type",1421),eTS(1422,1,eU8,au),eUe.Mb=function(e){return GE(),Rc(Pp(e,17))},Y5(eVY,"NetworkSimplexPlacer/lambda$9$Type",1422),eTS(1404,1,eVD,cz),eUe.Yf=function(e){return Pp(e_k(Pp(e,37),(eBU(),tt3)),21).Hc((eLR(),ttw))?tuv:null},eUe.pf=function(e,t){ePV(Pp(e,37),t)},Y5(eVY,"SimpleNodePlacer",1404),eTS(180,1,{180:1},eIW),eUe.Ib=function(){var e;return e="",this.c==(zs(),tuw)?e+=ezn:this.c==tuy&&(e+=ezt),this.o==(zQ(),tuE)?e+=ezh:this.o==tuS?e+="UP":e+="BALANCED",e},Y5(eVH,"BKAlignedLayout",180),eTS(516,22,{3:1,35:1,22:1,516:1},Sz);var e5E=enw(eVH,"BKAlignedLayout/HDirection",516,e1G,$Z,Nl);eTS(515,22,{3:1,35:1,22:1,515:1},S$);var e5S=enw(eVH,"BKAlignedLayout/VDirection",515,e1G,$X,Nf);eTS(1634,1,{},SH),Y5(eVH,"BKAligner",1634),eTS(1637,1,{},eg$),Y5(eVH,"BKCompactor",1637),eTS(654,1,{654:1},ac),eUe.a=0,Y5(eVH,"BKCompactor/ClassEdge",654),eTS(458,1,{458:1},mo),eUe.a=null,eUe.b=0,Y5(eVH,"BKCompactor/ClassNode",458),eTS(1407,1,eVD,kX),eUe.Yf=function(e){return Pp(e_k(Pp(e,37),(eBU(),tt3)),21).Hc((eLR(),ttw))?tux:null},eUe.pf=function(e,t){eBP(this,Pp(e,37),t)},eUe.d=!1,Y5(eVH,"BKNodePlacer",1407),eTS(1635,1,{},al),eUe.d=0,Y5(eVH,"NeighborhoodInformation",1635),eTS(1636,1,e$C,hH),eUe.ue=function(e,t){return etp(this,Pp(e,46),Pp(t,46))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y5(eVH,"NeighborhoodInformation/NeighborComparator",1636),eTS(808,1,{}),Y5(eVH,"ThresholdStrategy",808),eTS(1763,808,{},mm),eUe.bg=function(e,t,n){return this.a.o==(zQ(),tuS)?eHQ:eH1},eUe.cg=function(){},Y5(eVH,"ThresholdStrategy/NullThresholdStrategy",1763),eTS(579,1,{579:1},SG),eUe.c=!1,eUe.d=!1,Y5(eVH,"ThresholdStrategy/Postprocessable",579),eTS(1764,808,{},mg),eUe.bg=function(e,t,n){var r,i,a;return(i=t==n,r=this.a.a[n.p]==t,i||r)?(a=e,this.a.c,zs(),i&&(a=ePX(this,t,!0)),isNaN(a)||isFinite(a)||!r||(a=ePX(this,n,!1)),a):e},eUe.cg=function(){for(var e,t,n,r,i;0!=this.d.b;){if((r=eDJ(this,i=Pp(zv(this.d),579))).a)e=r.a,((n=gN(this.a.f[this.a.g[i.b.p].p]))||q8(e)||e.c.i.c!=e.d.i.c)&&((t=eMd(this,i))||Th(this.e,i))}for(;0!=this.e.a.c.length;)eMd(this,Pp(euO(this.e),579))},Y5(eVH,"ThresholdStrategy/SimpleThresholdStrategy",1764),eTS(635,1,{635:1,246:1,234:1},af),eUe.Kf=function(){return eaM(this)},eUe.Xf=function(){return eaM(this)},Y5(eV$,"EdgeRouterFactory",635),eTS(1458,1,eVD,cG),eUe.Yf=function(e){return eLb(Pp(e,37))},eUe.pf=function(e,t){eP7(Pp(e,37),t)},Y5(eV$,"OrthogonalEdgeRouter",1458),eTS(1451,1,eVD,kJ),eUe.Yf=function(e){return ev4(Pp(e,37))},eUe.pf=function(e,t){eYg(this,Pp(e,37),t)},Y5(eV$,"PolylineEdgeRouter",1451),eTS(1452,1,e$q,ad),eUe.Lb=function(e){return eaQ(Pp(e,10))},eUe.Fb=function(e){return this===e},eUe.Mb=function(e){return eaQ(Pp(e,10))},Y5(eV$,"PolylineEdgeRouter/1",1452),eTS(1809,1,eU8,ah),eUe.Mb=function(e){return Pp(e,129).c==(Xa(),tuU)},Y5(eVz,"HyperEdgeCycleDetector/lambda$0$Type",1809),eTS(1810,1,{},ap),eUe.Ge=function(e){return Pp(e,129).d},Y5(eVz,"HyperEdgeCycleDetector/lambda$1$Type",1810),eTS(1811,1,eU8,ab),eUe.Mb=function(e){return Pp(e,129).c==(Xa(),tuU)},Y5(eVz,"HyperEdgeCycleDetector/lambda$2$Type",1811),eTS(1812,1,{},am),eUe.Ge=function(e){return Pp(e,129).d},Y5(eVz,"HyperEdgeCycleDetector/lambda$3$Type",1812),eTS(1813,1,{},ag),eUe.Ge=function(e){return Pp(e,129).d},Y5(eVz,"HyperEdgeCycleDetector/lambda$4$Type",1813),eTS(1814,1,{},av),eUe.Ge=function(e){return Pp(e,129).d},Y5(eVz,"HyperEdgeCycleDetector/lambda$5$Type",1814),eTS(112,1,{35:1,112:1},ea$),eUe.wd=function(e){return v$(this,Pp(e,112))},eUe.Fb=function(e){var t;return!!M4(e,112)&&(t=Pp(e,112),this.g==t.g)},eUe.Hb=function(){return this.g},eUe.Ib=function(){var e,t,n,r;for(e=new O0("{"),r=new fz(this.n);r.a"+this.b+" ("+AK(this.c)+")"},eUe.d=0,Y5(eVz,"HyperEdgeSegmentDependency",129),eTS(520,22,{3:1,35:1,22:1,520:1},SW);var e5k=enw(eVz,"HyperEdgeSegmentDependency/DependencyType",520,e1G,$q,Nd);eTS(1815,1,{},h$),Y5(eVz,"HyperEdgeSegmentSplitter",1815),eTS(1816,1,{},ym),eUe.a=0,eUe.b=0,Y5(eVz,"HyperEdgeSegmentSplitter/AreaRating",1816),eTS(329,1,{329:1},N4),eUe.a=0,eUe.b=0,eUe.c=0,Y5(eVz,"HyperEdgeSegmentSplitter/FreeArea",329),eTS(1817,1,e$C,aT),eUe.ue=function(e,t){return ID(Pp(e,112),Pp(t,112))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y5(eVz,"HyperEdgeSegmentSplitter/lambda$0$Type",1817),eTS(1818,1,eUF,Hi),eUe.td=function(e){V5(this.a,this.d,this.c,this.b,Pp(e,112))},eUe.b=0,Y5(eVz,"HyperEdgeSegmentSplitter/lambda$1$Type",1818),eTS(1819,1,{},aM),eUe.Kb=function(e){return new R1(null,new Gq(Pp(e,112).e,16))},Y5(eVz,"HyperEdgeSegmentSplitter/lambda$2$Type",1819),eTS(1820,1,{},aO),eUe.Kb=function(e){return new R1(null,new Gq(Pp(e,112).j,16))},Y5(eVz,"HyperEdgeSegmentSplitter/lambda$3$Type",1820),eTS(1821,1,{},aA),eUe.Fe=function(e){return gP(LV(e))},Y5(eVz,"HyperEdgeSegmentSplitter/lambda$4$Type",1821),eTS(655,1,{},YJ),eUe.a=0,eUe.b=0,eUe.c=0,Y5(eVz,"OrthogonalRoutingGenerator",655),eTS(1638,1,{},aL),eUe.Kb=function(e){return new R1(null,new Gq(Pp(e,112).e,16))},Y5(eVz,"OrthogonalRoutingGenerator/lambda$0$Type",1638),eTS(1639,1,{},aC),eUe.Kb=function(e){return new R1(null,new Gq(Pp(e,112).j,16))},Y5(eVz,"OrthogonalRoutingGenerator/lambda$1$Type",1639),eTS(661,1,{}),Y5(eVG,"BaseRoutingDirectionStrategy",661),eTS(1807,661,{},mv),eUe.dg=function(e,t,n){var r,i,a,o,s,u,c,l,f,d,h,p,b;if(!e.r||e.q)for(l=t+e.o*n,c=new fz(e.n);c.aez8&&(a=l,i=e,r=new kl(f,a),P7(o.a,r),eDD(this,o,i,r,!1),(d=e.r)&&(h=gP(LV(ep3(d.e,0))),r=new kl(h,a),P7(o.a,r),eDD(this,o,i,r,!1),a=t+d.o*n,i=d,r=new kl(h,a),P7(o.a,r),eDD(this,o,i,r,!1)),r=new kl(b,a),P7(o.a,r),eDD(this,o,i,r,!1)))},eUe.eg=function(e){return e.i.n.a+e.n.a+e.a.a},eUe.fg=function(){return eYu(),tbj},eUe.gg=function(){return eYu(),tbw},Y5(eVG,"NorthToSouthRoutingStrategy",1807),eTS(1808,661,{},my),eUe.dg=function(e,t,n){var r,i,a,o,s,u,c,l,f,d,h,p,b;if(!e.r||e.q)for(l=t-e.o*n,c=new fz(e.n);c.aez8&&(a=l,i=e,r=new kl(f,a),P7(o.a,r),eDD(this,o,i,r,!1),(d=e.r)&&(h=gP(LV(ep3(d.e,0))),r=new kl(h,a),P7(o.a,r),eDD(this,o,i,r,!1),a=t-d.o*n,i=d,r=new kl(h,a),P7(o.a,r),eDD(this,o,i,r,!1)),r=new kl(b,a),P7(o.a,r),eDD(this,o,i,r,!1)))},eUe.eg=function(e){return e.i.n.a+e.n.a+e.a.a},eUe.fg=function(){return eYu(),tbw},eUe.gg=function(){return eYu(),tbj},Y5(eVG,"SouthToNorthRoutingStrategy",1808),eTS(1806,661,{},mw),eUe.dg=function(e,t,n){var r,i,a,o,s,u,c,l,f,d,h,p,b;if(!e.r||e.q)for(l=t+e.o*n,c=new fz(e.n);c.aez8&&(a=l,i=e,r=new kl(a,f),P7(o.a,r),eDD(this,o,i,r,!0),(d=e.r)&&(h=gP(LV(ep3(d.e,0))),r=new kl(a,h),P7(o.a,r),eDD(this,o,i,r,!0),a=t+d.o*n,i=d,r=new kl(a,h),P7(o.a,r),eDD(this,o,i,r,!0)),r=new kl(a,b),P7(o.a,r),eDD(this,o,i,r,!0)))},eUe.eg=function(e){return e.i.n.b+e.n.b+e.a.b},eUe.fg=function(){return eYu(),tby},eUe.gg=function(){return eYu(),tbY},Y5(eVG,"WestToEastRoutingStrategy",1806),eTS(813,1,{},eNG),eUe.Ib=function(){return e_F(this.a)},eUe.b=0,eUe.c=!1,eUe.d=!1,eUe.f=0,Y5(eVK,"NubSpline",813),eTS(407,1,{407:1},eA2,za),Y5(eVK,"NubSpline/PolarCP",407),eTS(1453,1,eVD,egt),eUe.Yf=function(e){return ewy(Pp(e,37))},eUe.pf=function(e,t){eYW(this,Pp(e,37),t)},Y5(eVK,"SplineEdgeRouter",1453),eTS(268,1,{268:1},Xt),eUe.Ib=function(){return this.a+" ->("+this.c+") "+this.b},eUe.c=0,Y5(eVK,"SplineEdgeRouter/Dependency",268),eTS(455,22,{3:1,35:1,22:1,455:1},SK);var e5x=enw(eVK,"SplineEdgeRouter/SideToProcess",455,e1G,$J,Nh);eTS(1454,1,eU8,ak),eUe.Mb=function(e){return eAq(),!Pp(e,128).o},Y5(eVK,"SplineEdgeRouter/lambda$0$Type",1454),eTS(1455,1,{},aS),eUe.Ge=function(e){return eAq(),Pp(e,128).v+1},Y5(eVK,"SplineEdgeRouter/lambda$1$Type",1455),eTS(1456,1,eUF,SV),eUe.td=function(e){Rw(this.a,this.b,Pp(e,46))},Y5(eVK,"SplineEdgeRouter/lambda$2$Type",1456),eTS(1457,1,eUF,Sq),eUe.td=function(e){R_(this.a,this.b,Pp(e,46))},Y5(eVK,"SplineEdgeRouter/lambda$3$Type",1457),eTS(128,1,{35:1,128:1},eSB,eRM),eUe.wd=function(e){return vz(this,Pp(e,128))},eUe.b=0,eUe.e=!1,eUe.f=0,eUe.g=0,eUe.j=!1,eUe.k=!1,eUe.n=0,eUe.o=!1,eUe.p=!1,eUe.q=!1,eUe.s=0,eUe.u=0,eUe.v=0,eUe.F=0,Y5(eVK,"SplineSegment",128),eTS(459,1,{459:1},ax),eUe.a=0,eUe.b=!1,eUe.c=!1,eUe.d=!1,eUe.e=!1,eUe.f=0,Y5(eVK,"SplineSegment/EdgeInformation",459),eTS(1234,1,{},ay),Y5(eVJ,ezQ,1234),eTS(1235,1,e$C,aw),eUe.ue=function(e,t){return ek4(Pp(e,135),Pp(t,135))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y5(eVJ,ez1,1235),eTS(1233,1,{},y2),Y5(eVJ,"MrTree",1233),eTS(393,22,{3:1,35:1,22:1,393:1,246:1,234:1},SZ),eUe.Kf=function(){return ek6(this)},eUe.Xf=function(){return ek6(this)};var e5T=enw(eVJ,"TreeLayoutPhases",393,e1G,VM,Np);eTS(1130,209,ezL,CJ),eUe.Ze=function(e,t){var n,r,i,a,o,s,u;for(gN(LK(eT8(e,(eTj(),tcA))))||zh(n=new df((_q(),new gM(e)))),o=(eaW(s=new Xn,e),eo3(s,(eR6(),tcl),e),u=new p2,eDf(e,s,u),eDU(e,s,u),s),a=eDO(this.a,o),i=new fz(a);i.a"+WU(this.c):"e_"+esj(this)},Y5(eVQ,"TEdge",188),eTS(135,134,{3:1,135:1,94:1,134:1},Xn),eUe.Ib=function(){var e,t,n,r,i;for(i=null,r=epL(this.b,0);r.b!=r.d.c;)i+=(null==(n=Pp(Vv(r),86)).c||0==n.c.length?"n_"+n.g:"n_"+n.c)+"\n";for(t=epL(this.a,0);t.b!=t.d.c;)i+=((e=Pp(Vv(t),188)).b&&e.c?WU(e.b)+"->"+WU(e.c):"e_"+esj(e))+"\n";return i};var e5M=Y5(eVQ,"TGraph",135);eTS(633,502,{3:1,502:1,633:1,94:1,134:1}),Y5(eVQ,"TShape",633),eTS(86,633,{3:1,502:1,86:1,633:1,94:1,134:1},esH),eUe.Ib=function(){return WU(this)};var e5O=Y5(eVQ,"TNode",86);eTS(255,1,eU$,hz),eUe.Jc=function(e){qX(this,e)},eUe.Kc=function(){var e;return e=epL(this.a.d,0),new hG(e)},Y5(eVQ,"TNode/2",255),eTS(358,1,eUE,hG),eUe.Nb=function(e){F8(this,e)},eUe.Pb=function(){return Pp(Vv(this.a),188).c},eUe.Ob=function(){return yV(this.a)},eUe.Qb=function(){etu(this.a)},Y5(eVQ,"TNode/2/1",358),eTS(1840,1,eGB,CX),eUe.pf=function(e,t){eNv(this,Pp(e,135),t)},Y5(eV1,"FanProcessor",1840),eTS(327,22,{3:1,35:1,22:1,327:1,234:1},SX),eUe.Kf=function(){switch(this.g){case 0:return new mX;case 1:return new CX;case 2:return new aN;case 3:return new aI;case 4:return new aR;case 5:return new aj;default:throw p7(new gL(eWt+(null!=this.f?this.f:""+this.g)))}};var e5A=enw(eV1,eWn,327,e1G,JS,Nb);eTS(1843,1,eGB,aI),eUe.pf=function(e,t){eMo(this,Pp(e,135),t)},eUe.a=0,Y5(eV1,"LevelHeightProcessor",1843),eTS(1844,1,eU$,aD),eUe.Jc=function(e){qX(this,e)},eUe.Kc=function(){return Hj(),wV(),e2o},Y5(eV1,"LevelHeightProcessor/1",1844),eTS(1841,1,eGB,aN),eUe.pf=function(e,t){eSP(this,Pp(e,135),t)},eUe.a=0,Y5(eV1,"NeighborsProcessor",1841),eTS(1842,1,eU$,aP),eUe.Jc=function(e){qX(this,e)},eUe.Kc=function(){return Hj(),wV(),e2o},Y5(eV1,"NeighborsProcessor/1",1842),eTS(1845,1,eGB,aR),eUe.pf=function(e,t){eMa(this,Pp(e,135),t)},eUe.a=0,Y5(eV1,"NodePositionProcessor",1845),eTS(1839,1,eGB,mX),eUe.pf=function(e,t){eRm(this,Pp(e,135))},Y5(eV1,"RootProcessor",1839),eTS(1846,1,eGB,aj),eUe.pf=function(e,t){elE(Pp(e,135))},Y5(eV1,"Untreeifyer",1846),eTS(851,1,e$2,c$),eUe.Qe=function(e){efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eV3),""),"Weighting of Nodes"),"Which weighting to use when computing a node order."),tcE),(eSd(),tdv)),e5L),el9((epx(),tdh))))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eV4),""),"Search Order"),"Which search order to use when computing a spanning tree."),tcw),tdv),e5C),el9(tdh)))),ejG((new cH,e))},Y5(eV5,"MrTreeMetaDataProvider",851),eTS(994,1,e$2,cH),eUe.Qe=function(e){ejG(e)},Y5(eV5,"MrTreeOptions",994),eTS(995,1,{},aF),eUe.$e=function(){return new CJ},eUe._e=function(e){},Y5(eV5,"MrTreeOptions/MrtreeFactory",995),eTS(480,22,{3:1,35:1,22:1,480:1},SJ);var e5L=enw(eV5,"OrderWeighting",480,e1G,$1,Nm);eTS(425,22,{3:1,35:1,22:1,425:1},SQ);var e5C=enw(eV5,"TreeifyingOrder",425,e1G,$Q,Nv);eTS(1459,1,eVD,cD),eUe.Yf=function(e){return Pp(e,135),tcz},eUe.pf=function(e,t){eiD(this,Pp(e,135),t)},Y5("org.eclipse.elk.alg.mrtree.p1treeify","DFSTreeifyer",1459),eTS(1460,1,eVD,cN),eUe.Yf=function(e){return Pp(e,135),tcG},eUe.pf=function(e,t){eSZ(this,Pp(e,135),t)},Y5("org.eclipse.elk.alg.mrtree.p2order","NodeOrderer",1460),eTS(1461,1,eVD,cI),eUe.Yf=function(e){return Pp(e,135),tcW},eUe.pf=function(e,t){eCh(this,Pp(e,135),t)},eUe.a=0,Y5("org.eclipse.elk.alg.mrtree.p3place","NodePlacer",1461),eTS(1462,1,eVD,cP),eUe.Yf=function(e){return Pp(e,135),tcK},eUe.pf=function(e,t){evm(Pp(e,135),t)},Y5("org.eclipse.elk.alg.mrtree.p4route","EdgeRouter",1462),eTS(495,22,{3:1,35:1,22:1,495:1,246:1,234:1},S1),eUe.Kf=function(){return ede(this)},eUe.Xf=function(){return ede(this)};var e5I=enw(eV8,"RadialLayoutPhases",495,e1G,$0,Ng);eTS(1131,209,ezL,y0),eUe.Ze=function(e,t){var n,r,i,a,o,s;if(n=eS8(this,e),ewG(t,"Radial layout",n.c.length),gN(LK(eT8(e,(egj(),tlm))))||zh(r=new df((_q(),new gM(e)))),s=ewE(e),ebu(e,(Lj(),tcV),s),!s)throw p7(new gL("The given graph is not a tree!"));for(0==(i=gP(LV(eT8(e,tl_))))&&(i=ekB(e)),ebu(e,tl_,i),o=new fz(eS8(this,e));o.a0&&eu8((GV(t-1,e.length),e.charCodeAt(t-1)),eGq);)--t;if(r>=t)throw p7(new gL("The given string does not contain any numbers."));if(2!=(i=eIk(e.substr(r,t-r),",|;|\r|\n")).length)throw p7(new gL("Exactly two numbers are expected, "+i.length+" were found."));try{this.a=eEu(e_H(i[0])),this.b=eEu(e_H(i[1]))}catch(a){if(a=eoa(a),M4(a,127))throw n=a,p7(new gL(eGZ+n));throw p7(a)}},eUe.Ib=function(){return"("+this.a+","+this.b+")"},eUe.a=0,eUe.b=0;var e50=Y5(eGX,"KVector",8);eTS(74,68,{3:1,4:1,20:1,28:1,52:1,14:1,68:1,15:1,74:1,414:1},mE,yc,Lb),eUe.Pc=function(){return euE(this)},eUe.Jf=function(e){var t,n,r,i,a,o;r=eIk(e,",|;|\\(|\\)|\\[|\\]|\\{|\\}| | |\n"),HC(this);try{for(n=0,a=0,i=0,o=0;n0&&(a%2==0?i=eEu(r[n]):o=eEu(r[n]),a>0&&a%2!=0&&P7(this,new kl(i,o)),++a),++n}catch(s){if(s=eoa(s),M4(s,127))throw t=s,p7(new gL("The given string does not match the expected format for vectors."+t));throw p7(s)}},eUe.Ib=function(){var e,t,n;for(e=new O0("("),t=epL(this,0);t.b!=t.d.c;)xM(e,(n=Pp(Vv(t),8)).a+","+n.b),t.b!=t.d.c&&(e.a+="; ");return(e.a+=")",e).a};var e52=Y5(eGX,"KVectorChain",74);eTS(248,22,{3:1,35:1,22:1,248:1},kf);var e53=enw(eZe,"Alignment",248,e1G,Jg,NP);eTS(979,1,e$2,cq),eUe.Qe=function(e){eDj(e)},Y5(eZe,"BoxLayouterOptions",979),eTS(980,1,{},oA),eUe.$e=function(){return new oF},eUe._e=function(e){},Y5(eZe,"BoxLayouterOptions/BoxFactory",980),eTS(291,22,{3:1,35:1,22:1,291:1},kd);var e54=enw(eZe,"ContentAlignment",291,e1G,Jm,NR);eTS(684,1,e$2,cZ),eUe.Qe=function(e){efO(e,new eE8(yt(ye(yn(v4(v7(v6(v9(new oN,eZi),""),"Layout Algorithm"),"Select a specific layout algorithm."),(eSd(),tdE)),e17),el9((epx(),tdh))))),efO(e,new eE8(yt(ye(yn(v4(v7(v6(v9(new oN,eZa),""),"Resolved Layout Algorithm"),"Meta data associated with the selected algorithm."),td_),e5X),el9(tdh)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eVi),""),"Alignment"),"Alignment of the selected node relative to other nodes; the exact meaning depends on the used algorithm."),td0),tdv),e53),el9(tdd)))),efO(e,new eE8(yt(ye(yn(v4(v7(v6(v9(new oN,ezG),""),"Aspect Ratio"),"The desired aspect ratio of the drawing, that is the quotient of width by height."),tdg),e13),el9(tdh)))),efO(e,new eE8(yt(ye(yn(v4(v7(v6(v9(new oN,eZo),""),"Bend Points"),"A fixed list of bend points for the edge. This is used by the 'Fixed Layout' algorithm to specify a pre-defined routing for an edge. The vector chain must include the source point, any bend points, and the target point, so it must have at least two points."),td_),e52),el9(tdl)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eVg),""),"Content Alignment"),"Specifies how the content of a node are aligned. Each node can individually control the alignment of its contents. I.e. if a node should be aligned top left in its parent node, the parent node should specify that option."),td8),tdy),e54),el9(tdh)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eVr),""),"Debug Mode"),"Whether additional debug information shall be generated."),(OQ(),!1)),tdm),e11),el9(tdh)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eVu),""),ezw),"Overall direction of edges: horizontal (right / left) or vertical (down / up)."),tht),tdv),e55),el9(tdh)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eKB),""),"Edge Routing"),"What kind of edge routing style should be applied for the content of a parent node. Algorithms may also set this option to single edges in order to mark them as splines. The bend point list of edges with this option set to SPLINES must be interpreted as control points for a piecewise cubic spline."),tho),tdv),e59),el9(tdh)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eqC),""),"Expand Nodes"),"If active, nodes are expanded to fill the area of their parent."),!1),tdm),e11),el9(tdh)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eKP),""),"Hierarchy Handling"),"Determines whether separate layout runs are triggered for different compound nodes in a hierarchical graph. Setting a node's hierarchy handling to `INCLUDE_CHILDREN` will lay out that node and all of its descendants in a single layout run, until a descendant is encountered which has its hierarchy handling set to `SEPARATE_CHILDREN`. In general, `SEPARATE_CHILDREN` will ensure that a new layout run is triggered for a node with that setting. Including multiple levels of hierarchy in a single layout run may allow cross-hierarchical edges to be laid out properly. If the root node is set to `INHERIT` (or not set at all), the default behavior is `SEPARATE_CHILDREN`."),thf),tdv),e57),jL(tdh,eow(vx(e5Q,1),eU4,175,0,[tdd]))))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,ezW),""),"Padding"),"The padding to be left to a parent element's border when placing child elements. This can also serve as an output option of a layout algorithm if node size calculation is setup appropriately."),thP),td_),e4R),jL(tdh,eow(vx(e5Q,1),eU4,175,0,[tdd]))))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eGu),""),"Interactive"),"Whether the algorithm should be run in interactive mode for the content of a parent node. What this means exactly depends on how the specific algorithm interprets this option. Usually in the interactive mode algorithms try to modify the current layout as little as possible."),!1),tdm),e11),el9(tdh)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eVA),""),"interactive Layout"),"Whether the graph should be changeable interactively and by setting constraints"),!1),tdm),e11),el9(tdh)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eGf),""),"Omit Node Micro Layout"),"Node micro layout comprises the computation of node dimensions (if requested), the placement of ports and their labels, and the placement of node labels. The functionality is implemented independent of any specific layout algorithm and shouldn't have any negative impact on the layout algorithm's performance itself. Yet, if any unforeseen behavior occurs, this option allows to deactivate the micro layout."),!1),tdm),e11),el9(tdh)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eGc),""),"Port Constraints"),"Defines constraints of the position of the ports of a node."),thq),tdv),e6r),el9(tdd)))),efO(e,new eE8(yt(ye(yn(v4(v7(v6(v9(new oN,eVT),""),"Position"),"The position of a node, port, or label. This is used by the 'Fixed Layout' algorithm to specify a pre-defined position."),td_),e50),jL(tdd,eow(vx(e5Q,1),eU4,175,0,[tdp,tdf]))))),efO(e,new eE8(yt(ye(yn(v4(v7(v6(v9(new oN,eGr),""),"Priority"),"Defines the priority of an object; its meaning depends on the specific layout algorithm and the context where it is used."),tdw),e15),jL(tdd,eow(vx(e5Q,1),eU4,175,0,[tdl]))))),efO(e,new eE8(yt(ye(yn(v4(v7(v6(v9(new oN,eGo),""),"Randomization Seed"),"Seed used for pseudo-random number generators to control the layout algorithm. If the value is 0, the seed shall be determined pseudo-randomly (e.g. from the system time)."),tdw),e15),el9(tdh)))),efO(e,new eE8(yt(ye(yn(v4(v7(v6(v9(new oN,eGs),""),"Separate Connected Components"),"Whether each connected component should be processed separately."),tdm),e11),el9(tdh)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eVv),""),"Junction Points"),"This option is not used as option, but as output of the layout algorithms. It is attached to edges and determines the points where junction symbols should be drawn in order to represent hyperedges with orthogonal routing. Whether such points are computed depends on the chosen layout algorithm and edge routing style. The points are put into the vector chain with no specific order."),thv),td_),e52),el9(tdl)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eV_),""),"Comment Box"),"Whether the node should be regarded as a comment box instead of a regular node. In that case its placement should be similar to how labels are handled. Any edges incident to a comment box specify to which graph elements the comment is related."),!1),tdm),e11),el9(tdd)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eVE),""),"Hypernode"),"Whether the node should be handled as a hypernode."),!1),tdm),e11),el9(tdd)))),efO(e,new eE8(yt(ye(yn(v4(v7(v6(v9(new oN,eZs),""),"Label Manager"),"Label managers can shorten labels upon a layout algorithm's request."),td_),tyO),jL(tdh,eow(vx(e5Q,1),eU4,175,0,[tdf]))))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eVM),""),"Margins"),"Margins define additional space around the actual bounds of a graph element. For instance, ports or labels being placed on the outside of a node's border might introduce such a margin. The margin is used to guarantee non-overlap of other graph elements with those ports or labels."),thw),td_),e4D),el9(tdd)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eVt),""),"No Layout"),"No layout is done for the associated element. This is used to mark parts of a diagram to avoid their inclusion in the layout graph, or to mark parts of the layout graph to prevent layout engines from processing them. If you wish to exclude the contents of a compound node from automatic layout, while the node itself is still considered on its own layer, use the 'Fixed Layout' algorithm for that node."),!1),tdm),e11),jL(tdd,eow(vx(e5Q,1),eU4,175,0,[tdl,tdp,tdf]))))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eZu),""),"Scale Factor"),"The scaling factor to be applied to the corresponding node in recursive layout. It causes the corresponding node's size to be adjusted, and its ports and labels to be sized and placed accordingly after the layout of that node has been determined (and before the node itself and its siblings are arranged). The scaling is not reverted afterwards, so the resulting layout graph contains the adjusted size and position data. This option is currently not supported if 'Layout Hierarchy' is set."),1),tdg),e13),el9(tdd)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eZc),""),"Animate"),"Whether the shift from the old layout to the new computed layout shall be animated."),!0),tdm),e11),el9(tdh)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eZl),""),"Animation Time Factor"),"Factor for computation of animation time. The higher the value, the longer the animation time. If the value is 0, the resulting time is always equal to the minimum defined by 'Minimal Animation Time'."),ell(100)),tdw),e15),el9(tdh)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eZf),""),"Layout Ancestors"),"Whether the hierarchy levels on the path from the selected element to the root of the diagram shall be included in the layout process."),!1),tdm),e11),el9(tdh)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eZd),""),"Maximal Animation Time"),"The maximal time for animations, in milliseconds."),ell(4e3)),tdw),e15),el9(tdh)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eZh),""),"Minimal Animation Time"),"The minimal time for animations, in milliseconds."),ell(400)),tdw),e15),el9(tdh)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eZp),""),"Progress Bar"),"Whether a progress bar shall be displayed during layout computations."),!1),tdm),e11),el9(tdh)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eZb),""),"Validate Graph"),"Whether the graph shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user."),!1),tdm),e11),el9(tdh)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eZm),""),"Validate Options"),"Whether layout options shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user."),!0),tdm),e11),el9(tdh)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eZg),""),"Zoom to Fit"),"Whether the zoom level shall be set to view the whole diagram after layout."),!1),tdm),e11),el9(tdh)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eZr),"box"),"Box Layout Mode"),"Configures the packing mode used by the {@link BoxLayoutProvider}. If SIMPLE is not required (neither priorities are used nor the interactive mode), GROUP_DEC can improve the packing and decrease the area. GROUP_MIXED and GROUP_INC may, in very specific scenarios, work better."),td5),tdv),e6u),el9(tdh)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eKQ),eKU),"Comment Comment Spacing"),"Spacing to be preserved between a comment box and other comment boxes connected to the same node. The space left between comment boxes of different nodes is controlled by the node-node spacing."),10),tdg),e13),el9(tdh)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eK1),eKU),"Comment Node Spacing"),"Spacing to be preserved between a node and its connected comment boxes. The space left between a node and the comments of another node is controlled by the node-node spacing."),10),tdg),e13),el9(tdh)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,ez$),eKU),"Components Spacing"),"Spacing to be preserved between pairs of connected components. This option is only relevant if 'separateConnectedComponents' is activated."),20),tdg),e13),el9(tdh)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eK0),eKU),"Edge Spacing"),"Spacing to be preserved between any two edges. Note that while this can somewhat easily be satisfied for the segments of orthogonally drawn edges, it is harder for general polylines or splines."),10),tdg),e13),el9(tdh)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eGa),eKU),"Edge Label Spacing"),"The minimal distance to be preserved between a label and the edge it is associated with. Note that the placement of a label is influenced by the 'edgelabels.placement' option."),2),tdg),e13),el9(tdh)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eK2),eKU),"Edge Node Spacing"),"Spacing to be preserved between nodes and edges."),10),tdg),e13),el9(tdh)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eK3),eKU),"Label Spacing"),"Determines the amount of space to be left between two labels of the same graph element."),0),tdg),e13),el9(tdh)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eK6),eKU),"Label Node Spacing"),"Spacing to be preserved between labels and the border of node they are associated with. Note that the placement of a label is influenced by the 'nodelabels.placement' option."),5),tdg),e13),el9(tdh)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eK4),eKU),"Horizontal spacing between Label and Port"),"Horizontal spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option."),1),tdg),e13),el9(tdh)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eK5),eKU),"Vertical spacing between Label and Port"),"Vertical spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option."),1),tdg),e13),el9(tdh)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eGi),eKU),"Node Spacing"),"The minimal distance to be preserved between each two nodes."),20),tdg),e13),el9(tdh)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eK9),eKU),"Node Self Loop Spacing"),"Spacing to be preserved between a node and its self loops."),10),tdg),e13),el9(tdh)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eK8),eKU),"Port Spacing"),"Spacing between pairs of ports of the same node."),10),tdg),e13),jL(tdh,eow(vx(e5Q,1),eU4,175,0,[tdd]))))),efO(e,new eE8(yt(ye(yn(v4(v7(v6(v9(new oN,eK7),eKU),"Individual Spacing"),"Allows to specify individual spacing values for graph elements that shall be different from the value specified for the element's parent."),td_),e6c),jL(tdd,eow(vx(e5Q,1),eU4,175,0,[tdl,tdp,tdf]))))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eVO),eKU),"Additional Port Space"),"Additional space around the sets of ports on each node side. For each side of a node, this option can reserve additional space before and after the ports on each side. For example, a top spacing of 20 makes sure that the first port on the western and eastern side is 20 units away from the northern border."),tph),td_),e4D),el9(tdh)))),efO(e,new eE8(yt(ye(yn(v4(v7(v6(v9(new oN,eVx),eZ_),"Layout Partition"),"Partition to which the node belongs. This requires Layout Partitioning to be active. Nodes with lower partition IDs will appear to the left of nodes with higher partition IDs (assuming a left-to-right layout direction)."),tdw),e15),jL(tdh,eow(vx(e5Q,1),eU4,175,0,[tdd]))))),K_(e,eVx,eVk,thY),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eVk),eZ_),"Layout Partitioning"),"Whether to activate partitioned layout. This will allow to group nodes through the Layout Partition option. a pair of nodes with different partition indices is then placed such that the node with lower index is placed to the left of the other node (with left-to-right layout direction). Depending on the layout algorithm, this may only be guaranteed to work if all nodes have a layout partition configured, or at least if edges that cross partitions are not part of a partition-crossing cycle."),thj),tdm),e11),el9(tdh)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eVc),eZE),"Node Label Padding"),"Define padding for node labels that are placed inside of a node."),thE),td_),e4R),el9(tdh)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eGp),eZE),"Node Label Placement"),"Hints for where node labels are to be placed; if empty, the node label's position is not modified."),thk),tdy),e6t),jL(tdd,eow(vx(e5Q,1),eU4,175,0,[tdf]))))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eVd),eZS),"Port Alignment"),"Defines the default port distribution for a node. May be overridden for each side individually."),thU),tdv),e6n),el9(tdd)))),efO(e,new eE8(yt(ye(yn(v4(v7(v6(v9(new oN,eVh),eZS),"Port Alignment (North)"),"Defines how ports on the northern side are placed, overriding the node's general port alignment."),tdv),e6n),el9(tdd)))),efO(e,new eE8(yt(ye(yn(v4(v7(v6(v9(new oN,eVp),eZS),"Port Alignment (South)"),"Defines how ports on the southern side are placed, overriding the node's general port alignment."),tdv),e6n),el9(tdd)))),efO(e,new eE8(yt(ye(yn(v4(v7(v6(v9(new oN,eVb),eZS),"Port Alignment (West)"),"Defines how ports on the western side are placed, overriding the node's general port alignment."),tdv),e6n),el9(tdd)))),efO(e,new eE8(yt(ye(yn(v4(v7(v6(v9(new oN,eVm),eZS),"Port Alignment (East)"),"Defines how ports on the eastern side are placed, overriding the node's general port alignment."),tdv),e6n),el9(tdd)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eGh),eZk),"Node Size Constraints"),"What should be taken into account when calculating a node's size. Empty size constraints specify that a node's size is already fixed and should not be changed."),thT),tdy),e6o),el9(tdd)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eGd),eZk),"Node Size Options"),"Options modifying the behavior of the size constraints set on a node. Each member of the set specifies something that should be taken into account when calculating node sizes. The empty set corresponds to no further modifications."),thC),tdy),e6s),el9(tdd)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eGM),eZk),"Node Size Minimum"),"The minimal size to which a node can be reduced."),thA),td_),e50),el9(tdd)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eVs),eZk),"Fixed Graph Size"),"By default, the fixed layout provider will enlarge a graph until it is large enough to contain its children. If this option is set, it won't do so."),!1),tdm),e11),el9(tdh)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eVy),eKX),"Edge Label Placement"),"Gives a hint on where to put edge labels."),thi),tdv),e56),el9(tdf)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eGl),eKX),"Inline Edge Labels"),"If true, an edge label is placed directly on its edge. May only apply to center edge labels. This kind of label placement is only advisable if the label's rendering is such that it is not crossed by its edge and thus stays legible."),!1),tdm),e11),el9(tdf)))),efO(e,new eE8(yt(ye(yn(v4(v7(v6(v9(new oN,eZv),"font"),"Font Name"),"Font name used for a label."),tdE),e17),el9(tdf)))),efO(e,new eE8(yt(ye(yn(v4(v7(v6(v9(new oN,eZy),"font"),"Font Size"),"Font size used for a label."),tdw),e15),el9(tdf)))),efO(e,new eE8(yt(ye(yn(v4(v7(v6(v9(new oN,eVS),eZx),"Port Anchor Offset"),"The offset to the port position where connections shall be attached."),td_),e50),el9(tdp)))),efO(e,new eE8(yt(ye(yn(v4(v7(v6(v9(new oN,eVw),eZx),"Port Index"),"The index of a port in the fixed order around a node. The order is assumed as clockwise, starting with the leftmost port on the top side. This option must be set if 'Port Constraints' is set to FIXED_ORDER and no specific positions are given for the ports. Additionally, the option 'Port Side' must be defined in this case."),tdw),e15),el9(tdp)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eVn),eZx),"Port Side"),"The side of a node on which a port is situated. This option must be set if 'Port Constraints' is set to FIXED_SIDE or FIXED_ORDER and no specific positions are given for the ports."),th2),tdv),e6a),el9(tdp)))),efO(e,new eE8(yt(ye(yn(v4(v7(v6(v9(new oN,eVe),eZx),"Port Border Offset"),"The offset of ports on the node border. With a positive offset the port is moved outside of the node, while with a negative offset the port is moved towards the inside. An offset of 0 means that the port is placed directly on the node border, i.e. if the port side is north, the port's south border touches the nodes's north border; if the port side is east, the port's west border touches the nodes's east border; if the port side is south, the port's north border touches the node's south border; if the port side is west, the port's east border touches the node's west border."),tdg),e13),el9(tdp)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eGb),eZT),"Port Label Placement"),"Decides on a placement method for port labels; if empty, the node label's position is not modified."),thQ),tdy),e6i),el9(tdd)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eVl),eZT),"Port Labels Next to Port"),"Use 'portLabels.placement': NEXT_TO_PORT_OF_POSSIBLE."),!1),tdm),e11),el9(tdd)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eVf),eZT),"Treat Port Labels as Group"),"If this option is true (default), the labels of a port will be treated as a group when it comes to centering them next to their port. If this option is false, only the first label will be centered next to the port, with the others being placed below. This only applies to labels of eastern and western ports and will have no effect if labels are not placed next to their port."),!0),tdm),e11),el9(tdd)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eVa),eZM),"Activate Inside Self Loops"),"Whether this node allows to route self loops inside of it instead of around it. If set to true, this will make the node a compound node if it isn't already, and will require the layout algorithm to support compound nodes with hierarchical ports."),!1),tdm),e11),el9(tdd)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eVo),eZM),"Inside Self Loop"),"Whether a self loop should be routed inside a node instead of around that node."),!1),tdm),e11),el9(tdl)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,ezz),"edge"),"Edge Thickness"),"The thickness of an edge. This is a hint on the line width used to draw an edge, possibly requiring more space to be reserved for it."),1),tdg),e13),el9(tdl)))),efO(e,new eE8(yt(ye(yn(v5(v4(v7(v6(v9(new oN,eZw),"edge"),"Edge Type"),"The type of an edge. This is usually used for UML class diagrams, where associations must be handled differently from generalizations."),thu),tdv),e58),el9(tdl)))),_B(e,new GM(v0(v3(v2(new of,eG1),"Layered"),'The layer-based method was introduced by Sugiyama, Tagawa and Toda in 1981. It emphasizes the direction of edges by pointing as many edges as possible into the same direction. The nodes are arranged in layers, which are sometimes called "hierarchies", and then reordered such that the number of edge crossings is minimized. Afterwards, concrete coordinates are computed for the nodes and edge bend points.'))),_B(e,new GM(v0(v3(v2(new of,"org.eclipse.elk.orthogonal"),"Orthogonal"),'Orthogonal methods that follow the "topology-shape-metrics" approach by Batini, Nardelli and Tamassia \'86. The first phase determines the topology of the drawing by applying a planarization technique, which results in a planar representation of the graph. The orthogonal shape is computed in the second phase, which aims at minimizing the number of edge bends, and is called orthogonalization. The third phase leads to concrete coordinates for nodes and edge bend points by applying a compaction method, thus defining the metrics.'))),_B(e,new GM(v0(v3(v2(new of,eGn),"Force"),"Layout algorithms that follow physical analogies by simulating a system of attractive and repulsive forces. The first successful method of this kind was proposed by Eades in 1984."))),_B(e,new GM(v0(v3(v2(new of,"org.eclipse.elk.circle"),"Circle"),"Circular layout algorithms emphasize cycles or biconnected components of a graph by arranging them in circles. This is useful if a drawing is desired where such components are clearly grouped, or where cycles are shown as prominent OPTIONS of the graph."))),_B(e,new GM(v0(v3(v2(new of,eV9),"Tree"),"Specialized layout methods for trees, i.e. acyclic graphs. The regular structure of graphs that have no undirected cycles can be emphasized using an algorithm of this type."))),_B(e,new GM(v0(v3(v2(new of,"org.eclipse.elk.planar"),"Planar"),"Algorithms that require a planar or upward planar graph. Most of these algorithms are theoretically interesting, but not practically usable."))),_B(e,new GM(v0(v3(v2(new of,eqp),"Radial"),"Radial layout algorithms usually position the nodes of the graph on concentric circles."))),eIm((new cX,e)),eDj((new cq,e)),eL6((new cJ,e))},Y5(eZe,"CoreOptions",684),eTS(103,22,{3:1,35:1,22:1,103:1},kh);var e55=enw(eZe,ezw,103,e1G,Zh,NY);eTS(272,22,{3:1,35:1,22:1,272:1},kp);var e56=enw(eZe,"EdgeLabelPlacement",272,e1G,Wp,NB);eTS(218,22,{3:1,35:1,22:1,218:1},kb);var e59=enw(eZe,"EdgeRouting",218,e1G,VC,NU);eTS(312,22,{3:1,35:1,22:1,312:1},km);var e58=enw(eZe,"EdgeType",312,e1G,Jx,NH);eTS(977,1,e$2,cX),eUe.Qe=function(e){eIm(e)},Y5(eZe,"FixedLayouterOptions",977),eTS(978,1,{},o$),eUe.$e=function(){return new oR},eUe._e=function(e){},Y5(eZe,"FixedLayouterOptions/FixedFactory",978),eTS(334,22,{3:1,35:1,22:1,334:1},kg);var e57=enw(eZe,"HierarchyHandling",334,e1G,Wh,N$);eTS(285,22,{3:1,35:1,22:1,285:1},kv);var e6e=enw(eZe,"LabelSide",285,e1G,VL,Nz);eTS(93,22,{3:1,35:1,22:1,93:1},ky);var e6t=enw(eZe,"NodeLabelPlacement",93,e1G,ene,NG);eTS(249,22,{3:1,35:1,22:1,249:1},kw);var e6n=enw(eZe,"PortAlignment",249,e1G,Zp,NW);eTS(98,22,{3:1,35:1,22:1,98:1},k_);var e6r=enw(eZe,"PortConstraints",98,e1G,X0,NK);eTS(273,22,{3:1,35:1,22:1,273:1},kE);var e6i=enw(eZe,"PortLabelPlacement",273,e1G,Jk,NV);eTS(61,22,{3:1,35:1,22:1,61:1},kS);var e6a=enw(eZe,"PortSide",61,e1G,q5,NX);eTS(981,1,e$2,cJ),eUe.Qe=function(e){eL6(e)},Y5(eZe,"RandomLayouterOptions",981),eTS(982,1,{},oz),eUe.$e=function(){return new oV},eUe._e=function(e){},Y5(eZe,"RandomLayouterOptions/RandomFactory",982),eTS(374,22,{3:1,35:1,22:1,374:1},kk);var e6o=enw(eZe,"SizeConstraint",374,e1G,VA,Nq);eTS(259,22,{3:1,35:1,22:1,259:1},kx);var e6s=enw(eZe,"SizeOptions",259,e1G,en2,NZ);eTS(370,1,{1949:1},mV),eUe.b=!1,eUe.c=0,eUe.d=-1,eUe.e=null,eUe.f=null,eUe.g=-1,eUe.j=!1,eUe.k=!1,eUe.n=!1,eUe.o=0,eUe.q=0,eUe.r=0,Y5(eVL,"BasicProgressMonitor",370),eTS(972,209,ezL,oF),eUe.Ze=function(e,t){var n,r,i,a,o,s,u,c,l;(ewG(t,"Box layout",2),i=gR(LV(eT8(e,(e_C(),tdG)))),a=Pp(eT8(e,tdH),116),n=gN(LK(eT8(e,tdj))),r=gN(LK(eT8(e,tdF))),0===Pp(eT8(e,tdP),311).g)?(o=(s=new I4((e.a||(e.a=new FQ(e6k,e,10,11)),e.a)),Hj(),Mv(s,new h3(r)),s),u=eSI(e),(null==(c=LV(eT8(e,tdN)))||(BJ(c),c<=0))&&(c=1.3),l=eYA(o,i,a,u.a,u.b,n,(BJ(c),c)),eYx(e,l.a,l.b,!1,!0)):eRF(e,i,a,n),eEj(t)},Y5(eVL,"BoxLayoutProvider",972),eTS(973,1,e$C,h3),eUe.ue=function(e,t){return eOQ(this,Pp(e,33),Pp(t,33))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},eUe.a=!1,Y5(eVL,"BoxLayoutProvider/1",973),eTS(157,1,{157:1},etD,Lp),eUe.Ib=function(){return this.c?eC4(this.c):e_F(this.b)},Y5(eVL,"BoxLayoutProvider/Group",157),eTS(311,22,{3:1,35:1,22:1,311:1},kT);var e6u=enw(eVL,"BoxLayoutProvider/PackingMode",311,e1G,VI,NJ);eTS(974,1,e$C,oY),eUe.ue=function(e,t){return HK(Pp(e,157),Pp(t,157))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y5(eVL,"BoxLayoutProvider/lambda$0$Type",974),eTS(975,1,e$C,oB),eUe.ue=function(e,t){return Hm(Pp(e,157),Pp(t,157))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y5(eVL,"BoxLayoutProvider/lambda$1$Type",975),eTS(976,1,e$C,oU),eUe.ue=function(e,t){return Hg(Pp(e,157),Pp(t,157))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y5(eVL,"BoxLayoutProvider/lambda$2$Type",976),eTS(1365,1,{831:1},oH),eUe.qg=function(e,t){return _R(),!M4(t,160)||yX((eoM(),Pp(e,160)),t)},Y5(eVL,"ElkSpacings/AbstractSpacingsBuilder/lambda$0$Type",1365),eTS(1366,1,eUF,h4),eUe.td=function(e){eux(this.a,Pp(e,146))},Y5(eVL,"ElkSpacings/AbstractSpacingsBuilder/lambda$1$Type",1366),eTS(1367,1,eUF,oj),eUe.td=function(e){Pp(e,94),_R()},Y5(eVL,"ElkSpacings/AbstractSpacingsBuilder/lambda$2$Type",1367),eTS(1371,1,eUF,h5),eUe.td=function(e){erQ(this.a,Pp(e,94))},Y5(eVL,"ElkSpacings/AbstractSpacingsBuilder/lambda$3$Type",1371),eTS(1369,1,eU8,kM),eUe.Mb=function(e){return esI(this.a,this.b,Pp(e,146))},Y5(eVL,"ElkSpacings/AbstractSpacingsBuilder/lambda$4$Type",1369),eTS(1368,1,eU8,kO),eUe.Mb=function(e){return Lt(this.a,this.b,Pp(e,831))},Y5(eVL,"ElkSpacings/AbstractSpacingsBuilder/lambda$5$Type",1368),eTS(1370,1,eUF,kA),eUe.td=function(e){Fj(this.a,this.b,Pp(e,146))},Y5(eVL,"ElkSpacings/AbstractSpacingsBuilder/lambda$6$Type",1370),eTS(935,1,{},oP),eUe.Kb=function(e){return TA(e)},eUe.Fb=function(e){return this===e},Y5(eVL,"ElkUtil/lambda$0$Type",935),eTS(936,1,eUF,kL),eUe.td=function(e){exS(this.a,this.b,Pp(e,79))},eUe.a=0,eUe.b=0,Y5(eVL,"ElkUtil/lambda$1$Type",936),eTS(937,1,eUF,kC),eUe.td=function(e){gp(this.a,this.b,Pp(e,202))},eUe.a=0,eUe.b=0,Y5(eVL,"ElkUtil/lambda$2$Type",937),eTS(938,1,eUF,kI),eUe.td=function(e){Me(this.a,this.b,Pp(e,137))},eUe.a=0,eUe.b=0,Y5(eVL,"ElkUtil/lambda$3$Type",938),eTS(939,1,eUF,h6),eUe.td=function(e){RE(this.a,Pp(e,469))},Y5(eVL,"ElkUtil/lambda$4$Type",939),eTS(342,1,{35:1,342:1},pQ),eUe.wd=function(e){return Os(this,Pp(e,236))},eUe.Fb=function(e){var t;return!!M4(e,342)&&(t=Pp(e,342),this.a==t.a)},eUe.Hb=function(){return zy(this.a)},eUe.Ib=function(){return this.a+" (exclusive)"},eUe.a=0,Y5(eVL,"ExclusiveBounds/ExclusiveLowerBound",342),eTS(1138,209,ezL,oR),eUe.Ze=function(e,t){var n,r,i,a,o,s,u,l,f,d,h,p,b,m,g,v,y,w,_,E,S,k,x;for(ewG(t,"Fixed Layout",1),a=Pp(eT8(e,(eBB(),tha)),218),d=0,h=0,y=new Ow((e.a||(e.a=new FQ(e6k,e,10,11)),e.a));y.e!=y.i.gc();){for(g=Pp(epH(y),33),(x=Pp(eT8(g,(euw(),tp$)),8))&&(TP(g,x.a,x.b),Pp(eT8(g,tpF),174).Hc((ed6(),tbW))&&(p=Pp(eT8(g,tpB),8)).a>0&&p.b>0&&eYx(g,p.a,p.b,!0,!0)),d=eB4.Math.max(d,g.i+g.g),h=eB4.Math.max(h,g.j+g.f),l=new Ow((g.n||(g.n=new FQ(e6S,g,1,7)),g.n));l.e!=l.i.gc();)s=Pp(epH(l),137),(x=Pp(eT8(s,tp$),8))&&TP(s,x.a,x.b),d=eB4.Math.max(d,g.i+s.i+s.g),h=eB4.Math.max(h,g.j+s.j+s.f);for(E=new Ow((g.c||(g.c=new FQ(e6x,g,9,9)),g.c));E.e!=E.i.gc();)for(_=Pp(epH(E),118),(x=Pp(eT8(_,tp$),8))&&TP(_,x.a,x.b),S=g.i+_.i,k=g.j+_.j,d=eB4.Math.max(d,S+_.g),h=eB4.Math.max(h,k+_.f),u=new Ow((_.n||(_.n=new FQ(e6S,_,1,7)),_.n));u.e!=u.i.gc();)s=Pp(epH(u),137),(x=Pp(eT8(s,tp$),8))&&TP(s,x.a,x.b),d=eB4.Math.max(d,S+s.i+s.g),h=eB4.Math.max(h,k+s.j+s.f);for(i=new Fa(OH(eOi(g).a.Kc(),new c));eTk(i);)n=Pp(ZC(i),79),f=eYT(n),d=eB4.Math.max(d,f.a),h=eB4.Math.max(h,f.b);for(r=new Fa(OH(eOr(g).a.Kc(),new c));eTk(r);)n=Pp(ZC(r),79),z$(e_I(n))!=e&&(f=eYT(n),d=eB4.Math.max(d,f.a),h=eB4.Math.max(h,f.b))}if(a==(efE(),tpx))for(v=new Ow((e.a||(e.a=new FQ(e6k,e,10,11)),e.a));v.e!=v.i.gc();)for(g=Pp(epH(v),33),r=new Fa(OH(eOi(g).a.Kc(),new c));eTk(r);)n=Pp(ZC(r),79),0==(o=eDX(n)).b?ebu(n,thg,null):ebu(n,thg,o);gN(LK(eT8(e,(euw(),tpY))))||(w=Pp(eT8(e,tpU),116),eYx(e,m=d+w.b+w.c,b=h+w.d+w.a,!0,!0)),eEj(t)},Y5(eVL,"FixedLayoutProvider",1138),eTS(373,134,{3:1,414:1,373:1,94:1,134:1},oG,eer),eUe.Jf=function(e){var t,n,r,i,a,o,s,u,c;if(e)try{for(a=u=eIk(e,";,;"),o=0,s=a.length;o>16&eHd|t^r<<16},eUe.Kc=function(){return new h9(this)},eUe.Ib=function(){return null==this.a&&null==this.b?"pair(null,null)":null==this.a?"pair(null,"+efF(this.b)+")":null==this.b?"pair("+efF(this.a)+",null)":"pair("+efF(this.a)+","+efF(this.b)+")"},Y5(eVL,"Pair",46),eTS(983,1,eUE,h9),eUe.Nb=function(e){F8(this,e)},eUe.Ob=function(){return!this.c&&(!this.b&&null!=this.a.a||null!=this.a.b)},eUe.Pb=function(){if(!this.c&&!this.b&&null!=this.a.a)return this.b=!0,this.a.a;if(!this.c&&null!=this.a.b)return this.c=!0,this.a.b;throw p7(new bC)},eUe.Qb=function(){throw this.c&&null!=this.a.b?this.a.b=null:this.b&&null!=this.a.a&&(this.a.a=null),p7(new bT)},eUe.b=!1,eUe.c=!1,Y5(eVL,"Pair/1",983),eTS(448,1,{448:1},Ho),eUe.Fb=function(e){return UT(this.a,Pp(e,448).a)&&UT(this.c,Pp(e,448).c)&&UT(this.d,Pp(e,448).d)&&UT(this.b,Pp(e,448).b)},eUe.Hb=function(){return euF(eow(vx(e1R,1),eUp,1,5,[this.a,this.c,this.d,this.b]))},eUe.Ib=function(){return"("+this.a+eUd+this.c+eUd+this.d+eUd+this.b+")"},Y5(eVL,"Quadruple",448),eTS(1126,209,ezL,oV),eUe.Ze=function(e,t){var n,r,i,a,o;if(ewG(t,"Random Layout",1),0==(e.a||(e.a=new FQ(e6k,e,10,11)),e.a).i){eEj(t);return}i=(a=Pp(eT8(e,(ed5(),tbz)),19))&&0!=a.a?new qS(a.a):new efo,n=gR(LV(eT8(e,tbU))),o=gR(LV(eT8(e,tbG))),r=Pp(eT8(e,tbH),116),eF1(e,i,n,o,r),eEj(t)},Y5(eVL,"RandomLayoutProvider",1126),eTS(553,1,{}),eUe.qf=function(){return new kl(this.f.i,this.f.j)},eUe.We=function(e){return $k(e,(eBB(),thK))?eT8(this.f,tmu):eT8(this.f,e)},eUe.rf=function(){return new kl(this.f.g,this.f.f)},eUe.sf=function(){return this.g},eUe.Xe=function(e){return X2(this.f,e)},eUe.tf=function(e){eno(this.f,e.a),ens(this.f,e.b)},eUe.uf=function(e){ena(this.f,e.a),eni(this.f,e.b)},eUe.vf=function(e){this.g=e},eUe.g=0,Y5(eZI,"ElkGraphAdapters/AbstractElkGraphElementAdapter",553),eTS(554,1,{839:1},h8),eUe.wf=function(){var e,t;if(!this.b)for(this.b=K$(UB(this.a).i),t=new Ow(UB(this.a));t.e!=t.i.gc();)e=Pp(epH(t),137),P_(this.b,new gO(e));return this.b},eUe.b=null,Y5(eZI,"ElkGraphAdapters/ElkEdgeAdapter",554),eTS(301,553,{},gM),eUe.xf=function(){return em3(this)},eUe.a=null,Y5(eZI,"ElkGraphAdapters/ElkGraphAdapter",301),eTS(630,553,{181:1},gO),Y5(eZI,"ElkGraphAdapters/ElkLabelAdapter",630),eTS(629,553,{680:1},AC),eUe.wf=function(){return em0(this)},eUe.Af=function(){var e;return(e=Pp(eT8(this.f,(eBB(),thy)),142))||(e=new mh),e},eUe.Cf=function(){return em2(this)},eUe.Ef=function(e){var t;t=new Dk(e),ebu(this.f,(eBB(),thy),t)},eUe.Ff=function(e){ebu(this.f,(eBB(),thN),new DS(e))},eUe.yf=function(){return this.d},eUe.zf=function(){var e,t;if(!this.a)for(this.a=new p0,t=new Fa(OH(eOr(Pp(this.f,33)).a.Kc(),new c));eTk(t);)e=Pp(ZC(t),79),P_(this.a,new h8(e));return this.a},eUe.Bf=function(){var e,t;if(!this.c)for(this.c=new p0,t=new Fa(OH(eOi(Pp(this.f,33)).a.Kc(),new c));eTk(t);)e=Pp(ZC(t),79),P_(this.c,new h8(e));return this.c},eUe.Df=function(){return 0!=H8(Pp(this.f,33)).i||gN(LK(Pp(this.f,33).We((eBB(),thh))))},eUe.Gf=function(){QV(this,(_q(),tms))},eUe.a=null,eUe.b=null,eUe.c=null,eUe.d=null,eUe.e=null,Y5(eZI,"ElkGraphAdapters/ElkNodeAdapter",629),eTS(1266,553,{838:1},pA),eUe.wf=function(){return egd(this)},eUe.zf=function(){var e,t;if(!this.a)for(this.a=AH(Pp(this.f,118).xg().i),t=new Ow(Pp(this.f,118).xg());t.e!=t.i.gc();)e=Pp(epH(t),79),P_(this.a,new h8(e));return this.a},eUe.Bf=function(){var e,t;if(!this.c)for(this.c=AH(Pp(this.f,118).yg().i),t=new Ow(Pp(this.f,118).yg());t.e!=t.i.gc();)e=Pp(epH(t),79),P_(this.c,new h8(e));return this.c},eUe.Hf=function(){return Pp(Pp(this.f,118).We((eBB(),th0)),61)},eUe.If=function(){var e,t,n,r,i,a,o,s;for(r=zY(Pp(this.f,118)),n=new Ow(Pp(this.f,118).yg());n.e!=n.i.gc();)for(e=Pp(epH(n),79),s=new Ow((e.c||(e.c=new Ih(e6m,e,5,8)),e.c));s.e!=s.i.gc();)if(o=Pp(epH(s),82),etg(ewH(o),r)||ewH(o)==r&&gN(LK(eT8(e,(eBB(),thp)))))return!0;for(t=new Ow(Pp(this.f,118).xg());t.e!=t.i.gc();)for(e=Pp(epH(t),79),a=new Ow((e.b||(e.b=new Ih(e6m,e,4,7)),e.b));a.e!=a.i.gc();)if(i=Pp(epH(a),82),etg(ewH(i),r))return!0;return!1},eUe.a=null,eUe.b=null,eUe.c=null,Y5(eZI,"ElkGraphAdapters/ElkPortAdapter",1266),eTS(1267,1,e$C,oq),eUe.ue=function(e,t){return eC3(Pp(e,118),Pp(t,118))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y5(eZI,"ElkGraphAdapters/PortComparator",1267);var e6f=RL(eZD,"EObject"),e6d=RL(eZN,eZP),e6h=RL(eZN,eZR),e6p=RL(eZN,eZj),e6b=RL(eZN,"ElkShape"),e6m=RL(eZN,eZF),e6g=RL(eZN,eZY),e6v=RL(eZN,eZB),e6y=RL(eZD,eZU),e6w=RL(eZD,"EFactory"),e6_=RL(eZD,eZH),e6E=RL(eZD,"EPackage"),e6S=RL(eZN,eZ$),e6k=RL(eZN,eZz),e6x=RL(eZN,eZG);eTS(90,1,eZW),eUe.Jg=function(){return this.Kg(),null},eUe.Kg=function(){return null},eUe.Lg=function(){return this.Kg(),!1},eUe.Mg=function(){return!1},eUe.Ng=function(e){eam(this,e)},Y5(eZK,"BasicNotifierImpl",90),eTS(97,90,eZ0),eUe.nh=function(){return TO(this)},eUe.Og=function(e,t){return e},eUe.Pg=function(){throw p7(new bO)},eUe.Qg=function(e){var t;return t=ebY(Pp(ee2(this.Tg(),this.Vg()),18)),this.eh().ih(this,t.n,t.f,e)},eUe.Rg=function(e,t){throw p7(new bO)},eUe.Sg=function(e,t,n){return eDg(this,e,t,n)},eUe.Tg=function(){var e;return this.Pg()&&(e=this.Pg().ck())?e:this.zh()},eUe.Ug=function(){return eTp(this)},eUe.Vg=function(){throw p7(new bO)},eUe.Wg=function(){var e,t;return(t=this.ph().dk())||this.Pg().ik(t=(_0(),null==(e=zr(eNT(this.Tg())))?tgV:new AA(this,e))),t},eUe.Xg=function(e,t){return e},eUe.Yg=function(e){var t;return(t=e.Gj())?e.aj():edv(this.Tg(),e)},eUe.Zg=function(){var e;return(e=this.Pg())?e.fk():null},eUe.$g=function(){return this.Pg()?this.Pg().ck():null},eUe._g=function(e,t,n){return ebl(this,e,t,n)},eUe.ah=function(e){return JG(this,e)},eUe.bh=function(e,t){return ZN(this,e,t)},eUe.dh=function(){var e;return!!(e=this.Pg())&&e.gk()},eUe.eh=function(){throw p7(new bO)},eUe.fh=function(){return ehO(this)},eUe.gh=function(e,t,n,r){return ep0(this,e,t,r)},eUe.hh=function(e,t,n){var r;return(r=Pp(ee2(this.Tg(),t),66)).Nj().Qj(this,this.yh(),t-this.Ah(),e,n)},eUe.ih=function(e,t,n,r){return $7(this,e,t,r)},eUe.jh=function(e,t,n){var r;return(r=Pp(ee2(this.Tg(),t),66)).Nj().Rj(this,this.yh(),t-this.Ah(),e,n)},eUe.kh=function(){return!!this.Pg()&&!!this.Pg().ek()},eUe.lh=function(e){return epY(this,e)},eUe.mh=function(e){return zz(this,e)},eUe.oh=function(e){return eR2(this,e)},eUe.ph=function(){throw p7(new bO)},eUe.qh=function(){return this.Pg()?this.Pg().ek():null},eUe.rh=function(){return ehO(this)},eUe.sh=function(e,t){eS5(this,e,t)},eUe.th=function(e){this.ph().hk(e)},eUe.uh=function(e){this.ph().kk(e)},eUe.vh=function(e){this.ph().jk(e)},eUe.wh=function(e,t){var n,r,i,a;return(a=this.Zg())&&e&&(t=ep6(a.Vk(),this,t),a.Zk(this)),(r=this.eh())&&((eIy(this,this.eh(),this.Vg()).Bb&eH3)!=0?(i=r.fh())&&(e?a||i.Zk(this):i.Yk(this)):(t=(n=this.Vg())>=0?this.Qg(t):this.eh().ih(this,-1-n,null,t),t=this.Sg(null,-1,t))),this.uh(e),t},eUe.xh=function(e){var t,n,r,i,a,o,s,u;if((a=edv(n=this.Tg(),e))>=(t=this.Ah()))return Pp(e,66).Nj().Uj(this,this.yh(),a-t);if(a<=-1){if(o=eR3((eSp(),tvc),n,e)){if(_4(),Pp(o,66).Oj()||(o=Wk(QZ(tvc,o))),i=Pp((r=this.Yg(o))>=0?this._g(r,!0,!0):exk(this,o,!0),153),(u=o.Zj())>1||-1==u)return Pp(Pp(i,215).hl(e,!1),76)}else throw p7(new gL(eZV+e.ne()+eZX))}else if(e.$j())return Pp((r=this.Yg(e))>=0?this._g(r,!1,!0):exk(this,e,!1),76);return new k4(this,e)},eUe.yh=function(){return Q5(this)},eUe.zh=function(){return(BM(),tgv).S},eUe.Ah=function(){return Y1(this.zh())},eUe.Bh=function(e){eSi(this,e)},eUe.Ib=function(){return eMT(this)},Y5(eZ2,"BasicEObjectImpl",97),eTS(114,97,{105:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1}),eUe.Ch=function(e){var t;return(t=Q6(this))[e]},eUe.Dh=function(e,t){var n;n=Q6(this),Bc(n,e,t)},eUe.Eh=function(e){var t;t=Q6(this),Bc(t,e,null)},eUe.Jg=function(){return Pp(eaS(this,4),126)},eUe.Kg=function(){throw p7(new bO)},eUe.Lg=function(){return(4&this.Db)!=0},eUe.Pg=function(){throw p7(new bO)},eUe.Fh=function(e){ehU(this,2,e)},eUe.Rg=function(e,t){this.Db=t<<16|255&this.Db,this.Fh(e)},eUe.Tg=function(){return $S(this)},eUe.Vg=function(){return this.Db>>16},eUe.Wg=function(){var e,t;return _0(),null==(t=zr(eNT((e=Pp(eaS(this,16),26))||this.zh())))?tgV:new AA(this,t)},eUe.Mg=function(){return(1&this.Db)==0},eUe.Zg=function(){return Pp(eaS(this,128),1935)},eUe.$g=function(){return Pp(eaS(this,16),26)},eUe.dh=function(){return(32&this.Db)!=0},eUe.eh=function(){return Pp(eaS(this,2),49)},eUe.kh=function(){return(64&this.Db)!=0},eUe.ph=function(){throw p7(new bO)},eUe.qh=function(){return Pp(eaS(this,64),281)},eUe.th=function(e){ehU(this,16,e)},eUe.uh=function(e){ehU(this,128,e)},eUe.vh=function(e){ehU(this,64,e)},eUe.yh=function(){return ehH(this)},eUe.Db=0,Y5(eZ2,"MinimalEObjectImpl",114),eTS(115,114,{105:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1}),eUe.Fh=function(e){this.Cb=e},eUe.eh=function(){return this.Cb},Y5(eZ2,"MinimalEObjectImpl/Container",115),eTS(1985,115,{105:1,413:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1}),eUe._g=function(e,t,n){return egp(this,e,t,n)},eUe.jh=function(e,t,n){return e_9(this,e,t,n)},eUe.lh=function(e){return Wz(this,e)},eUe.sh=function(e,t){esU(this,e,t)},eUe.zh=function(){return eBa(),tm_},eUe.Bh=function(e){eoF(this,e)},eUe.Ve=function(){return epD(this)},eUe.We=function(e){return eT8(this,e)},eUe.Xe=function(e){return X2(this,e)},eUe.Ye=function(e,t){return ebu(this,e,t)},Y5(eZ3,"EMapPropertyHolderImpl",1985),eTS(567,115,{105:1,469:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},oJ),eUe._g=function(e,t,n){switch(e){case 0:return this.a;case 1:return this.b}return ebl(this,e,t,n)},eUe.lh=function(e){switch(e){case 0:return 0!=this.a;case 1:return 0!=this.b}return epY(this,e)},eUe.sh=function(e,t){switch(e){case 0:ent(this,gP(LV(t)));return;case 1:enn(this,gP(LV(t)));return}eS5(this,e,t)},eUe.zh=function(){return eBa(),tmf},eUe.Bh=function(e){switch(e){case 0:ent(this,0);return;case 1:enn(this,0);return}eSi(this,e)},eUe.Ib=function(){var e;return(64&this.Db)!=0?eMT(this):(e=new O1(eMT(this)),e.a+=" (x: ",y$(e,this.a),e.a+=", y: ",y$(e,this.b),e.a+=")",e.a)},eUe.a=0,eUe.b=0,Y5(eZ3,"ElkBendPointImpl",567),eTS(723,1985,{105:1,413:1,160:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1}),eUe._g=function(e,t,n){return ec2(this,e,t,n)},eUe.hh=function(e,t,n){return ew0(this,e,t,n)},eUe.jh=function(e,t,n){return ea9(this,e,t,n)},eUe.lh=function(e){return eaT(this,e)},eUe.sh=function(e,t){eyb(this,e,t)},eUe.zh=function(){return eBa(),tmb},eUe.Bh=function(e){ecx(this,e)},eUe.zg=function(){return this.k},eUe.Ag=function(){return UB(this)},eUe.Ib=function(){return el4(this)},eUe.k=null,Y5(eZ3,"ElkGraphElementImpl",723),eTS(724,723,{105:1,413:1,160:1,470:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1}),eUe._g=function(e,t,n){return efN(this,e,t,n)},eUe.lh=function(e){return ef8(this,e)},eUe.sh=function(e,t){eym(this,e,t)},eUe.zh=function(){return eBa(),tmw},eUe.Bh=function(e){edS(this,e)},eUe.Bg=function(){return this.f},eUe.Cg=function(){return this.g},eUe.Dg=function(){return this.i},eUe.Eg=function(){return this.j},eUe.Fg=function(e,t){TN(this,e,t)},eUe.Gg=function(e,t){TP(this,e,t)},eUe.Hg=function(e){eno(this,e)},eUe.Ig=function(e){ens(this,e)},eUe.Ib=function(){return eEp(this)},eUe.f=0,eUe.g=0,eUe.i=0,eUe.j=0,Y5(eZ3,"ElkShapeImpl",724),eTS(725,724,{105:1,413:1,82:1,160:1,470:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1}),eUe._g=function(e,t,n){return ebQ(this,e,t,n)},eUe.hh=function(e,t,n){return evZ(this,e,t,n)},eUe.jh=function(e,t,n){return evX(this,e,t,n)},eUe.lh=function(e){return esM(this,e)},eUe.sh=function(e,t){eTH(this,e,t)},eUe.zh=function(){return eBa(),tmd},eUe.Bh=function(e){ep2(this,e)},eUe.xg=function(){return this.d||(this.d=new Ih(e6g,this,8,5)),this.d},eUe.yg=function(){return this.e||(this.e=new Ih(e6g,this,7,4)),this.e},Y5(eZ3,"ElkConnectableShapeImpl",725),eTS(352,723,{105:1,413:1,79:1,160:1,352:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},oX),eUe.Qg=function(e){return evo(this,e)},eUe._g=function(e,t,n){switch(e){case 3:return zF(this);case 4:return this.b||(this.b=new Ih(e6m,this,4,7)),this.b;case 5:return this.c||(this.c=new Ih(e6m,this,5,8)),this.c;case 6:return this.a||(this.a=new FQ(e6v,this,6,6)),this.a;case 7:return OQ(),this.b||(this.b=new Ih(e6m,this,4,7)),!(this.b.i<=1)||(this.c||(this.c=new Ih(e6m,this,5,8)),!(this.c.i<=1));case 8:return OQ(),!!eTc(this);case 9:return OQ(),!!exb(this);case 10:return OQ(),this.b||(this.b=new Ih(e6m,this,4,7)),0!=this.b.i&&(this.c||(this.c=new Ih(e6m,this,5,8)),0!=this.c.i)}return ec2(this,e,t,n)},eUe.hh=function(e,t,n){var r;switch(t){case 3:return this.Cb&&(n=(r=this.Db>>16)>=0?evo(this,n):this.Cb.ih(this,-1-r,null,n)),Cu(this,Pp(e,33),n);case 4:return this.b||(this.b=new Ih(e6m,this,4,7)),edF(this.b,e,n);case 5:return this.c||(this.c=new Ih(e6m,this,5,8)),edF(this.c,e,n);case 6:return this.a||(this.a=new FQ(e6v,this,6,6)),edF(this.a,e,n)}return ew0(this,e,t,n)},eUe.jh=function(e,t,n){switch(t){case 3:return Cu(this,null,n);case 4:return this.b||(this.b=new Ih(e6m,this,4,7)),ep6(this.b,e,n);case 5:return this.c||(this.c=new Ih(e6m,this,5,8)),ep6(this.c,e,n);case 6:return this.a||(this.a=new FQ(e6v,this,6,6)),ep6(this.a,e,n)}return ea9(this,e,t,n)},eUe.lh=function(e){switch(e){case 3:return!!zF(this);case 4:return!!this.b&&0!=this.b.i;case 5:return!!this.c&&0!=this.c.i;case 6:return!!this.a&&0!=this.a.i;case 7:return this.b||(this.b=new Ih(e6m,this,4,7)),!(this.b.i<=1&&(this.c||(this.c=new Ih(e6m,this,5,8)),this.c.i<=1));case 8:return eTc(this);case 9:return exb(this);case 10:return this.b||(this.b=new Ih(e6m,this,4,7)),0!=this.b.i&&(this.c||(this.c=new Ih(e6m,this,5,8)),0!=this.c.i)}return eaT(this,e)},eUe.sh=function(e,t){switch(e){case 3:eOC(this,Pp(t,33));return;case 4:this.b||(this.b=new Ih(e6m,this,4,7)),eRT(this.b),this.b||(this.b=new Ih(e6m,this,4,7)),Y4(this.b,Pp(t,14));return;case 5:this.c||(this.c=new Ih(e6m,this,5,8)),eRT(this.c),this.c||(this.c=new Ih(e6m,this,5,8)),Y4(this.c,Pp(t,14));return;case 6:this.a||(this.a=new FQ(e6v,this,6,6)),eRT(this.a),this.a||(this.a=new FQ(e6v,this,6,6)),Y4(this.a,Pp(t,14));return}eyb(this,e,t)},eUe.zh=function(){return eBa(),tmh},eUe.Bh=function(e){switch(e){case 3:eOC(this,null);return;case 4:this.b||(this.b=new Ih(e6m,this,4,7)),eRT(this.b);return;case 5:this.c||(this.c=new Ih(e6m,this,5,8)),eRT(this.c);return;case 6:this.a||(this.a=new FQ(e6v,this,6,6)),eRT(this.a);return}ecx(this,e)},eUe.Ib=function(){return ePY(this)},Y5(eZ3,"ElkEdgeImpl",352),eTS(439,1985,{105:1,413:1,202:1,439:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},oQ),eUe.Qg=function(e){return eg1(this,e)},eUe._g=function(e,t,n){switch(e){case 1:return this.j;case 2:return this.k;case 3:return this.b;case 4:return this.c;case 5:return this.a||(this.a=new O_(e6h,this,5)),this.a;case 6:return zB(this);case 7:if(t)return ebF(this);return this.i;case 8:if(t)return ebj(this);return this.f;case 9:return this.g||(this.g=new Ih(e6v,this,9,10)),this.g;case 10:return this.e||(this.e=new Ih(e6v,this,10,9)),this.e;case 11:return this.d}return egp(this,e,t,n)},eUe.hh=function(e,t,n){var r,i,a;switch(t){case 6:return this.Cb&&(n=(i=this.Db>>16)>=0?eg1(this,n):this.Cb.ih(this,-1-i,null,n)),Cc(this,Pp(e,79),n);case 9:return this.g||(this.g=new Ih(e6v,this,9,10)),edF(this.g,e,n);case 10:return this.e||(this.e=new Ih(e6v,this,10,9)),edF(this.e,e,n)}return(a=Pp(ee2((r=Pp(eaS(this,16),26))||(eBa(),tmp),t),66)).Nj().Qj(this,ehH(this),t-Y1((eBa(),tmp)),e,n)},eUe.jh=function(e,t,n){switch(t){case 5:return this.a||(this.a=new O_(e6h,this,5)),ep6(this.a,e,n);case 6:return Cc(this,null,n);case 9:return this.g||(this.g=new Ih(e6v,this,9,10)),ep6(this.g,e,n);case 10:return this.e||(this.e=new Ih(e6v,this,10,9)),ep6(this.e,e,n)}return e_9(this,e,t,n)},eUe.lh=function(e){switch(e){case 1:return 0!=this.j;case 2:return 0!=this.k;case 3:return 0!=this.b;case 4:return 0!=this.c;case 5:return!!this.a&&0!=this.a.i;case 6:return!!zB(this);case 7:return!!this.i;case 8:return!!this.f;case 9:return!!this.g&&0!=this.g.i;case 10:return!!this.e&&0!=this.e.i;case 11:return null!=this.d}return Wz(this,e)},eUe.sh=function(e,t){switch(e){case 1:enu(this,gP(LV(t)));return;case 2:enl(this,gP(LV(t)));return;case 3:enr(this,gP(LV(t)));return;case 4:enc(this,gP(LV(t)));return;case 5:this.a||(this.a=new O_(e6h,this,5)),eRT(this.a),this.a||(this.a=new O_(e6h,this,5)),Y4(this.a,Pp(t,14));return;case 6:eOA(this,Pp(t,79));return;case 7:err(this,Pp(t,82));return;case 8:ern(this,Pp(t,82));return;case 9:this.g||(this.g=new Ih(e6v,this,9,10)),eRT(this.g),this.g||(this.g=new Ih(e6v,this,9,10)),Y4(this.g,Pp(t,14));return;case 10:this.e||(this.e=new Ih(e6v,this,10,9)),eRT(this.e),this.e||(this.e=new Ih(e6v,this,10,9)),Y4(this.e,Pp(t,14));return;case 11:erO(this,Lq(t));return}esU(this,e,t)},eUe.zh=function(){return eBa(),tmp},eUe.Bh=function(e){switch(e){case 1:enu(this,0);return;case 2:enl(this,0);return;case 3:enr(this,0);return;case 4:enc(this,0);return;case 5:this.a||(this.a=new O_(e6h,this,5)),eRT(this.a);return;case 6:eOA(this,null);return;case 7:err(this,null);return;case 8:ern(this,null);return;case 9:this.g||(this.g=new Ih(e6v,this,9,10)),eRT(this.g);return;case 10:this.e||(this.e=new Ih(e6v,this,10,9)),eRT(this.e);return;case 11:erO(this,null);return}eoF(this,e)},eUe.Ib=function(){return ex2(this)},eUe.b=0,eUe.c=0,eUe.d=null,eUe.j=0,eUe.k=0,Y5(eZ3,"ElkEdgeSectionImpl",439),eTS(150,115,{105:1,92:1,90:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1}),eUe._g=function(e,t,n){var r;return 0==e?(this.Ab||(this.Ab=new FQ(tm4,this,0,3)),this.Ab):Qt(this,e-Y1(this.zh()),ee2((r=Pp(eaS(this,16),26))||this.zh(),e),t,n)},eUe.hh=function(e,t,n){var r,i;return 0==t?(this.Ab||(this.Ab=new FQ(tm4,this,0,3)),edF(this.Ab,e,n)):(i=Pp(ee2((r=Pp(eaS(this,16),26))||this.zh(),t),66)).Nj().Qj(this,ehH(this),t-Y1(this.zh()),e,n)},eUe.jh=function(e,t,n){var r,i;return 0==t?(this.Ab||(this.Ab=new FQ(tm4,this,0,3)),ep6(this.Ab,e,n)):(i=Pp(ee2((r=Pp(eaS(this,16),26))||this.zh(),t),66)).Nj().Rj(this,ehH(this),t-Y1(this.zh()),e,n)},eUe.lh=function(e){var t;return 0==e?!!this.Ab&&0!=this.Ab.i:VP(this,e-Y1(this.zh()),ee2((t=Pp(eaS(this,16),26))||this.zh(),e))},eUe.oh=function(e){return eF9(this,e)},eUe.sh=function(e,t){var n;if(0===e){this.Ab||(this.Ab=new FQ(tm4,this,0,3)),eRT(this.Ab),this.Ab||(this.Ab=new FQ(tm4,this,0,3)),Y4(this.Ab,Pp(t,14));return}efL(this,e-Y1(this.zh()),ee2((n=Pp(eaS(this,16),26))||this.zh(),e),t)},eUe.uh=function(e){ehU(this,128,e)},eUe.zh=function(){return eBK(),tgL},eUe.Bh=function(e){var t;if(0===e){this.Ab||(this.Ab=new FQ(tm4,this,0,3)),eRT(this.Ab);return}ec6(this,e-Y1(this.zh()),ee2((t=Pp(eaS(this,16),26))||this.zh(),e))},eUe.Gh=function(){this.Bb|=1},eUe.Hh=function(e){return eDM(this,e)},eUe.Bb=0,Y5(eZ2,"EModelElementImpl",150),eTS(704,150,{105:1,92:1,90:1,471:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1},cQ),eUe.Ih=function(e,t){return ejZ(this,e,t)},eUe.Jh=function(e){var t,n,r,i,a;if(this.a!=etP(e)||(256&e.Bb)!=0)throw p7(new gL(eZ7+e.zb+eZ6));for(r=$E(e);0!=qt(r.a).i;){if(n=Pp(ejc(r,0,(a=(t=Pp(etj(qt(r.a),0),87)).c,M4(a,88)?Pp(a,26):(eBK(),tgI))),26),em4(n))return i=etP(n).Nh().Jh(n),Pp(i,49).th(e),i;r=$E(n)}return(null!=e.D?e.D:e.B)=="java.util.Map$Entry"?new RO(e):new Pq(e)},eUe.Kh=function(e,t){return eBd(this,e,t)},eUe._g=function(e,t,n){var r;switch(e){case 0:return this.Ab||(this.Ab=new FQ(tm4,this,0,3)),this.Ab;case 1:return this.a}return Qt(this,e-Y1((eBK(),tgM)),ee2((r=Pp(eaS(this,16),26))||tgM,e),t,n)},eUe.hh=function(e,t,n){var r,i;switch(t){case 0:return this.Ab||(this.Ab=new FQ(tm4,this,0,3)),edF(this.Ab,e,n);case 1:return this.a&&(n=Pp(this.a,49).ih(this,4,e6E,n)),ecb(this,Pp(e,235),n)}return(i=Pp(ee2((r=Pp(eaS(this,16),26))||(eBK(),tgM),t),66)).Nj().Qj(this,ehH(this),t-Y1((eBK(),tgM)),e,n)},eUe.jh=function(e,t,n){var r,i;switch(t){case 0:return this.Ab||(this.Ab=new FQ(tm4,this,0,3)),ep6(this.Ab,e,n);case 1:return ecb(this,null,n)}return(i=Pp(ee2((r=Pp(eaS(this,16),26))||(eBK(),tgM),t),66)).Nj().Rj(this,ehH(this),t-Y1((eBK(),tgM)),e,n)},eUe.lh=function(e){var t;switch(e){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return!!this.a}return VP(this,e-Y1((eBK(),tgM)),ee2((t=Pp(eaS(this,16),26))||tgM,e))},eUe.sh=function(e,t){var n;switch(e){case 0:this.Ab||(this.Ab=new FQ(tm4,this,0,3)),eRT(this.Ab),this.Ab||(this.Ab=new FQ(tm4,this,0,3)),Y4(this.Ab,Pp(t,14));return;case 1:e_B(this,Pp(t,235));return}efL(this,e-Y1((eBK(),tgM)),ee2((n=Pp(eaS(this,16),26))||tgM,e),t)},eUe.zh=function(){return eBK(),tgM},eUe.Bh=function(e){var t;switch(e){case 0:this.Ab||(this.Ab=new FQ(tm4,this,0,3)),eRT(this.Ab);return;case 1:e_B(this,null);return}ec6(this,e-Y1((eBK(),tgM)),ee2((t=Pp(eaS(this,16),26))||tgM,e))},Y5(eZ2,"EFactoryImpl",704),eTS(eXt,704,{105:1,2014:1,92:1,90:1,471:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1},o1),eUe.Ih=function(e,t){switch(e.yj()){case 12:return Pp(t,146).tg();case 13:return efF(t);default:throw p7(new gL(eZ5+e.ne()+eZ6))}},eUe.Jh=function(e){var t;switch(-1==e.G&&(e.G=(t=etP(e))?ebv(t.Mh(),e):-1),e.G){case 4:return new o0;case 6:return new mS;case 7:return new mk;case 8:return new oX;case 9:return new oJ;case 10:return new oQ;case 11:return new o3;default:throw p7(new gL(eZ7+e.zb+eZ6))}},eUe.Kh=function(e,t){switch(e.yj()){case 13:case 12:return null;default:throw p7(new gL(eZ5+e.ne()+eZ6))}},Y5(eZ3,"ElkGraphFactoryImpl",eXt),eTS(438,150,{105:1,92:1,90:1,147:1,191:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1}),eUe.Wg=function(){var e,t;return null==(t=zr(eNT((e=Pp(eaS(this,16),26))||this.zh())))?(_0(),_0(),tgV):new Lg(this,t)},eUe._g=function(e,t,n){var r;switch(e){case 0:return this.Ab||(this.Ab=new FQ(tm4,this,0,3)),this.Ab;case 1:return this.ne()}return Qt(this,e-Y1(this.zh()),ee2((r=Pp(eaS(this,16),26))||this.zh(),e),t,n)},eUe.lh=function(e){var t;switch(e){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb}return VP(this,e-Y1(this.zh()),ee2((t=Pp(eaS(this,16),26))||this.zh(),e))},eUe.sh=function(e,t){var n;switch(e){case 0:this.Ab||(this.Ab=new FQ(tm4,this,0,3)),eRT(this.Ab),this.Ab||(this.Ab=new FQ(tm4,this,0,3)),Y4(this.Ab,Pp(t,14));return;case 1:this.Lh(Lq(t));return}efL(this,e-Y1(this.zh()),ee2((n=Pp(eaS(this,16),26))||this.zh(),e),t)},eUe.zh=function(){return eBK(),tgC},eUe.Bh=function(e){var t;switch(e){case 0:this.Ab||(this.Ab=new FQ(tm4,this,0,3)),eRT(this.Ab);return;case 1:this.Lh(null);return}ec6(this,e-Y1(this.zh()),ee2((t=Pp(eaS(this,16),26))||this.zh(),e))},eUe.ne=function(){return this.zb},eUe.Lh=function(e){er3(this,e)},eUe.Ib=function(){return ecF(this)},eUe.zb=null,Y5(eZ2,"ENamedElementImpl",438),eTS(179,438,{105:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,49:1,97:1,150:1,179:1,114:1,115:1,675:1},$y),eUe.Qg=function(e){return eg5(this,e)},eUe._g=function(e,t,n){var r;switch(e){case 0:return this.Ab||(this.Ab=new FQ(tm4,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.yb;case 3:return this.xb;case 4:return this.sb;case 5:return this.rb||(this.rb=new Fq(this,tm8,this)),this.rb;case 6:return this.vb||(this.vb=new Ia(e6E,this,6,7)),this.vb;case 7:if(t)return this.Db>>16==7?Pp(this.Cb,235):null;return zU(this)}return Qt(this,e-Y1((eBK(),tgP)),ee2((r=Pp(eaS(this,16),26))||tgP,e),t,n)},eUe.hh=function(e,t,n){var r,i,a;switch(t){case 0:return this.Ab||(this.Ab=new FQ(tm4,this,0,3)),edF(this.Ab,e,n);case 4:return this.sb&&(n=Pp(this.sb,49).ih(this,1,e6w,n)),ecY(this,Pp(e,471),n);case 5:return this.rb||(this.rb=new Fq(this,tm8,this)),edF(this.rb,e,n);case 6:return this.vb||(this.vb=new Ia(e6E,this,6,7)),edF(this.vb,e,n);case 7:return this.Cb&&(n=(i=this.Db>>16)>=0?eg5(this,n):this.Cb.ih(this,-1-i,null,n)),eDg(this,e,7,n)}return(a=Pp(ee2((r=Pp(eaS(this,16),26))||(eBK(),tgP),t),66)).Nj().Qj(this,ehH(this),t-Y1((eBK(),tgP)),e,n)},eUe.jh=function(e,t,n){var r,i;switch(t){case 0:return this.Ab||(this.Ab=new FQ(tm4,this,0,3)),ep6(this.Ab,e,n);case 4:return ecY(this,null,n);case 5:return this.rb||(this.rb=new Fq(this,tm8,this)),ep6(this.rb,e,n);case 6:return this.vb||(this.vb=new Ia(e6E,this,6,7)),ep6(this.vb,e,n);case 7:return eDg(this,null,7,n)}return(i=Pp(ee2((r=Pp(eaS(this,16),26))||(eBK(),tgP),t),66)).Nj().Rj(this,ehH(this),t-Y1((eBK(),tgP)),e,n)},eUe.lh=function(e){var t;switch(e){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return null!=this.yb;case 3:return null!=this.xb;case 4:return!!this.sb;case 5:return!!this.rb&&0!=this.rb.i;case 6:return!!this.vb&&0!=this.vb.i;case 7:return!!zU(this)}return VP(this,e-Y1((eBK(),tgP)),ee2((t=Pp(eaS(this,16),26))||tgP,e))},eUe.oh=function(e){var t;return(t=eAd(this,e))||eF9(this,e)},eUe.sh=function(e,t){var n;switch(e){case 0:this.Ab||(this.Ab=new FQ(tm4,this,0,3)),eRT(this.Ab),this.Ab||(this.Ab=new FQ(tm4,this,0,3)),Y4(this.Ab,Pp(t,14));return;case 1:er3(this,Lq(t));return;case 2:er5(this,Lq(t));return;case 3:er4(this,Lq(t));return;case 4:e_8(this,Pp(t,471));return;case 5:this.rb||(this.rb=new Fq(this,tm8,this)),eRT(this.rb),this.rb||(this.rb=new Fq(this,tm8,this)),Y4(this.rb,Pp(t,14));return;case 6:this.vb||(this.vb=new Ia(e6E,this,6,7)),eRT(this.vb),this.vb||(this.vb=new Ia(e6E,this,6,7)),Y4(this.vb,Pp(t,14));return}efL(this,e-Y1((eBK(),tgP)),ee2((n=Pp(eaS(this,16),26))||tgP,e),t)},eUe.vh=function(e){var t,n;if(e&&this.rb)for(n=new Ow(this.rb);n.e!=n.i.gc();)t=epH(n),M4(t,351)&&(Pp(t,351).w=null);ehU(this,64,e)},eUe.zh=function(){return eBK(),tgP},eUe.Bh=function(e){var t;switch(e){case 0:this.Ab||(this.Ab=new FQ(tm4,this,0,3)),eRT(this.Ab);return;case 1:er3(this,null);return;case 2:er5(this,null);return;case 3:er4(this,null);return;case 4:e_8(this,null);return;case 5:this.rb||(this.rb=new Fq(this,tm8,this)),eRT(this.rb);return;case 6:this.vb||(this.vb=new Ia(e6E,this,6,7)),eRT(this.vb);return}ec6(this,e-Y1((eBK(),tgP)),ee2((t=Pp(eaS(this,16),26))||tgP,e))},eUe.Gh=function(){egb(this)},eUe.Mh=function(){return this.rb||(this.rb=new Fq(this,tm8,this)),this.rb},eUe.Nh=function(){return this.sb},eUe.Oh=function(){return this.ub},eUe.Ph=function(){return this.xb},eUe.Qh=function(){return this.yb},eUe.Rh=function(e){this.ub=e},eUe.Ib=function(){var e;return(64&this.Db)!=0?ecF(this):(e=new O1(ecF(this)),e.a+=" (nsURI: ",xk(e,this.yb),e.a+=", nsPrefix: ",xk(e,this.xb),e.a+=")",e.a)},eUe.xb=null,eUe.yb=null,Y5(eZ2,"EPackageImpl",179),eTS(555,179,{105:1,2016:1,555:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,49:1,97:1,150:1,179:1,114:1,115:1,675:1},eTv),eUe.q=!1,eUe.r=!1;var e6T=!1;Y5(eZ3,"ElkGraphPackageImpl",555),eTS(354,724,{105:1,413:1,160:1,137:1,470:1,354:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},o0),eUe.Qg=function(e){return eg0(this,e)},eUe._g=function(e,t,n){switch(e){case 7:return zH(this);case 8:return this.a}return efN(this,e,t,n)},eUe.hh=function(e,t,n){var r;return 7===t?(this.Cb&&(n=(r=this.Db>>16)>=0?eg0(this,n):this.Cb.ih(this,-1-r,null,n)),j2(this,Pp(e,160),n)):ew0(this,e,t,n)},eUe.jh=function(e,t,n){return 7==t?j2(this,null,n):ea9(this,e,t,n)},eUe.lh=function(e){switch(e){case 7:return!!zH(this);case 8:return!IE("",this.a)}return ef8(this,e)},eUe.sh=function(e,t){switch(e){case 7:eAu(this,Pp(t,160));return;case 8:eri(this,Lq(t));return}eym(this,e,t)},eUe.zh=function(){return eBa(),tmm},eUe.Bh=function(e){switch(e){case 7:eAu(this,null);return;case 8:eri(this,"");return}edS(this,e)},eUe.Ib=function(){return eE1(this)},eUe.a="",Y5(eZ3,"ElkLabelImpl",354),eTS(239,725,{105:1,413:1,82:1,160:1,33:1,470:1,239:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},mS),eUe.Qg=function(e){return evs(this,e)},eUe._g=function(e,t,n){switch(e){case 9:return this.c||(this.c=new FQ(e6x,this,9,9)),this.c;case 10:return this.a||(this.a=new FQ(e6k,this,10,11)),this.a;case 11:return z$(this);case 12:return this.b||(this.b=new FQ(e6g,this,12,3)),this.b;case 13:return OQ(),this.a||(this.a=new FQ(e6k,this,10,11)),this.a.i>0}return ebQ(this,e,t,n)},eUe.hh=function(e,t,n){var r;switch(t){case 9:return this.c||(this.c=new FQ(e6x,this,9,9)),edF(this.c,e,n);case 10:return this.a||(this.a=new FQ(e6k,this,10,11)),edF(this.a,e,n);case 11:return this.Cb&&(n=(r=this.Db>>16)>=0?evs(this,n):this.Cb.ih(this,-1-r,null,n)),C4(this,Pp(e,33),n);case 12:return this.b||(this.b=new FQ(e6g,this,12,3)),edF(this.b,e,n)}return evZ(this,e,t,n)},eUe.jh=function(e,t,n){switch(t){case 9:return this.c||(this.c=new FQ(e6x,this,9,9)),ep6(this.c,e,n);case 10:return this.a||(this.a=new FQ(e6k,this,10,11)),ep6(this.a,e,n);case 11:return C4(this,null,n);case 12:return this.b||(this.b=new FQ(e6g,this,12,3)),ep6(this.b,e,n)}return evX(this,e,t,n)},eUe.lh=function(e){switch(e){case 9:return!!this.c&&0!=this.c.i;case 10:return!!this.a&&0!=this.a.i;case 11:return!!z$(this);case 12:return!!this.b&&0!=this.b.i;case 13:return this.a||(this.a=new FQ(e6k,this,10,11)),this.a.i>0}return esM(this,e)},eUe.sh=function(e,t){switch(e){case 9:this.c||(this.c=new FQ(e6x,this,9,9)),eRT(this.c),this.c||(this.c=new FQ(e6x,this,9,9)),Y4(this.c,Pp(t,14));return;case 10:this.a||(this.a=new FQ(e6k,this,10,11)),eRT(this.a),this.a||(this.a=new FQ(e6k,this,10,11)),Y4(this.a,Pp(t,14));return;case 11:eO$(this,Pp(t,33));return;case 12:this.b||(this.b=new FQ(e6g,this,12,3)),eRT(this.b),this.b||(this.b=new FQ(e6g,this,12,3)),Y4(this.b,Pp(t,14));return}eTH(this,e,t)},eUe.zh=function(){return eBa(),tmg},eUe.Bh=function(e){switch(e){case 9:this.c||(this.c=new FQ(e6x,this,9,9)),eRT(this.c);return;case 10:this.a||(this.a=new FQ(e6k,this,10,11)),eRT(this.a);return;case 11:eO$(this,null);return;case 12:this.b||(this.b=new FQ(e6g,this,12,3)),eRT(this.b);return}ep2(this,e)},eUe.Ib=function(){return eC4(this)},Y5(eZ3,"ElkNodeImpl",239),eTS(186,725,{105:1,413:1,82:1,160:1,118:1,470:1,186:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},mk),eUe.Qg=function(e){return eg2(this,e)},eUe._g=function(e,t,n){return 9==e?zY(this):ebQ(this,e,t,n)},eUe.hh=function(e,t,n){var r;return 9===t?(this.Cb&&(n=(r=this.Db>>16)>=0?eg2(this,n):this.Cb.ih(this,-1-r,null,n)),Cl(this,Pp(e,33),n)):evZ(this,e,t,n)},eUe.jh=function(e,t,n){return 9==t?Cl(this,null,n):evX(this,e,t,n)},eUe.lh=function(e){return 9==e?!!zY(this):esM(this,e)},eUe.sh=function(e,t){if(9===e){eOL(this,Pp(t,33));return}eTH(this,e,t)},eUe.zh=function(){return eBa(),tmv},eUe.Bh=function(e){if(9===e){eOL(this,null);return}ep2(this,e)},eUe.Ib=function(){return eC5(this)},Y5(eZ3,"ElkPortImpl",186);var e6M=RL(eX_,"BasicEMap/Entry");eTS(1092,115,{105:1,42:1,92:1,90:1,133:1,56:1,108:1,49:1,97:1,114:1,115:1},o3),eUe.Fb=function(e){return this===e},eUe.cd=function(){return this.b},eUe.Hb=function(){return Ao(this)},eUe.Uh=function(e){era(this,Pp(e,146))},eUe._g=function(e,t,n){switch(e){case 0:return this.b;case 1:return this.c}return ebl(this,e,t,n)},eUe.lh=function(e){switch(e){case 0:return!!this.b;case 1:return null!=this.c}return epY(this,e)},eUe.sh=function(e,t){switch(e){case 0:era(this,Pp(t,146));return;case 1:eru(this,t);return}eS5(this,e,t)},eUe.zh=function(){return eBa(),tmy},eUe.Bh=function(e){switch(e){case 0:era(this,null);return;case 1:eru(this,null);return}eSi(this,e)},eUe.Sh=function(){var e;return -1==this.a&&(e=this.b,this.a=e?esj(e):0),this.a},eUe.dd=function(){return this.c},eUe.Th=function(e){this.a=e},eUe.ed=function(e){var t;return t=this.c,eru(this,e),t},eUe.Ib=function(){var e;return(64&this.Db)!=0?eMT(this):(xM(xM(xM(e=new vc,this.b?this.b.tg():eUg),eGH),Ae(this.c)),e.a)},eUe.a=-1,eUe.c=null;var e6O=Y5(eZ3,"ElkPropertyToValueMapEntryImpl",1092);eTS(984,1,{},o6),Y5(eXk,"JsonAdapter",984),eTS(210,60,eHr,gK),Y5(eXk,"JsonImportException",210),eTS(857,1,{},eg6),Y5(eXk,"JsonImporter",857),eTS(891,1,{},kP),Y5(eXk,"JsonImporter/lambda$0$Type",891),eTS(892,1,{},kR),Y5(eXk,"JsonImporter/lambda$1$Type",892),eTS(900,1,{},h7),Y5(eXk,"JsonImporter/lambda$10$Type",900),eTS(902,1,{},kj),Y5(eXk,"JsonImporter/lambda$11$Type",902),eTS(903,1,{},kF),Y5(eXk,"JsonImporter/lambda$12$Type",903),eTS(909,1,{},HE),Y5(eXk,"JsonImporter/lambda$13$Type",909),eTS(908,1,{},H_),Y5(eXk,"JsonImporter/lambda$14$Type",908),eTS(904,1,{},kY),Y5(eXk,"JsonImporter/lambda$15$Type",904),eTS(905,1,{},kB),Y5(eXk,"JsonImporter/lambda$16$Type",905),eTS(906,1,{},kU),Y5(eXk,"JsonImporter/lambda$17$Type",906),eTS(907,1,{},kH),Y5(eXk,"JsonImporter/lambda$18$Type",907),eTS(912,1,{},pe),Y5(eXk,"JsonImporter/lambda$19$Type",912),eTS(893,1,{},pt),Y5(eXk,"JsonImporter/lambda$2$Type",893),eTS(910,1,{},pn),Y5(eXk,"JsonImporter/lambda$20$Type",910),eTS(911,1,{},pr),Y5(eXk,"JsonImporter/lambda$21$Type",911),eTS(915,1,{},pi),Y5(eXk,"JsonImporter/lambda$22$Type",915),eTS(913,1,{},pa),Y5(eXk,"JsonImporter/lambda$23$Type",913),eTS(914,1,{},po),Y5(eXk,"JsonImporter/lambda$24$Type",914),eTS(917,1,{},ps),Y5(eXk,"JsonImporter/lambda$25$Type",917),eTS(916,1,{},pu),Y5(eXk,"JsonImporter/lambda$26$Type",916),eTS(918,1,eUF,k$),eUe.td=function(e){JH(this.b,this.a,Lq(e))},Y5(eXk,"JsonImporter/lambda$27$Type",918),eTS(919,1,eUF,kz),eUe.td=function(e){J$(this.b,this.a,Lq(e))},Y5(eXk,"JsonImporter/lambda$28$Type",919),eTS(920,1,{},kG),Y5(eXk,"JsonImporter/lambda$29$Type",920),eTS(896,1,{},pc),Y5(eXk,"JsonImporter/lambda$3$Type",896),eTS(921,1,{},kW),Y5(eXk,"JsonImporter/lambda$30$Type",921),eTS(922,1,{},pl),Y5(eXk,"JsonImporter/lambda$31$Type",922),eTS(923,1,{},pf),Y5(eXk,"JsonImporter/lambda$32$Type",923),eTS(924,1,{},pd),Y5(eXk,"JsonImporter/lambda$33$Type",924),eTS(925,1,{},ph),Y5(eXk,"JsonImporter/lambda$34$Type",925),eTS(859,1,{},pp),Y5(eXk,"JsonImporter/lambda$35$Type",859),eTS(929,1,{},N8),Y5(eXk,"JsonImporter/lambda$36$Type",929),eTS(926,1,eUF,pb),eUe.td=function(e){qW(this.a,Pp(e,469))},Y5(eXk,"JsonImporter/lambda$37$Type",926),eTS(927,1,eUF,k0),eUe.td=function(e){xC(this.a,this.b,Pp(e,202))},Y5(eXk,"JsonImporter/lambda$38$Type",927),eTS(928,1,eUF,k2),eUe.td=function(e){xI(this.a,this.b,Pp(e,202))},Y5(eXk,"JsonImporter/lambda$39$Type",928),eTS(894,1,{},pm),Y5(eXk,"JsonImporter/lambda$4$Type",894),eTS(930,1,eUF,pg),eUe.td=function(e){qK(this.a,Pp(e,8))},Y5(eXk,"JsonImporter/lambda$40$Type",930),eTS(895,1,{},pv),Y5(eXk,"JsonImporter/lambda$5$Type",895),eTS(899,1,{},py),Y5(eXk,"JsonImporter/lambda$6$Type",899),eTS(897,1,{},pw),Y5(eXk,"JsonImporter/lambda$7$Type",897),eTS(898,1,{},p_),Y5(eXk,"JsonImporter/lambda$8$Type",898),eTS(901,1,{},pE),Y5(eXk,"JsonImporter/lambda$9$Type",901),eTS(948,1,eUF,pS),eUe.td=function(e){BC(this.a,new B_(Lq(e)))},Y5(eXk,"JsonMetaDataConverter/lambda$0$Type",948),eTS(949,1,eUF,pk),eUe.td=function(e){Bm(this.a,Pp(e,237))},Y5(eXk,"JsonMetaDataConverter/lambda$1$Type",949),eTS(950,1,eUF,px),eUe.td=function(e){GR(this.a,Pp(e,149))},Y5(eXk,"JsonMetaDataConverter/lambda$2$Type",950),eTS(951,1,eUF,pT),eUe.td=function(e){Bg(this.a,Pp(e,175))},Y5(eXk,"JsonMetaDataConverter/lambda$3$Type",951),eTS(237,22,{3:1,35:1,22:1,237:1},k1);var e6A=enw(ezx,"GraphFeature",237,e1G,etM,N1);eTS(13,1,{35:1,146:1},pO,Cm,xX,T2),eUe.wd=function(e){return Oo(this,Pp(e,146))},eUe.Fb=function(e){return $k(this,e)},eUe.wg=function(){return epB(this)},eUe.tg=function(){return this.b},eUe.Hb=function(){return ebA(this.b)},eUe.Ib=function(){return this.b},Y5(ezx,"Property",13),eTS(818,1,e$C,pM),eUe.ue=function(e,t){return elW(this,Pp(e,94),Pp(t,94))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y5(ezx,"PropertyHolderComparator",818),eTS(695,1,eUE,pL),eUe.Nb=function(e){F8(this,e)},eUe.Pb=function(){return JZ(this)},eUe.Qb=function(){yI()},eUe.Ob=function(){return!!this.a},Y5(eXY,"ElkGraphUtil/AncestorIterator",695);var e6L=RL(eX_,"EList");eTS(67,52,{20:1,28:1,52:1,14:1,15:1,67:1,58:1}),eUe.Vc=function(e,t){elm(this,e,t)},eUe.Fc=function(e){return JL(this,e)},eUe.Wc=function(e,t){return eo0(this,e,t)},eUe.Gc=function(e){return Y4(this,e)},eUe.Zh=function(){return new AY(this)},eUe.$h=function(){return new AB(this)},eUe._h=function(e){return enH(this,e)},eUe.ai=function(){return!0},eUe.bi=function(e,t){},eUe.ci=function(){},eUe.di=function(e,t){X8(this,e,t)},eUe.ei=function(e,t,n){},eUe.fi=function(e,t){},eUe.gi=function(e,t,n){},eUe.Fb=function(e){return eCc(this,e)},eUe.Hb=function(){return eov(this)},eUe.hi=function(){return!1},eUe.Kc=function(){return new Ow(this)},eUe.Yc=function(){return new AF(this)},eUe.Zc=function(e){var t;if(t=this.gc(),e<0||e>t)throw p7(new Ii(e,t));return new YC(this,e)},eUe.ji=function(e,t){this.ii(e,this.Xc(t))},eUe.Mc=function(e){return eeu(this,e)},eUe.li=function(e,t){return t},eUe._c=function(e,t){return eby(this,e,t)},eUe.Ib=function(){return efq(this)},eUe.ni=function(){return!0},eUe.oi=function(e,t){return euu(this,t)},Y5(eX_,"AbstractEList",67),eTS(63,67,eXz,o7,eta,eiP),eUe.Vh=function(e,t){return ew2(this,e,t)},eUe.Wh=function(e){return emp(this,e)},eUe.Xh=function(e,t){ecW(this,e,t)},eUe.Yh=function(e){Zz(this,e)},eUe.pi=function(e){return J5(this,e)},eUe.$b=function(){ZG(this)},eUe.Hc=function(e){return ev9(this,e)},eUe.Xb=function(e){return etj(this,e)},eUe.qi=function(e){var t,n,r;++this.j,e>(n=null==this.g?0:this.g.length)&&(r=this.g,(t=n+(n/2|0)+4)=0&&(this.$c(t),!0)},eUe.mi=function(e,t){return this.Ui(e,this.oi(e,t))},eUe.gc=function(){return this.Vi()},eUe.Pc=function(){return this.Wi()},eUe.Qc=function(e){return this.Xi(e)},eUe.Ib=function(){return this.Yi()},Y5(eX_,"DelegatingEList",1995),eTS(1996,1995,eJk),eUe.Vh=function(e,t){return eD1(this,e,t)},eUe.Wh=function(e){return this.Vh(this.Vi(),e)},eUe.Xh=function(e,t){eTf(this,e,t)},eUe.Yh=function(e){exq(this,e)},eUe.ai=function(){return!this.bj()},eUe.$b=function(){eRP(this)},eUe.Zi=function(e,t,n,r,i){return new $P(this,e,t,n,r,i)},eUe.$i=function(e){eam(this.Ai(),e)},eUe._i=function(){return null},eUe.aj=function(){return -1},eUe.Ai=function(){return null},eUe.bj=function(){return!1},eUe.cj=function(e,t){return t},eUe.dj=function(e,t){return t},eUe.ej=function(){return!1},eUe.fj=function(){return!this.Ri()},eUe.ii=function(e,t){var n,r;return this.ej()?(r=this.fj(),n=e_R(this,e,t),this.$i(this.Zi(7,ell(t),n,e,r)),n):e_R(this,e,t)},eUe.$c=function(e){var t,n,r,i;return this.ej()?(n=null,r=this.fj(),t=this.Zi(4,i=RC(this,e),null,e,r),this.bj()&&i?(n=this.dj(i,n))?(n.Ei(t),n.Fi()):this.$i(t):n?(n.Ei(t),n.Fi()):this.$i(t),i):(i=RC(this,e),this.bj()&&i&&(n=this.dj(i,null))&&n.Fi(),i)},eUe.mi=function(e,t){return eD0(this,e,t)},Y5(eZK,"DelegatingNotifyingListImpl",1996),eTS(143,1,eJx),eUe.Ei=function(e){return ey7(this,e)},eUe.Fi=function(){QU(this)},eUe.xi=function(){return this.d},eUe._i=function(){return null},eUe.gj=function(){return null},eUe.yi=function(e){return -1},eUe.zi=function(){return eLo(this)},eUe.Ai=function(){return null},eUe.Bi=function(){return eLs(this)},eUe.Ci=function(){return this.o<0?this.o<-2?-2-this.o-1:-1:this.o},eUe.hj=function(){return!1},eUe.Di=function(e){var t,n,r,i,a,o,s,u,c,l,f;switch(this.d){case 1:case 2:switch(i=e.xi()){case 1:case 2:if(xc(a=e.Ai())===xc(this.Ai())&&this.yi(null)==e.yi(null))return this.g=e.zi(),1==e.xi()&&(this.d=1),!0}case 4:if(4===(i=e.xi())&&xc(a=e.Ai())===xc(this.Ai())&&this.yi(null)==e.yi(null))return c=eju(this),u=this.o<0?this.o<-2?-2-this.o-1:-1:this.o,o=e.Ci(),this.d=6,f=new eta(2),u<=o?(JL(f,this.n),JL(f,e.Bi()),this.g=eow(vx(ty_,1),eHT,25,15,[this.o=u,o+1])):(JL(f,e.Bi()),JL(f,this.n),this.g=eow(vx(ty_,1),eHT,25,15,[this.o=o,u])),this.n=f,c||(this.o=-2-this.o-1),!0;break;case 6:if(4===(i=e.xi())&&xc(a=e.Ai())===xc(this.Ai())&&this.yi(null)==e.yi(null)){for(c=eju(this),o=e.Ci(),r=Je(ty_,eHT,25,(l=Pp(this.g,48)).length+1,15,1),t=0;t>>0).toString(16)),r.a+=" (eventType: ",this.d){case 1:r.a+="SET";break;case 2:r.a+="UNSET";break;case 3:r.a+="ADD";break;case 5:r.a+="ADD_MANY";break;case 4:r.a+="REMOVE";break;case 6:r.a+="REMOVE_MANY";break;case 7:r.a+="MOVE";break;case 8:r.a+="REMOVING_ADAPTER";break;case 9:r.a+="RESOLVE";break;default:yz(r,this.d)}if(eIb(this)&&(r.a+=", touch: true"),r.a+=", position: ",yz(r,this.o<0?this.o<-2?-2-this.o-1:-1:this.o),r.a+=", notifier: ",xS(r,this.Ai()),r.a+=", feature: ",xS(r,this._i()),r.a+=", oldValue: ",xS(r,eLs(this)),r.a+=", newValue: ",6==this.d&&M4(this.g,48)){for(n=Pp(this.g,48),r.a+="[",e=0;e10?(this.b&&this.c.j==this.a||(this.b=new Rq(this),this.a=this.j),w0(this.b,e)):ev9(this,e)},eUe.ni=function(){return!0},eUe.a=0,Y5(eX_,"AbstractEList/1",953),eTS(295,73,eHZ,Ii),Y5(eX_,"AbstractEList/BasicIndexOutOfBoundsException",295),eTS(40,1,eUE,Ow),eUe.Nb=function(e){F8(this,e)},eUe.mj=function(){if(this.i.j!=this.f)throw p7(new bA)},eUe.nj=function(){return epH(this)},eUe.Ob=function(){return this.e!=this.i.gc()},eUe.Pb=function(){return this.nj()},eUe.Qb=function(){ey_(this)},eUe.e=0,eUe.f=0,eUe.g=-1,Y5(eX_,"AbstractEList/EIterator",40),eTS(278,40,eUC,AF,YC),eUe.Qb=function(){ey_(this)},eUe.Rb=function(e){edq(this,e)},eUe.oj=function(){var e;try{return e=this.d.Xb(--this.e),this.mj(),this.g=this.e,e}catch(t){if(t=eoa(t),M4(t,73))throw this.mj(),p7(new bC);throw p7(t)}},eUe.pj=function(e){emE(this,e)},eUe.Sb=function(){return 0!=this.e},eUe.Tb=function(){return this.e},eUe.Ub=function(){return this.oj()},eUe.Vb=function(){return this.e-1},eUe.Wb=function(e){this.pj(e)},Y5(eX_,"AbstractEList/EListIterator",278),eTS(341,40,eUE,AY),eUe.nj=function(){return ep$(this)},eUe.Qb=function(){throw p7(new bO)},Y5(eX_,"AbstractEList/NonResolvingEIterator",341),eTS(385,278,eUC,AB,IB),eUe.Rb=function(e){throw p7(new bO)},eUe.nj=function(){var e;try{return e=this.c.ki(this.e),this.mj(),this.g=this.e++,e}catch(t){if(t=eoa(t),M4(t,73))throw this.mj(),p7(new bC);throw p7(t)}},eUe.oj=function(){var e;try{return e=this.c.ki(--this.e),this.mj(),this.g=this.e,e}catch(t){if(t=eoa(t),M4(t,73))throw this.mj(),p7(new bC);throw p7(t)}},eUe.Qb=function(){throw p7(new bO)},eUe.Wb=function(e){throw p7(new bO)},Y5(eX_,"AbstractEList/NonResolvingEListIterator",385),eTS(1982,67,eJO),eUe.Vh=function(e,t){var n,r,i,a,o,s,u,c,l,f,d;if(0==(i=t.gc()))return++this.j,!1;for(r=eue(this,d=(l=null==(c=Pp(eaS(this.a,4),126))?0:c.length)+i),(f=l-e)>0&&ePD(c,e,r,e+i,f),u=t.Kc(),o=0;on)throw p7(new Ii(e,n));return new Uu(this,e)},eUe.$b=function(){var e,t;++this.j,t=null==(e=Pp(eaS(this.a,4),126))?0:e.length,eps(this,null),X8(this,t,e)},eUe.Hc=function(e){var t,n,r,i,a;if(null!=(t=Pp(eaS(this.a,4),126))){if(null!=e){for(i=0,a=(r=t).length;i=(n=null==(t=Pp(eaS(this.a,4),126))?0:t.length))throw p7(new Ii(e,n));return t[e]},eUe.Xc=function(e){var t,n,r;if(null!=(t=Pp(eaS(this.a,4),126))){if(null!=e){for(n=0,r=t.length;nn)throw p7(new Ii(e,n));return new Us(this,e)},eUe.ii=function(e,t){var n,r,i;if(i=null==(n=ehc(this))?0:n.length,e>=i)throw p7(new gE(eXU+e+eXH+i));if(t>=i)throw p7(new gE(eX$+t+eXH+i));return r=n[t],e!=t&&(e0&&ePD(e,0,t,0,n),t},eUe.Qc=function(e){var t,n,r;return(r=null==(t=Pp(eaS(this.a,4),126))?0:t.length)>0&&(e.lengthr&&Bc(e,r,null),e},Y5(eX_,"ArrayDelegatingEList",1982),eTS(1038,40,eUE,Zl),eUe.mj=function(){if(this.b.j!=this.f||xc(Pp(eaS(this.b.a,4),126))!==xc(this.a))throw p7(new bA)},eUe.Qb=function(){ey_(this),this.a=Pp(eaS(this.b.a,4),126)},Y5(eX_,"ArrayDelegatingEList/EIterator",1038),eTS(706,278,eUC,FK,Us),eUe.mj=function(){if(this.b.j!=this.f||xc(Pp(eaS(this.b.a,4),126))!==xc(this.a))throw p7(new bA)},eUe.pj=function(e){emE(this,e),this.a=Pp(eaS(this.b.a,4),126)},eUe.Qb=function(){ey_(this),this.a=Pp(eaS(this.b.a,4),126)},Y5(eX_,"ArrayDelegatingEList/EListIterator",706),eTS(1039,341,eUE,Zf),eUe.mj=function(){if(this.b.j!=this.f||xc(Pp(eaS(this.b.a,4),126))!==xc(this.a))throw p7(new bA)},Y5(eX_,"ArrayDelegatingEList/NonResolvingEIterator",1039),eTS(707,385,eUC,FV,Uu),eUe.mj=function(){if(this.b.j!=this.f||xc(Pp(eaS(this.b.a,4),126))!==xc(this.a))throw p7(new bA)},Y5(eX_,"ArrayDelegatingEList/NonResolvingEListIterator",707),eTS(606,295,eHZ,xJ),Y5(eX_,"BasicEList/BasicIndexOutOfBoundsException",606),eTS(696,63,eXz,xt),eUe.Vc=function(e,t){throw p7(new bO)},eUe.Fc=function(e){throw p7(new bO)},eUe.Wc=function(e,t){throw p7(new bO)},eUe.Gc=function(e){throw p7(new bO)},eUe.$b=function(){throw p7(new bO)},eUe.qi=function(e){throw p7(new bO)},eUe.Kc=function(){return this.Zh()},eUe.Yc=function(){return this.$h()},eUe.Zc=function(e){return this._h(e)},eUe.ii=function(e,t){throw p7(new bO)},eUe.ji=function(e,t){throw p7(new bO)},eUe.$c=function(e){throw p7(new bO)},eUe.Mc=function(e){throw p7(new bO)},eUe._c=function(e,t){throw p7(new bO)},Y5(eX_,"BasicEList/UnmodifiableEList",696),eTS(705,1,{3:1,20:1,14:1,15:1,58:1,589:1}),eUe.Vc=function(e,t){Mq(this,e,Pp(t,42))},eUe.Fc=function(e){return LA(this,Pp(e,42))},eUe.Jc=function(e){qX(this,e)},eUe.Xb=function(e){return Pp(etj(this.c,e),133)},eUe.ii=function(e,t){return Pp(this.c.ii(e,t),42)},eUe.ji=function(e,t){MZ(this,e,Pp(t,42))},eUe.Lc=function(){return new R1(null,new Gq(this,16))},eUe.$c=function(e){return Pp(this.c.$c(e),42)},eUe._c=function(e,t){return YV(this,e,Pp(t,42))},eUe.ad=function(e){er8(this,e)},eUe.Nc=function(){return new Gq(this,16)},eUe.Oc=function(){return new R1(null,new Gq(this,16))},eUe.Wc=function(e,t){return this.c.Wc(e,t)},eUe.Gc=function(e){return this.c.Gc(e)},eUe.$b=function(){this.c.$b()},eUe.Hc=function(e){return this.c.Hc(e)},eUe.Ic=function(e){return eot(this.c,e)},eUe.qj=function(){var e,t,n;if(null==this.d){for(this.d=Je(e6C,eJA,63,2*this.f+1,0,1),n=this.e,this.f=0,t=this.c.Kc();t.e!=t.i.gc();)ebB(this,e=Pp(t.nj(),133));this.e=n}},eUe.Fb=function(e){return Ij(this,e)},eUe.Hb=function(){return eov(this.c)},eUe.Xc=function(e){return this.c.Xc(e)},eUe.rj=function(){this.c=new pC(this)},eUe.dc=function(){return 0==this.f},eUe.Kc=function(){return this.c.Kc()},eUe.Yc=function(){return this.c.Yc()},eUe.Zc=function(e){return this.c.Zc(e)},eUe.sj=function(){return X6(this)},eUe.tj=function(e,t,n){return new N7(e,t,n)},eUe.uj=function(){return new st},eUe.Mc=function(e){return en$(this,e)},eUe.gc=function(){return this.f},eUe.bd=function(e,t){return new Gz(this.c,e,t)},eUe.Pc=function(){return this.c.Pc()},eUe.Qc=function(e){return this.c.Qc(e)},eUe.Ib=function(){return efq(this.c)},eUe.e=0,eUe.f=0,Y5(eX_,"BasicEMap",705),eTS(1033,63,eXz,pC),eUe.bi=function(e,t){bH(this,Pp(t,133))},eUe.ei=function(e,t,n){var r;++(r=this,Pp(t,133),r).a.e},eUe.fi=function(e,t){b$(this,Pp(t,133))},eUe.gi=function(e,t,n){AO(this,Pp(t,133),Pp(n,133))},eUe.di=function(e,t){eac(this.a)},Y5(eX_,"BasicEMap/1",1033),eTS(1034,63,eXz,st),eUe.ri=function(e){return Je(e6R,eJL,612,e,0,1)},Y5(eX_,"BasicEMap/2",1034),eTS(1035,eUT,eUM,pI),eUe.$b=function(){this.a.c.$b()},eUe.Hc=function(e){return edG(this.a,e)},eUe.Kc=function(){return 0==this.a.f?(LF(),tmB.a):new yd(this.a)},eUe.Mc=function(e){var t;return t=this.a.f,ehx(this.a,e),this.a.f!=t},eUe.gc=function(){return this.a.f},Y5(eX_,"BasicEMap/3",1035),eTS(1036,28,eUx,pD),eUe.$b=function(){this.a.c.$b()},eUe.Hc=function(e){return eCl(this.a,e)},eUe.Kc=function(){return 0==this.a.f?(LF(),tmB.a):new yh(this.a)},eUe.gc=function(){return this.a.f},Y5(eX_,"BasicEMap/4",1036),eTS(1037,eUT,eUM,pN),eUe.$b=function(){this.a.c.$b()},eUe.Hc=function(e){var t,n,r,i,a,o,s,u,c;if(this.a.f>0&&M4(e,42)&&(this.a.qj(),i=null==(s=(u=Pp(e,42)).cd())?0:esj(s),a=Cb(this.a,i),t=this.a.d[a])){for(o=0,n=Pp(t.g,367),c=t.i;o"+this.c},eUe.a=0;var e6R=Y5(eX_,"BasicEMap/EntryImpl",612);eTS(536,1,{},o2),Y5(eX_,"BasicEMap/View",536),eTS(768,1,{}),eUe.Fb=function(e){return eT$((Hj(),e2r),e)},eUe.Hb=function(){return esS((Hj(),e2r))},eUe.Ib=function(){return e_F((Hj(),e2r))},Y5(eX_,"ECollections/BasicEmptyUnmodifiableEList",768),eTS(1312,1,eUC,sn),eUe.Nb=function(e){F8(this,e)},eUe.Rb=function(e){throw p7(new bO)},eUe.Ob=function(){return!1},eUe.Sb=function(){return!1},eUe.Pb=function(){throw p7(new bC)},eUe.Tb=function(){return 0},eUe.Ub=function(){throw p7(new bC)},eUe.Vb=function(){return -1},eUe.Qb=function(){throw p7(new bO)},eUe.Wb=function(e){throw p7(new bO)},Y5(eX_,"ECollections/BasicEmptyUnmodifiableEList/1",1312),eTS(1310,768,{20:1,14:1,15:1,58:1},mx),eUe.Vc=function(e,t){y5()},eUe.Fc=function(e){return y6()},eUe.Wc=function(e,t){return y9()},eUe.Gc=function(e){return y8()},eUe.$b=function(){y7()},eUe.Hc=function(e){return!1},eUe.Ic=function(e){return!1},eUe.Jc=function(e){qX(this,e)},eUe.Xb=function(e){return xY((Hj(),e)),null},eUe.Xc=function(e){return -1},eUe.dc=function(){return!0},eUe.Kc=function(){return this.a},eUe.Yc=function(){return this.a},eUe.Zc=function(e){return this.a},eUe.ii=function(e,t){return we()},eUe.ji=function(e,t){wt()},eUe.Lc=function(){return new R1(null,new Gq(this,16))},eUe.$c=function(e){return wn()},eUe.Mc=function(e){return wr()},eUe._c=function(e,t){return wi()},eUe.gc=function(){return 0},eUe.ad=function(e){er8(this,e)},eUe.Nc=function(){return new Gq(this,16)},eUe.Oc=function(){return new R1(null,new Gq(this,16))},eUe.bd=function(e,t){return Hj(),new Gz(e2r,e,t)},eUe.Pc=function(){return Fn((Hj(),e2r))},eUe.Qc=function(e){return Hj(),emk(e2r,e)},Y5(eX_,"ECollections/EmptyUnmodifiableEList",1310),eTS(1311,768,{20:1,14:1,15:1,58:1,589:1},mT),eUe.Vc=function(e,t){y5()},eUe.Fc=function(e){return y6()},eUe.Wc=function(e,t){return y9()},eUe.Gc=function(e){return y8()},eUe.$b=function(){y7()},eUe.Hc=function(e){return!1},eUe.Ic=function(e){return!1},eUe.Jc=function(e){qX(this,e)},eUe.Xb=function(e){return xY((Hj(),e)),null},eUe.Xc=function(e){return -1},eUe.dc=function(){return!0},eUe.Kc=function(){return this.a},eUe.Yc=function(){return this.a},eUe.Zc=function(e){return this.a},eUe.ii=function(e,t){return we()},eUe.ji=function(e,t){wt()},eUe.Lc=function(){return new R1(null,new Gq(this,16))},eUe.$c=function(e){return wn()},eUe.Mc=function(e){return wr()},eUe._c=function(e,t){return wi()},eUe.gc=function(){return 0},eUe.ad=function(e){er8(this,e)},eUe.Nc=function(){return new Gq(this,16)},eUe.Oc=function(){return new R1(null,new Gq(this,16))},eUe.bd=function(e,t){return Hj(),new Gz(e2r,e,t)},eUe.Pc=function(){return Fn((Hj(),e2r))},eUe.Qc=function(e){return Hj(),emk(e2r,e)},eUe.sj=function(){return Hj(),Hj(),e2i},Y5(eX_,"ECollections/EmptyUnmodifiableEMap",1311);var e6j=RL(eX_,"Enumerator");eTS(281,1,{281:1},eCg),eUe.Fb=function(e){var t;return this===e||!!M4(e,281)&&(t=Pp(e,281),this.f==t.f&&jx(this.i,t.i)&&jk(this.a,(256&this.f)!=0?(256&t.f)!=0?t.a:null:(256&t.f)!=0?null:t.a)&&jk(this.d,t.d)&&jk(this.g,t.g)&&jk(this.e,t.e)&&epK(this,t))},eUe.Hb=function(){return this.f},eUe.Ib=function(){return eDv(this)},eUe.f=0;var e6F,e6Y,e6B,e6U,e6H,e6$,e6z,e6G,e6W,e6K,e6V,e6q,e6Z,e6X,e6J,e6Q,e61,e60,e62,e63,e64,e65,e66,e69,e68,e67,e9e,e9t,e9n,e9r,e9i,e9a,e9o,e9s,e9u,e9c,e9l,e9f,e9d,e9h,e9p,e9b,e9m,e9g,e9v,e9y,e9w,e9_,e9E,e9S,e9k,e9x,e9T,e9M,e9O,e9A,e9L,e9C,e9I,e9D,e9N,e9P,e9R,e9j,e9F,e9Y,e9B,e9U,e9H,e9$,e9z,e9G,e9W,e9K,e9V,e9q,e9Z,e9X,e9J,e9Q,e91,e90,e92,e93,e94,e95,e96,e99,e98,e97,e8e,e8t,e8n,e8r,e8i,e8a,e8o,e8s,e8u,e8c,e8l,e8f,e8d,e8h,e8p,e8b,e8m,e8g,e8v,e8y,e8w,e8_,e8E,e8S,e8k,e8x,e8T,e8M,e8O,e8A,e8L,e8C,e8I,e8D,e8N,e8P,e8R,e8j,e8F,e8Y,e8B,e8U,e8H,e8$,e8z,e8G,e8W,e8K,e8V,e8q,e8Z,e8X,e8J,e8Q,e81,e80,e82,e83,e84,e85,e86,e89,e88,e87,e7e,e7t,e7n,e7r,e7i,e7a,e7o,e7s,e7u,e7c,e7l,e7f,e7d,e7h,e7p,e7b,e7m,e7g,e7v,e7y,e7w,e7_,e7E,e7S,e7k,e7x,e7T,e7M,e7O,e7A,e7L,e7C,e7I,e7D,e7N,e7P,e7R,e7j,e7F,e7Y,e7B,e7U,e7H,e7$,e7z,e7G,e7W,e7K,e7V,e7q,e7Z,e7X,e7J,e7Q,e71,e70,e72,e73,e74,e75,e76,e79,e78,e77,tee,tet,ten,ter,tei,tea,teo,tes,teu,tec,tel,tef,ted,teh,tep,teb,tem,teg,tev,tey,tew,te_,teE,teS,tek,tex,teT,teM,teO,teA,teL,teC,teI,teD,teN,teP,teR,tej,teF,teY,teB,teU,teH,te$,tez,teG,teW,teK,teV,teq,teZ,teX,teJ,teQ,te1,te0,te2,te3,te4,te5,te6,te9,te8,te7,tte,ttt,ttn,ttr,tti,tta,tto,tts,ttu,ttc,ttl,ttf,ttd,tth,ttp,ttb,ttm,ttg,ttv,tty,ttw,tt_,ttE,ttS,ttk,ttx,ttT,ttM,ttO,ttA,ttL,ttC,ttI,ttD,ttN,ttP,ttR,ttj,ttF,ttY,ttB,ttU,ttH,tt$,ttz,ttG,ttW,ttK,ttV,ttq,ttZ,ttX,ttJ,ttQ,tt1,tt0,tt2,tt3,tt4,tt5,tt6,tt9,tt8,tt7,tne,tnt,tnn,tnr,tni,tna,tno,tns,tnu,tnc,tnl,tnf,tnd,tnh,tnp,tnb,tnm,tng,tnv,tny,tnw,tn_,tnE,tnS,tnk,tnx,tnT,tnM,tnO,tnA,tnL,tnC,tnI,tnD,tnN,tnP,tnR,tnj,tnF,tnY,tnB,tnU,tnH,tn$,tnz,tnG,tnW,tnK,tnV,tnq,tnZ,tnX,tnJ,tnQ,tn1,tn0,tn2,tn3,tn4,tn5,tn6,tn9,tn8,tn7,tre,trt,trn,trr,tri,tra,tro,trs,tru,trc,trl,trf,trd,trh,trp,trb,trm,trg,trv,trw,tr_,trE,trS,trk,trx,trT,trM,trO,trA,trL,trC,trI,trD,trN,trP,trR,trj,trF,trY,trB,trU,trH,tr$,trz,trG,trW,trK,trV,trq,trZ,trX,trJ,trQ,tr1,tr0,tr2,tr3,tr4,tr5,tr6,tr9,tr8,tr7,tie,tit,tin,tir,tii,tia,tio,tis,tiu,tic,til,tif,tid,tih,tip,tib,tim,tig,tiv,tiy,tiw,ti_,tiE,tiS,tik,tix,tiT,tiM,tiO,tiA,tiL,tiC,tiI,tiD,tiN,tiP,tiR,tij,tiF,tiY,tiB,tiU,tiH,ti$,tiz,tiG,tiW,tiK,tiV,tiq,tiZ,tiX,tiJ,tiQ,ti1,ti0,ti2,ti3,ti4,ti5,ti6,ti9,ti8,ti7,tae,tat,tan,tar,tai,taa,tao,tas,tau,tac,tal,taf,tad,tah,tap,tab,tam,tag,tav,tay,taw,ta_,taE,taS,tak,tax,taT,taM,taO,taA,taL,taC,taI,taD,taN,taP,taR,taj,taF,taY,taB,taU,taH,ta$,taz,taG,taW,taK,taV,taq,taZ,taX,taJ,taQ,ta1,ta0,ta2,ta3,ta4,ta5,ta6,ta9,ta8,ta7,toe,tot,ton,tor,toi,toa,too,tos,tou,toc,tol,tof,tod,toh,top,tob,tom,tog,tov,toy,tow,to_,toE,toS,tok,tox,toT,toM,toO,toA,toL,toC,toI,toD,toN,toP,toR,toj,toF,toY,toB,toU,toH,to$,toz,toG,toW,toK,toV,toq,toZ,toX,toJ,toQ,to1,to0,to2,to3,to4,to5,to6,to9,to8,to7,tse,tst,tsn,tsr,tsi,tsa,tso,tss,tsu,tsc,tsl,tsf,tsd,tsh,tsp,tsb,tsm,tsg,tsv,tsy,tsw,ts_,tsE,tsS,tsk,tsx,tsT,tsM,tsO,tsA,tsL,tsC,tsI,tsD,tsN,tsP,tsR,tsj,tsF,tsY,tsB,tsU,tsH,ts$,tsz,tsG,tsW,tsK,tsV,tsq,tsZ,tsX,tsJ,tsQ,ts1,ts0,ts2,ts3,ts4,ts5,ts6,ts9,ts8,ts7,tue,tut,tun,tur,tui,tua,tuo,tus,tuu,tuc,tul,tuf,tud,tuh,tup,tub,tum,tug,tuv,tuy,tuw,tu_,tuE,tuS,tuk,tux,tuT,tuM,tuO,tuA,tuL,tuC,tuI,tuD,tuN,tuP,tuR,tuj,tuF,tuY,tuB,tuU,tuH,tu$,tuz,tuG,tuW,tuK,tuV,tuq,tuZ,tuX,tuJ,tuQ,tu1,tu0,tu2,tu3,tu4,tu5,tu6,tu9,tu8,tu7,tce,tct,tcn,tcr,tci,tca,tco,tcs,tcu,tcc,tcl,tcf,tcd,tch,tcp,tcb,tcm,tcg,tcv,tcy,tcw,tc_,tcE,tcS,tck,tcx,tcT,tcM,tcO,tcA,tcL,tcC,tcI,tcD,tcN,tcP,tcR,tcj,tcF,tcY,tcB,tcU,tcH,tc$,tcz,tcG,tcW,tcK,tcV,tcq,tcZ,tcX,tcJ,tcQ,tc1,tc0,tc2,tc3,tc4,tc5,tc6,tc9,tc8,tc7,tle,tlt,tln,tlr,tli,tla,tlo,tls,tlu,tlc,tll,tlf,tld,tlh,tlp,tlb,tlm,tlg,tlv,tly,tlw,tl_,tlE,tlS,tlk,tlx,tlT,tlM,tlO,tlA,tlL,tlC,tlI,tlD,tlN,tlP,tlR,tlj,tlF,tlY,tlB,tlU,tlH,tl$,tlz,tlG,tlW,tlK,tlV,tlq,tlZ,tlX,tlJ,tlQ,tl1,tl0,tl2,tl3,tl4,tl5,tl6,tl9,tl8,tl7,tfe,tft,tfn,tfr,tfi,tfa,tfo,tfs,tfu,tfc,tfl,tff,tfd,tfh,tfp,tfb,tfm,tfg,tfv,tfy,tfw,tf_,tfE,tfS,tfk,tfx,tfT,tfM,tfO,tfA,tfL,tfC,tfI,tfD,tfN,tfP,tfR,tfj,tfF,tfY,tfB,tfU,tfH,tf$,tfz,tfG,tfW,tfK,tfV,tfq,tfZ,tfX,tfJ,tfQ,tf1,tf0,tf2,tf3,tf4,tf5,tf6,tf9,tf8,tf7,tde,tdt,tdn,tdr,tdi,tda,tdo,tds,tdu,tdc,tdl,tdf,tdd,tdh,tdp,tdb,tdm,tdg,tdv,tdy,tdw,td_,tdE,tdS,tdk,tdx,tdT,tdM,tdO,tdA,tdL,tdC,tdI,tdD,tdN,tdP,tdR,tdj,tdF,tdY,tdB,tdU,tdH,td$,tdz,tdG,tdW,tdK,tdV,tdq,tdZ,tdX,tdJ,tdQ,td1,td0,td2,td3,td4,td5,td6,td9,td8,td7,the,tht,thn,thr,thi,tha,tho,ths,thu,thc,thl,thf,thd,thh,thp,thb,thm,thg,thv,thy,thw,th_,thE,thS,thk,thx,thT,thM,thO,thA,thL,thC,thI,thD,thN,thP,thR,thj,thF,thY,thB,thU,thH,th$,thz,thG,thW,thK,thV,thq,thZ,thX,thJ,thQ,th1,th0,th2,th3,th4,th5,th6,th9,th8,th7,tpe,tpt,tpn,tpr,tpi,tpa,tpo,tps,tpu,tpc,tpl,tpf,tpd,tph,tpp,tpb,tpm,tpg,tpv,tpy,tpw,tp_,tpE,tpS,tpk,tpx,tpT,tpM,tpO,tpA,tpL,tpC,tpI,tpD,tpN,tpP,tpR,tpj,tpF,tpY,tpB,tpU,tpH,tp$,tpz,tpG,tpW,tpK,tpV,tpq,tpZ,tpX,tpJ,tpQ,tp1,tp0,tp2,tp3,tp4,tp5,tp6,tp9,tp8,tp7,tbe,tbt,tbn,tbr,tbi,tba,tbo,tbs,tbu,tbc,tbl,tbf,tbd,tbh,tbp,tbb,tbm,tbg,tbv,tby,tbw,tb_,tbE,tbS,tbk,tbx,tbT,tbM,tbO,tbA,tbL,tbC,tbI,tbD,tbN,tbP,tbR,tbj,tbF,tbY,tbB,tbU,tbH,tb$,tbz,tbG,tbW,tbK,tbV,tbq,tbZ,tbX,tbJ,tbQ,tb1,tb0,tb2,tb3,tb4,tb5,tb6,tb9,tb8,tb7,tme,tmt,tmn,tmr,tmi,tma,tmo,tms,tmu,tmc,tml,tmf,tmd,tmh,tmp,tmb,tmm,tmg,tmv,tmy,tmw,tm_,tmE,tmS,tmk,tmx,tmT,tmM,tmO,tmA,tmL,tmC,tmI,tmD,tmN,tmP,tmR,tmj,tmF,tmY,tmB,tmU,tmH,tm$,tmz,tmG=0,tmW=0,tmK=0,tmV=0,tmq=0,tmZ=0,tmX=0,tmJ=0,tmQ=0,tm1=0,tm0=0,tm2=0,tm3=0;Y5(eX_,"URI",281),eTS(1091,43,e$s,mM),eUe.zc=function(e,t){return Pp(Ge(this,Lq(e),Pp(t,281)),281)},Y5(eX_,"URI/URICache",1091),eTS(497,63,eXz,o5,jf),eUe.hi=function(){return!0},Y5(eX_,"UniqueEList",497),eTS(581,60,eHr,QH),Y5(eX_,"WrappedException",581);var tm4=RL(eZD,eJD),tm5=RL(eZD,eJN),tm6=RL(eZD,eJP),tm9=RL(eZD,eJR),tm8=RL(eZD,eJj),tm7=RL(eZD,"EClass"),tge=RL(eZD,"EDataType");eTS(1183,43,e$s,mO),eUe.xc=function(e){return xd(e)?zg(this,e):xu($I(this.f,e))},Y5(eZD,"EDataType/Internal/ConversionDelegate/Factory/Registry/Impl",1183);var tgt=RL(eZD,"EEnum"),tgn=RL(eZD,eJF),tgr=RL(eZD,eJY),tgi=RL(eZD,eJB),tga=RL(eZD,eJU),tgo=RL(eZD,eJH);eTS(1029,1,{},o4),eUe.Ib=function(){return"NIL"},Y5(eZD,"EStructuralFeature/Internal/DynamicValueHolder/1",1029),eTS(1028,43,e$s,mA),eUe.xc=function(e){return xd(e)?zg(this,e):xu($I(this.f,e))},Y5(eZD,"EStructuralFeature/Internal/SettingDelegate/Factory/Registry/Impl",1028);var tgs=RL(eZD,eJ$),tgu=RL(eZD,"EValidator/PatternMatcher"),tgc=RL(eJz,"FeatureMap/Entry");eTS(535,1,{72:1},k3),eUe.ak=function(){return this.a},eUe.dd=function(){return this.b},Y5(eZ2,"BasicEObjectImpl/1",535),eTS(1027,1,eJG,k4),eUe.Wj=function(e){return ZN(this.a,this.b,e)},eUe.fj=function(){return zz(this.a,this.b)},eUe.Wb=function(e){zx(this.a,this.b,e)},eUe.Xj=function(){B4(this.a,this.b)},Y5(eZ2,"BasicEObjectImpl/4",1027),eTS(1983,1,{108:1}),eUe.bk=function(e){this.e=0==e?tgH:Je(e1R,eUp,1,e,5,1)},eUe.Ch=function(e){return this.e[e]},eUe.Dh=function(e,t){this.e[e]=t},eUe.Eh=function(e){this.e[e]=null},eUe.ck=function(){return this.c},eUe.dk=function(){throw p7(new bO)},eUe.ek=function(){throw p7(new bO)},eUe.fk=function(){return this.d},eUe.gk=function(){return null!=this.e},eUe.hk=function(e){this.c=e},eUe.ik=function(e){throw p7(new bO)},eUe.jk=function(e){throw p7(new bO)},eUe.kk=function(e){this.d=e},Y5(eZ2,"BasicEObjectImpl/EPropertiesHolderBaseImpl",1983),eTS(185,1983,{108:1},c1),eUe.dk=function(){return this.a},eUe.ek=function(){return this.b},eUe.ik=function(e){this.a=e},eUe.jk=function(e){this.b=e},Y5(eZ2,"BasicEObjectImpl/EPropertiesHolderImpl",185),eTS(506,97,eZ0,sr),eUe.Kg=function(){return this.f},eUe.Pg=function(){return this.k},eUe.Rg=function(e,t){this.g=e,this.i=t},eUe.Tg=function(){return(2&this.j)==0?this.zh():this.ph().ck()},eUe.Vg=function(){return this.i},eUe.Mg=function(){return(1&this.j)!=0},eUe.eh=function(){return this.g},eUe.kh=function(){return(4&this.j)!=0},eUe.ph=function(){return this.k||(this.k=new c1),this.k},eUe.th=function(e){this.ph().hk(e),e?this.j|=2:this.j&=-3},eUe.vh=function(e){this.ph().jk(e),e?this.j|=4:this.j&=-5},eUe.zh=function(){return(BM(),tgv).S},eUe.i=0,eUe.j=1,Y5(eZ2,"EObjectImpl",506),eTS(780,506,{105:1,92:1,90:1,56:1,108:1,49:1,97:1},Pq),eUe.Ch=function(e){return this.e[e]},eUe.Dh=function(e,t){this.e[e]=t},eUe.Eh=function(e){this.e[e]=null},eUe.Tg=function(){return this.d},eUe.Yg=function(e){return edv(this.d,e)},eUe.$g=function(){return this.d},eUe.dh=function(){return null!=this.e},eUe.ph=function(){return this.k||(this.k=new si),this.k},eUe.th=function(e){this.d=e},eUe.yh=function(){var e;return null==this.e&&(e=Y1(this.d),this.e=0==e?tg$:Je(e1R,eUp,1,e,5,1)),this},eUe.Ah=function(){return 0},Y5(eZ2,"DynamicEObjectImpl",780),eTS(1376,780,{105:1,42:1,92:1,90:1,133:1,56:1,108:1,49:1,97:1},RO),eUe.Fb=function(e){return this===e},eUe.Hb=function(){return Ao(this)},eUe.th=function(e){this.d=e,this.b=eAh(e,"key"),this.c=eAh(e,eXr)},eUe.Sh=function(){var e;return -1==this.a&&(e=Q9(this,this.b),this.a=null==e?0:esj(e)),this.a},eUe.cd=function(){return Q9(this,this.b)},eUe.dd=function(){return Q9(this,this.c)},eUe.Th=function(e){this.a=e},eUe.Uh=function(e){zx(this,this.b,e)},eUe.ed=function(e){var t;return t=Q9(this,this.c),zx(this,this.c,e),t},eUe.a=0,Y5(eZ2,"DynamicEObjectImpl/BasicEMapEntry",1376),eTS(1377,1,{108:1},si),eUe.bk=function(e){throw p7(new bO)},eUe.Ch=function(e){throw p7(new bO)},eUe.Dh=function(e,t){throw p7(new bO)},eUe.Eh=function(e){throw p7(new bO)},eUe.ck=function(){throw p7(new bO)},eUe.dk=function(){return this.a},eUe.ek=function(){return this.b},eUe.fk=function(){return this.c},eUe.gk=function(){throw p7(new bO)},eUe.hk=function(e){throw p7(new bO)},eUe.ik=function(e){this.a=e},eUe.jk=function(e){this.b=e},eUe.kk=function(e){this.c=e},Y5(eZ2,"DynamicEObjectImpl/DynamicEPropertiesHolderImpl",1377),eTS(510,150,{105:1,92:1,90:1,590:1,147:1,56:1,108:1,49:1,97:1,510:1,150:1,114:1,115:1},sa),eUe.Qg=function(e){return eg4(this,e)},eUe._g=function(e,t,n){var r;switch(e){case 0:return this.Ab||(this.Ab=new FQ(tm4,this,0,3)),this.Ab;case 1:return this.d;case 2:return n?(this.b||(this.b=new L_((eBK(),tgF),tgf,this)),this.b):(this.b||(this.b=new L_((eBK(),tgF),tgf,this)),X6(this.b));case 3:return z4(this);case 4:return this.a||(this.a=new O_(e6f,this,4)),this.a;case 5:return this.c||(this.c=new OT(e6f,this,5)),this.c}return Qt(this,e-Y1((eBK(),tgy)),ee2((r=Pp(eaS(this,16),26))||tgy,e),t,n)},eUe.hh=function(e,t,n){var r,i,a;switch(t){case 0:return this.Ab||(this.Ab=new FQ(tm4,this,0,3)),edF(this.Ab,e,n);case 3:return this.Cb&&(n=(i=this.Db>>16)>=0?eg4(this,n):this.Cb.ih(this,-1-i,null,n)),j3(this,Pp(e,147),n)}return(a=Pp(ee2((r=Pp(eaS(this,16),26))||(eBK(),tgy),t),66)).Nj().Qj(this,ehH(this),t-Y1((eBK(),tgy)),e,n)},eUe.jh=function(e,t,n){var r,i;switch(t){case 0:return this.Ab||(this.Ab=new FQ(tm4,this,0,3)),ep6(this.Ab,e,n);case 2:return this.b||(this.b=new L_((eBK(),tgF),tgf,this)),Iz(this.b,e,n);case 3:return j3(this,null,n);case 4:return this.a||(this.a=new O_(e6f,this,4)),ep6(this.a,e,n)}return(i=Pp(ee2((r=Pp(eaS(this,16),26))||(eBK(),tgy),t),66)).Nj().Rj(this,ehH(this),t-Y1((eBK(),tgy)),e,n)},eUe.lh=function(e){var t;switch(e){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.d;case 2:return!!this.b&&0!=this.b.f;case 3:return!!z4(this);case 4:return!!this.a&&0!=this.a.i;case 5:return!!this.c&&0!=this.c.i}return VP(this,e-Y1((eBK(),tgy)),ee2((t=Pp(eaS(this,16),26))||tgy,e))},eUe.sh=function(e,t){var n;switch(e){case 0:this.Ab||(this.Ab=new FQ(tm4,this,0,3)),eRT(this.Ab),this.Ab||(this.Ab=new FQ(tm4,this,0,3)),Y4(this.Ab,Pp(t,14));return;case 1:RN(this,Lq(t));return;case 2:this.b||(this.b=new L_((eBK(),tgF),tgf,this)),eai(this.b,t);return;case 3:eAc(this,Pp(t,147));return;case 4:this.a||(this.a=new O_(e6f,this,4)),eRT(this.a),this.a||(this.a=new O_(e6f,this,4)),Y4(this.a,Pp(t,14));return;case 5:this.c||(this.c=new OT(e6f,this,5)),eRT(this.c),this.c||(this.c=new OT(e6f,this,5)),Y4(this.c,Pp(t,14));return}efL(this,e-Y1((eBK(),tgy)),ee2((n=Pp(eaS(this,16),26))||tgy,e),t)},eUe.zh=function(){return eBK(),tgy},eUe.Bh=function(e){var t;switch(e){case 0:this.Ab||(this.Ab=new FQ(tm4,this,0,3)),eRT(this.Ab);return;case 1:erl(this,null);return;case 2:this.b||(this.b=new L_((eBK(),tgF),tgf,this)),this.b.c.$b();return;case 3:eAc(this,null);return;case 4:this.a||(this.a=new O_(e6f,this,4)),eRT(this.a);return;case 5:this.c||(this.c=new OT(e6f,this,5)),eRT(this.c);return}ec6(this,e-Y1((eBK(),tgy)),ee2((t=Pp(eaS(this,16),26))||tgy,e))},eUe.Ib=function(){return eln(this)},eUe.d=null,Y5(eZ2,"EAnnotationImpl",510),eTS(151,705,eJW,JY),eUe.Xh=function(e,t){T7(this,e,Pp(t,42))},eUe.lk=function(e,t){return I$(this,Pp(e,42),t)},eUe.pi=function(e){return Pp(Pp(this.c,69).pi(e),133)},eUe.Zh=function(){return Pp(this.c,69).Zh()},eUe.$h=function(){return Pp(this.c,69).$h()},eUe._h=function(e){return Pp(this.c,69)._h(e)},eUe.mk=function(e,t){return Iz(this,e,t)},eUe.Wj=function(e){return Pp(this.c,76).Wj(e)},eUe.rj=function(){},eUe.fj=function(){return Pp(this.c,76).fj()},eUe.tj=function(e,t,n){var r;return(r=Pp(etP(this.b).Nh().Jh(this.b),133)).Th(e),r.Uh(t),r.ed(n),r},eUe.uj=function(){return new pZ(this)},eUe.Wb=function(e){eai(this,e)},eUe.Xj=function(){Pp(this.c,76).Xj()},Y5(eJz,"EcoreEMap",151),eTS(158,151,eJW,L_),eUe.qj=function(){var e,t,n,r,i,a;if(null==this.d){for(a=Je(e6C,eJA,63,2*this.f+1,0,1),n=this.c.Kc();n.e!=n.i.gc();)(e=a[i=((r=(t=Pp(n.nj(),133)).Sh())&eUu)%a.length])||(e=a[i]=new pZ(this)),e.Fc(t);this.d=a}},Y5(eZ2,"EAnnotationImpl/1",158),eTS(284,438,{105:1,92:1,90:1,147:1,191:1,56:1,108:1,472:1,49:1,97:1,150:1,284:1,114:1,115:1}),eUe._g=function(e,t,n){var r,i;switch(e){case 0:return this.Ab||(this.Ab=new FQ(tm4,this,0,3)),this.Ab;case 1:return this.zb;case 2:return OQ(),(256&this.Bb)!=0;case 3:return OQ(),(512&this.Bb)!=0;case 4:return ell(this.s);case 5:return ell(this.t);case 6:return OQ(),!!this.$j();case 7:return OQ(),(i=this.s)>=1;case 8:if(t)return evl(this);return this.r;case 9:return this.q}return Qt(this,e-Y1(this.zh()),ee2((r=Pp(eaS(this,16),26))||this.zh(),e),t,n)},eUe.jh=function(e,t,n){var r,i;switch(t){case 0:return this.Ab||(this.Ab=new FQ(tm4,this,0,3)),ep6(this.Ab,e,n);case 9:return Y3(this,n)}return(i=Pp(ee2((r=Pp(eaS(this,16),26))||this.zh(),t),66)).Nj().Rj(this,ehH(this),t-Y1(this.zh()),e,n)},eUe.lh=function(e){var t,n;switch(e){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return(256&this.Bb)==0;case 3:return(512&this.Bb)==0;case 4:return 0!=this.s;case 5:return 1!=this.t;case 6:return this.$j();case 7:return(n=this.s)>=1;case 8:return!!this.r&&!this.q.e&&0==BX(this.q).i;case 9:return!!this.q&&!(this.r&&!this.q.e&&0==BX(this.q).i)}return VP(this,e-Y1(this.zh()),ee2((t=Pp(eaS(this,16),26))||this.zh(),e))},eUe.sh=function(e,t){var n,r;switch(e){case 0:this.Ab||(this.Ab=new FQ(tm4,this,0,3)),eRT(this.Ab),this.Ab||(this.Ab=new FQ(tm4,this,0,3)),Y4(this.Ab,Pp(t,14));return;case 1:this.Lh(Lq(t));return;case 2:eli(this,gN(LK(t)));return;case 3:els(this,gN(LK(t)));return;case 4:end(this,Pp(t,19).a);return;case 5:this.ok(Pp(t,19).a);return;case 8:eu2(this,Pp(t,138));return;case 9:(r=ew3(this,Pp(t,87),null))&&r.Fi();return}efL(this,e-Y1(this.zh()),ee2((n=Pp(eaS(this,16),26))||this.zh(),e),t)},eUe.zh=function(){return eBK(),tgB},eUe.Bh=function(e){var t,n;switch(e){case 0:this.Ab||(this.Ab=new FQ(tm4,this,0,3)),eRT(this.Ab);return;case 1:this.Lh(null);return;case 2:eli(this,!0);return;case 3:els(this,!0);return;case 4:end(this,0);return;case 5:this.ok(1);return;case 8:eu2(this,null);return;case 9:(n=ew3(this,null,null))&&n.Fi();return}ec6(this,e-Y1(this.zh()),ee2((t=Pp(eaS(this,16),26))||this.zh(),e))},eUe.Gh=function(){evl(this),this.Bb|=1},eUe.Yj=function(){return evl(this)},eUe.Zj=function(){return this.t},eUe.$j=function(){var e;return(e=this.t)>1||-1==e},eUe.hi=function(){return(512&this.Bb)!=0},eUe.nk=function(e,t){return ecz(this,e,t)},eUe.ok=function(e){enh(this,e)},eUe.Ib=function(){return ex3(this)},eUe.s=0,eUe.t=1,Y5(eZ2,"ETypedElementImpl",284),eTS(449,284,{105:1,92:1,90:1,147:1,191:1,56:1,170:1,66:1,108:1,472:1,49:1,97:1,150:1,449:1,284:1,114:1,115:1,677:1}),eUe.Qg=function(e){return egx(this,e)},eUe._g=function(e,t,n){var r,i;switch(e){case 0:return this.Ab||(this.Ab=new FQ(tm4,this,0,3)),this.Ab;case 1:return this.zb;case 2:return OQ(),(256&this.Bb)!=0;case 3:return OQ(),(512&this.Bb)!=0;case 4:return ell(this.s);case 5:return ell(this.t);case 6:return OQ(),!!this.$j();case 7:return OQ(),(i=this.s)>=1;case 8:if(t)return evl(this);return this.r;case 9:return this.q;case 10:return OQ(),(this.Bb&eXt)!=0;case 11:return OQ(),(this.Bb&eJq)!=0;case 12:return OQ(),(this.Bb&eH0)!=0;case 13:return this.j;case 14:return eOI(this);case 15:return OQ(),(this.Bb&eJV)!=0;case 16:return OQ(),(this.Bb&eUR)!=0;case 17:return z6(this)}return Qt(this,e-Y1(this.zh()),ee2((r=Pp(eaS(this,16),26))||this.zh(),e),t,n)},eUe.hh=function(e,t,n){var r,i,a;switch(t){case 0:return this.Ab||(this.Ab=new FQ(tm4,this,0,3)),edF(this.Ab,e,n);case 17:return this.Cb&&(n=(i=this.Db>>16)>=0?egx(this,n):this.Cb.ih(this,-1-i,null,n)),eDg(this,e,17,n)}return(a=Pp(ee2((r=Pp(eaS(this,16),26))||this.zh(),t),66)).Nj().Qj(this,ehH(this),t-Y1(this.zh()),e,n)},eUe.jh=function(e,t,n){var r,i;switch(t){case 0:return this.Ab||(this.Ab=new FQ(tm4,this,0,3)),ep6(this.Ab,e,n);case 9:return Y3(this,n);case 17:return eDg(this,null,17,n)}return(i=Pp(ee2((r=Pp(eaS(this,16),26))||this.zh(),t),66)).Nj().Rj(this,ehH(this),t-Y1(this.zh()),e,n)},eUe.lh=function(e){var t,n;switch(e){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return(256&this.Bb)==0;case 3:return(512&this.Bb)==0;case 4:return 0!=this.s;case 5:return 1!=this.t;case 6:return this.$j();case 7:return(n=this.s)>=1;case 8:return!!this.r&&!this.q.e&&0==BX(this.q).i;case 9:return!!this.q&&!(this.r&&!this.q.e&&0==BX(this.q).i);case 10:return(this.Bb&eXt)==0;case 11:return(this.Bb&eJq)!=0;case 12:return(this.Bb&eH0)!=0;case 13:return null!=this.j;case 14:return null!=eOI(this);case 15:return(this.Bb&eJV)!=0;case 16:return(this.Bb&eUR)!=0;case 17:return!!z6(this)}return VP(this,e-Y1(this.zh()),ee2((t=Pp(eaS(this,16),26))||this.zh(),e))},eUe.sh=function(e,t){var n,r;switch(e){case 0:this.Ab||(this.Ab=new FQ(tm4,this,0,3)),eRT(this.Ab),this.Ab||(this.Ab=new FQ(tm4,this,0,3)),Y4(this.Ab,Pp(t,14));return;case 1:GD(this,Lq(t));return;case 2:eli(this,gN(LK(t)));return;case 3:els(this,gN(LK(t)));return;case 4:end(this,Pp(t,19).a);return;case 5:this.ok(Pp(t,19).a);return;case 8:eu2(this,Pp(t,138));return;case 9:(r=ew3(this,Pp(t,87),null))&&r.Fi();return;case 10:elF(this,gN(LK(t)));return;case 11:elU(this,gN(LK(t)));return;case 12:elY(this,gN(LK(t)));return;case 13:xi(this,Lq(t));return;case 15:elB(this,gN(LK(t)));return;case 16:elZ(this,gN(LK(t)));return}efL(this,e-Y1(this.zh()),ee2((n=Pp(eaS(this,16),26))||this.zh(),e),t)},eUe.zh=function(){return eBK(),tgY},eUe.Bh=function(e){var t,n;switch(e){case 0:this.Ab||(this.Ab=new FQ(tm4,this,0,3)),eRT(this.Ab);return;case 1:M4(this.Cb,88)&&eko(Zd(Pp(this.Cb,88)),4),er3(this,null);return;case 2:eli(this,!0);return;case 3:els(this,!0);return;case 4:end(this,0);return;case 5:this.ok(1);return;case 8:eu2(this,null);return;case 9:(n=ew3(this,null,null))&&n.Fi();return;case 10:elF(this,!0);return;case 11:elU(this,!1);return;case 12:elY(this,!1);return;case 13:this.i=null,erA(this,null);return;case 15:elB(this,!1);return;case 16:elZ(this,!1);return}ec6(this,e-Y1(this.zh()),ee2((t=Pp(eaS(this,16),26))||this.zh(),e))},eUe.Gh=function(){UH(QZ((eSp(),tvc),this)),evl(this),this.Bb|=1},eUe.Gj=function(){return this.f},eUe.zj=function(){return eOI(this)},eUe.Hj=function(){return z6(this)},eUe.Lj=function(){return null},eUe.pk=function(){return this.k},eUe.aj=function(){return this.n},eUe.Mj=function(){return eyD(this)},eUe.Nj=function(){var e,t,n,r,i,a,o,s,u;return this.p||((null==(n=z6(this)).i&&eNT(n),n.i).length,(r=this.Lj())&&Y1(z6(r)),e=(o=(i=evl(this)).Bj())?(1&o.i)!=0?o==tyE?e11:o==ty_?e15:o==tyT?e14:o==tyx?e13:o==tyS?e16:o==tyM?e19:o==tyk?e10:e12:o:null,t=eOI(this),s=i.zj(),efl(this),(this.Bb&eUR)!=0&&((a=ev1((eSp(),tvc),n))&&a!=this||(a=Wk(QZ(tvc,this))))?this.p=new k6(this,a):this.$j()?this.rk()?r?(this.Bb&eJV)!=0?e?this.sk()?this.p=new HS(47,e,this,r):this.p=new HS(5,e,this,r):this.sk()?this.p=new qc(46,this,r):this.p=new qc(4,this,r):e?this.sk()?this.p=new HS(49,e,this,r):this.p=new HS(7,e,this,r):this.sk()?this.p=new qc(48,this,r):this.p=new qc(6,this,r):(this.Bb&eJV)!=0?e?e==e1$?this.p=new Pe(50,e6M,this):this.sk()?this.p=new Pe(43,e,this):this.p=new Pe(1,e,this):this.sk()?this.p=new $F(42,this):this.p=new $F(0,this):e?e==e1$?this.p=new Pe(41,e6M,this):this.sk()?this.p=new Pe(45,e,this):this.p=new Pe(3,e,this):this.sk()?this.p=new $F(44,this):this.p=new $F(2,this):M4(i,148)?e==tgc?this.p=new $F(40,this):(512&this.Bb)!=0?(this.Bb&eJV)!=0?e?this.p=new Pe(9,e,this):this.p=new $F(8,this):e?this.p=new Pe(11,e,this):this.p=new $F(10,this):(this.Bb&eJV)!=0?e?this.p=new Pe(13,e,this):this.p=new $F(12,this):e?this.p=new Pe(15,e,this):this.p=new $F(14,this):r?(u=r.t)>1||-1==u?this.sk()?(this.Bb&eJV)!=0?e?this.p=new HS(25,e,this,r):this.p=new qc(24,this,r):e?this.p=new HS(27,e,this,r):this.p=new qc(26,this,r):(this.Bb&eJV)!=0?e?this.p=new HS(29,e,this,r):this.p=new qc(28,this,r):e?this.p=new HS(31,e,this,r):this.p=new qc(30,this,r):this.sk()?(this.Bb&eJV)!=0?e?this.p=new HS(33,e,this,r):this.p=new qc(32,this,r):e?this.p=new HS(35,e,this,r):this.p=new qc(34,this,r):(this.Bb&eJV)!=0?e?this.p=new HS(37,e,this,r):this.p=new qc(36,this,r):e?this.p=new HS(39,e,this,r):this.p=new qc(38,this,r):this.sk()?(this.Bb&eJV)!=0?e?this.p=new Pe(17,e,this):this.p=new $F(16,this):e?this.p=new Pe(19,e,this):this.p=new $F(18,this):(this.Bb&eJV)!=0?e?this.p=new Pe(21,e,this):this.p=new $F(20,this):e?this.p=new Pe(23,e,this):this.p=new $F(22,this):this.qk()?this.sk()?this.p=new Pt(Pp(i,26),this,r):this.p=new zl(Pp(i,26),this,r):M4(i,148)?e==tgc?this.p=new $F(40,this):(this.Bb&eJV)!=0?e?this.p=new j9(t,s,this,(edO(),o==ty_?tg2:o==tyE?tgX:o==tyS?tg3:o==tyT?tg0:o==tyx?tg1:o==tyM?tg5:o==tyk?tgJ:o==tyw?tgQ:tg4)):this.p=new HT(Pp(i,148),t,s,this):e?this.p=new j6(t,s,this,(edO(),o==ty_?tg2:o==tyE?tgX:o==tyS?tg3:o==tyT?tg0:o==tyx?tg1:o==tyM?tg5:o==tyk?tgJ:o==tyw?tgQ:tg4)):this.p=new Hx(Pp(i,148),t,s,this):this.rk()?r?(this.Bb&eJV)!=0?this.sk()?this.p=new Ps(Pp(i,26),this,r):this.p=new Po(Pp(i,26),this,r):this.sk()?this.p=new Pa(Pp(i,26),this,r):this.p=new Pn(Pp(i,26),this,r):(this.Bb&eJV)!=0?this.sk()?this.p=new Lx(Pp(i,26),this):this.p=new Lk(Pp(i,26),this):this.sk()?this.p=new LS(Pp(i,26),this):this.p=new LE(Pp(i,26),this):this.sk()?r?(this.Bb&eJV)!=0?this.p=new Pu(Pp(i,26),this,r):this.p=new Pr(Pp(i,26),this,r):(this.Bb&eJV)!=0?this.p=new LM(Pp(i,26),this):this.p=new LT(Pp(i,26),this):r?(this.Bb&eJV)!=0?this.p=new Pc(Pp(i,26),this,r):this.p=new Pi(Pp(i,26),this,r):(this.Bb&eJV)!=0?this.p=new LO(Pp(i,26),this):this.p=new jd(Pp(i,26),this)),this.p},eUe.Ij=function(){return(this.Bb&eXt)!=0},eUe.qk=function(){return!1},eUe.rk=function(){return!1},eUe.Jj=function(){return(this.Bb&eUR)!=0},eUe.Oj=function(){return eec(this)},eUe.sk=function(){return!1},eUe.Kj=function(){return(this.Bb&eJV)!=0},eUe.tk=function(e){this.k=e},eUe.Lh=function(e){GD(this,e)},eUe.Ib=function(){return eCR(this)},eUe.e=!1,eUe.n=0,Y5(eZ2,"EStructuralFeatureImpl",449),eTS(322,449,{105:1,92:1,90:1,34:1,147:1,191:1,56:1,170:1,66:1,108:1,472:1,49:1,97:1,322:1,150:1,449:1,284:1,114:1,115:1,677:1},mC),eUe._g=function(e,t,n){var r,i;switch(e){case 0:return this.Ab||(this.Ab=new FQ(tm4,this,0,3)),this.Ab;case 1:return this.zb;case 2:return OQ(),(256&this.Bb)!=0;case 3:return OQ(),(512&this.Bb)!=0;case 4:return ell(this.s);case 5:return ell(this.t);case 6:return OQ(),!!ek7(this);case 7:return OQ(),(i=this.s)>=1;case 8:if(t)return evl(this);return this.r;case 9:return this.q;case 10:return OQ(),(this.Bb&eXt)!=0;case 11:return OQ(),(this.Bb&eJq)!=0;case 12:return OQ(),(this.Bb&eH0)!=0;case 13:return this.j;case 14:return eOI(this);case 15:return OQ(),(this.Bb&eJV)!=0;case 16:return OQ(),(this.Bb&eUR)!=0;case 17:return z6(this);case 18:return OQ(),(this.Bb&eZ1)!=0;case 19:if(t)return eoe(this);return Xl(this)}return Qt(this,e-Y1((eBK(),tgw)),ee2((r=Pp(eaS(this,16),26))||tgw,e),t,n)},eUe.lh=function(e){var t,n;switch(e){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return(256&this.Bb)==0;case 3:return(512&this.Bb)==0;case 4:return 0!=this.s;case 5:return 1!=this.t;case 6:return ek7(this);case 7:return(n=this.s)>=1;case 8:return!!this.r&&!this.q.e&&0==BX(this.q).i;case 9:return!!this.q&&!(this.r&&!this.q.e&&0==BX(this.q).i);case 10:return(this.Bb&eXt)==0;case 11:return(this.Bb&eJq)!=0;case 12:return(this.Bb&eH0)!=0;case 13:return null!=this.j;case 14:return null!=eOI(this);case 15:return(this.Bb&eJV)!=0;case 16:return(this.Bb&eUR)!=0;case 17:return!!z6(this);case 18:return(this.Bb&eZ1)!=0;case 19:return!!Xl(this)}return VP(this,e-Y1((eBK(),tgw)),ee2((t=Pp(eaS(this,16),26))||tgw,e))},eUe.sh=function(e,t){var n,r;switch(e){case 0:this.Ab||(this.Ab=new FQ(tm4,this,0,3)),eRT(this.Ab),this.Ab||(this.Ab=new FQ(tm4,this,0,3)),Y4(this.Ab,Pp(t,14));return;case 1:GD(this,Lq(t));return;case 2:eli(this,gN(LK(t)));return;case 3:els(this,gN(LK(t)));return;case 4:end(this,Pp(t,19).a);return;case 5:yg(this,Pp(t,19).a);return;case 8:eu2(this,Pp(t,138));return;case 9:(r=ew3(this,Pp(t,87),null))&&r.Fi();return;case 10:elF(this,gN(LK(t)));return;case 11:elU(this,gN(LK(t)));return;case 12:elY(this,gN(LK(t)));return;case 13:xi(this,Lq(t));return;case 15:elB(this,gN(LK(t)));return;case 16:elZ(this,gN(LK(t)));return;case 18:elX(this,gN(LK(t)));return}efL(this,e-Y1((eBK(),tgw)),ee2((n=Pp(eaS(this,16),26))||tgw,e),t)},eUe.zh=function(){return eBK(),tgw},eUe.Bh=function(e){var t,n;switch(e){case 0:this.Ab||(this.Ab=new FQ(tm4,this,0,3)),eRT(this.Ab);return;case 1:M4(this.Cb,88)&&eko(Zd(Pp(this.Cb,88)),4),er3(this,null);return;case 2:eli(this,!0);return;case 3:els(this,!0);return;case 4:end(this,0);return;case 5:this.b=0,enh(this,1);return;case 8:eu2(this,null);return;case 9:(n=ew3(this,null,null))&&n.Fi();return;case 10:elF(this,!0);return;case 11:elU(this,!1);return;case 12:elY(this,!1);return;case 13:this.i=null,erA(this,null);return;case 15:elB(this,!1);return;case 16:elZ(this,!1);return;case 18:elX(this,!1);return}ec6(this,e-Y1((eBK(),tgw)),ee2((t=Pp(eaS(this,16),26))||tgw,e))},eUe.Gh=function(){eoe(this),UH(QZ((eSp(),tvc),this)),evl(this),this.Bb|=1},eUe.$j=function(){return ek7(this)},eUe.nk=function(e,t){return this.b=0,this.a=null,ecz(this,e,t)},eUe.ok=function(e){yg(this,e)},eUe.Ib=function(){var e;return(64&this.Db)!=0?eCR(this):(e=new O1(eCR(this)),e.a+=" (iD: ",yG(e,(this.Bb&eZ1)!=0),e.a+=")",e.a)},eUe.b=0,Y5(eZ2,"EAttributeImpl",322),eTS(351,438,{105:1,92:1,90:1,138:1,147:1,191:1,56:1,108:1,49:1,97:1,351:1,150:1,114:1,115:1,676:1}),eUe.uk=function(e){return e.Tg()==this},eUe.Qg=function(e){return egn(this,e)},eUe.Rg=function(e,t){this.w=null,this.Db=t<<16|255&this.Db,this.Cb=e},eUe._g=function(e,t,n){var r;switch(e){case 0:return this.Ab||(this.Ab=new FQ(tm4,this,0,3)),this.Ab;case 1:return this.zb;case 2:return null!=this.D?this.D:this.B;case 3:return em4(this);case 4:return this.zj();case 5:return this.F;case 6:if(t)return etP(this);return z5(this);case 7:return this.A||(this.A=new OS(tgs,this,7)),this.A}return Qt(this,e-Y1(this.zh()),ee2((r=Pp(eaS(this,16),26))||this.zh(),e),t,n)},eUe.hh=function(e,t,n){var r,i,a;switch(t){case 0:return this.Ab||(this.Ab=new FQ(tm4,this,0,3)),edF(this.Ab,e,n);case 6:return this.Cb&&(n=(i=this.Db>>16)>=0?egn(this,n):this.Cb.ih(this,-1-i,null,n)),eDg(this,e,6,n)}return(a=Pp(ee2((r=Pp(eaS(this,16),26))||this.zh(),t),66)).Nj().Qj(this,ehH(this),t-Y1(this.zh()),e,n)},eUe.jh=function(e,t,n){var r,i;switch(t){case 0:return this.Ab||(this.Ab=new FQ(tm4,this,0,3)),ep6(this.Ab,e,n);case 6:return eDg(this,null,6,n);case 7:return this.A||(this.A=new OS(tgs,this,7)),ep6(this.A,e,n)}return(i=Pp(ee2((r=Pp(eaS(this,16),26))||this.zh(),t),66)).Nj().Rj(this,ehH(this),t-Y1(this.zh()),e,n)},eUe.lh=function(e){var t;switch(e){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return null!=this.D&&this.D==this.F;case 3:return!!em4(this);case 4:return null!=this.zj();case 5:return null!=this.F&&this.F!=this.D&&this.F!=this.B;case 6:return!!z5(this);case 7:return!!this.A&&0!=this.A.i}return VP(this,e-Y1(this.zh()),ee2((t=Pp(eaS(this,16),26))||this.zh(),e))},eUe.sh=function(e,t){var n;switch(e){case 0:this.Ab||(this.Ab=new FQ(tm4,this,0,3)),eRT(this.Ab),this.Ab||(this.Ab=new FQ(tm4,this,0,3)),Y4(this.Ab,Pp(t,14));return;case 1:GN(this,Lq(t));return;case 2:TF(this,Lq(t));return;case 5:eji(this,Lq(t));return;case 7:this.A||(this.A=new OS(tgs,this,7)),eRT(this.A),this.A||(this.A=new OS(tgs,this,7)),Y4(this.A,Pp(t,14));return}efL(this,e-Y1(this.zh()),ee2((n=Pp(eaS(this,16),26))||this.zh(),e),t)},eUe.zh=function(){return eBK(),tgE},eUe.Bh=function(e){var t;switch(e){case 0:this.Ab||(this.Ab=new FQ(tm4,this,0,3)),eRT(this.Ab);return;case 1:M4(this.Cb,179)&&(Pp(this.Cb,179).tb=null),er3(this,null);return;case 2:euc(this,null),enp(this,this.D);return;case 5:eji(this,null);return;case 7:this.A||(this.A=new OS(tgs,this,7)),eRT(this.A);return}ec6(this,e-Y1(this.zh()),ee2((t=Pp(eaS(this,16),26))||this.zh(),e))},eUe.yj=function(){var e;return -1==this.G&&(this.G=(e=etP(this))?ebv(e.Mh(),this):-1),this.G},eUe.zj=function(){return null},eUe.Aj=function(){return etP(this)},eUe.vk=function(){return this.v},eUe.Bj=function(){return em4(this)},eUe.Cj=function(){return null!=this.D?this.D:this.B},eUe.Dj=function(){return this.F},eUe.wj=function(e){return eNc(this,e)},eUe.wk=function(e){this.v=e},eUe.xk=function(e){eia(this,e)},eUe.yk=function(e){this.C=e},eUe.Lh=function(e){GN(this,e)},eUe.Ib=function(){return edb(this)},eUe.C=null,eUe.D=null,eUe.G=-1,Y5(eZ2,"EClassifierImpl",351),eTS(88,351,{105:1,92:1,90:1,26:1,138:1,147:1,191:1,56:1,108:1,49:1,97:1,88:1,351:1,150:1,473:1,114:1,115:1,676:1},c0),eUe.uk=function(e){return C7(this,e.Tg())},eUe._g=function(e,t,n){var r;switch(e){case 0:return this.Ab||(this.Ab=new FQ(tm4,this,0,3)),this.Ab;case 1:return this.zb;case 2:return null!=this.D?this.D:this.B;case 3:return em4(this);case 4:return null;case 5:return this.F;case 6:if(t)return etP(this);return z5(this);case 7:return this.A||(this.A=new OS(tgs,this,7)),this.A;case 8:return OQ(),(256&this.Bb)!=0;case 9:return OQ(),(512&this.Bb)!=0;case 10:return $E(this);case 11:return this.q||(this.q=new FQ(tgi,this,11,10)),this.q;case 12:return ePk(this);case 13:return ePl(this);case 14:return ePl(this),this.r;case 15:return ePk(this),this.k;case 16:return eSD(this);case 17:return eNQ(this);case 18:return eNT(this);case 19:return eOg(this);case 20:return ePk(this),this.o;case 21:return this.s||(this.s=new FQ(tm6,this,21,17)),this.s;case 22:return qt(this);case 23:return eCt(this)}return Qt(this,e-Y1((eBK(),tg_)),ee2((r=Pp(eaS(this,16),26))||tg_,e),t,n)},eUe.hh=function(e,t,n){var r,i,a;switch(t){case 0:return this.Ab||(this.Ab=new FQ(tm4,this,0,3)),edF(this.Ab,e,n);case 6:return this.Cb&&(n=(i=this.Db>>16)>=0?egn(this,n):this.Cb.ih(this,-1-i,null,n)),eDg(this,e,6,n);case 11:return this.q||(this.q=new FQ(tgi,this,11,10)),edF(this.q,e,n);case 21:return this.s||(this.s=new FQ(tm6,this,21,17)),edF(this.s,e,n)}return(a=Pp(ee2((r=Pp(eaS(this,16),26))||(eBK(),tg_),t),66)).Nj().Qj(this,ehH(this),t-Y1((eBK(),tg_)),e,n)},eUe.jh=function(e,t,n){var r,i;switch(t){case 0:return this.Ab||(this.Ab=new FQ(tm4,this,0,3)),ep6(this.Ab,e,n);case 6:return eDg(this,null,6,n);case 7:return this.A||(this.A=new OS(tgs,this,7)),ep6(this.A,e,n);case 11:return this.q||(this.q=new FQ(tgi,this,11,10)),ep6(this.q,e,n);case 21:return this.s||(this.s=new FQ(tm6,this,21,17)),ep6(this.s,e,n);case 22:return ep6(qt(this),e,n)}return(i=Pp(ee2((r=Pp(eaS(this,16),26))||(eBK(),tg_),t),66)).Nj().Rj(this,ehH(this),t-Y1((eBK(),tg_)),e,n)},eUe.lh=function(e){var t;switch(e){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return null!=this.D&&this.D==this.F;case 3:return!!em4(this);case 4:return!1;case 5:return null!=this.F&&this.F!=this.D&&this.F!=this.B;case 6:return!!z5(this);case 7:return!!this.A&&0!=this.A.i;case 8:return(256&this.Bb)!=0;case 9:return(512&this.Bb)!=0;case 10:return!!this.u&&0!=qt(this.u.a).i&&!(this.n&&ebV(this.n));case 11:return!!this.q&&0!=this.q.i;case 12:return 0!=ePk(this).i;case 13:return 0!=ePl(this).i;case 14:return ePl(this),0!=this.r.i;case 15:return ePk(this),0!=this.k.i;case 16:return 0!=eSD(this).i;case 17:return 0!=eNQ(this).i;case 18:return 0!=eNT(this).i;case 19:return 0!=eOg(this).i;case 20:return ePk(this),!!this.o;case 21:return!!this.s&&0!=this.s.i;case 22:return!!this.n&&ebV(this.n);case 23:return 0!=eCt(this).i}return VP(this,e-Y1((eBK(),tg_)),ee2((t=Pp(eaS(this,16),26))||tg_,e))},eUe.oh=function(e){var t;return(t=null==this.i||this.q&&0!=this.q.i?null:eAh(this,e))||eF9(this,e)},eUe.sh=function(e,t){var n;switch(e){case 0:this.Ab||(this.Ab=new FQ(tm4,this,0,3)),eRT(this.Ab),this.Ab||(this.Ab=new FQ(tm4,this,0,3)),Y4(this.Ab,Pp(t,14));return;case 1:GN(this,Lq(t));return;case 2:TF(this,Lq(t));return;case 5:eji(this,Lq(t));return;case 7:this.A||(this.A=new OS(tgs,this,7)),eRT(this.A),this.A||(this.A=new OS(tgs,this,7)),Y4(this.A,Pp(t,14));return;case 8:ela(this,gN(LK(t)));return;case 9:elu(this,gN(LK(t)));return;case 10:eRP($E(this)),Y4($E(this),Pp(t,14));return;case 11:this.q||(this.q=new FQ(tgi,this,11,10)),eRT(this.q),this.q||(this.q=new FQ(tgi,this,11,10)),Y4(this.q,Pp(t,14));return;case 21:this.s||(this.s=new FQ(tm6,this,21,17)),eRT(this.s),this.s||(this.s=new FQ(tm6,this,21,17)),Y4(this.s,Pp(t,14));return;case 22:eRT(qt(this)),Y4(qt(this),Pp(t,14));return}efL(this,e-Y1((eBK(),tg_)),ee2((n=Pp(eaS(this,16),26))||tg_,e),t)},eUe.zh=function(){return eBK(),tg_},eUe.Bh=function(e){var t;switch(e){case 0:this.Ab||(this.Ab=new FQ(tm4,this,0,3)),eRT(this.Ab);return;case 1:M4(this.Cb,179)&&(Pp(this.Cb,179).tb=null),er3(this,null);return;case 2:euc(this,null),enp(this,this.D);return;case 5:eji(this,null);return;case 7:this.A||(this.A=new OS(tgs,this,7)),eRT(this.A);return;case 8:ela(this,!1);return;case 9:elu(this,!1);return;case 10:this.u&&eRP(this.u);return;case 11:this.q||(this.q=new FQ(tgi,this,11,10)),eRT(this.q);return;case 21:this.s||(this.s=new FQ(tm6,this,21,17)),eRT(this.s);return;case 22:this.n&&eRT(this.n);return}ec6(this,e-Y1((eBK(),tg_)),ee2((t=Pp(eaS(this,16),26))||tg_,e))},eUe.Gh=function(){var e,t;if(ePk(this),ePl(this),eSD(this),eNQ(this),eNT(this),eOg(this),eCt(this),ZG(Pw(Zd(this))),this.s)for(e=0,t=this.s.i;e=0;--t)etj(this,t);return edj(this,e)},eUe.Xj=function(){eRT(this)},eUe.oi=function(e,t){return env(this,e,t)},Y5(eJz,"EcoreEList",622),eTS(496,622,eJ9,PK),eUe.ai=function(){return!1},eUe.aj=function(){return this.c},eUe.bj=function(){return!1},eUe.Fk=function(){return!0},eUe.hi=function(){return!0},eUe.li=function(e,t){return t},eUe.ni=function(){return!1},eUe.c=0,Y5(eJz,"EObjectEList",496),eTS(85,496,eJ9,O_),eUe.bj=function(){return!0},eUe.Dk=function(){return!1},eUe.rk=function(){return!0},Y5(eJz,"EObjectContainmentEList",85),eTS(545,85,eJ9,OE),eUe.ci=function(){this.b=!0},eUe.fj=function(){return this.b},eUe.Xj=function(){var e;eRT(this),TO(this.e)?(e=this.b,this.b=!1,eam(this.e,new ZB(this.e,2,this.c,e,!1))):this.b=!1},eUe.b=!1,Y5(eJz,"EObjectContainmentEList/Unsettable",545),eTS(1140,545,eJ9,j4),eUe.ii=function(e,t){var n,r;return n=Pp(elR(this,e,t),87),TO(this.e)&&bz(this,new JU(this.a,7,(eBK(),tgS),ell(t),M4(r=n.c,88)?Pp(r,26):tgI,e)),n},eUe.jj=function(e,t){return edB(this,Pp(e,87),t)},eUe.kj=function(e,t){return edY(this,Pp(e,87),t)},eUe.lj=function(e,t,n){return eyl(this,Pp(e,87),Pp(t,87),n)},eUe.Zi=function(e,t,n,r,i){switch(e){case 3:return Gt(this,e,t,n,r,this.i>1);case 5:return Gt(this,e,t,n,r,this.i-Pp(n,15).gc()>0);default:return new Q$(this.e,e,this.c,t,n,r,!0)}},eUe.ij=function(){return!0},eUe.fj=function(){return ebV(this)},eUe.Xj=function(){eRT(this)},Y5(eZ2,"EClassImpl/1",1140),eTS(1154,1153,eJS),eUe.ui=function(e){var t,n,r,i,a,o,s;if(8!=(n=e.xi())){if(0==(r=epM(e)))switch(n){case 1:case 9:null!=(s=e.Bi())&&((t=Zd(Pp(s,473))).c||(t.c=new sk),eeu(t.c,e.Ai())),null!=(o=e.zi())&&(1&(i=Pp(o,473)).Bb)==0&&((t=Zd(i)).c||(t.c=new sk),JL(t.c,Pp(e.Ai(),26)));break;case 3:null!=(o=e.zi())&&(1&(i=Pp(o,473)).Bb)==0&&((t=Zd(i)).c||(t.c=new sk),JL(t.c,Pp(e.Ai(),26)));break;case 5:if(null!=(o=e.zi()))for(a=Pp(o,14).Kc();a.Ob();)(1&(i=Pp(a.Pb(),473)).Bb)==0&&((t=Zd(i)).c||(t.c=new sk),JL(t.c,Pp(e.Ai(),26)));break;case 4:null!=(s=e.Bi())&&(1&(i=Pp(s,473)).Bb)==0&&((t=Zd(i)).c||(t.c=new sk),eeu(t.c,e.Ai()));break;case 6:if(null!=(s=e.Bi()))for(a=Pp(s,14).Kc();a.Ob();)(1&(i=Pp(a.Pb(),473)).Bb)==0&&((t=Zd(i)).c||(t.c=new sk),eeu(t.c,e.Ai()))}this.Hk(r)}},eUe.Hk=function(e){eCO(this,e)},eUe.b=63,Y5(eZ2,"ESuperAdapter",1154),eTS(1155,1154,eJS,pR),eUe.Hk=function(e){eko(this,e)},Y5(eZ2,"EClassImpl/10",1155),eTS(1144,696,eJ9),eUe.Vh=function(e,t){return ew2(this,e,t)},eUe.Wh=function(e){return emp(this,e)},eUe.Xh=function(e,t){ecW(this,e,t)},eUe.Yh=function(e){Zz(this,e)},eUe.pi=function(e){return J5(this,e)},eUe.mi=function(e,t){return ees(this,e,t)},eUe.lk=function(e,t){throw p7(new bO)},eUe.Zh=function(){return new AY(this)},eUe.$h=function(){return new AB(this)},eUe._h=function(e){return enH(this,e)},eUe.mk=function(e,t){throw p7(new bO)},eUe.Wj=function(e){return this},eUe.fj=function(){return 0!=this.i},eUe.Wb=function(e){throw p7(new bO)},eUe.Xj=function(){throw p7(new bO)},Y5(eJz,"EcoreEList/UnmodifiableEList",1144),eTS(319,1144,eJ9,xQ),eUe.ni=function(){return!1},Y5(eJz,"EcoreEList/UnmodifiableEList/FastCompare",319),eTS(1147,319,eJ9,eo8),eUe.Xc=function(e){var t,n,r;if(M4(e,170)&&-1!=(n=(t=Pp(e,170)).aj())){for(r=this.i;n4){if(!this.wj(e))return!1;if(this.rk()){if(s=(n=(r=Pp(e,49)).Ug())==this.b&&(this.Dk()?r.Og(r.Vg(),Pp(ee2($S(this.b),this.aj()).Yj(),26).Bj())==ebY(Pp(ee2($S(this.b),this.aj()),18)).n:-1-r.Vg()==this.aj()),this.Ek()&&!s&&!n&&r.Zg()){for(i=0;i1||-1==r)},eUe.Dk=function(){var e,t,n;return t=ee2($S(this.b),this.aj()),!!M4(t,99)&&!!(n=ebY(e=Pp(t,18)))},eUe.Ek=function(){var e,t;return t=ee2($S(this.b),this.aj()),!!M4(t,99)&&((e=Pp(t,18)).Bb&eH3)!=0},eUe.Xc=function(e){var t,n,r,i;if((r=this.Qi(e))>=0)return r;if(this.Fk()){for(n=0,i=this.Vi();n=0;--e)ejc(this,e,this.Oi(e));return this.Wi()},eUe.Qc=function(e){var t;if(this.Ek())for(t=this.Vi()-1;t>=0;--t)ejc(this,t,this.Oi(t));return this.Xi(e)},eUe.Xj=function(){eRP(this)},eUe.oi=function(e,t){return J6(this,e,t)},Y5(eJz,"DelegatingEcoreEList",742),eTS(1150,742,eQn,Cw),eUe.Hi=function(e,t){LP(this,e,Pp(t,26))},eUe.Ii=function(e){Mt(this,Pp(e,26))},eUe.Oi=function(e){var t,n;return n=(t=Pp(etj(qt(this.a),e),87)).c,M4(n,88)?Pp(n,26):(eBK(),tgI)},eUe.Ti=function(e){var t,n;return n=(t=Pp(eLN(qt(this.a),e),87)).c,M4(n,88)?Pp(n,26):(eBK(),tgI)},eUe.Ui=function(e,t){return emm(this,e,Pp(t,26))},eUe.ai=function(){return!1},eUe.Zi=function(e,t,n,r,i){return null},eUe.Ji=function(){return new pF(this)},eUe.Ki=function(){eRT(qt(this.a))},eUe.Li=function(e){return ec7(this,e)},eUe.Mi=function(e){var t,n;for(n=e.Kc();n.Ob();)if(!ec7(this,t=n.Pb()))return!1;return!0},eUe.Ni=function(e){var t,n,r;if(M4(e,15)&&(r=Pp(e,15)).gc()==qt(this.a).i){for(t=r.Kc(),n=new Ow(this);t.Ob();)if(xc(t.Pb())!==xc(epH(n)))return!1;return!0}return!1},eUe.Pi=function(){var e,t,n,r,i;for(n=1,t=new Ow(qt(this.a));t.e!=t.i.gc();)e=Pp(epH(t),87),r=M4(i=e.c,88)?Pp(i,26):(eBK(),tgI),n=31*n+(r?Ao(r):0);return n},eUe.Qi=function(e){var t,n,r,i;for(r=0,n=new Ow(qt(this.a));n.e!=n.i.gc();){if(t=Pp(epH(n),87),xc(e)===xc(M4(i=t.c,88)?Pp(i,26):(eBK(),tgI)))return r;++r}return -1},eUe.Ri=function(){return 0==qt(this.a).i},eUe.Si=function(){return null},eUe.Vi=function(){return qt(this.a).i},eUe.Wi=function(){var e,t,n,r,i,a;for(a=qt(this.a).i,i=Je(e1R,eUp,1,a,5,1),n=0,t=new Ow(qt(this.a));t.e!=t.i.gc();)e=Pp(epH(t),87),i[n++]=M4(r=e.c,88)?Pp(r,26):(eBK(),tgI);return i},eUe.Xi=function(e){var t,n,r,i,a,o,s;for(s=qt(this.a).i,e.lengths&&Bc(e,s,null),r=0,n=new Ow(qt(this.a));n.e!=n.i.gc();)t=Pp(epH(n),87),a=M4(o=t.c,88)?Pp(o,26):(eBK(),tgI),Bc(e,r++,a);return e},eUe.Yi=function(){var e,t,n,r,i;for(i=new vs,i.a+="[",e=qt(this.a),t=0,r=qt(this.a).i;t>16)>=0?egn(this,n):this.Cb.ih(this,-1-i,null,n)),eDg(this,e,6,n);case 9:return this.a||(this.a=new FQ(tgn,this,9,5)),edF(this.a,e,n)}return(a=Pp(ee2((r=Pp(eaS(this,16),26))||(eBK(),tgx),t),66)).Nj().Qj(this,ehH(this),t-Y1((eBK(),tgx)),e,n)},eUe.jh=function(e,t,n){var r,i;switch(t){case 0:return this.Ab||(this.Ab=new FQ(tm4,this,0,3)),ep6(this.Ab,e,n);case 6:return eDg(this,null,6,n);case 7:return this.A||(this.A=new OS(tgs,this,7)),ep6(this.A,e,n);case 9:return this.a||(this.a=new FQ(tgn,this,9,5)),ep6(this.a,e,n)}return(i=Pp(ee2((r=Pp(eaS(this,16),26))||(eBK(),tgx),t),66)).Nj().Rj(this,ehH(this),t-Y1((eBK(),tgx)),e,n)},eUe.lh=function(e){var t;switch(e){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return null!=this.D&&this.D==this.F;case 3:return!!em4(this);case 4:return!!euS(this);case 5:return null!=this.F&&this.F!=this.D&&this.F!=this.B;case 6:return!!z5(this);case 7:return!!this.A&&0!=this.A.i;case 8:return(256&this.Bb)==0;case 9:return!!this.a&&0!=this.a.i}return VP(this,e-Y1((eBK(),tgx)),ee2((t=Pp(eaS(this,16),26))||tgx,e))},eUe.sh=function(e,t){var n;switch(e){case 0:this.Ab||(this.Ab=new FQ(tm4,this,0,3)),eRT(this.Ab),this.Ab||(this.Ab=new FQ(tm4,this,0,3)),Y4(this.Ab,Pp(t,14));return;case 1:GN(this,Lq(t));return;case 2:TF(this,Lq(t));return;case 5:eji(this,Lq(t));return;case 7:this.A||(this.A=new OS(tgs,this,7)),eRT(this.A),this.A||(this.A=new OS(tgs,this,7)),Y4(this.A,Pp(t,14));return;case 8:elo(this,gN(LK(t)));return;case 9:this.a||(this.a=new FQ(tgn,this,9,5)),eRT(this.a),this.a||(this.a=new FQ(tgn,this,9,5)),Y4(this.a,Pp(t,14));return}efL(this,e-Y1((eBK(),tgx)),ee2((n=Pp(eaS(this,16),26))||tgx,e),t)},eUe.zh=function(){return eBK(),tgx},eUe.Bh=function(e){var t;switch(e){case 0:this.Ab||(this.Ab=new FQ(tm4,this,0,3)),eRT(this.Ab);return;case 1:M4(this.Cb,179)&&(Pp(this.Cb,179).tb=null),er3(this,null);return;case 2:euc(this,null),enp(this,this.D);return;case 5:eji(this,null);return;case 7:this.A||(this.A=new OS(tgs,this,7)),eRT(this.A);return;case 8:elo(this,!0);return;case 9:this.a||(this.a=new FQ(tgn,this,9,5)),eRT(this.a);return}ec6(this,e-Y1((eBK(),tgx)),ee2((t=Pp(eaS(this,16),26))||tgx,e))},eUe.Gh=function(){var e,t;if(this.a)for(e=0,t=this.a.i;e>16==5?Pp(this.Cb,671):null}return Qt(this,e-Y1((eBK(),tgT)),ee2((r=Pp(eaS(this,16),26))||tgT,e),t,n)},eUe.hh=function(e,t,n){var r,i,a;switch(t){case 0:return this.Ab||(this.Ab=new FQ(tm4,this,0,3)),edF(this.Ab,e,n);case 5:return this.Cb&&(n=(i=this.Db>>16)>=0?eg3(this,n):this.Cb.ih(this,-1-i,null,n)),eDg(this,e,5,n)}return(a=Pp(ee2((r=Pp(eaS(this,16),26))||(eBK(),tgT),t),66)).Nj().Qj(this,ehH(this),t-Y1((eBK(),tgT)),e,n)},eUe.jh=function(e,t,n){var r,i;switch(t){case 0:return this.Ab||(this.Ab=new FQ(tm4,this,0,3)),ep6(this.Ab,e,n);case 5:return eDg(this,null,5,n)}return(i=Pp(ee2((r=Pp(eaS(this,16),26))||(eBK(),tgT),t),66)).Nj().Rj(this,ehH(this),t-Y1((eBK(),tgT)),e,n)},eUe.lh=function(e){var t;switch(e){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return 0!=this.d;case 3:return!!this.b;case 4:return null!=this.c;case 5:return!!(this.Db>>16==5?Pp(this.Cb,671):null)}return VP(this,e-Y1((eBK(),tgT)),ee2((t=Pp(eaS(this,16),26))||tgT,e))},eUe.sh=function(e,t){var n;switch(e){case 0:this.Ab||(this.Ab=new FQ(tm4,this,0,3)),eRT(this.Ab),this.Ab||(this.Ab=new FQ(tm4,this,0,3)),Y4(this.Ab,Pp(t,14));return;case 1:er3(this,Lq(t));return;case 2:enf(this,Pp(t,19).a);return;case 3:exP(this,Pp(t,1940));return;case 4:erc(this,Lq(t));return}efL(this,e-Y1((eBK(),tgT)),ee2((n=Pp(eaS(this,16),26))||tgT,e),t)},eUe.zh=function(){return eBK(),tgT},eUe.Bh=function(e){var t;switch(e){case 0:this.Ab||(this.Ab=new FQ(tm4,this,0,3)),eRT(this.Ab);return;case 1:er3(this,null);return;case 2:enf(this,0);return;case 3:exP(this,null);return;case 4:erc(this,null);return}ec6(this,e-Y1((eBK(),tgT)),ee2((t=Pp(eaS(this,16),26))||tgT,e))},eUe.Ib=function(){var e;return null==(e=this.c)?this.zb:e},eUe.b=null,eUe.c=null,eUe.d=0,Y5(eZ2,"EEnumLiteralImpl",573);var tgl=RL(eZ2,"EFactoryImpl/InternalEDateTimeFormat");eTS(489,1,{2015:1},pY),Y5(eZ2,"EFactoryImpl/1ClientInternalEDateTimeFormat",489),eTS(241,115,{105:1,92:1,90:1,87:1,56:1,108:1,49:1,97:1,241:1,114:1,115:1},p5),eUe.Sg=function(e,t,n){var r;return n=eDg(this,e,t,n),this.e&&M4(e,170)&&(r=eOl(this,this.e))!=this.c&&(n=eFr(this,r,n)),n},eUe._g=function(e,t,n){var r;switch(e){case 0:return this.f;case 1:return this.d||(this.d=new O_(tgr,this,1)),this.d;case 2:if(t)return eD5(this);return this.c;case 3:return this.b;case 4:return this.e;case 5:if(t)return eb1(this);return this.a}return Qt(this,e-Y1((eBK(),tgO)),ee2((r=Pp(eaS(this,16),26))||tgO,e),t,n)},eUe.jh=function(e,t,n){var r,i;switch(t){case 0:return ecg(this,null,n);case 1:return this.d||(this.d=new O_(tgr,this,1)),ep6(this.d,e,n);case 3:return ecm(this,null,n)}return(i=Pp(ee2((r=Pp(eaS(this,16),26))||(eBK(),tgO),t),66)).Nj().Rj(this,ehH(this),t-Y1((eBK(),tgO)),e,n)},eUe.lh=function(e){var t;switch(e){case 0:return!!this.f;case 1:return!!this.d&&0!=this.d.i;case 2:return!!this.c;case 3:return!!this.b;case 4:return!!this.e;case 5:return!!this.a}return VP(this,e-Y1((eBK(),tgO)),ee2((t=Pp(eaS(this,16),26))||tgO,e))},eUe.sh=function(e,t){var n;switch(e){case 0:eyK(this,Pp(t,87));return;case 1:this.d||(this.d=new O_(tgr,this,1)),eRT(this.d),this.d||(this.d=new O_(tgr,this,1)),Y4(this.d,Pp(t,14));return;case 3:eyW(this,Pp(t,87));return;case 4:e_U(this,Pp(t,836));return;case 5:etV(this,Pp(t,138));return}efL(this,e-Y1((eBK(),tgO)),ee2((n=Pp(eaS(this,16),26))||tgO,e),t)},eUe.zh=function(){return eBK(),tgO},eUe.Bh=function(e){var t;switch(e){case 0:eyK(this,null);return;case 1:this.d||(this.d=new O_(tgr,this,1)),eRT(this.d);return;case 3:eyW(this,null);return;case 4:e_U(this,null);return;case 5:etV(this,null);return}ec6(this,e-Y1((eBK(),tgO)),ee2((t=Pp(eaS(this,16),26))||tgO,e))},eUe.Ib=function(){var e;return e=new O0(eMT(this)),e.a+=" (expression: ",ePB(this,e),e.a+=")",e.a},Y5(eZ2,"EGenericTypeImpl",241),eTS(1969,1964,eQr),eUe.Xh=function(e,t){Ch(this,e,t)},eUe.lk=function(e,t){return Ch(this,this.gc(),e),t},eUe.pi=function(e){return ep3(this.Gi(),e)},eUe.Zh=function(){return this.$h()},eUe.Gi=function(){return new pV(this)},eUe.$h=function(){return this._h(0)},eUe._h=function(e){return this.Gi().Zc(e)},eUe.mk=function(e,t){return eds(this,e,!0),t},eUe.ii=function(e,t){var n,r;return r=egW(this,t),(n=this.Zc(e)).Rb(r),r},eUe.ji=function(e,t){var n;eds(this,t,!0),(n=this.Zc(e)).Rb(t)},Y5(eJz,"AbstractSequentialInternalEList",1969),eTS(486,1969,eQr,AA),eUe.pi=function(e){return ep3(this.Gi(),e)},eUe.Zh=function(){return null==this.b?(_2(),_2(),tgq):this.Jk()},eUe.Gi=function(){return new x0(this.a,this.b)},eUe.$h=function(){return null==this.b?(_2(),_2(),tgq):this.Jk()},eUe._h=function(e){var t,n;if(null==this.b){if(e<0||e>1)throw p7(new gE(eJT+e+", size=0"));return _2(),_2(),tgq}for(t=0,n=this.Jk();t0;)if(t=this.c[--this.d],(!this.e||t.Gj()!=e6d||0!=t.aj())&&(!this.Mk()||this.b.mh(t))){if(a=this.b.bh(t,this.Lk()),this.f=(_4(),Pp(t,66).Oj()),this.f||t.$j()){if(this.Lk()?(r=Pp(a,15),this.k=r):(r=Pp(a,69),this.k=this.j=r),M4(this.k,54)?(this.o=this.k.gc(),this.n=this.o):this.p=this.j?this.j._h(this.k.gc()):this.k.Zc(this.k.gc()),this.p?eSs(this,this.p):eSQ(this))return i=this.p?this.p.Ub():this.j?this.j.pi(--this.n):this.k.Xb(--this.n),this.f?((e=Pp(i,72)).ak(),n=e.dd(),this.i=n):(n=i,this.i=n),this.g=-3,!0}else if(null!=a)return this.k=null,this.p=null,n=a,this.i=n,this.g=-2,!0}return this.k=null,this.p=null,this.g=-1,!1}},eUe.Pb=function(){return eaO(this)},eUe.Tb=function(){return this.a},eUe.Ub=function(){var e;if(this.g<-1||this.Sb())return--this.a,this.g=0,e=this.i,this.Sb(),e;throw p7(new bC)},eUe.Vb=function(){return this.a-1},eUe.Qb=function(){throw p7(new bO)},eUe.Lk=function(){return!1},eUe.Wb=function(e){throw p7(new bO)},eUe.Mk=function(){return!0},eUe.a=0,eUe.d=0,eUe.f=!1,eUe.g=0,eUe.n=0,eUe.o=0,Y5(eJz,"EContentsEList/FeatureIteratorImpl",279),eTS(697,279,eQi,Lv),eUe.Lk=function(){return!0},Y5(eJz,"EContentsEList/ResolvingFeatureIteratorImpl",697),eTS(1157,697,eQi,Lw),eUe.Mk=function(){return!1},Y5(eZ2,"ENamedElementImpl/1/1",1157),eTS(1158,279,eQi,Ly),eUe.Mk=function(){return!1},Y5(eZ2,"ENamedElementImpl/1/2",1158),eTS(36,143,eJx,qo,qs,FX,JB,Q$,ZB,en_,WX,enE,WJ,Zj,WQ,enx,W1,ZF,W0,enS,W2,FJ,JU,H0,enk,W3,ZY,W4),eUe._i=function(){return JA(this)},eUe.gj=function(){var e;return(e=JA(this))?e.zj():null},eUe.yi=function(e){return -1==this.b&&this.a&&(this.b=this.c.Xg(this.a.aj(),this.a.Gj())),this.c.Og(this.b,e)},eUe.Ai=function(){return this.c},eUe.hj=function(){var e;return!!(e=JA(this))&&e.Kj()},eUe.b=-1,Y5(eZ2,"ENotificationImpl",36),eTS(399,284,{105:1,92:1,90:1,147:1,191:1,56:1,59:1,108:1,472:1,49:1,97:1,150:1,399:1,284:1,114:1,115:1},mD),eUe.Qg=function(e){return evu(this,e)},eUe._g=function(e,t,n){var r,i,a;switch(e){case 0:return this.Ab||(this.Ab=new FQ(tm4,this,0,3)),this.Ab;case 1:return this.zb;case 2:return OQ(),(256&this.Bb)!=0;case 3:return OQ(),(512&this.Bb)!=0;case 4:return ell(this.s);case 5:return ell(this.t);case 6:return OQ(),(a=this.t)>1||-1==a;case 7:return OQ(),(i=this.s)>=1;case 8:if(t)return evl(this);return this.r;case 9:return this.q;case 10:return this.Db>>16==10?Pp(this.Cb,26):null;case 11:return this.d||(this.d=new OS(tgs,this,11)),this.d;case 12:return this.c||(this.c=new FQ(tga,this,12,10)),this.c;case 13:return this.a||(this.a=new C_(this,this)),this.a;case 14:return QX(this)}return Qt(this,e-Y1((eBK(),tgD)),ee2((r=Pp(eaS(this,16),26))||tgD,e),t,n)},eUe.hh=function(e,t,n){var r,i,a;switch(t){case 0:return this.Ab||(this.Ab=new FQ(tm4,this,0,3)),edF(this.Ab,e,n);case 10:return this.Cb&&(n=(i=this.Db>>16)>=0?evu(this,n):this.Cb.ih(this,-1-i,null,n)),eDg(this,e,10,n);case 12:return this.c||(this.c=new FQ(tga,this,12,10)),edF(this.c,e,n)}return(a=Pp(ee2((r=Pp(eaS(this,16),26))||(eBK(),tgD),t),66)).Nj().Qj(this,ehH(this),t-Y1((eBK(),tgD)),e,n)},eUe.jh=function(e,t,n){var r,i;switch(t){case 0:return this.Ab||(this.Ab=new FQ(tm4,this,0,3)),ep6(this.Ab,e,n);case 9:return Y3(this,n);case 10:return eDg(this,null,10,n);case 11:return this.d||(this.d=new OS(tgs,this,11)),ep6(this.d,e,n);case 12:return this.c||(this.c=new FQ(tga,this,12,10)),ep6(this.c,e,n);case 14:return ep6(QX(this),e,n)}return(i=Pp(ee2((r=Pp(eaS(this,16),26))||(eBK(),tgD),t),66)).Nj().Rj(this,ehH(this),t-Y1((eBK(),tgD)),e,n)},eUe.lh=function(e){var t,n,r;switch(e){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return(256&this.Bb)==0;case 3:return(512&this.Bb)==0;case 4:return 0!=this.s;case 5:return 1!=this.t;case 6:return(r=this.t)>1||-1==r;case 7:return(n=this.s)>=1;case 8:return!!this.r&&!this.q.e&&0==BX(this.q).i;case 9:return!!this.q&&!(this.r&&!this.q.e&&0==BX(this.q).i);case 10:return!!(this.Db>>16==10?Pp(this.Cb,26):null);case 11:return!!this.d&&0!=this.d.i;case 12:return!!this.c&&0!=this.c.i;case 13:return!!this.a&&0!=QX(this.a.a).i&&!(this.b&&ebq(this.b));case 14:return!!this.b&&ebq(this.b)}return VP(this,e-Y1((eBK(),tgD)),ee2((t=Pp(eaS(this,16),26))||tgD,e))},eUe.sh=function(e,t){var n,r;switch(e){case 0:this.Ab||(this.Ab=new FQ(tm4,this,0,3)),eRT(this.Ab),this.Ab||(this.Ab=new FQ(tm4,this,0,3)),Y4(this.Ab,Pp(t,14));return;case 1:er3(this,Lq(t));return;case 2:eli(this,gN(LK(t)));return;case 3:els(this,gN(LK(t)));return;case 4:end(this,Pp(t,19).a);return;case 5:enh(this,Pp(t,19).a);return;case 8:eu2(this,Pp(t,138));return;case 9:(r=ew3(this,Pp(t,87),null))&&r.Fi();return;case 11:this.d||(this.d=new OS(tgs,this,11)),eRT(this.d),this.d||(this.d=new OS(tgs,this,11)),Y4(this.d,Pp(t,14));return;case 12:this.c||(this.c=new FQ(tga,this,12,10)),eRT(this.c),this.c||(this.c=new FQ(tga,this,12,10)),Y4(this.c,Pp(t,14));return;case 13:this.a||(this.a=new C_(this,this)),eRP(this.a),this.a||(this.a=new C_(this,this)),Y4(this.a,Pp(t,14));return;case 14:eRT(QX(this)),Y4(QX(this),Pp(t,14));return}efL(this,e-Y1((eBK(),tgD)),ee2((n=Pp(eaS(this,16),26))||tgD,e),t)},eUe.zh=function(){return eBK(),tgD},eUe.Bh=function(e){var t,n;switch(e){case 0:this.Ab||(this.Ab=new FQ(tm4,this,0,3)),eRT(this.Ab);return;case 1:er3(this,null);return;case 2:eli(this,!0);return;case 3:els(this,!0);return;case 4:end(this,0);return;case 5:enh(this,1);return;case 8:eu2(this,null);return;case 9:(n=ew3(this,null,null))&&n.Fi();return;case 11:this.d||(this.d=new OS(tgs,this,11)),eRT(this.d);return;case 12:this.c||(this.c=new FQ(tga,this,12,10)),eRT(this.c);return;case 13:this.a&&eRP(this.a);return;case 14:this.b&&eRT(this.b);return}ec6(this,e-Y1((eBK(),tgD)),ee2((t=Pp(eaS(this,16),26))||tgD,e))},eUe.Gh=function(){var e,t;if(this.c)for(e=0,t=this.c.i;es&&Bc(e,s,null),r=0,n=new Ow(QX(this.a));n.e!=n.i.gc();)a=(o=(t=Pp(epH(n),87)).c)||(eBK(),tgA),Bc(e,r++,a);return e},eUe.Yi=function(){var e,t,n,r,i;for(i=new vs,i.a+="[",e=QX(this.a),t=0,r=QX(this.a).i;t1);case 5:return Gt(this,e,t,n,r,this.i-Pp(n,15).gc()>0);default:return new Q$(this.e,e,this.c,t,n,r,!0)}},eUe.ij=function(){return!0},eUe.fj=function(){return ebq(this)},eUe.Xj=function(){eRT(this)},Y5(eZ2,"EOperationImpl/2",1341),eTS(498,1,{1938:1,498:1},k5),Y5(eZ2,"EPackageImpl/1",498),eTS(16,85,eJ9,FQ),eUe.zk=function(){return this.d},eUe.Ak=function(){return this.b},eUe.Dk=function(){return!0},eUe.b=0,Y5(eJz,"EObjectContainmentWithInverseEList",16),eTS(353,16,eJ9,Ia),eUe.Ek=function(){return!0},eUe.li=function(e,t){return ex7(this,e,Pp(t,56))},Y5(eJz,"EObjectContainmentWithInverseEList/Resolving",353),eTS(298,353,eJ9,Fq),eUe.ci=function(){this.a.tb=null},Y5(eZ2,"EPackageImpl/2",298),eTS(1228,1,{},sh),Y5(eZ2,"EPackageImpl/3",1228),eTS(718,43,e$s,mP),eUe._b=function(e){return xd(e)?$r(this,e):!!$I(this.f,e)},Y5(eZ2,"EPackageRegistryImpl",718),eTS(509,284,{105:1,92:1,90:1,147:1,191:1,56:1,2017:1,108:1,472:1,49:1,97:1,150:1,509:1,284:1,114:1,115:1},mN),eUe.Qg=function(e){return evc(this,e)},eUe._g=function(e,t,n){var r,i,a;switch(e){case 0:return this.Ab||(this.Ab=new FQ(tm4,this,0,3)),this.Ab;case 1:return this.zb;case 2:return OQ(),(256&this.Bb)!=0;case 3:return OQ(),(512&this.Bb)!=0;case 4:return ell(this.s);case 5:return ell(this.t);case 6:return OQ(),(a=this.t)>1||-1==a;case 7:return OQ(),(i=this.s)>=1;case 8:if(t)return evl(this);return this.r;case 9:return this.q;case 10:return this.Db>>16==10?Pp(this.Cb,59):null}return Qt(this,e-Y1((eBK(),tgR)),ee2((r=Pp(eaS(this,16),26))||tgR,e),t,n)},eUe.hh=function(e,t,n){var r,i,a;switch(t){case 0:return this.Ab||(this.Ab=new FQ(tm4,this,0,3)),edF(this.Ab,e,n);case 10:return this.Cb&&(n=(i=this.Db>>16)>=0?evc(this,n):this.Cb.ih(this,-1-i,null,n)),eDg(this,e,10,n)}return(a=Pp(ee2((r=Pp(eaS(this,16),26))||(eBK(),tgR),t),66)).Nj().Qj(this,ehH(this),t-Y1((eBK(),tgR)),e,n)},eUe.jh=function(e,t,n){var r,i;switch(t){case 0:return this.Ab||(this.Ab=new FQ(tm4,this,0,3)),ep6(this.Ab,e,n);case 9:return Y3(this,n);case 10:return eDg(this,null,10,n)}return(i=Pp(ee2((r=Pp(eaS(this,16),26))||(eBK(),tgR),t),66)).Nj().Rj(this,ehH(this),t-Y1((eBK(),tgR)),e,n)},eUe.lh=function(e){var t,n,r;switch(e){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return(256&this.Bb)==0;case 3:return(512&this.Bb)==0;case 4:return 0!=this.s;case 5:return 1!=this.t;case 6:return(r=this.t)>1||-1==r;case 7:return(n=this.s)>=1;case 8:return!!this.r&&!this.q.e&&0==BX(this.q).i;case 9:return!!this.q&&!(this.r&&!this.q.e&&0==BX(this.q).i);case 10:return!!(this.Db>>16==10?Pp(this.Cb,59):null)}return VP(this,e-Y1((eBK(),tgR)),ee2((t=Pp(eaS(this,16),26))||tgR,e))},eUe.zh=function(){return eBK(),tgR},Y5(eZ2,"EParameterImpl",509),eTS(99,449,{105:1,92:1,90:1,147:1,191:1,56:1,18:1,170:1,66:1,108:1,472:1,49:1,97:1,150:1,99:1,449:1,284:1,114:1,115:1,677:1},LB),eUe._g=function(e,t,n){var r,i,a,o;switch(e){case 0:return this.Ab||(this.Ab=new FQ(tm4,this,0,3)),this.Ab;case 1:return this.zb;case 2:return OQ(),(256&this.Bb)!=0;case 3:return OQ(),(512&this.Bb)!=0;case 4:return ell(this.s);case 5:return ell(this.t);case 6:return OQ(),(o=this.t)>1||-1==o;case 7:return OQ(),(i=this.s)>=1;case 8:if(t)return evl(this);return this.r;case 9:return this.q;case 10:return OQ(),(this.Bb&eXt)!=0;case 11:return OQ(),(this.Bb&eJq)!=0;case 12:return OQ(),(this.Bb&eH0)!=0;case 13:return this.j;case 14:return eOI(this);case 15:return OQ(),(this.Bb&eJV)!=0;case 16:return OQ(),(this.Bb&eUR)!=0;case 17:return z6(this);case 18:return OQ(),(this.Bb&eZ1)!=0;case 19:return OQ(),!!(a=ebY(this))&&(a.Bb&eZ1)!=0;case 20:return OQ(),(this.Bb&eH3)!=0;case 21:if(t)return ebY(this);return this.b;case 22:if(t)return esd(this);return ZS(this);case 23:return this.a||(this.a=new OT(tm9,this,23)),this.a}return Qt(this,e-Y1((eBK(),tgj)),ee2((r=Pp(eaS(this,16),26))||tgj,e),t,n)},eUe.lh=function(e){var t,n,r,i;switch(e){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return(256&this.Bb)==0;case 3:return(512&this.Bb)==0;case 4:return 0!=this.s;case 5:return 1!=this.t;case 6:return(i=this.t)>1||-1==i;case 7:return(n=this.s)>=1;case 8:return!!this.r&&!this.q.e&&0==BX(this.q).i;case 9:return!!this.q&&!(this.r&&!this.q.e&&0==BX(this.q).i);case 10:return(this.Bb&eXt)==0;case 11:return(this.Bb&eJq)!=0;case 12:return(this.Bb&eH0)!=0;case 13:return null!=this.j;case 14:return null!=eOI(this);case 15:return(this.Bb&eJV)!=0;case 16:return(this.Bb&eUR)!=0;case 17:return!!z6(this);case 18:return(this.Bb&eZ1)!=0;case 19:return!!(r=ebY(this))&&(r.Bb&eZ1)!=0;case 20:return(this.Bb&eH3)==0;case 21:return!!this.b;case 22:return!!ZS(this);case 23:return!!this.a&&0!=this.a.i}return VP(this,e-Y1((eBK(),tgj)),ee2((t=Pp(eaS(this,16),26))||tgj,e))},eUe.sh=function(e,t){var n,r;switch(e){case 0:this.Ab||(this.Ab=new FQ(tm4,this,0,3)),eRT(this.Ab),this.Ab||(this.Ab=new FQ(tm4,this,0,3)),Y4(this.Ab,Pp(t,14));return;case 1:GD(this,Lq(t));return;case 2:eli(this,gN(LK(t)));return;case 3:els(this,gN(LK(t)));return;case 4:end(this,Pp(t,19).a);return;case 5:enh(this,Pp(t,19).a);return;case 8:eu2(this,Pp(t,138));return;case 9:(r=ew3(this,Pp(t,87),null))&&r.Fi();return;case 10:elF(this,gN(LK(t)));return;case 11:elU(this,gN(LK(t)));return;case 12:elY(this,gN(LK(t)));return;case 13:xi(this,Lq(t));return;case 15:elB(this,gN(LK(t)));return;case 16:elZ(this,gN(LK(t)));return;case 18:GI(this,gN(LK(t)));return;case 20:elQ(this,gN(LK(t)));return;case 21:erM(this,Pp(t,18));return;case 23:this.a||(this.a=new OT(tm9,this,23)),eRT(this.a),this.a||(this.a=new OT(tm9,this,23)),Y4(this.a,Pp(t,14));return}efL(this,e-Y1((eBK(),tgj)),ee2((n=Pp(eaS(this,16),26))||tgj,e),t)},eUe.zh=function(){return eBK(),tgj},eUe.Bh=function(e){var t,n;switch(e){case 0:this.Ab||(this.Ab=new FQ(tm4,this,0,3)),eRT(this.Ab);return;case 1:M4(this.Cb,88)&&eko(Zd(Pp(this.Cb,88)),4),er3(this,null);return;case 2:eli(this,!0);return;case 3:els(this,!0);return;case 4:end(this,0);return;case 5:enh(this,1);return;case 8:eu2(this,null);return;case 9:(n=ew3(this,null,null))&&n.Fi();return;case 10:elF(this,!0);return;case 11:elU(this,!1);return;case 12:elY(this,!1);return;case 13:this.i=null,erA(this,null);return;case 15:elB(this,!1);return;case 16:elZ(this,!1);return;case 18:elJ(this,!1),M4(this.Cb,88)&&eko(Zd(Pp(this.Cb,88)),2);return;case 20:elQ(this,!0);return;case 21:erM(this,null);return;case 23:this.a||(this.a=new OT(tm9,this,23)),eRT(this.a);return}ec6(this,e-Y1((eBK(),tgj)),ee2((t=Pp(eaS(this,16),26))||tgj,e))},eUe.Gh=function(){esd(this),UH(QZ((eSp(),tvc),this)),evl(this),this.Bb|=1},eUe.Lj=function(){return ebY(this)},eUe.qk=function(){var e;return!!(e=ebY(this))&&(e.Bb&eZ1)!=0},eUe.rk=function(){return(this.Bb&eZ1)!=0},eUe.sk=function(){return(this.Bb&eH3)!=0},eUe.nk=function(e,t){return this.c=null,ecz(this,e,t)},eUe.Ib=function(){var e;return(64&this.Db)!=0?eCR(this):(e=new O1(eCR(this)),e.a+=" (containment: ",yG(e,(this.Bb&eZ1)!=0),e.a+=", resolveProxies: ",yG(e,(this.Bb&eH3)!=0),e.a+=")",e.a)},Y5(eZ2,"EReferenceImpl",99),eTS(548,115,{105:1,42:1,92:1,90:1,133:1,56:1,108:1,49:1,97:1,548:1,114:1,115:1},sp),eUe.Fb=function(e){return this===e},eUe.cd=function(){return this.b},eUe.dd=function(){return this.c},eUe.Hb=function(){return Ao(this)},eUe.Uh=function(e){RP(this,Lq(e))},eUe.ed=function(e){return P5(this,Lq(e))},eUe._g=function(e,t,n){var r;switch(e){case 0:return this.b;case 1:return this.c}return Qt(this,e-Y1((eBK(),tgF)),ee2((r=Pp(eaS(this,16),26))||tgF,e),t,n)},eUe.lh=function(e){var t;switch(e){case 0:return null!=this.b;case 1:return null!=this.c}return VP(this,e-Y1((eBK(),tgF)),ee2((t=Pp(eaS(this,16),26))||tgF,e))},eUe.sh=function(e,t){var n;switch(e){case 0:RR(this,Lq(t));return;case 1:ers(this,Lq(t));return}efL(this,e-Y1((eBK(),tgF)),ee2((n=Pp(eaS(this,16),26))||tgF,e),t)},eUe.zh=function(){return eBK(),tgF},eUe.Bh=function(e){var t;switch(e){case 0:ero(this,null);return;case 1:ers(this,null);return}ec6(this,e-Y1((eBK(),tgF)),ee2((t=Pp(eaS(this,16),26))||tgF,e))},eUe.Sh=function(){var e;return -1==this.a&&(e=this.b,this.a=null==e?0:ebA(e)),this.a},eUe.Th=function(e){this.a=e},eUe.Ib=function(){var e;return(64&this.Db)!=0?eMT(this):(e=new O1(eMT(this)),e.a+=" (key: ",xk(e,this.b),e.a+=", value: ",xk(e,this.c),e.a+=")",e.a)},eUe.a=-1,eUe.b=null,eUe.c=null;var tgf=Y5(eZ2,"EStringToStringMapEntryImpl",548),tgd=RL(eJz,"FeatureMap/Entry/Internal");eTS(565,1,eQa),eUe.Ok=function(e){return this.Pk(Pp(e,49))},eUe.Pk=function(e){return this.Ok(e)},eUe.Fb=function(e){var t,n;return this===e||!!M4(e,72)&&(t=Pp(e,72)).ak()==this.c&&(null==(n=this.dd())?null==t.dd():ecX(n,t.dd()))},eUe.ak=function(){return this.c},eUe.Hb=function(){var e;return e=this.dd(),esj(this.c)^(null==e?0:esj(e))},eUe.Ib=function(){var e,t;return t=etP((e=this.c).Hj()).Ph(),e.ne(),(null!=t&&0!=t.length?t+":"+e.ne():e.ne())+"="+this.dd()},Y5(eZ2,"EStructuralFeatureImpl/BasicFeatureMapEntry",565),eTS(776,565,eQa,Cg),eUe.Pk=function(e){return new Cg(this.c,e)},eUe.dd=function(){return this.a},eUe.Qk=function(e,t,n){return eiY(this,e,this.a,t,n)},eUe.Rk=function(e,t,n){return eiB(this,e,this.a,t,n)},Y5(eZ2,"EStructuralFeatureImpl/ContainmentUpdatingFeatureMapEntry",776),eTS(1314,1,{},k6),eUe.Pj=function(e,t,n,r,i){var a;return(a=Pp(JG(e,this.b),215)).nl(this.a).Wj(r)},eUe.Qj=function(e,t,n,r,i){var a;return(a=Pp(JG(e,this.b),215)).el(this.a,r,i)},eUe.Rj=function(e,t,n,r,i){var a;return(a=Pp(JG(e,this.b),215)).fl(this.a,r,i)},eUe.Sj=function(e,t,n){var r;return(r=Pp(JG(e,this.b),215)).nl(this.a).fj()},eUe.Tj=function(e,t,n,r){var i;(i=Pp(JG(e,this.b),215)).nl(this.a).Wb(r)},eUe.Uj=function(e,t,n){return Pp(JG(e,this.b),215).nl(this.a)},eUe.Vj=function(e,t,n){var r;(r=Pp(JG(e,this.b),215)).nl(this.a).Xj()},Y5(eZ2,"EStructuralFeatureImpl/InternalSettingDelegateFeatureMapDelegator",1314),eTS(89,1,{},Pe,HS,$F,qc),eUe.Pj=function(e,t,n,r,i){var a;if(null==(a=t.Ch(n))&&t.Dh(n,a=eBN(this,e)),!i)switch(this.e){case 50:case 41:return Pp(a,589).sj();case 40:return Pp(a,215).kl()}return a},eUe.Qj=function(e,t,n,r,i){var a,o;return null==(o=t.Ch(n))&&t.Dh(n,o=eBN(this,e)),a=Pp(o,69).lk(r,i)},eUe.Rj=function(e,t,n,r,i){var a;return null!=(a=t.Ch(n))&&(i=Pp(a,69).mk(r,i)),i},eUe.Sj=function(e,t,n){var r;return null!=(r=t.Ch(n))&&Pp(r,76).fj()},eUe.Tj=function(e,t,n,r){var i;(i=Pp(t.Ch(n),76))||t.Dh(n,i=eBN(this,e)),i.Wb(r)},eUe.Uj=function(e,t,n){var r,i;return(null==(i=t.Ch(n))&&t.Dh(n,i=eBN(this,e)),M4(i,76))?Pp(i,76):(r=Pp(t.Ch(n),15),new pz(r))},eUe.Vj=function(e,t,n){var r;(r=Pp(t.Ch(n),76))||t.Dh(n,r=eBN(this,e)),r.Xj()},eUe.b=0,eUe.e=0,Y5(eZ2,"EStructuralFeatureImpl/InternalSettingDelegateMany",89),eTS(504,1,{}),eUe.Qj=function(e,t,n,r,i){throw p7(new bO)},eUe.Rj=function(e,t,n,r,i){throw p7(new bO)},eUe.Uj=function(e,t,n){return new Hk(this,e,t,n)},Y5(eZ2,"EStructuralFeatureImpl/InternalSettingDelegateSingle",504),eTS(1331,1,eJG,Hk),eUe.Wj=function(e){return this.a.Pj(this.c,this.d,this.b,e,!0)},eUe.fj=function(){return this.a.Sj(this.c,this.d,this.b)},eUe.Wb=function(e){this.a.Tj(this.c,this.d,this.b,e)},eUe.Xj=function(){this.a.Vj(this.c,this.d,this.b)},eUe.b=0,Y5(eZ2,"EStructuralFeatureImpl/InternalSettingDelegateSingle/1",1331),eTS(769,504,{},zl),eUe.Pj=function(e,t,n,r,i){return eIy(e,e.eh(),e.Vg())==this.b?this.sk()&&r?eTp(e):e.eh():null},eUe.Qj=function(e,t,n,r,i){var a,o;return e.eh()&&(i=(a=e.Vg())>=0?e.Qg(i):e.eh().ih(e,-1-a,null,i)),o=edv(e.Tg(),this.e),e.Sg(r,o,i)},eUe.Rj=function(e,t,n,r,i){var a;return a=edv(e.Tg(),this.e),e.Sg(null,a,i)},eUe.Sj=function(e,t,n){var r;return r=edv(e.Tg(),this.e),!!e.eh()&&e.Vg()==r},eUe.Tj=function(e,t,n,r){var i,a,o,s,u;if(null!=r&&!eNc(this.a,r))throw p7(new gA(eQo+(M4(r,56)?eyB(Pp(r,56).Tg()):ee6(esF(r)))+eQs+this.a+"'"));if(i=e.eh(),o=edv(e.Tg(),this.e),xc(r)!==xc(i)||e.Vg()!=o&&null!=r){if(eg7(e,Pp(r,56)))throw p7(new gL(eZ4+e.Ib()));u=null,i&&(u=(a=e.Vg())>=0?e.Qg(u):e.eh().ih(e,-1-a,null,u)),(s=Pp(r,49))&&(u=s.gh(e,edv(s.Tg(),this.b),null,u)),(u=e.Sg(s,o,u))&&u.Fi()}else e.Lg()&&e.Mg()&&eam(e,new FX(e,1,o,r,r))},eUe.Vj=function(e,t,n){var r,i,a,o;(r=e.eh())?(o=(i=e.Vg())>=0?e.Qg(null):e.eh().ih(e,-1-i,null,null),a=edv(e.Tg(),this.e),(o=e.Sg(null,a,o))&&o.Fi()):e.Lg()&&e.Mg()&&eam(e,new FJ(e,1,this.e,null,null))},eUe.sk=function(){return!1},Y5(eZ2,"EStructuralFeatureImpl/InternalSettingDelegateSingleContainer",769),eTS(1315,769,{},Pt),eUe.sk=function(){return!0},Y5(eZ2,"EStructuralFeatureImpl/InternalSettingDelegateSingleContainerResolving",1315),eTS(563,504,{}),eUe.Pj=function(e,t,n,r,i){var a;return null==(a=t.Ch(n))?this.b:xc(a)===xc(tgZ)?null:a},eUe.Sj=function(e,t,n){var r;return null!=(r=t.Ch(n))&&(xc(r)===xc(tgZ)||!ecX(r,this.b))},eUe.Tj=function(e,t,n,r){var i,a;e.Lg()&&e.Mg()?(i=null==(a=t.Ch(n))?this.b:xc(a)===xc(tgZ)?null:a,null==r?null!=this.c?(t.Dh(n,null),r=this.b):null!=this.b?t.Dh(n,tgZ):t.Dh(n,null):(this.Sk(r),t.Dh(n,r)),eam(e,this.d.Tk(e,1,this.e,i,r))):null==r?null!=this.c?t.Dh(n,null):null!=this.b?t.Dh(n,tgZ):t.Dh(n,null):(this.Sk(r),t.Dh(n,r))},eUe.Vj=function(e,t,n){var r,i;e.Lg()&&e.Mg()?(r=null==(i=t.Ch(n))?this.b:xc(i)===xc(tgZ)?null:i,t.Eh(n),eam(e,this.d.Tk(e,1,this.e,r,this.b))):t.Eh(n)},eUe.Sk=function(e){throw p7(new bk)},Y5(eZ2,"EStructuralFeatureImpl/InternalSettingDelegateSingleData",563),eTS(eQu,1,{},sb),eUe.Tk=function(e,t,n,r,i){return new FJ(e,t,n,r,i)},eUe.Uk=function(e,t,n,r,i,a){return new H0(e,t,n,r,i,a)},Y5(eZ2,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator",eQu),eTS(1332,eQu,{},sm),eUe.Tk=function(e,t,n,r,i){return new ZY(e,t,n,gN(LK(r)),gN(LK(i)))},eUe.Uk=function(e,t,n,r,i,a){return new W4(e,t,n,gN(LK(r)),gN(LK(i)),a)},Y5(eZ2,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/1",1332),eTS(1333,eQu,{},sg),eUe.Tk=function(e,t,n,r,i){return new en_(e,t,n,Pp(r,217).a,Pp(i,217).a)},eUe.Uk=function(e,t,n,r,i,a){return new WX(e,t,n,Pp(r,217).a,Pp(i,217).a,a)},Y5(eZ2,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/2",1333),eTS(1334,eQu,{},sv),eUe.Tk=function(e,t,n,r,i){return new enE(e,t,n,Pp(r,172).a,Pp(i,172).a)},eUe.Uk=function(e,t,n,r,i,a){return new WJ(e,t,n,Pp(r,172).a,Pp(i,172).a,a)},Y5(eZ2,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/3",1334),eTS(1335,eQu,{},sy),eUe.Tk=function(e,t,n,r,i){return new Zj(e,t,n,gP(LV(r)),gP(LV(i)))},eUe.Uk=function(e,t,n,r,i,a){return new WQ(e,t,n,gP(LV(r)),gP(LV(i)),a)},Y5(eZ2,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/4",1335),eTS(1336,eQu,{},sw),eUe.Tk=function(e,t,n,r,i){return new enx(e,t,n,Pp(r,155).a,Pp(i,155).a)},eUe.Uk=function(e,t,n,r,i,a){return new W1(e,t,n,Pp(r,155).a,Pp(i,155).a,a)},Y5(eZ2,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/5",1336),eTS(1337,eQu,{},s_),eUe.Tk=function(e,t,n,r,i){return new ZF(e,t,n,Pp(r,19).a,Pp(i,19).a)},eUe.Uk=function(e,t,n,r,i,a){return new W0(e,t,n,Pp(r,19).a,Pp(i,19).a,a)},Y5(eZ2,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/6",1337),eTS(1338,eQu,{},sE),eUe.Tk=function(e,t,n,r,i){return new enS(e,t,n,Pp(r,162).a,Pp(i,162).a)},eUe.Uk=function(e,t,n,r,i,a){return new W2(e,t,n,Pp(r,162).a,Pp(i,162).a,a)},Y5(eZ2,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/7",1338),eTS(1339,eQu,{},sS),eUe.Tk=function(e,t,n,r,i){return new enk(e,t,n,Pp(r,184).a,Pp(i,184).a)},eUe.Uk=function(e,t,n,r,i,a){return new W3(e,t,n,Pp(r,184).a,Pp(i,184).a,a)},Y5(eZ2,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/8",1339),eTS(1317,563,{},Hx),eUe.Sk=function(e){if(!this.a.wj(e))throw p7(new gA(eQo+esF(e)+eQs+this.a+"'"))},Y5(eZ2,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataDynamic",1317),eTS(1318,563,{},j6),eUe.Sk=function(e){},Y5(eZ2,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataStatic",1318),eTS(770,563,{}),eUe.Sj=function(e,t,n){var r;return null!=(r=t.Ch(n))},eUe.Tj=function(e,t,n,r){var i,a;e.Lg()&&e.Mg()?(i=!0,null==(a=t.Ch(n))?(i=!1,a=this.b):xc(a)===xc(tgZ)&&(a=null),null==r?null!=this.c?(t.Dh(n,null),r=this.b):t.Dh(n,tgZ):(this.Sk(r),t.Dh(n,r)),eam(e,this.d.Uk(e,1,this.e,a,r,!i))):null==r?null!=this.c?t.Dh(n,null):t.Dh(n,tgZ):(this.Sk(r),t.Dh(n,r))},eUe.Vj=function(e,t,n){var r,i;e.Lg()&&e.Mg()?(r=!0,null==(i=t.Ch(n))?(r=!1,i=this.b):xc(i)===xc(tgZ)&&(i=null),t.Eh(n),eam(e,this.d.Uk(e,2,this.e,i,this.b,r))):t.Eh(n)},Y5(eZ2,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettable",770),eTS(1319,770,{},HT),eUe.Sk=function(e){if(!this.a.wj(e))throw p7(new gA(eQo+esF(e)+eQs+this.a+"'"))},Y5(eZ2,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableDynamic",1319),eTS(1320,770,{},j9),eUe.Sk=function(e){},Y5(eZ2,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableStatic",1320),eTS(398,504,{},jd),eUe.Pj=function(e,t,n,r,i){var a,o,s,u,c;if(c=t.Ch(n),this.Kj()&&xc(c)===xc(tgZ))return null;if(!this.sk()||!r||null==c)return c;if((s=Pp(c,49)).kh()&&(u=ecv(e,s),s!=u)){if(!eNc(this.a,u))throw p7(new gA(eQo+esF(u)+eQs+this.a+"'"));t.Dh(n,c=u),this.rk()&&(a=Pp(u,49),o=s.ih(e,this.b?edv(s.Tg(),this.b):-1-edv(e.Tg(),this.e),null,null),a.eh()||(o=a.gh(e,this.b?edv(a.Tg(),this.b):-1-edv(e.Tg(),this.e),null,o)),o&&o.Fi()),e.Lg()&&e.Mg()&&eam(e,new FJ(e,9,this.e,s,u))}return c},eUe.Qj=function(e,t,n,r,i){var a,o;return xc(o=t.Ch(n))===xc(tgZ)&&(o=null),t.Dh(n,r),this.bj()?xc(o)!==xc(r)&&null!=o&&(i=(a=Pp(o,49)).ih(e,edv(a.Tg(),this.b),null,i)):this.rk()&&null!=o&&(i=Pp(o,49).ih(e,-1-edv(e.Tg(),this.e),null,i)),e.Lg()&&e.Mg()&&(i||(i=new yf(4)),i.Ei(new FJ(e,1,this.e,o,r))),i},eUe.Rj=function(e,t,n,r,i){var a;return xc(a=t.Ch(n))===xc(tgZ)&&(a=null),t.Eh(n),e.Lg()&&e.Mg()&&(i||(i=new yf(4)),this.Kj()?i.Ei(new FJ(e,2,this.e,a,null)):i.Ei(new FJ(e,1,this.e,a,null))),i},eUe.Sj=function(e,t,n){var r;return null!=(r=t.Ch(n))},eUe.Tj=function(e,t,n,r){var i,a,o,s,u;if(null!=r&&!eNc(this.a,r))throw p7(new gA(eQo+(M4(r,56)?eyB(Pp(r,56).Tg()):ee6(esF(r)))+eQs+this.a+"'"));s=null!=(u=t.Ch(n)),this.Kj()&&xc(u)===xc(tgZ)&&(u=null),o=null,this.bj()?xc(u)!==xc(r)&&(null!=u&&(o=(i=Pp(u,49)).ih(e,edv(i.Tg(),this.b),null,o)),null!=r&&(o=(i=Pp(r,49)).gh(e,edv(i.Tg(),this.b),null,o))):this.rk()&&xc(u)!==xc(r)&&(null!=u&&(o=Pp(u,49).ih(e,-1-edv(e.Tg(),this.e),null,o)),null!=r&&(o=Pp(r,49).gh(e,-1-edv(e.Tg(),this.e),null,o))),null==r&&this.Kj()?t.Dh(n,tgZ):t.Dh(n,r),e.Lg()&&e.Mg()?(a=new H0(e,1,this.e,u,r,this.Kj()&&!s),o?(o.Ei(a),o.Fi()):eam(e,a)):o&&o.Fi()},eUe.Vj=function(e,t,n){var r,i,a,o,s;o=null!=(s=t.Ch(n)),this.Kj()&&xc(s)===xc(tgZ)&&(s=null),a=null,null!=s&&(this.bj()?a=(r=Pp(s,49)).ih(e,edv(r.Tg(),this.b),null,a):this.rk()&&(a=Pp(s,49).ih(e,-1-edv(e.Tg(),this.e),null,a))),t.Eh(n),e.Lg()&&e.Mg()?(i=new H0(e,this.Kj()?2:1,this.e,s,null,o),a?(a.Ei(i),a.Fi()):eam(e,i)):a&&a.Fi()},eUe.bj=function(){return!1},eUe.rk=function(){return!1},eUe.sk=function(){return!1},eUe.Kj=function(){return!1},Y5(eZ2,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObject",398),eTS(564,398,{},LE),eUe.rk=function(){return!0},Y5(eZ2,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainment",564),eTS(1323,564,{},LS),eUe.sk=function(){return!0},Y5(eZ2,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentResolving",1323),eTS(772,564,{},Lk),eUe.Kj=function(){return!0},Y5(eZ2,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettable",772),eTS(1325,772,{},Lx),eUe.sk=function(){return!0},Y5(eZ2,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettableResolving",1325),eTS(640,564,{},Pn),eUe.bj=function(){return!0},Y5(eZ2,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverse",640),eTS(1324,640,{},Pa),eUe.sk=function(){return!0},Y5(eZ2,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseResolving",1324),eTS(773,640,{},Po),eUe.Kj=function(){return!0},Y5(eZ2,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettable",773),eTS(1326,773,{},Ps),eUe.sk=function(){return!0},Y5(eZ2,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettableResolving",1326),eTS(641,398,{},LT),eUe.sk=function(){return!0},Y5(eZ2,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolving",641),eTS(1327,641,{},LM),eUe.Kj=function(){return!0},Y5(eZ2,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingUnsettable",1327),eTS(774,641,{},Pr),eUe.bj=function(){return!0},Y5(eZ2,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverse",774),eTS(1328,774,{},Pu),eUe.Kj=function(){return!0},Y5(eZ2,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverseUnsettable",1328),eTS(1321,398,{},LO),eUe.Kj=function(){return!0},Y5(eZ2,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectUnsettable",1321),eTS(771,398,{},Pi),eUe.bj=function(){return!0},Y5(eZ2,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverse",771),eTS(1322,771,{},Pc),eUe.Kj=function(){return!0},Y5(eZ2,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverseUnsettable",1322),eTS(775,565,eQa,Bj),eUe.Pk=function(e){return new Bj(this.a,this.c,e)},eUe.dd=function(){return this.b},eUe.Qk=function(e,t,n){return Jt(this,e,this.b,n)},eUe.Rk=function(e,t,n){return Jn(this,e,this.b,n)},Y5(eZ2,"EStructuralFeatureImpl/InverseUpdatingFeatureMapEntry",775),eTS(1329,1,eJG,pz),eUe.Wj=function(e){return this.a},eUe.fj=function(){return M4(this.a,95)?Pp(this.a,95).fj():!this.a.dc()},eUe.Wb=function(e){this.a.$b(),this.a.Gc(Pp(e,15))},eUe.Xj=function(){M4(this.a,95)?Pp(this.a,95).Xj():this.a.$b()},Y5(eZ2,"EStructuralFeatureImpl/SettingMany",1329),eTS(1330,565,eQa,qf),eUe.Ok=function(e){return new Cv((eR7(),tvK),this.b.Ih(this.a,e))},eUe.dd=function(){return null},eUe.Qk=function(e,t,n){return n},eUe.Rk=function(e,t,n){return n},Y5(eZ2,"EStructuralFeatureImpl/SimpleContentFeatureMapEntry",1330),eTS(642,565,eQa,Cv),eUe.Ok=function(e){return new Cv(this.c,e)},eUe.dd=function(){return this.a},eUe.Qk=function(e,t,n){return n},eUe.Rk=function(e,t,n){return n},Y5(eZ2,"EStructuralFeatureImpl/SimpleFeatureMapEntry",642),eTS(391,497,eXz,sk),eUe.ri=function(e){return Je(tm7,eUp,26,e,0,1)},eUe.ni=function(){return!1},Y5(eZ2,"ESuperAdapter/1",391),eTS(444,438,{105:1,92:1,90:1,147:1,191:1,56:1,108:1,836:1,49:1,97:1,150:1,444:1,114:1,115:1},sx),eUe._g=function(e,t,n){var r;switch(e){case 0:return this.Ab||(this.Ab=new FQ(tm4,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.a||(this.a=new jh(this,tgr,this)),this.a}return Qt(this,e-Y1((eBK(),tgU)),ee2((r=Pp(eaS(this,16),26))||tgU,e),t,n)},eUe.jh=function(e,t,n){var r,i;switch(t){case 0:return this.Ab||(this.Ab=new FQ(tm4,this,0,3)),ep6(this.Ab,e,n);case 2:return this.a||(this.a=new jh(this,tgr,this)),ep6(this.a,e,n)}return(i=Pp(ee2((r=Pp(eaS(this,16),26))||(eBK(),tgU),t),66)).Nj().Rj(this,ehH(this),t-Y1((eBK(),tgU)),e,n)},eUe.lh=function(e){var t;switch(e){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return!!this.a&&0!=this.a.i}return VP(this,e-Y1((eBK(),tgU)),ee2((t=Pp(eaS(this,16),26))||tgU,e))},eUe.sh=function(e,t){var n;switch(e){case 0:this.Ab||(this.Ab=new FQ(tm4,this,0,3)),eRT(this.Ab),this.Ab||(this.Ab=new FQ(tm4,this,0,3)),Y4(this.Ab,Pp(t,14));return;case 1:er3(this,Lq(t));return;case 2:this.a||(this.a=new jh(this,tgr,this)),eRT(this.a),this.a||(this.a=new jh(this,tgr,this)),Y4(this.a,Pp(t,14));return}efL(this,e-Y1((eBK(),tgU)),ee2((n=Pp(eaS(this,16),26))||tgU,e),t)},eUe.zh=function(){return eBK(),tgU},eUe.Bh=function(e){var t;switch(e){case 0:this.Ab||(this.Ab=new FQ(tm4,this,0,3)),eRT(this.Ab);return;case 1:er3(this,null);return;case 2:this.a||(this.a=new jh(this,tgr,this)),eRT(this.a);return}ec6(this,e-Y1((eBK(),tgU)),ee2((t=Pp(eaS(this,16),26))||tgU,e))},Y5(eZ2,"ETypeParameterImpl",444),eTS(445,85,eJ9,jh),eUe.cj=function(e,t){return ewV(this,Pp(e,87),t)},eUe.dj=function(e,t){return ewq(this,Pp(e,87),t)},Y5(eZ2,"ETypeParameterImpl/1",445),eTS(634,43,e$s,mR),eUe.ec=function(){return new pG(this)},Y5(eZ2,"ETypeParameterImpl/2",634),eTS(556,eUT,eUM,pG),eUe.Fc=function(e){return Ie(this,Pp(e,87))},eUe.Gc=function(e){var t,n,r;for(r=!1,n=e.Kc();n.Ob();)t=Pp(n.Pb(),87),null==Um(this.a,t,"")&&(r=!0);return r},eUe.$b=function(){Yy(this.a)},eUe.Hc=function(e){return F9(this.a,e)},eUe.Kc=function(){var e;return e=new esz(new fS(this.a).a),new pW(e)},eUe.Mc=function(e){return Xp(this,e)},eUe.gc=function(){return wq(this.a)},Y5(eZ2,"ETypeParameterImpl/2/1",556),eTS(557,1,eUE,pW),eUe.Nb=function(e){F8(this,e)},eUe.Pb=function(){return Pp(etz(this.a).cd(),87)},eUe.Ob=function(){return this.a.b},eUe.Qb=function(){JM(this.a)},Y5(eZ2,"ETypeParameterImpl/2/1/1",557),eTS(1276,43,e$s,mj),eUe._b=function(e){return xd(e)?$r(this,e):!!$I(this.f,e)},eUe.xc=function(e){var t,n;return M4(t=xd(e)?zg(this,e):xu($I(this.f,e)),837)?(t=(n=Pp(t,837))._j(),Um(this,Pp(e,235),t),t):null!=t?t:null==e?(_3(),tvh):null},Y5(eZ2,"EValidatorRegistryImpl",1276),eTS(1313,704,{105:1,92:1,90:1,471:1,147:1,56:1,108:1,1941:1,49:1,97:1,150:1,114:1,115:1},sT),eUe.Ih=function(e,t){switch(e.yj()){case 21:case 22:case 23:case 24:case 26:case 31:case 32:case 37:case 38:case 39:case 40:case 43:case 44:case 48:case 49:case 20:return null==t?null:efF(t);case 25:return etR(t);case 27:return Qn(t);case 28:return Qr(t);case 29:return null==t?null:MU(tmS[0],Pp(t,199));case 41:return null==t?"":yx(Pp(t,290));case 42:return efF(t);case 50:return Lq(t);default:throw p7(new gL(eZ5+e.ne()+eZ6))}},eUe.Jh=function(e){var t;switch(-1==e.G&&(e.G=(t=etP(e))?ebv(t.Mh(),e):-1),e.G){case 0:return new mC;case 1:return new sa;case 2:return new c0;case 4:return new bN;case 5:return new mI;case 6:return new bD;case 7:return new cQ;case 10:return new sr;case 11:return new mD;case 12:return new $y;case 13:return new mN;case 14:return new LB;case 17:return new sp;case 18:return new p5;case 19:return new sx;default:throw p7(new gL(eZ7+e.zb+eZ6))}},eUe.Kh=function(e,t){switch(e.yj()){case 20:return null==t?null:new yY(t);case 21:return null==t?null:new TU(t);case 23:case 22:return null==t?null:ehL(t);case 26:case 24:return null==t?null:eeT(eDa(t,-128,127)<<24>>24);case 25:return eMp(t);case 27:return egg(t);case 28:return egv(t);case 29:return e__(t);case 32:case 31:return null==t?null:eEu(t);case 38:case 37:return null==t?null:new bK(t);case 40:case 39:return null==t?null:ell(eDa(t,eHt,eUu));case 41:case 42:return null;case 44:case 43:return null==t?null:ehQ(eF0(t));case 49:case 48:return null==t?null:elf(eDa(t,eQl,32767)<<16>>16);case 50:return t;default:throw p7(new gL(eZ5+e.ne()+eZ6))}},Y5(eZ2,"EcoreFactoryImpl",1313),eTS(547,179,{105:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,1939:1,49:1,97:1,150:1,179:1,547:1,114:1,115:1,675:1},Uh),eUe.gb=!1,eUe.hb=!1;var tgh,tgp,tgb,tgm,tgg,tgv,tgy,tgw,tg_,tgE,tgS,tgk,tgx,tgT,tgM,tgO,tgA,tgL,tgC,tgI,tgD,tgN,tgP,tgR,tgj,tgF,tgY,tgB,tgU,tgH,tg$,tgz,tgG,tgW,tgK,tgV,tgq,tgZ,tgX,tgJ,tgQ,tg1,tg0,tg2,tg3,tg4,tg5,tg6,tg9=!1;Y5(eZ2,"EcorePackageImpl",547),eTS(1184,1,{837:1},sM),eUe._j=function(){return OJ(),tvp},Y5(eZ2,"EcorePackageImpl/1",1184),eTS(1193,1,eQS,sO),eUe.wj=function(e){return M4(e,147)},eUe.xj=function(e){return Je(e6y,eUp,147,e,0,1)},Y5(eZ2,"EcorePackageImpl/10",1193),eTS(1194,1,eQS,sA),eUe.wj=function(e){return M4(e,191)},eUe.xj=function(e){return Je(e6_,eUp,191,e,0,1)},Y5(eZ2,"EcorePackageImpl/11",1194),eTS(1195,1,eQS,sL),eUe.wj=function(e){return M4(e,56)},eUe.xj=function(e){return Je(e6f,eUp,56,e,0,1)},Y5(eZ2,"EcorePackageImpl/12",1195),eTS(1196,1,eQS,sC),eUe.wj=function(e){return M4(e,399)},eUe.xj=function(e){return Je(tgi,eJ5,59,e,0,1)},Y5(eZ2,"EcorePackageImpl/13",1196),eTS(1197,1,eQS,sI),eUe.wj=function(e){return M4(e,235)},eUe.xj=function(e){return Je(e6E,eUp,235,e,0,1)},Y5(eZ2,"EcorePackageImpl/14",1197),eTS(1198,1,eQS,sD),eUe.wj=function(e){return M4(e,509)},eUe.xj=function(e){return Je(tga,eUp,2017,e,0,1)},Y5(eZ2,"EcorePackageImpl/15",1198),eTS(1199,1,eQS,sN),eUe.wj=function(e){return M4(e,99)},eUe.xj=function(e){return Je(tgo,eJ4,18,e,0,1)},Y5(eZ2,"EcorePackageImpl/16",1199),eTS(1200,1,eQS,sP),eUe.wj=function(e){return M4(e,170)},eUe.xj=function(e){return Je(tm6,eJ4,170,e,0,1)},Y5(eZ2,"EcorePackageImpl/17",1200),eTS(1201,1,eQS,sR),eUe.wj=function(e){return M4(e,472)},eUe.xj=function(e){return Je(tm5,eUp,472,e,0,1)},Y5(eZ2,"EcorePackageImpl/18",1201),eTS(1202,1,eQS,sj),eUe.wj=function(e){return M4(e,548)},eUe.xj=function(e){return Je(tgf,eJL,548,e,0,1)},Y5(eZ2,"EcorePackageImpl/19",1202),eTS(1185,1,eQS,sF),eUe.wj=function(e){return M4(e,322)},eUe.xj=function(e){return Je(tm9,eJ4,34,e,0,1)},Y5(eZ2,"EcorePackageImpl/2",1185),eTS(1203,1,eQS,sY),eUe.wj=function(e){return M4(e,241)},eUe.xj=function(e){return Je(tgr,eQt,87,e,0,1)},Y5(eZ2,"EcorePackageImpl/20",1203),eTS(1204,1,eQS,sB),eUe.wj=function(e){return M4(e,444)},eUe.xj=function(e){return Je(tgs,eUp,836,e,0,1)},Y5(eZ2,"EcorePackageImpl/21",1204),eTS(1205,1,eQS,sU),eUe.wj=function(e){return xl(e)},eUe.xj=function(e){return Je(e11,eUP,476,e,8,1)},Y5(eZ2,"EcorePackageImpl/22",1205),eTS(1206,1,eQS,sH),eUe.wj=function(e){return M4(e,190)},eUe.xj=function(e){return Je(tyk,eUP,190,e,0,2)},Y5(eZ2,"EcorePackageImpl/23",1206),eTS(1207,1,eQS,s$),eUe.wj=function(e){return M4(e,217)},eUe.xj=function(e){return Je(e10,eUP,217,e,0,1)},Y5(eZ2,"EcorePackageImpl/24",1207),eTS(1208,1,eQS,sz),eUe.wj=function(e){return M4(e,172)},eUe.xj=function(e){return Je(e12,eUP,172,e,0,1)},Y5(eZ2,"EcorePackageImpl/25",1208),eTS(1209,1,eQS,sG),eUe.wj=function(e){return M4(e,199)},eUe.xj=function(e){return Je(e1Q,eUP,199,e,0,1)},Y5(eZ2,"EcorePackageImpl/26",1209),eTS(1210,1,eQS,sW),eUe.wj=function(e){return!1},eUe.xj=function(e){return Je(tyA,eUp,2110,e,0,1)},Y5(eZ2,"EcorePackageImpl/27",1210),eTS(1211,1,eQS,sK),eUe.wj=function(e){return xf(e)},eUe.xj=function(e){return Je(e13,eUP,333,e,7,1)},Y5(eZ2,"EcorePackageImpl/28",1211),eTS(1212,1,eQS,sV),eUe.wj=function(e){return M4(e,58)},eUe.xj=function(e){return Je(e6L,ezZ,58,e,0,1)},Y5(eZ2,"EcorePackageImpl/29",1212),eTS(1186,1,eQS,sq),eUe.wj=function(e){return M4(e,510)},eUe.xj=function(e){return Je(tm4,{3:1,4:1,5:1,1934:1},590,e,0,1)},Y5(eZ2,"EcorePackageImpl/3",1186),eTS(1213,1,eQS,sZ),eUe.wj=function(e){return M4(e,573)},eUe.xj=function(e){return Je(e6j,eUp,1940,e,0,1)},Y5(eZ2,"EcorePackageImpl/30",1213),eTS(1214,1,eQS,sX),eUe.wj=function(e){return M4(e,153)},eUe.xj=function(e){return Je(tg7,ezZ,153,e,0,1)},Y5(eZ2,"EcorePackageImpl/31",1214),eTS(1215,1,eQS,sJ),eUe.wj=function(e){return M4(e,72)},eUe.xj=function(e){return Je(tgc,eQk,72,e,0,1)},Y5(eZ2,"EcorePackageImpl/32",1215),eTS(1216,1,eQS,sQ),eUe.wj=function(e){return M4(e,155)},eUe.xj=function(e){return Je(e14,eUP,155,e,0,1)},Y5(eZ2,"EcorePackageImpl/33",1216),eTS(1217,1,eQS,s1),eUe.wj=function(e){return M4(e,19)},eUe.xj=function(e){return Je(e15,eUP,19,e,0,1)},Y5(eZ2,"EcorePackageImpl/34",1217),eTS(1218,1,eQS,s0),eUe.wj=function(e){return M4(e,290)},eUe.xj=function(e){return Je(e1j,eUp,290,e,0,1)},Y5(eZ2,"EcorePackageImpl/35",1218),eTS(1219,1,eQS,s2),eUe.wj=function(e){return M4(e,162)},eUe.xj=function(e){return Je(e16,eUP,162,e,0,1)},Y5(eZ2,"EcorePackageImpl/36",1219),eTS(1220,1,eQS,s3),eUe.wj=function(e){return M4(e,83)},eUe.xj=function(e){return Je(e1Y,eUp,83,e,0,1)},Y5(eZ2,"EcorePackageImpl/37",1220),eTS(1221,1,eQS,s4),eUe.wj=function(e){return M4(e,591)},eUe.xj=function(e){return Je(tg8,eUp,591,e,0,1)},Y5(eZ2,"EcorePackageImpl/38",1221),eTS(1222,1,eQS,s5),eUe.wj=function(e){return!1},eUe.xj=function(e){return Je(tyL,eUp,2111,e,0,1)},Y5(eZ2,"EcorePackageImpl/39",1222),eTS(1187,1,eQS,s6),eUe.wj=function(e){return M4(e,88)},eUe.xj=function(e){return Je(tm7,eUp,26,e,0,1)},Y5(eZ2,"EcorePackageImpl/4",1187),eTS(1223,1,eQS,s9),eUe.wj=function(e){return M4(e,184)},eUe.xj=function(e){return Je(e19,eUP,184,e,0,1)},Y5(eZ2,"EcorePackageImpl/40",1223),eTS(1224,1,eQS,s8),eUe.wj=function(e){return xd(e)},eUe.xj=function(e){return Je(e17,eUP,2,e,6,1)},Y5(eZ2,"EcorePackageImpl/41",1224),eTS(1225,1,eQS,s7),eUe.wj=function(e){return M4(e,588)},eUe.xj=function(e){return Je(e6I,eUp,588,e,0,1)},Y5(eZ2,"EcorePackageImpl/42",1225),eTS(1226,1,eQS,ue),eUe.wj=function(e){return!1},eUe.xj=function(e){return Je(tyC,eUP,2112,e,0,1)},Y5(eZ2,"EcorePackageImpl/43",1226),eTS(1227,1,eQS,ut),eUe.wj=function(e){return M4(e,42)},eUe.xj=function(e){return Je(e1$,eUK,42,e,0,1)},Y5(eZ2,"EcorePackageImpl/44",1227),eTS(1188,1,eQS,un),eUe.wj=function(e){return M4(e,138)},eUe.xj=function(e){return Je(tm8,eUp,138,e,0,1)},Y5(eZ2,"EcorePackageImpl/5",1188),eTS(1189,1,eQS,ur),eUe.wj=function(e){return M4(e,148)},eUe.xj=function(e){return Je(tge,eUp,148,e,0,1)},Y5(eZ2,"EcorePackageImpl/6",1189),eTS(1190,1,eQS,ui),eUe.wj=function(e){return M4(e,457)},eUe.xj=function(e){return Je(tgt,eUp,671,e,0,1)},Y5(eZ2,"EcorePackageImpl/7",1190),eTS(1191,1,eQS,ua),eUe.wj=function(e){return M4(e,573)},eUe.xj=function(e){return Je(tgn,eUp,678,e,0,1)},Y5(eZ2,"EcorePackageImpl/8",1191),eTS(1192,1,eQS,uo),eUe.wj=function(e){return M4(e,471)},eUe.xj=function(e){return Je(e6w,eUp,471,e,0,1)},Y5(eZ2,"EcorePackageImpl/9",1192),eTS(1025,1982,eJO,gT),eUe.bi=function(e,t){ecV(this,Pp(t,415))},eUe.fi=function(e,t){eSU(this,e,Pp(t,415))},Y5(eZ2,"MinimalEObjectImpl/1ArrayDelegatingAdapterList",1025),eTS(1026,143,eJx,BF),eUe.Ai=function(){return this.a.a},Y5(eZ2,"MinimalEObjectImpl/1ArrayDelegatingAdapterList/1",1026),eTS(1053,1052,{},Ms),Y5("org.eclipse.emf.ecore.plugin","EcorePlugin",1053);var tg8=RL(eQx,"Resource");eTS(781,1378,eQT),eUe.Yk=function(e){},eUe.Zk=function(e){},eUe.Vk=function(){return this.a||(this.a=new pK(this)),this.a},eUe.Wk=function(e){var t,n,r,i,a;if((r=e.length)>0){if(GV(0,e.length),47==e.charCodeAt(0)){for(t=1,a=new XM(4),i=1;t0&&(e=e.substr(0,n))}return ekX(this,e)},eUe.Xk=function(){return this.c},eUe.Ib=function(){var e;return yx(this.gm)+"@"+(e=esj(this)>>>0).toString(16)+" uri='"+this.d+"'"},eUe.b=!1,Y5(eQM,"ResourceImpl",781),eTS(1379,781,eQT,pq),Y5(eQM,"BinaryResourceImpl",1379),eTS(1169,694,eXG),eUe.si=function(e){return M4(e,56)?$x(this,Pp(e,56)):M4(e,591)?new Ow(Pp(e,591).Vk()):xc(e)===xc(this.f)?Pp(e,14).Kc():(LF(),tmB.a)},eUe.Ob=function(){return exI(this)},eUe.a=!1,Y5(eJz,"EcoreUtil/ContentTreeIterator",1169),eTS(1380,1169,eXG,F0),eUe.si=function(e){return xc(e)===xc(this.f)?Pp(e,15).Kc():new K0(Pp(e,56))},Y5(eQM,"ResourceImpl/5",1380),eTS(648,1994,eJ6,pK),eUe.Hc=function(e){return this.i<=4?ev9(this,e):M4(e,49)&&Pp(e,49).Zg()==this.a},eUe.bi=function(e,t){e==this.i-1&&(this.a.b||(this.a.b=!0))},eUe.di=function(e,t){0==e?this.a.b||(this.a.b=!0):X8(this,e,t)},eUe.fi=function(e,t){},eUe.gi=function(e,t,n){},eUe.aj=function(){return 2},eUe.Ai=function(){return this.a},eUe.bj=function(){return!0},eUe.cj=function(e,t){var n;return t=(n=Pp(e,49)).wh(this.a,t)},eUe.dj=function(e,t){var n;return(n=Pp(e,49)).wh(null,t)},eUe.ej=function(){return!1},eUe.hi=function(){return!0},eUe.ri=function(e){return Je(e6f,eUp,56,e,0,1)},eUe.ni=function(){return!1},Y5(eQM,"ResourceImpl/ContentsEList",648),eTS(957,1964,eU5,pV),eUe.Zc=function(e){return this.a._h(e)},eUe.gc=function(){return this.a.gc()},Y5(eJz,"AbstractSequentialInternalEList/1",957),eTS(624,1,{},PQ),Y5(eJz,"BasicExtendedMetaData",624),eTS(1160,1,{},k9),eUe.$k=function(){return null},eUe._k=function(){return -2==this.a&&fi(this,e_f(this.d,this.b)),this.a},eUe.al=function(){return null},eUe.bl=function(){return Hj(),Hj(),e2r},eUe.ne=function(){return this.c==eQH&&fo(this,eh1(this.d,this.b)),this.c},eUe.cl=function(){return 0},eUe.a=-2,eUe.c=eQH,Y5(eJz,"BasicExtendedMetaData/EClassExtendedMetaDataImpl",1160),eTS(1161,1,{},Ke),eUe.$k=function(){return this.a==(ZE(),tvf)&&fa(this,eO9(this.f,this.b)),this.a},eUe._k=function(){return 0},eUe.al=function(){return this.c==(ZE(),tvf)&&fs(this,eO8(this.f,this.b)),this.c},eUe.bl=function(){return this.d||fu(this,eIA(this.f,this.b)),this.d},eUe.ne=function(){return this.e==eQH&&fc(this,eh1(this.f,this.b)),this.e},eUe.cl=function(){return -2==this.g&&fl(this,ewd(this.f,this.b)),this.g},eUe.e=eQH,eUe.g=-2,Y5(eJz,"BasicExtendedMetaData/EDataTypeExtendedMetaDataImpl",1161),eTS(1159,1,{},xn),eUe.b=!1,eUe.c=!1,Y5(eJz,"BasicExtendedMetaData/EPackageExtendedMetaDataImpl",1159),eTS(1162,1,{},W7),eUe.c=-2,eUe.e=eQH,eUe.f=eQH,Y5(eJz,"BasicExtendedMetaData/EStructuralFeatureExtendedMetaDataImpl",1162),eTS(585,622,eJ9,PJ),eUe.aj=function(){return this.c},eUe.Fk=function(){return!1},eUe.li=function(e,t){return t},eUe.c=0,Y5(eJz,"EDataTypeEList",585);var tg7=RL(eJz,"FeatureMap");eTS(75,585,{3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1,76:1,153:1,215:1,1937:1,69:1,95:1},eiR),eUe.Vc=function(e,t){eO0(this,e,Pp(t,72))},eUe.Fc=function(e){return eM6(this,Pp(e,72))},eUe.Yh=function(e){Y2(this,Pp(e,72))},eUe.cj=function(e,t){return IG(this,Pp(e,72),t)},eUe.dj=function(e,t){return IW(this,Pp(e,72),t)},eUe.ii=function(e,t){return eI7(this,e,t)},eUe.li=function(e,t){return ejg(this,e,Pp(t,72))},eUe._c=function(e,t){return eA6(this,e,Pp(t,72))},eUe.jj=function(e,t){return IK(this,Pp(e,72),t)},eUe.kj=function(e,t){return IV(this,Pp(e,72),t)},eUe.lj=function(e,t,n){return eyU(this,Pp(e,72),Pp(t,72),n)},eUe.oi=function(e,t){return ewk(this,e,Pp(t,72))},eUe.dl=function(e,t){return eIF(this,e,t)},eUe.Wc=function(e,t){var n,r,i,a,o,s,u,c,l;for(c=new eta(t.gc()),i=t.Kc();i.Ob();)if(a=(r=Pp(i.Pb(),72)).ak(),eLt(this.e,a))a.hi()&&(Vq(this,a,r.dd())||ev9(c,r))||JL(c,r);else{for(s=0,l=eAY(this.e.Tg(),a),n=Pp(this.g,119),o=!0;s=0;)if(t=e[this.c],this.k.rl(t.ak()))return this.j=this.f?t:t.dd(),this.i=-2,!0;return this.i=-1,this.g=-1,!1},Y5(eJz,"BasicFeatureMap/FeatureEIterator",410),eTS(662,410,eUC,x1),eUe.Lk=function(){return!0},Y5(eJz,"BasicFeatureMap/ResolvingFeatureEIterator",662),eTS(955,486,eQr,Mz),eUe.Gi=function(){return this},Y5(eJz,"EContentsEList/1",955),eTS(956,486,eQr,x0),eUe.Lk=function(){return!1},Y5(eJz,"EContentsEList/2",956),eTS(954,279,eQi,MG),eUe.Nk=function(e){},eUe.Ob=function(){return!1},eUe.Sb=function(){return!1},Y5(eJz,"EContentsEList/FeatureIteratorImpl/1",954),eTS(825,585,eJ9,OM),eUe.ci=function(){this.a=!0},eUe.fj=function(){return this.a},eUe.Xj=function(){var e;eRT(this),TO(this.e)?(e=this.a,this.a=!1,eam(this.e,new ZB(this.e,2,this.c,e,!1))):this.a=!1},eUe.a=!1,Y5(eJz,"EDataTypeEList/Unsettable",825),eTS(1849,585,eJ9,OO),eUe.hi=function(){return!0},Y5(eJz,"EDataTypeUniqueEList",1849),eTS(1850,825,eJ9,OA),eUe.hi=function(){return!0},Y5(eJz,"EDataTypeUniqueEList/Unsettable",1850),eTS(139,85,eJ9,OS),eUe.Ek=function(){return!0},eUe.li=function(e,t){return ex7(this,e,Pp(t,56))},Y5(eJz,"EObjectContainmentEList/Resolving",139),eTS(1163,545,eJ9,Ok),eUe.Ek=function(){return!0},eUe.li=function(e,t){return ex7(this,e,Pp(t,56))},Y5(eJz,"EObjectContainmentEList/Unsettable/Resolving",1163),eTS(748,16,eJ9,Io),eUe.ci=function(){this.a=!0},eUe.fj=function(){return this.a},eUe.Xj=function(){var e;eRT(this),TO(this.e)?(e=this.a,this.a=!1,eam(this.e,new ZB(this.e,2,this.c,e,!1))):this.a=!1},eUe.a=!1,Y5(eJz,"EObjectContainmentWithInverseEList/Unsettable",748),eTS(1173,748,eJ9,Is),eUe.Ek=function(){return!0},eUe.li=function(e,t){return ex7(this,e,Pp(t,56))},Y5(eJz,"EObjectContainmentWithInverseEList/Unsettable/Resolving",1173),eTS(743,496,eJ9,Ox),eUe.ci=function(){this.a=!0},eUe.fj=function(){return this.a},eUe.Xj=function(){var e;eRT(this),TO(this.e)?(e=this.a,this.a=!1,eam(this.e,new ZB(this.e,2,this.c,e,!1))):this.a=!1},eUe.a=!1,Y5(eJz,"EObjectEList/Unsettable",743),eTS(328,496,eJ9,OT),eUe.Ek=function(){return!0},eUe.li=function(e,t){return ex7(this,e,Pp(t,56))},Y5(eJz,"EObjectResolvingEList",328),eTS(1641,743,eJ9,OL),eUe.Ek=function(){return!0},eUe.li=function(e,t){return ex7(this,e,Pp(t,56))},Y5(eJz,"EObjectResolvingEList/Unsettable",1641),eTS(1381,1,{},us),Y5(eJz,"EObjectValidator",1381),eTS(546,496,eJ9,F1),eUe.zk=function(){return this.d},eUe.Ak=function(){return this.b},eUe.bj=function(){return!0},eUe.Dk=function(){return!0},eUe.b=0,Y5(eJz,"EObjectWithInverseEList",546),eTS(1176,546,eJ9,Iu),eUe.Ck=function(){return!0},Y5(eJz,"EObjectWithInverseEList/ManyInverse",1176),eTS(625,546,eJ9,Ic),eUe.ci=function(){this.a=!0},eUe.fj=function(){return this.a},eUe.Xj=function(){var e;eRT(this),TO(this.e)?(e=this.a,this.a=!1,eam(this.e,new ZB(this.e,2,this.c,e,!1))):this.a=!1},eUe.a=!1,Y5(eJz,"EObjectWithInverseEList/Unsettable",625),eTS(1175,625,eJ9,If),eUe.Ck=function(){return!0},Y5(eJz,"EObjectWithInverseEList/Unsettable/ManyInverse",1175),eTS(749,546,eJ9,Il),eUe.Ek=function(){return!0},eUe.li=function(e,t){return ex7(this,e,Pp(t,56))},Y5(eJz,"EObjectWithInverseResolvingEList",749),eTS(31,749,eJ9,Ih),eUe.Ck=function(){return!0},Y5(eJz,"EObjectWithInverseResolvingEList/ManyInverse",31),eTS(750,625,eJ9,Id),eUe.Ek=function(){return!0},eUe.li=function(e,t){return ex7(this,e,Pp(t,56))},Y5(eJz,"EObjectWithInverseResolvingEList/Unsettable",750),eTS(1174,750,eJ9,Ip),eUe.Ck=function(){return!0},Y5(eJz,"EObjectWithInverseResolvingEList/Unsettable/ManyInverse",1174),eTS(1164,622,eJ9),eUe.ai=function(){return(1792&this.b)==0},eUe.ci=function(){this.b|=1},eUe.Bk=function(){return(4&this.b)!=0},eUe.bj=function(){return(40&this.b)!=0},eUe.Ck=function(){return(16&this.b)!=0},eUe.Dk=function(){return(8&this.b)!=0},eUe.Ek=function(){return(this.b&eJq)!=0},eUe.rk=function(){return(32&this.b)!=0},eUe.Fk=function(){return(this.b&eXt)!=0},eUe.wj=function(e){return this.d?VB(this.d,e):this.ak().Yj().wj(e)},eUe.fj=function(){return(2&this.b)!=0?(1&this.b)!=0:0!=this.i},eUe.hi=function(){return(128&this.b)!=0},eUe.Xj=function(){var e;eRT(this),(2&this.b)!=0&&(TO(this.e)?(e=(1&this.b)!=0,this.b&=-2,bz(this,new ZB(this.e,2,edv(this.e.Tg(),this.ak()),e,!1))):this.b&=-2)},eUe.ni=function(){return(1536&this.b)==0},eUe.b=0,Y5(eJz,"EcoreEList/Generic",1164),eTS(1165,1164,eJ9,H2),eUe.ak=function(){return this.a},Y5(eJz,"EcoreEList/Dynamic",1165),eTS(747,63,eXz,pZ),eUe.ri=function(e){return enb(this.a.a,e)},Y5(eJz,"EcoreEMap/1",747),eTS(746,85,eJ9,FZ),eUe.bi=function(e,t){ebB(this.b,Pp(t,133))},eUe.di=function(e,t){eac(this.b)},eUe.ei=function(e,t,n){var r;++(r=this.b,Pp(t,133),r).e},eUe.fi=function(e,t){elj(this.b,Pp(t,133))},eUe.gi=function(e,t,n){elj(this.b,Pp(n,133)),xc(n)===xc(t)&&Pp(n,133).Th(Mi(Pp(t,133).cd())),ebB(this.b,Pp(t,133))},Y5(eJz,"EcoreEMap/DelegateEObjectContainmentEList",746),eTS(1171,151,eJW,enQ),Y5(eJz,"EcoreEMap/Unsettable",1171),eTS(1172,746,eJ9,Ib),eUe.ci=function(){this.a=!0},eUe.fj=function(){return this.a},eUe.Xj=function(){var e;eRT(this),TO(this.e)?(e=this.a,this.a=!1,eam(this.e,new ZB(this.e,2,this.c,e,!1))):this.a=!1},eUe.a=!1,Y5(eJz,"EcoreEMap/Unsettable/UnsettableDelegateEObjectContainmentEList",1172),eTS(1168,228,e$s,YQ),eUe.a=!1,eUe.b=!1,Y5(eJz,"EcoreUtil/Copier",1168),eTS(745,1,eUE,K0),eUe.Nb=function(e){F8(this,e)},eUe.Ob=function(){return edV(this)},eUe.Pb=function(){var e;return edV(this),e=this.b,this.b=null,e},eUe.Qb=function(){this.a.Qb()},Y5(eJz,"EcoreUtil/ProperContentIterator",745),eTS(1382,1381,{},c2),Y5(eJz,"EcoreValidator",1382),RL(eJz,"FeatureMapUtil/Validator"),eTS(1260,1,{1942:1},uu),eUe.rl=function(e){return!0},Y5(eJz,"FeatureMapUtil/1",1260),eTS(757,1,{1942:1},eF2),eUe.rl=function(e){var t;return this.c==e||(null!=(t=LK(Bp(this.a,e)))?t==(OQ(),e0P):eCV(this,e)?(Z$(this.a,e,(OQ(),e0P)),!0):(Z$(this.a,e,(OQ(),e0N)),!1))},eUe.e=!1,Y5(eJz,"FeatureMapUtil/BasicValidator",757),eTS(758,43,e$s,MW),Y5(eJz,"FeatureMapUtil/BasicValidator/Cache",758),eTS(501,52,{20:1,28:1,52:1,14:1,15:1,58:1,76:1,69:1,95:1},xe),eUe.Vc=function(e,t){eLe(this.c,this.b,e,t)},eUe.Fc=function(e){return eIF(this.c,this.b,e)},eUe.Wc=function(e,t){return ePq(this.c,this.b,e,t)},eUe.Gc=function(e){return MJ(this,e)},eUe.Xh=function(e,t){ee7(this.c,this.b,e,t)},eUe.lk=function(e,t){return eCB(this.c,this.b,e,t)},eUe.pi=function(e){return ePL(this.c,this.b,e,!1)},eUe.Zh=function(){return TC(this.c,this.b)},eUe.$h=function(){return TI(this.c,this.b)},eUe._h=function(e){return X9(this.c,this.b,e)},eUe.mk=function(e,t){return Cp(this,e,t)},eUe.$b=function(){bG(this)},eUe.Hc=function(e){return Vq(this.c,this.b,e)},eUe.Ic=function(e){return eiF(this.c,this.b,e)},eUe.Xb=function(e){return ePL(this.c,this.b,e,!0)},eUe.Wj=function(e){return this},eUe.Xc=function(e){return VZ(this.c,this.b,e)},eUe.dc=function(){return xs(this)},eUe.fj=function(){return!edK(this.c,this.b)},eUe.Kc=function(){return eei(this.c,this.b)},eUe.Yc=function(){return eea(this.c,this.b)},eUe.Zc=function(e){return ely(this.c,this.b,e)},eUe.ii=function(e,t){return eNn(this.c,this.b,e,t)},eUe.ji=function(e,t){Xx(this.c,this.b,e,t)},eUe.$c=function(e){return eE0(this.c,this.b,e)},eUe.Mc=function(e){return eIC(this.c,this.b,e)},eUe._c=function(e,t){return eNL(this.c,this.b,e,t)},eUe.Wb=function(e){exZ(this.c,this.b),MJ(this,Pp(e,15))},eUe.gc=function(){return elG(this.c,this.b)},eUe.Pc=function(){return Wb(this.c,this.b)},eUe.Qc=function(e){return VX(this.c,this.b,e)},eUe.Ib=function(){var e,t;for(t=new vs,t.a+="[",e=TC(this.c,this.b);euf(e);)xk(t,Ae(ebm(e))),euf(e)&&(t.a+=eUd);return t.a+="]",t.a},eUe.Xj=function(){exZ(this.c,this.b)},Y5(eJz,"FeatureMapUtil/FeatureEList",501),eTS(627,36,eJx,qu),eUe.yi=function(e){return elc(this,e)},eUe.Di=function(e){var t,n,r,i,a,o,s;switch(this.d){case 1:case 2:if(xc(a=e.Ai())===xc(this.c)&&elc(this,null)==e.yi(null))return this.g=e.zi(),1==e.xi()&&(this.d=1),!0;break;case 3:if(3===(i=e.xi())&&xc(a=e.Ai())===xc(this.c)&&elc(this,null)==e.yi(null))return this.d=5,JL(t=new eta(2),this.g),JL(t,e.zi()),this.g=t,!0;break;case 5:if(3===(i=e.xi())&&xc(a=e.Ai())===xc(this.c)&&elc(this,null)==e.yi(null))return(n=Pp(this.g,14)).Fc(e.zi()),!0;break;case 4:switch(i=e.xi()){case 3:if(xc(a=e.Ai())===xc(this.c)&&elc(this,null)==e.yi(null))return this.d=1,this.g=e.zi(),!0;break;case 4:if(xc(a=e.Ai())===xc(this.c)&&elc(this,null)==e.yi(null))return this.d=6,JL(s=new eta(2),this.n),JL(s,e.Bi()),this.n=s,o=eow(vx(ty_,1),eHT,25,15,[this.o,e.Ci()]),this.g=o,!0}break;case 6:if(4===(i=e.xi())&&xc(a=e.Ai())===xc(this.c)&&elc(this,null)==e.yi(null))return(n=Pp(this.n,14)).Fc(e.Bi()),r=Je(ty_,eHT,25,(o=Pp(this.g,48)).length+1,15,1),ePD(o,0,r,0,o.length),r[o.length]=e.Ci(),this.g=r,!0}return!1},Y5(eJz,"FeatureMapUtil/FeatureENotificationImpl",627),eTS(552,501,{20:1,28:1,52:1,14:1,15:1,58:1,76:1,153:1,215:1,1937:1,69:1,95:1},RA),eUe.dl=function(e,t){return eIF(this.c,e,t)},eUe.el=function(e,t,n){return eCB(this.c,e,t,n)},eUe.fl=function(e,t,n){return ePT(this.c,e,t,n)},eUe.gl=function(){return this},eUe.hl=function(e,t){return ePC(this.c,e,t)},eUe.il=function(e){return Pp(ePL(this.c,this.b,e,!1),72).ak()},eUe.jl=function(e){return Pp(ePL(this.c,this.b,e,!1),72).dd()},eUe.kl=function(){return this.a},eUe.ll=function(e){return!edK(this.c,e)},eUe.ml=function(e,t){ePJ(this.c,e,t)},eUe.nl=function(e){return erp(this.c,e)},eUe.ol=function(e){emY(this.c,e)},Y5(eJz,"FeatureMapUtil/FeatureFeatureMap",552),eTS(1259,1,eJG,xr),eUe.Wj=function(e){return ePL(this.b,this.a,-1,e)},eUe.fj=function(){return!edK(this.b,this.a)},eUe.Wb=function(e){ePJ(this.b,this.a,e)},eUe.Xj=function(){exZ(this.b,this.a)},Y5(eJz,"FeatureMapUtil/FeatureValue",1259);var tve=RL(eQz,"AnyType");eTS(666,60,eHr,gV),Y5(eQz,"InvalidDatatypeValueException",666);var tvt=RL(eQz,eQG),tvn=RL(eQz,eQW),tvr=RL(eQz,eQK);eTS(830,506,{105:1,92:1,90:1,56:1,49:1,97:1,843:1},mF),eUe._g=function(e,t,n){switch(e){case 0:if(n)return this.c||(this.c=new eiR(this,0)),this.c;return this.c||(this.c=new eiR(this,0)),this.c.b;case 1:if(n)return this.c||(this.c=new eiR(this,0)),Pp(GP(this.c,(eR7(),tvx)),153);return(this.c||(this.c=new eiR(this,0)),Pp(Pp(GP(this.c,(eR7(),tvx)),153),215)).kl();case 2:if(n)return this.b||(this.b=new eiR(this,2)),this.b;return this.b||(this.b=new eiR(this,2)),this.b.b}return Qt(this,e-Y1(this.zh()),ee2((2&this.j)==0?this.zh():(this.k||(this.k=new c1),this.k).ck(),e),t,n)},eUe.jh=function(e,t,n){var r;switch(t){case 0:return this.c||(this.c=new eiR(this,0)),eIM(this.c,e,n);case 1:return(this.c||(this.c=new eiR(this,0)),Pp(Pp(GP(this.c,(eR7(),tvx)),153),69)).mk(e,n);case 2:return this.b||(this.b=new eiR(this,2)),eIM(this.b,e,n)}return(r=Pp(ee2((2&this.j)==0?this.zh():(this.k||(this.k=new c1),this.k).ck(),t),66)).Nj().Rj(this,Q5(this),t-Y1(this.zh()),e,n)},eUe.lh=function(e){switch(e){case 0:return!!this.c&&0!=this.c.i;case 1:return!(this.c||(this.c=new eiR(this,0)),Pp(GP(this.c,(eR7(),tvx)),153)).dc();case 2:return!!this.b&&0!=this.b.i}return VP(this,e-Y1(this.zh()),ee2((2&this.j)==0?this.zh():(this.k||(this.k=new c1),this.k).ck(),e))},eUe.sh=function(e,t){switch(e){case 0:this.c||(this.c=new eiR(this,0)),YH(this.c,t);return;case 1:(this.c||(this.c=new eiR(this,0)),Pp(Pp(GP(this.c,(eR7(),tvx)),153),215)).Wb(t);return;case 2:this.b||(this.b=new eiR(this,2)),YH(this.b,t);return}efL(this,e-Y1(this.zh()),ee2((2&this.j)==0?this.zh():(this.k||(this.k=new c1),this.k).ck(),e),t)},eUe.zh=function(){return eR7(),tvk},eUe.Bh=function(e){switch(e){case 0:this.c||(this.c=new eiR(this,0)),eRT(this.c);return;case 1:(this.c||(this.c=new eiR(this,0)),Pp(GP(this.c,(eR7(),tvx)),153)).$b();return;case 2:this.b||(this.b=new eiR(this,2)),eRT(this.b);return}ec6(this,e-Y1(this.zh()),ee2((2&this.j)==0?this.zh():(this.k||(this.k=new c1),this.k).ck(),e))},eUe.Ib=function(){var e;return(4&this.j)!=0?eMT(this):(e=new O1(eMT(this)),e.a+=" (mixed: ",xS(e,this.c),e.a+=", anyAttribute: ",xS(e,this.b),e.a+=")",e.a)},Y5(eQV,"AnyTypeImpl",830),eTS(667,506,{105:1,92:1,90:1,56:1,49:1,97:1,2021:1,667:1},ul),eUe._g=function(e,t,n){switch(e){case 0:return this.a;case 1:return this.b}return Qt(this,e-Y1((eR7(),tvj)),ee2((2&this.j)==0?tvj:(this.k||(this.k=new c1),this.k).ck(),e),t,n)},eUe.lh=function(e){switch(e){case 0:return null!=this.a;case 1:return null!=this.b}return VP(this,e-Y1((eR7(),tvj)),ee2((2&this.j)==0?tvj:(this.k||(this.k=new c1),this.k).ck(),e))},eUe.sh=function(e,t){switch(e){case 0:fg(this,Lq(t));return;case 1:fv(this,Lq(t));return}efL(this,e-Y1((eR7(),tvj)),ee2((2&this.j)==0?tvj:(this.k||(this.k=new c1),this.k).ck(),e),t)},eUe.zh=function(){return eR7(),tvj},eUe.Bh=function(e){switch(e){case 0:this.a=null;return;case 1:this.b=null;return}ec6(this,e-Y1((eR7(),tvj)),ee2((2&this.j)==0?tvj:(this.k||(this.k=new c1),this.k).ck(),e))},eUe.Ib=function(){var e;return(4&this.j)!=0?eMT(this):(e=new O1(eMT(this)),e.a+=" (data: ",xk(e,this.a),e.a+=", target: ",xk(e,this.b),e.a+=")",e.a)},eUe.a=null,eUe.b=null,Y5(eQV,"ProcessingInstructionImpl",667),eTS(668,830,{105:1,92:1,90:1,56:1,49:1,97:1,843:1,2022:1,668:1},mB),eUe._g=function(e,t,n){switch(e){case 0:if(n)return this.c||(this.c=new eiR(this,0)),this.c;return this.c||(this.c=new eiR(this,0)),this.c.b;case 1:if(n)return this.c||(this.c=new eiR(this,0)),Pp(GP(this.c,(eR7(),tvx)),153);return(this.c||(this.c=new eiR(this,0)),Pp(Pp(GP(this.c,(eR7(),tvx)),153),215)).kl();case 2:if(n)return this.b||(this.b=new eiR(this,2)),this.b;return this.b||(this.b=new eiR(this,2)),this.b.b;case 3:return this.c||(this.c=new eiR(this,0)),Lq(ePC(this.c,(eR7(),tvB),!0));case 4:return Iy(this.a,(this.c||(this.c=new eiR(this,0)),Lq(ePC(this.c,(eR7(),tvB),!0))));case 5:return this.a}return Qt(this,e-Y1((eR7(),tvY)),ee2((2&this.j)==0?tvY:(this.k||(this.k=new c1),this.k).ck(),e),t,n)},eUe.lh=function(e){switch(e){case 0:return!!this.c&&0!=this.c.i;case 1:return!(this.c||(this.c=new eiR(this,0)),Pp(GP(this.c,(eR7(),tvx)),153)).dc();case 2:return!!this.b&&0!=this.b.i;case 3:return this.c||(this.c=new eiR(this,0)),null!=Lq(ePC(this.c,(eR7(),tvB),!0));case 4:return null!=Iy(this.a,(this.c||(this.c=new eiR(this,0)),Lq(ePC(this.c,(eR7(),tvB),!0))));case 5:return!!this.a}return VP(this,e-Y1((eR7(),tvY)),ee2((2&this.j)==0?tvY:(this.k||(this.k=new c1),this.k).ck(),e))},eUe.sh=function(e,t){switch(e){case 0:this.c||(this.c=new eiR(this,0)),YH(this.c,t);return;case 1:(this.c||(this.c=new eiR(this,0)),Pp(Pp(GP(this.c,(eR7(),tvx)),153),215)).Wb(t);return;case 2:this.b||(this.b=new eiR(this,2)),YH(this.b,t);return;case 3:Kt(this,Lq(t));return;case 4:Kt(this,Iw(this.a,t));return;case 5:fy(this,Pp(t,148));return}efL(this,e-Y1((eR7(),tvY)),ee2((2&this.j)==0?tvY:(this.k||(this.k=new c1),this.k).ck(),e),t)},eUe.zh=function(){return eR7(),tvY},eUe.Bh=function(e){switch(e){case 0:this.c||(this.c=new eiR(this,0)),eRT(this.c);return;case 1:(this.c||(this.c=new eiR(this,0)),Pp(GP(this.c,(eR7(),tvx)),153)).$b();return;case 2:this.b||(this.b=new eiR(this,2)),eRT(this.b);return;case 3:this.c||(this.c=new eiR(this,0)),ePJ(this.c,(eR7(),tvB),null);return;case 4:Kt(this,Iw(this.a,null));return;case 5:this.a=null;return}ec6(this,e-Y1((eR7(),tvY)),ee2((2&this.j)==0?tvY:(this.k||(this.k=new c1),this.k).ck(),e))},Y5(eQV,"SimpleAnyTypeImpl",668),eTS(669,506,{105:1,92:1,90:1,56:1,49:1,97:1,2023:1,669:1},mY),eUe._g=function(e,t,n){switch(e){case 0:if(n)return this.a||(this.a=new eiR(this,0)),this.a;return this.a||(this.a=new eiR(this,0)),this.a.b;case 1:return n?(this.b||(this.b=new JY((eBK(),tgF),tgf,this,1)),this.b):(this.b||(this.b=new JY((eBK(),tgF),tgf,this,1)),X6(this.b));case 2:return n?(this.c||(this.c=new JY((eBK(),tgF),tgf,this,2)),this.c):(this.c||(this.c=new JY((eBK(),tgF),tgf,this,2)),X6(this.c));case 3:return this.a||(this.a=new eiR(this,0)),GP(this.a,(eR7(),tv$));case 4:return this.a||(this.a=new eiR(this,0)),GP(this.a,(eR7(),tvz));case 5:return this.a||(this.a=new eiR(this,0)),GP(this.a,(eR7(),tvW));case 6:return this.a||(this.a=new eiR(this,0)),GP(this.a,(eR7(),tvK))}return Qt(this,e-Y1((eR7(),tvH)),ee2((2&this.j)==0?tvH:(this.k||(this.k=new c1),this.k).ck(),e),t,n)},eUe.jh=function(e,t,n){var r;switch(t){case 0:return this.a||(this.a=new eiR(this,0)),eIM(this.a,e,n);case 1:return this.b||(this.b=new JY((eBK(),tgF),tgf,this,1)),Iz(this.b,e,n);case 2:return this.c||(this.c=new JY((eBK(),tgF),tgf,this,2)),Iz(this.c,e,n);case 5:return this.a||(this.a=new eiR(this,0)),Cp(GP(this.a,(eR7(),tvW)),e,n)}return(r=Pp(ee2((2&this.j)==0?(eR7(),tvH):(this.k||(this.k=new c1),this.k).ck(),t),66)).Nj().Rj(this,Q5(this),t-Y1((eR7(),tvH)),e,n)},eUe.lh=function(e){switch(e){case 0:return!!this.a&&0!=this.a.i;case 1:return!!this.b&&0!=this.b.f;case 2:return!!this.c&&0!=this.c.f;case 3:return this.a||(this.a=new eiR(this,0)),!xs(GP(this.a,(eR7(),tv$)));case 4:return this.a||(this.a=new eiR(this,0)),!xs(GP(this.a,(eR7(),tvz)));case 5:return this.a||(this.a=new eiR(this,0)),!xs(GP(this.a,(eR7(),tvW)));case 6:return this.a||(this.a=new eiR(this,0)),!xs(GP(this.a,(eR7(),tvK)))}return VP(this,e-Y1((eR7(),tvH)),ee2((2&this.j)==0?tvH:(this.k||(this.k=new c1),this.k).ck(),e))},eUe.sh=function(e,t){switch(e){case 0:this.a||(this.a=new eiR(this,0)),YH(this.a,t);return;case 1:this.b||(this.b=new JY((eBK(),tgF),tgf,this,1)),eai(this.b,t);return;case 2:this.c||(this.c=new JY((eBK(),tgF),tgf,this,2)),eai(this.c,t);return;case 3:this.a||(this.a=new eiR(this,0)),bG(GP(this.a,(eR7(),tv$))),this.a||(this.a=new eiR(this,0)),MJ(GP(this.a,tv$),Pp(t,14));return;case 4:this.a||(this.a=new eiR(this,0)),bG(GP(this.a,(eR7(),tvz))),this.a||(this.a=new eiR(this,0)),MJ(GP(this.a,tvz),Pp(t,14));return;case 5:this.a||(this.a=new eiR(this,0)),bG(GP(this.a,(eR7(),tvW))),this.a||(this.a=new eiR(this,0)),MJ(GP(this.a,tvW),Pp(t,14));return;case 6:this.a||(this.a=new eiR(this,0)),bG(GP(this.a,(eR7(),tvK))),this.a||(this.a=new eiR(this,0)),MJ(GP(this.a,tvK),Pp(t,14));return}efL(this,e-Y1((eR7(),tvH)),ee2((2&this.j)==0?tvH:(this.k||(this.k=new c1),this.k).ck(),e),t)},eUe.zh=function(){return eR7(),tvH},eUe.Bh=function(e){switch(e){case 0:this.a||(this.a=new eiR(this,0)),eRT(this.a);return;case 1:this.b||(this.b=new JY((eBK(),tgF),tgf,this,1)),this.b.c.$b();return;case 2:this.c||(this.c=new JY((eBK(),tgF),tgf,this,2)),this.c.c.$b();return;case 3:this.a||(this.a=new eiR(this,0)),bG(GP(this.a,(eR7(),tv$)));return;case 4:this.a||(this.a=new eiR(this,0)),bG(GP(this.a,(eR7(),tvz)));return;case 5:this.a||(this.a=new eiR(this,0)),bG(GP(this.a,(eR7(),tvW)));return;case 6:this.a||(this.a=new eiR(this,0)),bG(GP(this.a,(eR7(),tvK)));return}ec6(this,e-Y1((eR7(),tvH)),ee2((2&this.j)==0?tvH:(this.k||(this.k=new c1),this.k).ck(),e))},eUe.Ib=function(){var e;return(4&this.j)!=0?eMT(this):(e=new O1(eMT(this)),e.a+=" (mixed: ",xS(e,this.a),e.a+=")",e.a)},Y5(eQV,"XMLTypeDocumentRootImpl",669),eTS(1919,704,{105:1,92:1,90:1,471:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1,2024:1},uc),eUe.Ih=function(e,t){switch(e.yj()){case 7:case 8:case 9:case 10:case 16:case 22:case 23:case 24:case 25:case 26:case 32:case 33:case 34:case 36:case 37:case 44:case 45:case 50:case 51:case 53:case 55:case 56:case 57:case 58:case 60:case 61:case 4:return null==t?null:efF(t);case 19:case 28:case 29:case 35:case 38:case 39:case 41:case 46:case 52:case 54:case 5:return Lq(t);case 6:return LH(Pp(t,190));case 12:case 47:case 49:case 11:return ejZ(this,e,t);case 13:return null==t?null:ePg(Pp(t,240));case 15:case 14:return null==t?null:Yk(gP(LV(t)));case 17:return eyV((eR7(),t));case 18:return eyV(t);case 21:case 20:return null==t?null:Yx(Pp(t,155).a);case 27:return L$(Pp(t,190));case 30:return emB((eR7(),Pp(t,15)));case 31:return emB(Pp(t,15));case 40:return LG((eR7(),t));case 42:return eyq((eR7(),t));case 43:return eyq(t);case 59:case 48:return Lz((eR7(),t));default:throw p7(new gL(eZ5+e.ne()+eZ6))}},eUe.Jh=function(e){var t;switch(-1==e.G&&(e.G=(t=etP(e))?ebv(t.Mh(),e):-1),e.G){case 0:return new mF;case 1:return new ul;case 2:return new mB;case 3:return new mY;default:throw p7(new gL(eZ7+e.zb+eZ6))}},eUe.Kh=function(e,t){var n,r,i,a,o,s,u,c,l,f,d,h,p,b,m,g;switch(e.yj()){case 5:case 52:case 4:return t;case 6:return epU(t);case 8:case 7:return null==t?null:ewe(t);case 9:return null==t?null:eeT(eDa((r=ePh(t,!0)).length>0&&(GV(0,r.length),43==r.charCodeAt(0))?r.substr(1):r,-128,127)<<24>>24);case 10:return null==t?null:eeT(eDa((i=ePh(t,!0)).length>0&&(GV(0,i.length),43==i.charCodeAt(0))?i.substr(1):i,-128,127)<<24>>24);case 11:return Lq(eBd(this,(eR7(),tvO),t));case 12:return Lq(eBd(this,(eR7(),tvA),t));case 13:return null==t?null:new yY(ePh(t,!0));case 15:case 14:return eOa(t);case 16:return Lq(eBd(this,(eR7(),tvL),t));case 17:return ehy((eR7(),t));case 18:return ehy(t);case 28:case 29:case 35:case 38:case 39:case 41:case 54:case 19:return ePh(t,!0);case 21:case 20:return eOv(t);case 22:return Lq(eBd(this,(eR7(),tvC),t));case 23:return Lq(eBd(this,(eR7(),tvI),t));case 24:return Lq(eBd(this,(eR7(),tvD),t));case 25:return Lq(eBd(this,(eR7(),tvN),t));case 26:return Lq(eBd(this,(eR7(),tvP),t));case 27:return epw(t);case 30:return ehw((eR7(),t));case 31:return ehw(t);case 32:return null==t?null:ell(eDa((l=ePh(t,!0)).length>0&&(GV(0,l.length),43==l.charCodeAt(0))?l.substr(1):l,eHt,eUu));case 33:return null==t?null:new TU((f=ePh(t,!0)).length>0&&(GV(0,f.length),43==f.charCodeAt(0))?f.substr(1):f);case 34:return null==t?null:ell(eDa((d=ePh(t,!0)).length>0&&(GV(0,d.length),43==d.charCodeAt(0))?d.substr(1):d,eHt,eUu));case 36:return null==t?null:ehQ(eF0((h=ePh(t,!0)).length>0&&(GV(0,h.length),43==h.charCodeAt(0))?h.substr(1):h));case 37:return null==t?null:ehQ(eF0((p=ePh(t,!0)).length>0&&(GV(0,p.length),43==p.charCodeAt(0))?p.substr(1):p));case 40:return edR((eR7(),t));case 42:return eh_((eR7(),t));case 43:return eh_(t);case 44:return null==t?null:new TU((b=ePh(t,!0)).length>0&&(GV(0,b.length),43==b.charCodeAt(0))?b.substr(1):b);case 45:return null==t?null:new TU((m=ePh(t,!0)).length>0&&(GV(0,m.length),43==m.charCodeAt(0))?m.substr(1):m);case 46:return ePh(t,!1);case 47:return Lq(eBd(this,(eR7(),tvR),t));case 59:case 48:return edP((eR7(),t));case 49:return Lq(eBd(this,(eR7(),tvF),t));case 50:return null==t?null:elf(eDa((g=ePh(t,!0)).length>0&&(GV(0,g.length),43==g.charCodeAt(0))?g.substr(1):g,eQl,32767)<<16>>16);case 51:return null==t?null:elf(eDa((a=ePh(t,!0)).length>0&&(GV(0,a.length),43==a.charCodeAt(0))?a.substr(1):a,eQl,32767)<<16>>16);case 53:return Lq(eBd(this,(eR7(),tvU),t));case 55:return null==t?null:elf(eDa((o=ePh(t,!0)).length>0&&(GV(0,o.length),43==o.charCodeAt(0))?o.substr(1):o,eQl,32767)<<16>>16);case 56:return null==t?null:elf(eDa((s=ePh(t,!0)).length>0&&(GV(0,s.length),43==s.charCodeAt(0))?s.substr(1):s,eQl,32767)<<16>>16);case 57:return null==t?null:ehQ(eF0((u=ePh(t,!0)).length>0&&(GV(0,u.length),43==u.charCodeAt(0))?u.substr(1):u));case 58:return null==t?null:ehQ(eF0((c=ePh(t,!0)).length>0&&(GV(0,c.length),43==c.charCodeAt(0))?c.substr(1):c));case 60:return null==t?null:ell(eDa((n=ePh(t,!0)).length>0&&(GV(0,n.length),43==n.charCodeAt(0))?n.substr(1):n,eHt,eUu));case 61:return null==t?null:ell(eDa(ePh(t,!0),eHt,eUu));default:throw p7(new gL(eZ5+e.ne()+eZ6))}},Y5(eQV,"XMLTypeFactoryImpl",1919),eTS(586,179,{105:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,49:1,97:1,150:1,179:1,114:1,115:1,675:1,1945:1,586:1},Ud),eUe.N=!1,eUe.O=!1;var tvi=!1;Y5(eQV,"XMLTypePackageImpl",586),eTS(1852,1,{837:1},uf),eUe._j=function(){return eD4(),eB2},Y5(eQV,"XMLTypePackageImpl/1",1852),eTS(1861,1,eQS,ud),eUe.wj=function(e){return xd(e)},eUe.xj=function(e){return Je(e17,eUP,2,e,6,1)},Y5(eQV,"XMLTypePackageImpl/10",1861),eTS(1862,1,eQS,uh),eUe.wj=function(e){return xd(e)},eUe.xj=function(e){return Je(e17,eUP,2,e,6,1)},Y5(eQV,"XMLTypePackageImpl/11",1862),eTS(1863,1,eQS,up),eUe.wj=function(e){return xd(e)},eUe.xj=function(e){return Je(e17,eUP,2,e,6,1)},Y5(eQV,"XMLTypePackageImpl/12",1863),eTS(1864,1,eQS,ub),eUe.wj=function(e){return xf(e)},eUe.xj=function(e){return Je(e13,eUP,333,e,7,1)},Y5(eQV,"XMLTypePackageImpl/13",1864),eTS(1865,1,eQS,um),eUe.wj=function(e){return xd(e)},eUe.xj=function(e){return Je(e17,eUP,2,e,6,1)},Y5(eQV,"XMLTypePackageImpl/14",1865),eTS(1866,1,eQS,ug),eUe.wj=function(e){return M4(e,15)},eUe.xj=function(e){return Je(e1H,ezZ,15,e,0,1)},Y5(eQV,"XMLTypePackageImpl/15",1866),eTS(1867,1,eQS,uv),eUe.wj=function(e){return M4(e,15)},eUe.xj=function(e){return Je(e1H,ezZ,15,e,0,1)},Y5(eQV,"XMLTypePackageImpl/16",1867),eTS(1868,1,eQS,uy),eUe.wj=function(e){return xd(e)},eUe.xj=function(e){return Je(e17,eUP,2,e,6,1)},Y5(eQV,"XMLTypePackageImpl/17",1868),eTS(1869,1,eQS,uw),eUe.wj=function(e){return M4(e,155)},eUe.xj=function(e){return Je(e14,eUP,155,e,0,1)},Y5(eQV,"XMLTypePackageImpl/18",1869),eTS(1870,1,eQS,u_),eUe.wj=function(e){return xd(e)},eUe.xj=function(e){return Je(e17,eUP,2,e,6,1)},Y5(eQV,"XMLTypePackageImpl/19",1870),eTS(1853,1,eQS,uE),eUe.wj=function(e){return M4(e,843)},eUe.xj=function(e){return Je(tve,eUp,843,e,0,1)},Y5(eQV,"XMLTypePackageImpl/2",1853),eTS(1871,1,eQS,uS),eUe.wj=function(e){return xd(e)},eUe.xj=function(e){return Je(e17,eUP,2,e,6,1)},Y5(eQV,"XMLTypePackageImpl/20",1871),eTS(1872,1,eQS,uk),eUe.wj=function(e){return xd(e)},eUe.xj=function(e){return Je(e17,eUP,2,e,6,1)},Y5(eQV,"XMLTypePackageImpl/21",1872),eTS(1873,1,eQS,ux),eUe.wj=function(e){return xd(e)},eUe.xj=function(e){return Je(e17,eUP,2,e,6,1)},Y5(eQV,"XMLTypePackageImpl/22",1873),eTS(1874,1,eQS,uT),eUe.wj=function(e){return xd(e)},eUe.xj=function(e){return Je(e17,eUP,2,e,6,1)},Y5(eQV,"XMLTypePackageImpl/23",1874),eTS(1875,1,eQS,uM),eUe.wj=function(e){return M4(e,190)},eUe.xj=function(e){return Je(tyk,eUP,190,e,0,2)},Y5(eQV,"XMLTypePackageImpl/24",1875),eTS(1876,1,eQS,uO),eUe.wj=function(e){return xd(e)},eUe.xj=function(e){return Je(e17,eUP,2,e,6,1)},Y5(eQV,"XMLTypePackageImpl/25",1876),eTS(1877,1,eQS,uA),eUe.wj=function(e){return xd(e)},eUe.xj=function(e){return Je(e17,eUP,2,e,6,1)},Y5(eQV,"XMLTypePackageImpl/26",1877),eTS(1878,1,eQS,uL),eUe.wj=function(e){return M4(e,15)},eUe.xj=function(e){return Je(e1H,ezZ,15,e,0,1)},Y5(eQV,"XMLTypePackageImpl/27",1878),eTS(1879,1,eQS,uC),eUe.wj=function(e){return M4(e,15)},eUe.xj=function(e){return Je(e1H,ezZ,15,e,0,1)},Y5(eQV,"XMLTypePackageImpl/28",1879),eTS(1880,1,eQS,uI),eUe.wj=function(e){return xd(e)},eUe.xj=function(e){return Je(e17,eUP,2,e,6,1)},Y5(eQV,"XMLTypePackageImpl/29",1880),eTS(1854,1,eQS,uD),eUe.wj=function(e){return M4(e,667)},eUe.xj=function(e){return Je(tvt,eUp,2021,e,0,1)},Y5(eQV,"XMLTypePackageImpl/3",1854),eTS(1881,1,eQS,uN),eUe.wj=function(e){return M4(e,19)},eUe.xj=function(e){return Je(e15,eUP,19,e,0,1)},Y5(eQV,"XMLTypePackageImpl/30",1881),eTS(1882,1,eQS,uP),eUe.wj=function(e){return xd(e)},eUe.xj=function(e){return Je(e17,eUP,2,e,6,1)},Y5(eQV,"XMLTypePackageImpl/31",1882),eTS(1883,1,eQS,uR),eUe.wj=function(e){return M4(e,162)},eUe.xj=function(e){return Je(e16,eUP,162,e,0,1)},Y5(eQV,"XMLTypePackageImpl/32",1883),eTS(1884,1,eQS,uj),eUe.wj=function(e){return xd(e)},eUe.xj=function(e){return Je(e17,eUP,2,e,6,1)},Y5(eQV,"XMLTypePackageImpl/33",1884),eTS(1885,1,eQS,uF),eUe.wj=function(e){return xd(e)},eUe.xj=function(e){return Je(e17,eUP,2,e,6,1)},Y5(eQV,"XMLTypePackageImpl/34",1885),eTS(1886,1,eQS,uY),eUe.wj=function(e){return xd(e)},eUe.xj=function(e){return Je(e17,eUP,2,e,6,1)},Y5(eQV,"XMLTypePackageImpl/35",1886),eTS(1887,1,eQS,uB),eUe.wj=function(e){return xd(e)},eUe.xj=function(e){return Je(e17,eUP,2,e,6,1)},Y5(eQV,"XMLTypePackageImpl/36",1887),eTS(1888,1,eQS,uU),eUe.wj=function(e){return M4(e,15)},eUe.xj=function(e){return Je(e1H,ezZ,15,e,0,1)},Y5(eQV,"XMLTypePackageImpl/37",1888),eTS(1889,1,eQS,uH),eUe.wj=function(e){return M4(e,15)},eUe.xj=function(e){return Je(e1H,ezZ,15,e,0,1)},Y5(eQV,"XMLTypePackageImpl/38",1889),eTS(1890,1,eQS,u$),eUe.wj=function(e){return xd(e)},eUe.xj=function(e){return Je(e17,eUP,2,e,6,1)},Y5(eQV,"XMLTypePackageImpl/39",1890),eTS(1855,1,eQS,uz),eUe.wj=function(e){return M4(e,668)},eUe.xj=function(e){return Je(tvn,eUp,2022,e,0,1)},Y5(eQV,"XMLTypePackageImpl/4",1855),eTS(1891,1,eQS,uG),eUe.wj=function(e){return xd(e)},eUe.xj=function(e){return Je(e17,eUP,2,e,6,1)},Y5(eQV,"XMLTypePackageImpl/40",1891),eTS(1892,1,eQS,uW),eUe.wj=function(e){return xd(e)},eUe.xj=function(e){return Je(e17,eUP,2,e,6,1)},Y5(eQV,"XMLTypePackageImpl/41",1892),eTS(1893,1,eQS,uK),eUe.wj=function(e){return xd(e)},eUe.xj=function(e){return Je(e17,eUP,2,e,6,1)},Y5(eQV,"XMLTypePackageImpl/42",1893),eTS(1894,1,eQS,uV),eUe.wj=function(e){return xd(e)},eUe.xj=function(e){return Je(e17,eUP,2,e,6,1)},Y5(eQV,"XMLTypePackageImpl/43",1894),eTS(1895,1,eQS,uq),eUe.wj=function(e){return xd(e)},eUe.xj=function(e){return Je(e17,eUP,2,e,6,1)},Y5(eQV,"XMLTypePackageImpl/44",1895),eTS(1896,1,eQS,uZ),eUe.wj=function(e){return M4(e,184)},eUe.xj=function(e){return Je(e19,eUP,184,e,0,1)},Y5(eQV,"XMLTypePackageImpl/45",1896),eTS(1897,1,eQS,uX),eUe.wj=function(e){return xd(e)},eUe.xj=function(e){return Je(e17,eUP,2,e,6,1)},Y5(eQV,"XMLTypePackageImpl/46",1897),eTS(1898,1,eQS,uJ),eUe.wj=function(e){return xd(e)},eUe.xj=function(e){return Je(e17,eUP,2,e,6,1)},Y5(eQV,"XMLTypePackageImpl/47",1898),eTS(1899,1,eQS,uQ),eUe.wj=function(e){return xd(e)},eUe.xj=function(e){return Je(e17,eUP,2,e,6,1)},Y5(eQV,"XMLTypePackageImpl/48",1899),eTS(eHx,1,eQS,u1),eUe.wj=function(e){return M4(e,184)},eUe.xj=function(e){return Je(e19,eUP,184,e,0,1)},Y5(eQV,"XMLTypePackageImpl/49",eHx),eTS(1856,1,eQS,u0),eUe.wj=function(e){return M4(e,669)},eUe.xj=function(e){return Je(tvr,eUp,2023,e,0,1)},Y5(eQV,"XMLTypePackageImpl/5",1856),eTS(1901,1,eQS,u2),eUe.wj=function(e){return M4(e,162)},eUe.xj=function(e){return Je(e16,eUP,162,e,0,1)},Y5(eQV,"XMLTypePackageImpl/50",1901),eTS(1902,1,eQS,u3),eUe.wj=function(e){return xd(e)},eUe.xj=function(e){return Je(e17,eUP,2,e,6,1)},Y5(eQV,"XMLTypePackageImpl/51",1902),eTS(1903,1,eQS,u4),eUe.wj=function(e){return M4(e,19)},eUe.xj=function(e){return Je(e15,eUP,19,e,0,1)},Y5(eQV,"XMLTypePackageImpl/52",1903),eTS(1857,1,eQS,u5),eUe.wj=function(e){return xd(e)},eUe.xj=function(e){return Je(e17,eUP,2,e,6,1)},Y5(eQV,"XMLTypePackageImpl/6",1857),eTS(1858,1,eQS,u6),eUe.wj=function(e){return M4(e,190)},eUe.xj=function(e){return Je(tyk,eUP,190,e,0,2)},Y5(eQV,"XMLTypePackageImpl/7",1858),eTS(1859,1,eQS,u9),eUe.wj=function(e){return xl(e)},eUe.xj=function(e){return Je(e11,eUP,476,e,8,1)},Y5(eQV,"XMLTypePackageImpl/8",1859),eTS(1860,1,eQS,u8),eUe.wj=function(e){return M4(e,217)},eUe.xj=function(e){return Je(e10,eUP,217,e,0,1)},Y5(eQV,"XMLTypePackageImpl/9",1860),eTS(50,60,eHr,gX),Y5(e1l,"RegEx/ParseException",50),eTS(820,1,{},u7),eUe.sl=function(e){return e16*n)throw p7(new gX(eBJ((Mo(),eJd))));n=16*n+i}if(125!=this.a)throw p7(new gX(eBJ((Mo(),eJh))));if(n>e1f)throw p7(new gX(eBJ((Mo(),eJp))));e=n}else{if(i=0,0!=this.c||(i=eb0(this.a))<0||(n=i,eBM(this),0!=this.c||(i=eb0(this.a))<0))throw p7(new gX(eBJ((Mo(),eJf))));e=n=16*n+i}break;case 117:if(r=0,eBM(this),0!=this.c||(r=eb0(this.a))<0||(t=r,eBM(this),0!=this.c||(r=eb0(this.a))<0)||(t=16*t+r,eBM(this),0!=this.c||(r=eb0(this.a))<0)||(t=16*t+r,eBM(this),0!=this.c||(r=eb0(this.a))<0))throw p7(new gX(eBJ((Mo(),eJf))));e=t=16*t+r;break;case 118:if(eBM(this),0!=this.c||(r=eb0(this.a))<0||(t=r,eBM(this),0!=this.c||(r=eb0(this.a))<0)||(t=16*t+r,eBM(this),0!=this.c||(r=eb0(this.a))<0)||(t=16*t+r,eBM(this),0!=this.c||(r=eb0(this.a))<0)||(t=16*t+r,eBM(this),0!=this.c||(r=eb0(this.a))<0)||(t=16*t+r,eBM(this),0!=this.c||(r=eb0(this.a))<0))throw p7(new gX(eBJ((Mo(),eJf))));if((t=16*t+r)>e1f)throw p7(new gX(eBJ((Mo(),"parser.descappe.4"))));e=t;break;case 65:case 90:case 122:throw p7(new gX(eBJ((Mo(),eJb))))}return e},eUe.ul=function(e){var t,n;switch(e){case 100:n=(32&this.e)==32?eYB("Nd",!0):(eBG(),tv8);break;case 68:n=(32&this.e)==32?eYB("Nd",!1):(eBG(),tyr);break;case 119:n=(32&this.e)==32?eYB("IsWord",!0):(eBG(),tyd);break;case 87:n=(32&this.e)==32?eYB("IsWord",!1):(eBG(),tya);break;case 115:n=(32&this.e)==32?eYB("IsSpace",!0):(eBG(),tys);break;case 83:n=(32&this.e)==32?eYB("IsSpace",!1):(eBG(),tyi);break;default:throw p7(new go(e1d+(t=e).toString(16)))}return n},eUe.vl=function(e){var t,n,r,i,a,o,s,u,c,l,f,d;for(this.b=1,eBM(this),t=null,0==this.c&&94==this.a?(eBM(this),e?l=(eBG(),eBG(),++tyv,new WZ(5)):(t=(eBG(),eBG(),++tyv,new WZ(4)),eLw(t,0,e1f),l=(++tyv,new WZ(4)))):l=(eBG(),eBG(),++tyv,new WZ(4)),i=!0;1!=(d=this.c)&&(0!=d||93!=this.a||i);){if(i=!1,n=this.a,r=!1,10==d)switch(n){case 100:case 68:case 119:case 87:case 115:case 83:ePR(l,this.ul(n)),r=!0;break;case 105:case 73:case 99:case 67:(n=this.Ll(l,n))<0&&(r=!0);break;case 112:case 80:if(!(f=ext(this,n)))throw p7(new gX(eBJ((Mo(),eJe))));ePR(l,f),r=!0;break;default:n=this.tl()}else if(20==d){if((o=AG(this.i,58,this.d))<0)throw p7(new gX(eBJ((Mo(),eJt))));if(s=!0,94==UI(this.i,this.d)&&(++this.d,s=!1),!(u=JI(a=Az(this.i,this.d,o),s,(512&this.e)==512)))throw p7(new gX(eBJ((Mo(),eJr))));if(ePR(l,u),r=!0,o+1>=this.j||93!=UI(this.i,o+1))throw p7(new gX(eBJ((Mo(),eJt))));this.d=o+2}if(eBM(this),!r){if(0!=this.c||45!=this.a)eLw(l,n,n);else{if(eBM(this),1==(d=this.c))throw p7(new gX(eBJ((Mo(),eJn))));0==d&&93==this.a?(eLw(l,n,n),eLw(l,45,45)):(c=this.a,10==d&&(c=this.tl()),eBM(this),eLw(l,n,c))}}(this.e&eXt)==eXt&&0==this.c&&44==this.a&&eBM(this)}if(1==this.c)throw p7(new gX(eBJ((Mo(),eJn))));return t&&(ej0(t,l),l=t),eMS(l),eRo(l),this.b=0,eBM(this),l},eUe.wl=function(){var e,t,n,r;for(n=this.vl(!1);7!=(r=this.c);)if(e=this.a,0==r&&(45==e||38==e)||4==r){if(eBM(this),9!=this.c)throw p7(new gX(eBJ((Mo(),eJu))));if(t=this.vl(!1),4==r)ePR(n,t);else if(45==e)ej0(n,t);else if(38==e)ejO(n,t);else throw p7(new go("ASSERT"))}else throw p7(new gX(eBJ((Mo(),eJc))));return eBM(this),n},eUe.xl=function(){var e,t;return e=this.a-48,t=(eBG(),eBG(),++tyv,new zc(12,null,e)),this.g||(this.g=new bZ),bY(this.g,new pX(e)),eBM(this),t},eUe.yl=function(){return eBM(this),eBG(),tyu},eUe.zl=function(){return eBM(this),eBG(),tyo},eUe.Al=function(){throw p7(new gX(eBJ((Mo(),eJm))))},eUe.Bl=function(){throw p7(new gX(eBJ((Mo(),eJm))))},eUe.Cl=function(){return eBM(this),esV()},eUe.Dl=function(){return eBM(this),eBG(),tyl},eUe.El=function(){return eBM(this),eBG(),tyh},eUe.Fl=function(){var e;if(this.d>=this.j||(65504&(e=UI(this.i,this.d++)))!=64)throw p7(new gX(eBJ((Mo(),eX6))));return eBM(this),eBG(),eBG(),++tyv,new jb(0,e-64)},eUe.Gl=function(){return eBM(this),eNw()},eUe.Hl=function(){return eBM(this),eBG(),typ},eUe.Il=function(){var e;return e=(eBG(),eBG(),++tyv,new jb(0,105)),eBM(this),e},eUe.Jl=function(){return eBM(this),eBG(),tyf},eUe.Kl=function(){return eBM(this),eBG(),tyc},eUe.Ll=function(e,t){return this.tl()},eUe.Ml=function(){return eBM(this),eBG(),tyt},eUe.Nl=function(){var e,t,n,r,i;if(this.d+1>=this.j)throw p7(new gX(eBJ((Mo(),eX3))));if(r=-1,t=null,49<=(e=UI(this.i,this.d))&&e<=57){if(r=e-48,this.g||(this.g=new bZ),bY(this.g,new pX(r)),++this.d,41!=UI(this.i,this.d))throw p7(new gX(eBJ((Mo(),eX1))));++this.d}else switch(63==e&&--this.d,eBM(this),(t=eBs(this)).e){case 20:case 21:case 22:case 23:break;case 8:if(7!=this.c)throw p7(new gX(eBJ((Mo(),eX1))));break;default:throw p7(new gX(eBJ((Mo(),eX4))))}if(eBM(this),i=ehT(this),n=null,2==i.e){if(2!=i.em())throw p7(new gX(eBJ((Mo(),eX5))));n=i.am(1),i=i.am(0)}if(7!=this.c)throw p7(new gX(eBJ((Mo(),eX1))));return eBM(this),eBG(),eBG(),++tyv,new ee_(r,t,i,n)},eUe.Ol=function(){return eBM(this),eBG(),tyn},eUe.Pl=function(){var e;if(eBM(this),e=F4(24,ehT(this)),7!=this.c)throw p7(new gX(eBJ((Mo(),eX1))));return eBM(this),e},eUe.Ql=function(){var e;if(eBM(this),e=F4(20,ehT(this)),7!=this.c)throw p7(new gX(eBJ((Mo(),eX1))));return eBM(this),e},eUe.Rl=function(){var e;if(eBM(this),e=F4(22,ehT(this)),7!=this.c)throw p7(new gX(eBJ((Mo(),eX1))));return eBM(this),e},eUe.Sl=function(){var e,t,n,r,i;for(e=0,n=0,t=-1;this.d=this.j)throw p7(new gX(eBJ((Mo(),eX0))));if(45==t){for(++this.d;this.d=this.j)throw p7(new gX(eBJ((Mo(),eX0))))}if(58==t){if(++this.d,eBM(this),r=Bu(ehT(this),e,n),7!=this.c)throw p7(new gX(eBJ((Mo(),eX1))));eBM(this)}else if(41==t)++this.d,eBM(this),r=Bu(ehT(this),e,n);else throw p7(new gX(eBJ((Mo(),eX2))));return r},eUe.Tl=function(){var e;if(eBM(this),e=F4(21,ehT(this)),7!=this.c)throw p7(new gX(eBJ((Mo(),eX1))));return eBM(this),e},eUe.Ul=function(){var e;if(eBM(this),e=F4(23,ehT(this)),7!=this.c)throw p7(new gX(eBJ((Mo(),eX1))));return eBM(this),e},eUe.Vl=function(){var e,t;if(eBM(this),e=this.f++,t=F5(ehT(this),e),7!=this.c)throw p7(new gX(eBJ((Mo(),eX1))));return eBM(this),t},eUe.Wl=function(){var e;if(eBM(this),e=F5(ehT(this),0),7!=this.c)throw p7(new gX(eBJ((Mo(),eX1))));return eBM(this),e},eUe.Xl=function(e){return(eBM(this),5==this.c)?(eBM(this),jS(e,(eBG(),eBG(),++tyv,new qa(9,e)))):jS(e,(eBG(),eBG(),++tyv,new qa(3,e)))},eUe.Yl=function(e){var t;return eBM(this),t=(eBG(),eBG(),++tyv,new Mr(2)),5==this.c?(eBM(this),eRv(t,tye),eRv(t,e)):(eRv(t,e),eRv(t,tye)),t},eUe.Zl=function(e){return(eBM(this),5==this.c)?(eBM(this),eBG(),eBG(),++tyv,new qa(9,e)):(eBG(),eBG(),++tyv,new qa(3,e))},eUe.a=0,eUe.b=0,eUe.c=0,eUe.d=0,eUe.e=0,eUe.f=1,eUe.g=null,eUe.j=0,Y5(e1l,"RegEx/RegexParser",820),eTS(1824,820,{},mU),eUe.sl=function(e){return!1},eUe.tl=function(){return eCn(this)},eUe.ul=function(e){return eDu(e)},eUe.vl=function(e){return eBL(this)},eUe.wl=function(){throw p7(new gX(eBJ((Mo(),eJm))))},eUe.xl=function(){throw p7(new gX(eBJ((Mo(),eJm))))},eUe.yl=function(){throw p7(new gX(eBJ((Mo(),eJm))))},eUe.zl=function(){throw p7(new gX(eBJ((Mo(),eJm))))},eUe.Al=function(){return eBM(this),eDu(67)},eUe.Bl=function(){return eBM(this),eDu(73)},eUe.Cl=function(){throw p7(new gX(eBJ((Mo(),eJm))))},eUe.Dl=function(){throw p7(new gX(eBJ((Mo(),eJm))))},eUe.El=function(){throw p7(new gX(eBJ((Mo(),eJm))))},eUe.Fl=function(){return eBM(this),eDu(99)},eUe.Gl=function(){throw p7(new gX(eBJ((Mo(),eJm))))},eUe.Hl=function(){throw p7(new gX(eBJ((Mo(),eJm))))},eUe.Il=function(){return eBM(this),eDu(105)},eUe.Jl=function(){throw p7(new gX(eBJ((Mo(),eJm))))},eUe.Kl=function(){throw p7(new gX(eBJ((Mo(),eJm))))},eUe.Ll=function(e,t){return ePR(e,eDu(t)),-1},eUe.Ml=function(){return eBM(this),eBG(),eBG(),++tyv,new jb(0,94)},eUe.Nl=function(){throw p7(new gX(eBJ((Mo(),eJm))))},eUe.Ol=function(){return eBM(this),eBG(),eBG(),++tyv,new jb(0,36)},eUe.Pl=function(){throw p7(new gX(eBJ((Mo(),eJm))))},eUe.Ql=function(){throw p7(new gX(eBJ((Mo(),eJm))))},eUe.Rl=function(){throw p7(new gX(eBJ((Mo(),eJm))))},eUe.Sl=function(){throw p7(new gX(eBJ((Mo(),eJm))))},eUe.Tl=function(){throw p7(new gX(eBJ((Mo(),eJm))))},eUe.Ul=function(){throw p7(new gX(eBJ((Mo(),eJm))))},eUe.Vl=function(){var e;if(eBM(this),e=F5(ehT(this),0),7!=this.c)throw p7(new gX(eBJ((Mo(),eX1))));return eBM(this),e},eUe.Wl=function(){throw p7(new gX(eBJ((Mo(),eJm))))},eUe.Xl=function(e){return eBM(this),jS(e,(eBG(),eBG(),++tyv,new qa(3,e)))},eUe.Yl=function(e){var t;return eBM(this),t=(eBG(),eBG(),++tyv,new Mr(2)),eRv(t,e),eRv(t,tye),t},eUe.Zl=function(e){return eBM(this),eBG(),eBG(),++tyv,new qa(3,e)};var tva=null,tvo=null;Y5(e1l,"RegEx/ParserForXMLSchema",1824),eTS(117,1,e1k,pJ),eUe.$l=function(e){throw p7(new go("Not supported."))},eUe._l=function(){return -1},eUe.am=function(e){return null},eUe.bm=function(){return null},eUe.cm=function(e){},eUe.dm=function(e){},eUe.em=function(){return 0},eUe.Ib=function(){return this.fm(0)},eUe.fm=function(e){return 11==this.e?".":""},eUe.e=0;var tvs,tvu,tvc,tvl,tvf,tvd,tvh,tvp,tvb,tvm,tvg,tvv,tvy,tvw,tv_,tvE,tvS,tvk,tvx,tvT,tvM,tvO,tvA,tvL,tvC,tvI,tvD,tvN,tvP,tvR,tvj,tvF,tvY,tvB,tvU,tvH,tv$,tvz,tvG,tvW,tvK,tvV,tvq,tvZ,tvX,tvJ,tvQ,tv1,tv0,tv2,tv3,tv4,tv5,tv6,tv9,tv8,tv7,tye,tyt,tyn,tyr,tyi,tya,tyo,tys,tyu,tyc,tyl,tyf,tyd,tyh,typ,tyb=null,tym=null,tyg=null,tyv=0,tyy=Y5(e1l,"RegEx/Token",117);eTS(136,117,{3:1,136:1,117:1},WZ),eUe.fm=function(e){var t,n,r;if(4==this.e){if(this==tv7)n=".";else if(this==tv8)n="\\d";else if(this==tyd)n="\\w";else if(this==tys)n="\\s";else{for(r=new vs,r.a+="[",t=0;t0&&(r.a+=","),this.b[t]===this.b[t+1]?xk(r,eN$(this.b[t])):(xk(r,eN$(this.b[t])),r.a+="-",xk(r,eN$(this.b[t+1])));r.a+="]",n=r.a}}else if(this==tyr)n="\\D";else if(this==tya)n="\\W";else if(this==tyi)n="\\S";else{for(r=new vs,r.a+="[^",t=0;t0&&(r.a+=","),this.b[t]===this.b[t+1]?xk(r,eN$(this.b[t])):(xk(r,eN$(this.b[t])),r.a+="-",xk(r,eN$(this.b[t+1])));r.a+="]",n=r.a}return n},eUe.a=!1,eUe.c=!1,Y5(e1l,"RegEx/RangeToken",136),eTS(584,1,{584:1},pX),eUe.a=0,Y5(e1l,"RegEx/RegexParser/ReferencePosition",584),eTS(583,1,{3:1,583:1},wu),eUe.Fb=function(e){var t;return!!(null!=e&&M4(e,583))&&(t=Pp(e,583),IE(this.b,t.b)&&this.a==t.a)},eUe.Hb=function(){return ebA(this.b+"/"+eAN(this.a))},eUe.Ib=function(){return this.c.fm(this.a)},eUe.a=0,Y5(e1l,"RegEx/RegularExpression",583),eTS(223,117,e1k,jb),eUe._l=function(){return this.a},eUe.fm=function(e){var t,n,r;switch(this.e){case 0:switch(this.a){case 124:case 42:case 43:case 63:case 40:case 41:case 46:case 91:case 123:case 92:r="\\"+CB(this.a&eHd);break;case 12:r="\\f";break;case 10:r="\\n";break;case 13:r="\\r";break;case 9:r="\\t";break;case 27:r="\\e";break;default:r=this.a>=eH3?"\\v"+Az(n="0"+(t=this.a>>>0).toString(16),n.length-6,n.length):""+CB(this.a&eHd)}break;case 8:r=this==tyt||this==tyn?""+CB(this.a&eHd):"\\"+CB(this.a&eHd);break;default:r=null}return r},eUe.a=0,Y5(e1l,"RegEx/Token/CharToken",223),eTS(309,117,e1k,qa),eUe.am=function(e){return this.a},eUe.cm=function(e){this.b=e},eUe.dm=function(e){this.c=e},eUe.em=function(){return 1},eUe.fm=function(e){var t;if(3==this.e){if(this.c<0&&this.b<0)t=this.a.fm(e)+"*";else if(this.c==this.b)t=this.a.fm(e)+"{"+this.c+"}";else if(this.c>=0&&this.b>=0)t=this.a.fm(e)+"{"+this.c+","+this.b+"}";else if(this.c>=0&&this.b<0)t=this.a.fm(e)+"{"+this.c+",}";else throw p7(new go("Token#toString(): CLOSURE "+this.c+eUd+this.b))}else if(this.c<0&&this.b<0)t=this.a.fm(e)+"*?";else if(this.c==this.b)t=this.a.fm(e)+"{"+this.c+"}?";else if(this.c>=0&&this.b>=0)t=this.a.fm(e)+"{"+this.c+","+this.b+"}?";else if(this.c>=0&&this.b<0)t=this.a.fm(e)+"{"+this.c+",}?";else throw p7(new go("Token#toString(): NONGREEDYCLOSURE "+this.c+eUd+this.b));return t},eUe.b=0,eUe.c=0,Y5(e1l,"RegEx/Token/ClosureToken",309),eTS(821,117,e1k,YD),eUe.am=function(e){return 0==e?this.a:this.b},eUe.em=function(){return 2},eUe.fm=function(e){var t;return 3==this.b.e&&this.b.am(0)==this.a?this.a.fm(e)+"+":9==this.b.e&&this.b.am(0)==this.a?this.a.fm(e)+"+?":this.a.fm(e)+""+this.b.fm(e)},Y5(e1l,"RegEx/Token/ConcatToken",821),eTS(1822,117,e1k,ee_),eUe.am=function(e){if(0==e)return this.d;if(1==e)return this.b;throw p7(new go("Internal Error: "+e))},eUe.em=function(){return this.b?2:1},eUe.fm=function(e){var t;return t=this.c>0?"(?("+this.c+")":8==this.a.e?"(?("+this.a+")":"(?"+this.a,this.b?t+=this.d+"|"+this.b+")":t+=this.d+")",t},eUe.c=0,Y5(e1l,"RegEx/Token/ConditionToken",1822),eTS(1823,117,e1k,Wq),eUe.am=function(e){return this.b},eUe.em=function(){return 1},eUe.fm=function(e){return"(?"+(0==this.a?"":eAN(this.a))+(0==this.c?"":eAN(this.c))+":"+this.b.fm(e)+")"},eUe.a=0,eUe.c=0,Y5(e1l,"RegEx/Token/ModifierToken",1823),eTS(822,117,e1k,BR),eUe.am=function(e){return this.a},eUe.em=function(){return 1},eUe.fm=function(e){var t;switch(t=null,this.e){case 6:t=0==this.b?"(?:"+this.a.fm(e)+")":"("+this.a.fm(e)+")";break;case 20:t="(?="+this.a.fm(e)+")";break;case 21:t="(?!"+this.a.fm(e)+")";break;case 22:t="(?<="+this.a.fm(e)+")";break;case 23:t="(?"+this.a.fm(e)+")"}return t},eUe.b=0,Y5(e1l,"RegEx/Token/ParenToken",822),eTS(521,117,{3:1,117:1,521:1},zc),eUe.bm=function(){return this.b},eUe.fm=function(e){return 12==this.e?"\\"+this.a:eTd(this.b)},eUe.a=0,Y5(e1l,"RegEx/Token/StringToken",521),eTS(465,117,e1k,Mr),eUe.$l=function(e){eRv(this,e)},eUe.am=function(e){return Pp(Bz(this.a,e),117)},eUe.em=function(){return this.a?this.a.a.c.length:0},eUe.fm=function(e){var t,n,r,i,a;if(1==this.e){if(2==this.a.a.c.length)t=Pp(Bz(this.a,0),117),i=3==(n=Pp(Bz(this.a,1),117)).e&&n.am(0)==t?t.fm(e)+"+":9==n.e&&n.am(0)==t?t.fm(e)+"+?":t.fm(e)+""+n.fm(e);else{for(r=0,a=new vs;r=this.c.b:this.a<=this.c.b},eUe.Sb=function(){return this.b>0},eUe.Tb=function(){return this.b},eUe.Vb=function(){return this.b-1},eUe.Qb=function(){throw p7(new gW(e1L))},eUe.a=0,eUe.b=0,Y5(e1M,"ExclusiveRange/RangeIterator",254);var tyw=Ui(eJX,"C"),ty_=Ui(eJ1,"I"),tyE=Ui(eUi,"Z"),tyS=Ui(eJ0,"J"),tyk=Ui(eJZ,"B"),tyx=Ui(eJJ,"D"),tyT=Ui(eJQ,"F"),tyM=Ui(eJ2,"S"),tyO=RL("org.eclipse.elk.core.labels","ILabelManager"),tyA=RL(eX_,"DiagnosticChain"),tyL=RL(eQx,"ResourceSet"),tyC=Y5(eX_,"InvocationTargetException",null),tyI=(vg(),q6),tyD=tyD=eyP;enI(bs),eiE("permProps",[[[e1C,e1I],[e1D,"gecko1_8"]],[[e1C,e1I],[e1D,"ie10"]],[[e1C,e1I],[e1D,"ie8"]],[[e1C,e1I],[e1D,"ie9"]],[[e1C,e1I],[e1D,"safari"]]]),tyD(null,"elk",null)},3379(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return t&&("object"==typeof t||"function"==typeof t)?t:e}function a(e,t){if("function"!=typeof t&&null!==t)throw 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 o=function(e){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};r(this,t);var a=Object.assign({},e),o=!1;try{o=!0}catch(s){}if(e.workerUrl){if(o){var u=n(84763);a.workerFactory=function(e){return new u(e)}}else console.warn("Web worker requested but 'web-worker' package not installed. \nConsider installing the package or pass your own 'workerFactory' to ELK's constructor.\n... Falling back to non-web worker version.")}if(!a.workerFactory){var c=n(55273).Worker;a.workerFactory=function(e){return new c(e)}}return i(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,a))}return a(t,e),t}(n(4005).default);Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports=o,o.default=o},17187(e){"use strict";var t,n="object"==typeof Reflect?Reflect:null,r=n&&"function"==typeof n.apply?n.apply:function(e,t,n){return Function.prototype.apply.call(e,t,n)};function i(e){console&&console.warn&&console.warn(e)}t=n&&"function"==typeof n.ownKeys?n.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var a=Number.isNaN||function(e){return e!=e};function o(){o.init.call(this)}e.exports=o,e.exports.once=v,o.EventEmitter=o,o.prototype._events=void 0,o.prototype._eventsCount=0,o.prototype._maxListeners=void 0;var s=10;function u(e){if("function"!=typeof e)throw TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}function c(e){return void 0===e._maxListeners?o.defaultMaxListeners:e._maxListeners}function l(e,t,n,r){if(u(n),void 0===(o=e._events)?(o=e._events=Object.create(null),e._eventsCount=0):(void 0!==o.newListener&&(e.emit("newListener",t,n.listener?n.listener:n),o=e._events),s=o[t]),void 0===s)s=o[t]=n,++e._eventsCount;else if("function"==typeof s?s=o[t]=r?[n,s]:[s,n]:r?s.unshift(n):s.push(n),(a=c(e))>0&&s.length>a&&!s.warned){s.warned=!0;var a,o,s,l=Error("Possible EventEmitter memory leak detected. "+s.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");l.name="MaxListenersExceededWarning",l.emitter=e,l.type=t,l.count=s.length,i(l)}return e}function f(){if(!this.fired)return(this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length)?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function d(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},i=f.bind(r);return i.listener=n,r.wrapFn=i,i}function h(e,t,n){var r=e._events;if(void 0===r)return[];var i=r[t];return void 0===i?[]:"function"==typeof i?n?[i.listener||i]:[i]:n?g(i):b(i,i.length)}function p(e){var t=this._events;if(void 0!==t){var n=t[e];if("function"==typeof n)return 1;if(void 0!==n)return n.length}return 0}function b(e,t){for(var n=Array(t),r=0;r0&&(o=t[0]),o instanceof Error)throw o;var o,s=Error("Unhandled error."+(o?" ("+o.message+")":""));throw s.context=o,s}var u=a[e];if(void 0===u)return!1;if("function"==typeof u)r(u,this,t);else for(var c=u.length,l=b(u,c),n=0;n=0;a--)if(n[a]===t||n[a].listener===t){o=n[a].listener,i=a;break}if(i<0)return this;0===i?n.shift():m(n,i),1===n.length&&(r[e]=n[0]),void 0!==r.removeListener&&this.emit("removeListener",e,o||t)}return this},o.prototype.off=o.prototype.removeListener,o.prototype.removeAllListeners=function(e){var t,n,r;if(void 0===(n=this._events))return this;if(void 0===n.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==n[e]&&(0==--this._eventsCount?this._events=Object.create(null):delete n[e]),this;if(0===arguments.length){var i,a=Object.keys(n);for(r=0;r=0;r--)this.removeListener(e,t[r]);return this},o.prototype.listeners=function(e){return h(this,e,!0)},o.prototype.rawListeners=function(e){return h(this,e,!1)},o.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):p.call(e,t)},o.prototype.listenerCount=p,o.prototype.eventNames=function(){return this._eventsCount>0?t(this._events):[]}},16839(e,t,n){var r=n(25323),i=n(31744),a=n(98361),o=n(4514);e.exports={graphlib:n(32478),read:r,readMany:i,write:a,version:o,type:"dot",buffer:!1}},11100(e,t,n){"use strict";var r=n(47755),i=n(32478).Graph;function a(e){var t="graph"!==e.type,n=!e.strict,a=[{node:{},edge:{}}],s=e.id,u=new i({directed:t,multigraph:n,compound:!0});return u.setGraph(null===s?{}:{id:s}),r.each(e.stmts,function(e){o(u,e,a)}),u}function o(e,t,n,r){switch(t.type){case"node":s(e,t,n,r);break;case"edge":u(e,t,n,r);break;case"subgraph":c(e,t,n,r);break;case"attr":l(e,t,n);break;case"inlineAttr":f(e,t,n,r)}}function s(e,t,n,i){var a=t.id,o=t.attrs;h(e,a,n,i),r.merge(e.node(a),o)}function u(e,t,n,i){var a,s,u=t.attrs;r.each(t.elems,function(t){switch(o(e,t,n,i),t.type){case"node":s=[t.id];break;case"subgraph":s=p(t)}r.each(a,function(t){r.each(s,function(i){var a;e.hasEdge(t,i)&&e.isMultigraph()&&(a=r.uniqueId("edge")),e.hasEdge(t,i,a)||e.setEdge(t,i,r.clone(r.last(n).edge),a),r.merge(e.edge(t,i,a),u)})}),a=s})}function c(e,t,n,i){var a=t.id;void 0===a&&(a=d(e)),n.push(r.clone(r.last(n))),h(e,a,n,i),r.each(t.stmts,function(t){o(e,t,n,a)}),e.children(a).length||e.removeNode(a),n.pop()}function l(e,t,n){r.merge(r.last(n)[t.attrType],t.attrs)}function f(e,t,n,i){r.merge(i?e.node(i):e.graph(),t.attrs)}function d(e){var t;do t=r.uniqueId("sg");while(e.hasNode(t))return t}function h(e,t,n,i){e.hasNode(t)||(e.setNode(t,r.clone(r.last(n).node)),e.setParent(t,i))}function p(e){var t,n={},i=[],a=i.push.bind(i);for(a(e);i.length;)switch((t=i.pop()).type){case"node":n[t.id]=!0;break;case"edge":r.each(t.elems,a);break;case"subgraph":r.each(t.stmts,a)}return r.keys(n)}e.exports=a},4644(e,t,n){e.exports=function(){function e(e,t){function n(){this.constructor=e}n.prototype=t.prototype,e.prototype=new n}function t(e,t,n,r,i,a){this.message=e,this.expected=t,this.found=n,this.offset=r,this.line=i,this.column=a,this.name="SyntaxError"}function r(e){var r,i,a=arguments.length>1?arguments[1]:{},o={},s={start:tf,graphStmt:td},u=tf,c=o,l=null,f="{",d={type:"literal",value:"{",description:'"{"'},h="}",p={type:"literal",value:"}",description:'"}"'},b=function(e,t,n,r){return{type:t,id:n,strict:null!==e,stmts:r}},m=";",g={type:"literal",value:";",description:'";"'},v=function(e,t){for(var n=[e],r=0;r",description:'"->"'},U=function(e,t){var n=[e];if(t)for(var r=0;rt&&(tr=0,ti={line:1,column:1,seenCR:!1}),n(ti,tr,t),tr=t),ti}function tc(e){!(ttta&&(ta=tt,to=[]),to.push(e))}function tl(n,r,i){function a(e){var t=1;for(e.sort(function(e,t){return e.descriptiont.description?1:0});t1?o.slice(0,-1).join(", ")+" or "+o[e.length-1]:o[0])+" but "+(i=t?'"'+n(t)+'"':"end of input")+" found."}var s=tu(i),u=itt?(s=e.charAt(tt),tt++):(s=o,0===ts&&tc(te)),s!==o?i=a=[a,s]:(tt=i,i=c)):(tt=i,i=c);i!==o;)r.push(i),i=tt,a=tt,ts++,e.substr(tt,2)===e8?(s=e8,tt+=2):(s=o,0===ts&&tc(e7)),ts--,s===o?a=F:(tt=a,a=c),a!==o?(e.length>tt?(s=e.charAt(tt),tt++):(s=o,0===ts&&tc(te)),s!==o?i=a=[a,s]:(tt=i,i=c)):(tt=i,i=c);r!==o?(e.substr(tt,2)===e8?(i=e8,tt+=2):(i=o,0===ts&&tc(e7)),i!==o?t=n=[n,r,i]:(tt=t,t=c)):(tt=t,t=c)}else tt=t,t=c}return ts--,t===o&&(n=o,0===ts&&tc(e0)),t}function tY(){var e;return(e=tj())===o&&(e=tF()),e}var tB=n(47755);if((i=u())!==o&&tt===e.length)return i;throw i!==o&&tt":"--",n=new f;e.isMultigraph()||n.write("strict "),n.writeLine((e.isDirected()?"digraph":"graph")+" {"),n.indent();var i=e.graph();return r.isObject(i)&&r.each(i,function(e,t){n.writeLine(l(t)+"="+l(e)+";")}),o(e,void 0,n),e.edges().forEach(function(r){u(e,r,t,n)}),n.unindent(),n.writeLine("}"),n.toString()}function o(e,t,n){var i=e.isCompound()?e.children(t):e.nodes();r.each(i,function(t){e.isCompound()&&e.children(t).length?(n.writeLine("subgraph "+l(t)+" {"),n.indent(),r.isObject(e.node(t))&&r.map(e.node(t),function(e,t){n.writeLine(l(t)+"="+l(e)+";")}),o(e,t,n),n.unindent(),n.writeLine("}")):s(e,t,n)})}function s(e,t,n){n.write(l(t)),c(e.node(t),n),n.writeLine()}function u(e,t,n,r){var i=t.v,a=t.w,o=e.edge(t);r.write(l(i)+" "+n+" "+l(a)),c(o,r),r.writeLine()}function c(e,t){if(r.isObject(e)){var n=r.map(e,function(e,t){return l(t)+"="+l(e)});n.length&&t.write(" ["+n.join(",")+"]")}}function l(e){return"number"==typeof e||e.toString().match(i)?e:'"'+e.toString().replace(/"/g,'\\"')+'"'}function f(){this._indent="",this._content="",this._shouldIndent=!0}f.prototype.INDENT=" ",f.prototype.indent=function(){this._indent+=this.INDENT},f.prototype.unindent=function(){this._indent=this._indent.slice(this.INDENT.length)},f.prototype.writeLine=function(e){this.write((e||"")+"\n"),this._shouldIndent=!0},f.prototype.write=function(e){this._shouldIndent&&(this._shouldIndent=!1,this._content+=this._indent),this._content+=e},f.prototype.toString=function(){return this._content}},28282(e,t,n){var r=n(82354);e.exports={Graph:r.Graph,json:n(28974),alg:n(12440),version:r.version}},2842(e,t,n){var r=n(89126);function i(e){var t,n={},i=[];function a(i){r.has(n,i)||(n[i]=!0,t.push(i),r.each(e.successors(i),a),r.each(e.predecessors(i),a))}return r.each(e.nodes(),function(e){t=[],a(e),t.length&&i.push(t)}),i}e.exports=i},53984(e,t,n){var r=n(89126);function i(e,t,n){r.isArray(t)||(t=[t]);var i=(e.isDirected()?e.successors:e.neighbors).bind(e),o=[],s={};return r.each(t,function(t){if(!e.hasNode(t))throw Error("Graph does not have node: "+t);a(e,t,"post"===n,s,i,o)}),o}function a(e,t,n,i,o,s){!r.has(i,t)&&(i[t]=!0,n||s.push(t),r.each(o(t),function(t){a(e,t,n,i,o,s)}),n&&s.push(t))}e.exports=i},84847(e,t,n){var r=n(63763),i=n(89126);function a(e,t,n){return i.transform(e.nodes(),function(i,a){i[a]=r(e,a,t,n)},{})}e.exports=a},63763(e,t,n){var r=n(89126),i=n(75639);e.exports=o;var a=r.constant(1);function o(e,t,n,r){return s(e,String(t),n||a,r||function(t){return e.outEdges(t)})}function s(e,t,n,r){var a,o,s={},u=new i,c=function(e){var t=e.v!==a?e.v:e.w,r=s[t],i=n(e),c=o.distance+i;if(i<0)throw Error("dijkstra does not allow negative edge weights. Bad edge: "+e+" Weight: "+i);c0&&(o=s[a=u.removeMin()]).distance!==Number.POSITIVE_INFINITY;)r(a).forEach(c);return s}},9096(e,t,n){var r=n(89126),i=n(5023);function a(e){return r.filter(i(e),function(t){return t.length>1||1===t.length&&e.hasEdge(t[0],t[0])})}e.exports=a},38924(e,t,n){var r=n(89126);e.exports=a;var i=r.constant(1);function a(e,t,n){return o(e,t||i,n||function(t){return e.outEdges(t)})}function o(e,t,n){var r={},i=e.nodes();return i.forEach(function(e){r[e]={},r[e][e]={distance:0},i.forEach(function(t){e!==t&&(r[e][t]={distance:Number.POSITIVE_INFINITY})}),n(e).forEach(function(n){var i=n.v===e?n.w:n.v,a=t(n);r[e][i]={distance:a,predecessor:e}})}),i.forEach(function(e){var t=r[e];i.forEach(function(n){var a=r[n];i.forEach(function(n){var r=a[e],i=t[n],o=a[n],s=r.distance+i.distance;s0;){if(n=u.removeMin(),r.has(s,n))o.setEdge(n,s[n]);else if(l)throw Error("Input graph is not connected: "+e);else l=!0;e.nodeEdges(n).forEach(c)}return o}e.exports=o},5023(e,t,n){var r=n(89126);function i(e){var t=0,n=[],i={},a=[];function o(s){var u=i[s]={onStack:!0,lowlink:t,index:t++};if(n.push(s),e.successors(s).forEach(function(e){r.has(i,e)?i[e].onStack&&(u.lowlink=Math.min(u.lowlink,i[e].index)):(o(e),u.lowlink=Math.min(u.lowlink,i[e].lowlink))}),u.lowlink===u.index){var c,l=[];do i[c=n.pop()].onStack=!1,l.push(c);while(s!==c)a.push(l)}}return e.nodes().forEach(function(e){r.has(i,e)||o(e)}),a}e.exports=i},2166(e,t,n){var r=n(89126);function i(e){var t={},n={},i=[];function o(s){if(r.has(n,s))throw new a;r.has(t,s)||(n[s]=!0,t[s]=!0,r.each(e.predecessors(s),o),delete n[s],i.push(s))}if(r.each(e.sinks(),o),r.size(t)!==e.nodeCount())throw new a;return i}function a(){}e.exports=i,i.CycleException=a,a.prototype=Error()},75639(e,t,n){var r=n(89126);function i(){this._arr=[],this._keyIndices={}}e.exports=i,i.prototype.size=function(){return this._arr.length},i.prototype.keys=function(){return this._arr.map(function(e){return e.key})},i.prototype.has=function(e){return r.has(this._keyIndices,e)},i.prototype.priority=function(e){var t=this._keyIndices[e];if(void 0!==t)return this._arr[t].priority},i.prototype.min=function(){if(0===this.size())throw Error("Queue underflow");return this._arr[0].key},i.prototype.add=function(e,t){var n=this._keyIndices;if(e=String(e),!r.has(n,e)){var i=this._arr,a=i.length;return n[e]=a,i.push({key:e,priority:t}),this._decrease(a),!0}return!1},i.prototype.removeMin=function(){this._swap(0,this._arr.length-1);var e=this._arr.pop();return delete this._keyIndices[e.key],this._heapify(0),e.key},i.prototype.decrease=function(e,t){var n=this._keyIndices[e];if(t>this._arr[n].priority)throw Error("New priority is greater than current priority. Key: "+e+" Old: "+this._arr[n].priority+" New: "+t);this._arr[n].priority=t,this._decrease(n)},i.prototype._heapify=function(e){var t=this._arr,n=2*e,r=n+1,i=e;n>1].priorityu){var c=s;s=u,u=c}return s+o+u+o+(r.isUndefined(a)?i:a)}function f(e,t,n,r){var i=""+t,a=""+n;if(!e&&i>a){var o=i;i=a,a=o}var s={v:i,w:a};return r&&(s.name=r),s}function d(e,t){return l(e,t.v,t.w,t.name)}s.prototype._nodeCount=0,s.prototype._edgeCount=0,s.prototype.isDirected=function(){return this._isDirected},s.prototype.isMultigraph=function(){return this._isMultigraph},s.prototype.isCompound=function(){return this._isCompound},s.prototype.setGraph=function(e){return this._label=e,this},s.prototype.graph=function(){return this._label},s.prototype.setDefaultNodeLabel=function(e){return r.isFunction(e)||(e=r.constant(e)),this._defaultNodeLabelFn=e,this},s.prototype.nodeCount=function(){return this._nodeCount},s.prototype.nodes=function(){return r.keys(this._nodes)},s.prototype.sources=function(){var e=this;return r.filter(this.nodes(),function(t){return r.isEmpty(e._in[t])})},s.prototype.sinks=function(){var e=this;return r.filter(this.nodes(),function(t){return r.isEmpty(e._out[t])})},s.prototype.setNodes=function(e,t){var n=arguments,i=this;return r.each(e,function(e){n.length>1?i.setNode(e,t):i.setNode(e)}),this},s.prototype.setNode=function(e,t){return r.has(this._nodes,e)?(arguments.length>1&&(this._nodes[e]=t),this):(this._nodes[e]=arguments.length>1?t:this._defaultNodeLabelFn(e),this._isCompound&&(this._parent[e]=a,this._children[e]={},this._children[a][e]=!0),this._in[e]={},this._preds[e]={},this._out[e]={},this._sucs[e]={},++this._nodeCount,this)},s.prototype.node=function(e){return this._nodes[e]},s.prototype.hasNode=function(e){return r.has(this._nodes,e)},s.prototype.removeNode=function(e){var t=this;if(r.has(this._nodes,e)){var n=function(e){t.removeEdge(t._edgeObjs[e])};delete this._nodes[e],this._isCompound&&(this._removeFromParentsChildList(e),delete this._parent[e],r.each(this.children(e),function(e){t.setParent(e)}),delete this._children[e]),r.each(r.keys(this._in[e]),n),delete this._in[e],delete this._preds[e],r.each(r.keys(this._out[e]),n),delete this._out[e],delete this._sucs[e],--this._nodeCount}return this},s.prototype.setParent=function(e,t){if(!this._isCompound)throw Error("Cannot set parent in a non-compound graph");if(r.isUndefined(t))t=a;else{t+="";for(var n=t;!r.isUndefined(n);n=this.parent(n))if(n===e)throw Error("Setting "+t+" as parent of "+e+" would create a cycle");this.setNode(t)}return this.setNode(e),this._removeFromParentsChildList(e),this._parent[e]=t,this._children[t][e]=!0,this},s.prototype._removeFromParentsChildList=function(e){delete this._children[this._parent[e]][e]},s.prototype.parent=function(e){if(this._isCompound){var t=this._parent[e];if(t!==a)return t}},s.prototype.children=function(e){if(r.isUndefined(e)&&(e=a),this._isCompound){var t=this._children[e];if(t)return r.keys(t)}else if(e===a)return this.nodes();else if(this.hasNode(e))return[]},s.prototype.predecessors=function(e){var t=this._preds[e];if(t)return r.keys(t)},s.prototype.successors=function(e){var t=this._sucs[e];if(t)return r.keys(t)},s.prototype.neighbors=function(e){var t=this.predecessors(e);if(t)return r.union(t,this.successors(e))},s.prototype.isLeaf=function(e){var t;return 0===(t=this.isDirected()?this.successors(e):this.neighbors(e)).length},s.prototype.filterNodes=function(e){var t=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});t.setGraph(this.graph());var n=this;r.each(this._nodes,function(n,r){e(r)&&t.setNode(r,n)}),r.each(this._edgeObjs,function(e){t.hasNode(e.v)&&t.hasNode(e.w)&&t.setEdge(e,n.edge(e))});var i={};function a(e){var r=n.parent(e);return void 0===r||t.hasNode(r)?(i[e]=r,r):r in i?i[r]:a(r)}return this._isCompound&&r.each(t.nodes(),function(e){t.setParent(e,a(e))}),t},s.prototype.setDefaultEdgeLabel=function(e){return r.isFunction(e)||(e=r.constant(e)),this._defaultEdgeLabelFn=e,this},s.prototype.edgeCount=function(){return this._edgeCount},s.prototype.edges=function(){return r.values(this._edgeObjs)},s.prototype.setPath=function(e,t){var n=this,i=arguments;return r.reduce(e,function(e,r){return i.length>1?n.setEdge(e,r,t):n.setEdge(e,r),r}),this},s.prototype.setEdge=function(){var e,t,n,i,a=!1,o=arguments[0];"object"==typeof o&&null!==o&&"v"in o?(e=o.v,t=o.w,n=o.name,2===arguments.length&&(i=arguments[1],a=!0)):(e=o,t=arguments[1],n=arguments[3],arguments.length>2&&(i=arguments[2],a=!0)),e=""+e,t=""+t,r.isUndefined(n)||(n=""+n);var s=l(this._isDirected,e,t,n);if(r.has(this._edgeLabels,s))return a&&(this._edgeLabels[s]=i),this;if(!r.isUndefined(n)&&!this._isMultigraph)throw Error("Cannot set a named edge when isMultigraph = false");this.setNode(e),this.setNode(t),this._edgeLabels[s]=a?i:this._defaultEdgeLabelFn(e,t,n);var c=f(this._isDirected,e,t,n);return e=c.v,t=c.w,Object.freeze(c),this._edgeObjs[s]=c,u(this._preds[t],e),u(this._sucs[e],t),this._in[t][s]=c,this._out[e][s]=c,this._edgeCount++,this},s.prototype.edge=function(e,t,n){var r=1===arguments.length?d(this._isDirected,arguments[0]):l(this._isDirected,e,t,n);return this._edgeLabels[r]},s.prototype.hasEdge=function(e,t,n){var i=1===arguments.length?d(this._isDirected,arguments[0]):l(this._isDirected,e,t,n);return r.has(this._edgeLabels,i)},s.prototype.removeEdge=function(e,t,n){var r=1===arguments.length?d(this._isDirected,arguments[0]):l(this._isDirected,e,t,n),i=this._edgeObjs[r];return i&&(e=i.v,t=i.w,delete this._edgeLabels[r],delete this._edgeObjs[r],c(this._preds[t],e),c(this._sucs[e],t),delete this._in[t][r],delete this._out[e][r],this._edgeCount--),this},s.prototype.inEdges=function(e,t){var n=this._in[e];if(n){var i=r.values(n);return t?r.filter(i,function(e){return e.v===t}):i}},s.prototype.outEdges=function(e,t){var n=this._out[e];if(n){var i=r.values(n);return t?r.filter(i,function(e){return e.w===t}):i}},s.prototype.nodeEdges=function(e,t){var n=this.inEdges(e,t);if(n)return n.concat(this.outEdges(e,t))}},82354(e,t,n){e.exports={Graph:n(30771),version:n(49631)}},28974(e,t,n){var r=n(89126),i=n(30771);function a(e){var t={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:o(e),edges:s(e)};return r.isUndefined(e.graph())||(t.value=r.clone(e.graph())),t}function o(e){return r.map(e.nodes(),function(t){var n=e.node(t),i=e.parent(t),a={v:t};return r.isUndefined(n)||(a.value=n),r.isUndefined(i)||(a.parent=i),a})}function s(e){return r.map(e.edges(),function(t){var n=e.edge(t),i={v:t.v,w:t.w};return r.isUndefined(t.name)||(i.name=t.name),r.isUndefined(n)||(i.value=n),i})}function u(e){var t=new i(e.options).setGraph(e.value);return r.each(e.nodes,function(e){t.setNode(e.v,e.value),e.parent&&t.setParent(e.v,e.parent)}),r.each(e.edges,function(e){t.setEdge({v:e.v,w:e.w,name:e.name},e.value)}),t}e.exports={write:a,read:u}},89126(e,t,n){var r;try{r={clone:n(66678),constant:n(75703),each:n(66073),filter:n(63105),has:n(18721),isArray:n(1469),isEmpty:n(41609),isFunction:n(23560),isUndefined:n(52353),keys:n(3674),map:n(35161),reduce:n(54061),size:n(84238),transform:n(68718),union:n(93386),values:n(52628)}}catch(i){}r||(r=window._),e.exports=r},49631(e){e.exports="2.1.8"},78892(e){"use strict";e.exports=n;var t=/[#.]/g;function n(e,n){for(var r,i,a,o=e||"",s=n||"div",u={},c=0;cC,q_:()=>F,ob:()=>y,PP:()=>B,Ep:()=>v,Hp:()=>w});var r=n(87462);function i(e){return"/"===e.charAt(0)}function a(e,t){for(var n=t,r=n+1,i=e.length;r=0;d--){var h=o[d];"."===h?a(o,d):".."===h?(a(o,d),f++):f&&(a(o,d),f--)}if(!c)for(;f--;f)o.unshift("..");!c||""===o[0]||o[0]&&i(o[0])||o.unshift("");var p=o.join("/");return n&&"/"!==p.substr(-1)&&(p+="/"),p}let s=o;function u(e){return e.valueOf?e.valueOf():Object.prototype.valueOf.call(e)}function c(e,t){if(e===t)return!0;if(null==e||null==t)return!1;if(Array.isArray(e))return Array.isArray(t)&&e.length===t.length&&e.every(function(e,n){return c(e,t[n])});if("object"==typeof e||"object"==typeof t){var n=u(e),r=u(t);return n!==e||r!==t?c(n,r):Object.keys(Object.assign({},e,t)).every(function(n){return c(e[n],t[n])})}return!1}let l=c;var f=n(2177);function d(e){return"/"===e.charAt(0)?e:"/"+e}function h(e){return"/"===e.charAt(0)?e.substr(1):e}function p(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}function b(e,t){return p(e,t)?e.substr(t.length):e}function m(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function g(e){var t=e||"/",n="",r="",i=t.indexOf("#");-1!==i&&(r=t.substr(i),t=t.substr(0,i));var a=t.indexOf("?");return -1!==a&&(n=t.substr(a),t=t.substr(0,a)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}function v(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 y(e,t,n,i){var a;"string"==typeof e?(a=g(e)).state=t:(void 0===(a=(0,r.Z)({},e)).pathname&&(a.pathname=""),a.search?"?"!==a.search.charAt(0)&&(a.search="?"+a.search):a.search="",a.hash?"#"!==a.hash.charAt(0)&&(a.hash="#"+a.hash):a.hash="",void 0!==t&&void 0===a.state&&(a.state=t));try{a.pathname=decodeURI(a.pathname)}catch(o){if(o instanceof URIError)throw URIError('Pathname "'+a.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.');throw o}return n&&(a.key=n),i?a.pathname?"/"!==a.pathname.charAt(0)&&(a.pathname=s(a.pathname,i.pathname)):a.pathname=i.pathname:a.pathname||(a.pathname="/"),a}function w(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 _(){var e=null;function t(t){return e=t,function(){e===t&&(e=null)}}function n(t,n,r,i){if(null!=e){var a="function"==typeof e?e(t,n):e;"string"==typeof a?"function"==typeof r?r(a,i):i(!0):i(!1!==a)}else i(!0)}var r=[];function i(e){var t=!0;function n(){t&&e.apply(void 0,arguments)}return r.push(n),function(){t=!1,r=r.filter(function(e){return e!==n})}}function a(){for(var e=arguments.length,t=Array(e),n=0;nn?a.splice(n,a.length-n,i):a.push(i),f({action:r,location:i,index:n,entries:a})}})}function g(e,t){var r="REPLACE",i=y(e,t,d(),M.location);l.confirmTransitionTo(i,r,n,function(e){e&&(M.entries[M.index]=i,f({action:r,location:i}))})}function w(e){var t=Y(M.index+e,0,M.entries.length-1),r="POP",i=M.entries[t];l.confirmTransitionTo(i,r,n,function(e){e?f({action:r,location:i,index:t}):f()})}function E(){w(-1)}function S(){w(1)}function k(e){var t=M.index+e;return t>=0&&tu});var r=/[A-Z]/g,i=/^ms-/,a={};function o(e){return"-"+e.toLowerCase()}function s(e){if(a.hasOwnProperty(e))return a[e];var t=e.replace(r,o);return a[e]=i.test(t)?"-"+t:t}let u=s},80645(e,t){/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */ t.read=function(e,t,n,r,i){var a,o,s=8*i-r-1,u=(1<>1,l=-7,f=n?i-1:0,d=n?-1:1,h=e[t+f];for(f+=d,a=h&(1<<-l)-1,h>>=-l,l+=s;l>0;a=256*a+e[t+f],f+=d,l-=8);for(o=a&(1<<-l)-1,a>>=-l,l+=r;l>0;o=256*o+e[t+f],f+=d,l-=8);if(0===a)a=1-c;else{if(a===u)return o?NaN:(h?-1:1)*(1/0);o+=Math.pow(2,r),a-=c}return(h?-1:1)*o*Math.pow(2,a-r)},t.write=function(e,t,n,r,i,a){var o,s,u,c=8*a-i-1,l=(1<>1,d=23===i?5960464477539062e-23:0,h=r?0:a-1,p=r?1:-1,b=t<0||0===t&&1/t<0?1:0;for(isNaN(t=Math.abs(t))||t===1/0?(s=isNaN(t)?1:0,o=l):(o=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-o))<1&&(o--,u*=2),o+f>=1?t+=d/u:t+=d*Math.pow(2,1-f),t*u>=2&&(o++,u/=2),o+f>=l?(s=0,o=l):o+f>=1?(s=(t*u-1)*Math.pow(2,i),o+=f):(s=t*Math.pow(2,f-1)*Math.pow(2,i),o=0));i>=8;e[n+h]=255&s,h+=p,s/=256,i-=8);for(o=o<0;e[n+h]=255&o,h+=p,o/=256,c-=8);e[n+h-p]|=128*b}},35717(e){"function"==typeof Object.create?e.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:e.exports=function(e,t){if(t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}}},46260(e){"use strict";function t(e){var t="string"==typeof e?e.charCodeAt(0):e;return t>=97&&t<=122||t>=65&&t<=90}e.exports=t},7961(e,t,n){"use strict";var r=n(46260),i=n(46195);function a(e){return r(e)||i(e)}e.exports=a},46195(e){"use strict";function t(e){var t="string"==typeof e?e.charCodeAt(0):e;return t>=48&&t<=57}e.exports=t},79480(e){"use strict";function t(e){var t="string"==typeof e?e.charCodeAt(0):e;return t>=97&&t<=102||t>=65&&t<=70||t>=48&&t<=57}e.exports=t},33827(e,t,n){"use strict";n.r(t),n.d(t,{default:()=>a,isBrowser:()=>i});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=("undefined"==typeof window?"undefined":r(window))==="object"&&("undefined"==typeof document?"undefined":r(document))==="object"&&9===document.nodeType;let a=i},5826(e){e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},47798(e){"use strict";/*! + */ t.Q=s,n=u;var n,r=decodeURIComponent,i=encodeURIComponent,a=/; */,o=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/;function s(e,t){if("string"!=typeof e)throw TypeError("argument str must be a string");for(var n={},i=t||{},o=e.split(a),s=i.decode||r,u=0;u>8&255]},F=function(e){return[255&e,e>>8&255,e>>16&255,e>>24&255]},Y=function(e){return e[3]<<24|e[2]<<16|e[1]<<8|e[0]},B=function(e){return N(e,23,4)},U=function(e){return N(e,52,8)},H=function(e,t){g(e[x],t,{get:function(){return _(this)[t]}})},$=function(e,t,n,r){var i=d(n),a=_(e);if(i+t>a.byteLength)throw D(M);var o=_(a.buffer).bytes,s=i+a.byteOffset,u=o.slice(s,s+t);return r?u:u.reverse()},z=function(e,t,n,r,i,a){var o=d(n),s=_(e);if(o+t>s.byteLength)throw D(M);for(var u=_(s.buffer).bytes,c=o+s.byteOffset,l=r(+i),f=0;fV;)(G=K[V++])in A||o(A,G,O[G]);W.constructor=A}b&&p(C)!==I&&b(C,I);var q=new L(new A(2)),Z=C.setInt8;q.setInt8(0,2147483648),q.setInt8(1,2147483649),(q.getInt8(0)||!q.getInt8(1))&&s(C,{setInt8:function(e,t){Z.call(this,e,t<<24>>24)},setUint8:function(e,t){Z.call(this,e,t<<24>>24)}},{unsafe:!0})}else A=function(e){c(this,A,S);var t=d(e);E(this,{bytes:v.call(Array(t),0),byteLength:t}),i||(this.byteLength=t)},L=function(e,t,n){c(this,L,k),c(e,A,k);var r=_(e).byteLength,a=l(t);if(a<0||a>r)throw D("Wrong offset");if(n=void 0===n?r-a:f(n),a+n>r)throw D(T);E(this,{buffer:e,byteLength:n,byteOffset:a}),i||(this.buffer=e,this.byteLength=n,this.byteOffset=a)},i&&(H(A,"byteLength"),H(L,"buffer"),H(L,"byteLength"),H(L,"byteOffset")),s(L[x],{getInt8:function(e){return $(this,1,e)[0]<<24>>24},getUint8:function(e){return $(this,1,e)[0]},getInt16:function(e){var t=$(this,2,e,arguments.length>1?arguments[1]:void 0);return(t[1]<<8|t[0])<<16>>16},getUint16:function(e){var t=$(this,2,e,arguments.length>1?arguments[1]:void 0);return t[1]<<8|t[0]},getInt32:function(e){return Y($(this,4,e,arguments.length>1?arguments[1]:void 0))},getUint32:function(e){return Y($(this,4,e,arguments.length>1?arguments[1]:void 0))>>>0},getFloat32:function(e){return P($(this,4,e,arguments.length>1?arguments[1]:void 0),23)},getFloat64:function(e){return P($(this,8,e,arguments.length>1?arguments[1]:void 0),52)},setInt8:function(e,t){z(this,1,e,R,t)},setUint8:function(e,t){z(this,1,e,R,t)},setInt16:function(e,t){z(this,2,e,j,t,arguments.length>2?arguments[2]:void 0)},setUint16:function(e,t){z(this,2,e,j,t,arguments.length>2?arguments[2]:void 0)},setInt32:function(e,t){z(this,4,e,F,t,arguments.length>2?arguments[2]:void 0)},setUint32:function(e,t){z(this,4,e,F,t,arguments.length>2?arguments[2]:void 0)},setFloat32:function(e,t){z(this,4,e,B,t,arguments.length>2?arguments[2]:void 0)},setFloat64:function(e,t){z(this,8,e,U,t,arguments.length>2?arguments[2]:void 0)}});y(A,S),y(L,k),e.exports={ArrayBuffer:A,DataView:L}},1048(e,t,n){"use strict";var r=n(47908),i=n(51400),a=n(17466),o=Math.min;e.exports=[].copyWithin||function(e,t){var n=r(this),s=a(n.length),u=i(e,s),c=i(t,s),l=arguments.length>2?arguments[2]:void 0,f=o((void 0===l?s:i(l,s))-c,s-u),d=1;for(c0;)c in n?n[u]=n[c]:delete n[u],u+=d,c+=d;return n}},21285(e,t,n){"use strict";var r=n(47908),i=n(51400),a=n(17466);e.exports=function(e){for(var t=r(this),n=a(t.length),o=arguments.length,s=i(o>1?arguments[1]:void 0,n),u=o>2?arguments[2]:void 0,c=void 0===u?n:i(u,n);c>s;)t[s++]=e;return t}},18533(e,t,n){"use strict";var r=n(42092).forEach,i=n(9341)("forEach");e.exports=i?[].forEach:function(e){return r(this,e,arguments.length>1?arguments[1]:void 0)}},97745(e){e.exports=function(e,t){for(var n=0,r=t.length,i=new e(r);r>n;)i[n]=t[n++];return i}},48457(e,t,n){"use strict";var r=n(49974),i=n(47908),a=n(53411),o=n(97659),s=n(17466),u=n(86135),c=n(18554),l=n(71246);e.exports=function(e){var t,n,f,d,h,p,b=i(e),m="function"==typeof this?this:Array,g=arguments.length,v=g>1?arguments[1]:void 0,y=void 0!==v,w=l(b),_=0;if(y&&(v=r(v,g>2?arguments[2]:void 0,2)),void 0==w||m==Array&&o(w))for(t=s(b.length),n=new m(t);t>_;_++)p=y?v(b[_],_):b[_],u(n,_,p);else for(h=(d=c(b,w)).next,n=new m;!(f=h.call(d)).done;_++)p=y?a(d,v,[f.value,_],!0):f.value,u(n,_,p);return n.length=_,n}},61386(e,t,n){var r=n(49974),i=n(68361),a=n(47908),o=n(17466),s=n(34948),u=n(70030),c=n(97745),l=[].push;e.exports=function(e,t,n,f){for(var d,h,p,b=a(e),m=i(b),g=r(t,n,3),v=u(null),y=o(m.length),w=0;y>w;w++)(h=s(g(p=m[w],w,b)))in v?l.call(v[h],p):v[h]=[p];if(f&&(d=f(b))!==Array)for(h in v)v[h]=c(d,v[h]);return v}},41318(e,t,n){var r=n(45656),i=n(17466),a=n(51400),o=function(e){return function(t,n,o){var s,u=r(t),c=i(u.length),l=a(o,c);if(e&&n!=n){for(;c>l;)if((s=u[l++])!=s)return!0}else for(;c>l;l++)if((e||l in u)&&u[l]===n)return e||l||0;return!e&&-1}};e.exports={includes:o(!0),indexOf:o(!1)}},9671(e,t,n){var r=n(49974),i=n(68361),a=n(47908),o=n(17466),s=function(e){var t=1==e;return function(n,s,u){for(var c,l,f=a(n),d=i(f),h=r(s,u,3),p=o(d.length);p-- >0;)if(l=h(c=d[p],p,f))switch(e){case 0:return c;case 1:return p}return t?-1:void 0}};e.exports={findLast:s(0),findLastIndex:s(1)}},42092(e,t,n){var r=n(49974),i=n(68361),a=n(47908),o=n(17466),s=n(65417),u=[].push,c=function(e){var t=1==e,n=2==e,c=3==e,l=4==e,f=6==e,d=7==e,h=5==e||f;return function(p,b,m,g){for(var v,y,w=a(p),_=i(w),E=r(b,m,3),S=o(_.length),k=0,x=g||s,T=t?x(p,S):n||d?x(p,0):void 0;S>k;k++)if((h||k in _)&&(y=E(v=_[k],k,w),e)){if(t)T[k]=y;else if(y)switch(e){case 3:return!0;case 5:return v;case 6:return k;case 2:u.call(T,v)}else switch(e){case 4:return!1;case 7:u.call(T,v)}}return f?-1:c||l?l:T}};e.exports={forEach:c(0),map:c(1),filter:c(2),some:c(3),every:c(4),find:c(5),findIndex:c(6),filterReject:c(7)}},86583(e,t,n){"use strict";var r=n(45656),i=n(99958),a=n(17466),o=n(9341),s=Math.min,u=[].lastIndexOf,c=!!u&&1/[1].lastIndexOf(1,-0)<0,l=o("lastIndexOf"),f=c||!l;e.exports=f?function(e){if(c)return u.apply(this,arguments)||0;var t=r(this),n=a(t.length),o=n-1;for(arguments.length>1&&(o=s(o,i(arguments[1]))),o<0&&(o=n+o);o>=0;o--)if(o in t&&t[o]===e)return o||0;return -1}:u},81194(e,t,n){var r=n(47293),i=n(5112),a=n(7392),o=i("species");e.exports=function(e){return a>=51||!r(function(){var t=[];return(t.constructor={})[o]=function(){return{foo:1}},1!==t[e](Boolean).foo})}},9341(e,t,n){"use strict";var r=n(47293);e.exports=function(e,t){var n=[][e];return!!n&&r(function(){n.call(null,t||function(){throw 1},1)})}},53671(e,t,n){var r=n(13099),i=n(47908),a=n(68361),o=n(17466),s=function(e){return function(t,n,s,u){r(n);var c=i(t),l=a(c),f=o(c.length),d=e?f-1:0,h=e?-1:1;if(s<2)for(;;){if(d in l){u=l[d],d+=h;break}if(d+=h,e?d<0:f<=d)throw TypeError("Reduce of empty array with no initial value")}for(;e?d>=0:f>d;d+=h)d in l&&(u=n(u,l[d],d,c));return u}};e.exports={left:s(!1),right:s(!0)}},94362(e){var t=Math.floor,n=function(e,a){var o=e.length,s=t(o/2);return o<8?r(e,a):i(n(e.slice(0,s),a),n(e.slice(s),a),a)},r=function(e,t){for(var n,r,i=e.length,a=1;a0;)e[r]=e[--r];r!==a++&&(e[r]=n)}return e},i=function(e,t,n){for(var r=e.length,i=t.length,a=0,o=0,s=[];a=n(e[a],t[o])?e[a++]:t[o++]):s.push(a1?arguments[1]:void 0;return(r(this),(t=void 0!==c)&&r(c),void 0==e)?new this:(n=[],t?(o=0,s=i(c,u>2?arguments[2]:void 0,2),a(e,function(e){n.push(s(e,o++))})):a(e,n.push,{that:n}),new this(n))}},82044(e){"use strict";e.exports=function(){for(var e=arguments.length,t=Array(e);e--;)t[e]=arguments[e];return new this(t)}},95631(e,t,n){"use strict";var r=n(3070).f,i=n(70030),a=n(12248),o=n(49974),s=n(25787),u=n(20408),c=n(70654),l=n(96340),f=n(19781),d=n(62423).fastKey,h=n(29909),p=h.set,b=h.getterFor;e.exports={getConstructor:function(e,t,n,c){var l=e(function(e,r){s(e,l,t),p(e,{type:t,index:i(null),first:void 0,last:void 0,size:0}),f||(e.size=0),void 0!=r&&u(r,e[c],{that:e,AS_ENTRIES:n})}),h=b(t),m=function(e,t,n){var r,i,a=h(e),o=g(e,t);return o?o.value=n:(a.last=o={index:i=d(t,!0),key:t,value:n,previous:r=a.last,next:void 0,removed:!1},a.first||(a.first=o),r&&(r.next=o),f?a.size++:e.size++,"F"!==i&&(a.index[i]=o)),e},g=function(e,t){var n,r=h(e),i=d(t);if("F"!==i)return r.index[i];for(n=r.first;n;n=n.next)if(n.key==t)return n};return a(l.prototype,{clear:function(){for(var e=this,t=h(e),n=t.index,r=t.first;r;)r.removed=!0,r.previous&&(r.previous=r.previous.next=void 0),delete n[r.index],r=r.next;t.first=t.last=void 0,f?t.size=0:e.size=0},delete:function(e){var t=this,n=h(t),r=g(t,e);if(r){var i=r.next,a=r.previous;delete n.index[r.index],r.removed=!0,a&&(a.next=i),i&&(i.previous=a),n.first==r&&(n.first=i),n.last==r&&(n.last=a),f?n.size--:t.size--}return!!r},forEach:function(e){for(var t,n=h(this),r=o(e,arguments.length>1?arguments[1]:void 0,3);t=t?t.next:n.first;)for(r(t.value,t.key,this);t&&t.removed;)t=t.previous},has:function(e){return!!g(this,e)}}),a(l.prototype,n?{get:function(e){var t=g(this,e);return t&&t.value},set:function(e,t){return m(this,0===e?0:e,t)}}:{add:function(e){return m(this,e=0===e?0:e,e)}}),f&&r(l.prototype,"size",{get:function(){return h(this).size}}),l},setStrong:function(e,t,n){var r=t+" Iterator",i=b(t),a=b(r);c(e,t,function(e,t){p(this,{type:r,target:e,state:i(e),kind:t,last:void 0})},function(){for(var e=a(this),t=e.kind,n=e.last;n&&n.removed;)n=n.previous;return e.target&&(e.last=n=n?n.next:e.state.first)?"keys"==t?{value:n.key,done:!1}:"values"==t?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(e.target=void 0,{value:void 0,done:!0})},n?"entries":"values",!n,!0),l(t)}}},29320(e,t,n){"use strict";var r=n(12248),i=n(62423).getWeakData,a=n(19670),o=n(70111),s=n(25787),u=n(20408),c=n(42092),l=n(86656),f=n(29909),d=f.set,h=f.getterFor,p=c.find,b=c.findIndex,m=0,g=function(e){return e.frozen||(e.frozen=new v)},v=function(){this.entries=[]},y=function(e,t){return p(e.entries,function(e){return e[0]===t})};v.prototype={get:function(e){var t=y(this,e);if(t)return t[1]},has:function(e){return!!y(this,e)},set:function(e,t){var n=y(this,e);n?n[1]=t:this.entries.push([e,t])},delete:function(e){var t=b(this.entries,function(t){return t[0]===e});return~t&&this.entries.splice(t,1),!!~t}},e.exports={getConstructor:function(e,t,n,c){var f=e(function(e,r){s(e,f,t),d(e,{type:t,id:m++,frozen:void 0}),void 0!=r&&u(r,e[c],{that:e,AS_ENTRIES:n})}),p=h(t),b=function(e,t,n){var r=p(e),o=i(a(t),!0);return!0===o?g(r).set(t,n):o[r.id]=n,e};return r(f.prototype,{delete:function(e){var t=p(this);if(!o(e))return!1;var n=i(e);return!0===n?g(t).delete(e):n&&l(n,t.id)&&delete n[t.id]},has:function(e){var t=p(this);if(!o(e))return!1;var n=i(e);return!0===n?g(t).has(e):n&&l(n,t.id)}}),r(f.prototype,n?{get:function(e){var t=p(this);if(o(e)){var n=i(e);return!0===n?g(t).get(e):n?n[t.id]:void 0}},set:function(e,t){return b(this,e,t)}}:{add:function(e){return b(this,e,!0)}}),f}}},77710(e,t,n){"use strict";var r=n(82109),i=n(17854),a=n(54705),o=n(31320),s=n(62423),u=n(20408),c=n(25787),l=n(70111),f=n(47293),d=n(17072),h=n(58003),p=n(79587);e.exports=function(e,t,n){var b=-1!==e.indexOf("Map"),m=-1!==e.indexOf("Weak"),g=b?"set":"add",v=i[e],y=v&&v.prototype,w=v,_={},E=function(e){var t=y[e];o(y,e,"add"==e?function(e){return t.call(this,0===e?0:e),this}:"delete"==e?function(e){return(!m||!!l(e))&&t.call(this,0===e?0:e)}:"get"==e?function(e){return m&&!l(e)?void 0:t.call(this,0===e?0:e)}:"has"==e?function(e){return(!m||!!l(e))&&t.call(this,0===e?0:e)}:function(e,n){return t.call(this,0===e?0:e,n),this})};if(a(e,"function"!=typeof v||!(m||y.forEach&&!f(function(){new v().entries().next()}))))w=n.getConstructor(t,e,b,g),s.enable();else if(a(e,!0)){var S=new w,k=S[g](m?{}:-0,1)!=S,x=f(function(){S.has(1)}),T=d(function(e){new v(e)}),M=!m&&f(function(){for(var e=new v,t=5;t--;)e[g](t,t);return!e.has(-0)});T||((w=t(function(t,n){c(t,w,e);var r=p(new v,t,w);return void 0!=n&&u(n,r[g],{that:r,AS_ENTRIES:b}),r})).prototype=y,y.constructor=w),(x||M)&&(E("delete"),E("has"),b&&E("get")),(M||k)&&E(g),m&&y.clear&&delete y.clear}return _[e]=w,r({global:!0,forced:w!=v},_),h(w,e),m||n.setStrong(w,e,b),w}},10313(e,t,n){var r=n(51532),i=n(4129),a=n(70030),o=n(70111),s=function(){this.object=null,this.symbol=null,this.primitives=null,this.objectsByIndex=a(null)};s.prototype.get=function(e,t){return this[e]||(this[e]=t())},s.prototype.next=function(e,t,n){var a=n?this.objectsByIndex[e]||(this.objectsByIndex[e]=new i):this.primitives||(this.primitives=new r),o=a.get(t);return o||a.set(t,o=new s),o};var u=new s;e.exports=function(){var e,t,n=u,r=arguments.length;for(e=0;e"+s+""}},24994(e,t,n){"use strict";var r=n(13383).IteratorPrototype,i=n(70030),a=n(79114),o=n(58003),s=n(97497),u=function(){return this};e.exports=function(e,t,n){var c=t+" Iterator";return e.prototype=i(r,{next:a(1,n)}),o(e,c,!1,!0),s[c]=u,e}},68880(e,t,n){var r=n(19781),i=n(3070),a=n(79114);e.exports=r?function(e,t,n){return i.f(e,t,a(1,n))}:function(e,t,n){return e[t]=n,e}},79114(e){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},86135(e,t,n){"use strict";var r=n(34948),i=n(3070),a=n(79114);e.exports=function(e,t,n){var o=r(t);o in e?i.f(e,o,a(0,n)):e[o]=n}},85573(e,t,n){"use strict";var r=n(47293),i=n(76650).start,a=Math.abs,o=Date.prototype,s=o.getTime,u=o.toISOString;e.exports=r(function(){return"0385-07-25T07:06:39.999Z"!=u.call(new Date(-5e13-1))})||!r(function(){u.call(new Date(NaN))})?function(){if(!isFinite(s.call(this)))throw RangeError("Invalid time value");var e=this,t=e.getUTCFullYear(),n=e.getUTCMilliseconds(),r=t<0?"-":t>9999?"+":"";return r+i(a(t),r?6:4,0)+"-"+i(e.getUTCMonth()+1,2,0)+"-"+i(e.getUTCDate(),2,0)+"T"+i(e.getUTCHours(),2,0)+":"+i(e.getUTCMinutes(),2,0)+":"+i(e.getUTCSeconds(),2,0)+"."+i(n,3,0)+"Z"}:u},38709(e,t,n){"use strict";var r=n(19670),i=n(92140);e.exports=function(e){if(r(this),"string"===e||"default"===e)e="string";else if("number"!==e)throw TypeError("Incorrect hint");return i(this,e)}},70654(e,t,n){"use strict";var r=n(82109),i=n(24994),a=n(79518),o=n(27674),s=n(58003),u=n(68880),c=n(31320),l=n(5112),f=n(31913),d=n(97497),h=n(13383),p=h.IteratorPrototype,b=h.BUGGY_SAFARI_ITERATORS,m=l("iterator"),g="keys",v="values",y="entries",w=function(){return this};e.exports=function(e,t,n,l,h,_,E){i(n,t,l);var S,k,x,T=function(e){if(e===h&&C)return C;if(!b&&e in A)return A[e];switch(e){case g:case v:case y:return function(){return new n(this,e)}}return function(){return new n(this)}},M=t+" Iterator",O=!1,A=e.prototype,L=A[m]||A["@@iterator"]||h&&A[h],C=!b&&L||T(h),I="Array"==t&&A.entries||L;if(I&&(S=a(I.call(new e)),p!==Object.prototype&&S.next&&(f||a(S)===p||(o?o(S,p):"function"!=typeof S[m]&&u(S,m,w)),s(S,M,!0,!0),f&&(d[M]=w))),h==v&&L&&L.name!==v&&(O=!0,C=function(){return L.call(this)}),(!f||E)&&A[m]!==C&&u(A,m,C),d[t]=C,h){if(k={values:T(v),keys:_?C:T(g),entries:T(y)},E)for(x in k)!b&&!O&&x in A||c(A,x,k[x]);else r({target:t,proto:!0,forced:b||O},k)}return k}},97235(e,t,n){var r=n(40857),i=n(86656),a=n(6061),o=n(3070).f;e.exports=function(e){var t=r.Symbol||(r.Symbol={});i(t,e)||o(t,e,{value:a.f(e)})}},19781(e,t,n){var r=n(47293);e.exports=!r(function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})},80317(e,t,n){var r=n(17854),i=n(70111),a=r.document,o=i(a)&&i(a.createElement);e.exports=function(e){return o?a.createElement(e):{}}},48324(e){e.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},68886(e,t,n){var r=n(88113).match(/firefox\/(\d+)/i);e.exports=!!r&&+r[1]},7871(e){e.exports="object"==typeof window},30256(e,t,n){var r=n(88113);e.exports=/MSIE|Trident/.test(r)},71528(e,t,n){var r=n(88113),i=n(17854);e.exports=/ipad|iphone|ipod/i.test(r)&&void 0!==i.Pebble},6833(e,t,n){var r=n(88113);e.exports=/(?:ipad|iphone|ipod).*applewebkit/i.test(r)},35268(e,t,n){var r=n(84326),i=n(17854);e.exports="process"==r(i.process)},71036(e,t,n){var r=n(88113);e.exports=/web0s(?!.*chrome)/i.test(r)},88113(e,t,n){var r=n(35005);e.exports=r("navigator","userAgent")||""},7392(e,t,n){var r,i,a=n(17854),o=n(88113),s=a.process,u=a.Deno,c=s&&s.versions||u&&u.version,l=c&&c.v8;l?i=(r=l.split("."))[0]<4?1:r[0]+r[1]:o&&(!(r=o.match(/Edge\/(\d+)/))||r[1]>=74)&&(r=o.match(/Chrome\/(\d+)/))&&(i=r[1]),e.exports=i&&+i},98008(e,t,n){var r=n(88113).match(/AppleWebKit\/(\d+)\./);e.exports=!!r&&+r[1]},80748(e){e.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},82109(e,t,n){var r=n(17854),i=n(31236).f,a=n(68880),o=n(31320),s=n(83505),u=n(99920),c=n(54705);e.exports=function(e,t){var n,l,f,d,h,p,b=e.target,m=e.global,g=e.stat;if(l=m?r:g?r[b]||s(b,{}):(r[b]||{}).prototype)for(f in t){if(h=t[f],d=e.noTargetGet?(p=i(l,f))&&p.value:l[f],!(n=c(m?f:b+(g?".":"#")+f,e.forced))&&void 0!==d){if(typeof h==typeof d)continue;u(h,d)}(e.sham||d&&d.sham)&&a(h,"sham",!0),o(l,f,h,e)}}},47293(e){e.exports=function(e){try{return!!e()}catch(t){return!0}}},27007(e,t,n){"use strict";n(74916);var r=n(31320),i=n(22261),a=n(47293),o=n(5112),s=n(68880),u=o("species"),c=RegExp.prototype;e.exports=function(e,t,n,l){var f=o(e),d=!a(function(){var t={};return t[f]=function(){return 7},7!=""[e](t)}),h=d&&!a(function(){var t=!1,n=/a/;return"split"===e&&((n={}).constructor={},n.constructor[u]=function(){return n},n.flags="",n[f]=/./[f]),n.exec=function(){return t=!0,null},n[f](""),!t});if(!d||!h||n){var p=/./[f],b=t(f,""[e],function(e,t,n,r,a){var o=t.exec;return o===i||o===c.exec?d&&!a?{done:!0,value:p.call(t,n,r)}:{done:!0,value:e.call(n,t,r)}:{done:!1}});r(String.prototype,e,b[0]),r(c,f,b[1])}l&&s(c[f],"sham",!0)}},6790(e,t,n){"use strict";var r=n(43157),i=n(17466),a=n(49974),o=function(e,t,n,s,u,c,l,f){for(var d,h=u,p=0,b=!!l&&a(l,f,3);p0&&r(d))h=o(e,t,d,i(d.length),h,c-1)-1;else{if(h>=9007199254740991)throw TypeError("Exceed the acceptable array length");e[h]=d}h++}p++}return h};e.exports=o},76677(e,t,n){var r=n(47293);e.exports=!r(function(){return Object.isExtensible(Object.preventExtensions({}))})},49974(e,t,n){var r=n(13099);e.exports=function(e,t,n){if(r(e),void 0===t)return e;switch(n){case 0:return function(){return e.call(t)};case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,i){return e.call(t,n,r,i)}}return function(){return e.apply(t,arguments)}}},27065(e,t,n){"use strict";var r=n(13099),i=n(70111),a=[].slice,o={},s=function(e,t,n){if(!(t in o)){for(var r=[],i=0;i]*>)/g,s=/\$([$&'`]|\d{1,2})/g;e.exports=function(e,t,n,u,c,l){var f=n+e.length,d=u.length,h=s;return void 0!==c&&(c=r(c),h=o),a.call(l,h,function(r,a){var o;switch(a.charAt(0)){case"$":return"$";case"&":return e;case"`":return t.slice(0,n);case"'":return t.slice(f);case"<":o=c[a.slice(1,-1)];break;default:var s=+a;if(0===s)return r;if(s>d){var l=i(s/10);if(0===l)return r;if(l<=d)return void 0===u[l-1]?a.charAt(1):u[l-1]+a.charAt(1);return r}o=u[s-1]}return void 0===o?"":o})}},17854(e,t,n){var r=function(e){return e&&e.Math==Math&&e};e.exports=r("object"==typeof globalThis&&globalThis)||r("object"==typeof window&&window)||r("object"==typeof self&&self)||r("object"==typeof n.g&&n.g)||function(){return this}()||Function("return this")()},86656(e,t,n){var r=n(47908),i={}.hasOwnProperty;e.exports=Object.hasOwn||function(e,t){return i.call(r(e),t)}},3501(e){e.exports={}},842(e,t,n){var r=n(17854);e.exports=function(e,t){var n=r.console;n&&n.error&&(1===arguments.length?n.error(e):n.error(e,t))}},60490(e,t,n){var r=n(35005);e.exports=r("document","documentElement")},64664(e,t,n){var r=n(19781),i=n(47293),a=n(80317);e.exports=!r&&!i(function(){return 7!=Object.defineProperty(a("div"),"a",{get:function(){return 7}}).a})},11179(e){var t=Math.abs,n=Math.pow,r=Math.floor,i=Math.log,a=Math.LN2,o=function(e,o,s){var u,c,l,f=Array(s),d=8*s-o-1,h=(1<>1,b=23===o?n(2,-24)-n(2,-77):0,m=e<0||0===e&&1/e<0?1:0,g=0;for((e=t(e))!=e||e===1/0?(c=e!=e?1:0,u=h):(u=r(i(e)/a),e*(l=n(2,-u))<1&&(u--,l*=2),u+p>=1?e+=b/l:e+=b*n(2,1-p),e*l>=2&&(u++,l/=2),u+p>=h?(c=0,u=h):u+p>=1?(c=(e*l-1)*n(2,o),u+=p):(c=e*n(2,p-1)*n(2,o),u=0));o>=8;f[g++]=255&c,c/=256,o-=8);for(u=u<0;f[g++]=255&u,u/=256,d-=8);return f[--g]|=128*m,f},s=function(e,t){var r,i=e.length,a=8*i-t-1,o=(1<>1,u=a-7,c=i-1,l=e[c--],f=127&l;for(l>>=7;u>0;f=256*f+e[c],c--,u-=8);for(r=f&(1<<-u)-1,f>>=-u,u+=t;u>0;r=256*r+e[c],c--,u-=8);if(0===f)f=1-s;else{if(f===o)return r?NaN:l?-1/0:1/0;r+=n(2,t),f-=s}return(l?-1:1)*r*n(2,f-t)};e.exports={pack:o,unpack:s}},68361(e,t,n){var r=n(47293),i=n(84326),a="".split;e.exports=r(function(){return!Object("z").propertyIsEnumerable(0)})?function(e){return"String"==i(e)?a.call(e,""):Object(e)}:Object},79587(e,t,n){var r=n(70111),i=n(27674);e.exports=function(e,t,n){var a,o;return i&&"function"==typeof(a=t.constructor)&&a!==n&&r(o=a.prototype)&&o!==n.prototype&&i(e,o),e}},42788(e,t,n){var r=n(5465),i=Function.toString;"function"!=typeof r.inspectSource&&(r.inspectSource=function(e){return i.call(e)}),e.exports=r.inspectSource},62423(e,t,n){var r=n(82109),i=n(3501),a=n(70111),o=n(86656),s=n(3070).f,u=n(8006),c=n(1156),l=n(69711),f=n(76677),d=!1,h=l("meta"),p=0,b=Object.isExtensible||function(){return!0},m=function(e){s(e,h,{value:{objectID:"O"+p++,weakData:{}}})},g=function(e,t){if(!a(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!o(e,h)){if(!b(e))return"F";if(!t)return"E";m(e)}return e[h].objectID},v=function(e,t){if(!o(e,h)){if(!b(e))return!0;if(!t)return!1;m(e)}return e[h].weakData},y=function(e){return f&&d&&b(e)&&!o(e,h)&&m(e),e},w=function(){_.enable=function(){},d=!0;var e=u.f,t=[].splice,n={};n[h]=1,e(n).length&&(u.f=function(n){for(var r=e(n),i=0,a=r.length;ih;h++)if((b=k(e[h]))&&b instanceof l)return b;return new l(!1)}f=s(e,d)}for(m=f.next;!(g=m.call(f)).done;){try{b=k(g.value)}catch(x){c(f,"throw",x)}if("object"==typeof b&&b&&b instanceof l)return b}return new l(!1)}},99212(e,t,n){var r=n(19670);e.exports=function(e,t,n){var i,a;r(e);try{if(void 0===(i=e.return)){if("throw"===t)throw n;return n}i=i.call(e)}catch(o){a=!0,i=o}if("throw"===t)throw n;if(a)throw i;return r(i),n}},54956(e,t,n){"use strict";var r=n(40857),i=n(13099),a=n(19670),o=n(70030),s=n(68880),u=n(12248),c=n(5112),l=n(29909),f=l.set,d=l.get,h=c("toStringTag");e.exports=function(e,t){var n=function(e){e.next=i(e.iterator.next),e.done=!1,e.ignoreArg=!t,f(this,e)};return n.prototype=u(o(r.Iterator.prototype),{next:function(n){var r=d(this),i=arguments.length?[r.ignoreArg?void 0:n]:t?[]:[void 0];r.ignoreArg=!1;var a=r.done?void 0:e.call(r,i);return{done:r.done,value:a}},return:function(e){var t=d(this).iterator;t.done=!0;var n=t.return;return{done:!0,value:void 0===n?e:a(n.call(t,e)).value}},throw:function(e){var t=d(this).iterator;t.done=!0;var n=t.throw;if(void 0===n)throw e;return n.call(t,e)}}),t||s(n.prototype,h,"Generator"),n}},13383(e,t,n){"use strict";var r,i,a,o=n(47293),s=n(79518),u=n(68880),c=n(86656),l=n(5112),f=n(31913),d=l("iterator"),h=!1,p=function(){return this};[].keys&&("next"in(a=[].keys())?(i=s(s(a)))!==Object.prototype&&(r=i):h=!0);var b=void 0==r||o(function(){var e={};return r[d].call(e)!==e});b&&(r={}),f&&!b||c(r,d)||u(r,d,p),e.exports={IteratorPrototype:r,BUGGY_SAFARI_ITERATORS:h}},97497(e){e.exports={}},37502(e,t,n){"use strict";var r=n(19670);e.exports=function(e,t){var n=r(this),i=n.has(e)&&"update"in t?t.update(n.get(e),e,n):t.insert(e,n);return n.set(e,i),i}},8154(e,t,n){"use strict";var r=n(19670);e.exports=function(e,t){var n,i=r(this),a=arguments.length>2?arguments[2]:void 0;if("function"!=typeof t&&"function"!=typeof a)throw TypeError("At least one callback required");return i.has(e)?(n=i.get(e),"function"==typeof t&&(n=t(n),i.set(e,n))):"function"==typeof a&&(n=a(),i.set(e,n)),n}},66736(e){var t=Math.expm1,n=Math.exp;e.exports=!t||t(10)>22025.465794806718||22025.465794806718>t(10)||-.00000000000000002!=t(-.00000000000000002)?function(e){return 0==(e=+e)?e:e>-.000001&&e<1e-6?e+e*e/2:n(e)-1}:t},26130(e,t,n){var r=n(64310),i=Math.abs,a=Math.pow,o=a(2,-52),s=a(2,-23),u=a(2,127)*(2-s),c=a(2,-126),l=function(e){return e+1/o-1/o};e.exports=Math.fround||function(e){var t,n,a=i(e),f=r(e);return au||n!=n?f*(1/0):f*n}},26513(e){var t=Math.log;e.exports=Math.log1p||function(e){return(e=+e)>-.00000001&&e<1e-8?e-e*e/2:t(1+e)}},47103(e){e.exports=Math.scale||function(e,t,n,r,i){return 0===arguments.length||e!=e||t!=t||n!=n||r!=r||i!=i?NaN:e===1/0||e===-1/0?e:(e-t)*(i-r)/(n-t)+r}},64310(e){e.exports=Math.sign||function(e){return 0==(e=+e)||e!=e?e:e<0?-1:1}},95948(e,t,n){var r,i,a,o,s,u,c,l,f=n(17854),d=n(31236).f,h=n(20261).set,p=n(6833),b=n(71528),m=n(71036),g=n(35268),v=f.MutationObserver||f.WebKitMutationObserver,y=f.document,w=f.process,_=f.Promise,E=d(f,"queueMicrotask"),S=E&&E.value;S||(r=function(){var e,t;for(g&&(e=w.domain)&&e.exit();i;){t=i.fn,i=i.next;try{t()}catch(n){throw i?o():a=void 0,n}}a=void 0,e&&e.enter()},p||g||m||!v||!y?!b&&_&&_.resolve?((c=_.resolve(void 0)).constructor=_,l=c.then,o=function(){l.call(c,r)}):o=g?function(){w.nextTick(r)}:function(){h.call(f,r)}:(s=!0,u=y.createTextNode(""),new v(r).observe(u,{characterData:!0}),o=function(){u.data=s=!s})),e.exports=S||function(e){var t={fn:e,next:void 0};a&&(a.next=t),i||(i=t,o()),a=t}},13366(e,t,n){var r=n(17854);e.exports=r.Promise},30133(e,t,n){var r=n(7392),i=n(47293);e.exports=!!Object.getOwnPropertySymbols&&!i(function(){var e=Symbol();return!String(e)||!(Object(e) instanceof Symbol)||!Symbol.sham&&r&&r<41})},590(e,t,n){var r=n(47293),i=n(5112),a=n(31913),o=i("iterator");e.exports=!r(function(){var e=new URL("b?a=1&b=2&c=3","http://a"),t=e.searchParams,n="";return e.pathname="c%20d",t.forEach(function(e,r){t.delete("b"),n+=r+e}),a&&!e.toJSON||!t.sort||"http://a/c%20d?a=1&c=3"!==e.href||"3"!==t.get("c")||"a=1"!==String(new URLSearchParams("?a=1"))||!t[o]||"a"!==new URL("https://a@b").username||"b"!==new URLSearchParams(new URLSearchParams("a=b")).get("a")||"xn--e1aybc"!==new URL("http://тест").host||"#%D0%B1"!==new URL("http://a#б").hash||"a1c3"!==n||"x"!==new URL("http://x",void 0).host})},68536(e,t,n){var r=n(17854),i=n(42788),a=r.WeakMap;e.exports="function"==typeof a&&/native code/.test(i(a))},78523(e,t,n){"use strict";var r=n(13099),i=function(e){var t,n;this.promise=new e(function(e,r){if(void 0!==t||void 0!==n)throw TypeError("Bad Promise constructor");t=e,n=r}),this.resolve=r(t),this.reject=r(n)};e.exports.f=function(e){return new i(e)}},3929(e,t,n){var r=n(47850);e.exports=function(e){if(r(e))throw TypeError("The method doesn't accept regular expressions");return e}},77023(e,t,n){var r=n(17854).isFinite;e.exports=Number.isFinite||function(e){return"number"==typeof e&&r(e)}},2814(e,t,n){var r=n(17854),i=n(41340),a=n(53111).trim,o=n(81361),s=r.parseFloat,u=1/s(o+"-0")!=-1/0;e.exports=u?function(e){var t=a(i(e)),n=s(t);return 0===n&&"-"==t.charAt(0)?-0:n}:s},83009(e,t,n){var r=n(17854),i=n(41340),a=n(53111).trim,o=n(81361),s=r.parseInt,u=/^[+-]?0[Xx]/,c=8!==s(o+"08")||22!==s(o+"0x16");e.exports=c?function(e,t){var n=a(i(e));return s(n,t>>>0||(u.test(n)?16:10))}:s},80430(e,t,n){"use strict";var r=n(29909),i=n(24994),a=n(70111),o=n(36048),s=n(19781),u="Incorrect Number.range arguments",c="NumericRangeIterator",l=r.set,f=r.getterFor(c),d=i(function(e,t,n,r,i,o){if(typeof e!=r||t!==1/0&&t!==-1/0&&typeof t!=r)throw TypeError(u);if(e===1/0||e===-1/0)throw RangeError(u);var f,d=t>e,h=!1;if(void 0===n)f=void 0;else if(a(n))f=n.step,h=!!n.inclusive;else if(typeof n==r)f=n;else throw TypeError(u);if(null==f&&(f=d?o:-o),typeof f!=r)throw TypeError(u);if(f===1/0||f===-1/0||f===i&&e!==t)throw RangeError(u);var p=e!=e||t!=t||f!=f||t>e!=f>i;l(this,{type:c,start:e,end:t,step:f,inclusiveEnd:h,hitsEnd:p,currentCount:i,zero:i}),s||(this.start=e,this.end=t,this.step=f,this.inclusive=h)},c,function(){var e,t=f(this);if(t.hitsEnd)return{value:void 0,done:!0};var n=t.start,r=t.end,i=n+t.step*t.currentCount++;i===r&&(t.hitsEnd=!0);var a=t.inclusiveEnd;return(e=r>n?a?i>r:i>=r:a?r>i:r>=i)?{value:void 0,done:t.hitsEnd=!0}:{value:i,done:!1}}),h=function(e){return{get:e,set:function(){},configurable:!0,enumerable:!1}};s&&o(d.prototype,{start:h(function(){return f(this).start}),end:h(function(){return f(this).end}),inclusive:h(function(){return f(this).inclusiveEnd}),step:h(function(){return f(this).step})}),e.exports=d},21574(e,t,n){"use strict";var r=n(19781),i=n(47293),a=n(81956),o=n(25181),s=n(55296),u=n(47908),c=n(68361),l=Object.assign,f=Object.defineProperty;e.exports=!l||i(function(){if(r&&1!==l({b:1},l(f({},"a",{enumerable:!0,get:function(){f(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var e={},t={},n=Symbol(),i="abcdefghijklmnopqrst";return e[n]=7,i.split("").forEach(function(e){t[e]=e}),7!=l({},e)[n]||a(l({},t)).join("")!=i})?function(e,t){for(var n=u(e),i=arguments.length,l=1,f=o.f,d=s.f;i>l;)for(var h,p=c(arguments[l++]),b=f?a(p).concat(f(p)):a(p),m=b.length,g=0;m>g;)h=b[g++],(!r||d.call(p,h))&&(n[h]=p[h]);return n}:l},70030(e,t,n){var r,i=n(19670),a=n(36048),o=n(80748),s=n(3501),u=n(60490),c=n(80317),l=n(6200),f=">",d="<",h="prototype",p="script",b=l("IE_PROTO"),m=function(){},g=function(e){return d+p+f+e+d+"/"+p+f},v=function(e){e.write(g("")),e.close();var t=e.parentWindow.Object;return e=null,t},y=function(){var e,t=c("iframe"),n="java"+p+":";return t.style.display="none",u.appendChild(t),t.src=String(n),(e=t.contentWindow.document).open(),e.write(g("document.F=Object")),e.close(),e.F},w=function(){try{r=new ActiveXObject("htmlfile")}catch(e){}w="undefined"!=typeof document?document.domain&&r?v(r):y():v(r);for(var t=o.length;t--;)delete w[h][o[t]];return w()};s[b]=!0,e.exports=Object.create||function(e,t){var n;return null!==e?(m[h]=i(e),n=new m,m[h]=null,n[b]=e):n=w(),void 0===t?n:a(n,t)}},36048(e,t,n){var r=n(19781),i=n(3070),a=n(19670),o=n(81956);e.exports=r?Object.defineProperties:function(e,t){a(e);for(var n,r=o(t),s=r.length,u=0;s>u;)i.f(e,n=r[u++],t[n]);return e}},3070(e,t,n){var r=n(19781),i=n(64664),a=n(19670),o=n(34948),s=Object.defineProperty;t.f=r?s:function(e,t,n){if(a(e),t=o(t),a(n),i)try{return s(e,t,n)}catch(r){}if("get"in n||"set"in n)throw TypeError("Accessors not supported");return"value"in n&&(e[t]=n.value),e}},31236(e,t,n){var r=n(19781),i=n(55296),a=n(79114),o=n(45656),s=n(34948),u=n(86656),c=n(64664),l=Object.getOwnPropertyDescriptor;t.f=r?l:function(e,t){if(e=o(e),t=s(t),c)try{return l(e,t)}catch(n){}if(u(e,t))return a(!i.f.call(e,t),e[t])}},1156(e,t,n){var r=n(45656),i=n(8006).f,a={}.toString,o="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],s=function(e){try{return i(e)}catch(t){return o.slice()}};e.exports.f=function(e){return o&&"[object Window]"==a.call(e)?s(e):i(r(e))}},8006(e,t,n){var r=n(16324),i=n(80748).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return r(e,i)}},25181(e,t){t.f=Object.getOwnPropertySymbols},79518(e,t,n){var r=n(86656),i=n(47908),a=n(6200),o=n(49920),s=a("IE_PROTO"),u=Object.prototype;e.exports=o?Object.getPrototypeOf:function(e){return(e=i(e),r(e,s))?e[s]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?u:null}},60996(e,t,n){"use strict";var r=n(29909),i=n(24994),a=n(86656),o=n(81956),s=n(47908),u="Object Iterator",c=r.set,l=r.getterFor(u);e.exports=i(function(e,t){var n=s(e);c(this,{type:u,mode:t,object:n,keys:o(n),index:0})},"Object",function(){for(var e=l(this),t=e.keys;;){if(null===t||e.index>=t.length)return e.object=e.keys=null,{value:void 0,done:!0};var n=t[e.index++],r=e.object;if(a(r,n)){switch(e.mode){case"keys":return{value:n,done:!1};case"values":return{value:r[n],done:!1}}return{value:[n,r[n]],done:!1}}}})},16324(e,t,n){var r=n(86656),i=n(45656),a=n(41318).indexOf,o=n(3501);e.exports=function(e,t){var n,s=i(e),u=0,c=[];for(n in s)!r(o,n)&&r(s,n)&&c.push(n);for(;t.length>u;)r(s,n=t[u++])&&(~a(c,n)||c.push(n));return c}},81956(e,t,n){var r=n(16324),i=n(80748);e.exports=Object.keys||function(e){return r(e,i)}},55296(e,t){"use strict";var n={}.propertyIsEnumerable,r=Object.getOwnPropertyDescriptor,i=r&&!n.call({1:2},1);t.f=i?function(e){var t=r(this,e);return!!t&&t.enumerable}:n},69026(e,t,n){"use strict";var r=n(31913),i=n(17854),a=n(47293),o=n(98008);e.exports=r||!a(function(){if(!o||!(o<535)){var e=Math.random();__defineSetter__.call(null,e,function(){}),delete i[e]}})},27674(e,t,n){var r=n(19670),i=n(96077);e.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var e,t=!1,n={};try{(e=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set).call(n,[]),t=n instanceof Array}catch(a){}return function(n,a){return r(n),i(a),t?e.call(n,a):n.__proto__=a,n}}():void 0)},44699(e,t,n){var r=n(19781),i=n(81956),a=n(45656),o=n(55296).f,s=function(e){return function(t){for(var n,s=a(t),u=i(s),c=u.length,l=0,f=[];c>l;)n=u[l++],(!r||o.call(s,n))&&f.push(e?[n,s[n]]:s[n]);return f}};e.exports={entries:s(!0),values:s(!1)}},90288(e,t,n){"use strict";var r=n(51694),i=n(70648);e.exports=r?({}).toString:function(){return"[object "+i(this)+"]"}},92140(e,t,n){var r=n(70111);e.exports=function(e,t){var n,i;if("string"===t&&"function"==typeof(n=e.toString)&&!r(i=n.call(e))||"function"==typeof(n=e.valueOf)&&!r(i=n.call(e))||"string"!==t&&"function"==typeof(n=e.toString)&&!r(i=n.call(e)))return i;throw TypeError("Can't convert object to primitive value")}},53887(e,t,n){var r=n(35005),i=n(8006),a=n(25181),o=n(19670);e.exports=r("Reflect","ownKeys")||function(e){var t=i.f(o(e)),n=a.f;return n?t.concat(n(e)):t}},40857(e,t,n){var r=n(17854);e.exports=r},12534(e){e.exports=function(e){try{return{error:!1,value:e()}}catch(t){return{error:!0,value:t}}}},69478(e,t,n){var r=n(19670),i=n(70111),a=n(78523);e.exports=function(e,t){if(r(e),i(t)&&t.constructor===e)return t;var n=a.f(e);return(0,n.resolve)(t),n.promise}},12248(e,t,n){var r=n(31320);e.exports=function(e,t,n){for(var i in t)r(e,i,t[i],n);return e}},31320(e,t,n){var r=n(17854),i=n(68880),a=n(86656),o=n(83505),s=n(42788),u=n(29909),c=u.get,l=u.enforce,f=String(String).split("String");(e.exports=function(e,t,n,s){var u,c=!!s&&!!s.unsafe,d=!!s&&!!s.enumerable,h=!!s&&!!s.noTargetGet;if("function"!=typeof n||("string"!=typeof t||a(n,"name")||i(n,"name",t),(u=l(n)).source||(u.source=f.join("string"==typeof t?t:""))),e===r){d?e[t]=n:o(t,n);return}c?!h&&e[t]&&(d=!0):delete e[t],d?e[t]=n:i(e,t,n)})(Function.prototype,"toString",function(){return"function"==typeof this&&c(this).source||s(this)})},38845(e,t,n){var r=n(51532),i=n(4129),a=n(72309)("metadata"),o=a.store||(a.store=new i),s=function(e,t,n){var i=o.get(e);if(!i){if(!n)return;o.set(e,i=new r)}var a=i.get(t);if(!a){if(!n)return;i.set(t,a=new r)}return a},u=function(e,t,n){var r=s(t,n,!1);return void 0!==r&&r.has(e)},c=function(e,t,n){var r=s(t,n,!1);return void 0===r?void 0:r.get(e)},l=function(e,t,n,r){s(n,r,!0).set(e,t)},f=function(e,t){var n=s(e,t,!1),r=[];return n&&n.forEach(function(e,t){r.push(t)}),r},d=function(e){return void 0===e||"symbol"==typeof e?e:String(e)};e.exports={store:o,getMap:s,has:u,get:c,set:l,keys:f,toKey:d}},97651(e,t,n){var r=n(84326),i=n(22261);e.exports=function(e,t){var n=e.exec;if("function"==typeof n){var a=n.call(e,t);if("object"!=typeof a)throw TypeError("RegExp exec method returned something other than an Object or null");return a}if("RegExp"!==r(e))throw TypeError("RegExp#exec called on incompatible receiver");return i.call(e,t)}},22261(e,t,n){"use strict";var r,i,a=n(41340),o=n(67066),s=n(52999),u=n(72309),c=n(70030),l=n(29909).get,f=n(9441),d=n(38173),h=RegExp.prototype.exec,p=u("native-string-replace",String.prototype.replace),b=h,m=(r=/a/,i=/b*/g,h.call(r,"a"),h.call(i,"a"),0!==r.lastIndex||0!==i.lastIndex),g=s.UNSUPPORTED_Y||s.BROKEN_CARET,v=void 0!==/()??/.exec("")[1];(m||v||g||f||d)&&(b=function(e){var t,n,r,i,s,u,f,d=this,y=l(d),w=a(e),_=y.raw;if(_)return _.lastIndex=d.lastIndex,t=b.call(_,w),d.lastIndex=_.lastIndex,t;var E=y.groups,S=g&&d.sticky,k=o.call(d),x=d.source,T=0,M=w;if(S&&(-1===(k=k.replace("y","")).indexOf("g")&&(k+="g"),M=w.slice(d.lastIndex),d.lastIndex>0&&(!d.multiline||d.multiline&&"\n"!==w.charAt(d.lastIndex-1))&&(x="(?: "+x+")",M=" "+M,T++),n=RegExp("^(?:"+x+")",k)),v&&(n=RegExp("^"+x+"$(?!\\s)",k)),m&&(r=d.lastIndex),i=h.call(S?n:d,M),S?i?(i.input=i.input.slice(T),i[0]=i[0].slice(T),i.index=d.lastIndex,d.lastIndex+=i[0].length):d.lastIndex=0:m&&i&&(d.lastIndex=d.global?i.index+i[0].length:r),v&&i&&i.length>1&&p.call(i[0],n,function(){for(s=1;sb)","g");return"b"!==e.exec("b").groups.a||"bc"!=="b".replace(e,"$c")})},84488(e){e.exports=function(e){if(void 0==e)throw TypeError("Can't call method on "+e);return e}},46465(e){e.exports=function(e,t){return e===t||e!=e&&t!=t}},81150(e){e.exports=Object.is||function(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}},83505(e,t,n){var r=n(17854);e.exports=function(e,t){try{Object.defineProperty(r,e,{value:t,configurable:!0,writable:!0})}catch(n){r[e]=t}return t}},96340(e,t,n){"use strict";var r=n(35005),i=n(3070),a=n(5112),o=n(19781),s=a("species");e.exports=function(e){var t=r(e),n=i.f;o&&t&&!t[s]&&n(t,s,{configurable:!0,get:function(){return this}})}},58003(e,t,n){var r=n(3070).f,i=n(86656),a=n(5112)("toStringTag");e.exports=function(e,t,n){e&&!i(e=n?e:e.prototype,a)&&r(e,a,{configurable:!0,value:t})}},6200(e,t,n){var r=n(72309),i=n(69711),a=r("keys");e.exports=function(e){return a[e]||(a[e]=i(e))}},5465(e,t,n){var r=n(17854),i=n(83505),a="__core-js_shared__",o=r[a]||i(a,{});e.exports=o},72309(e,t,n){var r=n(31913),i=n(5465);(e.exports=function(e,t){return i[e]||(i[e]=void 0!==t?t:{})})("versions",[]).push({version:"3.17.0",mode:r?"pure":"global",copyright:"\xa9 2021 Denis Pushkarev (zloirock.ru)"})},36707(e,t,n){var r=n(19670),i=n(13099),a=n(5112)("species");e.exports=function(e,t){var n,o=r(e).constructor;return void 0===o||void 0==(n=r(o)[a])?t:i(n)}},43429(e,t,n){var r=n(47293);e.exports=function(e){return r(function(){var t=""[e]('"');return t!==t.toLowerCase()||t.split('"').length>3})}},28710(e,t,n){var r=n(99958),i=n(41340),a=n(84488),o=function(e){return function(t,n){var o,s,u=i(a(t)),c=r(n),l=u.length;return c<0||c>=l?e?"":void 0:(o=u.charCodeAt(c))<55296||o>56319||c+1===l||(s=u.charCodeAt(c+1))<56320||s>57343?e?u.charAt(c):o:e?u.slice(c,c+2):(o-55296<<10)+(s-56320)+65536}};e.exports={codeAt:o(!1),charAt:o(!0)}},54986(e,t,n){var r=n(88113);e.exports=/Version\/10(?:\.\d+){1,2}(?: [\w./]+)?(?: Mobile\/\w+)? Safari\//.test(r)},76650(e,t,n){var r=n(17466),i=n(41340),a=n(38415),o=n(84488),s=Math.ceil,u=function(e){return function(t,n,u){var c,l,f=i(o(t)),d=f.length,h=void 0===u?" ":i(u),p=r(n);return p<=d||""==h?f:(c=p-d,(l=a.call(h,s(c/h.length))).length>c&&(l=l.slice(0,c)),e?f+l:l+f)}};e.exports={start:u(!1),end:u(!0)}},33197(e){"use strict";var t=2147483647,n=36,r=1,i=26,a=38,o=700,s=72,u=128,c="-",l=/[^\0-\u007E]/,f=/[.\u3002\uFF0E\uFF61]/g,d="Overflow: input needs wider integers to process",h=n-r,p=Math.floor,b=String.fromCharCode,m=function(e){for(var t=[],n=0,r=e.length;n=55296&&i<=56319&&n>1,e+=p(e/t);e>h*i>>1;s+=n)e=p(e/h);return p(s+(h+1)*e/(e+a))},y=function(e){var a,o,l=[],f=(e=m(e)).length,h=u,y=0,w=s;for(a=0;a=h&&op((t-y)/k))throw RangeError(d);for(y+=(S-h)*k,h=S,a=0;at)throw RangeError(d);if(o==h){for(var x=y,T=n;;T+=n){var M=T<=w?r:T>=w+i?i:T-w;if(x0;(o>>>=1)&&(t+=t))1&o&&(n+=t);return n}},76091(e,t,n){var r=n(47293),i=n(81361),a="​\x85᠎";e.exports=function(e){return r(function(){return!!i[e]()||a[e]()!=a||i[e].name!==e})}},53111(e,t,n){var r=n(84488),i=n(41340),a="["+n(81361)+"]",o=RegExp("^"+a+a+"*"),s=RegExp(a+a+"*$"),u=function(e){return function(t){var n=i(r(t));return 1&e&&(n=n.replace(o,"")),2&e&&(n=n.replace(s,"")),n}};e.exports={start:u(1),end:u(2),trim:u(3)}},20261(e,t,n){var r,i,a,o,s=n(17854),u=n(47293),c=n(49974),l=n(60490),f=n(80317),d=n(6833),h=n(35268),p=s.setImmediate,b=s.clearImmediate,m=s.process,g=s.MessageChannel,v=s.Dispatch,y=0,w={},_="onreadystatechange";try{r=s.location}catch(E){}var S=function(e){if(w.hasOwnProperty(e)){var t=w[e];delete w[e],t()}},k=function(e){return function(){S(e)}},x=function(e){S(e.data)},T=function(e){s.postMessage(String(e),r.protocol+"//"+r.host)};p&&b||(p=function(e){for(var t=[],n=arguments.length,r=1;n>r;)t.push(arguments[r++]);return w[++y]=function(){("function"==typeof e?e:Function(e)).apply(void 0,t)},i(y),y},b=function(e){delete w[e]},h?i=function(e){m.nextTick(k(e))}:v&&v.now?i=function(e){v.now(k(e))}:g&&!d?(o=(a=new g).port2,a.port1.onmessage=x,i=c(o.postMessage,o,1)):s.addEventListener&&"function"==typeof postMessage&&!s.importScripts&&r&&"file:"!==r.protocol&&!u(T)?(i=T,s.addEventListener("message",x,!1)):i=_ in f("script")?function(e){l.appendChild(f("script"))[_]=function(){l.removeChild(this),S(e)}}:function(e){setTimeout(k(e),0)}),e.exports={set:p,clear:b}},50863(e,t,n){var r=n(84326);e.exports=function(e){if("number"!=typeof e&&"Number"!=r(e))throw TypeError("Incorrect invocation");return+e}},51400(e,t,n){var r=n(99958),i=Math.max,a=Math.min;e.exports=function(e,t){var n=r(e);return n<0?i(n+t,0):a(n,t)}},57067(e,t,n){var r=n(99958),i=n(17466);e.exports=function(e){if(void 0===e)return 0;var t=r(e),n=i(t);if(t!==n)throw RangeError("Wrong length or index");return n}},45656(e,t,n){var r=n(68361),i=n(84488);e.exports=function(e){return r(i(e))}},99958(e){var t=Math.ceil,n=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?n:t)(e)}},17466(e,t,n){var r=n(99958),i=Math.min;e.exports=function(e){return e>0?i(r(e),9007199254740991):0}},47908(e,t,n){var r=n(84488);e.exports=function(e){return Object(r(e))}},84590(e,t,n){var r=n(73002);e.exports=function(e,t){var n=r(e);if(n%t)throw RangeError("Wrong offset");return n}},73002(e,t,n){var r=n(99958);e.exports=function(e){var t=r(e);if(t<0)throw RangeError("The argument can't be less than 0");return t}},57593(e,t,n){var r=n(70111),i=n(52190),a=n(92140),o=n(5112)("toPrimitive");e.exports=function(e,t){if(!r(e)||i(e))return e;var n,s=e[o];if(void 0!==s){if(void 0===t&&(t="default"),!r(n=s.call(e,t))||i(n))return n;throw TypeError("Can't convert object to primitive value")}return void 0===t&&(t="number"),a(e,t)}},34948(e,t,n){var r=n(57593),i=n(52190);e.exports=function(e){var t=r(e,"string");return i(t)?t:String(t)}},51694(e,t,n){var r=n(5112)("toStringTag"),i={};i[r]="z",e.exports="[object z]"===String(i)},41340(e,t,n){var r=n(52190);e.exports=function(e){if(r(e))throw TypeError("Cannot convert a Symbol value to a string");return String(e)}},19843(e,t,n){"use strict";var r=n(82109),i=n(17854),a=n(19781),o=n(63832),s=n(90260),u=n(13331),c=n(25787),l=n(79114),f=n(68880),d=n(18730),h=n(17466),p=n(57067),b=n(84590),m=n(34948),g=n(86656),v=n(70648),y=n(70111),w=n(52190),_=n(70030),E=n(27674),S=n(8006).f,k=n(97321),x=n(42092).forEach,T=n(96340),M=n(3070),O=n(31236),A=n(29909),L=n(79587),C=A.get,I=A.set,D=M.f,N=O.f,P=Math.round,R=i.RangeError,j=u.ArrayBuffer,F=u.DataView,Y=s.NATIVE_ARRAY_BUFFER_VIEWS,B=s.TYPED_ARRAY_CONSTRUCTOR,U=s.TYPED_ARRAY_TAG,H=s.TypedArray,$=s.TypedArrayPrototype,z=s.aTypedArrayConstructor,G=s.isTypedArray,W="BYTES_PER_ELEMENT",K="Wrong length",V=function(e,t){for(var n=0,r=t.length,i=new(z(e))(r);r>n;)i[n]=t[n++];return i},q=function(e,t){D(e,t,{get:function(){return C(this)[t]}})},Z=function(e){var t;return e instanceof j||"ArrayBuffer"==(t=v(e))||"SharedArrayBuffer"==t},X=function(e,t){return G(e)&&!w(t)&&t in e&&d(+t)&&t>=0},J=function(e,t){return t=m(t),X(e,t)?l(2,e[t]):N(e,t)},Q=function(e,t,n){return(t=m(t),X(e,t)&&y(n)&&g(n,"value")&&!g(n,"get")&&!g(n,"set")&&!n.configurable&&(!g(n,"writable")||n.writable)&&(!g(n,"enumerable")||n.enumerable))?(e[t]=n.value,e):D(e,t,n)};a?(Y||(O.f=J,M.f=Q,q($,"buffer"),q($,"byteOffset"),q($,"byteLength"),q($,"length")),r({target:"Object",stat:!0,forced:!Y},{getOwnPropertyDescriptor:J,defineProperty:Q}),e.exports=function(e,t,n){var a=e.match(/\d+$/)[0]/8,s=e+(n?"Clamped":"")+"Array",u="get"+e,l="set"+e,d=i[s],m=d,g=m&&m.prototype,v={},w=function(e,t){var n=C(e);return n.view[u](t*a+n.byteOffset,!0)},M=function(e,t,r){var i=C(e);n&&(r=(r=P(r))<0?0:r>255?255:255&r),i.view[l](t*a+i.byteOffset,r,!0)},O=function(e,t){D(e,t,{get:function(){return w(this,t)},set:function(e){return M(this,t,e)},enumerable:!0})};Y?o&&(m=t(function(e,t,n,r){return c(e,m,s),L(y(t)?Z(t)?void 0!==r?new d(t,b(n,a),r):void 0!==n?new d(t,b(n,a)):new d(t):G(t)?V(m,t):k.call(m,t):new d(p(t)),e,m)}),E&&E(m,H),x(S(d),function(e){e in m||f(m,e,d[e])}),m.prototype=g):(m=t(function(e,t,n,r){c(e,m,s);var i,o,u,l=0,f=0;if(y(t)){if(Z(t)){i=t,f=b(n,a);var d=t.byteLength;if(void 0===r){if(d%a||(o=d-f)<0)throw R(K)}else if((o=h(r)*a)+f>d)throw R(K);u=o/a}else if(G(t))return V(m,t);else return k.call(m,t)}else o=(u=p(t))*a,i=new j(o);for(I(e,{buffer:i,byteOffset:f,byteLength:o,length:u,view:new F(i)});l1?arguments[1]:void 0,g=void 0!==m,v=o(p);if(void 0!=v&&!s(v))for(h=(d=a(p,v)).next,p=[];!(f=h.call(d)).done;)p.push(f.value);for(g&&b>2&&(m=u(m,arguments[2],2)),n=i(p.length),l=new(c(this))(n),t=0;n>t;t++)l[t]=g?m(p[t],t):p[t];return l}},66304(e,t,n){var r=n(90260),i=n(36707),a=r.TYPED_ARRAY_CONSTRUCTOR,o=r.aTypedArrayConstructor;e.exports=function(e){return o(i(e,e[a]))}},69711(e){var t=0,n=Math.random();e.exports=function(e){return"Symbol("+String(void 0===e?"":e)+")_"+(++t+n).toString(36)}},43307(e,t,n){var r=n(30133);e.exports=r&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},6061(e,t,n){var r=n(5112);t.f=r},5112(e,t,n){var r=n(17854),i=n(72309),a=n(86656),o=n(69711),s=n(30133),u=n(43307),c=i("wks"),l=r.Symbol,f=u?l:l&&l.withoutSetter||o;e.exports=function(e){return a(c,e)&&(s||"string"==typeof c[e])||(s&&a(l,e)?c[e]=l[e]:c[e]=f("Symbol."+e)),c[e]}},81361(e){e.exports=" \n\v\f\r \xa0               \u2028\u2029\uFEFF"},9170(e,t,n){"use strict";var r=n(82109),i=n(79518),a=n(27674),o=n(70030),s=n(68880),u=n(79114),c=n(20408),l=n(41340),f=function(e,t){var n=this;if(!(n instanceof f))return new f(e,t);a&&(n=a(Error(void 0),i(n))),void 0!==t&&s(n,"message",l(t));var r=[];return c(e,r.push,{that:r}),s(n,"errors",r),n};f.prototype=o(Error.prototype,{constructor:u(5,f),message:u(5,""),name:u(5,"AggregateError")}),r({global:!0},{AggregateError:f})},18264(e,t,n){"use strict";var r=n(82109),i=n(17854),a=n(13331),o=n(96340),s="ArrayBuffer",u=a[s];r({global:!0,forced:i[s]!==u},{ArrayBuffer:u}),o(s)},76938(e,t,n){var r=n(82109),i=n(90260);r({target:"ArrayBuffer",stat:!0,forced:!i.NATIVE_ARRAY_BUFFER_VIEWS},{isView:i.isView})},39575(e,t,n){"use strict";var r=n(82109),i=n(47293),a=n(13331),o=n(19670),s=n(51400),u=n(17466),c=n(36707),l=a.ArrayBuffer,f=a.DataView,d=l.prototype.slice,h=i(function(){return!new l(2).slice(1,void 0).byteLength});r({target:"ArrayBuffer",proto:!0,unsafe:!0,forced:h},{slice:function(e,t){if(void 0!==d&&void 0===t)return d.call(o(this),e);for(var n=o(this).byteLength,r=s(e,n),i=s(void 0===t?n:t,n),a=new(c(this,l))(u(i-r)),h=new f(this),p=new f(a),b=0;r=0?r:n+r;return s<0||s>=n?void 0:t[s]}}),s("at")},92222(e,t,n){"use strict";var r=n(82109),i=n(47293),a=n(43157),o=n(70111),s=n(47908),u=n(17466),c=n(86135),l=n(65417),f=n(81194),d=n(5112),h=n(7392),p=d("isConcatSpreadable"),b=9007199254740991,m="Maximum allowed index exceeded",g=h>=51||!i(function(){var e=[];return e[p]=!1,e.concat()[0]!==e}),v=f("concat"),y=function(e){if(!o(e))return!1;var t=e[p];return void 0!==t?!!t:a(e)};r({target:"Array",proto:!0,forced:!g||!v},{concat:function(e){var t,n,r,i,a,o=s(this),f=l(o,0),d=0;for(t=-1,r=arguments.length;tb)throw TypeError(m);for(n=0;n=b)throw TypeError(m);c(f,d++,a)}return f.length=d,f}})},50545(e,t,n){var r=n(82109),i=n(1048),a=n(51223);r({target:"Array",proto:!0},{copyWithin:i}),a("copyWithin")},26541(e,t,n){"use strict";var r=n(82109),i=n(42092).every,a=n(9341)("every");r({target:"Array",proto:!0,forced:!a},{every:function(e){return i(this,e,arguments.length>1?arguments[1]:void 0)}})},43290(e,t,n){var r=n(82109),i=n(21285),a=n(51223);r({target:"Array",proto:!0},{fill:i}),a("fill")},57327(e,t,n){"use strict";var r=n(82109),i=n(42092).filter,a=n(81194)("filter");r({target:"Array",proto:!0,forced:!a},{filter:function(e){return i(this,e,arguments.length>1?arguments[1]:void 0)}})},34553(e,t,n){"use strict";var r=n(82109),i=n(42092).findIndex,a=n(51223),o="findIndex",s=!0;o in[]&&[,][o](function(){s=!1}),r({target:"Array",proto:!0,forced:s},{findIndex:function(e){return i(this,e,arguments.length>1?arguments[1]:void 0)}}),a(o)},69826(e,t,n){"use strict";var r=n(82109),i=n(42092).find,a=n(51223),o="find",s=!0;o in[]&&[,][o](function(){s=!1}),r({target:"Array",proto:!0,forced:s},{find:function(e){return i(this,e,arguments.length>1?arguments[1]:void 0)}}),a(o)},86535(e,t,n){"use strict";var r=n(82109),i=n(6790),a=n(47908),o=n(17466),s=n(13099),u=n(65417);r({target:"Array",proto:!0},{flatMap:function(e){var t,n=a(this),r=o(n.length);return s(e),(t=u(n,0)).length=i(t,n,n,r,0,1,e,arguments.length>1?arguments[1]:void 0),t}})},84944(e,t,n){"use strict";var r=n(82109),i=n(6790),a=n(47908),o=n(17466),s=n(99958),u=n(65417);r({target:"Array",proto:!0},{flat:function(){var e=arguments.length?arguments[0]:void 0,t=a(this),n=o(t.length),r=u(t,0);return r.length=i(r,t,t,n,0,void 0===e?1:s(e)),r}})},89554(e,t,n){"use strict";var r=n(82109),i=n(18533);r({target:"Array",proto:!0,forced:[].forEach!=i},{forEach:i})},91038(e,t,n){var r=n(82109),i=n(48457),a=!n(17072)(function(e){Array.from(e)});r({target:"Array",stat:!0,forced:a},{from:i})},26699(e,t,n){"use strict";var r=n(82109),i=n(41318).includes,a=n(51223);r({target:"Array",proto:!0},{includes:function(e){return i(this,e,arguments.length>1?arguments[1]:void 0)}}),a("includes")},82772(e,t,n){"use strict";var r=n(82109),i=n(41318).indexOf,a=n(9341),o=[].indexOf,s=!!o&&1/[1].indexOf(1,-0)<0,u=a("indexOf");r({target:"Array",proto:!0,forced:s||!u},{indexOf:function(e){return s?o.apply(this,arguments)||0:i(this,e,arguments.length>1?arguments[1]:void 0)}})},79753(e,t,n){var r=n(82109),i=n(43157);r({target:"Array",stat:!0},{isArray:i})},66992(e,t,n){"use strict";var r=n(45656),i=n(51223),a=n(97497),o=n(29909),s=n(70654),u="Array Iterator",c=o.set,l=o.getterFor(u);e.exports=s(Array,"Array",function(e,t){c(this,{type:u,target:r(e),index:0,kind:t})},function(){var e=l(this),t=e.target,n=e.kind,r=e.index++;return!t||r>=t.length?(e.target=void 0,{value:void 0,done:!0}):"keys"==n?{value:r,done:!1}:"values"==n?{value:t[r],done:!1}:{value:[r,t[r]],done:!1}},"values"),a.Arguments=a.Array,i("keys"),i("values"),i("entries")},69600(e,t,n){"use strict";var r=n(82109),i=n(68361),a=n(45656),o=n(9341),s=[].join,u=i!=Object,c=o("join",",");r({target:"Array",proto:!0,forced:u||!c},{join:function(e){return s.call(a(this),void 0===e?",":e)}})},94986(e,t,n){var r=n(82109),i=n(86583);r({target:"Array",proto:!0,forced:i!==[].lastIndexOf},{lastIndexOf:i})},21249(e,t,n){"use strict";var r=n(82109),i=n(42092).map,a=n(81194)("map");r({target:"Array",proto:!0,forced:!a},{map:function(e){return i(this,e,arguments.length>1?arguments[1]:void 0)}})},26572(e,t,n){"use strict";var r=n(82109),i=n(47293),a=n(86135),o=i(function(){function e(){}return!(Array.of.call(e) instanceof e)});r({target:"Array",stat:!0,forced:o},{of:function(){for(var e=0,t=arguments.length,n=new("function"==typeof this?this:Array)(t);t>e;)a(n,e,arguments[e++]);return n.length=t,n}})},96644(e,t,n){"use strict";var r=n(82109),i=n(53671).right,a=n(9341),o=n(7392),s=n(35268),u=a("reduceRight"),c=!s&&o>79&&o<83;r({target:"Array",proto:!0,forced:!u||c},{reduceRight:function(e){return i(this,e,arguments.length,arguments.length>1?arguments[1]:void 0)}})},85827(e,t,n){"use strict";var r=n(82109),i=n(53671).left,a=n(9341),o=n(7392),s=n(35268),u=a("reduce"),c=!s&&o>79&&o<83;r({target:"Array",proto:!0,forced:!u||c},{reduce:function(e){return i(this,e,arguments.length,arguments.length>1?arguments[1]:void 0)}})},65069(e,t,n){"use strict";var r=n(82109),i=n(43157),a=[].reverse,o=[1,2];r({target:"Array",proto:!0,forced:String(o)===String(o.reverse())},{reverse:function(){return i(this)&&(this.length=this.length),a.call(this)}})},47042(e,t,n){"use strict";var r=n(82109),i=n(70111),a=n(43157),o=n(51400),s=n(17466),u=n(45656),c=n(86135),l=n(5112),f=n(81194)("slice"),d=l("species"),h=[].slice,p=Math.max;r({target:"Array",proto:!0,forced:!f},{slice:function(e,t){var n,r,l,f=u(this),b=s(f.length),m=o(e,b),g=o(void 0===t?b:t,b);if(a(f)&&("function"==typeof(n=f.constructor)&&(n===Array||a(n.prototype))?n=void 0:i(n)&&null===(n=n[d])&&(n=void 0),n===Array||void 0===n))return h.call(f,m,g);for(l=0,r=new(void 0===n?Array:n)(p(g-m,0));m1?arguments[1]:void 0)}})},2707(e,t,n){"use strict";var r=n(82109),i=n(13099),a=n(47908),o=n(17466),s=n(41340),u=n(47293),c=n(94362),l=n(9341),f=n(68886),d=n(30256),h=n(7392),p=n(98008),b=[],m=b.sort,g=u(function(){b.sort(void 0)}),v=u(function(){b.sort(null)}),y=l("sort"),w=!u(function(){if(h)return h<70;if(!f||!(f>3)){if(d)return!0;if(p)return p<603;var e,t,n,r,i="";for(e=65;e<76;e++){switch(t=String.fromCharCode(e),e){case 66:case 69:case 70:case 72:n=3;break;case 68:case 71:n=4;break;default:n=2}for(r=0;r<47;r++)b.push({k:t+r,v:n})}for(b.sort(function(e,t){return t.v-e.v}),r=0;rs(n)?1:-1}};r({target:"Array",proto:!0,forced:_},{sort:function(e){void 0!==e&&i(e);var t,n,r=a(this);if(w)return void 0===e?m.call(r):m.call(r,e);var s=[],u=o(r.length);for(n=0;nh)throw TypeError(p);for(b=0,l=u(v,r);by-r+n;b--)delete v[b-1]}else if(n>r)for(b=y-r;b>w;b--)m=b+r-1,g=b+n-1,m in v?v[g]=v[m]:delete v[g];for(b=0;b94906265.62425156?s(e)+c:a(e-1+u(e-1)*u(e+1))}})},82376(e,t,n){var r=n(82109),i=Math.asinh,a=Math.log,o=Math.sqrt;function s(e){return isFinite(e=+e)&&0!=e?e<0?-s(-e):a(e+o(e*e+1)):e}r({target:"Math",stat:!0,forced:!(i&&1/i(0)>0)},{asinh:s})},73181(e,t,n){var r=n(82109),i=Math.atanh,a=Math.log;r({target:"Math",stat:!0,forced:!(i&&1/i(-0)<0)},{atanh:function(e){return 0==(e=+e)?e:a((1+e)/(1-e))/2}})},23484(e,t,n){var r=n(82109),i=n(64310),a=Math.abs,o=Math.pow;r({target:"Math",stat:!0},{cbrt:function(e){return i(e=+e)*o(a(e),1/3)}})},2388(e,t,n){var r=n(82109),i=Math.floor,a=Math.log,o=Math.LOG2E;r({target:"Math",stat:!0},{clz32:function(e){return(e>>>=0)?31-i(a(e+.5)*o):32}})},88621(e,t,n){var r=n(82109),i=n(66736),a=Math.cosh,o=Math.abs,s=Math.E;r({target:"Math",stat:!0,forced:!a||a(710)===1/0},{cosh:function(e){var t=i(o(e)-1)+1;return(t+1/(t*s*s))*(s/2)}})},60403(e,t,n){var r=n(82109),i=n(66736);r({target:"Math",stat:!0,forced:i!=Math.expm1},{expm1:i})},84755(e,t,n){var r=n(82109),i=n(26130);r({target:"Math",stat:!0},{fround:i})},25438(e,t,n){var r=n(82109),i=Math.hypot,a=Math.abs,o=Math.sqrt,s=!!i&&i(1/0,NaN)!==1/0;r({target:"Math",stat:!0,forced:s},{hypot:function(e,t){for(var n,r,i=0,s=0,u=arguments.length,c=0;s0?i+=(r=n/c)*r:i+=n;return c===1/0?1/0:c*o(i)}})},90332(e,t,n){var r=n(82109),i=n(47293),a=Math.imul,o=i(function(){return -5!=a(4294967295,5)||2!=a.length});r({target:"Math",stat:!0,forced:o},{imul:function(e,t){var n=65535,r=+e,i=+t,a=n&r,o=n&i;return 0|a*o+((n&r>>>16)*o+a*(n&i>>>16)<<16>>>0)}})},40658(e,t,n){var r=n(82109),i=Math.log,a=Math.LOG10E;r({target:"Math",stat:!0},{log10:function(e){return i(e)*a}})},40197(e,t,n){var r=n(82109),i=n(26513);r({target:"Math",stat:!0},{log1p:i})},44914(e,t,n){var r=n(82109),i=Math.log,a=Math.LN2;r({target:"Math",stat:!0},{log2:function(e){return i(e)/a}})},52420(e,t,n){var r=n(82109),i=n(64310);r({target:"Math",stat:!0},{sign:i})},60160(e,t,n){var r=n(82109),i=n(47293),a=n(66736),o=Math.abs,s=Math.exp,u=Math.E,c=i(function(){return -.00000000000000002!=Math.sinh(-.00000000000000002)});r({target:"Math",stat:!0,forced:c},{sinh:function(e){return 1>o(e=+e)?(a(e)-a(-e))/2:(s(e-1)-s(-e-1))*(u/2)}})},60970(e,t,n){var r=n(82109),i=n(66736),a=Math.exp;r({target:"Math",stat:!0},{tanh:function(e){var t=i(e=+e),n=i(-e);return t==1/0?1:n==1/0?-1:(t-n)/(a(e)+a(-e))}})},10408(e,t,n){n(58003)(Math,"Math",!0)},73689(e,t,n){var r=n(82109),i=Math.ceil,a=Math.floor;r({target:"Math",stat:!0},{trunc:function(e){return(e>0?a:i)(e)}})},9653(e,t,n){"use strict";var r=n(19781),i=n(17854),a=n(54705),o=n(31320),s=n(86656),u=n(84326),c=n(79587),l=n(52190),f=n(57593),d=n(47293),h=n(70030),p=n(8006).f,b=n(31236).f,m=n(3070).f,g=n(53111).trim,v="Number",y=i[v],w=y.prototype,_=u(h(w))==v,E=function(e){if(l(e))throw TypeError("Cannot convert a Symbol value to a number");var t,n,r,i,a,o,s,u,c=f(e,"number");if("string"==typeof c&&c.length>2){if(43===(t=(c=g(c)).charCodeAt(0))||45===t){if(88===(n=c.charCodeAt(2))||120===n)return NaN}else if(48===t){switch(c.charCodeAt(1)){case 66:case 98:r=2,i=49;break;case 79:case 111:r=8,i=55;break;default:return+c}for(s=0,o=(a=c.slice(2)).length;si)return NaN;return parseInt(a,r)}}return+c};if(a(v,!y(" 0o1")||!y("0b1")||y("+0x1"))){for(var S,k=function(e){var t=arguments.length<1?0:e,n=this;return n instanceof k&&(_?d(function(){w.valueOf.call(n)}):u(n)!=v)?c(new y(E(t)),n,k):E(t)},x=r?p(y):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger,fromString,range".split(","),T=0;x.length>T;T++)s(y,S=x[T])&&!s(k,S)&&m(k,S,b(y,S));k.prototype=w,w.constructor=k,o(i,v,k)}},93299(e,t,n){n(82109)({target:"Number",stat:!0},{EPSILON:2220446049250313e-31})},35192(e,t,n){var r=n(82109),i=n(77023);r({target:"Number",stat:!0},{isFinite:i})},33161(e,t,n){var r=n(82109),i=n(18730);r({target:"Number",stat:!0},{isInteger:i})},44048(e,t,n){n(82109)({target:"Number",stat:!0},{isNaN:function(e){return e!=e}})},78285(e,t,n){var r=n(82109),i=n(18730),a=Math.abs;r({target:"Number",stat:!0},{isSafeInteger:function(e){return i(e)&&9007199254740991>=a(e)}})},44363(e,t,n){n(82109)({target:"Number",stat:!0},{MAX_SAFE_INTEGER:9007199254740991})},55994(e,t,n){n(82109)({target:"Number",stat:!0},{MIN_SAFE_INTEGER:-9007199254740991})},61874(e,t,n){var r=n(82109),i=n(2814);r({target:"Number",stat:!0,forced:Number.parseFloat!=i},{parseFloat:i})},9494(e,t,n){var r=n(82109),i=n(83009);r({target:"Number",stat:!0,forced:Number.parseInt!=i},{parseInt:i})},56977(e,t,n){"use strict";var r=n(82109),i=n(99958),a=n(50863),o=n(38415),s=n(47293),u=1..toFixed,c=Math.floor,l=function(e,t,n){return 0===t?n:t%2==1?l(e,t-1,n*e):l(e*e,t/2,n)},f=function(e){for(var t=0,n=e;n>=4096;)t+=12,n/=4096;for(;n>=2;)t+=1,n/=2;return t},d=function(e,t,n){for(var r=-1,i=n;++r<6;)i+=t*e[r],e[r]=i%1e7,i=c(i/1e7)},h=function(e,t){for(var n=6,r=0;--n>=0;)r+=e[n],e[n]=c(r/t),r=r%t*1e7},p=function(e){for(var t=6,n="";--t>=0;)if(""!==n||0===t||0!==e[t]){var r=String(e[t]);n=""===n?r:n+o.call("0",7-r.length)+r}return n},b=!!u||!s(function(){u.call({})});r({target:"Number",proto:!0,forced:b},{toFixed:function(e){var t,n,r,s,u=a(this),c=i(e),b=[0,0,0,0,0,0],m="",g="0";if(c<0||c>20)throw RangeError("Incorrect fraction digits");if(u!=u)return"NaN";if(u<=-1e21||u>=1e21)return String(u);if(u<0&&(m="-",u=-u),u>1e-21){if(n=(t=f(u*l(2,69,1))-69)<0?u*l(2,-t,1):u/l(2,t,1),n*=4503599627370496,(t=52-t)>0){for(d(b,0,n),r=c;r>=7;)d(b,1e7,0),r-=7;for(d(b,l(10,r,1),0),r=t-1;r>=23;)h(b,8388608),r-=23;h(b,1<0?m+((s=g.length)<=c?"0."+o.call("0",c-s)+g:g.slice(0,s-c)+"."+g.slice(s-c)):m+g}})},55147(e,t,n){"use strict";var r=n(82109),i=n(47293),a=n(50863),o=1..toPrecision,s=i(function(){return"1"!==o.call(1,void 0)})||!i(function(){o.call({})});r({target:"Number",proto:!0,forced:s},{toPrecision:function(e){return void 0===e?o.call(a(this)):o.call(a(this),e)}})},19601(e,t,n){var r=n(82109),i=n(21574);r({target:"Object",stat:!0,forced:Object.assign!==i},{assign:i})},78011(e,t,n){var r=n(82109),i=n(19781),a=n(70030);r({target:"Object",stat:!0,sham:!i},{create:a})},59595(e,t,n){"use strict";var r=n(82109),i=n(19781),a=n(69026),o=n(47908),s=n(13099),u=n(3070);i&&r({target:"Object",proto:!0,forced:a},{__defineGetter__:function(e,t){u.f(o(this),e,{get:s(t),enumerable:!0,configurable:!0})}})},33321(e,t,n){var r=n(82109),i=n(19781),a=n(36048);r({target:"Object",stat:!0,forced:!i,sham:!i},{defineProperties:a})},69070(e,t,n){var r=n(82109),i=n(19781),a=n(3070);r({target:"Object",stat:!0,forced:!i,sham:!i},{defineProperty:a.f})},35500(e,t,n){"use strict";var r=n(82109),i=n(19781),a=n(69026),o=n(47908),s=n(13099),u=n(3070);i&&r({target:"Object",proto:!0,forced:a},{__defineSetter__:function(e,t){u.f(o(this),e,{set:s(t),enumerable:!0,configurable:!0})}})},69720(e,t,n){var r=n(82109),i=n(44699).entries;r({target:"Object",stat:!0},{entries:function(e){return i(e)}})},43371(e,t,n){var r=n(82109),i=n(76677),a=n(47293),o=n(70111),s=n(62423).onFreeze,u=Object.freeze,c=a(function(){u(1)});r({target:"Object",stat:!0,forced:c,sham:!i},{freeze:function(e){return u&&o(e)?u(s(e)):e}})},38559(e,t,n){var r=n(82109),i=n(20408),a=n(86135);r({target:"Object",stat:!0},{fromEntries:function(e){var t={};return i(e,function(e,n){a(t,e,n)},{AS_ENTRIES:!0}),t}})},38880(e,t,n){var r=n(82109),i=n(47293),a=n(45656),o=n(31236).f,s=n(19781),u=i(function(){o(1)}),c=!s||u;r({target:"Object",stat:!0,forced:c,sham:!s},{getOwnPropertyDescriptor:function(e,t){return o(a(e),t)}})},49337(e,t,n){var r=n(82109),i=n(19781),a=n(53887),o=n(45656),s=n(31236),u=n(86135);r({target:"Object",stat:!0,sham:!i},{getOwnPropertyDescriptors:function(e){for(var t,n,r=o(e),i=s.f,c=a(r),l={},f=0;c.length>f;)void 0!==(n=i(r,t=c[f++]))&&u(l,t,n);return l}})},36210(e,t,n){var r=n(82109),i=n(47293),a=n(1156).f,o=i(function(){return!Object.getOwnPropertyNames(1)});r({target:"Object",stat:!0,forced:o},{getOwnPropertyNames:a})},30489(e,t,n){var r=n(82109),i=n(47293),a=n(47908),o=n(79518),s=n(49920),u=i(function(){o(1)});r({target:"Object",stat:!0,forced:u,sham:!s},{getPrototypeOf:function(e){return o(a(e))}})},46314(e,t,n){var r=n(82109),i=n(86656);r({target:"Object",stat:!0},{hasOwn:i})},41825(e,t,n){var r=n(82109),i=n(47293),a=n(70111),o=Object.isExtensible,s=i(function(){o(1)});r({target:"Object",stat:!0,forced:s},{isExtensible:function(e){return!!a(e)&&(!o||o(e))}})},98410(e,t,n){var r=n(82109),i=n(47293),a=n(70111),o=Object.isFrozen,s=i(function(){o(1)});r({target:"Object",stat:!0,forced:s},{isFrozen:function(e){return!a(e)||!!o&&o(e)}})},72200(e,t,n){var r=n(82109),i=n(47293),a=n(70111),o=Object.isSealed,s=i(function(){o(1)});r({target:"Object",stat:!0,forced:s},{isSealed:function(e){return!a(e)||!!o&&o(e)}})},43304(e,t,n){var r=n(82109),i=n(81150);r({target:"Object",stat:!0},{is:i})},47941(e,t,n){var r=n(82109),i=n(47908),a=n(81956),o=n(47293)(function(){a(1)});r({target:"Object",stat:!0,forced:o},{keys:function(e){return a(i(e))}})},94869(e,t,n){"use strict";var r=n(82109),i=n(19781),a=n(69026),o=n(47908),s=n(34948),u=n(79518),c=n(31236).f;i&&r({target:"Object",proto:!0,forced:a},{__lookupGetter__:function(e){var t,n=o(this),r=s(e);do if(t=c(n,r))return t.get;while(n=u(n))}})},33952(e,t,n){"use strict";var r=n(82109),i=n(19781),a=n(69026),o=n(47908),s=n(34948),u=n(79518),c=n(31236).f;i&&r({target:"Object",proto:!0,forced:a},{__lookupSetter__:function(e){var t,n=o(this),r=s(e);do if(t=c(n,r))return t.set;while(n=u(n))}})},57227(e,t,n){var r=n(82109),i=n(70111),a=n(62423).onFreeze,o=n(76677),s=n(47293),u=Object.preventExtensions,c=s(function(){u(1)});r({target:"Object",stat:!0,forced:c,sham:!o},{preventExtensions:function(e){return u&&i(e)?u(a(e)):e}})},60514(e,t,n){var r=n(82109),i=n(70111),a=n(62423).onFreeze,o=n(76677),s=n(47293),u=Object.seal,c=s(function(){u(1)});r({target:"Object",stat:!0,forced:c,sham:!o},{seal:function(e){return u&&i(e)?u(a(e)):e}})},68304(e,t,n){var r=n(82109),i=n(27674);r({target:"Object",stat:!0},{setPrototypeOf:i})},41539(e,t,n){var r=n(51694),i=n(31320),a=n(90288);r||i(Object.prototype,"toString",a,{unsafe:!0})},26833(e,t,n){var r=n(82109),i=n(44699).values;r({target:"Object",stat:!0},{values:function(e){return i(e)}})},54678(e,t,n){var r=n(82109),i=n(2814);r({global:!0,forced:parseFloat!=i},{parseFloat:i})},91058(e,t,n){var r=n(82109),i=n(83009);r({global:!0,forced:parseInt!=i},{parseInt:i})},17922(e,t,n){"use strict";var r=n(82109),i=n(13099),a=n(78523),o=n(12534),s=n(20408);r({target:"Promise",stat:!0},{allSettled:function(e){var t=this,n=a.f(t),r=n.resolve,u=n.reject,c=o(function(){var n=i(t.resolve),a=[],o=0,u=1;s(e,function(e){var i=o++,s=!1;a.push(void 0),u++,n.call(t,e).then(function(e){!s&&(s=!0,a[i]={status:"fulfilled",value:e},--u||r(a))},function(e){!s&&(s=!0,a[i]={status:"rejected",reason:e},--u||r(a))})}),--u||r(a)});return c.error&&u(c.value),n.promise}})},34668(e,t,n){"use strict";var r=n(82109),i=n(13099),a=n(35005),o=n(78523),s=n(12534),u=n(20408),c="No one promise resolved";r({target:"Promise",stat:!0},{any:function(e){var t=this,n=o.f(t),r=n.resolve,l=n.reject,f=s(function(){var n=i(t.resolve),o=[],s=0,f=1,d=!1;u(e,function(e){var i=s++,u=!1;o.push(void 0),f++,n.call(t,e).then(function(e){u||d||(d=!0,r(e))},function(e){!u&&!d&&(u=!0,o[i]=e,--f||l(new(a("AggregateError"))(o,c)))})}),--f||l(new(a("AggregateError"))(o,c))});return f.error&&l(f.value),n.promise}})},17727(e,t,n){"use strict";var r=n(82109),i=n(31913),a=n(13366),o=n(47293),s=n(35005),u=n(36707),c=n(69478),l=n(31320),f=!!a&&o(function(){a.prototype.finally.call({then:function(){}},function(){})});if(r({target:"Promise",proto:!0,real:!0,forced:f},{finally:function(e){var t=u(this,s("Promise")),n="function"==typeof e;return this.then(n?function(n){return c(t,e()).then(function(){return n})}:e,n?function(n){return c(t,e()).then(function(){throw n})}:e)}}),!i&&"function"==typeof a){var d=s("Promise").prototype.finally;a.prototype.finally!==d&&l(a.prototype,"finally",d,{unsafe:!0})}},88674(e,t,n){"use strict";var r,i,a,o,s=n(82109),u=n(31913),c=n(17854),l=n(35005),f=n(13366),d=n(31320),h=n(12248),p=n(27674),b=n(58003),m=n(96340),g=n(70111),v=n(13099),y=n(25787),w=n(42788),_=n(20408),E=n(17072),S=n(36707),k=n(20261).set,x=n(95948),T=n(69478),M=n(842),O=n(78523),A=n(12534),L=n(29909),C=n(54705),I=n(5112),D=n(7871),N=n(35268),P=n(7392),R=I("species"),j="Promise",F=L.get,Y=L.set,B=L.getterFor(j),U=f&&f.prototype,H=f,$=U,z=c.TypeError,G=c.document,W=c.process,K=O.f,V=K,q=!!(G&&G.createEvent&&c.dispatchEvent),Z="function"==typeof PromiseRejectionEvent,X="unhandledrejection",J="rejectionhandled",Q=0,ee=1,et=2,en=1,er=2,ei=!1,ea=C(j,function(){var e=w(H),t=e!==String(H);if(!t&&66===P||u&&!$.finally)return!0;if(P>=51&&/native code/.test(e))return!1;var n=new H(function(e){e(1)}),r=function(e){e(function(){},function(){})};return(n.constructor={})[R]=r,!(ei=n.then(function(){}) instanceof r)||!t&&D&&!Z}),eo=ea||!E(function(e){H.all(e).catch(function(){})}),es=function(e){var t;return!!g(e)&&"function"==typeof(t=e.then)&&t},eu=function(e,t){if(!e.notified){e.notified=!0;var n=e.reactions;x(function(){for(var r=e.value,i=e.state==ee,a=0;n.length>a;){var o,s,u,c=n[a++],l=i?c.ok:c.fail,f=c.resolve,d=c.reject,h=c.domain;try{l?(i||(e.rejection===er&&ed(e),e.rejection=en),!0===l?o=r:(h&&h.enter(),o=l(r),h&&(h.exit(),u=!0)),o===c.promise?d(z("Promise-chain cycle")):(s=es(o))?s.call(o,f,d):f(o)):d(r)}catch(p){h&&!u&&h.exit(),d(p)}}e.reactions=[],e.notified=!1,t&&!e.rejection&&el(e)})}},ec=function(e,t,n){var r,i;q?((r=G.createEvent("Event")).promise=t,r.reason=n,r.initEvent(e,!1,!0),c.dispatchEvent(r)):r={promise:t,reason:n},!Z&&(i=c["on"+e])?i(r):e===X&&M("Unhandled promise rejection",n)},el=function(e){k.call(c,function(){var t,n=e.facade,r=e.value;if(ef(e)&&(t=A(function(){N?W.emit("unhandledRejection",r,n):ec(X,n,r)}),e.rejection=N||ef(e)?er:en,t.error))throw t.value})},ef=function(e){return e.rejection!==en&&!e.parent},ed=function(e){k.call(c,function(){var t=e.facade;N?W.emit("rejectionHandled",t):ec(J,t,e.value)})},eh=function(e,t,n){return function(r){e(t,r,n)}},ep=function(e,t,n){e.done||(e.done=!0,n&&(e=n),e.value=t,e.state=et,eu(e,!0))},eb=function(e,t,n){if(!e.done){e.done=!0,n&&(e=n);try{if(e.facade===t)throw z("Promise can't be resolved itself");var r=es(t);r?x(function(){var n={done:!1};try{r.call(t,eh(eb,n,e),eh(ep,n,e))}catch(i){ep(n,i,e)}}):(e.value=t,e.state=ee,eu(e,!1))}catch(i){ep({done:!1},i,e)}}};if(ea&&($=(H=function(e){y(this,H,j),v(e),r.call(this);var t=F(this);try{e(eh(eb,t),eh(ep,t))}catch(n){ep(t,n)}}).prototype,(r=function(e){Y(this,{type:j,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:Q,value:void 0})}).prototype=h($,{then:function(e,t){var n=B(this),r=K(S(this,H));return r.ok="function"!=typeof e||e,r.fail="function"==typeof t&&t,r.domain=N?W.domain:void 0,n.parent=!0,n.reactions.push(r),n.state!=Q&&eu(n,!1),r.promise},catch:function(e){return this.then(void 0,e)}}),i=function(){var e=new r,t=F(e);this.promise=e,this.resolve=eh(eb,t),this.reject=eh(ep,t)},O.f=K=function(e){return e===H||e===a?new i(e):V(e)},!u&&"function"==typeof f&&U!==Object.prototype)){o=U.then,ei||(d(U,"then",function(e,t){var n=this;return new H(function(e,t){o.call(n,e,t)}).then(e,t)},{unsafe:!0}),d(U,"catch",$.catch,{unsafe:!0}));try{delete U.constructor}catch(em){}p&&p(U,$)}s({global:!0,wrap:!0,forced:ea},{Promise:H}),b(H,j,!1,!0),m(j),a=l(j),s({target:j,stat:!0,forced:ea},{reject:function(e){var t=K(this);return t.reject.call(void 0,e),t.promise}}),s({target:j,stat:!0,forced:u||ea},{resolve:function(e){return T(u&&this===a?H:this,e)}}),s({target:j,stat:!0,forced:eo},{all:function(e){var t=this,n=K(t),r=n.resolve,i=n.reject,a=A(function(){var n=v(t.resolve),a=[],o=0,s=1;_(e,function(e){var u=o++,c=!1;a.push(void 0),s++,n.call(t,e).then(function(e){!c&&(c=!0,a[u]=e,--s||r(a))},i)}),--s||r(a)});return a.error&&i(a.value),n.promise},race:function(e){var t=this,n=K(t),r=n.reject,i=A(function(){var i=v(t.resolve);_(e,function(e){i.call(t,e).then(n.resolve,r)})});return i.error&&r(i.value),n.promise}})},36535(e,t,n){var r=n(82109),i=n(35005),a=n(13099),o=n(19670),s=n(47293),u=i("Reflect","apply"),c=Function.apply,l=!s(function(){u(function(){})});r({target:"Reflect",stat:!0,forced:l},{apply:function(e,t,n){return a(e),o(n),u?u(e,t,n):c.call(e,t,n)}})},12419(e,t,n){var r=n(82109),i=n(35005),a=n(13099),o=n(19670),s=n(70111),u=n(70030),c=n(27065),l=n(47293),f=i("Reflect","construct"),d=l(function(){function e(){}return!(f(function(){},[],e) instanceof e)}),h=!l(function(){f(function(){})}),p=d||h;r({target:"Reflect",stat:!0,forced:p,sham:p},{construct:function(e,t){a(e),o(t);var n=arguments.length<3?e:a(arguments[2]);if(h&&!d)return f(e,t,n);if(e==n){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])}var r=[null];return r.push.apply(r,t),new(c.apply(e,r))}var i=n.prototype,l=u(s(i)?i:Object.prototype),p=Function.apply.call(e,l,t);return s(p)?p:l}})},69596(e,t,n){var r=n(82109),i=n(19781),a=n(19670),o=n(34948),s=n(3070),u=n(47293)(function(){Reflect.defineProperty(s.f({},1,{value:1}),1,{value:2})});r({target:"Reflect",stat:!0,forced:u,sham:!i},{defineProperty:function(e,t,n){a(e);var r=o(t);a(n);try{return s.f(e,r,n),!0}catch(i){return!1}}})},52586(e,t,n){var r=n(82109),i=n(19670),a=n(31236).f;r({target:"Reflect",stat:!0},{deleteProperty:function(e,t){var n=a(i(e),t);return(!n||!!n.configurable)&&delete e[t]}})},95683(e,t,n){var r=n(82109),i=n(19781),a=n(19670),o=n(31236);r({target:"Reflect",stat:!0,sham:!i},{getOwnPropertyDescriptor:function(e,t){return o.f(a(e),t)}})},39361(e,t,n){var r=n(82109),i=n(19670),a=n(79518),o=n(49920);r({target:"Reflect",stat:!0,sham:!o},{getPrototypeOf:function(e){return a(i(e))}})},74819(e,t,n){var r=n(82109),i=n(70111),a=n(19670),o=n(45032),s=n(31236),u=n(79518);function c(e,t){var n,r,l=arguments.length<3?e:arguments[2];return a(e)===l?e[t]:(n=s.f(e,t))?o(n)?n.value:void 0===n.get?void 0:n.get.call(l):i(r=u(e))?c(r,t,l):void 0}r({target:"Reflect",stat:!0},{get:c})},51037(e,t,n){n(82109)({target:"Reflect",stat:!0},{has:function(e,t){return t in e}})},5898(e,t,n){var r=n(82109),i=n(19670),a=Object.isExtensible;r({target:"Reflect",stat:!0},{isExtensible:function(e){return i(e),!a||a(e)}})},67556(e,t,n){var r=n(82109),i=n(53887);r({target:"Reflect",stat:!0},{ownKeys:i})},14361(e,t,n){var r=n(82109),i=n(35005),a=n(19670),o=n(76677);r({target:"Reflect",stat:!0,sham:!o},{preventExtensions:function(e){a(e);try{var t=i("Object","preventExtensions");return t&&t(e),!0}catch(n){return!1}}})},39532(e,t,n){var r=n(82109),i=n(19670),a=n(96077),o=n(27674);o&&r({target:"Reflect",stat:!0},{setPrototypeOf:function(e,t){i(e),a(t);try{return o(e,t),!0}catch(n){return!1}}})},83593(e,t,n){var r=n(82109),i=n(19670),a=n(70111),o=n(45032),s=n(47293),u=n(3070),c=n(31236),l=n(79518),f=n(79114);function d(e,t,n){var r,s,h,p=arguments.length<4?e:arguments[3],b=c.f(i(e),t);if(!b){if(a(s=l(e)))return d(s,t,n,p);b=f(0)}if(o(b)){if(!1===b.writable||!a(p))return!1;if(r=c.f(p,t)){if(r.get||r.set||!1===r.writable)return!1;r.value=n,u.f(p,t,r)}else u.f(p,t,f(0,n))}else{if(void 0===(h=b.set))return!1;h.call(p,n)}return!0}var h=s(function(){var e=function(){},t=u.f(new e,"a",{configurable:!0});return!1!==Reflect.set(e.prototype,"a",1,t)});r({target:"Reflect",stat:!0,forced:h},{set:d})},81299(e,t,n){var r=n(82109),i=n(17854),a=n(58003);r({global:!0},{Reflect:{}}),a(i.Reflect,"Reflect",!0)},24603(e,t,n){var r=n(19781),i=n(17854),a=n(54705),o=n(79587),s=n(68880),u=n(3070).f,c=n(8006).f,l=n(47850),f=n(41340),d=n(67066),h=n(52999),p=n(31320),b=n(47293),m=n(86656),g=n(29909).enforce,v=n(96340),y=n(5112),w=n(9441),_=n(38173),E=y("match"),S=i.RegExp,k=S.prototype,x=/^\?<[^\s\d!#%&*+<=>@^][^\s!#%&*+<=>@^]*>/,T=/a/g,M=/a/g,O=new S(T)!==T,A=h.UNSUPPORTED_Y,L=r&&(!O||A||w||_||b(function(){return M[E]=!1,S(T)!=T||S(M)==M||"/a/i"!=S(T,"i")})),C=function(e){for(var t,n=e.length,r=0,i="",a=!1;r<=n;r++){if("\\"===(t=e.charAt(r))){i+=t+e.charAt(++r);continue}a||"."!==t?("["===t?a=!0:"]"===t&&(a=!1),i+=t):i+="[\\s\\S]"}return i},I=function(e){for(var t,n=e.length,r=0,i="",a=[],o={},s=!1,u=!1,c=0,l="";r<=n;r++){if("\\"===(t=e.charAt(r)))t+=e.charAt(++r);else if("]"===t)s=!1;else if(!s)switch(!0){case"["===t:s=!0;break;case"("===t:x.test(e.slice(r+1))&&(r+=2,u=!0),i+=t,c++;continue;case">"===t&&u:if(""===l||m(o,l))throw SyntaxError("Invalid capture group name");o[l]=!0,a.push([l,c]),u=!1,l="";continue}u?l+=t:i+=t}return[i,a]};if(a("RegExp",L)){for(var D=function(e,t){var n,r,i,a,u,c,h=this instanceof D,p=l(e),b=void 0===t,m=[],v=e;if(!h&&p&&b&&e.constructor===D)return e;if((p||e instanceof D)&&(e=e.source,b&&(t=("flags"in v)?v.flags:d.call(v))),e=void 0===e?"":f(e),t=void 0===t?"":f(t),v=e,w&&("dotAll"in T)&&(r=!!t&&t.indexOf("s")>-1)&&(t=t.replace(/s/g,"")),n=t,A&&("sticky"in T)&&(i=!!t&&t.indexOf("y")>-1)&&(t=t.replace(/y/g,"")),_&&(e=(a=I(e))[0],m=a[1]),u=o(S(e,t),h?this:k,D),(r||i||m.length)&&(c=g(u),r&&(c.dotAll=!0,c.raw=D(C(e),n)),i&&(c.sticky=!0),m.length&&(c.groups=m)),e!==v)try{s(u,"source",""===v?"(?:)":v)}catch(y){}return u},N=function(e){(e in D)||u(D,e,{configurable:!0,get:function(){return S[e]},set:function(t){S[e]=t}})},P=c(S),R=0;P.length>R;)N(P[R++]);k.constructor=D,D.prototype=k,p(i,"RegExp",D)}v("RegExp")},28450(e,t,n){var r=n(19781),i=n(9441),a=n(3070).f,o=n(29909).get,s=RegExp.prototype;r&&i&&a(s,"dotAll",{configurable:!0,get:function(){if(this!==s){if(this instanceof RegExp)return!!o(this).dotAll;throw TypeError("Incompatible receiver, RegExp required")}}})},74916(e,t,n){"use strict";var r=n(82109),i=n(22261);r({target:"RegExp",proto:!0,forced:/./.exec!==i},{exec:i})},92087(e,t,n){var r=n(19781),i=n(3070),a=n(67066),o=n(47293);r&&o(function(){return"sy"!==Object.getOwnPropertyDescriptor(RegExp.prototype,"flags").get.call({dotAll:!0,sticky:!0})})&&i.f(RegExp.prototype,"flags",{configurable:!0,get:a})},88386(e,t,n){var r=n(19781),i=n(52999).UNSUPPORTED_Y,a=n(3070).f,o=n(29909).get,s=RegExp.prototype;r&&i&&a(s,"sticky",{configurable:!0,get:function(){if(this!==s){if(this instanceof RegExp)return!!o(this).sticky;throw TypeError("Incompatible receiver, RegExp required")}}})},77601(e,t,n){"use strict";n(74916);var r,i,a=n(82109),o=n(70111),s=(r=!1,(i=/[ac]/).exec=function(){return r=!0,/./.exec.apply(this,arguments)},!0===i.test("abc")&&r),u=/./.test;a({target:"RegExp",proto:!0,forced:!s},{test:function(e){if("function"!=typeof this.exec)return u.call(this,e);var t=this.exec(e);if(null!==t&&!o(t))throw Error("RegExp exec method returned something other than an Object or null");return!!t}})},39714(e,t,n){"use strict";var r=n(31320),i=n(19670),a=n(41340),o=n(47293),s=n(67066),u="toString",c=RegExp.prototype,l=c[u],f=o(function(){return"/a/b"!=l.call({source:"a",flags:"b"})}),d=l.name!=u;(f||d)&&r(RegExp.prototype,u,function(){var e=i(this),t=a(e.source),n=e.flags,r=a(void 0===n&&e instanceof RegExp&&!("flags"in c)?s.call(e):n);return"/"+t+"/"+r},{unsafe:!0})},70189(e,t,n){"use strict";var r=n(77710),i=n(95631);e.exports=r("Set",function(e){return function(){return e(this,arguments.length?arguments[0]:void 0)}},i)},15218(e,t,n){"use strict";var r=n(82109),i=n(14230),a=n(43429);r({target:"String",proto:!0,forced:a("anchor")},{anchor:function(e){return i(this,"a","name",e)}})},24506(e,t,n){"use strict";var r=n(82109),i=n(84488),a=n(99958),o=n(17466),s=n(41340),u=n(47293)(function(){return"\uD842"!=="𠮷".at(0)});r({target:"String",proto:!0,forced:u},{at:function(e){var t=s(i(this)),n=o(t.length),r=a(e),u=r>=0?r:n+r;return u<0||u>=n?void 0:t.charAt(u)}})},74475(e,t,n){"use strict";var r=n(82109),i=n(14230),a=n(43429);r({target:"String",proto:!0,forced:a("big")},{big:function(){return i(this,"big","","")}})},57929(e,t,n){"use strict";var r=n(82109),i=n(14230),a=n(43429);r({target:"String",proto:!0,forced:a("blink")},{blink:function(){return i(this,"blink","","")}})},50915(e,t,n){"use strict";var r=n(82109),i=n(14230),a=n(43429);r({target:"String",proto:!0,forced:a("bold")},{bold:function(){return i(this,"b","","")}})},79841(e,t,n){"use strict";var r=n(82109),i=n(28710).codeAt;r({target:"String",proto:!0},{codePointAt:function(e){return i(this,e)}})},27852(e,t,n){"use strict";var r,i=n(82109),a=n(31236).f,o=n(17466),s=n(41340),u=n(3929),c=n(84488),l=n(84964),f=n(31913),d="".endsWith,h=Math.min,p=l("endsWith"),b=!f&&!p&&!!(r=a(String.prototype,"endsWith"))&&!r.writable;i({target:"String",proto:!0,forced:!b&&!p},{endsWith:function(e){var t=s(c(this));u(e);var n=arguments.length>1?arguments[1]:void 0,r=o(t.length),i=void 0===n?r:h(o(n),r),a=s(e);return d?d.call(t,a,i):t.slice(i-a.length,i)===a}})},29253(e,t,n){"use strict";var r=n(82109),i=n(14230),a=n(43429);r({target:"String",proto:!0,forced:a("fixed")},{fixed:function(){return i(this,"tt","","")}})},42125(e,t,n){"use strict";var r=n(82109),i=n(14230),a=n(43429);r({target:"String",proto:!0,forced:a("fontcolor")},{fontcolor:function(e){return i(this,"font","color",e)}})},78830(e,t,n){"use strict";var r=n(82109),i=n(14230),a=n(43429);r({target:"String",proto:!0,forced:a("fontsize")},{fontsize:function(e){return i(this,"font","size",e)}})},94953(e,t,n){var r=n(82109),i=n(51400),a=String.fromCharCode,o=String.fromCodePoint;r({target:"String",stat:!0,forced:!!o&&1!=o.length},{fromCodePoint:function(e){for(var t,n=[],r=arguments.length,o=0;r>o;){if(t=+arguments[o++],i(t,1114111)!==t)throw RangeError(t+" is not a valid code point");n.push(t<65536?a(t):a(((t-=65536)>>10)+55296,t%1024+56320))}return n.join("")}})},32023(e,t,n){"use strict";var r=n(82109),i=n(3929),a=n(84488),o=n(41340),s=n(84964);r({target:"String",proto:!0,forced:!s("includes")},{includes:function(e){return!!~o(a(this)).indexOf(o(i(e)),arguments.length>1?arguments[1]:void 0)}})},58734(e,t,n){"use strict";var r=n(82109),i=n(14230),a=n(43429);r({target:"String",proto:!0,forced:a("italics")},{italics:function(){return i(this,"i","","")}})},78783(e,t,n){"use strict";var r=n(28710).charAt,i=n(41340),a=n(29909),o=n(70654),s="String Iterator",u=a.set,c=a.getterFor(s);o(String,"String",function(e){u(this,{type:s,string:i(e),index:0})},function(){var e,t=c(this),n=t.string,i=t.index;return i>=n.length?{value:void 0,done:!0}:(e=r(n,i),t.index+=e.length,{value:e,done:!1})})},29254(e,t,n){"use strict";var r=n(82109),i=n(14230),a=n(43429);r({target:"String",proto:!0,forced:a("link")},{link:function(e){return i(this,"a","href",e)}})},76373(e,t,n){"use strict";var r=n(82109),i=n(24994),a=n(84488),o=n(17466),s=n(41340),u=n(13099),c=n(19670),l=n(84326),f=n(47850),d=n(67066),h=n(68880),p=n(47293),b=n(5112),m=n(36707),g=n(31530),v=n(29909),y=n(31913),w=b("matchAll"),_="RegExp String",E=_+" Iterator",S=v.set,k=v.getterFor(E),x=RegExp.prototype,T=x.exec,M="".matchAll,O=!!M&&!p(function(){"a".matchAll(/./)}),A=function(e,t){var n,r=e.exec;if("function"==typeof r){if("object"!=typeof(n=r.call(e,t)))throw TypeError("Incorrect exec result");return n}return T.call(e,t)},L=i(function(e,t,n,r){S(this,{type:E,regexp:e,string:t,global:n,unicode:r,done:!1})},_,function(){var e=k(this);if(e.done)return{value:void 0,done:!0};var t=e.regexp,n=e.string,r=A(t,n);return null===r?{value:void 0,done:e.done=!0}:e.global?(""===s(r[0])&&(t.lastIndex=g(n,o(t.lastIndex),e.unicode)),{value:r,done:!1}):(e.done=!0,{value:r,done:!1})}),C=function(e){var t,n,r,i,a,u,l=c(this),f=s(e);return t=m(l,RegExp),void 0===(n=l.flags)&&l instanceof RegExp&&!("flags"in x)&&(n=d.call(l)),r=void 0===n?"":s(n),i=new t(t===RegExp?l.source:l,r),a=!!~r.indexOf("g"),u=!!~r.indexOf("u"),i.lastIndex=o(l.lastIndex),new L(i,f,a,u)};r({target:"String",proto:!0,forced:O},{matchAll:function(e){var t,n,r,i,o=a(this);if(null!=e){if(f(e)&&!~(t=s(a("flags"in x?e.flags:d.call(e)))).indexOf("g"))throw TypeError("`.matchAll` does not allow non-global regexes");if(O)return M.apply(o,arguments);if(void 0===(r=e[w])&&y&&"RegExp"==l(e)&&(r=C),null!=r)return u(r).call(e,o)}else if(O)return M.apply(o,arguments);return n=s(o),i=RegExp(e,"g"),y?C.call(i,n):i[w](n)}}),y||w in x||h(x,w,C)},4723(e,t,n){"use strict";var r=n(27007),i=n(19670),a=n(17466),o=n(41340),s=n(84488),u=n(31530),c=n(97651);r("match",function(e,t,n){return[function(t){var n=s(this),r=void 0==t?void 0:t[e];return void 0!==r?r.call(t,n):RegExp(t)[e](o(n))},function(e){var r,s=i(this),l=o(e),f=n(t,s,l);if(f.done)return f.value;if(!s.global)return c(s,l);var d=s.unicode;s.lastIndex=0;for(var h=[],p=0;null!==(r=c(s,l));){var b=o(r[0]);h[p]=b,""===b&&(s.lastIndex=u(l,a(s.lastIndex),d)),p++}return 0===p?null:h}]})},66528(e,t,n){"use strict";var r=n(82109),i=n(76650).end,a=n(54986);r({target:"String",proto:!0,forced:a},{padEnd:function(e){return i(this,e,arguments.length>1?arguments[1]:void 0)}})},83112(e,t,n){"use strict";var r=n(82109),i=n(76650).start,a=n(54986);r({target:"String",proto:!0,forced:a},{padStart:function(e){return i(this,e,arguments.length>1?arguments[1]:void 0)}})},38992(e,t,n){var r=n(82109),i=n(45656),a=n(17466),o=n(41340);r({target:"String",stat:!0},{raw:function(e){for(var t=i(e.raw),n=a(t.length),r=arguments.length,s=[],u=0;n>u;)s.push(o(t[u++])),ue.length?-1:""===t?n:e.indexOf(t,n)};r({target:"String",proto:!0},{replaceAll:function(e,t){var n,r,c,b,m,g,v,y,w,_=i(this),E=0,S=0,k="";if(null!=e){if((n=a(e))&&!~(r=o(i("flags"in d?e.flags:s.call(e)))).indexOf("g"))throw TypeError("`.replaceAll` does not allow non-global regexes");if(void 0!==(c=e[f]))return c.call(e,_,t);if(l&&n)return o(_).replace(e,t)}for(b=o(_),m=o(e),(g="function"==typeof t)||(t=o(t)),y=h(1,v=m.length),E=p(b,m,0);-1!==E;)w=g?o(t(m,E,b)):u(m,b,E,[],void 0,t),k+=b.slice(S,E)+w,S=E+v,E=p(b,m,E+y);return S")});r("replace",function(e,t,n){var r=v?"$":"$0";return[function(e,n){var r=c(this),i=void 0==e?void 0:e[h];return void 0!==i?i.call(e,r,n):t.call(u(r),e,n)},function(e,i){var c=a(this),h=u(e);if("string"==typeof i&&-1===i.indexOf(r)&&-1===i.indexOf("$<")){var g=n(t,c,h,i);if(g.done)return g.value}var v="function"==typeof i;v||(i=u(i));var y=c.global;if(y){var w=c.unicode;c.lastIndex=0}for(var _=[];;){var E=d(c,h);if(null===E||(_.push(E),!y))break;""===u(E[0])&&(c.lastIndex=l(h,s(c.lastIndex),w))}for(var S="",k=0,x=0;x<_.length;x++){for(var T=u((E=_[x])[0]),M=p(b(o(E.index),h.length),0),O=[],A=1;A=k&&(S+=h.slice(k,M)+I,k=M+T.length)}return S+h.slice(k)}]},!y||!g||v)},64765(e,t,n){"use strict";var r=n(27007),i=n(19670),a=n(84488),o=n(81150),s=n(41340),u=n(97651);r("search",function(e,t,n){return[function(t){var n=a(this),r=void 0==t?void 0:t[e];return void 0!==r?r.call(t,n):RegExp(t)[e](s(n))},function(e){var r=i(this),a=s(e),c=n(t,r,a);if(c.done)return c.value;var l=r.lastIndex;o(l,0)||(r.lastIndex=0);var f=u(r,a);return o(r.lastIndex,l)||(r.lastIndex=l),null===f?-1:f.index}]})},37268(e,t,n){"use strict";var r=n(82109),i=n(14230),a=n(43429);r({target:"String",proto:!0,forced:a("small")},{small:function(){return i(this,"small","","")}})},23123(e,t,n){"use strict";var r=n(27007),i=n(47850),a=n(19670),o=n(84488),s=n(36707),u=n(31530),c=n(17466),l=n(41340),f=n(97651),d=n(22261),h=n(52999),p=n(47293),b=h.UNSUPPORTED_Y,m=[].push,g=Math.min,v=4294967295,y=!p(function(){var e=/(?:)/,t=e.exec;e.exec=function(){return t.apply(this,arguments)};var n="ab".split(e);return 2!==n.length||"a"!==n[0]||"b"!==n[1]});r("split",function(e,t,n){var r;return r="c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1).length||2!="ab".split(/(?:ab)*/).length||4!=".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length?function(e,n){var r,a,s,u=l(o(this)),c=void 0===n?v:n>>>0;if(0===c)return[];if(void 0===e)return[u];if(!i(e))return t.call(u,e,c);for(var f=[],h=(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.unicode?"u":"")+(e.sticky?"y":""),p=0,b=RegExp(e.source,h+"g");(r=d.call(b,u))&&(!((a=b.lastIndex)>p)||(f.push(u.slice(p,r.index)),r.length>1&&r.index=c)));)b.lastIndex===r.index&&b.lastIndex++;return p===u.length?(s||!b.test(""))&&f.push(""):f.push(u.slice(p)),f.length>c?f.slice(0,c):f}:"0".split(void 0,0).length?function(e,n){return void 0===e&&0===n?[]:t.call(this,e,n)}:t,[function(t,n){var i=o(this),a=void 0==t?void 0:t[e];return void 0!==a?a.call(t,i,n):r.call(l(i),t,n)},function(e,i){var o=a(this),d=l(e),h=n(r,o,d,i,r!==t);if(h.done)return h.value;var p=s(o,RegExp),m=o.unicode,y=(o.ignoreCase?"i":"")+(o.multiline?"m":"")+(o.unicode?"u":"")+(b?"g":"y"),w=new p(b?"^(?:"+o.source+")":o,y),_=void 0===i?v:i>>>0;if(0===_)return[];if(0===d.length)return null===f(w,d)?[d]:[];for(var E=0,S=0,k=[];S1?arguments[1]:void 0,t.length)),r=s(e);return d?d.call(t,r,n):t.slice(n,n+r.length)===r}})},7397(e,t,n){"use strict";var r=n(82109),i=n(14230),a=n(43429);r({target:"String",proto:!0,forced:a("strike")},{strike:function(){return i(this,"strike","","")}})},60086(e,t,n){"use strict";var r=n(82109),i=n(14230),a=n(43429);r({target:"String",proto:!0,forced:a("sub")},{sub:function(){return i(this,"sub","","")}})},83650(e,t,n){"use strict";var r=n(82109),i=n(84488),a=n(99958),o=n(41340),s="".slice,u=Math.max,c=Math.min;r({target:"String",proto:!0},{substr:function(e,t){var n,r,l=o(i(this)),f=l.length,d=a(e);return(d===1/0&&(d=0),d<0&&(d=u(f+d,0)),(n=void 0===t?f:a(t))<=0||n===1/0)?"":(r=c(d+n,f),d>=r?"":s.call(l,d,r))}})},80623(e,t,n){"use strict";var r=n(82109),i=n(14230),a=n(43429);r({target:"String",proto:!0,forced:a("sup")},{sup:function(){return i(this,"sup","","")}})},48702(e,t,n){"use strict";var r=n(82109),i=n(53111).end,a=n(76091)("trimEnd"),o=a?function(){return i(this)}:"".trimEnd;r({target:"String",proto:!0,forced:a},{trimEnd:o,trimRight:o})},55674(e,t,n){"use strict";var r=n(82109),i=n(53111).start,a=n(76091)("trimStart"),o=a?function(){return i(this)}:"".trimStart;r({target:"String",proto:!0,forced:a},{trimStart:o,trimLeft:o})},73210(e,t,n){"use strict";var r=n(82109),i=n(53111).trim,a=n(76091);r({target:"String",proto:!0,forced:a("trim")},{trim:function(){return i(this)}})},72443(e,t,n){n(97235)("asyncIterator")},41817(e,t,n){"use strict";var r=n(82109),i=n(19781),a=n(17854),o=n(86656),s=n(70111),u=n(3070).f,c=n(99920),l=a.Symbol;if(i&&"function"==typeof l&&(!("description"in l.prototype)||void 0!==l().description)){var f={},d=function(){var e=arguments.length<1||void 0===arguments[0]?void 0:String(arguments[0]),t=this instanceof d?new l(e):void 0===e?l():l(e);return""===e&&(f[t]=!0),t};c(d,l);var h=d.prototype=l.prototype;h.constructor=d;var p=h.toString,b="Symbol(test)"==String(l("test")),m=/^Symbol\((.*)\)[^)]+$/;u(h,"description",{configurable:!0,get:function(){var e=s(this)?this.valueOf():this,t=p.call(e);if(o(f,e))return"";var n=b?t.slice(7,-1):t.replace(m,"$1");return""===n?void 0:n}}),r({global:!0,forced:!0},{Symbol:d})}},92401(e,t,n){n(97235)("hasInstance")},8722(e,t,n){n(97235)("isConcatSpreadable")},32165(e,t,n){n(97235)("iterator")},82526(e,t,n){"use strict";var r=n(82109),i=n(17854),a=n(35005),o=n(31913),s=n(19781),u=n(30133),c=n(47293),l=n(86656),f=n(43157),d=n(70111),h=n(52190),p=n(19670),b=n(47908),m=n(45656),g=n(34948),v=n(41340),y=n(79114),w=n(70030),_=n(81956),E=n(8006),S=n(1156),k=n(25181),x=n(31236),T=n(3070),M=n(55296),O=n(68880),A=n(31320),L=n(72309),C=n(6200),I=n(3501),D=n(69711),N=n(5112),P=n(6061),R=n(97235),j=n(58003),F=n(29909),Y=n(42092).forEach,B=C("hidden"),U="Symbol",H="prototype",$=N("toPrimitive"),z=F.set,G=F.getterFor(U),W=Object[H],K=i.Symbol,V=a("JSON","stringify"),q=x.f,Z=T.f,X=S.f,J=M.f,Q=L("symbols"),ee=L("op-symbols"),et=L("string-to-symbol-registry"),en=L("symbol-to-string-registry"),er=L("wks"),ei=i.QObject,ea=!ei||!ei[H]||!ei[H].findChild,eo=s&&c(function(){return 7!=w(Z({},"a",{get:function(){return Z(this,"a",{value:7}).a}})).a})?function(e,t,n){var r=q(W,t);r&&delete W[t],Z(e,t,n),r&&e!==W&&Z(W,t,r)}:Z,es=function(e,t){var n=Q[e]=w(K[H]);return z(n,{type:U,tag:e,description:t}),s||(n.description=t),n},eu=function(e,t,n){e===W&&eu(ee,t,n),p(e);var r=g(t);return(p(n),l(Q,r))?(n.enumerable?(l(e,B)&&e[B][r]&&(e[B][r]=!1),n=w(n,{enumerable:y(0,!1)})):(l(e,B)||Z(e,B,y(1,{})),e[B][r]=!0),eo(e,r,n)):Z(e,r,n)},ec=function(e,t){p(e);var n=m(t),r=_(n).concat(ep(n));return Y(r,function(t){(!s||ef.call(n,t))&&eu(e,t,n[t])}),e},el=function(e,t){return void 0===t?w(e):ec(w(e),t)},ef=function(e){var t=g(e),n=J.call(this,t);return(!(this===W&&l(Q,t))||!!l(ee,t))&&(!(n||!l(this,t)||!l(Q,t)||l(this,B)&&this[B][t])||n)},ed=function(e,t){var n=m(e),r=g(t);if(!(n===W&&l(Q,r))||l(ee,r)){var i=q(n,r);return i&&l(Q,r)&&!(l(n,B)&&n[B][r])&&(i.enumerable=!0),i}},eh=function(e){var t=X(m(e)),n=[];return Y(t,function(e){l(Q,e)||l(I,e)||n.push(e)}),n},ep=function(e){var t=e===W,n=X(t?ee:m(e)),r=[];return Y(n,function(e){l(Q,e)&&(!t||l(W,e))&&r.push(Q[e])}),r};if(u||(A((K=function(){if(this instanceof K)throw TypeError("Symbol is not a constructor");var e=arguments.length&&void 0!==arguments[0]?v(arguments[0]):void 0,t=D(e),n=function(e){this===W&&n.call(ee,e),l(this,B)&&l(this[B],t)&&(this[B][t]=!1),eo(this,t,y(1,e))};return s&&ea&&eo(W,t,{configurable:!0,set:n}),es(t,e)})[H],"toString",function(){return G(this).tag}),A(K,"withoutSetter",function(e){return es(D(e),e)}),M.f=ef,T.f=eu,x.f=ed,E.f=S.f=eh,k.f=ep,P.f=function(e){return es(N(e),e)},s&&(Z(K[H],"description",{configurable:!0,get:function(){return G(this).description}}),o||A(W,"propertyIsEnumerable",ef,{unsafe:!0}))),r({global:!0,wrap:!0,forced:!u,sham:!u},{Symbol:K}),Y(_(er),function(e){R(e)}),r({target:U,stat:!0,forced:!u},{for:function(e){var t=v(e);if(l(et,t))return et[t];var n=K(t);return et[t]=n,en[n]=t,n},keyFor:function(e){if(!h(e))throw TypeError(e+" is not a symbol");if(l(en,e))return en[e]},useSetter:function(){ea=!0},useSimple:function(){ea=!1}}),r({target:"Object",stat:!0,forced:!u,sham:!s},{create:el,defineProperty:eu,defineProperties:ec,getOwnPropertyDescriptor:ed}),r({target:"Object",stat:!0,forced:!u},{getOwnPropertyNames:eh,getOwnPropertySymbols:ep}),r({target:"Object",stat:!0,forced:c(function(){k.f(1)})},{getOwnPropertySymbols:function(e){return k.f(b(e))}}),V){var eb=!u||c(function(){var e=K();return"[null]"!=V([e])||"{}"!=V({a:e})||"{}"!=V(Object(e))});r({target:"JSON",stat:!0,forced:eb},{stringify:function(e,t,n){for(var r,i=[e],a=1;arguments.length>a;)i.push(arguments[a++]);if(r=t,!(!d(t)&&void 0===e||h(e)))return f(t)||(t=function(e,t){if("function"==typeof r&&(t=r.call(this,e,t)),!h(t))return t}),i[1]=t,V.apply(null,i)}})}K[H][$]||O(K[H],$,K[H].valueOf),j(K,U),I[B]=!0},16066(e,t,n){n(97235)("matchAll")},69007(e,t,n){n(97235)("match")},83510(e,t,n){n(97235)("replace")},41840(e,t,n){n(97235)("search")},6982(e,t,n){n(97235)("species")},32159(e,t,n){n(97235)("split")},96649(e,t,n){n(97235)("toPrimitive")},39341(e,t,n){n(97235)("toStringTag")},60543(e,t,n){n(97235)("unscopables")},48675(e,t,n){"use strict";var r=n(90260),i=n(17466),a=n(99958),o=r.aTypedArray;(0,r.exportTypedArrayMethod)("at",function(e){var t=o(this),n=i(t.length),r=a(e),s=r>=0?r:n+r;return s<0||s>=n?void 0:t[s]})},92990(e,t,n){"use strict";var r=n(90260),i=n(1048),a=r.aTypedArray;(0,r.exportTypedArrayMethod)("copyWithin",function(e,t){return i.call(a(this),e,t,arguments.length>2?arguments[2]:void 0)})},18927(e,t,n){"use strict";var r=n(90260),i=n(42092).every,a=r.aTypedArray;(0,r.exportTypedArrayMethod)("every",function(e){return i(a(this),e,arguments.length>1?arguments[1]:void 0)})},33105(e,t,n){"use strict";var r=n(90260),i=n(21285),a=r.aTypedArray;(0,r.exportTypedArrayMethod)("fill",function(e){return i.apply(a(this),arguments)})},35035(e,t,n){"use strict";var r=n(90260),i=n(42092).filter,a=n(43074),o=r.aTypedArray;(0,r.exportTypedArrayMethod)("filter",function(e){var t=i(o(this),e,arguments.length>1?arguments[1]:void 0);return a(this,t)})},7174(e,t,n){"use strict";var r=n(90260),i=n(42092).findIndex,a=r.aTypedArray;(0,r.exportTypedArrayMethod)("findIndex",function(e){return i(a(this),e,arguments.length>1?arguments[1]:void 0)})},74345(e,t,n){"use strict";var r=n(90260),i=n(42092).find,a=r.aTypedArray;(0,r.exportTypedArrayMethod)("find",function(e){return i(a(this),e,arguments.length>1?arguments[1]:void 0)})},44197(e,t,n){n(19843)("Float32",function(e){return function(t,n,r){return e(this,t,n,r)}})},76495(e,t,n){n(19843)("Float64",function(e){return function(t,n,r){return e(this,t,n,r)}})},32846(e,t,n){"use strict";var r=n(90260),i=n(42092).forEach,a=r.aTypedArray;(0,r.exportTypedArrayMethod)("forEach",function(e){i(a(this),e,arguments.length>1?arguments[1]:void 0)})},98145(e,t,n){"use strict";var r=n(63832),i=n(90260).exportTypedArrayStaticMethod,a=n(97321);i("from",a,r)},44731(e,t,n){"use strict";var r=n(90260),i=n(41318).includes,a=r.aTypedArray;(0,r.exportTypedArrayMethod)("includes",function(e){return i(a(this),e,arguments.length>1?arguments[1]:void 0)})},77209(e,t,n){"use strict";var r=n(90260),i=n(41318).indexOf,a=r.aTypedArray;(0,r.exportTypedArrayMethod)("indexOf",function(e){return i(a(this),e,arguments.length>1?arguments[1]:void 0)})},35109(e,t,n){n(19843)("Int16",function(e){return function(t,n,r){return e(this,t,n,r)}})},65125(e,t,n){n(19843)("Int32",function(e){return function(t,n,r){return e(this,t,n,r)}})},87145(e,t,n){n(19843)("Int8",function(e){return function(t,n,r){return e(this,t,n,r)}})},96319(e,t,n){"use strict";var r=n(17854),i=n(90260),a=n(66992),o=n(5112)("iterator"),s=r.Uint8Array,u=a.values,c=a.keys,l=a.entries,f=i.aTypedArray,d=i.exportTypedArrayMethod,h=s&&s.prototype[o],p=!!h&&("values"==h.name||void 0==h.name),b=function(){return u.call(f(this))};d("entries",function(){return l.call(f(this))}),d("keys",function(){return c.call(f(this))}),d("values",b,!p),d(o,b,!p)},58867(e,t,n){"use strict";var r=n(90260),i=r.aTypedArray,a=r.exportTypedArrayMethod,o=[].join;a("join",function(e){return o.apply(i(this),arguments)})},37789(e,t,n){"use strict";var r=n(90260),i=n(86583),a=r.aTypedArray;(0,r.exportTypedArrayMethod)("lastIndexOf",function(e){return i.apply(a(this),arguments)})},33739(e,t,n){"use strict";var r=n(90260),i=n(42092).map,a=n(66304),o=r.aTypedArray;(0,r.exportTypedArrayMethod)("map",function(e){return i(o(this),e,arguments.length>1?arguments[1]:void 0,function(e,t){return new(a(e))(t)})})},95206(e,t,n){"use strict";var r=n(90260),i=n(63832),a=r.aTypedArrayConstructor;(0,r.exportTypedArrayStaticMethod)("of",function(){for(var e=0,t=arguments.length,n=new(a(this))(t);t>e;)n[e]=arguments[e++];return n},i)},14483(e,t,n){"use strict";var r=n(90260),i=n(53671).right,a=r.aTypedArray;(0,r.exportTypedArrayMethod)("reduceRight",function(e){return i(a(this),e,arguments.length,arguments.length>1?arguments[1]:void 0)})},29368(e,t,n){"use strict";var r=n(90260),i=n(53671).left,a=r.aTypedArray;(0,r.exportTypedArrayMethod)("reduce",function(e){return i(a(this),e,arguments.length,arguments.length>1?arguments[1]:void 0)})},12056(e,t,n){"use strict";var r=n(90260),i=r.aTypedArray,a=r.exportTypedArrayMethod,o=Math.floor;a("reverse",function(){for(var e,t=this,n=i(t).length,r=o(n/2),a=0;a1?arguments[1]:void 0,1),n=this.length,r=o(e),s=i(r.length),c=0;if(s+t>n)throw RangeError("Wrong length");for(;ca;)c[a]=n[a++];return c},c)},27462(e,t,n){"use strict";var r=n(90260),i=n(42092).some,a=r.aTypedArray;(0,r.exportTypedArrayMethod)("some",function(e){return i(a(this),e,arguments.length>1?arguments[1]:void 0)})},33824(e,t,n){"use strict";var r=n(90260),i=n(17854),a=n(47293),o=n(13099),s=n(17466),u=n(94362),c=n(68886),l=n(30256),f=n(7392),d=n(98008),h=r.aTypedArray,p=r.exportTypedArrayMethod,b=i.Uint16Array,m=b&&b.prototype.sort,g=!!m&&!a(function(){var e=new b(2);e.sort(null),e.sort({})}),v=!!m&&!a(function(){if(f)return f<74;if(c)return c<67;if(l)return!0;if(d)return d<602;var e,t,n=new b(516),r=Array(516);for(e=0;e<516;e++)t=e%4,n[e]=515-e,r[e]=e-2*t+3;for(n.sort(function(e,t){return(e/4|0)-(t/4|0)}),e=0;e<516;e++)if(n[e]!==r[e])return!0}),y=function(e){return function(t,n){return void 0!==e?+e(t,n)||0:n!=n?-1:t!=t?1:0===t&&0===n?1/t>0&&1/n<0?1:-1:t>n}};p("sort",function(e){var t,n=this;if(void 0!==e&&o(e),v)return m.call(n,e);h(n);var r=s(n.length),i=Array(r);for(t=0;t1?arguments[1]:void 0)}}),a("filterOut")},34286(e,t,n){"use strict";var r=n(82109),i=n(42092).filterReject,a=n(51223);r({target:"Array",proto:!0},{filterReject:function(e){return i(this,e,arguments.length>1?arguments[1]:void 0)}}),a("filterReject")},77461(e,t,n){"use strict";var r=n(82109),i=n(9671).findLastIndex,a=n(51223);r({target:"Array",proto:!0},{findLastIndex:function(e){return i(this,e,arguments.length>1?arguments[1]:void 0)}}),a("findLastIndex")},3048(e,t,n){"use strict";var r=n(82109),i=n(9671).findLast,a=n(51223);r({target:"Array",proto:!0},{findLast:function(e){return i(this,e,arguments.length>1?arguments[1]:void 0)}}),a("findLast")},1999(e,t,n){"use strict";var r=n(82109),i=n(61386),a=n(77475),o=n(51223);r({target:"Array",proto:!0},{groupBy:function(e){var t=arguments.length>1?arguments[1]:void 0;return i(this,e,t,a)}}),o("groupBy")},8e4(e,t,n){var r=n(82109),i=n(43157),a=Object.isFrozen,o=function(e,t){if(!a||!i(e)||!a(e))return!1;for(var n,r=0,o=e.length;r1?arguments[1]:void 0,3);return!u(n,function(e,n,i){if(!r(n,e,t))return i()},{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).stopped}})},71957(e,t,n){"use strict";var r=n(82109),i=n(31913),a=n(35005),o=n(19670),s=n(13099),u=n(49974),c=n(36707),l=n(54647),f=n(20408);r({target:"Map",proto:!0,real:!0,forced:i},{filter:function(e){var t=o(this),n=l(t),r=u(e,arguments.length>1?arguments[1]:void 0,3),i=new(c(t,a("Map"))),d=s(i.set);return f(n,function(e,n){r(n,e,t)&&d.call(i,e,n)},{AS_ENTRIES:!0,IS_ITERATOR:!0}),i}})},103(e,t,n){"use strict";var r=n(82109),i=n(31913),a=n(19670),o=n(49974),s=n(54647),u=n(20408);r({target:"Map",proto:!0,real:!0,forced:i},{findKey:function(e){var t=a(this),n=s(t),r=o(e,arguments.length>1?arguments[1]:void 0,3);return u(n,function(e,n,i){if(r(n,e,t))return i(e)},{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).result}})},96306(e,t,n){"use strict";var r=n(82109),i=n(31913),a=n(19670),o=n(49974),s=n(54647),u=n(20408);r({target:"Map",proto:!0,real:!0,forced:i},{find:function(e){var t=a(this),n=s(t),r=o(e,arguments.length>1?arguments[1]:void 0,3);return u(n,function(e,n,i){if(r(n,e,t))return i(n)},{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).result}})},8582(e,t,n){var r=n(82109),i=n(27296);r({target:"Map",stat:!0},{from:i})},90618(e,t,n){"use strict";var r=n(82109),i=n(20408),a=n(13099);r({target:"Map",stat:!0},{groupBy:function(e,t){var n=new this;a(t);var r=a(n.has),o=a(n.get),s=a(n.set);return i(e,function(e){var i=t(e);r.call(n,i)?o.call(n,i).push(e):s.call(n,i,[e])}),n}})},74592(e,t,n){"use strict";var r=n(82109),i=n(31913),a=n(19670),o=n(54647),s=n(46465),u=n(20408);r({target:"Map",proto:!0,real:!0,forced:i},{includes:function(e){return u(o(a(this)),function(t,n,r){if(s(n,e))return r()},{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).stopped}})},88440(e,t,n){"use strict";var r=n(82109),i=n(20408),a=n(13099);r({target:"Map",stat:!0},{keyBy:function(e,t){var n=new this;a(t);var r=a(n.set);return i(e,function(e){r.call(n,t(e),e)}),n}})},58276(e,t,n){"use strict";var r=n(82109),i=n(31913),a=n(19670),o=n(54647),s=n(20408);r({target:"Map",proto:!0,real:!0,forced:i},{keyOf:function(e){return s(o(a(this)),function(t,n,r){if(n===e)return r(t)},{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).result}})},35082(e,t,n){"use strict";var r=n(82109),i=n(31913),a=n(35005),o=n(19670),s=n(13099),u=n(49974),c=n(36707),l=n(54647),f=n(20408);r({target:"Map",proto:!0,real:!0,forced:i},{mapKeys:function(e){var t=o(this),n=l(t),r=u(e,arguments.length>1?arguments[1]:void 0,3),i=new(c(t,a("Map"))),d=s(i.set);return f(n,function(e,n){d.call(i,r(n,e,t),n)},{AS_ENTRIES:!0,IS_ITERATOR:!0}),i}})},12813(e,t,n){"use strict";var r=n(82109),i=n(31913),a=n(35005),o=n(19670),s=n(13099),u=n(49974),c=n(36707),l=n(54647),f=n(20408);r({target:"Map",proto:!0,real:!0,forced:i},{mapValues:function(e){var t=o(this),n=l(t),r=u(e,arguments.length>1?arguments[1]:void 0,3),i=new(c(t,a("Map"))),d=s(i.set);return f(n,function(e,n){d.call(i,e,r(n,e,t))},{AS_ENTRIES:!0,IS_ITERATOR:!0}),i}})},18222(e,t,n){"use strict";var r=n(82109),i=n(31913),a=n(19670),o=n(13099),s=n(20408);r({target:"Map",proto:!0,real:!0,forced:i},{merge:function(e){for(var t=a(this),n=o(t.set),r=arguments.length,i=0;i1?arguments[1]:void 0,3);return u(n,function(e,n,i){if(r(n,e,t))return i()},{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).stopped}})},74442(e,t,n){"use strict";var r=n(82109),i=n(31913),a=n(8154);r({target:"Map",proto:!0,real:!0,forced:i},{updateOrInsert:a})},7512(e,t,n){"use strict";var r=n(82109),i=n(31913),a=n(19670),o=n(13099);r({target:"Map",proto:!0,real:!0,forced:i},{update:function(e,t){var n=a(this),r=arguments.length;o(t);var i=n.has(e);if(!i&&r<3)throw TypeError("Updating absent value");var s=i?n.get(e):o(r>2?arguments[2]:void 0)(e,n);return n.set(e,t(s,e,n)),n}})},87713(e,t,n){"use strict";var r=n(82109),i=n(31913),a=n(8154);r({target:"Map",proto:!0,real:!0,forced:i},{upsert:a})},46603(e,t,n){var r=n(82109),i=Math.min,a=Math.max;r({target:"Math",stat:!0},{clamp:function(e,t,n){return i(n,a(t,e))}})},70100(e,t,n){n(82109)({target:"Math",stat:!0},{DEG_PER_RAD:Math.PI/180})},26429(e,t,n){var r=n(82109),i=180/Math.PI;r({target:"Math",stat:!0},{degrees:function(e){return e*i}})},13187(e,t,n){var r=n(82109),i=n(47103),a=n(26130);r({target:"Math",stat:!0},{fscale:function(e,t,n,r,o){return a(i(e,t,n,r,o))}})},60092(e,t,n){n(82109)({target:"Math",stat:!0},{iaddh:function(e,t,n,r){var i=e>>>0,a=n>>>0;return(t>>>0)+(r>>>0)+((i&a|(i|a)&~(i+a>>>0))>>>31)|0}})},19041(e,t,n){n(82109)({target:"Math",stat:!0},{imulh:function(e,t){var n=65535,r=+e,i=+t,a=r&n,o=i&n,s=r>>16,u=i>>16,c=(s*o>>>0)+(a*o>>>16);return s*u+(c>>16)+((a*u>>>0)+(c&n)>>16)}})},30666(e,t,n){n(82109)({target:"Math",stat:!0},{isubh:function(e,t,n,r){var i=e>>>0,a=n>>>0;return(t>>>0)-(r>>>0)-((~i&a|~(i^a)&i-a>>>0)>>>31)|0}})},51638(e,t,n){n(82109)({target:"Math",stat:!0},{RAD_PER_DEG:180/Math.PI})},62975(e,t,n){var r=n(82109),i=Math.PI/180;r({target:"Math",stat:!0},{radians:function(e){return e*i}})},15728(e,t,n){var r=n(82109),i=n(47103);r({target:"Math",stat:!0},{scale:i})},46056(e,t,n){var r=n(82109),i=n(19670),a=n(77023),o=n(24994),s=n(29909),u="Seeded Random",c=u+" Generator",l=s.set,f=s.getterFor(c),d='Math.seededPRNG() argument should have a "seed" field with a finite value.',h=o(function(e){l(this,{type:c,seed:e%2147483647})},u,function(){var e=f(this);return{value:(1073741823&(e.seed=(1103515245*e.seed+12345)%2147483647))/1073741823,done:!1}});r({target:"Math",stat:!0,forced:!0},{seededPRNG:function(e){var t=i(e).seed;if(!a(t))throw TypeError(d);return new h(t)}})},44299(e,t,n){n(82109)({target:"Math",stat:!0},{signbit:function(e){return(e=+e)==e&&0==e?1/e==-1/0:e<0}})},5162(e,t,n){n(82109)({target:"Math",stat:!0},{umulh:function(e,t){var n=65535,r=+e,i=+t,a=r&n,o=i&n,s=r>>>16,u=i>>>16,c=(s*o>>>0)+(a*o>>>16);return s*u+(c>>>16)+((a*u>>>0)+(c&n)>>>16)}})},50292(e,t,n){"use strict";var r=n(82109),i=n(99958),a=n(83009),o="Invalid number representation",s="Invalid radix",u=/^[\da-z]+$/;r({target:"Number",stat:!0},{fromString:function(e,t){var n,r,c=1;if("string"!=typeof e)throw TypeError(o);if(!e.length||"-"==e.charAt(0)&&(c=-1,!(e=e.slice(1)).length))throw SyntaxError(o);if((n=void 0===t?10:i(t))<2||n>36)throw RangeError(s);if(!u.test(e)||(r=a(e,n)).toString(n)!==e)throw SyntaxError(o);return c*r}})},29427(e,t,n){"use strict";var r=n(82109),i=n(80430);r({target:"Number",stat:!0},{range:function(e,t,n){return new i(e,t,n,"number",0,1)}})},96936(e,t,n){n(46314)},99964(e,t,n){"use strict";var r=n(82109),i=n(60996);r({target:"Object",stat:!0},{iterateEntries:function(e){return new i(e,"entries")}})},75238(e,t,n){"use strict";var r=n(82109),i=n(60996);r({target:"Object",stat:!0},{iterateKeys:function(e){return new i(e,"keys")}})},4987(e,t,n){"use strict";var r=n(82109),i=n(60996);r({target:"Object",stat:!0},{iterateValues:function(e){return new i(e,"values")}})},1025(e,t,n){"use strict";var r=n(82109),i=n(19781),a=n(96340),o=n(13099),s=n(19670),u=n(70111),c=n(25787),l=n(3070).f,f=n(68880),d=n(12248),h=n(18554),p=n(58173),b=n(20408),m=n(842),g=n(5112),v=n(29909),y=g("observable"),w=v.get,_=v.set,E=function(e){var t=e.cleanup;if(t){e.cleanup=void 0;try{t()}catch(n){m(n)}}},S=function(e){return void 0===e.observer},k=function(e){var t=e.facade;if(!i){t.closed=!0;var n=e.subscriptionObserver;n&&(n.closed=!0)}e.observer=void 0},x=function(e,t){var n,r=_(this,{cleanup:void 0,observer:s(e),subscriptionObserver:void 0});i||(this.closed=!1);try{(n=p(e.start))&&n.call(e,this)}catch(a){m(a)}if(!S(r)){var u=r.subscriptionObserver=new T(this);try{var c=t(u),l=c;null!=c&&(r.cleanup="function"==typeof c.unsubscribe?function(){l.unsubscribe()}:o(c))}catch(f){u.error(f);return}S(r)&&E(r)}};x.prototype=d({},{unsubscribe:function(){var e=w(this);S(e)||(k(e),E(e))}}),i&&l(x.prototype,"closed",{configurable:!0,get:function(){return S(w(this))}});var T=function(e){_(this,{subscription:e}),i||(this.closed=!1)};T.prototype=d({},{next:function(e){var t=w(w(this).subscription);if(!S(t)){var n=t.observer;try{var r=p(n.next);r&&r.call(n,e)}catch(i){m(i)}}},error:function(e){var t=w(w(this).subscription);if(!S(t)){var n=t.observer;k(t);try{var r=p(n.error);r?r.call(n,e):m(e)}catch(i){m(i)}E(t)}},complete:function(){var e=w(w(this).subscription);if(!S(e)){var t=e.observer;k(e);try{var n=p(t.complete);n&&n.call(t)}catch(r){m(r)}E(e)}}}),i&&l(T.prototype,"closed",{configurable:!0,get:function(){return S(w(w(this).subscription))}});var M=function(e){c(this,M,"Observable"),_(this,{subscriber:o(e)})};d(M.prototype,{subscribe:function(e){var t=arguments.length;return new x("function"==typeof e?{next:e,error:t>1?arguments[1]:void 0,complete:t>2?arguments[2]:void 0}:u(e)?e:{},w(this).subscriber)}}),d(M,{from:function(e){var t="function"==typeof this?this:M,n=p(s(e)[y]);if(n){var r=s(n.call(e));return r.constructor===t?r:new t(function(e){return r.subscribe(e)})}var i=h(e);return new t(function(e){b(i,function(t,n){if(e.next(t),e.closed)return n()},{IS_ITERATOR:!0,INTERRUPTED:!0}),e.complete()})},of:function(){for(var e="function"==typeof this?this:M,t=arguments.length,n=Array(t),r=0;r1?arguments[1]:void 0,3);return!u(n,function(e,n){if(!r(e,e,t))return n()},{IS_ITERATOR:!0,INTERRUPTED:!0}).stopped}})},64362(e,t,n){"use strict";var r=n(82109),i=n(31913),a=n(35005),o=n(19670),s=n(13099),u=n(49974),c=n(36707),l=n(96767),f=n(20408);r({target:"Set",proto:!0,real:!0,forced:i},{filter:function(e){var t=o(this),n=l(t),r=u(e,arguments.length>1?arguments[1]:void 0,3),i=new(c(t,a("Set"))),d=s(i.add);return f(n,function(e){r(e,e,t)&&d.call(i,e)},{IS_ITERATOR:!0}),i}})},15389(e,t,n){"use strict";var r=n(82109),i=n(31913),a=n(19670),o=n(49974),s=n(96767),u=n(20408);r({target:"Set",proto:!0,real:!0,forced:i},{find:function(e){var t=a(this),n=s(t),r=o(e,arguments.length>1?arguments[1]:void 0,3);return u(n,function(e,n){if(r(e,e,t))return n(e)},{IS_ITERATOR:!0,INTERRUPTED:!0}).result}})},46006(e,t,n){var r=n(82109),i=n(27296);r({target:"Set",stat:!0},{from:i})},90401(e,t,n){"use strict";var r=n(82109),i=n(31913),a=n(35005),o=n(19670),s=n(13099),u=n(36707),c=n(20408);r({target:"Set",proto:!0,real:!0,forced:i},{intersection:function(e){var t=o(this),n=new(u(t,a("Set"))),r=s(t.has),i=s(n.add);return c(e,function(e){r.call(t,e)&&i.call(n,e)}),n}})},45164(e,t,n){"use strict";var r=n(82109),i=n(31913),a=n(19670),o=n(13099),s=n(20408);r({target:"Set",proto:!0,real:!0,forced:i},{isDisjointFrom:function(e){var t=a(this),n=o(t.has);return!s(e,function(e,r){if(!0===n.call(t,e))return r()},{INTERRUPTED:!0}).stopped}})},91238(e,t,n){"use strict";var r=n(82109),i=n(31913),a=n(35005),o=n(19670),s=n(13099),u=n(18554),c=n(20408);r({target:"Set",proto:!0,real:!0,forced:i},{isSubsetOf:function(e){var t=u(this),n=o(e),r=n.has;return"function"!=typeof r&&(n=new(a("Set"))(e),r=s(n.has)),!c(t,function(e,t){if(!1===r.call(n,e))return t()},{IS_ITERATOR:!0,INTERRUPTED:!0}).stopped}})},54837(e,t,n){"use strict";var r=n(82109),i=n(31913),a=n(19670),o=n(13099),s=n(20408);r({target:"Set",proto:!0,real:!0,forced:i},{isSupersetOf:function(e){var t=a(this),n=o(t.has);return!s(e,function(e,r){if(!1===n.call(t,e))return r()},{INTERRUPTED:!0}).stopped}})},87485(e,t,n){"use strict";var r=n(82109),i=n(31913),a=n(19670),o=n(96767),s=n(20408);r({target:"Set",proto:!0,real:!0,forced:i},{join:function(e){var t=a(this),n=o(t),r=void 0===e?",":String(e),i=[];return s(n,i.push,{that:i,IS_ITERATOR:!0}),i.join(r)}})},56767(e,t,n){"use strict";var r=n(82109),i=n(31913),a=n(35005),o=n(19670),s=n(13099),u=n(49974),c=n(36707),l=n(96767),f=n(20408);r({target:"Set",proto:!0,real:!0,forced:i},{map:function(e){var t=o(this),n=l(t),r=u(e,arguments.length>1?arguments[1]:void 0,3),i=new(c(t,a("Set"))),d=s(i.add);return f(n,function(e){d.call(i,r(e,e,t))},{IS_ITERATOR:!0}),i}})},69916(e,t,n){var r=n(82109),i=n(82044);r({target:"Set",stat:!0},{of:i})},76651(e,t,n){"use strict";var r=n(82109),i=n(31913),a=n(19670),o=n(13099),s=n(96767),u=n(20408);r({target:"Set",proto:!0,real:!0,forced:i},{reduce:function(e){var t=a(this),n=s(t),r=arguments.length<2,i=r?void 0:arguments[1];if(o(e),u(n,function(n){r?(r=!1,i=n):i=e(i,n,n,t)},{IS_ITERATOR:!0}),r)throw TypeError("Reduce of empty set with no initial value");return i}})},61437(e,t,n){"use strict";var r=n(82109),i=n(31913),a=n(19670),o=n(49974),s=n(96767),u=n(20408);r({target:"Set",proto:!0,real:!0,forced:i},{some:function(e){var t=a(this),n=s(t),r=o(e,arguments.length>1?arguments[1]:void 0,3);return u(n,function(e,n){if(r(e,e,t))return n()},{IS_ITERATOR:!0,INTERRUPTED:!0}).stopped}})},35285(e,t,n){"use strict";var r=n(82109),i=n(31913),a=n(35005),o=n(19670),s=n(13099),u=n(36707),c=n(20408);r({target:"Set",proto:!0,real:!0,forced:i},{symmetricDifference:function(e){var t=o(this),n=new(u(t,a("Set")))(t),r=s(n.delete),i=s(n.add);return c(e,function(e){r.call(n,e)||i.call(n,e)}),n}})},39865(e,t,n){"use strict";var r=n(82109),i=n(31913),a=n(35005),o=n(19670),s=n(13099),u=n(36707),c=n(20408);r({target:"Set",proto:!0,real:!0,forced:i},{union:function(e){var t=o(this),n=new(u(t,a("Set")))(t);return c(e,s(n.add),{that:n}),n}})},86035(e,t,n){"use strict";var r=n(82109),i=n(28710).charAt,a=n(47293)(function(){return"𠮷"!=="𠮷".at(0)});r({target:"String",proto:!0,forced:a},{at:function(e){return i(this,e)}})},67501(e,t,n){"use strict";var r=n(82109),i=n(24994),a=n(84488),o=n(41340),s=n(29909),u=n(28710),c=u.codeAt,l=u.charAt,f="String Iterator",d=s.set,h=s.getterFor(f),p=i(function(e){d(this,{type:f,string:e,index:0})},"String",function(){var e,t=h(this),n=t.string,r=t.index;return r>=n.length?{value:void 0,done:!0}:(e=l(n,r),t.index+=e.length,{value:{codePoint:c(e,0),position:r},done:!1})});r({target:"String",proto:!0},{codePoints:function(){return new p(o(a(this)))}})},13728(e,t,n){n(76373)},27207(e,t,n){n(68757)},609(e,t,n){n(97235)("asyncDispose")},21568(e,t,n){n(97235)("dispose")},54534(e,t,n){n(97235)("matcher")},95090(e,t,n){n(97235)("metadata")},48824(e,t,n){n(97235)("observable")},44130(e,t,n){n(97235)("patternMatch")},35954(e,t,n){n(97235)("replaceAll")},38012(e,t,n){n(48675)},26182(e,t,n){"use strict";var r=n(90260),i=n(42092).filterReject,a=n(43074),o=r.aTypedArray;(0,r.exportTypedArrayMethod)("filterOut",function(e){var t=i(o(this),e,arguments.length>1?arguments[1]:void 0);return a(this,t)})},8922(e,t,n){"use strict";var r=n(90260),i=n(42092).filterReject,a=n(43074),o=r.aTypedArray;(0,r.exportTypedArrayMethod)("filterReject",function(e){var t=i(o(this),e,arguments.length>1?arguments[1]:void 0);return a(this,t)})},1118(e,t,n){"use strict";var r=n(90260),i=n(9671).findLastIndex,a=r.aTypedArray;(0,r.exportTypedArrayMethod)("findLastIndex",function(e){return i(a(this),e,arguments.length>1?arguments[1]:void 0)})},37380(e,t,n){"use strict";var r=n(90260),i=n(9671).findLast,a=r.aTypedArray;(0,r.exportTypedArrayMethod)("findLast",function(e){return i(a(this),e,arguments.length>1?arguments[1]:void 0)})},5835(e,t,n){"use strict";var r=n(90260),i=n(61386),a=n(66304),o=r.aTypedArray;(0,r.exportTypedArrayMethod)("groupBy",function(e){var t=arguments.length>1?arguments[1]:void 0;return i(o(this),e,t,a)})},84444(e,t,n){"use strict";var r=n(90260),i=n(60956),a=n(43074),o=r.aTypedArray;(0,r.exportTypedArrayMethod)("uniqueBy",function(e){return a(this,i.call(o(this),e))})},78206(e,t,n){"use strict";var r=n(82109),i=n(31913),a=n(34092);r({target:"WeakMap",proto:!0,real:!0,forced:i},{deleteAll:function(){return a.apply(this,arguments)}})},12714(e,t,n){"use strict";var r=n(82109),i=n(31913),a=n(37502);r({target:"WeakMap",proto:!0,real:!0,forced:i},{emplace:a})},76478(e,t,n){var r=n(82109),i=n(27296);r({target:"WeakMap",stat:!0},{from:i})},79715(e,t,n){var r=n(82109),i=n(82044);r({target:"WeakMap",stat:!0},{of:i})},5964(e,t,n){"use strict";var r=n(82109),i=n(31913),a=n(8154);r({target:"WeakMap",proto:!0,real:!0,forced:i},{upsert:a})},43561(e,t,n){"use strict";var r=n(82109),i=n(31913),a=n(31501);r({target:"WeakSet",proto:!0,real:!0,forced:i},{addAll:function(){return a.apply(this,arguments)}})},32049(e,t,n){"use strict";var r=n(82109),i=n(31913),a=n(34092);r({target:"WeakSet",proto:!0,real:!0,forced:i},{deleteAll:function(){return a.apply(this,arguments)}})},86020(e,t,n){var r=n(82109),i=n(27296);r({target:"WeakSet",stat:!0},{from:i})},56585(e,t,n){var r=n(82109),i=n(82044);r({target:"WeakSet",stat:!0},{of:i})},54747(e,t,n){var r=n(17854),i=n(48324),a=n(18533),o=n(68880);for(var s in i){var u=r[s],c=u&&u.prototype;if(c&&c.forEach!==a)try{o(c,"forEach",a)}catch(l){c.forEach=a}}},33948(e,t,n){var r=n(17854),i=n(48324),a=n(66992),o=n(68880),s=n(5112),u=s("iterator"),c=s("toStringTag"),l=a.values;for(var f in i){var d=r[f],h=d&&d.prototype;if(h){if(h[u]!==l)try{o(h,u,l)}catch(p){h[u]=l}if(h[c]||o(h,c,f),i[f]){for(var b in a)if(h[b]!==a[b])try{o(h,b,a[b])}catch(m){h[b]=a[b]}}}}},84633(e,t,n){var r=n(82109),i=n(17854),a=n(20261);r({global:!0,bind:!0,enumerable:!0,forced:!i.setImmediate||!i.clearImmediate},{setImmediate:a.set,clearImmediate:a.clear})},85844(e,t,n){var r=n(82109),i=n(17854),a=n(95948),o=n(35268),s=i.process;r({global:!0,enumerable:!0,noTargetGet:!0},{queueMicrotask:function(e){var t=o&&s.domain;a(t?t.bind(e):e)}})},32564(e,t,n){var r=n(82109),i=n(17854),a=n(88113),o=[].slice,s=/MSIE .\./.test(a),u=function(e){return function(t,n){var r=arguments.length>2,i=r?o.call(arguments,2):void 0;return e(r?function(){("function"==typeof t?t:Function(t)).apply(this,i)}:t,n)}};r({global:!0,bind:!0,forced:s},{setTimeout:u(i.setTimeout),setInterval:u(i.setInterval)})},41637(e,t,n){"use strict";n(66992);var r=n(82109),i=n(35005),a=n(590),o=n(31320),s=n(12248),u=n(58003),c=n(24994),l=n(29909),f=n(25787),d=n(86656),h=n(49974),p=n(70648),b=n(19670),m=n(70111),g=n(41340),v=n(70030),y=n(79114),w=n(18554),_=n(71246),E=n(5112),S=i("fetch"),k=i("Request"),x=k&&k.prototype,T=i("Headers"),M=E("iterator"),O="URLSearchParams",A=O+"Iterator",L=l.set,C=l.getterFor(O),I=l.getterFor(A),D=/\+/g,N=[,,,,],P=function(e){return N[e-1]||(N[e-1]=RegExp("((?:%[\\da-f]{2}){"+e+"})","gi"))},R=function(e){try{return decodeURIComponent(e)}catch(t){return e}},j=function(e){var t=e.replace(D," "),n=4;try{return decodeURIComponent(t)}catch(r){for(;n;)t=t.replace(P(n--),R);return t}},F=/[!'()~]|%20/g,Y={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"},B=function(e){return Y[e]},U=function(e){return encodeURIComponent(e).replace(F,B)},H=function(e,t){if(t)for(var n,r,i=t.split("&"),a=0;a0?arguments[0]:void 0,l=this,h=[];if(L(l,{type:O,entries:h,updateURL:function(){},updateSearchParams:$}),void 0!==c){if(m(c)){if("function"==typeof(e=_(c)))for(n=(t=w(c,e)).next;!(r=n.call(t)).done;){if((o=(a=(i=w(b(r.value))).next).call(i)).done||(s=a.call(i)).done||!a.call(i).done)throw TypeError("Expected sequence with length 2");h.push({key:g(o.value),value:g(s.value)})}else for(u in c)d(c,u)&&h.push({key:u,value:g(c[u])})}else H(h,"string"==typeof c?"?"===c.charAt(0)?c.slice(1):c:g(c))}},K=W.prototype;if(s(K,{append:function(e,t){z(arguments.length,2);var n=C(this);n.entries.push({key:g(e),value:g(t)}),n.updateURL()},delete:function(e){z(arguments.length,1);for(var t=C(this),n=t.entries,r=g(e),i=0;ie.key){i.splice(t,0,e);break}t===n&&i.push(e)}r.updateURL()},forEach:function(e){for(var t,n=C(this).entries,r=h(e,arguments.length>1?arguments[1]:void 0,3),i=0;i1?V(arguments[1]):{})}}),"function"==typeof k){var q=function(e){return f(this,q,"Request"),new k(e,arguments.length>1?V(arguments[1]):{})};x.constructor=q,q.prototype=x,r({global:!0,forced:!0},{Request:q})}}e.exports={URLSearchParams:W,getState:C}},60285(e,t,n){"use strict";n(78783);var r,i=n(82109),a=n(19781),o=n(590),s=n(17854),u=n(36048),c=n(31320),l=n(25787),f=n(86656),d=n(21574),h=n(48457),p=n(28710).codeAt,b=n(33197),m=n(41340),g=n(58003),v=n(41637),y=n(29909),w=s.URL,_=v.URLSearchParams,E=v.getState,S=y.set,k=y.getterFor("URL"),x=Math.floor,T=Math.pow,M="Invalid authority",O="Invalid scheme",A="Invalid host",L="Invalid port",C=/[A-Za-z]/,I=/[\d+-.A-Za-z]/,D=/\d/,N=/^0x/i,P=/^[0-7]+$/,R=/^\d+$/,j=/^[\dA-Fa-f]+$/,F=/[\0\t\n\r #%/:<>?@[\\\]^|]/,Y=/[\0\t\n\r #/:<>?@[\\\]^|]/,B=/^[\u0000-\u0020]+|[\u0000-\u0020]+$/g,U=/[\t\n\r]/g,H=function(e,t){var n,r,i;if("["==t.charAt(0)){if("]"!=t.charAt(t.length-1)||!(n=z(t.slice(1,-1))))return A;e.host=n}else if(Q(e)){if(t=b(t),F.test(t)||null===(n=$(t)))return A;e.host=n}else{if(Y.test(t))return A;for(i=0,n="",r=h(t);i4)return e;for(r=0,n=[];r1&&"0"==i.charAt(0)&&(a=N.test(i)?16:8,i=i.slice(8==a?1:2)),""===i)o=0;else{if(!(10==a?R:8==a?P:j).test(i))return e;o=parseInt(i,a)}n.push(o)}for(r=0;r=T(256,5-t))return null}else if(o>255)return null;for(r=0,s=n.pop();r6))return;for(r=0;d();){if(i=null,r>0){if("."!=d()||!(r<4))return;f++}if(!D.test(d()))return;for(;D.test(d());){if(a=parseInt(d(),10),null===i)i=a;else{if(0==i)return;i=10*i+a}if(i>255)return;f++}u[c]=256*u[c]+i,(2==++r||4==r)&&c++}if(4!=r)return;break}if(":"==d()){if(f++,!d())return}else if(d())return;u[c++]=t}if(null!==l)for(o=c-l,c=7;0!=c&&o>0;)s=u[c],u[c--]=u[l+o-1],u[l+--o]=s;else if(8!=c)return;return u},G=function(e){for(var t=null,n=1,r=null,i=0,a=0;a<8;a++)0!==e[a]?(i>n&&(t=r,n=i),r=null,i=0):(null===r&&(r=a),++i);return i>n&&(t=r,n=i),t},W=function(e){var t,n,r,i;if("number"==typeof e){for(n=0,t=[];n<4;n++)t.unshift(e%256),e=x(e/256);return t.join(".")}if("object"==typeof e){for(n=0,t="",r=G(e);n<8;n++)(!i||0!==e[n])&&(i&&(i=!1),r===n?(t+=n?":":"::",i=!0):(t+=e[n].toString(16),n<7&&(t+=":")));return"["+t+"]"}return e},K={},V=d({},K,{" ":1,'"':1,"<":1,">":1,"`":1}),q=d({},V,{"#":1,"?":1,"{":1,"}":1}),Z=d({},q,{"/":1,":":1,";":1,"=":1,"@":1,"[":1,"\\":1,"]":1,"^":1,"|":1}),X=function(e,t){var n=p(e,0);return n>32&&n<127&&!f(t,e)?e:encodeURIComponent(e)},J={ftp:21,file:null,http:80,https:443,ws:80,wss:443},Q=function(e){return f(J,e.scheme)},ee=function(e){return""!=e.username||""!=e.password},et=function(e){return!e.host||e.cannotBeABaseURL||"file"==e.scheme},en=function(e,t){var n;return 2==e.length&&C.test(e.charAt(0))&&(":"==(n=e.charAt(1))||!t&&"|"==n)},er=function(e){var t;return e.length>1&&en(e.slice(0,2))&&(2==e.length||"/"===(t=e.charAt(2))||"\\"===t||"?"===t||"#"===t)},ei=function(e){var t=e.path,n=t.length;n&&("file"!=e.scheme||1!=n||!en(t[0],!0))&&t.pop()},ea=function(e){return"."===e||"%2e"===e.toLowerCase()},eo=function(e){return".."===(e=e.toLowerCase())||"%2e."===e||".%2e"===e||"%2e%2e"===e},es={},eu={},ec={},el={},ef={},ed={},eh={},ep={},eb={},em={},eg={},ev={},ey={},ew={},e_={},eE={},eS={},ek={},ex={},eT={},eM={},eO=function(e,t,n,i){var a,o,s,u,c=n||es,l=0,d="",p=!1,b=!1,m=!1;for(n||(e.scheme="",e.username="",e.password="",e.host=null,e.port=null,e.path=[],e.query=null,e.fragment=null,e.cannotBeABaseURL=!1,t=t.replace(B,"")),t=t.replace(U,""),a=h(t);l<=a.length;){switch(o=a[l],c){case es:if(o&&C.test(o))d+=o.toLowerCase(),c=eu;else{if(n)return O;c=ec;continue}break;case eu:if(o&&(I.test(o)||"+"==o||"-"==o||"."==o))d+=o.toLowerCase();else if(":"==o){if(n&&(Q(e)!=f(J,d)||"file"==d&&(ee(e)||null!==e.port)||"file"==e.scheme&&!e.host))return;if(e.scheme=d,n){Q(e)&&J[e.scheme]==e.port&&(e.port=null);return}d="","file"==e.scheme?c=ew:Q(e)&&i&&i.scheme==e.scheme?c=el:Q(e)?c=ep:"/"==a[l+1]?(c=ef,l++):(e.cannotBeABaseURL=!0,e.path.push(""),c=ex)}else{if(n)return O;d="",c=ec,l=0;continue}break;case ec:if(!i||i.cannotBeABaseURL&&"#"!=o)return O;if(i.cannotBeABaseURL&&"#"==o){e.scheme=i.scheme,e.path=i.path.slice(),e.query=i.query,e.fragment="",e.cannotBeABaseURL=!0,c=eM;break}c="file"==i.scheme?ew:ed;continue;case el:if("/"==o&&"/"==a[l+1])c=eb,l++;else{c=ed;continue}break;case ef:if("/"==o){c=em;break}c=ek;continue;case ed:if(e.scheme=i.scheme,o==r)e.username=i.username,e.password=i.password,e.host=i.host,e.port=i.port,e.path=i.path.slice(),e.query=i.query;else if("/"==o||"\\"==o&&Q(e))c=eh;else if("?"==o)e.username=i.username,e.password=i.password,e.host=i.host,e.port=i.port,e.path=i.path.slice(),e.query="",c=eT;else if("#"==o)e.username=i.username,e.password=i.password,e.host=i.host,e.port=i.port,e.path=i.path.slice(),e.query=i.query,e.fragment="",c=eM;else{e.username=i.username,e.password=i.password,e.host=i.host,e.port=i.port,e.path=i.path.slice(),e.path.pop(),c=ek;continue}break;case eh:if(Q(e)&&("/"==o||"\\"==o))c=eb;else if("/"==o)c=em;else{e.username=i.username,e.password=i.password,e.host=i.host,e.port=i.port,c=ek;continue}break;case ep:if(c=eb,"/"!=o||"/"!=d.charAt(l+1))continue;l++;break;case eb:if("/"!=o&&"\\"!=o){c=em;continue}break;case em:if("@"==o){p&&(d="%40"+d),p=!0,s=h(d);for(var g=0;g65535)return L;e.port=Q(e)&&w===J[e.scheme]?null:w,d=""}if(n)return;c=eS;continue}break;case ew:if(e.scheme="file","/"==o||"\\"==o)c=e_;else if(i&&"file"==i.scheme){if(o==r)e.host=i.host,e.path=i.path.slice(),e.query=i.query;else if("?"==o)e.host=i.host,e.path=i.path.slice(),e.query="",c=eT;else if("#"==o)e.host=i.host,e.path=i.path.slice(),e.query=i.query,e.fragment="",c=eM;else{er(a.slice(l).join(""))||(e.host=i.host,e.path=i.path.slice(),ei(e)),c=ek;continue}}else{c=ek;continue}break;case e_:if("/"==o||"\\"==o){c=eE;break}i&&"file"==i.scheme&&!er(a.slice(l).join(""))&&(en(i.path[0],!0)?e.path.push(i.path[0]):e.host=i.host),c=ek;continue;case eE:if(o==r||"/"==o||"\\"==o||"?"==o||"#"==o){if(!n&&en(d))c=ek;else if(""==d){if(e.host="",n)return;c=eS}else{if(u=H(e,d))return u;if("localhost"==e.host&&(e.host=""),n)return;d="",c=eS}continue}d+=o;break;case eS:if(Q(e)){if(c=ek,"/"!=o&&"\\"!=o)continue}else if(n||"?"!=o){if(n||"#"!=o){if(o!=r&&(c=ek,"/"!=o))continue}else e.fragment="",c=eM}else e.query="",c=eT;break;case ek:if(o==r||"/"==o||"\\"==o&&Q(e)||!n&&("?"==o||"#"==o)){if(eo(d)?(ei(e),"/"==o||"\\"==o&&Q(e)||e.path.push("")):ea(d)?"/"==o||"\\"==o&&Q(e)||e.path.push(""):("file"==e.scheme&&!e.path.length&&en(d)&&(e.host&&(e.host=""),d=d.charAt(0)+":"),e.path.push(d)),d="","file"==e.scheme&&(o==r||"?"==o||"#"==o))for(;e.path.length>1&&""===e.path[0];)e.path.shift();"?"==o?(e.query="",c=eT):"#"==o&&(e.fragment="",c=eM)}else d+=X(o,q);break;case ex:"?"==o?(e.query="",c=eT):"#"==o?(e.fragment="",c=eM):o!=r&&(e.path[0]+=X(o,K));break;case eT:n||"#"!=o?o!=r&&("'"==o&&Q(e)?e.query+="%27":"#"==o?e.query+="%23":e.query+=X(o,K)):(e.fragment="",c=eM);break;case eM:o!=r&&(e.fragment+=X(o,V))}l++}},eA=function(e){var t,n,r=l(this,eA,"URL"),i=arguments.length>1?arguments[1]:void 0,o=m(e),s=S(r,{type:"URL"});if(void 0!==i){if(i instanceof eA)t=k(i);else if(n=eO(t={},m(i)))throw TypeError(n)}if(n=eO(s,o,null,t))throw TypeError(n);var u=s.searchParams=new _,c=E(u);c.updateSearchParams(s.query),c.updateURL=function(){s.query=String(u)||null},a||(r.href=eC.call(r),r.origin=eI.call(r),r.protocol=eD.call(r),r.username=eN.call(r),r.password=eP.call(r),r.host=eR.call(r),r.hostname=ej.call(r),r.port=eF.call(r),r.pathname=eY.call(r),r.search=eB.call(r),r.searchParams=eU.call(r),r.hash=eH.call(r))},eL=eA.prototype,eC=function(){var e=k(this),t=e.scheme,n=e.username,r=e.password,i=e.host,a=e.port,o=e.path,s=e.query,u=e.fragment,c=t+":";return null!==i?(c+="//",ee(e)&&(c+=n+(r?":"+r:"")+"@"),c+=W(i),null!==a&&(c+=":"+a)):"file"==t&&(c+="//"),c+=e.cannotBeABaseURL?o[0]:o.length?"/"+o.join("/"):"",null!==s&&(c+="?"+s),null!==u&&(c+="#"+u),c},eI=function(){var e=k(this),t=e.scheme,n=e.port;if("blob"==t)try{return new eA(t.path[0]).origin}catch(r){return"null"}return"file"!=t&&Q(e)?t+"://"+W(e.host)+(null!==n?":"+n:""):"null"},eD=function(){return k(this).scheme+":"},eN=function(){return k(this).username},eP=function(){return k(this).password},eR=function(){var e=k(this),t=e.host,n=e.port;return null===t?"":null===n?W(t):W(t)+":"+n},ej=function(){var e=k(this).host;return null===e?"":W(e)},eF=function(){var e=k(this).port;return null===e?"":String(e)},eY=function(){var e=k(this),t=e.path;return e.cannotBeABaseURL?t[0]:t.length?"/"+t.join("/"):""},eB=function(){var e=k(this).query;return e?"?"+e:""},eU=function(){return k(this).searchParams},eH=function(){var e=k(this).fragment;return e?"#"+e:""},e$=function(e,t){return{get:e,set:t,configurable:!0,enumerable:!0}};if(a&&u(eL,{href:e$(eC,function(e){var t=k(this),n=m(e),r=eO(t,n);if(r)throw TypeError(r);E(t.searchParams).updateSearchParams(t.query)}),origin:e$(eI),protocol:e$(eD,function(e){var t=k(this);eO(t,m(e)+":",es)}),username:e$(eN,function(e){var t=k(this),n=h(m(e));if(!et(t)){t.username="";for(var r=0;rc});var r={value:function(){}};function i(){for(var e,t=0,n=arguments.length,r={};t=0&&(n=e.slice(r+1),e=e.slice(0,r)),e&&!t.hasOwnProperty(e))throw Error("unknown type: "+e);return{type:e,name:n}})}function s(e,t){for(var n,r=0,i=e.length;r0)for(var n,r,i=Array(n),a=0;am,dragDisable:()=>u.Z,dragEnable:()=>u.D});var r=n(92626),i=n(25109),a=n(43095),o=n(94017),s=n(24793),u=n(44266),c=n(34299);function l(e){return function(){return e}}function f(e,t,n,r,i,a,o,s,u,c){this.target=e,this.type=t,this.subject=n,this.identifier=r,this.active=i,this.x=a,this.y=o,this.dx=s,this.dy=u,this._=c}function d(){return!i.B.ctrlKey&&!i.B.button}function h(){return this.parentNode}function p(e){return null==e?{x:i.B.x,y:i.B.y}:e}function b(){return navigator.maxTouchPoints||"ontouchstart"in this}function m(){var e,t,n,m,g=d,v=h,y=p,w=b,_={},E=(0,r.Z)("start","drag","end"),S=0,k=0;function x(e){e.on("mousedown.drag",T).filter(w).on("touchstart.drag",A).on("touchmove.drag",L).on("touchend.drag touchcancel.drag",C).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function T(){if(!m&&g.apply(this,arguments)){var r=I("mouse",v.apply(this,arguments),a.Z,this,arguments);r&&((0,o.Z)(i.B.view).on("mousemove.drag",M,!0).on("mouseup.drag",O,!0),(0,u.Z)(i.B.view),(0,c.r)(),n=!1,e=i.B.clientX,t=i.B.clientY,r("start"))}}function M(){if((0,c.Z)(),!n){var r=i.B.clientX-e,a=i.B.clientY-t;n=r*r+a*a>k}_.mouse("drag")}function O(){(0,o.Z)(i.B.view).on("mousemove.drag mouseup.drag",null),(0,u.D)(i.B.view,n),(0,c.Z)(),_.mouse("end")}function A(){if(g.apply(this,arguments)){var e,t,n=i.B.changedTouches,r=v.apply(this,arguments),a=n.length;for(e=0;eo,Z:()=>a});var r=n(94017),i=n(34299);function a(e){var t=e.document.documentElement,n=(0,r.Z)(e).on("dragstart.drag",i.Z,!0);"onselectstart"in t?n.on("selectstart.drag",i.Z,!0):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect="none")}function o(e,t){var n=e.document.documentElement,a=(0,r.Z)(e).on("dragstart.drag",null);t&&(a.on("click.drag",i.Z,!0),setTimeout(function(){a.on("click.drag",null)},0)),"onselectstart"in n?a.on("selectstart.drag",null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}},34299(e,t,n){"use strict";n.d(t,{Z:()=>a,r:()=>i});var r=n(25109);function i(){r.B.stopImmediatePropagation()}function a(){r.B.preventDefault(),r.B.stopImmediatePropagation()}},9893(e,t,n){"use strict";function r(e,t){var n;function r(){var r,i,a=n.length,o=0,s=0;for(r=0;r=(a=(b+g)/2))?b=a:g=a,(l=n>=(o=(m+v)/2))?m=o:v=o,i=h,!(h=h[f=l<<1|c]))return i[f]=p,e;if(s=+e._x.call(null,h.data),u=+e._y.call(null,h.data),t===s&&n===u)return p.next=h,i?i[f]=p:e._root=p,e;do i=i?i[f]=[,,,,]:e._root=[,,,,],(c=t>=(a=(b+g)/2))?b=a:g=a,(l=n>=(o=(m+v)/2))?m=o:v=o;while((f=l<<1|c)==(d=(u>=o)<<1|s>=a))return i[d]=h,i[f]=p,e}function u(e){var t,n,r,i,a=e.length,o=Array(a),u=Array(a),c=1/0,l=1/0,f=-1/0,d=-1/0;for(n=0;nf&&(f=r),id&&(d=i));if(c>f||l>d)return this;for(this.cover(c,l).cover(f,d),n=0;ne||e>=i||r>t||t>=a;)switch(s=(th)&&!((a=u.y0)>p)&&!((o=u.x1)=v)<<1|e>=g)&&(u=b[b.length-1],b[b.length-1]=b[b.length-1-c],b[b.length-1-c]=u)}else{var y=e-+this._x.call(null,m.data),w=t-+this._y.call(null,m.data),_=y*y+w*w;if(_=(s=(p+m)/2))?p=s:m=s,(l=o>=(u=(b+g)/2))?b=u:g=u,t=h,!(h=h[f=l<<1|c]))return this;if(!h.length)break;(t[f+1&3]||t[f+2&3]||t[f+3&3])&&(n=t,d=f)}for(;h.data!==e;)if(r=h,!(h=h.next))return this;return((i=h.next)&&delete h.next,r)?(i?r.next=i:delete r.next,this):t?(i?t[f]=i:delete t[f],(h=t[0]||t[1]||t[2]||t[3])&&h===(t[3]||t[2]||t[1]||t[0])&&!h.length&&(n?n[d]=h:this._root=h),this):(this._root=i,this)}function b(e){for(var t=0,n=e.length;tr,forceCollide:()=>L,forceLink:()=>B,forceManyBody:()=>V,forceRadial:()=>q,forceSimulation:()=>K,forceX:()=>Z,forceY:()=>X});var M=k.prototype=x.prototype;function O(e){return e.x+e.vx}function A(e){return e.y+e.vy}function L(e){var t,n,r=1,o=1;function s(){for(var e,i,s,c,l,f,d,h=t.length,p=0;ps.index){var b=c-u.x-u.vx,m=l-u.y-u.vy,g=b*b+m*m;gc+p||il+p||oe.r&&(e.r=e[t].r)}function c(){if(t){var r,i,a=t.length;for(r=0,n=Array(a);r1?(null==n?s.remove(e):s.set(e,h(n)),t):s.get(e)},find:function(t,n,r){var i,a,o,s,u,c=0,l=e.length;for(null==r?r=1/0:r*=r,c=0;c1?(c.on(e,n),t):c.on(e)}}}function V(){var e,t,n,r,o=i(-30),s=1,u=1/0,c=.81;function l(r){var i,a=e.length,o=k(e,$,z).visitAfter(d);for(n=r,i=0;i=u)){(e.data!==t||e.next)&&(0===f&&(p+=(f=a())*f),0===d&&(p+=(d=a())*d),ps});var r=n(73888),i=n(31986);function a(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===i.P&&t.documentElement.namespaceURI===i.P?t.createElement(e):t.createElementNS(n,e)}}function o(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function s(e){var t=(0,r.Z)(e);return(t.local?o:a)(t)}},58556(e,t,n){"use strict";n.r(t),n.d(t,{clientPoint:()=>h.Z,create:()=>a,creator:()=>r.Z,customEvent:()=>S._H,event:()=>S.B,local:()=>s,matcher:()=>c.Z,mouse:()=>l.Z,namespace:()=>f.Z,namespaces:()=>d.Z,select:()=>i.Z,selectAll:()=>b,selection:()=>p.ZP,selector:()=>m.Z,selectorAll:()=>g.Z,style:()=>v.S,touch:()=>y.Z,touches:()=>_,window:()=>E.Z});var r=n(789),i=n(94017);function a(e){return(0,i.Z)((0,r.Z)(e).call(document.documentElement))}var o=0;function s(){return new u}function u(){this._="@"+(++o).toString(36)}u.prototype=s.prototype={constructor:u,get:function(e){for(var t=this._;!(t in e);)if(!(e=e.parentNode))return;return e[t]},set:function(e,t){return e[this._]=t},remove:function(e){return this._ in e&&delete e[this._]},toString:function(){return this._}};var c=n(3083),l=n(43095),f=n(73888),d=n(31986),h=n(42115),p=n(23817);function b(e){return"string"==typeof e?new p.Y1([document.querySelectorAll(e)],[document.documentElement]):new p.Y1([null==e?[]:e],p.Jz)}var m=n(82634),g=n(3545),v=n(49986),y=n(24793),w=n(45553);function _(e,t){null==t&&(t=(0,w.Z)().touches);for(var n=0,r=t?t.length:0,i=Array(r);nr})},43095(e,t,n){"use strict";n.d(t,{Z:()=>a});var r=n(45553),i=n(42115);function a(e){var t=(0,r.Z)();return t.changedTouches&&(t=t.changedTouches[0]),(0,i.Z)(e,t)}},73888(e,t,n){"use strict";n.d(t,{Z:()=>i});var r=n(31986);function i(e){var t=e+="",n=t.indexOf(":");return n>=0&&"xmlns"!==(t=e.slice(0,n))&&(e=e.slice(n+1)),r.Z.hasOwnProperty(t)?{space:r.Z[t],local:e}:e}},31986(e,t,n){"use strict";n.d(t,{P:()=>r,Z:()=>i});var r="http://www.w3.org/1999/xhtml";let i={svg:"http://www.w3.org/2000/svg",xhtml:r,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"}},42115(e,t,n){"use strict";function r(e,t){var n=e.ownerSVGElement||e;if(n.createSVGPoint){var r=n.createSVGPoint();return r.x=t.clientX,r.y=t.clientY,[(r=r.matrixTransform(e.getScreenCTM().inverse())).x,r.y]}var i=e.getBoundingClientRect();return[t.clientX-i.left-e.clientLeft,t.clientY-i.top-e.clientTop]}n.d(t,{Z:()=>r})},94017(e,t,n){"use strict";n.d(t,{Z:()=>i});var r=n(23817);function i(e){return"string"==typeof e?new r.Y1([[document.querySelector(e)]],[document.documentElement]):new r.Y1([[e]],r.Jz)}},23817(e,t,n){"use strict";n.d(t,{Y1:()=>eT,ZP:()=>eO,Jz:()=>ex});var r=n(82634);function i(e){"function"!=typeof e&&(e=(0,r.Z)(e));for(var t=this._groups,n=t.length,i=Array(n),a=0;a=k&&(k=S+1);!(E=y[k])&&++k=0;)(r=i[a])&&(o&&4^r.compareDocumentPosition(o)&&o.parentNode.insertBefore(r,o),o=r);return this}function _(e){function t(t,n){return t&&n?e(t.__data__,n.__data__):!t-!n}e||(e=E);for(var n=this._groups,r=n.length,i=Array(r),a=0;at?1:e>=t?0:NaN}function S(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function k(){var e=Array(this.size()),t=-1;return this.each(function(){e[++t]=this}),e}function x(){for(var e=this._groups,t=0,n=e.length;t1?this.each((null==t?F:"function"==typeof t?B:Y)(e,t)):this.node()[e]}function H(e){return e.trim().split(/^|\s+/)}function $(e){return e.classList||new z(e)}function z(e){this._node=e,this._names=H(e.getAttribute("class")||"")}function G(e,t){for(var n=$(e),r=-1,i=t.length;++rthis._names.indexOf(e)&&(this._names.push(e),this._node.setAttribute("class",this._names.join(" ")))},remove:function(e){var t=this._names.indexOf(e);t>=0&&(this._names.splice(t,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(e){return this._names.indexOf(e)>=0}};var ec=n(789);function el(e){var t="function"==typeof e?e:(0,ec.Z)(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}function ef(){return null}function ed(e,t){var n="function"==typeof e?e:(0,ec.Z)(e),i=null==t?ef:"function"==typeof t?t:(0,r.Z)(t);return this.select(function(){return this.insertBefore(n.apply(this,arguments),i.apply(this,arguments)||null)})}function eh(){var e=this.parentNode;e&&e.removeChild(this)}function ep(){return this.each(eh)}function eb(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function em(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function eg(e){return this.select(e?em:eb)}function ev(e){return arguments.length?this.property("__data__",e):this.node().__data__}var ey=n(25109),ew=n(85021);function e_(e,t,n){var r=(0,ew.Z)(e),i=r.CustomEvent;"function"==typeof i?i=new i(t,n):(i=r.document.createEvent("Event"),n?(i.initEvent(t,n.bubbles,n.cancelable),i.detail=n.detail):i.initEvent(t,!1,!1)),e.dispatchEvent(i)}function eE(e,t){return function(){return e_(this,e,t)}}function eS(e,t){return function(){return e_(this,e,t.apply(this,arguments))}}function ek(e,t){return this.each(("function"==typeof t?eS:eE)(e,t))}var ex=[null];function eT(e,t){this._groups=e,this._parents=t}function eM(){return new eT([[document.documentElement]],ex)}eT.prototype=eM.prototype={constructor:eT,select:i,selectAll:o,filter:u,data:m,enter:l,exit:g,join:v,merge:y,order:w,sort:_,call:S,nodes:k,node:x,size:T,empty:M,each:O,attr:R,style:j.Z,property:U,classed:Z,text:ee,html:ei,raise:eo,lower:eu,append:el,insert:ed,remove:ep,clone:eg,datum:ev,on:ey.ZP,dispatch:ek};let eO=eM},25109(e,t,n){"use strict";n.d(t,{B:()=>i,ZP:()=>l,_H:()=>f});var r={},i=null;function a(e,t,n){return e=o(e,t,n),function(t){var n=t.relatedTarget;n&&(n===this||8&n.compareDocumentPosition(this))||e.call(this,t)}}function o(e,t,n){return function(r){var a=i;i=r;try{e.call(this,this.__data__,t,n)}finally{i=a}}}function s(e){return e.trim().split(/^|\s+/).map(function(e){var t="",n=e.indexOf(".");return n>=0&&(t=e.slice(n+1),e=e.slice(0,n)),{type:e,name:t}})}function u(e){return function(){var t=this.__on;if(t){for(var n,r=0,i=-1,a=t.length;ru,Z:()=>s});var r=n(85021);function i(e){return function(){this.style.removeProperty(e)}}function a(e,t,n){return function(){this.style.setProperty(e,t,n)}}function o(e,t,n){return function(){var r=t.apply(this,arguments);null==r?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function s(e,t,n){return arguments.length>1?this.each((null==t?i:"function"==typeof t?o:a)(e,t,null==n?"":n)):u(this.node(),e)}function u(e,t){return e.style.getPropertyValue(t)||(0,r.Z)(e).getComputedStyle(e,null).getPropertyValue(t)}},82634(e,t,n){"use strict";function r(){}function i(e){return null==e?r:function(){return this.querySelector(e)}}n.d(t,{Z:()=>i})},3545(e,t,n){"use strict";function r(){return[]}function i(e){return null==e?r:function(){return this.querySelectorAll(e)}}n.d(t,{Z:()=>i})},45553(e,t,n){"use strict";n.d(t,{Z:()=>i});var r=n(25109);function i(){for(var e,t=r.B;e=t.sourceEvent;)t=e;return t}},24793(e,t,n){"use strict";n.d(t,{Z:()=>a});var r=n(45553),i=n(42115);function a(e,t,n){arguments.length<3&&(n=t,t=(0,r.Z)().changedTouches);for(var a,o=0,s=t?t.length:0;or})},71098(e,t,n){"use strict";n.r(t),n.d(t,{arc:()=>C,area:()=>j,areaRadial:()=>W,curveBasis:()=>eM,curveBasisClosed:()=>eA,curveBasisOpen:()=>eC,curveBundle:()=>eD,curveCardinal:()=>eR,curveCardinalClosed:()=>eF,curveCardinalOpen:()=>eB,curveCatmullRom:()=>e$,curveCatmullRomClosed:()=>eG,curveCatmullRomOpen:()=>eK,curveLinear:()=>D,curveLinearClosed:()=>eq,curveMonotoneX:()=>e3,curveMonotoneY:()=>e4,curveNatural:()=>e8,curveStep:()=>e7,curveStepAfter:()=>tt,curveStepBefore:()=>te,line:()=>R,lineRadial:()=>G,linkHorizontal:()=>et,linkRadial:()=>er,linkVertical:()=>en,pie:()=>B,pointRadial:()=>K,radialArea:()=>W,radialLine:()=>G,stack:()=>ta,stackOffsetDiverging:()=>ts,stackOffsetExpand:()=>to,stackOffsetNone:()=>tn,stackOffsetSilhouette:()=>tu,stackOffsetWiggle:()=>tc,stackOrderAppearance:()=>tl,stackOrderAscending:()=>td,stackOrderDescending:()=>tp,stackOrderInsideOut:()=>tb,stackOrderNone:()=>tr,stackOrderReverse:()=>tm,symbol:()=>eS,symbolCircle:()=>ei,symbolCross:()=>ea,symbolDiamond:()=>eu,symbolSquare:()=>ep,symbolStar:()=>eh,symbolTriangle:()=>em,symbolWye:()=>e_,symbols:()=>eE});var r=Math.PI,i=2*r,a=1e-6,o=i-a;function s(){this._x0=this._y0=this._x1=this._y1=null,this._=""}function u(){return new s}s.prototype=u.prototype={constructor:s,moveTo:function(e,t){this._+="M"+(this._x0=this._x1=+e)+","+(this._y0=this._y1=+t)},closePath:function(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")},lineTo:function(e,t){this._+="L"+(this._x1=+e)+","+(this._y1=+t)},quadraticCurveTo:function(e,t,n,r){this._+="Q"+ +e+","+ +t+","+(this._x1=+n)+","+(this._y1=+r)},bezierCurveTo:function(e,t,n,r,i,a){this._+="C"+ +e+","+ +t+","+ +n+","+ +r+","+(this._x1=+i)+","+(this._y1=+a)},arcTo:function(e,t,n,i,o){e=+e,t=+t,n=+n,i=+i,o=+o;var s=this._x1,u=this._y1,c=n-e,l=i-t,f=s-e,d=u-t,h=f*f+d*d;if(o<0)throw Error("negative radius: "+o);if(null===this._x1)this._+="M"+(this._x1=e)+","+(this._y1=t);else if(h>a){if(Math.abs(d*c-l*f)>a&&o){var p=n-s,b=i-u,m=c*c+l*l,g=Math.sqrt(m),v=Math.sqrt(h),y=o*Math.tan((r-Math.acos((m+h-(p*p+b*b))/(2*g*v)))/2),w=y/v,_=y/g;Math.abs(w-1)>a&&(this._+="L"+(e+w*f)+","+(t+w*d)),this._+="A"+o+","+o+",0,0,"+ +(d*p>f*b)+","+(this._x1=e+_*c)+","+(this._y1=t+_*l)}else this._+="L"+(this._x1=e)+","+(this._y1=t)}},arc:function(e,t,n,s,u,c){e=+e,t=+t,n=+n,c=!!c;var l=n*Math.cos(s),f=n*Math.sin(s),d=e+l,h=t+f,p=1^c,b=c?s-u:u-s;if(n<0)throw Error("negative radius: "+n);null===this._x1?this._+="M"+d+","+h:(Math.abs(this._x1-d)>a||Math.abs(this._y1-h)>a)&&(this._+="L"+d+","+h),n&&(b<0&&(b=b%i+i),b>o?this._+="A"+n+","+n+",0,1,"+p+","+(e-l)+","+(t-f)+"A"+n+","+n+",0,1,"+p+","+(this._x1=d)+","+(this._y1=h):b>a&&(this._+="A"+n+","+n+",0,"+ +(b>=r)+","+p+","+(this._x1=e+n*Math.cos(u))+","+(this._y1=t+n*Math.sin(u))))},rect:function(e,t,n,r){this._+="M"+(this._x0=this._x1=+e)+","+(this._y0=this._y1=+t)+"h"+ +n+"v"+ +r+"h"+-n+"Z"},toString:function(){return this._}};let c=u;function l(e){return function(){return e}}var f=Math.abs,d=Math.atan2,h=Math.cos,p=Math.max,b=Math.min,m=Math.sin,g=Math.sqrt,v=1e-12,y=Math.PI,w=y/2,_=2*y;function E(e){return e>1?0:e<-1?y:Math.acos(e)}function S(e){return e>=1?w:e<=-1?-w:Math.asin(e)}function k(e){return e.innerRadius}function x(e){return e.outerRadius}function T(e){return e.startAngle}function M(e){return e.endAngle}function O(e){return e&&e.padAngle}function A(e,t,n,r,i,a,o,s){var u=n-e,c=r-t,l=o-i,f=s-a,d=f*u-l*c;if(!(d*dI*I+D*D&&(T=O,M=A),{cx:T,cy:M,x01:-l,y01:-f,x11:T*(i/S-1),y11:M*(i/S-1)}}function C(){var e=k,t=x,n=l(0),r=null,i=T,a=M,o=O,s=null;function u(){var u,l,p=+e.apply(this,arguments),k=+t.apply(this,arguments),x=i.apply(this,arguments)-w,T=a.apply(this,arguments)-w,M=f(T-x),O=T>x;if(s||(s=u=c()),kv){if(M>_-v)s.moveTo(k*h(x),k*m(x)),s.arc(0,0,k,x,T,!O),p>v&&(s.moveTo(p*h(T),p*m(T)),s.arc(0,0,p,T,x,O));else{var C,I,D=x,N=T,P=x,R=T,j=M,F=M,Y=o.apply(this,arguments)/2,B=Y>v&&(r?+r.apply(this,arguments):g(p*p+k*k)),U=b(f(k-p)/2,+n.apply(this,arguments)),H=U,$=U;if(B>v){var z=S(B/p*m(Y)),G=S(B/k*m(Y));(j-=2*z)>v?(z*=O?1:-1,P+=z,R-=z):(j=0,P=R=(x+T)/2),(F-=2*G)>v?(G*=O?1:-1,D+=G,N-=G):(F=0,D=N=(x+T)/2)}var W=k*h(D),K=k*m(D),V=p*h(R),q=p*m(R);if(U>v){var Z,X=k*h(N),J=k*m(N),Q=p*h(P),ee=p*m(P);if(Mv?$>v?(C=L(Q,ee,W,K,k,$,O),I=L(X,J,V,q,k,$,O),s.moveTo(C.cx+C.x01,C.cy+C.y01),$v&&j>v?H>v?(C=L(V,q,X,J,p,-H,O),I=L(W,K,Q,ee,p,-H,O),s.lineTo(C.cx+C.x01,C.cy+C.y01),H=f;--d)s.point(g[d],v[d]);s.lineEnd(),s.areaEnd()}}m&&(g[l]=+e(h,l,u),v[l]=+n(h,l,u),s.point(t?+t(h,l,u):g[l],r?+r(h,l,u):v[l]))}if(p)return s=null,p+""||null}function f(){return R().defined(i).curve(o).context(a)}return u.x=function(n){return arguments.length?(e="function"==typeof n?n:l(+n),t=null,u):e},u.x0=function(t){return arguments.length?(e="function"==typeof t?t:l(+t),u):e},u.x1=function(e){return arguments.length?(t=null==e?null:"function"==typeof e?e:l(+e),u):t},u.y=function(e){return arguments.length?(n="function"==typeof e?e:l(+e),r=null,u):n},u.y0=function(e){return arguments.length?(n="function"==typeof e?e:l(+e),u):n},u.y1=function(e){return arguments.length?(r=null==e?null:"function"==typeof e?e:l(+e),u):r},u.lineX0=u.lineY0=function(){return f().x(e).y(n)},u.lineY1=function(){return f().x(e).y(r)},u.lineX1=function(){return f().x(t).y(n)},u.defined=function(e){return arguments.length?(i="function"==typeof e?e:l(!!e),u):i},u.curve=function(e){return arguments.length?(o=e,null!=a&&(s=o(a)),u):o},u.context=function(e){return arguments.length?(null==e?a=s=null:s=o(a=e),u):a},u}function F(e,t){return te?1:t>=e?0:NaN}function Y(e){return e}function B(){var e=Y,t=F,n=null,r=l(0),i=l(_),a=l(0);function o(o){var s,u,c,l,f,d=o.length,h=0,p=Array(d),b=Array(d),m=+r.apply(this,arguments),g=Math.min(_,Math.max(-_,i.apply(this,arguments)-m)),v=Math.min(Math.abs(g)/d,a.apply(this,arguments)),y=v*(g<0?-1:1);for(s=0;s0&&(h+=f);for(null!=t?p.sort(function(e,n){return t(b[e],b[n])}):null!=n&&p.sort(function(e,t){return n(o[e],o[t])}),s=0,c=h?(g-d*y)/h:0;s0?f*c:0)+y,b[u]={data:o[u],index:s,value:f,startAngle:m,endAngle:l,padAngle:v};return b}return o.value=function(t){return arguments.length?(e="function"==typeof t?t:l(+t),o):e},o.sortValues=function(e){return arguments.length?(t=e,n=null,o):t},o.sort=function(e){return arguments.length?(n=e,t=null,o):n},o.startAngle=function(e){return arguments.length?(r="function"==typeof e?e:l(+e),o):r},o.endAngle=function(e){return arguments.length?(i="function"==typeof e?e:l(+e),o):i},o.padAngle=function(e){return arguments.length?(a="function"==typeof e?e:l(+e),o):a},o}I.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:this._context.lineTo(e,t)}}};var U=$(D);function H(e){this._curve=e}function $(e){function t(t){return new H(e(t))}return t._curve=e,t}function z(e){var t=e.curve;return e.angle=e.x,delete e.x,e.radius=e.y,delete e.y,e.curve=function(e){return arguments.length?t($(e)):t()._curve},e}function G(){return z(R().curve(U))}function W(){var e=j().curve(U),t=e.curve,n=e.lineX0,r=e.lineX1,i=e.lineY0,a=e.lineY1;return e.angle=e.x,delete e.x,e.startAngle=e.x0,delete e.x0,e.endAngle=e.x1,delete e.x1,e.radius=e.y,delete e.y,e.innerRadius=e.y0,delete e.y0,e.outerRadius=e.y1,delete e.y1,e.lineStartAngle=function(){return z(n())},delete e.lineX0,e.lineEndAngle=function(){return z(r())},delete e.lineX1,e.lineInnerRadius=function(){return z(i())},delete e.lineY0,e.lineOuterRadius=function(){return z(a())},delete e.lineY1,e.curve=function(e){return arguments.length?t($(e)):t()._curve},e}function K(e,t){return[(t=+t)*Math.cos(e-=Math.PI/2),t*Math.sin(e)]}H.prototype={areaStart:function(){this._curve.areaStart()},areaEnd:function(){this._curve.areaEnd()},lineStart:function(){this._curve.lineStart()},lineEnd:function(){this._curve.lineEnd()},point:function(e,t){this._curve.point(t*Math.sin(e),-(t*Math.cos(e)))}};var V=Array.prototype.slice;function q(e){return e.source}function Z(e){return e.target}function X(e){var t=q,n=Z,r=N,i=P,a=null;function o(){var o,s=V.call(arguments),u=t.apply(this,s),l=n.apply(this,s);if(a||(a=o=c()),e(a,+r.apply(this,(s[0]=u,s)),+i.apply(this,s),+r.apply(this,(s[0]=l,s)),+i.apply(this,s)),o)return a=null,o+""||null}return o.source=function(e){return arguments.length?(t=e,o):t},o.target=function(e){return arguments.length?(n=e,o):n},o.x=function(e){return arguments.length?(r="function"==typeof e?e:l(+e),o):r},o.y=function(e){return arguments.length?(i="function"==typeof e?e:l(+e),o):i},o.context=function(e){return arguments.length?(a=null==e?null:e,o):a},o}function J(e,t,n,r,i){e.moveTo(t,n),e.bezierCurveTo(t=(t+r)/2,n,t,i,r,i)}function Q(e,t,n,r,i){e.moveTo(t,n),e.bezierCurveTo(t,n=(n+i)/2,r,n,r,i)}function ee(e,t,n,r,i){var a=K(t,n),o=K(t,n=(n+i)/2),s=K(r,n),u=K(r,i);e.moveTo(a[0],a[1]),e.bezierCurveTo(o[0],o[1],s[0],s[1],u[0],u[1])}function et(){return X(J)}function en(){return X(Q)}function er(){var e=X(ee);return e.angle=e.x,delete e.x,e.radius=e.y,delete e.y,e}let ei={draw:function(e,t){var n=Math.sqrt(t/y);e.moveTo(n,0),e.arc(0,0,n,0,_)}},ea={draw:function(e,t){var n=Math.sqrt(t/5)/2;e.moveTo(-3*n,-n),e.lineTo(-n,-n),e.lineTo(-n,-3*n),e.lineTo(n,-3*n),e.lineTo(n,-n),e.lineTo(3*n,-n),e.lineTo(3*n,n),e.lineTo(n,n),e.lineTo(n,3*n),e.lineTo(-n,3*n),e.lineTo(-n,n),e.lineTo(-3*n,n),e.closePath()}};var eo=Math.sqrt(1/3),es=2*eo;let eu={draw:function(e,t){var n=Math.sqrt(t/es),r=n*eo;e.moveTo(0,-n),e.lineTo(r,0),e.lineTo(0,n),e.lineTo(-r,0),e.closePath()}};var ec=.8908130915292852,el=Math.sin(y/10)/Math.sin(7*y/10),ef=Math.sin(_/10)*el,ed=-Math.cos(_/10)*el;let eh={draw:function(e,t){var n=Math.sqrt(t*ec),r=ef*n,i=ed*n;e.moveTo(0,-n),e.lineTo(r,i);for(var a=1;a<5;++a){var o=_*a/5,s=Math.cos(o),u=Math.sin(o);e.lineTo(u*n,-s*n),e.lineTo(s*r-u*i,u*r+s*i)}e.closePath()}},ep={draw:function(e,t){var n=Math.sqrt(t),r=-n/2;e.rect(r,r,n,n)}};var eb=Math.sqrt(3);let em={draw:function(e,t){var n=-Math.sqrt(t/(3*eb));e.moveTo(0,2*n),e.lineTo(-eb*n,-n),e.lineTo(eb*n,-n),e.closePath()}};var eg=-.5,ev=Math.sqrt(3)/2,ey=1/Math.sqrt(12),ew=(ey/2+1)*3;let e_={draw:function(e,t){var n=Math.sqrt(t/ew),r=n/2,i=n*ey,a=r,o=n*ey+n,s=-a,u=o;e.moveTo(r,i),e.lineTo(a,o),e.lineTo(s,u),e.lineTo(eg*r-ev*i,ev*r+eg*i),e.lineTo(eg*a-ev*o,ev*a+eg*o),e.lineTo(eg*s-ev*u,ev*s+eg*u),e.lineTo(eg*r+ev*i,eg*i-ev*r),e.lineTo(eg*a+ev*o,eg*o-ev*a),e.lineTo(eg*s+ev*u,eg*u-ev*s),e.closePath()}};var eE=[ei,ea,eu,ep,eh,em,e_];function eS(){var e=l(ei),t=l(64),n=null;function r(){var r;if(n||(n=r=c()),e.apply(this,arguments).draw(n,+t.apply(this,arguments)),r)return n=null,r+""||null}return r.type=function(t){return arguments.length?(e="function"==typeof t?t:l(t),r):e},r.size=function(e){return arguments.length?(t="function"==typeof e?e:l(+e),r):t},r.context=function(e){return arguments.length?(n=null==e?null:e,r):n},r}function ek(){}function ex(e,t,n){e._context.bezierCurveTo((2*e._x0+e._x1)/3,(2*e._y0+e._y1)/3,(e._x0+2*e._x1)/3,(e._y0+2*e._y1)/3,(e._x0+4*e._x1+t)/6,(e._y0+4*e._y1+n)/6)}function eT(e){this._context=e}function eM(e){return new eT(e)}function eO(e){this._context=e}function eA(e){return new eO(e)}function eL(e){this._context=e}function eC(e){return new eL(e)}function eI(e,t){this._basis=new eT(e),this._beta=t}eT.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:ex(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:ex(this,e,t)}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}},eO.prototype={areaStart:ek,areaEnd:ek,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x2,this._y2),this._context.closePath();break;case 2:this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break;case 3:this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4)}},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x2=e,this._y2=t;break;case 1:this._point=2,this._x3=e,this._y3=t;break;case 2:this._point=3,this._x4=e,this._y4=t,this._context.moveTo((this._x0+4*this._x1+e)/6,(this._y0+4*this._y1+t)/6);break;default:ex(this,e,t)}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}},eL.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var n=(this._x0+4*this._x1+e)/6,r=(this._y0+4*this._y1+t)/6;this._line?this._context.lineTo(n,r):this._context.moveTo(n,r);break;case 3:this._point=4;default:ex(this,e,t)}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}},eI.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var e=this._x,t=this._y,n=e.length-1;if(n>0)for(var r,i=e[0],a=t[0],o=e[n]-i,s=t[n]-a,u=-1;++u<=n;)r=u/n,this._basis.point(this._beta*e[u]+(1-this._beta)*(i+r*o),this._beta*t[u]+(1-this._beta)*(a+r*s));this._x=this._y=null,this._basis.lineEnd()},point:function(e,t){this._x.push(+e),this._y.push(+t)}};let eD=function e(t){function n(e){return 1===t?new eT(e):new eI(e,t)}return n.beta=function(t){return e(+t)},n}(.85);function eN(e,t,n){e._context.bezierCurveTo(e._x1+e._k*(e._x2-e._x0),e._y1+e._k*(e._y2-e._y0),e._x2+e._k*(e._x1-t),e._y2+e._k*(e._y1-n),e._x2,e._y2)}function eP(e,t){this._context=e,this._k=(1-t)/6}eP.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:eN(this,this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2,this._x1=e,this._y1=t;break;case 2:this._point=3;default:eN(this,e,t)}this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};let eR=function e(t){function n(e){return new eP(e,0)}return n.tension=function(t){return e(+t)},n}(0);function ej(e,t){this._context=e,this._k=(1-t)/6}ej.prototype={areaStart:ek,areaEnd:ek,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x3=e,this._y3=t;break;case 1:this._point=2,this._context.moveTo(this._x4=e,this._y4=t);break;case 2:this._point=3,this._x5=e,this._y5=t;break;default:eN(this,e,t)}this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};let eF=function e(t){function n(e){return new ej(e,0)}return n.tension=function(t){return e(+t)},n}(0);function eY(e,t){this._context=e,this._k=(1-t)/6}eY.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:eN(this,e,t)}this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};let eB=function e(t){function n(e){return new eY(e,0)}return n.tension=function(t){return e(+t)},n}(0);function eU(e,t,n){var r=e._x1,i=e._y1,a=e._x2,o=e._y2;if(e._l01_a>v){var s=2*e._l01_2a+3*e._l01_a*e._l12_a+e._l12_2a,u=3*e._l01_a*(e._l01_a+e._l12_a);r=(r*s-e._x0*e._l12_2a+e._x2*e._l01_2a)/u,i=(i*s-e._y0*e._l12_2a+e._y2*e._l01_2a)/u}if(e._l23_a>v){var c=2*e._l23_2a+3*e._l23_a*e._l12_a+e._l12_2a,l=3*e._l23_a*(e._l23_a+e._l12_a);a=(a*c+e._x1*e._l23_2a-t*e._l12_2a)/l,o=(o*c+e._y1*e._l23_2a-n*e._l12_2a)/l}e._context.bezierCurveTo(r,i,a,o,e._x2,e._y2)}function eH(e,t){this._context=e,this._alpha=t}eH.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){if(e=+e,t=+t,this._point){var n=this._x2-e,r=this._y2-t;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3;default:eU(this,e,t)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};let e$=function e(t){function n(e){return t?new eH(e,t):new eP(e,0)}return n.alpha=function(t){return e(+t)},n}(.5);function ez(e,t){this._context=e,this._alpha=t}ez.prototype={areaStart:ek,areaEnd:ek,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(e,t){if(e=+e,t=+t,this._point){var n=this._x2-e,r=this._y2-t;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=e,this._y3=t;break;case 1:this._point=2,this._context.moveTo(this._x4=e,this._y4=t);break;case 2:this._point=3,this._x5=e,this._y5=t;break;default:eU(this,e,t)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};let eG=function e(t){function n(e){return t?new ez(e,t):new ej(e,0)}return n.alpha=function(t){return e(+t)},n}(.5);function eW(e,t){this._context=e,this._alpha=t}eW.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){if(e=+e,t=+t,this._point){var n=this._x2-e,r=this._y2-t;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:eU(this,e,t)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};let eK=function e(t){function n(e){return t?new eW(e,t):new eY(e,0)}return n.alpha=function(t){return e(+t)},n}(.5);function eV(e){this._context=e}function eq(e){return new eV(e)}function eZ(e){return e<0?-1:1}function eX(e,t,n){var r=e._x1-e._x0,i=t-e._x1,a=(e._y1-e._y0)/(r||i<0&&-0),o=(n-e._y1)/(i||r<0&&-0),s=(a*i+o*r)/(r+i);return(eZ(a)+eZ(o))*Math.min(Math.abs(a),Math.abs(o),.5*Math.abs(s))||0}function eJ(e,t){var n=e._x1-e._x0;return n?(3*(e._y1-e._y0)/n-t)/2:t}function eQ(e,t,n){var r=e._x0,i=e._y0,a=e._x1,o=e._y1,s=(a-r)/3;e._context.bezierCurveTo(r+s,i+s*t,a-s,o-s*n,a,o)}function e1(e){this._context=e}function e0(e){this._context=new e2(e)}function e2(e){this._context=e}function e3(e){return new e1(e)}function e4(e){return new e0(e)}function e6(e){this._context=e}function e5(e){var t,n,r=e.length-1,i=Array(r),a=Array(r),o=Array(r);for(i[0]=0,a[0]=2,o[0]=e[0]+2*e[1],t=1;t=0;--t)i[t]=(o[t]-i[t+1])/a[t];for(t=0,a[r-1]=(e[r]+i[r-1])/2;t1)for(var n,r,i,a=1,o=e[t[0]],s=o.length;a=0;)n[t]=t;return n}function ti(e,t){return e[t]}function ta(){var e=l([]),t=tr,n=tn,r=ti;function i(i){var a,o,s=e.apply(this,arguments),u=i.length,c=s.length,l=Array(c);for(a=0;a0){for(var n,r,i,a=0,o=e[0].length;a0)for(var n,r,i,a,o,s,u=0,c=e[t[0]].length;u0?(r[0]=a,r[1]=a+=i):i<0?(r[1]=o,r[0]=o+=i):(r[0]=0,r[1]=i)}function tu(e,t){if((n=e.length)>0){for(var n,r=0,i=e[t[0]],a=i.length;r0&&(r=(n=e[t[0]]).length)>0){for(var n,r,i,a=0,o=1;oa&&(a=t,r=n);return r}function td(e){var t=e.map(th);return tr(e).sort(function(e,n){return t[e]-t[n]})}function th(e){for(var t,n=0,r=-1,i=e.length;++r=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:if(this._t<=0)this._context.lineTo(this._x,t),this._context.lineTo(e,t);else{var n=this._x*(1-this._t)+e*this._t;this._context.lineTo(n,this._y),this._context.lineTo(n,t)}}this._x=e,this._y=t}}},35374(e,t,n){"use strict";n.d(t,{B7:()=>m,HT:()=>g,zO:()=>p});var r,i,a=0,o=0,s=0,u=1e3,c=0,l=0,f=0,d="object"==typeof performance&&performance.now?performance:Date,h="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function p(){return l||(h(b),l=d.now()+f)}function b(){l=0}function m(){this._call=this._time=this._next=null}function g(e,t,n){var r=new m;return r.restart(e,t,n),r}function v(){p(),++a;for(var e,t=r;t;)(e=l-t._time)>=0&&t._call.call(null,e),t=t._next;--a}function y(){l=(c=d.now())+f,a=o=0;try{v()}finally{a=0,_(),l=0}}function w(){var e=d.now(),t=e-c;t>u&&(f-=t,c=e)}function _(){for(var e,t,n=r,a=1/0;n;)n._call?(a>n._time&&(a=n._time),e=n,n=n._next):(t=n._next,n._next=null,n=e?e._next=t:r=t);i=e,E(a)}function E(e){if(!a){var t;o&&(o=clearTimeout(o)),e-l>24?(e<1/0&&(o=setTimeout(y,e-d.now()-f)),s&&(s=clearInterval(s))):(s||(c=d.now(),s=setInterval(w,u)),a=1,h(y))}}m.prototype=g.prototype={constructor:m,restart:function(e,t,n){if("function"!=typeof e)throw TypeError("callback is not a function");n=(null==n?p():+n)+(null==t?0:+t),this._next||i===this||(i?i._next=this:r=this,i=this),this._call=e,this._time=n,E()},stop:function(){this._call&&(this._call=null,this._time=1/0,E())}}},76626(e,t,n){"use strict";n.r(t),n.d(t,{zoom:()=>t6,zoomIdentity:()=>tq,zoomTransform:()=>tZ});var r,i,a,o,s=n(92626),u=n(44266),c=Math.SQRT2,l=2,f=4,d=1e-12;function h(e){return((e=Math.exp(e))+1/e)/2}function p(e){return((e=Math.exp(e))-1/e)/2}function b(e){return((e=Math.exp(2*e))-1)/(e+1)}function m(e,t){var n,r,i=e[0],a=e[1],o=e[2],s=t[0],u=t[1],m=t[2],g=s-i,v=u-a,y=g*g+v*v;if(yT)throw Error("too late; already scheduled");return n}function P(e,t){var n=R(e,t);if(n.state>A)throw Error("too late; already running");return n}function R(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw Error("transition not found");return n}function j(e,t,n){var r,i=e.__transition;function a(e){n.state=M,n.timer.restart(o,n.delay,n.time),n.delay<=e&&o(e-n.delay)}function o(a){var c,l,f,d;if(n.state!==M)return u();for(c in i)if((d=i[c]).name===n.name){if(d.state===A)return S(o);d.state===L?(d.state=I,d.timer.stop(),d.on.call("interrupt",e,e.__data__,d.index,d.group),delete i[c]):+cO&&n.state180?t+=360:t-e>180&&(e+=360),a.push({i:n.push(i(n)+"rotate(",null,r)-2,x:B(e,t)})):t&&n.push(i(n)+"rotate("+t+r)}function s(e,t,n,a){e!==t?a.push({i:n.push(i(n)+"skewX(",null,r)-2,x:B(e,t)}):t&&n.push(i(n)+"skewX("+t+r)}function u(e,t,n,r,a,o){if(e!==n||t!==r){var s=a.push(i(a)+"scale(",null,",",null,")");o.push({i:s-4,x:B(e,n)},{i:s-2,x:B(t,r)})}else(1!==n||1!==r)&&a.push(i(a)+"scale("+n+","+r+")")}return function(t,n){var r=[],i=[];return t=e(t),n=e(n),a(t.translateX,t.translateY,n.translateX,n.translateY,r,i),o(t.rotate,n.rotate,r,i),s(t.skewX,n.skewX,r,i),u(t.scaleX,t.scaleY,n.scaleX,n.scaleY,r,i),t=n=null,function(e){for(var t,n=-1,a=i.length;++n>8&15|t>>4&240,t>>4&15|240&t,(15&t)<<4|15&t,1):8===n?e_(t>>24&255,t>>16&255,t>>8&255,(255&t)/255):4===n?e_(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|240&t,((15&t)<<4|15&t)/255):null):(t=ec.exec(e))?new ek(t[1],t[2],t[3],1):(t=el.exec(e))?new ek(255*t[1]/100,255*t[2]/100,255*t[3]/100,1):(t=ef.exec(e))?e_(t[1],t[2],t[3],t[4]):(t=ed.exec(e))?e_(255*t[1]/100,255*t[2]/100,255*t[3]/100,t[4]):(t=eh.exec(e))?eO(t[1],t[2]/100,t[3]/100,1):(t=ep.exec(e))?eO(t[1],t[2]/100,t[3]/100,t[4]):eb.hasOwnProperty(e)?ew(eb[e]):"transparent"===e?new ek(NaN,NaN,NaN,0):null}function ew(e){return new ek(e>>16&255,e>>8&255,255&e,1)}function e_(e,t,n,r){return r<=0&&(e=t=n=NaN),new ek(e,t,n,r)}function eE(e){return(e instanceof en||(e=ey(e)),e)?(e=e.rgb(),new ek(e.r,e.g,e.b,e.opacity)):new ek}function eS(e,t,n,r){return 1===arguments.length?eE(e):new ek(e,t,n,null==r?1:r)}function ek(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}function ex(){return"#"+eM(this.r)+eM(this.g)+eM(this.b)}function eT(){var e=this.opacity;return(1===(e=isNaN(e)?1:Math.max(0,Math.min(1,e)))?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===e?")":", "+e+")")}function eM(e){return((e=Math.max(0,Math.min(255,Math.round(e)||0)))<16?"0":"")+e.toString(16)}function eO(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new eC(e,t,n,r)}function eA(e){if(e instanceof eC)return new eC(e.h,e.s,e.l,e.opacity);if(e instanceof en||(e=ey(e)),!e)return new eC;if(e instanceof eC)return e;var t=(e=e.rgb()).r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),a=Math.max(t,n,r),o=NaN,s=a-i,u=(a+i)/2;return s?(o=t===a?(n-r)/s+(n0&&u<1?0:o,new eC(o,s,u,e.opacity)}function eL(e,t,n,r){return 1===arguments.length?eA(e):new eC(e,t,n,null==r?1:r)}function eC(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}function eI(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}function eD(e,t,n,r,i){var a=e*e,o=a*e;return((1-3*e+3*a-o)*t+(4-6*a+3*o)*n+(1+3*e+3*a-3*o)*r+o*i)/6}function eN(e){var t=e.length-1;return function(n){var r=n<=0?n=0:n>=1?(n=1,t-1):Math.floor(n*t),i=e[r],a=e[r+1],o=r>0?e[r-1]:2*i-a,s=r=240?e-240:e+120,i,r),eI(e,i,r),eI(e<120?e+240:e-120,i,r),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl:function(){var e=this.opacity;return(1===(e=isNaN(e)?1:Math.max(0,Math.min(1,e)))?"hsl(":"hsla(")+(this.h||0)+", "+100*(this.s||0)+"%, "+100*(this.l||0)+"%"+(1===e?")":", "+e+")")}}));let eU=function e(t){var n=eY(1);function r(e,t){var r=n((e=eS(e)).r,(t=eS(t)).r),i=n(e.g,t.g),a=n(e.b,t.b),o=eB(e.opacity,t.opacity);return function(t){return e.r=r(t),e.g=i(t),e.b=a(t),e.opacity=o(t),e+""}}return r.gamma=e,r}(1);function eH(e){return function(t){var n,r,i=t.length,a=Array(i),o=Array(i),s=Array(i);for(n=0;na&&(i=t.slice(a,i),s[o]?s[o]+=i:s[++o]=i),(n=n[0])===(r=r[0])?s[o]?s[o]+=r:s[++o]=r:(s[++o]=null,u.push({i:o,x:B(n,r)})),a=ez.lastIndex;return a=0&&(e=e.slice(0,t)),!e||"start"===e})}function tc(e,t,n){var r,i,a=tu(t)?N:P;return function(){var o=a(this,e),s=o.on;s!==r&&(i=(r=s).copy()).on(t,n),o.on=i}}function tl(e,t){var n=this._id;return arguments.length<2?R(this.node(),n).on.on(e):this.each(tc(n,e,t))}function tf(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function td(){return this.on("end.remove",tf(this._id))}var th=n(82634);function tp(e){var t=this._name,n=this._id;"function"!=typeof e&&(e=(0,th.Z)(e));for(var r=this._groups,i=r.length,a=Array(i),o=0;or?(r+i)/2:Math.min(0,r)||Math.max(0,i),o>a?(a+o)/2:Math.min(0,a)||Math.max(0,o))}function t6(){var e,t,n=tQ,r=t1,i=t4,a=t2,o=t3,c=[0,1/0],l=[[-1/0,-1/0],[1/0,1/0]],f=250,d=m,h=(0,s.Z)("start","zoom","end"),p=500,b=150,_=0;function E(e){e.property("__zoom",t0).on("wheel.zoom",A).on("mousedown.zoom",L).on("dblclick.zoom",C).filter(o).on("touchstart.zoom",I).on("touchmove.zoom",D).on("touchend.zoom touchcancel.zoom",N).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function S(e,t){return(t=Math.max(c[0],Math.min(c[1],t)))===e.k?e:new tV(t,e.x,e.y)}function k(e,t,n){var r=t[0]-n[0]*e.k,i=t[1]-n[1]*e.k;return r===e.x&&i===e.y?e:new tV(e.k,r,i)}function x(e){return[(+e[0][0]+ +e[1][0])/2,(+e[0][1]+ +e[1][1])/2]}function T(e,t,n){e.on("start.zoom",function(){M(this,arguments).start()}).on("interrupt.zoom end.zoom",function(){M(this,arguments).end()}).tween("zoom",function(){var e=this,i=arguments,a=M(e,i),o=r.apply(e,i),s=null==n?x(o):"function"==typeof n?n.apply(e,i):n,u=Math.max(o[1][0]-o[0][0],o[1][1]-o[0][1]),c=e.__zoom,l="function"==typeof t?t.apply(e,i):t,f=d(c.invert(s).concat(u/c.k),l.invert(s).concat(u/l.k));return function(e){if(1===e)e=l;else{var t=f(e),n=u/t[2];e=new tV(n,s[0]-t[0]*n,s[1]-t[1]*n)}a.zoom(null,e)}})}function M(e,t,n){return!n&&e.__zooming||new O(e,t)}function O(e,t){this.that=e,this.args=t,this.active=0,this.extent=r.apply(e,t),this.taps=0}function A(){if(n.apply(this,arguments)){var e=M(this,arguments),t=this.__zoom,r=Math.max(c[0],Math.min(c[1],t.k*Math.pow(2,a.apply(this,arguments)))),o=(0,v.Z)(this);if(e.wheel)(e.mouse[0][0]!==o[0]||e.mouse[0][1]!==o[1])&&(e.mouse[1]=t.invert(e.mouse[0]=o)),clearTimeout(e.wheel);else{if(t.k===r)return;e.mouse=[o,t.invert(o)],F(this),e.start()}tJ(),e.wheel=setTimeout(s,b),e.zoom("mouse",i(k(S(t,r),e.mouse[0],e.mouse[1]),e.extent,l))}function s(){e.wheel=null,e.end()}}function L(){if(!t&&n.apply(this,arguments)){var e=M(this,arguments,!0),r=(0,y.Z)(g.B.view).on("mousemove.zoom",c,!0).on("mouseup.zoom",f,!0),a=(0,v.Z)(this),o=g.B.clientX,s=g.B.clientY;(0,u.Z)(g.B.view),tX(),e.mouse=[a,this.__zoom.invert(a)],F(this),e.start()}function c(){if(tJ(),!e.moved){var t=g.B.clientX-o,n=g.B.clientY-s;e.moved=t*t+n*n>_}e.zoom("mouse",i(k(e.that.__zoom,e.mouse[0]=(0,v.Z)(e.that),e.mouse[1]),e.extent,l))}function f(){r.on("mousemove.zoom mouseup.zoom",null),(0,u.D)(g.B.view,e.moved),tJ(),e.end()}}function C(){if(n.apply(this,arguments)){var e=this.__zoom,t=(0,v.Z)(this),a=e.invert(t),o=e.k*(g.B.shiftKey?.5:2),s=i(k(S(e,o),t,a),r.apply(this,arguments),l);tJ(),f>0?(0,y.Z)(this).transition().duration(f).call(T,s,t):(0,y.Z)(this).call(E.transform,s)}}function I(){if(n.apply(this,arguments)){var t,r,i,a,o=g.B.touches,s=o.length,u=M(this,arguments,g.B.changedTouches.length===s);for(tX(),r=0;r=0?i=setTimeout(r,t-c):(i=null,n||(u=e.apply(o,a),o=a=null))}null==t&&(t=100);var i,a,o,s,u,c=function(){o=this,a=arguments,s=Date.now();var c=n&&!i;return i||(i=setTimeout(r,t)),c&&(u=e.apply(o,a),o=a=null),u};return c.clear=function(){i&&(clearTimeout(i),i=null)},c.flush=function(){i&&(u=e.apply(o,a),o=a=null,clearTimeout(i),i=null)},c}t.debounce=t,e.exports=t},94863:function(e){var t,n;t=this,n=function(){"use strict";var e=function(e){return t(e)&&!n(e)};function t(e){return!!e&&"object"==typeof e}function n(e){var t=Object.prototype.toString.call(e);return"[object RegExp]"===t||"[object Date]"===t||i(e)}var r="function"==typeof Symbol&&Symbol.for?Symbol.for("react.element"):60103;function i(e){return e.$$typeof===r}function a(e){return Array.isArray(e)?[]:{}}function o(e,t){return!1!==t.clone&&t.isMergeableObject(e)?d(a(e),e,t):e}function s(e,t,n){return e.concat(t).map(function(e){return o(e,n)})}function u(e,t){if(!t.customMerge)return d;var n=t.customMerge(e);return"function"==typeof n?n:d}function c(e){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter(function(t){return e.propertyIsEnumerable(t)}):[]}function l(e){return Object.keys(e).concat(c(e))}function f(e,t,n){var r={};return n.isMergeableObject(e)&&l(e).forEach(function(t){r[t]=o(e[t],n)}),l(t).forEach(function(i){n.isMergeableObject(t[i])&&e[i]?r[i]=u(i,n)(e[i],t[i],n):r[i]=o(t[i],n)}),r}function d(t,n,r){(r=r||{}).arrayMerge=r.arrayMerge||s,r.isMergeableObject=r.isMergeableObject||e;var i=Array.isArray(n);return i!==Array.isArray(t)?o(n,r):i?r.arrayMerge(t,n,r):f(t,n,r)}return d.all=function(e,t){if(!Array.isArray(e))throw Error("first argument should be an array");return e.reduce(function(e,n){return d(e,n,t)},{})},d},e.exports=n()},7624(e,t){"use strict";function n(e){return e===e.window?e:9===e.nodeType&&(e.defaultView||e.parentWindow)}t.__esModule=!0,t.default=n,e.exports=t.default},87797(e,t,n){"use strict";var r=n(64836);t.__esModule=!0,t.default=s;var i=r(n(53497)),a=/^(top|right|bottom|left)$/,o=/^([+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|))(?!px)[a-z%]+$/i;function s(e){if(!e)throw TypeError("No Element passed to `getComputedStyle()`");var t=e.ownerDocument;return"defaultView"in t?t.defaultView.opener?e.ownerDocument.defaultView.getComputedStyle(e,null):window.getComputedStyle(e,null):{getPropertyValue:function(t){var n=e.style;"float"==(t=(0,i.default)(t))&&(t="styleFloat");var r=e.currentStyle[t]||null;if(null==r&&n&&n[t]&&(r=n[t]),o.test(r)&&!a.test(t)){var s=n.left,u=e.runtimeStyle,c=u&&u.left;c&&(u.left=e.currentStyle.left),n.left="fontSize"===t?"1em":r,r=n.pixelLeft+"px",n.left=s,c&&(u.left=c)}return r}}}e.exports=t.default},10162(e,t,n){"use strict";var r=n(64836);t.__esModule=!0,t.default=l;var i=r(n(53497)),a=r(n(24403)),o=r(n(87797)),s=r(n(91760)),u=n(20702),c=r(n(43293));function l(e,t,n){var r="",l="",f=t;if("string"==typeof t){if(void 0===n)return e.style[(0,i.default)(t)]||(0,o.default)(e).getPropertyValue((0,a.default)(t));(f={})[t]=n}Object.keys(f).forEach(function(t){var n=f[t];n||0===n?(0,c.default)(t)?l+=t+"("+n+") ":r+=(0,a.default)(t)+": "+n+";":(0,s.default)(e,(0,a.default)(t))}),l&&(r+=u.transform+": "+l+";"),e.style.cssText+=";"+r}e.exports=t.default},91760(e,t){"use strict";function n(e,t){return"removeProperty"in e.style?e.style.removeProperty(t):e.style.removeAttribute(t)}t.__esModule=!0,t.default=n,e.exports=t.default},43293(e,t){"use strict";t.__esModule=!0,t.default=r;var n=/^((translate|rotate|scale)(X|Y|Z|3d)?|matrix(3d)?|perspective|skew(X|Y)?)$/i;function r(e){return!!(e&&n.test(e))}e.exports=t.default},20702(e,t,n){"use strict";var r,i,a,o,s,u,c,l,f,d,h,p=n(64836);t.__esModule=!0,t.default=t.animationEnd=t.animationDelay=t.animationTiming=t.animationDuration=t.animationName=t.transitionEnd=t.transitionDuration=t.transitionDelay=t.transitionTiming=t.transitionProperty=t.transform=void 0;var b=p(n(50139)),m="transform";if(t.transform=m,t.animationEnd=a,t.transitionEnd=i,t.transitionDelay=c,t.transitionTiming=u,t.transitionDuration=s,t.transitionProperty=o,t.animationDelay=h,t.animationTiming=d,t.animationDuration=f,t.animationName=l,b.default){var g=y();r=g.prefix,t.transitionEnd=i=g.transitionEnd,t.animationEnd=a=g.animationEnd,t.transform=m=r+"-"+m,t.transitionProperty=o=r+"-transition-property",t.transitionDuration=s=r+"-transition-duration",t.transitionDelay=c=r+"-transition-delay",t.transitionTiming=u=r+"-transition-timing-function",t.animationName=l=r+"-animation-name",t.animationDuration=f=r+"-animation-duration",t.animationTiming=d=r+"-animation-delay",t.animationDelay=h=r+"-animation-timing-function"}var v={transform:m,end:i,property:o,timing:u,delay:c,duration:s};function y(){for(var e,t,n=document.createElement("div").style,r={O:function(e){return"o"+e.toLowerCase()},Moz:function(e){return e.toLowerCase()},Webkit:function(e){return"webkit"+e},ms:function(e){return"MS"+e}},i=Object.keys(r),a="",o=0;o0&&void 0!==arguments[0]?arguments[0]:{},r=n.defaultLayoutOptions,a=void 0===r?{}:r,s=n.algorithms,u=void 0===s?["layered","stress","mrtree","radial","force","disco","sporeOverlap","sporeCompaction","rectpacking"]:s,c=n.workerFactory,l=n.workerUrl;if(i(this,e),this.defaultLayoutOptions=a,this.initialized=!1,void 0===l&&void 0===c)throw Error("Cannot construct an ELK without both 'workerUrl' and 'workerFactory'.");var f=c;void 0!==l&&void 0===c&&(f=function(e){return new Worker(e)});var d=f(l);if("function"!=typeof d.postMessage)throw TypeError("Created worker does not provide the required 'postMessage' function.");this.worker=new o(d),this.worker.postMessage({cmd:"register",algorithms:u}).then(function(e){return t.initialized=!0}).catch(console.err)}return r(e,[{key:"layout",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.layoutOptions,r=void 0===n?this.defaultLayoutOptions:n,i=t.logging,a=void 0!==i&&i,o=t.measureExecutionTime,s=void 0!==o&&o;return e?this.worker.postMessage({cmd:"layout",graph:e,layoutOptions:r,options:{logging:a,measureExecutionTime:s}}):Promise.reject(Error("Missing mandatory parameter 'graph'."))}},{key:"knownLayoutAlgorithms",value:function(){return this.worker.postMessage({cmd:"algorithms"})}},{key:"knownLayoutOptions",value:function(){return this.worker.postMessage({cmd:"options"})}},{key:"knownLayoutCategories",value:function(){return this.worker.postMessage({cmd:"categories"})}},{key:"terminateWorker",value:function(){this.worker.terminate()}}]),e}();n.default=a;var o=function(){function e(t){var n=this;if(i(this,e),void 0===t)throw Error("Missing mandatory parameter 'worker'.");this.resolvers={},this.worker=t,this.worker.onmessage=function(e){setTimeout(function(){n.receive(n,e)},0)}}return r(e,[{key:"postMessage",value:function(e){var t=this.id||0;this.id=t+1,e.id=t;var n=this;return new Promise(function(r,i){n.resolvers[t]=function(e,t){e?(n.convertGwtStyleError(e),i(e)):r(t)},n.worker.postMessage(e)})}},{key:"receive",value:function(e,t){var n=t.data,r=e.resolvers[n.id];r&&(delete e.resolvers[n.id],n.error?r(n.error):r(null,n.data))}},{key:"terminate",value:function(){this.worker.terminate&&this.worker.terminate()}},{key:"convertGwtStyleError",value:function(e){if(e){var t=e.__java$exception;t&&(t.cause&&t.cause.backingJsObject&&(e.cause=t.cause.backingJsObject,this.convertGwtStyleError(e.cause)),delete e.__java$exception)}}}]),e}()},{}],2:[function(e,t,n){"use strict";var r=e("./elk-api.js").default;Object.defineProperty(t.exports,"__esModule",{value:!0}),t.exports=r,r.default=r},{"./elk-api.js":1}]},{},[2])(2)},e.exports=t()},55273(e,t,n){"use strict";function r(){}function i(){}function a(){}function o(){}function s(){}function u(){}function c(){}function l(){}function f(){}function d(){}function h(){}function p(){}function b(){}function m(){}function g(){}function v(){}function y(){}function w(){}function _(){}function E(){}function S(){}function k(){}function x(){}function T(){}function M(){}function O(){}function A(){}function L(){}function C(){}function I(){}function D(){}function N(){}function P(){}function R(){}function j(){}function F(){}function Y(){}function B(){}function U(){}function H(){}function $(){}function z(){}function G(){}function W(){}function K(){}function V(){}function q(){}function Z(){}function X(){}function J(){}function Q(){}function ee(){}function et(){}function en(){}function er(){}function ei(){}function ea(){}function eo(){}function es(){}function eu(){}function ec(){}function el(){}function ef(){}function ed(){}function eh(){}function ep(){}function eb(){}function em(){}function eg(){}function ev(){}function ey(){}function ew(){}function e_(){}function eE(){}function eS(){}function ek(){}function ex(){}function eT(){}function eM(){}function eO(){}function eA(){}function eL(){}function eC(){}function eI(){}function eD(){}function eN(){}function eP(){}function eR(){}function ej(){}function eF(){}function eY(){}function eB(){}function eU(){}function eH(){}function e$(){}function ez(){}function eG(){}function eW(){}function eK(){}function eV(){}function eq(){}function eZ(){}function eX(){}function eJ(){}function eQ(){}function e1(){}function e0(){}function e2(){}function e3(){}function e4(){}function e6(){}function e5(){}function e8(){}function e9(){}function e7(){}function te(){}function tt(){}function tn(){}function tr(){}function ti(){}function ta(){}function to(){}function ts(){}function tu(){}function tc(){}function tl(){}function tf(){}function td(){}function th(){}function tp(){}function tb(){}function tm(){}function tg(){}function tv(){}function ty(){}function tw(){}function t_(){}function tE(){}function tS(){}function tk(){}function tx(){}function tT(){}function tM(){}function tO(){}function tA(){}function tL(){}function tC(){}function tI(){}function tD(){}function tN(){}function tP(){}function tR(){}function tj(){}function tF(){}function tY(){}function tB(){}function tU(){}function tH(){}function t$(){}function tz(){}function tG(){}function tW(){}function tK(){}function tV(){}function tq(){}function tZ(){}function tX(){}function tJ(){}function tQ(){}function t1(){}function t0(){}function t2(){}function t3(){}function t4(){}function t6(){}function t5(){}function t8(){}function t9(){}function t7(){}function ne(){}function nt(){}function nn(){}function nr(){}function ni(){}function na(){}function no(){}function ns(){}function nu(){}function nc(){}function nl(){}function nf(){}function nd(){}function nh(){}function np(){}function nb(){}function nm(){}function ng(){}function nv(){}function ny(){}function nw(){}function n_(){}function nE(){}function nS(){}function nk(){}function nx(){}function nT(){}function nM(){}function nO(){}function nA(){}function nL(){}function nC(){}function nI(){}function nD(){}function nN(){}function nP(){}function nR(){}function nj(){}function nF(){}function nY(){}function nB(){}function nU(){}function nH(){}function n$(){}function nz(){}function nG(){}function nW(){}function nK(){}function nV(){}function nq(){}function nZ(){}function nX(){}function nJ(){}function nQ(){}function n1(){}function n0(){}function n2(){}function n3(){}function n4(){}function n6(){}function n5(){}function n8(){}function n9(){}function n7(){}function re(){}function rt(){}function rn(){}function rr(){}function ri(){}function ra(){}function ro(){}function rs(){}function ru(){}function rc(){}function rl(){}function rf(){}function rd(){}function rh(){}function rp(){}function rb(){}function rm(){}function rg(){}function rv(){}function ry(){}function rw(){}function r_(){}function rE(){}function rS(){}function rk(){}function rx(){}function rT(){}function rM(){}function rO(){}function rA(){}function rL(){}function rC(){}function rI(){}function rD(){}function rN(){}function rP(){}function rR(){}function rj(){}function rF(){}function rY(){}function rB(){}function rU(){}function rH(){}function r$(){}function rz(){}function rG(){}function rW(){}function rK(){}function rV(){}function rq(){}function rZ(){}function rX(){}function rJ(){}function rQ(){}function r1(){}function r0(){}function r2(){}function r3(){}function r4(){}function r6(){}function r5(){}function r8(){}function r9(){}function r7(){}function ie(){}function it(){}function ir(){}function ii(){}function ia(){}function io(){}function is(){}function iu(){}function ic(){}function il(){}function id(){}function ih(){}function ip(){}function ib(){}function im(){}function ig(){}function iv(){}function iy(){}function iw(){}function i_(){}function iE(){}function iS(){}function ik(){}function ix(){}function iT(){}function iM(){}function iO(){}function iA(){}function iL(){}function iC(){}function iI(){}function iD(){}function iN(){}function iP(){}function iR(){}function ij(){}function iF(){}function iY(){}function iB(){}function iU(){}function iH(){}function i$(){}function iz(){}function iG(){}function iW(){}function iK(){}function iV(){}function iq(){}function iZ(){}function iX(){}function iJ(){}function iQ(){}function i1(){}function i0(){}function i2(){}function i3(){}function i4(){}function i6(){}function i5(){}function i8(){}function i9(){}function i7(){}function ae(){}function at(){}function an(){}function ar(){}function ai(){}function aa(){}function ao(){}function as(){}function au(){}function ac(){}function al(){}function af(){}function ad(){}function ah(){}function ap(){}function ab(){}function am(){}function ag(){}function av(){}function ay(){}function aw(){}function a_(){}function aE(){}function aS(){}function ak(){}function ax(){}function aT(){}function aM(){}function aO(){}function aA(){}function aL(){}function aC(){}function aI(){}function aD(){}function aN(){}function aP(){}function aR(){}function aj(){}function aF(){}function aY(){}function aB(){}function aU(){}function aH(){}function a$(){}function az(){}function aG(){}function aW(){}function aK(){}function aV(){}function aq(){}function aZ(){}function aX(){}function aJ(){}function aQ(){}function a1(){}function a0(){}function a2(){}function a3(){}function a4(){}function a6(){}function a5(){}function a8(){}function a9(){}function a7(){}function oe(){}function ot(){}function on(){}function or(){}function oi(){}function oa(){}function oo(){}function os(){}function ou(){}function oc(){}function ol(){}function of(){}function od(){}function oh(){}function op(){}function ob(){}function om(){}function og(){}function ov(){}function oy(){}function ow(){}function o_(){}function oE(){}function oS(){}function ok(){}function ox(){}function oT(){}function oM(){}function oO(){}function oA(){}function oL(){}function oC(){}function oI(){}function oD(){}function oN(){}function oP(){}function oR(){}function oj(){}function oF(){}function oY(){}function oB(){}function oU(){}function oH(){}function o$(){}function oz(){}function oG(){}function oW(){}function oK(){}function oV(){}function oq(){}function oZ(){}function oX(){}function oJ(){}function oQ(){}function o1(){}function o0(){}function o2(){}function o3(){}function o4(){}function o6(){}function o5(){}function o8(){}function o9(){}function o7(){}function se(){}function st(){}function sn(){}function sr(){}function si(){}function sa(){}function so(){}function ss(){}function su(){}function sc(){}function sl(){}function sf(){}function sd(){}function sh(){}function sp(){}function sb(){}function sm(){}function sg(){}function sv(){}function sy(){}function sw(){}function s_(){}function sE(){}function sS(){}function sk(){}function sx(){}function sT(){}function sM(){}function sO(){}function sA(){}function sL(){}function sC(){}function sI(){}function sD(){}function sN(){}function sP(){}function sR(){}function sj(){}function sF(){}function sY(){}function sB(){}function sU(){}function sH(){}function s$(){}function sz(){}function sG(){}function sW(){}function sK(){}function sV(){}function sq(){}function sZ(){}function sX(){}function sJ(){}function sQ(){}function s1(){}function s0(){}function s2(){}function s3(){}function s4(){}function s6(){}function s5(){}function s8(){}function s9(){}function s7(){}function ue(){}function ut(){}function un(){}function ur(){}function ui(){}function ua(){}function uo(){}function us(){}function uu(){}function uc(){}function ul(){}function uf(){}function ud(){}function uh(){}function up(){}function ub(){}function um(){}function ug(){}function uv(){}function uy(){}function uw(){}function u_(){}function uE(){}function uS(){}function uk(){}function ux(){}function uT(){}function uM(){}function uO(){}function uA(){}function uL(){}function uC(){}function uI(){}function uD(){}function uN(){}function uP(){}function uR(){}function uj(){}function uF(){}function uY(){}function uB(){}function uU(){}function uH(){}function u$(){}function uz(){}function uG(){}function uW(){}function uK(){}function uV(){}function uq(){}function uZ(){}function uX(){}function uJ(){}function uQ(){}function u1(){}function u0(){}function u2(){}function u3(){}function u4(){}function u6(){}function u5(){}function u8(){}function u9(){}function u7(){}function ce(){}function ct(){}function cn(e){}function cr(e){}function ci(){m4()}function ca(){eug()}function co(){epz()}function cs(){evw()}function cu(){eEg()}function cc(){eCk()}function cl(){egA()}function cf(){egq()}function cd(){_O()}function ch(){_k()}function cp(){DR()}function cb(){_A()}function cm(){erJ()}function cg(){_C()}function cv(){Xi()}function cy(){en5()}function cw(){Jb()}function c_(){Gw()}function cE(){euv()}function cS(){e_z()}function ck(){en8()}function cx(){K8()}function cT(){eBH()}function cM(){egP()}function cO(){G_()}function cA(){eBy()}function cL(){Gv()}function cC(){en9()}function cI(){eoz()}function cD(){Gx()}function cN(){JK()}function cP(){_I()}function cR(){eTK()}function cj(){egj()}function cF(){eiQ()}function cY(){e_L()}function cB(){eCT()}function cU(){ebJ()}function cH(){eTj()}function c$(){eaB()}function cz(){GS()}function cG(){eDn()}function cW(){eTU()}function cK(){eMK()}function cV(){J1()}function cq(){e_C()}function cZ(){eBB()}function cX(){euw()}function cJ(){ed6()}function cQ(){ePm()}function c1(){De()}function c0(){eiM()}function c2(){eD4()}function c3(e){BJ(e)}function c4(e){this.a=e}function c6(e){this.a=e}function c5(e){this.a=e}function c8(e){this.a=e}function c9(e){this.a=e}function c7(e){this.a=e}function le(e){this.a=e}function lt(e){this.a=e}function ln(e){this.a=e}function lr(e){this.a=e}function li(e){this.a=e}function la(e){this.a=e}function lo(e){this.a=e}function ls(e){this.a=e}function lu(e){this.a=e}function lc(e){this.a=e}function ll(e){this.a=e}function lf(e){this.a=e}function ld(e){this.a=e}function lh(e){this.a=e}function lp(e){this.a=e}function lb(e){this.b=e}function lm(e){this.c=e}function lg(e){this.a=e}function lv(e){this.a=e}function ly(e){this.a=e}function lw(e){this.a=e}function l_(e){this.a=e}function lE(e){this.a=e}function lS(e){this.a=e}function lk(e){this.a=e}function lx(e){this.a=e}function lT(e){this.a=e}function lM(e){this.a=e}function lO(e){this.a=e}function lA(e){this.a=e}function lL(e){this.a=e}function lC(e){this.a=e}function lI(e){this.a=e}function lD(e){this.a=e}function lN(){this.a=[]}function lP(e,t){e.a=t}function lR(e,t){e.a=t}function lj(e,t){e.b=t}function lF(e,t){e.b=t}function lY(e,t){e.b=t}function lB(e,t){e.j=t}function lU(e,t){e.g=t}function lH(e,t){e.i=t}function l$(e,t){e.c=t}function lz(e,t){e.d=t}function lG(e,t){e.d=t}function lW(e,t){e.c=t}function lK(e,t){e.k=t}function lV(e,t){e.c=t}function lq(e,t){e.c=t}function lZ(e,t){e.a=t}function lX(e,t){e.a=t}function lJ(e,t){e.f=t}function lQ(e,t){e.a=t}function l1(e,t){e.b=t}function l0(e,t){e.d=t}function l2(e,t){e.i=t}function l3(e,t){e.o=t}function l4(e,t){e.r=t}function l6(e,t){e.a=t}function l5(e,t){e.b=t}function l8(e,t){e.e=t}function l9(e,t){e.f=t}function l7(e,t){e.g=t}function fe(e,t){e.e=t}function ft(e,t){e.f=t}function fn(e,t){e.f=t}function fr(e,t){e.n=t}function fi(e,t){e.a=t}function fa(e,t){e.a=t}function fo(e,t){e.c=t}function fs(e,t){e.c=t}function fu(e,t){e.d=t}function fc(e,t){e.e=t}function fl(e,t){e.g=t}function ff(e,t){e.a=t}function fd(e,t){e.c=t}function fh(e,t){e.d=t}function fp(e,t){e.e=t}function fb(e,t){e.f=t}function fm(e,t){e.j=t}function fg(e,t){e.a=t}function fv(e,t){e.b=t}function fy(e,t){e.a=t}function fw(e){e.b=e.a}function f_(e){e.c=e.d.d}function fE(e){this.d=e}function fS(e){this.a=e}function fk(e){this.a=e}function fx(e){this.a=e}function fT(e){this.a=e}function fM(e){this.a=e}function fO(e){this.a=e}function fA(e){this.a=e}function fL(e){this.a=e}function fC(e){this.a=e}function fI(e){this.a=e}function fD(e){this.a=e}function fN(e){this.a=e}function fP(e){this.a=e}function fR(e){this.a=e}function fj(e){this.b=e}function fF(e){this.b=e}function fY(e){this.b=e}function fB(e){this.a=e}function fU(e){this.a=e}function fH(e){this.a=e}function f$(e){this.c=e}function fz(e){this.c=e}function fG(e){this.c=e}function fW(e){this.a=e}function fK(e){this.a=e}function fV(e){this.a=e}function fq(e){this.a=e}function fZ(e){this.a=e}function fX(e){this.a=e}function fJ(e){this.a=e}function fQ(e){this.a=e}function f1(e){this.a=e}function f0(e){this.a=e}function f2(e){this.a=e}function f3(e){this.a=e}function f4(e){this.a=e}function f6(e){this.a=e}function f5(e){this.a=e}function f8(e){this.a=e}function f9(e){this.a=e}function f7(e){this.a=e}function de(e){this.a=e}function dt(e){this.a=e}function dn(e){this.a=e}function dr(e){this.a=e}function di(e){this.a=e}function da(e){this.a=e}function ds(e){this.a=e}function du(e){this.a=e}function dc(e){this.a=e}function dl(e){this.a=e}function df(e){this.a=e}function dd(e){this.a=e}function dh(e){this.a=e}function dp(e){this.a=e}function db(e){this.a=e}function dm(e){this.a=e}function dg(e){this.a=e}function dv(e){this.a=e}function dy(e){this.a=e}function dw(e){this.a=e}function d_(e){this.a=e}function dE(e){this.a=e}function dS(e){this.a=e}function dk(e){this.a=e}function dx(e){this.a=e}function dT(e){this.a=e}function dM(e){this.a=e}function dO(e){this.e=e}function dA(e){this.a=e}function dL(e){this.a=e}function dC(e){this.a=e}function dI(e){this.a=e}function dD(e){this.a=e}function dN(e){this.a=e}function dP(e){this.a=e}function dR(e){this.a=e}function dj(e){this.a=e}function dF(e){this.a=e}function dY(e){this.a=e}function dB(e){this.a=e}function dU(e){this.a=e}function dH(e){this.a=e}function d$(e){this.a=e}function dz(e){this.a=e}function dG(e){this.a=e}function dW(e){this.a=e}function dK(e){this.a=e}function dV(e){this.a=e}function dq(e){this.a=e}function dZ(e){this.a=e}function dX(e){this.a=e}function dJ(e){this.a=e}function dQ(e){this.a=e}function d1(e){this.a=e}function d0(e){this.a=e}function d2(e){this.a=e}function d3(e){this.a=e}function d4(e){this.a=e}function d6(e){this.a=e}function d5(e){this.a=e}function d8(e){this.a=e}function d9(e){this.a=e}function d7(e){this.a=e}function he(e){this.a=e}function ht(e){this.a=e}function hn(e){this.a=e}function hr(e){this.a=e}function hi(e){this.a=e}function ha(e){this.a=e}function ho(e){this.a=e}function hs(e){this.a=e}function hu(e){this.a=e}function hc(e){this.a=e}function hl(e){this.a=e}function hf(e){this.a=e}function hd(e){this.a=e}function hh(e){this.a=e}function hp(e){this.a=e}function hb(e){this.a=e}function hm(e){this.a=e}function hg(e){this.a=e}function hv(e){this.c=e}function hy(e){this.b=e}function hw(e){this.a=e}function h_(e){this.a=e}function hE(e){this.a=e}function hS(e){this.a=e}function hk(e){this.a=e}function hx(e){this.a=e}function hT(e){this.a=e}function hM(e){this.a=e}function hO(e){this.a=e}function hA(e){this.a=e}function hL(e){this.a=e}function hC(e){this.a=e}function hI(e){this.a=e}function hD(e){this.a=e}function hN(e){this.a=e}function hP(e){this.a=e}function hR(e){this.a=e}function hj(e){this.a=e}function hF(e){this.a=e}function hY(e){this.a=e}function hB(e){this.a=e}function hU(e){this.a=e}function hH(e){this.a=e}function h$(e){this.a=e}function hz(e){this.a=e}function hG(e){this.a=e}function hW(e){this.a=e}function hK(e){this.a=e}function hV(e){this.a=e}function hq(e){this.a=e}function hZ(e){this.a=e}function hX(e){this.a=e}function hJ(e){this.a=e}function hQ(e){this.a=e}function h1(e){this.a=e}function h0(e){this.a=e}function h2(e){this.a=e}function h3(e){this.a=e}function h4(e){this.a=e}function h6(e){this.a=e}function h5(e){this.a=e}function h8(e){this.a=e}function h9(e){this.a=e}function h7(e){this.a=e}function pe(e){this.a=e}function pt(e){this.a=e}function pn(e){this.a=e}function pr(e){this.a=e}function pi(e){this.a=e}function pa(e){this.a=e}function po(e){this.a=e}function ps(e){this.a=e}function pu(e){this.a=e}function pc(e){this.a=e}function pl(e){this.a=e}function pf(e){this.a=e}function pd(e){this.a=e}function ph(e){this.a=e}function pp(e){this.a=e}function pb(e){this.a=e}function pm(e){this.a=e}function pg(e){this.a=e}function pv(e){this.a=e}function py(e){this.a=e}function pw(e){this.a=e}function p_(e){this.a=e}function pE(e){this.a=e}function pS(e){this.a=e}function pk(e){this.a=e}function px(e){this.a=e}function pT(e){this.a=e}function pM(e){this.a=e}function pO(e){this.b=e}function pA(e){this.f=e}function pL(e){this.a=e}function pC(e){this.a=e}function pI(e){this.a=e}function pD(e){this.a=e}function pN(e){this.a=e}function pP(e){this.a=e}function pR(e){this.a=e}function pj(e){this.a=e}function pF(e){this.a=e}function pY(e){this.a=e}function pB(e){this.a=e}function pU(e){this.b=e}function pH(e){this.c=e}function p$(e){this.e=e}function pz(e){this.a=e}function pG(e){this.a=e}function pW(e){this.a=e}function pK(e){this.a=e}function pV(e){this.a=e}function pq(e){this.d=e}function pZ(e){this.a=e}function pX(e){this.a=e}function pJ(e){this.e=e}function pQ(){this.a=0}function p1(){TG(this)}function p0(){Tz(this)}function p2(){Yy(this)}function p3(){UP(this)}function p4(){cn(this)}function p6(){this.c=tgK}function p5(e,t){t.Wb(e)}function p8(e,t){e.b+=t}function p9(e){e.b=new gQ}function p7(e){return e.e}function be(e){return e.a}function bt(e){return e.a}function bn(e){return e.a}function br(e){return e.a}function bi(e){return e.a}function ba(){return null}function bo(){return null}function bs(){yC(),eY2()}function bu(e){e.b.tf(e.e)}function bc(e,t){e.b=t-e.b}function bl(e,t){e.a=t-e.a}function bf(e,t){t.ad(e.a)}function bd(e,t){ekv(t,e)}function bh(e,t,n){e.Od(n,t)}function bp(e,t){e.e=t,t.b=e}function bb(e){Dn(),this.a=e}function bm(e){Dn(),this.a=e}function bg(e){Dn(),this.a=e}function bv(e){Bx(),this.a=e}function by(e){$O(),e0E.be(e)}function bw(){O6.call(this)}function b_(){O6.call(this)}function bE(){bw.call(this)}function bS(){bw.call(this)}function bk(){bw.call(this)}function bx(){bw.call(this)}function bT(){bw.call(this)}function bM(){bw.call(this)}function bO(){bw.call(this)}function bA(){bw.call(this)}function bL(){bw.call(this)}function bC(){bw.call(this)}function bI(){bw.call(this)}function bD(){this.a=this}function bN(){this.Bb|=256}function bP(){this.b=new xW}function bR(){bR=A,new p2}function bj(){bE.call(this)}function bF(e,t){e.length=t}function bY(e,t){P_(e.a,t)}function bB(e,t){eEU(e.c,t)}function bU(e,t){Yf(e.b,t)}function bH(e,t){ebB(e.a,t)}function b$(e,t){elj(e.a,t)}function bz(e,t){eam(e.e,t)}function bG(e){exZ(e.c,e.b)}function bW(e,t){e.kc().Nb(t)}function bK(e){this.a=efh(e)}function bV(){this.a=new p2}function bq(){this.a=new p2}function bZ(){this.a=new p0}function bX(){this.a=new p0}function bJ(){this.a=new p0}function bQ(){this.a=new ey}function b1(){this.a=new Z5}function b0(){this.a=new tt}function b2(){this.a=new w7}function b3(){this.a=new W8}function b4(){this.a=new zZ}function b6(){this.a=new Cz}function b5(){this.a=new p0}function b8(){this.a=new p0}function b9(){this.a=new p0}function b7(){this.a=new p0}function me(){this.d=new p0}function mt(){this.a=new bV}function mn(){this.a=new p2}function mr(){this.b=new p2}function mi(){this.b=new p0}function ma(){this.e=new p0}function mo(){this.d=new p0}function ms(){this.a=new cS}function mu(){p0.call(this)}function mc(){bZ.call(this)}function ml(){CK.call(this)}function mf(){b8.call(this)}function md(){mh.call(this)}function mh(){p4.call(this)}function mp(){p4.call(this)}function mb(){mp.call(this)}function mm(){$m.call(this)}function mg(){$m.call(this)}function mv(){mq.call(this)}function my(){mq.call(this)}function mw(){mq.call(this)}function m_(){mZ.call(this)}function mE(){_n.call(this)}function mS(){oZ.call(this)}function mk(){oZ.call(this)}function mx(){m0.call(this)}function mT(){m0.call(this)}function mM(){p2.call(this)}function mO(){p2.call(this)}function mA(){p2.call(this)}function mL(){bV.call(this)}function mC(){en0.call(this)}function mI(){bN.call(this)}function mD(){Oy.call(this)}function mN(){Oy.call(this)}function mP(){p2.call(this)}function mR(){p2.call(this)}function mj(){p2.call(this)}function mF(){sr.call(this)}function mY(){sr.call(this)}function mB(){mF.call(this)}function mU(){u7.call(this)}function mH(e){eti.call(this,e)}function m$(e){eti.call(this,e)}function mz(e){ln.call(this,e)}function mG(e){wB.call(this,e)}function mW(e){mG.call(this,e)}function mK(e){wB.call(this,e)}function mV(){this.a=new _n}function mq(){this.a=new bV}function mZ(){this.a=new p2}function mX(){this.a=new p0}function mJ(){this.j=new p0}function mQ(){this.a=new aX}function m1(){this.a=new y4}function m0(){this.a=new sn}function m2(){m2=A,e0d=new vm}function m3(){m3=A,e0f=new vb}function m4(){m4=A,e0l=new i}function m6(){m6=A,e0m=new OV}function m5(e){mG.call(this,e)}function m8(e){mG.call(this,e)}function m9(e){ql.call(this,e)}function m7(e){ql.call(this,e)}function ge(e){IJ.call(this,e)}function gt(e){eEb.call(this,e)}function gn(e){w$.call(this,e)}function gr(e){wG.call(this,e)}function gi(e){wG.call(this,e)}function ga(e){wG.call(this,e)}function go(e){Fu.call(this,e)}function gs(e){go.call(this,e)}function gu(){lD.call(this,{})}function gc(e){Og(),this.a=e}function gl(e){e.b=null,e.c=0}function gf(e,t){e.e=t,eA8(e,t)}function gd(e,t){e.a=t,eSG(e)}function gh(e,t,n){e.a[t.g]=n}function gp(e,t,n){evq(n,e,t)}function gb(e,t){In(t.i,e.n)}function gm(e,t){esW(e).td(t)}function gg(e,t){return e*e/t}function gv(e,t){return e.g-t.g}function gy(e){return new lI(e)}function gw(e){return new B_(e)}function g_(e){go.call(this,e)}function gE(e){go.call(this,e)}function gS(e){go.call(this,e)}function gk(e){Fu.call(this,e)}function gx(e){eiJ(),this.a=e}function gT(e){I7(),this.a=e}function gM(e){jK(),this.f=e}function gO(e){jK(),this.f=e}function gA(e){go.call(this,e)}function gL(e){go.call(this,e)}function gC(e){go.call(this,e)}function gI(e){go.call(this,e)}function gD(e){go.call(this,e)}function gN(e){return BJ(e),e}function gP(e){return BJ(e),e}function gR(e){return BJ(e),e}function gj(e){return BJ(e),e}function gF(e){return BJ(e),e}function gY(e){return e.b==e.c}function gB(e){return!!e&&e.b}function gU(e){return!!e&&e.k}function gH(e){return!!e&&e.j}function g$(e){BJ(e),this.a=e}function gz(e){return esR(e),e}function gG(e){Ya(e,e.length)}function gW(e){go.call(this,e)}function gK(e){go.call(this,e)}function gV(e){go.call(this,e)}function gq(e){go.call(this,e)}function gZ(e){go.call(this,e)}function gX(e){go.call(this,e)}function gJ(e){AI.call(this,e,0)}function gQ(){G$.call(this,12,3)}function g1(){g1=A,e0_=new _}function g0(){g0=A,e0y=new r}function g2(){g2=A,e0k=new b}function g3(){g3=A,e0M=new g}function g4(){throw p7(new bO)}function g6(){throw p7(new bO)}function g5(){throw p7(new bO)}function g8(){throw p7(new bO)}function g9(){throw p7(new bO)}function g7(){throw p7(new bO)}function ve(){this.a=Lq(Y8(eUd))}function vt(e){Dn(),this.a=Y8(e)}function vn(e,t){e.Td(t),t.Sd(e)}function vr(e,t){e.a.ec().Mc(t)}function vi(e,t,n){e.c.lf(t,n)}function va(e){gE.call(this,e)}function vo(e){gL.call(this,e)}function vs(){fM.call(this,"")}function vu(){fM.call(this,"")}function vc(){fM.call(this,"")}function vl(){fM.call(this,"")}function vf(e){gE.call(this,e)}function vd(e){fF.call(this,e)}function vh(e){O2.call(this,e)}function vp(e){vd.call(this,e)}function vb(){ls.call(this,null)}function vm(){ls.call(this,null)}function vg(){vg=A,$O()}function vv(){vv=A,e2d=eyz()}function vy(e){return e.a?e.b:0}function vw(e){return e.a?e.b:0}function v_(e,t){return e.a-t.a}function vE(e,t){return e.a-t.a}function vS(e,t){return e.a-t.a}function vk(e,t){return QO(e,t)}function vx(e,t){return z8(e,t)}function vT(e,t){return t in e.a}function vM(e,t){return e.f=t,e}function vO(e,t){return e.b=t,e}function vA(e,t){return e.c=t,e}function vL(e,t){return e.g=t,e}function vC(e,t){return e.a=t,e}function vI(e,t){return e.f=t,e}function vD(e,t){return e.k=t,e}function vN(e,t){return e.a=t,e}function vP(e,t){return e.e=t,e}function vR(e,t){return e.e=t,e}function vj(e,t){return e.f=t,e}function vF(e,t){e.b=!0,e.d=t}function vY(e,t){e.b=new TS(t)}function vB(e,t,n){t.td(e.a[n])}function vU(e,t,n){t.we(e.a[n])}function vH(e,t){return e.b-t.b}function v$(e,t){return e.g-t.g}function vz(e,t){return e.s-t.s}function vG(e,t){return e?0:t-1}function vW(e,t){return e?0:t-1}function vK(e,t){return e?t-1:0}function vV(e,t){return t.Yf(e)}function vq(e,t){return e.b=t,e}function vZ(e,t){return e.a=t,e}function vX(e,t){return e.c=t,e}function vJ(e,t){return e.d=t,e}function vQ(e,t){return e.e=t,e}function v1(e,t){return e.f=t,e}function v0(e,t){return e.a=t,e}function v2(e,t){return e.b=t,e}function v3(e,t){return e.c=t,e}function v4(e,t){return e.c=t,e}function v6(e,t){return e.b=t,e}function v5(e,t){return e.d=t,e}function v8(e,t){return e.e=t,e}function v9(e,t){return e.f=t,e}function v7(e,t){return e.g=t,e}function ye(e,t){return e.a=t,e}function yt(e,t){return e.i=t,e}function yn(e,t){return e.j=t,e}function yr(e,t){return e.k=t,e}function yi(e,t){return e.j=t,e}function ya(e,t){e_z(),Gc(t,e)}function yo(e,t,n){jX(e.a,t,n)}function ys(e){U9.call(this,e)}function yu(e){U9.call(this,e)}function yc(e){I3.call(this,e)}function yl(e){efB.call(this,e)}function yf(e){eta.call(this,e)}function yd(e){HO.call(this,e)}function yh(e){HO.call(this,e)}function yp(){MA.call(this,"")}function yb(){this.a=0,this.b=0}function ym(){this.b=0,this.a=0}function yg(e,t){e.b=0,enh(e,t)}function yv(e,t){e.c=t,e.b=!0}function yy(e,t){return e.c._b(t)}function yw(e){return e.e&&e.e()}function y_(e){return e?e.d:null}function yE(e,t){return ecD(e.b,t)}function yS(e){return e?e.g:null}function yk(e){return e?e.i:null}function yx(e){return LW(e),e.o}function yT(){yT=A,tmc=evO()}function yM(){yM=A,tml=ewS()}function yO(){yO=A,tgg=evL()}function yA(){yA=A,tvE=evA()}function yL(){yL=A,tvS=eSH()}function yC(){yC=A,tmF=enF()}function yI(){throw p7(new bO)}function yD(){throw p7(new bO)}function yN(){throw p7(new bO)}function yP(){throw p7(new bO)}function yR(){throw p7(new bO)}function yj(){throw p7(new bO)}function yF(e){this.a=new w9(e)}function yY(e){eF7(),eBh(this,e)}function yB(e){this.a=new FG(e)}function yU(e,t){for(;e.ye(t););}function yH(e,t){for(;e.sd(t););}function y$(e,t){return e.a+=t,e}function yz(e,t){return e.a+=t,e}function yG(e,t){return e.a+=t,e}function yW(e,t){return e.a+=t,e}function yK(e){return B1(e),e.a}function yV(e){return e.b!=e.d.c}function yq(e){return e.l|e.m<<22}function yZ(e,t){return e.d[t.p]}function yX(e,t){return eA6(e,t)}function yJ(e,t,n){e.splice(t,n)}function yQ(e){e.c?eL3(e):eL4(e)}function y1(e){this.a=0,this.b=e}function y0(){this.a=new eAs(e6I)}function y2(){this.b=new eAs(e6T)}function y3(){this.b=new eAs(e6H)}function y4(){this.b=new eAs(e6H)}function y6(){throw p7(new bO)}function y5(){throw p7(new bO)}function y8(){throw p7(new bO)}function y9(){throw p7(new bO)}function y7(){throw p7(new bO)}function we(){throw p7(new bO)}function wt(){throw p7(new bO)}function wn(){throw p7(new bO)}function wr(){throw p7(new bO)}function wi(){throw p7(new bO)}function wa(){throw p7(new bC)}function wo(){throw p7(new bC)}function ws(e){this.a=new wu(e)}function wu(e){erh(this,e,ey0())}function wc(e){return!e||BV(e)}function wl(e){return -1!=tvJ[e]}function wf(){0!=e1Z&&(e1Z=0),e1J=-1}function wd(){null==eUn&&(eUn=[])}function wh(e,t){eTl(H8(e.a),t)}function wp(e,t){eTl(H8(e.a),t)}function wb(e,t){OC.call(this,e,t)}function wm(e,t){wb.call(this,e,t)}function wg(e,t){this.b=e,this.c=t}function wv(e,t){this.b=e,this.a=t}function wy(e,t){this.a=e,this.b=t}function ww(e,t){this.a=e,this.b=t}function w_(e,t){this.a=e,this.b=t}function wE(e,t){this.a=e,this.b=t}function wS(e,t){this.a=e,this.b=t}function wk(e,t){this.a=e,this.b=t}function wx(e,t){this.a=e,this.b=t}function wT(e,t){this.a=e,this.b=t}function wM(e,t){this.b=e,this.a=t}function wO(e,t){this.b=e,this.a=t}function wA(e,t){this.b=e,this.a=t}function wL(e,t){this.b=e,this.a=t}function wC(e,t){this.f=e,this.g=t}function wI(e,t){this.e=e,this.d=t}function wD(e,t){this.g=e,this.i=t}function wN(e,t){this.a=e,this.b=t}function wP(e,t){this.a=e,this.f=t}function wR(e,t){this.b=e,this.c=t}function wj(e,t){this.a=e,this.b=t}function wF(e,t){this.a=e,this.b=t}function wY(e,t){this.a=e,this.b=t}function wB(e){Oq(e.dc()),this.c=e}function wU(e){this.b=Pp(Y8(e),83)}function wH(e){this.a=Pp(Y8(e),83)}function w$(e){this.a=Pp(Y8(e),15)}function wz(e){this.a=Pp(Y8(e),15)}function wG(e){this.b=Pp(Y8(e),47)}function wW(){this.q=new eB4.Date}function wK(){wK=A,e0V=new L}function wV(){wV=A,e2o=new T}function wq(e){return e.f.c+e.g.c}function wZ(e,t){return e.b.Hc(t)}function wX(e,t){return e.b.Ic(t)}function wJ(e,t){return e.b.Qc(t)}function wQ(e,t){return e.b.Hc(t)}function w1(e,t){return e.c.uc(t)}function w0(e,t){return e.a._b(t)}function w2(e,t){return ecX(e.c,t)}function w3(e,t){return F8(e.b,t)}function w4(e,t){return e>t&&t0}function Ei(e,t){return 0>ecd(e,t)}function Ea(e,t){return e.a.get(t)}function Eo(e,t){return t.split(e)}function Es(e,t){return F8(e.e,t)}function Eu(e){return BJ(e),!1}function Ec(e){Gq.call(this,e,21)}function El(e,t){zL.call(this,e,t)}function Ef(e,t){wC.call(this,e,t)}function Ed(e,t){wC.call(this,e,t)}function Eh(e){BT(),IJ.call(this,e)}function Ep(e,t){jA(e,e.length,t)}function Eb(e,t){Yj(e,e.length,t)}function Em(e,t,n){t.ud(e.a.Ge(n))}function Eg(e,t,n){t.we(e.a.Fe(n))}function Ev(e,t,n){t.td(e.a.Kb(n))}function Ey(e,t,n){e.Mb(n)&&t.td(n)}function Ew(e,t,n){e.splice(t,0,n)}function E_(e,t){return Aa(e.e,t)}function EE(e,t){this.d=e,this.e=t}function ES(e,t){this.b=e,this.a=t}function Ek(e,t){this.b=e,this.a=t}function Ex(e,t){this.b=e,this.a=t}function ET(e,t){this.a=e,this.b=t}function EM(e,t){this.a=e,this.b=t}function EO(e,t){this.a=e,this.b=t}function EA(e,t){this.a=e,this.b=t}function EL(e,t){this.a=e,this.b=t}function EC(e,t){this.b=e,this.a=t}function EI(e,t){this.b=e,this.a=t}function ED(e,t){wC.call(this,e,t)}function EN(e,t){wC.call(this,e,t)}function EP(e,t){wC.call(this,e,t)}function ER(e,t){wC.call(this,e,t)}function Ej(e,t){wC.call(this,e,t)}function EF(e,t){wC.call(this,e,t)}function EY(e,t){wC.call(this,e,t)}function EB(e,t){wC.call(this,e,t)}function EU(e,t){wC.call(this,e,t)}function EH(e,t){wC.call(this,e,t)}function E$(e,t){wC.call(this,e,t)}function Ez(e,t){wC.call(this,e,t)}function EG(e,t){wC.call(this,e,t)}function EW(e,t){wC.call(this,e,t)}function EK(e,t){wC.call(this,e,t)}function EV(e,t){wC.call(this,e,t)}function Eq(e,t){wC.call(this,e,t)}function EZ(e,t){wC.call(this,e,t)}function EX(e,t){this.a=e,this.b=t}function EJ(e,t){this.a=e,this.b=t}function EQ(e,t){this.a=e,this.b=t}function E1(e,t){this.a=e,this.b=t}function E0(e,t){this.a=e,this.b=t}function E2(e,t){this.a=e,this.b=t}function E3(e,t){this.a=e,this.b=t}function E4(e,t){this.a=e,this.b=t}function E6(e,t){this.a=e,this.b=t}function E5(e,t){this.b=e,this.a=t}function E8(e,t){this.b=e,this.a=t}function E9(e,t){this.b=e,this.a=t}function E7(e,t){this.b=e,this.a=t}function Se(e,t){this.c=e,this.d=t}function St(e,t){this.e=e,this.d=t}function Sn(e,t){this.a=e,this.b=t}function Sr(e,t){this.b=t,this.c=e}function Si(e,t){wC.call(this,e,t)}function Sa(e,t){wC.call(this,e,t)}function So(e,t){wC.call(this,e,t)}function Ss(e,t){wC.call(this,e,t)}function Su(e,t){wC.call(this,e,t)}function Sc(e,t){wC.call(this,e,t)}function Sl(e,t){wC.call(this,e,t)}function Sf(e,t){wC.call(this,e,t)}function Sd(e,t){wC.call(this,e,t)}function Sh(e,t){wC.call(this,e,t)}function Sp(e,t){wC.call(this,e,t)}function Sb(e,t){wC.call(this,e,t)}function Sm(e,t){wC.call(this,e,t)}function Sg(e,t){wC.call(this,e,t)}function Sv(e,t){wC.call(this,e,t)}function Sy(e,t){wC.call(this,e,t)}function Sw(e,t){wC.call(this,e,t)}function S_(e,t){wC.call(this,e,t)}function SE(e,t){wC.call(this,e,t)}function SS(e,t){wC.call(this,e,t)}function Sk(e,t){wC.call(this,e,t)}function Sx(e,t){wC.call(this,e,t)}function ST(e,t){wC.call(this,e,t)}function SM(e,t){wC.call(this,e,t)}function SO(e,t){wC.call(this,e,t)}function SA(e,t){wC.call(this,e,t)}function SL(e,t){wC.call(this,e,t)}function SC(e,t){wC.call(this,e,t)}function SI(e,t){wC.call(this,e,t)}function SD(e,t){wC.call(this,e,t)}function SN(e,t){wC.call(this,e,t)}function SP(e,t){wC.call(this,e,t)}function SR(e,t){wC.call(this,e,t)}function Sj(e,t){wC.call(this,e,t)}function SF(e,t){this.b=e,this.a=t}function SY(e,t){this.a=e,this.b=t}function SB(e,t){this.a=e,this.b=t}function SU(e,t){this.a=e,this.b=t}function SH(e,t){this.a=e,this.b=t}function S$(e,t){wC.call(this,e,t)}function Sz(e,t){wC.call(this,e,t)}function SG(e,t){this.b=e,this.d=t}function SW(e,t){wC.call(this,e,t)}function SK(e,t){wC.call(this,e,t)}function SV(e,t){this.a=e,this.b=t}function Sq(e,t){this.a=e,this.b=t}function SZ(e,t){wC.call(this,e,t)}function SX(e,t){wC.call(this,e,t)}function SJ(e,t){wC.call(this,e,t)}function SQ(e,t){wC.call(this,e,t)}function S1(e,t){wC.call(this,e,t)}function S0(e,t){wC.call(this,e,t)}function S2(e,t){wC.call(this,e,t)}function S3(e,t){wC.call(this,e,t)}function S4(e,t){wC.call(this,e,t)}function S6(e,t){wC.call(this,e,t)}function S5(e,t){wC.call(this,e,t)}function S8(e,t){wC.call(this,e,t)}function S9(e,t){wC.call(this,e,t)}function S7(e,t){wC.call(this,e,t)}function ke(e,t){wC.call(this,e,t)}function kt(e,t){wC.call(this,e,t)}function kn(e,t){return Aa(e.c,t)}function kr(e,t){return Aa(t.b,e)}function ki(e,t){return-e.b.Je(t)}function ka(e,t){return Aa(e.g,t)}function ko(e,t){wC.call(this,e,t)}function ks(e,t){wC.call(this,e,t)}function ku(e,t){this.a=e,this.b=t}function kc(e,t){this.a=e,this.b=t}function kl(e,t){this.a=e,this.b=t}function kf(e,t){wC.call(this,e,t)}function kd(e,t){wC.call(this,e,t)}function kh(e,t){wC.call(this,e,t)}function kp(e,t){wC.call(this,e,t)}function kb(e,t){wC.call(this,e,t)}function km(e,t){wC.call(this,e,t)}function kg(e,t){wC.call(this,e,t)}function kv(e,t){wC.call(this,e,t)}function ky(e,t){wC.call(this,e,t)}function kw(e,t){wC.call(this,e,t)}function k_(e,t){wC.call(this,e,t)}function kE(e,t){wC.call(this,e,t)}function kS(e,t){wC.call(this,e,t)}function kk(e,t){wC.call(this,e,t)}function kx(e,t){wC.call(this,e,t)}function kT(e,t){wC.call(this,e,t)}function kM(e,t){this.a=e,this.b=t}function kO(e,t){this.a=e,this.b=t}function kA(e,t){this.a=e,this.b=t}function kL(e,t){this.a=e,this.b=t}function kC(e,t){this.a=e,this.b=t}function kI(e,t){this.a=e,this.b=t}function kD(e,t){this.a=e,this.b=t}function kN(e,t){wC.call(this,e,t)}function kP(e,t){this.a=e,this.b=t}function kR(e,t){this.a=e,this.b=t}function kj(e,t){this.a=e,this.b=t}function kF(e,t){this.a=e,this.b=t}function kY(e,t){this.a=e,this.b=t}function kB(e,t){this.a=e,this.b=t}function kU(e,t){this.b=e,this.a=t}function kH(e,t){this.b=e,this.a=t}function k$(e,t){this.b=e,this.a=t}function kz(e,t){this.b=e,this.a=t}function kG(e,t){this.a=e,this.b=t}function kW(e,t){this.a=e,this.b=t}function kK(e,t){eOU(e.a,Pp(t,56))}function kV(e,t){QM(e.a,Pp(t,11))}function kq(e,t){return Pj(),t!=e}function kZ(){return vv(),new e2d}function kX(){Gk(),this.b=new bV}function kJ(){eAV(),this.a=new bV}function kQ(){Gy(),jG.call(this)}function k1(e,t){wC.call(this,e,t)}function k0(e,t){this.a=e,this.b=t}function k2(e,t){this.a=e,this.b=t}function k3(e,t){this.a=e,this.b=t}function k4(e,t){this.a=e,this.b=t}function k6(e,t){this.a=e,this.b=t}function k5(e,t){this.a=e,this.b=t}function k8(e,t){this.d=e,this.b=t}function k9(e,t){this.d=e,this.e=t}function k7(e,t){this.f=e,this.c=t}function xe(e,t){this.b=e,this.c=t}function xt(e,t){this.i=e,this.g=t}function xn(e,t){this.e=e,this.a=t}function xr(e,t){this.a=e,this.b=t}function xi(e,t){e.i=null,erA(e,t)}function xa(e,t){e&&Um(tmR,e,t)}function xo(e,t){return edG(e.a,t)}function xs(e){return edK(e.c,e.b)}function xu(e){return e?e.dd():null}function xc(e){return null==e?null:e}function xl(e){return typeof e===eUi}function xf(e){return typeof e===eUa}function xd(e){return typeof e===eUo}function xh(e,t){return e.Hd().Xb(t)}function xp(e,t){return ei7(e.Kc(),t)}function xb(e,t){return 0==ecd(e,t)}function xm(e,t){return ecd(e,t)>=0}function xg(e,t){return 0!=ecd(e,t)}function xv(e){return""+(BJ(e),e)}function xy(e,t){return e.substr(t)}function xw(e){return efH(e),e.d.gc()}function x_(e){return eTe(e,e.c),e}function xE(e){return Rb(null==e),e}function xS(e,t){return e.a+=""+t,e}function xk(e,t){return e.a+=""+t,e}function xx(e,t){return e.a+=""+t,e}function xT(e,t){return e.a+=""+t,e}function xM(e,t){return e.a+=""+t,e}function xO(e,t){return e.a+=""+t,e}function xA(e,t){qQ(e,t,e.a,e.a.a)}function xL(e,t){qQ(e,t,e.c.b,e.c)}function xC(e,t,n){eyc(t,eSE(e,n))}function xI(e,t,n){eyc(t,eSE(e,n))}function xD(e,t){eeS(new Ow(e),t)}function xN(e,t){e.q.setTime(Kj(t))}function xP(e,t){FH.call(this,e,t)}function xR(e,t){FH.call(this,e,t)}function xj(e,t){FH.call(this,e,t)}function xF(e){Yy(this),eij(this,e)}function xY(e){return GK(e,0),null}function xB(e){return e.a=0,e.b=0,e}function xU(e,t){return e.a=t.g+1,e}function xH(e,t){return 2==e.j[t.p]}function x$(e){return YZ(Pp(e,79))}function xz(){xz=A,e4r=euY(epE())}function xG(){xG=A,e7$=euY(eAn())}function xW(){this.b=new w9(ee0(12))}function xK(){this.b=0,this.a=!1}function xV(){this.b=0,this.a=!1}function xq(e){this.a=e,ci.call(this)}function xZ(e){this.a=e,ci.call(this)}function xX(e,t){Cm.call(this,e,t)}function xJ(e,t){Ii.call(this,e,t)}function xQ(e,t){xt.call(this,e,t)}function x1(e,t){eaN.call(this,e,t)}function x0(e,t){AA.call(this,e,t)}function x2(e,t){_6(),Um(tmU,e,t)}function x3(e,t){return Az(e.a,0,t)}function x4(e,t){return e.a.a.a.cc(t)}function x6(e,t){return xc(e)===xc(t)}function x5(e,t){return elN(e.a,t.a)}function x8(e,t){return ME(e.a,t.a)}function x9(e,t){return YM(e.a,t.a)}function x7(e,t){return e.indexOf(t)}function Te(e,t){return e==t?0:e?1:-1}function Tt(e){return e<10?"0"+e:""+e}function Tn(e){return Y8(e),new xq(e)}function Tr(e){return Mk(e.l,e.m,e.h)}function Ti(e){return zy((BJ(e),e))}function Ta(e){return zy((BJ(e),e))}function To(e,t){return ME(e.g,t.g)}function Ts(e){return typeof e===eUa}function Tu(e){return e==e9f||e==e9p}function Tc(e){return e==e9f||e==e9d}function Tl(e){return QI(e.b.b,e,0)}function Tf(e){this.a=kZ(),this.b=e}function Td(e){this.a=kZ(),this.b=e}function Th(e,t){return P_(e.a,t),t}function Tp(e,t){return P_(e.c,t),e}function Tb(e,t){return eat(e.a,t),e}function Tm(e,t){return Dj(),t.a+=e}function Tg(e,t){return Dj(),t.a+=e}function Tv(e,t){return Dj(),t.c+=e}function Ty(e,t){Qe(e,0,e.length,t)}function Tw(){fJ.call(this,new qh)}function T_(){jp.call(this,0,0,0,0)}function TE(){Hr.call(this,0,0,0,0)}function TS(e){this.a=e.a,this.b=e.b}function Tk(e){return e==tpm||e==tpg}function Tx(e){return e==tpy||e==tpb}function TT(e){return e==tss||e==tso}function TM(e){return e!=tbc&&e!=tbl}function TO(e){return e.Lg()&&e.Mg()}function TA(e){return UB(Pp(e,118))}function TL(e){return eat(new K2,e)}function TC(e,t){return new eaN(t,e)}function TI(e,t){return new eaN(t,e)}function TD(e,t,n){ent(e,t),enn(e,n)}function TN(e,t,n){ena(e,t),eni(e,n)}function TP(e,t,n){eno(e,t),ens(e,n)}function TR(e,t,n){enr(e,t),enc(e,n)}function Tj(e,t,n){enu(e,t),enl(e,n)}function TF(e,t){euc(e,t),enp(e,e.D)}function TY(e){k7.call(this,e,!0)}function TB(e,t,n){L3.call(this,e,t,n)}function TU(e){eLQ(),ead.call(this,e)}function TH(){Ef.call(this,"Head",1)}function T$(){Ef.call(this,"Tail",3)}function Tz(e){e.c=Je(e1R,eUp,1,0,5,1)}function TG(e){e.a=Je(e1R,eUp,1,8,5,1)}function TW(e){ety(e.xf(),new dh(e))}function TK(e){return null!=e?esj(e):0}function TV(e,t){return etg(t,zY(e))}function Tq(e,t){return etg(t,zY(e))}function TZ(e,t){return e[e.length]=t}function TX(e,t){return e[e.length]=t}function TJ(e){return Ph(e.b.Kc(),e.a)}function TQ(e,t){return erb(Bi(e.d),t)}function T1(e,t){return erb(Bi(e.g),t)}function T0(e,t){return erb(Bi(e.j),t)}function T2(e,t){Cm.call(this,e.b,t)}function T3(e){jp.call(this,e,e,e,e)}function T4(e){return e.b&&ePE(e),e.a}function T6(e){return e.b&&ePE(e),e.c}function T5(e,t){!e2M&&(e.b=t)}function T8(e,t,n){return Bc(e,t,n),n}function T9(e,t,n){Bc(e.c[t.g],t.g,n)}function T7(e,t,n){Pp(e.c,69).Xh(t,n)}function Me(e,t,n){TP(n,n.i+e,n.j+t)}function Mt(e,t){JL(qt(e.a),Gj(t))}function Mn(e,t){JL(QX(e.a),GF(t))}function Mr(e){eBG(),pJ.call(this,e)}function Mi(e){return null==e?0:esj(e)}function Ma(){Ma=A,tuT=new efY(e68)}function Mo(){Mo=A,new Ms,new p0}function Ms(){new p2,new p2,new p2}function Mu(){Mu=A,bR(),e0S=new p2}function Mc(){Mc=A,eB4.Math.log(2)}function Ml(){Ml=A,tgZ=(_Z(),tmE)}function Mf(){throw p7(new gW(e1O))}function Md(){throw p7(new gW(e1O))}function Mh(){throw p7(new gW(e1A))}function Mp(){throw p7(new gW(e1A))}function Mb(e){this.a=e,PS.call(this,e)}function Mm(e){this.a=e,wU.call(this,e)}function Mg(e){this.a=e,wU.call(this,e)}function Mv(e,t){jM(e.c,e.c.length,t)}function My(e){return e.at?1:0}function MS(e,t){return ecd(e,t)>0?e:t}function Mk(e,t,n){return{l:e,m:t,h:n}}function Mx(e,t){null!=e.a&&kV(t,e.a)}function MT(e){e.a=new C,e.c=new C}function MM(e){this.b=e,this.a=new p0}function MO(e){this.b=new e1,this.a=e}function MA(e){CW.call(this),this.a=e}function ML(){Ef.call(this,"Range",2)}function MC(){evR(),this.a=new eAs(e4k)}function MI(e,t){Y8(t),Uz(e).Jc(new d)}function MD(e,t){return GE(),t.n.b+=e}function MN(e,t,n){return Um(e.g,n,t)}function MP(e,t,n){return Um(e.k,n,t)}function MR(e,t){return Um(e.a,t.a,t)}function Mj(e,t,n){return eho(t,n,e.c)}function MF(e){return new kl(e.c,e.d)}function MY(e){return new kl(e.c,e.d)}function MB(e){return new kl(e.a,e.b)}function MU(e,t){return ej9(e.a,t,null)}function MH(e){Gs(e,null),Go(e,null)}function M$(e){GA(e,null),GL(e,null)}function Mz(){AA.call(this,null,null)}function MG(){AL.call(this,null,null)}function MW(e){this.a=e,p2.call(this)}function MK(e){this.b=(Hj(),new f$(e))}function MV(e){e.j=Je(e19,eUP,310,0,0,1)}function Mq(e,t,n){e.c.Vc(t,Pp(n,133))}function MZ(e,t,n){e.c.ji(t,Pp(n,133))}function MX(e,t){eRT(e),e.Gc(Pp(t,15))}function MJ(e,t){return eR4(e.c,e.b,t)}function MQ(e,t){return new O5(e.Kc(),t)}function M1(e,t){return -1!=eoD(e.Kc(),t)}function M0(e,t){return null!=e.a.Bc(t)}function M2(e){return e.Ob()?e.Pb():null}function M3(e){return ehv(e,0,e.length)}function M4(e,t){return null!=e&&ebs(e,t)}function M6(e,t){e.q.setHours(t),eNq(e,t)}function M5(e,t){e.c&&(Re(t),zd(t))}function M8(e,t,n){Pp(e.Kb(n),164).Nb(t)}function M9(e,t,n){return ejq(e,t,n),n}function M7(e,t,n){e.a=1502^t,e.b=n^e$d}function Oe(e,t,n){return e.a[t.g][n.g]}function Ot(e,t){return e.a[t.c.p][t.p]}function On(e,t){return e.e[t.c.p][t.p]}function Or(e,t){return e.c[t.c.p][t.p]}function Oi(e,t){return e.j[t.p]=eOo(t)}function Oa(e,t){return ZZ(e.f,t.tg())}function Oo(e,t){return ZZ(e.b,t.tg())}function Os(e,t){return e.a0?t*t/e:t*t*100}function Li(e,t){return e>0?t/(e*e):100*t}function La(e,t,n){return P_(t,ef6(e,n))}function Lo(e,t,n){J1(),e.Xe(t)&&n.td(e)}function Ls(e,t,n){var r;(r=e.Zc(t)).Rb(n)}function Lu(e,t,n){return e.a+=t,e.b+=n,e}function Lc(e,t,n){return e.a*=t,e.b*=n,e}function Ll(e,t,n){return e.a-=t,e.b-=n,e}function Lf(e,t){return e.a=t.a,e.b=t.b,e}function Ld(e){return e.a=-e.a,e.b=-e.b,e}function Lh(e){this.c=e,this.a=1,this.b=1}function Lp(e){this.c=e,eno(e,0),ens(e,0)}function Lb(e){_n.call(this),enD(this,e)}function Lm(e){eBp(),p9(this),this.mf(e)}function Lg(e,t){_0(),AA.call(this,e,t)}function Lv(e,t){_2(),AL.call(this,e,t)}function Ly(e,t){_2(),AL.call(this,e,t)}function Lw(e,t){_2(),Lv.call(this,e,t)}function L_(e,t,n){JY.call(this,e,t,n,2)}function LE(e,t){Ml(),jd.call(this,e,t)}function LS(e,t){Ml(),LE.call(this,e,t)}function Lk(e,t){Ml(),LE.call(this,e,t)}function Lx(e,t){Ml(),Lk.call(this,e,t)}function LT(e,t){Ml(),jd.call(this,e,t)}function LM(e,t){Ml(),LT.call(this,e,t)}function LO(e,t){Ml(),jd.call(this,e,t)}function LA(e,t){return e.c.Fc(Pp(t,133))}function LL(e,t,n){return eP8(Qq(e,t),n)}function LC(e,t,n){return t.Qk(e.e,e.c,n)}function LI(e,t,n){return t.Rk(e.e,e.c,n)}function LD(e,t){return ecv(e.e,Pp(t,49))}function LN(e,t,n){elm(QX(e.a),t,GF(n))}function LP(e,t,n){elm(qt(e.a),t,Gj(n))}function LR(e,t){t.$modCount=e.$modCount}function Lj(){Lj=A,tcV=new pO("root")}function LF(){LF=A,tmB=new mx,new mT}function LY(){this.a=new zu,this.b=new zu}function LB(){en0.call(this),this.Bb|=eH3}function LU(){wC.call(this,"GROW_TREE",0)}function LH(e){return null==e?null:eYt(e)}function L$(e){return null==e?null:eEO(e)}function Lz(e){return null==e?null:efF(e)}function LG(e){return null==e?null:efF(e)}function LW(e){null==e.o&&eMb(e)}function LK(e){return Rb(null==e||xl(e)),e}function LV(e){return Rb(null==e||xf(e)),e}function Lq(e){return Rb(null==e||xd(e)),e}function LZ(e){this.q=new eB4.Date(Kj(e))}function LX(e,t){this.c=e,wI.call(this,e,t)}function LJ(e,t){this.a=e,LX.call(this,e,t)}function LQ(e,t){this.d=e,f_(this),this.b=t}function L1(e,t){Jo.call(this,e),this.a=t}function L0(e,t){Jo.call(this,e),this.a=t}function L2(e){edL.call(this,0,0),this.f=e}function L3(e,t,n){XS.call(this,e,t,n,null)}function L4(e,t,n){XS.call(this,e,t,n,null)}function L6(e,t,n){return 0>=e.ue(t,n)?n:t}function L5(e,t,n){return 0>=e.ue(t,n)?t:n}function L8(e,t){return Pp(eef(e.b,t),149)}function L9(e,t){return Pp(eef(e.c,t),229)}function L7(e){return Pp(RJ(e.a,e.b),287)}function Ce(e){return new kl(e.c,e.d+e.a)}function Ct(e){return GE(),TT(Pp(e,197))}function Cn(){Cn=A,e4i=el8((ed5(),tbq))}function Cr(e,t){t.a?eLc(e,t):Ai(e.a,t.b)}function Ci(e,t){!e2M&&P_(e.a,t)}function Ca(e,t){return _k(),eag(t.d.i,e)}function Co(e,t){return erJ(),new eIu(t,e)}function Cs(e,t){return $C(t,ezr),e.f=t,e}function Cu(e,t,n){return n=eDg(e,t,3,n)}function Cc(e,t,n){return n=eDg(e,t,6,n)}function Cl(e,t,n){return n=eDg(e,t,9,n)}function Cf(e,t,n){++e.j,e.Ki(),X9(e,t,n)}function Cd(e,t,n){++e.j,e.Hi(t,e.oi(t,n))}function Ch(e,t,n){var r;(r=e.Zc(t)).Rb(n)}function Cp(e,t,n){return ePT(e.c,e.b,t,n)}function Cb(e,t){return(t&eUu)%e.d.length}function Cm(e,t){pO.call(this,e),this.a=t}function Cg(e,t){pH.call(this,e),this.a=t}function Cv(e,t){pH.call(this,e),this.a=t}function Cy(e,t){this.c=e,eta.call(this,t)}function Cw(e,t){this.a=e,pU.call(this,t)}function C_(e,t){this.a=e,pU.call(this,t)}function CE(e){this.a=(enG(e,eU3),new XM(e))}function CS(e){this.a=(enG(e,eU3),new XM(e))}function Ck(e){return e.a||(e.a=new h),e.a}function Cx(e){return e>8?0:e+1}function CT(e,t){return OQ(),e==t?0:e?1:-1}function CM(e,t,n){return jT(e,Pp(t,22),n)}function CO(e,t,n){return e.apply(t,n)}function CA(e,t,n){return e.a+=ehv(t,0,n),e}function CL(e,t){var n;return n=e.e,e.e=t,n}function CC(e,t){var n;(n=e[e$c]).call(e,t)}function CI(e,t){var n;(n=e[e$c]).call(e,t)}function CD(e,t){e.a.Vc(e.b,t),++e.b,e.c=-1}function CN(e){Yy(e.e),e.d.b=e.d,e.d.a=e.d}function CP(e){e.b?CP(e.b):e.f.c.zc(e.e,e.d)}function CR(e,t,n){_w(),lP(e,t.Ce(e.a,n))}function Cj(e,t){return y_(ehn(e.a,t,!0))}function CF(e,t){return y_(ehr(e.a,t,!0))}function CY(e,t){return vk(Array(t),e)}function CB(e){return String.fromCharCode(e)}function CU(e){return null==e?null:e.message}function CH(){this.a=new p0,this.b=new p0}function C$(){this.a=new tt,this.b=new bP}function Cz(){this.b=new yb,this.c=new p0}function CG(){this.d=new yb,this.e=new yb}function CW(){this.n=new yb,this.o=new yb}function CK(){this.n=new mp,this.i=new TE}function CV(){this.a=new cg,this.b=new i_}function Cq(){this.a=new p0,this.d=new p0}function CZ(){this.b=new bV,this.a=new bV}function CX(){this.b=new p2,this.a=new p2}function CJ(){this.b=new y2,this.a=new ay}function CQ(){CK.call(this),this.a=new yb}function C1(e){eaD.call(this,e,(Qu(),e2D))}function C0(e,t,n,r){jp.call(this,e,t,n,r)}function C2(e,t,n){null!=n&&ern(t,emI(e,n))}function C3(e,t,n){null!=n&&err(t,emI(e,n))}function C4(e,t,n){return n=eDg(e,t,11,n)}function C6(e,t){return e.a+=t.a,e.b+=t.b,e}function C5(e,t){return e.a-=t.a,e.b-=t.b,e}function C8(e,t){return e.n.a=(BJ(t),t+10)}function C9(e,t){return e.n.a=(BJ(t),t+10)}function C7(e,t){return t==e||ev8(eOg(t),e)}function Ie(e,t){return null==Um(e.a,t,"")}function It(e,t){return _k(),!eag(t.d.i,e)}function In(e,t){Tk(e.f)?eMi(e,t):ewz(e,t)}function Ir(e,t){var n;return t.Hh(e.a)}function Ii(e,t){gE.call(this,eJT+e+eXH+t)}function Ia(e,t,n,r){FQ.call(this,e,t,n,r)}function Io(e,t,n,r){FQ.call(this,e,t,n,r)}function Is(e,t,n,r){Io.call(this,e,t,n,r)}function Iu(e,t,n,r){F1.call(this,e,t,n,r)}function Ic(e,t,n,r){F1.call(this,e,t,n,r)}function Il(e,t,n,r){F1.call(this,e,t,n,r)}function If(e,t,n,r){Ic.call(this,e,t,n,r)}function Id(e,t,n,r){Ic.call(this,e,t,n,r)}function Ih(e,t,n,r){Il.call(this,e,t,n,r)}function Ip(e,t,n,r){Id.call(this,e,t,n,r)}function Ib(e,t,n,r){FZ.call(this,e,t,n,r)}function Im(e,t,n){this.a=e,AI.call(this,t,n)}function Ig(e,t,n){this.c=t,this.b=n,this.a=e}function Iv(e,t,n){return e.d=Pp(t.Kb(n),164)}function Iy(e,t){return e.Aj().Nh().Kh(e,t)}function Iw(e,t){return e.Aj().Nh().Ih(e,t)}function I_(e,t){return BJ(e),xc(e)===xc(t)}function IE(e,t){return BJ(e),xc(e)===xc(t)}function IS(e,t){return y_(ehn(e.a,t,!1))}function Ik(e,t){return y_(ehr(e.a,t,!1))}function Ix(e,t){return e.b.sd(new EM(e,t))}function IT(e,t){return e.b.sd(new EO(e,t))}function IM(e,t){return e.b.sd(new EA(e,t))}function IO(e,t,n){return e.lastIndexOf(t,n)}function IA(e,t,n){return elN(e[t.b],e[n.b])}function IL(e,t){return eo3(t,(eBy(),tat),e)}function IC(e,t){return ME(t.a.d.p,e.a.d.p)}function II(e,t){return ME(e.a.d.p,t.a.d.p)}function ID(e,t){return elN(e.c-e.s,t.c-t.s)}function IN(e){return e.c?QI(e.c.a,e,0):-1}function IP(e){return e<100?null:new yf(e)}function IR(e){return e==tba||e==tbs||e==tbo}function Ij(e,t){return M4(t,15)&&eCc(e.c,t)}function IF(e,t){!e2M&&t&&(e.d=t)}function IY(e,t){var n;return!!esq(e,n=t)}function IB(e,t){this.c=e,YC.call(this,e,t)}function IU(e){this.c=e,xj.call(this,eUY,0)}function IH(e,t){Px.call(this,e,e.length,t)}function I$(e,t,n){return Pp(e.c,69).lk(t,n)}function Iz(e,t,n){return Pp(e.c,69).mk(t,n)}function IG(e,t,n){return LC(e,Pp(t,332),n)}function IW(e,t,n){return LI(e,Pp(t,332),n)}function IK(e,t,n){return ey1(e,Pp(t,332),n)}function IV(e,t,n){return e_t(e,Pp(t,332),n)}function Iq(e,t){return null==t?null:ecA(e.b,t)}function IZ(e){return xf(e)?(BJ(e),e):e.ke()}function IX(e){return!isNaN(e)&&!isFinite(e)}function IJ(e){Dn(),this.a=(Hj(),new vd(e))}function IQ(e){Pj(),this.d=e,this.a=new p1}function I1(e,t,n){this.a=e,this.b=t,this.c=n}function I0(e,t,n){this.a=e,this.b=t,this.c=n}function I2(e,t,n){this.d=e,this.b=n,this.a=t}function I3(e){MT(this),HC(this),er7(this,e)}function I4(e){Tz(this),PO(this.c,0,e.Pc())}function I6(e){BH(e.a),Jl(e.c,e.b),e.b=null}function I5(e){this.a=e,wK(),eap(Date.now())}function I8(){I8=A,e2G=new r,e2W=new r}function I9(){I9=A,e2h=new I,e2p=new D}function I7(){I7=A,tmY=Je(e1R,eUp,1,0,5,1)}function De(){De=A,tgH=Je(e1R,eUp,1,0,5,1)}function Dt(){Dt=A,tg$=Je(e1R,eUp,1,0,5,1)}function Dn(){Dn=A,new bb((Hj(),Hj(),e2r))}function Dr(e){return Qu(),eeM((Qc(),e2j),e)}function Di(e){return eum(),eeM((XC(),e2$),e)}function Da(e){return epC(),eeM((qk(),e3d),e)}function Do(e){return eeR(),eeM((qx(),e3b),e)}function Ds(e){return eCp(),eeM((eaF(),e3I),e)}function Du(e){return etx(),eeM((XO(),e3R),e)}function Dc(e){return Qs(),eeM((XA(),e3B),e)}function Dl(e){return QQ(),eeM((XL(),e3z),e)}function Df(e){return eBW(),eeM((xz(),e4r),e)}function Dd(e){return eaY(),eeM((Qf(),e4l),e)}function Dh(e){return ep7(),eeM((Qd(),e4b),e)}function Dp(e){return ebe(),eeM((Qh(),e5z),e)}function Db(e){return _y(),eeM((Vt(),e5W),e)}function Dm(e){return eej(),eeM((qT(),e8h),e)}function Dg(e){return QJ(),eeM((XI(),e85),e)}function Dv(e){return e_x(),eeM((eeW(),e9a),e)}function Dy(e){return eok(),eeM((Ql(),e9b),e)}function Dw(e){return ec4(),eeM((XD(),e9T),e)}function D_(e,t){if(!e)throw p7(new gL(t))}function DE(e){return eEn(),eeM((etQ(),e9R),e)}function DS(e){jp.call(this,e.d,e.c,e.a,e.b)}function Dk(e){jp.call(this,e.d,e.c,e.a,e.b)}function Dx(e,t,n){this.b=e,this.c=t,this.a=n}function DT(e,t,n){this.b=e,this.a=t,this.c=n}function DM(e,t,n){this.a=e,this.b=t,this.c=n}function DO(e,t,n){this.a=e,this.b=t,this.c=n}function DA(e,t,n){this.a=e,this.b=t,this.c=n}function DL(e,t,n){this.a=e,this.b=t,this.c=n}function DC(e,t,n){this.b=e,this.a=t,this.c=n}function DI(e,t,n){this.e=t,this.b=e,this.d=n}function DD(e,t,n){return _w(),e.a.Od(t,n),t}function DN(e){var t;return(t=new ew).e=e,t}function DP(e){var t;return(t=new me).b=e,t}function DR(){DR=A,e9V=new nd,e9q=new nh}function Dj(){Dj=A,e76=new rB,e75=new rU}function DF(e){return eoE(),eeM((Qb(),e7X),e)}function DY(e){return eoS(),eeM((Qg(),tet),e)}function DB(e){return eLz(),eeM((ei3(),tek),e)}function DU(e){return eSg(),eeM((et2(),teI),e)}function DH(e){return Jp(),eeM((qI(),teP),e)}function D$(e){return en7(),eeM((XN(),teY),e)}function Dz(e){return ey4(),eeM((eeU(),tes),e)}function DG(e){return erX(),eeM((Xj(),teb),e)}function DW(e){return enB(),eeM((XP(),te$),e)}function DK(e){return eb5(),eeM((eeY(),teq),e)}function DV(e){return eeF(),eeM((qO(),teJ),e)}function Dq(e){return eoG(),eeM((XR(),te2),e)}function DZ(e){return eEf(),eeM((et5(),te7),e)}function DX(e){return Qx(),eeM((qA(),ttn),e)}function DJ(e){return eyd(),eeM((et4(),ttc),e)}function DQ(e){return e_3(),eeM((et3(),ttm),e)}function D1(e){return eLR(),eeM((eoH(),ttM),e)}function D0(e){return eaU(),eeM((XY(),ttC),e)}function D2(e){return Q1(),eeM((XF(),ttP),e)}function D3(e){return K5(),eeM((qD(),ttF),e)}function D4(e){return ef_(),eeM((eeH(),tnF),e)}function D6(e){return ewY(),eeM((et6(),tst),e)}function D5(e){return euJ(),eeM((XB(),tsa),e)}function D8(e){return ebk(),eeM((Qv(),tsl),e)}function D9(e){return enY(),eeM((X$(),tsR),e)}function D7(e){return eOJ(),eeM((ei2(),tsx),e)}function Ne(e){return esn(),eeM((XH(),tsA),e)}function Nt(e){return Q0(),eeM((qC(),tsI),e)}function Nn(e){return ei0(),eeM((XU(),tsB),e)}function Nr(e){return ebG(),eeM((eeB(),tsm),e)}function Ni(e){return Xo(),eeM((qL(),ts$),e)}function Na(e){return euy(),eeM((XG(),tsK),e)}function No(e){return eiO(),eeM((XW(),tsX),e)}function Ns(e){return eox(),eeM((Xz(),ts0),e)}function Nu(e){return enU(),eeM((XK(),tuo),e)}function Nc(e){return qG(),eeM((qP(),tud),e)}function Nl(e){return zs(),eeM((qR(),tu_),e)}function Nf(e){return zQ(),eeM((qj(),tuk),e)}function Nd(e){return Xa(),eeM((qN(),tu$),e)}function Nh(e){return zo(),eeM((qF(),tuX),e)}function Np(e){return egR(),eeM((Qp(),tu2),e)}function Nb(e){return eS_(),eeM((et8(),tu7),e)}function Nm(e){return z1(),eeM((qU(),tcB),e)}function Ng(e){return erZ(),eeM((qB(),tcX),e)}function Nv(e){return Kn(),eeM((qY(),tc$),e)}function Ny(e){return efx(),eeM((XV(),tc0),e)}function Nw(e){return J0(),eeM((qH(),tc4),e)}function N_(e){return eub(),eeM((Xq(),tc9),e)}function NE(e){return emC(),eeM((Qm(),tlA),e)}function NS(e){return ei1(),eeM((XX(),tlD),e)}function Nk(e){return efS(),eeM((XZ(),tlj),e)}function Nx(e){return eOB(),eeM((eeG(),tfl),e)}function NT(e){return efk(),eeM((XJ(),tfp),e)}function NM(e){return _D(),eeM((K7(),tfm),e)}function NO(e){return _N(),eeM((K9(),tfv),e)}function NA(e){return Xs(),eeM((qz(),tf_),e)}function NL(e){return eEM(),eeM((ee$(),tfM),e)}function NC(e){return _P(),eeM((Ve(),tf7),e)}function NI(e){return eoT(),eeM((q$(),tdn),e)}function ND(e){return epx(),eeM((eez(),tdb),e)}function NN(e){return eSd(),eeM((ei4(),tdk),e)}function NP(e){return ebx(),eeM((et0(),tdD),e)}function NR(e){return eyY(),eeM((et1(),tdJ),e)}function Nj(e){return eB$(),eeM((xG(),e7$),e)}function NF(e){return erq(),eeM((qM(),e9K),e)}function NY(e){return ec3(),eeM((eeK(),tpw),e)}function NB(e){return etT(),eeM((X1(),tpk),e)}function NU(e){return efE(),eeM((Q_(),tpA),e)}function NH(e){return e_a(),eeM((et7(),tpR),e)}function N$(e){return eck(),eeM((XQ(),tpK),e)}function Nz(e){return egF(),eeM((Qw(),tpJ),e)}function NG(e){return eT7(),eeM((eaj(),tp9),e)}function NW(e){return epT(),eeM((eeV(),tbi),e)}function NK(e){return ewf(),eeM((etC(),tbf),e)}function NV(e){return ekU(),eeM((et9(),tbv),e)}function Nq(e){return ed5(),eeM((QS(),tbZ),e)}function NZ(e){return eI3(),eeM((eo$(),tb5),e)}function NX(e){return eYu(),eeM((eeq(),tbB),e)}function NJ(e){return edM(),eeM((QE(),tmt),e)}function NQ(e){return eup(),eeM((Qy(),tmo),e)}function N1(e){return eTy(),eeM((ei6(),tmP),e)}function N0(e,t){return BJ(e),e+(BJ(t),t)}function N2(e,t){return wK(),JL(H8(e.a),t)}function N3(e,t){return wK(),JL(H8(e.a),t)}function N4(e,t){this.c=e,this.a=t,this.b=t-e}function N6(e,t,n){this.a=e,this.b=t,this.c=n}function N5(e,t,n){this.a=e,this.b=t,this.c=n}function N8(e,t,n){this.a=e,this.b=t,this.c=n}function N9(e,t,n){this.a=e,this.b=t,this.c=n}function N7(e,t,n){this.a=e,this.b=t,this.c=n}function Pe(e,t,n){this.e=e,this.a=t,this.c=n}function Pt(e,t,n){Ml(),zl.call(this,e,t,n)}function Pn(e,t,n){Ml(),BP.call(this,e,t,n)}function Pr(e,t,n){Ml(),BP.call(this,e,t,n)}function Pi(e,t,n){Ml(),BP.call(this,e,t,n)}function Pa(e,t,n){Ml(),Pn.call(this,e,t,n)}function Po(e,t,n){Ml(),Pn.call(this,e,t,n)}function Ps(e,t,n){Ml(),Po.call(this,e,t,n)}function Pu(e,t,n){Ml(),Pr.call(this,e,t,n)}function Pc(e,t,n){Ml(),Pi.call(this,e,t,n)}function Pl(e,t){return Y8(e),Y8(t),new wx(e,t)}function Pf(e,t){return Y8(e),Y8(t),new Rn(e,t)}function Pd(e,t){return Y8(e),Y8(t),new Rr(e,t)}function Ph(e,t){return Y8(e),Y8(t),new wM(e,t)}function Pp(e,t){return Rb(null==e||ebs(e,t)),e}function Pb(e){var t;return t=new p0,eel(t,e),t}function Pm(e){var t;return t=new bV,eel(t,e),t}function Pg(e){var t;return ein(t=new b2,e),t}function Pv(e){var t;return ein(t=new _n,e),t}function Py(e){return e.e||(e.e=new p0),e.e}function Pw(e){return e.c||(e.c=new sk),e.c}function P_(e,t){return e.c[e.c.length]=t,!0}function PE(e,t){this.c=e,this.b=t,this.a=!1}function PS(e){this.d=e,f_(this),this.b=Ft(e.d)}function Pk(){this.a=";,;",this.b="",this.c=""}function Px(e,t,n){F$.call(this,t,n),this.a=e}function PT(e,t,n){this.b=e,xP.call(this,t,n)}function PM(e,t,n){this.c=e,EE.call(this,t,n)}function PO(e,t,n){ekp(n,0,e,t,n.length,!1)}function PA(e,t,n,r,i){e.b=t,e.c=n,e.d=r,e.a=i}function PL(e,t){t&&(e.b=t,e.a=(B1(t),t.a))}function PC(e,t,n,r,i){e.d=t,e.c=n,e.a=r,e.b=i}function PI(e){var t,n;t=e.b,n=e.c,e.b=n,e.c=t}function PD(e){var t,n;n=e.d,t=e.a,e.d=t,e.a=n}function PN(e){return eal(YE(Ts(e)?eaL(e):e))}function PP(e,t){return ME(Rx(e.d),Rx(t.d))}function PR(e,t){return t==(eYu(),tbY)?e.c:e.d}function Pj(){Pj=A,tuu=(eYu(),tbY),tuc=tby}function PF(){this.b=gP(LV(epB((eCk(),e8N))))}function PY(e){return _w(),Je(e1R,eUp,1,e,5,1)}function PB(e){return new kl(e.c+e.b,e.d+e.a)}function PU(e,t){return _C(),ME(e.d.p,t.d.p)}function PH(e){return A5(0!=e.b),etw(e,e.a.a)}function P$(e){return A5(0!=e.b),etw(e,e.c.b)}function Pz(e,t){if(!e)throw p7(new gS(t))}function PG(e,t){if(!e)throw p7(new gL(t))}function PW(e,t,n){Se.call(this,e,t),this.b=n}function PK(e,t,n){k9.call(this,e,t),this.c=n}function PV(e,t,n){etn.call(this,t,n),this.d=e}function Pq(e){Dt(),sr.call(this),this.th(e)}function PZ(e,t,n){this.a=e,xQ.call(this,t,n)}function PX(e,t,n){this.a=e,xQ.call(this,t,n)}function PJ(e,t,n){k9.call(this,e,t),this.c=n}function PQ(){ZE(),BY.call(this,(_Q(),tgp))}function P1(e){return null!=e&&!efz(e,tm1,tm0)}function P0(e,t){return(elt(e)<<4|elt(t))&eHd}function P2(e,t){return U_(),eb2(e,t),new Uf(e,t)}function P3(e,t){var n;e.n&&(n=t,P_(e.f,n))}function P4(e,t,n){var r;ee3(e,t,r=new B_(n))}function P6(e,t){var n;return n=e.c,ers(e,t),n}function P5(e,t){return t<0?e.g=-1:e.g=t,e}function P8(e,t){return etN(e),e.a*=t,e.b*=t,e}function P9(e,t,n,r,i){e.c=t,e.d=n,e.b=r,e.a=i}function P7(e,t){return qQ(e,t,e.c.b,e.c),!0}function Re(e){e.a.b=e.b,e.b.a=e.a,e.a=e.b=null}function Rt(e){this.b=e,this.a=Fc(this.b.a).Ed()}function Rn(e,t){this.b=e,this.a=t,ci.call(this)}function Rr(e,t){this.a=e,this.b=t,ci.call(this)}function Ri(e,t){F$.call(this,t,1040),this.a=e}function Ra(e){return 0==e||isNaN(e)?e:e<0?-1:1}function Ro(e){return HR(),e_I(e)==z$(e_P(e))}function Rs(e){return HR(),e_P(e)==z$(e_I(e))}function Ru(e,t){return eyE(e,new Se(t.a,t.b))}function Rc(e){return!q9(e)&&e.c.i.c==e.d.i.c}function Rl(e){var t;return t=e.n,e.a.b+t.d+t.a}function Rf(e){var t;return t=e.n,e.e.b+t.d+t.a}function Rd(e){var t;return t=e.n,e.e.a+t.b+t.c}function Rh(e){return eBG(),++tyv,new jb(0,e)}function Rp(e){return e.a?e.a:Hh(e)}function Rb(e){if(!e)throw p7(new gA(null))}function Rm(){Rm=A,tvm=(Hj(),new fB(eQU))}function Rg(){Rg=A,new ebw((m2(),e0d),(m3(),e0f))}function Rv(){Rv=A,e0B=Je(e16,eUP,19,256,0,1)}function Ry(e,t,n,r){ef3.call(this,e,t,n,r,0,0)}function Rw(e,t,n){return Um(e.b,Pp(n.b,17),t)}function R_(e,t,n){return Um(e.b,Pp(n.b,17),t)}function RE(e,t){return P_(e,new kl(t.a,t.b))}function RS(e,t){return e.c=t)throw p7(new bj)}function FR(e,t,n){return Bc(t,0,R6(t[0],n[0])),t}function Fj(e,t,n){t.Ye(n,gP(LV(Bp(e.b,n)))*e.a)}function FF(e,t,n){return eLG(),eiq(e,t)&&eiq(e,n)}function FY(e){return ekU(),!e.Hc(tbp)&&!e.Hc(tbm)}function FB(e){return new kl(e.c+e.b/2,e.d+e.a/2)}function FU(e,t){return t.kh()?ecv(e.b,Pp(t,49)):t}function FH(e,t){this.e=e,this.d=(64&t)!=0?t|eUR:t}function F$(e,t){this.c=0,this.d=e,this.b=64|t|eUR}function Fz(e){this.b=new XM(11),this.a=(HF(),e)}function FG(e){this.b=null,this.a=(HF(),e||e2s)}function FW(e){this.a=ebb(e.a),this.b=new I4(e.b)}function FK(e){this.b=e,AF.call(this,e),Op(this)}function FV(e){this.b=e,AB.call(this,e),Ob(this)}function Fq(e,t,n){this.a=e,Ia.call(this,t,n,5,6)}function FZ(e,t,n,r){this.b=e,O_.call(this,t,n,r)}function FX(e,t,n,r,i){JB.call(this,e,t,n,r,i,-1)}function FJ(e,t,n,r,i){JU.call(this,e,t,n,r,i,-1)}function FQ(e,t,n,r){O_.call(this,e,t,n),this.b=r}function F1(e,t,n,r){PK.call(this,e,t,n),this.b=r}function F0(e){k7.call(this,e,!1),this.a=!1}function F2(e,t){this.b=e,lm.call(this,e.b),this.a=t}function F3(e,t){Bx(),wj.call(this,e,ecT(new g$(t)))}function F4(e,t){return eBG(),++tyv,new BR(e,t,0)}function F6(e,t){return eBG(),++tyv,new BR(6,e,t)}function F5(e,t){return IE(e.substr(0,t.length),t)}function F8(e,t){return xd(t)?$r(e,t):!!$I(e.f,t)}function F9(e,t){for(BJ(t);e.Ob();)t.td(e.Pb())}function F7(e,t,n){eLQ(),this.e=e,this.d=t,this.a=n}function Ye(e,t,n,r){var i;(i=e.i).i=t,i.a=n,i.b=r}function Yt(e){var t;for(t=e;t.f;)t=t.f;return t}function Yn(e){var t;return A5(null!=(t=eso(e))),t}function Yr(e){var t;return A5(null!=(t=elT(e))),t}function Yi(e,t){var n;return ZQ(t,n=e.a.gc()),n-t}function Ya(e,t){var n;for(n=0;n0?eB4.Math.log(e/t):-100}function YM(e,t){return 0>ecd(e,t)?-1:ecd(e,t)>0?1:0}function YO(e,t,n){return ePQ(e,Pp(t,46),Pp(n,167))}function YA(e,t){return Pp(Ff(Fc(e.a)).Xb(t),42).cd()}function YL(e,t){return eto(t,e.length),new Ri(e,t)}function YC(e,t){this.d=e,Ow.call(this,e),this.e=t}function YI(e){this.d=(BJ(e),e),this.a=0,this.c=eUY}function YD(e,t){pJ.call(this,1),this.a=e,this.b=t}function YN(e,t){return e.c?YN(e.c,t):P_(e.b,t),e}function YP(e,t,n){var r;return r=eep(e,t),V7(e,t,n),r}function YR(e,t){var n;return QO(n=e.slice(0,t),e)}function Yj(e,t,n){var r;for(r=0;r=e.g}function BL(e,t,n){var r;return r=er$(e,t,n),eCK(e,r)}function BC(e,t){var n;n=e.a.length,eep(e,n),V7(e,n,t)}function BI(e,t){var n;(n=console[e]).call(console,t)}function BD(e,t){var n;++e.j,n=e.Vi(),e.Ii(e.oi(n,t))}function BN(e,t,n){Pp(t.b,65),ety(t.a,new N5(e,n,t))}function BP(e,t,n){p$.call(this,t),this.a=e,this.b=n}function BR(e,t,n){pJ.call(this,e),this.a=t,this.b=n}function Bj(e,t,n){this.a=e,pH.call(this,t),this.b=n}function BF(e,t,n){this.a=e,K3.call(this,8,t,null,n)}function BY(e){this.a=(BJ(eJ7),eJ7),this.b=e,new mP}function BB(e){this.c=e,this.b=this.c.a,this.a=this.c.e}function BU(e){this.c=e,this.b=e.a.d.a,LR(e.a.e,this)}function BH(e){A4(-1!=e.c),e.d.$c(e.c),e.b=e.c,e.c=-1}function B$(e){return eB4.Math.sqrt(e.a*e.a+e.b*e.b)}function Bz(e,t){return FP(t,e.a.c.length),RJ(e.a,t)}function BG(e,t){return xc(e)===xc(t)||null!=e&&ecX(e,t)}function BW(e){return 0>=e?new _e:erg(e-1)}function BK(e){return!!tyb&&$r(tyb,e)}function BV(e){return e?e.dc():!e.Kc().Ob()}function Bq(e){return!e.a&&e.c?e.c.b:e.a}function BZ(e){return e.a||(e.a=new O_(e5f,e,4)),e.a}function BX(e){return e.d||(e.d=new O_(tgr,e,1)),e.d}function BJ(e){if(null==e)throw p7(new bM);return e}function BQ(e){e.c?e.c.He():(e.d=!0,eAA(e))}function B1(e){e.c?B1(e.c):(el3(e),e.d=!0)}function B0(e){UG(e.a),e.b=Je(e1R,eUp,1,e.b.length,5,1)}function B2(e,t){return ME(t.j.c.length,e.j.c.length)}function B3(e,t){e.c<0||e.b.b=0?e.Bh(n):ekN(e,t)}function B6(e){var t,n;return(t=e.c.i.c)==(n=e.d.i.c)}function B5(e){if(4!=e.p)throw p7(new bT);return e.e}function B8(e){if(3!=e.p)throw p7(new bT);return e.e}function B9(e){if(6!=e.p)throw p7(new bT);return e.f}function B7(e){if(6!=e.p)throw p7(new bT);return e.k}function Ue(e){if(3!=e.p)throw p7(new bT);return e.j}function Ut(e){if(4!=e.p)throw p7(new bT);return e.j}function Un(e){return e.b||(e.b=new pG(new mR)),e.b}function Ur(e){return -2==e.c&&fd(e,e_d(e.g,e.b)),e.c}function Ui(e,t){var n;return(n=Y5("",e)).n=t,n.i=1,n}function Ua(e,t){jB(Pp(t.b,65),e),ety(t.a,new dv(e))}function Uo(e,t){JL((e.a||(e.a=new C_(e,e)),e.a),t)}function Us(e,t){this.b=e,YC.call(this,e,t),Op(this)}function Uu(e,t){this.b=e,IB.call(this,e,t),Ob(this)}function Uc(e,t,n,r){wD.call(this,e,t),this.d=n,this.a=r}function Ul(e,t,n,r){wD.call(this,e,n),this.a=t,this.f=r}function Uf(e,t){MK.call(this,erv(Y8(e),Y8(t))),this.a=t}function Ud(){e_w.call(this,eQB,(yA(),tvE)),ejt(this)}function Uh(){e_w.call(this,eQc,(yO(),tgg)),eP3(this)}function Up(){wC.call(this,"DELAUNAY_TRIANGULATION",0)}function Ub(e){return String.fromCharCode.apply(null,e)}function Um(e,t,n){return xd(t)?Ge(e,t,n):eS8(e.f,t,n)}function Ug(e){return Hj(),e?e.ve():(HF(),HF(),e2c)}function Uv(e,t,n){return eoM(),n.pg(e,Pp(t.cd(),146))}function Uy(e,t){return Rg(),new ebw(new OK(e),new OW(t))}function Uw(e){return enG(e,eU5),ee1(eft(eft(5,e),e/10|0))}function U_(){U_=A,e0p=new gt(eow(vx(e1$,1),eUK,42,0,[]))}function UE(e){return e.d||(e.d=new fF(e.c.Cc())),e.d}function US(e){return e.a||(e.a=new vp(e.c.vc())),e.a}function Uk(e){return e.b||(e.b=new vd(e.c.ec())),e.b}function Ux(e,t){for(;t-- >0;)e=e<<1|(e<0?1:0);return e}function UT(e,t){return xc(e)===xc(t)||null!=e&&ecX(e,t)}function UM(e,t){return OQ(),Pp(t.b,19).ar&&++r,r}function Hl(e){var t,n;return etV(n=t=new p6,e),n}function Hf(e){var t,n;return e_U(n=t=new p6,e),n}function Hd(e,t){var n;return n=Bp(e.f,t),eiX(t,n),null}function Hh(e){var t;return(t=erw(e))?t:null}function Hp(e){return e.b||(e.b=new FQ(e5g,e,12,3)),e.b}function Hb(e){return null!=e&&wZ(tm$,e.toLowerCase())}function Hm(e,t){return elN(jl(e)*jc(e),jl(t)*jc(t))}function Hg(e,t){return elN(jl(e)*jc(e),jl(t)*jc(t))}function Hv(e,t){return elN(e.d.c+e.d.b/2,t.d.c+t.d.b/2)}function Hy(e,t){return elN(e.g.c+e.g.b/2,t.g.c+t.g.b/2)}function Hw(e,t,n){n.a?ens(e,t.b-e.f/2):eno(e,t.a-e.g/2)}function H_(e,t,n,r){this.a=e,this.b=t,this.c=n,this.d=r}function HE(e,t,n,r){this.a=e,this.b=t,this.c=n,this.d=r}function HS(e,t,n,r){this.e=e,this.a=t,this.c=n,this.d=r}function Hk(e,t,n,r){this.a=e,this.c=t,this.d=n,this.b=r}function Hx(e,t,n,r){Ml(),ZU.call(this,t,n,r),this.a=e}function HT(e,t,n,r){Ml(),ZU.call(this,t,n,r),this.a=e}function HM(e,t){this.a=e,LQ.call(this,e,Pp(e.d,15).Zc(t))}function HO(e){this.f=e,this.c=this.f.e,e.f>0&&evH(this)}function HA(e,t,n,r){this.b=e,this.c=r,xj.call(this,t,n)}function HL(e){return A5(e.b=0&&IE(e.substr(n,t.length),t)}function $N(e,t,n,r,i,a,o){return new qu(e.e,t,n,r,i,a,o)}function $P(e,t,n,r,i,a){this.a=e,en1.call(this,t,n,r,i,a)}function $R(e,t,n,r,i,a){this.a=e,en1.call(this,t,n,r,i,a)}function $j(e,t){this.g=e,this.d=eow(vx(e4N,1),eGW,10,0,[t])}function $F(e,t){this.e=e,this.a=e1R,this.b=eCz(t),this.c=t}function $Y(e,t){CK.call(this),etk(this),this.a=e,this.c=t}function $B(e,t,n,r){Bc(e.c[t.g],n.g,r),Bc(e.c[n.g],t.g,r)}function $U(e,t,n,r){Bc(e.c[t.g],t.g,n),Bc(e.b[t.g],t.g,r)}function $H(){return Xo(),eow(vx(e6u,1),eU4,376,0,[tsH,tsU])}function $$(){return Qx(),eow(vx(e40,1),eU4,479,0,[ttt,tte])}function $z(){return eeF(),eow(vx(e4J,1),eU4,419,0,[teZ,teX])}function $G(){return Jp(),eow(vx(e4V,1),eU4,422,0,[teD,teN])}function $W(){return K5(),eow(vx(e48,1),eU4,420,0,[ttR,ttj])}function $K(){return Q0(),eow(vx(e6a,1),eU4,421,0,[tsL,tsC])}function $V(){return qG(),eow(vx(e6v,1),eU4,523,0,[tuf,tul])}function $q(){return Xa(),eow(vx(e6k,1),eU4,520,0,[tuH,tuU])}function $Z(){return zs(),eow(vx(e6E,1),eU4,516,0,[tuw,tuy])}function $X(){return zQ(),eow(vx(e6S,1),eU4,515,0,[tuE,tuS])}function $J(){return zo(),eow(vx(e6x,1),eU4,455,0,[tuq,tuZ])}function $Q(){return Kn(),eow(vx(e6C,1),eU4,425,0,[tcH,tcU])}function $1(){return z1(),eow(vx(e6L,1),eU4,480,0,[tcF,tcY])}function $0(){return erZ(),eow(vx(e6I,1),eU4,495,0,[tcq,tcZ])}function $2(){return J0(),eow(vx(e6N,1),eU4,426,0,[tc2,tc3])}function $3(){return eoT(),eow(vx(e6V,1),eU4,429,0,[tdt,tde])}function $4(){return Xs(),eow(vx(e6G,1),eU4,430,0,[tfw,tfy])}function $6(){return epC(),eow(vx(e2Q,1),eU4,428,0,[e3f,e3l])}function $5(){return eeR(),eow(vx(e21,1),eU4,427,0,[e3h,e3p])}function $8(){return eej(),eow(vx(e4E,1),eU4,424,0,[e8f,e8d])}function $9(){return erq(),eow(vx(e4F,1),eU4,511,0,[e9W,e9G])}function $7(e,t,n,r){return n>=0?e.jh(t,n,r):e.Sg(null,n,r)}function ze(e){return 0==e.b.b?e.a.$e():PH(e.b)}function zt(e){if(5!=e.p)throw p7(new bT);return jE(e.f)}function zn(e){if(5!=e.p)throw p7(new bT);return jE(e.k)}function zr(e){return xc(e.a)===xc((eiM(),tgW))&&eR1(e),e.a}function zi(e){this.a=Pp(Y8(e),271),this.b=(Hj(),new O4(e))}function za(e,t){l6(this,new kl(e.a,e.b)),l5(this,Pv(t))}function zo(){zo=A,tuq=new SK(ezt,0),tuZ=new SK(ezn,1)}function zs(){zs=A,tuw=new Sz(ezn,0),tuy=new Sz(ezt,1)}function zu(){m8.call(this,new w9(ee0(12))),Oq(!0),this.a=2}function zc(e,t,n){eBG(),pJ.call(this,e),this.b=t,this.a=n}function zl(e,t,n){Ml(),p$.call(this,t),this.a=e,this.b=n}function zf(e){CK.call(this),etk(this),this.a=e,this.c=!0}function zd(e){var t;t=e.c.d.b,e.b=t,e.a=e.c.d,t.a=e.c.d.b=e}function zh(e){var t;enZ(e.a),TW(e.a),efJ(t=new dp(e.a))}function zp(e,t){eC_(e,!0),ety(e.e.wf(),new Dx(e,!0,t))}function zb(e,t){return qe(t),enL(e,Je(ty_,eHT,25,t,15,1),t)}function zm(e,t){return HR(),e==z$(e_I(t))||e==z$(e_P(t))}function zg(e,t){return null==t?xu($I(e.f,null)):Ea(e.g,t)}function zv(e){return 0==e.b?null:(A5(0!=e.b),etw(e,e.a.a))}function zy(e){return 0|Math.max(Math.min(e,eUu),-2147483648)}function zw(e,t){var n=e0w[e.charCodeAt(0)];return null==n?e:n}function z_(e,t){return H6(e,"set1"),H6(t,"set2"),new wF(e,t)}function zE(e,t){var n;return C6(Ld(n=et$(e.f,t)),e.f.d)}function zS(e,t){var n,r;return ej4(e,n=t,r=new H),r.d}function zk(e,t,n,r){var i;i=new CQ,t.a[n.g]=i,jT(e.b,r,i)}function zx(e,t,n){var r;(r=e.Yg(t))>=0?e.sh(r,n):eOh(e,t,n)}function zT(e,t,n){z0(),e&&Um(tmj,e,t),e&&Um(tmR,e,n)}function zM(e,t,n){this.i=new p0,this.b=e,this.g=t,this.a=n}function zO(e,t,n){this.c=new p0,this.e=e,this.f=t,this.b=n}function zA(e,t,n){this.a=new p0,this.e=e,this.f=t,this.c=n}function zL(e,t){MV(this),this.f=t,this.g=e,HD(this),this._d()}function zC(e,t){var n;n=e.q.getHours(),e.q.setDate(t),eNq(e,n)}function zI(e,t){var n;for(Y8(t),n=e.a;n;n=n.c)t.Od(n.g,n.i)}function zD(e){var t;return esb(t=new yF(ee0(e.length)),e),t}function zN(e){function t(){}return t.prototype=e||{},new t}function zP(e,t){return!!eos(e,t)&&(enP(e),!0)}function zR(e,t){if(null==t)throw p7(new bM);return ehF(e,t)}function zj(e){return e.qe()?null:(0,eUt[e.n])}function zF(e){return e.Db>>16!=3?null:Pp(e.Cb,33)}function zY(e){return e.Db>>16!=9?null:Pp(e.Cb,33)}function zB(e){return e.Db>>16!=6?null:Pp(e.Cb,79)}function zU(e){return e.Db>>16!=7?null:Pp(e.Cb,235)}function zH(e){return e.Db>>16!=7?null:Pp(e.Cb,160)}function z$(e){return e.Db>>16!=11?null:Pp(e.Cb,33)}function zz(e,t){var n;return(n=e.Yg(t))>=0?e.lh(n):exu(e,t)}function zG(e,t){var n;return n=new RZ(t),e_h(n,e),new I4(n)}function zW(e){var t;return t=e.d,t=e.si(e.f),JL(e,t),t.Ob()}function zK(e,t){return e.b+=t.b,e.c+=t.c,e.d+=t.d,e.a+=t.a,e}function zV(e,t){return eB4.Math.abs(e)0}function zZ(){this.a=new Tw,this.e=new bV,this.g=0,this.i=0}function zX(e){this.a=e,this.b=Je(e6b,eUP,1944,e.e.length,0,2)}function zJ(e,t,n){var r;r=esg(e,t,n),e.b=new erH(r.c.length)}function zQ(){zQ=A,tuE=new S$(ezh,0),tuS=new S$("UP",1)}function z1(){z1=A,tcF=new SJ(eV2,0),tcY=new SJ("FAN",1)}function z0(){z0=A,tmj=new p2,tmR=new p2,xa(e0r,new o9)}function z2(e){if(0!=e.p)throw p7(new bT);return xg(e.f,0)}function z3(e){if(0!=e.p)throw p7(new bT);return xg(e.k,0)}function z4(e){return e.Db>>16!=3?null:Pp(e.Cb,147)}function z6(e){return e.Db>>16!=6?null:Pp(e.Cb,235)}function z5(e){return e.Db>>16!=17?null:Pp(e.Cb,26)}function z8(e,t){var n=e.a=e.a||[];return n[t]||(n[t]=e.le(t))}function z9(e,t){var n;return null==(n=e.a.get(t))?[]:n}function z7(e,t){var n;n=e.q.getHours(),e.q.setMonth(t),eNq(e,n)}function Ge(e,t,n){return null==t?eS8(e.f,null,n):efi(e.g,t,n)}function Gt(e,t,n,r,i,a){return new Q$(e.e,t,e.aj(),n,r,i,a)}function Gn(e,t,n){return e.a=Az(e.a,0,t)+""+n+xy(e.a,t),e}function Gr(e,t,n){return P_(e.a,(U_(),eb2(t,n),new wD(t,n))),e}function Gi(e){return OX(e.c),e.e=e.a=e.c,e.c=e.c.c,++e.d,e.a.f}function Ga(e){return OX(e.e),e.c=e.a=e.e,e.e=e.e.e,--e.d,e.a.f}function Go(e,t){e.d&&QA(e.d.e,e),e.d=t,e.d&&P_(e.d.e,e)}function Gs(e,t){e.c&&QA(e.c.g,e),e.c=t,e.c&&P_(e.c.g,e)}function Gu(e,t){e.c&&QA(e.c.a,e),e.c=t,e.c&&P_(e.c.a,e)}function Gc(e,t){e.i&&QA(e.i.j,e),e.i=t,e.i&&P_(e.i.j,e)}function Gl(e,t,n){this.a=t,this.c=e,this.b=(Y8(n),new I4(n))}function Gf(e,t,n){this.a=t,this.c=e,this.b=(Y8(n),new I4(n))}function Gd(e,t){this.a=e,this.c=MB(this.a),this.b=new $g(t)}function Gh(e){var t;return el3(e),t=new bV,UJ(e,new di(t))}function Gp(e,t){if(e<0||e>t)throw p7(new gE(e$O+e+e$A+t))}function Gb(e,t){return jR(e.a,t)?Yl(e,Pp(t,22).g,null):null}function Gm(e){return euQ(),OQ(),0!=Pp(e.a,81).d.e}function Gg(){Gg=A,e0g=euY((m6(),eow(vx(e1W,1),eU4,538,0,[e0m])))}function Gv(){Gv=A,ts2=j0(new K2,(e_x(),e9i),(eB$(),e7N))}function Gy(){Gy=A,ts3=j0(new K2,(e_x(),e9i),(eB$(),e7N))}function Gw(){Gw=A,ts6=j0(new K2,(e_x(),e9i),(eB$(),e7N))}function G_(){G_=A,tuh=RI(new K2,(e_x(),e9i),(eB$(),e7o))}function GE(){GE=A,tug=RI(new K2,(e_x(),e9i),(eB$(),e7o))}function GS(){GS=A,tuv=RI(new K2,(e_x(),e9i),(eB$(),e7o))}function Gk(){Gk=A,tux=RI(new K2,(e_x(),e9i),(eB$(),e7o))}function Gx(){Gx=A,tcz=j0(new K2,(egR(),tu0),(eS_(),tu3))}function GT(e,t,n,r){this.c=e,this.d=r,GA(this,t),GL(this,n)}function GM(e){this.c=new _n,this.b=e.b,this.d=e.c,this.a=e.a}function GO(e){this.a=eB4.Math.cos(e),this.b=eB4.Math.sin(e)}function GA(e,t){e.a&&QA(e.a.k,e),e.a=t,e.a&&P_(e.a.k,e)}function GL(e,t){e.b&&QA(e.b.f,e),e.b=t,e.b&&P_(e.b.f,e)}function GC(e,t){BN(e,e.b,e.c),Pp(e.b.b,65),t&&Pp(t.b,65).b}function GI(e,t){elJ(e,t),M4(e.Cb,88)&&eko(Zd(Pp(e.Cb,88)),2)}function GD(e,t){M4(e.Cb,88)&&eko(Zd(Pp(e.Cb,88)),4),er3(e,t)}function GN(e,t){M4(e.Cb,179)&&(Pp(e.Cb,179).tb=null),er3(e,t)}function GP(e,t){return _4(),eec(t)?new RA(t,e):new xe(t,e)}function GR(e,t){var n,r;(r=null!=(n=t.c))&&BC(e,new B_(t.c))}function Gj(e){var t,n;return n=(yO(),t=new p6),etV(n,e),n}function GF(e){var t,n;return n=(yO(),t=new p6),etV(n,e),n}function GY(e,t){var n;return n=new By(e),t.c[t.c.length]=n,n}function GB(e,t){var n;return(n=Pp(ecA(HU(e.a),t),14))?n.gc():0}function GU(e){var t;return el3(e),etc(e,t=(HF(),HF(),e2u))}function GH(e){for(var t;;)if(t=e.Pb(),!e.Ob())return t}function G$(e,t){mK.call(this,new w9(ee0(e))),enG(t,eUN),this.a=t}function Gz(e,t,n){ec6(t,n,e.gc()),this.c=e,this.a=t,this.b=n-t}function GG(e,t,n){var r;ec6(t,n,e.c.length),r=n-t,yJ(e.c,t,r)}function GW(e,t){M7(e,jE(WM(Fv(t,24),e$b)),jE(WM(t,e$b)))}function GK(e,t){if(e<0||e>=t)throw p7(new gE(e$O+e+e$A+t))}function GV(e,t){if(e<0||e>=t)throw p7(new vf(e$O+e+e$A+t))}function Gq(e,t){this.b=(BJ(e),e),this.a=(t&eH0)==0?64|t|eUR:t}function GZ(e){TG(this),bF(this.a,esi(eB4.Math.max(8,e))<<1)}function GX(e){return esp(eow(vx(e60,1),eUP,8,0,[e.i.n,e.n,e.a]))}function GJ(){return eum(),eow(vx(e2L,1),eU4,132,0,[e2B,e2U,e2H])}function GQ(){return etx(),eow(vx(e25,1),eU4,232,0,[e3D,e3N,e3P])}function G1(){return Qs(),eow(vx(e27,1),eU4,461,0,[e3F,e3j,e3Y])}function G0(){return QQ(),eow(vx(e3t,1),eU4,462,0,[e3$,e3H,e3U])}function G2(){return ec4(),eow(vx(e4L,1),eU4,423,0,[e9x,e9k,e9S])}function G3(){return QJ(),eow(vx(e4S,1),eU4,379,0,[e84,e83,e86])}function G4(){return euJ(),eow(vx(e6e,1),eU4,378,0,[tsn,tsr,tsi])}function G6(){return en7(),eow(vx(e4q,1),eU4,314,0,[tej,teR,teF])}function G5(){return enB(),eow(vx(e4Z,1),eU4,337,0,[teB,teH,teU])}function G8(){return eoG(),eow(vx(e4Q,1),eU4,450,0,[te1,teQ,te0])}function G9(){return erX(),eow(vx(e4G,1),eU4,361,0,[tep,teh,ted])}function G7(){return Q1(),eow(vx(e45,1),eU4,303,0,[ttD,ttN,ttI])}function We(){return eaU(),eow(vx(e46,1),eU4,292,0,[ttA,ttL,ttO])}function Wt(){return enY(),eow(vx(e6o,1),eU4,452,0,[tsP,tsD,tsN])}function Wn(){return esn(),eow(vx(e6i,1),eU4,339,0,[tsM,tsT,tsO])}function Wr(){return ei0(),eow(vx(e6s,1),eU4,375,0,[tsj,tsF,tsY])}function Wi(){return eox(),eow(vx(e6f,1),eU4,377,0,[tsQ,ts1,tsJ])}function Wa(){return euy(),eow(vx(e6c,1),eU4,336,0,[tsz,tsG,tsW])}function Wo(){return eiO(),eow(vx(e6l,1),eU4,338,0,[tsZ,tsV,tsq])}function Ws(){return enU(),eow(vx(e6p,1),eU4,454,0,[tur,tui,tua])}function Wu(){return efx(),eow(vx(e6D,1),eU4,442,0,[tc1,tcJ,tcQ])}function Wc(){return eub(),eow(vx(e6P,1),eU4,380,0,[tc6,tc5,tc8])}function Wl(){return efS(),eow(vx(e6Y,1),eU4,381,0,[tlP,tlR,tlN])}function Wf(){return ei1(),eow(vx(e6j,1),eU4,293,0,[tlC,tlI,tlL])}function Wd(){return efk(),eow(vx(e6H,1),eU4,437,0,[tff,tfd,tfh])}function Wh(){return eck(),eow(vx(e67,1),eU4,334,0,[tpG,tpz,tpW])}function Wp(){return etT(),eow(vx(e65,1),eU4,272,0,[tp_,tpE,tpS])}function Wb(e,t){return eMw(e,t,M4(t,99)&&(Pp(t,18).Bb&eH3)!=0)}function Wm(e,t,n){var r;return(r=ePI(e,t,!1)).b<=t&&r.a<=n}function Wg(e,t,n){var r;(r=new ac).b=t,r.a=n,++t.b,P_(e.d,r)}function Wv(e,t){var n;return A3(!!(n=(BJ(e),e).g)),BJ(t),n(t)}function Wy(e,t){var n,r;return r=Yi(e,t),n=e.a.Zc(r),new wR(e,n)}function Ww(e){return e.Db>>16!=6?null:Pp(eTp(e),235)}function W_(e){if(2!=e.p)throw p7(new bT);return jE(e.f)&eHd}function WE(e){if(2!=e.p)throw p7(new bT);return jE(e.k)&eHd}function WS(e){return e.a==(ZE(),tvd)&&ff(e,eM0(e.g,e.b)),e.a}function Wk(e){return e.d==(ZE(),tvd)&&fh(e,eIj(e.g,e.b)),e.d}function Wx(e){return A5(e.ar?1:0}function WY(e,t){var n,r;return r=n=QP(t),Pp(Bp(e.c,r),19).a}function WB(e,t){var n;for(n=e+"";n.length0&&0==e.a[--e.d];);0==e.a[e.d++]&&(e.e=0)}function Kc(e){return e.a?0==e.e.length?e.a.a:e.a.a+""+e.e:e.c}function Kl(e){return!!e.a&&0!=QX(e.a.a).i&&!(e.b&&ebq(e.b))}function Kf(e){return!!e.u&&0!=qt(e.u.a).i&&!(e.n&&ebV(e.n))}function Kd(e){return Rj(e.e.Hd().gc()*e.c.Hd().gc(),16,new c8(e))}function Kh(e,t){return YM(eap(e.q.getTime()),eap(t.q.getTime()))}function Kp(e){return Pp(epg(e,Je(e4C,eGG,17,e.c.length,0,1)),474)}function Kb(e){return Pp(epg(e,Je(e4N,eGW,10,e.c.length,0,1)),193)}function Km(e){return GE(),!q9(e)&&!(!q9(e)&&e.c.i.c==e.d.i.c)}function Kg(e,t,n){var r;r=(Y8(e),new I4(e)),egT(new Gl(r,t,n))}function Kv(e,t,n){var r;r=(Y8(e),new I4(e)),egM(new Gf(r,t,n))}function Ky(e,t){var n;return n=1-t,e.a[n]=erj(e.a[n],n),erj(e,t)}function Kw(e,t){var n;e.e=new mQ,n=eLj(t),Mv(n,e.c),eLJ(e,n,0)}function K_(e,t,n,r){var i;(i=new od).a=t,i.b=n,i.c=r,P7(e.a,i)}function KE(e,t,n,r){var i;(i=new od).a=t,i.b=n,i.c=r,P7(e.b,i)}function KS(e){var t,n,r;return n=eI4(t=new YQ,e),eFg(t),r=n}function Kk(){var e,t,n;return P_(tg5,t=n=e=new p6),t}function Kx(e){return e.j.c=Je(e1R,eUp,1,0,5,1),UG(e.c),Uj(e.a),e}function KT(e){return(_L(),M4(e.g,10))?Pp(e.g,10):null}function KM(e){return!Uz(e).dc()&&(MI(e,new v),!0)}function KO(e){if(!("stack"in e))try{throw e}catch(t){}return e}function KA(e,t){if(e<0||e>=t)throw p7(new gE(eku(e,t)));return e}function KL(e,t,n){if(e<0||tn)throw p7(new gE(eE3(e,t,n)))}function KC(e,t){if(Yf(e.a,t),t.d)throw p7(new go(e$P));t.d=e}function KI(e,t){if(t.$modCount!=e.$modCount)throw p7(new bA)}function KD(e,t){return!!M4(t,42)&&emT(e.a,Pp(t,42))}function KN(e,t){return!!M4(t,42)&&emT(e.a,Pp(t,42))}function KP(e,t){return!!M4(t,42)&&emT(e.a,Pp(t,42))}function KR(e,t){return e.a<=e.b&&(t.ud(e.a++),!0)}function Kj(e){var t;return Ts(e)?-0==(t=e)?0:t:eem(e)}function KF(e){var t;return B1(e),t=new Y,yU(e.a,new dn(t)),t}function KY(e){var t;return B1(e),t=new F,yU(e.a,new dt(t)),t}function KB(e,t){this.a=e,fE.call(this,e),Gp(t,e.gc()),this.b=t}function KU(e){this.e=e,this.b=this.e.a.entries(),this.a=[]}function KH(e){return Rj(e.e.Hd().gc()*e.c.Hd().gc(),273,new c5(e))}function K$(e){return new XM((enG(e,eU5),ee1(eft(eft(5,e),e/10|0))))}function Kz(e){return Pp(epg(e,Je(e4j,eGK,11,e.c.length,0,1)),1943)}function KG(e,t,n){return n.f.c.length>0?YO(e.a,t,n):YO(e.b,t,n)}function KW(e,t,n){e.d&&QA(e.d.e,e),e.d=t,e.d&&jO(e.d.e,n,e)}function KK(e,t){eY6(t,e),PD(e.d),PD(Pp(e_k(e,(eBy(),taq)),207))}function KV(e,t){eY4(t,e),PI(e.d),PI(Pp(e_k(e,(eBy(),taq)),207))}function Kq(e,t){var n,r;return n=zR(e,t),r=null,n&&(r=n.fe()),r}function KZ(e,t){var n,r;return n=eep(e,t),r=null,n&&(r=n.ie()),r}function KX(e,t){var n,r;return n=zR(e,t),r=null,n&&(r=n.ie()),r}function KJ(e,t){var n,r;return n=zR(e,t),r=null,n&&(r=eSa(n)),r}function KQ(e,t,n){var r;return r=ehM(n),eIg(e.g,r,t),eIg(e.i,t,n),t}function K1(e,t,n){var r;r=ehl();try{return CO(e,t,n)}finally{Vx(r)}}function K0(e){var t;t=e.Wg(),this.a=M4(t,69)?Pp(t,69).Zh():t.Kc()}function K2(){mJ.call(this),this.j.c=Je(e1R,eUp,1,0,5,1),this.a=-1}function K3(e,t,n,r){this.d=e,this.n=t,this.g=n,this.o=r,this.p=-1}function K4(e,t,n,r){this.e=r,this.d=null,this.c=e,this.a=t,this.b=n}function K6(e,t,n){this.d=new hg(this),this.e=e,this.i=t,this.f=n}function K5(){K5=A,ttR=new S_(e$9,0),ttj=new S_("TOP_LEFT",1)}function K8(){K8=A,ts7=Uy(ell(1),ell(4)),ts9=Uy(ell(1),ell(2))}function K9(){K9=A,tfv=euY((_N(),eow(vx(e6z,1),eU4,551,0,[tfg])))}function K7(){K7=A,tfm=euY((_D(),eow(vx(e6$,1),eU4,482,0,[tfb])))}function Ve(){Ve=A,tf7=euY((_P(),eow(vx(e6K,1),eU4,530,0,[tf9])))}function Vt(){Vt=A,e5W=euY((_y(),eow(vx(e4w,1),eU4,481,0,[e5G])))}function Vn(){return eaY(),eow(vx(e3r,1),eU4,406,0,[e4c,e4o,e4s,e4u])}function Vr(){return Qu(),eow(vx(e2E,1),eU4,297,0,[e2D,e2N,e2P,e2R])}function Vi(){return ebe(),eow(vx(e4y,1),eU4,394,0,[e5U,e5B,e5H,e5$])}function Va(){return ep7(),eow(vx(e3i,1),eU4,323,0,[e4d,e4f,e4h,e4p])}function Vo(){return eok(),eow(vx(e4A,1),eU4,405,0,[e9f,e9p,e9d,e9h])}function Vs(){return eoE(),eow(vx(e4U,1),eU4,360,0,[e7Z,e7V,e7q,e7K])}function Vu(e,t,n,r){return M4(n,54)?new A7(e,t,n,r):new Fo(e,t,n,r)}function Vc(){return eoS(),eow(vx(e4$,1),eU4,411,0,[e78,e79,e77,tee])}function Vl(e){var t;return e.j==(eYu(),tbj)&&(t=eTt(e),Aa(t,tby))}function Vf(e,t){var n;Gs(n=t.a,t.c.d),Go(n,t.d.d),etH(n.a,e.n)}function Vd(e,t){return Pp(Af(FT(Pp(Zq(e.k,t),15).Oc(),tex)),113)}function Vh(e,t){return Pp(Af(FM(Pp(Zq(e.k,t),15).Oc(),tex)),113)}function Vp(e){return new Gq(eip(Pp(e.a.dd(),14).gc(),e.a.cd()),16)}function Vb(e){return M4(e,14)?Pp(e,14).dc():!e.Kc().Ob()}function Vm(e){return(_L(),M4(e.g,145))?Pp(e.g,145):null}function Vg(e){if(e.e.g!=e.b)throw p7(new bA);return!!e.c&&e.d>0}function Vv(e){return A5(e.b!=e.d.c),e.c=e.b,e.b=e.b.a,++e.a,e.c.c}function Vy(e,t){BJ(t),Bc(e.a,e.c,t),e.c=e.c+1&e.a.length-1,ega(e)}function Vw(e,t){BJ(t),e.b=e.b-1&e.a.length-1,Bc(e.a,e.b,t),ega(e)}function V_(e,t){var n;for(n=e.j.c.length;n0&&ePD(e.g,0,t,0,e.i),t}function VB(e,t){var n;return _6(),!(n=Pp(Bp(tmU,e),55))||n.wj(t)}function VU(e){if(1!=e.p)throw p7(new bT);return jE(e.f)<<24>>24}function VH(e){if(1!=e.p)throw p7(new bT);return jE(e.k)<<24>>24}function V$(e){if(7!=e.p)throw p7(new bT);return jE(e.k)<<16>>16}function Vz(e){if(7!=e.p)throw p7(new bT);return jE(e.f)<<16>>16}function VG(e){var t;for(t=0;e.Ob();)e.Pb(),t=eft(t,1);return ee1(t)}function VW(e,t){var n;return n=new vl,e.xd(n),n.a+="..",t.yd(n),n.a}function VK(e,t,n){var r;r=Pp(Bp(e.g,n),57),P_(e.a.c,new kD(t,r))}function VV(e,t,n){return F_(LV(xu($I(e.f,t))),LV(xu($I(e.f,n))))}function Vq(e,t,n){return eNA(e,t,n,M4(t,99)&&(Pp(t,18).Bb&eH3)!=0)}function VZ(e,t,n){return eN1(e,t,n,M4(t,99)&&(Pp(t,18).Bb&eH3)!=0)}function VX(e,t,n){return eMN(e,t,n,M4(t,99)&&(Pp(t,18).Bb&eH3)!=0)}function VJ(e,t){return e==(eEn(),e9N)&&t==e9N?4:e==e9N||t==e9N?8:32}function VQ(e,t){return xc(t)===xc(e)?"(this Map)":null==t?eUg:efF(t)}function V1(e,t){return Pp(null==t?xu($I(e.f,null)):Ea(e.g,t),281)}function V0(e,t,n){var r;return r=ehM(n),Um(e.b,r,t),Um(e.c,t,n),t}function V2(e,t){var n;for(n=t;n;)Lu(e,n.i,n.j),n=z$(n);return e}function V3(e,t){var n;return n=$a(Pb(new Qj(e,t))),RG(new Qj(e,t)),n}function V4(e,t){var n;return _4(),eEy(n=Pp(e,66).Mj(),t),n.Ok(t)}function V6(e,t,n,r,i){var a;a=eMW(i,n,r),P_(t,eS4(i,a)),e_X(e,i,t)}function V5(e,t,n){e.i=0,e.e=0,t!=n&&(esC(e,t,n),esL(e,t,n))}function V8(e,t){var n;n=e.q.getHours(),e.q.setFullYear(t+eHx),eNq(e,n)}function V9(e,t,n){if(n){var r=n.ee();e.a[t]=r(n)}else delete e.a[t]}function V7(e,t,n){n=n?n.ee()(n):void 0,e.a[t]=n}function qe(e){if(e<0)throw p7(new gI("Negative array size: "+e))}function qt(e){return e.n||(Zd(e),e.n=new j4(e,tgr,e),$E(e)),e.n}function qn(e){return A5(e.a=0&&e.a[n]===t[n];n--);return n<0}function qy(e,t){var n;return(euv(),0!=(n=e.j.g-t.j.g))?n:0}function qw(e,t){return(BJ(t),null!=e.a)?jN(t.Kb(e.a)):e2b}function q_(e){var t;return e?new RZ(e):(t=new Tw,ein(t,e),t)}function qE(e,t){var n;return t.b.Kb(QD(e,t.c.Ee(),n=new ds(t)))}function qS(e){ewP(),M7(this,jE(WM(Fv(e,24),e$b)),jE(WM(e,e$b)))}function qk(){qk=A,e3d=euY((epC(),eow(vx(e2Q,1),eU4,428,0,[e3f,e3l])))}function qx(){qx=A,e3b=euY((eeR(),eow(vx(e21,1),eU4,427,0,[e3h,e3p])))}function qT(){qT=A,e8h=euY((eej(),eow(vx(e4E,1),eU4,424,0,[e8f,e8d])))}function qM(){qM=A,e9K=euY((erq(),eow(vx(e4F,1),eU4,511,0,[e9W,e9G])))}function qO(){qO=A,teJ=euY((eeF(),eow(vx(e4J,1),eU4,419,0,[teZ,teX])))}function qA(){qA=A,ttn=euY((Qx(),eow(vx(e40,1),eU4,479,0,[ttt,tte])))}function qL(){qL=A,ts$=euY((Xo(),eow(vx(e6u,1),eU4,376,0,[tsH,tsU])))}function qC(){qC=A,tsI=euY((Q0(),eow(vx(e6a,1),eU4,421,0,[tsL,tsC])))}function qI(){qI=A,teP=euY((Jp(),eow(vx(e4V,1),eU4,422,0,[teD,teN])))}function qD(){qD=A,ttF=euY((K5(),eow(vx(e48,1),eU4,420,0,[ttR,ttj])))}function qN(){qN=A,tu$=euY((Xa(),eow(vx(e6k,1),eU4,520,0,[tuH,tuU])))}function qP(){qP=A,tud=euY((qG(),eow(vx(e6v,1),eU4,523,0,[tuf,tul])))}function qR(){qR=A,tu_=euY((zs(),eow(vx(e6E,1),eU4,516,0,[tuw,tuy])))}function qj(){qj=A,tuk=euY((zQ(),eow(vx(e6S,1),eU4,515,0,[tuE,tuS])))}function qF(){qF=A,tuX=euY((zo(),eow(vx(e6x,1),eU4,455,0,[tuq,tuZ])))}function qY(){qY=A,tc$=euY((Kn(),eow(vx(e6C,1),eU4,425,0,[tcH,tcU])))}function qB(){qB=A,tcX=euY((erZ(),eow(vx(e6I,1),eU4,495,0,[tcq,tcZ])))}function qU(){qU=A,tcB=euY((z1(),eow(vx(e6L,1),eU4,480,0,[tcF,tcY])))}function qH(){qH=A,tc4=euY((J0(),eow(vx(e6N,1),eU4,426,0,[tc2,tc3])))}function q$(){q$=A,tdn=euY((eoT(),eow(vx(e6V,1),eU4,429,0,[tdt,tde])))}function qz(){qz=A,tf_=euY((Xs(),eow(vx(e6G,1),eU4,430,0,[tfw,tfy])))}function qG(){qG=A,tuf=new Sj("UPPER",0),tul=new Sj("LOWER",1)}function qW(e,t){var n;H1(n=new gu,"x",t.a),H1(n,"y",t.b),BC(e,n)}function qK(e,t){var n;H1(n=new gu,"x",t.a),H1(n,"y",t.b),BC(e,n)}function qV(e,t){var n,r;r=!1;do n=eo5(e,t),r|=n;while(n)return r}function qq(e,t){var n,r;for(n=t,r=0;n>0;)r+=e.a[n],n-=n&-n;return r}function qZ(e,t){var n;for(n=t;n;)Lu(e,-n.i,-n.j),n=z$(n);return e}function qX(e,t){var n,r;for(BJ(t),r=e.Kc();r.Ob();)n=r.Pb(),t.td(n)}function qJ(e,t){var n;return n=t.cd(),new wD(n,e.e.pc(n,Pp(t.dd(),14)))}function qQ(e,t,n,r){var i;(i=new C).c=t,i.b=n,i.a=r,r.b=n.a=i,++e.b}function q1(e,t,n){var r;return r=(GK(t,e.c.length),e.c[t]),e.c[t]=n,r}function q0(e,t,n){return Pp(null==t?eS8(e.f,null,n):efi(e.g,t,n),281)}function q2(e){return e.c&&e.d?WH(e.c)+"->"+WH(e.d):"e_"+Ao(e)}function q3(e,t){return(el3(e),yK(new R1(e,new Qa(t,e.a)))).sd(e2z)}function q4(){return e_x(),eow(vx(e4k,1),eU4,356,0,[e9e,e9t,e9n,e9r,e9i])}function q6(){return eYu(),eow(vx(e5a,1),eGj,61,0,[tbF,tbw,tby,tbj,tbY])}function q5(e){return vg(),function(){return K1(e,this,arguments)}}function q8(){return Date.now?Date.now():(new Date).getTime()}function q9(e){return!!e.c&&!!e.d&&!!e.c.i&&e.c.i==e.d.i}function q7(e){if(!e.c.Sb())throw p7(new bC);return e.a=!0,e.c.Ub()}function Ze(e){e.i=0,Eb(e.b,null),Eb(e.c,null),e.a=null,e.e=null,++e.g}function Zt(e){El.call(this,null==e?eUg:efF(e),M4(e,78)?Pp(e,78):null)}function Zn(e){eBD(),p9(this),this.a=new _n,esJ(this,e),P7(this.a,e)}function Zr(){Tz(this),this.b=new kl(eHQ,eHQ),this.a=new kl(eH1,eH1)}function Zi(e,t){this.c=0,this.b=t,xR.call(this,e,17493),this.a=this.c}function Za(e){Zo(),!e2M&&(this.c=e,this.e=!0,this.a=new p0)}function Zo(){Zo=A,e2M=!0,e2x=!1,e2T=!1,e2A=!1,e2O=!1}function Zs(e,t){return!!M4(t,149)&&IE(e.c,Pp(t,149).c)}function Zu(e,t){var n;return n=0,e&&(n+=e.f.a/2),t&&(n+=t.f.a/2),n}function Zc(e,t){var n;return(n=Pp(eef(e.d,t),23))||Pp(eef(e.e,t),23)}function Zl(e){this.b=e,Ow.call(this,e),this.a=Pp(eaS(this.b.a,4),126)}function Zf(e){this.b=e,AY.call(this,e),this.a=Pp(eaS(this.b.a,4),126)}function Zd(e){return e.t||(e.t=new pR(e),elm(new gT(e),0,e.t)),e.t}function Zh(){return ec3(),eow(vx(e66,1),eU4,103,0,[tpv,tpg,tpm,tpb,tpy])}function Zp(){return epT(),eow(vx(e5n,1),eU4,249,0,[tbt,tbr,tp7,tbe,tbn])}function Zb(){return epx(),eow(vx(e6Q,1),eU4,175,0,[tdh,tdd,tdl,tdp,tdf])}function Zm(){return eEM(),eow(vx(e6W,1),eU4,316,0,[tfE,tfS,tfT,tfk,tfx])}function Zg(){return ebG(),eow(vx(e6n,1),eU4,315,0,[tsb,tsd,tsh,tsf,tsp])}function Zv(){return eb5(),eow(vx(e4X,1),eU4,335,0,[teG,tez,teK,teV,teW])}function Zy(){return eOB(),eow(vx(e6U,1),eU4,355,0,[tfo,tfa,tfu,tfs,tfc])}function Zw(){return ey4(),eow(vx(e4z,1),eU4,363,0,[ter,tea,teo,tei,ten])}function Z_(){return ef_(),eow(vx(e49,1),eU4,163,0,[tnj,tnD,tnN,tnP,tnR])}function ZE(){var e,t;ZE=A,tvf=(yO(),t=new bN),tvd=e=new mC}function ZS(e){var t;return!e.c&&M4(t=e.r,88)&&(e.c=Pp(t,26)),e.c}function Zk(e){return e.e=3,e.d=e.Yb(),2!=e.e&&(e.e=0,!0)}function Zx(e){var t,n,r;return t=e&eHH,Mk(t,n=e>>22&eHH,r=e<0?eH$:0)}function ZT(e){var t,n,r,i;for(r=0,i=(n=e).length;r0?ehe(e,t):eA9(e,-t)}function ZL(e,t){return 0==t||0==e.e?e:t>0?eA9(e,t):ehe(e,-t)}function ZC(e){if(eTk(e))return e.c=e.a,e.a.Pb();throw p7(new bC)}function ZI(e){var t,n;return t=e.c.i,n=e.d.i,t.k==(eEn(),e9C)&&n.k==e9C}function ZD(e){var t;return t=new $b,eaW(t,e),eo3(t,(eBy(),taR),null),t}function ZN(e,t,n){var r;return(r=e.Yg(t))>=0?e._g(r,n,!0):exk(e,t,n)}function ZP(e,t,n,r){var i;for(i=0;it)throw p7(new gE(eS1(e,t,"index")));return e}function Z1(e,t,n,r){var i;return i=Je(ty_,eHT,25,t,15,1),ewD(i,e,t,n,r),i}function Z0(e,t){var n;n=e.q.getHours()+(t/60|0),e.q.setMinutes(t),eNq(e,n)}function Z2(e,t){return eB4.Math.min(Jh(t.a,e.d.d.c),Jh(t.b,e.d.d.c))}function Z3(e,t){return xd(t)?null==t?eTx(e.f,null):eaK(e.g,t):eTx(e.f,t)}function Z4(e){this.c=e,this.a=new fz(this.c.a),this.b=new fz(this.c.b)}function Z6(){this.e=new p0,this.c=new p0,this.d=new p0,this.b=new p0}function Z5(){this.g=new bJ,this.b=new bJ,this.a=new p0,this.k=new p0}function Z8(e,t,n){this.a=e,this.c=t,this.d=n,P_(t.e,this),P_(n.b,this)}function Z9(e,t){xP.call(this,t.rd(),-6&t.qd()),BJ(e),this.a=e,this.b=t}function Z7(e,t){xR.call(this,t.rd(),-6&t.qd()),BJ(e),this.a=e,this.b=t}function Xe(e,t){xj.call(this,t.rd(),-6&t.qd()),BJ(e),this.a=e,this.b=t}function Xt(e,t,n){this.a=e,this.b=t,this.c=n,P_(e.t,this),P_(t.i,this)}function Xn(){this.b=new _n,this.a=new _n,this.b=new _n,this.a=new _n}function Xr(){Xr=A,tdx=new pO("org.eclipse.elk.labels.labelManager")}function Xi(){Xi=A,e7W=new Cm("separateLayerConnections",(eoE(),e7Z))}function Xa(){Xa=A,tuH=new SW("REGULAR",0),tuU=new SW("CRITICAL",1)}function Xo(){Xo=A,tsH=new SI("STACKED",0),tsU=new SI("SEQUENCED",1)}function Xs(){Xs=A,tfw=new S7("FIXED",0),tfy=new S7("CENTER_NODE",1)}function Xu(e,t){var n;return n=ejH(e,t),e.b=new erH(n.c.length),eRj(e,n)}function Xc(e,t,n){var r;return++e.e,--e.f,(r=Pp(e.d[t].$c(n),133)).dd()}function Xl(e){var t;return!e.a&&M4(t=e.r,148)&&(e.a=Pp(t,148)),e.a}function Xf(e){return e.a?e.e?Xf(e.e):null:e}function Xd(e,t){return e.pt.p?-1:0}function Xh(e,t){return BJ(t),e.c=0,"Initial capacity must not be negative")}function XO(){XO=A,e3R=euY((etx(),eow(vx(e25,1),eU4,232,0,[e3D,e3N,e3P])))}function XA(){XA=A,e3B=euY((Qs(),eow(vx(e27,1),eU4,461,0,[e3F,e3j,e3Y])))}function XL(){XL=A,e3z=euY((QQ(),eow(vx(e3t,1),eU4,462,0,[e3$,e3H,e3U])))}function XC(){XC=A,e2$=euY((eum(),eow(vx(e2L,1),eU4,132,0,[e2B,e2U,e2H])))}function XI(){XI=A,e85=euY((QJ(),eow(vx(e4S,1),eU4,379,0,[e84,e83,e86])))}function XD(){XD=A,e9T=euY((ec4(),eow(vx(e4L,1),eU4,423,0,[e9x,e9k,e9S])))}function XN(){XN=A,teY=euY((en7(),eow(vx(e4q,1),eU4,314,0,[tej,teR,teF])))}function XP(){XP=A,te$=euY((enB(),eow(vx(e4Z,1),eU4,337,0,[teB,teH,teU])))}function XR(){XR=A,te2=euY((eoG(),eow(vx(e4Q,1),eU4,450,0,[te1,teQ,te0])))}function Xj(){Xj=A,teb=euY((erX(),eow(vx(e4G,1),eU4,361,0,[tep,teh,ted])))}function XF(){XF=A,ttP=euY((Q1(),eow(vx(e45,1),eU4,303,0,[ttD,ttN,ttI])))}function XY(){XY=A,ttC=euY((eaU(),eow(vx(e46,1),eU4,292,0,[ttA,ttL,ttO])))}function XB(){XB=A,tsa=euY((euJ(),eow(vx(e6e,1),eU4,378,0,[tsn,tsr,tsi])))}function XU(){XU=A,tsB=euY((ei0(),eow(vx(e6s,1),eU4,375,0,[tsj,tsF,tsY])))}function XH(){XH=A,tsA=euY((esn(),eow(vx(e6i,1),eU4,339,0,[tsM,tsT,tsO])))}function X$(){X$=A,tsR=euY((enY(),eow(vx(e6o,1),eU4,452,0,[tsP,tsD,tsN])))}function Xz(){Xz=A,ts0=euY((eox(),eow(vx(e6f,1),eU4,377,0,[tsQ,ts1,tsJ])))}function XG(){XG=A,tsK=euY((euy(),eow(vx(e6c,1),eU4,336,0,[tsz,tsG,tsW])))}function XW(){XW=A,tsX=euY((eiO(),eow(vx(e6l,1),eU4,338,0,[tsZ,tsV,tsq])))}function XK(){XK=A,tuo=euY((enU(),eow(vx(e6p,1),eU4,454,0,[tur,tui,tua])))}function XV(){XV=A,tc0=euY((efx(),eow(vx(e6D,1),eU4,442,0,[tc1,tcJ,tcQ])))}function Xq(){Xq=A,tc9=euY((eub(),eow(vx(e6P,1),eU4,380,0,[tc6,tc5,tc8])))}function XZ(){XZ=A,tlj=euY((efS(),eow(vx(e6Y,1),eU4,381,0,[tlP,tlR,tlN])))}function XX(){XX=A,tlD=euY((ei1(),eow(vx(e6j,1),eU4,293,0,[tlC,tlI,tlL])))}function XJ(){XJ=A,tfp=euY((efk(),eow(vx(e6H,1),eU4,437,0,[tff,tfd,tfh])))}function XQ(){XQ=A,tpK=euY((eck(),eow(vx(e67,1),eU4,334,0,[tpG,tpz,tpW])))}function X1(){X1=A,tpk=euY((etT(),eow(vx(e65,1),eU4,272,0,[tp_,tpE,tpS])))}function X0(){return ewf(),eow(vx(e5r,1),eU4,98,0,[tbl,tbc,tbu,tba,tbs,tbo])}function X2(e,t){return e.o||(e.o=new JY((eBa(),tmy),e5O,e,0)),edG(e.o,t)}function X3(e){return e.g||(e.g=new o2),e.g.d||(e.g.d=new pD(e)),e.g.d}function X4(e){return e.g||(e.g=new o2),e.g.a||(e.g.a=new pN(e)),e.g.a}function X6(e){return e.g||(e.g=new o2),e.g.b||(e.g.b=new pI(e)),e.g.b}function X5(e){return e.g||(e.g=new o2),e.g.c||(e.g.c=new pP(e)),e.g.c}function X8(e,t,n){var r,i;for(r=0,i=new eaN(t,e);rn||t=0?e._g(n,!0,!0):exk(e,t,!0)}function JW(e,t){return elN(gP(LV(e_k(e,(eBU(),tnv)))),gP(LV(e_k(t,tnv))))}function JK(){JK=A,tcG=ehY(ehY(_G(new K2,(egR(),tuQ)),(eS_(),tu9)),tu4)}function JV(e,t,n){var r;return r=esg(e,t,n),e.b=new erH(r.c.length),eLI(e,r)}function Jq(e){if(e.b<=0)throw p7(new bC);return--e.b,e.a-=e.c.c,ell(e.a)}function JZ(e){var t;if(!e.a)throw p7(new UD);return t=e.a,e.a=z$(e.a),t}function JX(e){for(;!e.a;)if(!IM(e.c,new dr(e)))return!1;return!0}function JJ(e){var t;return(Y8(e),M4(e,198))?t=Pp(e,198):new lp(e)}function JQ(e){J1(),Pp(e.We((eBB(),thJ)),174).Fc((ekU(),tbb)),e.Ye(thX,null)}function J1(){J1=A,tdo=new os,tdu=new ou,tds=es0((eBB(),thX),tdo,thL,tdu)}function J0(){J0=A,tc2=new S2("LEAF_NUMBER",0),tc3=new S2("NODE_SIZE",1)}function J2(e,t,n){e.a=t,e.c=n,e.b.a.$b(),HC(e.d),e.e.a.c=Je(e1R,eUp,1,0,5,1)}function J3(e){e.a=Je(ty_,eHT,25,e.b+1,15,1),e.c=Je(ty_,eHT,25,e.b,15,1),e.d=0}function J4(e,t){e.a.ue(t.d,e.b)>0&&(P_(e.c,new PW(t.c,t.d,e.d)),e.b=t.d)}function J6(e,t){if(null==e.g||t>=e.i)throw p7(new xJ(t,e.i));return e.g[t]}function J5(e,t,n){if(euu(e,n),null!=n&&!e.wj(n))throw p7(new bS);return n}function J8(e){var t;if(e.Ek())for(t=e.i-1;t>=0;--t)etj(e,t);return VY(e)}function J9(e){var t,n;if(!e.b)return null;for(n=e.b;t=n.a[0];)n=t;return n}function J7(e,t){var n,r;return qe(t),(n=QO(r=e.slice(0,t),e)).length=t,n}function Qe(e,t,n,r){var i;r=(HF(),r||e2s),eS0(i=e.slice(t,n),e,t,n,-t,r)}function Qt(e,t,n,r,i){return t<0?exk(e,n,r):Pp(n,66).Nj().Pj(e,e.yh(),t,r,i)}function Qn(e){return M4(e,172)?""+Pp(e,172).a:null==e?null:efF(e)}function Qr(e){return M4(e,172)?""+Pp(e,172).a:null==e?null:efF(e)}function Qi(e,t){if(t.a)throw p7(new go(e$P));Yf(e.a,t),t.a=e,e.j||(e.j=t)}function Qa(e,t){xj.call(this,t.rd(),-16449&t.qd()),BJ(e),this.a=e,this.c=t}function Qo(e,t){var n,r;return r=t/e.c.Hd().gc()|0,n=t%e.c.Hd().gc(),X_(e,r,n)}function Qs(){Qs=A,e3F=new EY(ezt,0),e3j=new EY(e$9,1),e3Y=new EY(ezn,2)}function Qu(){Qu=A,e2D=new Ef("All",0),e2N=new TH,e2P=new ML,e2R=new T$}function Qc(){Qc=A,e2j=euY((Qu(),eow(vx(e2E,1),eU4,297,0,[e2D,e2N,e2P,e2R])))}function Ql(){Ql=A,e9b=euY((eok(),eow(vx(e4A,1),eU4,405,0,[e9f,e9p,e9d,e9h])))}function Qf(){Qf=A,e4l=euY((eaY(),eow(vx(e3r,1),eU4,406,0,[e4c,e4o,e4s,e4u])))}function Qd(){Qd=A,e4b=euY((ep7(),eow(vx(e3i,1),eU4,323,0,[e4d,e4f,e4h,e4p])))}function Qh(){Qh=A,e5z=euY((ebe(),eow(vx(e4y,1),eU4,394,0,[e5U,e5B,e5H,e5$])))}function Qp(){Qp=A,tu2=euY((egR(),eow(vx(e6T,1),eU4,393,0,[tuJ,tuQ,tu1,tu0])))}function Qb(){Qb=A,e7X=euY((eoE(),eow(vx(e4U,1),eU4,360,0,[e7Z,e7V,e7q,e7K])))}function Qm(){Qm=A,tlA=euY((emC(),eow(vx(e6R,1),eU4,340,0,[tlO,tlT,tlM,tlx])))}function Qg(){Qg=A,tet=euY((eoS(),eow(vx(e4$,1),eU4,411,0,[e78,e79,e77,tee])))}function Qv(){Qv=A,tsl=euY((ebk(),eow(vx(e6t,1),eU4,197,0,[tsu,tsc,tss,tso])))}function Qy(){Qy=A,tmo=euY((eup(),eow(vx(e5l,1),eU4,396,0,[tmr,tmi,tmn,tma])))}function Qw(){Qw=A,tpJ=euY((egF(),eow(vx(e5e,1),eU4,285,0,[tpX,tpV,tpq,tpZ])))}function Q_(){Q_=A,tpA=euY((efE(),eow(vx(e68,1),eU4,218,0,[tpO,tpT,tpx,tpM])))}function QE(){QE=A,tmt=euY((edM(),eow(vx(e5u,1),eU4,311,0,[tme,tb8,tb7,tb9])))}function QS(){QS=A,tbZ=euY((ed5(),eow(vx(e5o,1),eU4,374,0,[tbV,tbq,tbK,tbW])))}function Qk(){Qk=A,ePm(),tvq=eHQ,tvV=eH1,tvX=new fL(eHQ),tvZ=new fL(eH1)}function Qx(){Qx=A,ttt=new Sb(eGR,0),tte=new Sb("IMPROVE_STRAIGHTNESS",1)}function QT(e,t){return Pj(),P_(e,new kD(t,ell(t.e.c.length+t.g.c.length)))}function QM(e,t){return Pj(),P_(e,new kD(t,ell(t.e.c.length+t.g.c.length)))}function QO(e,t){return 10!=eeg(t)&&eow(esF(t),t.hm,t.__elementTypeId$,eeg(t),e),e}function QA(e,t){var n;return -1!=(n=QI(e,t,0))&&(ZV(e,n),!0)}function QL(e,t){var n;return(n=Pp(Z3(e.e,t),387))?(Re(n),n.e):null}function QC(e){var t;return Ts(e)&&!isNaN(t=0-e)?t:eal(eoQ(e))}function QI(e,t,n){for(;n=0?ebl(e,n,!0,!0):exk(e,t,!0)}function Q9(e,t){var n,r;return _L(),n=Vm(e),r=Vm(t),!!n&&!!r&&!ep6(n.k,r.k)}function Q7(e,t){eno(e,null==t||IX((BJ(t),t))||isNaN((BJ(t),t))?0:(BJ(t),t))}function eee(e,t){ens(e,null==t||IX((BJ(t),t))||isNaN((BJ(t),t))?0:(BJ(t),t))}function eet(e,t){ena(e,null==t||IX((BJ(t),t))||isNaN((BJ(t),t))?0:(BJ(t),t))}function een(e,t){eni(e,null==t||IX((BJ(t),t))||isNaN((BJ(t),t))?0:(BJ(t),t))}function eer(e){(this.q?this.q:(Hj(),Hj(),e2i)).Ac(e.q?e.q:(Hj(),Hj(),e2i))}function eei(e,t){return M4(t,99)&&(Pp(t,18).Bb&eH3)!=0?new x1(t,e):new eaN(t,e)}function eea(e,t){return M4(t,99)&&(Pp(t,18).Bb&eH3)!=0?new x1(t,e):new eaN(t,e)}function eeo(e,t){e4g=new e0,e4v=t,Pp((e4m=e).b,65),Jr(e4m,e4g,null),eRk(e4m)}function ees(e,t,n){var r;return r=e.g[t],Of(e,t,e.oi(t,n)),e.gi(t,n,r),e.ci(),r}function eeu(e,t){var n;return(n=e.Xc(t))>=0&&(e.$c(n),!0)}function eec(e){var t;return e.d!=e.r&&(t=evl(e),e.e=!!t&&t.Cj()==eJK,e.d=t),e.e}function eel(e,t){var n;for(Y8(e),Y8(t),n=!1;t.Ob();)n|=e.Fc(t.Pb());return n}function eef(e,t){var n;return(n=Pp(Bp(e.e,t),387))?(M5(e,n),n.e):null}function eed(e){var t,n;return(t=e/60|0,0==(n=e%60))?""+t:""+t+":"+n}function eeh(e,t){var n,r;return el3(e),r=new Xe(t,e.a),n=new IU(r),new R1(e,n)}function eep(e,t){var n=e.a[t],r=(eoW(),e0O)[typeof n];return r?r(n):euV(typeof n)}function eeb(e){switch(e.g){case 0:return eUu;case 1:return -1;default:return 0}}function eem(e){return 0>evy(e,(Q2(),e0D))?-As(eoQ(e)):e.l+e.m*eHG+e.h*eHW}function eeg(e){return null==e.__elementTypeCategory$?10:e.__elementTypeCategory$}function eev(e){var t;return null!=(t=0==e.b.c.length?null:RJ(e.b,0))&&erD(e,0),t}function eey(e,t){for(;t[0]=0;)++t[0]}function eew(e,t){this.e=t,this.a=eaJ(e),this.a<54?this.f=Kj(e):this.c=ep_(e)}function ee_(e,t,n,r){eBG(),pJ.call(this,26),this.c=e,this.a=t,this.d=n,this.b=r}function eeE(e,t,n){var r,i;for(i=0,r=10;ie.a[r]&&(r=n);return r}function eeI(e,t){var n;return 0==(n=efT(e.e.c,t.e.c))?elN(e.e.d,t.e.d):n}function eeD(e,t){return 0==t.e||0==e.e?e09:(exX(),eAl(e,t))}function eeN(e,t){if(!e)throw p7(new gL(eAL("Enum constant undefined: %s",t)))}function eeP(){eeP=A,e9v=new tp,e9y=new td,e9m=new ty,e9g=new tw,e9w=new t_}function eeR(){eeR=A,e3h=new ER("BY_SIZE",0),e3p=new ER("BY_SIZE_AND_SHAPE",1)}function eej(){eej=A,e8f=new EH("EADES",0),e8d=new EH("FRUCHTERMAN_REINGOLD",1)}function eeF(){eeF=A,teZ=new Sd("READING_DIRECTION",0),teX=new Sd("ROTATION",1)}function eeY(){eeY=A,teq=euY((eb5(),eow(vx(e4X,1),eU4,335,0,[teG,tez,teK,teV,teW])))}function eeB(){eeB=A,tsm=euY((ebG(),eow(vx(e6n,1),eU4,315,0,[tsb,tsd,tsh,tsf,tsp])))}function eeU(){eeU=A,tes=euY((ey4(),eow(vx(e4z,1),eU4,363,0,[ter,tea,teo,tei,ten])))}function eeH(){eeH=A,tnF=euY((ef_(),eow(vx(e49,1),eU4,163,0,[tnj,tnD,tnN,tnP,tnR])))}function ee$(){ee$=A,tfM=euY((eEM(),eow(vx(e6W,1),eU4,316,0,[tfE,tfS,tfT,tfk,tfx])))}function eez(){eez=A,tdb=euY((epx(),eow(vx(e6Q,1),eU4,175,0,[tdh,tdd,tdl,tdp,tdf])))}function eeG(){eeG=A,tfl=euY((eOB(),eow(vx(e6U,1),eU4,355,0,[tfo,tfa,tfu,tfs,tfc])))}function eeW(){eeW=A,e9a=euY((e_x(),eow(vx(e4k,1),eU4,356,0,[e9e,e9t,e9n,e9r,e9i])))}function eeK(){eeK=A,tpw=euY((ec3(),eow(vx(e66,1),eU4,103,0,[tpv,tpg,tpm,tpb,tpy])))}function eeV(){eeV=A,tbi=euY((epT(),eow(vx(e5n,1),eU4,249,0,[tbt,tbr,tp7,tbe,tbn])))}function eeq(){eeq=A,tbB=euY((eYu(),eow(vx(e5a,1),eGj,61,0,[tbF,tbw,tby,tbj,tbY])))}function eeZ(e,t){var n;return(n=Pp(Bp(e.a,t),134))||(n=new eX,Um(e.a,t,n)),n}function eeX(e){var t;return!!(t=Pp(e_k(e,(eBU(),ttU)),305))&&t.a==e}function eeJ(e){var t;return!!(t=Pp(e_k(e,(eBU(),ttU)),305))&&t.i==e}function eeQ(e,t){return BJ(t),FD(e),!!e.d.Ob()&&(t.td(e.d.Pb()),!0)}function ee1(e){return ecd(e,eUu)>0?eUu:0>ecd(e,eHt)?eHt:jE(e)}function ee0(e){return e<3?(enG(e,eU0),e+1):e=0&&t=-.01&&e.a<=ezs&&(e.a=0),e.b>=-.01&&e.b<=ezs&&(e.b=0),e}function ee6(e,t){return t==(I9(),I9(),e2p)?e.toLocaleLowerCase():e.toLowerCase()}function ee5(e){return((2&e.i)!=0?"interface ":(1&e.i)!=0?"":"class ")+(LW(e),e.o)}function ee8(e){var t,n;n=t=new mD,JL((e.q||(e.q=new FQ(tgi,e,11,10)),e.q),n)}function ee9(e,t){var n;return n=t>0?t-1:t,yr(yi(eny(P5(new mV,n),e.n),e.j),e.k)}function ee7(e,t,n,r){var i;e.j=-1,ex9(e,eSu(e,t,n),(_4(),(i=Pp(t,66).Mj()).Ok(r)))}function ete(e){this.g=e,this.f=new p0,this.a=eB4.Math.min(this.g.c.c,this.g.d.c)}function ett(e){this.b=new p0,this.a=new p0,this.c=new p0,this.d=new p0,this.e=e}function etn(e,t){this.a=new p2,this.e=new p2,this.b=(euJ(),tsi),this.c=e,this.b=t}function etr(e,t,n){CK.call(this),etk(this),this.a=e,this.c=n,this.b=t.d,this.f=t.e}function eti(e){this.d=e,this.c=e.c.vc().Kc(),this.b=null,this.a=null,this.e=(m6(),e0m)}function eta(e){if(e<0)throw p7(new gL("Illegal Capacity: "+e));this.g=this.ri(e)}function eto(e,t){if(0>e||e>t)throw p7(new va("fromIndex: 0, toIndex: "+e+e$m+t))}function ets(e){var t;if(e.a==e.b.a)throw p7(new bC);return t=e.a,e.c=t,e.a=e.a.e,t}function etu(e){var t;A4(!!e.c),t=e.c.a,etw(e.d,e.c),e.b==e.c?e.b=t:--e.a,e.c=null}function etc(e,t){var n;return el3(e),n=new HA(e,e.a.rd(),4|e.a.qd(),t),new R1(e,n)}function etl(e,t){var n,r;return(n=Pp(ecA(e.d,t),14))?(r=t,e.e.pc(r,n)):null}function etf(e,t){var n,r;for(r=e.Kc();r.Ob();)eo3(n=Pp(r.Pb(),70),(eBU(),tnt),t)}function etd(e){var t;return(t=gP(LV(e_k(e,(eBy(),tak)))))<0&&eo3(e,tak,t=0),t}function eth(e,t,n){var r;ev_(n,r=eB4.Math.max(0,e.b/2-.5),1),P_(t,new EJ(n,r))}function etp(e,t,n){var r;return zy(Ra(r=e.a.e[Pp(t.a,10).p]-e.a.e[Pp(n.a,10).p]))}function etb(e,t,n,r,i,a){var o;o=ZD(r),Gs(o,i),Go(o,a),exg(e.a,r,new DT(o,t,n.f))}function etm(e,t){var n;if(!(n=eAh(e.Tg(),t)))throw p7(new gL(eZV+t+eZX));return n}function etg(e,t){var n;for(n=e;z$(n);)if((n=z$(n))==t)return!0;return!1}function etv(e,t){var n,r,i;for(i=0,r=t.a.cd(),n=Pp(t.a.dd(),14).gc();i0&&(e.a/=t,e.b/=t),e}function etP(e){var t;return e.w?e.w:((t=Ww(e))&&!t.kh()&&(e.w=t),t)}function etR(e){var t;return null==e?null:e_e(t=Pp(e,190),t.length)}function etj(e,t){if(null==e.g||t>=e.i)throw p7(new xJ(t,e.i));return e.li(t,e.g[t])}function etF(e){var t,n;for(t=e.a.d.j,n=e.c.d.j;t!=n;)erC(e.b,t),t=elI(t);erC(e.b,t)}function etY(e){var t;for(t=0;t=14&&t<=16)),e}function etW(e,t,n){var r=function(){return e.apply(r,arguments)};return t.apply(r,n),r}function etK(e,t,n){var r,i;r=t;do i=gP(e.p[r.p])+n,e.p[r.p]=i,r=e.a[r.p];while(r!=t)}function etV(e,t){var n,r;r=e.a,n=elr(e,t,null),r==t||e.e||(n=eFr(e,t,n)),n&&n.Fi()}function etq(e,t){return Mc(),enj(eHe),eB4.Math.abs(e-t)<=eHe||e==t||isNaN(e)&&isNaN(t)}function etZ(e,t){return Mc(),enj(eHe),eB4.Math.abs(e-t)<=eHe||e==t||isNaN(e)&&isNaN(t)}function etX(e,t){return e_z(),ME(e.b.c.length-e.e.c.length,t.b.c.length-t.e.c.length)}function etJ(e,t){return yk(eif(e,t,jE(efn(eUJ,Ux(jE(efn(null==t?0:esj(t),eUQ)),15)))))}function etQ(){etQ=A,e9R=euY((eEn(),eow(vx(e4P,1),eU4,267,0,[e9N,e9D,e9C,e9P,e9I,e9L])))}function et1(){et1=A,tdJ=euY((eyY(),eow(vx(e64,1),eU4,291,0,[tdX,tdZ,tdq,tdK,tdW,tdV])))}function et0(){et0=A,tdD=euY((ebx(),eow(vx(e63,1),eU4,248,0,[tdM,tdL,tdC,tdI,tdO,tdA])))}function et2(){et2=A,teI=euY((eSg(),eow(vx(e4K,1),eU4,227,0,[teO,teL,teM,teA,teC,teT])))}function et3(){et3=A,ttm=euY((e_3(),eow(vx(e43,1),eU4,275,0,[ttp,ttf,ttb,tth,ttd,ttl])))}function et4(){et4=A,ttc=euY((eyd(),eow(vx(e42,1),eU4,274,0,[tto,tta,ttu,tti,tts,ttr])))}function et6(){et6=A,tst=euY((ewY(),eow(vx(e47,1),eU4,313,0,[to7,to8,to6,to5,tse,to9])))}function et5(){et5=A,te7=euY((eEf(),eow(vx(e41,1),eU4,276,0,[te4,te3,te5,te6,te9,te8])))}function et8(){et8=A,tu7=euY((eS_(),eow(vx(e6A,1),eU4,327,0,[tu9,tu4,tu5,tu6,tu8,tu3])))}function et9(){et9=A,tbv=euY((ekU(),eow(vx(e5i,1),eU4,273,0,[tbm,tbp,tbb,tbh,tbd,tbg])))}function et7(){et7=A,tpR=euY((e_a(),eow(vx(e69,1),eU4,312,0,[tpN,tpI,tpP,tpL,tpD,tpC])))}function ene(){return eT7(),eow(vx(e5t,1),eU4,93,0,[tp1,tpQ,tp2,tp8,tp5,tp6,tp3,tp4,tp0])}function ent(e,t){var n;n=e.a,e.a=t,(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new qo(e,0,n,e.a))}function enn(e,t){var n;n=e.b,e.b=t,(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new qo(e,1,n,e.b))}function enr(e,t){var n;n=e.b,e.b=t,(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new qo(e,3,n,e.b))}function eni(e,t){var n;n=e.f,e.f=t,(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new qo(e,3,n,e.f))}function ena(e,t){var n;n=e.g,e.g=t,(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new qo(e,4,n,e.g))}function eno(e,t){var n;n=e.i,e.i=t,(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new qo(e,5,n,e.i))}function ens(e,t){var n;n=e.j,e.j=t,(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new qo(e,6,n,e.j))}function enu(e,t){var n;n=e.j,e.j=t,(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new qo(e,1,n,e.j))}function enc(e,t){var n;n=e.c,e.c=t,(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new qo(e,4,n,e.c))}function enl(e,t){var n;n=e.k,e.k=t,(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new qo(e,2,n,e.k))}function enf(e,t){var n;n=e.d,e.d=t,(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new qs(e,2,n,e.d))}function end(e,t){var n;n=e.s,e.s=t,(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new qs(e,4,n,e.s))}function enh(e,t){var n;n=e.t,e.t=t,(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new qs(e,5,n,e.t))}function enp(e,t){var n;n=e.F,e.F=t,(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new FX(e,1,5,n,t))}function enb(e,t){var n;return(n=Pp(Bp((_6(),tmU),e),55))?n.xj(t):Je(e1R,eUp,1,t,5,1)}function enm(e,t){var n,r;return(n=t in e.a)&&(r=zR(e,t).he())?r.a:null}function eng(e,t){var n,r,i;return n=(r=(yT(),i=new o0),t&&eAu(r,t),r),eri(n,e),n}function env(e,t,n){if(euu(e,n),!e.Bk()&&null!=n&&!e.wj(n))throw p7(new bS);return n}function eny(e,t){return e.n=t,e.n?(e.f=new p0,e.e=new p0):(e.f=null,e.e=null),e}function enw(e,t,n,r,i,a){var o;return enA(n,o=Y5(e,t)),o.i=i?8:0,o.f=r,o.e=i,o.g=a,o}function en_(e,t,n,r,i){this.d=t,this.k=r,this.f=i,this.o=-1,this.p=1,this.c=e,this.a=n}function enE(e,t,n,r,i){this.d=t,this.k=r,this.f=i,this.o=-1,this.p=2,this.c=e,this.a=n}function enS(e,t,n,r,i){this.d=t,this.k=r,this.f=i,this.o=-1,this.p=6,this.c=e,this.a=n}function enk(e,t,n,r,i){this.d=t,this.k=r,this.f=i,this.o=-1,this.p=7,this.c=e,this.a=n}function enx(e,t,n,r,i){this.d=t,this.j=r,this.e=i,this.o=-1,this.p=4,this.c=e,this.a=n}function enT(e,t){var n,r,i,a;for(i=0,a=(r=t).length;i=0),0>ehP(e.d,e.c)&&(e.a=e.a-1&e.d.a.length-1,e.b=e.d.c),e.c=-1}function enR(e){return e.a<54?e.f<0?-1:e.f>0?1:0:(e.c||(e.c=euK(e.f)),e.c).e}function enj(e){if(!(e>=0))throw p7(new gL("tolerance ("+e+") must be >= 0"));return e}function enF(){return tdc||(tdc=new eC$,es4(tdc,eow(vx(e20,1),eUp,130,0,[new cZ]))),tdc}function enY(){enY=A,tsP=new SL(ezo,0),tsD=new SL("INPUT",1),tsN=new SL("OUTPUT",2)}function enB(){enB=A,teB=new Sl("ARD",0),teH=new Sl("MSD",1),teU=new Sl("MANUAL",2)}function enU(){enU=A,tur=new SR("BARYCENTER",0),tui=new SR(eG7,1),tua=new SR(eWe,2)}function enH(e,t){var n;if(n=e.gc(),t<0||t>n)throw p7(new Ii(t,n));return new IB(e,t)}function en$(e,t){var n;return M4(t,42)?e.c.Mc(t):(n=edG(e,t),ehx(e,t),n)}function enz(e,t,n){return eu2(e,t),er3(e,n),end(e,0),enh(e,1),els(e,!0),eli(e,!0),e}function enG(e,t){if(e<0)throw p7(new gL(t+" cannot be negative but was: "+e));return e}function enW(e,t){var n,r;for(n=0,r=e.gc();n0)?Pp(RJ(n.a,r-1),10):null}function ert(e,t){var n;n=e.k,e.k=t,(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new FX(e,1,2,n,e.k))}function ern(e,t){var n;n=e.f,e.f=t,(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new FX(e,1,8,n,e.f))}function err(e,t){var n;n=e.i,e.i=t,(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new FX(e,1,7,n,e.i))}function eri(e,t){var n;n=e.a,e.a=t,(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new FX(e,1,8,n,e.a))}function era(e,t){var n;n=e.b,e.b=t,(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new FX(e,1,0,n,e.b))}function ero(e,t){var n;n=e.b,e.b=t,(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new FX(e,1,0,n,e.b))}function ers(e,t){var n;n=e.c,e.c=t,(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new FX(e,1,1,n,e.c))}function eru(e,t){var n;n=e.c,e.c=t,(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new FX(e,1,1,n,e.c))}function erc(e,t){var n;n=e.c,e.c=t,(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new FX(e,1,4,n,e.c))}function erl(e,t){var n;n=e.d,e.d=t,(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new FX(e,1,1,n,e.d))}function erf(e,t){var n;n=e.D,e.D=t,(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new FX(e,1,2,n,e.D))}function erd(e,t){e.r>0&&e.c0&&0!=e.g&&erd(e.i,t/e.r*e.i.d))}function erh(e,t,n){var r;e.b=t,e.a=n,r=(512&e.a)==512?new mU:new u7,e.c=eLV(r,e.b,e.a)}function erp(e,t){return eLt(e.e,t)?(_4(),eec(t)?new RA(t,e):new xe(t,e)):new xr(t,e)}function erb(e,t){return yS(eid(e.a,t,jE(efn(eUJ,Ux(jE(efn(null==t?0:esj(t),eUQ)),15)))))}function erm(e,t,n){return Qz(e,new f8(t),new ea,new f9(n),eow(vx(e2L,1),eU4,132,0,[]))}function erg(e){var t,n;return 0>e?new _e:(t=e+1,n=new Zi(t,e),new L0(null,n))}function erv(e,t){var n;return Hj(),n=new w9(1),xd(e)?Ge(n,e,t):eS8(n.f,e,t),new f$(n)}function ery(e,t){var n,r;return(n=e.o+e.p)<(r=t.o+t.p)?-1:n==r?0:1}function erw(e){var t;return(t=e_k(e,(eBU(),tnc)),M4(t,160))?edo(Pp(t,160)):null}function er_(e){var t;return(t=esi(e=eB4.Math.max(e,2)),e>t)?(t<<=1)>0?t:eU2:t}function erE(e){switch(OZ(3!=e.e),e.e){case 2:return!1;case 0:return!0}return Zk(e)}function erS(e,t){var n;return!!M4(t,8)&&(n=Pp(t,8),e.a==n.a&&e.b==n.b)}function erk(e,t,n){var r,i,a;return a=t>>5,i=31&t,r=WM(Fy(e.n[n][a],jE(Fg(i,1))),3)}function erx(e,t){var n,r;for(r=t.vc().Kc();r.Ob();)evQ(e,(n=Pp(r.Pb(),42)).cd(),n.dd())}function erT(e,t){var n;n=new e0,Pp(t.b,65),Pp(t.b,65),Pp(t.b,65),ety(t.a,new N8(e,n,t))}function erM(e,t){var n;n=e.b,e.b=t,(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new FX(e,1,21,n,e.b))}function erO(e,t){var n;n=e.d,e.d=t,(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new FX(e,1,11,n,e.d))}function erA(e,t){var n;n=e.j,e.j=t,(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new FX(e,1,13,n,e.j))}function erL(e,t,n){var r,i,a;for(a=e.a.length-1,i=e.b,r=0;r>>31;0!=r&&(e[n]=r)}function eip(e,t){var n,r;for(Hj(),r=new p0,n=0;n0&&(this.g=this.ri(this.i+(this.i/8|0)+1),e.Qc(this.g))}function eiR(e,t){PJ.call(this,tgd,e,t),this.b=this,this.a=eAY(e.Tg(),ee2(this.e.Tg(),this.c))}function eij(e,t){var n,r;for(BJ(t),r=t.vc().Kc();r.Ob();)n=Pp(r.Pb(),42),e.zc(n.cd(),n.dd())}function eiF(e,t,n){var r;for(r=n.Kc();r.Ob();)if(!Vq(e,t,r.Pb()))return!1;return!0}function eiY(e,t,n,r,i){var a;return n&&(a=edv(t.Tg(),e.c),i=n.gh(t,-1-(-1==a?r:a),null,i)),i}function eiB(e,t,n,r,i){var a;return n&&(a=edv(t.Tg(),e.c),i=n.ih(t,-1-(-1==a?r:a),null,i)),i}function eiU(e){var t;if(-2==e.b){if(0==e.e)t=-1;else for(t=0;0==e.a[t];t++);e.b=t}return e.b}function eiH(e){switch(e.g){case 2:return eYu(),tbY;case 4:return eYu(),tby;default:return e}}function ei$(e){switch(e.g){case 1:return eYu(),tbj;case 3:return eYu(),tbw;default:return e}}function eiz(e){var t,n,r;return e.j==(eYu(),tbw)&&(t=eTt(e),n=Aa(t,tby),(r=Aa(t,tbY))||r&&n)}function eiG(e){var t,n;return t=Pp(e.e&&e.e(),9),n=Pp(YR(t,t.length),9),new I1(t,n,t.length)}function eiW(e,t){ewG(t,eG8,1),efJ(_p(new dp((__(),new U7(e,!1,!1,new tO))))),eEj(t)}function eiK(e,t){return OQ(),xd(e)?ZZ(e,Lq(t)):xf(e)?F_(e,LV(t)):xl(e)?Fw(e,LK(t)):e.wd(t)}function eiV(e,t){t.q=e,e.d=eB4.Math.max(e.d,t.r),e.b+=t.d+(0==e.a.c.length?0:e.c),P_(e.a,t)}function eiq(e,t){var n,r,i,a;return i=e.c,n=e.c+e.b,a=e.d,r=e.d+e.a,t.a>i&&t.aa&&t.b1||e.Ob())return++e.a,e.g=0,t=e.i,e.Ob(),t;throw p7(new bC)}function eaA(e){var t;return Ma(),En(tuT,e)||((t=new af).a=e,CM(tuT,e,t)),Pp(UA(tuT,e),635)}function eaL(e){var t,n,r,i;return r=0,(i=e)<0&&(i+=eHW,r=eH$),n=zy(i/eHG),Mk(t=zy(i-n*eHG),n,r)}function eaC(e){var t,n,r;for(r=0,n=new _t(e.a);n.aecd(e,0)&&(e=PN(e)),64-(0!=(t=jE(Fv(e,32)))?exv(t):exv(jE(e))+32)}function eaQ(e){var t;return t=Pp(e_k(e,(eBU(),tt1)),61),e.k==(eEn(),e9C)&&(t==(eYu(),tbY)||t==tby)}function ea1(e,t,n){var r,i;(i=Pp(e_k(e,(eBy(),taR)),74))&&(eu_(r=new mE,0,i),etH(r,n),er7(t,r))}function ea0(e,t,n){var r,i,a,o;r=(o=Bq(e)).d,i=o.c,a=e.n,t&&(a.a=a.a-r.b-i.a),n&&(a.b=a.b-r.d-i.b)}function ea2(e,t){var n,r;return(n=e.j)!=(r=t.j)?n.g-r.g:e.p==t.p?0:n==(eYu(),tbw)?e.p-t.p:t.p-e.p}function ea3(e){var t,n;for(eYp(e),n=new fz(e.d);n.a>22),i=e.h+t.h+(r>>22),Mk(n&eHH,r&eHH,i&eH$)}function eor(e,t){var n,r,i;return n=e.l-t.l,r=e.m-t.m+(n>>22),i=e.h-t.h+(r>>22),Mk(n&eHH,r&eHH,i&eH$)}function eoi(e){var t;return e<128?((t=(RH(),e0Y)[e])||(t=e0Y[e]=new fA(e)),t):new fA(e)}function eoa(e){var t;return M4(e,78)?e:((t=e&&e.__java$exception)||(t=new euq(e),by(t)),t)}function eoo(e){if(M4(e,186))return Pp(e,118);if(e)return null;throw p7(new gD(eXR))}function eos(e,t){if(null==t)return!1;for(;e.a!=e.b;)if(ecX(t,ecn(e)))return!0;return!1}function eou(e){return!!e.a.Ob()||e.a==e.d&&(e.a=new KU(e.e.f),e.a.Ob())}function eoc(e,t){var n,r;return 0!=(r=(n=t.Pc()).length)&&(PO(e.c,e.c.length,n),!0)}function eol(e,t,n){var r,i;for(i=t.vc().Kc();i.Ob();)r=Pp(i.Pb(),42),e.yc(r.cd(),r.dd(),n);return e}function eof(e,t){var n,r;for(r=new fz(e.b);r.a=0,"Negative initial capacity"),PG(t>=0,"Non-positive load factor"),Yy(this)}function eoV(e,t,n){return!(e>=128)&&(e<64?xg(WM(Fg(1,e),n),0):xg(WM(Fg(1,e-64),t),0))}function eoq(e,t){return!!e&&!!t&&e!=t&&0>efT(e.b.c,t.b.c+t.b.b)&&0>efT(t.b.c,e.b.c+e.b.b)}function eoZ(e){var t,n,r;return n=e.n,r=e.o,t=e.d,new Hr(n.a-t.b,n.b-t.d,r.a+(t.b+t.c),r.b+(t.d+t.a))}function eoX(e){var t,n,r,i;for(n=e.a,r=0,i=n.length;r(r=e.gc()))throw p7(new Ii(t,r));return e.hi()&&(n=zG(e,n)),e.Vh(t,n)}function eo2(e,t,n){return null==n?(e.q||(e.q=new p2),Z3(e.q,t)):(e.q||(e.q=new p2),Um(e.q,t,n)),e}function eo3(e,t,n){return null==n?(e.q||(e.q=new p2),Z3(e.q,t)):(e.q||(e.q=new p2),Um(e.q,t,n)),e}function eo4(e){var t,n;return n=new Z6,eaW(n,e),eo3(n,(erV(),e8j),e),t=new p2,eNY(e,n,t),eFS(e,n,t),n}function eo6(e){var t,n,r;for(eLG(),n=Je(e60,eUP,8,2,0,1),r=0,t=0;t<2;t++)r+=.5,n[t]=emh(r,e);return n}function eo5(e,t){var n,r,i,a;for(a=0,n=!1,r=e.a[t].length;a>=1);return t}function esa(e){var t,n;return 32==(n=exv(e.h))?32==(t=exv(e.m))?exv(e.l)+32:t+20-10:n-12}function eso(e){var t;return null==(t=e.a[e.b])?null:(Bc(e.a,e.b,null),e.b=e.b+1&e.a.length-1,t)}function ess(e){var t,n;return t=e.t-e.k[e.o.p]*e.d+e.j[e.o.p]>e.f,n=e.u+e.e[e.o.p]*e.d>e.f*e.s*e.d,t||n}function esu(e,t,n){var r,i;return r=new Js(t,n),i=new H,e.b=eLg(e,e.b,r,i),i.b||++e.c,e.b.b=!1,i.d}function esc(e,t,n){var r,i,a,o;for(o=ecZ(t,n),a=0,i=o.Kc();i.Ob();)r=Pp(i.Pb(),11),Um(e.c,r,ell(a++))}function esl(e){var t,n;for(n=new fz(e.a.b);n.an&&(n=e[t]);return n}function esg(e,t,n){var r;return r=new p0,eA0(e,t,r,(eYu(),tby),!0,!1),eA0(e,n,r,tbY,!1,!1),r}function esv(e,t,n){var r,i,a,o;return a=null,i=Kq(o=t,"labels"),a=(eT2((r=new kG(e,n)).a,r.b,i),i)}function esy(e,t,n,r){var i;return!(!(i=eMv(e,t,n,r))&&(i=elh(e,n,r)))||eR3(e,t,i)?i:null}function esw(e,t,n,r){var i;return!(!(i=eMy(e,t,n,r))&&(i=elp(e,n,r)))||eR3(e,t,i)?i:null}function es_(e,t){var n;for(n=0;n1||t>=0&&e.b<3)}function esP(e){var t,n,r;for(t=new mE,r=epL(e,0);r.b!=r.d.c;)n=Pp(Vv(r),8),Ls(t,0,new TS(n));return t}function esR(e){var t,n;for(n=new fz(e.a.b);n.ar?1:0}function esJ(e,t){return!!eO2(e,t)&&(exg(e.b,Pp(e_k(t,(eBU(),ttX)),21),t),P7(e.a,t),!0)}function esQ(e){var t,n;(t=Pp(e_k(e,(eBU(),tng)),10))&&(QA((n=t.c).a,t),0==n.a.c.length&&QA(Bq(t).b,n))}function es1(e){return e2M?Je(e2k,e$_,572,0,0,1):Pp(epg(e.a,Je(e2k,e$_,572,e.a.c.length,0,1)),842)}function es0(e,t,n,r){return U_(),new gt(eow(vx(e1$,1),eUK,42,0,[(eb2(e,t),new wD(e,t)),(eb2(n,r),new wD(n,r))]))}function es2(e,t,n){var r,i;return enz(i=r=new mD,t,n),JL((e.q||(e.q=new FQ(tgi,e,11,10)),e.q),i),i}function es3(e){var t,n,r,i;for(t=0,r=Je(e17,eUP,2,n=(i=Eo(tmx,e)).length,6,1);t=e.b.c.length)&&(es5(e,2*t+1),(n=2*t+2)=0&&e[r]===t[r];r--);return r<0?0:Ei(WM(e[r],eH9),WM(t[r],eH9))?-1:1}function es7(e,t){var n,r;for(r=epL(e,0);r.b!=r.d.c;)(n=Pp(Vv(r),214)).e.length>0&&(t.td(n),n.i&&elk(n))}function eue(e,t){var n,r;return r=Pp(eaS(e.a,4),126),n=Je(e5N,eJM,415,t,0,1),null!=r&&ePD(r,0,n,0,r.length),n}function eut(e,t){var n;return n=new eCg((256&e.f)!=0,e.i,e.a,e.d,(16&e.f)!=0,e.j,e.g,t),null!=e.e||(n.c=e),n}function eun(e,t){var n,r;for(r=e.Zb().Cc().Kc();r.Ob();)if((n=Pp(r.Pb(),14)).Hc(t))return!0;return!1}function eur(e,t,n,r,i){var a,o;for(o=n;o<=i;o++)for(a=t;a<=r;a++)if(emy(e,a,o))return!0;return!1}function eui(e,t,n){var r,i,a,o;for(BJ(n),o=!1,a=e.Zc(t),i=n.Kc();i.Ob();)r=i.Pb(),a.Rb(r),o=!0;return o}function eua(e,t){var n;return e===t||!!M4(t,83)&&(n=Pp(t,83),eEB(Fc(e),n.vc()))}function euo(e,t,n){var r,i;for(i=n.Kc();i.Ob();)if(r=Pp(i.Pb(),42),e.re(t,r.dd()))return!0;return!1}function eus(e,t,n){return e.d[t.p][n.p]||(ebp(e,t,n),e.d[t.p][n.p]=!0,e.d[n.p][t.p]=!0),e.a[t.p][n.p]}function euu(e,t){if(!e.ai()&&null==t)throw p7(new gL("The 'no null' constraint is violated"));return t}function euc(e,t){null==e.D&&null!=e.B&&(e.D=e.B,e.B=null),erf(e,null==t?null:(BJ(t),t)),e.C&&e.yk(null)}function eul(e,t){var n;return!!(e&&e!=t&&Ln(t,(eBU(),tt9)))&&(n=Pp(e_k(t,(eBU(),tt9)),10))!=e}function euf(e){switch(e.i){case 2:return!0;case 1:return!1;case -1:++e.c;default:return e.pl()}}function eud(e){switch(e.i){case -2:return!0;case -1:return!1;case 1:--e.c;default:return e.ql()}}function euh(e){zL.call(this,"The given string does not match the expected format for individual spacings.",e)}function eup(){eup=A,tmr=new kN("ELK",0),tmi=new kN("JSON",1),tmn=new kN("DOT",2),tma=new kN("SVG",3)}function eub(){eub=A,tc6=new S3(eGR,0),tc5=new S3("RADIAL_COMPACTION",1),tc8=new S3("WEDGE_COMPACTION",2)}function eum(){eum=A,e2B=new Ed("CONCURRENT",0),e2U=new Ed("IDENTITY_FINISH",1),e2H=new Ed("UNORDERED",2)}function eug(){eug=A,e5q=(_y(),e5G),e5V=new xX(ezj,e5q),e5K=new pO(ezF),e5Z=new pO(ezY),e5X=new pO(ezB)}function euv(){euv=A,e72=new n1,e73=new n0,e70=new n2,e71=new n3,e7J=(BJ(e7Q=new n4),new P)}function euy(){euy=A,tsz=new SD("CONSERVATIVE",0),tsG=new SD("CONSERVATIVE_SOFT",1),tsW=new SD("SLOPPY",2)}function euw(){euw=A,tpH=new T3(15),tpU=new T2((eBB(),thN),tpH),tp$=th3,tpj=td3,tpF=thx,tpB=thO,tpY=thM}function eu_(e,t,n){var r,i,a;for(r=new _n,a=epL(n,0);a.b!=a.d.c;)i=Pp(Vv(a),8),P7(r,new TS(i));eui(e,t,r)}function euE(e){var t,n,r;for(t=0,r=Je(e60,eUP,8,e.b,0,1),n=epL(e,0);n.b!=n.d.c;)r[t++]=Pp(Vv(n),8);return r}function euS(e){var t;return 0!=(t=(e.a||(e.a=new FQ(tgn,e,9,5)),e.a)).i?_K(Pp(etj(t,0),678)):null}function euk(e,t){var n;return(n=eft(e,t),Ei(WA(e,t),0)|xm(WA(e,n),0))?n:eft(eUY,WA(Fy(n,63),1))}function eux(e,t){var n;n=null!=epB((edk(),to3))&&null!=t.wg()?gP(LV(t.wg()))/gP(LV(epB(to3))):1,Um(e.b,t,n)}function euT(e,t){var n,r;return(n=Pp(e.d.Bc(t),14))?((r=e.e.hc()).Gc(n),e.e.d-=n.gc(),n.$b(),r):null}function euM(e,t){var n,r;if(0!=(r=e.c[t]))for(e.c[t]=0,e.d-=r,n=t+1;n0)return FP(t-1,e.a.c.length),ZV(e.a,t-1);throw p7(new bL)}function euA(e,t,n){if(t<0)throw p7(new gE(eq1+t));tt)throw p7(new gL(e$x+e+e$T+t));if(e<0||t>n)throw p7(new va(e$x+e+e$M+t+e$m+n))}function euC(e){if(!e.a||(8&e.a.i)==0)throw p7(new gC("Enumeration class expected for layout option "+e.f))}function euI(e){var t;++e.j,0==e.i?e.g=null:e.ieVq?e-n>eVq:n-e>eVq)}function euG(e,t){return!e||t&&!e.j||M4(e,124)&&0==Pp(e,124).a.b?0:e.Re()}function euW(e,t){return!e||t&&!e.k||M4(e,124)&&0==Pp(e,124).a.a?0:e.Se()}function euK(e){return(eLQ(),e<0)?-1!=e?new ep4(-1,-e):e03:e<=10?e06[zy(e)]:new ep4(1,e)}function euV(e){throw eoW(),p7(new gs("Unexpected typeof result '"+e+"'; please report this bug to the GWT team"))}function euq(e){g0(),MV(this),HD(this),this.e=e,eA8(this,e),this.g=null==e?eUg:efF(e),this.a="",this.b=e,this.a=""}function euZ(){this.a=new a4,this.f=new hW(this),this.b=new hK(this),this.i=new hV(this),this.e=new hq(this)}function euX(){m5.call(this,new Ju(ee0(16))),enG(2,eUN),this.b=2,this.a=new Uc(null,null,0,null),bp(this.a,this.a)}function euJ(){euJ=A,tsn=new SS("DUMMY_NODE_OVER",0),tsr=new SS("DUMMY_NODE_UNDER",1),tsi=new SS("EQUAL",2)}function euQ(){euQ=A,e9u=zD(eow(vx(e66,1),eU4,103,0,[(ec3(),tpm),tpg])),e9c=zD(eow(vx(e66,1),eU4,103,0,[tpy,tpb]))}function eu1(e){return(eYu(),tbC).Hc(e.j)?gP(LV(e_k(e,(eBU(),tnM)))):esp(eow(vx(e60,1),eUP,8,0,[e.i.n,e.n,e.a])).b}function eu0(e){var t,n,r,i;for(n=(r=e.b.a).a.ec().Kc();n.Ob();)t=Pp(n.Pb(),561),i=new eMq(t,e.e,e.f),P_(e.g,i)}function eu2(e,t){var n,r,i;r=e.nk(t,null),i=null,t&&(i=(yO(),n=new p6),etV(i,e.r)),(r=ew3(e,i,r))&&r.Fi()}function eu3(e,t){var n,r;for(r=0!=eMU(e.d,1),n=!0;n;)n=!1,n=t.c.Tf(t.e,r),n|=eAb(e,t,r,!1),r=!r;er0(e)}function eu4(e,t){var n,r,i;return r=!1,n=t.q.d,t.di&&(eyC(t.q,i),r=n!=t.q.d)),r}function eu6(e,t){var n,r,i,a,o,s,u,c;return u=t.i,c=t.j,i=(r=e.f).i,a=r.j,o=u-i,s=c-a,n=eB4.Math.sqrt(o*o+s*s)}function eu5(e,t){var n,r;return(r=ehO(e))||(tmT||(tmT=new sh),n=(eRe(),eSR(t)),JL((r=new pq(n)).Vk(),e)),r}function eu8(e,t){var n,r;return(n=Pp(e.c.Bc(t),14))?((r=e.hc()).Gc(n),e.d-=n.gc(),n.$b(),e.mc(r)):e.jc()}function eu9(e,t){var n;for(n=0;n=e.c.b:e.a<=e.c.b))throw p7(new bC);return t=e.a,e.a+=e.c.c,++e.b,ell(t)}function eci(e){var t;return t=new ete(e),Kv(e.a,e9w,new g$(eow(vx(e4M,1),eUp,369,0,[t]))),t.d&&P_(t.f,t.d),t.f}function eca(e){var t;return eaW(t=new MA(e.a),e),eo3(t,(eBU(),tnc),e),t.o.a=e.g,t.o.b=e.f,t.n.a=e.i,t.n.b=e.j,t}function eco(e,t,n,r){var i,a;for(a=e.Kc();a.Ob();)(i=Pp(a.Pb(),70)).n.a=t.a+(r.a-i.o.a)/2,i.n.b=t.b,t.b+=i.o.b+n}function ecs(e,t,n){var r,i;for(i=t.a.a.ec().Kc();i.Ob();)if($o(e,r=Pp(i.Pb(),57),n))return!0;return!1}function ecu(e){var t,n;for(n=new fz(e.r);n.a=0?t:-t;r>0;)r%2==0?(n*=n,r=r/2|0):(i*=n,r-=1);return t<0?1/i:i}function ecw(e,t){var n,r,i;for(i=1,n=e,r=t>=0?t:-t;r>0;)r%2==0?(n*=n,r=r/2|0):(i*=n,r-=1);return t<0?1/i:i}function ec_(e){var t,n,r,i;if(null!=e){for(n=0;n0&&esJ(n=Pp(RJ(e.a,e.a.c.length-1),570),t))&&P_(e.a,new Zn(t))}function ecP(e){var t,n;Dj(),t=e.d.c-e.e.c,ety((n=Pp(e.g,145)).b,new d7(t)),ety(n.c,new he(t)),qX(n.i,new ht(t))}function ecR(e){var t;return t=new vc,t.a+="VerticalSegment ",xT(t,e.e),t.a+=" ",xM(t,OU(new ve,new fz(e.k))),t.a}function ecj(e){var t;return(t=Pp(eef(e.c.c,""),229))||(t=new GM(v3(v2(new of,""),"Other")),epy(e.c.c,"",t)),t}function ecF(e){var t;return(64&e.Db)!=0?eMT(e):(t=new O1(eMT(e)),t.a+=" (name: ",xk(t,e.zb),t.a+=")",t.a)}function ecY(e,t,n){var r,i;return i=e.sb,e.sb=t,(4&e.Db)!=0&&(1&e.Db)==0&&(r=new FX(e,1,4,i,t),n?n.Ei(r):n=r),n}function ecB(e,t){var n,r,i;for(n=0,i=efr(e,t).Kc();i.Ob();)n+=null!=e_k(r=Pp(i.Pb(),11),(eBU(),tng))?1:0;return n}function ecU(e,t,n){var r,i,a;for(r=0,a=epL(e,0);a.b!=a.d.c&&!((i=gP(LV(Vv(a))))>n);)i>=t&&++r;return r}function ecH(e,t,n){var r,i;return r=new Q$(e.e,3,13,null,(i=t.c)||(eBK(),tgA),ebv(e,t),!1),n?n.Ei(r):n=r,n}function ec$(e,t,n){var r,i;return r=new Q$(e.e,4,13,(i=t.c)||(eBK(),tgA),null,ebv(e,t),!1),n?n.Ei(r):n=r,n}function ecz(e,t,n){var r,i;return i=e.r,e.r=t,(4&e.Db)!=0&&(1&e.Db)==0&&(r=new FX(e,1,8,i,e.r),n?n.Ei(r):n=r),n}function ecG(e,t){var n,r;return(r=(n=Pp(t,676)).vk())||n.wk(r=M4(t,88)?new k8(e,Pp(t,26)):new Ke(e,Pp(t,148))),r}function ecW(e,t,n){var r;e.qi(e.i+1),r=e.oi(t,n),t!=e.i&&ePD(e.g,t,e.g,t+1,e.i-t),Bc(e.g,t,r),++e.i,e.bi(t,n),e.ci()}function ecK(e,t){var n;return t.a&&(n=t.a.a.length,e.a?xM(e.a,e.b):e.a=new O0(e.d),Ka(e.a,t.a,t.d.length,n)),e}function ecV(e,t){var n,r,i,a;if(t.vi(e.a),null!=(a=Pp(eaS(e.a,8),1936)))for(r=0,i=(n=a).length;rn)throw p7(new gE(e$x+e+e$M+t+", size: "+n));if(e>t)throw p7(new gL(e$x+e+e$T+t))}function ec5(e,t,n){if(t<0)ekN(e,n);else{if(!n.Ij())throw p7(new gL(eZV+n.ne()+eZq));Pp(n,66).Nj().Vj(e,e.yh(),t)}}function ec8(e,t,n,r,i,a,o,s){var u;for(u=n;a=r||t=s.ue(e[t],e[u])?Bc(i,a++,e[t++]):Bc(i,a++,e[u++])}function ec9(e,t,n,r,i,a){this.e=new p0,this.f=(enY(),tsP),P_(this.e,e),this.d=t,this.a=n,this.b=r,this.f=i,this.c=a}function ec7(e,t){var n,r;for(r=new Ow(e);r.e!=r.i.gc();)if(n=Pp(epH(r),26),xc(t)===xc(n))return!0;return!1}function ele(e){var t,n,r,i;for(eBW(),n=epE(),r=0,i=n.length;r=65&&e<=70?e-65+10:e>=97&&e<=102?e-97+10:e>=48&&e<=57?e-48:0}function eln(e){var t;return(64&e.Db)!=0?eMT(e):(t=new O1(eMT(e)),t.a+=" (source: ",xk(t,e.d),t.a+=")",t.a)}function elr(e,t,n){var r,i;return i=e.a,e.a=t,(4&e.Db)!=0&&(1&e.Db)==0&&(r=new FX(e,1,5,i,e.a),n?ey7(n,r):n=r),n}function eli(e,t){var n;n=(256&e.Bb)!=0,t?e.Bb|=256:e.Bb&=-257,(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new ZB(e,1,2,n,t))}function ela(e,t){var n;n=(256&e.Bb)!=0,t?e.Bb|=256:e.Bb&=-257,(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new ZB(e,1,8,n,t))}function elo(e,t){var n;n=(256&e.Bb)!=0,t?e.Bb|=256:e.Bb&=-257,(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new ZB(e,1,8,n,t))}function els(e,t){var n;n=(512&e.Bb)!=0,t?e.Bb|=512:e.Bb&=-513,(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new ZB(e,1,3,n,t))}function elu(e,t){var n;n=(512&e.Bb)!=0,t?e.Bb|=512:e.Bb&=-513,(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new ZB(e,1,9,n,t))}function elc(e,t){var n;return -1==e.b&&e.a&&(n=e.a.Gj(),e.b=n?e.c.Xg(e.a.aj(),n):edv(e.c.Tg(),e.a)),e.c.Og(e.b,t)}function ell(e){var t,n;return e>-129&&e<128?(t=e+128,(n=(Rv(),e0B)[t])||(n=e0B[t]=new fC(e)),n):new fC(e)}function elf(e){var t,n;return e>-129&&e<128?(t=e+128,(n=(RU(),e0K)[t])||(n=e0K[t]=new fD(e)),n):new fD(e)}function eld(e){var t,n;return(t=e.k)==(eEn(),e9C)&&((n=Pp(e_k(e,(eBU(),tt1)),61))==(eYu(),tbw)||n==tbj)}function elh(e,t,n){var r,i,a;return(a=i=eMC(e.b,t))&&(r=Pp(eP8(Qq(e,a),""),26))?eMv(e,r,t,n):null}function elp(e,t,n){var r,i,a;return(a=i=eMC(e.b,t))&&(r=Pp(eP8(Qq(e,a),""),26))?eMy(e,r,t,n):null}function elb(e,t){var n,r;for(r=new Ow(e);r.e!=r.i.gc();)if(n=Pp(epH(r),138),xc(t)===xc(n))return!0;return!1}function elm(e,t,n){var r;if(t>(r=e.gc()))throw p7(new Ii(t,r));if(e.hi()&&e.Hc(n))throw p7(new gL(eXB));e.Xh(t,n)}function elg(e,t){var n;if(null==(n=etJ(e.i,t)))throw p7(new gK("Node did not exist in input."));return eiX(t,n),null}function elv(e,t){var n;if(n=eAh(e,t),M4(n,322))return Pp(n,34);throw p7(new gL(eZV+t+"' is not a valid attribute"))}function ely(e,t,n){var r,i;for(r=0,i=M4(t,99)&&(Pp(t,18).Bb&eH3)!=0?new x1(t,e):new eaN(t,e);rt?1:e==t?0==e?elN(1/e,1/t):0:isNaN(e)?isNaN(t)?0:1:-1}function elP(e,t){ewG(t,"Sort end labels",1),_r(UJ(eeh(new R1(null,new Gq(e.b,16)),new t2),new t3),new t4),eEj(t)}function elR(e,t,n){var r,i;return e.ej()?(i=e.fj(),r=exm(e,t,n),e.$i(e.Zi(7,ell(n),r,t,i)),r):exm(e,t,n)}function elj(e,t){var n,r,i;null==e.d?(++e.e,--e.f):(i=t.cd(),r=((n=t.Sh())&eUu)%e.d.length,Xc(e,r,eML(e,r,n,i)))}function elF(e,t){var n;n=(e.Bb&eXt)!=0,t?e.Bb|=eXt:e.Bb&=-1025,(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new ZB(e,1,10,n,t))}function elY(e,t){var n;n=(e.Bb&eH0)!=0,t?e.Bb|=eH0:e.Bb&=-4097,(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new ZB(e,1,12,n,t))}function elB(e,t){var n;n=(e.Bb&eJV)!=0,t?e.Bb|=eJV:e.Bb&=-8193,(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new ZB(e,1,15,n,t))}function elU(e,t){var n;n=(e.Bb&eJq)!=0,t?e.Bb|=eJq:e.Bb&=-2049,(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new ZB(e,1,11,n,t))}function elH(e,t){var n;return 0!=(n=elN(e.b.c,t.b.c))||0!=(n=elN(e.a.a,t.a.a))?n:elN(e.a.b,t.a.b)}function el$(e,t){var n;if(null==(n=Bp(e.k,t)))throw p7(new gK("Port did not exist in input."));return eiX(t,n),null}function elz(e){var t,n;for(n=eM$(etP(e)).Kc();n.Ob();)if(eDM(e,t=Lq(n.Pb())))return qb((_X(),tgh),t);return null}function elG(e,t){var n,r,i,a,o;for(i=0,o=eAY(e.e.Tg(),t),a=0,n=Pp(e.g,119);i>10)+eH4&eHd,t[1]=(1023&e)+56320&eHd,ehv(t,0,t.length)}function el0(e){var t,n;return(n=Pp(e_k(e,(eBy(),tal)),103))==(ec3(),tpv)?(t=gP(LV(e_k(e,tiX))))>=1?tpg:tpb:n}function el2(e){switch(Pp(e_k(e,(eBy(),tag)),218).g){case 1:return new ig;case 3:return new iE;default:return new im}}function el3(e){if(e.c)el3(e.c);else if(e.d)throw p7(new gC("Stream already terminated, can't be modified or used"))}function el4(e){var t;return(64&e.Db)!=0?eMT(e):(t=new O1(eMT(e)),t.a+=" (identifier: ",xk(t,e.k),t.a+=")",t.a)}function el6(e,t,n){var r,i;return r=(yT(),i=new oJ),ent(r,t),enn(r,n),e&&JL((e.a||(e.a=new O_(e5h,e,5)),e.a),r),r}function el5(e,t,n,r){var i,a;return BJ(r),BJ(n),null==(a=null==(i=e.xc(t))?n:_i(Pp(i,15),Pp(n,14)))?e.Bc(t):e.zc(t,a),a}function el8(e){var t,n,r,i;return n=(t=Pp(yw((i=(r=e.gm).f)==e1G?r:i),9),new I1(t,Pp(CY(t,t.length),9),0)),erC(n,e),n}function el9(e,t,n){var r,i;for(i=e.a.ec().Kc();i.Ob();)if(r=Pp(i.Pb(),10),eot(n,Pp(RJ(t,r.p),14)))return r;return null}function el7(e,t,n){var r;try{esE(e,t,n)}catch(i){if(i=eoa(i),M4(i,597))throw r=i,p7(new Zt(r));throw p7(i)}return t}function efe(e,t){var n;return Ts(e)&&Ts(t)&&eHV<(n=e-t)&&n>1,e.k=n-1>>1}function efo(){var e,t,n;ewP(),n=e2w+++Date.now(),e=zy(eB4.Math.floor(n*e$h))&e$b,t=zy(n-e*e$p),this.a=1502^e,this.b=t^e$d}function efs(e){var t,n,r;for(t=new p0,r=new fz(e.j);r.a34028234663852886e22?eHQ:t<-34028234663852886e22?eH1:t}function efp(e){return e-=e>>1&1431655765,e=((e=(e>>2&858993459)+(858993459&e))>>4)+e&252645135,e+=e>>8,63&(e+=e>>16)}function efb(e){var t,n,r,i;for(t=new CS(e.Hd().gc()),i=0,r=JJ(e.Hd().Kc());r.Ob();)Gr(t,n=r.Pb(),ell(i++));return eEA(t.a)}function efm(e,t){var n,r,i;for(i=new p2,r=t.vc().Kc();r.Ob();)Um(i,(n=Pp(r.Pb(),42)).cd(),eab(e,Pp(n.dd(),15)));return i}function efg(e,t){0==e.n.c.length&&P_(e.n,new zO(e.s,e.t,e.i)),P_(e.b,t),eml(Pp(RJ(e.n,e.n.c.length-1),211),t),eNk(e,t)}function efv(e){return(e.c!=e.b.b||e.i!=e.g.b)&&(e.a.c=Je(e1R,eUp,1,0,5,1),eoc(e.a,e.b),eoc(e.a,e.g),e.c=e.b.b,e.i=e.g.b),e.a}function efy(e,t){var n,r,i;for(i=0,r=Pp(t.Kb(e),20).Kc();r.Ob();)gN(LK(e_k(n=Pp(r.Pb(),17),(eBU(),tnE))))||++i;return i}function efw(e,t){var n,r,i;i=gP(LV(ed$(r=KT(t),(eBy(),toO)))),ev_(t,n=eB4.Math.max(0,i/2-.5),1),P_(e,new E8(t,n))}function ef_(){ef_=A,tnj=new ST(eGR,0),tnD=new ST("FIRST",1),tnN=new ST(eWi,2),tnP=new ST("LAST",3),tnR=new ST(eWa,4)}function efE(){efE=A,tpO=new kb(ezo,0),tpT=new kb("POLYLINE",1),tpx=new kb("ORTHOGONAL",2),tpM=new kb("SPLINES",3)}function efS(){efS=A,tlP=new S5("ASPECT_RATIO_DRIVEN",0),tlR=new S5("MAX_SCALE_DRIVEN",1),tlN=new S5("AREA_DRIVEN",2)}function efk(){efk=A,tff=new S9("P1_STRUCTURE",0),tfd=new S9("P2_PROCESSING_ORDER",1),tfh=new S9("P3_EXECUTION",2)}function efx(){efx=A,tc1=new S0("OVERLAP_REMOVAL",0),tcJ=new S0("COMPACTION",1),tcQ=new S0("GRAPH_SIZE_CALCULATION",2)}function efT(e,t){return Mc(),enj(eHe),eB4.Math.abs(e-t)<=eHe||e==t||isNaN(e)&&isNaN(t)?0:et?1:Te(isNaN(e),isNaN(t))}function efM(e,t){var n,r;for(n=epL(e,0);n.b!=n.d.c;){if((r=gR(LV(Vv(n))))==t)return;if(r>t){Ks(n);break}}YU(n,t)}function efO(e,t){var n,r,i,a,o;if(n=t.f,epy(e.c.d,n,t),null!=t.g)for(i=t.g,a=0,o=i.length;at&&r.ue(e[a-1],e[a])>0;--a)o=e[a],Bc(e,a,e[a-1]),Bc(e,a-1,o)}function efL(e,t,n,r){if(t<0)eOh(e,n,r);else{if(!n.Ij())throw p7(new gL(eZV+n.ne()+eZq));Pp(n,66).Nj().Tj(e,e.yh(),t,r)}}function efC(e,t){if(t==e.d)return e.e;if(t==e.e)return e.d;throw p7(new gL("Node "+t+" not part of edge "+e))}function efI(e,t){switch(t.g){case 2:return e.b;case 1:return e.c;case 4:return e.d;case 3:return e.a;default:return!1}}function efD(e,t){switch(t.g){case 2:return e.b;case 1:return e.c;case 4:return e.d;case 3:return e.a;default:return!1}}function efN(e,t,n,r){switch(t){case 3:return e.f;case 4:return e.g;case 5:return e.i;case 6:return e.j}return ec2(e,t,n,r)}function efP(e){return e.k==(eEn(),e9N)&&q3(new R1(null,new YI(new Fa(OH(efc(e).a.Kc(),new c)))),new it)}function efR(e){return null==e.e?e:(e.c||(e.c=new eCg((256&e.f)!=0,e.i,e.a,e.d,(16&e.f)!=0,e.j,e.g,null)),e.c)}function efj(e,t){return e.h==eHz&&0==e.m&&0==e.l?(t&&(e0A=Mk(0,0,0)),Tr((Q2(),e0I))):(t&&(e0A=Mk(e.l,e.m,e.h)),Mk(0,0,0))}function efF(e){var t;return Array.isArray(e)&&e.im===O?yx(esF(e))+"@"+(t=esj(e)>>>0).toString(16):e.toString()}function efY(e){var t;this.a=(t=Pp(e.e&&e.e(),9),new I1(t,Pp(CY(t,t.length),9),0)),this.b=Je(e1R,eUp,1,this.a.a.length,5,1)}function efB(e){var t,n,r;for(this.a=new Tw,r=new fz(e);r.a0&&(GV(t-1,e.length),58==e.charCodeAt(t-1))&&!efz(e,tm1,tm0)}function efz(e,t,n){var r,i;for(r=0,i=e.length;r=i)return t.c+n;return t.c+t.b.gc()}function efK(e,t){var n,r,i,a;for(LF(),r=J8(e),i=t,Qe(r,0,r.length,i),n=0;n0&&(r+=i,++n);return n>1&&(r+=e.d*(n-1)),r}function efq(e){var t,n,r;for(r=new vs,r.a+="[",t=0,n=e.gc();t0&&this.b>0&&ji(this.c,this.b,this.a)}function ef4(e){edk(),this.c=ZW(eow(vx(e6Z,1),eUp,831,0,[to2])),this.b=new p2,this.a=e,Um(this.b,to3,1),ety(to4,new h4(this))}function ef6(e,t){var n;return e.d?F8(e.b,t)?Pp(Bp(e.b,t),51):(n=t.Kf(),Um(e.b,t,n),n):t.Kf()}function ef5(e,t){var n;return xc(e)===xc(t)||!!M4(t,91)&&(n=Pp(t,91),e.e==n.e&&e.d==n.d&&qv(e,n.a))}function ef8(e){switch(eYu(),e.g){case 4:return tbw;case 1:return tby;case 3:return tbj;case 2:return tbY;default:return tbF}}function ef9(e,t){switch(t){case 3:return 0!=e.f;case 4:return 0!=e.g;case 5:return 0!=e.i;case 6:return 0!=e.j}return eaT(e,t)}function ef7(e){switch(e.g){case 0:return new aV;case 1:return new aq;default:throw p7(new gL(eqa+(null!=e.f?e.f:""+e.g)))}}function ede(e){switch(e.g){case 0:return new aK;case 1:return new aZ;default:throw p7(new gL(eWt+(null!=e.f?e.f:""+e.g)))}}function edt(e){switch(e.g){case 0:return new mZ;case 1:return new m_;default:throw p7(new gL(eqN+(null!=e.f?e.f:""+e.g)))}}function edn(e){switch(e.g){case 1:return new aU;case 2:return new LY;default:throw p7(new gL(eqa+(null!=e.f?e.f:""+e.g)))}}function edr(e){var t,n;if(e.b)return e.b;for(n=e2M?null:e.d;n;){if(t=e2M?null:n.b)return t;n=e2M?null:n.d}return _g(),e2F}function edi(e){var t,n,r;return 0==e.e?0:(t=e.d<<5,n=e.a[e.d-1],e.e<0&&(r=eiU(e))==e.d-1&&(--n,n|=0),t-=exv(n))}function eda(e){var t,n,r;return e>5,t=31&e,(r=Je(ty_,eHT,25,n+1,15,1))[n]=1<3;)i*=10,--a;e=(e+(i>>1))/i|0}return r.i=e,!0}function edl(e){return euQ(),OQ(),!!(efD(Pp(e.a,81).j,Pp(e.b,103))||0!=Pp(e.a,81).d.e&&efD(Pp(e.a,81).j,Pp(e.b,103)))}function edf(e){J1(),Pp(e.We((eBB(),thL)),174).Hc((eI3(),tb4))&&(Pp(e.We(thJ),174).Fc((ekU(),tbg)),Pp(e.We(thL),174).Mc(tb4))}function edd(e,t){var n,r;if(!t)return!1;for(n=0;n=0;--r)for(i=0,t=n[r];i>1,this.k=t-1>>1}function edC(e,t){ewG(t,"End label post-processing",1),_r(UJ(eeh(new R1(null,new Gq(e.b,16)),new tV),new tq),new tZ),eEj(t)}function edI(e,t,n){var r,i;return r=gP(e.p[t.i.p])+gP(e.d[t.i.p])+t.n.b+t.a.b,(i=gP(e.p[n.i.p])+gP(e.d[n.i.p])+n.n.b+n.a.b)-r}function edD(e,t,n){var r,i;for(i=0,r=WM(n,eH9);0!=ecd(r,0)&&i0&&(GV(0,t.length),43==t.charCodeAt(0))?t.substr(1):t)}function edR(e){var t;return null==e?null:new TU((t=ePh(e,!0)).length>0&&(GV(0,t.length),43==t.charCodeAt(0))?t.substr(1):t)}function edj(e,t){var n;return e.i>0&&(t.lengthe.i&&Bc(t,e.i,null),t}function edF(e,t,n){var r,i,a;return e.ej()?(r=e.i,a=e.fj(),ecW(e,r,t),i=e.Zi(3,null,t,r,a),n?n.Ei(i):n=i):ecW(e,e.i,t),n}function edY(e,t,n){var r,i;return r=new Q$(e.e,4,10,M4(i=t.c,88)?Pp(i,26):(eBK(),tgI),null,ebv(e,t),!1),n?n.Ei(r):n=r,n}function edB(e,t,n){var r,i;return r=new Q$(e.e,3,10,null,M4(i=t.c,88)?Pp(i,26):(eBK(),tgI),ebv(e,t),!1),n?n.Ei(r):n=r,n}function edU(e){var t;return Cn(),t=new TS(Pp(e.e.We((eBB(),thO)),8)),e.B.Hc((eI3(),tbQ))&&(t.a<=0&&(t.a=20),t.b<=0&&(t.b=20)),t}function edH(e){var t;return ebk(),t=(e.q?e.q:(Hj(),Hj(),e2i))._b((eBy(),ta0))?Pp(e_k(e,ta0),197):Pp(e_k(Bq(e),ta2),197)}function ed$(e,t){var n,r;return r=null,Ln(e,(eBy(),toD))&&(n=Pp(e_k(e,toD),94)).Xe(t)&&(r=n.We(t)),null==r&&(r=e_k(Bq(e),t)),r}function edz(e,t){var n,r,i;return!!M4(t,42)&&(r=(n=Pp(t,42)).cd(),i=ecA(e.Rc(),r),BG(i,n.dd())&&(null!=i||e.Rc()._b(r)))}function edG(e,t){var n,r,i;return e.f>0&&(e.qj(),i=((r=null==t?0:esj(t))&eUu)%e.d.length,-1!=(n=eML(e,i,r,t)))}function edW(e,t){var n,r,i;return e.f>0&&(e.qj(),i=((r=null==t?0:esj(t))&eUu)%e.d.length,n=exx(e,i,r,t))?n.dd():null}function edK(e,t){var n,r,i,a;for(i=0,a=eAY(e.e.Tg(),t),n=Pp(e.g,119);i1?WO(Fg(t.a[1],32),WM(t.a[0],eH9)):WM(t.a[0],eH9),Kj(efn(t.e,n))))}function edQ(e,t){var n;return Ts(e)&&Ts(t)&&eHV<(n=e%t)&&n>5,t&=31,r=Je(ty_,eHT,25,i=e.d+n+(0==t?0:1),15,1),ewZ(r,e.a,n,t),a=new F7(e.e,i,r),Ku(a),a}function eht(e,t,n){var r,i;r=Pp(zg(tv4,t),117),i=Pp(zg(tv6,t),117),n?(Ge(tv4,e,r),Ge(tv6,e,i)):(Ge(tv6,e,r),Ge(tv4,e,i))}function ehn(e,t,n){var r,i,a;for(i=null,a=e.b;a;){if(r=e.a.ue(t,a.d),n&&0==r)return a;r>=0?a=a.a[1]:(i=a,a=a.a[0])}return i}function ehr(e,t,n){var r,i,a;for(i=null,a=e.b;a;){if(r=e.a.ue(t,a.d),n&&0==r)return a;r<=0?a=a.a[0]:(i=a,a=a.a[1])}return i}function ehi(e,t,n,r){var i,a,o;return i=!1,ejB(e.f,n,r)&&(epn(e.f,e.a[t][n],e.a[t][r]),o=(a=e.a[t])[r],a[r]=a[n],a[n]=o,i=!0),i}function eha(e,t,n,r,i){var a,o,s;for(o=i;t.b!=t.c;)a=Pp(Yn(t),10),s=Pp(efr(a,r).Xb(0),11),e.d[s.p]=o++,n.c[n.c.length]=s;return o}function eho(e,t,n){var r,i,a,o,s;return o=e.k,s=t.k,i=LV(ed$(e,r=n[o.g][s.g])),a=LV(ed$(t,r)),eB4.Math.max((BJ(i),i),(BJ(a),a))}function ehs(e,t,n){var r,i,a,o;for(r=n/e.c.length,i=0,o=new fz(e);o.a2e3&&(e1X=e,e1J=eB4.setTimeout(wf,10)),0==e1Z++&&(eeA((g1(),e0_)),!0)}function ehf(e,t){var n,r,i;for(r=new Fa(OH(efc(e).a.Kc(),new c));eTk(r);)if((i=(n=Pp(ZC(r),17)).d.i).c==t)return!1;return!0}function ehd(e,t){var n,r;if(M4(t,245)){r=Pp(t,245);try{return n=e.vd(r),0==n}catch(i){if(i=eoa(i),!M4(i,205))throw p7(i)}}return!1}function ehh(){return Error.stackTraceLimit>0?(eB4.Error.stackTraceLimit=Error.stackTraceLimit=64,!0):"stack"in Error()}function ehp(e,t){return Mc(),Mc(),enj(eHe),(eB4.Math.abs(e-t)<=eHe||e==t||isNaN(e)&&isNaN(t)?0:et?1:Te(isNaN(e),isNaN(t)))>0}function ehb(e,t){return Mc(),Mc(),enj(eHe),(eB4.Math.abs(e-t)<=eHe||e==t||isNaN(e)&&isNaN(t)?0:et?1:Te(isNaN(e),isNaN(t)))<0}function ehm(e,t){return Mc(),Mc(),enj(eHe),(eB4.Math.abs(e-t)<=eHe||e==t||isNaN(e)&&isNaN(t)?0:et?1:Te(isNaN(e),isNaN(t)))<=0}function ehg(e,t){for(var n=0;!t[n]||""==t[n];)n++;for(var r=t[n++];neH5)return n.fh();if((r=n.Zg())||n==e)break}return r}function ehA(e){return(z0(),M4(e,156))?Pp(Bp(tmR,e0r),288).vg(e):F8(tmR,esF(e))?Pp(Bp(tmR,esF(e)),288).vg(e):null}function ehL(e){if(ehZ(eq5,e))return OQ(),e0P;if(ehZ(eq8,e))return OQ(),e0N;throw p7(new gL("Expecting true or false"))}function ehC(e,t){if(t.c==e)return t.d;if(t.d==e)return t.c;throw p7(new gL("Input edge is not connected to the input port."))}function ehI(e,t){return e.e>t.e?1:e.et.d?e.e:e.d=48&&e<48+eB4.Math.min(10,10)?e-48:e>=97&&e<97?e-97+10:e>=65&&e<65?e-65+10:-1}function ehN(e,t){var n;return xc(t)===xc(e)||!!M4(t,21)&&(n=Pp(t,21)).gc()==e.gc()&&e.Ic(n)}function ehP(e,t){var n,r,i,a;return(r=e.a.length-1,n=t-e.b&r,a=e.c-t&r,A2(n<(i=e.c-e.b&r)),n>=a)?(euD(e,t),-1):(euN(e,t),1)}function ehR(e,t){var n,r;for(n=(GV(t,e.length),e.charCodeAt(t)),r=t+1;rt.e?1:e.ft.f?1:esj(e)-esj(t)}function ehZ(e,t){return BJ(e),null!=t&&(!!IE(e,t)||e.length==t.length&&IE(e.toLowerCase(),t.toLowerCase()))}function ehX(e,t){var n,r,i,a;for(r=0,i=t.gc();r0&&0>ecd(e,128)?(t=jE(e)+128,(n=(RB(),e0H)[t])||(n=e0H[t]=new fI(e)),n):new fI(e)}function eh1(e,t){var n,r;return(n=t.Hh(e.a))&&null!=(r=Lq(edW((n.b||(n.b=new L_((eBK(),tgF),tgf,n)),n.b),eXP)))?r:t.ne()}function eh0(e,t){var n,r;return(n=t.Hh(e.a))&&null!=(r=Lq(edW((n.b||(n.b=new L_((eBK(),tgF),tgf,n)),n.b),eXP)))?r:t.ne()}function eh2(e,t){var n,r;for(Gk(),r=new Fa(OH(efs(e).a.Kc(),new c));eTk(r);)if((n=Pp(ZC(r),17)).d.i==t||n.c.i==t)return n;return null}function eh3(e,t,n){this.c=e,this.f=new p0,this.e=new yb,this.j=new R$,this.n=new R$,this.b=t,this.g=new Hr(t.c,t.d,t.b,t.a),this.a=n}function eh4(e){var t,n,r,i;for(r=0,this.a=new Tw,this.d=new bV,this.e=0,i=(n=e).length;r0)}function ept(e){var t;xc(eT9(e,(eBB(),thl)))===xc((eck(),tpG))&&(z$(e)?(t=Pp(eT9(z$(e),thl),334),ebu(e,thl,t)):ebu(e,thl,tpW))}function epn(e,t,n){var r,i;e_m(e.e,t,n,(eYu(),tbY)),e_m(e.i,t,n,tby),e.a&&(i=Pp(e_k(t,(eBU(),tnc)),11),r=Pp(e_k(n,tnc),11),WW(e.g,i,r))}function epr(e,t,n){var r,i,a;r=t.c.p,a=t.p,e.b[r][a]=new $j(e,t),n&&(e.a[r][a]=new hv(t),(i=Pp(e_k(t,(eBU(),tt9)),10))&&exg(e.d,i,t))}function epi(e,t){var n,r,i;if(P_(e8n,e),t.Fc(e),n=Pp(Bp(e8t,e),21))for(i=n.Kc();i.Ob();)-1!=QI(e8n,r=Pp(i.Pb(),33),0)||epi(r,t)}function epa(e,t,n){var r;(e2x?(edr(e),0):e2T?(_g(),0):e2A?(_g(),0):!e2O||(_g(),1))||((r=new I5(t)).b=n,eEt(e,r))}function epo(e,t){var n;n=!e.A.Hc((ed5(),tbq))||e.q==(ewf(),tbo),e.u.Hc((ekU(),tbp))?n?eY_(e,t):eF3(e,t):e.u.Hc(tbm)&&(n?eFO(e,t):eYY(e,t))}function eps(e,t){var n,r;if(++e.j,null!=t&&exM(t,n=M4(r=e.a.Cb,97)?Pp(r,97).Jg():null)){ehU(e.a,4,n);return}ehU(e.a,4,Pp(t,126))}function epu(e,t,n){return new Hr(eB4.Math.min(e.a,t.a)-n/2,eB4.Math.min(e.b,t.b)-n/2,eB4.Math.abs(e.a-t.a)+n,eB4.Math.abs(e.b-t.b)+n)}function epc(e,t){var n,r;return 0!=(n=ME(e.a.c.p,t.a.c.p))?n:0!=(r=ME(e.a.d.i.p,t.a.d.i.p))?r:ME(t.a.d.p,e.a.d.p)}function epl(e,t,n){var r,i,a,o;return(a=t.j)!=(o=n.j)?a.g-o.g:(r=e.f[t.p],i=e.f[n.p],0==r&&0==i?0:0==r?-1:0==i?1:elN(r,i))}function epf(e,t,n){var r,i,a;if(!n[t.d])for(n[t.d]=!0,i=new fz(efv(t));i.a=(i=e.length))return i;for(t=t>0?t:0;tr&&Bc(t,r,null),t}function epv(e,t){var n,r;for(r=e.a.length,t.lengthr&&Bc(t,r,null),t}function epy(e,t,n){var r,i,a;return(i=Pp(Bp(e.e,t),387))?(a=CL(i,n),M5(e,i),a):(r=new PM(e,t,n),Um(e.e,t,r),zd(r),null)}function epw(e){var t;if(null==e)return null;if(null==(t=eMI(ePh(e,!0))))throw p7(new gV("Invalid hexBinary value: '"+e+"'"));return t}function ep_(e){return(eLQ(),0>ecd(e,0))?0!=ecd(e,-1)?new ey$(-1,QC(e)):e03:0>=ecd(e,10)?e06[jE(e)]:new ey$(1,e)}function epE(){return eBW(),eow(vx(e3n,1),eU4,159,0,[e4e,e37,e4t,e30,e31,e32,e36,e34,e33,e39,e38,e35,e3J,e3X,e3Q,e3q,e3V,e3Z,e3W,e3G,e3K,e4n])}function epS(e){var t;this.d=new p0,this.j=new yb,this.g=new yb,t=e.g.b,this.f=Pp(e_k(Bq(t),(eBy(),tal)),103),this.e=gP(LV(epj(t,toN)))}function epk(e){this.b=new p0,this.e=new p0,this.d=e,this.a=!yK(UJ(new R1(null,new YI(new Z4(e.b))),new f2(new ir))).sd((_w(),e2z))}function epx(){epx=A,tdh=new ko("PARENTS",0),tdd=new ko("NODES",1),tdl=new ko("EDGES",2),tdp=new ko("PORTS",3),tdf=new ko("LABELS",4)}function epT(){epT=A,tbt=new kw("DISTRIBUTED",0),tbr=new kw("JUSTIFIED",1),tp7=new kw("BEGIN",2),tbe=new kw(e$9,3),tbn=new kw("END",4)}function epM(e){var t;switch(t=e.yi(null)){case 10:return 0;case 15:return 1;case 14:return 2;case 11:return 3;case 21:return 4}return -1}function epO(e){switch(e.g){case 1:return ec3(),tpy;case 4:return ec3(),tpm;case 2:return ec3(),tpg;case 3:return ec3(),tpb}return ec3(),tpv}function epA(e,t,n){var r;switch((r=n.q.getFullYear()-eHx+eHx)<0&&(r=-r),t){case 1:e.a+=r;break;case 2:eeE(e,r%100,2);break;default:eeE(e,r,t)}}function epL(e,t){var n,r;if(Gp(t,e.b),t>=e.b>>1)for(r=e.c,n=e.b;n>t;--n)r=r.b;else for(n=0,r=e.a.a;n=64&&t<128&&(i=WO(i,Fg(1,t-64)));return i}function epj(e,t){var n,r;return r=null,Ln(e,(eBB(),tpa))&&(n=Pp(e_k(e,tpa),94)).Xe(t)&&(r=n.We(t)),null==r&&Bq(e)&&(r=e_k(Bq(e),t)),r}function epF(e,t){var n,r,i;(r=(i=t.d.i).k)!=(eEn(),e9N)&&r!=e9L&&(n=new Fa(OH(efc(i).a.Kc(),new c)),eTk(n)&&Um(e.k,t,Pp(ZC(n),17)))}function epY(e,t){var n,r,i;return r=ee2(e.Tg(),t),(n=t-e.Ah())<0?(i=e.Yg(r))>=0?e.lh(i):exu(e,r):n<0?exu(e,r):Pp(r,66).Nj().Sj(e,e.yh(),n)}function epB(e){var t;if(!M4(e.a,4))return e.a;if(null==(t=ehA(e.a)))throw p7(new gC(eq9+e.b+"'. "+eq4+(LW(e5D),e5D.k)+eq6));return t}function epU(e){var t;if(null==e)return null;if(null==(t=eYD(ePh(e,!0))))throw p7(new gV("Invalid base64Binary value: '"+e+"'"));return t}function epH(e){var t;try{return t=e.i.Xb(e.e),e.mj(),e.g=e.e++,t}catch(n){if(n=eoa(n),M4(n,73))throw e.mj(),p7(new bC);throw p7(n)}}function ep$(e){var t;try{return t=e.c.ki(e.e),e.mj(),e.g=e.e++,t}catch(n){if(n=eoa(n),M4(n,73))throw e.mj(),p7(new bC);throw p7(n)}}function epz(){epz=A,e57=(eBB(),tpt),e53=ths,e5J=td2,e54=thN,e58=(evw(),e3y),e55=e3g,e59=e3_,e56=e3m,e51=(eug(),e5V),e5Q=e5K,e50=e5Z,e52=e5X}function epG(e){switch(_M(),this.c=new p0,this.d=e,e.g){case 0:case 2:this.a=Ug(e9_),this.b=eHQ;break;case 3:case 1:this.a=e9_,this.b=eH1}}function epW(e,t,n){var r,i;if(e.c)eno(e.c,e.c.i+t),ens(e.c,e.c.j+n);else for(i=new fz(e.b);i.a0&&(P_(e.b,new PE(t.a,n)),0<(r=t.a.length)?t.a=t.a.substr(0,0):0>r&&(t.a+=M3(Je(tyw,eHl,25,-r,15,1))))}function epq(e,t){var n,r,i;for(n=e.o,i=Pp(Pp(Zq(e.r,t),21),84).Kc();i.Ob();)(r=Pp(i.Pb(),111)).e.a=ego(r,n.a),r.e.b=n.b*gP(LV(r.b.We(e4a)))}function epZ(e,t){var n,r,i,a;return i=e.k,n=gP(LV(e_k(e,(eBU(),tnv)))),a=t.k,r=gP(LV(e_k(t,tnv))),a!=(eEn(),e9C)?-1:i!=e9C?1:n==r?0:n=0?e.hh(t,n,r):(e.eh()&&(r=(i=e.Vg())>=0?e.Qg(r):e.eh().ih(e,-1-i,null,r)),e.Sg(t,n,r))}function ep2(e,t){switch(t){case 7:e.e||(e.e=new Ih(e5g,e,7,4)),eRT(e.e);return;case 8:e.d||(e.d=new Ih(e5g,e,8,5)),eRT(e.d);return}edS(e,t)}function ep3(e,t){var n;n=e.Zc(t);try{return n.Pb()}catch(r){if(r=eoa(r),M4(r,109))throw p7(new gE("Can't get element "+t));throw p7(r)}}function ep4(e,t){this.e=e,t=0&&(n.d=e.t);break;case 3:e.t>=0&&(n.a=e.t)}e.C&&(n.b=e.C.b,n.c=e.C.c)}function ep7(){ep7=A,e4d=new EN(ezb,0),e4f=new EN(ezm,1),e4h=new EN(ezg,2),e4p=new EN(ezv,3),e4d.a=!1,e4f.a=!0,e4h.a=!1,e4p.a=!0}function ebe(){ebe=A,e5U=new ED(ezb,0),e5B=new ED(ezm,1),e5H=new ED(ezg,2),e5$=new ED(ezv,3),e5U.a=!1,e5B.a=!0,e5H.a=!1,e5$.a=!0}function ebt(e){var t;t=e.a;do(t=Pp(ZC(new Fa(OH(efu(t).a.Kc(),new c))),17).c.i).k==(eEn(),e9D)&&e.b.Fc(t);while(t.k==(eEn(),e9D))e.b=eaa(e.b)}function ebn(e){var t,n,r;for(r=e.c.a,e.p=(Y8(r),new I4(r)),n=new fz(r);n.an.b))}function ebs(e,t){return xd(e)?!!e0c[t]:e.hm?!!e.hm[t]:xf(e)?!!e0u[t]:!!xl(e)&&!!e0s[t]}function ebu(e,t,n){return null==n?(e.o||(e.o=new JY((eBa(),tmy),e5O,e,0)),ehx(e.o,t)):(e.o||(e.o=new JY((eBa(),tmy),e5O,e,0)),evQ(e.o,t,n)),e}function ebc(e,t,n,r){var i,a;a=t.Xe((eBB(),thS))?Pp(t.We(thS),21):e.j,(i=ele(a))!=(eBW(),e4n)&&(!n||ehj(i))&&eEU(eMD(e,i,r),t)}function ebl(e,t,n,r){var i,a,o;return a=ee2(e.Tg(),t),(i=t-e.Ah())<0?(o=e.Yg(a))>=0?e._g(o,n,!0):exk(e,a,n):Pp(a,66).Nj().Pj(e,e.yh(),i,n,r)}function ebf(e,t,n,r){var i,a,o;n.mh(t)&&(_4(),eec(t)?ehX(e,i=Pp(n.ah(t),153)):(a=(o=t)?Pp(r,49).xh(o):null)&&p5(n.ah(t),a))}function ebd(e){switch(e.g){case 1:return eaY(),e4c;case 3:return eaY(),e4o;case 2:return eaY(),e4u;case 4:return eaY(),e4s;default:return null}}function ebh(e){switch(typeof e){case eUo:return ebA(e);case eUa:return zy(e);case eUi:return OQ(),e?1231:1237;default:return null==e?0:Ao(e)}}function ebp(e,t,n){if(e.e)switch(e.b){case 1:HJ(e.c,t,n);break;case 0:HQ(e.c,t,n)}else V5(e.c,t,n);e.a[t.p][n.p]=e.c.i,e.a[n.p][t.p]=e.c.e}function ebb(e){var t,n;if(null==e)return null;for(t=0,n=Je(e4N,eUP,193,e.length,0,2);t=0)return i;if(e.Fk()){for(r=0;r=(i=e.gc()))throw p7(new Ii(t,i));if(e.hi()&&(r=e.Xc(n))>=0&&r!=t)throw p7(new gL(eXB));return e.mi(t,n)}function ebw(e,t){if(this.a=Pp(Y8(e),245),this.b=Pp(Y8(t),245),e.vd(t)>0||e==(m3(),e0f)||t==(m2(),e0d))throw p7(new gL("Invalid range: "+VW(e,t)))}function eb_(e){var t,n;for(this.b=new p0,this.c=e,this.a=!1,n=new fz(e.a);n.a0),(t&-t)==t)return zy(t*eMU(e,31)*4656612873077393e-25);do r=(n=eMU(e,31))%t;while(n-r+(t-1)<0)return zy(r)}function ebA(e){var t,n,r;return(I8(),null!=(r=e2W[n=":"+e]))?zy((BJ(r),r)):(t=null==(r=e2G[n])?eAC(e):zy((BJ(r),r)),HB(),e2W[n]=t,t)}function ebL(e,t,n){ewG(n,"Compound graph preprocessor",1),e.a=new zu,eFC(e,t,null),eRs(e,t),eOz(e),eo3(t,(eBU(),ttW),e.a),e.a=null,Yy(e.b),eEj(n)}function ebC(e,t,n){switch(n.g){case 1:e.a=t.a/2,e.b=0;break;case 2:e.a=t.a,e.b=t.b/2;break;case 3:e.a=t.a/2,e.b=t.b;break;case 4:e.a=0,e.b=t.b/2}}function ebI(e){var t,n,r;for(r=Pp(Zq(e.a,(ey4(),tea)),15).Kc();r.Ob();)t=egD(n=Pp(r.Pb(),101)),Yz(e,n,t[0],(erX(),ted),0),Yz(e,n,t[1],tep,1)}function ebD(e){var t,n,r;for(r=Pp(Zq(e.a,(ey4(),teo)),15).Kc();r.Ob();)t=egD(n=Pp(r.Pb(),101)),Yz(e,n,t[0],(erX(),ted),0),Yz(e,n,t[1],tep,1)}function ebN(e){switch(e.g){case 0:return null;case 1:return new er1;case 2:return new mQ;default:throw p7(new gL(eqa+(null!=e.f?e.f:""+e.g)))}}function ebP(e,t,n){var r,i;for(eod(e,t-e.s,n-e.t),i=new fz(e.n);i.a1&&(a=ebE(e,t)),a}function ebj(e){var t;return e.f&&e.f.kh()&&(t=Pp(e.f,49),e.f=Pp(ecv(e,t),82),e.f!=t&&(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new FX(e,9,8,t,e.f))),e.f}function ebF(e){var t;return e.i&&e.i.kh()&&(t=Pp(e.i,49),e.i=Pp(ecv(e,t),82),e.i!=t&&(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new FX(e,9,7,t,e.i))),e.i}function ebY(e){var t;return e.b&&(64&e.b.Db)!=0&&(t=e.b,e.b=Pp(ecv(e,t),18),e.b!=t&&(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new FX(e,9,21,t,e.b))),e.b}function ebB(e,t){var n,r,i;null==e.d?(++e.e,++e.f):(r=t.Sh(),eO1(e,e.f+1),i=(r&eUu)%e.d.length,(n=e.d[i])||(n=e.d[i]=e.uj()),n.Fc(t),++e.f)}function ebU(e,t,n){var r;return!t.Kj()&&(-2!=t.Zj()?null==(r=t.zj())?null==n:ecX(r,n):t.Hj()==e.e.Tg()&&null==n)}function ebH(){var e;enG(16,eU0),e=er_(16),this.b=Je(e1z,eU1,317,e,0,1),this.c=Je(e1z,eU1,317,e,0,1),this.a=null,this.e=null,this.i=0,this.f=e-1,this.g=0}function eb$(e){CW.call(this),this.k=(eEn(),e9N),this.j=(enG(6,eU3),new XM(6)),this.b=(enG(2,eU3),new XM(2)),this.d=new md,this.f=new mb,this.a=e}function ebz(e){var t,n;!(e.c.length<=1)&&(t=eLW(e,(eYu(),tbj)),eSe(e,Pp(t.a,19).a,Pp(t.b,19).a),n=eLW(e,tbY),eSe(e,Pp(n.a,19).a,Pp(n.b,19).a))}function ebG(){ebG=A,tsb=new Sx("SIMPLE",0),tsd=new Sx(eWg,1),tsh=new Sx("LINEAR_SEGMENTS",2),tsf=new Sx("BRANDES_KOEPF",3),tsp=new Sx(eVI,4)}function ebW(e,t,n){IR(Pp(e_k(t,(eBy(),tol)),98))||(Q3(e,t,eEC(t,n)),Q3(e,t,eEC(t,(eYu(),tbj))),Q3(e,t,eEC(t,tbw)),Hj(),Mv(t.j,new hm(e)))}function ebK(e,t,n,r){var i,a,o;for(o=(i=r?Pp(Zq(e.a,t),21):Pp(Zq(e.b,t),21)).Kc();o.Ob();)if(eL9(e,n,a=Pp(o.Pb(),33)))return!0;return!1}function ebV(e){var t,n;for(n=new Ow(e);n.e!=n.i.gc();)if((t=Pp(epH(n),87)).e||0!=(t.d||(t.d=new O_(tgr,t,1)),t.d).i)return!0;return!1}function ebq(e){var t,n;for(n=new Ow(e);n.e!=n.i.gc();)if((t=Pp(epH(n),87)).e||0!=(t.d||(t.d=new O_(tgr,t,1)),t.d).i)return!0;return!1}function ebZ(e){var t,n,r;for(t=0,r=new fz(e.c.a);r.a102?-1:e<=57?e-48:e<65?-1:e<=70?e-65+10:e<97?-1:e-97+10}function eb2(e,t){if(null==e)throw p7(new gD("null key in entry: null="+t));if(null==t)throw p7(new gD("null value in entry: "+e+"=null"))}function eb3(e,t){for(var n,r;e.Ob();)if(!t.Ob()||(n=e.Pb(),r=t.Pb(),!(xc(n)===xc(r)||null!=n&&ecX(n,r))))return!1;return!t.Ob()}function eb4(e,t){var n;return n=eow(vx(tyx,1),eH6,25,15,[euG(e.a[0],t),euG(e.a[1],t),euG(e.a[2],t)]),e.d&&(n[0]=eB4.Math.max(n[0],n[2]),n[2]=n[0]),n}function eb6(e,t){var n;return n=eow(vx(tyx,1),eH6,25,15,[euW(e.a[0],t),euW(e.a[1],t),euW(e.a[2],t)]),e.d&&(n[0]=eB4.Math.max(n[0],n[2]),n[2]=n[0]),n}function eb5(){eb5=A,teG=new Sf("GREEDY",0),tez=new Sf(eWv,1),teK=new Sf(eWg,2),teV=new Sf("MODEL_ORDER",3),teW=new Sf("GREEDY_MODEL_ORDER",4)}function eb8(e,t){var n,r,i;for(e.b[t.g]=1,r=epL(t.d,0);r.b!=r.d.c;)i=(n=Pp(Vv(r),188)).c,1==e.b[i.g]?P7(e.a,n):2==e.b[i.g]?e.b[i.g]=1:eb8(e,i)}function eb9(e,t){var n,r,i;for(i=new XM(t.gc()),r=t.Kc();r.Ob();)(n=Pp(r.Pb(),286)).c==n.f?eE6(e,n,n.c):eEQ(e,n)||(i.c[i.c.length]=n);return i}function eb7(e,t,n){var r,i,a,o,s;for(s=e.r+t,e.r+=t,e.d+=n,r=n/e.n.c.length,i=0,o=new fz(e.n);o.aa&&Bc(t,a,null),t}function emx(e,t){var n,r;if(r=e.gc(),null==t){for(n=0;n0&&(u+=i),c[l]=o,o+=s*(u+r)}function emj(e){var t,n,r;for(t=0,r=e.f,e.n=Je(tyx,eH6,25,r,15,1),e.d=Je(tyx,eH6,25,r,15,1);t0?e.c:0),++i;e.b=r,e.d=a}function emW(e,t){var n,r,i,a,o;for(r=0,i=0,n=0,o=new fz(t);o.a0?e.g:0),++n;e.c=i,e.d=r}function emK(e,t){var n;return n=eow(vx(tyx,1),eH6,25,15,[ebM(e,(etx(),e3D),t),ebM(e,e3N,t),ebM(e,e3P,t)]),e.f&&(n[0]=eB4.Math.max(n[0],n[2]),n[2]=n[0]),n}function emV(e,t,n){var r;try{eCQ(e,t+e.j,n+e.k,!1,!0)}catch(i){if(i=eoa(i),M4(i,73))throw r=i,p7(new gE(r.g+ezk+t+eUd+n+")."));throw p7(i)}}function emq(e,t,n){var r;try{eCQ(e,t+e.j,n+e.k,!0,!1)}catch(i){if(i=eoa(i),M4(i,73))throw r=i,p7(new gE(r.g+ezk+t+eUd+n+")."));throw p7(i)}}function emZ(e){var t;Ln(e,(eBy(),taZ))&&((t=Pp(e_k(e,taZ),21)).Hc((eT7(),tp1))?(t.Mc(tp1),t.Fc(tp2)):t.Hc(tp2)&&(t.Mc(tp2),t.Fc(tp1)))}function emX(e){var t;Ln(e,(eBy(),taZ))&&((t=Pp(e_k(e,taZ),21)).Hc((eT7(),tp8))?(t.Mc(tp8),t.Fc(tp6)):t.Hc(tp6)&&(t.Mc(tp6),t.Fc(tp8)))}function emJ(e,t,n){ewG(n,"Self-Loop ordering",1),_r(UQ(UJ(UJ(eeh(new R1(null,new Gq(t.b,16)),new n8),new n9),new n7),new re),new d1(e)),eEj(n)}function emQ(e,t,n,r){var i,a;for(i=t;i0&&(i.b+=t),i}function em9(e,t){var n,r,i;for(i=new yb,r=e.Kc();r.Ob();)eIn(n=Pp(r.Pb(),37),0,i.b),i.b+=n.f.b+t,i.a=eB4.Math.max(i.a,n.f.a);return i.a>0&&(i.a+=t),i}function em7(e){var t,n,r;for(r=eUu,n=new fz(e.a);n.a>16==6?e.Cb.ih(e,5,e5E,t):(r=ebY(Pp(ee2((n=Pp(eaS(e,16),26))||e.zh(),e.Db>>16),18)),e.Cb.ih(e,r.n,r.f,t))}function egr(e){$O();var t=e.e;if(t&&t.stack){var n=t.stack,r=t+"\n";return n.substring(0,r.length)==r&&(n=n.substring(r.length)),n.split("\n")}return[]}function egi(e){var t;return(t=(en4(),e0U))[e>>>28]|t[e>>24&15]<<4|t[e>>20&15]<<8|t[e>>16&15]<<12|t[e>>12&15]<<16|t[e>>8&15]<<20|t[e>>4&15]<<24|t[15&e]<<28}function ega(e){var t,n,r;e.b==e.c&&(r=e.a.length,n=esi(eB4.Math.max(8,r))<<1,0!=e.b?(t=CY(e.a,n),erL(e,t,r),e.a=t,e.b=0):bF(e.a,n),e.c=r)}function ego(e,t){var n;return(n=e.b).Xe((eBB(),thK))?n.Hf()==(eYu(),tbY)?-n.rf().a-gP(LV(n.We(thK))):t+gP(LV(n.We(thK))):n.Hf()==(eYu(),tbY)?-n.rf().a:t}function egs(e){var t;return 0!=e.b.c.length&&Pp(RJ(e.b,0),70).a?Pp(RJ(e.b,0),70).a:null!=(t=Hh(e))?t:""+(e.c?QI(e.c.a,e,0):-1)}function egu(e){var t;return 0!=e.f.c.length&&Pp(RJ(e.f,0),70).a?Pp(RJ(e.f,0),70).a:null!=(t=Hh(e))?t:""+(e.i?QI(e.i.j,e,0):-1)}function egc(e,t){var n,r;if(t<0||t>=e.gc())return null;for(n=t;n0?e.c:0),i=eB4.Math.max(i,t.d),++r;e.e=a,e.b=i}function egd(e){var t,n;if(!e.b)for(e.b=K$(Pp(e.f,118).Ag().i),n=new Ow(Pp(e.f,118).Ag());n.e!=n.i.gc();)t=Pp(epH(n),137),P_(e.b,new gO(t));return e.b}function egh(e,t){var n,r,i;if(t.dc())return LF(),LF(),tmB;for(n=new Cy(e,t.gc()),i=new Ow(e);i.e!=i.i.gc();)r=epH(i),t.Hc(r)&&JL(n,r);return n}function egp(e,t,n,r){return 0==t?r?(e.o||(e.o=new JY((eBa(),tmy),e5O,e,0)),e.o):(e.o||(e.o=new JY((eBa(),tmy),e5O,e,0)),X5(e.o)):ebl(e,t,n,r)}function egb(e){var t,n;if(e.rb)for(t=0,n=e.rb.i;t>22))>>22)<0)&&(e.l=n&eHH,e.m=r&eHH,e.h=i&eH$,!0))}function egw(e,t,n,r,i,a,o){var s,u;return!(t.Ae()&&((u=e.a.ue(n,r))<0||!i&&0==u)||t.Be()&&((s=e.a.ue(n,a))>0||!o&&0==s))}function eg_(e,t){var n;if(euv(),0!=(n=e.j.g-t.j.g))return 0;switch(e.j.g){case 2:return efy(t,e73)-efy(e,e73);case 4:return efy(e,e72)-efy(t,e72)}return 0}function egE(e){switch(e.g){case 0:return te3;case 1:return te4;case 2:return te6;case 3:return te5;case 4:return te8;case 5:return te9;default:return null}}function egS(e,t,n){var r,i;return r=(eu2(i=new mN,t),er3(i,n),JL((e.c||(e.c=new FQ(tga,e,12,10)),e.c),i),i),end(r,0),enh(r,1),els(r,!0),eli(r,!0),r}function egk(e,t){var n,r;if(t>=e.i)throw p7(new xJ(t,e.i));return++e.j,n=e.g[t],(r=e.i-t-1)>0&&ePD(e.g,t+1,e.g,t,r),Bc(e.g,--e.i,null),e.fi(t,n),e.ci(),n}function egx(e,t){var n,r;return e.Db>>16==17?e.Cb.ih(e,21,tm7,t):(r=ebY(Pp(ee2((n=Pp(eaS(e,16),26))||e.zh(),e.Db>>16),18)),e.Cb.ih(e,r.n,r.f,t))}function egT(e){var t,n,r,i;for(Hj(),Mv(e.c,e.a),i=new fz(e.c);i.an.a.c.length))throw p7(new gL("index must be >= 0 and <= layer node count"));e.c&&QA(e.c.a,e),e.c=n,n&&jO(n.a,t,e)}function egH(e,t){var n,r,i;for(r=new Fa(OH(efs(e).a.Kc(),new c));eTk(r);)return n=Pp(ZC(r),17),i=Pp(t.Kb(n),10),new c6(Y8(i.n.b+i.o.b/2));return m4(),m4(),e0l}function eg$(e,t){this.c=new p2,this.a=e,this.b=t,this.d=Pp(e_k(e,(eBU(),tnx)),304),xc(e_k(e,(eBy(),taX)))===xc((Qx(),tte))?this.e=new mg:this.e=new mm}function egz(e,t){var n,r,i,a;for(a=0,r=new fz(e);r.a>16==6?e.Cb.ih(e,6,e5g,t):(r=ebY(Pp(ee2((n=Pp(eaS(e,16),26))||(eBa(),tmp),e.Db>>16),18)),e.Cb.ih(e,r.n,r.f,t))}function eg0(e,t){var n,r;return e.Db>>16==7?e.Cb.ih(e,1,e5p,t):(r=ebY(Pp(ee2((n=Pp(eaS(e,16),26))||(eBa(),tmm),e.Db>>16),18)),e.Cb.ih(e,r.n,r.f,t))}function eg2(e,t){var n,r;return e.Db>>16==9?e.Cb.ih(e,9,e5k,t):(r=ebY(Pp(ee2((n=Pp(eaS(e,16),26))||(eBa(),tmv),e.Db>>16),18)),e.Cb.ih(e,r.n,r.f,t))}function eg3(e,t){var n,r;return e.Db>>16==5?e.Cb.ih(e,9,tgt,t):(r=ebY(Pp(ee2((n=Pp(eaS(e,16),26))||(eBK(),tgT),e.Db>>16),18)),e.Cb.ih(e,r.n,r.f,t))}function eg4(e,t){var n,r;return e.Db>>16==3?e.Cb.ih(e,0,e5y,t):(r=ebY(Pp(ee2((n=Pp(eaS(e,16),26))||(eBK(),tgy),e.Db>>16),18)),e.Cb.ih(e,r.n,r.f,t))}function eg6(e,t){var n,r;return e.Db>>16==7?e.Cb.ih(e,6,e5E,t):(r=ebY(Pp(ee2((n=Pp(eaS(e,16),26))||(eBK(),tgP),e.Db>>16),18)),e.Cb.ih(e,r.n,r.f,t))}function eg5(){this.a=new o5,this.g=new ebH,this.j=new ebH,this.b=new p2,this.d=new ebH,this.i=new ebH,this.k=new p2,this.c=new p2,this.e=new p2,this.f=new p2}function eg8(e,t,n){var r,i,a;for(n<0&&(n=0),a=e.i,i=n;ieH5)return eg7(e,r);if(r==e)return!0}}return!1}function eve(e){switch(Ab(),e.q.g){case 5:ekK(e,(eYu(),tbw)),ekK(e,tbj);break;case 4:eMz(e,(eYu(),tbw)),eMz(e,tbj);break;default:eYa(e,(eYu(),tbw)),eYa(e,tbj)}}function evt(e){switch(Ab(),e.q.g){case 5:exG(e,(eYu(),tby)),exG(e,tbY);break;case 4:epq(e,(eYu(),tby)),epq(e,tbY);break;default:eYo(e,(eYu(),tby)),eYo(e,tbY)}}function evn(e){var t,n;(t=Pp(e_k(e,(eCk(),e8O)),19))?0==(n=t.a)?eo3(e,(erV(),e8F),new efo):eo3(e,(erV(),e8F),new qS(n)):eo3(e,(erV(),e8F),new qS(1))}function evr(e,t){var n;switch(n=e.i,t.g){case 1:return-(e.n.b+e.o.b);case 2:return e.n.a-n.o.a;case 3:return e.n.b-n.o.b;case 4:return-(e.n.a+e.o.a)}return 0}function evi(e,t){switch(e.g){case 0:return t==(ef_(),tnN)?e7V:e7q;case 1:return t==(ef_(),tnN)?e7V:e7K;case 2:return t==(ef_(),tnN)?e7K:e7q;default:return e7K}}function eva(e,t){var n,r,i;for(QA(e.a,t),e.e-=t.r+(0==e.a.c.length?0:e.c),i=eqe,r=new fz(e.a);r.a>16==3?e.Cb.ih(e,12,e5k,t):(r=ebY(Pp(ee2((n=Pp(eaS(e,16),26))||(eBa(),tmh),e.Db>>16),18)),e.Cb.ih(e,r.n,r.f,t))}function evs(e,t){var n,r;return e.Db>>16==11?e.Cb.ih(e,10,e5k,t):(r=ebY(Pp(ee2((n=Pp(eaS(e,16),26))||(eBa(),tmg),e.Db>>16),18)),e.Cb.ih(e,r.n,r.f,t))}function evu(e,t){var n,r;return e.Db>>16==10?e.Cb.ih(e,11,tm7,t):(r=ebY(Pp(ee2((n=Pp(eaS(e,16),26))||(eBK(),tgD),e.Db>>16),18)),e.Cb.ih(e,r.n,r.f,t))}function evc(e,t){var n,r;return e.Db>>16==10?e.Cb.ih(e,12,tgi,t):(r=ebY(Pp(ee2((n=Pp(eaS(e,16),26))||(eBK(),tgR),e.Db>>16),18)),e.Cb.ih(e,r.n,r.f,t))}function evl(e){var t;return(1&e.Bb)==0&&e.r&&e.r.kh()&&(t=Pp(e.r,49),e.r=Pp(ecv(e,t),138),e.r!=t&&(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new FX(e,9,8,t,e.r))),e.r}function evf(e,t,n){var r;return r=eow(vx(tyx,1),eH6,25,15,[e_u(e,(etx(),e3D),t,n),e_u(e,e3N,t,n),e_u(e,e3P,t,n)]),e.f&&(r[0]=eB4.Math.max(r[0],r[2]),r[2]=r[0]),r}function evd(e,t){var n,r,i;if(0!=(i=eb9(e,t)).c.length)for(Mv(i,new nD),n=i.c.length,r=0;r>19)!=(c=t.h>>19)?c-u:(i=e.h)!=(s=t.h)?i-s:(r=e.m)!=(o=t.m)?r-o:(n=e.l)-(a=t.l)}function evw(){evw=A,e3E=(eCp(),e3A),e3_=new xX(e$J,e3E),e3w=(eeR(),e3p),e3y=new xX(e$Q,e3w),e3v=(epC(),e3f),e3g=new xX(e$1,e3v),e3m=new xX(e$0,(OQ(),!0))}function ev_(e,t,n){var r,i;r=t*n,M4(e.g,145)?(i=Vm(e)).f.d?i.f.a||(e.d.a+=r+ezs):(e.d.d-=r+ezs,e.d.a+=r+ezs):M4(e.g,10)&&(e.d.d-=r,e.d.a+=2*r)}function evE(e,t,n){var r,i,a,o,s;for(i=e[n.g],s=new fz(t.d);s.a0?e.g:0),++n;t.b=r,t.e=i}function evk(e){var t,n,r;if(r=e.b,w4(e.i,r.length)){for(n=2*r.length,e.b=Je(e1z,eU1,317,n,0,1),e.c=Je(e1z,eU1,317,n,0,1),e.f=n-1,e.i=0,t=e.a;t;t=t.c)ekT(e,t,t);++e.g}}function evx(e,t,n,r){var i,a,o,s;for(i=0;io&&(s=o/r),i>a&&(u=a/i),Ol(e,eB4.Math.min(s,u)),e}function evO(){var e,t;ePm();try{if(t=Pp(eyv((_Q(),tgp),eXe),2014))return t}catch(n){if(n=eoa(n),M4(n,102))e=n,Fi((Mo(),e));else throw p7(n)}return new o1}function evA(){var e,t;Qk();try{if(t=Pp(eyv((_Q(),tgp),eQB),2024))return t}catch(n){if(n=eoa(n),M4(n,102))e=n,Fi((Mo(),e));else throw p7(n)}return new uc}function evL(){var e,t;ePm();try{if(t=Pp(eyv((_Q(),tgp),eQc),1941))return t}catch(n){if(n=eoa(n),M4(n,102))e=n,Fi((Mo(),e));else throw p7(n)}return new sT}function evC(e,t,n){var r,i;return i=e.e,e.e=t,(4&e.Db)!=0&&(1&e.Db)==0&&(r=new FX(e,1,4,i,t),n?n.Ei(r):n=r),i!=t&&(n=t?eFr(e,eOl(e,t),n):eFr(e,e.a,n)),n}function evI(){wW.call(this),this.e=-1,this.a=!1,this.p=eHt,this.k=-1,this.c=-1,this.b=-1,this.g=!1,this.f=-1,this.j=-1,this.n=-1,this.i=-1,this.d=-1,this.o=eHt}function evD(e,t){var n,r,i;if(r=e.b.d.d,e.a||(r+=e.b.d.a),i=t.b.d.d,t.a||(i+=t.b.d.a),0==(n=elN(r,i))){if(!e.a&&t.a)return -1;if(!t.a&&e.a)return 1}return n}function evN(e,t){var n,r,i;if(r=e.b.b.d,e.a||(r+=e.b.b.a),i=t.b.b.d,t.a||(i+=t.b.b.a),0==(n=elN(r,i))){if(!e.a&&t.a)return -1;if(!t.a&&e.a)return 1}return n}function evP(e,t){var n,r,i;if(r=e.b.g.d,e.a||(r+=e.b.g.a),i=t.b.g.d,t.a||(i+=t.b.g.a),0==(n=elN(r,i))){if(!e.a&&t.a)return -1;if(!t.a&&e.a)return 1}return n}function evR(){evR=A,e88=j0(RI(RI(RI(new K2,(e_x(),e9r),(eB$(),e7f)),e9r,e7b),e9i,e7E),e9i,e97),e87=RI(RI(new K2,e9r,e9Q),e9r,e7e),e89=j0(new K2,e9i,e7n)}function evj(e){var t,n,r,i,a;for(t=Pp(e_k(e,(eBU(),ttq)),83),a=e.n,r=t.Cc().Kc();r.Ob();)i=(n=Pp(r.Pb(),306)).i,i.c+=a.a,i.d+=a.b,n.c?eL3(n):eL4(n);eo3(e,ttq,null)}function evF(e,t,n){var r,i;switch(r=(i=e.b).d,t.g){case 1:return-r.d-n;case 2:return i.o.a+r.c+n;case 3:return i.o.b+r.a+n;case 4:return-r.b-n;default:return -1}}function evY(e){var t,n,r,i,a;if(r=0,i=ezq,e.b)for(t=0;t<360;t++)n=.017453292519943295*t,eIq(e,e.d,0,0,eV7,n),(a=e.b.ig(e.d))0&&(o=(a&eUu)%e.d.length,i=exx(e,o,a,t)))?s=i.ed(n):(r=e.tj(a,t,n),e.c.Fc(r),null)}function ev1(e,t){var n,r,i,a;switch(ecG(e,t)._k()){case 3:case 2:for(i=0,a=(n=ePk(t)).i;i=0;r--)if(IE(e[r].d,t)||IE(e[r].d,n)){e.length>=r+1&&e.splice(0,r+1);break}return e}function eyt(e,t){var n;return Ts(e)&&Ts(t)&&eHV<(n=e/t)&&n0&&(e.b+=2,e.a+=r):(e.b+=1,e.a+=eB4.Math.min(r,i))}function eyc(e,t){var n,r;if(r=!1,xd(t)&&(r=!0,BC(e,new B_(Lq(t)))),!r&&M4(t,236)&&(r=!0,BC(e,(n=IZ(Pp(t,236)),new lI(n)))),!r)throw p7(new gk(eXE))}function eyl(e,t,n,r){var i,a,o;return i=new Q$(e.e,1,10,M4(o=t.c,88)?Pp(o,26):(eBK(),tgI),M4(a=n.c,88)?Pp(a,26):(eBK(),tgI),ebv(e,t),!1),r?r.Ei(i):r=i,r}function eyf(e){var t,n;switch(Pp(e_k(Bq(e),(eBy(),taP)),420).g){case 0:return t=e.n,n=e.o,new kl(t.a+n.a/2,t.b+n.b/2);case 1:return new TS(e.n);default:return null}}function eyd(){eyd=A,tto=new Sm(eGR,0),tta=new Sm("LEFTUP",1),ttu=new Sm("RIGHTUP",2),tti=new Sm("LEFTDOWN",3),tts=new Sm("RIGHTDOWN",4),ttr=new Sm("BALANCED",5)}function eyh(e,t,n){var r,i,a;if(0==(r=elN(e.a[t.p],e.a[n.p]))){if(i=Pp(e_k(t,(eBU(),tt7)),15),a=Pp(e_k(n,tt7),15),i.Hc(n))return -1;if(a.Hc(t))return 1}return r}function eyp(e){switch(e.g){case 1:return new a$;case 2:return new az;case 3:return new aH;case 0:return null;default:throw p7(new gL(eqa+(null!=e.f?e.f:""+e.g)))}}function eyb(e,t,n){switch(t){case 1:e.n||(e.n=new FQ(e5S,e,1,7)),eRT(e.n),e.n||(e.n=new FQ(e5S,e,1,7)),Y4(e.n,Pp(n,14));return;case 2:ert(e,Lq(n));return}esU(e,t,n)}function eym(e,t,n){switch(t){case 3:eni(e,gP(LV(n)));return;case 4:ena(e,gP(LV(n)));return;case 5:eno(e,gP(LV(n)));return;case 6:ens(e,gP(LV(n)));return}eyb(e,t,n)}function eyg(e,t,n){var r,i,a;(i=ew3(a=r=new mN,t,null))&&i.Fi(),er3(a,n),JL((e.c||(e.c=new FQ(tga,e,12,10)),e.c),a),end(a,0),enh(a,1),els(a,!0),eli(a,!0)}function eyv(e,t){var n,r,i;return M4(n=Ea(e.g,t),235)?((i=Pp(n,235)).Qh(),i.Nh()):M4(n,498)?i=(r=Pp(n,1938)).b:null}function eyy(e,t,n,r){var i,a;return Y8(t),Y8(n),a=Pp(Iq(e.d,t),19),QW(!!a,"Row %s not in %s",t,e.e),i=Pp(Iq(e.b,n),19),QW(!!i,"Column %s not in %s",n,e.c),eoy(e,a.a,i.a,r)}function eyw(e,t,n,r,i,a,o){var s,u,c,l,f;if(l=i[a],f=emH(s=(c=a==o-1)?r:0,l),10!=r&&eow(vx(e,o-a),t[a],n[a],s,f),!c)for(++a,u=0;u1||-1==s?(a=Pp(u,15),i.Wb(ehk(e,a))):i.Wb(eI4(e,Pp(u,56))))}function eyP(e,t,n,r){wd();var i=eUn;function a(){for(var e=0;eeVW);)i>-.000001&&++n;return n}function eyW(e,t){var n;t!=e.b?(n=null,e.b&&(n=$7(e.b,e,-4,n)),t&&(n=ep0(t,e,-4,n)),(n=ecm(e,t,n))&&n.Fi()):(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new FX(e,1,3,t,t))}function eyK(e,t){var n;t!=e.f?(n=null,e.f&&(n=$7(e.f,e,-1,n)),t&&(n=ep0(t,e,-1,n)),(n=ecg(e,t,n))&&n.Fi()):(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new FX(e,1,0,t,t))}function eyV(e){var t,n,r;if(null==e)return null;if((n=Pp(e,15)).dc())return"";for(r=new vs,t=n.Kc();t.Ob();)xk(r,(eR7(),Lq(t.Pb()))),r.a+=" ";return x3(r,r.a.length-1)}function eyq(e){var t,n,r;if(null==e)return null;if((n=Pp(e,15)).dc())return"";for(r=new vs,t=n.Kc();t.Ob();)xk(r,(eR7(),Lq(t.Pb()))),r.a+=" ";return x3(r,r.a.length-1)}function eyZ(e,t,n){var r,i;return(r=e.c[t.c.p][t.p],i=e.c[n.c.p][n.p],null!=r.a&&null!=i.a)?F_(r.a,i.a):null!=r.a?-1:null!=i.a?1:0}function eyX(e,t){var n,r,i,a,o,s;if(t)for(a=t.a.length,s=((n=new Fs(a)).b-n.a)*n.c<0?(_8(),eB3):new OR(n);s.Ob();)i=KZ(t,(o=Pp(s.Pb(),19)).a),UX((r=new pu(e)).a,i)}function eyJ(e,t){var n,r,i,a,o,s;if(t)for(a=t.a.length,s=((n=new Fs(a)).b-n.a)*n.c<0?(_8(),eB3):new OR(n);s.Ob();)i=KZ(t,(o=Pp(s.Pb(),19)).a),UZ((r=new h7(e)).a,i)}function eyQ(e){var t;if(null!=e&&e.length>0&&33==UI(e,e.length-1))try{return t=eSR(Az(e,0,e.length-1)),null==t.e}catch(n){if(n=eoa(n),!M4(n,32))throw p7(n)}return!1}function ey1(e,t,n){var r,i,a;return r=t.ak(),a=t.dd(),i=r.$j()?$N(e,3,r,null,a,eN1(e,r,a,M4(r,99)&&(Pp(r,18).Bb&eH3)!=0),!0):$N(e,1,r,r.zj(),a,-1,!0),n?n.Ei(i):n=i,n}function ey0(){var e,t,n;for(e=0,t=0;e<1;e++){if(0==(n=eTa((GV(e,1),"X".charCodeAt(e)))))throw p7(new gX("Unknown Option: "+"X".substr(e)));t|=n}return t}function ey2(e,t,n){var r,i,a;switch(i=el0(r=Bq(t)),a=new eES,Gc(a,t),n.g){case 1:ekv(a,elC(ef8(i)));break;case 2:ekv(a,ef8(i))}return eo3(a,(eBy(),toc),LV(e_k(e,toc))),a}function ey3(e){var t,n;return t=Pp(ZC(new Fa(OH(efu(e.a).a.Kc(),new c))),17),n=Pp(ZC(new Fa(OH(efc(e.a).a.Kc(),new c))),17),gN(LK(e_k(t,(eBU(),tnE))))||gN(LK(e_k(n,tnE)))}function ey4(){ey4=A,ter=new Sa("ONE_SIDE",0),tea=new Sa("TWO_SIDES_CORNER",1),teo=new Sa("TWO_SIDES_OPPOSING",2),tei=new Sa("THREE_SIDES",3),ten=new Sa("FOUR_SIDES",4)}function ey6(e,t,n,r,i){var a,o;a=Pp(qE(UJ(t.Oc(),new ih),JF(new U,new B,new en,eow(vx(e2L,1),eU4,132,0,[(eum(),e2U)]))),15),o=Pp(eay(e.b,n,r),15),0==i?o.Wc(0,a):o.Gc(a)}function ey5(e,t){var n,r,i,a,o;for(a=new fz(t.a);a.a0&&egL(this,this.c-1,(eYu(),tby)),this.c0&&e[0].length>0&&(this.c=gN(LK(e_k(Bq(e[0][0]),(eBU(),tne))))),this.a=Je(e6d,eUP,2018,e.length,0,2),this.b=Je(e6h,eUP,2019,e.length,0,2),this.d=new euX}function ewu(e){return 0!=e.c.length&&((GK(0,e.c.length),Pp(e.c[0],17)).c.i.k==(eEn(),e9D)||q3(UQ(new R1(null,new Gq(e,16)),new iJ),new iQ))}function ewc(e,t,n){return ewG(n,"Tree layout",1),Kx(e.b),Yb(e.b,(egR(),tuJ),tuJ),Yb(e.b,tuQ,tuQ),Yb(e.b,tu1,tu1),Yb(e.b,tu0,tu0),e.a=eRq(e.b,t),eAG(e,t,eiI(n,1)),eEj(n),t}function ewl(e,t){var n,r,i,a,o,s,u;for(s=eLj(t),a=t.f,u=t.g,o=eB4.Math.sqrt(a*a+u*u),i=0,r=new fz(s);r.a=0?(n=eyt(e,eHK),r=edQ(e,eHK)):(n=eyt(t=Fy(e,1),5e8),r=eft(Fg(r=edQ(t,5e8),1),WM(e,1))),WO(Fg(r,32),WM(n,eH9))}function ewM(e,t,n){var r,i;switch(r=(A5(0!=t.b),Pp(etw(t,t.a.a),8)),n.g){case 0:r.b=0;break;case 2:r.b=e.f;break;case 3:r.a=0;break;default:r.a=e.g}return YU(i=epL(t,0),r),t}function ewO(e,t,n,r){var i,a,o,s,u;switch(u=e.b,s=epd(o=(a=t.d).j,u.d[o.g],n),i=C6(MB(a.n),a.a),a.j.g){case 1:case 3:s.a+=i.a;break;case 2:case 4:s.b+=i.b}qQ(r,s,r.c.b,r.c)}function ewA(e,t,n){var r,i,a,o;for(o=QI(e.e,t,0),(a=new ma).b=n,r=new KB(e.e,o);r.b1;t>>=1)(1&t)!=0&&(r=eeD(r,n)),n=1==n.d?eeD(n,n):new eh6(eDE(n.a,n.d,Je(ty_,eHT,25,n.d<<1,15,1)));return eeD(r,n)}function ewP(){var e,t,n,r;for(t=32,ewP=A,e2v=Je(tyx,eH6,25,25,15,1),e2y=Je(tyx,eH6,25,33,15,1),r=152587890625e-16;t>=0;t--)e2y[t]=r,r*=.5;for(e=24,n=1;e>=0;e--)e2v[e]=n,n*=.5}function ewR(e){var t,n;if(gN(LK(eT9(e,(eBy(),taI))))){for(n=new Fa(OH(eOi(e).a.Kc(),new c));eTk(n);)if(t=Pp(ZC(n),79),exb(t)&&gN(LK(eT9(t,taD))))return!0}return!1}function ewj(e,t){var n,r,i;Yf(e.f,t)&&(t.b=e,r=t.c,-1!=QI(e.j,r,0)||P_(e.j,r),i=t.d,-1!=QI(e.j,i,0)||P_(e.j,i),0!=(n=t.a.b).c.length&&(e.i||(e.i=new epS(e)),ea_(e.i,n)))}function ewF(e){var t,n,r,i,a;return(r=(n=e.c.d).j)==(a=(i=e.d.d).j)?n.p=0&&IE(e.substr(t,3),"GMT")?(n[0]=t+3,eDh(e,n,r)):(t>=0&&IE(e.substr(t,3),"UTC")&&(n[0]=t+3),eDh(e,n,r))}function ewz(e,t){var n,r,i,a,o;for(a=e.g.a,o=e.g.b,r=new fz(e.d);r.an;a--)e[a]|=t[a-n-1]>>>o,e[a-1]=t[a-n-1]<=e.f)break;a.c[a.c.length]=n}return a}function ew1(e){var t,n,r,i;for(t=null,i=new fz(e.wf());i.a0&&ePD(e.g,t,e.g,t+r,s),o=n.Kc(),e.i+=r,i=0;ia&&F5(c,ee6(n[s],e2h))&&(i=s,a=u);return i>=0&&(r[0]=t+a),i}function ew8(e,t){var n;if(0!=(n=To(e.b.Hf(),t.b.Hf())))return n;switch(e.b.Hf().g){case 1:case 2:return ME(e.b.sf(),t.b.sf());case 3:case 4:return ME(t.b.sf(),e.b.sf())}return 0}function ew9(e){var t,n,r;for(r=e.e.c.length,e.a=RF(ty_,[eUP,eHT],[48,25],15,[r,r],2),n=new fz(e.c);n.a>4&15,a=15&e[r],o[i++]=tmk[n],o[i++]=tmk[a];return ehv(o,0,o.length)}function e_t(e,t,n){var r,i,a;return r=t.ak(),a=t.dd(),i=r.$j()?$N(e,4,r,a,null,eN1(e,r,a,M4(r,99)&&(Pp(r,18).Bb&eH3)!=0),!0):$N(e,r.Kj()?2:1,r,a,r.zj(),-1,!0),n?n.Ei(i):n=i,n}function e_n(e){var t,n;return e>=eH3?(t=eH4+(e-eH3>>10&1023)&eHd,n=56320+(e-eH3&1023)&eHd,String.fromCharCode(t)+""+String.fromCharCode(n)):String.fromCharCode(e&eHd)}function e_r(e,t){var n,r,i,a;return Cn(),(i=Pp(Pp(Zq(e.r,t),21),84)).gc()>=2&&(r=Pp(i.Kc().Pb(),111),n=e.u.Hc((ekU(),tbh)),a=e.u.Hc(tbg),!r.a&&!n&&(2==i.gc()||a))}function e_i(e,t,n,r,i){var a,o,s;for(a=eLx(e,t,n,r,i),s=!1;!a;)eME(e,i,!0),s=!0,a=eLx(e,t,n,r,i);s&&eME(e,i,!1),0!=(o=eoA(i)).c.length&&(e.d&&e.d.lg(o),e_i(e,i,n,r,o))}function e_a(){e_a=A,tpN=new km(eGR,0),tpI=new km("DIRECTED",1),tpP=new km("UNDIRECTED",2),tpL=new km("ASSOCIATION",3),tpD=new km("GENERALIZATION",4),tpC=new km("DEPENDENCY",5)}function e_o(e,t){var n;if(!zY(e))throw p7(new gC(eZL));switch(n=zY(e),t.g){case 1:return-(e.j+e.f);case 2:return e.i-n.g;case 3:return e.j-n.f;case 4:return-(e.i+e.g)}return 0}function e_s(e,t){var n,r;for(BJ(t),r=e.b.c.length,P_(e.b,t);r>0;){if(n=r,r=(r-1)/2|0,0>=e.a.ue(RJ(e.b,r),t))return q1(e.b,n,t),!0;q1(e.b,n,RJ(e.b,r))}return q1(e.b,r,t),!0}function e_u(e,t,n,r){var i,a;if(i=0,n)i=euW(e.a[n.g][t.g],r);else for(a=0;a=s)}function e_l(e,t,n,r){var i;if(i=!1,xd(r)&&(i=!0,P4(t,n,Lq(r))),!i&&xl(r)&&(i=!0,e_l(e,t,n,r)),!i&&M4(r,236)&&(i=!0,H1(t,n,Pp(r,236))),!i)throw p7(new gk(eXE))}function e_f(e,t){var n,r,i;if((n=t.Hh(e.a))&&null!=(i=edW((n.b||(n.b=new L_((eBK(),tgF),tgf,n)),n.b),eQe))){for(r=1;r<(eSp(),tvs).length;++r)if(IE(tvs[r],i))return r}return 0}function e_d(e,t){var n,r,i;if((n=t.Hh(e.a))&&null!=(i=edW((n.b||(n.b=new L_((eBK(),tgF),tgf,n)),n.b),eQe))){for(r=1;r<(eSp(),tvu).length;++r)if(IE(tvu[r],i))return r}return 0}function e_h(e,t){var n,r,i,a;if(BJ(t),(a=e.a.gc())0?1:0;a.a[i]!=n;)a=a.a[i],i=e.a.ue(n.d,a.d)>0?1:0;a.a[i]=r,r.b=n.b,r.a[0]=n.a[0],r.a[1]=n.a[1],n.a[0]=null,n.a[1]=null}function e_y(e){var t,n;return ekU(),t=jL(tbp,eow(vx(e5i,1),eU4,273,0,[tbm])),!(eaC(z_(t,e))>1)&&(n=jL(tbh,eow(vx(e5i,1),eU4,273,0,[tbd,tbg])),!(eaC(z_(n,e))>1))}function e_w(e,t){var n;M4(n=zg((_Q(),tgp),e),498)?Ge(tgp,e,new k6(this,t)):Ge(tgp,e,this),e_9(this,t),t==(yO(),tgg)?(this.wb=Pp(this,1939),Pp(t,1941)):this.wb=(BM(),tgv)}function e__(e){var t,n,r;if(null==e)return null;for(n=0,t=null;n=eHf?"error":r>=900?"warn":r>=800?"info":"log",e.a),e.b&&eAp(t,n,e.b,"Exception: ",!0))}function e_k(e,t){var n,r;return null!=(r=(e.q||(e.q=new p2),Bp(e.q,t)))?r:(M4(n=t.wg(),4)&&(null==n?(e.q||(e.q=new p2),Z3(e.q,t)):(e.q||(e.q=new p2),Um(e.q,t,n))),n)}function e_x(){e_x=A,e9e=new Ez("P1_CYCLE_BREAKING",0),e9t=new Ez("P2_LAYERING",1),e9n=new Ez("P3_NODE_ORDERING",2),e9r=new Ez("P4_NODE_PLACEMENT",3),e9i=new Ez("P5_EDGE_ROUTING",4)}function e_T(e,t){var n,r,i,a,o;for(r=(i=1==t?e9c:e9u).a.ec().Kc();r.Ob();)for(n=Pp(r.Pb(),103),o=Pp(Zq(e.f.c,n),21).Kc();o.Ob();)a=Pp(o.Pb(),46),QA(e.b.b,a.b),QA(e.b.a,Pp(a.b,81).d)}function e_M(e,t){var n;if(eeP(),e.c!=t.c)return elN(e.c,t.c);if(e.b==t.b||eiS(e.b,t.b)){if(n=Tu(e.b)?1:-1,e.a&&!t.a)return n;if(!e.a&&t.a)return-n}return ME(e.b.g,t.b.g)}function e_O(e,t){var n;ewG(t,"Hierarchical port position processing",1),(n=e.b).c.length>0&&eI5((GK(0,n.c.length),Pp(n.c[0],29)),e),n.c.length>1&&eI5(Pp(RJ(n,n.c.length-1),29),e),eEj(t)}function e_A(e,t){var n,r,i;if(e_Y(e,t))return!0;for(r=new fz(t);r.a=(i=e.Vi())||t<0)throw p7(new gE(eXU+t+eXH+i));if(n>=i||n<0)throw p7(new gE(eX$+n+eXH+i));return t!=n?(a=e.Ti(n),e.Hi(t,a),a):e.Oi(n)}function e_j(e){var t,n,r;if(r=e,e)for(t=0,n=e.Ug();n;n=n.Ug()){if(++t>eH5)return e_j(n);if(r=n,n==e)throw p7(new gC("There is a cycle in the containment hierarchy of "+e))}return r}function e_F(e){var t,n,r;for(r=new eaP(eUd,"[","]"),n=e.Kc();n.Ob();)ZJ(r,xc(t=n.Pb())===xc(e)?"(this Collection)":null==t?eUg:efF(t));return r.a?0==r.e.length?r.a.a:r.a.a+""+r.e:r.c}function e_Y(e,t){var n,r;if(r=!1,2>t.gc())return!1;for(n=0;n=e.charCodeAt(r));)++r;for(t=n;t>r&&(GV(t-1,e.length),32>=e.charCodeAt(t-1));)--t;return r>0||t1&&(e.j.b+=e.e)):(e.j.a+=n.a,e.j.b=eB4.Math.max(e.j.b,n.b),e.d.c.length>1&&(e.j.a+=e.e))}function e_z(){e_z=A,tec=eow(vx(e5a,1),eGj,61,0,[(eYu(),tbw),tby,tbj]),teu=eow(vx(e5a,1),eGj,61,0,[tby,tbj,tbY]),tel=eow(vx(e5a,1),eGj,61,0,[tbj,tbY,tbw]),tef=eow(vx(e5a,1),eGj,61,0,[tbY,tbw,tby])}function e_G(e,t,n,r){var i,a,o,s,u,c,l;if(o=e.c.d,s=e.d.d,o.j!=s.j)for(l=e.b,i=o.j,u=null;i!=s.j;)u=0==t?elI(i):elL(i),P7(r,C6(a=epd(i,l.d[i.g],n),c=epd(u,l.d[u.g],n))),i=u}function e_W(e,t,n,r){var i,a,o,s,u;return o=egN(e.a,t,n),s=Pp(o.a,19).a,a=Pp(o.b,19).a,r&&(u=Pp(e_k(t,(eBU(),tng)),10),i=Pp(e_k(n,tng),10),u&&i&&(V5(e.b,u,i),s+=e.b.i,a+=e.b.e)),s>a}function e_K(e){var t,n,r,i,a,o,s,u,c;for(r=0,this.a=ebb(e),this.b=new p0,i=(n=e).length;rL7(e.d).c?(e.i+=e.g.c,ed3(e.d)):L7(e.d).c>L7(e.g).c?(e.e+=e.d.c,ed3(e.g)):(e.i+=R5(e.g),e.e+=R5(e.d),ed3(e.g),ed3(e.d))}function e_X(e,t,n){var r,i,a,o;for(a=t.q,o=t.r,new GT((Xa(),tuU),t,a,1),new GT(tuU,a,o,1),i=new fz(n);i.as&&(u=s/r),i>a&&(c=a/i),o=eB4.Math.min(u,c),e.a+=o*(t.a-e.a),e.b+=o*(t.b-e.b)}function e_6(e,t,n,r,i){var a,o;for(o=!1,a=Pp(RJ(n.b,0),33);eNK(e,t,a,r,i)&&(o=!0,eyL(n,a),0!=n.b.c.length);)a=Pp(RJ(n.b,0),33);return 0==n.b.c.length&&eva(n.j,n),o&&emG(t.q),o}function e_5(e,t){var n,r,i,a;if(eLG(),t.b<2)return!1;for(r=n=Pp(Vv(a=epL(t,0)),8);a.b!=a.d.c;){if(eOV(e,r,i=Pp(Vv(a),8)))return!0;r=i}return!!eOV(e,r,n)}function e_8(e,t,n,r){var i,a;return 0==n?(e.o||(e.o=new JY((eBa(),tmy),e5O,e,0)),Iz(e.o,t,r)):(a=Pp(ee2((i=Pp(eaS(e,16),26))||e.zh(),n),66)).Nj().Rj(e,ehH(e),n-Y1(e.zh()),t,r)}function e_9(e,t){var n;t!=e.sb?(n=null,e.sb&&(n=Pp(e.sb,49).ih(e,1,e5w,n)),t&&(n=Pp(t,49).gh(e,1,e5w,n)),(n=ecY(e,t,n))&&n.Fi()):(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new FX(e,1,4,t,t))}function e_7(e,t){var n,r,i,a;if(t)i=enm(t,"x"),enr((n=new pa(e)).a,(BJ(i),i)),a=enm(t,"y"),enc((r=new po(e)).a,(BJ(a),a));else throw p7(new gK("All edge sections need an end point."))}function eEe(e,t){var n,r,i,a;if(t)i=enm(t,"x"),enu((n=new pn(e)).a,(BJ(i),i)),a=enm(t,"y"),enl((r=new pr(e)).a,(BJ(a),a));else throw p7(new gK("All edge sections need a start point."))}function eEt(e,t){var n,r,i,a,o,s,u;for(r=es1(e),a=0,s=r.length;a>22-t,i=e.h<>22-t):t<44?(n=0,r=e.l<>44-t):(n=0,r=0,i=e.l<e))return 0==t||t==e?1:0==e?0:ev5(e)/(ev5(t)*ev5(e-t));throw p7(new gL("k must be smaller than n"))}function eEh(e,t){var n,r,i,a;for(n=new TY(e);null!=n.g||n.c?null==n.g||0!=n.i&&Pp(n.g[n.i-1],47).Ob():zW(n);)if(M4(a=Pp(eM6(n),56),160))for(i=0,r=Pp(a,160);i>4],t[2*n+1]=tv0[15&a];return ehv(t,0,t.length)}function eEA(e){var t,n,r;switch(U_(),r=e.c.length){case 0:return e0p;case 1:return P2((t=Pp(ekM(new fz(e)),42)).cd(),t.dd());default:return n=Pp(epg(e,Je(e1$,eUK,42,e.c.length,0,1)),165),new gt(n)}}function eEL(e){var t,n,r,i,a,o;for(t=new p1,n=new p1,Vw(t,e),Vw(n,e);n.b!=n.c;)for(i=Pp(Yn(n),37),o=new fz(i.a);o.a0&&eIl(e,n,t),i):exV(e,t,n)}function eEN(e,t,n){var r,i,a,o;if(0!=t.b){for(r=new _n,o=epL(t,0);o.b!=o.d.c;)er7(r,eoO(a=Pp(Vv(o),86))),(i=a.e).a=Pp(e_k(a,(eR5(),tcg)),19).a,i.b=Pp(e_k(a,tcv),19).a;eEN(e,r,eiI(n,r.b/e.a|0))}}function eEP(e,t){var n,r,i,a,o;if(e.e<=t||Wm(e,e.g,t))return e.g;for(a=e.r,r=e.g,o=e.r,i=(a-r)/2+r;r+11&&(e.e.b+=e.a)):(e.e.a+=n.a,e.e.b=eB4.Math.max(e.e.b,n.b),e.d.c.length>1&&(e.e.a+=e.a))}function eEH(e){var t,n,r,i;switch(t=(i=e.i).b,r=i.j,n=i.g,i.a.g){case 0:n.a=(e.g.b.o.a-r.a)/2;break;case 1:n.a=t.d.n.a+t.d.a.a;break;case 2:n.a=t.d.n.a+t.d.a.a-r.a;break;case 3:n.b=t.d.n.b+t.d.a.b}}function eE$(e,t,n,r,i){if(rr&&(e.a=r),e.bi&&(e.b=i),e}function eEz(e){if(M4(e,149))return eAi(Pp(e,149));if(M4(e,229))return efZ(Pp(e,229));if(M4(e,23))return eEa(Pp(e,23));throw p7(new gL(eXx+e_F(new g$(eow(vx(e1R,1),eUp,1,5,[e])))))}function eEG(e,t,n,r,i){var a,o,s;for(o=0,a=!0;o>>i|n[o+r+1]<>>i,++o}return a}function eEW(e,t,n,r){var i,a,o;if(t.k==(eEn(),e9D)){for(a=new Fa(OH(efu(t).a.Kc(),new c));eTk(a);)if((o=(i=Pp(ZC(a),17)).c.i.k)==e9D&&e.c.a[i.c.i.c.p]==r&&e.c.a[t.c.p]==n)return!0}return!1}function eEK(e,t){var n,r,i,a;return t&=63,n=e.h&eH$,t<22?(a=n>>>t,i=e.m>>t|n<<22-t,r=e.l>>t|e.m<<22-t):t<44?(a=0,i=n>>>t-22,r=e.m>>t-22|e.h<<44-t):(a=0,i=0,r=n>>>t-44),Mk(r&eHH,i&eHH,a&eH$)}function eEV(e,t,n,r){var i;this.b=r,this.e=e==(enU(),tui),i=t[n],this.d=RF(tyE,[eUP,e$6],[177,25],16,[i.length,i.length],2),this.a=RF(ty_,[eUP,eHT],[48,25],15,[i.length,i.length],2),this.c=new ewo(t,n)}function eEq(e){var t,n,r;for(e.k=new G$((eYu(),eow(vx(e5a,1),eGj,61,0,[tbF,tbw,tby,tbj,tbY])).length,e.j.c.length),r=new fz(e.j);r.a=n)return eE6(e,t,r.p),!0;return!1}function eE1(e){var t;return(64&e.Db)!=0?eEp(e):(t=new O0(eZ$),e.a&&xM(xM((t.a+=' "',t),e.a),'"'),xM(yW(xM(yW(xM(yW(xM(yW((t.a+=" (",t),e.i),","),e.j)," | "),e.g),","),e.f),")"),t.a)}function eE0(e,t,n){var r,i,a,o,s;for(o=0,s=eAY(e.e.Tg(),t),i=Pp(e.g,119),r=0;on?eS1(e,n,"start index"):t<0||t>n?eS1(t,n,"end index"):eCG("end index (%s) must not be less than start index (%s)",eow(vx(e1R,1),eUp,1,5,[ell(t),ell(e)]))}function eE4(e,t){var n,r,i,a;for(r=0,i=e.length;r0&&eE8(e,a,n));t.p=0}function eE9(e){var t;this.c=new _n,this.f=e.e,this.e=e.d,this.i=e.g,this.d=e.c,this.b=e.b,this.k=e.j,this.a=e.a,e.i?this.j=e.i:this.j=(t=Pp(yw(e6Q),9),new I1(t,Pp(CY(t,t.length),9),0)),this.g=e.f}function eE7(e){var t,n,r,i;for(t=Bd(xM(new O0("Predicates."),"and"),40),n=!0,i=new fE(e);i.b0?s[o-1]:Je(e4N,eGW,10,0,0,1),i=s[o],c=o=0?e.Bh(i):ekN(e,r);else throw p7(new gL(eZV+r.ne()+eZq))}else throw p7(new gL(eZJ+t+eZQ))}else ec5(e,n,r)}function eSa(e){var t,n;if(n=null,t=!1,M4(e,204)&&(t=!0,n=Pp(e,204).a),!t&&M4(e,258)&&(t=!0,n=""+Pp(e,258).a),!t&&M4(e,483)&&(t=!0,n=""+Pp(e,483).a),!t)throw p7(new gk(eXE));return n}function eSo(e,t){var n,r;if(!e.f)return t.Ob();for(;t.Ob();)if(M4(r=(n=Pp(t.Pb(),72)).ak(),99)&&(Pp(r,18).Bb&eZ1)!=0&&(!e.e||r.Gj()!=e5d||0!=r.aj())&&null!=n.dd())return t.Ub(),!0;return!1}function eSs(e,t){var n,r;if(!e.f)return t.Sb();for(;t.Sb();)if(M4(r=(n=Pp(t.Ub(),72)).ak(),99)&&(Pp(r,18).Bb&eZ1)!=0&&(!e.e||r.Gj()!=e5d||0!=r.aj())&&null!=n.dd())return t.Pb(),!0;return!1}function eSu(e,t,n){var r,i,a,o,s,u;for(o=0,u=eAY(e.e.Tg(),t),r=0,s=e.i,i=Pp(e.g,119);o1&&(t.c[t.c.length]=a)}function eSf(e){var t,n,r,i;for(er7(n=new _n,e.o),r=new mc;0!=n.b;)(i=eYP(e,t=Pp(0==n.b?null:(A5(0!=n.b),etw(n,n.a.a)),508),!0))&&P_(r.a,t);for(;0!=r.a.c.length;)eYP(e,t=Pp(euO(r),508),!1)}function eSd(){eSd=A,tdS=new ks(ezo,0),tdm=new ks("BOOLEAN",1),tdw=new ks("INT",2),tdE=new ks("STRING",3),tdg=new ks("DOUBLE",4),tdv=new ks("ENUM",5),tdy=new ks("ENUMSET",6),td_=new ks("OBJECT",7)}function eSh(e,t){var n,r,i,a,o;r=eB4.Math.min(e.c,t.c),a=eB4.Math.min(e.d,t.d),i=eB4.Math.max(e.c+e.b,t.c+t.b),o=eB4.Math.max(e.d+e.a,t.d+t.a),i=(i/2|0))for(this.e=r?r.c:null,this.d=i;n++0;)Gi(this);this.b=t,this.a=null}function eSk(e,t){var n,r;t.a?eAk(e,t):((n=Pp(Ik(e.b,t.b),57))&&n==e.a[t.b.f]&&n.a&&n.a!=t.b.a&&n.c.Fc(t.b),(r=Pp(IS(e.b,t.b),57))&&e.a[r.f]==t.b&&r.a&&r.a!=t.b.a&&t.b.c.Fc(r),Ai(e.b,t.b))}function eSx(e,t){var n,r;if(n=Pp(UA(e.b,t),124),Pp(Pp(Zq(e.r,t),21),84).dc()){n.n.b=0,n.n.c=0;return}n.n.b=e.C.b,n.n.c=e.C.c,e.A.Hc((ed5(),tbq))&&eCD(e,t),r=ebi(e,t),eLZ(e,t)==(epT(),tbt)&&(r+=2*e.w),n.a.a=r}function eST(e,t){var n,r;if(n=Pp(UA(e.b,t),124),Pp(Pp(Zq(e.r,t),21),84).dc()){n.n.d=0,n.n.a=0;return}n.n.d=e.C.d,n.n.a=e.C.a,e.A.Hc((ed5(),tbq))&&eCN(e,t),r=eba(e,t),eLZ(e,t)==(epT(),tbt)&&(r+=2*e.w),n.a.b=r}function eSM(e,t){var n,r,i,a;for(a=new p0,r=new fz(t);r.aeB4.Math.abs(r-i))}function eSU(e,t,n){var r,i,a,o,s,u;if(null!=(s=Pp(eaS(e.a,8),1936)))for(a=0,o=(i=s).length;an.a&&(r.Hc((eyY(),tdW))?i=(t.a-n.a)/2:r.Hc(tdV)&&(i=t.a-n.a)),t.b>n.b&&(r.Hc((eyY(),tdZ))?a=(t.b-n.b)/2:r.Hc(tdq)&&(a=t.b-n.b)),e_g(e,i,a)}function eSJ(e,t,n,r,i,a,o,s,u,c,l,f,d){M4(e.Cb,88)&&eko(Zd(Pp(e.Cb,88)),4),er3(e,n),e.f=o,elY(e,s),elU(e,u),elF(e,c),elB(e,l),els(e,f),elZ(e,d),eli(e,!0),end(e,i),e.ok(a),eu2(e,t),null!=r&&(e.i=null,erA(e,r))}function eSQ(e){var t,n;if(!e.f)return e.n>0;for(;e.n>0;){if(M4(n=(t=Pp(e.k.Xb(e.n-1),72)).ak(),99)&&(Pp(n,18).Bb&eZ1)!=0&&(!e.e||n.Gj()!=e5d||0!=n.aj())&&null!=t.dd())return!0;--e.n}return!1}function eS1(e,t,n){if(e<0)return eCG(eUh,eow(vx(e1R,1),eUp,1,5,[n,ell(e)]));if(!(t<0))return eCG("%s (%s) must not be greater than size (%s)",eow(vx(e1R,1),eUp,1,5,[n,ell(e),ell(t)]));throw p7(new gL(eUb+t))}function eS0(e,t,n,r,i,a){var o,s,u,c;if((o=r-n)<7){efA(t,n,r,a);return}if(c=(u=n+i)+((s=r+i)-u>>1),eS0(t,e,u,c,-i,a),eS0(t,e,c,s,-i,a),0>=a.ue(e[c-1],e[c])){for(;n=0?e.sh(a,n):eOh(e,i,n);else throw p7(new gL(eZV+i.ne()+eZq))}else throw p7(new gL(eZJ+t+eZQ))}else efL(e,r,i,n)}function eS5(e){var t,n,r,i;if(n=Pp(e,49).qh())try{if(r=null,(t=eMC((_Q(),tgp),eDv(efR(n))))&&(i=t.rh())&&(r=i.Wk(gF(n.e))),r&&r!=e)return eS5(r)}catch(a){if(a=eoa(a),!M4(a,60))throw p7(a)}return e}function eS8(e,t,n){var r,i,a,o;if(o=null==t?0:e.b.se(t),0==(i=null==(r=e.a.get(o))?[]:r).length)e.a.set(o,i);else if(a=euj(e,t,i))return a.ed(n);return Bc(i,i.length,new EE(t,n)),++e.c,$c(e.b),null}function eS9(e,t){var n,r;return Kx(e.a),Yb(e.a,(erZ(),tcq),tcq),Yb(e.a,tcZ,tcZ),r=new K2,RI(r,tcZ,(efx(),tc1)),xc(eT9(t,(egj(),tlf)))!==xc((eub(),tc6))&&RI(r,tcZ,tcJ),RI(r,tcZ,tcQ),Tb(e.a,r),n=eRq(e.a,t)}function eS7(e){if(!e)return g3(),e0M;var t=e.valueOf?e.valueOf():e;if(t!==e){var n=e0O[typeof t];return n?n(t):euV(typeof t)}return e instanceof Array||e instanceof eB4.Array?new lL(e):new lD(e)}function eke(e,t,n){var r,i,a;switch(a=e.o,(i=(r=Pp(UA(e.p,n),244)).i).b=ek0(r),i.a=ek1(r),i.b=eB4.Math.max(i.b,a.a),i.b>a.a&&!t&&(i.b=a.a),i.c=-(i.b-a.a)/2,n.g){case 1:i.d=-i.a;break;case 3:i.d=a.b}eNE(r),eNM(r)}function ekt(e,t,n){var r,i,a;switch(a=e.o,(i=(r=Pp(UA(e.p,n),244)).i).b=ek0(r),i.a=ek1(r),i.a=eB4.Math.max(i.a,a.b),i.a>a.b&&!t&&(i.a=a.b),i.d=-(i.a-a.b)/2,n.g){case 4:i.c=-i.b;break;case 2:i.c=a.a}eNE(r),eNM(r)}function ekn(e,t){var n,r,i,a,o;if(!t.dc()){if(i=Pp(t.Xb(0),128),1==t.gc()){eA1(e,i,i,1,0,t);return}for(n=1;n0)try{i=eDa(t,eHt,eUu)}catch(a){if(a=eoa(a),M4(a,127))throw r=a,p7(new QH(r));throw p7(a)}return i<(n=(e.a||(e.a=new pK(e)),e.a)).i&&i>=0?Pp(etj(n,i),56):null}function eku(e,t){if(e<0)return eCG(eUh,eow(vx(e1R,1),eUp,1,5,["index",ell(e)]));if(!(t<0))return eCG("%s (%s) must be less than size (%s)",eow(vx(e1R,1),eUp,1,5,["index",ell(e),ell(t)]));throw p7(new gL(eUb+t))}function ekc(e){var t,n,r,i,a;if(null==e)return eUg;for(r=0,a=new eaP(eUd,"[","]"),i=(n=e).length;re.a.ue(RJ(e.b,o),RJ(e.b,a))&&(s=o),s),!(0>e.a.ue(i,RJ(e.b,r))));)q1(e.b,t,RJ(e.b,r)),t=r;q1(e.b,t,i)}function ekp(e,t,n,r,i,a){var o,s,u,c,l;for(xc(e)===xc(n)&&(e=e.slice(t,t+i),t=0),u=n,s=t,c=t+i;s0)for(o=e.c.d,s=e.d.d,i=Ol(C5(new kl(s.a,s.b),o),1/(r+1)),a=new kl(o.a,o.b),n=new fz(e.a);n.a=0?e._g(n,!0,!0):exk(e,i,!0),153),Pp(r,215).ol(t);else throw p7(new gL(eZV+t.ne()+eZq))}function ekP(e){var t,n;return e>-140737488355328&&e<0x800000000000?0==e?0:((t=e<0)&&(e=-e),n=zy(eB4.Math.floor(eB4.Math.log(e)/.6931471805599453)),(!t||e!=eB4.Math.pow(2,n))&&++n,n):eaJ(eap(e))}function ekR(e){var t,n,r,i,a,o,s;for(a=new Tw,n=new fz(e);n.a2&&s.e.b+s.j.b<=2&&(i=s,r=o),a.a.zc(i,a),i.q=r);return a}function ekj(e,t){var n,r,i;return r=new eb$(e),eaW(r,t),eo3(r,(eBU(),ttQ),t),eo3(r,(eBy(),tol),(ewf(),tbo)),eo3(r,tiq,(ebx(),tdA)),lK(r,(eEn(),e9C)),n=new eES,Gc(n,r),ekv(n,(eYu(),tbY)),i=new eES,Gc(i,r),ekv(i,tby),r}function ekF(e){switch(e.g){case 0:return new gx((enU(),tur));case 1:return new cC;case 2:return new cF;default:throw p7(new gL("No implementation is available for the crossing minimizer "+(null!=e.f?e.f:""+e.g)))}}function ekY(e,t){var n,r,i,a,o;for(e.c[t.p]=!0,P_(e.a,t),o=new fz(t.j);o.a=(a=o.gc()))o.$b();else for(r=0,i=o.Kc();r0?g6():o<0&&ekJ(e,t,-o),!0)}function ek1(e){var t,n,r,i,a,o,s;if(s=0,0==e.b){for(i=0,o=eb4(e,!0),t=0,a=(r=o).length;i0&&(s+=n,++t);t>1&&(s+=e.c*(t-1))}else s=vy(eib(U1(UJ(Yw(e.a),new eS),new ek)));return s>0?s+e.n.d+e.n.a:0}function ek0(e){var t,n,r,i,a,o,s;if(s=0,0==e.b)s=vy(eib(U1(UJ(Yw(e.a),new e_),new eE)));else{for(i=0,o=eb6(e,!0),t=0,a=(r=o).length;i0&&(s+=n,++t);t>1&&(s+=e.c*(t-1))}return s>0?s+e.n.b+e.n.c:0}function ek2(e,t){var n,r,i,a;for(n=(a=Pp(UA(e.b,t),124)).a,i=Pp(Pp(Zq(e.r,t),21),84).Kc();i.Ob();)(r=Pp(i.Pb(),111)).c&&(n.a=eB4.Math.max(n.a,Rd(r.c)));if(n.a>0)switch(t.g){case 2:a.n.c=e.s;break;case 4:a.n.b=e.s}}function ek3(e,t){var n,r,i;return 0==(n=Pp(e_k(t,(eCk(),e8M)),19).a-Pp(e_k(e,e8M),19).a)?(r=C5(MB(Pp(e_k(e,(erV(),e8P)),8)),Pp(e_k(e,e8R),8)),i=C5(MB(Pp(e_k(t,e8P),8)),Pp(e_k(t,e8R),8)),elN(r.a*r.b,i.a*i.b)):n}function ek4(e,t){var n,r,i;return 0==(n=Pp(e_k(t,(eTj(),tcD)),19).a-Pp(e_k(e,tcD),19).a)?(r=C5(MB(Pp(e_k(e,(eR5(),tce)),8)),Pp(e_k(e,tct),8)),i=C5(MB(Pp(e_k(t,tce),8)),Pp(e_k(t,tct),8)),elN(r.a*r.b,i.a*i.b)):n}function ek6(e){var t,n;return n=new vc,n.a+="e_",null!=(t=eaZ(e))&&(n.a+=""+t),e.c&&e.d&&(xM((n.a+=" ",n),egu(e.c)),xM(xT((n.a+="[",n),e.c.i),"]"),xM((n.a+=eGH,n),egu(e.d)),xM(xT((n.a+="[",n),e.d.i),"]")),n.a}function ek5(e){switch(e.g){case 0:return new cD;case 1:return new cN;case 2:return new cI;case 3:return new cP;default:throw p7(new gL("No implementation is available for the layout phase "+(null!=e.f?e.f:""+e.g)))}}function ek8(e,t,n,r,i){var a;switch(a=0,i.g){case 1:a=eB4.Math.max(0,t.b+e.b-(n.b+r));break;case 3:a=eB4.Math.max(0,-e.b-r);break;case 2:a=eB4.Math.max(0,-e.a-r);break;case 4:a=eB4.Math.max(0,t.a+e.a-(n.a+r))}return a}function ek9(e,t,n){var r,i,a,o,s;if(n)for(i=n.a.length,s=((r=new Fs(i)).b-r.a)*r.c<0?(_8(),eB3):new OR(r);s.Ob();)eXh in(a=KZ(n,(o=Pp(s.Pb(),19)).a)).a||eXp in a.a?eId(e,a,t):eBe(e,a,t),Om(Pp(Bp(e.b,ehM(a)),79))}function ek7(e){var t,n;switch(e.b){case -1:return!0;case 0:if((n=e.t)>1||-1==n||(t=evl(e))&&(_4(),t.Cj()==eJK))return e.b=-1,!0;return e.b=1,!1;default:return!1}}function exe(e,t){var n,r,i,a,o;for(i=0,r=(t.s||(t.s=new FQ(tm5,t,21,17)),t.s),a=null,o=r.i;i=0&&r=0?e._g(n,!0,!0):exk(e,i,!0),153),Pp(r,215).ll(t);throw p7(new gL(eZV+t.ne()+eZX))}function exc(){var e;return(_5(),tg8)?Pp(eMC((_Q(),tgp),eQc),1939):(x2(e1$,new ut),ej8(),e=Pp(M4(zg((_Q(),tgp),eQc),547)?zg(tgp,eQc):new Uh,547),tg8=!0,eBY(e),eB0(e),Um((_1(),tgm),e,new sM),Ge(tgp,eQc,e),e)}function exl(e,t){var n,r,i,a;e.j=-1,TO(e.e)?(n=e.i,a=0!=e.i,Zz(e,t),r=new Q$(e.e,3,e.c,null,t,n,a),i=t.Qk(e.e,e.c,null),(i=ey1(e,t,i))?(i.Ei(r),i.Fi()):eam(e.e,r)):(Zz(e,t),(i=t.Qk(e.e,e.c,null))&&i.Fi())}function exf(e,t){var n,r,i;if(i=0,(r=t[0])>=e.length)return -1;for(n=(GV(r,e.length),e.charCodeAt(r));n>=48&&n<=57&&(i=10*i+(n-48),!(++r>=e.length));)n=(GV(r,e.length),e.charCodeAt(r));return r>t[0]?t[0]=r:i=-1,i}function exd(e){var t,n,r,i,a;return i=Pp(e.a,19).a,a=Pp(e.b,19).a,n=i,r=a,t=eB4.Math.max(eB4.Math.abs(i),eB4.Math.abs(a)),i<=0&&i==a?(n=0,r=a-1):i==-t&&a!=t?(n=a,r=i,a>=0&&++n):(n=-a,r=i),new kD(ell(n),ell(r))}function exh(e,t,n,r){var i,a,o,s,u,c;for(i=0;i=0&&c>=0&&u=e.i)throw p7(new gE(eXU+t+eXH+e.i));if(n>=e.i)throw p7(new gE(eX$+n+eXH+e.i));return r=e.g[n],t!=n&&(t>16))>>16&16),e>>=t,n+=t=(r=e-256)>>16&8,e<<=t,n+=t=(r=e-eH0)>>16&4,e<<=t,n+=t=(r=e-eUR)>>16&2,e<<=t,n+2-(t=(r=e>>14)&~(r>>1)))}function exy(e){var t,n,r,i;for(HR(),e8n=new p0,e8t=new p2,e8e=new p0,t=(e.a||(e.a=new FQ(e5k,e,10,11)),e.a),eYE(t),i=new Ow(t);i.e!=i.i.gc();)r=Pp(epH(i),33),-1==QI(e8n,r,0)&&(n=new p0,P_(e8e,n),epi(r,n));return e8e}function exw(e,t,n){var r,i,a,o;e.a=n.b.d,M4(t,352)?(i=eLO(Pp(t,79),!1,!1),a=eEF(i),qX(a,r=new d_(e)),eNI(a,i),null!=t.We((eBB(),thg))&&qX(Pp(t.We(thg),74),r)):((o=Pp(t,470)).Hg(o.Dg()+e.a.a),o.Ig(o.Eg()+e.a.b))}function ex_(e,t){var n,r,i,a,o,s,u,c;for(s=1,c=gP(LV(e_k(t,(eBy(),toH)))),u=e[0].n.a+e[0].o.a+e[0].d.c+c;s=0)?n:(s=B$(C5(new kl(o.c+o.b/2,o.d+o.a/2),new kl(a.c+a.b/2,a.d+a.a/2))),-(eDz(a,o)-1)*s)}function exS(e,t,n){var r;_r(new R1(null,(n.a||(n.a=new FQ(e5v,n,6,6)),new Gq(n.a,16))),new kC(e,t)),_r(new R1(null,(n.n||(n.n=new FQ(e5S,n,1,7)),new Gq(n.n,16))),new kI(e,t)),(r=Pp(eT9(n,(eBB(),thg)),74))&&eil(r,e,t)}function exk(e,t,n){var r,i,a;if(a=eR3((eSp(),tvc),e.Tg(),t))return _4(),Pp(a,66).Oj()||(a=Wk(QZ(tvc,a))),i=Pp((r=e.Yg(a))>=0?e._g(r,!0,!0):exk(e,a,!0),153),Pp(i,215).hl(t,n);throw p7(new gL(eZV+t.ne()+eZX))}function exx(e,t,n,r){var i,a,o,s,u;if(i=e.d[t]){if(a=i.g,u=i.i,null!=r){for(s=0;s=n&&(r=t,o=(c=(u.c+u.a)/2)-n,u.c<=c-n&&(i=new N4(u.c,o),jO(e,r++,i)),(s=c+n)<=u.a&&(a=new N4(s,u.a),Gp(r,e.c.length),Ew(e.c,r,a)))}function exI(e){var t;if(e.c||null!=e.g){if(null==e.g)return!0;if(0==e.i)return!1;t=Pp(e.g[e.i-1],47)}else e.d=e.si(e.f),JL(e,e.d),t=e.d;return t==e.b&&null.km>=null.jm()?(eM6(e),exI(e)):t.Ob()}function exD(e,t,n){var r,i,a,o,s;if((s=n)||(s=P5(new mV,0)),ewG(s,eGA,1),ejY(e.c,t),1==(o=ejz(e.a,t)).gc())eRd(Pp(o.Xb(0),37),s);else for(a=1/o.gc(),i=o.Kc();i.Ob();)eRd(r=Pp(i.Pb(),37),eiI(s,a));vi(e.a,o,t),eL7(t),eEj(s)}function exN(e){if(this.a=e,e.c.i.k==(eEn(),e9C))this.c=e.c,this.d=Pp(e_k(e.c.i,(eBU(),tt1)),61);else if(e.d.i.k==e9C)this.c=e.d,this.d=Pp(e_k(e.d.i,(eBU(),tt1)),61);else throw p7(new gL("Edge "+e+" is not an external edge."))}function exP(e,t){var n,r,i;i=e.b,e.b=t,(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new FX(e,1,3,i,e.b)),t?t!=e&&(er3(e,t.zb),enf(e,t.d),erc(e,null==(n=null==(r=t.c)?t.zb:r)||IE(n,t.zb)?null:n)):(er3(e,null),enf(e,0),erc(e,null))}function exR(e){var t,n;if(!e.f)return e.n=(o=null==(n=Pp(eaS(e.a,4),126))?0:n.length))throw p7(new Ii(t,o));return i=n[t],1==o?r=null:(r=Je(e5N,eJM,415,o-1,0,1),ePD(n,0,r,0,t),(a=o-t-1)>0&&ePD(n,t+1,r,t,a)),eps(e,r),eSU(e,t,i),i}function ex$(){ex$=A,tvw=Pp(etj(H8((yL(),tvS).qb),6),34),tvg=Pp(etj(H8(tvS.qb),3),34),tvv=Pp(etj(H8(tvS.qb),4),34),tvy=Pp(etj(H8(tvS.qb),5),18),eyD(tvw),eyD(tvg),eyD(tvv),eyD(tvy),tv_=new g$(eow(vx(tm5,1),eJ4,170,0,[tvw,tvg]))}function exz(e,t){var n;this.d=new mh,this.b=t,this.e=new TS(t.qf()),n=e.u.Hc((ekU(),tbb)),e.u.Hc(tbp)?e.D?this.a=n&&!t.If():this.a=!0:e.u.Hc(tbm)&&n?this.a=!(t.zf().Kc().Ob()||t.Bf().Kc().Ob()):this.a=!1}function exG(e,t){var n,r,i,a;for(n=e.o.a,a=Pp(Pp(Zq(e.r,t),21),84).Kc();a.Ob();)(i=Pp(a.Pb(),111)).e.a=(r=i.b).Xe((eBB(),thK))?r.Hf()==(eYu(),tbY)?-r.rf().a-gP(LV(r.We(thK))):n+gP(LV(r.We(thK))):r.Hf()==(eYu(),tbY)?-r.rf().a:n}function exW(e,t){var n,r,i,a;n=Pp(e_k(e,(eBy(),tal)),103),a=Pp(eT9(t,tob),61),(i=Pp(e_k(e,tol),98))!=(ewf(),tbc)&&i!=tbl?a==(eYu(),tbF)&&(a=eNh(t,n))==tbF&&(a=ef8(n)):a=(r=eRl(t))>0?ef8(n):elC(ef8(n)),ebu(t,tob,a)}function exK(e,t){var n,r,i,a,o;for(o=e.j,t.a!=t.b&&Mv(o,new ia),i=o.c.length/2|0,r=0;r0&&eIl(e,n,t),a):null!=r.a?(eIl(e,t,n),-1):null!=i.a?(eIl(e,n,t),1):0}function exq(e,t){var n,r,i,a;e.ej()?(n=e.Vi(),a=e.fj(),++e.j,e.Hi(n,e.oi(n,t)),r=e.Zi(3,null,t,n,a),e.bj()&&(i=e.cj(t,null))?(i.Ei(r),i.Fi()):e.$i(r)):(BD(e,t),e.bj()&&(i=e.cj(t,null))&&i.Fi())}function exZ(e,t){var n,r,i,a,o;for(o=eAY(e.e.Tg(),t),i=new o7,n=Pp(e.g,119),a=e.i;--a>=0;)r=n[a],o.rl(r.ak())&&JL(i,r);!eYK(e,i)&&TO(e.e)&&bz(e,t.$j()?$N(e,6,t,(Hj(),e2r),null,-1,!1):$N(e,t.Kj()?2:1,t,null,null,-1,!1))}function exX(){var e,t;for(t=0,exX=A,e2t=Je(e0t,eUP,91,32,0,1),e2n=Je(e0t,eUP,91,32,0,1),e=1;t<=18;t++)e2t[t]=ep_(e),e2n[t]=ep_(Fg(e,t)),e=efn(e,5);for(;to)))&&(!t.q||(o=(r=t.C).c.c.a-r.o.a/2,!((i=r.n.a-n)>o))))}function exQ(e,t){var n;ewG(t,"Partition preprocessing",1),n=Pp(qE(UJ(eeh(UJ(new R1(null,new Gq(e.a,16)),new nZ),new nX),new nJ),JF(new U,new B,new en,eow(vx(e2L,1),eU4,132,0,[(eum(),e2U)]))),15),_r(n.Oc(),new nQ),eEj(t)}function ex1(e){var t,n,r,i,a,o,s;for(Gk(),n=new qh,i=new fz(e.e.b);i.a1?e.e*=gP(e.a):e.f/=gP(e.a),eu0(e),ehK(e),eCj(e),eo3(e.b,(epz(),e52),e.g)}function ex8(e,t,n){var r,i,a,o,s,u;for(r=0,u=n,t||(r=n*(e.c.length-1),u*=-1),a=new fz(e);a.a=0?(!t&&(t=new vu,r>0&&xk(t,e.substr(0,r))),t.a+="\\",Bf(t,n&eHd)):t&&Bf(t,n&eHd);return t?t.a:e}function eTh(e){var t;if(!e.a)throw p7(new gC("IDataType class expected for layout option "+e.f));if(null==(t=VN(e.a)))throw p7(new gC("Couldn't create new instance of property '"+e.f+"'. "+eq4+(LW(e5D),e5D.k)+eq6));return Pp(t,414)}function eTp(e){var t,n,r,i,a;return(a=e.eh())&&a.kh()&&(i=ecv(e,a))!=a?(n=e.Vg(),r=(t=e.Vg())>=0?e.Qg(null):e.eh().ih(e,-1-t,null,null),e.Rg(Pp(i,49),n),r&&r.Fi(),e.Lg()&&e.Mg()&&n>-1&&eam(e,new FX(e,9,n,a,i)),i):a}function eTb(e){var t,n,r,i,a,o,s,u;for(r=0,o=0,a=e.f.e;r>5)>=e.d)return e.e<0;if(n=e.a[i],t=1<<(31&t),e.e<0){if(i<(r=eiU(e)))return!1;n=r==i?-n:~n}return(n&t)!=0}function eT_(e,t,n,r){var i;Pp(n.b,65),Pp(n.b,65),Pp(r.b,65),Pp(r.b,65),P8(i=C5(MB(Pp(n.b,65).c),Pp(r.b,65).c),ekg(Pp(n.b,65),Pp(r.b,65),i)),Pp(r.b,65),Pp(r.b,65),Pp(r.b,65).c.a,i.a,Pp(r.b,65).c.b,i.b,Pp(r.b,65),ety(r.a,new N8(e,t,r))}function eTE(e,t){var n,r,i,a,o,s,u;if(a=t.e){for(o=0,n=eTp(a),r=Pp(e.g,674);o>16)),15).Xc(a))0&&(Tk(e.a.c)&&t.n.d||Tx(e.a.c)&&t.n.b||(t.g.d+=eB4.Math.max(0,r/2-.5)),Tk(e.a.c)&&t.n.a||Tx(e.a.c)&&t.n.c||(t.g.a-=r-1))}function eTO(e){var t,n,r,i,a;if(i=new p0,a=eDC(e,i),t=Pp(e_k(e,(eBU(),tng)),10))for(r=new fz(t.j);r.a>t,a=e.m>>t|n<<22-t,i=e.l>>t|e.m<<22-t):t<44?(o=r?eH$:0,a=n>>t-22,i=e.m>>t-22|n<<44-t):(o=r?eH$:0,a=r?eHH:0,i=n>>t-44),Mk(i&eHH,a&eHH,o&eH$)}function eTI(e){var t,n,r,i,a,o;for(this.c=new p0,this.d=e,r=eHQ,i=eHQ,t=eH1,n=eH1,o=epL(e,0);o.b!=o.d.c;)a=Pp(Vv(o),8),r=eB4.Math.min(r,a.a),i=eB4.Math.min(i,a.b),t=eB4.Math.max(t,a.a),n=eB4.Math.max(n,a.b);this.a=new Hr(r,i,t-r,n-i)}function eTD(e,t){var n,r,i,a,o,s;for(a=new fz(e.b);a.a0&&M4(t,42)&&(e.a.qj(),a=null==(u=(c=Pp(t,42)).cd())?0:esj(u),o=Cb(e.a,a),n=e.a.d[o])){for(s=0,r=Pp(n.g,367),l=n.i;s=2)for(t=LV((n=i.Kc()).Pb());n.Ob();)a=t,t=LV(n.Pb()),r=eB4.Math.min(r,(BJ(t),t-(BJ(a),a)));return r}function eTX(e,t){var n,r,i,a,o;qQ(r=new _n,t,r.c.b,r.c);do for(n=(A5(0!=r.b),Pp(etw(r,r.a.a),86)),e.b[n.g]=1,a=epL(n.d,0);a.b!=a.d.c;)o=(i=Pp(Vv(a),188)).c,1==e.b[o.g]?P7(e.a,i):2==e.b[o.g]?e.b[o.g]=1:qQ(r,o,r.c.b,r.c);while(0!=r.b)}function eTJ(e,t){var n,r,i;if(xc(t)===xc(Y8(e)))return!0;if(!M4(t,15)||(r=Pp(t,15),(i=e.gc())!=r.gc()))return!1;if(!M4(r,54))return eb3(e.Kc(),r.Kc());for(n=0;n0&&(i=n),o=new fz(e.f.e);o.a0?(t-=1,n-=1):r>=0&&i<0?(t+=1,n+=1):r>0&&i>=0?(t-=1,n+=1):(t+=1,n-=1),new kD(ell(t),ell(n))}function eMf(e,t){if(e.ct.c)return 1;if(e.bt.b)return 1;if(e.a!=t.a)return esj(e.a)-esj(t.a);else if(e.d==(qG(),tuf)&&t.d==tul)return -1;else if(e.d==tul&&t.d==tuf)return 1;return 0}function eMd(e,t){var n,r,i,a,o;return(o=(a=t.a).c.i==t.b?a.d:a.c,r=a.c.i==t.b?a.c:a.d,(i=edI(e.a,o,r))>0&&i0):i<0&&-i0)}function eMh(e,t,n,r){var i,a,o,s,u,c,l,f;for(i=(t-e.d)/e.c.c.length,a=0,e.a+=n,e.d=t,f=new fz(e.c);f.a>24;return o}function eMb(e){if(e.pe()){var t=e.c;t.qe()?e.o="["+t.n:t.pe()?e.o="["+t.ne():e.o="[L"+t.ne()+";",e.b=t.me()+"[]",e.k=t.oe()+"[]";return}var n=e.j,r=e.d;r=r.split("/"),e.o=ehg(".",[n,ehg("$",r)]),e.b=ehg(".",[n,ehg(".",r)]),e.k=r[r.length-1]}function eMm(e,t){var n,r,i,a,o;for(o=null,a=new fz(e.e.a);a.a=0;t-=2)for(n=0;n<=t;n+=2)(e.b[n]>e.b[n+2]||e.b[n]===e.b[n+2]&&e.b[n+1]>e.b[n+3])&&(r=e.b[n+2],e.b[n+2]=e.b[n],e.b[n]=r,r=e.b[n+3],e.b[n+3]=e.b[n+1],e.b[n+1]=r);e.c=!0}}function eMk(e,t){var n,r,i,a,o,s,u,c;for(a=(o=1==t?e9c:e9u).a.ec().Kc();a.Ob();)for(i=Pp(a.Pb(),103),u=Pp(Zq(e.f.c,i),21).Kc();u.Ob();)switch(s=Pp(u.Pb(),46),r=Pp(s.b,81),n=(c=Pp(s.a,189)).c,i.g){case 2:case 1:r.g.d+=n;break;case 4:case 3:r.g.c+=n}}function eMx(e,t){var n,r,i,a,o,s,u,c,l;for(s=0,c=-1,l=0,u=(o=e).length;s0&&++l;++c}return l}function eMT(e){var t,n;return n=new O0(yx(e.gm)),n.a+="@",xM(n,(t=esj(e)>>>0).toString(16)),e.kh()?(n.a+=" (eProxyURI: ",xT(n,e.qh()),e.$g()&&(n.a+=" eClass: ",xT(n,e.$g())),n.a+=")"):e.$g()&&(n.a+=" (eClass: ",xT(n,e.$g()),n.a+=")"),n.a}function eMM(e){var t,n,r,i;if(e.e)throw p7(new gC((LW(e2J),e$j+e2J.k+e$F)));for(e.d==(ec3(),tpv)&&eF_(e,tpm),n=new fz(e.a.a);n.a>24}return n}function eMD(e,t,n){var r,i,a;if(!(i=Pp(UA(e.i,t),306))){if(i=new etr(e.d,t,n),jT(e.i,t,i),ehj(t))Od(e.a,t.c,t.b,i);else switch(a=eSv(t),r=Pp(UA(e.p,a),244),a.g){case 1:case 3:i.j=!0,gh(r,t.b,i);break;case 4:case 2:i.k=!0,gh(r,t.c,i)}}return i}function eMN(e,t,n,r){var i,a,o,s,u,c;if(s=new o7,u=eAY(e.e.Tg(),t),i=Pp(e.g,119),_4(),Pp(t,66).Oj())for(o=0;o=0)return i;for(a=1,s=new fz(t.j);s.a0&&t.ue((GK(i-1,e.c.length),Pp(e.c[i-1],10)),a)>0;)q1(e,i,(GK(i-1,e.c.length),Pp(e.c[i-1],10))),--i;GK(i,e.c.length),e.c[i]=a}n.a=new p2,n.b=new p2}function eMj(e,t,n){var r,i,a,o,s,u,c,l;for(o=0,l=(r=Pp(t.e&&t.e(),9),new I1(r,Pp(CY(r,r.length),9),0)),s=(a=u=eIk(n,"[\\[\\]\\s,]+")).length;o0&&(Tk(e.a.c)&&t.n.d||Tx(e.a.c)&&t.n.b||(t.g.d-=eB4.Math.max(0,r/2-.5)),Tk(e.a.c)&&t.n.a||Tx(e.a.c)&&t.n.c||(t.g.a+=eB4.Math.max(0,r-1)))}function eMY(e,t,n){var r,i;if((e.c-e.b&e.a.length-1)==2)t==(eYu(),tbw)||t==tby?(etf(Pp(eso(e),15),(egF(),tpV)),etf(Pp(eso(e),15),tpq)):(etf(Pp(eso(e),15),(egF(),tpq)),etf(Pp(eso(e),15),tpV));else for(i=new UN(e);i.a!=i.b;)etf(r=Pp(ecn(i),15),n)}function eMB(e,t){var n,r,i,a,o,s,u;for(i=Pb(new pL(e)),s=new KB(i,i.c.length),a=Pb(new pL(t)),u=new KB(a,a.c.length),o=null;s.b>0&&u.b>0;)if((n=(A5(s.b>0),Pp(s.a.Xb(s.c=--s.b),33)))==(r=(A5(u.b>0),Pp(u.a.Xb(u.c=--u.b),33))))o=n;else break;return o}function eMU(e,t){var n,r,i,a,o,s;return(a=e.a*e$d+1502*e.b,s=e.b*e$d+11,a+=n=eB4.Math.floor(s*e$h),s-=n*e$p,a%=e$p,e.a=a,e.b=s,t<=24)?eB4.Math.floor(e.a*e2v[t]):((r=(i=e.a*(1<=2147483648&&(r-=eH7),r)}function eMH(e,t,n){var r,i,a,o;WY(e,t)>WY(e,n)?(r=efr(n,(eYu(),tby)),e.d=r.dc()?0:Rk(Pp(r.Xb(0),11)),o=efr(t,tbY),e.b=o.dc()?0:Rk(Pp(o.Xb(0),11))):(i=efr(n,(eYu(),tbY)),e.d=i.dc()?0:Rk(Pp(i.Xb(0),11)),a=efr(t,tby),e.b=a.dc()?0:Rk(Pp(a.Xb(0),11)))}function eM$(e){var t,n,r,i,a,o,s;if(e&&(t=e.Hh(eQc))&&null!=(o=Lq(edW((t.b||(t.b=new L_((eBK(),tgF),tgf,t)),t.b),"conversionDelegates")))){for(s=new p0,r=eIk(o,"\\w+"),i=0,a=r.length;ie.c);o++)i.a>=e.s&&(a<0&&(a=o),s=o);return u=(e.s+e.c)/2,a>=0&&(r=eIe(e,t,a,s),u=_V((GK(r,t.c.length),Pp(t.c[r],329))),exC(t,r,n)),u}function eMK(){eMK=A,tlK=new T2((eBB(),td2),1.3),tlX=thc,tfe=new T3(15),tl7=new T2(thN,tfe),tfr=new T2(tpl,15),tlV=td8,tl3=thx,tl4=thO,tl6=thL,tl2=thS,tl5=thD,tft=thJ,tl9=(eTU(),tl$),tl0=tlU,tl8=tlH,tfn=tlG,tlJ=tlB,tlQ=thb,tl1=thm,tlZ=tlY,tlq=tlF,tfi=tlW}function eMV(e,t,n){var r,i,a,o,s,u,c;for(erl(o=a=new sa,(BJ(t),t)),c=(o.b||(o.b=new L_((eBK(),tgF),tgf,o)),o.b),u=1;u0&&eRJ(this,i)}function eMZ(e,t,n,r,i,a){var o,s,u;if(!i[t.b]){for(i[t.b]=!0,(o=r)||(o=new Z6),P_(o.e,t),u=a[t.b].Kc();u.Ob();)(s=Pp(u.Pb(),282)).d!=n&&s.c!=n&&(s.c!=t&&eMZ(e,s.c,t,o,i,a),s.d!=t&&eMZ(e,s.d,t,o,i,a),P_(o.c,s),eoc(o.d,s.b));return o}return null}function eMX(e){var t,n,r,i,a,o,s;for(t=0,i=new fz(e.e);i.a=2}function eMJ(e,t){var n,r,i,a;for(ewG(t,"Self-Loop pre-processing",1),r=new fz(e.a);r.a1)&&(t=jL(tp1,eow(vx(e5t,1),eU4,93,0,[tpQ,tp2])),!(eaC(z_(t,e))>1)&&(r=jL(tp8,eow(vx(e5t,1),eU4,93,0,[tp5,tp6])),!(eaC(z_(r,e))>1)))}function eM0(e,t){var n,r,i;return(n=t.Hh(e.a))&&null!=(i=Lq(edW((n.b||(n.b=new L_((eBK(),tgF),tgf,n)),n.b),"affiliation")))?-1==(r=O9(i,e_n(35)))?elp(e,Fr(e,etP(t.Hj())),i):0==r?elp(e,null,i.substr(1)):elp(e,i.substr(0,r),i.substr(r+1)):null}function eM2(e){var t,n,r;try{return null==e?eUg:efF(e)}catch(i){if(i=eoa(i),M4(i,102))return t=i,r=yx(esF(e))+"@"+(n=(wK(),ebh(e)>>>0)).toString(16),epa(eob(),(_g(),"Exception during lenientFormat for "+r),t),"<"+r+" threw "+yx(t.gm)+">";throw p7(i)}}function eM3(e){switch(e.g){case 0:return new ck;case 1:return new cy;case 2:return new _j;case 3:return new i$;case 4:return new CZ;case 5:return new cx;default:throw p7(new gL("No implementation is available for the layerer "+(null!=e.f?e.f:""+e.g)))}}function eM4(e,t,n){var r,i,a;for(a=new fz(e.t);a.a0&&(r.b.n-=r.c,r.b.n<=0&&r.b.u>0&&P7(t,r.b));for(i=new fz(e.i);i.a0&&(r.a.u-=r.c,r.a.u<=0&&r.a.n>0&&P7(n,r.a))}function eM6(e){var t,n,r,i,a;if(null==e.g&&(e.d=e.si(e.f),JL(e,e.d),e.c))return e.f;if(i=(t=Pp(e.g[e.i-1],47)).Pb(),e.e=t,(n=e.si(i)).Ob())e.d=n,JL(e,n);else for(e.d=null;!t.Ob()&&(Bc(e.g,--e.i,null),0!=e.i);)t=r=Pp(e.g[e.i-1],47);return i}function eM5(e,t){var n,r,i,a,o,s;if(i=(r=t).ak(),eLt(e.e,i)){if(i.hi()&&Vq(e,i,r.dd()))return!1}else for(a=0,s=eAY(e.e.Tg(),i),n=Pp(e.g,119);a1||n>1)return 2;return t+n==1?2:0}function eOs(e,t,n){var r,i,a,o,s;for(ewG(n,"ELK Force",1),gN(LK(eT9(t,(eCk(),e8E))))||zh(r=new df((_q(),new gM(t)))),s=eo4(t),evn(s),esO(e,Pp(e_k(s,e8v),424)),a=(o=eNx(e.a,s)).Kc();a.Ob();)i=Pp(a.Pb(),231),eIL(e.b,i,eiI(n,1/o.gc()));s=eYC(o),eYh(s),eEj(n)}function eOu(e,t){var n,r,i,a,o;if(ewG(t,"Breaking Point Processor",1),eFM(e),gN(LK(e_k(e,(eBy(),toJ))))){for(i=new fz(e.b);i.a=0?e._g(r,!0,!0):exk(e,a,!0),153),Pp(i,215).ml(t,n)}else throw p7(new gL(eZV+t.ne()+eZq))}function eOp(e,t){var n,r,i,a,o;for(r=1,n=new p0,i=eeh(new R1(null,new Gq(e,16)),new aM),a=eeh(new R1(null,new Gq(e,16)),new aO),o=QN(Xg(U1(eAa(eow(vx(e2C,1),eUp,833,0,[i,a])),new aA)));r=2*t&&P_(n,new N4(o[r-1]+t,o[r]-t));return n}function eOb(e,t,n){ewG(n,"Eades radial",1),n.n&&t&&WG(n,KS(t),(eup(),tmr)),e.d=Pp(eT9(t,(Lj(),tcV)),33),e.c=gP(LV(eT9(t,(egj(),tl_)))),e.e=ebN(Pp(eT9(t,tlE),293)),e.a=ef7(Pp(eT9(t,tlk),426)),e.b=eyp(Pp(eT9(t,tlg),340)),evY(e),n.n&&t&&WG(n,KS(t),(eup(),tmr))}function eOm(e,t,n){var r,i,a,o,s,u,c,l;if(n)for(a=n.a.length,s=((r=new Fs(a)).b-r.a)*r.c<0?(_8(),eB3):new OR(r);s.Ob();)(i=KZ(n,(o=Pp(s.Pb(),19)).a))&&(eB9=null,u=Vj(e,(c=(yT(),l=new mk),t&&eOL(c,t),c),i),ert(u,KJ(i,eXS)),ewU(i,u),eka(i,u),esv(e,i,u))}function eOg(e){var t,n,r,i,a,o;if(!e.j){if(o=new sd,null==(a=(t=tgz).a.zc(e,t))){for(r=new Ow($E(e));r.e!=r.i.gc();)n=Pp(epH(r),26),i=eOg(n),Y4(o,i),JL(o,n);t.a.Bc(e)}euI(o),e.j=new xQ((Pp(etj(H8((BM(),tgv).o),11),18),o.i),o.g),Zd(e).b&=-33}return e.j}function eOv(e){var t,n,r,i;if(null==e)return null;if(r=ePh(e,!0),i=eQq.length,IE(r.substr(r.length-i,i),eQq)){if(4==(n=r.length)){if(43==(t=(GV(0,r.length),r.charCodeAt(0))))return tvX;if(45==t)return tvZ}else if(3==n)return tvX}return new bK(r)}function eOy(e){var t,n,r;return((n=e.l)&n-1)!=0||((r=e.m)&r-1)!=0||((t=e.h)&t-1)!=0||0==t&&0==r&&0==n?-1:0==t&&0==r&&0!=n?enq(n):0==t&&0!=r&&0==n?enq(r)+22:0!=t&&0==r&&0==n?enq(t)+44:-1}function eOw(e,t){var n,r,i,a,o;for(ewG(t,"Edge joining",1),n=gN(LK(e_k(e,(eBy(),toz)))),i=new fz(e.b);i.a1)for(i=new fz(e.a);i.a0),a.a.Xb(a.c=--a.b),CD(a,i),A5(a.becd(r,0)?(i=eHf-jE(edQ(QC(r),eHf)))==eHf&&(i=0):i=jE(edQ(r,eHf)),1==t?Bd(e,48+(i=eB4.Math.min((i+50)/100|0,9))&eHd):2==t?eeE(e,i=eB4.Math.min((i+5)/10|0,99),2):(eeE(e,i,3),t>3&&eeE(e,0,t-3))}function eOM(e){var t,n,r,i;return xc(e_k(e,(eBy(),taM)))===xc((eck(),tpz))?!e.e&&xc(e_k(e,tat))!==xc((eaU(),ttO)):(r=Pp(e_k(e,tan),292),i=gN(LK(e_k(e,tao)))||xc(e_k(e,tas))===xc((en7(),teR)),t=Pp(e_k(e,tae),19).a,n=e.a.c.length,!i&&r!=(eaU(),ttO)&&(0==t||t>n))}function eOO(e){var t,n;for(n=0;n0);n++);if(n>0&&n0);t++);return t>0&&n>16!=6&&t){if(eg7(e,t))throw p7(new gL(eZ4+ex2(e)));r=null,e.Cb&&(r=(n=e.Db>>16)>=0?eg1(e,r):e.Cb.ih(e,-1-n,null,r)),t&&(r=ep0(t,e,6,r)),(r=Cc(e,t,r))&&r.Fi()}else(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new FX(e,1,6,t,t))}function eOL(e,t){var n,r;if(t!=e.Cb||e.Db>>16!=9&&t){if(eg7(e,t))throw p7(new gL(eZ4+eC6(e)));r=null,e.Cb&&(r=(n=e.Db>>16)>=0?eg2(e,r):e.Cb.ih(e,-1-n,null,r)),t&&(r=ep0(t,e,9,r)),(r=Cl(e,t,r))&&r.Fi()}else(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new FX(e,1,9,t,t))}function eOC(e,t){var n,r;if(t!=e.Cb||e.Db>>16!=3&&t){if(eg7(e,t))throw p7(new gL(eZ4+ePY(e)));r=null,e.Cb&&(r=(n=e.Db>>16)>=0?evo(e,r):e.Cb.ih(e,-1-n,null,r)),t&&(r=ep0(t,e,12,r)),(r=Cu(e,t,r))&&r.Fi()}else(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new FX(e,1,3,t,t))}function eOI(e){var t,n,r,i,a;if(r=evl(e),null==(a=e.j)&&r)return e.$j()?null:r.zj();if(M4(r,148)){if((n=r.Aj())&&(i=n.Nh())!=e.i){if((t=Pp(r,148)).Ej())try{e.g=i.Kh(t,a)}catch(o){if(o=eoa(o),M4(o,78))e.g=null;else throw p7(o)}e.i=i}return e.g}return null}function eOD(e){var t;return t=new p0,P_(t,new EL(new kl(e.c,e.d),new kl(e.c+e.b,e.d))),P_(t,new EL(new kl(e.c,e.d),new kl(e.c,e.d+e.a))),P_(t,new EL(new kl(e.c+e.b,e.d+e.a),new kl(e.c+e.b,e.d))),P_(t,new EL(new kl(e.c+e.b,e.d+e.a),new kl(e.c,e.d+e.a))),t}function eON(e,t,n,r){var i,a,o;if(o=eyn(t,n),r.c[r.c.length]=t,-1==e.j[o.p]||2==e.j[o.p]||e.a[t.p])return r;for(e.j[o.p]=-1,a=new Fa(OH(efs(o).a.Kc(),new c));eTk(a);)if(i=Pp(ZC(a),17),!q9(i)&&!(!q9(i)&&i.c.i.c==i.d.i.c)&&i!=t)return eON(e,i,o,r);return r}function eOP(e,t,n){var r,i,a;for(a=t.a.ec().Kc();a.Ob();)i=Pp(a.Pb(),79),(r=Pp(Bp(e.b,i),266))||(z$(e_I(i))==z$(e_P(i))?eLk(e,i,n):e_I(i)==z$(e_P(i))?null==Bp(e.c,i)&&null!=Bp(e.b,e_P(i))&&eFt(e,i,n,!1):null==Bp(e.d,i)&&null!=Bp(e.b,e_I(i))&&eFt(e,i,n,!0))}function eOR(e,t){var n,r,i,a,o,s,u;for(i=e.Kc();i.Ob();)for(r=Pp(i.Pb(),10),s=new eES,Gc(s,r),ekv(s,(eYu(),tby)),eo3(s,(eBU(),tnm),(OQ(),!0)),o=t.Kc();o.Ob();)a=Pp(o.Pb(),10),u=new eES,Gc(u,a),ekv(u,tbY),eo3(u,tnm,!0),n=new $b,eo3(n,tnm,!0),Gs(n,s),Go(n,u)}function eOj(e,t,n,r){var i,a,o,s;i=ehu(e,t,n),a=ehu(e,n,t),o=Pp(Bp(e.c,t),112),s=Pp(Bp(e.c,n),112),ir.b.g&&(a.c[a.c.length]=r);return a}function eOB(){eOB=A,tfo=new S8("CANDIDATE_POSITION_LAST_PLACED_RIGHT",0),tfa=new S8("CANDIDATE_POSITION_LAST_PLACED_BELOW",1),tfu=new S8("CANDIDATE_POSITION_WHOLE_DRAWING_RIGHT",2),tfs=new S8("CANDIDATE_POSITION_WHOLE_DRAWING_BELOW",3),tfc=new S8("WHOLE_DRAWING",4)}function eOU(e,t){if(M4(t,239))return elg(e,Pp(t,33));if(M4(t,186))return el$(e,Pp(t,118));if(M4(t,354))return Hd(e,Pp(t,137));if(M4(t,352))return eNP(e,Pp(t,79));if(t)return null;else throw p7(new gL(eXx+e_F(new g$(eow(vx(e1R,1),eUp,1,5,[t])))))}function eOH(e){var t,n,r,i,a,o,s;for(a=new _n,i=new fz(e.d.a);i.a1)for(t=Al((n=new b1,++e.b,n),e.d),s=epL(a,0);s.b!=s.d.c;)o=Pp(Vv(s),121),eAx(_f(_l(_d(_c(new bQ,1),0),t),o))}function eO$(e,t){var n,r;if(t!=e.Cb||e.Db>>16!=11&&t){if(eg7(e,t))throw p7(new gL(eZ4+eC4(e)));r=null,e.Cb&&(r=(n=e.Db>>16)>=0?evs(e,r):e.Cb.ih(e,-1-n,null,r)),t&&(r=ep0(t,e,10,r)),(r=C4(e,t,r))&&r.Fi()}else(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new FX(e,1,11,t,t))}function eOz(e){var t,n,r,i;for(r=new esz(new fS(e.b).a);r.b;)n=etz(r),i=Pp(n.cd(),11),eo3(t=Pp(n.dd(),10),(eBU(),tnc),i),eo3(i,tng,t),eo3(i,tt5,(OQ(),!0)),ekv(i,Pp(e_k(t,tt1),61)),e_k(t,tt1),eo3(i.i,(eBy(),tol),(ewf(),tbu)),Pp(e_k(Bq(i.i),tt3),21).Fc((eLR(),ttS))}function eOG(e,t,n){var r,i,a,o,s,u;if(a=0,o=0,e.c)for(u=new fz(e.d.i.j);u.aa.a)?-1:i.a(u=null==e.d?0:e.d.length)))return!1;for(a=0,l=e.d,e.d=Je(e5C,eJA,63,2*u+4,0,1);a=0x7fffffffffffffff?(Q2(),e0L):(i=!1,e<0&&(i=!0,e=-e),r=0,e>=eHW&&(r=zy(e/eHW),e-=r*eHW),n=0,e>=eHG&&(n=zy(e/eHG),e-=n*eHG),a=Mk(t=zy(e),n,r),i&&esh(a),a)}function eO5(e,t){var n,r,i,a;for(n=!t||!e.u.Hc((ekU(),tbp)),a=0,i=new fz(e.e.Cf());i.a=-t&&r==t?new kD(ell(n-1),ell(r)):new kD(ell(n),ell(r-1))}function eAn(){return eB$(),eow(vx(e4B,1),eU4,77,0,[e96,e92,e95,e7d,e7C,e7m,e7j,e7_,e7A,e7s,e7x,e7w,e7L,e7r,e7Y,e9Z,e7k,e7D,e7h,e7I,e7U,e7M,e9X,e7O,e7H,e7P,e7B,e7p,e7e,e7b,e7f,e7F,e91,e99,e7v,e9Q,e7y,e7c,e7i,e7E,e7o,e93,e90,e7l,e7a,e7S,e7R,e9J,e7T,e7u,e7g,e7t,e97,e7N,e98,e7n,e94])}function eAr(e,t,n){e.d=0,e.b=0,t.k==(eEn(),e9P)&&n.k==e9P&&Pp(e_k(t,(eBU(),tnc)),10)==Pp(e_k(n,tnc),10)&&(QP(t).j==(eYu(),tbw)?eMH(e,t,n):eMH(e,n,t)),t.k==e9P&&n.k==e9D?QP(t).j==(eYu(),tbw)?e.d=1:e.b=1:n.k==e9P&&t.k==e9D&&(QP(n).j==(eYu(),tbw)?e.b=1:e.d=1),emu(e,t,n)}function eAi(e){var t,n,r,i,a,o,s,u,c,l,f;return f=ewW(e),(u=null!=(t=e.a))&&P4(f,"category",e.a),(o=!(i=wc(new fk(e.d))))&&(ee3(f,"knownOptions",c=new lN),n=new pS(c),qX(new fk(e.d),n)),(s=!(a=wc(e.g)))&&(ee3(f,"supportedFeatures",l=new lN),r=new pk(l),qX(e.g,r)),f}function eAa(e){var t,n,r,i,a,o,s,u,c;for(u=0,r=!1,t=336,n=0,a=new CE(e.length),c=(s=e).length;u>16!=7&&t){if(eg7(e,t))throw p7(new gL(eZ4+eE1(e)));r=null,e.Cb&&(r=(n=e.Db>>16)>=0?eg0(e,r):e.Cb.ih(e,-1-n,null,r)),t&&(r=Pp(t,49).gh(e,1,e5p,r)),(r=j2(e,t,r))&&r.Fi()}else(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new FX(e,1,7,t,t))}function eAc(e,t){var n,r;if(t!=e.Cb||e.Db>>16!=3&&t){if(eg7(e,t))throw p7(new gL(eZ4+eln(e)));r=null,e.Cb&&(r=(n=e.Db>>16)>=0?eg4(e,r):e.Cb.ih(e,-1-n,null,r)),t&&(r=Pp(t,49).gh(e,0,e5y,r)),(r=j3(e,t,r))&&r.Fi()}else(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new FX(e,1,3,t,t))}function eAl(e,t){var n,r,i,a,o,s,u,c,l;return(exX(),t.d>e.d&&(s=e,e=t,t=s),t.d<63)?eLm(e,t):(o=(-2&e.d)<<4,c=ZL(e,o),l=ZL(t,o),r=eNz(e,ZA(c,o)),i=eNz(t,ZA(l,o)),u=eAl(c,l),n=eAl(r,i),a=eAl(eNz(c,r),eNz(i,l)),a=eP6(eP6(a,u),n),a=ZA(a,o),u=ZA(u,o<<1),eP6(eP6(u,a),n))}function eAf(e,t,n){var r,i,a,o,s;for(o=ecZ(e,n),s=Je(e4N,eGW,10,t.length,0,1),r=0,a=o.Kc();a.Ob();)gN(LK(e_k(i=Pp(a.Pb(),11),(eBU(),tt5))))&&(s[r++]=Pp(e_k(i,tng),10));if(r=0;a+=n?1:-1)o|=t.c.Sf(u,a,n,r&&!gN(LK(e_k(t.j,(eBU(),tt2))))&&!gN(LK(e_k(t.j,(eBU(),tnS))))),o|=t.q._f(u,a,n),o|=eCA(e,u[a],n,r);return Yf(e.c,t),o}function eAm(e,t,n){var r,i,a,o,s,u,c,l,f,d;for(l=Kz(e.j),f=0,d=l.length;f1&&(e.a=!0),jU(Pp(n.b,65),C6(MB(Pp(t.b,65).c),Ol(C5(MB(Pp(n.b,65).a),Pp(t.b,65).a),i))),GC(e,t),eAy(e,n)}function eAw(e){var t,n,r,i,a,o,s;for(a=new fz(e.a.a);a.a0&&a>0?o.p=t++:r>0?o.p=n++:a>0?o.p=i++:o.p=n++}Hj(),Mv(e.j,new nG)}function eAE(e){var t,n;n=null,t=Pp(RJ(e.g,0),17);do{if(Ln(n=t.d.i,(eBU(),tna)))return Pp(e_k(n,tna),11).i;if(n.k!=(eEn(),e9N)&&eTk(new Fa(OH(efc(n).a.Kc(),new c))))t=Pp(ZC(new Fa(OH(efc(n).a.Kc(),new c))),17);else if(n.k!=e9N)return null}while(!!n&&n.k!=(eEn(),e9N))return n}function eAS(e,t){var n,r,i,a,o,s,u,c,l;for(a=1,s=t.j,o=t.g,c=em1(e,o,u=Pp(RJ(s,s.c.length-1),113),l=(GK(0,s.c.length),Pp(s.c[0],113)));ac&&(u=n,l=i,c=r);t.a=l,t.c=u}function eAk(e,t){var n,r;if(!(r=YB(e.b,t.b)))throw p7(new gC("Invalid hitboxes for scanline constraint calculation."));(eop(t.b,Pp(CF(e.b,t.b),57))||eop(t.b,Pp(Cj(e.b,t.b),57)))&&(wK(),t.b),e.a[t.b.f]=Pp(Ik(e.b,t.b),57),(n=Pp(IS(e.b,t.b),57))&&(e.a[n.f]=t.b)}function eAx(e){if(!e.a.d||!e.a.e)throw p7(new gC((LW(e23),e23.k+" must have a source and target "+(LW(e24),e24.k)+" specified.")));if(e.a.d==e.a.e)throw p7(new gC("Network simplex does not support self-loops: "+e.a+" "+e.a.d+" "+e.a.e));return Am(e.a.d.g,e.a),Am(e.a.e.b,e.a),e.a}function eAT(e,t,n){var r,i,a,o,s,u,c;for(c=new yB(new hA(e)),o=eow(vx(e4j,1),eGK,11,0,[t,n]),s=0,u=o.length;su-e.b&&su-e.a&&s0&&++h;++d}return h}function eAF(e,t){var n,r,i,a,o;for(o=Pp(e_k(t,(eTj(),tcN)),425),a=epL(t.b,0);a.b!=a.d.c;)if(i=Pp(Vv(a),86),0==e.b[i.g]){switch(o.g){case 0:eb8(e,i);break;case 1:eTX(e,i)}e.b[i.g]=2}for(r=epL(e.a,0);r.b!=r.d.c;)eds((n=Pp(Vv(r),188)).b.d,n,!0),eds(n.c.b,n,!0);eo3(t,(eR5(),tch),e.a)}function eAY(e,t){var n,r,i,a;return(_4(),t)?t==(eR7(),tvG)||(t==tvM||t==tvx||t==tvT)&&e!=tvk?new eF2(e,t):((n=(r=Pp(t,677)).pk())||(UH(QZ((eSp(),tvc),t)),n=r.pk()),a=(n.i||(n.i=new p2),n.i),(i=Pp(xu($I(a.f,e)),1942))||Um(a,e,i=new eF2(e,t)),i):tvb}function eAB(e,t){var n,r,i,a,o,s,u,c,l;for(a=0,u=Pp(e_k(e,(eBU(),tnc)),11),c=esp(eow(vx(e60,1),eUP,8,0,[u.i.n,u.n,u.a])).a,l=e.i.n.b,o=(i=n=Kp(e.e)).length;a0?a.a?n>(s=a.b.rf().a)&&(i=(n-s)/2,a.d.b=i,a.d.c=i):a.d.c=e.s+n:FY(e.u)&&((r=ew1(a.b)).c<0&&(a.d.b=-r.c),r.c+r.b>a.b.rf().a&&(a.d.c=r.c+r.b-a.b.rf().a))}function eAz(e,t){var n,r,i,a;for(ewG(t,"Semi-Interactive Crossing Minimization Processor",1),n=!1,i=new fz(e.b);i.a=0){if(t==n)return new kD(ell(-t-1),ell(-t-1));if(t==-n)return new kD(ell(-t),ell(n+1))}return eB4.Math.abs(t)>eB4.Math.abs(n)?t<0?new kD(ell(-t),ell(n)):new kD(ell(-t),ell(n+1)):new kD(ell(t+1),ell(n))}function eAK(e){var t,n;n=Pp(e_k(e,(eBy(),taY)),163),t=Pp(e_k(e,(eBU(),tt8)),303),n==(ef_(),tnN)?(eo3(e,taY,tnj),eo3(e,tt8,(Q1(),ttN))):n==tnR?(eo3(e,taY,tnj),eo3(e,tt8,(Q1(),ttI))):t==(Q1(),ttN)?(eo3(e,taY,tnN),eo3(e,tt8,ttD)):t==ttI&&(eo3(e,taY,tnR),eo3(e,tt8,ttD))}function eAV(){eAV=A,tuY=new ad,tuP=RI(new K2,(e_x(),e9n),(eB$(),e7h)),tuF=j0(RI(new K2,e9n,e7M),e9i,e7T),tuB=ehY(ehY(_G(j0(RI(new K2,e9e,e7j),e9i,e7R),e9r),e7P),e7F),tuR=j0(RI(RI(RI(new K2,e9t,e7m),e9r,e7v),e9r,e7y),e9i,e7g),tuj=j0(RI(RI(new K2,e9r,e7y),e9r,e99),e9i,e98)}function eAq(){eAq=A,tuz=RI(j0(new K2,(e_x(),e9i),(eB$(),e7t)),e9n,e7h),tuV=ehY(ehY(_G(j0(RI(new K2,e9e,e7j),e9i,e7R),e9r),e7P),e7F),tuG=j0(RI(RI(RI(new K2,e9t,e7m),e9r,e7v),e9r,e7y),e9i,e7g),tuK=RI(RI(new K2,e9n,e7M),e9i,e7T),tuW=j0(RI(RI(new K2,e9r,e7y),e9r,e99),e9i,e98)}function eAZ(e,t,n,r,i){var a,o;(q9(t)||t.c.i.c!=t.d.i.c)&&erS(esp(eow(vx(e60,1),eUP,8,0,[i.i.n,i.n,i.a])),n)||q9(t)||(t.c==i?Ls(t.a,0,new TS(n)):P7(t.a,new TS(n)),r&&!w0(e.a,n)&&((o=Pp(e_k(t,(eBy(),taR)),74))||eo3(t,taR,o=new mE),qQ(o,a=new TS(n),o.c.b,o.c),Yf(e.a,a)))}function eAX(e){var t,n;for(n=new Fa(OH(efu(e).a.Kc(),new c));eTk(n);)if((t=Pp(ZC(n),17)).c.i.k!=(eEn(),e9I))throw p7(new gq(eWr+egs(e)+"' has its layer constraint set to FIRST, but has at least one incoming edge that does not come from a FIRST_SEPARATE node. That must not happen."))}function eAJ(e,t,n){var r,i,a,o,s,u,c;if(0==(i=efp(254&e.Db)))e.Eb=n;else{if(1==i)s=Je(e1R,eUp,1,2,5,1),0==(a=emF(e,t))?(s[0]=n,s[1]=e.Eb):(s[0]=e.Eb,s[1]=n);else for(r=2,s=Je(e1R,eUp,1,i+1,5,1),o=etG(e.Eb),u=0,c=0;r<=128;r<<=1)r==t?s[c++]=n:(e.Db&r)!=0&&(s[c++]=o[u++]);e.Eb=s}e.Db|=t}function eAQ(e,t,n){var r,i,a,o;for(this.b=new p0,i=0,r=0,o=new fz(e);o.a0&&(i+=(a=Pp(RJ(this.b,0),167)).o,r+=a.p),i*=2,r*=2,t>1?i=zy(eB4.Math.ceil(i*t)):r=zy(eB4.Math.ceil(r/t)),this.a=new edL(i,r)}function eA1(e,t,n,r,i,a){var o,s,u,c,l,f,d,h,p,b,m,g;for(l=r,t.j&&t.o?(b=(h=Pp(Bp(e.f,t.A),57)).d.c+h.d.b,--l):b=t.a.c+t.a.b,f=i,n.q&&n.o?(c=(h=Pp(Bp(e.f,n.C),57)).d.c,++f):c=n.a.c,m=c-b,p=b+(s=m/(u=eB4.Math.max(2,f-l))),d=l;d=0;o+=i?1:-1){for(s=t[o],u=r==(eYu(),tby)?i?efr(s,r):eaa(efr(s,r)):i?eaa(efr(s,r)):efr(s,r),a&&(e.c[s.p]=u.gc()),f=u.Kc();f.Ob();)l=Pp(f.Pb(),11),e.d[l.p]=c++;eoc(n,u)}}function eA2(e,t,n){var r,i,a,o,s,u,c,l;for(a=gP(LV(e.b.Kc().Pb())),c=gP(LV(eaX(t.b))),l=C6(r=Ol(MB(e.a),c-n),i=Ol(MB(t.a),n-a)),Ol(l,1/(c-a)),this.a=l,this.b=new p0,s=!0,(o=e.b.Kc()).Pb();o.Ob();)u=gP(LV(o.Pb())),s&&u-n>eVW&&(this.b.Fc(n),s=!1),this.b.Fc(u);s&&this.b.Fc(n)}function eA3(e){var t,n,r,i;if(eIh(e,e.n),e.d.c.length>0){for(gG(e.c);eTT(e,Pp(Wx(new fz(e.e.a)),121))>5,t&=31,r>=e.d)return e.e<0?(eLQ(),e03):(eLQ(),e09);if(i=Je(ty_,eHT,25,(a=e.d-r)+1,15,1),eEG(i,a,e.a,r,t),e.e<0){for(n=0;n0&&e.a[n]<<32-t!=0){for(n=0;n=0)&&(!(n=eR3((eSp(),tvc),i,t))||((r=n.Zj())>1||-1==r)&&3!=Ur(QZ(tvc,n))))}function eLn(e,t,n,r){var i,a,o,s,u;return(s=ewH(Pp(etj((t.b||(t.b=new Ih(e5m,t,4,7)),t.b),0),82)),u=ewH(Pp(etj((t.c||(t.c=new Ih(e5m,t,5,8)),t.c),0),82)),z$(s)==z$(u)||etg(u,s))?null:(o=zF(t))==n?r:(a=Pp(Bp(e.a,o),10))&&(i=a.e)?i:null}function eLr(e,t){var n;switch(n=Pp(e_k(e,(eBy(),tam)),276),ewG(t,"Label side selection ("+n+")",1),n.g){case 0:eTD(e,(egF(),tpV));break;case 1:eTD(e,(egF(),tpq));break;case 2:eNW(e,(egF(),tpV));break;case 3:eNW(e,(egF(),tpq));break;case 4:eLL(e,(egF(),tpV));break;case 5:eLL(e,(egF(),tpq))}eEj(t)}function eLi(e,t,n){var r,i,a,o,s,u;if((o=e[r=vK(n,e.length)])[0].k==(eEn(),e9C))for(i=0,a=vW(n,o.length),u=t.j;i0&&(n[0]+=e.d,o-=n[0]),n[2]>0&&(n[2]+=e.d,o-=n[2]),a=eB4.Math.max(0,o),n[1]=eB4.Math.max(n[1],o),ZR(e,e3N,i.c+r.b+n[0]-(n[1]-o)/2,n),t==e3N&&(e.c.b=a,e.c.c=i.c+r.b+(a-o)/2)}function eLy(){this.c=Je(tyx,eH6,25,(eYu(),eow(vx(e5a,1),eGj,61,0,[tbF,tbw,tby,tbj,tbY])).length,15,1),this.b=Je(tyx,eH6,25,eow(vx(e5a,1),eGj,61,0,[tbF,tbw,tby,tbj,tbY]).length,15,1),this.a=Je(tyx,eH6,25,eow(vx(e5a,1),eGj,61,0,[tbF,tbw,tby,tbj,tbY]).length,15,1),Ep(this.c,eHQ),Ep(this.b,eH1),Ep(this.a,eH1)}function eLw(e,t,n){var r,i,a,o;if(t<=n?(i=t,a=n):(i=n,a=t),r=0,null==e.b)e.b=Je(ty_,eHT,25,2,15,1),e.b[0]=i,e.b[1]=a,e.c=!0;else{if(r=e.b.length,e.b[r-1]+1==i){e.b[r-1]=a;return}o=Je(ty_,eHT,25,r+2,15,1),ePD(e.b,0,o,0,r),e.b=o,e.b[r-1]>=i&&(e.c=!1,e.a=!1),e.b[r++]=i,e.b[r]=a,e.c||eMS(e)}}function eL_(e,t,n){var r,i,a,o,s,u,c;for(c=t.d,e.a=new XM(c.c.length),e.c=new p2,s=new fz(c);s.a=0?e._g(c,!1,!0):exk(e,n,!1),58);n:for(a=f.Kc();a.Ob();){for(l=0,i=Pp(a.Pb(),56);l1;)eLN(i,i.i-1);return r}function eLA(e,t){var n,r,i,a,o,s,u;for(ewG(t,"Comment post-processing",1),a=new fz(e.b);a.ae.d[o.p]&&(n+=qq(e.b,a),Vw(e.a,ell(a)));for(;!gY(e.a);)eek(e.b,Pp(Yn(e.a),19).a)}return n}function eLD(e,t,n){var r,i,a,o;for(a=(t.a||(t.a=new FQ(e5k,t,10,11)),t.a).i,i=new Ow((t.a||(t.a=new FQ(e5k,t,10,11)),t.a));i.e!=i.i.gc();)0==((r=Pp(epH(i),33)).a||(r.a=new FQ(e5k,r,10,11)),r.a).i||(a+=eLD(e,r,!1));if(n)for(o=z$(t);o;)a+=(o.a||(o.a=new FQ(e5k,o,10,11)),o.a).i,o=z$(o);return a}function eLN(e,t){var n,r,i,a;return e.ej()?(r=null,i=e.fj(),e.ij()&&(r=e.kj(e.pi(t),null)),n=e.Zi(4,a=egk(e,t),null,t,i),e.bj()&&null!=a?(r=e.dj(a,r))?(r.Ei(n),r.Fi()):e.$i(n):r?(r.Ei(n),r.Fi()):e.$i(n),a):(a=egk(e,t),e.bj()&&null!=a&&(r=e.dj(a,null))&&r.Fi(),a)}function eLP(e){var t,n,r,i,a,o,s,u,c,l;for(c=e.a,t=new bV,u=0,r=new fz(e.d);r.as.d&&(l=s.d+s.a+c));n.c.d=l,t.a.zc(n,t),u=eB4.Math.max(u,n.c.d+n.c.a)}return u}function eLR(){eLR=A,ttv=new Sv("COMMENTS",0),ttw=new Sv("EXTERNAL_PORTS",1),tt_=new Sv("HYPEREDGES",2),ttE=new Sv("HYPERNODES",3),ttS=new Sv("NON_FREE_PORTS",4),ttk=new Sv("NORTH_SOUTH_PORTS",5),ttT=new Sv(eWw,6),ttg=new Sv("CENTER_LABELS",7),tty=new Sv("END_LABELS",8),ttx=new Sv("PARTITIONS",9)}function eLj(e){var t,n,r,i,a;for(i=new p0,t=new Rq((e.a||(e.a=new FQ(e5k,e,10,11)),e.a)),r=new Fa(OH(eOi(e).a.Kc(),new c));eTk(r);)n=Pp(ZC(r),79),!M4(etj((n.b||(n.b=new Ih(e5m,n,4,7)),n.b),0),186)&&(a=ewH(Pp(etj((n.c||(n.c=new Ih(e5m,n,5,8)),n.c),0),82)),t.a._b(a)||(i.c[i.c.length]=a));return i}function eLF(e){var t,n,r,i,a,o;for(a=new bV,t=new Rq((e.a||(e.a=new FQ(e5k,e,10,11)),e.a)),i=new Fa(OH(eOi(e).a.Kc(),new c));eTk(i);)r=Pp(ZC(i),79),!M4(etj((r.b||(r.b=new Ih(e5m,r,4,7)),r.b),0),186)&&(o=ewH(Pp(etj((r.c||(r.c=new Ih(e5m,r,5,8)),r.c),0),82)),t.a._b(o)||(n=a.a.zc(o,a)));return a}function eLY(e,t,n,r,i){return r<0?((r=ew5(e,i,eow(vx(e17,1),eUP,2,6,[eHh,eHp,eHb,eHm,eHg,eHv,eHy,eHw,eH_,eHE,eHS,eHk]),t))<0&&(r=ew5(e,i,eow(vx(e17,1),eUP,2,6,["Jan","Feb","Mar","Apr",eHg,"Jun","Jul","Aug","Sep","Oct","Nov","Dec"]),t)),!(r<0)&&(n.k=r,!0)):r>0&&(n.k=r-1,!0)}function eLB(e,t,n,r,i){return r<0?((r=ew5(e,i,eow(vx(e17,1),eUP,2,6,[eHh,eHp,eHb,eHm,eHg,eHv,eHy,eHw,eH_,eHE,eHS,eHk]),t))<0&&(r=ew5(e,i,eow(vx(e17,1),eUP,2,6,["Jan","Feb","Mar","Apr",eHg,"Jun","Jul","Aug","Sep","Oct","Nov","Dec"]),t)),!(r<0)&&(n.k=r,!0)):r>0&&(n.k=r-1,!0)}function eLU(e,t,n,r,i,a){var o,s,u,c;if(s=32,r<0){if(t[0]>=e.length||43!=(s=UI(e,t[0]))&&45!=s||(++t[0],(r=exf(e,t))<0))return!1;45==s&&(r=-r)}return 32==s&&t[0]-n==2&&2==i.b&&(o=(c=(u=new wW).q.getFullYear()-eHx+eHx-80)%100,a.a=r==o,r+=(c/100|0)*100+(r=c&&(u=r);u&&(l=eB4.Math.max(l,u.a.o.a)),l>d&&(f=c,d=l)}return f}function eLV(e,t,n){var r,i,a;if(e.e=n,e.d=0,e.b=0,e.f=1,e.i=t,(16&e.e)==16&&(e.i=eIw(e.i)),e.j=e.i.length,eBM(e),a=ehT(e),e.d!=e.j)throw p7(new gX(eBJ((Mo(),eXV))));if(e.g){for(r=0;reqg?Mv(u,e.b):r<=eqg&&r>eqv?Mv(u,e.d):r<=eqv&&r>eqy?Mv(u,e.c):r<=eqy&&Mv(u,e.a),a=eLJ(e,u,a);return i}function eLQ(){var e;for(e=0,eLQ=A,e04=new XE(1,1),e05=new XE(1,10),e09=new XE(0,0),e03=new XE(-1,1),e06=eow(vx(e0t,1),eUP,91,0,[e09,e04,new XE(1,2),new XE(1,3),new XE(1,4),new XE(1,5),new XE(1,6),new XE(1,7),new XE(1,8),new XE(1,9),e05]),e08=Je(e0t,eUP,91,32,0,1);e1)&&(r=new kl(i,n.b),P7(t.a,r)),enD(t.a,eow(vx(e60,1),eUP,8,0,[d,f]))}function eL5(e){_Y(e,new ewB(vQ(vq(vJ(vX(new oc,eZA),"ELK Randomizer"),'Distributes the nodes randomly on the plane, leading to very obfuscating layouts. Can be useful to demonstrate the power of "real" layout algorithms.'),new oz))),KE(e,eZA,ezW,tb$),KE(e,eZA,eGi,15),KE(e,eZA,eGo,ell(0)),KE(e,eZA,ezG,eGt)}function eL8(){var e,t,n,r,i,a;for(t=0,eL8=A,tv1=Je(tyk,eZ9,25,255,15,1),tv0=Je(tyw,eHl,25,16,15,1);t<255;t++)tv1[t]=-1;for(n=57;n>=48;n--)tv1[n]=n-48<<24>>24;for(r=70;r>=65;r--)tv1[r]=r-65+10<<24>>24;for(i=102;i>=97;i--)tv1[i]=i-97+10<<24>>24;for(a=0;a<10;a++)tv0[a]=48+a&eHd;for(e=10;e<=15;e++)tv0[e]=65+e-10&eHd}function eL9(e,t,n){var r,i,a,o,s,u,c,l;return s=t.i-e.g/2,u=n.i-e.g/2,c=t.j-e.g/2,l=n.j-e.g/2,a=t.g+e.g/2,o=n.g+e.g/2,r=t.f+e.g/2,i=n.f+e.g/2,!!(s>19!=0)return"-"+eCr(eoQ(e));for(n=e,r="";!(0==n.l&&0==n.m&&0==n.h);){if(n=eRV(n,i=Zx(eHK),!0),t=""+yq(e0A),!(0==n.l&&0==n.m&&0==n.h))for(a=9-t.length;a>0;a--)t="0"+t;r=t+r}return r}function eCi(){if(!Object.create||!Object.getOwnPropertyNames)return!1;var e="__proto__",t=Object.create(null);return void 0===t[e]&&0==Object.getOwnPropertyNames(t).length&&(t[e]=42,42===t[e]&&0!=Object.getOwnPropertyNames(t).length)}function eCa(e){var t,n,r,i,a,o,s;for(t=!1,n=0,i=new fz(e.d.b);i.a=e.a||!ewg(t,n))return -1;if(Vb(Pp(r.Kb(t),20)))return 1;for(i=0,o=Pp(r.Kb(t),20).Kc();o.Ob();)if(-1==(s=eCu(e,u=(a=Pp(o.Pb(),17)).c.i==t?a.d.i:a.c.i,n,r))||(i=eB4.Math.max(i,s))>e.c-1)return -1;return i+1}function eCc(e,t){var n,r,i,a,o,s;if(xc(t)===xc(e))return!0;if(!M4(t,15)||(r=Pp(t,15),s=e.gc(),r.gc()!=s))return!1;if(o=r.Kc(),e.ni()){for(n=0;n0){if(e.qj(),null!=t){for(a=0;a>24;case 97:case 98:case 99:case 100:case 101:case 102:return e-97+10<<24>>24;case 65:case 66:case 67:case 68:case 69:case 70:return e-65+10<<24>>24;default:throw p7(new vo("Invalid hexadecimal"))}}function eCh(e,t,n){var r,i,a,o;for(ewG(n,"Processor order nodes",2),e.a=gP(LV(e_k(t,(eTj(),tcR)))),i=new _n,o=epL(t.b,0);o.b!=o.d.c;)gN(LK(e_k(a=Pp(Vv(o),86),(eR5(),tcm))))&&qQ(i,a,i.c.b,i.c);eRt(e,r=(A5(0!=i.b),Pp(i.a.a.c,86))),n.b||erd(n,1),eC1(e,r,0-gP(LV(e_k(r,(eR5(),tcu))))/2,0),n.b||erd(n,1),eEj(n)}function eCp(){eCp=A,e3C=new Ej("SPIRAL",0),e3T=new Ej("LINE_BY_LINE",1),e3M=new Ej("MANHATTAN",2),e3x=new Ej("JITTER",3),e3A=new Ej("QUADRANTS_LINE_BY_LINE",4),e3L=new Ej("QUADRANTS_MANHATTAN",5),e3O=new Ej("QUADRANTS_JITTER",6),e3k=new Ej("COMBINE_LINE_BY_LINE_MANHATTAN",7),e3S=new Ej("COMBINE_JITTER_MANHATTAN",8)}function eCb(e,t,n,r){var i,a,o,s,u,c;for(u=eya(e,n),c=eya(t,n),i=!1;u&&c;)if(r||egl(u,c,n))o=eya(u,n),s=eya(c,n),QB(t),QB(e),a=u.c,ejf(u,!1),ejf(c,!1),n?(egU(t,c.p,a),t.p=c.p,egU(e,u.p+1,a),e.p=u.p):(egU(e,u.p,a),e.p=u.p,egU(t,c.p+1,a),t.p=c.p),Gu(u,null),Gu(c,null),u=o,c=s,i=!0;else break;return i}function eCm(e,t,n,r){var i,a,o,s,u;for(i=!1,a=!1,s=new fz(r.j);s.a=t.length)throw p7(new gE("Greedy SwitchDecider: Free layer not in graph."));this.c=t[e],this.e=new IQ(r),er$(this.e,this.c,(eYu(),tbY)),this.i=new IQ(r),er$(this.i,this.c,tby),this.f=new jy(this.c),this.a=!a&&i.i&&!i.s&&this.c[0].k==(eEn(),e9C),this.a&&eSt(this,e,t.length)}function eC_(e,t){var n,r,i,a,o,s;a=!e.B.Hc((eI3(),tbX)),o=e.B.Hc(tb1),e.a=new edA(o,a,e.c),e.n&&HI(e.a.n,e.n),gh(e.g,(etx(),e3N),e.a),t||((r=new eh5(1,a,e.c)).n.a=e.k,jT(e.p,(eYu(),tbw),r),(i=new eh5(1,a,e.c)).n.d=e.k,jT(e.p,tbj,i),(s=new eh5(0,a,e.c)).n.c=e.k,jT(e.p,tbY,s),(n=new eh5(0,a,e.c)).n.b=e.k,jT(e.p,tby,n))}function eCE(e){var t,n,r;switch((t=Pp(e_k(e.d,(eBy(),tag)),218)).g){case 2:n=eBn(e);break;case 3:n=(r=new p0,_r(UJ(UQ(eeh(eeh(new R1(null,new Gq(e.d.b,16)),new rJ),new rQ),new r1),new rY),new ha(r)),r);break;default:throw p7(new gC("Compaction not supported for "+t+" edges."))}eRD(e,n),qX(new fk(e.g),new hr(e))}function eCS(e,t){var n;return(n=new eX,t&&eaW(n,Pp(Bp(e.a,e5p),94)),M4(t,470)&&eaW(n,Pp(Bp(e.a,e5b),94)),M4(t,354))?(eaW(n,Pp(Bp(e.a,e5S),94)),n):(M4(t,82)&&eaW(n,Pp(Bp(e.a,e5m),94)),M4(t,239))?(eaW(n,Pp(Bp(e.a,e5k),94)),n):M4(t,186)?(eaW(n,Pp(Bp(e.a,e5x),94)),n):(M4(t,352)&&eaW(n,Pp(Bp(e.a,e5g),94)),n)}function eCk(){eCk=A,e8M=new T2((eBB(),th4),ell(1)),e8D=new T2(tpl,80),e8I=new T2(tpr,5),e8p=new T2(td2,eGt),e8O=new T2(th6,ell(1)),e8C=new T2(th9,(OQ(),!0)),e8k=new T3(50),e8S=new T2(thN,e8k),e8m=thb,e8x=thV,e8b=new T2(thn,!1),e8E=thD,e8_=thL,e8w=thx,e8y=thS,e8T=thJ,e8v=(eEg(),e8i),e8N=e8c,e8g=e8r,e8A=e8o,e8L=e8u}function eCx(e){var t,n,r,i,a,o,s,u;for(u=new Zr,s=new fz(e.a);s.a0&&t=0)return!1;if(t.p=n.b,P_(n.e,t),i==(eEn(),e9D)||i==e9P){for(o=new fz(t.j);o.a1||-1==o)&&(a|=16),(i.Bb&eZ1)!=0&&(a|=64)),(n.Bb&eH3)!=0&&(a|=eJq),a|=eXt):M4(t,457)?a|=512:(r=t.Bj())&&(1&r.i)!=0&&(a|=256),(512&e.Bb)!=0&&(a|=128),a}function eCG(e,t){var n,r,i,a,o;for(i=0,e=null==e?eUg:(BJ(e),e);ie.d[s.p]&&(n+=qq(e.b,a),Vw(e.a,ell(a))):++o;for(n+=e.b.d*o;!gY(e.a);)eek(e.b,Pp(Yn(e.a),19).a)}return n}function eCV(e,t){var n;return e.f==tvm?(n=Ur(QZ((eSp(),tvc),t)),e.e?4==n&&t!=(ex$(),tvw)&&t!=(ex$(),tvg)&&t!=(ex$(),tvv)&&t!=(ex$(),tvy):2==n):!!(e.d&&(e.d.Hc(t)||e.d.Hc(Wk(QZ((eSp(),tvc),t)))||e.d.Hc(eR3((eSp(),tvc),e.b,t))))||!!(e.f&&eOq((eSp(),e.f),U$(QZ(tvc,t))))&&(n=Ur(QZ(tvc,t)),e.e?4==n:2==n)}function eCq(e,t,n,r){var i,a,o,s,u,c,l,f;return u=(o=Pp(eT9(n,(eBB(),th3)),8)).a,l=o.b+e,(i=eB4.Math.atan2(l,u))<0&&(i+=eV7),(i+=t)>eV7&&(i-=eV7),c=(s=Pp(eT9(r,th3),8)).a,f=s.b+e,(a=eB4.Math.atan2(f,c))<0&&(a+=eV7),(a+=t)>eV7&&(a-=eV7),Mc(),enj(1e-10),1e-10>=eB4.Math.abs(i-a)||i==a||isNaN(i)&&isNaN(a)?0:ia?1:Te(isNaN(i),isNaN(a))}function eCZ(e){var t,n,r,i,a,o,s;for(s=new p2,r=new fz(e.a.b);r.a=e.o)throw p7(new bj);s=t>>5,o=31&t,a=Fg(1,jE(Fg(o,1))),i?e.n[n][s]=WO(e.n[n][s],a):e.n[n][s]=WM(e.n[n][s],PN(a)),a=Fg(a,1),r?e.n[n][s]=WO(e.n[n][s],a):e.n[n][s]=WM(e.n[n][s],PN(a))}catch(u){if(u=eoa(u),M4(u,320))throw p7(new gE(ez_+e.o+"*"+e.p+ezE+t+eUd+n+ezS));throw p7(u)}}function eC1(e,t,n,r){var i,a,o;t&&(a=gP(LV(e_k(t,(eR5(),tcd))))+r,o=n+gP(LV(e_k(t,tcu)))/2,eo3(t,tcg,ell(jE(eap(eB4.Math.round(a))))),eo3(t,tcv,ell(jE(eap(eB4.Math.round(o))))),0==t.d.b||eC1(e,Pp(M2((i=epL(new hz(t).a.d,0),new hG(i))),86),n+gP(LV(e_k(t,tcu)))+e.a,r+gP(LV(e_k(t,tcc)))),null!=e_k(t,tcb)&&eC1(e,Pp(e_k(t,tcb),86),n,r))}function eC0(e,t){var n,r,i,a,o,s,u,c,l,f,d;for(i=2*gP(LV(e_k(u=Bq(t.a),(eBy(),toI)))),l=gP(LV(e_k(u,toY))),c=eB4.Math.max(i,l),a=Je(tyx,eH6,25,t.f-t.c+1,15,1),r=-c,n=0,s=t.b.Kc();s.Ob();)o=Pp(s.Pb(),10),r+=e.a[o.c.p]+c,a[n++]=r;for(r+=e.a[t.a.c.p]+c,a[n++]=r,d=new fz(t.e);d.a0&&(r=(e.n||(e.n=new FQ(e5S,e,1,7)),Pp(etj(e.n,0),137)).a)&&xM(xM((t.a+=' "',t),r),'"')),xM(yW(xM(yW(xM(yW(xM(yW((t.a+=" (",t),e.i),","),e.j)," | "),e.g),","),e.f),")"),t.a)}function eC6(e){var t,n,r;return(64&e.Db)!=0?eEp(e):(t=new O0(eZG),(n=e.k)?xM(xM((t.a+=' "',t),n),'"'):(e.n||(e.n=new FQ(e5S,e,1,7)),e.n.i>0&&(r=(e.n||(e.n=new FQ(e5S,e,1,7)),Pp(etj(e.n,0),137)).a)&&xM(xM((t.a+=' "',t),r),'"')),xM(yW(xM(yW(xM(yW(xM(yW((t.a+=" (",t),e.i),","),e.j)," | "),e.g),","),e.f),")"),t.a)}function eC5(e,t){var n,r,i,a,o,s,u;if(null==t||0==t.length)return null;if(!(i=Pp(zg(e.a,t),149))){for(r=(s=new fT(e.b).a.vc().Kc(),new fN(s));r.a.Ob();)if(o=(n=(a=Pp(r.a.Pb(),42),Pp(a.dd(),149))).c,u=t.length,IE(o.substr(o.length-u,u),t)&&(t.length==o.length||46==UI(o,o.length-t.length-1))){if(i)return null;i=n}i&&Ge(e.a,t,i)}return i}function eC8(e,t){var n,r,i,a;return(n=new eD,i=(r=Pp(qE(UQ(new R1(null,new Gq(e.f,16)),n),Qz(new q,new Z,new er,new ei,eow(vx(e2L,1),eU4,132,0,[(eum(),e2H),e2U]))),21)).gc(),a=(r=Pp(qE(UQ(new R1(null,new Gq(t.f,16)),n),Qz(new q,new Z,new er,new ei,eow(vx(e2L,1),eU4,132,0,[e2H,e2U]))),21)).gc(),ii.p?(ekv(a,tbj),a.d&&(s=a.o.b,t=a.a.b,a.a.b=s-t)):a.j==tbj&&i.p>e.p&&(ekv(a,tbw),a.d&&(s=a.o.b,t=a.a.b,a.a.b=-(s-t)));break}return i}function eIe(e,t,n,r){var i,a,o,s,u,c,l,f,d,h,p;if(a=n,n1)&&(r=new kl(i,n.b),P7(t.a,r)),enD(t.a,eow(vx(e60,1),eUP,8,0,[d,f]))}function eIy(e,t,n){var r,i,a,o,s,u;if(!t)return null;if(!(n<=-1))return ebY(Pp(ee2(e.Tg(),n),18));if(r=ee2(t.Tg(),-1-n),M4(r,99))return Pp(r,18);for(s=0,u=(o=Pp(t.ah(r),153)).gc();s0){for(i=u.length;i>0&&""==u[i-1];)--i;i=t.d.a.gc()){o=t.a.c,s=t.a.c+t.a.b,u=new kl(o+(s-o)/2,t.b),P7(Pp(t.d.a.ec().Kc().Pb(),17).a,u);continue}if((i=Pp(Bp(t.c,n),459)).b||i.c){eIv(e,n,t);continue}(a=e.d==(euy(),tsW)&&(i.d||i.e)&&exJ(e,t)&&1>=t.d.a.gc())?eFd(n,t):eL6(e,n,t)}t.k&&qX(t.d,new nn)}}function eIq(e,t,n,r,i,a){var o,s,u,c,l,f,d,h,p,b,m,g,v,y;for(s=(r+i)/2+(d=a),m=n*eB4.Math.cos(s),g=n*eB4.Math.sin(s),v=m-t.g/2,y=g-t.f/2,eno(t,v),ens(t,y),f=e.a.jg(t),(b=2*eB4.Math.acos(n/n+e.c))=40)&&eNo(e),eRi(e),eA3(e),n=elM(e),r=0;n&&r0&&P7(e.f,a)):(e.c[o]-=c+1,e.c[o]<=0&&e.a[o]>0&&P7(e.e,a))))}function eI1(e){var t,n,r,i,a,o,s,u,c;for(s=new yB(Pp(Y8(new eP),62)),c=eH1,n=new fz(e.d);n.a=0&&un?t:n;c<=f;++c)c==n?s=r++:(a=i[c],l=p.rl(a.ak()),c==t&&(u=c!=f||l?r:r-1),l&&++r);return d=Pp(elR(e,t,n),72),s!=u&&bz(e,new JU(e.e,7,o,ell(s),h.dd(),u)),d}return Pp(elR(e,t,n),72)}function eDe(e,t){var n,r,i,a,o,s,u;for(ewG(t,"Port order processing",1),u=Pp(e_k(e,(eBy(),tom)),421),r=new fz(e.b);r.a=0&&(!(s=egy(e,o))||(c<22?u.l|=1<>>1,o.m=l>>>1|(1&f)<<21,o.l=d>>>1|(1&l)<<21,--c;return n&&esh(u),a&&(r?(e0A=eoQ(e),i&&(e0A=eor(e0A,(Q2(),e0I)))):e0A=Mk(e.l,e.m,e.h)),u}function eDi(e,t){var n,r,i,a,o,s,u,c,l,f;for(c=e.e[t.c.p][t.p]+1,u=t.c.a.c.length+1,s=new fz(e.a);s.a0&&(GV(0,e.length),45==e.charCodeAt(0)||(GV(0,e.length),43==e.charCodeAt(0)))?1:0;rn)throw p7(new vo(eHJ+e+'"'));return s}function eDo(e){var t,n,r,i,a,o,s;for(o=new _n,a=new fz(e.a);a.a1)&&1==t&&Pp(e.a[e.b],10).k==(eEn(),e9I)?eD3(Pp(e.a[e.b],10),(egF(),tpV)):r&&(!n||(e.c-e.b&e.a.length-1)>1)&&1==t&&Pp(e.a[e.c-1&e.a.length-1],10).k==(eEn(),e9I)?eD3(Pp(e.a[e.c-1&e.a.length-1],10),(egF(),tpq)):(e.c-e.b&e.a.length-1)==2?(eD3(Pp(eso(e),10),(egF(),tpV)),eD3(Pp(eso(e),10),tpq)):eM9(e,i),qr(e)}function eDf(e,t,n){var r,i,a,o,s;for(a=0,i=new Ow((e.a||(e.a=new FQ(e5k,e,10,11)),e.a));i.e!=i.i.gc();)r=Pp(epH(i),33),o="",0==(r.n||(r.n=new FQ(e5S,r,1,7)),r.n).i||(o=Pp(etj((r.n||(r.n=new FQ(e5S,r,1,7)),r.n),0),137).a),eaW(s=new esH(a++,t,o),r),eo3(s,(eR5(),tcl),r),s.e.b=r.j+r.f/2,s.f.a=eB4.Math.max(r.g,1),s.e.a=r.i+r.g/2,s.f.b=eB4.Math.max(r.f,1),P7(t.b,s),eS8(n.f,r,s)}function eDd(e){var t,n,r,i,a;r=Pp(e_k(e,(eBU(),tnc)),33),a=Pp(eT9(r,(eBy(),ta4)),174).Hc((ed5(),tbq)),!e.e&&(i=Pp(e_k(e,tt3),21),t=new kl(e.f.a+e.d.b+e.d.c,e.f.b+e.d.d+e.d.a),i.Hc((eLR(),ttw))?(ebu(r,tol,(ewf(),tbo)),eYx(r,t.a,t.b,!1,!0)):gN(LK(eT9(r,ta6)))||eYx(r,t.a,t.b,!0,!0)),a?ebu(r,ta4,el8(tbq)):ebu(r,ta4,(n=Pp(yw(e5o),9),new I1(n,Pp(CY(n,n.length),9),0)))}function eDh(e,t,n){var r,i,a,o;if(t[0]>=e.length)return n.o=0,!0;switch(UI(e,t[0])){case 43:i=1;break;case 45:i=-1;break;default:return n.o=0,!0}if(++t[0],a=t[0],0==(o=exf(e,t))&&t[0]==a)return!1;if(t[0]=0&&s!=n&&(a=new FX(e,1,s,o,null),r?r.Ei(a):r=a),n>=0&&(a=new FX(e,1,n,s==n?o:null,t),r?r.Ei(a):r=a)),r}function eDv(e){var t,n,r;if(null==e.b){if(r=new vs,null!=e.i&&(xk(r,e.i),r.a+=":"),(256&e.f)!=0){for((256&e.f)!=0&&null!=e.a&&(Hb(e.i)||(r.a+="//"),xk(r,e.a)),null!=e.d&&(r.a+="/",xk(r,e.d)),(16&e.f)!=0&&(r.a+="/"),t=0,n=e.j.length;td)&&(f=(u=ePI(r,d,!1)).a,l+s+f<=t.b&&(JR(n,a-n.s),n.c=!0,JR(r,a-n.s),ebP(r,n.s,n.t+n.d+s),r.k=!0,eiV(n.q,r),h=!0,i&&(enN(t,r),r.j=t,e.c.length>o&&(eva((GK(o,e.c.length),Pp(e.c[o],200)),r),0==(GK(o,e.c.length),Pp(e.c[o],200)).a.c.length&&ZV(e,o)))),h)}function eDx(e,t){var n,r,i,a,o,s;if(ewG(t,"Partition midprocessing",1),i=new zu,_r(UJ(new R1(null,new Gq(e.a,16)),new nK),new dQ(i)),0!=i.d){for(r=(s=Pp(qE(GU((a=i.i,new R1(null,(a||(i.i=new OC(i,i.c))).Nc()))),JF(new U,new B,new en,eow(vx(e2L,1),eU4,132,0,[(eum(),e2U)]))),15)).Kc(),n=Pp(r.Pb(),19);r.Ob();)o=Pp(r.Pb(),19),eOR(Pp(Zq(i,n),21),Pp(Zq(i,o),21)),n=o;eEj(t)}}function eDT(e,t,n){var r,i,a,o,s,u,c,l;if(0==t.p){for(t.p=1,(o=n)||(i=new p0,a=(r=Pp(yw(e5a),9),new I1(r,Pp(CY(r,r.length),9),0)),o=new kD(i,a)),Pp(o.a,15).Fc(t),t.k==(eEn(),e9C)&&Pp(o.b,21).Fc(Pp(e_k(t,(eBU(),tt1)),61)),u=new fz(t.j);u.a0){if(i=Pp(e.Ab.g,1934),null==t){for(a=0;a1)for(r=new fz(i);r.an.s&&ss&&(s=i,f.c=Je(e1R,eUp,1,0,5,1)),i==s&&P_(f,new kD(n.c.i,n)));Hj(),Mv(f,e.c),jO(e.b,u.p,f)}}function eDR(e,t){var n,r,i,a,o,s,u,l,f;for(o=new fz(t.b);o.as&&(s=i,f.c=Je(e1R,eUp,1,0,5,1)),i==s&&P_(f,new kD(n.d.i,n)));Hj(),Mv(f,e.c),jO(e.f,u.p,f)}}function eDj(e){_Y(e,new ewB(vQ(vq(vJ(vX(new oc,eZn),"ELK Box"),"Algorithm for packing of unconnected boxes, i.e. graphs without edges."),new oA))),KE(e,eZn,ezW,td$),KE(e,eZn,eGi,15),KE(e,eZn,eGr,ell(0)),KE(e,eZn,eqC,epB(tdj)),KE(e,eZn,eGh,epB(tdY)),KE(e,eZn,eGd,epB(tdU)),KE(e,eZn,ezG,eZt),KE(e,eZn,eGu,epB(tdF)),KE(e,eZn,eGM,epB(tdB)),KE(e,eZn,eZr,epB(tdP)),KE(e,eZn,eVg,epB(tdR))}function eDF(e,t){var n,r,i,a,o,s,u,c,l;if(o=(i=e.i).o.a,a=i.o.b,o<=0&&a<=0)return eYu(),tbF;switch(c=e.n.a,l=e.n.b,s=e.o.a,n=e.o.b,t.g){case 2:case 1:if(c<0)return eYu(),tbY;if(c+s>o)return eYu(),tby;break;case 4:case 3:if(l<0)return eYu(),tbw;if(l+n>a)return eYu(),tbj}return(u=(c+s/2)/o)+(r=(l+n/2)/a)<=1&&u-r<=0?(eYu(),tbY):u+r>=1&&u-r>=0?(eYu(),tby):r<.5?(eYu(),tbw):(eYu(),tbj)}function eDY(e,t){var n,r,i,a,o,s,u,c,l,f,d,h,p,b;for(n=!1,l=gP(LV(e_k(t,(eBy(),toF)))),p=eHe*l,i=new fz(t.b);i.a(u=s.n.b-s.d.d+d.a)+p&&(b=f.g+d.g,d.a=(d.g*d.a+f.g*f.a)/b,d.g=b,f.f=d,n=!0)),a=s,f=d;return n}function eDB(e,t,n,r,i,a,o){var s,u,c,l,f,d;for(d=new TE,c=t.Kc();c.Ob();)for(s=Pp(c.Pb(),839),f=new fz(s.wf());f.a0?s.a?i>(c=s.b.rf().b)&&(e.v||1==s.c.d.c.length?(o=(i-c)/2,s.d.d=o,s.d.a=o):(r=((n=Pp(RJ(s.c.d,0),181).rf().b)-c)/2,s.d.d=eB4.Math.max(0,r),s.d.a=i-r-c)):s.d.a=e.t+i:FY(e.u)&&((a=ew1(s.b)).d<0&&(s.d.d=-a.d),a.d+a.a>s.b.rf().b&&(s.d.a=a.d+a.a-s.b.rf().b))}function eD$(e,t){var n;switch(eeg(e)){case 6:return xd(t);case 7:return xf(t);case 8:return xl(t);case 3:return Array.isArray(t)&&!((n=eeg(t))>=14&&n<=16);case 11:return null!=t&&typeof t===eUs;case 12:return null!=t&&(typeof t===eUr||typeof t==eUs);case 0:return ebs(t,e.__elementTypeId$);case 2:return YS(t)&&t.im!==O;case 1:return YS(t)&&t.im!==O||ebs(t,e.__elementTypeId$);default:return!0}}function eDz(e,t){var n,r,i,a;return(r=eB4.Math.min(eB4.Math.abs(e.c-(t.c+t.b)),eB4.Math.abs(e.c+e.b-t.c)),a=eB4.Math.min(eB4.Math.abs(e.d-(t.d+t.a)),eB4.Math.abs(e.d+e.a-t.d)),(n=eB4.Math.abs(e.c+e.b/2-(t.c+t.b/2)))>e.b/2+t.b/2||(i=eB4.Math.abs(e.d+e.a/2-(t.d+t.a/2)))>e.a/2+t.a/2)?1:0==n&&0==i?0:0==n?a/i+1:0==i?r/n+1:eB4.Math.min(r/n,a/i)+1}function eDG(e,t){var n,r,i,a,o,s;return(i=enR(e),s=enR(t),i!=s)?it.f?1:0:(r=e.e-t.e,(n=(e.d>0?e.d:eB4.Math.floor((e.a-1)*eH8)+1)-(t.d>0?t.d:eB4.Math.floor((t.a-1)*eH8)+1))>r+1)?i:n0&&(o=eeD(o,eN4(r))),ehI(a,o))}function eDW(e,t){var n,r,i,a,o,s,u;for(a=0,s=0,u=0,i=new fz(e.f.e);i.a0&&e.d!=(QJ(),e86)&&(s+=o*(r.d.a+e.a[t.b][r.b]*(t.d.a-r.d.a)/n)),n>0&&e.d!=(QJ(),e83)&&(u+=o*(r.d.b+e.a[t.b][r.b]*(t.d.b-r.d.b)/n)));switch(e.d.g){case 1:return new kl(s/a,t.d.b);case 2:return new kl(t.d.a,u/a);default:return new kl(s/a,u/a)}}function eDK(e,t){var n,r,i,a,o;if(euv(),o=Pp(e_k(e.i,(eBy(),tol)),98),0!=(a=e.j.g-t.j.g)||!(o==(ewf(),tba)||o==tbs||o==tbo))return 0;if(o==(ewf(),tba)&&(n=Pp(e_k(e,tof),19),r=Pp(e_k(t,tof),19),n&&r&&0!=(i=n.a-r.a)))return i;switch(e.j.g){case 1:return elN(e.n.a,t.n.a);case 2:return elN(e.n.b,t.n.b);case 3:return elN(t.n.a,e.n.a);case 4:return elN(t.n.b,e.n.b);default:throw p7(new gC(eGz))}}function eDV(e){var t,n,r,i,a,o;for(n=(e.a||(e.a=new O_(e5h,e,5)),e.a).i+2,o=new XM(n),P_(o,new kl(e.j,e.k)),_r(new R1(null,(e.a||(e.a=new O_(e5h,e,5)),new Gq(e.a,16))),new h5(o)),P_(o,new kl(e.b,e.c)),t=1;t0&&(eoY(u,!1,(ec3(),tpm)),eoY(u,!0,tpg)),ety(t.g,new E4(e,n)),Um(e.g,t,n)}function eDZ(){var e;for(e=2,eDZ=A,e0$=eow(vx(ty_,1),eHT,25,15,[-1,-1,30,19,15,13,11,11,10,9,9,8,8,8,8,7,7,7,7,7,7,7,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5]),e0z=Je(ty_,eHT,25,37,15,1),e0G=eow(vx(ty_,1),eHT,25,15,[-1,-1,63,40,32,28,25,23,21,20,19,19,18,18,17,17,16,16,16,15,15,15,15,14,14,14,14,14,14,13,13,13,13,13,13,13,13]),e0W=Je(tyS,eH2,25,37,14,1);e<=36;e++)e0z[e]=zy(eB4.Math.pow(e,e0$[e])),e0W[e]=eyt(eUY,e0z[e])}function eDX(e){var t;if(1!=(e.a||(e.a=new FQ(e5v,e,6,6)),e.a).i)throw p7(new gL(eZC+(e.a||(e.a=new FQ(e5v,e,6,6)),e.a).i));return t=new mE,eoo(Pp(etj((e.b||(e.b=new Ih(e5m,e,4,7)),e.b),0),82))&&er7(t,eBE(e,eoo(Pp(etj((e.b||(e.b=new Ih(e5m,e,4,7)),e.b),0),82)),!1)),eoo(Pp(etj((e.c||(e.c=new Ih(e5m,e,5,8)),e.c),0),82))&&er7(t,eBE(e,eoo(Pp(etj((e.c||(e.c=new Ih(e5m,e,5,8)),e.c),0),82)),!0)),t}function eDJ(e,t){var n,r,i,a,o;for(i=t.d?e.a.c==(zs(),tuw)?efu(t.b):efc(t.b):e.a.c==(zs(),tuy)?efu(t.b):efc(t.b),a=!1,r=new Fa(OH(i.a.Kc(),new c));eTk(r);)if(n=Pp(ZC(r),17),!(!(o=gN(e.a.f[e.a.g[t.b.p].p]))&&!q9(n)&&n.c.i.c==n.d.i.c||gN(e.a.n[e.a.g[t.b.p].p])||gN(e.a.n[e.a.g[t.b.p].p]))&&(a=!0,w0(e.b,e.a.g[emN(n,t.b).p])))return t.c=!0,t.a=n,t;return t.c=a,t.a=null,t}function eDQ(e,t,n,r,i){var a,o,s,u,c,l,f;for(Hj(),Mv(e,new oU),s=new KB(e,0),f=new p0,a=0;s.b2*a?(l=new etD(f),c=jl(o)/jc(o),u=eY8(l,t,new mp,n,r,i,c),C6(xB(l.e),u),f.c=Je(e1R,eUp,1,0,5,1),a=0,f.c[f.c.length]=l,f.c[f.c.length]=o,a=jl(l)*jc(l)+jl(o)*jc(o)):(f.c[f.c.length]=o,a+=jl(o)*jc(o));return f}function eD1(e,t,n){var r,i,a,o,s,u,c;if(0==(r=n.gc()))return!1;if(e.ej()){if(u=e.fj(),edu(e,t,n),o=1==r?e.Zi(3,null,n.Kc().Pb(),t,u):e.Zi(5,null,n,t,u),e.bj()){for(s=r<100?null:new yf(r),a=t+r,i=t;i0){for(o=0;o>16==-15&&e.Cb.nh()&&QU(new JB(e.Cb,9,13,n,e.c,ebv(QX(Pp(e.Cb,59)),e))):M4(e.Cb,88)&&e.Db>>16==-23&&e.Cb.nh()&&(M4(t=e.c,88)||(t=(eBK(),tgI)),M4(n,88)||(n=(eBK(),tgI)),QU(new JB(e.Cb,9,10,n,t,ebv(qt(Pp(e.Cb,26)),e)))))),e.c}function eD5(e,t){var n,r,i,a,o,s,u,c,l,f;for(ewG(t,"Hypernodes processing",1),i=new fz(e.b);i.an)return i}function eNe(e,t){var n,r,i;r=0!=eMU(e.d,1),(gN(LK(e_k(t.j,(eBU(),tt2))))||gN(LK(e_k(t.j,tnS))))&&xc(e_k(t.j,(eBy(),ti8)))!==xc((esn(),tsM))?r=gN(LK(e_k(t.j,tt2))):t.c.Tf(t.e,r),eAb(e,t,r,!0),gN(LK(e_k(t.j,tnS)))&&eo3(t.j,tnS,(OQ(),!1)),gN(LK(e_k(t.j,tt2)))&&(eo3(t.j,tt2,(OQ(),!1)),eo3(t.j,tnS,!0)),n=eSY(e,t);do{if(er0(e),0==n)return 0;r=!r,i=n,eAb(e,t,r,!1),n=eSY(e,t)}while(i>n)return i}function eNt(e,t,n){var r,i,a,o,s,u,c,l,f,d,h,p;if(t==n)return!0;if(t=eTE(e,t),n=eTE(e,n),!(r=eb1(t)))return(s=t.e)==(h=n.e);if((l=eb1(n))!=r)return!!l&&(u=r.Dj())==(p=l.Dj())&&null!=u;if(a=(o=(t.d||(t.d=new O_(tgr,t,1)),t.d)).i,d=(n.d||(n.d=new O_(tgr,n,1)),n.d),a==d.i){for(c=0;c0,s=efC(t,a),n?Ag(s.b,t):Ag(s.g,t),1==efv(s).c.length&&qQ(r,s,r.c.b,r.c),i=new kD(a,t),Vw(e.o,i),QA(e.e.a,a))}function eNs(e,t){var n,r,i,a,o,s,u;return r=eB4.Math.abs(FB(e.b).a-FB(t.b).a),s=eB4.Math.abs(FB(e.b).b-FB(t.b).b),i=0,u=0,n=1,o=1,r>e.b.b/2+t.b.b/2&&(n=1-(i=eB4.Math.min(eB4.Math.abs(e.b.c-(t.b.c+t.b.b)),eB4.Math.abs(e.b.c+e.b.b-t.b.c)))/r),s>e.b.a/2+t.b.a/2&&(o=1-(u=eB4.Math.min(eB4.Math.abs(e.b.d-(t.b.d+t.b.a)),eB4.Math.abs(e.b.d+e.b.a-t.b.d)))/s),(1-(a=eB4.Math.min(n,o)))*eB4.Math.sqrt(r*r+s*s)}function eNu(e){var t,n,r,i;for(eFX(e,e.e,e.f,(zo(),tuq),!0,e.c,e.i),eFX(e,e.e,e.f,tuq,!1,e.c,e.i),eFX(e,e.e,e.f,tuZ,!0,e.c,e.i),eFX(e,e.e,e.f,tuZ,!1,e.c,e.i),eNd(e,e.c,e.e,e.f,e.i),r=new KB(e.i,0);r.b=65;n--)tvJ[n]=n-65<<24>>24;for(r=122;r>=97;r--)tvJ[r]=r-97+26<<24>>24;for(i=57;i>=48;i--)tvJ[i]=i-48+52<<24>>24;for(a=0,tvJ[43]=62,tvJ[47]=63;a<=25;a++)tvQ[a]=65+a&eHd;for(o=26,u=0;o<=51;++o,u++)tvQ[o]=97+u&eHd;for(e=52,s=0;e<=61;++e,s++)tvQ[e]=48+s&eHd;tvQ[62]=43,tvQ[63]=47}function eNf(e,t){var n,r,i,a,o,s,u,c,l,f,d,h;if(e.dc())return new yb;for(c=0,f=0,i=e.Kc();i.Ob();)a=(r=Pp(i.Pb(),37)).f,c=eB4.Math.max(c,a.a),f+=a.a*a.b;for(c=eB4.Math.max(c,eB4.Math.sqrt(f)*gP(LV(e_k(Pp(e.Kc().Pb(),37),(eBy(),tiX))))),d=0,h=0,u=0,n=t,s=e.Kc();s.Ob();)d+(l=(o=Pp(s.Pb(),37)).f).a>c&&(d=0,h+=u+t,u=0),eIn(o,d,h),n=eB4.Math.max(n,d+l.a),u=eB4.Math.max(u,l.b),d+=l.a+t;return new kl(n+t,h+u+t)}function eNd(e,t,n,r,i){var a,o,s,u,c,l,f;for(o=new fz(t);o.aa)return eYu(),tby;break;case 4:case 3:if(u<0)return eYu(),tbw;if(u+e.f>i)return eYu(),tbj}return(o=(s+e.g/2)/a)+(n=(u+e.f/2)/i)<=1&&o-n<=0?(eYu(),tbY):o+n>=1&&o-n>=0?(eYu(),tby):n<.5?(eYu(),tbw):(eYu(),tbj)}function eNp(e,t,n,r,i){var a,o;if(a=eft(WM(t[0],eH9),WM(r[0],eH9)),e[0]=jE(a),a=Fv(a,32),n>=i){for(o=1;o0&&(i.b[o++]=0,i.b[o++]=a.b[0]-1),t=1;t0&&(l0(u,u.d-i.d),i.c==(Xa(),tuU)&&lQ(u,u.a-i.d),u.d<=0&&u.i>0&&qQ(t,u,t.c.b,t.c));for(a=new fz(e.f);a.a0&&(l2(s,s.i-i.d),i.c==(Xa(),tuU)&&l1(s,s.b-i.d),s.i<=0&&s.d>0&&qQ(n,s,n.c.b,n.c))}function eNv(e,t,n){var r,i,a,o,s,u,c,l;for(ewG(n,"Processor compute fanout",1),Yy(e.b),Yy(e.a),s=null,a=epL(t.b,0);!s&&a.b!=a.d.c;)gN(LK(e_k(c=Pp(Vv(a),86),(eR5(),tcm))))&&(s=c);for(qQ(u=new _n,s,u.c.b,u.c),eYc(e,u),l=epL(t.b,0);l.b!=l.d.c;)o=Lq(e_k(c=Pp(Vv(l),86),(eR5(),tca))),eo3(c,tci,ell(i=null!=zg(e.b,o)?Pp(zg(e.b,o),19).a:0)),eo3(c,tcn,ell(r=1+(null!=zg(e.a,o)?Pp(zg(e.a,o),19).a:0)));eEj(n)}function eNy(e,t,n,r,i){var a,o,s,u,c,l,f,d,h,p;for(u=0,d=eyG(e,n);u0),r.a.Xb(r.c=--r.b),f>d+u&&BH(r);for(o=new fz(h);o.a0),r.a.Xb(r.c=--r.b)}}function eNw(){var e,t,n,r,i,a;if(eBG(),tyg)return tyg;for(e=(++tyv,new WZ(4)),ePR(e,eYB(e1_,!0)),ej0(e,eYB("M",!0)),ej0(e,eYB("C",!0)),a=(++tyv,new WZ(4)),r=0;r<11;r++)eLw(a,r,r);return t=(++tyv,new WZ(4)),ePR(t,eYB("M",!0)),eLw(t,4448,4607),eLw(t,65438,65439),i=(++tyv,new Mr(2)),eRv(i,e),eRv(i,tye),(n=(++tyv,new Mr(2))).$l(jS(a,eYB("L",!0))),n.$l(t),n=(++tyv,new qa(3,n)),tyg=n=(++tyv,new YD(i,n))}function eN_(e){var t,n;if(t=Lq(eT9(e,(eBB(),tdQ))),!eae(t,e)&&!X2(e,th5)&&(0!=(e.a||(e.a=new FQ(e5k,e,10,11)),e.a).i||gN(LK(eT9(e,thh))))){if(null==t||0==e_H(t).length){if(!eae(eG1,e))throw eFh(e,n=xM(xM(new O0("Unable to load default layout algorithm "),eG1)," for unconfigured node ")),p7(new gq(n.a))}else throw eFh(e,n=xM(xM(new O0("Layout algorithm '"),t),"' not found for ")),p7(new gq(n.a))}}function eNE(e){var t,n,r,i,a,o,s,u,c,l,f,d,h;if(n=e.i,t=e.n,0==e.b)for(h=n.c+t.b,d=n.b-t.b-t.c,o=e.a,u=0,l=o.length;u0&&(f-=r[0]+e.c,r[0]+=e.c),r[2]>0&&(f-=r[2]+e.c),r[1]=eB4.Math.max(r[1],f),jQ(e.a[1],n.c+t.b+r[0]-(r[1]-f)/2,r[1]);for(a=e.a,s=0,c=a.length;s0?(e.n.c.length-1)*e.i:0,r=new fz(e.n);r.a1)for(r=epL(i,0);r.b!=r.d.c;)for(n=Pp(Vv(r),231),a=0,u=new fz(n.e);u.a0&&(t[0]+=e.c,f-=t[0]),t[2]>0&&(f-=t[2]+e.c),t[1]=eB4.Math.max(t[1],f),j1(e.a[1],r.d+n.d+t[0]-(t[1]-f)/2,t[1]);else for(p=r.d+n.d,h=r.a-n.d-n.a,o=e.a,u=0,l=o.length;u=0&&a!=n)throw p7(new gL(eXB));for(u=0,i=0;u=efT(e.b.c,i.b.c+i.b.b)&&0>=efT(i.b.c,e.b.c+e.b.b)&&0>=efT(e.b.d,i.b.d+i.b.a)&&0>=efT(i.b.d,e.b.d+e.b.a)){if(0==efT(i.b.c,e.b.c+e.b.b)&&r.a<0||0==efT(i.b.c+i.b.b,e.b.c)&&r.a>0||0==efT(i.b.d,e.b.d+e.b.a)&&r.b<0||0==efT(i.b.d+i.b.a,e.b.d)&&r.b>0){s=0;break}}else s=eB4.Math.min(s,ekg(e,i,r));s=eB4.Math.min(s,eNC(e,a,s,r))}return s}function eNI(e,t){var n,r,i,a,o,s,u;if(e.b<2)throw p7(new gL("The vector chain must contain at least a source and a target point."));for(Tj(t,(i=(A5(0!=e.b),Pp(e.a.a.c,8))).a,i.b),u=new AF((t.a||(t.a=new O_(e5h,t,5)),t.a)),o=epL(e,1);o.agP(Ot(o.g,o.d[0]).a)?(A5(u.b>0),u.a.Xb(u.c=--u.b),CD(u,o),i=!0):s.e&&s.e.gc()>0&&(a=(s.e||(s.e=new p0),s.e).Mc(t),c=(s.e||(s.e=new p0),s.e).Mc(n),(a||c)&&((s.e||(s.e=new p0),s.e).Fc(o),++o.c));i||(r.c[r.c.length]=o)}function eNH(e){var t,n,r;if(TM(Pp(e_k(e,(eBy(),tol)),98)))for(n=new fz(e.j);n.a>>0).toString(16),n.length-2,n.length):e>=eH3?"\\v"+Az(n="0"+(t=e>>>0).toString(16),n.length-6,n.length):""+String.fromCharCode(e&eHd)}return r}function eNz(e,t){var n,r,i,a,o,s,u,c,l,f;if(o=e.e,0==(u=t.e))return e;if(0==o)return 0==t.e?t:new F7(-t.e,t.d,t.a);if((a=e.d)+(s=t.d)==2)return n=WM(e.a[0],eH9),r=WM(t.a[0],eH9),o<0&&(n=QC(n)),u<0&&(r=QC(r)),ep_(efe(n,r));if(-1==(i=a!=s?a>s?1:-1:es9(e.a,t.a,a)))f=-u,l=o==u?Z1(t.a,s,e.a,a):X7(t.a,s,e.a,a);else if(f=o,o==u){if(0==i)return eLQ(),e09;l=Z1(e.a,a,t.a,s)}else l=X7(e.a,a,t.a,s);return c=new F7(f,l.length,l),Ku(c),c}function eNG(e){var t,n,r,i,a,o;for(this.e=new p0,this.a=new p0,n=e.b-1;n<3;n++)Ls(e,0,Pp(ep3(e,0),8));if(e.b<4)throw p7(new gL("At (least dimension + 1) control points are necessary!"));for(this.b=3,this.d=!0,this.c=!1,eMO(this,e.b+this.b-1),o=new p0,a=new fz(this.e),t=0;t=t.o&&n.f<=t.f||.5*t.a<=n.f&&1.5*t.a>=n.f){if((o=Pp(RJ(t.n,t.n.c.length-1),211)).e+o.d+n.g+i<=r&&((a=Pp(RJ(t.n,t.n.c.length-1),211)).f-e.f+n.f<=e.b||1==e.a.c.length))return efg(t,n),!0;if(t.s+n.g<=r&&(t.t+t.d+n.f+i<=e.b||1==e.a.c.length))return P_(t.b,n),s=Pp(RJ(t.n,t.n.c.length-1),211),P_(t.n,new zO(t.s,s.f+s.a+t.i,t.i)),eml(Pp(RJ(t.n,t.n.c.length-1),211),n),eNk(t,n),!0}return!1}function eNV(e,t,n){var r,i,a,o;return e.ej()?(i=null,a=e.fj(),r=e.Zi(1,o=ees(e,t,n),n,t,a),e.bj()&&!(e.ni()&&null!=o?ecX(o,n):xc(o)===xc(n))?(null!=o&&(i=e.dj(o,i)),i=e.cj(n,i),e.ij()&&(i=e.lj(o,n,i)),i?(i.Ei(r),i.Fi()):e.$i(r)):(e.ij()&&(i=e.lj(o,n,i)),i?(i.Ei(r),i.Fi()):e.$i(r)),o):(o=ees(e,t,n),e.bj()&&!(e.ni()&&null!=o?ecX(o,n):xc(o)===xc(n))&&(i=null,null!=o&&(i=e.dj(o,null)),(i=e.cj(n,i))&&i.Fi()),o)}function eNq(e,t){var n,r,i,a,o,s,u,c;t%=24,e.q.getHours()!=t&&((r=new eB4.Date(e.q.getTime())).setDate(r.getDate()+1),(s=e.q.getTimezoneOffset()-r.getTimezoneOffset())>0&&(u=s/60|0,c=s%60,i=e.q.getDate(),(n=e.q.getHours())+u>=24&&++i,a=new eB4.Date(e.q.getFullYear(),e.q.getMonth(),i,t+u,e.q.getMinutes()+c,e.q.getSeconds(),e.q.getMilliseconds()),e.q.setTime(a.getTime()))),o=e.q.getTime(),e.q.setTime(o+36e5),e.q.getHours()!=t&&e.q.setTime(o)}function eNZ(e,t){var n,r,i,a,o;if(ewG(t,"Path-Like Graph Wrapping",1),0==e.b.c.length||(n=(o=(null==(i=new eTN(e)).i&&(i.i=eis(i,new iP)),gP(i.i)*i.f))/(null==i.i&&(i.i=eis(i,new iP)),gP(i.i)),i.b>n)){eEj(t);return}switch(Pp(e_k(e,(eBy(),toq)),337).g){case 2:a=new iF;break;case 0:a=new iO;break;default:a=new iY}if(r=a.Vf(e,i),!a.Wf())switch(Pp(e_k(e,to0),338).g){case 2:r=ekE(i,r);break;case 1:r=ewQ(i,r)}eRw(e,i,r),eEj(t)}function eNX(e,t){var n,r,i,a;if(GW(e.d,e.e),e.c.a.$b(),0!=gP(LV(e_k(t.j,(eBy(),ti3))))||0!=gP(LV(e_k(t.j,ti3))))for(n=ezq,xc(e_k(t.j,ti8))!==xc((esn(),tsM))&&eo3(t.j,(eBU(),tt2),(OQ(),!0)),a=Pp(e_k(t.j,to$),19).a,i=0;i(i=(GK(s+1,t.c.length),Pp(t.c[s+1],19)).a-r)&&++c,P_(o,(GK(s+c,t.c.length),Pp(t.c[s+c],19))),u+=(GK(s+c,t.c.length),Pp(t.c[s+c],19)).a-r,++n;n1&&(u>jl(s)*jc(s)/2||0==o.b)&&(f=new etD(d),l=jl(s)/jc(s),c=eY8(f,t,new mp,n,r,i,l),C6(xB(f.e),c),s=f,h.c[h.c.length]=f,u=0,d.c=Je(e1R,eUp,1,0,5,1)));return eoc(h,d),h}function eN2(e,t,n,r){var i,a,o,s,u,c,l,f,d,h,p,b;if(n.mh(t)&&(l=(h=t)?Pp(r,49).xh(h):null)){if(b=n.bh(t,e.a),(p=t.t)>1||-1==p){if(f=Pp(b,69),d=Pp(l,69),f.dc())d.$b();else for(o=!!ebY(t),a=0,s=e.a?f.Kc():f.Zh();s.Ob();)c=Pp(s.Pb(),56),(i=Pp(eef(e,c),56))?(o?-1==(u=d.Xc(i))?d.Xh(a,i):a!=u&&d.ji(a,i):d.Xh(a,i),++a):e.b&&!o&&(d.Xh(a,c),++a)}else null==b?l.Wb(null):null==(i=eef(e,b))?e.b&&!ebY(t)&&l.Wb(b):l.Wb(i)}}function eN3(e,t){var n,r,i,a,o,s,u,l;for(n=new nf,i=new Fa(OH(efu(t).a.Kc(),new c));eTk(i);)if(r=Pp(ZC(i),17),!q9(r)&&ewg(s=r.c.i,e9q)){if(-1==(l=eCu(e,s,e9q,e9V)))continue;n.b=eB4.Math.max(n.b,l),n.a||(n.a=new p0),P_(n.a,s)}for(o=new Fa(OH(efc(t).a.Kc(),new c));eTk(o);)if(a=Pp(ZC(o),17),!q9(a)&&ewg(u=a.d.i,e9V)){if(-1==(l=eCu(e,u,e9V,e9q)))continue;n.d=eB4.Math.max(n.d,l),n.c||(n.c=new p0),P_(n.c,u)}return n}function eN4(e){var t,n,r,i;if(exX(),t=zy(e),e1e6)throw p7(new g_("power of ten too big"));if(e<=eUu)return ZA(exT(e2t[1],t),t);for(i=r=exT(e2t[1],eUu),n=eap(e-eUu),t=zy(e%eUu);ecd(n,eUu)>0;)i=eeD(i,r),n=efe(n,eUu);for(i=eeD(i,exT(e2t[1],t)),i=ZA(i,eUu),n=eap(e-eUu);ecd(n,eUu)>0;)i=ZA(i,eUu),n=efe(n,eUu);return ZA(i,t)}function eN6(e,t){var n,r,i,a,o,s,u,c,l;for(ewG(t,"Hierarchical port dummy size processing",1),u=new p0,l=new p0,n=2*(r=gP(LV(e_k(e,(eBy(),toA))))),a=new fz(e.b);a.ac&&r>c)l=s,c=gP(t.p[s.p])+gP(t.d[s.p])+s.o.b+s.d.a;else{i=!1,n.n&&P3(n,"bk node placement breaks on "+s+" which should have been after "+l);break}if(!i)break}return n.n&&P3(n,t+" is feasible: "+i),i}function ePr(e,t,n,r){var i,a,o,s,u,c,l;for(s=-1,l=new fz(e);l.a=m&&e.e[u.p]>p*e.b||y>=n*m)&&(d.c[d.c.length]=s,s=new p0,er7(o,a),a.a.$b(),c-=l,h=eB4.Math.max(h,c*e.b+b),c+=y,v=y,y=0,l=0,b=0);return new kD(h,d)}function ePs(e){var t,n,r,i,a,o,s,u,c,l,f,d,h;for(n=(c=new fT(e.c.b).a.vc().Kc(),new fN(c));n.a.Ob();)null==(i=(t=(s=Pp(n.a.Pb(),42),Pp(s.dd(),149))).a)&&(i=""),(r=L9(e.c,i))||0!=i.length||(r=ecj(e)),r&&!eds(r.c,t,!1)&&P7(r.c,t);for(o=epL(e.a,0);o.b!=o.d.c;)a=Pp(Vv(o),478),l=Zc(e.c,a.a),h=Zc(e.c,a.b),l&&h&&P7(l.c,new kD(h,a.c));for(HC(e.a),d=epL(e.b,0);d.b!=d.d.c;)f=Pp(Vv(d),478),t=L8(e.c,f.a),u=Zc(e.c,f.b),t&&u&&_U(t,u,f.c);HC(e.b)}function ePu(e,t,n){var r,i,a,o,s,u,c,l,f,d,h;a=new lD(e),o=new eg5,i=(Ze(o.g),Ze(o.j),Yy(o.b),Ze(o.d),Ze(o.i),Yy(o.k),Yy(o.c),Yy(o.e),h=ekH(o,a,null),eMA(o,a),h),t&&(s=ePA(c=new lD(t)),eEh(i,eow(vx(e6q,1),eUp,527,0,[s]))),d=!1,f=!1,n&&(eXW in(c=new lD(n)).a&&(d=zR(c,eXW).ge().a),eXK in c.a&&(f=zR(c,eXK).ge().a)),l=yr(eny(new mV,d),f),eER(new or,i,l),eXW in a.a&&ee3(a,eXW,null),(d||f)&&(eNj(l,u=new gu,d,f),ee3(a,eXW,u)),r=new pp(o),esA(new TY(i),r)}function ePc(e,t,n){var r,i,a,o,s,u,c,l,f;for(u=0,o=new evI,c=eow(vx(ty_,1),eHT,25,15,[0]),i=-1,a=0,r=0;u0){if(i<0&&l.a&&(i=u,a=c[0],r=0),i>=0){if(s=l.b,u==i&&0==(s-=r++))return 0;if(!eYw(t,c,l,s,o)){u=i-1,c[0]=a;continue}}else if(i=-1,!eYw(t,c,l,0,o))return 0}else{if(i=-1,32==UI(l.c,0)){if(f=c[0],eey(t,c),c[0]>f)continue}else if($D(t,l.c,c[0])){c[0]+=l.c.length;continue}return 0}return eYn(o,n)?c[0]:0}function ePl(e){var t,n,r,i,a,o,s,u;if(!e.f){if(u=new su,s=new su,null==(o=(t=tgz).a.zc(e,t))){for(a=new Ow($E(e));a.e!=a.i.gc();)i=Pp(epH(a),26),Y4(u,ePl(i));t.a.Bc(e),t.a.gc()}for(r=(e.s||(e.s=new FQ(tm5,e,21,17)),new Ow(e.s));r.e!=r.i.gc();)n=Pp(epH(r),170),M4(n,99)&&JL(s,Pp(n,18));euI(s),e.r=new PX(e,(Pp(etj(H8((BM(),tgv).o),6),18),s.i),s.g),Y4(u,e.r),euI(u),e.f=new xQ((Pp(etj(H8(tgv.o),5),18),u.i),u.g),Zd(e).b&=-3}return e.f}function ePf(e){var t,n,r,i,a,o,s,u,c,l,f,d,h,p;for(c=0,r=Je(ty_,eHT,25,o=e.o,15,1),i=Je(ty_,eHT,25,o,15,1),t=Je(ty_,eHT,25,n=e.p,15,1),a=Je(ty_,eHT,25,n,15,1);c=0&&!emy(e,l,f);)--f;i[l]=f}for(h=0;h=0&&!emy(e,s,p);)--s;a[p]=s}for(u=0;ut[d]&&dr[u]&&eCQ(e,u,d,!1,!0)}function ePd(e){var t,n,r,i,a,o,s,u;n=gN(LK(e_k(e,(eCk(),e8b)))),a=e.a.c.d,s=e.a.d.d,n?(o=Ol(C5(new kl(s.a,s.b),a),.5),u=Ol(MB(e.e),.5),t=C5(C6(new kl(a.a,a.b),o),u),Lf(e.d,t)):(i=gP(LV(e_k(e.a,e8I))),r=e.d,a.a>=s.a?a.b>=s.b?(r.a=s.a+(a.a-s.a)/2+i,r.b=s.b+(a.b-s.b)/2-i-e.e.b):(r.a=s.a+(a.a-s.a)/2+i,r.b=a.b+(s.b-a.b)/2+i):a.b>=s.b?(r.a=a.a+(s.a-a.a)/2+i,r.b=s.b+(a.b-s.b)/2+i):(r.a=a.a+(s.a-a.a)/2+i,r.b=a.b+(s.b-a.b)/2-i-e.e.b))}function ePh(e,t){var n,r,i,a,o,s,u;if(null==e)return null;if(0==(a=e.length))return"";for(u=Je(tyw,eHl,25,a,15,1),Ji(0,a,e.length),Ji(0,a,u.length),YF(e,0,a,u,0),n=null,s=t,i=0,o=0;i0?Az(n.a,0,a-1):"":e.substr(0,a-1):n?n.a:e}function ePp(e){_Y(e,new ewB(vQ(vq(vJ(vX(new oc,ezH),"ELK DisCo"),"Layouter for arranging unconnected subgraphs. The subgraphs themselves are, by default, not laid out."),new e4))),KE(e,ezH,ez$,epB(e57)),KE(e,ezH,ezz,epB(e53)),KE(e,ezH,ezG,epB(e5J)),KE(e,ezH,ezW,epB(e54)),KE(e,ezH,e$Q,epB(e58)),KE(e,ezH,e$1,epB(e55)),KE(e,ezH,e$J,epB(e59)),KE(e,ezH,e$0,epB(e56)),KE(e,ezH,ezj,epB(e51)),KE(e,ezH,ezF,epB(e5Q)),KE(e,ezH,ezY,epB(e50)),KE(e,ezH,ezB,epB(e52))}function ePb(e,t,n,r){var i,a,o,s,u,c,l,f,d;if(a=new eb$(e),lK(a,(eEn(),e9P)),eo3(a,(eBy(),tol),(ewf(),tbo)),i=0,t){for(o=new eES,eo3(o,(eBU(),tnc),t),eo3(a,tnc,t.i),ekv(o,(eYu(),tbY)),Gc(o,a),d=Kp(t.e),l=0,f=(c=d).length;lenR(e)?1:0,n=e.e,i=(r.length,eB4.Math.abs(zy(e.e)),new vl),1==t&&(i.a+="-"),e.e>0){if((n-=r.length-t)>=0){for(i.a+="0.";n>e0Z.length;n-=e0Z.length)RX(i,e0Z);CA(i,e0Z,zy(n)),xM(i,r.substr(t))}else n=t-n,xM(i,Az(r,t,zy(n))),i.a+=".",xM(i,xy(r,zy(n)))}else{for(xM(i,r.substr(t));n<-e0Z.length;n+=e0Z.length)RX(i,e0Z);CA(i,e0Z,zy(-n))}return i.a}function ePv(e,t,n,r){var i,a,o,s,u,c,l,f,d;return(c=(u=C5(new kl(n.a,n.b),e)).a*t.b-u.b*t.a,l=t.a*r.b-t.b*r.a,f=(u.a*r.b-u.b*r.a)/l,d=c/l,0!=l)?f>=0&&f<=1&&d>=0&&d<=1?C6(new kl(e.a,e.b),Ol(new kl(t.a,t.b),f)):null:0!=c?null:(a=Jh(e,i=C6(new kl(n.a,n.b),Ol(new kl(r.a,r.b),.5))),o=Jh(C6(new kl(e.a,e.b),t),i),s=.5*eB4.Math.sqrt(r.a*r.a+r.b*r.b),at.a&&(r.Hc((eyY(),tdW))?e.c.a+=(n.a-t.a)/2:r.Hc(tdV)&&(e.c.a+=n.a-t.a)),n.b>t.b&&(r.Hc((eyY(),tdZ))?e.c.b+=(n.b-t.b)/2:r.Hc(tdq)&&(e.c.b+=n.b-t.b)),Pp(e_k(e,(eBU(),tt3)),21).Hc((eLR(),ttw))&&(n.a>t.a||n.b>t.b))for(s=new fz(e.a);s.at.a&&(r.Hc((eyY(),tdW))?e.c.a+=(n.a-t.a)/2:r.Hc(tdV)&&(e.c.a+=n.a-t.a)),n.b>t.b&&(r.Hc((eyY(),tdZ))?e.c.b+=(n.b-t.b)/2:r.Hc(tdq)&&(e.c.b+=n.b-t.b)),Pp(e_k(e,(eBU(),tt3)),21).Hc((eLR(),ttw))&&(n.a>t.a||n.b>t.b))for(o=new fz(e.a);o.at&&(i=0,a+=l.b+n,f.c[f.c.length]=l,l=new W5(a,n),r=new es$(0,l.f,l,n),enN(l,r),i=0),0==r.b.c.length||u.f>=r.o&&u.f<=r.f||.5*r.a<=u.f&&1.5*r.a>=u.f?efg(r,u):(o=new es$(r.s+r.r+n,l.f,l,n),enN(l,o),efg(o,u)),i=u.i+u.g;return f.c[f.c.length]=l,f}function ePk(e){var t,n,r,i,a,o,s,u;if(!e.a){if(e.o=null,u=new pj(e),t=new sc,null==(s=(n=tgz).a.zc(e,n))){for(o=new Ow($E(e));o.e!=o.i.gc();)a=Pp(epH(o),26),Y4(u,ePk(a));n.a.Bc(e),n.a.gc()}for(i=(e.s||(e.s=new FQ(tm5,e,21,17)),new Ow(e.s));i.e!=i.i.gc();)r=Pp(epH(i),170),M4(r,322)&&JL(t,Pp(r,34));euI(t),e.k=new PZ(e,(Pp(etj(H8((BM(),tgv).o),7),18),t.i),t.g),Y4(u,e.k),euI(u),e.a=new xQ((Pp(etj(H8(tgv.o),4),18),u.i),u.g),Zd(e).b&=-2}return e.a}function ePx(e,t,n,r,i,a,o){var s,u,c,l,f,d;return f=!1,u=eO4(n.q,t.f+t.b-n.q.f),!((d=i-(n.q.e+u-o))=(GK(a,e.c.length),Pp(e.c[a],200)).e,(!((l=(s=ePI(r,d,!1)).a)>t.b)||!!c)&&((c||l<=t.b)&&(c&&l>t.b?(n.d=l,JR(n,eEP(n,l))):(eyC(n.q,u),n.c=!0),JR(r,i-(n.s+n.r)),ebP(r,n.q.e+n.q.d,t.f),enN(t,r),e.c.length>a&&(eva((GK(a,e.c.length),Pp(e.c[a],200)),r),0==(GK(a,e.c.length),Pp(e.c[a],200)).a.c.length&&ZV(e,a)),f=!0),f))}function ePT(e,t,n,r){var i,a,o,s,u,c,l;if(l=eAY(e.e.Tg(),t),i=0,a=Pp(e.g,119),u=null,_4(),Pp(t,66).Oj()){for(s=0;se.o.a&&(l=(u-e.o.a)/2,s.b=eB4.Math.max(s.b,l),s.c=eB4.Math.max(s.c,l))}}function ePA(e){var t,n,r,i,a,o,s,u;for(a=new W9,Tp(a,(eoM(),tdr)),r=(i=erG(e,Je(e17,eUP,2,0,6,1)),new fE(new g$(new wY(e,i).b)));r.b0?e.i:0)>t&&u>0&&(a=0,o+=u+e.i,i=eB4.Math.max(i,d),r+=u+e.i,u=0,d=0,n&&(++f,P_(e.n,new zO(e.s,o,e.i))),s=0),d+=c.g+(s>0?e.i:0),u=eB4.Math.max(u,c.f),n&&eml(Pp(RJ(e.n,f),211),c),a+=c.g+(s>0?e.i:0),++s;return i=eB4.Math.max(i,d),r+=u,n&&(e.r=i,e.d=r,egf(e.j)),new Hr(e.s,e.t,i,r)}function ePD(e,t,n,r,i){var a,o,s,u,c,l,f,d,h;if(wK(),Yh(e,"src"),Yh(n,"dest"),d=esF(e),u=esF(n),Pz((4&d.i)!=0,"srcType is not an array"),Pz((4&u.i)!=0,"destType is not an array"),f=d.c,o=u.c,Pz((1&f.i)!=0?f==o:(1&o.i)==0,"Array types don't match"),h=e.length,c=n.length,t<0||r<0||i<0||t+i>h||r+i>c)throw p7(new bE);if((1&f.i)==0&&d!=u){if(l=etG(e),a=etG(n),xc(e)===xc(n)&&tr;)Bc(a,s,l[--t]);else for(s=r+i;r0&&ekp(e,t,n,r,i,!0)}function ePN(){ePN=A,e07=eow(vx(ty_,1),eHT,25,15,[eHt,1162261467,eU2,1220703125,362797056,1977326743,eU2,387420489,eHK,214358881,429981696,815730721,1475789056,170859375,268435456,410338673,612220032,893871739,128e7,1801088541,113379904,148035889,191102976,244140625,308915776,387420489,481890304,594823321,729e6,887503681,eU2,1291467969,1544804416,1838265625,60466176]),e2e=eow(vx(ty_,1),eHT,25,15,[-1,-1,31,19,15,13,11,11,10,9,9,8,8,8,8,7,7,7,7,7,7,7,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5])}function ePP(e){var t,n,r,i,a,o,s,u;for(i=new fz(e.b);i.a=e.b.length?(a[i++]=o.b[r++],a[i++]=o.b[r++]):r>=o.b.length?(a[i++]=e.b[n++],a[i++]=e.b[n++]):o.b[r]0?e.i:0)),++t;for(efX(e.n,u),e.d=n,e.r=r,e.g=0,e.f=0,e.e=0,e.o=eHQ,e.p=eHQ,a=new fz(e.b);a.a0&&(i=(e.n||(e.n=new FQ(e5S,e,1,7)),Pp(etj(e.n,0),137)).a)&&xM(xM((t.a+=' "',t),i),'"')),(n=(e.b||(e.b=new Ih(e5m,e,4,7)),!(e.b.i<=1&&(e.c||(e.c=new Ih(e5m,e,5,8)),e.c.i<=1))))?(t.a+=" [",t):(t.a+=" ",t),xM(t,OU(new ve,new Ow(e.b))),n&&(t.a+="]"),t.a+=eGH,n&&(t.a+="["),xM(t,OU(new ve,new Ow(e.c))),n&&(t.a+="]"),t.a)}function ePB(e,t){var n,r,i,a,o,s,u;if(e.a){if(s=e.a.ne(),u=null,null!=s?t.a+=""+s:null!=(o=e.a.Dj())&&(-1!=(a=x7(o,e_n(91)))?(u=o.substr(a),t.a+=""+Az(null==o?eUg:(BJ(o),o),0,a)):t.a+=""+o),e.d&&0!=e.d.i){for(i=!0,t.a+="<",r=new Ow(e.d);r.e!=r.i.gc();)n=Pp(epH(r),87),i?i=!1:(t.a+=eUd,t),ePB(n,t);t.a+=">"}null!=u&&(t.a+=""+u)}else e.e?null!=(s=e.e.zb)&&(t.a+=""+s):(t.a+="?",e.b?(t.a+=" super ",ePB(e.b,t)):e.f&&(t.a+=" extends ",ePB(e.f,t)))}function ePU(e,t){var n,r,i,a,o,s,u,c,l,f,d,h,p,b,m,g,v,y,w,_,E,S,k,x,T;for(_=e.c,E=t.c,n=QI(_.a,e,0),r=QI(E.a,t,0),y=Pp(edE(e,(enY(),tsD)).Kc().Pb(),11),x=Pp(edE(e,tsN).Kc().Pb(),11),w=Pp(edE(t,tsD).Kc().Pb(),11),T=Pp(edE(t,tsN).Kc().Pb(),11),g=Kp(y.e),S=Kp(x.g),v=Kp(w.e),k=Kp(T.g),egU(e,r,E),l=0,p=(o=v).length;ll?new GT((Xa(),tuH),n,t,c-l):c>0&&l>0&&(new GT((Xa(),tuH),t,n,0),new GT(tuH,n,t,0))),o)}function ePz(e,t){var n,r,i,a,o,s;for(o=new esz(new fS(e.f.b).a);o.b;){if(a=etz(o),i=Pp(a.cd(),594),1==t){if(i.gf()!=(ec3(),tpy)&&i.gf()!=tpb)continue}else if(i.gf()!=(ec3(),tpm)&&i.gf()!=tpg)continue;switch(r=Pp(Pp(a.dd(),46).b,81),n=(s=Pp(Pp(a.dd(),46).a,189)).c,i.gf().g){case 2:r.g.c=e.e.a,r.g.b=eB4.Math.max(1,r.g.b+n);break;case 1:r.g.c=r.g.c+n,r.g.b=eB4.Math.max(1,r.g.b-n);break;case 4:r.g.d=e.e.b,r.g.a=eB4.Math.max(1,r.g.a+n);break;case 3:r.g.d=r.g.d+n,r.g.a=eB4.Math.max(1,r.g.a-n)}}}function ePG(e,t){var n,r,i,a,o,s,u,c,l,f,d,h,p,b;for(s=Je(ty_,eHT,25,t.b.c.length,15,1),c=Je(e4P,eU4,267,t.b.c.length,0,1),u=Je(e4N,eGW,10,t.b.c.length,0,1),f=e.a,d=0,h=f.length;d0&&u[r]&&(p=Mj(e.b,u[r],i)),b=eB4.Math.max(b,i.c.c.b+p);for(a=new fz(l.e);a.a1)throw p7(new gL(eQ$));u||(a=V4(t,r.Kc().Pb()),o.Fc(a))}return eo0(e,eSu(e,t,n),o)}function ePZ(e,t){var n,r,i,a;for(etY(t.b.j),_r(UQ(new R1(null,new Gq(t.d,16)),new iy),new iw),a=new fz(t.d);a.ae.o.b||(n=efr(e,tby),(s=t.d+t.a+(n.gc()-1)*o)>e.o.b)))}function eP6(e,t){var n,r,i,a,o,s,u,c,l,f,d,h,p;if(o=e.e,u=t.e,0==o)return t;if(0==u)return e;if((a=e.d)+(s=t.d)==2)return(n=WM(e.a[0],eH9),r=WM(t.a[0],eH9),o==u)?(p=jE(l=eft(n,r)),0==(h=jE(Fy(l,32)))?new XE(o,p):new F7(o,2,eow(vx(ty_,1),eHT,25,15,[p,h]))):ep_(o<0?efe(r,n):efe(n,r));if(o==u)d=o,f=a>=s?X7(e.a,a,t.a,s):X7(t.a,s,e.a,a);else{if(0==(i=a!=s?a>s?1:-1:es9(e.a,t.a,a)))return eLQ(),e09;1==i?(d=o,f=Z1(e.a,a,t.a,s)):(d=u,f=Z1(t.a,s,e.a,a))}return c=new F7(d,f.length,f),Ku(c),c}function eP5(e,t,n,r,i,a,o){var s,u,c,l,f,d,h;return f=gN(LK(e_k(t,(eBy(),taV)))),d=null,a==(enY(),tsD)&&r.c.i==n?d=r.c:a==tsN&&r.d.i==n&&(d=r.d),(c=o)&&f&&!d?(P_(c.e,r),h=eB4.Math.max(gP(LV(e_k(c.d,tak))),gP(LV(e_k(r,tak)))),eo3(c.d,tak,h)):(l=(eYu(),tbF),d?l=d.j:TM(Pp(e_k(n,tol),98))&&(l=a==tsD?tbY:tby),u=eP9(e,t,n,a,l,r),s=ZD((Bq(n),r)),a==tsD?(Gs(s,Pp(RJ(u.j,0),11)),Go(s,i)):(Gs(s,i),Go(s,Pp(RJ(u.j,0),11))),c=new ec9(r,s,u,Pp(e_k(u,(eBU(),tnc)),11),a,!d)),exg(e.a,r,new DT(c.d,t,a)),c}function eP8(e,t){var n,r,i,a,o,s,u,c,l,f;if(l=null,e.d&&(l=Pp(zg(e.d,t),138)),!l){if(f=(a=e.a.Mh()).i,!e.d||wq(e.d)!=f){for(u=new p2,e.d&&eij(u,e.d),s=c=u.f.c+u.g.c;s0?(h=(p-1)*n,s&&(h+=r),l&&(h+=r),!(h=e.b[i+1])i+=2;else if(n0)for(r=new I4(Pp(Zq(e.a,a),21)),Hj(),Mv(r,new dT(t)),i=new KB(a.b,0);i.b_)?(u=2,o=eUu):0==u?(u=1,o=S):(u=0,o=S):(h=S>=o||o-S0?1:Te(isNaN(r),isNaN(0)))>=0^(enj(eVU),(eB4.Math.abs(s)<=eVU||0==s||isNaN(s)&&isNaN(0)?0:s<0?-1:s>0?1:Te(isNaN(s),isNaN(0)))>=0))?eB4.Math.max(s,r):(enj(eVU),(eB4.Math.abs(r)<=eVU||0==r||isNaN(r)&&isNaN(0)?0:r<0?-1:r>0?1:Te(isNaN(r),isNaN(0)))>0)?eB4.Math.sqrt(s*s+r*r):-eB4.Math.sqrt(s*s+r*r)}function eRv(e,t){var n,r,i,a,o,s;if(t){if(e.a||(e.a=new bZ),2==e.e){bY(e.a,t);return}if(1==t.e){for(i=0;i=eH3?xk(n,el1(r)):Bf(n,r&eHd),o=(++tyv,new zc(10,null,0)),Yu(e.a,o,s-1)):xk(n=(o.bm().length,new vu),o.bm()),0==t.e?(r=t._l())>=eH3?xk(n,el1(r)):Bf(n,r&eHd):xk(n,t.bm()),Pp(o,521).b=n.a}}function eRy(e){var t,n,r,i,a;return null!=e.g?e.g:e.a<32?(e.g=eYS(eap(e.f),zy(e.e)),e.g):(i=eBw((e.c||(e.c=euK(e.f)),e.c),0),0==e.e)?i:(t=(e.c||(e.c=euK(e.f)),e.c).e<0?2:1,n=i.length,r=-e.e+n-t,a=new vc,a.a+=""+i,e.e>0&&r>=-6?r>=0?Gn(a,n-zy(e.e),"."):(a.a=Az(a.a,0,t-1)+"0."+xy(a.a,t-1),Gn(a,t+1,ehv(e0Z,0,-zy(r)-1))):(n-t>=1&&(Gn(a,t,"."),++n),Gn(a,n,"E"),r>0&&Gn(a,++n,"+"),Gn(a,++n,""+Fb(eap(r)))),e.g=a.a,e.g)}function eRw(e,t,n){var r,i,a,o,s,u,c,l,f,d,h,p,b,m;if(!n.dc()){for(s=0,d=0,p=Pp((r=n.Kc()).Pb(),19).a;s1&&(u=c.mg(u,e.a,s));return 1==u.c.length?Pp(RJ(u,u.c.length-1),220):2==u.c.length?eRr((GK(0,u.c.length),Pp(u.c[0],220)),(GK(1,u.c.length),Pp(u.c[1],220)),o,a):null}function eRk(e){var t,n,r,i,a,o;for(ety(e.a,new eJ),n=new fz(e.a);n.a=eB4.Math.abs(r.b)?(r.b=0,a.d+a.a>o.d&&a.do.c&&a.c0){if(t=new xt(e.i,e.g),a=(n=e.i)<100?null:new yf(n),e.ij())for(r=0;r0){for(s=e.g,c=e.i,ZG(e),a=c<100?null:new yf(c),r=0;r>13|(15&e.m)<<9,i=e.m>>4&8191,a=e.m>>17|(255&e.h)<<5,o=(1048320&e.h)>>8,s=8191&t.l,u=t.l>>13|(15&t.m)<<9,c=t.m>>4&8191,l=t.m>>17|(255&t.h)<<5,f=(1048320&t.h)>>8,k=n*s,x=r*s,T=i*s,M=a*s,O=o*s,0!=u&&(x+=n*u,T+=r*u,M+=i*u,O+=a*u),0!=c&&(T+=n*c,M+=r*c,O+=i*c),0!=l&&(M+=n*l,O+=r*l),0!=f&&(O+=n*f),d=(h=k&eHH)+(p=(511&x)<<13),m=k>>22,g=x>>9,b=m+g+(v=(262143&T)<<4)+(y=(31&M)<<17),_=T>>18,w=_+(E=M>>5)+(S=(4095&O)<<8),b+=d>>22,d&=eHH,w+=b>>22,Mk(d,b&=eHH,w&=eH$)}function eRA(e){var t,n,r,i,a,o,s;if(0!=(s=Pp(RJ(e.j,0),11)).g.c.length&&0!=s.e.c.length)throw p7(new gC("Interactive layout does not support NORTH/SOUTH ports with incoming _and_ outgoing edges."));if(0!=s.g.c.length){for(a=eHQ,n=new fz(s.g);n.a4){if(!e.wj(t))return!1;if(e.rk()){if(u=(r=(i=Pp(t,49)).Ug())==e.e&&(e.Dk()?i.Og(i.Vg(),e.zk())==e.Ak():-1-i.Vg()==e.aj()),e.Ek()&&!u&&!r&&i.Zg()){for(a=0;a0&&(c=e.n.a/a);break;case 2:case 4:(i=e.i.o.b)>0&&(c=e.n.b/i)}eo3(e,(eBU(),tnv),c)}if(u=e.o,o=e.a,r)o.a=r.a,o.b=r.b,e.d=!0;else if(t!=tbc&&t!=tbl&&s!=tbF)switch(s.g){case 1:o.a=u.a/2;break;case 2:o.a=u.a,o.b=u.b/2;break;case 3:o.a=u.a/2,o.b=u.b;break;case 4:o.b=u.b/2}else o.a=u.a/2,o.b=u.b/2}function eRP(e){var t,n,r,i,a,o,s,u,c,l;if(e.ej()){if(l=e.Vi(),u=e.fj(),l>0){if(t=new eiP(e.Gi()),a=(n=l)<100?null:new yf(n),Cf(e,n,t.g),i=1==n?e.Zi(4,etj(t,0),null,0,u):e.Zi(6,t,null,-1,u),e.bj()){for(r=new Ow(t);r.e!=r.i.gc();)a=e.dj(epH(r),a);a?(a.Ei(i),a.Fi()):e.$i(i)}else a?(a.Ei(i),a.Fi()):e.$i(i)}else Cf(e,e.Vi(),e.Wi()),e.$i(e.Zi(6,(Hj(),e2r),null,-1,u))}else if(e.bj()){if((l=e.Vi())>0){for(s=e.Wi(),c=l,Cf(e,l,s),a=c<100?null:new yf(c),r=0;re.d[o.p]&&(n+=qq(e.b,a)*Pp(u.b,19).a,Vw(e.a,ell(a)));for(;!gY(e.a);)eek(e.b,Pp(Yn(e.a),19).a)}return n}function eRF(e,t,n,r){var i,a,o,s,u,c,l,f,d,h,p,b,m;for((f=new TS(Pp(eT9(e,(e_C(),tdB)),8))).a=eB4.Math.max(f.a-n.b-n.c,0),f.b=eB4.Math.max(f.b-n.d-n.a,0),(null==(i=LV(eT9(e,tdN)))||(BJ(i),i<=0))&&(i=1.3),s=new p0,p=new Ow((e.a||(e.a=new FQ(e5k,e,10,11)),e.a));p.e!=p.i.gc();)h=Pp(epH(p),33),o=new Lp(h),s.c[s.c.length]=o;switch((d=Pp(eT9(e,tdP),311)).g){case 3:m=eDQ(s,t,f.a,f.b,(c=r,BJ(i),c));break;case 1:m=eN0(s,t,f.a,f.b,(l=r,BJ(i),l));break;default:m=eRH(s,t,f.a,f.b,(u=r,BJ(i),u))}a=new etD(m),b=eY8(a,t,n,f.a,f.b,r,(BJ(i),i)),eYx(e,b.a,b.b,!1,!0)}function eRY(e,t){var n,r,i,a;n=t.b,a=new I4(n.j),i=0,(r=n.j).c=Je(e1R,eUp,1,0,5,1),Y$(Pp(eay(e.b,(eYu(),tbw),(erX(),tep)),15),n),i=emQ(a,i,new r3,r),Y$(Pp(eay(e.b,tbw,teh),15),n),i=emQ(a,i,new r2,r),Y$(Pp(eay(e.b,tbw,ted),15),n),Y$(Pp(eay(e.b,tby,tep),15),n),Y$(Pp(eay(e.b,tby,teh),15),n),i=emQ(a,i,new r4,r),Y$(Pp(eay(e.b,tby,ted),15),n),Y$(Pp(eay(e.b,tbj,tep),15),n),i=emQ(a,i,new r6,r),Y$(Pp(eay(e.b,tbj,teh),15),n),i=emQ(a,i,new r5,r),Y$(Pp(eay(e.b,tbj,ted),15),n),Y$(Pp(eay(e.b,tbY,tep),15),n),i=emQ(a,i,new ic,r),Y$(Pp(eay(e.b,tbY,teh),15),n),Y$(Pp(eay(e.b,tbY,ted),15),n)}function eRB(e,t){var n,r,i,a,o,s,u,c,l,f,d,h,p,b;for(ewG(t,"Layer size calculation",1),l=eHQ,c=eH1,i=!1,s=new fz(e.b);s.a.5?g-=2*o*(p-.5):p<.5&&(g+=2*a*(.5-p)),g<(i=s.d.b)&&(g=i),b=s.d.c,g>m.a-b-l&&(g=m.a-b-l),s.n.a=t+g}}function eRH(e,t,n,r,i){var a,o,s,u,c,l,f,d,h,p,b,m;for(s=Je(tyx,eH6,25,e.c.length,15,1),d=new Fz(new oB),egV(d,e),c=0,b=new p0;0!=d.b.c.length;)if(o=Pp(0==d.b.c.length?null:RJ(d.b,0),157),c>1&&jl(o)*jc(o)/2>s[0]){for(a=0;as[a];)++a;p=new Gz(b,0,a+1),f=new etD(p),l=jl(o)/jc(o),u=eY8(f,t,new mp,n,r,i,l),C6(xB(f.e),u),Ja(e_s(d,f)),egV(d,h=new Gz(b,a+1,b.c.length)),b.c=Je(e1R,eUp,1,0,5,1),c=0,jA(s,s.length,0)}else null!=(m=0==d.b.c.length?null:RJ(d.b,0))&&erD(d,0),c>0&&(s[c]=s[c-1]),s[c]+=jl(o)*jc(o),++c,b.c[b.c.length]=o;return b}function eR$(e){var t,n,r,i,a;if((r=Pp(e_k(e,(eBy(),taY)),163))==(ef_(),tnN)){for(n=new Fa(OH(efu(e).a.Kc(),new c));eTk(n);)if(t=Pp(ZC(n),17),!ZI(t))throw p7(new gq(eWr+egs(e)+"' has its layer constraint set to FIRST_SEPARATE, but has at least one incoming edge. FIRST_SEPARATE nodes must not have incoming edges."))}else if(r==tnR){for(a=new Fa(OH(efc(e).a.Kc(),new c));eTk(a);)if(i=Pp(ZC(a),17),!ZI(i))throw p7(new gq(eWr+egs(e)+"' has its layer constraint set to LAST_SEPARATE, but has at least one outgoing edge. LAST_SEPARATE nodes must not have outgoing edges."))}}function eRz(e,t){var n,r,i,a,o,s,u,c,l,f,d,h,p;for(ewG(t,"Label dummy removal",1),r=gP(LV(e_k(e,(eBy(),toL)))),i=gP(LV(e_k(e,toN))),c=Pp(e_k(e,tal),103),u=new fz(e.b);u.a0&&eE8(e,s,f);for(i=new fz(f);i.a>19!=0&&(t=eoQ(t),u=!u),o=eOy(t),a=!1,i=!1,r=!1,e.h==eHz&&0==e.m&&0==e.l){if(i=!0,a=!0,-1!=o)return s=eTC(e,o),u&&esh(s),n&&(e0A=Mk(0,0,0)),s;e=Tr((Q2(),e0L)),r=!0,u=!u}else e.h>>19!=0&&(a=!0,e=eoQ(e),r=!0,u=!u);return -1!=o?esk(e,o,u,a,n):0>evy(e,t)?(n&&(e0A=a?eoQ(e):Mk(e.l,e.m,e.h)),Mk(0,0,0)):eDr(r?e:Mk(e.l,e.m,e.h),t,u,a,i,n)}function eRq(e,t){var n,r,i,a,o,s,u,c,l,f,d,h,p;if(e.e&&e.c.ct.f)&&!(t.g>e.f)){for(n=0,r=0,o=e.w.a.ec().Kc();o.Ob();)i=Pp(o.Pb(),11),euz(esp(eow(vx(e60,1),eUP,8,0,[i.i.n,i.n,i.a])).b,t.g,t.f)&&++n;for(s=e.r.a.ec().Kc();s.Ob();)i=Pp(s.Pb(),11),euz(esp(eow(vx(e60,1),eUP,8,0,[i.i.n,i.n,i.a])).b,t.g,t.f)&&--n;for(u=t.w.a.ec().Kc();u.Ob();)i=Pp(u.Pb(),11),euz(esp(eow(vx(e60,1),eUP,8,0,[i.i.n,i.n,i.a])).b,e.g,e.f)&&++r;for(a=t.r.a.ec().Kc();a.Ob();)i=Pp(a.Pb(),11),euz(esp(eow(vx(e60,1),eUP,8,0,[i.i.n,i.n,i.a])).b,e.g,e.f)&&--r;n=0)return i=efd(e,t.substr(1,o-1)),eYF(e,l=t.substr(o+1,u-(o+1)),i)}else{if(n=-1,null==e0F&&(e0F=RegExp("\\d")),e0F.test(String.fromCharCode(s))&&(n=IO(t,e_n(46),u-1))>=0){r=Pp(ZN(e,etm(e,t.substr(1,n-1)),!1),58),c=0;try{c=eDa(t.substr(n+1),eHt,eUu)}catch(d){if(d=eoa(d),M4(d,127))throw a=d,p7(new QH(a));throw p7(d)}if(c=0)return n;switch(Ur(QZ(e,n))){case 2:if(IE("",ecG(e,n.Hj()).ne())){if(u=U$(QZ(e,n)),s=UH(QZ(e,n)),l=eMv(e,t,u,s))return l;for(o=0,f=(i=eIx(e,t)).gc();o1)throw p7(new gL(eQ$));for(o=0,l=eAY(e.e.Tg(),t),r=Pp(e.g,119);o1,c=new Z4(d.b);My(c.a)||My(c.b);)f=(u=Pp(My(c.a)?Wx(c.a):Wx(c.b),17)).c==d?u.d:u.c,eB4.Math.abs(esp(eow(vx(e60,1),eUP,8,0,[f.i.n,f.n,f.a])).b-o.b)>1&&eAZ(e,u,o,a,d)}}function eR9(e){var t,n,r,i,a,o;if(i=new KB(e.e,0),r=new KB(e.a,0),e.d)for(n=0;neVW;){for(a=t,o=0;eB4.Math.abs(t-a)0),i.a.Xb(i.c=--i.b),eNy(e,e.b-o,a,r,i),A5(i.b0),r.a.Xb(r.c=--r.b)}if(!e.d)for(n=0;n0?(e.f[l.p]=h/(l.e.c.length+l.g.c.length),e.c=eB4.Math.min(e.c,e.f[l.p]),e.b=eB4.Math.max(e.b,e.f[l.p])):s&&(e.f[l.p]=h)}}function ejt(e){e.b=null,e.bb=null,e.fb=null,e.qb=null,e.a=null,e.c=null,e.d=null,e.e=null,e.f=null,e.n=null,e.M=null,e.L=null,e.Q=null,e.R=null,e.K=null,e.db=null,e.eb=null,e.g=null,e.i=null,e.j=null,e.k=null,e.gb=null,e.o=null,e.p=null,e.q=null,e.r=null,e.$=null,e.ib=null,e.S=null,e.T=null,e.t=null,e.s=null,e.u=null,e.v=null,e.w=null,e.B=null,e.A=null,e.C=null,e.D=null,e.F=null,e.G=null,e.H=null,e.I=null,e.J=null,e.P=null,e.Z=null,e.U=null,e.V=null,e.W=null,e.X=null,e.Y=null,e._=null,e.ab=null,e.cb=null,e.hb=null,e.nb=null,e.lb=null,e.mb=null,e.ob=null,e.pb=null,e.jb=null,e.kb=null,e.N=!1,e.O=!1}function ejn(e,t,n){var r,i,a,o;for(ewG(n,"Graph transformation ("+e.a+")",1),o=WC(t.a),a=new fz(t.b);a.a0&&(e.a=u+(p-1)*a,t.c.b+=e.a,t.f.b+=e.a),0!=b.a.gc()&&(p=ejF(h=new YJ(1,a),t,b,m,t.f.b+u-t.c.b))>0&&(t.f.b+=u+(p-1)*a)}function eji(e,t){var n,r,i,a;a=e.F,null==t?(e.F=null,euc(e,null)):(e.F=(BJ(t),t),-1!=(r=x7(t,e_n(60)))?(i=t.substr(0,r),-1!=x7(t,e_n(46))||IE(i,eUi)||IE(i,eJZ)||IE(i,eJX)||IE(i,eJJ)||IE(i,eJQ)||IE(i,eJ1)||IE(i,eJ0)||IE(i,eJ2)||(i=eJ3),-1!=(n=O9(t,e_n(62)))&&(i+=""+t.substr(n+1)),euc(e,i)):(i=t,-1==x7(t,e_n(46))&&(-1!=(r=x7(t,e_n(91)))&&(i=t.substr(0,r)),IE(i,eUi)||IE(i,eJZ)||IE(i,eJX)||IE(i,eJJ)||IE(i,eJQ)||IE(i,eJ1)||IE(i,eJ0)||IE(i,eJ2)?i=t:(i=eJ3,-1!=r&&(i+=""+t.substr(r)))),euc(e,i),i==t&&(e.F=e.D))),(4&e.Db)!=0&&(1&e.Db)==0&&eam(e,new FX(e,1,5,a,t))}function eja(e,t){var n,r,i,a,o,s,u,c,l,f,d,h,p,b,m,g,v,y;if(!((b=t.b.c.length)<3)){for(h=Je(ty_,eHT,25,b,15,1),f=0,l=new fz(t.b);l.ao)&&Yf(e.b,Pp(m.b,17));++s}a=o}}}function ejo(e,t){var n;if(null==t||IE(t,eUg)||0==t.length&&e.k!=(eSd(),tdy))return null;switch(e.k.g){case 1:return ehZ(t,eq5)?(OQ(),e0P):ehZ(t,eq8)?(OQ(),e0N):null;case 2:try{return ell(eDa(t,eHt,eUu))}catch(r){if(r=eoa(r),M4(r,127))return null;throw p7(r)}case 4:try{return eEu(t)}catch(i){if(i=eoa(i),M4(i,127))return null;throw p7(i)}case 3:return t;case 5:return euC(e),exs(e,t);case 6:return euC(e),eMj(e,e.a,t);case 7:try{return(n=eTh(e)).Jf(t),n}catch(a){if(a=eoa(a),M4(a,32))return null;throw p7(a)}default:throw p7(new gC("Invalid type set for this layout option."))}}function ejs(e){var t,n,r,i,a,o,s;for(eeP(),s=new b5,n=new fz(e);n.a=s.b.c)&&(s.b=t),(!s.c||t.c<=s.c.c)&&(s.d=s.c,s.c=t),(!s.e||t.d>=s.e.d)&&(s.e=t),(!s.f||t.d<=s.f.d)&&(s.f=t);return r=new epG((eok(),e9f)),Kv(e,e9y,new g$(eow(vx(e4M,1),eUp,369,0,[r]))),o=new epG(e9p),Kv(e,e9v,new g$(eow(vx(e4M,1),eUp,369,0,[o]))),i=new epG(e9d),Kv(e,e9g,new g$(eow(vx(e4M,1),eUp,369,0,[i]))),a=new epG(e9h),Kv(e,e9m,new g$(eow(vx(e4M,1),eUp,369,0,[a]))),eOk(r.c,e9f),eOk(i.c,e9d),eOk(a.c,e9h),eOk(o.c,e9p),s.a.c=Je(e1R,eUp,1,0,5,1),eoc(s.a,r.c),eoc(s.a,eaa(i.c)),eoc(s.a,a.c),eoc(s.a,eaa(o.c)),s}function eju(e){var t;switch(e.d){case 1:if(e.hj())return -2!=e.o;break;case 2:if(e.hj())return -2==e.o;break;case 3:case 5:case 4:case 6:case 7:return e.o>-2;default:return!1}switch(t=e.gj(),e.p){case 0:return null!=t&&gN(LK(t))!=xg(e.k,0);case 1:return null!=t&&Pp(t,217).a!=jE(e.k)<<24>>24;case 2:return null!=t&&Pp(t,172).a!=(jE(e.k)&eHd);case 6:return null!=t&&xg(Pp(t,162).a,e.k);case 5:return null!=t&&Pp(t,19).a!=jE(e.k);case 7:return null!=t&&Pp(t,184).a!=jE(e.k)<<16>>16;case 3:return null!=t&&gP(LV(t))!=e.j;case 4:return null!=t&&Pp(t,155).a!=e.j;default:return null==t?null!=e.n:!ecX(t,e.n)}}function ejc(e,t,n){var r,i,a,o;return e.Fk()&&e.Ek()&&(o=FU(e,Pp(n,56)),xc(o)!==xc(n))?(e.Oi(t),e.Ui(t,J5(e,t,o)),e.rk()&&(a=(i=Pp(n,49),e.Dk()?e.Bk()?i.ih(e.b,ebY(Pp(ee2($S(e.b),e.aj()),18)).n,Pp(ee2($S(e.b),e.aj()).Yj(),26).Bj(),null):i.ih(e.b,edv(i.Tg(),ebY(Pp(ee2($S(e.b),e.aj()),18))),null,null):i.ih(e.b,-1-e.aj(),null,null)),Pp(o,49).eh()||(a=(r=Pp(o,49),e.Dk()?e.Bk()?r.gh(e.b,ebY(Pp(ee2($S(e.b),e.aj()),18)).n,Pp(ee2($S(e.b),e.aj()).Yj(),26).Bj(),a):r.gh(e.b,edv(r.Tg(),ebY(Pp(ee2($S(e.b),e.aj()),18))),null,a):r.gh(e.b,-1-e.aj(),null,a))),a&&a.Fi()),TO(e.b)&&e.$i(e.Zi(9,n,o,t,!1)),o):n}function ejl(e,t,n){var r,i,a,o,s,u,c,l,f,d,h,p,b,m,g,v,y,w;for(l=gP(LV(e_k(e,(eBy(),toC)))),r=gP(LV(e_k(e,toG))),eo3(d=new oG,toC,l+r),g=(c=t).d,b=c.c.i,v=c.d.i,m=Tl(b.c),y=Tl(v.c),i=new p0,f=m;f<=y;f++)s=new eb$(e),lK(s,(eEn(),e9D)),eo3(s,(eBU(),tnc),c),eo3(s,tol,(ewf(),tbo)),eo3(s,toD,d),h=Pp(RJ(e.b,f),29),f==m?egU(s,h.a.c.length-n,h):Gu(s,h),(w=gP(LV(e_k(c,tak))))<0&&eo3(c,tak,w=0),s.o.b=w,p=eB4.Math.floor(w/2),o=new eES,ekv(o,(eYu(),tbY)),Gc(o,s),o.n.b=p,u=new eES,ekv(u,tby),Gc(u,s),u.n.b=p,Go(c,o),a=new $b,eaW(a,c),eo3(a,taR,null),Gs(a,u),Go(a,g),evT(s,c,a),i.c[i.c.length]=a,c=a;return i}function ejf(e,t){var n,r,i,a,o,s,u,c,l,f,d,h,p,b,m,g,v,y;for(u=Pp(eEC(e,(eYu(),tbY)).Kc().Pb(),11).e,h=Pp(eEC(e,tby).Kc().Pb(),11).g,s=u.c.length,y=GX(Pp(RJ(e.j,0),11));s-- >0;){for(b=(GK(0,u.c.length),Pp(u.c[0],17)),a=QI(v=(i=(GK(0,h.c.length),Pp(h.c[0],17))).d.e,i,0),KW(b,i.d,a),Gs(i,null),Go(i,null),p=b.a,t&&P7(p,new TS(y)),r=epL(i.a,0);r.b!=r.d.c;)n=Pp(Vv(r),8),P7(p,new TS(n));for(g=b.b,d=new fz(i.b);d.a0&&(o=eB4.Math.max(o,eix(e.C.b+r.d.b,i))),l=r,f=i,d=a;e.C&&e.C.c>0&&(h=d+e.C.c,c&&(h+=l.d.c),o=eB4.Math.max(o,(Mc(),enj(ezs),eB4.Math.abs(f-1)<=ezs||1==f||isNaN(f)&&isNaN(1)?0:h/(1-f)))),n.n.b=0,n.a.a=o}function ejh(e,t){var n,r,i,a,o,s,u,c,l,f,d,h;if(n=Pp(UA(e.b,t),124),(u=Pp(Pp(Zq(e.r,t),21),84)).dc()){n.n.d=0,n.n.a=0;return}for(c=e.u.Hc((ekU(),tbp)),o=0,e.A.Hc((ed5(),tbq))&&eCN(e,t),s=u.Kc(),l=null,d=0,f=0;s.Ob();)a=gP(LV((r=Pp(s.Pb(),111)).b.We((Ab(),e4a)))),i=r.b.rf().b,l?(h=f+l.d.a+e.w+r.d.d,o=eB4.Math.max(o,(Mc(),enj(ezs),eB4.Math.abs(d-a)<=ezs||d==a||isNaN(d)&&isNaN(a)?0:h/(a-d)))):e.C&&e.C.d>0&&(o=eB4.Math.max(o,eix(e.C.d+r.d.d,a))),l=r,d=a,f=i;e.C&&e.C.a>0&&(h=f+e.C.a,c&&(h+=l.d.a),o=eB4.Math.max(o,(Mc(),enj(ezs),eB4.Math.abs(d-1)<=ezs||1==d||isNaN(d)&&isNaN(1)?0:h/(1-d)))),n.n.d=0,n.a.b=o}function ejp(e,t,n){var r,i,a,o,s,u;for(o=0,this.g=e,s=t.d.length,u=n.d.length,this.d=Je(e4N,eGW,10,s+u,0,1);o0?etU(this,this.f/this.a):null!=Ot(t.g,t.d[0]).a&&null!=Ot(n.g,n.d[0]).a?etU(this,(gP(Ot(t.g,t.d[0]).a)+gP(Ot(n.g,n.d[0]).a))/2):null!=Ot(t.g,t.d[0]).a?etU(this,Ot(t.g,t.d[0]).a):null!=Ot(n.g,n.d[0]).a&&etU(this,Ot(n.g,n.d[0]).a)}function ejb(e,t){var n,r,i,a,o,s,u,c,l,f;for(e.a=new Bv(eiG(e66)),r=new fz(t.a);r.a=1&&(m-o>0&&f>=0?(u.n.a+=b,u.n.b+=a*o):m-o<0&&l>=0&&(u.n.a+=b*m,u.n.b+=a));e.o.a=t.a,e.o.b=t.b,eo3(e,(eBy(),ta4),(ed5(),r=Pp(yw(e5o),9),new I1(r,Pp(CY(r,r.length),9),0)))}function ej_(e,t,n,r,i,a){var o;if(!(null==t||!efz(t,tmJ,tmQ)))throw p7(new gL("invalid scheme: "+t));if(!e&&!(null!=n&&-1==x7(n,e_n(35))&&n.length>0&&(GV(0,n.length),47!=n.charCodeAt(0))))throw p7(new gL("invalid opaquePart: "+n));if(e&&!(null!=t&&wZ(tm$,t.toLowerCase()))&&!(null==n||!efz(n,tm1,tm0))||e&&null!=t&&wZ(tm$,t.toLowerCase())&&!eyQ(n))throw p7(new gL(eJI+n));if(!ef$(r))throw p7(new gL("invalid device: "+r));if(!ece(i))throw o=null==i?"invalid segments: null":"invalid segment: "+euR(i),p7(new gL(o));if(!(null==a||-1==x7(a,e_n(35))))throw p7(new gL("invalid query: "+a))}function ejE(e,t){var n,r,i,a,o,s,u,c,l,f,d,h,p,b,m,g;for(ewG(t,"Calculate Graph Size",1),t.n&&e&&WG(t,KS(e),(eup(),tmr)),s=ezq,u=ezq,a=eqe,o=eqe,f=new Ow((e.a||(e.a=new FQ(e5k,e,10,11)),e.a));f.e!=f.i.gc();)p=(c=Pp(epH(f),33)).i,b=c.j,g=c.g,r=c.f,i=Pp(eT9(c,(eBB(),thy)),142),s=eB4.Math.min(s,p-i.b),u=eB4.Math.min(u,b-i.d),a=eB4.Math.max(a,p+g+i.c),o=eB4.Math.max(o,b+r+i.a);for(h=Pp(eT9(e,(eBB(),thN)),116),d=new kl(s-h.b,u-h.d),l=new Ow((e.a||(e.a=new FQ(e5k,e,10,11)),e.a));l.e!=l.i.gc();)c=Pp(epH(l),33),eno(c,c.i-d.a),ens(c,c.j-d.b);m=a-s+(h.b+h.c),n=o-u+(h.d+h.a),ena(e,m),eni(e,n),t.n&&e&&WG(t,KS(e),(eup(),tmr))}function ejS(e){var t,n,r,i,a,o,s,u,c,l;for(r=new p0,o=new fz(e.e.a);o.a0){epV(e,n,0),n.a+=String.fromCharCode(r),epV(e,n,i=ehR(t,a)),a+=i-1;continue}39==r?a+11)for(b=Je(ty_,eHT,25,e.b.b.c.length,15,1),f=0,c=new fz(e.b.b);c.a=s&&i<=u)s<=i&&a<=u?(n[l++]=i,n[l++]=a,r+=2):s<=i?(n[l++]=i,n[l++]=u,e.b[r]=u+1,o+=2):a<=u?(n[l++]=s,n[l++]=a,r+=2):(n[l++]=s,n[l++]=u,e.b[r]=u+1);else if(ueHe)&&s<10)vR(e.c,new tf),ejM(e),Ym(e.c),ejv(e.f)}function ejL(e,t,n){var r,i,a,o,s,u,c,l,f,d,h,p,b,m;if(gN(LK(e_k(n,(eBy(),taI)))))for(s=new fz(n.j);s.a=2){for(o=Pp(Vv(u=epL(n,0)),8),s=Pp(Vv(u),8);s.a0&&eoY(l,!0,(ec3(),tpg)),s.k==(eEn(),e9C)&&UP(l),Um(e.f,s,t)}}function ejN(e,t,n){var r,i,a,o,s,u,c,l,f,d;switch(ewG(n,"Node promotion heuristic",1),e.g=t,eYs(e),e.q=Pp(e_k(t,(eBy(),taz)),260),l=Pp(e_k(e.g,ta$),19).a,a=new nH,e.q.g){case 2:case 1:default:eRn(e,a);break;case 3:for(e.q=(eOJ(),tsk),eRn(e,a),u=0,s=new fz(e.a);s.ae.j&&(e.q=tsv,eRn(e,a));break;case 4:for(e.q=(eOJ(),tsk),eRn(e,a),c=0,i=new fz(e.b);i.ae.k&&(e.q=ts_,eRn(e,a));break;case 6:d=zy(eB4.Math.ceil(e.f.length*l/100)),eRn(e,new dq(d));break;case 5:f=zy(eB4.Math.ceil(e.d*l/100)),eRn(e,new dZ(f))}eLC(e,t),eEj(n)}function ejP(e,t,n){var r,i,a,o;this.j=e,this.e=ewi(e),this.o=this.j.e,this.i=!!this.o,this.p=this.i?Pp(RJ(n,Bq(this.o).p),214):null,i=Pp(e_k(e,(eBU(),tt3)),21),this.g=i.Hc((eLR(),ttw)),this.b=new p0,this.d=new ed0(this.e),o=Pp(e_k(this.j,tnw),230),this.q=eaG(t,o,this.e),this.k=new zX(this),a=ZW(eow(vx(e4H,1),eUp,225,0,[this,this.d,this.k,this.q])),t!=(enU(),tur)||gN(LK(e_k(e,(eBy(),ti7))))?t==tur&&gN(LK(e_k(e,(eBy(),ti7))))?(r=new ews(this.e),a.c[a.c.length]=r,this.c=new erB(r,o,Pp(this.q,402))):this.c=new Sr(t,this):(r=new ews(this.e),a.c[a.c.length]=r,this.c=new K6(r,o,Pp(this.q,402))),P_(a,this.c),eP0(a,this.e),this.s=eY0(this.k)}function ejR(e,t){var n,r,i,a,o,s,u,c,l,f,d,h,p,b,m,g,v,y,w;for(p=(f=Pp(M2((o=epL(new hz(t).a.d,0),new hG(o))),86))?Pp(e_k(f,(eR5(),tco)),86):null,i=1;f&&p;){for(s=0,u=0,w=0,n=f,r=p;s=e.i?(++e.i,P_(e.a,ell(1)),P_(e.b,f)):(r=e.c[t.p][1],q1(e.a,l,ell(Pp(RJ(e.a,l),19).a+1-r)),q1(e.b,l,gP(LV(RJ(e.b,l)))+f-r*e.e)),(e.q==(eOJ(),tsv)&&(Pp(RJ(e.a,l),19).a>e.j||Pp(RJ(e.a,l-1),19).a>e.j)||e.q==ts_&&(gP(LV(RJ(e.b,l)))>e.k||gP(LV(RJ(e.b,l-1)))>e.k))&&(u=!1),o=new Fa(OH(efu(t).a.Kc(),new c));eTk(o);)s=(a=Pp(ZC(o),17)).c.i,e.f[s.p]==l&&(d=ejj(e,s),i+=Pp(d.a,19).a,u=u&&gN(LK(d.b)));return e.f[t.p]=l,i+=e.c[t.p][0],new kD(ell(i),(OQ(),!!u))}function ejF(e,t,n,r,i){var a,o,s,u,c,l,f,d,h,p,b,m,g;for(f=new p2,o=new p0,ekD(e,n,e.d.fg(),o,f),ekD(e,r,e.d.gg(),o,f),e.b=.2*(b=eTZ(eeh(new R1(null,new Gq(o,16)),new aL)),m=eTZ(eeh(new R1(null,new Gq(o,16)),new aC)),eB4.Math.min(b,m)),a=0,s=0;s=2&&(g=eOY(o,!0,d),e.e||(e.e=new h$(e)),ehB(e.e,g,o,e.b)),ewv(o,d),eFn(o),h=-1,l=new fz(o);l.as)}function ejU(e,t){var n,r,i,a,o,s,u,c,l,f,d,h,p,b;for(n=Pp(e_k(e,(eBy(),tol)),98),o=e.f,a=e.d,s=o.a+a.b+a.c,u=0-a.d-e.c.b,l=o.b+a.d+a.a-e.c.b,c=new p0,f=new p0,i=new fz(t);i.a0),Pp(l.a.Xb(l.c=--l.b),17));a!=r&&l.b>0;)e.a[a.p]=!0,e.a[r.p]=!0,a=(A5(l.b>0),Pp(l.a.Xb(l.c=--l.b),17));l.b>0&&BH(l)}}function ejZ(e,t,n){var r,i,a,o,s,u,c,l,f;if(e.a!=t.Aj())throw p7(new gL(eZ6+t.ne()+eZ5));if(r=ecG((eSp(),tvc),t).$k())return r.Aj().Nh().Ih(r,n);if(o=ecG(tvc,t).al()){if(null==n)return null;if((s=Pp(n,15)).dc())return"";for(f=new vs,a=s.Kc();a.Ob();)i=a.Pb(),xk(f,o.Aj().Nh().Ih(o,i)),f.a+=" ";return x3(f,f.a.length-1)}if(!(l=ecG(tvc,t).bl()).dc()){for(c=l.Kc();c.Ob();)if((u=Pp(c.Pb(),148)).wj(n))try{if(f=u.Aj().Nh().Ih(u,n),null!=f)return f}catch(d){if(d=eoa(d),!M4(d,102))throw p7(d)}throw p7(new gL("Invalid value: '"+n+"' for datatype :"+t.ne()))}return Pp(t,834).Fj(),null==n?null:M4(n,172)?""+Pp(n,172).a:esF(n)==e1Q?MU(tmS[0],Pp(n,199)):efF(n)}function ejX(e){var t,n,r,i,a,o,s,u,c,l;for(c=new _n,s=new _n,a=new fz(e);a.a-1){for(i=epL(s,0);i.b!=i.d.c;)(r=Pp(Vv(i),128)).v=o;for(;0!=s.b;)for(r=Pp(egW(s,0),128),n=new fz(r.i);n.a0&&(n+=u.n.a+u.o.a/2,++f),p=new fz(u.j);p.a0&&(n/=f),g=Je(tyx,eH6,25,r.a.c.length,15,1),s=0,c=new fz(r.a);c.a=s&&i<=u)s<=i&&a<=u?r+=2:s<=i?(e.b[r]=u+1,o+=2):a<=u?(n[l++]=i,n[l++]=s-1,r+=2):(n[l++]=i,n[l++]=s-1,e.b[r]=u+1,o+=2);else if(u0?i-=864e5:i+=864e5,u=new LZ(eft(eap(t.q.getTime()),i))),l=new vl,c=e.a.length,a=0;a=97&&r<=122||r>=65&&r<=90){for(o=a+1;o=c)throw p7(new gL("Missing trailing '"));o+10&&0==n.c&&(t||(t=new p0),t.c[t.c.length]=n);if(t)for(;0!=t.c.length;){if((n=Pp(ZV(t,0),233)).b&&n.b.c.length>0){for(a=(n.b||(n.b=new p0),new fz(n.b));a.aQI(e,n,0))return new kD(i,n)}else if(gP(Ot(i.g,i.d[0]).a)>gP(Ot(n.g,n.d[0]).a))return new kD(i,n)}for(s=(n.e||(n.e=new p0),n.e).Kc();s.Ob();)u=((o=Pp(s.Pb(),233)).b||(o.b=new p0),o.b),Gp(0,u.c.length),Ew(u.c,0,n),o.c==u.c.length&&(t.c[t.c.length]=o)}return null}function eFe(e,t){var n,r,i,a,o,s,u,c,l;if(null==e)return eUg;if(null!=(u=t.a.zc(e,t)))return"[...]";for(a=0,n=new eaP(eUd,"[","]"),o=(i=e).length;a=14&&l<=16)?t.a._b(r)?(n.a?xM(n.a,n.b):n.a=new O0(n.d),xx(n.a,"[...]")):ZJ(n,eFe(s=etG(r),c=new Rq(t))):M4(r,177)?ZJ(n,ekd(Pp(r,177))):M4(r,190)?ZJ(n,ewh(Pp(r,190))):M4(r,195)?ZJ(n,eEm(Pp(r,195))):M4(r,2012)?ZJ(n,ewp(Pp(r,2012))):M4(r,48)?ZJ(n,ekf(Pp(r,48))):M4(r,364)?ZJ(n,ekG(Pp(r,364))):M4(r,832)?ZJ(n,ekl(Pp(r,832))):M4(r,104)&&ZJ(n,ekc(Pp(r,104))):ZJ(n,null==r?eUg:efF(r));return n.a?0==n.e.length?n.a.a:n.a.a+""+n.e:n.c}function eFt(e,t,n,r){var i,a,o,s,u,c,l,f,d,h,p,b,m,g,v,y;for(s=eLO(t,!1,!1),g=eEF(s),r&&(g=esP(g)),y=gP(LV(eT9(t,(epz(),e53)))),m=(A5(0!=g.b),Pp(g.a.a.c,8)),f=Pp(ep3(g,1),8),g.b>2?(l=new p0,eoc(l,new Gz(g,1,g.b)),a=eBk(l,y+e.a),v=new eTI(a),eaW(v,t),n.c[n.c.length]=v):v=r?Pp(Bp(e.b,e_I(t)),266):Pp(Bp(e.b,e_P(t)),266),u=e_I(t),r&&(u=e_P(t)),o=eEJ(m,u),c=y+e.a,o.a?(c+=eB4.Math.abs(m.b-f.b),b=new kl(f.a,(f.b+m.b)/2)):(c+=eB4.Math.abs(m.a-f.a),b=new kl((f.a+m.a)/2,f.b)),r?Um(e.d,t,new emL(v,o,b,c)):Um(e.c,t,new emL(v,o,b,c)),Um(e.b,t,v),p=(t.n||(t.n=new FQ(e5S,t,1,7)),t.n),h=new Ow(p);h.e!=h.i.gc();)d=Pp(epH(h),137),i=eIt(e,d,!0,0,0),n.c[n.c.length]=i}function eFn(e){var t,n,r,i,a,o,s,u,c,l;for(c=new p0,s=new p0,o=new fz(e);o.a-1){for(a=new fz(s);a.a0)&&(l3(u,eB4.Math.min(u.o,i.o-1)),l2(u,u.i-1),0==u.i&&(s.c[s.c.length]=u))}}function eFr(e,t,n){var r,i,a,o,s,u,c;if(c=e.c,t||(t=tgK),e.c=t,(4&e.Db)!=0&&(1&e.Db)==0&&(u=new FX(e,1,2,c,e.c),n?n.Ei(u):n=u),c!=t){if(M4(e.Cb,284))e.Db>>16==-10?n=Pp(e.Cb,284).nk(t,n):e.Db>>16==-15&&(t||(t=(eBK(),tgA)),c||(c=(eBK(),tgA)),e.Cb.nh()&&(u=new Q$(e.Cb,1,13,c,t,ebv(QX(Pp(e.Cb,59)),e),!1),n?n.Ei(u):n=u));else if(M4(e.Cb,88))e.Db>>16==-23&&(M4(t,88)||(t=(eBK(),tgI)),M4(c,88)||(c=(eBK(),tgI)),e.Cb.nh()&&(u=new Q$(e.Cb,1,10,c,t,ebv(qt(Pp(e.Cb,26)),e),!1),n?n.Ei(u):n=u));else if(M4(e.Cb,444))for(o=((s=Pp(e.Cb,836)).b||(s.b=new pG(new mR)),s.b),a=(r=new esz(new fS(o.a).a),new pW(r));a.a.b;)n=eFr(i=Pp(etz(a.a).cd(),87),eOl(i,s),n)}return n}function eFi(e,t){var n,r,i,a,o,s,u,c,l,f,d;for(o=gN(LK(eT9(e,(eBy(),taI)))),d=Pp(eT9(e,toh),21),u=!1,c=!1,f=new Ow((e.c||(e.c=new FQ(e5x,e,9,9)),e.c));f.e!=f.i.gc()&&(!u||!c);){for(a=Pp(epH(f),118),s=0,i=Y_(enM(eow(vx(e1B,1),eUp,20,0,[(a.d||(a.d=new Ih(e5g,a,8,5)),a.d),(a.e||(a.e=new Ih(e5g,a,7,4)),a.e)])));eTk(i)&&(r=Pp(ZC(i),79),l=o&&exb(r)&&gN(LK(eT9(r,taD))),n=eRL((r.b||(r.b=new Ih(e5m,r,4,7)),r.b),a)?e==z$(ewH(Pp(etj((r.c||(r.c=new Ih(e5m,r,5,8)),r.c),0),82))):e==z$(ewH(Pp(etj((r.b||(r.b=new Ih(e5m,r,4,7)),r.b),0),82))),!((l||n)&&++s>1)););s>0?u=!0:d.Hc((ekU(),tbp))&&(a.n||(a.n=new FQ(e5S,a,1,7)),a.n).i>0&&(u=!0),s>1&&(c=!0)}u&&t.Fc((eLR(),ttw)),c&&t.Fc((eLR(),tt_))}function eFa(e){var t,n,r,i,a,o,s,u,c,l,f,d;if((d=Pp(eT9(e,(eBB(),thx)),21)).dc())return null;if(s=0,o=0,d.Hc((ed5(),tbV))){for(l=Pp(eT9(e,thV),98),r=2,n=2,i=2,a=2,t=z$(e)?Pp(eT9(z$(e),the),103):Pp(eT9(e,the),103),c=new Ow((e.c||(e.c=new FQ(e5x,e,9,9)),e.c));c.e!=c.i.gc();)if(u=Pp(epH(c),118),(f=Pp(eT9(u,th0),61))==(eYu(),tbF)&&(f=eNh(u,t),ebu(u,th0,f)),l==(ewf(),tbo))switch(f.g){case 1:r=eB4.Math.max(r,u.i+u.g);break;case 2:n=eB4.Math.max(n,u.j+u.f);break;case 3:i=eB4.Math.max(i,u.i+u.g);break;case 4:a=eB4.Math.max(a,u.j+u.f)}else switch(f.g){case 1:r+=u.g+2;break;case 2:n+=u.f+2;break;case 3:i+=u.g+2;break;case 4:a+=u.f+2}s=eB4.Math.max(r,i),o=eB4.Math.max(n,a)}return eYx(e,s,o,!0,!0)}function eFo(e,t,n,r,i){var a,o,s,u,c,l,f,d,h,p,b,m,g,v,y,w;for(v=Pp(qE(etc(UJ(new R1(null,new Gq(t.d,16)),new hc(n)),new hl(n)),JF(new U,new B,new en,eow(vx(e2L,1),eU4,132,0,[(eum(),e2U)]))),15),f=eUu,l=eHt,u=new fz(t.b.j);u.a0)?c&&(d=g.p,o?++d:--d,h=!(eOV(r=eoZ(f=Pp(RJ(g.c.a,d),10)),E,n[0])||FF(r,E,n[0]))):h=!0),p=!1,(_=t.D.i)&&_.c&&s.e&&((l=o&&_.p>0||!o&&_.p<_.c.a.c.length-1)?(d=_.p,o?--d:++d,p=!(eOV(r=eoZ(f=Pp(RJ(_.c.a,d),10)),n[0],k)||FF(r,n[0],k))):p=!0),h&&p&&P7(e.a,S),h||enD(e.a,eow(vx(e60,1),eUP,8,0,[b,m])),p||enD(e.a,eow(vx(e60,1),eUP,8,0,[w,y]))}function eFh(e,t){var n,r,i,a,o,s,u,c;if(M4(e.Ug(),160)?(eFh(Pp(e.Ug(),160),t),t.a+=" > "):t.a+="Root ",IE((n=e.Tg().zb).substr(0,3),"Elk")?xM(t,n.substr(3)):(t.a+=""+n,t),i=e.zg()){xM((t.a+=" ",t),i);return}if(M4(e,354)&&(c=Pp(e,137).a)){xM((t.a+=" ",t),c);return}for(o=new Ow(e.Ag());o.e!=o.i.gc();)if(c=(a=Pp(epH(o),137)).a){xM((t.a+=" ",t),c);return}if(M4(e,352)&&((r=Pp(e,79)).b||(r.b=new Ih(e5m,r,4,7)),0!=r.b.i&&(r.c||(r.c=new Ih(e5m,r,5,8)),0!=r.c.i))){for(t.a+=" (",s=new AF((r.b||(r.b=new Ih(e5m,r,4,7)),r.b));s.e!=s.i.gc();)s.e>0&&(t.a+=eUd),eFh(Pp(epH(s),160),t);for(t.a+=eGH,u=new AF((r.c||(r.c=new Ih(e5m,r,5,8)),r.c));u.e!=u.i.gc();)u.e>0&&(t.a+=eUd),eFh(Pp(epH(u),160),t);t.a+=")"}}function eFp(e,t,n){var r,i,a,o,s,u,c,l,f,d,h;if(a=Pp(e_k(e,(eBU(),tnc)),79)){for(r=e.a,C6(i=new TS(n),eyr(e)),eag(e.d.i,e.c.i)?(d=e.c,f=esp(eow(vx(e60,1),eUP,8,0,[d.n,d.a])),C5(f,n)):f=GX(e.c),qQ(r,f,r.a,r.a.a),h=GX(e.d),null!=e_k(e,tnC)&&C6(h,Pp(e_k(e,tnC),8)),qQ(r,h,r.c.b,r.c),etH(r,i),o=eLO(a,!0,!0),ern(o,Pp(etj((a.b||(a.b=new Ih(e5m,a,4,7)),a.b),0),82)),err(o,Pp(etj((a.c||(a.c=new Ih(e5m,a,5,8)),a.c),0),82)),eNI(r,o),l=new fz(e.b);l.a=0){for(u=null,s=new KB(l.a,c+1);s.bo?1:Te(isNaN(0),isNaN(o)))<0&&(enj(eVU),(eB4.Math.abs(o-1)<=eVU||1==o||isNaN(o)&&isNaN(1)?0:o<1?-1:o>1?1:Te(isNaN(o),isNaN(1)))<0)&&(enj(eVU),(eB4.Math.abs(0-s)<=eVU||0==s||isNaN(0)&&isNaN(s)?0:0s?1:Te(isNaN(0),isNaN(s)))<0)&&(enj(eVU),(eB4.Math.abs(s-1)<=eVU||1==s||isNaN(s)&&isNaN(1)?0:s<1?-1:s>1?1:Te(isNaN(s),isNaN(1)))<0)))}function eFg(e){var t,n,r,i,a,o,s,u,c,l,f,d,h,p,b,m,g,v,y,w,_,E;for(f=new BU(new fQ(e));f.b!=f.c.a.d;)for(b=0,s=Pp((l=JO(f)).d,56),t=Pp(l.e,56),w=(null==(o=s.Tg()).i&&eNT(o),o.i).length;b=0&&b=c.c.c.length?VJ((eEn(),e9N),e9D):VJ((eEn(),e9D),e9D),l*=2,a=n.a.g,n.a.g=eB4.Math.max(a,a+(l-a)),o=n.b.g,n.b.g=eB4.Math.max(o,o+(l-o)),i=t}}}function eFw(e,t,n,r,i){var a,o,s,u,c,l,f,d,h,p,b,m,g,v,y,w,_;for(_=Pg(e),l=new p0,f=(s=e.c.length)-1,d=s+1;0!=_.a.c;){for(;0!=n.b;)y=(A5(0!=n.b),Pp(etw(n,n.a.a),112)),zS(_.a,y),y.g=f--,eNg(y,t,n,r);for(;0!=t.b;)w=(A5(0!=t.b),Pp(etw(t,t.a.a),112)),zS(_.a,w),w.g=d++,eNg(w,t,n,r);for(c=eHt,g=(o=new C1(new Ap(new fP(_.a).a).b),new fR(o));Et(g.a.a);){if(m=(a=AJ(g.a),Pp(a.cd(),112)),!r&&m.b>0&&m.a<=0){l.c=Je(e1R,eUp,1,0,5,1),l.c[l.c.length]=m;break}(b=m.i-m.d)>=c&&(b>c&&(l.c=Je(e1R,eUp,1,0,5,1),c=b),l.c[l.c.length]=m)}0!=l.c.length&&(u=Pp(RJ(l,ebO(i,l.c.length)),112),zS(_.a,u),u.g=d++,eNg(u,t,n,r),l.c=Je(e1R,eUp,1,0,5,1))}for(v=e.c.length+1,p=new fz(e);p.a0&&(d.d+=l.n.d,d.d+=l.d),d.a>0&&(d.a+=l.n.a,d.a+=l.d),d.b>0&&(d.b+=l.n.b,d.b+=l.d),d.c>0&&(d.c+=l.n.c,d.c+=l.d),d}function eFx(e,t,n){var r,i,a,o,s,u,c,l,f,d,h,p;for(d=n.d,f=n.c,o=(a=new kl(n.f.a+n.d.b+n.d.c,n.f.b+n.d.d+n.d.a)).b,c=new fz(e.a);c.a=(l=Pp(Pp(Zq(e.r,t),21),84)).gc()||t==(eYu(),tby)||t==(eYu(),tbY)){eYY(e,t);return}for(b=e.u.Hc((ekU(),tbg)),n=t==(eYu(),tbw)?(eaY(),e4c):(eaY(),e4o),g=t==tbw?(QQ(),e3U):(QQ(),e3$),r=vN(DP(n),e.s),m=t==tbw?eHQ:eH1,c=l.Kc();c.Ob();)(s=Pp(c.Pb(),111)).c&&!(s.c.d.c.length<=0)&&(p=s.b.rf(),h=s.e,(d=(f=s.c).i).b=(a=f.n,f.e.a+a.b+a.c),d.a=(o=f.n,f.e.b+o.d+o.a),b?(d.c=h.a-(i=f.n,f.e.a+i.b+i.c)-e.s,b=!1):d.c=h.a+p.a+e.s,$C(g,ezr),f.f=g,JC(f,(Qs(),e3Y)),P_(r.d,new jH(d,elO(r,d))),m=t==tbw?eB4.Math.min(m,h.b):eB4.Math.max(m,h.b+s.b.rf().b));for(m+=t==tbw?-e.t:e.t,edp((r.e=m,r)),u=l.Kc();u.Ob();)(s=Pp(u.Pb(),111)).c&&!(s.c.d.c.length<=0)&&(d=s.c.i,d.c-=s.e.a,d.d-=s.e.b)}function eFA(e,t,n){var r;if(ewG(n,"StretchWidth layering",1),0==t.a.c.length){eEj(n);return}for(e.c=t,e.t=0,e.u=0,e.i=eHQ,e.g=eH1,e.d=gP(LV(e_k(t,(eBy(),toO)))),ebn(e),eTR(e),eTP(e),eyo(e),ed2(e),e.i=eB4.Math.max(1,e.i),e.g=eB4.Math.max(1,e.g),e.d=e.d/e.i,e.f=e.g/e.i,e.s=ebZ(e),r=new By(e.c),P_(e.c.b,r),e.r=WC(e.p),e.n=zb(e.k,e.k.length);0!=e.r.c.length;)e.o=ecu(e),!e.o||ess(e)&&0!=e.b.a.gc()?(ey5(e,r),r=new By(e.c),P_(e.c.b,r),er7(e.a,e.b),e.b.a.$b(),e.t=e.u,e.u=0):ess(e)?(e.c.b.c=Je(e1R,eUp,1,0,5,1),r=new By(e.c),P_(e.c.b,r),e.t=0,e.u=0,e.b.a.$b(),e.a.a.$b(),++e.f,e.r=WC(e.p),e.n=zb(e.k,e.k.length)):(Gu(e.o,r),QA(e.r,e.o),Yf(e.b,e.o),e.t=e.t-e.k[e.o.p]*e.d+e.j[e.o.p],e.u+=e.e[e.o.p]*e.d);t.a.c=Je(e1R,eUp,1,0,5,1),eSj(t.b),eEj(n)}function eFL(e){var t,n,r,i;for(_r(UJ(new R1(null,new Gq(e.a.b,16)),new rH),new r$),eyR(e),_r(UJ(new R1(null,new Gq(e.a.b,16)),new rz),new rG),e.c==(efE(),tpM)&&(_r(UJ(eeh(new R1(null,new Gq(new fk(e.f),1)),new rW),new rK),new hn(e)),_r(UJ(UQ(eeh(eeh(new R1(null,new Gq(e.d.b,16)),new rV),new rq),new rZ),new rX),new hi(e))),i=new kl(eHQ,eHQ),t=new kl(eH1,eH1),r=new fz(e.a.b);r.a0&&(e.c[t.c.p][t.p].d+=eMU(e.i,24)*e$h*.07000000029802322-.03500000014901161,e.c[t.c.p][t.p].a=e.c[t.c.p][t.p].d/e.c[t.c.p][t.p].b)}}function eFD(e){var t,n,r,i,a,o,s,u,c,l,f,d,h,p,b,m;for(p=new fz(e);p.ar.d,r.d=eB4.Math.max(r.d,t),s&&n&&(r.d=eB4.Math.max(r.d,r.a),r.a=r.d+i);break;case 3:n=t>r.a,r.a=eB4.Math.max(r.a,t),s&&n&&(r.a=eB4.Math.max(r.a,r.d),r.d=r.a+i);break;case 2:n=t>r.c,r.c=eB4.Math.max(r.c,t),s&&n&&(r.c=eB4.Math.max(r.b,r.c),r.b=r.c+i);break;case 4:n=t>r.b,r.b=eB4.Math.max(r.b,t),s&&n&&(r.b=eB4.Math.max(r.b,r.c),r.c=r.b+i)}}}function eFj(e){var t,n,r,i,a,o,s,u,c,l,f;for(c=new fz(e);c.a0||l.j==tbY&&l.e.c.length-l.g.c.length<0)){t=!1;break}for(i=new fz(l.g);i.a=c&&_>=m&&(d+=p.n.b+b.n.b+b.a.b-w,++s));if(n)for(o=new fz(v.e);o.a=c&&_>=m&&(d+=p.n.b+b.n.b+b.a.b-w,++s))}s>0&&(E+=d/s,++h)}h>0?(t.a=i*E/h,t.g=h):(t.a=0,t.g=0)}function eFY(e,t){var n,r,i,a,o,s,u,c,l,f,d;for(i=new fz(e.a.b);i.aeH1||t.o==tuE&&l0&&eno(g,w*E),_>0&&ens(g,_*S);for(ear(e.b,new te),t=new p0,s=new esz(new fS(e.c).a);s.b;)o=etz(s),r=Pp(o.cd(),79),n=Pp(o.dd(),395).a,i=eLO(r,!1,!1),f=ewM(e_I(r),eEF(i),n),eNI(f,i),(y=e_D(r))&&-1==QI(t,y,0)&&(t.c[t.c.length]=y,Hw(y,(A5(0!=f.b),Pp(f.a.a.c,8)),n));for(m=new esz(new fS(e.d).a);m.b;)b=etz(m),r=Pp(b.cd(),79),n=Pp(b.dd(),395).a,i=eLO(r,!1,!1),f=ewM(e_P(r),esP(eEF(i)),n),eNI(f=esP(f),i),(y=e_N(r))&&-1==QI(t,y,0)&&(t.c[t.c.length]=y,Hw(y,(A5(0!=f.b),Pp(f.c.b.c,8)),n))}function eFz(e,t,n,r){var i,a,o,s,u,c,l,f,d,h,p,b,m,g,v,y,w,_,E,S,k;if(0!=n.c.length){for(p=new p0,h=new fz(n);h.aeB4.Math.abs(v-m))continue;v1)for(h=new eRM(p,y,r),qX(y,new SV(e,h)),o.c[o.c.length]=h,f=y.a.ec().Kc();f.Ob();)QA(a,(l=Pp(f.Pb(),46)).b);if(s.a.gc()>1)for(h=new eRM(p,s,r),qX(s,new Sq(e,h)),o.c[o.c.length]=h,f=s.a.ec().Kc();f.Ob();)QA(a,(l=Pp(f.Pb(),46)).b)}}function eFJ(e){_Y(e,new ewB(vZ(vQ(vq(vJ(vX(new oc,eqp),"ELK Radial"),'A radial layout provider which is based on the algorithm of Peter Eades published in "Drawing free trees.", published by International Institute for Advanced Study of Social Information Science, Fujitsu Limited in 1991. The radial layouter takes a tree and places the nodes in radial order around the root. The nodes of the same tree level are placed on the same radius.'),new aW),eqp))),KE(e,eqp,eVT,epB(tlw)),KE(e,eqp,eGi,epB(tlS)),KE(e,eqp,eGh,epB(tlh)),KE(e,eqp,eGM,epB(tlp)),KE(e,eqp,eGd,epB(tlb)),KE(e,eqp,eGp,epB(tld)),KE(e,eqp,eGf,epB(tlm)),KE(e,eqp,eGb,epB(tly)),KE(e,eqp,eql,epB(tll)),KE(e,eqp,eqc,epB(tlf)),KE(e,eqp,eqh,epB(tlg)),KE(e,eqp,eqs,epB(tlv)),KE(e,eqp,equ,epB(tl_)),KE(e,eqp,eqf,epB(tlE)),KE(e,eqp,eqd,epB(tlk))}function eFQ(e){var t;if(this.r=U2(new ex,new eT),this.b=new efY(Pp(Y8(e5a),290)),this.p=new efY(Pp(Y8(e5a),290)),this.i=new efY(Pp(Y8(e3n),290)),this.e=e,this.o=new TS(e.rf()),this.D=e.Df()||gN(LK(e.We((eBB(),thh)))),this.A=Pp(e.We((eBB(),thx)),21),this.B=Pp(e.We(thL),21),this.q=Pp(e.We(thV),98),this.u=Pp(e.We(thJ),21),!e_y(this.u))throw p7(new gq("Invalid port label placement: "+this.u));if(this.v=gN(LK(e.We(th1))),this.j=Pp(e.We(thS),21),!eM1(this.j))throw p7(new gq("Invalid node label placement: "+this.j));this.n=Pp(egG(e,th_),116),this.k=gP(LV(egG(e,tps))),this.d=gP(LV(egG(e,tpo))),this.w=gP(LV(egG(e,tpp))),this.s=gP(LV(egG(e,tpu))),this.t=gP(LV(egG(e,tpc))),this.C=Pp(egG(e,tpd),142),this.c=2*this.d,t=!this.B.Hc((eI3(),tbX)),this.f=new eh5(0,t,0),this.g=new eh5(1,t,0),gh(this.f,(etx(),e3N),this.g)}function eF1(e,t,n,r,i){var a,o,s,u,l,f,d,h,p,b,m,g,v,y,w,_,E,S,k,x,T,M;for(w=0,b=0,p=0,h=1,y=new Ow((e.a||(e.a=new FQ(e5k,e,10,11)),e.a));y.e!=y.i.gc();)g=Pp(epH(y),33),h+=VG(new Fa(OH(eOi(g).a.Kc(),new c))),x=g.g,b=eB4.Math.max(b,x),d=g.f,p=eB4.Math.max(p,d),w+=x*d;for(m=(e.a||(e.a=new FQ(e5k,e,10,11)),e.a).i,o=w+2*r*r*h*m,a=eB4.Math.sqrt(o),u=eB4.Math.max(a*n,b),s=eB4.Math.max(a/n,p),v=new Ow((e.a||(e.a=new FQ(e5k,e,10,11)),e.a));v.e!=v.i.gc();)g=Pp(epH(v),33),T=i.b+(eMU(t,26)*e$l+eMU(t,27)*e$f)*(u-g.g),M=i.b+(eMU(t,26)*e$l+eMU(t,27)*e$f)*(s-g.f),eno(g,T),ens(g,M);for(k=u+(i.b+i.c),S=s+(i.d+i.a),E=new Ow((e.a||(e.a=new FQ(e5k,e,10,11)),e.a));E.e!=E.i.gc();)for(_=Pp(epH(E),33),f=new Fa(OH(eOi(_).a.Kc(),new c));eTk(f);)l=Pp(ZC(f),79),eTc(l)||eBv(l,t,k,S);eYx(e,k+=i.b+i.c,S+=i.d+i.a,!1,!0)}function eF0(e){var t,n,r,i,a,o,s,u,c,l,f;if(null==e)throw p7(new vo(eUg));if(c=e,a=e.length,u=!1,a>0&&(45==(t=(GV(0,e.length),e.charCodeAt(0)))||43==t)&&(e=e.substr(1),--a,u=45==t),0==a)throw p7(new vo(eHJ+c+'"'));for(;e.length>0&&(GV(0,e.length),48==e.charCodeAt(0));)e=e.substr(1),--a;if(a>(eDZ(),e0G)[10])throw p7(new vo(eHJ+c+'"'));for(i=0;i0&&(f=-parseInt(e.substr(0,r),10),e=e.substr(r),a-=r,n=!1);a>=o;){if(r=parseInt(e.substr(0,o),10),e=e.substr(o),a-=o,n)n=!1;else{if(0>ecd(f,s))throw p7(new vo(eHJ+c+'"'));f=efn(f,l)}f=efe(f,r)}if(ecd(f,0)>0||!u&&(f=QC(f),0>ecd(f,0)))throw p7(new vo(eHJ+c+'"'));return f}function eF2(e,t){var n,r,i,a,o,s,u;if(Rm(),this.a=new MW(this),this.b=e,this.c=t,this.f=Yg(QZ((eSp(),tvc),t)),this.f.dc()){if((s=ev1(tvc,e))==t)for(this.e=!0,this.d=new p0,this.f=new o6,this.f.Fc(eQB),Pp(eP8(Qq(tvc,etP(e)),""),26)==e&&this.f.Fc(Fr(tvc,etP(e))),i=eIT(tvc,e).Kc();i.Ob();)switch(Ur(QZ(tvc,r=Pp(i.Pb(),170)))){case 4:this.d.Fc(r);break;case 5:this.f.Gc(Yg(QZ(tvc,r)))}else if(_4(),Pp(t,66).Oj())for(o=0,this.e=!0,this.f=null,this.d=new p0,u=(null==e.i&&eNT(e),e.i).length;o=0&&o0&&(Pp(UA(e.b,t),124).a.b=n)}function eF4(e,t){var n,r,i,a,o,s,u,c,l,f,d,h,p,b,m,g;for(ewG(t,"Comment pre-processing",1),n=0,u=new fz(e.a);u.a0&&64!=(u=(GV(0,t.length),t.charCodeAt(0)))){if(37==u&&(f=t.lastIndexOf("%"),c=!1,0!=f&&(f==d-1||(c=(GV(f+1,t.length),46==t.charCodeAt(f+1)))))){if(y=IE("%",o=t.substr(1,f-1))?null:eYy(o),r=0,c)try{r=eDa(t.substr(f+2),eHt,eUu)}catch(w){if(w=eoa(w),M4(w,127))throw s=w,p7(new QH(s));throw p7(w)}for(m=erW(e.Wg());m.Ob();)if(M4(p=eaO(m),510)&&(v=(i=Pp(p,590)).d,(null==y?null==v:IE(y,v))&&0==r--))return i;return null}if(h=-1==(l=t.lastIndexOf("."))?t:t.substr(0,l),n=0,-1!=l)try{n=eDa(t.substr(l+1),eHt,eUu)}catch(_){if(_=eoa(_),M4(_,127))h=t;else throw p7(_)}for(h=IE("%",h)?null:eYy(h),b=erW(e.Wg());b.Ob();)if(M4(p=eaO(b),191)&&(g=(a=Pp(p,191)).ne(),(null==h?null==g:IE(h,g))&&0==n--))return a;return null}return eR2(e,t)}function eF9(e){var t,n,r,i,a,o,s,u,c,l,f,d,h,p,b,m,g,v,y,w,_,E,S,k,x,T,M;for(E=new p0,p=new fz(e.b);p.a=e.length)return{done:!0};var r=e[n++];return{value:[r,t.get(r)],done:!1}}}},eCi()||(e.prototype.createObject=function(){return{}},e.prototype.get=function(e){return this.obj[":"+e]},e.prototype.set=function(e,t){this.obj[":"+e]=t},e.prototype[e$c]=function(e){delete this.obj[":"+e]},e.prototype.keys=function(){var e=[];for(var t in this.obj)58==t.charCodeAt(0)&&e.push(t.substring(1));return e}),e}function eYt(e){var t,n,r,i,a,o,s,u,c,l,f,d,h,p,b,m;if(eNl(),null==e)return null;if(0==(f=8*e.length))return"";for(u=0,s=f%24,h=f/24|0,a=null,a=Je(tyw,eHl,25,4*(d=0!=s?h+1:h),15,1),c=0,l=0,t=0,n=0,r=0,o=0,i=0;u>24,c=(3&t)<<24>>24,p=(-128&t)==0?t>>2<<24>>24:(t>>2^192)<<24>>24,b=(-128&n)==0?n>>4<<24>>24:(n>>4^240)<<24>>24,m=(-128&r)==0?r>>6<<24>>24:(r>>6^252)<<24>>24,a[o++]=tvQ[p],a[o++]=tvQ[b|c<<4],a[o++]=tvQ[l<<2|m],a[o++]=tvQ[63&r];return 8==s?(c=(3&(t=e[i]))<<24>>24,p=(-128&t)==0?t>>2<<24>>24:(t>>2^192)<<24>>24,a[o++]=tvQ[p],a[o++]=tvQ[c<<4],a[o++]=61,a[o++]=61):16==s&&(t=e[i],l=(15&(n=e[i+1]))<<24>>24,c=(3&t)<<24>>24,p=(-128&t)==0?t>>2<<24>>24:(t>>2^192)<<24>>24,b=(-128&n)==0?n>>4<<24>>24:(n>>4^240)<<24>>24,a[o++]=tvQ[p],a[o++]=tvQ[b|c<<4],a[o++]=tvQ[l<<2],a[o++]=61),ehv(a,0,a.length)}function eYn(e,t){var n,r,i,a,o,s,u;if(0==e.e&&e.p>0&&(e.p=-(e.p-1)),e.p>eHt&&V8(t,e.p-eHx),o=t.q.getDate(),zC(t,1),e.k>=0&&z7(t,e.k),e.c>=0?zC(t,e.c):e.k>=0?(r=35-(u=new est(t.q.getFullYear()-eHx,t.q.getMonth(),35)).q.getDate(),zC(t,eB4.Math.min(r,o))):zC(t,o),e.f<0&&(e.f=t.q.getHours()),e.b>0&&e.f<12&&(e.f+=12),M6(t,24==e.f&&e.g?0:e.f),e.j>=0&&Z0(t,e.j),e.n>=0&&Jf(t,e.n),e.i>=0&&xN(t,eft(efn(eyt(eap(t.q.getTime()),eHf),eHf),e.i)),e.a&&(V8(i=new wW,i.q.getFullYear()-eHx-80),Ei(eap(t.q.getTime()),eap(i.q.getTime()))&&V8(t,i.q.getFullYear()-eHx+100)),e.d>=0){if(-1==e.c)(n=(7+e.d-t.q.getDay())%7)>3&&(n-=7),s=t.q.getMonth(),zC(t,t.q.getDate()+n),t.q.getMonth()!=s&&zC(t,t.q.getDate()+(n>0?-7:7));else if(t.q.getDay()!=e.d)return!1}return e.o>eHt&&(a=t.q.getTimezoneOffset(),xN(t,eft(eap(t.q.getTime()),(e.o-a)*60*eHf))),!0}function eYr(e,t){var n,r,i,a,o,s,u,c,l,f,d,h,p,b,m,g,v,y,w;if(i=e_k(t,(eBU(),tnc)),M4(i,239)){for(p=Pp(i,33),b=t.e,d=new TS(t.c),a=t.d,d.a+=a.b,d.b+=a.d,w=Pp(eT9(p,(eBy(),ta8)),174),Aa(w,(eI3(),tbJ))&&(h=Pp(eT9(p,ta7),116),lR(h,a.a),lG(h,a.d),lj(h,a.b),lW(h,a.c)),n=new p0,l=new fz(t.a);l.a0&&P_(e.p,f),P_(e.o,f);t-=r,p=u+t,l+=t*e.e,q1(e.a,s,ell(p)),q1(e.b,s,l),e.j=eB4.Math.max(e.j,p),e.k=eB4.Math.max(e.k,l),e.d+=t,t+=m}}function eYu(){var e;eYu=A,tbF=new kS(ezo,0),tbw=new kS(ezb,1),tby=new kS(ezm,2),tbj=new kS(ezg,3),tbY=new kS(ezv,4),tbx=(Hj(),new vd((e=Pp(yw(e5a),9),new I1(e,Pp(CY(e,e.length),9),0)))),tbT=ecO(jL(tbw,eow(vx(e5a,1),eGj,61,0,[]))),tb_=ecO(jL(tby,eow(vx(e5a,1),eGj,61,0,[]))),tbN=ecO(jL(tbj,eow(vx(e5a,1),eGj,61,0,[]))),tbR=ecO(jL(tbY,eow(vx(e5a,1),eGj,61,0,[]))),tbC=ecO(jL(tbw,eow(vx(e5a,1),eGj,61,0,[tbj]))),tbk=ecO(jL(tby,eow(vx(e5a,1),eGj,61,0,[tbY]))),tbD=ecO(jL(tbw,eow(vx(e5a,1),eGj,61,0,[tbY]))),tbM=ecO(jL(tbw,eow(vx(e5a,1),eGj,61,0,[tby]))),tbP=ecO(jL(tbj,eow(vx(e5a,1),eGj,61,0,[tbY]))),tbE=ecO(jL(tby,eow(vx(e5a,1),eGj,61,0,[tbj]))),tbL=ecO(jL(tbw,eow(vx(e5a,1),eGj,61,0,[tby,tbY]))),tbS=ecO(jL(tby,eow(vx(e5a,1),eGj,61,0,[tbj,tbY]))),tbI=ecO(jL(tbw,eow(vx(e5a,1),eGj,61,0,[tbj,tbY]))),tbO=ecO(jL(tbw,eow(vx(e5a,1),eGj,61,0,[tby,tbj]))),tbA=ecO(jL(tbw,eow(vx(e5a,1),eGj,61,0,[tby,tbj,tbY])))}function eYc(e,t){var n,r,i,a,o,s,u,c,l,f,d,h,p,b,m,g,v,y;if(0!=t.b){for(h=new _n,s=null,p=null,r=zy(eB4.Math.floor(eB4.Math.log(t.b)*eB4.Math.LOG10E)+1),u=0,y=epL(t,0);y.b!=y.d.c;)for(g=Pp(Vv(y),86),xc(p)!==xc(e_k(g,(eR5(),tca)))&&(p=Lq(e_k(g,tca)),u=0),eo3(g,tca,s=null!=p?p+WB(u++,r):WB(u++,r)),m=(i=epL(new hz(g).a.d,0),new hG(i));yV(m.a);)qQ(h,b=Pp(Vv(m.a),188).c,h.c.b,h.c),eo3(b,tca,s);for(o=0,d=new p2;o=u){A5(g.b>0),g.a.Xb(g.c=--g.b);break}b.a>c&&(i?(eoc(i.b,b.b),i.a=eB4.Math.max(i.a,b.a),BH(g)):(P_(b.b,f),b.c=eB4.Math.min(b.c,c),b.a=eB4.Math.max(b.a,u),i=b))}i||((i=new mi).c=c,i.a=u,CD(g,i),P_(i.b,f))}for(s=t.b,l=0,m=new fz(r);m.as?1:0:(e.b&&(e.b._b(a)&&(i=Pp(e.b.xc(a),19).a),e.b._b(u)&&(s=Pp(e.b.xc(u),19).a)),is?1:0);return 0!=t.e.c.length&&0!=n.g.c.length?1:-1}function eYd(e,t){var n,r,i,a,o,s,u,c,l,f,d,h,p,b,m,g,v,y,w,_,E,S;for(ewG(t,eWo,1),b=new p0,E=new p0,c=new fz(e.b);c.a0&&(w-=p),eRU(o,w),f=0,h=new fz(o.a);h.a0),s.a.Xb(s.c=--s.b)),u=.4*r*f,!a&&s.bt.d.c){if((p=e.c[t.a.d])==(g=e.c[d.a.d]))continue;eAx(_f(_l(_d(_c(new bQ,1),100),p),g))}}}}}}function eYy(e){var t,n,r,i,a,o,s,u;if(eRe(),null==e)return null;if((i=x7(e,e_n(37)))<0)return e;for(u=new O0(e.substr(0,i)),t=Je(tyk,eZ9,25,4,15,1),s=0,r=0,o=e.length;ii+2&&eoV((GV(i+1,e.length),e.charCodeAt(i+1)),tmZ,tmX)&&eoV((GV(i+2,e.length),e.charCodeAt(i+2)),tmZ,tmX)){if(n=P0((GV(i+1,e.length),e.charCodeAt(i+1)),(GV(i+2,e.length),e.charCodeAt(i+2))),i+=2,r>0?(192&n)==128?t[s++]=n<<24>>24:r=0:n>=128&&((224&n)==192?(t[s++]=n<<24>>24,r=2):(240&n)==224?(t[s++]=n<<24>>24,r=3):(248&n)==240&&(t[s++]=n<<24>>24,r=4)),r>0){if(s==r){switch(s){case 2:Bd(u,((31&t[0])<<6|63&t[1])&eHd);break;case 3:Bd(u,((15&t[0])<<12|(63&t[1])<<6|63&t[2])&eHd)}s=0,r=0}}else{for(a=0;a0){if(o+r>e.length)return!1;s=exf(e.substr(0,o+r),t)}else s=exf(e,t)}switch(a){case 71:return s=ew5(e,o,eow(vx(e17,1),eUP,2,6,[eHM,eHO]),t),i.e=s,!0;case 77:return eLY(e,t,i,s,o);case 76:return eLB(e,t,i,s,o);case 69:return eS$(e,t,o,i);case 99:return eSz(e,t,o,i);case 97:return s=ew5(e,o,eow(vx(e17,1),eUP,2,6,["AM","PM"]),t),i.b=s,!0;case 121:return eLU(e,t,o,s,n,i);case 100:if(s<=0)return!1;return i.c=s,!0;case 83:if(s<0)return!1;return edc(s,o,t[0],i);case 104:12==s&&(s=0);case 75:case 72:if(s<0)return!1;return i.f=s,i.g=!1,!0;case 107:if(s<0)return!1;return i.f=s,i.g=!0,!0;case 109:if(s<0)return!1;return i.j=s,!0;case 115:if(s<0)return!1;return i.n=s,!0;case 90:if(oE&&(p.c=E-p.b),P_(o.d,new jH(p,elO(o,p))),v=t==tbw?eB4.Math.max(v,b.b+c.b.rf().b):eB4.Math.min(v,b.b));for(v+=t==tbw?e.t:-e.t,(y=edp((o.e=v,o)))>0&&(Pp(UA(e.b,t),124).a.b=y),l=d.Kc();l.Ob();)(c=Pp(l.Pb(),111)).c&&!(c.c.d.c.length<=0)&&(p=c.c.i,p.c-=c.e.a,p.d-=c.e.b)}function eYE(e){var t,n,r,i,a,o,s,u,l,f,d,h,p;for(t=new p2,u=new Ow(e);u.e!=u.i.gc();){for(s=Pp(epH(u),33),n=new bV,Um(e8t,s,n),p=new e6,i=Pp(qE(new R1(null,new YI(new Fa(OH(eOr(s).a.Kc(),new c)))),jD(p,JF(new U,new B,new en,eow(vx(e2L,1),eU4,132,0,[(eum(),e2U)])))),83),enC(n,Pp(i.xc((OQ(),!0)),14),new e5),o=(r=Pp(qE(UJ(Pp(i.xc(!1),15).Lc(),new e8),JF(new U,new B,new en,eow(vx(e2L,1),eU4,132,0,[e2U]))),15)).Kc();o.Ob();)(h=e_D(a=Pp(o.Pb(),79)))&&((l=Pp(xu($I(t.f,h)),21))||(l=eA7(h),eS8(t.f,h,l)),er7(n,l));for(i=Pp(qE(new R1(null,new YI(new Fa(OH(eOi(s).a.Kc(),new c)))),jD(p,JF(new U,new B,new en,eow(vx(e2L,1),eU4,132,0,[e2U])))),83),enC(n,Pp(i.xc(!0),14),new e9),d=(r=Pp(qE(UJ(Pp(i.xc(!1),15).Lc(),new e7),JF(new U,new B,new en,eow(vx(e2L,1),eU4,132,0,[e2U]))),15)).Kc();d.Ob();)(h=e_N(f=Pp(d.Pb(),79)))&&((l=Pp(xu($I(t.f,h)),21))||(l=eA7(h),eS8(t.f,h,l)),er7(n,l))}}function eYS(e,t){var n,r,i,a,o,s,u,c,l,f,d,h,p,b;if(ePN(),(u=0>ecd(e,0))&&(e=QC(e)),0==ecd(e,0))switch(t){case 0:return"0";case 1:return e$e;case 2:return"0.00";case 3:return"0.000";case 4:return"0.0000";case 5:return"0.00000";case 6:return"0.000000";default:return h=new vc,t<0?(h.a+="0E+",h):(h.a+="0E",h),h.a+=t==eHt?"2147483648":""+-t,h.a}f=Je(tyw,eHl,25,(l=18)+1,15,1),n=l,b=e;do c=b,b=eyt(b,10),f[--n]=jE(eft(48,efe(c,efn(b,10))))&eHd;while(0!=ecd(b,0))if(i=efe(efe(efe(l,n),t),1),0==t)return u&&(f[--n]=45),ehv(f,n,l-n);if(t>0&&ecd(i,-6)>=0){if(ecd(i,0)>=0){for(a=n+jE(i),s=l-1;s>=a;s--)f[s+1]=f[s];return f[++a]=46,u&&(f[--n]=45),ehv(f,n,l-n+1)}for(o=2;Ei(o,eft(QC(i),1));o++)f[--n]=48;return f[--n]=46,f[--n]=48,u&&(f[--n]=45),ehv(f,n,l-n)}return p=n+1,r=l,d=new vl,u&&(d.a+="-"),r-p>=1?(Bd(d,f[n]),d.a+=".",d.a+=ehv(f,n+1,l-n-1)):d.a+=ehv(f,n,l-n),d.a+="E",ecd(i,0)>0&&(d.a+="+"),d.a+=""+Fb(i),d.a}function eYk(e,t,n){var r,i,a,o,s,u,c,l,f,d,h;if(e.e.a.$b(),e.f.a.$b(),e.c.c=Je(e1R,eUp,1,0,5,1),e.i.c=Je(e1R,eUp,1,0,5,1),e.g.a.$b(),t)for(o=new fz(t.a);o.a=1&&(_-c>0&&p>=0?(eno(f,f.i+w),ens(f,f.j+u*c)):_-c<0&&h>=0&&(eno(f,f.i+w*_),ens(f,f.j+u)));return ebu(e,(eBB(),thx),(ed5(),a=Pp(yw(e5o),9),new I1(a,Pp(CY(a,a.length),9),0))),new kl(E,l)}function eYT(e){var t,n,r,i,a,o,s,u,c,l,f,d,h,p;if(h=z$(ewH(Pp(etj((e.b||(e.b=new Ih(e5m,e,4,7)),e.b),0),82))),p=z$(ewH(Pp(etj((e.c||(e.c=new Ih(e5m,e,5,8)),e.c),0),82))),f=h==p,s=new yb,(t=Pp(eT9(e,(euw(),tpj)),74))&&t.b>=2){if(0==(e.a||(e.a=new FQ(e5v,e,6,6)),e.a).i)n=(yT(),i=new oQ),JL((e.a||(e.a=new FQ(e5v,e,6,6)),e.a),n);else if((e.a||(e.a=new FQ(e5v,e,6,6)),e.a).i>1)for(d=new AF((e.a||(e.a=new FQ(e5v,e,6,6)),e.a));d.e!=d.i.gc();)ey_(d);eNI(t,Pp(etj((e.a||(e.a=new FQ(e5v,e,6,6)),e.a),0),202))}if(f)for(r=new Ow((e.a||(e.a=new FQ(e5v,e,6,6)),e.a));r.e!=r.i.gc();)for(n=Pp(epH(r),202),c=new Ow((n.a||(n.a=new O_(e5h,n,5)),n.a));c.e!=c.i.gc();)u=Pp(epH(c),469),s.a=eB4.Math.max(s.a,u.a),s.b=eB4.Math.max(s.b,u.b);for(o=new Ow((e.n||(e.n=new FQ(e5S,e,1,7)),e.n));o.e!=o.i.gc();)a=Pp(epH(o),137),(l=Pp(eT9(a,tp$),8))&&TP(a,l.a,l.b),f&&(s.a=eB4.Math.max(s.a,a.i+a.g),s.b=eB4.Math.max(s.b,a.j+a.f));return s}function eYM(e,t,n){var r,i,a,o,s,u,c,l,f,d,h,p,b,m,g,v,y,w,_,E,k,x;for(s=0,y=t.c.length,i=new eIW(e.a,n,null,null),x=Je(tyx,eH6,25,y,15,1),b=Je(tyx,eH6,25,y,15,1),p=Je(tyx,eH6,25,y,15,1),m=0;sx[u]&&(m=u),f=new fz(e.a.b);f.ah&&(a&&(xL(E,d),xL(k,ell(c.b-1))),A=n.b,L+=d+t,d=0,l=eB4.Math.max(l,n.b+n.c+O)),eno(s,A),ens(s,L),l=eB4.Math.max(l,A+O+n.c),d=eB4.Math.max(d,f),A+=O+t;if(l=eB4.Math.max(l,r),(M=L+d+n.a)ez9,x=eB4.Math.abs(d.b-p.b)>ez9,(!n&&k&&x||n&&(k||x))&&P7(m.a,w)),er7(m.a,r),d=0==r.b?w:(A5(0!=r.b),Pp(r.c.b.c,8)),ea1(h,f,b),eiy(i)==S&&(Bq(S.i)!=i.a&&eSb(b=new yb,Bq(S.i),v),eo3(m,tnC,b)),eEw(h,m,v),l.a.zc(h,l);Gs(m,_),Go(m,S)}for(c=l.a.ec().Kc();c.Ob();)Gs(u=Pp(c.Pb(),17),null),Go(u,null);eEj(t)}function eYC(e){var t,n,r,i,a,o,s,u,c,l,f,d,h,p,b,m,g,v,y,w;if(1==e.gc())return Pp(e.Xb(0),231);if(0>=e.gc())return new Z6;for(i=e.Kc();i.Ob();){for(n=Pp(i.Pb(),231),p=0,l=eUu,f=eUu,u=eHt,c=eHt,h=new fz(n.e);h.as&&(y=0,w+=o+g,o=0),eIJ(b,n,y,w),t=eB4.Math.max(t,y+m.a),o=eB4.Math.max(o,m.b),y+=m.a+g;return b}function eYI(e,t){var n,r,i,a,o,s,u,c,l,f,d,h,p;switch(l=new mE,e.a.g){case 3:d=Pp(e_k(t.e,(eBU(),tnO)),15),h=Pp(e_k(t.j,tnO),15),p=Pp(e_k(t.f,tnO),15),n=Pp(e_k(t.e,tnT),15),r=Pp(e_k(t.j,tnT),15),i=Pp(e_k(t.f,tnT),15),o=new p0,eoc(o,d),h.Jc(new iN),eoc(o,M4(h,152)?ZK(Pp(h,152)):M4(h,131)?Pp(h,131).a:M4(h,54)?new gn(h):new w$(h)),eoc(o,p),a=new p0,eoc(a,n),eoc(a,M4(r,152)?ZK(Pp(r,152)):M4(r,131)?Pp(r,131).a:M4(r,54)?new gn(r):new w$(r)),eoc(a,i),eo3(t.f,tnO,o),eo3(t.f,tnT,a),eo3(t.f,tnA,t.f),eo3(t.e,tnO,null),eo3(t.e,tnT,null),eo3(t.j,tnO,null),eo3(t.j,tnT,null);break;case 1:er7(l,t.e.a),P7(l,t.i.n),er7(l,eaa(t.j.a)),P7(l,t.a.n),er7(l,t.f.a);break;default:er7(l,t.e.a),er7(l,eaa(t.j.a)),er7(l,t.f.a)}HC(t.f.a),er7(t.f.a,l),Gs(t.f,t.e.c),s=Pp(e_k(t.e,(eBy(),taR)),74),c=Pp(e_k(t.j,taR),74),u=Pp(e_k(t.f,taR),74),(s||c||u)&&(Yp(f=new mE,u),Yp(f,c),Yp(f,s),eo3(t.f,taR,f)),Gs(t.j,null),Go(t.j,null),Gs(t.e,null),Go(t.e,null),Gu(t.a,null),Gu(t.i,null),t.g&&eYI(e,t.g)}function eYD(e){var t,n,r,i,a,o,s,u,c,l,f,d,h,p,b,m;if(eNl(),null==e||(a=Q4(e),(p=elw(a))%4!=0))return null;if(0==(b=p/4|0))return Je(tyk,eZ9,25,0,15,1);for(f=null,t=0,n=0,r=0,i=0,o=0,s=0,u=0,c=0,h=0,d=0,l=0,f=Je(tyk,eZ9,25,3*b,15,1);h>4)<<24>>24,f[d++]=((15&n)<<4|r>>2&15)<<24>>24,f[d++]=(r<<6|i)<<24>>24}if(!wl(o=a[l++])||!wl(s=a[l++]))return null;if(t=tvJ[o],n=tvJ[s],u=a[l++],c=a[l++],-1==tvJ[u]||-1==tvJ[c])return 61==u&&61==c?(15&n)!=0?null:(m=Je(tyk,eZ9,25,3*h+1,15,1),ePD(f,0,m,0,3*h),m[d]=(t<<2|n>>4)<<24>>24,m):61==u||61!=c?null:(3&(r=tvJ[u]))!=0?null:(m=Je(tyk,eZ9,25,3*h+2,15,1),ePD(f,0,m,0,3*h),m[d++]=(t<<2|n>>4)<<24>>24,m[d]=((15&n)<<4|r>>2&15)<<24>>24,m);return r=tvJ[u],i=tvJ[c],f[d++]=(t<<2|n>>4)<<24>>24,f[d++]=((15&n)<<4|r>>2&15)<<24>>24,f[d++]=(r<<6|i)<<24>>24,f}function eYN(e,t){var n,r,i,a,o,s,u,c,l,f,d,h,p,b,m,g,v,y,w,_;for(ewG(t,eWo,1),p=Pp(e_k(e,(eBy(),tag)),218),i=new fz(e.b);i.a=2){for(b=!0,n=Pp(Wx(d=new fz(a.j)),11),h=null;d.a0&&(i=Pp(RJ(m.c.a,E-1),10),o=e.i[i.p],k=eB4.Math.ceil(Mj(e.n,i,m)),a=_.a.e-m.d.d-(o.a.e+i.o.b+i.d.a)-k),c=eHQ,E0&&S.a.e.e-S.a.a-(S.b.e.e-S.b.a)<0,p=y.a.e.e-y.a.a-(y.b.e.e-y.b.a)<0&&S.a.e.e-S.a.a-(S.b.e.e-S.b.a)>0,h=y.a.e.e+y.b.aS.b.e.e+S.a.a,w=0,!b&&!p&&(d?a+f>0?w=f:c-r>0&&(w=r):h&&(a+s>0?w=s:c-v>0&&(w=v))),_.a.e+=w,_.b&&(_.d.e+=w),!1))}function eYR(e,t,n){var r,i,a,o,s,u,c,l,f,d;if(r=new Hr(t.qf().a,t.qf().b,t.rf().a,t.rf().b),i=new TE,e.c)for(o=new fz(t.wf());o.ac&&(r.a+=M3(Je(tyw,eHl,25,-c,15,1))),r.a+="Is",x7(u,e_n(32))>=0)for(i=0;i=r.o.b/2}v?(g=Pp(e_k(r,(eBU(),tnI)),15))?d?a=g:(i=Pp(e_k(r,ttB),15))?a=g.gc()<=i.gc()?g:i:(a=new p0,eo3(r,ttB,a)):(a=new p0,eo3(r,tnI,a)):(i=Pp(e_k(r,(eBU(),ttB)),15))?f?a=i:(g=Pp(e_k(r,tnI),15))?a=i.gc()<=g.gc()?i:g:(a=new p0,eo3(r,tnI,a)):(a=new p0,eo3(r,ttB,a)),a.Fc(e),eo3(e,(eBU(),ttH),n),t.d==n?(Go(t,null),n.e.c.length+n.g.c.length==0&&Gc(n,null),esQ(n)):(Gs(t,null),n.e.c.length+n.g.c.length==0&&Gc(n,null)),HC(t.a)}function eYH(e,t){var n,r,i,a,o,s,u,l,f,d,h,p,b,m,g,v,y,w,_,E,S,k,x,T,M,O,A,L;for(y=new KB(e.b,0),f=t.Kc(),b=0,l=Pp(f.Pb(),19).a,E=0,n=new bV,k=new Tw;y.b=e.a&&(r=eN3(e,y),f=eB4.Math.max(f,r.b),_=eB4.Math.max(_,r.d),P_(s,new kD(y,r)));for(l=0,x=new p0;l0),g.a.Xb(g.c=--g.b),T=new By(e.b),CD(g,T),A5(g.b0?(c=0,m&&(c+=s),c+=(x-1)*o,y&&(c+=s),k&&y&&(c=eB4.Math.max(c,eAD(y,o,v,S))),!(c0){for(i=0,d=l<100?null:new yf(l),p=(c=new eiP(t)).g,g=Je(ty_,eHT,25,l,15,1),r=0,w=new eta(l);i=0;)if(null!=h?ecX(h,p[u]):xc(h)===xc(p[u])){g.length<=r&&(m=g,g=Je(ty_,eHT,25,2*g.length,15,1),ePD(m,0,g,0,r)),g[r++]=i,JL(w,p[u]);break v}if(xc(h)===xc(s))break}}if(c=w,p=w.g,l=r,r>g.length&&(m=g,g=Je(ty_,eHT,25,r,15,1),ePD(m,0,g,0,r)),r>0){for(a=0,y=!0;a=0;)egk(e,g[o]);if(r!=l){for(i=l;--i>=r;)egk(c,i);m=g,g=Je(ty_,eHT,25,r,15,1),ePD(m,0,g,0,r)}t=c}}}else for(t=egh(e,t),i=e.i;--i>=0;)t.Hc(e.g[i])&&(egk(e,i),y=!0);if(!y)return!1;if(null!=g){for(f=1==(n=t.gc())?Gt(e,4,t.Kc().Pb(),null,g[0],b):Gt(e,6,t,g,g[0],b),d=n<100?null:new yf(n),i=t.Kc();i.Ob();)d=IW(e,Pp(h=i.Pb(),72),d);d?(d.Ei(f),d.Fi()):eam(e.e,f)}else{for(d=IP(t.gc()),i=t.Kc();i.Ob();)d=IW(e,Pp(h=i.Pb(),72),d);d&&d.Fi()}return!0}function eYV(e,t){var n,r,i,a,o,s,u,l,f,d,h,p,b,m,g,v,y,w;for((n=new eb_(t)).a||eDc(t),l=eCx(t),u=new zu,g=new eLy,m=new fz(t.a);m.a0||n.o==tuS&&i0?(f=Pp(RJ(d.c.a,o-1),10),k=Mj(e.b,d,f),m=d.n.b-d.d.d-(f.n.b+f.o.b+f.d.a+k)):m=d.n.b-d.d.d,c=eB4.Math.min(m,c),oo?eIc(e,t,n):eIc(e,n,t),io?1:0}return r=Pp(e_k(t,(eBU(),tnu)),19).a,a=Pp(e_k(n,tnu),19).a,r>a?eIc(e,t,n):eIc(e,n,t),ra?1:0}function eYQ(e,t,n,r){var i,a,o,s,u,c,l,f,d,h,p,b,m,g,v;if(gN(LK(eT9(t,(eBB(),thI))))||(c=0!=(t.a||(t.a=new FQ(e5k,t,10,11)),t.a).i,l=!(f=ekq(t)).dc(),!c&&!l))return Hj(),Hj(),e2r;if(!(i=Pp(eT9(t,th5),149)))throw p7(new gq("Resolved algorithm is not set; apply a LayoutAlgorithmResolver before computing layout."));if(v=ka(i,(eTy(),tmC)),ept(t),!c&&l&&!v)return Hj(),Hj(),e2r;if(u=new p0,xc(eT9(t,thl))===xc((eck(),tpz))&&(ka(i,tmO)||ka(i,tmM)))for(h=eCL(e,t),er7(p=new _n,(t.a||(t.a=new FQ(e5k,t,10,11)),t.a));0!=p.b;)ept(d=Pp(0==p.b?null:(A5(0!=p.b),etw(p,p.a.a)),33)),(g=xc(eT9(d,thl))===xc(tpW))||X2(d,tdQ)&&!Zs(i,eT9(d,th5))?(s=eYQ(e,d,n,r),eoc(u,s),ebu(d,thl,tpW),eIU(d)):er7(p,(d.a||(d.a=new FQ(e5k,d,10,11)),d.a));else for(h=(t.a||(t.a=new FQ(e5k,t,10,11)),t.a).i,o=new Ow((t.a||(t.a=new FQ(e5k,t,10,11)),t.a));o.e!=o.i.gc();)a=Pp(epH(o),33),s=eYQ(e,a,n,r),eoc(u,s),eIU(a);for(m=new fz(u);m.a=0?ef8(s):elC(ef8(s)),e.Ye(tob,h)),c=new yb,d=!1,e.Xe(tou)?(Lf(c,Pp(e.We(tou),8)),d=!0):Oc(c,o.a/2,o.b/2),h.g){case 4:eo3(l,taY,(ef_(),tnN)),eo3(l,ttV,(eoG(),te0)),l.o.b=o.b,b<0&&(l.o.a=-b),ekv(f,(eYu(),tby)),d||(c.a=o.a),c.a-=o.a;break;case 2:eo3(l,taY,(ef_(),tnR)),eo3(l,ttV,(eoG(),teQ)),l.o.b=o.b,b<0&&(l.o.a=-b),ekv(f,(eYu(),tbY)),d||(c.a=0);break;case 1:eo3(l,tt8,(Q1(),ttN)),l.o.a=o.a,b<0&&(l.o.b=-b),ekv(f,(eYu(),tbj)),d||(c.b=o.b),c.b-=o.b;break;case 3:eo3(l,tt8,(Q1(),ttI)),l.o.a=o.a,b<0&&(l.o.b=-b),ekv(f,(eYu(),tbw)),d||(c.b=0)}if(Lf(f.n,c),eo3(l,tou,c),t==tba||t==tbs||t==tbo){if(p=0,t==tba&&e.Xe(tof))switch(h.g){case 1:case 2:p=Pp(e.We(tof),19).a;break;case 3:case 4:p=-Pp(e.We(tof),19).a}else switch(h.g){case 4:case 2:p=a.b,t==tbs&&(p/=i.b);break;case 1:case 3:p=a.a,t==tbs&&(p/=i.a)}eo3(l,tnv,p)}return eo3(l,tt1,h),l}function eY0(e){var t,n,r,i,a,o,s,u,l,f,d,h,p,b,m,g,v,y,w,_,E,S,k,x,T;if((n=gP(LV(e_k(e.a.j,(eBy(),tar)))))<-1||!e.a.i||IR(Pp(e_k(e.a.o,tol),98))||2>efr(e.a.o,(eYu(),tby)).gc()&&2>efr(e.a.o,tbY).gc())return!0;if(e.a.c.Rf())return!1;for(E=0,_=0,w=new p0,u=e.a.e,l=0,f=u.length;l=n}function eY2(){function n(e){var t=this;this.dispatch=function(t){var n=t.data;switch(n.cmd){case"algorithms":var r=edh((Hj(),new fF(new fT(tmF.b))));e.postMessage({id:n.id,data:r});break;case"categories":var i=edh((Hj(),new fF(new fT(tmF.c))));e.postMessage({id:n.id,data:i});break;case"options":var a=edh((Hj(),new fF(new fT(tmF.d))));e.postMessage({id:n.id,data:a});break;case"register":ejy(n.algorithms),e.postMessage({id:n.id});break;case"layout":ePu(n.graph,n.layoutOptions||{},n.options||{}),e.postMessage({id:n.id,data:n.graph})}},this.saveDispatch=function(n){try{t.dispatch(n)}catch(r){e.postMessage({id:n.data.id,error:r})}}}function r(e){var t=this;this.dispatcher=new n({postMessage:function(e){t.onmessage({data:e})}}),this.postMessage=function(e){setTimeout(function(){t.dispatcher.saveDispatch({data:e})},0)}}if(yC(),typeof document===e$E&&typeof self!==e$E){var i=new n(self);self.onmessage=i.saveDispatch}else"object"!==e$E&&e.exports&&(Object.defineProperty(t,"__esModule",{value:!0}),e.exports={default:r,Worker:r})}function eY3(e){e.N||(e.N=!0,e.b=eak(e,0),er5(e.b,0),er5(e.b,1),er5(e.b,2),e.bb=eak(e,1),er5(e.bb,0),er5(e.bb,1),e.fb=eak(e,2),er5(e.fb,3),er5(e.fb,4),er8(e.fb,5),e.qb=eak(e,3),er5(e.qb,0),er8(e.qb,1),er8(e.qb,2),er5(e.qb,3),er5(e.qb,4),er8(e.qb,5),er5(e.qb,6),e.a=eax(e,4),e.c=eax(e,5),e.d=eax(e,6),e.e=eax(e,7),e.f=eax(e,8),e.g=eax(e,9),e.i=eax(e,10),e.j=eax(e,11),e.k=eax(e,12),e.n=eax(e,13),e.o=eax(e,14),e.p=eax(e,15),e.q=eax(e,16),e.s=eax(e,17),e.r=eax(e,18),e.t=eax(e,19),e.u=eax(e,20),e.v=eax(e,21),e.w=eax(e,22),e.B=eax(e,23),e.A=eax(e,24),e.C=eax(e,25),e.D=eax(e,26),e.F=eax(e,27),e.G=eax(e,28),e.H=eax(e,29),e.J=eax(e,30),e.I=eax(e,31),e.K=eax(e,32),e.M=eax(e,33),e.L=eax(e,34),e.P=eax(e,35),e.Q=eax(e,36),e.R=eax(e,37),e.S=eax(e,38),e.T=eax(e,39),e.U=eax(e,40),e.V=eax(e,41),e.X=eax(e,42),e.W=eax(e,43),e.Y=eax(e,44),e.Z=eax(e,45),e.$=eax(e,46),e._=eax(e,47),e.ab=eax(e,48),e.cb=eax(e,49),e.db=eax(e,50),e.eb=eax(e,51),e.gb=eax(e,52),e.hb=eax(e,53),e.ib=eax(e,54),e.jb=eax(e,55),e.kb=eax(e,56),e.lb=eax(e,57),e.mb=eax(e,58),e.nb=eax(e,59),e.ob=eax(e,60),e.pb=eax(e,61))}function eY4(e,t){var n,r,i,a,o,s,u,c,l,f,d,h,p,b,m,g,v,y,w;if(v=0,0==t.f.a)for(m=new fz(e);m.ac&&0==(GK(c,t.c.length),Pp(t.c[c],200)).a.c.length;)QA(t,(GK(c,t.c.length),t.c[c]));if(!u){--a;continue}if(eDk(t,l,i,u,d,n,c,r)){f=!0;continue}if(d){if(ePx(t,l,i,u,n,c,r)){f=!0;continue}if(eu4(l,i)){i.c=!0,f=!0;continue}}else if(eu4(l,i)){i.c=!0,f=!0;continue}if(f)continue}if(eu4(l,i)){i.c=!0,f=!0,u&&(u.k=!1);continue}emG(i.q)}return f}function eY8(e,t,n,r,i,a,o){var s,u,c,l,f,d,h,p,b,m,g,v,y,w,_,E,S,k,x,T,M,O,A,L;for(b=0,T=0,c=new fz(e.b);c.ab&&(a&&(xL(E,h),xL(k,ell(l.b-1)),P_(e.d,p),s.c=Je(e1R,eUp,1,0,5,1)),A=n.b,L+=h+t,h=0,f=eB4.Math.max(f,n.b+n.c+O)),s.c[s.c.length]=u,epW(u,A,L),f=eB4.Math.max(f,A+O+n.c),h=eB4.Math.max(h,d),A+=O+t,p=u;if(eoc(e.a,s),P_(e.d,Pp(RJ(s,s.c.length-1),157)),f=eB4.Math.max(f,r),(M=L+h+n.a)1&&(o=eB4.Math.min(o,eB4.Math.abs(Pp(ep3(s.a,1),8).b-l.b)))));else for(b=new fz(t.j);b.ai&&(a=d.a-i,o=eUu,r.c=Je(e1R,eUp,1,0,5,1),i=d.a),d.a>=i&&(r.c[r.c.length]=s,s.a.b>1&&(o=eB4.Math.min(o,eB4.Math.abs(Pp(ep3(s.a,s.a.b-2),8).b-d.b)))));if(0!=r.c.length&&a>t.o.a/2&&o>t.o.b/2){for(h=new eES,Gc(h,t),ekv(h,(eYu(),tbw)),h.n.a=t.o.a/2,g=new eES,Gc(g,t),ekv(g,tbj),g.n.a=t.o.a/2,g.n.b=t.o.b,u=new fz(r);u.a=c.b?Gs(s,g):Gs(s,h)):(c=Pp(P$(s.a),8),(m=0==s.a.b?GX(s.c):Pp(AZ(s.a),8)).b>=c.b?Go(s,g):Go(s,h)),(f=Pp(e_k(s,(eBy(),taR)),74))&&eds(f,c,!0);t.n.a=i-t.o.a/2}}function eBe(e,t,n){var r,i,a,o,s,u,c,l,f,d,h,p,b,m,g,v,y,w,_,E,S,k,x,T,M,O,A,L,C,I;if(T=null,O=t,M=V0(e,VF(n),O),ert(M,KJ(O,eXS)),A=Pp(etJ(e.g,ekZ(zR(O,eXi))),33),d=zR(O,"sourcePort"),r=null,d&&(r=ekZ(d)),L=Pp(etJ(e.j,r),118),!A)throw b=(p="An edge must have a source node (edge id: '"+(s=ehM(O)))+eXO,p7(new gK(b));if(L&&!BG(zY(L),A))throw g=(m="The source port of an edge must be a port of the edge's source node (edge id: '"+(u=KJ(O,eXS)))+eXO,p7(new gK(g));if(k=(M.b||(M.b=new Ih(e5m,M,4,7)),M.b),a=null,JL(k,a=L||A),C=Pp(etJ(e.g,ekZ(zR(O,eXC))),33),h=zR(O,"targetPort"),i=null,h&&(i=ekZ(h)),I=Pp(etJ(e.j,i),118),!C)throw y=(v="An edge must have a target node (edge id: '"+(f=ehM(O)))+eXO,p7(new gK(y));if(I&&!BG(zY(I),C))throw _=(w="The target port of an edge must be a port of the edge's target node (edge id: '"+(c=KJ(O,eXS)))+eXO,p7(new gK(_));if(x=(M.c||(M.c=new Ih(e5m,M,5,8)),M.c),o=null,JL(x,o=I||C),0==(M.b||(M.b=new Ih(e5m,M,4,7)),M.b).i||0==(M.c||(M.c=new Ih(e5m,M,5,8)),M.c).i)throw S=(E=eXM+(l=KJ(O,eXS)))+eXO,p7(new gK(S));return ewU(O,M),eMu(O,M),T=esv(e,O,M)}function eBt(e,t){var n,r,i,a,o,s,u,c,l,f,d,h,p,b,m,g,v,y,w,_,E,S,k,x,T;return f=eNf(A_(e,(eYu(),tbx)),t),p=em8(A_(e,tbT),t),w=em8(A_(e,tbN),t),k=em9(A_(e,tbR),t),d=em9(A_(e,tb_),t),v=em8(A_(e,tbD),t),b=em8(A_(e,tbM),t),E=em8(A_(e,tbP),t),_=em8(A_(e,tbE),t),x=em9(A_(e,tbk),t),g=em8(A_(e,tbC),t),y=em8(A_(e,tbL),t),S=em8(A_(e,tbS),t),T=em9(A_(e,tbI),t),h=em9(A_(e,tbO),t),m=em8(A_(e,tbA),t),n=esm(eow(vx(tyx,1),eH6,25,15,[v.a,k.a,E.a,T.a])),r=esm(eow(vx(tyx,1),eH6,25,15,[p.a,f.a,w.a,m.a])),i=g.a,a=esm(eow(vx(tyx,1),eH6,25,15,[b.a,d.a,_.a,h.a])),c=esm(eow(vx(tyx,1),eH6,25,15,[v.b,p.b,b.b,y.b])),u=esm(eow(vx(tyx,1),eH6,25,15,[k.b,f.b,d.b,m.b])),l=x.b,s=esm(eow(vx(tyx,1),eH6,25,15,[E.b,w.b,_.b,S.b])),JD(A_(e,tbx),n+i,c+l),JD(A_(e,tbA),n+i,c+l),JD(A_(e,tbT),n+i,0),JD(A_(e,tbN),n+i,c+l+u),JD(A_(e,tbR),0,c+l),JD(A_(e,tb_),n+i+r,c+l),JD(A_(e,tbM),n+i+r,0),JD(A_(e,tbP),0,c+l+u),JD(A_(e,tbE),n+i+r,c+l+u),JD(A_(e,tbk),0,c),JD(A_(e,tbC),n,0),JD(A_(e,tbS),0,c+l+u),JD(A_(e,tbO),n+i+r,0),(o=new yb).a=esm(eow(vx(tyx,1),eH6,25,15,[n+r+i+a,x.a,y.a,S.a])),o.b=esm(eow(vx(tyx,1),eH6,25,15,[c+u+l+s,g.b,T.b,h.b])),o}function eBn(e){var t,n,r,i,a,o,s,u,l,f,d,h,p,b,m,g;for(m=new p0,h=new fz(e.d.b);h.ai.d.d+i.d.a?f.f.d=!0:(f.f.d=!0,f.f.a=!0))),r.b!=r.d.c&&(t=n);f&&(a=Pp(Bp(e.f,o.d.i),57),t.ba.d.d+a.d.a?f.f.d=!0:(f.f.d=!0,f.f.a=!0))}for(s=new Fa(OH(efu(p).a.Kc(),new c));eTk(s);)0!=(o=Pp(ZC(s),17)).a.b&&(t=Pp(AZ(o.a),8),o.d.j==(eYu(),tbw)&&((g=new ePe(t,new kl(t.a,i.d.d),i,o)).f.a=!0,g.a=o.d,m.c[m.c.length]=g),o.d.j==tbj&&((g=new ePe(t,new kl(t.a,i.d.d+i.d.a),i,o)).f.d=!0,g.a=o.d,m.c[m.c.length]=g))}return m}function eBr(e,t,n){var r,i,a,o,s,u,c,l,f;if(ewG(n,"Network simplex node placement",1),e.e=t,e.n=Pp(e_k(t,(eBU(),tnx)),304),eRx(e),ey9(e),_r(eeh(new R1(null,new Gq(e.e.b,16)),new i2),new hR(e)),_r(UJ(eeh(UJ(eeh(new R1(null,new Gq(e.e.b,16)),new aa),new ao),new as),new au),new hP(e)),gN(LK(e_k(e.e,(eBy(),taQ))))&&(o=eiI(n,1),ewG(o,"Straight Edges Pre-Processing",1),eFy(e),eEj(o)),ebR(e.f),a=Pp(e_k(t,to$),19).a*e.f.a.c.length,eIX(vC(vI(DN(e.f),a),!1),eiI(n,1)),0!=e.d.a.gc()){for(o=eiI(n,1),ewG(o,"Flexible Where Space Processing",1),s=Pp(Af(FM(UQ(new R1(null,new Gq(e.f.a,16)),new i3),new iZ)),19).a,c=(u=Pp(Af(FT(UQ(new R1(null,new Gq(e.f.a,16)),new i4),new iX)),19).a)-s,l=Al(new b1,e.f),f=Al(new b1,e.f),eAx(_f(_l(_c(_d(new bQ,2e4),c),l),f)),_r(UJ(UJ(Yw(e.i),new i6),new i5),new Hn(s,l,c,f)),i=e.d.a.ec().Kc();i.Ob();)(r=Pp(i.Pb(),213)).g=1;eIX(vC(vI(DN(e.f),a),!1),eiI(o,1)),eEj(o)}gN(LK(e_k(t,taQ)))&&(o=eiI(n,1),ewG(o,"Straight Edges Post-Processing",1),eSf(e),eEj(o)),ej3(e),e.e=null,e.f=null,e.i=null,e.c=null,Yy(e.k),e.j=null,e.a=null,e.o=null,e.d.a.$b(),eEj(n)}function eBi(e,t,n){var r,i,a,o,s,u,c,l,f,d,h,p,b,m,g,v,y,w,_;for(s=new fz(e.a.b);s.a0){if(r=f.gc(),c=zy(eB4.Math.floor((r+1)/2))-1,i=zy(eB4.Math.ceil((r+1)/2))-1,t.o==tuS)for(l=i;l>=c;l--)t.a[w.p]==w&&(b=Pp(f.Xb(l),46),p=Pp(b.a,10),!w0(n,b.b)&&h>e.b.e[p.p]&&(t.a[p.p]=w,t.g[w.p]=t.g[p.p],t.a[w.p]=t.g[w.p],t.f[t.g[w.p].p]=(OQ(),!!(gN(t.f[t.g[w.p].p])&w.k==(eEn(),e9D))),h=e.b.e[p.p]));else for(l=c;l<=i;l++)t.a[w.p]==w&&(g=Pp(f.Xb(l),46),m=Pp(g.a,10),!w0(n,g.b)&&h=p&&(v>p&&(h.c=Je(e1R,eUp,1,0,5,1),p=v),h.c[h.c.length]=o);0!=h.c.length&&(d=Pp(RJ(h,ebO(t,h.c.length)),128),M.a.Bc(d),d.s=b++,eM4(d,x,E),h.c=Je(e1R,eUp,1,0,5,1))}for(w=e.c.length+1,s=new fz(e);s.aT.s&&(BH(n),QA(T.i,r),r.c>0&&(r.a=T,P_(T.t,r),r.b=S,P_(S.i,r)))}function eBs(e){var t,n,r,i,a;switch(t=e.c){case 11:return e.Ml();case 12:return e.Ol();case 14:return e.Ql();case 15:return e.Tl();case 16:return e.Rl();case 17:return e.Ul();case 21:return eBM(e),eBG(),eBG(),tye;case 10:switch(e.a){case 65:return e.yl();case 90:return e.Dl();case 122:return e.Kl();case 98:return e.El();case 66:return e.zl();case 60:return e.Jl();case 62:return e.Hl()}}switch(a=eY9(e),t=e.c){case 3:return e.Zl(a);case 4:return e.Xl(a);case 5:return e.Yl(a);case 0:if(123==e.a&&e.d=48&&t<=57){for(r=t-48;i=48&&t<=57;)if((r=10*r+t-48)<0)throw p7(new gX(eBJ((Mo(),eJ_))))}else throw p7(new gX(eBJ((Mo(),eJg))));if(n=r,44==t){if(i>=e.j)throw p7(new gX(eBJ((Mo(),eJy))));if((t=UI(e.i,i++))>=48&&t<=57){for(n=t-48;i=48&&t<=57;)if((n=10*n+t-48)<0)throw p7(new gX(eBJ((Mo(),eJ_))));if(r>n)throw p7(new gX(eBJ((Mo(),eJw))))}else n=-1}if(125!=t)throw p7(new gX(eBJ((Mo(),eJv))));e.sl(i)?(a=(eBG(),eBG(),++tyv,new qa(9,a)),e.d=i+1):(a=(eBG(),eBG(),++tyv,new qa(3,a)),e.d=i),a.dm(r),a.cm(n),eBM(e)}}return a}function eBu(e,t,n,r,i){var a,o,s,u,c,l,f,d,h,p,b,m,g,v,y,w,_,E,S,k,x,T,M;for(b=new XM(t.b),w=new XM(t.b),d=new XM(t.b),k=new XM(t.b),m=new XM(t.b),S=epL(t,0);S.b!=S.d.c;)for(_=Pp(Vv(S),11),s=new fz(_.g);s.a0,g=_.g.c.length>0,c&&g?d.c[d.c.length]=_:c?b.c[b.c.length]=_:g&&(w.c[w.c.length]=_);for(p=new fz(b);p.aefT(Jh(y.d,x),Jh(y.d,y.a))&&(a.c[a.c.length]=y);for(n.c=Je(e1R,eUp,1,0,5,1),w=new fz(a);w.a1)for(p=new AF((e.a||(e.a=new FQ(e5v,e,6,6)),e.a));p.e!=p.i.gc();)ey_(p);for(o=Pp(etj((e.a||(e.a=new FQ(e5v,e,6,6)),e.a),0),202),m=A,A>_+w?m=_+w:A<_-w&&(m=_-w),g=L,L>E+b?g=E+b:L_-w&&m<_+w&&g>E-b&&gA+O?k=A+O:_L+S?x=L+S:EA-O&&kL-S&&xn&&(d=n-1),(h=P+eMU(t,24)*e$h*f-f/2)<0?h=1:h>r&&(h=r-1),i=(yT(),u=new oJ),ent(i,d),enn(i,h),JL((o.a||(o.a=new O_(e5h,o,5)),o.a),i)}function eBy(){eBy=A,tox=(eBB(),th7),toT=tpe,toM=tpt,toO=tpn,toL=tpr,toC=tpi,toN=tpo,toR=tpu,toj=tpc,toP=tps,toF=tpl,toB=tpf,toH=tpp,toD=tpa,tok=(eBH(),tih),toA=tip,toI=tib,toY=tim,tov=new T2(th4,ell(0)),toy=til,tow=tif,to_=tid,toQ=tiB,toG=tiy,toW=tiE,toq=tiL,toK=tix,toV=tiM,to0=tiG,to1=tiH,toX=tiR,toZ=tiN,toJ=tiF,ta0=tit,ta2=tin,taE=trE,taS=trx,toe=new T3(12),ta7=new T2(thN,toe),tav=(efE(),tpx),tag=new T2(tha,tav),toc=new T2(thK,0),toE=new T2(th6,ell(1)),tiX=new T2(td2,eGt),ta9=thI,tol=thV,tob=th0,tac=td7,tiq=td1,taM=thl,toS=new T2(th9,(OQ(),!0)),taI=thh,taD=thp,ta4=thx,ta8=thL,ta6=thM,tad=(ec3(),tpv),tal=new T2(the,tad),taZ=thS,taq=th_,toh=thJ,tod=thX,top=th1,tor=(epT(),tbr),new T2(thB,tor),toa=th$,too=thz,tos=thG,toi=thH,toz=tiv,taG=trZ,taz=trV,to$=tig,taY=trB,tau=trs,tas=tra,ti7=tn1,tae=tn0,tan=tn5,tat=tn2,tao=trr,taK=trJ,taV=trQ,taP=trD,ta3=tio,taJ=tr3,tax=trO,ta1=tr7,taw=trg,ta_=trw,ti9=td8,taX=tr1,ti0=tn$,ti1=tnU,tiQ=tnB,taA=trC,taO=trL,taL=trI,ta5=thO,taR=thg,tak=ths,tab=thr,tap=thn,tar=tn7,tof=thZ,tiJ=td5,taC=thd,tou=thW,tot=thR,ton=thF,taU=tr$,taH=trG,tog=th3,tiZ=tnY,ta$=trK,tam=trh,tah=trf,taW=thy,taj=trj,taQ=tr5,toU=tpd,taf=trc,tom=tiu,tay=trb,taF=trY,tai=trt,taN=thm,taB=trH,taa=trn,ti8=tnJ,ti6=tnq,ti3=tnK,ti4=tnV,ti5=tnX,ti2=tnG,taT=trA}function eBw(e,t){var n,r,i,a,o,s,u,c,l,f,d,h,p,b,m,g,v,y,w,_,E,S,k,x,T,M,O,A;if(ePN(),k=e.e,p=e.d,i=e.a,0==k)switch(t){case 0:return"0";case 1:return e$e;case 2:return"0.00";case 3:return"0.000";case 4:return"0.0000";case 5:return"0.00000";case 6:return"0.000000";default:return E=new vc,t<0?(E.a+="0E+",E):(E.a+="0E",E),E.a+=-t,E.a}if(w=Je(tyw,eHl,25,(y=10*p+1+7)+1,15,1),n=y,1==p){if((s=i[0])<0){A=WM(s,eH9);do b=A,A=eyt(A,10),w[--n]=48+jE(efe(b,efn(A,10)))&eHd;while(0!=ecd(A,0))}else{A=s;do b=A,A=A/10|0,w[--n]=48+(b-10*A)&eHd;while(0!=A)}}else{T=Je(ty_,eHT,25,p,15,1),ePD(i,0,T,0,O=p);I:for(;;){for(S=0,c=O-1;c>=0;c--)g=ewT(M=eft(Fg(S,32),WM(T[c],eH9))),T[c]=jE(g),S=jE(Fv(g,32));v=jE(S),m=n;do w[--n]=48+v%10&eHd;while(0!=(v=v/10|0)&&0!=n)for(u=0,r=9-m+n;u0;u++)w[--n]=48;for(f=O-1;0==T[f];f--)if(0==f)break I;O=f+1}for(;48==w[n];)++n}if(h=k<0,o=y-n-t-1,0==t)return h&&(w[--n]=45),ehv(w,n,y-n);if(t>0&&o>=-6){if(o>=0){for(l=n+o,d=y-1;d>=l;d--)w[d+1]=w[d];return w[++l]=46,h&&(w[--n]=45),ehv(w,n,y-n+1)}for(f=2;f<-o+1;f++)w[--n]=48;return w[--n]=46,w[--n]=48,h&&(w[--n]=45),ehv(w,n,y-n)}return x=n+1,a=y,_=new vl,h&&(_.a+="-"),a-x>=1?(Bd(_,w[n]),_.a+=".",_.a+=ehv(w,n+1,y-n-1)):_.a+=ehv(w,n,y-n),_.a+="E",o>0&&(_.a+="+"),_.a+=""+o,_.a}function eB_(e,t){var n,r,i,a,o,s,u,c,l,f,d,h,p,b,m,g,v,y,w,_,E;switch(e.c=t,e.g=new p2,n=(_q(),new gM(e.c)),efJ(r=new dp(n)),y=Lq(eT9(e.c,(e_L(),tfD))),u=Pp(eT9(e.c,tfP),316),_=Pp(eT9(e.c,tfR),429),o=Pp(eT9(e.c,tfO),482),w=Pp(eT9(e.c,tfN),430),e.j=gP(LV(eT9(e.c,tfj))),s=e.a,u.g){case 0:s=e.a;break;case 1:s=e.b;break;case 2:s=e.i;break;case 3:s=e.e;break;case 4:s=e.f;break;default:throw p7(new gL(eqN+(null!=u.f?u.f:""+u.g)))}if(e.d=new zM(s,_,o),eo3(e.d,(ei5(),e5F),LK(eT9(e.c,tfL))),e.d.c=gN(LK(eT9(e.c,tfA))),0==H9(e.c).i)return e.d;for(f=new Ow(H9(e.c));f.e!=f.i.gc();){for(h=(l=Pp(epH(f),33)).g/2,d=l.f/2,E=new kl(l.i+h,l.j+d);F8(e.g,E);)Lu(E,(eB4.Math.random()-.5)*ez9,(eB4.Math.random()-.5)*ez9);b=Pp(eT9(l,(eBB(),thy)),142),m=new Gd(E,new Hr(E.a-h-e.j/2-b.b,E.b-d-e.j/2-b.d,l.g+e.j+(b.b+b.c),l.f+e.j+(b.d+b.a))),P_(e.d.i,m),Um(e.g,E,new kD(m,l))}switch(w.g){case 0:if(null==y)e.d.d=Pp(RJ(e.d.i,0),65);else for(v=new fz(e.d.i);v.a1&&qQ(l,g,l.c.b,l.c),etu(i)));g=v}return l}function eBS(e,t,n){var r,i,a,o,s,u,c,l,f,d,h,p,b,m,g,v,y,w,_,E,S,k,x,T,M,O,A,L,C,I,D;for(ewG(n,"Greedy cycle removal",1),D=(y=t.a).c.length,e.a=Je(ty_,eHT,25,D,15,1),e.c=Je(ty_,eHT,25,D,15,1),e.b=Je(ty_,eHT,25,D,15,1),c=0,g=new fz(y);g.a0?O+1:1);for(o=new fz(E.g);o.a0?O+1:1)}0==e.c[c]?P7(e.e,b):0==e.a[c]&&P7(e.f,b),++c}for(p=-1,h=1,f=new p0,e.d=Pp(e_k(t,(eBU(),tnw)),230);D>0;){for(;0!=e.e.b;)L=Pp(PH(e.e),10),e.b[L.p]=p--,eIQ(e,L),--D;for(;0!=e.f.b;)C=Pp(PH(e.f),10),e.b[C.p]=h++,eIQ(e,C),--D;if(D>0){for(d=eHt,v=new fz(y);v.a=d&&(w>d&&(f.c=Je(e1R,eUp,1,0,5,1),d=w),f.c[f.c.length]=b);l=e.Zf(f),e.b[l.p]=h++,eIQ(e,l),--D}}for(c=0,A=y.c.length+1;ce.b[I]&&(eNF(r,!0),eo3(t,ttK,(OQ(),!0)));e.a=null,e.c=null,e.b=null,HC(e.f),HC(e.e),eEj(n)}function eBk(e,t){var n,r,i,a,o,s,u,c,l,f,d,h,p,b,m,g;for(r=new p0,s=new p0,m=t/2,h=e.gc(),i=Pp(e.Xb(0),8),g=Pp(e.Xb(1),8),p=eT6(i.a,i.b,g.a,g.b,m),P_(r,(GK(0,p.c.length),Pp(p.c[0],8))),P_(s,(GK(1,p.c.length),Pp(p.c[1],8))),c=2;c=0;u--)P7(n,(GK(u,o.c.length),Pp(o.c[u],8)));return n}function eBx(e){var t,n,r,i,a,o,s,u,c,l,f,d,h;if(o=!0,f=null,r=null,i=null,t=!1,h=tmH,c=null,a=null,(u=epm(e,s=0,tmJ,tmQ))=0&&IE(e.substr(s,2),"//")?(s+=2,u=epm(e,s,tm1,tm0),r=e.substr(s,u-s),s=u):null!=f&&(s==e.length||(GV(s,e.length),47!=e.charCodeAt(s)))&&(o=!1,-1==(u=O7(e,e_n(35),s))&&(u=e.length),r=e.substr(s,u-s),s=u);if(!n&&s0&&58==UI(l,l.length-1)&&(i=l,s=u)),s=e.j){e.a=-1,e.c=1;return}if(t=UI(e.i,e.d++),e.a=t,1==e.b){switch(t){case 92:if(r=10,e.d>=e.j)throw p7(new gX(eBJ((Mo(),eXZ))));e.a=UI(e.i,e.d++);break;case 45:(512&e.e)==512&&e.d=e.j||63!=UI(e.i,e.d))break;if(++e.d>=e.j)throw p7(new gX(eBJ((Mo(),eXX))));switch(t=UI(e.i,e.d++)){case 58:r=13;break;case 61:r=14;break;case 33:r=15;break;case 91:r=19;break;case 62:r=18;break;case 60:if(e.d>=e.j)throw p7(new gX(eBJ((Mo(),eXX))));if(61==(t=UI(e.i,e.d++)))r=16;else if(33==t)r=17;else throw p7(new gX(eBJ((Mo(),eXJ))));break;case 35:for(;e.d=e.j)throw p7(new gX(eBJ((Mo(),eXZ))));e.a=UI(e.i,e.d++);break;default:r=0}e.c=r}function eBO(e){var t,n,r,i,a,o,s,u,l,f,d,h,p,b,m,g,v,y,w,_,E,S,k,x,T,M,O,A;if((k=Pp(e_k(e,(eBy(),tol)),98))!=(ewf(),tbc)&&k!=tbl){for(p=(b=e.b).c.length,f=new XM((enG(p+2,eU5),ee1(eft(eft(5,p+2),(p+2)/10|0)))),m=new XM((enG(p+2,eU5),ee1(eft(eft(5,p+2),(p+2)/10|0)))),P_(f,new p2),P_(f,new p2),P_(m,new p0),P_(m,new p0),S=new p0,t=0;t=E||!ehf(v,r))&&(r=GY(t,f)),Gu(v,r),a=new Fa(OH(efu(v).a.Kc(),new c));eTk(a);)i=Pp(ZC(a),17),!e.a[i.p]&&(m=i.c.i,--e.e[m.p],0==e.e[m.p]&&Ja(e_s(p,m)));for(l=f.c.length-1;l>=0;--l)P_(t.b,(GK(l,f.c.length),Pp(f.c[l],29)));t.a.c=Je(e1R,eUp,1,0,5,1),eEj(n)}function eBL(e){var t,n,r,i,a,o,s,u,c;for(e.b=1,eBM(e),t=null,0==e.c&&94==e.a?(eBM(e),t=(eBG(),eBG(),++tyv,new WZ(4)),eLw(t,0,e1f),s=(++tyv,new WZ(4))):s=(eBG(),eBG(),++tyv,new WZ(4)),i=!0;1!=(c=e.c);){if(0==c&&93==e.a&&!i){t&&(ej0(t,s),s=t);break}if(n=e.a,r=!1,10==c)switch(n){case 100:case 68:case 119:case 87:case 115:case 83:ePR(s,eDu(n)),r=!0;break;case 105:case 73:case 99:case 67:(n=(ePR(s,eDu(n)),-1))<0&&(r=!0);break;case 112:case 80:if(!(u=ext(e,n)))throw p7(new gX(eBJ((Mo(),eJe))));ePR(s,u),r=!0;break;default:n=eCn(e)}else if(24==c&&!i){if(t&&(ej0(t,s),s=t),a=eBL(e),ej0(s,a),0!=e.c||93!=e.a)throw p7(new gX(eBJ((Mo(),eJi))));break}if(eBM(e),!r){if(0==c){if(91==n)throw p7(new gX(eBJ((Mo(),eJa))));if(93==n)throw p7(new gX(eBJ((Mo(),eJo))));if(45==n&&!i&&93!=e.a)throw p7(new gX(eBJ((Mo(),eJs))))}if(0!=e.c||45!=e.a||45==n&&i)eLw(s,n,n);else{if(eBM(e),1==(c=e.c))throw p7(new gX(eBJ((Mo(),eJn))));if(0==c&&93==e.a)eLw(s,n,n),eLw(s,45,45);else if(0==c&&93==e.a||24==c)throw p7(new gX(eBJ((Mo(),eJs))));else{if(o=e.a,0==c){if(91==o)throw p7(new gX(eBJ((Mo(),eJa))));if(93==o)throw p7(new gX(eBJ((Mo(),eJo))));if(45==o)throw p7(new gX(eBJ((Mo(),eJs))))}else 10==c&&(o=eCn(e));if(eBM(e),n>o)throw p7(new gX(eBJ((Mo(),eJl))));eLw(s,n,o)}}}i=!1}if(1==e.c)throw p7(new gX(eBJ((Mo(),eJn))));return eMS(s),eRo(s),e.b=0,eBM(e),s}function eBC(e){eMV(e.c,eJ7,eow(vx(e17,1),eUP,2,6,[eQd,"http://www.w3.org/2001/XMLSchema#decimal"])),eMV(e.d,eJ7,eow(vx(e17,1),eUP,2,6,[eQd,"http://www.w3.org/2001/XMLSchema#integer"])),eMV(e.e,eJ7,eow(vx(e17,1),eUP,2,6,[eQd,"http://www.w3.org/2001/XMLSchema#boolean"])),eMV(e.f,eJ7,eow(vx(e17,1),eUP,2,6,[eQd,"EBoolean",eXP,"EBoolean:Object"])),eMV(e.i,eJ7,eow(vx(e17,1),eUP,2,6,[eQd,"http://www.w3.org/2001/XMLSchema#byte"])),eMV(e.g,eJ7,eow(vx(e17,1),eUP,2,6,[eQd,"http://www.w3.org/2001/XMLSchema#hexBinary"])),eMV(e.j,eJ7,eow(vx(e17,1),eUP,2,6,[eQd,"EByte",eXP,"EByte:Object"])),eMV(e.n,eJ7,eow(vx(e17,1),eUP,2,6,[eQd,"EChar",eXP,"EChar:Object"])),eMV(e.t,eJ7,eow(vx(e17,1),eUP,2,6,[eQd,"http://www.w3.org/2001/XMLSchema#double"])),eMV(e.u,eJ7,eow(vx(e17,1),eUP,2,6,[eQd,"EDouble",eXP,"EDouble:Object"])),eMV(e.F,eJ7,eow(vx(e17,1),eUP,2,6,[eQd,"http://www.w3.org/2001/XMLSchema#float"])),eMV(e.G,eJ7,eow(vx(e17,1),eUP,2,6,[eQd,"EFloat",eXP,"EFloat:Object"])),eMV(e.I,eJ7,eow(vx(e17,1),eUP,2,6,[eQd,"http://www.w3.org/2001/XMLSchema#int"])),eMV(e.J,eJ7,eow(vx(e17,1),eUP,2,6,[eQd,"EInt",eXP,"EInt:Object"])),eMV(e.N,eJ7,eow(vx(e17,1),eUP,2,6,[eQd,"http://www.w3.org/2001/XMLSchema#long"])),eMV(e.O,eJ7,eow(vx(e17,1),eUP,2,6,[eQd,"ELong",eXP,"ELong:Object"])),eMV(e.Z,eJ7,eow(vx(e17,1),eUP,2,6,[eQd,"http://www.w3.org/2001/XMLSchema#short"])),eMV(e.$,eJ7,eow(vx(e17,1),eUP,2,6,[eQd,"EShort",eXP,"EShort:Object"])),eMV(e._,eJ7,eow(vx(e17,1),eUP,2,6,[eQd,"http://www.w3.org/2001/XMLSchema#string"]))}function eBI(e){var t,n,r,i,a,o,s,u,c,l,f,d,h,p,b,m,g,v,y,w,_,E,S,k,x,T,M,O;if(1==e.c.length)return GK(0,e.c.length),Pp(e.c[0],135);if(e.c.length<=0)return new Xn;for(u=new fz(e);u.af&&(M=0,O+=l+S,l=0),eOd(_,o,M,O),t=eB4.Math.max(t,M+E.a),l=eB4.Math.max(l,E.b),M+=E.a+S;for(w=new p2,n=new p2,x=new fz(e);x.aeMg(a))&&(f=a);for(f||(f=(GK(0,m.c.length),Pp(m.c[0],180))),b=new fz(t.b);b.a=-1900?1:0,n>=4?xM(e,eow(vx(e17,1),eUP,2,6,[eHM,eHO])[s]):xM(e,eow(vx(e17,1),eUP,2,6,["BC","AD"])[s]);break;case 121:epA(e,n,r);break;case 77:eIZ(e,n,r);break;case 107:0==(u=i.q.getHours())?eeE(e,24,n):eeE(e,u,n);break;case 83:eOT(e,n,i);break;case 69:l=r.q.getDay(),5==n?xM(e,eow(vx(e17,1),eUP,2,6,["S","M","T","W","T","F","S"])[l]):4==n?xM(e,eow(vx(e17,1),eUP,2,6,[eHA,eHL,eHC,eHI,eHD,eHN,eHP])[l]):xM(e,eow(vx(e17,1),eUP,2,6,["Sun","Mon","Tue","Wed","Thu","Fri","Sat"])[l]);break;case 97:i.q.getHours()>=12&&24>i.q.getHours()?xM(e,eow(vx(e17,1),eUP,2,6,["AM","PM"])[1]):xM(e,eow(vx(e17,1),eUP,2,6,["AM","PM"])[0]);break;case 104:0==(f=i.q.getHours()%12)?eeE(e,12,n):eeE(e,f,n);break;case 75:eeE(e,d=i.q.getHours()%12,n);break;case 72:eeE(e,h=i.q.getHours(),n);break;case 99:p=r.q.getDay(),5==n?xM(e,eow(vx(e17,1),eUP,2,6,["S","M","T","W","T","F","S"])[p]):4==n?xM(e,eow(vx(e17,1),eUP,2,6,[eHA,eHL,eHC,eHI,eHD,eHN,eHP])[p]):3==n?xM(e,eow(vx(e17,1),eUP,2,6,["Sun","Mon","Tue","Wed","Thu","Fri","Sat"])[p]):eeE(e,p,1);break;case 76:b=r.q.getMonth(),5==n?xM(e,eow(vx(e17,1),eUP,2,6,["J","F","M","A","M","J","J","A","S","O","N","D"])[b]):4==n?xM(e,eow(vx(e17,1),eUP,2,6,[eHh,eHp,eHb,eHm,eHg,eHv,eHy,eHw,eH_,eHE,eHS,eHk])[b]):3==n?xM(e,eow(vx(e17,1),eUP,2,6,["Jan","Feb","Mar","Apr",eHg,"Jun","Jul","Aug","Sep","Oct","Nov","Dec"])[b]):eeE(e,b+1,n);break;case 81:m=r.q.getMonth()/3|0,n<4?xM(e,eow(vx(e17,1),eUP,2,6,["Q1","Q2","Q3","Q4"])[m]):xM(e,eow(vx(e17,1),eUP,2,6,["1st quarter","2nd quarter","3rd quarter","4th quarter"])[m]);break;case 100:eeE(e,g=r.q.getDate(),n);break;case 109:eeE(e,c=i.q.getMinutes(),n);break;case 115:eeE(e,o=i.q.getSeconds(),n);break;case 122:n<4?xM(e,a.c[0]):xM(e,a.c[1]);break;case 118:xM(e,a.b);break;case 90:n<3?xM(e,ekA(a)):3==n?xM(e,ek$(a)):xM(e,ekz(a.a));break;default:return!1}return!0}function eBF(e,t,n,r){var i,a,o,s,u,c,l,f,d,h,p,b,m,g,v,y,w,_,E,S,k,x,T,M,O,A;if(eIi(t),u=Pp(etj((t.b||(t.b=new Ih(e5m,t,4,7)),t.b),0),82),l=Pp(etj((t.c||(t.c=new Ih(e5m,t,5,8)),t.c),0),82),s=ewH(u),c=ewH(l),o=0==(t.a||(t.a=new FQ(e5v,t,6,6)),t.a).i?null:Pp(etj((t.a||(t.a=new FQ(e5v,t,6,6)),t.a),0),202),S=Pp(Bp(e.a,s),10),M=Pp(Bp(e.a,c),10),k=null,O=null,M4(u,186)&&(M4(E=Pp(Bp(e.a,u),299),11)?k=Pp(E,11):M4(E,10)&&(S=Pp(E,10),k=Pp(RJ(S.j,0),11))),M4(l,186)&&(M4(T=Pp(Bp(e.a,l),299),11)?O=Pp(T,11):M4(T,10)&&(M=Pp(T,10),O=Pp(RJ(M.j,0),11))),!S||!M)throw p7(new gZ("The source or the target of edge "+t+" could not be found. This usually happens when an edge connects a node laid out by ELK Layered to a node in another level of hierarchy laid out by either another instance of ELK Layered or another layout algorithm alltogether. The former can be solved by setting the hierarchyHandling option to INCLUDE_CHILDREN."));for(b=new $b,eaW(b,t),eo3(b,(eBU(),tnc),t),eo3(b,(eBy(),taR),null),h=Pp(e_k(r,tt3),21),S==M&&h.Fc((eLR(),ttT)),k||(_=(enY(),tsN),x=null,o&&TM(Pp(e_k(S,tol),98))&&(V2(x=new kl(o.j,o.k),zF(t)),qZ(x,n),etg(c,s)&&(_=tsD,C6(x,S.n))),k=ePH(S,x,_,r)),O||(_=(enY(),tsD),A=null,o&&TM(Pp(e_k(M,tol),98))&&(V2(A=new kl(o.b,o.c),zF(t)),qZ(A,n)),O=ePH(M,A,_,Bq(M))),Gs(b,k),Go(b,O),(k.e.c.length>1||k.g.c.length>1||O.e.c.length>1||O.g.c.length>1)&&h.Fc((eLR(),tt_)),d=new Ow((t.n||(t.n=new FQ(e5S,t,1,7)),t.n));d.e!=d.i.gc();)if(f=Pp(epH(d),137),!gN(LK(eT9(f,ta9)))&&f.a)switch(m=eca(f),P_(b.b,m),Pp(e_k(m,tab),272).g){case 1:case 2:h.Fc((eLR(),tty));break;case 0:h.Fc((eLR(),ttg)),eo3(m,tab,(etT(),tp_))}if(a=Pp(e_k(r,tas),314),g=Pp(e_k(r,ta3),315),i=a==(en7(),teR)||g==(ebG(),tsd),o&&0!=(o.a||(o.a=new O_(e5h,o,5)),o.a).i&&i){for(v=eEF(o),p=new mE,w=epL(v,0);w.b!=w.d.c;)y=Pp(Vv(w),8),P7(p,new TS(y));eo3(b,tnl,p)}return b}function eBY(e){e.gb||(e.gb=!0,e.b=eak(e,0),er5(e.b,18),er8(e.b,19),e.a=eak(e,1),er5(e.a,1),er8(e.a,2),er8(e.a,3),er8(e.a,4),er8(e.a,5),e.o=eak(e,2),er5(e.o,8),er5(e.o,9),er8(e.o,10),er8(e.o,11),er8(e.o,12),er8(e.o,13),er8(e.o,14),er8(e.o,15),er8(e.o,16),er8(e.o,17),er8(e.o,18),er8(e.o,19),er8(e.o,20),er8(e.o,21),er8(e.o,22),er8(e.o,23),ee8(e.o),ee8(e.o),ee8(e.o),ee8(e.o),ee8(e.o),ee8(e.o),ee8(e.o),ee8(e.o),ee8(e.o),ee8(e.o),e.p=eak(e,3),er5(e.p,2),er5(e.p,3),er5(e.p,4),er5(e.p,5),er8(e.p,6),er8(e.p,7),ee8(e.p),ee8(e.p),e.q=eak(e,4),er5(e.q,8),e.v=eak(e,5),er8(e.v,9),ee8(e.v),ee8(e.v),ee8(e.v),e.w=eak(e,6),er5(e.w,2),er5(e.w,3),er5(e.w,4),er8(e.w,5),e.B=eak(e,7),er8(e.B,1),ee8(e.B),ee8(e.B),ee8(e.B),e.Q=eak(e,8),er8(e.Q,0),ee8(e.Q),e.R=eak(e,9),er5(e.R,1),e.S=eak(e,10),ee8(e.S),ee8(e.S),ee8(e.S),ee8(e.S),ee8(e.S),ee8(e.S),ee8(e.S),ee8(e.S),ee8(e.S),ee8(e.S),ee8(e.S),ee8(e.S),ee8(e.S),ee8(e.S),ee8(e.S),e.T=eak(e,11),er8(e.T,10),er8(e.T,11),er8(e.T,12),er8(e.T,13),er8(e.T,14),ee8(e.T),ee8(e.T),e.U=eak(e,12),er5(e.U,2),er5(e.U,3),er8(e.U,4),er8(e.U,5),er8(e.U,6),er8(e.U,7),ee8(e.U),e.V=eak(e,13),er8(e.V,10),e.W=eak(e,14),er5(e.W,18),er5(e.W,19),er5(e.W,20),er8(e.W,21),er8(e.W,22),er8(e.W,23),e.bb=eak(e,15),er5(e.bb,10),er5(e.bb,11),er5(e.bb,12),er5(e.bb,13),er5(e.bb,14),er5(e.bb,15),er5(e.bb,16),er8(e.bb,17),ee8(e.bb),ee8(e.bb),e.eb=eak(e,16),er5(e.eb,2),er5(e.eb,3),er5(e.eb,4),er5(e.eb,5),er5(e.eb,6),er5(e.eb,7),er8(e.eb,8),er8(e.eb,9),e.ab=eak(e,17),er5(e.ab,0),er5(e.ab,1),e.H=eak(e,18),er8(e.H,0),er8(e.H,1),er8(e.H,2),er8(e.H,3),er8(e.H,4),er8(e.H,5),ee8(e.H),e.db=eak(e,19),er8(e.db,2),e.c=eax(e,20),e.d=eax(e,21),e.e=eax(e,22),e.f=eax(e,23),e.i=eax(e,24),e.g=eax(e,25),e.j=eax(e,26),e.k=eax(e,27),e.n=eax(e,28),e.r=eax(e,29),e.s=eax(e,30),e.t=eax(e,31),e.u=eax(e,32),e.fb=eax(e,33),e.A=eax(e,34),e.C=eax(e,35),e.D=eax(e,36),e.F=eax(e,37),e.G=eax(e,38),e.I=eax(e,39),e.J=eax(e,40),e.L=eax(e,41),e.M=eax(e,42),e.N=eax(e,43),e.O=eax(e,44),e.P=eax(e,45),e.X=eax(e,46),e.Y=eax(e,47),e.Z=eax(e,48),e.$=eax(e,49),e._=eax(e,50),e.cb=eax(e,51),e.K=eax(e,52))}function eBB(){var e,t;eBB=A,tdQ=new pO(eZi),th5=new pO(eZa),td0=(ebx(),tdM),td1=new xX(eVi,td0),new pQ,td2=new xX(ezG,null),td3=new pO(eZo),td9=(eyY(),jL(tdX,eow(vx(e64,1),eU4,291,0,[tdK]))),td8=new xX(eVg,td9),td7=new xX(eVr,(OQ(),!1)),tht=(ec3(),tpv),the=new xX(eVu,tht),tho=(efE(),tpO),tha=new xX(eKB,tho),thc=new xX(eqC,!1),thf=(eck(),tpG),thl=new xX(eKP,thf),thP=new T3(12),thN=new xX(ezW,thP),thb=new xX(eGu,!1),thm=new xX(eVA,!1),thD=new xX(eGf,!1),thq=(ewf(),tbl),thV=new xX(eGc,thq),th3=new pO(eVT),th4=new pO(eGr),th6=new pO(eGo),th9=new pO(eGs),thv=new mE,thg=new xX(eVv,thv),td5=new xX(eV_,!1),thd=new xX(eVE,!1),new pO(eZs),thw=new mh,thy=new xX(eVM,thw),thI=new xX(eVt,!1),new pQ,th8=new xX(eZu,1),new xX(eZc,!0),ell(0),new xX(eZl,ell(100)),new xX(eZf,!1),ell(0),new xX(eZd,ell(4e3)),ell(0),new xX(eZh,ell(400)),new xX(eZp,!1),new xX(eZb,!1),new xX(eZm,!0),new xX(eZg,!1),td6=(edM(),tme),td4=new xX(eZr,td6),th7=new xX(eKQ,10),tpe=new xX(eK1,10),tpt=new xX(ez$,20),tpn=new xX(eK0,10),tpr=new xX(eGa,2),tpi=new xX(eK2,10),tpo=new xX(eK3,0),tps=new xX(eK5,5),tpu=new xX(eK4,1),tpc=new xX(eK6,1),tpl=new xX(eGi,20),tpf=new xX(eK8,10),tpp=new xX(eK9,10),tpa=new pO(eK7),tph=new T_,tpd=new xX(eVO,tph),thF=new pO(eVx),thj=!1,thR=new xX(eVk,thj),thE=new T3(5),th_=new xX(eVc,thE),thk=(eT7(),t=Pp(yw(e5t),9),new I1(t,Pp(CY(t,t.length),9),0)),thS=new xX(eGp,thk),thU=(epT(),tbt),thB=new xX(eVd,thU),th$=new pO(eVh),thz=new pO(eVp),thG=new pO(eVb),thH=new pO(eVm),thT=(e=Pp(yw(e5o),9),new I1(e,Pp(CY(e,e.length),9),0)),thx=new xX(eGh,thT),thC=el8((eI3(),tbQ)),thL=new xX(eGd,thC),thA=new kl(0,0),thO=new xX(eGM,thA),thM=new xX(eVs,!1),thi=(etT(),tp_),thr=new xX(eVy,thi),thn=new xX(eGl,!1),new pO(eZv),ell(1),new xX(eZy,null),thW=new pO(eVS),thZ=new pO(eVw),th2=(eYu(),tbF),th0=new xX(eVn,th2),thK=new pO(eVe),thQ=(ekU(),el8(tbm)),thJ=new xX(eGb,thQ),thX=new xX(eVl,!1),th1=new xX(eVf,!0),thh=new xX(eVa,!1),thp=new xX(eVo,!1),ths=new xX(ezz,1),thu=(e_a(),tpN),new xX(eZw,thu),thY=!0}function eBU(){var e,t;eBU=A,tnc=new pO(eGm),ttz=new pO("coordinateOrigin"),tny=new pO("processors"),tt$=new Cm("compoundNode",(OQ(),!1)),tt5=new Cm("insideConnections",!1),tnl=new pO("originalBendpoints"),tnf=new pO("originalDummyNodePosition"),tnd=new pO("originalLabelEdge"),tn_=new pO("representedLabels"),ttq=new pO("endLabels"),ttZ=new pO("endLabel.origin"),tnt=new Cm("labelSide",(egF(),tpX)),tns=new Cm("maxEdgeThickness",0),tnE=new Cm("reversed",!1),tnw=new pO(eGg),tni=new Cm("longEdgeSource",null),tna=new Cm("longEdgeTarget",null),tnr=new Cm("longEdgeHasLabelDummies",!1),tnn=new Cm("longEdgeBeforeLabelDummy",!1),ttV=new Cm("edgeConstraint",(eoG(),te1)),tt9=new pO("inLayerLayoutUnit"),tt8=new Cm("inLayerConstraint",(Q1(),ttD)),tt7=new Cm("inLayerSuccessorConstraint",new p0),tne=new Cm("inLayerSuccessorConstraintBetweenNonDummies",!1),tng=new pO("portDummy"),ttG=new Cm("crossingHint",ell(0)),tt3=new Cm("graphProperties",(t=Pp(yw(e44),9),new I1(t,Pp(CY(t,t.length),9),0))),tt1=new Cm("externalPortSide",(eYu(),tbF)),tt0=new Cm("externalPortSize",new yb),ttJ=new pO("externalPortReplacedDummies"),ttQ=new pO("externalPortReplacedDummy"),ttX=new Cm("externalPortConnections",(e=Pp(yw(e5a),9),new I1(e,Pp(CY(e,e.length),9),0))),tnv=new Cm(ezf,0),ttY=new pO("barycenterAssociates"),tnI=new pO("TopSideComments"),ttB=new pO("BottomSideComments"),ttH=new pO("CommentConnectionPort"),tt6=new Cm("inputCollect",!1),tnb=new Cm("outputCollect",!1),ttK=new Cm("cyclic",!1),ttW=new pO("crossHierarchyMap"),tnC=new pO("targetOffset"),new Cm("splineLabelSize",new yb),tnx=new pO("spacings"),tnm=new Cm("partitionConstraint",!1),ttU=new pO("breakingPoint.info"),tnA=new pO("splines.survivingEdge"),tnO=new pO("splines.route.start"),tnT=new pO("splines.edgeChain"),tnp=new pO("originalPortConstraints"),tnk=new pO("selfLoopHolder"),tnM=new pO("splines.nsPortY"),tnu=new pO("modelOrder"),tno=new pO("longEdgeTargetNode"),tt2=new Cm(eW_,!1),tnS=new Cm(eW_,!1),tt4=new pO("layerConstraints.hiddenNodes"),tnh=new pO("layerConstraints.opposidePort"),tnL=new pO("targetNode.modelOrder")}function eBH(){eBH=A,trl=(eeF(),teZ),trc=new xX(eWE,trl),trO=new xX(eWS,(OQ(),!1)),trN=(K5(),ttR),trD=new xX(eWk,trN),trJ=new xX(eWx,!1),trQ=new xX(eWT,!0),tnY=new xX(eWM,!1),tic=(Q0(),tsL),tiu=new xX(eWO,tic),ell(1),tig=new xX(eWA,ell(7)),tiv=new xX(eWL,!1),trA=new xX(eWC,!1),tru=(eb5(),teG),trs=new xX(eWI,tru),trX=(ewY(),to7),trZ=new xX(eWD,trX),trU=(ef_(),tnj),trB=new xX(eWN,trU),ell(-1),trY=new xX(eWP,ell(-1)),ell(-1),trH=new xX(eWR,ell(-1)),ell(-1),tr$=new xX(eWj,ell(4)),ell(-1),trG=new xX(eWF,ell(2)),trq=(eOJ(),tsS),trV=new xX(eWY,trq),ell(0),trK=new xX(eWB,ell(0)),trj=new xX(eWU,ell(eUu)),tro=(en7(),tej),tra=new xX(eWH,tro),tn1=new xX(eW$,!1),tn7=new xX(eWz,.1),trr=new xX(eWG,!1),ell(-1),trt=new xX(eWW,ell(-1)),ell(-1),trn=new xX(eWK,ell(-1)),ell(0),tn0=new xX(eWV,ell(40)),tn8=(eaU(),ttL),tn5=new xX(eWq,tn8),tn3=ttO,tn2=new xX(eWZ,tn3),tis=(ebG(),tsf),tio=new xX(eWX,tis),tr5=new pO(eWJ),tr0=(Qx(),tte),tr1=new xX(eWQ,tr0),tr4=(eyd(),tto),tr3=new xX(eW1,tr4),new pQ,tr7=new xX(eW0,.3),tit=new pO(eW2),tir=(ebk(),tsu),tin=new xX(eW3,tir),trv=(ei0(),tsF),trg=new xX(eW4,trv),tr_=(Xo(),tsH),trw=new xX(eW6,tr_),trS=(euy(),tsW),trE=new xX(eW5,trS),trx=new xX(eW8,.2),trb=new xX(eW9,2),tih=new xX(eW7,null),tib=new xX(eKe,10),tip=new xX(eKt,10),tim=new xX(eKn,20),ell(0),til=new xX(eKr,ell(0)),ell(0),tif=new xX(eKi,ell(0)),ell(0),tid=new xX(eKa,ell(0)),tnB=new xX(eKo,!1),tnz=(e_3(),ttp),tn$=new xX(eKs,tnz),tnH=(Jp(),teN),tnU=new xX(eKu,tnH),trC=new xX(eKc,!1),ell(0),trL=new xX(eKl,ell(16)),ell(0),trI=new xX(eKf,ell(5)),tiU=(eox(),tsQ),tiB=new xX(eKd,tiU),tiy=new xX(eKh,10),tiE=new xX(eKp,1),tiC=(enB(),teH),tiL=new xX(eKb,tiC),tix=new pO(eKm),tiO=ell(1),ell(0),tiM=new xX(eKg,tiO),tiW=(eiO(),tsV),tiG=new xX(eKv,tiW),tiH=new pO(eKy),tiR=new xX(eKw,!0),tiN=new xX(eK_,2),tiF=new xX(eKE,!0),trp=(eEf(),te8),trh=new xX(eKS,trp),trd=(eSg(),teO),trf=new xX(eKk,trd),tnQ=(esn(),tsM),tnJ=new xX(eKx,tnQ),tnX=new xX(eKT,!1),tnW=(ec4(),e9x),tnG=new xX(eKM,tnW),tnZ=(euJ(),tsn),tnq=new xX(eKO,tnZ),tnK=new xX(eKA,0),tnV=new xX(eKL,0),trR=teK,trP=teR,trz=to9,trW=to9,trF=to6,tre=(eck(),tpz),tri=tej,tn9=tej,tn4=tej,tn6=tpz,tr8=tsp,tr9=tsf,tr2=tsf,tr6=tsf,tie=tsh,tia=tsp,tii=tsp,trk=(efE(),tpM),trT=tpM,trM=tsW,trm=tpT,tiw=ts1,ti_=tsJ,tiS=ts1,tik=tsJ,tiI=ts1,tiD=tsJ,tiT=teU,tiA=teH,tiK=ts1,tiV=tsJ,ti$=ts1,tiz=tsJ,tij=tsJ,tiP=tsJ,tiY=tsJ}function eB$(){eB$=A,e96=new Eq("DIRECTION_PREPROCESSOR",0),e92=new Eq("COMMENT_PREPROCESSOR",1),e95=new Eq("EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER",2),e7d=new Eq("INTERACTIVE_EXTERNAL_PORT_POSITIONER",3),e7C=new Eq("PARTITION_PREPROCESSOR",4),e7m=new Eq("LABEL_DUMMY_INSERTER",5),e7j=new Eq("SELF_LOOP_PREPROCESSOR",6),e7_=new Eq("LAYER_CONSTRAINT_PREPROCESSOR",7),e7A=new Eq("PARTITION_MIDPROCESSOR",8),e7s=new Eq("HIGH_DEGREE_NODE_LAYER_PROCESSOR",9),e7x=new Eq("NODE_PROMOTION",10),e7w=new Eq("LAYER_CONSTRAINT_POSTPROCESSOR",11),e7L=new Eq("PARTITION_POSTPROCESSOR",12),e7r=new Eq("HIERARCHICAL_PORT_CONSTRAINT_PROCESSOR",13),e7Y=new Eq("SEMI_INTERACTIVE_CROSSMIN_PROCESSOR",14),e9Z=new Eq("BREAKING_POINT_INSERTER",15),e7k=new Eq("LONG_EDGE_SPLITTER",16),e7D=new Eq("PORT_SIDE_PROCESSOR",17),e7h=new Eq("INVERTED_PORT_PROCESSOR",18),e7I=new Eq("PORT_LIST_SORTER",19),e7U=new Eq("SORT_BY_INPUT_ORDER_OF_MODEL",20),e7M=new Eq("NORTH_SOUTH_PORT_PREPROCESSOR",21),e9X=new Eq("BREAKING_POINT_PROCESSOR",22),e7O=new Eq(eG7,23),e7H=new Eq(eWe,24),e7P=new Eq("SELF_LOOP_PORT_RESTORER",25),e7B=new Eq("SINGLE_EDGE_GRAPH_WRAPPER",26),e7p=new Eq("IN_LAYER_CONSTRAINT_PROCESSOR",27),e7e=new Eq("END_NODE_PORT_LABEL_MANAGEMENT_PROCESSOR",28),e7b=new Eq("LABEL_AND_NODE_SIZE_PROCESSOR",29),e7f=new Eq("INNERMOST_NODE_MARGIN_CALCULATOR",30),e7F=new Eq("SELF_LOOP_ROUTER",31),e91=new Eq("COMMENT_NODE_MARGIN_CALCULATOR",32),e99=new Eq("END_LABEL_PREPROCESSOR",33),e7v=new Eq("LABEL_DUMMY_SWITCHER",34),e9Q=new Eq("CENTER_LABEL_MANAGEMENT_PROCESSOR",35),e7y=new Eq("LABEL_SIDE_SELECTOR",36),e7c=new Eq("HYPEREDGE_DUMMY_MERGER",37),e7i=new Eq("HIERARCHICAL_PORT_DUMMY_SIZE_PROCESSOR",38),e7E=new Eq("LAYER_SIZE_AND_GRAPH_HEIGHT_CALCULATOR",39),e7o=new Eq("HIERARCHICAL_PORT_POSITION_PROCESSOR",40),e93=new Eq("CONSTRAINTS_POSTPROCESSOR",41),e90=new Eq("COMMENT_POSTPROCESSOR",42),e7l=new Eq("HYPERNODE_PROCESSOR",43),e7a=new Eq("HIERARCHICAL_PORT_ORTHOGONAL_EDGE_ROUTER",44),e7S=new Eq("LONG_EDGE_JOINER",45),e7R=new Eq("SELF_LOOP_POSTPROCESSOR",46),e9J=new Eq("BREAKING_POINT_REMOVER",47),e7T=new Eq("NORTH_SOUTH_PORT_POSTPROCESSOR",48),e7u=new Eq("HORIZONTAL_COMPACTOR",49),e7g=new Eq("LABEL_DUMMY_REMOVER",50),e7t=new Eq("FINAL_SPLINE_BENDPOINTS_CALCULATOR",51),e97=new Eq("END_LABEL_SORTER",52),e7N=new Eq("REVERSED_EDGE_RESTORER",53),e98=new Eq("END_LABEL_POSTPROCESSOR",54),e7n=new Eq("HIERARCHICAL_NODE_RESIZER",55),e94=new Eq("DIRECTION_POSTPROCESSOR",56)}function eBz(e,t,n){var r,i,a,o,s,u,c,l,f,d,h,p,b,m,g,v,y,w,_,E,S,k,x,T,M,O,A,L,C,I,D,N,P,R,j,F,Y,B,U,H,$,z,G,W,K,V,q,Z,X,J,Q,ee,et,en,er,ei,ea,eo;for(I=0,X=0,P=(A=t).length;I0&&(e.a[H.p]=X++)}for(D=0,en=0,R=(L=n).length;D0;){for(H=(A5(W.b>0),Pp(W.a.Xb(W.c=--W.b),11)),G=0,s=new fz(H.e);s.a0&&(H.j==(eYu(),tbw)?(e.a[H.p]=en,++en):(e.a[H.p]=en+j+Y,++Y))}en+=Y}for(C=0,z=new p2,p=new Tw,N=(O=t).length;Cc.b&&(c.b=K)):H.i.c==Z&&(Kc.c&&(c.c=K));for(Qe(b,0,b.length,null),et=Je(ty_,eHT,25,b.length,15,1),r=Je(ty_,eHT,25,en+1,15,1),g=0;g0;)S%2>0&&(i+=ea[S+1]),S=(S-1)/2|0,++ea[S];for(w=0,x=Je(e6g,eUp,362,2*b.length,0,1);w'?":IE(eXJ,e)?"'(?<' or '(? toIndex: ",e$M=", toIndex: ",e$O="Index: ",e$A=", Size: ",e$L="org.eclipse.elk.alg.common",e$C={62:1},e$I="org.eclipse.elk.alg.common.compaction",e$D="Scanline/EventHandler",e$N="org.eclipse.elk.alg.common.compaction.oned",e$P="CNode belongs to another CGroup.",e$R="ISpacingsHandler/1",e$j="The ",e$F=" instance has been finished already.",e$Y="The direction ",e$B=" is not supported by the CGraph instance.",e$U="OneDimensionalCompactor",e$H="OneDimensionalCompactor/lambda$0$Type",e$$="Quadruplet",e$z="ScanlineConstraintCalculator",e$G="ScanlineConstraintCalculator/ConstraintsScanlineHandler",e$W="ScanlineConstraintCalculator/ConstraintsScanlineHandler/lambda$0$Type",e$K="ScanlineConstraintCalculator/Timestamp",e$V="ScanlineConstraintCalculator/lambda$0$Type",e$q={169:1,45:1},e$Z="org.eclipse.elk.alg.common.compaction.options",e$X="org.eclipse.elk.core.data",e$J="org.eclipse.elk.polyomino.traversalStrategy",e$Q="org.eclipse.elk.polyomino.lowLevelSort",e$1="org.eclipse.elk.polyomino.highLevelSort",e$0="org.eclipse.elk.polyomino.fill",e$2={130:1},e$3="polyomino",e$4="org.eclipse.elk.alg.common.networksimplex",e$6={177:1,3:1,4:1},e$5="org.eclipse.elk.alg.common.nodespacing",e$8="org.eclipse.elk.alg.common.nodespacing.cellsystem",e$9="CENTER",e$7={212:1,326:1},eze={3:1,4:1,5:1,595:1},ezt="LEFT",ezn="RIGHT",ezr="Vertical alignment cannot be null",ezi="BOTTOM",eza="org.eclipse.elk.alg.common.nodespacing.internal",ezo="UNDEFINED",ezs=.01,ezu="org.eclipse.elk.alg.common.nodespacing.internal.algorithm",ezc="LabelPlacer/lambda$0$Type",ezl="LabelPlacer/lambda$1$Type",ezf="portRatioOrPosition",ezd="org.eclipse.elk.alg.common.overlaps",ezh="DOWN",ezp="org.eclipse.elk.alg.common.polyomino",ezb="NORTH",ezm="EAST",ezg="SOUTH",ezv="WEST",ezy="org.eclipse.elk.alg.common.polyomino.structures",ezw="Direction",ez_="Grid is only of size ",ezE=". Requested point (",ezS=") is out of bounds.",ezk=" Given center based coordinates were (",ezx="org.eclipse.elk.graph.properties",ezT="IPropertyHolder",ezM={3:1,94:1,134:1},ezO="org.eclipse.elk.alg.common.spore",ezA="org.eclipse.elk.alg.common.utils",ezL={209:1},ezC="org.eclipse.elk.core",ezI="Connected Components Compaction",ezD="org.eclipse.elk.alg.disco",ezN="org.eclipse.elk.alg.disco.graph",ezP="org.eclipse.elk.alg.disco.options",ezR="CompactionStrategy",ezj="org.eclipse.elk.disco.componentCompaction.strategy",ezF="org.eclipse.elk.disco.componentCompaction.componentLayoutAlgorithm",ezY="org.eclipse.elk.disco.debug.discoGraph",ezB="org.eclipse.elk.disco.debug.discoPolys",ezU="componentCompaction",ezH="org.eclipse.elk.disco",ez$="org.eclipse.elk.spacing.componentComponent",ezz="org.eclipse.elk.edge.thickness",ezG="org.eclipse.elk.aspectRatio",ezW="org.eclipse.elk.padding",ezK="org.eclipse.elk.alg.disco.transform",ezV=1.5707963267948966,ezq=17976931348623157e292,ezZ={3:1,4:1,5:1,192:1},ezX={3:1,6:1,4:1,5:1,106:1,120:1},ezJ="org.eclipse.elk.alg.force",ezQ="ComponentsProcessor",ez1="ComponentsProcessor/1",ez0="org.eclipse.elk.alg.force.graph",ez2="Component Layout",ez3="org.eclipse.elk.alg.force.model",ez4="org.eclipse.elk.force.model",ez6="org.eclipse.elk.force.iterations",ez5="org.eclipse.elk.force.repulsivePower",ez8="org.eclipse.elk.force.temperature",ez9=.001,ez7="org.eclipse.elk.force.repulsion",eGe="org.eclipse.elk.alg.force.options",eGt=1.600000023841858,eGn="org.eclipse.elk.force",eGr="org.eclipse.elk.priority",eGi="org.eclipse.elk.spacing.nodeNode",eGa="org.eclipse.elk.spacing.edgeLabel",eGo="org.eclipse.elk.randomSeed",eGs="org.eclipse.elk.separateConnectedComponents",eGu="org.eclipse.elk.interactive",eGc="org.eclipse.elk.portConstraints",eGl="org.eclipse.elk.edgeLabels.inline",eGf="org.eclipse.elk.omitNodeMicroLayout",eGd="org.eclipse.elk.nodeSize.options",eGh="org.eclipse.elk.nodeSize.constraints",eGp="org.eclipse.elk.nodeLabels.placement",eGb="org.eclipse.elk.portLabels.placement",eGm="origin",eGg="random",eGv="boundingBox.upLeft",eGy="boundingBox.lowRight",eGw="org.eclipse.elk.stress.fixed",eG_="org.eclipse.elk.stress.desiredEdgeLength",eGE="org.eclipse.elk.stress.dimension",eGS="org.eclipse.elk.stress.epsilon",eGk="org.eclipse.elk.stress.iterationLimit",eGx="org.eclipse.elk.stress",eGT="ELK Stress",eGM="org.eclipse.elk.nodeSize.minimum",eGO="org.eclipse.elk.alg.force.stress",eGA="Layered layout",eGL="org.eclipse.elk.alg.layered",eGC="org.eclipse.elk.alg.layered.compaction.components",eGI="org.eclipse.elk.alg.layered.compaction.oned",eGD="org.eclipse.elk.alg.layered.compaction.oned.algs",eGN="org.eclipse.elk.alg.layered.compaction.recthull",eGP="org.eclipse.elk.alg.layered.components",eGR="NONE",eGj={3:1,6:1,4:1,9:1,5:1,122:1},eGF={3:1,6:1,4:1,5:1,141:1,106:1,120:1},eGY="org.eclipse.elk.alg.layered.compound",eGB={51:1},eGU="org.eclipse.elk.alg.layered.graph",eGH=" -> ",eG$="Not supported by LGraph",eGz="Port side is undefined",eGG={3:1,6:1,4:1,5:1,474:1,141:1,106:1,120:1},eGW={3:1,6:1,4:1,5:1,141:1,193:1,203:1,106:1,120:1},eGK={3:1,6:1,4:1,5:1,141:1,1943:1,203:1,106:1,120:1},eGV="([{\"' \r\n",eGq=")]}\"' \r\n",eGZ="The given string contains parts that cannot be parsed as numbers.",eGX="org.eclipse.elk.core.math",eGJ={3:1,4:1,142:1,207:1,414:1},eGQ={3:1,4:1,116:1,207:1,414:1},eG1="org.eclipse.elk.layered",eG0="org.eclipse.elk.alg.layered.graph.transform",eG2="ElkGraphImporter",eG3="ElkGraphImporter/lambda$0$Type",eG4="ElkGraphImporter/lambda$1$Type",eG6="ElkGraphImporter/lambda$2$Type",eG5="ElkGraphImporter/lambda$4$Type",eG8="Node margin calculation",eG9="org.eclipse.elk.alg.layered.intermediate",eG7="ONE_SIDED_GREEDY_SWITCH",eWe="TWO_SIDED_GREEDY_SWITCH",eWt="No implementation is available for the layout processor ",eWn="IntermediateProcessorStrategy",eWr="Node '",eWi="FIRST_SEPARATE",eWa="LAST_SEPARATE",eWo="Odd port side processing",eWs="org.eclipse.elk.alg.layered.intermediate.compaction",eWu="org.eclipse.elk.alg.layered.intermediate.greedyswitch",eWc="org.eclipse.elk.alg.layered.p3order.counting",eWl={225:1},eWf="org.eclipse.elk.alg.layered.intermediate.loops",eWd="org.eclipse.elk.alg.layered.intermediate.loops.ordering",eWh="org.eclipse.elk.alg.layered.intermediate.loops.routing",eWp="org.eclipse.elk.alg.layered.intermediate.preserveorder",eWb="org.eclipse.elk.alg.layered.intermediate.wrapping",eWm="org.eclipse.elk.alg.layered.options",eWg="INTERACTIVE",eWv="DEPTH_FIRST",eWy="EDGE_LENGTH",eWw="SELF_LOOPS",eW_="firstTryWithInitialOrder",eWE="org.eclipse.elk.layered.directionCongruency",eWS="org.eclipse.elk.layered.feedbackEdges",eWk="org.eclipse.elk.layered.interactiveReferencePoint",eWx="org.eclipse.elk.layered.mergeEdges",eWT="org.eclipse.elk.layered.mergeHierarchyEdges",eWM="org.eclipse.elk.layered.allowNonFlowPortsToSwitchSides",eWO="org.eclipse.elk.layered.portSortingStrategy",eWA="org.eclipse.elk.layered.thoroughness",eWL="org.eclipse.elk.layered.unnecessaryBendpoints",eWC="org.eclipse.elk.layered.generatePositionAndLayerIds",eWI="org.eclipse.elk.layered.cycleBreaking.strategy",eWD="org.eclipse.elk.layered.layering.strategy",eWN="org.eclipse.elk.layered.layering.layerConstraint",eWP="org.eclipse.elk.layered.layering.layerChoiceConstraint",eWR="org.eclipse.elk.layered.layering.layerId",eWj="org.eclipse.elk.layered.layering.minWidth.upperBoundOnWidth",eWF="org.eclipse.elk.layered.layering.minWidth.upperLayerEstimationScalingFactor",eWY="org.eclipse.elk.layered.layering.nodePromotion.strategy",eWB="org.eclipse.elk.layered.layering.nodePromotion.maxIterations",eWU="org.eclipse.elk.layered.layering.coffmanGraham.layerBound",eWH="org.eclipse.elk.layered.crossingMinimization.strategy",eW$="org.eclipse.elk.layered.crossingMinimization.forceNodeModelOrder",eWz="org.eclipse.elk.layered.crossingMinimization.hierarchicalSweepiness",eWG="org.eclipse.elk.layered.crossingMinimization.semiInteractive",eWW="org.eclipse.elk.layered.crossingMinimization.positionChoiceConstraint",eWK="org.eclipse.elk.layered.crossingMinimization.positionId",eWV="org.eclipse.elk.layered.crossingMinimization.greedySwitch.activationThreshold",eWq="org.eclipse.elk.layered.crossingMinimization.greedySwitch.type",eWZ="org.eclipse.elk.layered.crossingMinimization.greedySwitchHierarchical.type",eWX="org.eclipse.elk.layered.nodePlacement.strategy",eWJ="org.eclipse.elk.layered.nodePlacement.favorStraightEdges",eWQ="org.eclipse.elk.layered.nodePlacement.bk.edgeStraightening",eW1="org.eclipse.elk.layered.nodePlacement.bk.fixedAlignment",eW0="org.eclipse.elk.layered.nodePlacement.linearSegments.deflectionDampening",eW2="org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility",eW3="org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility.default",eW4="org.eclipse.elk.layered.edgeRouting.selfLoopDistribution",eW6="org.eclipse.elk.layered.edgeRouting.selfLoopOrdering",eW5="org.eclipse.elk.layered.edgeRouting.splines.mode",eW8="org.eclipse.elk.layered.edgeRouting.splines.sloppy.layerSpacingFactor",eW9="org.eclipse.elk.layered.edgeRouting.polyline.slopedEdgeZoneWidth",eW7="org.eclipse.elk.layered.spacing.baseValue",eKe="org.eclipse.elk.layered.spacing.edgeNodeBetweenLayers",eKt="org.eclipse.elk.layered.spacing.edgeEdgeBetweenLayers",eKn="org.eclipse.elk.layered.spacing.nodeNodeBetweenLayers",eKr="org.eclipse.elk.layered.priority.direction",eKi="org.eclipse.elk.layered.priority.shortness",eKa="org.eclipse.elk.layered.priority.straightness",eKo="org.eclipse.elk.layered.compaction.connectedComponents",eKs="org.eclipse.elk.layered.compaction.postCompaction.strategy",eKu="org.eclipse.elk.layered.compaction.postCompaction.constraints",eKc="org.eclipse.elk.layered.highDegreeNodes.treatment",eKl="org.eclipse.elk.layered.highDegreeNodes.threshold",eKf="org.eclipse.elk.layered.highDegreeNodes.treeHeight",eKd="org.eclipse.elk.layered.wrapping.strategy",eKh="org.eclipse.elk.layered.wrapping.additionalEdgeSpacing",eKp="org.eclipse.elk.layered.wrapping.correctionFactor",eKb="org.eclipse.elk.layered.wrapping.cutting.strategy",eKm="org.eclipse.elk.layered.wrapping.cutting.cuts",eKg="org.eclipse.elk.layered.wrapping.cutting.msd.freedom",eKv="org.eclipse.elk.layered.wrapping.validify.strategy",eKy="org.eclipse.elk.layered.wrapping.validify.forbiddenIndices",eKw="org.eclipse.elk.layered.wrapping.multiEdge.improveCuts",eK_="org.eclipse.elk.layered.wrapping.multiEdge.distancePenalty",eKE="org.eclipse.elk.layered.wrapping.multiEdge.improveWrappedEdges",eKS="org.eclipse.elk.layered.edgeLabels.sideSelection",eKk="org.eclipse.elk.layered.edgeLabels.centerLabelPlacementStrategy",eKx="org.eclipse.elk.layered.considerModelOrder.strategy",eKT="org.eclipse.elk.layered.considerModelOrder.noModelOrder",eKM="org.eclipse.elk.layered.considerModelOrder.components",eKO="org.eclipse.elk.layered.considerModelOrder.longEdgeStrategy",eKA="org.eclipse.elk.layered.considerModelOrder.crossingCounterNodeInfluence",eKL="org.eclipse.elk.layered.considerModelOrder.crossingCounterPortInfluence",eKC="layering",eKI="layering.minWidth",eKD="layering.nodePromotion",eKN="crossingMinimization",eKP="org.eclipse.elk.hierarchyHandling",eKR="crossingMinimization.greedySwitch",eKj="nodePlacement",eKF="nodePlacement.bk",eKY="edgeRouting",eKB="org.eclipse.elk.edgeRouting",eKU="spacing",eKH="priority",eK$="compaction",eKz="compaction.postCompaction",eKG="Specifies whether and how post-process compaction is applied.",eKW="highDegreeNodes",eKK="wrapping",eKV="wrapping.cutting",eKq="wrapping.validify",eKZ="wrapping.multiEdge",eKX="edgeLabels",eKJ="considerModelOrder",eKQ="org.eclipse.elk.spacing.commentComment",eK1="org.eclipse.elk.spacing.commentNode",eK0="org.eclipse.elk.spacing.edgeEdge",eK2="org.eclipse.elk.spacing.edgeNode",eK3="org.eclipse.elk.spacing.labelLabel",eK4="org.eclipse.elk.spacing.labelPortHorizontal",eK6="org.eclipse.elk.spacing.labelPortVertical",eK5="org.eclipse.elk.spacing.labelNode",eK8="org.eclipse.elk.spacing.nodeSelfLoop",eK9="org.eclipse.elk.spacing.portPort",eK7="org.eclipse.elk.spacing.individual",eVe="org.eclipse.elk.port.borderOffset",eVt="org.eclipse.elk.noLayout",eVn="org.eclipse.elk.port.side",eVr="org.eclipse.elk.debugMode",eVi="org.eclipse.elk.alignment",eVa="org.eclipse.elk.insideSelfLoops.activate",eVo="org.eclipse.elk.insideSelfLoops.yo",eVs="org.eclipse.elk.nodeSize.fixedGraphSize",eVu="org.eclipse.elk.direction",eVc="org.eclipse.elk.nodeLabels.padding",eVl="org.eclipse.elk.portLabels.nextToPortIfPossible",eVf="org.eclipse.elk.portLabels.treatAsGroup",eVd="org.eclipse.elk.portAlignment.default",eVh="org.eclipse.elk.portAlignment.north",eVp="org.eclipse.elk.portAlignment.south",eVb="org.eclipse.elk.portAlignment.west",eVm="org.eclipse.elk.portAlignment.east",eVg="org.eclipse.elk.contentAlignment",eVv="org.eclipse.elk.junctionPoints",eVy="org.eclipse.elk.edgeLabels.placement",eVw="org.eclipse.elk.port.index",eV_="org.eclipse.elk.commentBox",eVE="org.eclipse.elk.hypernode",eVS="org.eclipse.elk.port.anchor",eVk="org.eclipse.elk.partitioning.activate",eVx="org.eclipse.elk.partitioning.partition",eVT="org.eclipse.elk.position",eVM="org.eclipse.elk.margins",eVO="org.eclipse.elk.spacing.portsSurrounding",eVA="org.eclipse.elk.interactiveLayout",eVL="org.eclipse.elk.core.util",eVC={3:1,4:1,5:1,593:1},eVI="NETWORK_SIMPLEX",eVD={123:1,51:1},eVN="org.eclipse.elk.alg.layered.p1cycles",eVP="org.eclipse.elk.alg.layered.p2layers",eVR={402:1,225:1},eVj={832:1,3:1,4:1},eVF="org.eclipse.elk.alg.layered.p3order",eVY="org.eclipse.elk.alg.layered.p4nodes",eVB={3:1,4:1,5:1,840:1},eVU=1e-5,eVH="org.eclipse.elk.alg.layered.p4nodes.bk",eV$="org.eclipse.elk.alg.layered.p5edges",eVz="org.eclipse.elk.alg.layered.p5edges.orthogonal",eVG="org.eclipse.elk.alg.layered.p5edges.orthogonal.direction",eVW=1e-6,eVK="org.eclipse.elk.alg.layered.p5edges.splines",eVV=.09999999999999998,eVq=1e-8,eVZ=4.71238898038469,eVX=3.141592653589793,eVJ="org.eclipse.elk.alg.mrtree",eVQ="org.eclipse.elk.alg.mrtree.graph",eV1="org.eclipse.elk.alg.mrtree.intermediate",eV0="Set neighbors in level",eV2="DESCENDANTS",eV3="org.eclipse.elk.mrtree.weighting",eV4="org.eclipse.elk.mrtree.searchOrder",eV6="org.eclipse.elk.alg.mrtree.options",eV5="org.eclipse.elk.mrtree",eV8="org.eclipse.elk.tree",eV9="org.eclipse.elk.alg.radial",eV7=6.283185307179586,eqe=5e-324,eqt="org.eclipse.elk.alg.radial.intermediate",eqn="org.eclipse.elk.alg.radial.intermediate.compaction",eqr={3:1,4:1,5:1,106:1},eqi="org.eclipse.elk.alg.radial.intermediate.optimization",eqa="No implementation is available for the layout option ",eqo="org.eclipse.elk.alg.radial.options",eqs="org.eclipse.elk.radial.orderId",equ="org.eclipse.elk.radial.radius",eqc="org.eclipse.elk.radial.compactor",eql="org.eclipse.elk.radial.compactionStepSize",eqf="org.eclipse.elk.radial.sorter",eqd="org.eclipse.elk.radial.wedgeCriteria",eqh="org.eclipse.elk.radial.optimizationCriteria",eqp="org.eclipse.elk.radial",eqb="org.eclipse.elk.alg.radial.p1position.wedge",eqm="org.eclipse.elk.alg.radial.sorting",eqg=5.497787143782138,eqv=3.9269908169872414,eqy=2.356194490192345,eqw="org.eclipse.elk.alg.rectpacking",eq_="org.eclipse.elk.alg.rectpacking.firstiteration",eqE="org.eclipse.elk.alg.rectpacking.options",eqS="org.eclipse.elk.rectpacking.optimizationGoal",eqk="org.eclipse.elk.rectpacking.lastPlaceShift",eqx="org.eclipse.elk.rectpacking.currentPosition",eqT="org.eclipse.elk.rectpacking.desiredPosition",eqM="org.eclipse.elk.rectpacking.onlyFirstIteration",eqO="org.eclipse.elk.rectpacking.rowCompaction",eqA="org.eclipse.elk.rectpacking.expandToAspectRatio",eqL="org.eclipse.elk.rectpacking.targetWidth",eqC="org.eclipse.elk.expandNodes",eqI="org.eclipse.elk.rectpacking",eqD="org.eclipse.elk.alg.rectpacking.util",eqN="No implementation available for ",eqP="org.eclipse.elk.alg.spore",eqR="org.eclipse.elk.alg.spore.options",eqj="org.eclipse.elk.sporeCompaction",eqF="org.eclipse.elk.underlyingLayoutAlgorithm",eqY="org.eclipse.elk.processingOrder.treeConstruction",eqB="org.eclipse.elk.processingOrder.spanningTreeCostFunction",eqU="org.eclipse.elk.processingOrder.preferredRoot",eqH="org.eclipse.elk.processingOrder.rootSelection",eq$="org.eclipse.elk.structure.structureExtractionStrategy",eqz="org.eclipse.elk.compaction.compactionStrategy",eqG="org.eclipse.elk.compaction.orthogonal",eqW="org.eclipse.elk.overlapRemoval.maxIterations",eqK="org.eclipse.elk.overlapRemoval.runScanline",eqV="processingOrder",eqq="overlapRemoval",eqZ="org.eclipse.elk.sporeOverlap",eqX="org.eclipse.elk.alg.spore.p1structure",eqJ="org.eclipse.elk.alg.spore.p2processingorder",eqQ="org.eclipse.elk.alg.spore.p3execution",eq1="Invalid index: ",eq0="org.eclipse.elk.core.alg",eq2={331:1},eq3={288:1},eq4="Make sure its type is registered with the ",eq6=" utility class.",eq5="true",eq8="false",eq9="Couldn't clone property '",eq7=.05,eZe="org.eclipse.elk.core.options",eZt=1.2999999523162842,eZn="org.eclipse.elk.box",eZr="org.eclipse.elk.box.packingMode",eZi="org.eclipse.elk.algorithm",eZa="org.eclipse.elk.resolvedAlgorithm",eZo="org.eclipse.elk.bendPoints",eZs="org.eclipse.elk.labelManager",eZu="org.eclipse.elk.scaleFactor",eZc="org.eclipse.elk.animate",eZl="org.eclipse.elk.animTimeFactor",eZf="org.eclipse.elk.layoutAncestors",eZd="org.eclipse.elk.maxAnimTime",eZh="org.eclipse.elk.minAnimTime",eZp="org.eclipse.elk.progressBar",eZb="org.eclipse.elk.validateGraph",eZm="org.eclipse.elk.validateOptions",eZg="org.eclipse.elk.zoomToFit",eZv="org.eclipse.elk.font.name",eZy="org.eclipse.elk.font.size",eZw="org.eclipse.elk.edge.type",eZ_="partitioning",eZE="nodeLabels",eZS="portAlignment",eZk="nodeSize",eZx="port",eZT="portLabels",eZM="insideSelfLoops",eZO="org.eclipse.elk.fixed",eZA="org.eclipse.elk.random",eZL="port must have a parent node to calculate the port side",eZC="The edge needs to have exactly one edge section. Found: ",eZI="org.eclipse.elk.core.util.adapters",eZD="org.eclipse.emf.ecore",eZN="org.eclipse.elk.graph",eZP="EMapPropertyHolder",eZR="ElkBendPoint",eZj="ElkGraphElement",eZF="ElkConnectableShape",eZY="ElkEdge",eZB="ElkEdgeSection",eZU="EModelElement",eZH="ENamedElement",eZ$="ElkLabel",eZz="ElkNode",eZG="ElkPort",eZW={92:1,90:1},eZK="org.eclipse.emf.common.notify.impl",eZV="The feature '",eZq="' is not a valid changeable feature",eZZ="Expecting null",eZX="' is not a valid feature",eZJ="The feature ID",eZQ=" is not a valid feature ID",eZ1=32768,eZ0={105:1,92:1,90:1,56:1,49:1,97:1},eZ2="org.eclipse.emf.ecore.impl",eZ3="org.eclipse.elk.graph.impl",eZ4="Recursive containment not allowed for ",eZ6="The datatype '",eZ5="' is not a valid classifier",eZ8="The value '",eZ9={190:1,3:1,4:1},eZ7="The class '",eXe="http://www.eclipse.org/elk/ElkGraph",eXt=1024,eXn="property",eXr="value",eXi="source",eXa="properties",eXo="identifier",eXs="height",eXu="width",eXc="parent",eXl="text",eXf="children",eXd="hierarchical",eXh="sources",eXp="targets",eXb="sections",eXm="bendPoints",eXg="outgoingShape",eXv="incomingShape",eXy="outgoingSections",eXw="incomingSections",eX_="org.eclipse.emf.common.util",eXE="Severe implementation error in the Json to ElkGraph importer.",eXS="id",eXk="org.eclipse.elk.graph.json",eXx="Unhandled parameter types: ",eXT="startPoint",eXM="An edge must have at least one source and one target (edge id: '",eXO="').",eXA="Referenced edge section does not exist: ",eXL=" (edge id: '",eXC="target",eXI="sourcePoint",eXD="targetPoint",eXN="group",eXP="name",eXR="connectableShape cannot be null",eXj="edge cannot be null",eXF="Passed edge is not 'simple'.",eXY="org.eclipse.elk.graph.util",eXB="The 'no duplicates' constraint is violated",eXU="targetIndex=",eXH=", size=",eX$="sourceIndex=",eXz={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1},eXG={3:1,4:1,20:1,28:1,52:1,14:1,47:1,15:1,54:1,67:1,63:1,58:1,588:1},eXW="logging",eXK="measureExecutionTime",eXV="parser.parse.1",eXq="parser.parse.2",eXZ="parser.next.1",eXX="parser.next.2",eXJ="parser.next.3",eXQ="parser.next.4",eX1="parser.factor.1",eX0="parser.factor.2",eX2="parser.factor.3",eX3="parser.factor.4",eX4="parser.factor.5",eX6="parser.factor.6",eX5="parser.atom.1",eX8="parser.atom.2",eX9="parser.atom.3",eX7="parser.atom.4",eJe="parser.atom.5",eJt="parser.cc.1",eJn="parser.cc.2",eJr="parser.cc.3",eJi="parser.cc.5",eJa="parser.cc.6",eJo="parser.cc.7",eJs="parser.cc.8",eJu="parser.ope.1",eJc="parser.ope.2",eJl="parser.ope.3",eJf="parser.descape.1",eJd="parser.descape.2",eJh="parser.descape.3",eJp="parser.descape.4",eJb="parser.descape.5",eJm="parser.process.1",eJg="parser.quantifier.1",eJv="parser.quantifier.2",eJy="parser.quantifier.3",eJw="parser.quantifier.4",eJ_="parser.quantifier.5",eJE="org.eclipse.emf.common.notify",eJS={415:1,672:1},eJk={3:1,4:1,20:1,28:1,52:1,14:1,15:1,67:1,58:1},eJx={366:1,143:1},eJT="index=",eJM={3:1,4:1,5:1,126:1},eJO={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,58:1},eJA={3:1,6:1,4:1,5:1,192:1},eJL={3:1,4:1,5:1,165:1,367:1},eJC=";/?:@&=+$,",eJI="invalid authority: ",eJD="EAnnotation",eJN="ETypedElement",eJP="EStructuralFeature",eJR="EAttribute",eJj="EClassifier",eJF="EEnumLiteral",eJY="EGenericType",eJB="EOperation",eJU="EParameter",eJH="EReference",eJ$="ETypeParameter",eJz="org.eclipse.emf.ecore.util",eJG={76:1},eJW={3:1,20:1,14:1,15:1,58:1,589:1,76:1,69:1,95:1},eJK="org.eclipse.emf.ecore.util.FeatureMap$Entry",eJV=8192,eJq=2048,eJZ="byte",eJX="char",eJJ="double",eJQ="float",eJ1="int",eJ0="long",eJ2="short",eJ3="java.lang.Object",eJ4={3:1,4:1,5:1,247:1},eJ6={3:1,4:1,5:1,673:1},eJ5={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1,69:1},eJ8={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1,76:1,69:1,95:1},eJ9="mixed",eJ7="http:///org/eclipse/emf/ecore/util/ExtendedMetaData",eQe="kind",eQt={3:1,4:1,5:1,674:1},eQn={3:1,4:1,20:1,28:1,52:1,14:1,15:1,67:1,58:1,76:1,69:1,95:1},eQr={20:1,28:1,52:1,14:1,15:1,58:1,69:1},eQi={47:1,125:1,279:1},eQa={72:1,332:1},eQo="The value of type '",eQs="' must be of type '",eQu=1316,eQc="http://www.eclipse.org/emf/2002/Ecore",eQl=-32768,eQf="constraints",eQd="baseType",eQh="getEStructuralFeature",eQp="getFeatureID",eQb="feature",eQm="getOperationID",eQg="operation",eQv="defaultValue",eQy="eTypeParameters",eQw="isInstance",eQ_="getEEnumLiteral",eQE="eContainingClass",eQS={55:1},eQk={3:1,4:1,5:1,119:1},eQx="org.eclipse.emf.ecore.resource",eQT={92:1,90:1,591:1,1935:1},eQM="org.eclipse.emf.ecore.resource.impl",eQO="unspecified",eQA="simple",eQL="attribute",eQC="attributeWildcard",eQI="element",eQD="elementWildcard",eQN="collapse",eQP="itemType",eQR="namespace",eQj="##targetNamespace",eQF="whiteSpace",eQY="wildcards",eQB="http://www.eclipse.org/emf/2003/XMLType",eQU="##any",eQH="uninitialized",eQ$="The multiplicity constraint is violated",eQz="org.eclipse.emf.ecore.xml.type",eQG="ProcessingInstruction",eQW="SimpleAnyType",eQK="XMLTypeDocumentRoot",eQV="org.eclipse.emf.ecore.xml.type.impl",eQq="INF",eQZ="processing",eQX="ENTITIES_._base",eQJ="minLength",eQQ="ENTITY",eQ1="NCName",eQ0="IDREFS_._base",eQ2="integer",eQ3="token",eQ4="pattern",eQ6="[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*",eQ5="\\i\\c*",eQ8="[\\i-[:]][\\c-[:]]*",eQ9="nonPositiveInteger",eQ7="maxInclusive",e1e="NMTOKEN",e1t="NMTOKENS_._base",e1n="nonNegativeInteger",e1r="minInclusive",e1i="normalizedString",e1a="unsignedByte",e1o="unsignedInt",e1s="18446744073709551615",e1u="unsignedShort",e1c="processingInstruction",e1l="org.eclipse.emf.ecore.xml.type.internal",e1f=1114111,e1d="Internal Error: shorthands: \\u",e1h="xml:isDigit",e1p="xml:isWord",e1b="xml:isSpace",e1m="xml:isNameChar",e1g="xml:isInitialNameChar",e1v="09٠٩۰۹०९০৯੦੯૦૯୦୯௧௯౦౯೦೯൦൯๐๙໐໙༠༩",e1y="AZaz\xc0\xd6\xd8\xf6\xf8ıĴľŁňŊžƀǃǍǰǴǵǺȗɐʨʻˁΆΆΈΊΌΌΎΡΣώϐϖϚϚϜϜϞϞϠϠϢϳЁЌЎяёќўҁҐӄӇӈӋӌӐӫӮӵӸӹԱՖՙՙաֆאתװײءغفيٱڷںھۀێېۓەەۥۦअहऽऽक़ॡঅঌএঐওনপরললশহড়ঢ়য়ৡৰৱਅਊਏਐਓਨਪਰਲਲ਼ਵਸ਼ਸਹਖ਼ੜਫ਼ਫ਼ੲੴઅઋઍઍએઑઓનપરલળવહઽઽૠૠଅଌଏଐଓନପରଲଳଶହଽଽଡ଼ଢ଼ୟୡஅஊஎஐஒகஙசஜஜஞடணதநபமவஷஹఅఌఎఐఒనపళవహౠౡಅಌಎಐಒನಪಳವಹೞೞೠೡഅഌഎഐഒനപഹൠൡกฮะะาำเๅກຂຄຄງຈຊຊຍຍດທນຟມຣລລວວສຫອຮະະາຳຽຽເໄཀཇཉཀྵႠჅაჶᄀᄀᄂᄃᄅᄇᄉᄉᄋᄌᄎᄒᄼᄼᄾᄾᅀᅀᅌᅌᅎᅎᅐᅐᅔᅕᅙᅙᅟᅡᅣᅣᅥᅥᅧᅧᅩᅩᅭᅮᅲᅳᅵᅵᆞᆞᆨᆨᆫᆫᆮᆯᆷᆸᆺᆺᆼᇂᇫᇫᇰᇰᇹᇹḀẛẠỹἀἕἘἝἠὅὈὍὐὗὙὙὛὛὝὝὟώᾀᾴᾶᾼιιῂῄῆῌῐΐῖΊῠῬῲῴῶῼΩΩKÅ℮℮ↀↂ〇〇〡〩ぁゔァヺㄅㄬ一龥가힣",e1w="Private Use",e1_="ASSIGNED",e1E="\0\x7f\x80\xffĀſƀɏɐʯʰ˿̀ͯͰϿЀӿ԰֏֐׿؀ۿ܀ݏހ޿ऀॿঀ৿਀੿઀૿଀୿஀௿ఀ౿ಀ೿ഀൿ඀෿฀๿຀໿ༀ࿿က႟Ⴀჿᄀᇿሀ፿Ꭰ᏿᐀ᙿ ᚟ᚠ᛿ក៿᠀᢯Ḁỿἀ῿ ⁰₟₠⃏⃐⃿℀⅏⅐↏←⇿∀⋿⌀⏿␀␿⑀⑟①⓿─╿▀▟■◿☀⛿✀➿⠀⣿⺀⻿⼀⿟⿰⿿ 〿぀ゟ゠ヿ㄀ㄯ㄰㆏㆐㆟ㆠㆿ㈀㋿㌀㏿㐀䶵一鿿ꀀ꒏꒐꓏가힣豈﫿ffﭏﭐ﷿︠︯︰﹏﹐﹯ﹰ﻾\uFEFF\uFEFF＀￯",e1S="UNASSIGNED",e1k={3:1,117:1},e1x="org.eclipse.emf.ecore.xml.type.util",e1T={3:1,4:1,5:1,368:1},e1M="org.eclipse.xtext.xbase.lib",e1O="Cannot add elements to a Range",e1A="Cannot set elements in a Range",e1L="Cannot remove elements from a Range",e1C="locale",e1I="default",e1D="user.agent",e1N=null;eB4.goog=eB4.goog||{},eB4.goog.global=eB4.goog.global||eB4,e_Q(),eTS(1,null,{},r),eUe.Fb=function(e){return x6(this,e)},eUe.Gb=function(){return this.gm},eUe.Hb=function(){return Ao(this)},eUe.Ib=function(){var e;return yx(esF(this))+"@"+(e=esj(this)>>>0).toString(16)},eUe.equals=function(e){return this.Fb(e)},eUe.hashCode=function(){return this.Hb()},eUe.toString=function(){return this.Ib()},eTS(290,1,{290:1,2026:1},ese),eUe.le=function(e){var t;return(t=new ese).i=4,e>1?t.c=z8(this,e-1):t.c=this,t},eUe.me=function(){return LW(this),this.b},eUe.ne=function(){return yx(this)},eUe.oe=function(){return LW(this),this.k},eUe.pe=function(){return(4&this.i)!=0},eUe.qe=function(){return(1&this.i)!=0},eUe.Ib=function(){return ee5(this)},eUe.i=0;var e1P=1,e1R=Y6(eUc,"Object",1),e1j=Y6(eUc,"Class",290);eTS(1998,1,eUl),Y6(eUf,"Optional",1998),eTS(1170,1998,eUl,i),eUe.Fb=function(e){return e===this},eUe.Hb=function(){return 2040732332},eUe.Ib=function(){return"Optional.absent()"},eUe.Jb=function(e){return Y8(e),m4(),e0l},Y6(eUf,"Absent",1170),eTS(628,1,{},ve),Y6(eUf,"Joiner",628);var e1F=RL(eUf,"Predicate");eTS(582,1,{169:1,582:1,3:1,45:1},c4),eUe.Mb=function(e){return es_(this,e)},eUe.Lb=function(e){return es_(this,e)},eUe.Fb=function(e){var t;return!!M4(e,582)&&(t=Pp(e,582),eT$(this.a,t.a))},eUe.Hb=function(){return esS(this.a)+306654252},eUe.Ib=function(){return eE7(this.a)},Y6(eUf,"Predicates/AndPredicate",582),eTS(408,1998,{408:1,3:1},c6),eUe.Fb=function(e){var t;return!!M4(e,408)&&(t=Pp(e,408),ecX(this.a,t.a))},eUe.Hb=function(){return 1502476572+esj(this.a)},eUe.Ib=function(){return eUm+this.a+")"},eUe.Jb=function(e){return new c6(H6(e.Kb(this.a),"the Function passed to Optional.transform() must not return null."))},Y6(eUf,"Present",408),eTS(198,1,eUv),eUe.Nb=function(e){F9(this,e)},eUe.Qb=function(){g4()},Y6(eUy,"UnmodifiableIterator",198),eTS(1978,198,eUw),eUe.Qb=function(){g4()},eUe.Rb=function(e){throw p7(new bO)},eUe.Wb=function(e){throw p7(new bO)},Y6(eUy,"UnmodifiableListIterator",1978),eTS(386,1978,eUw),eUe.Ob=function(){return this.c0},eUe.Pb=function(){if(this.c>=this.d)throw p7(new bC);return this.Xb(this.c++)},eUe.Tb=function(){return this.c},eUe.Ub=function(){if(this.c<=0)throw p7(new bC);return this.Xb(--this.c)},eUe.Vb=function(){return this.c-1},eUe.c=0,eUe.d=0,Y6(eUy,"AbstractIndexedListIterator",386),eTS(699,198,eUv),eUe.Ob=function(){return erE(this)},eUe.Pb=function(){return QR(this)},eUe.e=1,Y6(eUy,"AbstractIterator",699),eTS(1986,1,{224:1}),eUe.Zb=function(){var e;return(e=this.f)||(this.f=this.ac())},eUe.Fb=function(e){return es6(this,e)},eUe.Hb=function(){return esj(this.Zb())},eUe.dc=function(){return 0==this.gc()},eUe.ec=function(){return Fh(this)},eUe.Ib=function(){return efF(this.Zb())},Y6(eUy,"AbstractMultimap",1986),eTS(726,1986,eU_),eUe.$b=function(){enK(this)},eUe._b=function(e){return yy(this,e)},eUe.ac=function(){return new wI(this,this.c)},eUe.ic=function(e){return this.hc()},eUe.bc=function(){return new OC(this,this.c)},eUe.jc=function(){return this.mc(this.hc())},eUe.kc=function(){return new m$(this)},eUe.lc=function(){return ew4(this.c.vc().Nc(),new o,64,this.d)},eUe.cc=function(e){return Zq(this,e)},eUe.fc=function(e){return eu8(this,e)},eUe.gc=function(){return this.d},eUe.mc=function(e){return Hj(),new fF(e)},eUe.nc=function(){return new mH(this)},eUe.oc=function(){return ew4(this.c.Cc().Nc(),new a,64,this.d)},eUe.pc=function(e,t){return new XS(this,e,t,null)},eUe.d=0,Y6(eUy,"AbstractMapBasedMultimap",726),eTS(1631,726,eU_),eUe.hc=function(){return new XM(this.a)},eUe.jc=function(){return Hj(),Hj(),e2r},eUe.cc=function(e){return Pp(Zq(this,e),15)},eUe.fc=function(e){return Pp(eu8(this,e),15)},eUe.Zb=function(){return HU(this)},eUe.Fb=function(e){return es6(this,e)},eUe.qc=function(e){return Pp(Zq(this,e),15)},eUe.rc=function(e){return Pp(eu8(this,e),15)},eUe.mc=function(e){return $a(Pp(e,15))},eUe.pc=function(e,t){return Vu(this,e,Pp(t,15),null)},Y6(eUy,"AbstractListMultimap",1631),eTS(732,1,eUE),eUe.Nb=function(e){F9(this,e)},eUe.Ob=function(){return this.c.Ob()||this.e.Ob()},eUe.Pb=function(){var e;return this.e.Ob()||(e=Pp(this.c.Pb(),42),this.b=e.cd(),this.a=Pp(e.dd(),14),this.e=this.a.Kc()),this.sc(this.b,this.e.Pb())},eUe.Qb=function(){this.e.Qb(),this.a.dc()&&this.c.Qb(),--this.d.d},Y6(eUy,"AbstractMapBasedMultimap/Itr",732),eTS(1099,732,eUE,mH),eUe.sc=function(e,t){return t},Y6(eUy,"AbstractMapBasedMultimap/1",1099),eTS(1100,1,{},a),eUe.Kb=function(e){return Pp(e,14).Nc()},Y6(eUy,"AbstractMapBasedMultimap/1methodref$spliterator$Type",1100),eTS(1101,732,eUE,m$),eUe.sc=function(e,t){return new wD(e,t)},Y6(eUy,"AbstractMapBasedMultimap/2",1101);var e1Y=RL(eUS,"Map");eTS(1967,1,eUk),eUe.wc=function(e){ear(this,e)},eUe.yc=function(e,t,n){return el5(this,e,t,n)},eUe.$b=function(){this.vc().$b()},eUe.tc=function(e){return emT(this,e)},eUe._b=function(e){return!!ewt(this,e,!1)},eUe.uc=function(e){var t,n,r;for(n=this.vc().Kc();n.Ob();)if(r=(t=Pp(n.Pb(),42)).dd(),xc(e)===xc(r)||null!=e&&ecX(e,r))return!0;return!1},eUe.Fb=function(e){var t,n,r;if(e===this)return!0;if(!M4(e,83)||(r=Pp(e,83),this.gc()!=r.gc()))return!1;for(n=r.vc().Kc();n.Ob();)if(t=Pp(n.Pb(),42),!this.tc(t))return!1;return!0},eUe.xc=function(e){return xu(ewt(this,e,!1))},eUe.Hb=function(){return eoP(this.vc())},eUe.dc=function(){return 0==this.gc()},eUe.ec=function(){return new fk(this)},eUe.zc=function(e,t){throw p7(new gW("Put not supported on this map"))},eUe.Ac=function(e){eij(this,e)},eUe.Bc=function(e){return xu(ewt(this,e,!0))},eUe.gc=function(){return this.vc().gc()},eUe.Ib=function(){return ewb(this)},eUe.Cc=function(){return new fT(this)},Y6(eUS,"AbstractMap",1967),eTS(1987,1967,eUk),eUe.bc=function(){return new wU(this)},eUe.vc=function(){return Fd(this)},eUe.ec=function(){var e;return(e=this.g)||(this.g=this.bc())},eUe.Cc=function(){var e;return(e=this.i)||(this.i=new wH(this))},Y6(eUy,"Maps/ViewCachingAbstractMap",1987),eTS(389,1987,eUk,wI),eUe.xc=function(e){return etl(this,e)},eUe.Bc=function(e){return euT(this,e)},eUe.$b=function(){this.d==this.e.c?this.e.$b():RG(new RK(this))},eUe._b=function(e){return ecD(this.d,e)},eUe.Ec=function(){return new c7(this)},eUe.Dc=function(){return this.Ec()},eUe.Fb=function(e){return this===e||ecX(this.d,e)},eUe.Hb=function(){return esj(this.d)},eUe.ec=function(){return this.e.ec()},eUe.gc=function(){return this.d.gc()},eUe.Ib=function(){return efF(this.d)},Y6(eUy,"AbstractMapBasedMultimap/AsMap",389);var e1B=RL(eUc,"Iterable");eTS(28,1,eUx),eUe.Jc=function(e){qX(this,e)},eUe.Lc=function(){return this.Oc()},eUe.Nc=function(){return new Gq(this,0)},eUe.Oc=function(){return new R1(null,this.Nc())},eUe.Fc=function(e){throw p7(new gW("Add not supported on this collection"))},eUe.Gc=function(e){return er7(this,e)},eUe.$b=function(){UG(this)},eUe.Hc=function(e){return eds(this,e,!1)},eUe.Ic=function(e){return eot(this,e)},eUe.dc=function(){return 0==this.gc()},eUe.Mc=function(e){return eds(this,e,!0)},eUe.Pc=function(){return Fn(this)},eUe.Qc=function(e){return emk(this,e)},eUe.Ib=function(){return e_F(this)},Y6(eUS,"AbstractCollection",28);var e1U=RL(eUS,"Set");eTS(eUT,28,eUM),eUe.Nc=function(){return new Gq(this,1)},eUe.Fb=function(e){return ehN(this,e)},eUe.Hb=function(){return eoP(this)},Y6(eUS,"AbstractSet",eUT),eTS(1970,eUT,eUM),Y6(eUy,"Sets/ImprovedAbstractSet",1970),eTS(1971,1970,eUM),eUe.$b=function(){this.Rc().$b()},eUe.Hc=function(e){return edz(this,e)},eUe.dc=function(){return this.Rc().dc()},eUe.Mc=function(e){var t;return!!this.Hc(e)&&(t=Pp(e,42),this.Rc().ec().Mc(t.cd()))},eUe.gc=function(){return this.Rc().gc()},Y6(eUy,"Maps/EntrySet",1971),eTS(1097,1971,eUM,c7),eUe.Hc=function(e){return ecC(this.a.d.vc(),e)},eUe.Kc=function(){return new RK(this.a)},eUe.Rc=function(){return this.a},eUe.Mc=function(e){var t;return!!ecC(this.a.d.vc(),e)&&(t=Pp(e,42),ZM(this.a.e,t.cd()),!0)},eUe.Nc=function(){return Pl(this.a.d.vc().Nc(),new le(this.a))},Y6(eUy,"AbstractMapBasedMultimap/AsMap/AsMapEntries",1097),eTS(1098,1,{},le),eUe.Kb=function(e){return qJ(this.a,Pp(e,42))},Y6(eUy,"AbstractMapBasedMultimap/AsMap/AsMapEntries/0methodref$wrapEntry$Type",1098),eTS(730,1,eUE,RK),eUe.Nb=function(e){F9(this,e)},eUe.Pb=function(){var e;return e=Pp(this.b.Pb(),42),this.a=Pp(e.dd(),14),qJ(this.c,e)},eUe.Ob=function(){return this.b.Ob()},eUe.Qb=function(){eah(!!this.a),this.b.Qb(),this.c.e.d-=this.a.gc(),this.a.$b(),this.a=null},Y6(eUy,"AbstractMapBasedMultimap/AsMap/AsMapIterator",730),eTS(532,1970,eUM,wU),eUe.$b=function(){this.b.$b()},eUe.Hc=function(e){return this.b._b(e)},eUe.Jc=function(e){Y8(e),this.b.wc(new lk(e))},eUe.dc=function(){return this.b.dc()},eUe.Kc=function(){return new gr(this.b.vc().Kc())},eUe.Mc=function(e){return!!this.b._b(e)&&(this.b.Bc(e),!0)},eUe.gc=function(){return this.b.gc()},Y6(eUy,"Maps/KeySet",532),eTS(318,532,eUM,OC),eUe.$b=function(){var e;RG((e=this.b.vc().Kc(),new wg(this,e)))},eUe.Ic=function(e){return this.b.ec().Ic(e)},eUe.Fb=function(e){return this===e||ecX(this.b.ec(),e)},eUe.Hb=function(){return esj(this.b.ec())},eUe.Kc=function(){var e;return e=this.b.vc().Kc(),new wg(this,e)},eUe.Mc=function(e){var t,n;return n=0,(t=Pp(this.b.Bc(e),14))&&(n=t.gc(),t.$b(),this.a.d-=n),n>0},eUe.Nc=function(){return this.b.ec().Nc()},Y6(eUy,"AbstractMapBasedMultimap/KeySet",318),eTS(731,1,eUE,wg),eUe.Nb=function(e){F9(this,e)},eUe.Ob=function(){return this.c.Ob()},eUe.Pb=function(){return this.a=Pp(this.c.Pb(),42),this.a.cd()},eUe.Qb=function(){var e;eah(!!this.a),e=Pp(this.a.dd(),14),this.c.Qb(),this.b.a.d-=e.gc(),e.$b(),this.a=null},Y6(eUy,"AbstractMapBasedMultimap/KeySet/1",731),eTS(491,389,{83:1,161:1},LX),eUe.bc=function(){return this.Sc()},eUe.ec=function(){return this.Tc()},eUe.Sc=function(){return new wb(this.c,this.Uc())},eUe.Tc=function(){var e;return(e=this.b)||(this.b=this.Sc())},eUe.Uc=function(){return Pp(this.d,161)},Y6(eUy,"AbstractMapBasedMultimap/SortedAsMap",491),eTS(542,491,eUO,LJ),eUe.bc=function(){return new wm(this.a,Pp(Pp(this.d,161),171))},eUe.Sc=function(){return new wm(this.a,Pp(Pp(this.d,161),171))},eUe.ec=function(){var e;return Pp((e=this.b)||(this.b=new wm(this.a,Pp(Pp(this.d,161),171))),271)},eUe.Tc=function(){var e;return Pp((e=this.b)||(this.b=new wm(this.a,Pp(Pp(this.d,161),171))),271)},eUe.Uc=function(){return Pp(Pp(this.d,161),171)},Y6(eUy,"AbstractMapBasedMultimap/NavigableAsMap",542),eTS(490,318,eUA,wb),eUe.Nc=function(){return this.b.ec().Nc()},Y6(eUy,"AbstractMapBasedMultimap/SortedKeySet",490),eTS(388,490,eUL,wm),Y6(eUy,"AbstractMapBasedMultimap/NavigableKeySet",388),eTS(541,28,eUx,XS),eUe.Fc=function(e){var t,n;return efH(this),n=this.d.dc(),(t=this.d.Fc(e))&&(++this.f.d,n&&CP(this)),t},eUe.Gc=function(e){var t,n,r;return!e.dc()&&(r=(efH(this),this.d.gc()),(t=this.d.Gc(e))&&(n=this.d.gc(),this.f.d+=n-r,0==r&&CP(this)),t)},eUe.$b=function(){var e;0!=(e=(efH(this),this.d.gc()))&&(this.d.$b(),this.f.d-=e,jY(this))},eUe.Hc=function(e){return efH(this),this.d.Hc(e)},eUe.Ic=function(e){return efH(this),this.d.Ic(e)},eUe.Fb=function(e){return e===this||(efH(this),ecX(this.d,e))},eUe.Hb=function(){return efH(this),esj(this.d)},eUe.Kc=function(){return efH(this),new PS(this)},eUe.Mc=function(e){var t;return efH(this),(t=this.d.Mc(e))&&(--this.f.d,jY(this)),t},eUe.gc=function(){return xw(this)},eUe.Nc=function(){return efH(this),this.d.Nc()},eUe.Ib=function(){return efH(this),efF(this.d)},Y6(eUy,"AbstractMapBasedMultimap/WrappedCollection",541);var e1H=RL(eUS,"List");eTS(728,541,{20:1,28:1,14:1,15:1},Fo),eUe.ad=function(e){er9(this,e)},eUe.Nc=function(){return efH(this),this.d.Nc()},eUe.Vc=function(e,t){var n;efH(this),n=this.d.dc(),Pp(this.d,15).Vc(e,t),++this.a.d,n&&CP(this)},eUe.Wc=function(e,t){var n,r,i;return!t.dc()&&(i=(efH(this),this.d.gc()),(n=Pp(this.d,15).Wc(e,t))&&(r=this.d.gc(),this.a.d+=r-i,0==i&&CP(this)),n)},eUe.Xb=function(e){return efH(this),Pp(this.d,15).Xb(e)},eUe.Xc=function(e){return efH(this),Pp(this.d,15).Xc(e)},eUe.Yc=function(){return efH(this),new Mb(this)},eUe.Zc=function(e){return efH(this),new HM(this,e)},eUe.$c=function(e){var t;return efH(this),t=Pp(this.d,15).$c(e),--this.a.d,jY(this),t},eUe._c=function(e,t){return efH(this),Pp(this.d,15)._c(e,t)},eUe.bd=function(e,t){return efH(this),Vu(this.a,this.e,Pp(this.d,15).bd(e,t),this.b?this.b:this)},Y6(eUy,"AbstractMapBasedMultimap/WrappedList",728),eTS(1096,728,{20:1,28:1,14:1,15:1,54:1},A7),Y6(eUy,"AbstractMapBasedMultimap/RandomAccessWrappedList",1096),eTS(620,1,eUE,PS),eUe.Nb=function(e){F9(this,e)},eUe.Ob=function(){return UW(this),this.b.Ob()},eUe.Pb=function(){return UW(this),this.b.Pb()},eUe.Qb=function(){OG(this)},Y6(eUy,"AbstractMapBasedMultimap/WrappedCollection/WrappedIterator",620),eTS(729,620,eUC,Mb,HM),eUe.Qb=function(){OG(this)},eUe.Rb=function(e){var t;t=0==xw(this.a),(UW(this),Pp(this.b,125)).Rb(e),++this.a.a.d,t&&CP(this.a)},eUe.Sb=function(){return(UW(this),Pp(this.b,125)).Sb()},eUe.Tb=function(){return(UW(this),Pp(this.b,125)).Tb()},eUe.Ub=function(){return(UW(this),Pp(this.b,125)).Ub()},eUe.Vb=function(){return(UW(this),Pp(this.b,125)).Vb()},eUe.Wb=function(e){(UW(this),Pp(this.b,125)).Wb(e)},Y6(eUy,"AbstractMapBasedMultimap/WrappedList/WrappedListIterator",729),eTS(727,541,eUA,L3),eUe.Nc=function(){return efH(this),this.d.Nc()},Y6(eUy,"AbstractMapBasedMultimap/WrappedSortedSet",727),eTS(1095,727,eUL,TB),Y6(eUy,"AbstractMapBasedMultimap/WrappedNavigableSet",1095),eTS(1094,541,eUM,L4),eUe.Nc=function(){return efH(this),this.d.Nc()},Y6(eUy,"AbstractMapBasedMultimap/WrappedSet",1094),eTS(1103,1,{},o),eUe.Kb=function(e){return Xb(Pp(e,42))},Y6(eUy,"AbstractMapBasedMultimap/lambda$1$Type",1103),eTS(1102,1,{},lt),eUe.Kb=function(e){return new wD(this.a,e)},Y6(eUy,"AbstractMapBasedMultimap/lambda$2$Type",1102);var e1$=RL(eUS,"Map/Entry");eTS(345,1,eUI),eUe.Fb=function(e){var t;return!!M4(e,42)&&(t=Pp(e,42),BG(this.cd(),t.cd())&&BG(this.dd(),t.dd()))},eUe.Hb=function(){var e,t;return e=this.cd(),t=this.dd(),(null==e?0:esj(e))^(null==t?0:esj(t))},eUe.ed=function(e){throw p7(new bO)},eUe.Ib=function(){return this.cd()+"="+this.dd()},Y6(eUy,eUD,345),eTS(1988,28,eUx),eUe.$b=function(){this.fd().$b()},eUe.Hc=function(e){var t;return!!M4(e,42)&&(t=Pp(e,42),Kr(this.fd(),t.cd(),t.dd()))},eUe.Mc=function(e){var t;return!!M4(e,42)&&(t=Pp(e,42),Ki(this.fd(),t.cd(),t.dd()))},eUe.gc=function(){return this.fd().d},Y6(eUy,"Multimaps/Entries",1988),eTS(733,1988,eUx,ln),eUe.Kc=function(){return this.a.kc()},eUe.fd=function(){return this.a},eUe.Nc=function(){return this.a.lc()},Y6(eUy,"AbstractMultimap/Entries",733),eTS(734,733,eUM,mz),eUe.Nc=function(){return this.a.lc()},eUe.Fb=function(e){return eEB(this,e)},eUe.Hb=function(){return eie(this)},Y6(eUy,"AbstractMultimap/EntrySet",734),eTS(735,28,eUx,lr),eUe.$b=function(){this.a.$b()},eUe.Hc=function(e){return eun(this.a,e)},eUe.Kc=function(){return this.a.nc()},eUe.gc=function(){return this.a.d},eUe.Nc=function(){return this.a.oc()},Y6(eUy,"AbstractMultimap/Values",735),eTS(1989,28,{835:1,20:1,28:1,14:1}),eUe.Jc=function(e){Y8(e),Uz(this).Jc(new lS(e))},eUe.Nc=function(){var e;return ew4(e=Uz(this).Nc(),new y,64|1296&e.qd(),this.a.d)},eUe.Fc=function(e){return g6(),!0},eUe.Gc=function(e){return Y8(this),Y8(e),M4(e,543)?KM(Pp(e,835)):!e.dc()&&eel(this,e.Kc())},eUe.Hc=function(e){var t;return((t=Pp(ecA(HU(this.a),e),14))?t.gc():0)>0},eUe.Fb=function(e){return eMc(this,e)},eUe.Hb=function(){return esj(Uz(this))},eUe.dc=function(){return Uz(this).dc()},eUe.Mc=function(e){return ekJ(this,e,1)>0},eUe.Ib=function(){return efF(Uz(this))},Y6(eUy,"AbstractMultiset",1989),eTS(1991,1970,eUM),eUe.$b=function(){enK(this.a.a)},eUe.Hc=function(e){var t,n;return!!M4(e,492)&&(n=Pp(e,416),!(0>=Pp(n.a.dd(),14).gc())&&(t=GB(this.a,n.a.cd()))==Pp(n.a.dd(),14).gc())},eUe.Mc=function(e){var t,n,r,i;return!!M4(e,492)&&(t=(n=Pp(e,416)).a.cd(),0!=(r=Pp(n.a.dd(),14).gc()))&&ekQ(i=this.a,t,r)},Y6(eUy,"Multisets/EntrySet",1991),eTS(1109,1991,eUM,li),eUe.Kc=function(){return new ga(Fd(HU(this.a.a)).Kc())},eUe.gc=function(){return HU(this.a.a).gc()},Y6(eUy,"AbstractMultiset/EntrySet",1109),eTS(619,726,eU_),eUe.hc=function(){return this.gd()},eUe.jc=function(){return this.hd()},eUe.cc=function(e){return this.jd(e)},eUe.fc=function(e){return this.kd(e)},eUe.Zb=function(){var e;return(e=this.f)||(this.f=this.ac())},eUe.hd=function(){return Hj(),Hj(),e2a},eUe.Fb=function(e){return es6(this,e)},eUe.jd=function(e){return Pp(Zq(this,e),21)},eUe.kd=function(e){return Pp(eu8(this,e),21)},eUe.mc=function(e){return Hj(),new vd(Pp(e,21))},eUe.pc=function(e,t){return new L4(this,e,Pp(t,21))},Y6(eUy,"AbstractSetMultimap",619),eTS(1657,619,eU_),eUe.hc=function(){return new yB(this.b)},eUe.gd=function(){return new yB(this.b)},eUe.jc=function(){return Bo(new yB(this.b))},eUe.hd=function(){return Bo(new yB(this.b))},eUe.cc=function(e){return Pp(Pp(Zq(this,e),21),84)},eUe.jd=function(e){return Pp(Pp(Zq(this,e),21),84)},eUe.fc=function(e){return Pp(Pp(eu8(this,e),21),84)},eUe.kd=function(e){return Pp(Pp(eu8(this,e),21),84)},eUe.mc=function(e){return M4(e,271)?Bo(Pp(e,271)):(Hj(),new O4(Pp(e,84)))},eUe.Zb=function(){var e;return(e=this.f)||(this.f=M4(this.c,171)?new LJ(this,Pp(this.c,171)):M4(this.c,161)?new LX(this,Pp(this.c,161)):new wI(this,this.c))},eUe.pc=function(e,t){return M4(t,271)?new TB(this,e,Pp(t,271)):new L3(this,e,Pp(t,84))},Y6(eUy,"AbstractSortedSetMultimap",1657),eTS(1658,1657,eU_),eUe.Zb=function(){var e;return Pp(Pp((e=this.f)||(this.f=M4(this.c,171)?new LJ(this,Pp(this.c,171)):M4(this.c,161)?new LX(this,Pp(this.c,161)):new wI(this,this.c)),161),171)},eUe.ec=function(){var e;return Pp(Pp((e=this.i)||(this.i=M4(this.c,171)?new wm(this,Pp(this.c,171)):M4(this.c,161)?new wb(this,Pp(this.c,161)):new OC(this,this.c)),84),271)},eUe.bc=function(){return M4(this.c,171)?new wm(this,Pp(this.c,171)):M4(this.c,161)?new wb(this,Pp(this.c,161)):new OC(this,this.c)},Y6(eUy,"AbstractSortedKeySortedSetMultimap",1658),eTS(2010,1,{1947:1}),eUe.Fb=function(e){return ev7(this,e)},eUe.Hb=function(){var e;return eoP((e=this.g)||(this.g=new la(this)))},eUe.Ib=function(){var e;return ewb((e=this.f)||(this.f=new OP(this)))},Y6(eUy,"AbstractTable",2010),eTS(665,eUT,eUM,la),eUe.$b=function(){g5()},eUe.Hc=function(e){var t,n;return!!M4(e,468)&&(t=Pp(e,682),!!(n=Pp(ecA(Y7(this.a),xh(t.c.e,t.b)),83))&&ecC(n.vc(),new wD(xh(t.c.c,t.a),X_(t.c,t.b,t.a))))},eUe.Kc=function(){return $e(this.a)},eUe.Mc=function(e){var t,n;return!!M4(e,468)&&(t=Pp(e,682),!!(n=Pp(ecA(Y7(this.a),xh(t.c.e,t.b)),83))&&ecI(n.vc(),new wD(xh(t.c.c,t.a),X_(t.c,t.b,t.a))))},eUe.gc=function(){return R9(this.a)},eUe.Nc=function(){return KH(this.a)},Y6(eUy,"AbstractTable/CellSet",665),eTS(1928,28,eUx,lo),eUe.$b=function(){g5()},eUe.Hc=function(e){return ewx(this.a,e)},eUe.Kc=function(){return $t(this.a)},eUe.gc=function(){return R9(this.a)},eUe.Nc=function(){return Kd(this.a)},Y6(eUy,"AbstractTable/Values",1928),eTS(1632,1631,eU_),Y6(eUy,"ArrayListMultimapGwtSerializationDependencies",1632),eTS(513,1632,eU_,gQ,G$),eUe.hc=function(){return new XM(this.a)},eUe.a=0,Y6(eUy,"ArrayListMultimap",513),eTS(664,2010,{664:1,1947:1,3:1},exj),Y6(eUy,"ArrayTable",664),eTS(1924,386,eUw,OI),eUe.Xb=function(e){return new eo7(this.a,e)},Y6(eUy,"ArrayTable/1",1924),eTS(1925,1,{},c5),eUe.ld=function(e){return new eo7(this.a,e)},Y6(eUy,"ArrayTable/1methodref$getCell$Type",1925),eTS(2011,1,{682:1}),eUe.Fb=function(e){var t;return e===this||!!M4(e,468)&&(t=Pp(e,682),BG(xh(this.c.e,this.b),xh(t.c.e,t.b))&&BG(xh(this.c.c,this.a),xh(t.c.c,t.a))&&BG(X_(this.c,this.b,this.a),X_(t.c,t.b,t.a)))},eUe.Hb=function(){return euF(eow(vx(e1R,1),eUp,1,5,[xh(this.c.e,this.b),xh(this.c.c,this.a),X_(this.c,this.b,this.a)]))},eUe.Ib=function(){return"("+xh(this.c.e,this.b)+","+xh(this.c.c,this.a)+")="+X_(this.c,this.b,this.a)},Y6(eUy,"Tables/AbstractCell",2011),eTS(468,2011,{468:1,682:1},eo7),eUe.a=0,eUe.b=0,eUe.d=0,Y6(eUy,"ArrayTable/2",468),eTS(1927,1,{},c8),eUe.ld=function(e){return Qo(this.a,e)},Y6(eUy,"ArrayTable/2methodref$getValue$Type",1927),eTS(1926,386,eUw,OD),eUe.Xb=function(e){return Qo(this.a,e)},Y6(eUy,"ArrayTable/3",1926),eTS(1979,1967,eUk),eUe.$b=function(){RG(this.kc())},eUe.vc=function(){return new lx(this)},eUe.lc=function(){return new Uq(this.kc(),this.gc())},Y6(eUy,"Maps/IteratorBasedAbstractMap",1979),eTS(828,1979,eUk),eUe.$b=function(){throw p7(new bO)},eUe._b=function(e){return yE(this.c,e)},eUe.kc=function(){return new ON(this,this.c.b.c.gc())},eUe.lc=function(){return Rj(this.c.b.c.gc(),16,new c9(this))},eUe.xc=function(e){var t;return(t=Pp(Iq(this.c,e),19))?this.nd(t.a):null},eUe.dc=function(){return this.c.b.c.dc()},eUe.ec=function(){return Fl(this.c)},eUe.zc=function(e,t){var n;if(!(n=Pp(Iq(this.c,e),19)))throw p7(new gL(this.md()+" "+e+" not in "+Fl(this.c)));return this.od(n.a,t)},eUe.Bc=function(e){throw p7(new bO)},eUe.gc=function(){return this.c.b.c.gc()},Y6(eUy,"ArrayTable/ArrayMap",828),eTS(1923,1,{},c9),eUe.ld=function(e){return Bs(this.a,e)},Y6(eUy,"ArrayTable/ArrayMap/0methodref$getEntry$Type",1923),eTS(1921,345,eUI,wk),eUe.cd=function(){return OB(this.a,this.b)},eUe.dd=function(){return this.a.nd(this.b)},eUe.ed=function(e){return this.a.od(this.b,e)},eUe.b=0,Y6(eUy,"ArrayTable/ArrayMap/1",1921),eTS(1922,386,eUw,ON),eUe.Xb=function(e){return Bs(this.a,e)},Y6(eUy,"ArrayTable/ArrayMap/2",1922),eTS(1920,828,eUk,F2),eUe.md=function(){return"Column"},eUe.nd=function(e){return X_(this.b,this.a,e)},eUe.od=function(e,t){return eoy(this.b,this.a,e,t)},eUe.a=0,Y6(eUy,"ArrayTable/Row",1920),eTS(829,828,eUk,OP),eUe.nd=function(e){return new F2(this.a,e)},eUe.zc=function(e,t){return Pp(t,83),g8()},eUe.od=function(e,t){return Pp(t,83),g9()},eUe.md=function(){return"Row"},Y6(eUy,"ArrayTable/RowMap",829),eTS(1120,1,eUj,wx),eUe.qd=function(){return -262&this.a.qd()},eUe.rd=function(){return this.a.rd()},eUe.Nb=function(e){this.a.Nb(new ww(e,this.b))},eUe.sd=function(e){return this.a.sd(new wy(e,this.b))},Y6(eUy,"CollectSpliterators/1",1120),eTS(1121,1,eUF,wy),eUe.td=function(e){this.a.td(this.b.Kb(e))},Y6(eUy,"CollectSpliterators/1/lambda$0$Type",1121),eTS(1122,1,eUF,ww),eUe.td=function(e){this.a.td(this.b.Kb(e))},Y6(eUy,"CollectSpliterators/1/lambda$1$Type",1122),eTS(1123,1,eUj,K4),eUe.qd=function(){return this.a},eUe.rd=function(){return this.d&&(this.b=MS(this.b,this.d.rd())),MS(this.b,0)},eUe.Nb=function(e){this.d&&(this.d.Nb(e),this.d=null),this.c.Nb(new wv(this.e,e)),this.b=0},eUe.sd=function(e){for(;;){if(this.d&&this.d.sd(e))return xg(this.b,eUY)&&(this.b=efe(this.b,1)),!0;if(this.d=null,!this.c.sd(new w_(this,this.e)))return!1}},eUe.a=0,eUe.b=0,Y6(eUy,"CollectSpliterators/1FlatMapSpliterator",1123),eTS(1124,1,eUF,w_),eUe.td=function(e){Iv(this.a,this.b,e)},Y6(eUy,"CollectSpliterators/1FlatMapSpliterator/lambda$0$Type",1124),eTS(1125,1,eUF,wv),eUe.td=function(e){M8(this.b,this.a,e)},Y6(eUy,"CollectSpliterators/1FlatMapSpliterator/lambda$1$Type",1125),eTS(1117,1,eUj,Ig),eUe.qd=function(){return 16464|this.b},eUe.rd=function(){return this.a.rd()},eUe.Nb=function(e){this.a.xe(new wS(e,this.c))},eUe.sd=function(e){return this.a.ye(new wE(e,this.c))},eUe.b=0,Y6(eUy,"CollectSpliterators/1WithCharacteristics",1117),eTS(1118,1,eUB,wE),eUe.ud=function(e){this.a.td(this.b.ld(e))},Y6(eUy,"CollectSpliterators/1WithCharacteristics/lambda$0$Type",1118),eTS(1119,1,eUB,wS),eUe.ud=function(e){this.a.td(this.b.ld(e))},Y6(eUy,"CollectSpliterators/1WithCharacteristics/lambda$1$Type",1119),eTS(245,1,eUU),eUe.wd=function(e){return this.vd(Pp(e,245))},eUe.vd=function(e){var t;return e==(m2(),e0d)?1:e==(m3(),e0f)?-1:0!=(t=(Rg(),eiK(this.a,e.a)))?t:M4(this,519)==M4(e,519)?0:M4(this,519)?1:-1},eUe.zd=function(){return this.a},eUe.Fb=function(e){return ehd(this,e)},Y6(eUy,"Cut",245),eTS(1761,245,eUU,vb),eUe.vd=function(e){return e==this?0:1},eUe.xd=function(e){throw p7(new b_)},eUe.yd=function(e){e.a+="+∞)"},eUe.zd=function(){throw p7(new gC(eUH))},eUe.Hb=function(){return wK(),ebh(this)},eUe.Ad=function(e){return!1},eUe.Ib=function(){return"+∞"},Y6(eUy,"Cut/AboveAll",1761),eTS(519,245,{245:1,519:1,3:1,35:1},OW),eUe.xd=function(e){xT((e.a+="(",e),this.a)},eUe.yd=function(e){Bd(xT(e,this.a),93)},eUe.Hb=function(){return~esj(this.a)},eUe.Ad=function(e){return Rg(),0>eiK(this.a,e)},eUe.Ib=function(){return"/"+this.a+"\\"},Y6(eUy,"Cut/AboveValue",519),eTS(1760,245,eUU,vm),eUe.vd=function(e){return e==this?0:-1},eUe.xd=function(e){e.a+="(-∞"},eUe.yd=function(e){throw p7(new b_)},eUe.zd=function(){throw p7(new gC(eUH))},eUe.Hb=function(){return wK(),ebh(this)},eUe.Ad=function(e){return!0},eUe.Ib=function(){return"-∞"},Y6(eUy,"Cut/BelowAll",1760),eTS(1762,245,eUU,OK),eUe.xd=function(e){xT((e.a+="[",e),this.a)},eUe.yd=function(e){Bd(xT(e,this.a),41)},eUe.Hb=function(){return esj(this.a)},eUe.Ad=function(e){return Rg(),0>=eiK(this.a,e)},eUe.Ib=function(){return"\\"+this.a+"/"},Y6(eUy,"Cut/BelowValue",1762),eTS(537,1,eU$),eUe.Jc=function(e){qX(this,e)},eUe.Ib=function(){return elq(Pp(H6(this,"use Optional.orNull() instead of Optional.or(null)"),20).Kc())},Y6(eUy,"FluentIterable",537),eTS(433,537,eU$,xq),eUe.Kc=function(){return new Fa(OH(this.a.Kc(),new c))},Y6(eUy,"FluentIterable/2",433),eTS(1046,537,eU$,xZ),eUe.Kc=function(){return Y_(this)},Y6(eUy,"FluentIterable/3",1046),eTS(708,386,eUw,Oj),eUe.Xb=function(e){return this.a[e].Kc()},Y6(eUy,"FluentIterable/3/1",708),eTS(1972,1,{}),eUe.Ib=function(){return efF(this.Bd().b)},Y6(eUy,"ForwardingObject",1972),eTS(1973,1972,eUz),eUe.Bd=function(){return this.Cd()},eUe.Jc=function(e){qX(this,e)},eUe.Lc=function(){return this.Oc()},eUe.Nc=function(){return new Gq(this,0)},eUe.Oc=function(){return new R1(null,this.Nc())},eUe.Fc=function(e){return this.Cd(),yD()},eUe.Gc=function(e){return this.Cd(),yN()},eUe.$b=function(){this.Cd(),yP()},eUe.Hc=function(e){return this.Cd().Hc(e)},eUe.Ic=function(e){return this.Cd().Ic(e)},eUe.dc=function(){return this.Cd().b.dc()},eUe.Kc=function(){return this.Cd().Kc()},eUe.Mc=function(e){return this.Cd(),yR()},eUe.gc=function(){return this.Cd().b.gc()},eUe.Pc=function(){return this.Cd().Pc()},eUe.Qc=function(e){return this.Cd().Qc(e)},Y6(eUy,"ForwardingCollection",1973),eTS(1980,28,eUG),eUe.Kc=function(){return this.Ed()},eUe.Fc=function(e){throw p7(new bO)},eUe.Gc=function(e){throw p7(new bO)},eUe.$b=function(){throw p7(new bO)},eUe.Hc=function(e){return null!=e&&eds(this,e,!1)},eUe.Dd=function(){switch(this.gc()){case 0:return Bx(),Bx(),e0h;case 1:return Bx(),new Rz(Y8(this.Ed().Pb()));default:return new F3(this,this.Pc())}},eUe.Mc=function(e){throw p7(new bO)},Y6(eUy,"ImmutableCollection",1980),eTS(712,1980,eUG,bb),eUe.Kc=function(){return JJ(this.a.Kc())},eUe.Hc=function(e){return null!=e&&this.a.Hc(e)},eUe.Ic=function(e){return this.a.Ic(e)},eUe.dc=function(){return this.a.dc()},eUe.Ed=function(){return JJ(this.a.Kc())},eUe.gc=function(){return this.a.gc()},eUe.Pc=function(){return this.a.Pc()},eUe.Qc=function(e){return this.a.Qc(e)},eUe.Ib=function(){return efF(this.a)},Y6(eUy,"ForwardingImmutableCollection",712),eTS(152,1980,eUW),eUe.Kc=function(){return this.Ed()},eUe.Yc=function(){return this.Fd(0)},eUe.Zc=function(e){return this.Fd(e)},eUe.ad=function(e){er9(this,e)},eUe.Nc=function(){return new Gq(this,16)},eUe.bd=function(e,t){return this.Gd(e,t)},eUe.Vc=function(e,t){throw p7(new bO)},eUe.Wc=function(e,t){throw p7(new bO)},eUe.Fb=function(e){return eTJ(this,e)},eUe.Hb=function(){return eaI(this)},eUe.Xc=function(e){return null==e?-1:emx(this,e)},eUe.Ed=function(){return this.Fd(0)},eUe.Fd=function(e){return AR(this,e)},eUe.$c=function(e){throw p7(new bO)},eUe._c=function(e,t){throw p7(new bO)},eUe.Gd=function(e,t){var n;return ecT((n=new wz(this),new Gz(n,e,t)))},Y6(eUy,"ImmutableList",152),eTS(2006,152,eUW),eUe.Kc=function(){return JJ(this.Hd().Kc())},eUe.bd=function(e,t){return ecT(this.Hd().bd(e,t))},eUe.Hc=function(e){return null!=e&&this.Hd().Hc(e)},eUe.Ic=function(e){return this.Hd().Ic(e)},eUe.Fb=function(e){return ecX(this.Hd(),e)},eUe.Xb=function(e){return xh(this,e)},eUe.Hb=function(){return esj(this.Hd())},eUe.Xc=function(e){return this.Hd().Xc(e)},eUe.dc=function(){return this.Hd().dc()},eUe.Ed=function(){return JJ(this.Hd().Kc())},eUe.gc=function(){return this.Hd().gc()},eUe.Gd=function(e,t){return ecT(this.Hd().bd(e,t))},eUe.Pc=function(){return this.Hd().Qc(Je(e1R,eUp,1,this.Hd().gc(),5,1))},eUe.Qc=function(e){return this.Hd().Qc(e)},eUe.Ib=function(){return efF(this.Hd())},Y6(eUy,"ForwardingImmutableList",2006),eTS(714,1,eUV),eUe.vc=function(){return Fc(this)},eUe.wc=function(e){ear(this,e)},eUe.ec=function(){return Fl(this)},eUe.yc=function(e,t,n){return el5(this,e,t,n)},eUe.Cc=function(){return this.Ld()},eUe.$b=function(){throw p7(new bO)},eUe._b=function(e){return null!=this.xc(e)},eUe.uc=function(e){return this.Ld().Hc(e)},eUe.Jd=function(){return new bm(this)},eUe.Kd=function(){return new bg(this)},eUe.Fb=function(e){return eua(this,e)},eUe.Hb=function(){return Fc(this).Hb()},eUe.dc=function(){return 0==this.gc()},eUe.zc=function(e,t){return g7()},eUe.Bc=function(e){throw p7(new bO)},eUe.Ib=function(){return eEo(this)},eUe.Ld=function(){return this.e?this.e:this.e=this.Kd()},eUe.c=null,eUe.d=null,eUe.e=null,Y6(eUy,"ImmutableMap",714),eTS(715,714,eUV),eUe._b=function(e){return yE(this,e)},eUe.uc=function(e){return w1(this.b,e)},eUe.Id=function(){return ecM(new lu(this))},eUe.Jd=function(){return ecM(Uk(this.b))},eUe.Kd=function(){return Dn(),new bb(UE(this.b))},eUe.Fb=function(e){return w2(this.b,e)},eUe.xc=function(e){return Iq(this,e)},eUe.Hb=function(){return esj(this.b.c)},eUe.dc=function(){return this.b.c.dc()},eUe.gc=function(){return this.b.c.gc()},eUe.Ib=function(){return efF(this.b.c)},Y6(eUy,"ForwardingImmutableMap",715),eTS(1974,1973,eUq),eUe.Bd=function(){return this.Md()},eUe.Cd=function(){return this.Md()},eUe.Nc=function(){return new Gq(this,1)},eUe.Fb=function(e){return e===this||this.Md().Fb(e)},eUe.Hb=function(){return this.Md().Hb()},Y6(eUy,"ForwardingSet",1974),eTS(1069,1974,eUq,lu),eUe.Bd=function(){return US(this.a.b)},eUe.Cd=function(){return US(this.a.b)},eUe.Hc=function(e){if(M4(e,42)&&null==Pp(e,42).cd())return!1;try{return wQ(US(this.a.b),e)}catch(t){if(t=eoa(t),M4(t,205))return!1;throw p7(t)}},eUe.Md=function(){return US(this.a.b)},eUe.Qc=function(e){var t;return t=$L(US(this.a.b),e),US(this.a.b).b.gc()=0?"+":"")+(n/60|0),t=Tt(eB4.Math.abs(n)%60),(e_E(),e2l)[this.q.getDay()]+" "+e2f[this.q.getMonth()]+" "+Tt(this.q.getDate())+" "+Tt(this.q.getHours())+":"+Tt(this.q.getMinutes())+":"+Tt(this.q.getSeconds())+" GMT"+e+t+" "+this.q.getFullYear()};var e1Q=Y6(eUS,"Date",199);eTS(1915,199,eHB,evI),eUe.a=!1,eUe.b=0,eUe.c=0,eUe.d=0,eUe.e=0,eUe.f=0,eUe.g=!1,eUe.i=0,eUe.j=0,eUe.k=0,eUe.n=0,eUe.o=0,eUe.p=0,Y6("com.google.gwt.i18n.shared.impl","DateRecord",1915),eTS(1966,1,{}),eUe.fe=function(){return null},eUe.ge=function(){return null},eUe.he=function(){return null},eUe.ie=function(){return null},eUe.je=function(){return null},Y6(eHU,"JSONValue",1966),eTS(216,1966,{216:1},lN,lL),eUe.Fb=function(e){return!!M4(e,216)&&W$(this.a,Pp(e,216).a)},eUe.ee=function(){return be},eUe.Hb=function(){return $n(this.a)},eUe.fe=function(){return this},eUe.Ib=function(){var e,t,n;for(t=0,n=new O0("["),e=this.a.length;t0&&(n.a+=","),xT(n,eep(this,t));return n.a+="]",n.a},Y6(eHU,"JSONArray",216),eTS(483,1966,{483:1},lC),eUe.ee=function(){return bt},eUe.ge=function(){return this},eUe.Ib=function(){return OQ(),""+this.a},eUe.a=!1,Y6(eHU,"JSONBoolean",483),eTS(985,60,eHr,gs),Y6(eHU,"JSONException",985),eTS(1023,1966,{},g),eUe.ee=function(){return bo},eUe.Ib=function(){return eUg},Y6(eHU,"JSONNull",1023),eTS(258,1966,{258:1},lI),eUe.Fb=function(e){return!!M4(e,258)&&this.a==Pp(e,258).a},eUe.ee=function(){return bn},eUe.Hb=function(){return Ti(this.a)},eUe.he=function(){return this},eUe.Ib=function(){return this.a+""},eUe.a=0,Y6(eHU,"JSONNumber",258),eTS(183,1966,{183:1},gu,lD),eUe.Fb=function(e){return!!M4(e,183)&&W$(this.a,Pp(e,183).a)},eUe.ee=function(){return br},eUe.Hb=function(){return $n(this.a)},eUe.ie=function(){return this},eUe.Ib=function(){var e,t,n,r,i,a,o;for(r=0,o=new O0("{"),e=!0,i=(n=a=erG(this,Je(e17,eUP,2,0,6,1))).length;r=0?":"+this.c:"")+")"},eUe.c=0;var e19=Y6(eUc,"StackTraceElement",310);e0c={3:1,475:1,35:1,2:1};var e17=Y6(eUc,eHa,2);eTS(107,418,{475:1},vs,vu,O1),Y6(eUc,"StringBuffer",107),eTS(100,418,{475:1},vc,vl,O0),Y6(eUc,"StringBuilder",100),eTS(687,73,eHZ,vf),Y6(eUc,"StringIndexOutOfBoundsException",687),eTS(2043,1,{}),eTS(844,1,{},N),eUe.Kb=function(e){return Pp(e,78).e},Y6(eUc,"Throwable/lambda$0$Type",844),eTS(41,60,{3:1,102:1,60:1,78:1,41:1},bO,gW),Y6(eUc,"UnsupportedOperationException",41),eTS(240,236,{3:1,35:1,236:1,240:1},eew,yY),eUe.wd=function(e){return eDG(this,Pp(e,240))},eUe.ke=function(){return eEu(eRy(this))},eUe.Fb=function(e){var t;return this===e||!!M4(e,240)&&(t=Pp(e,240),this.e==t.e&&0==eDG(this,t))},eUe.Hb=function(){var e;return 0!=this.b?this.b:this.a<54?(e=eap(this.f),this.b=jE(WM(e,-1)),this.b=33*this.b+jE(WM(Fv(e,32),-1)),this.b=17*this.b+zy(this.e),this.b):(this.b=17*ect(this.c)+zy(this.e),this.b)},eUe.Ib=function(){return eRy(this)},eUe.a=0,eUe.b=0,eUe.d=0,eUe.e=0,eUe.f=0;var e0e=Y6("java.math","BigDecimal",240);eTS(91,236,{3:1,35:1,236:1,91:1},ep4,XE,F7,ey$,eh6,TU),eUe.wd=function(e){return ehI(this,Pp(e,91))},eUe.ke=function(){return eEu(eBw(this,0))},eUe.Fb=function(e){return ef5(this,e)},eUe.Hb=function(){return ect(this)},eUe.Ib=function(){return eBw(this,0)},eUe.b=-2,eUe.c=0,eUe.d=0,eUe.e=0;var e0t=Y6("java.math","BigInteger",91);eTS(488,1967,eUk),eUe.$b=function(){Yy(this)},eUe._b=function(e){return F8(this,e)},eUe.uc=function(e){return euo(this,e,this.g)||euo(this,e,this.f)},eUe.vc=function(){return new fS(this)},eUe.xc=function(e){return Bp(this,e)},eUe.zc=function(e,t){return Um(this,e,t)},eUe.Bc=function(e){return Z3(this,e)},eUe.gc=function(){return wq(this)},Y6(eUS,"AbstractHashMap",488),eTS(261,eUT,eUM,fS),eUe.$b=function(){this.a.$b()},eUe.Hc=function(e){return KN(this,e)},eUe.Kc=function(){return new esz(this.a)},eUe.Mc=function(e){var t;return!!KN(this,e)&&(t=Pp(e,42).cd(),this.a.Bc(t),!0)},eUe.gc=function(){return this.a.gc()},Y6(eUS,"AbstractHashMap/EntrySet",261),eTS(262,1,eUE,esz),eUe.Nb=function(e){F9(this,e)},eUe.Pb=function(){return etz(this)},eUe.Ob=function(){return this.b},eUe.Qb=function(){JM(this)},eUe.b=!1,Y6(eUS,"AbstractHashMap/EntrySetIterator",262),eTS(417,1,eUE,fE),eUe.Nb=function(e){F9(this,e)},eUe.Ob=function(){return Et(this)},eUe.Pb=function(){return HL(this)},eUe.Qb=function(){BH(this)},eUe.b=0,eUe.c=-1,Y6(eUS,"AbstractList/IteratorImpl",417),eTS(96,417,eUC,KB),eUe.Qb=function(){BH(this)},eUe.Rb=function(e){CD(this,e)},eUe.Sb=function(){return this.b>0},eUe.Tb=function(){return this.b},eUe.Ub=function(){return A5(this.b>0),this.a.Xb(this.c=--this.b)},eUe.Vb=function(){return this.b-1},eUe.Wb=function(e){A4(-1!=this.c),this.a._c(this.c,e)},Y6(eUS,"AbstractList/ListIteratorImpl",96),eTS(219,52,eU6,Gz),eUe.Vc=function(e,t){Gp(e,this.b),this.c.Vc(this.a+e,t),++this.b},eUe.Xb=function(e){return GK(e,this.b),this.c.Xb(this.a+e)},eUe.$c=function(e){var t;return GK(e,this.b),t=this.c.$c(this.a+e),--this.b,t},eUe._c=function(e,t){return GK(e,this.b),this.c._c(this.a+e,t)},eUe.gc=function(){return this.b},eUe.a=0,eUe.b=0,Y6(eUS,"AbstractList/SubList",219),eTS(384,eUT,eUM,fk),eUe.$b=function(){this.a.$b()},eUe.Hc=function(e){return this.a._b(e)},eUe.Kc=function(){var e;return e=this.a.vc().Kc(),new fx(e)},eUe.Mc=function(e){return!!this.a._b(e)&&(this.a.Bc(e),!0)},eUe.gc=function(){return this.a.gc()},Y6(eUS,"AbstractMap/1",384),eTS(691,1,eUE,fx),eUe.Nb=function(e){F9(this,e)},eUe.Ob=function(){return this.a.Ob()},eUe.Pb=function(){var e;return(e=Pp(this.a.Pb(),42)).cd()},eUe.Qb=function(){this.a.Qb()},Y6(eUS,"AbstractMap/1/1",691),eTS(226,28,eUx,fT),eUe.$b=function(){this.a.$b()},eUe.Hc=function(e){return this.a.uc(e)},eUe.Kc=function(){var e;return e=this.a.vc().Kc(),new fN(e)},eUe.gc=function(){return this.a.gc()},Y6(eUS,"AbstractMap/2",226),eTS(294,1,eUE,fN),eUe.Nb=function(e){F9(this,e)},eUe.Ob=function(){return this.a.Ob()},eUe.Pb=function(){var e;return(e=Pp(this.a.Pb(),42)).dd()},eUe.Qb=function(){this.a.Qb()},Y6(eUS,"AbstractMap/2/1",294),eTS(484,1,{484:1,42:1}),eUe.Fb=function(e){var t;return!!M4(e,42)&&(t=Pp(e,42),UT(this.d,t.cd())&&UT(this.e,t.dd()))},eUe.cd=function(){return this.d},eUe.dd=function(){return this.e},eUe.Hb=function(){return TK(this.d)^TK(this.e)},eUe.ed=function(e){return CL(this,e)},eUe.Ib=function(){return this.d+"="+this.e},Y6(eUS,"AbstractMap/AbstractEntry",484),eTS(383,484,{484:1,383:1,42:1},EE),Y6(eUS,"AbstractMap/SimpleEntry",383),eTS(1984,1,e$t),eUe.Fb=function(e){var t;return!!M4(e,42)&&(t=Pp(e,42),UT(this.cd(),t.cd())&&UT(this.dd(),t.dd()))},eUe.Hb=function(){return TK(this.cd())^TK(this.dd())},eUe.Ib=function(){return this.cd()+"="+this.dd()},Y6(eUS,eUD,1984),eTS(1992,1967,eUO),eUe.tc=function(e){return ZO(this,e)},eUe._b=function(e){return IY(this,e)},eUe.vc=function(){return new fj(this)},eUe.xc=function(e){var t;return xu(esq(this,t=e))},eUe.ec=function(){return new fP(this)},Y6(eUS,"AbstractNavigableMap",1992),eTS(739,eUT,eUM,fj),eUe.Hc=function(e){return M4(e,42)&&ZO(this.b,Pp(e,42))},eUe.Kc=function(){return new C1(this.b)},eUe.Mc=function(e){var t;return!!M4(e,42)&&(t=Pp(e,42),Jl(this.b,t))},eUe.gc=function(){return this.b.c},Y6(eUS,"AbstractNavigableMap/EntrySet",739),eTS(493,eUT,eUL,fP),eUe.Nc=function(){return new Ec(this)},eUe.$b=function(){gl(this.a)},eUe.Hc=function(e){return IY(this.a,e)},eUe.Kc=function(){var e;return e=new C1(new Ap(this.a).b),new fR(e)},eUe.Mc=function(e){return!!IY(this.a,e)&&(zS(this.a,e),!0)},eUe.gc=function(){return this.a.c},Y6(eUS,"AbstractNavigableMap/NavigableKeySet",493),eTS(494,1,eUE,fR),eUe.Nb=function(e){F9(this,e)},eUe.Ob=function(){return Et(this.a.a)},eUe.Pb=function(){var e;return(e=AJ(this.a)).cd()},eUe.Qb=function(){I6(this.a)},Y6(eUS,"AbstractNavigableMap/NavigableKeySet/1",494),eTS(2004,28,eUx),eUe.Fc=function(e){return Ja(e_s(this,e)),!0},eUe.Gc=function(e){return BJ(e),PG(e!=this,"Can't add a queue to itself"),er7(this,e)},eUe.$b=function(){for(;null!=eev(this););},Y6(eUS,"AbstractQueue",2004),eTS(302,28,{4:1,20:1,28:1,14:1},p1,GZ),eUe.Fc=function(e){return Vy(this,e),!0},eUe.$b=function(){qr(this)},eUe.Hc=function(e){return eos(new UN(this),e)},eUe.dc=function(){return gY(this)},eUe.Kc=function(){return new UN(this)},eUe.Mc=function(e){return zP(new UN(this),e)},eUe.gc=function(){return this.c-this.b&this.a.length-1},eUe.Nc=function(){return new Gq(this,272)},eUe.Qc=function(e){var t;return t=this.c-this.b&this.a.length-1,e.lengtht&&Bc(e,t,null),e},eUe.b=0,eUe.c=0,Y6(eUS,"ArrayDeque",302),eTS(446,1,eUE,UN),eUe.Nb=function(e){F9(this,e)},eUe.Ob=function(){return this.a!=this.b},eUe.Pb=function(){return ecn(this)},eUe.Qb=function(){enP(this)},eUe.a=0,eUe.b=0,eUe.c=-1,Y6(eUS,"ArrayDeque/IteratorImpl",446),eTS(12,52,e$n,p0,XM,I4),eUe.Vc=function(e,t){jO(this,e,t)},eUe.Fc=function(e){return P_(this,e)},eUe.Wc=function(e,t){return euP(this,e,t)},eUe.Gc=function(e){return eoc(this,e)},eUe.$b=function(){this.c=Je(e1R,eUp,1,0,5,1)},eUe.Hc=function(e){return -1!=QI(this,e,0)},eUe.Jc=function(e){ety(this,e)},eUe.Xb=function(e){return RJ(this,e)},eUe.Xc=function(e){return QI(this,e,0)},eUe.dc=function(){return 0==this.c.length},eUe.Kc=function(){return new fz(this)},eUe.$c=function(e){return ZV(this,e)},eUe.Mc=function(e){return QA(this,e)},eUe.Ud=function(e,t){GG(this,e,t)},eUe._c=function(e,t){return q1(this,e,t)},eUe.gc=function(){return this.c.length},eUe.ad=function(e){Mv(this,e)},eUe.Pc=function(){return AW(this)},eUe.Qc=function(e){return epg(this,e)};var e0n=Y6(eUS,"ArrayList",12);eTS(7,1,eUE,fz),eUe.Nb=function(e){F9(this,e)},eUe.Ob=function(){return My(this)},eUe.Pb=function(){return Wx(this)},eUe.Qb=function(){Yv(this)},eUe.a=0,eUe.b=-1,Y6(eUS,"ArrayList/1",7),eTS(2013,eB4.Function,{},S),eUe.te=function(e,t){return elN(e,t)},eTS(154,52,e$r,g$),eUe.Hc=function(e){return -1!=enW(this,e)},eUe.Jc=function(e){var t,n,r,i;for(BJ(e),n=this.a,r=0,i=n.length;r>>0).toString(16))},eUe.f=0,eUe.i=eH1;var e2X=Y6(e$N,"CNode",57);eTS(814,1,{},b6),Y6(e$N,"CNode/CNodeBuilder",814),eTS(1525,1,{},eh),eUe.Oe=function(e,t){return 0},eUe.Pe=function(e,t){return 0},Y6(e$N,e$R,1525),eTS(1790,1,{},ep),eUe.Le=function(e){var t,n,r,i,a,o,s,u,c,l,f,d,h,p,b;for(c=eHQ,r=new fz(e.a.b);r.ar.d.c||r.d.c==a.d.c&&r.d.b0?e+this.n.d+this.n.a:0},eUe.Se=function(){var e,t,n,r,i;if(i=0,this.e)this.b?i=this.b.a:this.a[1][1]&&(i=this.a[1][1].Se());else if(this.g)i=efV(this,evf(this,null,!0));else for(t=(etx(),eow(vx(e25,1),eU4,232,0,[e3D,e3N,e3P])),n=0,r=t.length;n0?i+this.n.b+this.n.c:0},eUe.Te=function(){var e,t,n,r,i;if(this.g)for(e=evf(this,null,!1),n=(etx(),eow(vx(e25,1),eU4,232,0,[e3D,e3N,e3P])),r=0,i=n.length;r0&&(r[0]+=this.d,n-=r[0]),r[2]>0&&(r[2]+=this.d,n-=r[2]),this.c.a=eB4.Math.max(0,n),this.c.d=t.d+e.d+(this.c.a-n)/2,r[1]=eB4.Math.max(r[1],n),ZP(this,e3N,t.d+e.d+r[0]-(r[1]-n)/2,r)},eUe.b=null,eUe.d=0,eUe.e=!1,eUe.f=!1,eUe.g=!1;var e28=0,e29=0;Y6(e$8,"GridContainerCell",1473),eTS(461,22,{3:1,35:1,22:1,461:1},EY);var e27=enw(e$8,"HorizontalLabelAlignment",461,e1G,G1,Dc);eTS(306,212,{212:1,306:1},zf,etr,$Y),eUe.Re=function(){return Rf(this)},eUe.Se=function(){return Rd(this)},eUe.a=0,eUe.c=!1;var e3e=Y6(e$8,"LabelCell",306);eTS(244,326,{212:1,326:1,244:1},eh5),eUe.Re=function(){return ek1(this)},eUe.Se=function(){return ek0(this)},eUe.Te=function(){eNE(this)},eUe.Ue=function(){eNM(this)},eUe.b=0,eUe.c=0,eUe.d=!1,Y6(e$8,"StripContainerCell",244),eTS(1626,1,eU9,e_),eUe.Mb=function(e){return gU(Pp(e,212))},Y6(e$8,"StripContainerCell/lambda$0$Type",1626),eTS(1627,1,{},eE),eUe.Fe=function(e){return Pp(e,212).Se()},Y6(e$8,"StripContainerCell/lambda$1$Type",1627),eTS(1628,1,eU9,eS),eUe.Mb=function(e){return gH(Pp(e,212))},Y6(e$8,"StripContainerCell/lambda$2$Type",1628),eTS(1629,1,{},ek),eUe.Fe=function(e){return Pp(e,212).Re()},Y6(e$8,"StripContainerCell/lambda$3$Type",1629),eTS(462,22,{3:1,35:1,22:1,462:1},EB);var e3t=enw(e$8,"VerticalLabelAlignment",462,e1G,G0,Dl);eTS(789,1,{},eFQ),eUe.c=0,eUe.d=0,eUe.k=0,eUe.s=0,eUe.t=0,eUe.v=!1,eUe.w=0,eUe.D=!1,Y6(eza,"NodeContext",789),eTS(1471,1,e$C,ex),eUe.ue=function(e,t){return To(Pp(e,61),Pp(t,61))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y6(eza,"NodeContext/0methodref$comparePortSides$Type",1471),eTS(1472,1,e$C,eT),eUe.ue=function(e,t){return ew8(Pp(e,111),Pp(t,111))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y6(eza,"NodeContext/1methodref$comparePortContexts$Type",1472),eTS(159,22,{3:1,35:1,22:1,159:1},ei_);var e3n=enw(eza,"NodeLabelLocation",159,e1G,epE,Df);eTS(111,1,{111:1},exz),eUe.a=!1,Y6(eza,"PortContext",111),eTS(1476,1,eUF,eM),eUe.td=function(e){yQ(Pp(e,306))},Y6(ezu,ezc,1476),eTS(1477,1,eU9,eO),eUe.Mb=function(e){return!!Pp(e,111).c},Y6(ezu,ezl,1477),eTS(1478,1,eUF,eA),eUe.td=function(e){yQ(Pp(e,111).c)},Y6(ezu,"LabelPlacer/lambda$2$Type",1478),eTS(1475,1,eUF,eC),eUe.td=function(e){Cn(),bu(Pp(e,111))},Y6(ezu,"NodeLabelAndSizeUtilities/lambda$0$Type",1475),eTS(790,1,eUF,Dx),eUe.td=function(e){_H(this.b,this.c,this.a,Pp(e,181))},eUe.a=!1,eUe.c=!1,Y6(ezu,"NodeLabelCellCreator/lambda$0$Type",790),eTS(1474,1,eUF,db),eUe.td=function(e){bB(this.a,Pp(e,181))},Y6(ezu,"PortContextCreator/lambda$0$Type",1474),eTS(1829,1,{},eI),Y6(ezd,"GreedyRectangleStripOverlapRemover",1829),eTS(1830,1,e$C,eL),eUe.ue=function(e,t){return Ay(Pp(e,222),Pp(t,222))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y6(ezd,"GreedyRectangleStripOverlapRemover/0methodref$compareByYCoordinate$Type",1830),eTS(1786,1,{},me),eUe.a=5,eUe.e=0,Y6(ezd,"RectangleStripOverlapRemover",1786),eTS(1787,1,e$C,eN),eUe.ue=function(e,t){return Aw(Pp(e,222),Pp(t,222))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y6(ezd,"RectangleStripOverlapRemover/0methodref$compareLeftRectangleBorders$Type",1787),eTS(1789,1,e$C,eP),eUe.ue=function(e,t){return YY(Pp(e,222),Pp(t,222))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y6(ezd,"RectangleStripOverlapRemover/1methodref$compareRightRectangleBorders$Type",1789),eTS(406,22,{3:1,35:1,22:1,406:1},EU);var e3r=enw(ezd,"RectangleStripOverlapRemover/OverlapRemovalDirection",406,e1G,Vn,Dd);eTS(222,1,{222:1},jH),Y6(ezd,"RectangleStripOverlapRemover/RectangleNode",222),eTS(1788,1,eUF,dm),eUe.td=function(e){emA(this.a,Pp(e,222))},Y6(ezd,"RectangleStripOverlapRemover/lambda$1$Type",1788),eTS(1304,1,e$C,eR),eUe.ue=function(e,t){return eRu(Pp(e,167),Pp(t,167))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y6(ezp,"PolyominoCompactor/CornerCasesGreaterThanRestComparator",1304),eTS(1307,1,{},ej),eUe.Kb=function(e){return Pp(e,324).a},Y6(ezp,"PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$0$Type",1307),eTS(1308,1,eU9,eF),eUe.Mb=function(e){return Pp(e,323).a},Y6(ezp,"PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$1$Type",1308),eTS(1309,1,eU9,eY),eUe.Mb=function(e){return Pp(e,323).a},Y6(ezp,"PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$2$Type",1309),eTS(1302,1,e$C,eB),eUe.ue=function(e,t){return eC8(Pp(e,167),Pp(t,167))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y6(ezp,"PolyominoCompactor/MinNumOfExtensionDirectionsComparator",1302),eTS(1305,1,{},eD),eUe.Kb=function(e){return Pp(e,324).a},Y6(ezp,"PolyominoCompactor/MinNumOfExtensionDirectionsComparator/lambda$0$Type",1305),eTS(767,1,e$C,eU),eUe.ue=function(e,t){return eaq(Pp(e,167),Pp(t,167))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y6(ezp,"PolyominoCompactor/MinNumOfExtensionsComparator",767),eTS(1300,1,e$C,eH),eUe.ue=function(e,t){return ery(Pp(e,321),Pp(t,321))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y6(ezp,"PolyominoCompactor/MinPerimeterComparator",1300),eTS(1301,1,e$C,e$),eUe.ue=function(e,t){return ebg(Pp(e,321),Pp(t,321))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y6(ezp,"PolyominoCompactor/MinPerimeterComparatorWithShape",1301),eTS(1303,1,e$C,ez),eUe.ue=function(e,t){return eIz(Pp(e,167),Pp(t,167))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y6(ezp,"PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator",1303),eTS(1306,1,{},eG),eUe.Kb=function(e){return Pp(e,324).a},Y6(ezp,"PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator/lambda$0$Type",1306),eTS(777,1,{},EC),eUe.Ce=function(e,t){return KG(this,Pp(e,46),Pp(t,167))},Y6(ezp,"SuccessorCombination",777),eTS(644,1,{},eW),eUe.Ce=function(e,t){var n;return exd((n=Pp(e,46),Pp(t,167),n))},Y6(ezp,"SuccessorJitter",644),eTS(643,1,{},eK),eUe.Ce=function(e,t){var n;return eAW((n=Pp(e,46),Pp(t,167),n))},Y6(ezp,"SuccessorLineByLine",643),eTS(568,1,{},eV),eUe.Ce=function(e,t){var n;return eMl((n=Pp(e,46),Pp(t,167),n))},Y6(ezp,"SuccessorManhattan",568),eTS(1356,1,{},eq),eUe.Ce=function(e,t){var n;return eAt((n=Pp(e,46),Pp(t,167),n))},Y6(ezp,"SuccessorMaxNormWindingInMathPosSense",1356),eTS(400,1,{},dg),eUe.Ce=function(e,t){return YO(this,e,t)},eUe.c=!1,eUe.d=!1,eUe.e=!1,eUe.f=!1,Y6(ezp,"SuccessorQuadrantsGeneric",400),eTS(1357,1,{},eZ),eUe.Kb=function(e){return Pp(e,324).a},Y6(ezp,"SuccessorQuadrantsGeneric/lambda$0$Type",1357),eTS(323,22,{3:1,35:1,22:1,323:1},EN),eUe.a=!1;var e3i=enw(ezy,ezw,323,e1G,Va,Dh);eTS(1298,1,{}),eUe.Ib=function(){var e,t,n,r,i,a;for(i=0,n=" ",e=ell(0);i=0?"b"+e+"["+q2(this.a)+"]":"b["+q2(this.a)+"]":"b_"+Ao(this)},Y6(ez0,"FBendpoint",559),eTS(282,134,{3:1,282:1,94:1,134:1},CH),eUe.Ib=function(){return q2(this)},Y6(ez0,"FEdge",282),eTS(231,134,{3:1,231:1,94:1,134:1},Z6);var e4_=Y6(ez0,"FGraph",231);eTS(447,357,{3:1,447:1,357:1,94:1,134:1},qp),eUe.Ib=function(){return null==this.b||0==this.b.length?"l["+q2(this.a)+"]":"l_"+this.b},Y6(ez0,"FLabel",447),eTS(144,357,{3:1,144:1,357:1,94:1,134:1},Bw),eUe.Ib=function(){return WH(this)},eUe.b=0,Y6(ez0,"FNode",144),eTS(2003,1,{}),eUe.bf=function(e){eD2(this,e)},eUe.cf=function(){emz(this)},eUe.d=0,Y6(ez3,"AbstractForceModel",2003),eTS(631,2003,{631:1},eaR),eUe.af=function(e,t){var n,r,i,a,o;return ekL(this.f,e,t),i=C5(MB(t.d),e.d),o=eB4.Math.sqrt(i.a*i.a+i.b*i.b),r=eB4.Math.max(0,o-B$(e.e)/2-B$(t.e)/2),a=(n=esT(this.e,e,t))>0?-YT(r,this.c)*n:Li(r,this.b)*Pp(e_k(e,(eCk(),e8M)),19).a,Ol(i,a/o),i},eUe.bf=function(e){eD2(this,e),this.a=Pp(e_k(e,(eCk(),e8g)),19).a,this.c=gP(LV(e_k(e,e8D))),this.b=gP(LV(e_k(e,e8A)))},eUe.df=function(e){return e0&&(a-=gg(r,this.a)*n),Ol(i,a*this.b/o),i},eUe.bf=function(e){var t,n,r,i,a,o,s;for(eD2(this,e),this.b=gP(LV(e_k(e,(eCk(),e8N)))),this.c=this.b/Pp(e_k(e,e8g),19).a,r=e.e.c.length,a=0,i=0,s=new fz(e.e);s.a0},eUe.a=0,eUe.b=0,eUe.c=0,Y6(ez3,"FruchtermanReingoldModel",632),eTS(849,1,e$2,cu),eUe.Qe=function(e){efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,ez4),""),"Force Model"),"Determines the model for force calculation."),e8a),(eSd(),tdv)),e4E),el8((epx(),tdh))))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,ez6),""),"Iterations"),"The number of iterations on the force model."),ell(300)),tdw),e16),el8(tdh)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,ez5),""),"Repulsive Power"),"Determines how many bend points are added to the edge; such bend points are regarded as repelling particles in the force model"),ell(0)),tdw),e16),el8(tdl)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,ez8),""),"FR Temperature"),"The temperature is used as a scaling factor for particle displacements."),ez9),tdg),e13),el8(tdh)))),K_(e,ez8,ez4,e8l),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,ez7),""),"Eades Repulsion"),"Factor for repulsive forces in Eades' model."),5),tdg),e13),el8(tdh)))),K_(e,ez7,ez4,e8s),eYi((new cc,e))},Y6(eGe,"ForceMetaDataProvider",849),eTS(424,22,{3:1,35:1,22:1,424:1},EH);var e4E=enw(eGe,"ForceModelStrategy",424,e1G,$8,Dm);eTS(988,1,e$2,cc),eUe.Qe=function(e){eYi(e)},Y6(eGe,"ForceOptions",988),eTS(989,1,{},tr),eUe.$e=function(){return new b0},eUe._e=function(e){},Y6(eGe,"ForceOptions/ForceFactory",989),eTS(850,1,e$2,cl),eUe.Qe=function(e){efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eGw),""),"Fixed Position"),"Prevent that the node is moved by the layout algorithm."),(OQ(),!1)),(eSd(),tdm)),e11),el8((epx(),tdd))))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eG_),""),"Desired Edge Length"),"Either specified for parent nodes or for individual edges, where the latter takes higher precedence."),100),tdg),e13),jL(tdh,eow(vx(e6Q,1),eU4,175,0,[tdl]))))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eGE),""),"Layout Dimension"),"Dimensions that are permitted to be altered during layout."),e8U),tdv),e4S),el8(tdh)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eGS),""),"Stress Epsilon"),"Termination criterion for the iterative process."),ez9),tdg),e13),el8(tdh)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eGk),""),"Iteration Limit"),"Maximum number of performed iterations. Takes higher precedence than 'epsilon'."),ell(eUu)),tdw),e16),el8(tdh)))),ejQ((new cf,e))},Y6(eGe,"StressMetaDataProvider",850),eTS(992,1,e$2,cf),eUe.Qe=function(e){ejQ(e)},Y6(eGe,"StressOptions",992),eTS(993,1,{},ti),eUe.$e=function(){return new C$},eUe._e=function(e){},Y6(eGe,"StressOptions/StressFactory",993),eTS(1128,209,ezL,C$),eUe.Ze=function(e,t){var n,r,i,a,o;for(ewG(t,eGT,1),gN(LK(eT9(e,(egq(),e8q))))?gN(LK(eT9(e,e80)))||zh(n=new df((_q(),new gM(e)))):eOs(new b0,e,eiI(t,1)),i=eo4(e),o=(r=eNx(this.a,i)).Kc();o.Ob();)!((a=Pp(o.Pb(),231)).e.c.length<=1)&&(eRa(this.b,a),eMn(this.b),ety(a.d,new ta));i=eYC(r),eYh(i),eEj(t)},Y6(eGO,"StressLayoutProvider",1128),eTS(1129,1,eUF,ta),eUe.td=function(e){ePd(Pp(e,447))},Y6(eGO,"StressLayoutProvider/lambda$0$Type",1129),eTS(990,1,{},bP),eUe.c=0,eUe.e=0,eUe.g=0,Y6(eGO,"StressMajorization",990),eTS(379,22,{3:1,35:1,22:1,379:1},E$);var e4S=enw(eGO,"StressMajorization/Dimension",379,e1G,G3,Dg);eTS(991,1,e$C,dE),eUe.ue=function(e,t){return IA(this.a,Pp(e,144),Pp(t,144))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y6(eGO,"StressMajorization/lambda$0$Type",991),eTS(1229,1,{},W8),Y6(eGL,"ElkLayered",1229),eTS(1230,1,eUF,to),eUe.td=function(e){exn(Pp(e,37))},Y6(eGL,"ElkLayered/lambda$0$Type",1230),eTS(1231,1,eUF,dS),eUe.td=function(e){IL(this.a,Pp(e,37))},Y6(eGL,"ElkLayered/lambda$1$Type",1231),eTS(1263,1,{},MC),Y6(eGL,"GraphConfigurator",1263),eTS(759,1,eUF,dk),eUe.td=function(e){e_1(this.a,Pp(e,10))},Y6(eGL,"GraphConfigurator/lambda$0$Type",759),eTS(760,1,{},ts),eUe.Kb=function(e){return evR(),new R1(null,new Gq(Pp(e,29).a,16))},Y6(eGL,"GraphConfigurator/lambda$1$Type",760),eTS(761,1,eUF,dx),eUe.td=function(e){e_1(this.a,Pp(e,10))},Y6(eGL,"GraphConfigurator/lambda$2$Type",761),eTS(1127,209,ezL,b3),eUe.Ze=function(e,t){var n;n=eN7(new mn,e),xc(eT9(e,(eBy(),taM)))===xc((eck(),tpz))?ef0(this.a,n,t):exD(this.a,n,t),eYr(new ch,n)},Y6(eGL,"LayeredLayoutProvider",1127),eTS(356,22,{3:1,35:1,22:1,356:1},Ez);var e4k=enw(eGL,"LayeredPhases",356,e1G,q4,Dv);eTS(1651,1,{},enX),eUe.i=0,Y6(eGC,"ComponentsToCGraphTransformer",1651),eTS(1652,1,{},tu),eUe.ef=function(e,t){return eB4.Math.min(null!=e.a?gP(e.a):e.c.i,null!=t.a?gP(t.a):t.c.i)},eUe.ff=function(e,t){return eB4.Math.min(null!=e.a?gP(e.a):e.c.i,null!=t.a?gP(t.a):t.c.i)},Y6(eGC,"ComponentsToCGraphTransformer/1",1652),eTS(81,1,{81:1}),eUe.i=0,eUe.k=!0,eUe.o=eH1;var e4x=Y6(eGI,"CNode",81);eTS(460,81,{460:1,81:1},Ah,eh3),eUe.Ib=function(){return""},Y6(eGC,"ComponentsToCGraphTransformer/CRectNode",460),eTS(1623,1,{},tc),Y6(eGC,"OneDimensionalComponentsCompaction",1623),eTS(1624,1,{},tl),eUe.Kb=function(e){return Gm(Pp(e,46))},eUe.Fb=function(e){return this===e},Y6(eGC,"OneDimensionalComponentsCompaction/lambda$0$Type",1624),eTS(1625,1,{},tf),eUe.Kb=function(e){return edl(Pp(e,46))},eUe.Fb=function(e){return this===e},Y6(eGC,"OneDimensionalComponentsCompaction/lambda$1$Type",1625),eTS(1654,1,{},Bv),Y6(eGI,"CGraph",1654),eTS(189,1,{189:1},eh4),eUe.b=0,eUe.c=0,eUe.e=0,eUe.g=!0,eUe.i=eH1,Y6(eGI,"CGroup",189),eTS(1653,1,{},tb),eUe.ef=function(e,t){return eB4.Math.max(null!=e.a?gP(e.a):e.c.i,null!=t.a?gP(t.a):t.c.i)},eUe.ff=function(e,t){return eB4.Math.max(null!=e.a?gP(e.a):e.c.i,null!=t.a?gP(t.a):t.c.i)},Y6(eGI,e$R,1653),eTS(1655,1,{},exO),eUe.d=!1;var e4T=Y6(eGI,e$U,1655);eTS(1656,1,{},tm),eUe.Kb=function(e){return _T(),OQ(),0!=Pp(Pp(e,46).a,81).d.e},eUe.Fb=function(e){return this===e},Y6(eGI,e$H,1656),eTS(823,1,{},R$),eUe.a=!1,eUe.b=!1,eUe.c=!1,eUe.d=!1,Y6(eGI,e$$,823),eTS(1825,1,{},j$),Y6(eGD,e$z,1825);var e4M=RL(eGN,e$D);eTS(1826,1,{369:1},$h),eUe.Ke=function(e){eLh(this,Pp(e,466))},Y6(eGD,e$G,1826),eTS(1827,1,e$C,tg),eUe.ue=function(e,t){return Hy(Pp(e,81),Pp(t,81))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y6(eGD,e$W,1827),eTS(466,1,{466:1},E5),eUe.a=!1,Y6(eGD,e$K,466),eTS(1828,1,e$C,tv),eUe.ue=function(e,t){return evP(Pp(e,466),Pp(t,466))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y6(eGD,e$V,1828),eTS(140,1,{140:1},Se,PW),eUe.Fb=function(e){var t;return null!=e&&e4O==esF(e)&&(t=Pp(e,140),UT(this.c,t.c)&&UT(this.d,t.d))},eUe.Hb=function(){return euF(eow(vx(e1R,1),eUp,1,5,[this.c,this.d]))},eUe.Ib=function(){return"("+this.c+eUd+this.d+(this.a?"cx":"")+this.b+")"},eUe.a=!0,eUe.c=0,eUe.d=0;var e4O=Y6(eGN,"Point",140);eTS(405,22,{3:1,35:1,22:1,405:1},EG);var e4A=enw(eGN,"Point/Quadrant",405,e1G,Vo,Dy);eTS(1642,1,{},b5),eUe.b=null,eUe.c=null,eUe.d=null,eUe.e=null,eUe.f=null,Y6(eGN,"RectilinearConvexHull",1642),eTS(574,1,{369:1},epG),eUe.Ke=function(e){J4(this,Pp(e,140))},eUe.b=0,Y6(eGN,"RectilinearConvexHull/MaximalElementsEventHandler",574),eTS(1644,1,e$C,th),eUe.ue=function(e,t){return U3(LV(e),LV(t))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y6(eGN,"RectilinearConvexHull/MaximalElementsEventHandler/lambda$0$Type",1644),eTS(1643,1,{369:1},ete),eUe.Ke=function(e){eAo(this,Pp(e,140))},eUe.a=0,eUe.b=null,eUe.c=null,eUe.d=null,eUe.e=null,Y6(eGN,"RectilinearConvexHull/RectangleEventHandler",1643),eTS(1645,1,e$C,tp),eUe.ue=function(e,t){return WI(Pp(e,140),Pp(t,140))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y6(eGN,"RectilinearConvexHull/lambda$0$Type",1645),eTS(1646,1,e$C,td),eUe.ue=function(e,t){return WD(Pp(e,140),Pp(t,140))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y6(eGN,"RectilinearConvexHull/lambda$1$Type",1646),eTS(1647,1,e$C,ty),eUe.ue=function(e,t){return WP(Pp(e,140),Pp(t,140))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y6(eGN,"RectilinearConvexHull/lambda$2$Type",1647),eTS(1648,1,e$C,tw),eUe.ue=function(e,t){return WN(Pp(e,140),Pp(t,140))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y6(eGN,"RectilinearConvexHull/lambda$3$Type",1648),eTS(1649,1,e$C,t_),eUe.ue=function(e,t){return e_M(Pp(e,140),Pp(t,140))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y6(eGN,"RectilinearConvexHull/lambda$4$Type",1649),eTS(1650,1,{},Gf),Y6(eGN,"Scanline",1650),eTS(2005,1,{}),Y6(eGP,"AbstractGraphPlacer",2005),eTS(325,1,{325:1},Lm),eUe.mf=function(e){return!!this.nf(e)&&(exg(this.b,Pp(e_k(e,(eBU(),ttX)),21),e),!0)},eUe.nf=function(e){var t,n,r,i;for(t=Pp(e_k(e,(eBU(),ttX)),21),r=(i=Pp(Zq(e9E,t),21)).Kc();r.Ob();)if(n=Pp(r.Pb(),21),!Pp(Zq(this.b,n),15).dc())return!1;return!0},Y6(eGP,"ComponentGroup",325),eTS(765,2005,{},b8),eUe.of=function(e){var t,n;for(n=new fz(this.a);n.ah&&(_=0,E+=d+i,d=0),m=o.c,eIn(o,_+m.a,E+m.b),xB(m),n=eB4.Math.max(n,_+v.a),d=eB4.Math.max(d,v.b),_+=v.a+i;if(t.f.a=n,t.f.b=E+d,gN(LK(e_k(a,tiQ)))){for(eBb(r=new tE,e,i),f=e.Kc();f.Ob();)C6(xB((l=Pp(f.Pb(),37)).c),r.e);C6(xB(t.f),r.a)}JN(t,e)},Y6(eGP,"SimpleRowGraphPlacer",1291),eTS(1292,1,e$C,tx),eUe.ue=function(e,t){return eaV(Pp(e,37),Pp(t,37))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y6(eGP,"SimpleRowGraphPlacer/1",1292),eTS(1262,1,e$q,tT),eUe.Lb=function(e){var t;return!!(t=Pp(e_k(Pp(e,243).b,(eBy(),taR)),74))&&0!=t.b},eUe.Fb=function(e){return this===e},eUe.Mb=function(e){var t;return!!(t=Pp(e_k(Pp(e,243).b,(eBy(),taR)),74))&&0!=t.b},Y6(eGY,"CompoundGraphPostprocessor/1",1262),eTS(1261,1,eGB,mr),eUe.pf=function(e,t){ebL(this,Pp(e,37),t)},Y6(eGY,"CompoundGraphPreprocessor",1261),eTS(441,1,{441:1},ec9),eUe.c=!1,Y6(eGY,"CompoundGraphPreprocessor/ExternalPort",441),eTS(243,1,{243:1},DT),eUe.Ib=function(){return AV(this.c)+":"+ek6(this.b)},Y6(eGY,"CrossHierarchyEdge",243),eTS(763,1,e$C,dT),eUe.ue=function(e,t){return egB(this,Pp(e,243),Pp(t,243))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y6(eGY,"CrossHierarchyEdgeComparator",763),eTS(299,134,{3:1,299:1,94:1,134:1}),eUe.p=0,Y6(eGU,"LGraphElement",299),eTS(17,299,{3:1,17:1,299:1,94:1,134:1},$b),eUe.Ib=function(){return ek6(this)};var e4C=Y6(eGU,"LEdge",17);eTS(37,299,{3:1,20:1,37:1,299:1,94:1,134:1},enJ),eUe.Jc=function(e){qX(this,e)},eUe.Kc=function(){return new fz(this.b)},eUe.Ib=function(){return 0==this.b.c.length?"G-unlayered"+e_F(this.a):0==this.a.c.length?"G-layered"+e_F(this.b):"G[layerless"+e_F(this.a)+", layers"+e_F(this.b)+"]"};var e4I=Y6(eGU,"LGraph",37);eTS(657,1,{}),eUe.qf=function(){return this.e.n},eUe.We=function(e){return e_k(this.e,e)},eUe.rf=function(){return this.e.o},eUe.sf=function(){return this.e.p},eUe.Xe=function(e){return Ln(this.e,e)},eUe.tf=function(e){this.e.n.a=e.a,this.e.n.b=e.b},eUe.uf=function(e){this.e.o.a=e.a,this.e.o.b=e.b},eUe.vf=function(e){this.e.p=e},Y6(eGU,"LGraphAdapters/AbstractLShapeAdapter",657),eTS(577,1,{839:1},dM),eUe.wf=function(){var e,t;if(!this.b)for(this.b=AH(this.a.b.c.length),t=new fz(this.a.b);t.a0&&eu7((GV(t-1,e.length),e.charCodeAt(t-1)),eGq);)--t;if(a> ",e),egu(n)),xM(xT((e.a+="[",e),n.i),"]")),e.a},eUe.c=!0,eUe.d=!1;var e4j=Y6(eGU,"LPort",11);eTS(397,1,eU$,dA),eUe.Jc=function(e){qX(this,e)},eUe.Kc=function(){var e;return e=new fz(this.a.e),new dL(e)},Y6(eGU,"LPort/1",397),eTS(1290,1,eUE,dL),eUe.Nb=function(e){F9(this,e)},eUe.Pb=function(){return Pp(Wx(this.a),17).c},eUe.Ob=function(){return My(this.a)},eUe.Qb=function(){Yv(this.a)},Y6(eGU,"LPort/1/1",1290),eTS(359,1,eU$,dC),eUe.Jc=function(e){qX(this,e)},eUe.Kc=function(){var e;return e=new fz(this.a.g),new dI(e)},Y6(eGU,"LPort/2",359),eTS(762,1,eUE,dI),eUe.Nb=function(e){F9(this,e)},eUe.Pb=function(){return Pp(Wx(this.a),17).d},eUe.Ob=function(){return My(this.a)},eUe.Qb=function(){Yv(this.a)},Y6(eGU,"LPort/2/1",762),eTS(1283,1,eU$,E6),eUe.Jc=function(e){qX(this,e)},eUe.Kc=function(){return new Z4(this)},Y6(eGU,"LPort/CombineIter",1283),eTS(201,1,eUE,Z4),eUe.Nb=function(e){F9(this,e)},eUe.Qb=function(){yI()},eUe.Ob=function(){return Ak(this)},eUe.Pb=function(){return My(this.a)?Wx(this.a):Wx(this.b)},Y6(eGU,"LPort/CombineIter/1",201),eTS(1285,1,e$q,tA),eUe.Lb=function(e){return FO(e)},eUe.Fb=function(e){return this===e},eUe.Mb=function(e){return eiA(),0!=Pp(e,11).e.c.length},Y6(eGU,"LPort/lambda$0$Type",1285),eTS(1284,1,e$q,tL),eUe.Lb=function(e){return FA(e)},eUe.Fb=function(e){return this===e},eUe.Mb=function(e){return eiA(),0!=Pp(e,11).g.c.length},Y6(eGU,"LPort/lambda$1$Type",1284),eTS(1286,1,e$q,tC),eUe.Lb=function(e){return eiA(),Pp(e,11).j==(eYu(),tbw)},eUe.Fb=function(e){return this===e},eUe.Mb=function(e){return eiA(),Pp(e,11).j==(eYu(),tbw)},Y6(eGU,"LPort/lambda$2$Type",1286),eTS(1287,1,e$q,tI),eUe.Lb=function(e){return eiA(),Pp(e,11).j==(eYu(),tby)},eUe.Fb=function(e){return this===e},eUe.Mb=function(e){return eiA(),Pp(e,11).j==(eYu(),tby)},Y6(eGU,"LPort/lambda$3$Type",1287),eTS(1288,1,e$q,tD),eUe.Lb=function(e){return eiA(),Pp(e,11).j==(eYu(),tbj)},eUe.Fb=function(e){return this===e},eUe.Mb=function(e){return eiA(),Pp(e,11).j==(eYu(),tbj)},Y6(eGU,"LPort/lambda$4$Type",1288),eTS(1289,1,e$q,tN),eUe.Lb=function(e){return eiA(),Pp(e,11).j==(eYu(),tbY)},eUe.Fb=function(e){return this===e},eUe.Mb=function(e){return eiA(),Pp(e,11).j==(eYu(),tbY)},Y6(eGU,"LPort/lambda$5$Type",1289),eTS(29,299,{3:1,20:1,299:1,29:1,94:1,134:1},By),eUe.Jc=function(e){qX(this,e)},eUe.Kc=function(){return new fz(this.a)},eUe.Ib=function(){return"L_"+QI(this.b.b,this,0)+e_F(this.a)},Y6(eGU,"Layer",29),eTS(1342,1,{},mn),Y6(eG0,eG2,1342),eTS(1346,1,{},tP),eUe.Kb=function(e){return ewH(Pp(e,82))},Y6(eG0,"ElkGraphImporter/0methodref$connectableShapeToNode$Type",1346),eTS(1349,1,{},tR),eUe.Kb=function(e){return ewH(Pp(e,82))},Y6(eG0,"ElkGraphImporter/1methodref$connectableShapeToNode$Type",1349),eTS(1343,1,eUF,dD),eUe.td=function(e){exW(this.a,Pp(e,118))},Y6(eG0,eG3,1343),eTS(1344,1,eUF,dN),eUe.td=function(e){exW(this.a,Pp(e,118))},Y6(eG0,eG4,1344),eTS(1345,1,{},tj),eUe.Kb=function(e){return new R1(null,new Gq(UF(Pp(e,79)),16))},Y6(eG0,eG6,1345),eTS(1347,1,eU9,dP),eUe.Mb=function(e){return TV(this.a,Pp(e,33))},Y6(eG0,eG5,1347),eTS(1348,1,{},tF),eUe.Kb=function(e){return new R1(null,new Gq(UY(Pp(e,79)),16))},Y6(eG0,"ElkGraphImporter/lambda$5$Type",1348),eTS(1350,1,eU9,dR),eUe.Mb=function(e){return Tq(this.a,Pp(e,33))},Y6(eG0,"ElkGraphImporter/lambda$7$Type",1350),eTS(1351,1,eU9,tY),eUe.Mb=function(e){return HH(Pp(e,79))},Y6(eG0,"ElkGraphImporter/lambda$8$Type",1351),eTS(1278,1,{},ch),Y6(eG0,"ElkGraphLayoutTransferrer",1278),eTS(1279,1,eU9,dj),eUe.Mb=function(e){return It(this.a,Pp(e,17))},Y6(eG0,"ElkGraphLayoutTransferrer/lambda$0$Type",1279),eTS(1280,1,eUF,dF),eUe.td=function(e){_k(),P_(this.a,Pp(e,17))},Y6(eG0,"ElkGraphLayoutTransferrer/lambda$1$Type",1280),eTS(1281,1,eU9,dY),eUe.Mb=function(e){return Ca(this.a,Pp(e,17))},Y6(eG0,"ElkGraphLayoutTransferrer/lambda$2$Type",1281),eTS(1282,1,eUF,dB),eUe.td=function(e){_k(),P_(this.a,Pp(e,17))},Y6(eG0,"ElkGraphLayoutTransferrer/lambda$3$Type",1282),eTS(1485,1,eGB,tB),eUe.pf=function(e,t){eiu(Pp(e,37),t)},Y6(eG9,"CommentNodeMarginCalculator",1485),eTS(1486,1,{},tU),eUe.Kb=function(e){return new R1(null,new Gq(Pp(e,29).a,16))},Y6(eG9,"CommentNodeMarginCalculator/lambda$0$Type",1486),eTS(1487,1,eUF,tH),eUe.td=function(e){ePO(Pp(e,10))},Y6(eG9,"CommentNodeMarginCalculator/lambda$1$Type",1487),eTS(1488,1,eGB,t$),eUe.pf=function(e,t){eLA(Pp(e,37),t)},Y6(eG9,"CommentPostprocessor",1488),eTS(1489,1,eGB,tz),eUe.pf=function(e,t){eF4(Pp(e,37),t)},Y6(eG9,"CommentPreprocessor",1489),eTS(1490,1,eGB,tG),eUe.pf=function(e,t){eOf(Pp(e,37),t)},Y6(eG9,"ConstraintsPostprocessor",1490),eTS(1491,1,eGB,tW),eUe.pf=function(e,t){eau(Pp(e,37),t)},Y6(eG9,"EdgeAndLayerConstraintEdgeReverser",1491),eTS(1492,1,eGB,tK),eUe.pf=function(e,t){edC(Pp(e,37),t)},Y6(eG9,"EndLabelPostprocessor",1492),eTS(1493,1,{},tV),eUe.Kb=function(e){return new R1(null,new Gq(Pp(e,29).a,16))},Y6(eG9,"EndLabelPostprocessor/lambda$0$Type",1493),eTS(1494,1,eU9,tq),eUe.Mb=function(e){return $T(Pp(e,10))},Y6(eG9,"EndLabelPostprocessor/lambda$1$Type",1494),eTS(1495,1,eUF,tZ),eUe.td=function(e){evj(Pp(e,10))},Y6(eG9,"EndLabelPostprocessor/lambda$2$Type",1495),eTS(1496,1,eGB,tX),eUe.pf=function(e,t){eSF(Pp(e,37),t)},Y6(eG9,"EndLabelPreprocessor",1496),eTS(1497,1,{},tJ),eUe.Kb=function(e){return new R1(null,new Gq(Pp(e,29).a,16))},Y6(eG9,"EndLabelPreprocessor/lambda$0$Type",1497),eTS(1498,1,eUF,DA),eUe.td=function(e){_$(this.a,this.b,this.c,Pp(e,10))},eUe.a=0,eUe.b=0,eUe.c=!1,Y6(eG9,"EndLabelPreprocessor/lambda$1$Type",1498),eTS(1499,1,eU9,tQ),eUe.Mb=function(e){return xc(e_k(Pp(e,70),(eBy(),tab)))===xc((etT(),tpS))},Y6(eG9,"EndLabelPreprocessor/lambda$2$Type",1499),eTS(1500,1,eUF,dU),eUe.td=function(e){P7(this.a,Pp(e,70))},Y6(eG9,"EndLabelPreprocessor/lambda$3$Type",1500),eTS(1501,1,eU9,t1),eUe.Mb=function(e){return xc(e_k(Pp(e,70),(eBy(),tab)))===xc((etT(),tpE))},Y6(eG9,"EndLabelPreprocessor/lambda$4$Type",1501),eTS(1502,1,eUF,dH),eUe.td=function(e){P7(this.a,Pp(e,70))},Y6(eG9,"EndLabelPreprocessor/lambda$5$Type",1502),eTS(1551,1,eGB,cd),eUe.pf=function(e,t){elP(Pp(e,37),t)},Y6(eG9,"EndLabelSorter",1551),eTS(1552,1,e$C,t0),eUe.ue=function(e,t){return epc(Pp(e,456),Pp(t,456))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y6(eG9,"EndLabelSorter/1",1552),eTS(456,1,{456:1},HP),Y6(eG9,"EndLabelSorter/LabelGroup",456),eTS(1553,1,{},t2),eUe.Kb=function(e){return _O(),new R1(null,new Gq(Pp(e,29).a,16))},Y6(eG9,"EndLabelSorter/lambda$0$Type",1553),eTS(1554,1,eU9,t3),eUe.Mb=function(e){return _O(),Pp(e,10).k==(eEn(),e9N)},Y6(eG9,"EndLabelSorter/lambda$1$Type",1554),eTS(1555,1,eUF,t4),eUe.td=function(e){eEr(Pp(e,10))},Y6(eG9,"EndLabelSorter/lambda$2$Type",1555),eTS(1556,1,eU9,t6),eUe.Mb=function(e){return _O(),xc(e_k(Pp(e,70),(eBy(),tab)))===xc((etT(),tpE))},Y6(eG9,"EndLabelSorter/lambda$3$Type",1556),eTS(1557,1,eU9,t5),eUe.Mb=function(e){return _O(),xc(e_k(Pp(e,70),(eBy(),tab)))===xc((etT(),tpS))},Y6(eG9,"EndLabelSorter/lambda$4$Type",1557),eTS(1503,1,eGB,t8),eUe.pf=function(e,t){eP2(this,Pp(e,37))},eUe.b=0,eUe.c=0,Y6(eG9,"FinalSplineBendpointsCalculator",1503),eTS(1504,1,{},t9),eUe.Kb=function(e){return new R1(null,new Gq(Pp(e,29).a,16))},Y6(eG9,"FinalSplineBendpointsCalculator/lambda$0$Type",1504),eTS(1505,1,{},t7),eUe.Kb=function(e){return new R1(null,new YI(new Fa(OH(efc(Pp(e,10)).a.Kc(),new c))))},Y6(eG9,"FinalSplineBendpointsCalculator/lambda$1$Type",1505),eTS(1506,1,eU9,ne),eUe.Mb=function(e){return!q9(Pp(e,17))},Y6(eG9,"FinalSplineBendpointsCalculator/lambda$2$Type",1506),eTS(1507,1,eU9,nt),eUe.Mb=function(e){return Ln(Pp(e,17),(eBU(),tnO))},Y6(eG9,"FinalSplineBendpointsCalculator/lambda$3$Type",1507),eTS(1508,1,eUF,d$),eUe.td=function(e){eIV(this.a,Pp(e,128))},Y6(eG9,"FinalSplineBendpointsCalculator/lambda$4$Type",1508),eTS(1509,1,eUF,nn),eUe.td=function(e){eSj(Pp(e,17).a)},Y6(eG9,"FinalSplineBendpointsCalculator/lambda$5$Type",1509),eTS(792,1,eGB,dz),eUe.pf=function(e,t){ejn(this,Pp(e,37),t)},Y6(eG9,"GraphTransformer",792),eTS(511,22,{3:1,35:1,22:1,511:1},EV);var e4F=enw(eG9,"GraphTransformer/Mode",511,e1G,$9,NF);eTS(1510,1,eGB,nr),eUe.pf=function(e,t){eAP(Pp(e,37),t)},Y6(eG9,"HierarchicalNodeResizingProcessor",1510),eTS(1511,1,eGB,ni),eUe.pf=function(e,t){erP(Pp(e,37),t)},Y6(eG9,"HierarchicalPortConstraintProcessor",1511),eTS(1512,1,e$C,na),eUe.ue=function(e,t){return epZ(Pp(e,10),Pp(t,10))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y6(eG9,"HierarchicalPortConstraintProcessor/NodeComparator",1512),eTS(1513,1,eGB,no),eUe.pf=function(e,t){eN6(Pp(e,37),t)},Y6(eG9,"HierarchicalPortDummySizeProcessor",1513),eTS(1514,1,eGB,ns),eUe.pf=function(e,t){eCf(this,Pp(e,37),t)},eUe.a=0,Y6(eG9,"HierarchicalPortOrthogonalEdgeRouter",1514),eTS(1515,1,e$C,nu),eUe.ue=function(e,t){return Av(Pp(e,10),Pp(t,10))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y6(eG9,"HierarchicalPortOrthogonalEdgeRouter/1",1515),eTS(1516,1,e$C,nc),eUe.ue=function(e,t){return JW(Pp(e,10),Pp(t,10))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y6(eG9,"HierarchicalPortOrthogonalEdgeRouter/2",1516),eTS(1517,1,eGB,nl),eUe.pf=function(e,t){e_O(Pp(e,37),t)},Y6(eG9,"HierarchicalPortPositionProcessor",1517),eTS(1518,1,eGB,cp),eUe.pf=function(e,t){eYG(this,Pp(e,37))},eUe.a=0,eUe.c=0,Y6(eG9,"HighDegreeNodeLayeringProcessor",1518),eTS(571,1,{571:1},nf),eUe.b=-1,eUe.d=-1,Y6(eG9,"HighDegreeNodeLayeringProcessor/HighDegreeNodeInformation",571),eTS(1519,1,{},nd),eUe.Kb=function(e){return DR(),efu(Pp(e,10))},eUe.Fb=function(e){return this===e},Y6(eG9,"HighDegreeNodeLayeringProcessor/lambda$0$Type",1519),eTS(1520,1,{},nh),eUe.Kb=function(e){return DR(),efc(Pp(e,10))},eUe.Fb=function(e){return this===e},Y6(eG9,"HighDegreeNodeLayeringProcessor/lambda$1$Type",1520),eTS(1526,1,eGB,np),eUe.pf=function(e,t){eD9(this,Pp(e,37),t)},Y6(eG9,"HyperedgeDummyMerger",1526),eTS(793,1,{},DL),eUe.a=!1,eUe.b=!1,eUe.c=!1,Y6(eG9,"HyperedgeDummyMerger/MergeState",793),eTS(1527,1,{},nb),eUe.Kb=function(e){return new R1(null,new Gq(Pp(e,29).a,16))},Y6(eG9,"HyperedgeDummyMerger/lambda$0$Type",1527),eTS(1528,1,{},nm),eUe.Kb=function(e){return new R1(null,new Gq(Pp(e,10).j,16))},Y6(eG9,"HyperedgeDummyMerger/lambda$1$Type",1528),eTS(1529,1,eUF,ng),eUe.td=function(e){Pp(e,11).p=-1},Y6(eG9,"HyperedgeDummyMerger/lambda$2$Type",1529),eTS(1530,1,eGB,nv),eUe.pf=function(e,t){eD5(Pp(e,37),t)},Y6(eG9,"HypernodesProcessor",1530),eTS(1531,1,eGB,ny),eUe.pf=function(e,t){eD8(Pp(e,37),t)},Y6(eG9,"InLayerConstraintProcessor",1531),eTS(1532,1,eGB,nw),eUe.pf=function(e,t){eiW(Pp(e,37),t)},Y6(eG9,"InnermostNodeMarginCalculator",1532),eTS(1533,1,eGB,n_),eUe.pf=function(e,t){eFW(this,Pp(e,37))},eUe.a=eH1,eUe.b=eH1,eUe.c=eHQ,eUe.d=eHQ;var e4Y=Y6(eG9,"InteractiveExternalPortPositioner",1533);eTS(1534,1,{},nE),eUe.Kb=function(e){return Pp(e,17).d.i},eUe.Fb=function(e){return this===e},Y6(eG9,"InteractiveExternalPortPositioner/lambda$0$Type",1534),eTS(1535,1,{},dG),eUe.Kb=function(e){return AE(this.a,LV(e))},eUe.Fb=function(e){return this===e},Y6(eG9,"InteractiveExternalPortPositioner/lambda$1$Type",1535),eTS(1536,1,{},nS),eUe.Kb=function(e){return Pp(e,17).c.i},eUe.Fb=function(e){return this===e},Y6(eG9,"InteractiveExternalPortPositioner/lambda$2$Type",1536),eTS(1537,1,{},dW),eUe.Kb=function(e){return AS(this.a,LV(e))},eUe.Fb=function(e){return this===e},Y6(eG9,"InteractiveExternalPortPositioner/lambda$3$Type",1537),eTS(1538,1,{},dK),eUe.Kb=function(e){return C8(this.a,LV(e))},eUe.Fb=function(e){return this===e},Y6(eG9,"InteractiveExternalPortPositioner/lambda$4$Type",1538),eTS(1539,1,{},dV),eUe.Kb=function(e){return C9(this.a,LV(e))},eUe.Fb=function(e){return this===e},Y6(eG9,"InteractiveExternalPortPositioner/lambda$5$Type",1539),eTS(77,22,{3:1,35:1,22:1,77:1,234:1},Eq),eUe.Kf=function(){switch(this.g){case 15:return new iA;case 22:return new iL;case 47:return new iD;case 28:case 35:return new nN;case 32:return new tB;case 42:return new t$;case 1:return new tz;case 41:return new tG;case 56:return new dz((erq(),e9W));case 0:return new dz((erq(),e9G));case 2:return new tW;case 54:return new tK;case 33:return new tX;case 51:return new t8;case 55:return new nr;case 13:return new ni;case 38:return new no;case 44:return new ns;case 40:return new nl;case 9:return new cp;case 49:return new AU;case 37:return new np;case 43:return new nv;case 27:return new ny;case 30:return new nw;case 3:return new n_;case 18:return new nx;case 29:return new nT;case 5:return new cb;case 50:return new nk;case 34:return new cm;case 36:return new nP;case 52:return new cd;case 11:return new nj;case 7:return new cv;case 39:return new nF;case 45:return new nY;case 16:return new nB;case 10:return new nU;case 48:return new n$;case 21:return new nz;case 23:return new gx((enU(),tui));case 8:return new nW;case 12:return new nV;case 4:return new nq;case 19:return new cE;case 17:return new n6;case 53:return new n5;case 6:return new rc;case 25:return new ms;case 46:return new rn;case 31:return new CV;case 14:return new rg;case 26:return new iB;case 20:return new rE;case 24:return new gx((enU(),tua));default:throw p7(new gL(eWt+(null!=this.f?this.f:""+this.g)))}};var e4B=enw(eG9,eWn,77,e1G,eAn,Nj);eTS(1540,1,eGB,nx),eUe.pf=function(e,t){eFq(Pp(e,37),t)},Y6(eG9,"InvertedPortProcessor",1540),eTS(1541,1,eGB,nT),eUe.pf=function(e,t){eIR(Pp(e,37),t)},Y6(eG9,"LabelAndNodeSizeProcessor",1541),eTS(1542,1,eU9,nM),eUe.Mb=function(e){return Pp(e,10).k==(eEn(),e9N)},Y6(eG9,"LabelAndNodeSizeProcessor/lambda$0$Type",1542),eTS(1543,1,eU9,nO),eUe.Mb=function(e){return Pp(e,10).k==(eEn(),e9C)},Y6(eG9,"LabelAndNodeSizeProcessor/lambda$1$Type",1543),eTS(1544,1,eUF,DC),eUe.td=function(e){_z(this.b,this.a,this.c,Pp(e,10))},eUe.a=!1,eUe.c=!1,Y6(eG9,"LabelAndNodeSizeProcessor/lambda$2$Type",1544),eTS(1545,1,eGB,cb),eUe.pf=function(e,t){eFu(Pp(e,37),t)},Y6(eG9,"LabelDummyInserter",1545),eTS(1546,1,e$q,nA),eUe.Lb=function(e){return xc(e_k(Pp(e,70),(eBy(),tab)))===xc((etT(),tp_))},eUe.Fb=function(e){return this===e},eUe.Mb=function(e){return xc(e_k(Pp(e,70),(eBy(),tab)))===xc((etT(),tp_))},Y6(eG9,"LabelDummyInserter/1",1546),eTS(1547,1,eGB,nk),eUe.pf=function(e,t){eRz(Pp(e,37),t)},Y6(eG9,"LabelDummyRemover",1547),eTS(1548,1,eU9,nL),eUe.Mb=function(e){return gN(LK(e_k(Pp(e,70),(eBy(),tap))))},Y6(eG9,"LabelDummyRemover/lambda$0$Type",1548),eTS(1359,1,eGB,cm),eUe.pf=function(e,t){ejC(this,Pp(e,37),t)},eUe.a=null,Y6(eG9,"LabelDummySwitcher",1359),eTS(286,1,{286:1},eIu),eUe.c=0,eUe.d=null,eUe.f=0,Y6(eG9,"LabelDummySwitcher/LabelDummyInfo",286),eTS(1360,1,{},nC),eUe.Kb=function(e){return erJ(),new R1(null,new Gq(Pp(e,29).a,16))},Y6(eG9,"LabelDummySwitcher/lambda$0$Type",1360),eTS(1361,1,eU9,nI),eUe.Mb=function(e){return erJ(),Pp(e,10).k==(eEn(),e9I)},Y6(eG9,"LabelDummySwitcher/lambda$1$Type",1361),eTS(1362,1,{},dX),eUe.Kb=function(e){return Co(this.a,Pp(e,10))},Y6(eG9,"LabelDummySwitcher/lambda$2$Type",1362),eTS(1363,1,eUF,dJ),eUe.td=function(e){BO(this.a,Pp(e,286))},Y6(eG9,"LabelDummySwitcher/lambda$3$Type",1363),eTS(1364,1,e$C,nD),eUe.ue=function(e,t){return FL(Pp(e,286),Pp(t,286))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y6(eG9,"LabelDummySwitcher/lambda$4$Type",1364),eTS(791,1,eGB,nN),eUe.pf=function(e,t){XT(Pp(e,37),t)},Y6(eG9,"LabelManagementProcessor",791),eTS(1549,1,eGB,nP),eUe.pf=function(e,t){eLr(Pp(e,37),t)},Y6(eG9,"LabelSideSelector",1549),eTS(1550,1,eU9,nR),eUe.Mb=function(e){return gN(LK(e_k(Pp(e,70),(eBy(),tap))))},Y6(eG9,"LabelSideSelector/lambda$0$Type",1550),eTS(1558,1,eGB,nj),eUe.pf=function(e,t){eN5(Pp(e,37),t)},Y6(eG9,"LayerConstraintPostprocessor",1558),eTS(1559,1,eGB,cv),eUe.pf=function(e,t){eMr(Pp(e,37),t)},Y6(eG9,"LayerConstraintPreprocessor",1559),eTS(360,22,{3:1,35:1,22:1,360:1},EZ);var e4U=enw(eG9,"LayerConstraintPreprocessor/HiddenNodeConnections",360,e1G,Vs,DF);eTS(1560,1,eGB,nF),eUe.pf=function(e,t){eRB(Pp(e,37),t)},Y6(eG9,"LayerSizeAndGraphHeightCalculator",1560),eTS(1561,1,eGB,nY),eUe.pf=function(e,t){eOw(Pp(e,37),t)},Y6(eG9,"LongEdgeJoiner",1561),eTS(1562,1,eGB,nB),eUe.pf=function(e,t){eRf(Pp(e,37),t)},Y6(eG9,"LongEdgeSplitter",1562),eTS(1563,1,eGB,nU),eUe.pf=function(e,t){ejN(this,Pp(e,37),t)},eUe.d=0,eUe.e=0,eUe.i=0,eUe.j=0,eUe.k=0,eUe.n=0,Y6(eG9,"NodePromotion",1563),eTS(1564,1,{},nH),eUe.Kb=function(e){return Pp(e,46),OQ(),!0},eUe.Fb=function(e){return this===e},Y6(eG9,"NodePromotion/lambda$0$Type",1564),eTS(1565,1,{},dq),eUe.Kb=function(e){return UM(this.a,Pp(e,46))},eUe.Fb=function(e){return this===e},eUe.a=0,Y6(eG9,"NodePromotion/lambda$1$Type",1565),eTS(1566,1,{},dZ),eUe.Kb=function(e){return UO(this.a,Pp(e,46))},eUe.Fb=function(e){return this===e},eUe.a=0,Y6(eG9,"NodePromotion/lambda$2$Type",1566),eTS(1567,1,eGB,n$),eUe.pf=function(e,t){eYN(Pp(e,37),t)},Y6(eG9,"NorthSouthPortPostprocessor",1567),eTS(1568,1,eGB,nz),eUe.pf=function(e,t){eYd(Pp(e,37),t)},Y6(eG9,"NorthSouthPortPreprocessor",1568),eTS(1569,1,e$C,nG),eUe.ue=function(e,t){return ea2(Pp(e,11),Pp(t,11))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y6(eG9,"NorthSouthPortPreprocessor/lambda$0$Type",1569),eTS(1570,1,eGB,nW),eUe.pf=function(e,t){eDx(Pp(e,37),t)},Y6(eG9,"PartitionMidprocessor",1570),eTS(1571,1,eU9,nK),eUe.Mb=function(e){return Ln(Pp(e,10),(eBy(),ton))},Y6(eG9,"PartitionMidprocessor/lambda$0$Type",1571),eTS(1572,1,eUF,dQ),eUe.td=function(e){H$(this.a,Pp(e,10))},Y6(eG9,"PartitionMidprocessor/lambda$1$Type",1572),eTS(1573,1,eGB,nV),eUe.pf=function(e,t){eO3(Pp(e,37),t)},Y6(eG9,"PartitionPostprocessor",1573),eTS(1574,1,eGB,nq),eUe.pf=function(e,t){exQ(Pp(e,37),t)},Y6(eG9,"PartitionPreprocessor",1574),eTS(1575,1,eU9,nZ),eUe.Mb=function(e){return Ln(Pp(e,10),(eBy(),ton))},Y6(eG9,"PartitionPreprocessor/lambda$0$Type",1575),eTS(1576,1,{},nX),eUe.Kb=function(e){return new R1(null,new YI(new Fa(OH(efc(Pp(e,10)).a.Kc(),new c))))},Y6(eG9,"PartitionPreprocessor/lambda$1$Type",1576),eTS(1577,1,eU9,nJ),eUe.Mb=function(e){return epe(Pp(e,17))},Y6(eG9,"PartitionPreprocessor/lambda$2$Type",1577),eTS(1578,1,eUF,nQ),eUe.td=function(e){eoL(Pp(e,17))},Y6(eG9,"PartitionPreprocessor/lambda$3$Type",1578),eTS(1579,1,eGB,cE),eUe.pf=function(e,t){eDe(Pp(e,37),t)},Y6(eG9,"PortListSorter",1579),eTS(1580,1,{},n1),eUe.Kb=function(e){return euv(),Pp(e,11).e},Y6(eG9,"PortListSorter/lambda$0$Type",1580),eTS(1581,1,{},n0),eUe.Kb=function(e){return euv(),Pp(e,11).g},Y6(eG9,"PortListSorter/lambda$1$Type",1581),eTS(1582,1,e$C,n2),eUe.ue=function(e,t){return qy(Pp(e,11),Pp(t,11))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y6(eG9,"PortListSorter/lambda$2$Type",1582),eTS(1583,1,e$C,n3),eUe.ue=function(e,t){return eg_(Pp(e,11),Pp(t,11))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y6(eG9,"PortListSorter/lambda$3$Type",1583),eTS(1584,1,e$C,n4),eUe.ue=function(e,t){return eDK(Pp(e,11),Pp(t,11))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y6(eG9,"PortListSorter/lambda$4$Type",1584),eTS(1585,1,eGB,n6),eUe.pf=function(e,t){eT3(Pp(e,37),t)},Y6(eG9,"PortSideProcessor",1585),eTS(1586,1,eGB,n5),eUe.pf=function(e,t){eCH(Pp(e,37),t)},Y6(eG9,"ReversedEdgeRestorer",1586),eTS(1591,1,eGB,ms),eUe.pf=function(e,t){emJ(this,Pp(e,37),t)},Y6(eG9,"SelfLoopPortRestorer",1591),eTS(1592,1,{},n8),eUe.Kb=function(e){return new R1(null,new Gq(Pp(e,29).a,16))},Y6(eG9,"SelfLoopPortRestorer/lambda$0$Type",1592),eTS(1593,1,eU9,n9),eUe.Mb=function(e){return Pp(e,10).k==(eEn(),e9N)},Y6(eG9,"SelfLoopPortRestorer/lambda$1$Type",1593),eTS(1594,1,eU9,n7),eUe.Mb=function(e){return Ln(Pp(e,10),(eBU(),tnk))},Y6(eG9,"SelfLoopPortRestorer/lambda$2$Type",1594),eTS(1595,1,{},re),eUe.Kb=function(e){return Pp(e_k(Pp(e,10),(eBU(),tnk)),403)},Y6(eG9,"SelfLoopPortRestorer/lambda$3$Type",1595),eTS(1596,1,eUF,d1),eUe.td=function(e){eE_(this.a,Pp(e,403))},Y6(eG9,"SelfLoopPortRestorer/lambda$4$Type",1596),eTS(794,1,eUF,rt),eUe.td=function(e){eEq(Pp(e,101))},Y6(eG9,"SelfLoopPortRestorer/lambda$5$Type",794),eTS(1597,1,eGB,rn),eUe.pf=function(e,t){ep1(Pp(e,37),t)},Y6(eG9,"SelfLoopPostProcessor",1597),eTS(1598,1,{},rr),eUe.Kb=function(e){return new R1(null,new Gq(Pp(e,29).a,16))},Y6(eG9,"SelfLoopPostProcessor/lambda$0$Type",1598),eTS(1599,1,eU9,ri),eUe.Mb=function(e){return Pp(e,10).k==(eEn(),e9N)},Y6(eG9,"SelfLoopPostProcessor/lambda$1$Type",1599),eTS(1600,1,eU9,ra),eUe.Mb=function(e){return Ln(Pp(e,10),(eBU(),tnk))},Y6(eG9,"SelfLoopPostProcessor/lambda$2$Type",1600),eTS(1601,1,eUF,ro),eUe.td=function(e){eyi(Pp(e,10))},Y6(eG9,"SelfLoopPostProcessor/lambda$3$Type",1601),eTS(1602,1,{},rs),eUe.Kb=function(e){return new R1(null,new Gq(Pp(e,101).f,1))},Y6(eG9,"SelfLoopPostProcessor/lambda$4$Type",1602),eTS(1603,1,eUF,d0),eUe.td=function(e){Vf(this.a,Pp(e,409))},Y6(eG9,"SelfLoopPostProcessor/lambda$5$Type",1603),eTS(1604,1,eU9,ru),eUe.Mb=function(e){return!!Pp(e,101).i},Y6(eG9,"SelfLoopPostProcessor/lambda$6$Type",1604),eTS(1605,1,eUF,d2),eUe.td=function(e){gb(this.a,Pp(e,101))},Y6(eG9,"SelfLoopPostProcessor/lambda$7$Type",1605),eTS(1587,1,eGB,rc),eUe.pf=function(e,t){eMJ(Pp(e,37),t)},Y6(eG9,"SelfLoopPreProcessor",1587),eTS(1588,1,{},rl),eUe.Kb=function(e){return new R1(null,new Gq(Pp(e,101).f,1))},Y6(eG9,"SelfLoopPreProcessor/lambda$0$Type",1588),eTS(1589,1,{},rf),eUe.Kb=function(e){return Pp(e,409).a},Y6(eG9,"SelfLoopPreProcessor/lambda$1$Type",1589),eTS(1590,1,eUF,rd),eUe.td=function(e){MH(Pp(e,17))},Y6(eG9,"SelfLoopPreProcessor/lambda$2$Type",1590),eTS(1606,1,eGB,CV),eUe.pf=function(e,t){eEi(this,Pp(e,37),t)},Y6(eG9,"SelfLoopRouter",1606),eTS(1607,1,{},rh),eUe.Kb=function(e){return new R1(null,new Gq(Pp(e,29).a,16))},Y6(eG9,"SelfLoopRouter/lambda$0$Type",1607),eTS(1608,1,eU9,rp),eUe.Mb=function(e){return Pp(e,10).k==(eEn(),e9N)},Y6(eG9,"SelfLoopRouter/lambda$1$Type",1608),eTS(1609,1,eU9,rb),eUe.Mb=function(e){return Ln(Pp(e,10),(eBU(),tnk))},Y6(eG9,"SelfLoopRouter/lambda$2$Type",1609),eTS(1610,1,{},rm),eUe.Kb=function(e){return Pp(e_k(Pp(e,10),(eBU(),tnk)),403)},Y6(eG9,"SelfLoopRouter/lambda$3$Type",1610),eTS(1611,1,eUF,EX),eUe.td=function(e){Hs(this.a,this.b,Pp(e,403))},Y6(eG9,"SelfLoopRouter/lambda$4$Type",1611),eTS(1612,1,eGB,rg),eUe.pf=function(e,t){eAz(Pp(e,37),t)},Y6(eG9,"SemiInteractiveCrossMinProcessor",1612),eTS(1613,1,eU9,rv),eUe.Mb=function(e){return Pp(e,10).k==(eEn(),e9N)},Y6(eG9,"SemiInteractiveCrossMinProcessor/lambda$0$Type",1613),eTS(1614,1,eU9,ry),eUe.Mb=function(e){return R8(Pp(e,10))._b((eBy(),tog))},Y6(eG9,"SemiInteractiveCrossMinProcessor/lambda$1$Type",1614),eTS(1615,1,e$C,rw),eUe.ue=function(e,t){return erF(Pp(e,10),Pp(t,10))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y6(eG9,"SemiInteractiveCrossMinProcessor/lambda$2$Type",1615),eTS(1616,1,{},r_),eUe.Ce=function(e,t){return H4(Pp(e,10),Pp(t,10))},Y6(eG9,"SemiInteractiveCrossMinProcessor/lambda$3$Type",1616),eTS(1618,1,eGB,rE),eUe.pf=function(e,t){eN9(Pp(e,37),t)},Y6(eG9,"SortByInputModelProcessor",1618),eTS(1619,1,eU9,rS),eUe.Mb=function(e){return 0!=Pp(e,11).g.c.length},Y6(eG9,"SortByInputModelProcessor/lambda$0$Type",1619),eTS(1620,1,eUF,d3),eUe.td=function(e){eE5(this.a,Pp(e,11))},Y6(eG9,"SortByInputModelProcessor/lambda$1$Type",1620),eTS(1693,803,{},erY),eUe.Me=function(e){var t,n,r,i;switch(this.c=e,this.a.g){case 2:t=new p0,_r(UJ(new R1(null,new Gq(this.c.a.b,16)),new rj),new E2(this,t)),eS2(this,new rT),ety(t,new rM),t.c=Je(e1R,eUp,1,0,5,1),_r(UJ(new R1(null,new Gq(this.c.a.b,16)),new rO),new d6(t)),eS2(this,new rA),ety(t,new rL),t.c=Je(e1R,eUp,1,0,5,1),n=M_(eim(U1(new R1(null,new Gq(this.c.a.b,16)),new d5(this))),new rC),_r(new R1(null,new Gq(this.c.a.a,16)),new EQ(n,t)),eS2(this,new rD),ety(t,new rk),t.c=Je(e1R,eUp,1,0,5,1);break;case 3:r=new p0,eS2(this,new rx),i=M_(eim(U1(new R1(null,new Gq(this.c.a.b,16)),new d4(this))),new rI),_r(UJ(new R1(null,new Gq(this.c.a.b,16)),new rN),new E0(i,r)),eS2(this,new rP),ety(r,new rR),r.c=Je(e1R,eUp,1,0,5,1);break;default:throw p7(new bI)}},eUe.b=0,Y6(eWs,"EdgeAwareScanlineConstraintCalculation",1693),eTS(1694,1,e$q,rx),eUe.Lb=function(e){return M4(Pp(e,57).g,145)},eUe.Fb=function(e){return this===e},eUe.Mb=function(e){return M4(Pp(e,57).g,145)},Y6(eWs,"EdgeAwareScanlineConstraintCalculation/lambda$0$Type",1694),eTS(1695,1,{},d4),eUe.Fe=function(e){return eky(this.a,Pp(e,57))},Y6(eWs,"EdgeAwareScanlineConstraintCalculation/lambda$1$Type",1695),eTS(1703,1,eU7,EJ),eUe.Vd=function(){ev_(this.a,this.b,-1)},eUe.b=0,Y6(eWs,"EdgeAwareScanlineConstraintCalculation/lambda$10$Type",1703),eTS(1705,1,e$q,rT),eUe.Lb=function(e){return M4(Pp(e,57).g,145)},eUe.Fb=function(e){return this===e},eUe.Mb=function(e){return M4(Pp(e,57).g,145)},Y6(eWs,"EdgeAwareScanlineConstraintCalculation/lambda$11$Type",1705),eTS(1706,1,eUF,rM),eUe.td=function(e){Pp(e,365).Vd()},Y6(eWs,"EdgeAwareScanlineConstraintCalculation/lambda$12$Type",1706),eTS(1707,1,eU9,rO),eUe.Mb=function(e){return M4(Pp(e,57).g,10)},Y6(eWs,"EdgeAwareScanlineConstraintCalculation/lambda$13$Type",1707),eTS(1709,1,eUF,d6),eUe.td=function(e){efw(this.a,Pp(e,57))},Y6(eWs,"EdgeAwareScanlineConstraintCalculation/lambda$14$Type",1709),eTS(1708,1,eU7,E8),eUe.Vd=function(){ev_(this.b,this.a,-1)},eUe.a=0,Y6(eWs,"EdgeAwareScanlineConstraintCalculation/lambda$15$Type",1708),eTS(1710,1,e$q,rA),eUe.Lb=function(e){return M4(Pp(e,57).g,10)},eUe.Fb=function(e){return this===e},eUe.Mb=function(e){return M4(Pp(e,57).g,10)},Y6(eWs,"EdgeAwareScanlineConstraintCalculation/lambda$16$Type",1710),eTS(1711,1,eUF,rL),eUe.td=function(e){Pp(e,365).Vd()},Y6(eWs,"EdgeAwareScanlineConstraintCalculation/lambda$17$Type",1711),eTS(1712,1,{},d5),eUe.Fe=function(e){return ekw(this.a,Pp(e,57))},Y6(eWs,"EdgeAwareScanlineConstraintCalculation/lambda$18$Type",1712),eTS(1713,1,{},rC),eUe.De=function(){return 0},Y6(eWs,"EdgeAwareScanlineConstraintCalculation/lambda$19$Type",1713),eTS(1696,1,{},rI),eUe.De=function(){return 0},Y6(eWs,"EdgeAwareScanlineConstraintCalculation/lambda$2$Type",1696),eTS(1715,1,eUF,EQ),eUe.td=function(e){jq(this.a,this.b,Pp(e,307))},eUe.a=0,Y6(eWs,"EdgeAwareScanlineConstraintCalculation/lambda$20$Type",1715),eTS(1714,1,eU7,E1),eUe.Vd=function(){eT4(this.a,this.b,-1)},eUe.b=0,Y6(eWs,"EdgeAwareScanlineConstraintCalculation/lambda$21$Type",1714),eTS(1716,1,e$q,rD),eUe.Lb=function(e){return Pp(e,57),!0},eUe.Fb=function(e){return this===e},eUe.Mb=function(e){return Pp(e,57),!0},Y6(eWs,"EdgeAwareScanlineConstraintCalculation/lambda$22$Type",1716),eTS(1717,1,eUF,rk),eUe.td=function(e){Pp(e,365).Vd()},Y6(eWs,"EdgeAwareScanlineConstraintCalculation/lambda$23$Type",1717),eTS(1697,1,eU9,rN),eUe.Mb=function(e){return M4(Pp(e,57).g,10)},Y6(eWs,"EdgeAwareScanlineConstraintCalculation/lambda$3$Type",1697),eTS(1699,1,eUF,E0),eUe.td=function(e){jZ(this.a,this.b,Pp(e,57))},eUe.a=0,Y6(eWs,"EdgeAwareScanlineConstraintCalculation/lambda$4$Type",1699),eTS(1698,1,eU7,E9),eUe.Vd=function(){ev_(this.b,this.a,-1)},eUe.a=0,Y6(eWs,"EdgeAwareScanlineConstraintCalculation/lambda$5$Type",1698),eTS(1700,1,e$q,rP),eUe.Lb=function(e){return Pp(e,57),!0},eUe.Fb=function(e){return this===e},eUe.Mb=function(e){return Pp(e,57),!0},Y6(eWs,"EdgeAwareScanlineConstraintCalculation/lambda$6$Type",1700),eTS(1701,1,eUF,rR),eUe.td=function(e){Pp(e,365).Vd()},Y6(eWs,"EdgeAwareScanlineConstraintCalculation/lambda$7$Type",1701),eTS(1702,1,eU9,rj),eUe.Mb=function(e){return M4(Pp(e,57).g,145)},Y6(eWs,"EdgeAwareScanlineConstraintCalculation/lambda$8$Type",1702),eTS(1704,1,eUF,E2),eUe.td=function(e){eth(this.a,this.b,Pp(e,57))},Y6(eWs,"EdgeAwareScanlineConstraintCalculation/lambda$9$Type",1704),eTS(1521,1,eGB,AU),eUe.pf=function(e,t){eRE(this,Pp(e,37),t)},Y6(eWs,"HorizontalGraphCompactor",1521),eTS(1522,1,{},d8),eUe.Oe=function(e,t){var n,r,i;return Q9(e,t)?0:(n=KT(e),r=KT(t),n&&n.k==(eEn(),e9C)||r&&r.k==(eEn(),e9C))?0:(i=Pp(e_k(this.a.a,(eBU(),tnx)),304),Ax(i,n?n.k:(eEn(),e9D),r?r.k:(eEn(),e9D)))},eUe.Pe=function(e,t){var n,r,i;return Q9(e,t)?1:(n=KT(e),r=KT(t),i=Pp(e_k(this.a.a,(eBU(),tnx)),304),AT(i,n?n.k:(eEn(),e9D),r?r.k:(eEn(),e9D)))},Y6(eWs,"HorizontalGraphCompactor/1",1522),eTS(1523,1,{},rF),eUe.Ne=function(e,t){return _L(),0==e.a.i},Y6(eWs,"HorizontalGraphCompactor/lambda$0$Type",1523),eTS(1524,1,{},d9),eUe.Ne=function(e,t){return HZ(this.a,e,t)},Y6(eWs,"HorizontalGraphCompactor/lambda$1$Type",1524),eTS(1664,1,{},QF),Y6(eWs,"LGraphToCGraphTransformer",1664),eTS(1672,1,eU9,rY),eUe.Mb=function(e){return null!=e},Y6(eWs,"LGraphToCGraphTransformer/0methodref$nonNull$Type",1672),eTS(1665,1,{},rB),eUe.Kb=function(e){return Dj(),efF(e_k(Pp(Pp(e,57).g,10),(eBU(),tnc)))},Y6(eWs,"LGraphToCGraphTransformer/lambda$0$Type",1665),eTS(1666,1,{},rU),eUe.Kb=function(e){return Dj(),ecR(Pp(Pp(e,57).g,145))},Y6(eWs,"LGraphToCGraphTransformer/lambda$1$Type",1666),eTS(1675,1,eU9,rH),eUe.Mb=function(e){return Dj(),M4(Pp(e,57).g,10)},Y6(eWs,"LGraphToCGraphTransformer/lambda$10$Type",1675),eTS(1676,1,eUF,r$),eUe.td=function(e){Hq(Pp(e,57))},Y6(eWs,"LGraphToCGraphTransformer/lambda$11$Type",1676),eTS(1677,1,eU9,rz),eUe.Mb=function(e){return Dj(),M4(Pp(e,57).g,145)},Y6(eWs,"LGraphToCGraphTransformer/lambda$12$Type",1677),eTS(1681,1,eUF,rG),eUe.td=function(e){ecP(Pp(e,57))},Y6(eWs,"LGraphToCGraphTransformer/lambda$13$Type",1681),eTS(1678,1,eUF,d7),eUe.td=function(e){Tm(this.a,Pp(e,8))},eUe.a=0,Y6(eWs,"LGraphToCGraphTransformer/lambda$14$Type",1678),eTS(1679,1,eUF,he),eUe.td=function(e){Tv(this.a,Pp(e,110))},eUe.a=0,Y6(eWs,"LGraphToCGraphTransformer/lambda$15$Type",1679),eTS(1680,1,eUF,ht),eUe.td=function(e){Tg(this.a,Pp(e,8))},eUe.a=0,Y6(eWs,"LGraphToCGraphTransformer/lambda$16$Type",1680),eTS(1682,1,{},rW),eUe.Kb=function(e){return Dj(),new R1(null,new YI(new Fa(OH(efc(Pp(e,10)).a.Kc(),new c))))},Y6(eWs,"LGraphToCGraphTransformer/lambda$17$Type",1682),eTS(1683,1,eU9,rK),eUe.Mb=function(e){return Dj(),q9(Pp(e,17))},Y6(eWs,"LGraphToCGraphTransformer/lambda$18$Type",1683),eTS(1684,1,eUF,hn),eUe.td=function(e){eex(this.a,Pp(e,17))},Y6(eWs,"LGraphToCGraphTransformer/lambda$19$Type",1684),eTS(1668,1,eUF,hr),eUe.td=function(e){Wj(this.a,Pp(e,145))},Y6(eWs,"LGraphToCGraphTransformer/lambda$2$Type",1668),eTS(1685,1,{},rV),eUe.Kb=function(e){return Dj(),new R1(null,new Gq(Pp(e,29).a,16))},Y6(eWs,"LGraphToCGraphTransformer/lambda$20$Type",1685),eTS(1686,1,{},rq),eUe.Kb=function(e){return Dj(),new R1(null,new YI(new Fa(OH(efc(Pp(e,10)).a.Kc(),new c))))},Y6(eWs,"LGraphToCGraphTransformer/lambda$21$Type",1686),eTS(1687,1,{},rZ),eUe.Kb=function(e){return Dj(),Pp(e_k(Pp(e,17),(eBU(),tnO)),15)},Y6(eWs,"LGraphToCGraphTransformer/lambda$22$Type",1687),eTS(1688,1,eU9,rX),eUe.Mb=function(e){return AN(Pp(e,15))},Y6(eWs,"LGraphToCGraphTransformer/lambda$23$Type",1688),eTS(1689,1,eUF,hi),eUe.td=function(e){ekn(this.a,Pp(e,15))},Y6(eWs,"LGraphToCGraphTransformer/lambda$24$Type",1689),eTS(1667,1,eUF,E3),eUe.td=function(e){VK(this.a,this.b,Pp(e,145))},Y6(eWs,"LGraphToCGraphTransformer/lambda$3$Type",1667),eTS(1669,1,{},rJ),eUe.Kb=function(e){return Dj(),new R1(null,new Gq(Pp(e,29).a,16))},Y6(eWs,"LGraphToCGraphTransformer/lambda$4$Type",1669),eTS(1670,1,{},rQ),eUe.Kb=function(e){return Dj(),new R1(null,new YI(new Fa(OH(efc(Pp(e,10)).a.Kc(),new c))))},Y6(eWs,"LGraphToCGraphTransformer/lambda$5$Type",1670),eTS(1671,1,{},r1),eUe.Kb=function(e){return Dj(),Pp(e_k(Pp(e,17),(eBU(),tnO)),15)},Y6(eWs,"LGraphToCGraphTransformer/lambda$6$Type",1671),eTS(1673,1,eUF,ha),eUe.td=function(e){exr(this.a,Pp(e,15))},Y6(eWs,"LGraphToCGraphTransformer/lambda$8$Type",1673),eTS(1674,1,eUF,E4),eUe.td=function(e){MN(this.a,this.b,Pp(e,145))},Y6(eWs,"LGraphToCGraphTransformer/lambda$9$Type",1674),eTS(1663,1,{},r0),eUe.Le=function(e){var t,n,r,i,a;for(this.a=e,this.d=new bX,this.c=Je(e24,eUp,121,this.a.a.a.c.length,0,1),this.b=0,n=new fz(this.a.a.a);n.a=b&&(P_(a,ell(l)),v=eB4.Math.max(v,y[l-1]-f),s+=p,m+=y[l-1]-m,f=y[l-1],p=u[l]),p=eB4.Math.max(p,u[l]),++l;s+=p}(h=eB4.Math.min(1/v,1/t.b/s))>r&&(r=h,n=a)}return n},eUe.Wf=function(){return!1},Y6(eWb,"MSDCutIndexHeuristic",802),eTS(1617,1,eGB,iB),eUe.pf=function(e,t){eNZ(Pp(e,37),t)},Y6(eWb,"SingleEdgeGraphWrapper",1617),eTS(227,22,{3:1,35:1,22:1,227:1},Ss);var e4K=enw(eWm,"CenterEdgeLabelPlacementStrategy",227,e1G,Jv,DU);eTS(422,22,{3:1,35:1,22:1,422:1},Su);var e4V=enw(eWm,"ConstraintCalculationStrategy",422,e1G,$G,DH);eTS(314,22,{3:1,35:1,22:1,314:1,246:1,234:1},Sc),eUe.Kf=function(){return ekF(this)},eUe.Xf=function(){return ekF(this)};var e4q=enw(eWm,"CrossingMinimizationStrategy",314,e1G,G6,D$);eTS(337,22,{3:1,35:1,22:1,337:1},Sl);var e4Z=enw(eWm,"CuttingStrategy",337,e1G,G5,DW);eTS(335,22,{3:1,35:1,22:1,335:1,246:1,234:1},Sf),eUe.Kf=function(){return eTW(this)},eUe.Xf=function(){return eTW(this)};var e4X=enw(eWm,"CycleBreakingStrategy",335,e1G,Zv,DK);eTS(419,22,{3:1,35:1,22:1,419:1},Sd);var e4J=enw(eWm,"DirectionCongruency",419,e1G,$z,DV);eTS(450,22,{3:1,35:1,22:1,450:1},Sh);var e4Q=enw(eWm,"EdgeConstraint",450,e1G,G8,Dq);eTS(276,22,{3:1,35:1,22:1,276:1},Sp);var e41=enw(eWm,"EdgeLabelSideSelection",276,e1G,JE,DZ);eTS(479,22,{3:1,35:1,22:1,479:1},Sb);var e40=enw(eWm,"EdgeStraighteningStrategy",479,e1G,$$,DX);eTS(274,22,{3:1,35:1,22:1,274:1},Sm);var e42=enw(eWm,"FixedAlignment",274,e1G,Jw,DJ);eTS(275,22,{3:1,35:1,22:1,275:1},Sg);var e43=enw(eWm,"GraphCompactionStrategy",275,e1G,Jy,DQ);eTS(256,22,{3:1,35:1,22:1,256:1},Sv);var e44=enw(eWm,"GraphProperties",256,e1G,eiT,D1);eTS(292,22,{3:1,35:1,22:1,292:1},Sy);var e46=enw(eWm,"GreedySwitchType",292,e1G,We,D0);eTS(303,22,{3:1,35:1,22:1,303:1},Sw);var e45=enw(eWm,"InLayerConstraint",303,e1G,G7,D2);eTS(420,22,{3:1,35:1,22:1,420:1},S_);var e48=enw(eWm,"InteractiveReferencePoint",420,e1G,$W,D3);eTS(163,22,{3:1,35:1,22:1,163:1},ST);var e49=enw(eWm,"LayerConstraint",163,e1G,Z_,D4);eTS(848,1,e$2,cT),eUe.Qe=function(e){efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eWE),""),"Direction Congruency"),"Specifies how drawings of the same graph with different layout directions compare to each other: either a natural reading direction is preserved or the drawings are rotated versions of each other."),trl),(eSd(),tdv)),e4J),el8((epx(),tdh))))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eWS),""),"Feedback Edges"),"Whether feedback edges should be highlighted by routing around the nodes."),(OQ(),!1)),tdm),e11),el8(tdh)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eWk),""),"Interactive Reference Point"),"Determines which point of a node is considered by interactive layout phases."),trN),tdv),e48),el8(tdh)))),K_(e,eWk,eWI,trR),K_(e,eWk,eWH,trP),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eWx),""),"Merge Edges"),"Edges that have no ports are merged so they touch the connected nodes at the same points. When this option is disabled, one port is created for each edge directly connected to a node. When it is enabled, all such incoming edges share an input port, and all outgoing edges share an output port."),!1),tdm),e11),el8(tdh)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eWT),""),"Merge Hierarchy-Crossing Edges"),"If hierarchical layout is active, hierarchy-crossing edges use as few hierarchical ports as possible. They are broken by the algorithm, with hierarchical ports inserted as required. Usually, one such port is created for each edge at each hierarchy crossing point. With this option set to true, we try to create as few hierarchical ports as possible in the process. In particular, all edges that form a hyperedge can share a port."),!0),tdm),e11),el8(tdh)))),efO(e,new eE9(v9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eWM),""),"Allow Non-Flow Ports To Switch Sides"),"Specifies whether non-flow ports may switch sides if their node's port constraints are either FIXED_SIDE or FIXED_ORDER. A non-flow port is a port on a side that is not part of the currently configured layout flow. For instance, given a left-to-right layout direction, north and south ports would be considered non-flow ports. Further note that the underlying criterium whether to switch sides or not solely relies on the minimization of edge crossings. Hence, edge length and other aesthetics criteria are not addressed."),!1),tdm),e11),el8(tdp)),eow(vx(e17,1),eUP,2,6,["org.eclipse.elk.layered.northOrSouthPort"])))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eWO),""),"Port Sorting Strategy"),"Only relevant for nodes with FIXED_SIDE port constraints. Determines the way a node's ports are distributed on the sides of a node if their order is not prescribed. The option is set on parent nodes."),tic),tdv),e6a),el8(tdh)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eWA),""),"Thoroughness"),"How much effort should be spent to produce a nice layout."),ell(7)),tdw),e16),el8(tdh)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eWL),""),"Add Unnecessary Bendpoints"),"Adds bend points even if an edge does not change direction. If true, each long edge dummy will contribute a bend point to its edges and hierarchy-crossing edges will always get a bend point where they cross hierarchy boundaries. By default, bend points are only added where an edge changes direction."),!1),tdm),e11),el8(tdh)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eWC),""),"Generate Position and Layer IDs"),"If enabled position id and layer id are generated, which are usually only used internally when setting the interactiveLayout option. This option should be specified on the root node."),!1),tdm),e11),el8(tdh)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eWI),"cycleBreaking"),"Cycle Breaking Strategy"),"Strategy for cycle breaking. Cycle breaking looks for cycles in the graph and determines which edges to reverse to break the cycles. Reversed edges will end up pointing to the opposite direction of regular edges (that is, reversed edges will point left if edges usually point right)."),tru),tdv),e4X),el8(tdh)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eWD),eKC),"Node Layering Strategy"),"Strategy for node layering."),trX),tdv),e47),el8(tdh)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eWN),eKC),"Layer Constraint"),"Determines a constraint on the placement of the node regarding the layering."),trU),tdv),e49),el8(tdd)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eWP),eKC),"Layer Choice Constraint"),"Allows to set a constraint regarding the layer placement of a node. Let i be the value of teh constraint. Assumed the drawing has n layers and i < n. If set to i, it expresses that the node should be placed in i-th layer. Should i>=n be true then the node is placed in the last layer of the drawing. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine."),ell(-1)),tdw),e16),el8(tdd)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eWR),eKC),"Layer ID"),"Layer identifier that was calculated by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set."),ell(-1)),tdw),e16),el8(tdd)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eWj),eKI),"Upper Bound On Width [MinWidth Layerer]"),"Defines a loose upper bound on the width of the MinWidth layerer. If set to '-1' multiple values are tested and the best result is selected."),ell(4)),tdw),e16),el8(tdh)))),K_(e,eWj,eWD,trz),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eWF),eKI),"Upper Layer Estimation Scaling Factor [MinWidth Layerer]"),"Multiplied with Upper Bound On Width for defining an upper bound on the width of layers which haven't been determined yet, but whose maximum width had been (roughly) estimated by the MinWidth algorithm. Compensates for too high estimations. If set to '-1' multiple values are tested and the best result is selected."),ell(2)),tdw),e16),el8(tdh)))),K_(e,eWF,eWD,trW),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eWY),eKD),"Node Promotion Strategy"),"Reduces number of dummy nodes after layering phase (if possible)."),trq),tdv),e6r),el8(tdh)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eWB),eKD),"Max Node Promotion Iterations"),"Limits the number of iterations for node promotion."),ell(0)),tdw),e16),el8(tdh)))),K_(e,eWB,eWY,null),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eWU),"layering.coffmanGraham"),"Layer Bound"),"The maximum number of nodes allowed per layer."),ell(eUu)),tdw),e16),el8(tdh)))),K_(e,eWU,eWD,trF),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eWH),eKN),"Crossing Minimization Strategy"),"Strategy for crossing minimization."),tro),tdv),e4q),el8(tdh)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eW$),eKN),"Force Node Model Order"),"The node order given by the model does not change to produce a better layout. E.g. if node A is before node B in the model this is not changed during crossing minimization. This assumes that the node model order is already respected before crossing minimization. This can be achieved by setting considerModelOrder.strategy to NODES_AND_EDGES."),!1),tdm),e11),el8(tdh)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eWz),eKN),"Hierarchical Sweepiness"),"How likely it is to use cross-hierarchy (1) vs bottom-up (-1)."),.1),tdg),e13),el8(tdh)))),K_(e,eWz,eKP,tre),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eWG),eKN),"Semi-Interactive Crossing Minimization"),"Preserves the order of nodes within a layer but still minimizes crossings between edges connecting long edge dummies. Derives the desired order from positions specified by the 'org.eclipse.elk.position' layout option. Requires a crossing minimization strategy that is able to process 'in-layer' constraints."),!1),tdm),e11),el8(tdh)))),K_(e,eWG,eWH,tri),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eWW),eKN),"Position Choice Constraint"),"Allows to set a constraint regarding the position placement of a node in a layer. Assumed the layer in which the node placed includes n other nodes and i < n. If set to i, it expresses that the node should be placed at the i-th position. Should i>=n be true then the node is placed at the last position in the layer. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine."),ell(-1)),tdw),e16),el8(tdd)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eWK),eKN),"Position ID"),"Position within a layer that was determined by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set."),ell(-1)),tdw),e16),el8(tdd)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eWV),eKR),"Greedy Switch Activation Threshold"),"By default it is decided automatically if the greedy switch is activated or not. The decision is based on whether the size of the input graph (without dummy nodes) is smaller than the value of this option. A '0' enforces the activation."),ell(40)),tdw),e16),el8(tdh)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eWq),eKR),"Greedy Switch Crossing Minimization"),"Greedy Switch strategy for crossing minimization. The greedy switch heuristic is executed after the regular crossing minimization as a post-processor. Note that if 'hierarchyHandling' is set to 'INCLUDE_CHILDREN', the 'greedySwitchHierarchical.type' option must be used."),tn8),tdv),e46),el8(tdh)))),K_(e,eWq,eWH,tn9),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eWZ),"crossingMinimization.greedySwitchHierarchical"),"Greedy Switch Crossing Minimization (hierarchical)"),"Activates the greedy switch heuristic in case hierarchical layout is used. The differences to the non-hierarchical case (see 'greedySwitch.type') are: 1) greedy switch is inactive by default, 3) only the option value set on the node at which hierarchical layout starts is relevant, and 2) if it's activated by the user, it properly addresses hierarchy-crossing edges."),tn3),tdv),e46),el8(tdh)))),K_(e,eWZ,eWH,tn4),K_(e,eWZ,eKP,tn6),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eWX),eKj),"Node Placement Strategy"),"Strategy for node placement."),tis),tdv),e6n),el8(tdh)))),efO(e,new eE9(yt(ye(yn(v4(v7(v5(v8(new oN,eWJ),eKj),"Favor Straight Edges Over Balancing"),"Favor straight edges over a balanced node placement. The default behavior is determined automatically based on the used 'edgeRouting'. For an orthogonal style it is set to true, for all other styles to false."),tdm),e11),el8(tdh)))),K_(e,eWJ,eWX,tr8),K_(e,eWJ,eWX,tr9),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eWQ),eKF),"BK Edge Straightening"),"Specifies whether the Brandes Koepf node placer tries to increase the number of straight edges at the expense of diagram size. There is a subtle difference to the 'favorStraightEdges' option, which decides whether a balanced placement of the nodes is desired, or not. In bk terms this means combining the four alignments into a single balanced one, or not. This option on the other hand tries to straighten additional edges during the creation of each of the four alignments."),tr0),tdv),e40),el8(tdh)))),K_(e,eWQ,eWX,tr2),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eW1),eKF),"BK Fixed Alignment"),"Tells the BK node placer to use a certain alignment (out of its four) instead of the one producing the smallest height, or the combination of all four."),tr4),tdv),e42),el8(tdh)))),K_(e,eW1,eWX,tr6),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eW0),"nodePlacement.linearSegments"),"Linear Segments Deflection Dampening"),"Dampens the movement of nodes to keep the diagram from getting too large."),.3),tdg),e13),el8(tdh)))),K_(e,eW0,eWX,tie),efO(e,new eE9(yt(ye(yn(v4(v7(v5(v8(new oN,eW2),"nodePlacement.networkSimplex"),"Node Flexibility"),"Aims at shorter and straighter edges. Two configurations are possible: (a) allow ports to move freely on the side they are assigned to (the order is always defined beforehand), (b) additionally allow to enlarge a node wherever it helps. If this option is not configured for a node, the 'nodeFlexibility.default' value is used, which is specified for the node's parent."),tdv),e6t),el8(tdd)))),K_(e,eW2,eWX,tia),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eW3),"nodePlacement.networkSimplex.nodeFlexibility"),"Node Flexibility Default"),"Default value of the 'nodeFlexibility' option for the children of a hierarchical node."),tir),tdv),e6t),el8(tdh)))),K_(e,eW3,eWX,tii),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eW4),eKY),"Self-Loop Distribution"),"Alter the distribution of the loops around the node. It only takes effect for PortConstraints.FREE."),trv),tdv),e6s),el8(tdd)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eW6),eKY),"Self-Loop Ordering"),"Alter the ordering of the loops they can either be stacked or sequenced. It only takes effect for PortConstraints.FREE."),tr_),tdv),e6u),el8(tdd)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eW5),"edgeRouting.splines"),"Spline Routing Mode"),"Specifies the way control points are assembled for each individual edge. CONSERVATIVE ensures that edges are properly routed around the nodes but feels rather orthogonal at times. SLOPPY uses fewer control points to obtain curvier edge routes but may result in edges overlapping nodes."),trS),tdv),e6c),el8(tdh)))),K_(e,eW5,eKB,trk),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eW8),"edgeRouting.splines.sloppy"),"Sloppy Spline Layer Spacing Factor"),"Spacing factor for routing area between layers when using sloppy spline routing."),.2),tdg),e13),el8(tdh)))),K_(e,eW8,eKB,trT),K_(e,eW8,eW5,trM),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eW9),"edgeRouting.polyline"),"Sloped Edge Zone Width"),"Width of the strip to the left and to the right of each layer where the polyline edge router is allowed to refrain from ensuring that edges are routed horizontally. This prevents awkward bend points for nodes that extent almost to the edge of their layer."),2),tdg),e13),el8(tdh)))),K_(e,eW9,eKB,trm),efO(e,new eE9(yt(ye(yn(v4(v7(v5(v8(new oN,eW7),eKU),"Spacing Base Value"),"An optional base value for all other layout options of the 'spacing' group. It can be used to conveniently alter the overall 'spaciousness' of the drawing. Whenever an explicit value is set for the other layout options, this base value will have no effect. The base value is not inherited, i.e. it must be set for each hierarchical node."),tdg),e13),el8(tdh)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eKe),eKU),"Edge Node Between Layers Spacing"),"The spacing to be preserved between nodes and edges that are routed next to the node's layer. For the spacing between nodes and edges that cross the node's layer 'spacing.edgeNode' is used."),10),tdg),e13),el8(tdh)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eKt),eKU),"Edge Edge Between Layer Spacing"),"Spacing to be preserved between pairs of edges that are routed between the same pair of layers. Note that 'spacing.edgeEdge' is used for the spacing between pairs of edges crossing the same layer."),10),tdg),e13),el8(tdh)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eKn),eKU),"Node Node Between Layers Spacing"),"The spacing to be preserved between any pair of nodes of two adjacent layers. Note that 'spacing.nodeNode' is used for the spacing between nodes within the layer itself."),20),tdg),e13),el8(tdh)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eKr),eKH),"Direction Priority"),"Defines how important it is to have a certain edge point into the direction of the overall layout. This option is evaluated during the cycle breaking phase."),ell(0)),tdw),e16),el8(tdl)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eKi),eKH),"Shortness Priority"),"Defines how important it is to keep an edge as short as possible. This option is evaluated during the layering phase."),ell(0)),tdw),e16),el8(tdl)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eKa),eKH),"Straightness Priority"),"Defines how important it is to keep an edge straight, i.e. aligned with one of the two axes. This option is evaluated during node placement."),ell(0)),tdw),e16),el8(tdl)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eKo),eK$),ezI),"Tries to further compact components (disconnected sub-graphs)."),!1),tdm),e11),el8(tdh)))),K_(e,eKo,eGs,!0),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eKs),eKz),"Post Compaction Strategy"),eKG),tnz),tdv),e43),el8(tdh)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eKu),eKz),"Post Compaction Constraint Calculation"),eKG),tnH),tdv),e4V),el8(tdh)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eKc),eKW),"High Degree Node Treatment"),"Makes room around high degree nodes to place leafs and trees."),!1),tdm),e11),el8(tdh)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eKl),eKW),"High Degree Node Threshold"),"Whether a node is considered to have a high degree."),ell(16)),tdw),e16),el8(tdh)))),K_(e,eKl,eKc,!0),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eKf),eKW),"High Degree Node Maximum Tree Height"),"Maximum height of a subtree connected to a high degree node to be moved to separate layers."),ell(5)),tdw),e16),el8(tdh)))),K_(e,eKf,eKc,!0),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eKd),eKK),"Graph Wrapping Strategy"),"For certain graphs and certain prescribed drawing areas it may be desirable to split the laid out graph into chunks that are placed side by side. The edges that connect different chunks are 'wrapped' around from the end of one chunk to the start of the other chunk. The points between the chunks are referred to as 'cuts'."),tiU),tdv),e6f),el8(tdh)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eKh),eKK),"Additional Wrapped Edges Spacing"),"To visually separate edges that are wrapped from regularly routed edges an additional spacing value can be specified in form of this layout option. The spacing is added to the regular edgeNode spacing."),10),tdg),e13),el8(tdh)))),K_(e,eKh,eKd,tiw),K_(e,eKh,eKd,ti_),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eKp),eKK),"Correction Factor for Wrapping"),"At times and for certain types of graphs the executed wrapping may produce results that are consistently biased in the same fashion: either wrapping to often or to rarely. This factor can be used to correct the bias. Internally, it is simply multiplied with the 'aspect ratio' layout option."),1),tdg),e13),el8(tdh)))),K_(e,eKp,eKd,tiS),K_(e,eKp,eKd,tik),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eKb),eKV),"Cutting Strategy"),"The strategy by which the layer indexes are determined at which the layering crumbles into chunks."),tiC),tdv),e4Z),el8(tdh)))),K_(e,eKb,eKd,tiI),K_(e,eKb,eKd,tiD),efO(e,new eE9(yt(ye(yn(v4(v7(v5(v8(new oN,eKm),eKV),"Manually Specified Cuts"),"Allows the user to specify her own cuts for a certain graph."),td_),e1H),el8(tdh)))),K_(e,eKm,eKb,tiT),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eKg),"wrapping.cutting.msd"),"MSD Freedom"),"The MSD cutting strategy starts with an initial guess on the number of chunks the graph should be split into. The freedom specifies how much the strategy may deviate from this guess. E.g. if an initial number of 3 is computed, a freedom of 1 allows 2, 3, and 4 cuts."),tiO),tdw),e16),el8(tdh)))),K_(e,eKg,eKb,tiA),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eKv),eKq),"Validification Strategy"),"When wrapping graphs, one can specify indices that are not allowed as split points. The validification strategy makes sure every computed split point is allowed."),tiW),tdv),e6l),el8(tdh)))),K_(e,eKv,eKd,tiK),K_(e,eKv,eKd,tiV),efO(e,new eE9(yt(ye(yn(v4(v7(v5(v8(new oN,eKy),eKq),"Valid Indices for Wrapping"),null),td_),e1H),el8(tdh)))),K_(e,eKy,eKd,ti$),K_(e,eKy,eKd,tiz),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eKw),eKZ),"Improve Cuts"),"For general graphs it is important that not too many edges wrap backwards. Thus a compromise between evenly-distributed cuts and the total number of cut edges is sought."),!0),tdm),e11),el8(tdh)))),K_(e,eKw,eKd,tij),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eK_),eKZ),"Distance Penalty When Improving Cuts"),null),2),tdg),e13),el8(tdh)))),K_(e,eK_,eKd,tiP),K_(e,eK_,eKw,!0),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eKE),eKZ),"Improve Wrapped Edges"),"The initial wrapping is performed in a very simple way. As a consequence, edges that wrap from one chunk to another may be unnecessarily long. Activating this option tries to shorten such edges."),!0),tdm),e11),el8(tdh)))),K_(e,eKE,eKd,tiY),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eKS),eKX),"Edge Label Side Selection"),"Method to decide on edge label sides."),trp),tdv),e41),el8(tdh)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eKk),eKX),"Edge Center Label Placement Strategy"),"Determines in which layer center labels of long edges should be placed."),trd),tdv),e4K),jL(tdh,eow(vx(e6Q,1),eU4,175,0,[tdf]))))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eKx),eKJ),"Consider Model Order"),"Preserves the order of nodes and edges in the model file if this does not lead to additional edge crossings. Depending on the strategy this is not always possible since the node and edge order might be conflicting."),tnQ),tdv),e6i),el8(tdh)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eKT),eKJ),"No Model Order"),"Set on a node to not set a model order for this node even though it is a real node."),!1),tdm),e11),el8(tdd)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eKM),eKJ),"Consider Model Order for Components"),"If set to NONE the usual ordering strategy (by cumulative node priority and size of nodes) is used. INSIDE_PORT_SIDES orders the components with external ports only inside the groups with the same port side. FORCE_MODEL_ORDER enforces the mode order on components. This option might produce bad alignments and sub optimal drawings in terms of used area since the ordering should be respected."),tnW),tdv),e4L),el8(tdh)))),K_(e,eKM,eGs,null),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eKO),eKJ),"Long Edge Ordering Strategy"),"Indicates whether long edges are sorted under, over, or equal to nodes that have no connection to a previous layer in a left-to-right or right-to-left layout. Under and over changes to right and left in a vertical layout."),tnZ),tdv),e6e),el8(tdh)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eKA),eKJ),"Crossing Counter Node Order Influence"),"Indicates with what percentage (1 for 100%) violations of the node model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal node order. Defaults to no influence (0)."),0),tdg),e13),el8(tdh)))),K_(e,eKA,eKx,null),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eKL),eKJ),"Crossing Counter Port Order Influence"),"Indicates with what percentage (1 for 100%) violations of the port model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal port order. Defaults to no influence (0)."),0),tdg),e13),el8(tdh)))),K_(e,eKL,eKx,null),eBq((new cA,e))},Y6(eWm,"LayeredMetaDataProvider",848),eTS(986,1,e$2,cA),eUe.Qe=function(e){eBq(e)},Y6(eWm,"LayeredOptions",986),eTS(987,1,{},iH),eUe.$e=function(){return new b3},eUe._e=function(e){},Y6(eWm,"LayeredOptions/LayeredFactory",987),eTS(1372,1,{}),eUe.a=0,Y6(eVL,"ElkSpacings/AbstractSpacingsBuilder",1372),eTS(779,1372,{},ef4),Y6(eWm,"LayeredSpacings/LayeredSpacingsBuilder",779),eTS(313,22,{3:1,35:1,22:1,313:1,246:1,234:1},SE),eUe.Kf=function(){return eM3(this)},eUe.Xf=function(){return eM3(this)};var e47=enw(eWm,"LayeringStrategy",313,e1G,J_,D6);eTS(378,22,{3:1,35:1,22:1,378:1},SS);var e6e=enw(eWm,"LongEdgeOrderingStrategy",378,e1G,G4,D5);eTS(197,22,{3:1,35:1,22:1,197:1},Sk);var e6t=enw(eWm,"NodeFlexibility",197,e1G,VT,D8);eTS(315,22,{3:1,35:1,22:1,315:1,246:1,234:1},Sx),eUe.Kf=function(){return eTG(this)},eUe.Xf=function(){return eTG(this)};var e6n=enw(eWm,"NodePlacementStrategy",315,e1G,Zg,Nr);eTS(260,22,{3:1,35:1,22:1,260:1},SM);var e6r=enw(eWm,"NodePromotionStrategy",260,e1G,etL,D7);eTS(339,22,{3:1,35:1,22:1,339:1},SO);var e6i=enw(eWm,"OrderingStrategy",339,e1G,Wn,Ne);eTS(421,22,{3:1,35:1,22:1,421:1},SA);var e6a=enw(eWm,"PortSortingStrategy",421,e1G,$K,Nt);eTS(452,22,{3:1,35:1,22:1,452:1},SL);var e6o=enw(eWm,"PortType",452,e1G,Wt,D9);eTS(375,22,{3:1,35:1,22:1,375:1},SC);var e6s=enw(eWm,"SelfLoopDistributionStrategy",375,e1G,Wr,Nn);eTS(376,22,{3:1,35:1,22:1,376:1},SI);var e6u=enw(eWm,"SelfLoopOrderingStrategy",376,e1G,$H,Ni);eTS(304,1,{304:1},ejm),Y6(eWm,"Spacings",304),eTS(336,22,{3:1,35:1,22:1,336:1},SD);var e6c=enw(eWm,"SplineRoutingMode",336,e1G,Wa,Na);eTS(338,22,{3:1,35:1,22:1,338:1},SN);var e6l=enw(eWm,"ValidifyStrategy",338,e1G,Wo,No);eTS(377,22,{3:1,35:1,22:1,377:1},SP);var e6f=enw(eWm,"WrappingStrategy",377,e1G,Wi,Ns);eTS(1383,1,eVD,cL),eUe.Yf=function(e){return Pp(e,37),ts2},eUe.pf=function(e,t){eRb(this,Pp(e,37),t)},Y6(eVN,"DepthFirstCycleBreaker",1383),eTS(782,1,eVD,jG),eUe.Yf=function(e){return Pp(e,37),ts3},eUe.pf=function(e,t){eBS(this,Pp(e,37),t)},eUe.Zf=function(e){return Pp(RJ(e,ebO(this.d,e.c.length)),10)},Y6(eVN,"GreedyCycleBreaker",782),eTS(1386,782,eVD,kQ),eUe.Zf=function(e){var t,n,r,i;for(i=null,t=eUu,r=new fz(e);r.a1&&(gN(LK(e_k(Bq((GK(0,e.c.length),Pp(e.c[0],10))),(eBy(),ti7))))?eMR(e,this.d,Pp(this,660)):(Hj(),Mv(e,this.d)),eaz(this.e,e))},eUe.Sf=function(e,t,n,r){var i,a,o,s,u,c,l;for(t!=ja(n,e.length)&&(a=e[t-(n?1:-1)],Xy(this.f,a,n?(enY(),tsN):(enY(),tsD))),i=e[t][0],l=!r||i.k==(eEn(),e9C),c=ZW(e[t]),this.ag(c,l,!1,n),o=0,u=new fz(c);u.a"),e0?zJ(this.a,e[t-1],e[t]):!n&&t1&&(gN(LK(e_k(Bq((GK(0,e.c.length),Pp(e.c[0],10))),(eBy(),ti7))))?eMR(e,this.d,this):(Hj(),Mv(e,this.d)),gN(LK(e_k(Bq((GK(0,e.c.length),Pp(e.c[0],10))),ti7)))||eaz(this.e,e))},Y6(eVF,"ModelOrderBarycenterHeuristic",660),eTS(1803,1,e$C,hx),eUe.ue=function(e,t){return eED(this.a,Pp(e,10),Pp(t,10))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y6(eVF,"ModelOrderBarycenterHeuristic/lambda$0$Type",1803),eTS(1403,1,eVD,cF),eUe.Yf=function(e){var t;return Pp(e,37),t=TL(tus),RI(t,(e_x(),e9n),(eB$(),e7I)),t},eUe.pf=function(e,t){$w((Pp(e,37),t))},Y6(eVF,"NoCrossingMinimizer",1403),eTS(796,402,eVR,yu),eUe.$f=function(e,t,n){var r,i,a,o,s,u,c,l,f,d,h;switch(f=this.g,n.g){case 1:for(i=0,a=0,l=new fz(e.j);l.a1&&(i.j==(eYu(),tby)?this.b[e]=!0:i.j==tbY&&e>0&&(this.b[e-1]=!0))},eUe.f=0,Y6(eWc,"AllCrossingsCounter",1798),eTS(587,1,{},erH),eUe.b=0,eUe.d=0,Y6(eWc,"BinaryIndexedTree",587),eTS(524,1,{},IQ),Y6(eWc,"CrossingsCounter",524),eTS(1906,1,e$C,hT),eUe.ue=function(e,t){return je(this.a,Pp(e,11),Pp(t,11))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y6(eWc,"CrossingsCounter/lambda$0$Type",1906),eTS(1907,1,e$C,hM),eUe.ue=function(e,t){return jt(this.a,Pp(e,11),Pp(t,11))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y6(eWc,"CrossingsCounter/lambda$1$Type",1907),eTS(1908,1,e$C,hO),eUe.ue=function(e,t){return jn(this.a,Pp(e,11),Pp(t,11))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y6(eWc,"CrossingsCounter/lambda$2$Type",1908),eTS(1909,1,e$C,hA),eUe.ue=function(e,t){return jr(this.a,Pp(e,11),Pp(t,11))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y6(eWc,"CrossingsCounter/lambda$3$Type",1909),eTS(1910,1,eUF,hL),eUe.td=function(e){QT(this.a,Pp(e,11))},Y6(eWc,"CrossingsCounter/lambda$4$Type",1910),eTS(1911,1,eU9,hC),eUe.Mb=function(e){return kq(this.a,Pp(e,11))},Y6(eWc,"CrossingsCounter/lambda$5$Type",1911),eTS(1912,1,eUF,hI),eUe.td=function(e){kV(this,e)},Y6(eWc,"CrossingsCounter/lambda$6$Type",1912),eTS(1913,1,eUF,SF),eUe.td=function(e){var t;Pj(),Vw(this.b,(t=this.a,Pp(e,11),t))},Y6(eWc,"CrossingsCounter/lambda$7$Type",1913),eTS(826,1,e$q,iq),eUe.Lb=function(e){return Pj(),Ln(Pp(e,11),(eBU(),tng))},eUe.Fb=function(e){return this===e},eUe.Mb=function(e){return Pj(),Ln(Pp(e,11),(eBU(),tng))},Y6(eWc,"CrossingsCounter/lambda$8$Type",826),eTS(1905,1,{},hD),Y6(eWc,"HyperedgeCrossingsCounter",1905),eTS(467,1,{35:1,467:1},Cq),eUe.wd=function(e){return ehq(this,Pp(e,467))},eUe.b=0,eUe.c=0,eUe.e=0,eUe.f=0;var e6m=Y6(eWc,"HyperedgeCrossingsCounter/Hyperedge",467);eTS(362,1,{35:1,362:1},He),eUe.wd=function(e){return eMf(this,Pp(e,362))},eUe.b=0,eUe.c=0;var e6g=Y6(eWc,"HyperedgeCrossingsCounter/HyperedgeCorner",362);eTS(523,22,{3:1,35:1,22:1,523:1},Sj);var e6v=enw(eWc,"HyperedgeCrossingsCounter/HyperedgeCorner/Type",523,e1G,$V,Nc);eTS(1405,1,eVD,cO),eUe.Yf=function(e){return Pp(e_k(Pp(e,37),(eBU(),tt3)),21).Hc((eLR(),ttw))?tuh:null},eUe.pf=function(e,t){evK(this,Pp(e,37),t)},Y6(eVY,"InteractiveNodePlacer",1405),eTS(1406,1,eVD,cM),eUe.Yf=function(e){return Pp(e_k(Pp(e,37),(eBU(),tt3)),21).Hc((eLR(),ttw))?tup:null},eUe.pf=function(e,t){emS(this,Pp(e,37),t)},Y6(eVY,"LinearSegmentsNodePlacer",1406),eTS(257,1,{35:1,257:1},ma),eUe.wd=function(e){return vH(this,Pp(e,257))},eUe.Fb=function(e){var t;return!!M4(e,257)&&(t=Pp(e,257),this.b==t.b)},eUe.Hb=function(){return this.b},eUe.Ib=function(){return"ls"+e_F(this.e)},eUe.a=0,eUe.b=0,eUe.c=-1,eUe.d=-1,eUe.g=0;var e6y=Y6(eVY,"LinearSegmentsNodePlacer/LinearSegment",257);eTS(1408,1,eVD,jW),eUe.Yf=function(e){return Pp(e_k(Pp(e,37),(eBU(),tt3)),21).Hc((eLR(),ttw))?tug:null},eUe.pf=function(e,t){eBr(this,Pp(e,37),t)},eUe.b=0,eUe.g=0,Y6(eVY,"NetworkSimplexPlacer",1408),eTS(1427,1,e$C,iZ),eUe.ue=function(e,t){return ME(Pp(e,19).a,Pp(t,19).a)},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y6(eVY,"NetworkSimplexPlacer/0methodref$compare$Type",1427),eTS(1429,1,e$C,iX),eUe.ue=function(e,t){return ME(Pp(e,19).a,Pp(t,19).a)},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y6(eVY,"NetworkSimplexPlacer/1methodref$compare$Type",1429),eTS(649,1,{649:1},SY);var e6w=Y6(eVY,"NetworkSimplexPlacer/EdgeRep",649);eTS(401,1,{401:1},Ht),eUe.b=!1;var e6_=Y6(eVY,"NetworkSimplexPlacer/NodeRep",401);eTS(508,12,{3:1,4:1,20:1,28:1,52:1,12:1,14:1,15:1,54:1,508:1},mu),Y6(eVY,"NetworkSimplexPlacer/Path",508),eTS(1409,1,{},iJ),eUe.Kb=function(e){return Pp(e,17).d.i.k},Y6(eVY,"NetworkSimplexPlacer/Path/lambda$0$Type",1409),eTS(1410,1,eU9,iQ),eUe.Mb=function(e){return Pp(e,267)==(eEn(),e9D)},Y6(eVY,"NetworkSimplexPlacer/Path/lambda$1$Type",1410),eTS(1411,1,{},i1),eUe.Kb=function(e){return Pp(e,17).d.i},Y6(eVY,"NetworkSimplexPlacer/Path/lambda$2$Type",1411),eTS(1412,1,eU9,hN),eUe.Mb=function(e){return Ct(edH(Pp(e,10)))},Y6(eVY,"NetworkSimplexPlacer/Path/lambda$3$Type",1412),eTS(1413,1,eU9,i0),eUe.Mb=function(e){return RM(Pp(e,11))},Y6(eVY,"NetworkSimplexPlacer/lambda$0$Type",1413),eTS(1414,1,eUF,SB),eUe.td=function(e){MP(this.a,this.b,Pp(e,11))},Y6(eVY,"NetworkSimplexPlacer/lambda$1$Type",1414),eTS(1423,1,eUF,hP),eUe.td=function(e){ekS(this.a,Pp(e,17))},Y6(eVY,"NetworkSimplexPlacer/lambda$10$Type",1423),eTS(1424,1,{},i2),eUe.Kb=function(e){return GE(),new R1(null,new Gq(Pp(e,29).a,16))},Y6(eVY,"NetworkSimplexPlacer/lambda$11$Type",1424),eTS(1425,1,eUF,hR),eUe.td=function(e){eCe(this.a,Pp(e,10))},Y6(eVY,"NetworkSimplexPlacer/lambda$12$Type",1425),eTS(1426,1,{},i3),eUe.Kb=function(e){return GE(),ell(Pp(e,121).e)},Y6(eVY,"NetworkSimplexPlacer/lambda$13$Type",1426),eTS(1428,1,{},i4),eUe.Kb=function(e){return GE(),ell(Pp(e,121).e)},Y6(eVY,"NetworkSimplexPlacer/lambda$15$Type",1428),eTS(1430,1,eU9,i6),eUe.Mb=function(e){return GE(),Pp(e,401).c.k==(eEn(),e9N)},Y6(eVY,"NetworkSimplexPlacer/lambda$17$Type",1430),eTS(1431,1,eU9,i5),eUe.Mb=function(e){return GE(),Pp(e,401).c.j.c.length>1},Y6(eVY,"NetworkSimplexPlacer/lambda$18$Type",1431),eTS(1432,1,eUF,Hn),eUe.td=function(e){ef2(this.c,this.b,this.d,this.a,Pp(e,401))},eUe.c=0,eUe.d=0,Y6(eVY,"NetworkSimplexPlacer/lambda$19$Type",1432),eTS(1415,1,{},i8),eUe.Kb=function(e){return GE(),new R1(null,new Gq(Pp(e,29).a,16))},Y6(eVY,"NetworkSimplexPlacer/lambda$2$Type",1415),eTS(1433,1,eUF,hj),eUe.td=function(e){MD(this.a,Pp(e,11))},eUe.a=0,Y6(eVY,"NetworkSimplexPlacer/lambda$20$Type",1433),eTS(1434,1,{},i9),eUe.Kb=function(e){return GE(),new R1(null,new Gq(Pp(e,29).a,16))},Y6(eVY,"NetworkSimplexPlacer/lambda$21$Type",1434),eTS(1435,1,eUF,hF),eUe.td=function(e){Oi(this.a,Pp(e,10))},Y6(eVY,"NetworkSimplexPlacer/lambda$22$Type",1435),eTS(1436,1,eU9,i7),eUe.Mb=function(e){return Ct(e)},Y6(eVY,"NetworkSimplexPlacer/lambda$23$Type",1436),eTS(1437,1,{},ae),eUe.Kb=function(e){return GE(),new R1(null,new Gq(Pp(e,29).a,16))},Y6(eVY,"NetworkSimplexPlacer/lambda$24$Type",1437),eTS(1438,1,eU9,hY),eUe.Mb=function(e){return xH(this.a,Pp(e,10))},Y6(eVY,"NetworkSimplexPlacer/lambda$25$Type",1438),eTS(1439,1,eUF,SU),eUe.td=function(e){eSl(this.a,this.b,Pp(e,10))},Y6(eVY,"NetworkSimplexPlacer/lambda$26$Type",1439),eTS(1440,1,eU9,at),eUe.Mb=function(e){return GE(),!q9(Pp(e,17))},Y6(eVY,"NetworkSimplexPlacer/lambda$27$Type",1440),eTS(1441,1,eU9,an),eUe.Mb=function(e){return GE(),!q9(Pp(e,17))},Y6(eVY,"NetworkSimplexPlacer/lambda$28$Type",1441),eTS(1442,1,{},hB),eUe.Ce=function(e,t){return M9(this.a,Pp(e,29),Pp(t,29))},Y6(eVY,"NetworkSimplexPlacer/lambda$29$Type",1442),eTS(1416,1,{},ar),eUe.Kb=function(e){return GE(),new R1(null,new YI(new Fa(OH(efc(Pp(e,10)).a.Kc(),new c))))},Y6(eVY,"NetworkSimplexPlacer/lambda$3$Type",1416),eTS(1417,1,eU9,ai),eUe.Mb=function(e){return GE(),Km(Pp(e,17))},Y6(eVY,"NetworkSimplexPlacer/lambda$4$Type",1417),eTS(1418,1,eUF,hU),eUe.td=function(e){eNB(this.a,Pp(e,17))},Y6(eVY,"NetworkSimplexPlacer/lambda$5$Type",1418),eTS(1419,1,{},aa),eUe.Kb=function(e){return GE(),new R1(null,new Gq(Pp(e,29).a,16))},Y6(eVY,"NetworkSimplexPlacer/lambda$6$Type",1419),eTS(1420,1,eU9,ao),eUe.Mb=function(e){return GE(),Pp(e,10).k==(eEn(),e9N)},Y6(eVY,"NetworkSimplexPlacer/lambda$7$Type",1420),eTS(1421,1,{},as),eUe.Kb=function(e){return GE(),new R1(null,new YI(new Fa(OH(efs(Pp(e,10)).a.Kc(),new c))))},Y6(eVY,"NetworkSimplexPlacer/lambda$8$Type",1421),eTS(1422,1,eU9,au),eUe.Mb=function(e){return GE(),Rc(Pp(e,17))},Y6(eVY,"NetworkSimplexPlacer/lambda$9$Type",1422),eTS(1404,1,eVD,cz),eUe.Yf=function(e){return Pp(e_k(Pp(e,37),(eBU(),tt3)),21).Hc((eLR(),ttw))?tuv:null},eUe.pf=function(e,t){ePV(Pp(e,37),t)},Y6(eVY,"SimpleNodePlacer",1404),eTS(180,1,{180:1},eIW),eUe.Ib=function(){var e;return e="",this.c==(zs(),tuw)?e+=ezn:this.c==tuy&&(e+=ezt),this.o==(zQ(),tuE)?e+=ezh:this.o==tuS?e+="UP":e+="BALANCED",e},Y6(eVH,"BKAlignedLayout",180),eTS(516,22,{3:1,35:1,22:1,516:1},Sz);var e6E=enw(eVH,"BKAlignedLayout/HDirection",516,e1G,$Z,Nl);eTS(515,22,{3:1,35:1,22:1,515:1},S$);var e6S=enw(eVH,"BKAlignedLayout/VDirection",515,e1G,$X,Nf);eTS(1634,1,{},SH),Y6(eVH,"BKAligner",1634),eTS(1637,1,{},eg$),Y6(eVH,"BKCompactor",1637),eTS(654,1,{654:1},ac),eUe.a=0,Y6(eVH,"BKCompactor/ClassEdge",654),eTS(458,1,{458:1},mo),eUe.a=null,eUe.b=0,Y6(eVH,"BKCompactor/ClassNode",458),eTS(1407,1,eVD,kX),eUe.Yf=function(e){return Pp(e_k(Pp(e,37),(eBU(),tt3)),21).Hc((eLR(),ttw))?tux:null},eUe.pf=function(e,t){eBP(this,Pp(e,37),t)},eUe.d=!1,Y6(eVH,"BKNodePlacer",1407),eTS(1635,1,{},al),eUe.d=0,Y6(eVH,"NeighborhoodInformation",1635),eTS(1636,1,e$C,hH),eUe.ue=function(e,t){return etp(this,Pp(e,46),Pp(t,46))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y6(eVH,"NeighborhoodInformation/NeighborComparator",1636),eTS(808,1,{}),Y6(eVH,"ThresholdStrategy",808),eTS(1763,808,{},mm),eUe.bg=function(e,t,n){return this.a.o==(zQ(),tuS)?eHQ:eH1},eUe.cg=function(){},Y6(eVH,"ThresholdStrategy/NullThresholdStrategy",1763),eTS(579,1,{579:1},SG),eUe.c=!1,eUe.d=!1,Y6(eVH,"ThresholdStrategy/Postprocessable",579),eTS(1764,808,{},mg),eUe.bg=function(e,t,n){var r,i,a;return(i=t==n,r=this.a.a[n.p]==t,i||r)?(a=e,this.a.c,zs(),i&&(a=ePX(this,t,!0)),isNaN(a)||isFinite(a)||!r||(a=ePX(this,n,!1)),a):e},eUe.cg=function(){for(var e,t,n,r,i;0!=this.d.b;){if((r=eDJ(this,i=Pp(zv(this.d),579))).a)e=r.a,((n=gN(this.a.f[this.a.g[i.b.p].p]))||q9(e)||e.c.i.c!=e.d.i.c)&&((t=eMd(this,i))||Th(this.e,i))}for(;0!=this.e.a.c.length;)eMd(this,Pp(euO(this.e),579))},Y6(eVH,"ThresholdStrategy/SimpleThresholdStrategy",1764),eTS(635,1,{635:1,246:1,234:1},af),eUe.Kf=function(){return eaM(this)},eUe.Xf=function(){return eaM(this)},Y6(eV$,"EdgeRouterFactory",635),eTS(1458,1,eVD,cG),eUe.Yf=function(e){return eLb(Pp(e,37))},eUe.pf=function(e,t){eP7(Pp(e,37),t)},Y6(eV$,"OrthogonalEdgeRouter",1458),eTS(1451,1,eVD,kJ),eUe.Yf=function(e){return ev4(Pp(e,37))},eUe.pf=function(e,t){eYg(this,Pp(e,37),t)},Y6(eV$,"PolylineEdgeRouter",1451),eTS(1452,1,e$q,ad),eUe.Lb=function(e){return eaQ(Pp(e,10))},eUe.Fb=function(e){return this===e},eUe.Mb=function(e){return eaQ(Pp(e,10))},Y6(eV$,"PolylineEdgeRouter/1",1452),eTS(1809,1,eU9,ah),eUe.Mb=function(e){return Pp(e,129).c==(Xa(),tuU)},Y6(eVz,"HyperEdgeCycleDetector/lambda$0$Type",1809),eTS(1810,1,{},ap),eUe.Ge=function(e){return Pp(e,129).d},Y6(eVz,"HyperEdgeCycleDetector/lambda$1$Type",1810),eTS(1811,1,eU9,ab),eUe.Mb=function(e){return Pp(e,129).c==(Xa(),tuU)},Y6(eVz,"HyperEdgeCycleDetector/lambda$2$Type",1811),eTS(1812,1,{},am),eUe.Ge=function(e){return Pp(e,129).d},Y6(eVz,"HyperEdgeCycleDetector/lambda$3$Type",1812),eTS(1813,1,{},ag),eUe.Ge=function(e){return Pp(e,129).d},Y6(eVz,"HyperEdgeCycleDetector/lambda$4$Type",1813),eTS(1814,1,{},av),eUe.Ge=function(e){return Pp(e,129).d},Y6(eVz,"HyperEdgeCycleDetector/lambda$5$Type",1814),eTS(112,1,{35:1,112:1},ea$),eUe.wd=function(e){return v$(this,Pp(e,112))},eUe.Fb=function(e){var t;return!!M4(e,112)&&(t=Pp(e,112),this.g==t.g)},eUe.Hb=function(){return this.g},eUe.Ib=function(){var e,t,n,r;for(e=new O0("{"),r=new fz(this.n);r.a"+this.b+" ("+AK(this.c)+")"},eUe.d=0,Y6(eVz,"HyperEdgeSegmentDependency",129),eTS(520,22,{3:1,35:1,22:1,520:1},SW);var e6k=enw(eVz,"HyperEdgeSegmentDependency/DependencyType",520,e1G,$q,Nd);eTS(1815,1,{},h$),Y6(eVz,"HyperEdgeSegmentSplitter",1815),eTS(1816,1,{},ym),eUe.a=0,eUe.b=0,Y6(eVz,"HyperEdgeSegmentSplitter/AreaRating",1816),eTS(329,1,{329:1},N4),eUe.a=0,eUe.b=0,eUe.c=0,Y6(eVz,"HyperEdgeSegmentSplitter/FreeArea",329),eTS(1817,1,e$C,aT),eUe.ue=function(e,t){return ID(Pp(e,112),Pp(t,112))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y6(eVz,"HyperEdgeSegmentSplitter/lambda$0$Type",1817),eTS(1818,1,eUF,Hi),eUe.td=function(e){V6(this.a,this.d,this.c,this.b,Pp(e,112))},eUe.b=0,Y6(eVz,"HyperEdgeSegmentSplitter/lambda$1$Type",1818),eTS(1819,1,{},aM),eUe.Kb=function(e){return new R1(null,new Gq(Pp(e,112).e,16))},Y6(eVz,"HyperEdgeSegmentSplitter/lambda$2$Type",1819),eTS(1820,1,{},aO),eUe.Kb=function(e){return new R1(null,new Gq(Pp(e,112).j,16))},Y6(eVz,"HyperEdgeSegmentSplitter/lambda$3$Type",1820),eTS(1821,1,{},aA),eUe.Fe=function(e){return gP(LV(e))},Y6(eVz,"HyperEdgeSegmentSplitter/lambda$4$Type",1821),eTS(655,1,{},YJ),eUe.a=0,eUe.b=0,eUe.c=0,Y6(eVz,"OrthogonalRoutingGenerator",655),eTS(1638,1,{},aL),eUe.Kb=function(e){return new R1(null,new Gq(Pp(e,112).e,16))},Y6(eVz,"OrthogonalRoutingGenerator/lambda$0$Type",1638),eTS(1639,1,{},aC),eUe.Kb=function(e){return new R1(null,new Gq(Pp(e,112).j,16))},Y6(eVz,"OrthogonalRoutingGenerator/lambda$1$Type",1639),eTS(661,1,{}),Y6(eVG,"BaseRoutingDirectionStrategy",661),eTS(1807,661,{},mv),eUe.dg=function(e,t,n){var r,i,a,o,s,u,c,l,f,d,h,p,b;if(!e.r||e.q)for(l=t+e.o*n,c=new fz(e.n);c.aez9&&(a=l,i=e,r=new kl(f,a),P7(o.a,r),eDD(this,o,i,r,!1),(d=e.r)&&(h=gP(LV(ep3(d.e,0))),r=new kl(h,a),P7(o.a,r),eDD(this,o,i,r,!1),a=t+d.o*n,i=d,r=new kl(h,a),P7(o.a,r),eDD(this,o,i,r,!1)),r=new kl(b,a),P7(o.a,r),eDD(this,o,i,r,!1)))},eUe.eg=function(e){return e.i.n.a+e.n.a+e.a.a},eUe.fg=function(){return eYu(),tbj},eUe.gg=function(){return eYu(),tbw},Y6(eVG,"NorthToSouthRoutingStrategy",1807),eTS(1808,661,{},my),eUe.dg=function(e,t,n){var r,i,a,o,s,u,c,l,f,d,h,p,b;if(!e.r||e.q)for(l=t-e.o*n,c=new fz(e.n);c.aez9&&(a=l,i=e,r=new kl(f,a),P7(o.a,r),eDD(this,o,i,r,!1),(d=e.r)&&(h=gP(LV(ep3(d.e,0))),r=new kl(h,a),P7(o.a,r),eDD(this,o,i,r,!1),a=t-d.o*n,i=d,r=new kl(h,a),P7(o.a,r),eDD(this,o,i,r,!1)),r=new kl(b,a),P7(o.a,r),eDD(this,o,i,r,!1)))},eUe.eg=function(e){return e.i.n.a+e.n.a+e.a.a},eUe.fg=function(){return eYu(),tbw},eUe.gg=function(){return eYu(),tbj},Y6(eVG,"SouthToNorthRoutingStrategy",1808),eTS(1806,661,{},mw),eUe.dg=function(e,t,n){var r,i,a,o,s,u,c,l,f,d,h,p,b;if(!e.r||e.q)for(l=t+e.o*n,c=new fz(e.n);c.aez9&&(a=l,i=e,r=new kl(a,f),P7(o.a,r),eDD(this,o,i,r,!0),(d=e.r)&&(h=gP(LV(ep3(d.e,0))),r=new kl(a,h),P7(o.a,r),eDD(this,o,i,r,!0),a=t+d.o*n,i=d,r=new kl(a,h),P7(o.a,r),eDD(this,o,i,r,!0)),r=new kl(a,b),P7(o.a,r),eDD(this,o,i,r,!0)))},eUe.eg=function(e){return e.i.n.b+e.n.b+e.a.b},eUe.fg=function(){return eYu(),tby},eUe.gg=function(){return eYu(),tbY},Y6(eVG,"WestToEastRoutingStrategy",1806),eTS(813,1,{},eNG),eUe.Ib=function(){return e_F(this.a)},eUe.b=0,eUe.c=!1,eUe.d=!1,eUe.f=0,Y6(eVK,"NubSpline",813),eTS(407,1,{407:1},eA2,za),Y6(eVK,"NubSpline/PolarCP",407),eTS(1453,1,eVD,egt),eUe.Yf=function(e){return ewy(Pp(e,37))},eUe.pf=function(e,t){eYW(this,Pp(e,37),t)},Y6(eVK,"SplineEdgeRouter",1453),eTS(268,1,{268:1},Xt),eUe.Ib=function(){return this.a+" ->("+this.c+") "+this.b},eUe.c=0,Y6(eVK,"SplineEdgeRouter/Dependency",268),eTS(455,22,{3:1,35:1,22:1,455:1},SK);var e6x=enw(eVK,"SplineEdgeRouter/SideToProcess",455,e1G,$J,Nh);eTS(1454,1,eU9,ak),eUe.Mb=function(e){return eAq(),!Pp(e,128).o},Y6(eVK,"SplineEdgeRouter/lambda$0$Type",1454),eTS(1455,1,{},aS),eUe.Ge=function(e){return eAq(),Pp(e,128).v+1},Y6(eVK,"SplineEdgeRouter/lambda$1$Type",1455),eTS(1456,1,eUF,SV),eUe.td=function(e){Rw(this.a,this.b,Pp(e,46))},Y6(eVK,"SplineEdgeRouter/lambda$2$Type",1456),eTS(1457,1,eUF,Sq),eUe.td=function(e){R_(this.a,this.b,Pp(e,46))},Y6(eVK,"SplineEdgeRouter/lambda$3$Type",1457),eTS(128,1,{35:1,128:1},eSB,eRM),eUe.wd=function(e){return vz(this,Pp(e,128))},eUe.b=0,eUe.e=!1,eUe.f=0,eUe.g=0,eUe.j=!1,eUe.k=!1,eUe.n=0,eUe.o=!1,eUe.p=!1,eUe.q=!1,eUe.s=0,eUe.u=0,eUe.v=0,eUe.F=0,Y6(eVK,"SplineSegment",128),eTS(459,1,{459:1},ax),eUe.a=0,eUe.b=!1,eUe.c=!1,eUe.d=!1,eUe.e=!1,eUe.f=0,Y6(eVK,"SplineSegment/EdgeInformation",459),eTS(1234,1,{},ay),Y6(eVJ,ezQ,1234),eTS(1235,1,e$C,aw),eUe.ue=function(e,t){return ek4(Pp(e,135),Pp(t,135))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y6(eVJ,ez1,1235),eTS(1233,1,{},y2),Y6(eVJ,"MrTree",1233),eTS(393,22,{3:1,35:1,22:1,393:1,246:1,234:1},SZ),eUe.Kf=function(){return ek5(this)},eUe.Xf=function(){return ek5(this)};var e6T=enw(eVJ,"TreeLayoutPhases",393,e1G,VM,Np);eTS(1130,209,ezL,CJ),eUe.Ze=function(e,t){var n,r,i,a,o,s,u;for(gN(LK(eT9(e,(eTj(),tcA))))||zh(n=new df((_q(),new gM(e)))),o=(eaW(s=new Xn,e),eo3(s,(eR5(),tcl),e),u=new p2,eDf(e,s,u),eDU(e,s,u),s),a=eDO(this.a,o),i=new fz(a);i.a"+WU(this.c):"e_"+esj(this)},Y6(eVQ,"TEdge",188),eTS(135,134,{3:1,135:1,94:1,134:1},Xn),eUe.Ib=function(){var e,t,n,r,i;for(i=null,r=epL(this.b,0);r.b!=r.d.c;)i+=(null==(n=Pp(Vv(r),86)).c||0==n.c.length?"n_"+n.g:"n_"+n.c)+"\n";for(t=epL(this.a,0);t.b!=t.d.c;)i+=((e=Pp(Vv(t),188)).b&&e.c?WU(e.b)+"->"+WU(e.c):"e_"+esj(e))+"\n";return i};var e6M=Y6(eVQ,"TGraph",135);eTS(633,502,{3:1,502:1,633:1,94:1,134:1}),Y6(eVQ,"TShape",633),eTS(86,633,{3:1,502:1,86:1,633:1,94:1,134:1},esH),eUe.Ib=function(){return WU(this)};var e6O=Y6(eVQ,"TNode",86);eTS(255,1,eU$,hz),eUe.Jc=function(e){qX(this,e)},eUe.Kc=function(){var e;return e=epL(this.a.d,0),new hG(e)},Y6(eVQ,"TNode/2",255),eTS(358,1,eUE,hG),eUe.Nb=function(e){F9(this,e)},eUe.Pb=function(){return Pp(Vv(this.a),188).c},eUe.Ob=function(){return yV(this.a)},eUe.Qb=function(){etu(this.a)},Y6(eVQ,"TNode/2/1",358),eTS(1840,1,eGB,CX),eUe.pf=function(e,t){eNv(this,Pp(e,135),t)},Y6(eV1,"FanProcessor",1840),eTS(327,22,{3:1,35:1,22:1,327:1,234:1},SX),eUe.Kf=function(){switch(this.g){case 0:return new mX;case 1:return new CX;case 2:return new aN;case 3:return new aI;case 4:return new aR;case 5:return new aj;default:throw p7(new gL(eWt+(null!=this.f?this.f:""+this.g)))}};var e6A=enw(eV1,eWn,327,e1G,JS,Nb);eTS(1843,1,eGB,aI),eUe.pf=function(e,t){eMo(this,Pp(e,135),t)},eUe.a=0,Y6(eV1,"LevelHeightProcessor",1843),eTS(1844,1,eU$,aD),eUe.Jc=function(e){qX(this,e)},eUe.Kc=function(){return Hj(),wV(),e2o},Y6(eV1,"LevelHeightProcessor/1",1844),eTS(1841,1,eGB,aN),eUe.pf=function(e,t){eSP(this,Pp(e,135),t)},eUe.a=0,Y6(eV1,"NeighborsProcessor",1841),eTS(1842,1,eU$,aP),eUe.Jc=function(e){qX(this,e)},eUe.Kc=function(){return Hj(),wV(),e2o},Y6(eV1,"NeighborsProcessor/1",1842),eTS(1845,1,eGB,aR),eUe.pf=function(e,t){eMa(this,Pp(e,135),t)},eUe.a=0,Y6(eV1,"NodePositionProcessor",1845),eTS(1839,1,eGB,mX),eUe.pf=function(e,t){eRm(this,Pp(e,135))},Y6(eV1,"RootProcessor",1839),eTS(1846,1,eGB,aj),eUe.pf=function(e,t){elE(Pp(e,135))},Y6(eV1,"Untreeifyer",1846),eTS(851,1,e$2,c$),eUe.Qe=function(e){efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eV3),""),"Weighting of Nodes"),"Which weighting to use when computing a node order."),tcE),(eSd(),tdv)),e6L),el8((epx(),tdh))))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eV4),""),"Search Order"),"Which search order to use when computing a spanning tree."),tcw),tdv),e6C),el8(tdh)))),ejG((new cH,e))},Y6(eV6,"MrTreeMetaDataProvider",851),eTS(994,1,e$2,cH),eUe.Qe=function(e){ejG(e)},Y6(eV6,"MrTreeOptions",994),eTS(995,1,{},aF),eUe.$e=function(){return new CJ},eUe._e=function(e){},Y6(eV6,"MrTreeOptions/MrtreeFactory",995),eTS(480,22,{3:1,35:1,22:1,480:1},SJ);var e6L=enw(eV6,"OrderWeighting",480,e1G,$1,Nm);eTS(425,22,{3:1,35:1,22:1,425:1},SQ);var e6C=enw(eV6,"TreeifyingOrder",425,e1G,$Q,Nv);eTS(1459,1,eVD,cD),eUe.Yf=function(e){return Pp(e,135),tcz},eUe.pf=function(e,t){eiD(this,Pp(e,135),t)},Y6("org.eclipse.elk.alg.mrtree.p1treeify","DFSTreeifyer",1459),eTS(1460,1,eVD,cN),eUe.Yf=function(e){return Pp(e,135),tcG},eUe.pf=function(e,t){eSZ(this,Pp(e,135),t)},Y6("org.eclipse.elk.alg.mrtree.p2order","NodeOrderer",1460),eTS(1461,1,eVD,cI),eUe.Yf=function(e){return Pp(e,135),tcW},eUe.pf=function(e,t){eCh(this,Pp(e,135),t)},eUe.a=0,Y6("org.eclipse.elk.alg.mrtree.p3place","NodePlacer",1461),eTS(1462,1,eVD,cP),eUe.Yf=function(e){return Pp(e,135),tcK},eUe.pf=function(e,t){evm(Pp(e,135),t)},Y6("org.eclipse.elk.alg.mrtree.p4route","EdgeRouter",1462),eTS(495,22,{3:1,35:1,22:1,495:1,246:1,234:1},S1),eUe.Kf=function(){return ede(this)},eUe.Xf=function(){return ede(this)};var e6I=enw(eV9,"RadialLayoutPhases",495,e1G,$0,Ng);eTS(1131,209,ezL,y0),eUe.Ze=function(e,t){var n,r,i,a,o,s;if(n=eS9(this,e),ewG(t,"Radial layout",n.c.length),gN(LK(eT9(e,(egj(),tlm))))||zh(r=new df((_q(),new gM(e)))),s=ewE(e),ebu(e,(Lj(),tcV),s),!s)throw p7(new gL("The given graph is not a tree!"));for(0==(i=gP(LV(eT9(e,tl_))))&&(i=ekB(e)),ebu(e,tl_,i),o=new fz(eS9(this,e));o.a0&&eu9((GV(t-1,e.length),e.charCodeAt(t-1)),eGq);)--t;if(r>=t)throw p7(new gL("The given string does not contain any numbers."));if(2!=(i=eIk(e.substr(r,t-r),",|;|\r|\n")).length)throw p7(new gL("Exactly two numbers are expected, "+i.length+" were found."));try{this.a=eEu(e_H(i[0])),this.b=eEu(e_H(i[1]))}catch(a){if(a=eoa(a),M4(a,127))throw n=a,p7(new gL(eGZ+n));throw p7(a)}},eUe.Ib=function(){return"("+this.a+","+this.b+")"},eUe.a=0,eUe.b=0;var e60=Y6(eGX,"KVector",8);eTS(74,68,{3:1,4:1,20:1,28:1,52:1,14:1,68:1,15:1,74:1,414:1},mE,yc,Lb),eUe.Pc=function(){return euE(this)},eUe.Jf=function(e){var t,n,r,i,a,o;r=eIk(e,",|;|\\(|\\)|\\[|\\]|\\{|\\}| | |\n"),HC(this);try{for(n=0,a=0,i=0,o=0;n0&&(a%2==0?i=eEu(r[n]):o=eEu(r[n]),a>0&&a%2!=0&&P7(this,new kl(i,o)),++a),++n}catch(s){if(s=eoa(s),M4(s,127))throw t=s,p7(new gL("The given string does not match the expected format for vectors."+t));throw p7(s)}},eUe.Ib=function(){var e,t,n;for(e=new O0("("),t=epL(this,0);t.b!=t.d.c;)xM(e,(n=Pp(Vv(t),8)).a+","+n.b),t.b!=t.d.c&&(e.a+="; ");return(e.a+=")",e).a};var e62=Y6(eGX,"KVectorChain",74);eTS(248,22,{3:1,35:1,22:1,248:1},kf);var e63=enw(eZe,"Alignment",248,e1G,Jg,NP);eTS(979,1,e$2,cq),eUe.Qe=function(e){eDj(e)},Y6(eZe,"BoxLayouterOptions",979),eTS(980,1,{},oA),eUe.$e=function(){return new oF},eUe._e=function(e){},Y6(eZe,"BoxLayouterOptions/BoxFactory",980),eTS(291,22,{3:1,35:1,22:1,291:1},kd);var e64=enw(eZe,"ContentAlignment",291,e1G,Jm,NR);eTS(684,1,e$2,cZ),eUe.Qe=function(e){efO(e,new eE9(yt(ye(yn(v4(v7(v5(v8(new oN,eZi),""),"Layout Algorithm"),"Select a specific layout algorithm."),(eSd(),tdE)),e17),el8((epx(),tdh))))),efO(e,new eE9(yt(ye(yn(v4(v7(v5(v8(new oN,eZa),""),"Resolved Layout Algorithm"),"Meta data associated with the selected algorithm."),td_),e6X),el8(tdh)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eVi),""),"Alignment"),"Alignment of the selected node relative to other nodes; the exact meaning depends on the used algorithm."),td0),tdv),e63),el8(tdd)))),efO(e,new eE9(yt(ye(yn(v4(v7(v5(v8(new oN,ezG),""),"Aspect Ratio"),"The desired aspect ratio of the drawing, that is the quotient of width by height."),tdg),e13),el8(tdh)))),efO(e,new eE9(yt(ye(yn(v4(v7(v5(v8(new oN,eZo),""),"Bend Points"),"A fixed list of bend points for the edge. This is used by the 'Fixed Layout' algorithm to specify a pre-defined routing for an edge. The vector chain must include the source point, any bend points, and the target point, so it must have at least two points."),td_),e62),el8(tdl)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eVg),""),"Content Alignment"),"Specifies how the content of a node are aligned. Each node can individually control the alignment of its contents. I.e. if a node should be aligned top left in its parent node, the parent node should specify that option."),td9),tdy),e64),el8(tdh)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eVr),""),"Debug Mode"),"Whether additional debug information shall be generated."),(OQ(),!1)),tdm),e11),el8(tdh)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eVu),""),ezw),"Overall direction of edges: horizontal (right / left) or vertical (down / up)."),tht),tdv),e66),el8(tdh)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eKB),""),"Edge Routing"),"What kind of edge routing style should be applied for the content of a parent node. Algorithms may also set this option to single edges in order to mark them as splines. The bend point list of edges with this option set to SPLINES must be interpreted as control points for a piecewise cubic spline."),tho),tdv),e68),el8(tdh)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eqC),""),"Expand Nodes"),"If active, nodes are expanded to fill the area of their parent."),!1),tdm),e11),el8(tdh)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eKP),""),"Hierarchy Handling"),"Determines whether separate layout runs are triggered for different compound nodes in a hierarchical graph. Setting a node's hierarchy handling to `INCLUDE_CHILDREN` will lay out that node and all of its descendants in a single layout run, until a descendant is encountered which has its hierarchy handling set to `SEPARATE_CHILDREN`. In general, `SEPARATE_CHILDREN` will ensure that a new layout run is triggered for a node with that setting. Including multiple levels of hierarchy in a single layout run may allow cross-hierarchical edges to be laid out properly. If the root node is set to `INHERIT` (or not set at all), the default behavior is `SEPARATE_CHILDREN`."),thf),tdv),e67),jL(tdh,eow(vx(e6Q,1),eU4,175,0,[tdd]))))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,ezW),""),"Padding"),"The padding to be left to a parent element's border when placing child elements. This can also serve as an output option of a layout algorithm if node size calculation is setup appropriately."),thP),td_),e4R),jL(tdh,eow(vx(e6Q,1),eU4,175,0,[tdd]))))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eGu),""),"Interactive"),"Whether the algorithm should be run in interactive mode for the content of a parent node. What this means exactly depends on how the specific algorithm interprets this option. Usually in the interactive mode algorithms try to modify the current layout as little as possible."),!1),tdm),e11),el8(tdh)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eVA),""),"interactive Layout"),"Whether the graph should be changeable interactively and by setting constraints"),!1),tdm),e11),el8(tdh)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eGf),""),"Omit Node Micro Layout"),"Node micro layout comprises the computation of node dimensions (if requested), the placement of ports and their labels, and the placement of node labels. The functionality is implemented independent of any specific layout algorithm and shouldn't have any negative impact on the layout algorithm's performance itself. Yet, if any unforeseen behavior occurs, this option allows to deactivate the micro layout."),!1),tdm),e11),el8(tdh)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eGc),""),"Port Constraints"),"Defines constraints of the position of the ports of a node."),thq),tdv),e5r),el8(tdd)))),efO(e,new eE9(yt(ye(yn(v4(v7(v5(v8(new oN,eVT),""),"Position"),"The position of a node, port, or label. This is used by the 'Fixed Layout' algorithm to specify a pre-defined position."),td_),e60),jL(tdd,eow(vx(e6Q,1),eU4,175,0,[tdp,tdf]))))),efO(e,new eE9(yt(ye(yn(v4(v7(v5(v8(new oN,eGr),""),"Priority"),"Defines the priority of an object; its meaning depends on the specific layout algorithm and the context where it is used."),tdw),e16),jL(tdd,eow(vx(e6Q,1),eU4,175,0,[tdl]))))),efO(e,new eE9(yt(ye(yn(v4(v7(v5(v8(new oN,eGo),""),"Randomization Seed"),"Seed used for pseudo-random number generators to control the layout algorithm. If the value is 0, the seed shall be determined pseudo-randomly (e.g. from the system time)."),tdw),e16),el8(tdh)))),efO(e,new eE9(yt(ye(yn(v4(v7(v5(v8(new oN,eGs),""),"Separate Connected Components"),"Whether each connected component should be processed separately."),tdm),e11),el8(tdh)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eVv),""),"Junction Points"),"This option is not used as option, but as output of the layout algorithms. It is attached to edges and determines the points where junction symbols should be drawn in order to represent hyperedges with orthogonal routing. Whether such points are computed depends on the chosen layout algorithm and edge routing style. The points are put into the vector chain with no specific order."),thv),td_),e62),el8(tdl)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eV_),""),"Comment Box"),"Whether the node should be regarded as a comment box instead of a regular node. In that case its placement should be similar to how labels are handled. Any edges incident to a comment box specify to which graph elements the comment is related."),!1),tdm),e11),el8(tdd)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eVE),""),"Hypernode"),"Whether the node should be handled as a hypernode."),!1),tdm),e11),el8(tdd)))),efO(e,new eE9(yt(ye(yn(v4(v7(v5(v8(new oN,eZs),""),"Label Manager"),"Label managers can shorten labels upon a layout algorithm's request."),td_),tyO),jL(tdh,eow(vx(e6Q,1),eU4,175,0,[tdf]))))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eVM),""),"Margins"),"Margins define additional space around the actual bounds of a graph element. For instance, ports or labels being placed on the outside of a node's border might introduce such a margin. The margin is used to guarantee non-overlap of other graph elements with those ports or labels."),thw),td_),e4D),el8(tdd)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eVt),""),"No Layout"),"No layout is done for the associated element. This is used to mark parts of a diagram to avoid their inclusion in the layout graph, or to mark parts of the layout graph to prevent layout engines from processing them. If you wish to exclude the contents of a compound node from automatic layout, while the node itself is still considered on its own layer, use the 'Fixed Layout' algorithm for that node."),!1),tdm),e11),jL(tdd,eow(vx(e6Q,1),eU4,175,0,[tdl,tdp,tdf]))))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eZu),""),"Scale Factor"),"The scaling factor to be applied to the corresponding node in recursive layout. It causes the corresponding node's size to be adjusted, and its ports and labels to be sized and placed accordingly after the layout of that node has been determined (and before the node itself and its siblings are arranged). The scaling is not reverted afterwards, so the resulting layout graph contains the adjusted size and position data. This option is currently not supported if 'Layout Hierarchy' is set."),1),tdg),e13),el8(tdd)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eZc),""),"Animate"),"Whether the shift from the old layout to the new computed layout shall be animated."),!0),tdm),e11),el8(tdh)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eZl),""),"Animation Time Factor"),"Factor for computation of animation time. The higher the value, the longer the animation time. If the value is 0, the resulting time is always equal to the minimum defined by 'Minimal Animation Time'."),ell(100)),tdw),e16),el8(tdh)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eZf),""),"Layout Ancestors"),"Whether the hierarchy levels on the path from the selected element to the root of the diagram shall be included in the layout process."),!1),tdm),e11),el8(tdh)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eZd),""),"Maximal Animation Time"),"The maximal time for animations, in milliseconds."),ell(4e3)),tdw),e16),el8(tdh)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eZh),""),"Minimal Animation Time"),"The minimal time for animations, in milliseconds."),ell(400)),tdw),e16),el8(tdh)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eZp),""),"Progress Bar"),"Whether a progress bar shall be displayed during layout computations."),!1),tdm),e11),el8(tdh)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eZb),""),"Validate Graph"),"Whether the graph shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user."),!1),tdm),e11),el8(tdh)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eZm),""),"Validate Options"),"Whether layout options shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user."),!0),tdm),e11),el8(tdh)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eZg),""),"Zoom to Fit"),"Whether the zoom level shall be set to view the whole diagram after layout."),!1),tdm),e11),el8(tdh)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eZr),"box"),"Box Layout Mode"),"Configures the packing mode used by the {@link BoxLayoutProvider}. If SIMPLE is not required (neither priorities are used nor the interactive mode), GROUP_DEC can improve the packing and decrease the area. GROUP_MIXED and GROUP_INC may, in very specific scenarios, work better."),td6),tdv),e5u),el8(tdh)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eKQ),eKU),"Comment Comment Spacing"),"Spacing to be preserved between a comment box and other comment boxes connected to the same node. The space left between comment boxes of different nodes is controlled by the node-node spacing."),10),tdg),e13),el8(tdh)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eK1),eKU),"Comment Node Spacing"),"Spacing to be preserved between a node and its connected comment boxes. The space left between a node and the comments of another node is controlled by the node-node spacing."),10),tdg),e13),el8(tdh)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,ez$),eKU),"Components Spacing"),"Spacing to be preserved between pairs of connected components. This option is only relevant if 'separateConnectedComponents' is activated."),20),tdg),e13),el8(tdh)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eK0),eKU),"Edge Spacing"),"Spacing to be preserved between any two edges. Note that while this can somewhat easily be satisfied for the segments of orthogonally drawn edges, it is harder for general polylines or splines."),10),tdg),e13),el8(tdh)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eGa),eKU),"Edge Label Spacing"),"The minimal distance to be preserved between a label and the edge it is associated with. Note that the placement of a label is influenced by the 'edgelabels.placement' option."),2),tdg),e13),el8(tdh)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eK2),eKU),"Edge Node Spacing"),"Spacing to be preserved between nodes and edges."),10),tdg),e13),el8(tdh)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eK3),eKU),"Label Spacing"),"Determines the amount of space to be left between two labels of the same graph element."),0),tdg),e13),el8(tdh)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eK5),eKU),"Label Node Spacing"),"Spacing to be preserved between labels and the border of node they are associated with. Note that the placement of a label is influenced by the 'nodelabels.placement' option."),5),tdg),e13),el8(tdh)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eK4),eKU),"Horizontal spacing between Label and Port"),"Horizontal spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option."),1),tdg),e13),el8(tdh)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eK6),eKU),"Vertical spacing between Label and Port"),"Vertical spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option."),1),tdg),e13),el8(tdh)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eGi),eKU),"Node Spacing"),"The minimal distance to be preserved between each two nodes."),20),tdg),e13),el8(tdh)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eK8),eKU),"Node Self Loop Spacing"),"Spacing to be preserved between a node and its self loops."),10),tdg),e13),el8(tdh)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eK9),eKU),"Port Spacing"),"Spacing between pairs of ports of the same node."),10),tdg),e13),jL(tdh,eow(vx(e6Q,1),eU4,175,0,[tdd]))))),efO(e,new eE9(yt(ye(yn(v4(v7(v5(v8(new oN,eK7),eKU),"Individual Spacing"),"Allows to specify individual spacing values for graph elements that shall be different from the value specified for the element's parent."),td_),e5c),jL(tdd,eow(vx(e6Q,1),eU4,175,0,[tdl,tdp,tdf]))))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eVO),eKU),"Additional Port Space"),"Additional space around the sets of ports on each node side. For each side of a node, this option can reserve additional space before and after the ports on each side. For example, a top spacing of 20 makes sure that the first port on the western and eastern side is 20 units away from the northern border."),tph),td_),e4D),el8(tdh)))),efO(e,new eE9(yt(ye(yn(v4(v7(v5(v8(new oN,eVx),eZ_),"Layout Partition"),"Partition to which the node belongs. This requires Layout Partitioning to be active. Nodes with lower partition IDs will appear to the left of nodes with higher partition IDs (assuming a left-to-right layout direction)."),tdw),e16),jL(tdh,eow(vx(e6Q,1),eU4,175,0,[tdd]))))),K_(e,eVx,eVk,thY),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eVk),eZ_),"Layout Partitioning"),"Whether to activate partitioned layout. This will allow to group nodes through the Layout Partition option. a pair of nodes with different partition indices is then placed such that the node with lower index is placed to the left of the other node (with left-to-right layout direction). Depending on the layout algorithm, this may only be guaranteed to work if all nodes have a layout partition configured, or at least if edges that cross partitions are not part of a partition-crossing cycle."),thj),tdm),e11),el8(tdh)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eVc),eZE),"Node Label Padding"),"Define padding for node labels that are placed inside of a node."),thE),td_),e4R),el8(tdh)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eGp),eZE),"Node Label Placement"),"Hints for where node labels are to be placed; if empty, the node label's position is not modified."),thk),tdy),e5t),jL(tdd,eow(vx(e6Q,1),eU4,175,0,[tdf]))))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eVd),eZS),"Port Alignment"),"Defines the default port distribution for a node. May be overridden for each side individually."),thU),tdv),e5n),el8(tdd)))),efO(e,new eE9(yt(ye(yn(v4(v7(v5(v8(new oN,eVh),eZS),"Port Alignment (North)"),"Defines how ports on the northern side are placed, overriding the node's general port alignment."),tdv),e5n),el8(tdd)))),efO(e,new eE9(yt(ye(yn(v4(v7(v5(v8(new oN,eVp),eZS),"Port Alignment (South)"),"Defines how ports on the southern side are placed, overriding the node's general port alignment."),tdv),e5n),el8(tdd)))),efO(e,new eE9(yt(ye(yn(v4(v7(v5(v8(new oN,eVb),eZS),"Port Alignment (West)"),"Defines how ports on the western side are placed, overriding the node's general port alignment."),tdv),e5n),el8(tdd)))),efO(e,new eE9(yt(ye(yn(v4(v7(v5(v8(new oN,eVm),eZS),"Port Alignment (East)"),"Defines how ports on the eastern side are placed, overriding the node's general port alignment."),tdv),e5n),el8(tdd)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eGh),eZk),"Node Size Constraints"),"What should be taken into account when calculating a node's size. Empty size constraints specify that a node's size is already fixed and should not be changed."),thT),tdy),e5o),el8(tdd)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eGd),eZk),"Node Size Options"),"Options modifying the behavior of the size constraints set on a node. Each member of the set specifies something that should be taken into account when calculating node sizes. The empty set corresponds to no further modifications."),thC),tdy),e5s),el8(tdd)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eGM),eZk),"Node Size Minimum"),"The minimal size to which a node can be reduced."),thA),td_),e60),el8(tdd)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eVs),eZk),"Fixed Graph Size"),"By default, the fixed layout provider will enlarge a graph until it is large enough to contain its children. If this option is set, it won't do so."),!1),tdm),e11),el8(tdh)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eVy),eKX),"Edge Label Placement"),"Gives a hint on where to put edge labels."),thi),tdv),e65),el8(tdf)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eGl),eKX),"Inline Edge Labels"),"If true, an edge label is placed directly on its edge. May only apply to center edge labels. This kind of label placement is only advisable if the label's rendering is such that it is not crossed by its edge and thus stays legible."),!1),tdm),e11),el8(tdf)))),efO(e,new eE9(yt(ye(yn(v4(v7(v5(v8(new oN,eZv),"font"),"Font Name"),"Font name used for a label."),tdE),e17),el8(tdf)))),efO(e,new eE9(yt(ye(yn(v4(v7(v5(v8(new oN,eZy),"font"),"Font Size"),"Font size used for a label."),tdw),e16),el8(tdf)))),efO(e,new eE9(yt(ye(yn(v4(v7(v5(v8(new oN,eVS),eZx),"Port Anchor Offset"),"The offset to the port position where connections shall be attached."),td_),e60),el8(tdp)))),efO(e,new eE9(yt(ye(yn(v4(v7(v5(v8(new oN,eVw),eZx),"Port Index"),"The index of a port in the fixed order around a node. The order is assumed as clockwise, starting with the leftmost port on the top side. This option must be set if 'Port Constraints' is set to FIXED_ORDER and no specific positions are given for the ports. Additionally, the option 'Port Side' must be defined in this case."),tdw),e16),el8(tdp)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eVn),eZx),"Port Side"),"The side of a node on which a port is situated. This option must be set if 'Port Constraints' is set to FIXED_SIDE or FIXED_ORDER and no specific positions are given for the ports."),th2),tdv),e5a),el8(tdp)))),efO(e,new eE9(yt(ye(yn(v4(v7(v5(v8(new oN,eVe),eZx),"Port Border Offset"),"The offset of ports on the node border. With a positive offset the port is moved outside of the node, while with a negative offset the port is moved towards the inside. An offset of 0 means that the port is placed directly on the node border, i.e. if the port side is north, the port's south border touches the nodes's north border; if the port side is east, the port's west border touches the nodes's east border; if the port side is south, the port's north border touches the node's south border; if the port side is west, the port's east border touches the node's west border."),tdg),e13),el8(tdp)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eGb),eZT),"Port Label Placement"),"Decides on a placement method for port labels; if empty, the node label's position is not modified."),thQ),tdy),e5i),el8(tdd)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eVl),eZT),"Port Labels Next to Port"),"Use 'portLabels.placement': NEXT_TO_PORT_OF_POSSIBLE."),!1),tdm),e11),el8(tdd)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eVf),eZT),"Treat Port Labels as Group"),"If this option is true (default), the labels of a port will be treated as a group when it comes to centering them next to their port. If this option is false, only the first label will be centered next to the port, with the others being placed below. This only applies to labels of eastern and western ports and will have no effect if labels are not placed next to their port."),!0),tdm),e11),el8(tdd)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eVa),eZM),"Activate Inside Self Loops"),"Whether this node allows to route self loops inside of it instead of around it. If set to true, this will make the node a compound node if it isn't already, and will require the layout algorithm to support compound nodes with hierarchical ports."),!1),tdm),e11),el8(tdd)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eVo),eZM),"Inside Self Loop"),"Whether a self loop should be routed inside a node instead of around that node."),!1),tdm),e11),el8(tdl)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,ezz),"edge"),"Edge Thickness"),"The thickness of an edge. This is a hint on the line width used to draw an edge, possibly requiring more space to be reserved for it."),1),tdg),e13),el8(tdl)))),efO(e,new eE9(yt(ye(yn(v6(v4(v7(v5(v8(new oN,eZw),"edge"),"Edge Type"),"The type of an edge. This is usually used for UML class diagrams, where associations must be handled differently from generalizations."),thu),tdv),e69),el8(tdl)))),_B(e,new GM(v0(v3(v2(new of,eG1),"Layered"),'The layer-based method was introduced by Sugiyama, Tagawa and Toda in 1981. It emphasizes the direction of edges by pointing as many edges as possible into the same direction. The nodes are arranged in layers, which are sometimes called "hierarchies", and then reordered such that the number of edge crossings is minimized. Afterwards, concrete coordinates are computed for the nodes and edge bend points.'))),_B(e,new GM(v0(v3(v2(new of,"org.eclipse.elk.orthogonal"),"Orthogonal"),'Orthogonal methods that follow the "topology-shape-metrics" approach by Batini, Nardelli and Tamassia \'86. The first phase determines the topology of the drawing by applying a planarization technique, which results in a planar representation of the graph. The orthogonal shape is computed in the second phase, which aims at minimizing the number of edge bends, and is called orthogonalization. The third phase leads to concrete coordinates for nodes and edge bend points by applying a compaction method, thus defining the metrics.'))),_B(e,new GM(v0(v3(v2(new of,eGn),"Force"),"Layout algorithms that follow physical analogies by simulating a system of attractive and repulsive forces. The first successful method of this kind was proposed by Eades in 1984."))),_B(e,new GM(v0(v3(v2(new of,"org.eclipse.elk.circle"),"Circle"),"Circular layout algorithms emphasize cycles or biconnected components of a graph by arranging them in circles. This is useful if a drawing is desired where such components are clearly grouped, or where cycles are shown as prominent OPTIONS of the graph."))),_B(e,new GM(v0(v3(v2(new of,eV8),"Tree"),"Specialized layout methods for trees, i.e. acyclic graphs. The regular structure of graphs that have no undirected cycles can be emphasized using an algorithm of this type."))),_B(e,new GM(v0(v3(v2(new of,"org.eclipse.elk.planar"),"Planar"),"Algorithms that require a planar or upward planar graph. Most of these algorithms are theoretically interesting, but not practically usable."))),_B(e,new GM(v0(v3(v2(new of,eqp),"Radial"),"Radial layout algorithms usually position the nodes of the graph on concentric circles."))),eIm((new cX,e)),eDj((new cq,e)),eL5((new cJ,e))},Y6(eZe,"CoreOptions",684),eTS(103,22,{3:1,35:1,22:1,103:1},kh);var e66=enw(eZe,ezw,103,e1G,Zh,NY);eTS(272,22,{3:1,35:1,22:1,272:1},kp);var e65=enw(eZe,"EdgeLabelPlacement",272,e1G,Wp,NB);eTS(218,22,{3:1,35:1,22:1,218:1},kb);var e68=enw(eZe,"EdgeRouting",218,e1G,VC,NU);eTS(312,22,{3:1,35:1,22:1,312:1},km);var e69=enw(eZe,"EdgeType",312,e1G,Jx,NH);eTS(977,1,e$2,cX),eUe.Qe=function(e){eIm(e)},Y6(eZe,"FixedLayouterOptions",977),eTS(978,1,{},o$),eUe.$e=function(){return new oR},eUe._e=function(e){},Y6(eZe,"FixedLayouterOptions/FixedFactory",978),eTS(334,22,{3:1,35:1,22:1,334:1},kg);var e67=enw(eZe,"HierarchyHandling",334,e1G,Wh,N$);eTS(285,22,{3:1,35:1,22:1,285:1},kv);var e5e=enw(eZe,"LabelSide",285,e1G,VL,Nz);eTS(93,22,{3:1,35:1,22:1,93:1},ky);var e5t=enw(eZe,"NodeLabelPlacement",93,e1G,ene,NG);eTS(249,22,{3:1,35:1,22:1,249:1},kw);var e5n=enw(eZe,"PortAlignment",249,e1G,Zp,NW);eTS(98,22,{3:1,35:1,22:1,98:1},k_);var e5r=enw(eZe,"PortConstraints",98,e1G,X0,NK);eTS(273,22,{3:1,35:1,22:1,273:1},kE);var e5i=enw(eZe,"PortLabelPlacement",273,e1G,Jk,NV);eTS(61,22,{3:1,35:1,22:1,61:1},kS);var e5a=enw(eZe,"PortSide",61,e1G,q6,NX);eTS(981,1,e$2,cJ),eUe.Qe=function(e){eL5(e)},Y6(eZe,"RandomLayouterOptions",981),eTS(982,1,{},oz),eUe.$e=function(){return new oV},eUe._e=function(e){},Y6(eZe,"RandomLayouterOptions/RandomFactory",982),eTS(374,22,{3:1,35:1,22:1,374:1},kk);var e5o=enw(eZe,"SizeConstraint",374,e1G,VA,Nq);eTS(259,22,{3:1,35:1,22:1,259:1},kx);var e5s=enw(eZe,"SizeOptions",259,e1G,en2,NZ);eTS(370,1,{1949:1},mV),eUe.b=!1,eUe.c=0,eUe.d=-1,eUe.e=null,eUe.f=null,eUe.g=-1,eUe.j=!1,eUe.k=!1,eUe.n=!1,eUe.o=0,eUe.q=0,eUe.r=0,Y6(eVL,"BasicProgressMonitor",370),eTS(972,209,ezL,oF),eUe.Ze=function(e,t){var n,r,i,a,o,s,u,c,l;(ewG(t,"Box layout",2),i=gR(LV(eT9(e,(e_C(),tdG)))),a=Pp(eT9(e,tdH),116),n=gN(LK(eT9(e,tdj))),r=gN(LK(eT9(e,tdF))),0===Pp(eT9(e,tdP),311).g)?(o=(s=new I4((e.a||(e.a=new FQ(e5k,e,10,11)),e.a)),Hj(),Mv(s,new h3(r)),s),u=eSI(e),(null==(c=LV(eT9(e,tdN)))||(BJ(c),c<=0))&&(c=1.3),l=eYA(o,i,a,u.a,u.b,n,(BJ(c),c)),eYx(e,l.a,l.b,!1,!0)):eRF(e,i,a,n),eEj(t)},Y6(eVL,"BoxLayoutProvider",972),eTS(973,1,e$C,h3),eUe.ue=function(e,t){return eOQ(this,Pp(e,33),Pp(t,33))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},eUe.a=!1,Y6(eVL,"BoxLayoutProvider/1",973),eTS(157,1,{157:1},etD,Lp),eUe.Ib=function(){return this.c?eC4(this.c):e_F(this.b)},Y6(eVL,"BoxLayoutProvider/Group",157),eTS(311,22,{3:1,35:1,22:1,311:1},kT);var e5u=enw(eVL,"BoxLayoutProvider/PackingMode",311,e1G,VI,NJ);eTS(974,1,e$C,oY),eUe.ue=function(e,t){return HK(Pp(e,157),Pp(t,157))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y6(eVL,"BoxLayoutProvider/lambda$0$Type",974),eTS(975,1,e$C,oB),eUe.ue=function(e,t){return Hm(Pp(e,157),Pp(t,157))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y6(eVL,"BoxLayoutProvider/lambda$1$Type",975),eTS(976,1,e$C,oU),eUe.ue=function(e,t){return Hg(Pp(e,157),Pp(t,157))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y6(eVL,"BoxLayoutProvider/lambda$2$Type",976),eTS(1365,1,{831:1},oH),eUe.qg=function(e,t){return _R(),!M4(t,160)||yX((eoM(),Pp(e,160)),t)},Y6(eVL,"ElkSpacings/AbstractSpacingsBuilder/lambda$0$Type",1365),eTS(1366,1,eUF,h4),eUe.td=function(e){eux(this.a,Pp(e,146))},Y6(eVL,"ElkSpacings/AbstractSpacingsBuilder/lambda$1$Type",1366),eTS(1367,1,eUF,oj),eUe.td=function(e){Pp(e,94),_R()},Y6(eVL,"ElkSpacings/AbstractSpacingsBuilder/lambda$2$Type",1367),eTS(1371,1,eUF,h6),eUe.td=function(e){erQ(this.a,Pp(e,94))},Y6(eVL,"ElkSpacings/AbstractSpacingsBuilder/lambda$3$Type",1371),eTS(1369,1,eU9,kM),eUe.Mb=function(e){return esI(this.a,this.b,Pp(e,146))},Y6(eVL,"ElkSpacings/AbstractSpacingsBuilder/lambda$4$Type",1369),eTS(1368,1,eU9,kO),eUe.Mb=function(e){return Lt(this.a,this.b,Pp(e,831))},Y6(eVL,"ElkSpacings/AbstractSpacingsBuilder/lambda$5$Type",1368),eTS(1370,1,eUF,kA),eUe.td=function(e){Fj(this.a,this.b,Pp(e,146))},Y6(eVL,"ElkSpacings/AbstractSpacingsBuilder/lambda$6$Type",1370),eTS(935,1,{},oP),eUe.Kb=function(e){return TA(e)},eUe.Fb=function(e){return this===e},Y6(eVL,"ElkUtil/lambda$0$Type",935),eTS(936,1,eUF,kL),eUe.td=function(e){exS(this.a,this.b,Pp(e,79))},eUe.a=0,eUe.b=0,Y6(eVL,"ElkUtil/lambda$1$Type",936),eTS(937,1,eUF,kC),eUe.td=function(e){gp(this.a,this.b,Pp(e,202))},eUe.a=0,eUe.b=0,Y6(eVL,"ElkUtil/lambda$2$Type",937),eTS(938,1,eUF,kI),eUe.td=function(e){Me(this.a,this.b,Pp(e,137))},eUe.a=0,eUe.b=0,Y6(eVL,"ElkUtil/lambda$3$Type",938),eTS(939,1,eUF,h5),eUe.td=function(e){RE(this.a,Pp(e,469))},Y6(eVL,"ElkUtil/lambda$4$Type",939),eTS(342,1,{35:1,342:1},pQ),eUe.wd=function(e){return Os(this,Pp(e,236))},eUe.Fb=function(e){var t;return!!M4(e,342)&&(t=Pp(e,342),this.a==t.a)},eUe.Hb=function(){return zy(this.a)},eUe.Ib=function(){return this.a+" (exclusive)"},eUe.a=0,Y6(eVL,"ExclusiveBounds/ExclusiveLowerBound",342),eTS(1138,209,ezL,oR),eUe.Ze=function(e,t){var n,r,i,a,o,s,u,l,f,d,h,p,b,m,g,v,y,w,_,E,S,k,x;for(ewG(t,"Fixed Layout",1),a=Pp(eT9(e,(eBB(),tha)),218),d=0,h=0,y=new Ow((e.a||(e.a=new FQ(e5k,e,10,11)),e.a));y.e!=y.i.gc();){for(g=Pp(epH(y),33),(x=Pp(eT9(g,(euw(),tp$)),8))&&(TP(g,x.a,x.b),Pp(eT9(g,tpF),174).Hc((ed5(),tbW))&&(p=Pp(eT9(g,tpB),8)).a>0&&p.b>0&&eYx(g,p.a,p.b,!0,!0)),d=eB4.Math.max(d,g.i+g.g),h=eB4.Math.max(h,g.j+g.f),l=new Ow((g.n||(g.n=new FQ(e5S,g,1,7)),g.n));l.e!=l.i.gc();)s=Pp(epH(l),137),(x=Pp(eT9(s,tp$),8))&&TP(s,x.a,x.b),d=eB4.Math.max(d,g.i+s.i+s.g),h=eB4.Math.max(h,g.j+s.j+s.f);for(E=new Ow((g.c||(g.c=new FQ(e5x,g,9,9)),g.c));E.e!=E.i.gc();)for(_=Pp(epH(E),118),(x=Pp(eT9(_,tp$),8))&&TP(_,x.a,x.b),S=g.i+_.i,k=g.j+_.j,d=eB4.Math.max(d,S+_.g),h=eB4.Math.max(h,k+_.f),u=new Ow((_.n||(_.n=new FQ(e5S,_,1,7)),_.n));u.e!=u.i.gc();)s=Pp(epH(u),137),(x=Pp(eT9(s,tp$),8))&&TP(s,x.a,x.b),d=eB4.Math.max(d,S+s.i+s.g),h=eB4.Math.max(h,k+s.j+s.f);for(i=new Fa(OH(eOi(g).a.Kc(),new c));eTk(i);)n=Pp(ZC(i),79),f=eYT(n),d=eB4.Math.max(d,f.a),h=eB4.Math.max(h,f.b);for(r=new Fa(OH(eOr(g).a.Kc(),new c));eTk(r);)n=Pp(ZC(r),79),z$(e_I(n))!=e&&(f=eYT(n),d=eB4.Math.max(d,f.a),h=eB4.Math.max(h,f.b))}if(a==(efE(),tpx))for(v=new Ow((e.a||(e.a=new FQ(e5k,e,10,11)),e.a));v.e!=v.i.gc();)for(g=Pp(epH(v),33),r=new Fa(OH(eOi(g).a.Kc(),new c));eTk(r);)n=Pp(ZC(r),79),0==(o=eDX(n)).b?ebu(n,thg,null):ebu(n,thg,o);gN(LK(eT9(e,(euw(),tpY))))||(w=Pp(eT9(e,tpU),116),eYx(e,m=d+w.b+w.c,b=h+w.d+w.a,!0,!0)),eEj(t)},Y6(eVL,"FixedLayoutProvider",1138),eTS(373,134,{3:1,414:1,373:1,94:1,134:1},oG,eer),eUe.Jf=function(e){var t,n,r,i,a,o,s,u,c;if(e)try{for(a=u=eIk(e,";,;"),o=0,s=a.length;o>16&eHd|t^r<<16},eUe.Kc=function(){return new h8(this)},eUe.Ib=function(){return null==this.a&&null==this.b?"pair(null,null)":null==this.a?"pair(null,"+efF(this.b)+")":null==this.b?"pair("+efF(this.a)+",null)":"pair("+efF(this.a)+","+efF(this.b)+")"},Y6(eVL,"Pair",46),eTS(983,1,eUE,h8),eUe.Nb=function(e){F9(this,e)},eUe.Ob=function(){return!this.c&&(!this.b&&null!=this.a.a||null!=this.a.b)},eUe.Pb=function(){if(!this.c&&!this.b&&null!=this.a.a)return this.b=!0,this.a.a;if(!this.c&&null!=this.a.b)return this.c=!0,this.a.b;throw p7(new bC)},eUe.Qb=function(){throw this.c&&null!=this.a.b?this.a.b=null:this.b&&null!=this.a.a&&(this.a.a=null),p7(new bT)},eUe.b=!1,eUe.c=!1,Y6(eVL,"Pair/1",983),eTS(448,1,{448:1},Ho),eUe.Fb=function(e){return UT(this.a,Pp(e,448).a)&&UT(this.c,Pp(e,448).c)&&UT(this.d,Pp(e,448).d)&&UT(this.b,Pp(e,448).b)},eUe.Hb=function(){return euF(eow(vx(e1R,1),eUp,1,5,[this.a,this.c,this.d,this.b]))},eUe.Ib=function(){return"("+this.a+eUd+this.c+eUd+this.d+eUd+this.b+")"},Y6(eVL,"Quadruple",448),eTS(1126,209,ezL,oV),eUe.Ze=function(e,t){var n,r,i,a,o;if(ewG(t,"Random Layout",1),0==(e.a||(e.a=new FQ(e5k,e,10,11)),e.a).i){eEj(t);return}i=(a=Pp(eT9(e,(ed6(),tbz)),19))&&0!=a.a?new qS(a.a):new efo,n=gR(LV(eT9(e,tbU))),o=gR(LV(eT9(e,tbG))),r=Pp(eT9(e,tbH),116),eF1(e,i,n,o,r),eEj(t)},Y6(eVL,"RandomLayoutProvider",1126),eTS(553,1,{}),eUe.qf=function(){return new kl(this.f.i,this.f.j)},eUe.We=function(e){return $k(e,(eBB(),thK))?eT9(this.f,tmu):eT9(this.f,e)},eUe.rf=function(){return new kl(this.f.g,this.f.f)},eUe.sf=function(){return this.g},eUe.Xe=function(e){return X2(this.f,e)},eUe.tf=function(e){eno(this.f,e.a),ens(this.f,e.b)},eUe.uf=function(e){ena(this.f,e.a),eni(this.f,e.b)},eUe.vf=function(e){this.g=e},eUe.g=0,Y6(eZI,"ElkGraphAdapters/AbstractElkGraphElementAdapter",553),eTS(554,1,{839:1},h9),eUe.wf=function(){var e,t;if(!this.b)for(this.b=K$(UB(this.a).i),t=new Ow(UB(this.a));t.e!=t.i.gc();)e=Pp(epH(t),137),P_(this.b,new gO(e));return this.b},eUe.b=null,Y6(eZI,"ElkGraphAdapters/ElkEdgeAdapter",554),eTS(301,553,{},gM),eUe.xf=function(){return em3(this)},eUe.a=null,Y6(eZI,"ElkGraphAdapters/ElkGraphAdapter",301),eTS(630,553,{181:1},gO),Y6(eZI,"ElkGraphAdapters/ElkLabelAdapter",630),eTS(629,553,{680:1},AC),eUe.wf=function(){return em0(this)},eUe.Af=function(){var e;return(e=Pp(eT9(this.f,(eBB(),thy)),142))||(e=new mh),e},eUe.Cf=function(){return em2(this)},eUe.Ef=function(e){var t;t=new Dk(e),ebu(this.f,(eBB(),thy),t)},eUe.Ff=function(e){ebu(this.f,(eBB(),thN),new DS(e))},eUe.yf=function(){return this.d},eUe.zf=function(){var e,t;if(!this.a)for(this.a=new p0,t=new Fa(OH(eOr(Pp(this.f,33)).a.Kc(),new c));eTk(t);)e=Pp(ZC(t),79),P_(this.a,new h9(e));return this.a},eUe.Bf=function(){var e,t;if(!this.c)for(this.c=new p0,t=new Fa(OH(eOi(Pp(this.f,33)).a.Kc(),new c));eTk(t);)e=Pp(ZC(t),79),P_(this.c,new h9(e));return this.c},eUe.Df=function(){return 0!=H9(Pp(this.f,33)).i||gN(LK(Pp(this.f,33).We((eBB(),thh))))},eUe.Gf=function(){QV(this,(_q(),tms))},eUe.a=null,eUe.b=null,eUe.c=null,eUe.d=null,eUe.e=null,Y6(eZI,"ElkGraphAdapters/ElkNodeAdapter",629),eTS(1266,553,{838:1},pA),eUe.wf=function(){return egd(this)},eUe.zf=function(){var e,t;if(!this.a)for(this.a=AH(Pp(this.f,118).xg().i),t=new Ow(Pp(this.f,118).xg());t.e!=t.i.gc();)e=Pp(epH(t),79),P_(this.a,new h9(e));return this.a},eUe.Bf=function(){var e,t;if(!this.c)for(this.c=AH(Pp(this.f,118).yg().i),t=new Ow(Pp(this.f,118).yg());t.e!=t.i.gc();)e=Pp(epH(t),79),P_(this.c,new h9(e));return this.c},eUe.Hf=function(){return Pp(Pp(this.f,118).We((eBB(),th0)),61)},eUe.If=function(){var e,t,n,r,i,a,o,s;for(r=zY(Pp(this.f,118)),n=new Ow(Pp(this.f,118).yg());n.e!=n.i.gc();)for(e=Pp(epH(n),79),s=new Ow((e.c||(e.c=new Ih(e5m,e,5,8)),e.c));s.e!=s.i.gc();)if(o=Pp(epH(s),82),etg(ewH(o),r)||ewH(o)==r&&gN(LK(eT9(e,(eBB(),thp)))))return!0;for(t=new Ow(Pp(this.f,118).xg());t.e!=t.i.gc();)for(e=Pp(epH(t),79),a=new Ow((e.b||(e.b=new Ih(e5m,e,4,7)),e.b));a.e!=a.i.gc();)if(i=Pp(epH(a),82),etg(ewH(i),r))return!0;return!1},eUe.a=null,eUe.b=null,eUe.c=null,Y6(eZI,"ElkGraphAdapters/ElkPortAdapter",1266),eTS(1267,1,e$C,oq),eUe.ue=function(e,t){return eC3(Pp(e,118),Pp(t,118))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y6(eZI,"ElkGraphAdapters/PortComparator",1267);var e5f=RL(eZD,"EObject"),e5d=RL(eZN,eZP),e5h=RL(eZN,eZR),e5p=RL(eZN,eZj),e5b=RL(eZN,"ElkShape"),e5m=RL(eZN,eZF),e5g=RL(eZN,eZY),e5v=RL(eZN,eZB),e5y=RL(eZD,eZU),e5w=RL(eZD,"EFactory"),e5_=RL(eZD,eZH),e5E=RL(eZD,"EPackage"),e5S=RL(eZN,eZ$),e5k=RL(eZN,eZz),e5x=RL(eZN,eZG);eTS(90,1,eZW),eUe.Jg=function(){return this.Kg(),null},eUe.Kg=function(){return null},eUe.Lg=function(){return this.Kg(),!1},eUe.Mg=function(){return!1},eUe.Ng=function(e){eam(this,e)},Y6(eZK,"BasicNotifierImpl",90),eTS(97,90,eZ0),eUe.nh=function(){return TO(this)},eUe.Og=function(e,t){return e},eUe.Pg=function(){throw p7(new bO)},eUe.Qg=function(e){var t;return t=ebY(Pp(ee2(this.Tg(),this.Vg()),18)),this.eh().ih(this,t.n,t.f,e)},eUe.Rg=function(e,t){throw p7(new bO)},eUe.Sg=function(e,t,n){return eDg(this,e,t,n)},eUe.Tg=function(){var e;return this.Pg()&&(e=this.Pg().ck())?e:this.zh()},eUe.Ug=function(){return eTp(this)},eUe.Vg=function(){throw p7(new bO)},eUe.Wg=function(){var e,t;return(t=this.ph().dk())||this.Pg().ik(t=(_0(),null==(e=zr(eNT(this.Tg())))?tgV:new AA(this,e))),t},eUe.Xg=function(e,t){return e},eUe.Yg=function(e){var t;return(t=e.Gj())?e.aj():edv(this.Tg(),e)},eUe.Zg=function(){var e;return(e=this.Pg())?e.fk():null},eUe.$g=function(){return this.Pg()?this.Pg().ck():null},eUe._g=function(e,t,n){return ebl(this,e,t,n)},eUe.ah=function(e){return JG(this,e)},eUe.bh=function(e,t){return ZN(this,e,t)},eUe.dh=function(){var e;return!!(e=this.Pg())&&e.gk()},eUe.eh=function(){throw p7(new bO)},eUe.fh=function(){return ehO(this)},eUe.gh=function(e,t,n,r){return ep0(this,e,t,r)},eUe.hh=function(e,t,n){var r;return(r=Pp(ee2(this.Tg(),t),66)).Nj().Qj(this,this.yh(),t-this.Ah(),e,n)},eUe.ih=function(e,t,n,r){return $7(this,e,t,r)},eUe.jh=function(e,t,n){var r;return(r=Pp(ee2(this.Tg(),t),66)).Nj().Rj(this,this.yh(),t-this.Ah(),e,n)},eUe.kh=function(){return!!this.Pg()&&!!this.Pg().ek()},eUe.lh=function(e){return epY(this,e)},eUe.mh=function(e){return zz(this,e)},eUe.oh=function(e){return eR2(this,e)},eUe.ph=function(){throw p7(new bO)},eUe.qh=function(){return this.Pg()?this.Pg().ek():null},eUe.rh=function(){return ehO(this)},eUe.sh=function(e,t){eS6(this,e,t)},eUe.th=function(e){this.ph().hk(e)},eUe.uh=function(e){this.ph().kk(e)},eUe.vh=function(e){this.ph().jk(e)},eUe.wh=function(e,t){var n,r,i,a;return(a=this.Zg())&&e&&(t=ep5(a.Vk(),this,t),a.Zk(this)),(r=this.eh())&&((eIy(this,this.eh(),this.Vg()).Bb&eH3)!=0?(i=r.fh())&&(e?a||i.Zk(this):i.Yk(this)):(t=(n=this.Vg())>=0?this.Qg(t):this.eh().ih(this,-1-n,null,t),t=this.Sg(null,-1,t))),this.uh(e),t},eUe.xh=function(e){var t,n,r,i,a,o,s,u;if((a=edv(n=this.Tg(),e))>=(t=this.Ah()))return Pp(e,66).Nj().Uj(this,this.yh(),a-t);if(a<=-1){if(o=eR3((eSp(),tvc),n,e)){if(_4(),Pp(o,66).Oj()||(o=Wk(QZ(tvc,o))),i=Pp((r=this.Yg(o))>=0?this._g(r,!0,!0):exk(this,o,!0),153),(u=o.Zj())>1||-1==u)return Pp(Pp(i,215).hl(e,!1),76)}else throw p7(new gL(eZV+e.ne()+eZX))}else if(e.$j())return Pp((r=this.Yg(e))>=0?this._g(r,!1,!0):exk(this,e,!1),76);return new k4(this,e)},eUe.yh=function(){return Q6(this)},eUe.zh=function(){return(BM(),tgv).S},eUe.Ah=function(){return Y1(this.zh())},eUe.Bh=function(e){eSi(this,e)},eUe.Ib=function(){return eMT(this)},Y6(eZ2,"BasicEObjectImpl",97),eTS(114,97,{105:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1}),eUe.Ch=function(e){var t;return(t=Q5(this))[e]},eUe.Dh=function(e,t){var n;n=Q5(this),Bc(n,e,t)},eUe.Eh=function(e){var t;t=Q5(this),Bc(t,e,null)},eUe.Jg=function(){return Pp(eaS(this,4),126)},eUe.Kg=function(){throw p7(new bO)},eUe.Lg=function(){return(4&this.Db)!=0},eUe.Pg=function(){throw p7(new bO)},eUe.Fh=function(e){ehU(this,2,e)},eUe.Rg=function(e,t){this.Db=t<<16|255&this.Db,this.Fh(e)},eUe.Tg=function(){return $S(this)},eUe.Vg=function(){return this.Db>>16},eUe.Wg=function(){var e,t;return _0(),null==(t=zr(eNT((e=Pp(eaS(this,16),26))||this.zh())))?tgV:new AA(this,t)},eUe.Mg=function(){return(1&this.Db)==0},eUe.Zg=function(){return Pp(eaS(this,128),1935)},eUe.$g=function(){return Pp(eaS(this,16),26)},eUe.dh=function(){return(32&this.Db)!=0},eUe.eh=function(){return Pp(eaS(this,2),49)},eUe.kh=function(){return(64&this.Db)!=0},eUe.ph=function(){throw p7(new bO)},eUe.qh=function(){return Pp(eaS(this,64),281)},eUe.th=function(e){ehU(this,16,e)},eUe.uh=function(e){ehU(this,128,e)},eUe.vh=function(e){ehU(this,64,e)},eUe.yh=function(){return ehH(this)},eUe.Db=0,Y6(eZ2,"MinimalEObjectImpl",114),eTS(115,114,{105:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1}),eUe.Fh=function(e){this.Cb=e},eUe.eh=function(){return this.Cb},Y6(eZ2,"MinimalEObjectImpl/Container",115),eTS(1985,115,{105:1,413:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1}),eUe._g=function(e,t,n){return egp(this,e,t,n)},eUe.jh=function(e,t,n){return e_8(this,e,t,n)},eUe.lh=function(e){return Wz(this,e)},eUe.sh=function(e,t){esU(this,e,t)},eUe.zh=function(){return eBa(),tm_},eUe.Bh=function(e){eoF(this,e)},eUe.Ve=function(){return epD(this)},eUe.We=function(e){return eT9(this,e)},eUe.Xe=function(e){return X2(this,e)},eUe.Ye=function(e,t){return ebu(this,e,t)},Y6(eZ3,"EMapPropertyHolderImpl",1985),eTS(567,115,{105:1,469:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},oJ),eUe._g=function(e,t,n){switch(e){case 0:return this.a;case 1:return this.b}return ebl(this,e,t,n)},eUe.lh=function(e){switch(e){case 0:return 0!=this.a;case 1:return 0!=this.b}return epY(this,e)},eUe.sh=function(e,t){switch(e){case 0:ent(this,gP(LV(t)));return;case 1:enn(this,gP(LV(t)));return}eS6(this,e,t)},eUe.zh=function(){return eBa(),tmf},eUe.Bh=function(e){switch(e){case 0:ent(this,0);return;case 1:enn(this,0);return}eSi(this,e)},eUe.Ib=function(){var e;return(64&this.Db)!=0?eMT(this):(e=new O1(eMT(this)),e.a+=" (x: ",y$(e,this.a),e.a+=", y: ",y$(e,this.b),e.a+=")",e.a)},eUe.a=0,eUe.b=0,Y6(eZ3,"ElkBendPointImpl",567),eTS(723,1985,{105:1,413:1,160:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1}),eUe._g=function(e,t,n){return ec2(this,e,t,n)},eUe.hh=function(e,t,n){return ew0(this,e,t,n)},eUe.jh=function(e,t,n){return ea8(this,e,t,n)},eUe.lh=function(e){return eaT(this,e)},eUe.sh=function(e,t){eyb(this,e,t)},eUe.zh=function(){return eBa(),tmb},eUe.Bh=function(e){ecx(this,e)},eUe.zg=function(){return this.k},eUe.Ag=function(){return UB(this)},eUe.Ib=function(){return el4(this)},eUe.k=null,Y6(eZ3,"ElkGraphElementImpl",723),eTS(724,723,{105:1,413:1,160:1,470:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1}),eUe._g=function(e,t,n){return efN(this,e,t,n)},eUe.lh=function(e){return ef9(this,e)},eUe.sh=function(e,t){eym(this,e,t)},eUe.zh=function(){return eBa(),tmw},eUe.Bh=function(e){edS(this,e)},eUe.Bg=function(){return this.f},eUe.Cg=function(){return this.g},eUe.Dg=function(){return this.i},eUe.Eg=function(){return this.j},eUe.Fg=function(e,t){TN(this,e,t)},eUe.Gg=function(e,t){TP(this,e,t)},eUe.Hg=function(e){eno(this,e)},eUe.Ig=function(e){ens(this,e)},eUe.Ib=function(){return eEp(this)},eUe.f=0,eUe.g=0,eUe.i=0,eUe.j=0,Y6(eZ3,"ElkShapeImpl",724),eTS(725,724,{105:1,413:1,82:1,160:1,470:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1}),eUe._g=function(e,t,n){return ebQ(this,e,t,n)},eUe.hh=function(e,t,n){return evZ(this,e,t,n)},eUe.jh=function(e,t,n){return evX(this,e,t,n)},eUe.lh=function(e){return esM(this,e)},eUe.sh=function(e,t){eTH(this,e,t)},eUe.zh=function(){return eBa(),tmd},eUe.Bh=function(e){ep2(this,e)},eUe.xg=function(){return this.d||(this.d=new Ih(e5g,this,8,5)),this.d},eUe.yg=function(){return this.e||(this.e=new Ih(e5g,this,7,4)),this.e},Y6(eZ3,"ElkConnectableShapeImpl",725),eTS(352,723,{105:1,413:1,79:1,160:1,352:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},oX),eUe.Qg=function(e){return evo(this,e)},eUe._g=function(e,t,n){switch(e){case 3:return zF(this);case 4:return this.b||(this.b=new Ih(e5m,this,4,7)),this.b;case 5:return this.c||(this.c=new Ih(e5m,this,5,8)),this.c;case 6:return this.a||(this.a=new FQ(e5v,this,6,6)),this.a;case 7:return OQ(),this.b||(this.b=new Ih(e5m,this,4,7)),!(this.b.i<=1)||(this.c||(this.c=new Ih(e5m,this,5,8)),!(this.c.i<=1));case 8:return OQ(),!!eTc(this);case 9:return OQ(),!!exb(this);case 10:return OQ(),this.b||(this.b=new Ih(e5m,this,4,7)),0!=this.b.i&&(this.c||(this.c=new Ih(e5m,this,5,8)),0!=this.c.i)}return ec2(this,e,t,n)},eUe.hh=function(e,t,n){var r;switch(t){case 3:return this.Cb&&(n=(r=this.Db>>16)>=0?evo(this,n):this.Cb.ih(this,-1-r,null,n)),Cu(this,Pp(e,33),n);case 4:return this.b||(this.b=new Ih(e5m,this,4,7)),edF(this.b,e,n);case 5:return this.c||(this.c=new Ih(e5m,this,5,8)),edF(this.c,e,n);case 6:return this.a||(this.a=new FQ(e5v,this,6,6)),edF(this.a,e,n)}return ew0(this,e,t,n)},eUe.jh=function(e,t,n){switch(t){case 3:return Cu(this,null,n);case 4:return this.b||(this.b=new Ih(e5m,this,4,7)),ep5(this.b,e,n);case 5:return this.c||(this.c=new Ih(e5m,this,5,8)),ep5(this.c,e,n);case 6:return this.a||(this.a=new FQ(e5v,this,6,6)),ep5(this.a,e,n)}return ea8(this,e,t,n)},eUe.lh=function(e){switch(e){case 3:return!!zF(this);case 4:return!!this.b&&0!=this.b.i;case 5:return!!this.c&&0!=this.c.i;case 6:return!!this.a&&0!=this.a.i;case 7:return this.b||(this.b=new Ih(e5m,this,4,7)),!(this.b.i<=1&&(this.c||(this.c=new Ih(e5m,this,5,8)),this.c.i<=1));case 8:return eTc(this);case 9:return exb(this);case 10:return this.b||(this.b=new Ih(e5m,this,4,7)),0!=this.b.i&&(this.c||(this.c=new Ih(e5m,this,5,8)),0!=this.c.i)}return eaT(this,e)},eUe.sh=function(e,t){switch(e){case 3:eOC(this,Pp(t,33));return;case 4:this.b||(this.b=new Ih(e5m,this,4,7)),eRT(this.b),this.b||(this.b=new Ih(e5m,this,4,7)),Y4(this.b,Pp(t,14));return;case 5:this.c||(this.c=new Ih(e5m,this,5,8)),eRT(this.c),this.c||(this.c=new Ih(e5m,this,5,8)),Y4(this.c,Pp(t,14));return;case 6:this.a||(this.a=new FQ(e5v,this,6,6)),eRT(this.a),this.a||(this.a=new FQ(e5v,this,6,6)),Y4(this.a,Pp(t,14));return}eyb(this,e,t)},eUe.zh=function(){return eBa(),tmh},eUe.Bh=function(e){switch(e){case 3:eOC(this,null);return;case 4:this.b||(this.b=new Ih(e5m,this,4,7)),eRT(this.b);return;case 5:this.c||(this.c=new Ih(e5m,this,5,8)),eRT(this.c);return;case 6:this.a||(this.a=new FQ(e5v,this,6,6)),eRT(this.a);return}ecx(this,e)},eUe.Ib=function(){return ePY(this)},Y6(eZ3,"ElkEdgeImpl",352),eTS(439,1985,{105:1,413:1,202:1,439:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},oQ),eUe.Qg=function(e){return eg1(this,e)},eUe._g=function(e,t,n){switch(e){case 1:return this.j;case 2:return this.k;case 3:return this.b;case 4:return this.c;case 5:return this.a||(this.a=new O_(e5h,this,5)),this.a;case 6:return zB(this);case 7:if(t)return ebF(this);return this.i;case 8:if(t)return ebj(this);return this.f;case 9:return this.g||(this.g=new Ih(e5v,this,9,10)),this.g;case 10:return this.e||(this.e=new Ih(e5v,this,10,9)),this.e;case 11:return this.d}return egp(this,e,t,n)},eUe.hh=function(e,t,n){var r,i,a;switch(t){case 6:return this.Cb&&(n=(i=this.Db>>16)>=0?eg1(this,n):this.Cb.ih(this,-1-i,null,n)),Cc(this,Pp(e,79),n);case 9:return this.g||(this.g=new Ih(e5v,this,9,10)),edF(this.g,e,n);case 10:return this.e||(this.e=new Ih(e5v,this,10,9)),edF(this.e,e,n)}return(a=Pp(ee2((r=Pp(eaS(this,16),26))||(eBa(),tmp),t),66)).Nj().Qj(this,ehH(this),t-Y1((eBa(),tmp)),e,n)},eUe.jh=function(e,t,n){switch(t){case 5:return this.a||(this.a=new O_(e5h,this,5)),ep5(this.a,e,n);case 6:return Cc(this,null,n);case 9:return this.g||(this.g=new Ih(e5v,this,9,10)),ep5(this.g,e,n);case 10:return this.e||(this.e=new Ih(e5v,this,10,9)),ep5(this.e,e,n)}return e_8(this,e,t,n)},eUe.lh=function(e){switch(e){case 1:return 0!=this.j;case 2:return 0!=this.k;case 3:return 0!=this.b;case 4:return 0!=this.c;case 5:return!!this.a&&0!=this.a.i;case 6:return!!zB(this);case 7:return!!this.i;case 8:return!!this.f;case 9:return!!this.g&&0!=this.g.i;case 10:return!!this.e&&0!=this.e.i;case 11:return null!=this.d}return Wz(this,e)},eUe.sh=function(e,t){switch(e){case 1:enu(this,gP(LV(t)));return;case 2:enl(this,gP(LV(t)));return;case 3:enr(this,gP(LV(t)));return;case 4:enc(this,gP(LV(t)));return;case 5:this.a||(this.a=new O_(e5h,this,5)),eRT(this.a),this.a||(this.a=new O_(e5h,this,5)),Y4(this.a,Pp(t,14));return;case 6:eOA(this,Pp(t,79));return;case 7:err(this,Pp(t,82));return;case 8:ern(this,Pp(t,82));return;case 9:this.g||(this.g=new Ih(e5v,this,9,10)),eRT(this.g),this.g||(this.g=new Ih(e5v,this,9,10)),Y4(this.g,Pp(t,14));return;case 10:this.e||(this.e=new Ih(e5v,this,10,9)),eRT(this.e),this.e||(this.e=new Ih(e5v,this,10,9)),Y4(this.e,Pp(t,14));return;case 11:erO(this,Lq(t));return}esU(this,e,t)},eUe.zh=function(){return eBa(),tmp},eUe.Bh=function(e){switch(e){case 1:enu(this,0);return;case 2:enl(this,0);return;case 3:enr(this,0);return;case 4:enc(this,0);return;case 5:this.a||(this.a=new O_(e5h,this,5)),eRT(this.a);return;case 6:eOA(this,null);return;case 7:err(this,null);return;case 8:ern(this,null);return;case 9:this.g||(this.g=new Ih(e5v,this,9,10)),eRT(this.g);return;case 10:this.e||(this.e=new Ih(e5v,this,10,9)),eRT(this.e);return;case 11:erO(this,null);return}eoF(this,e)},eUe.Ib=function(){return ex2(this)},eUe.b=0,eUe.c=0,eUe.d=null,eUe.j=0,eUe.k=0,Y6(eZ3,"ElkEdgeSectionImpl",439),eTS(150,115,{105:1,92:1,90:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1}),eUe._g=function(e,t,n){var r;return 0==e?(this.Ab||(this.Ab=new FQ(tm4,this,0,3)),this.Ab):Qt(this,e-Y1(this.zh()),ee2((r=Pp(eaS(this,16),26))||this.zh(),e),t,n)},eUe.hh=function(e,t,n){var r,i;return 0==t?(this.Ab||(this.Ab=new FQ(tm4,this,0,3)),edF(this.Ab,e,n)):(i=Pp(ee2((r=Pp(eaS(this,16),26))||this.zh(),t),66)).Nj().Qj(this,ehH(this),t-Y1(this.zh()),e,n)},eUe.jh=function(e,t,n){var r,i;return 0==t?(this.Ab||(this.Ab=new FQ(tm4,this,0,3)),ep5(this.Ab,e,n)):(i=Pp(ee2((r=Pp(eaS(this,16),26))||this.zh(),t),66)).Nj().Rj(this,ehH(this),t-Y1(this.zh()),e,n)},eUe.lh=function(e){var t;return 0==e?!!this.Ab&&0!=this.Ab.i:VP(this,e-Y1(this.zh()),ee2((t=Pp(eaS(this,16),26))||this.zh(),e))},eUe.oh=function(e){return eF8(this,e)},eUe.sh=function(e,t){var n;if(0===e){this.Ab||(this.Ab=new FQ(tm4,this,0,3)),eRT(this.Ab),this.Ab||(this.Ab=new FQ(tm4,this,0,3)),Y4(this.Ab,Pp(t,14));return}efL(this,e-Y1(this.zh()),ee2((n=Pp(eaS(this,16),26))||this.zh(),e),t)},eUe.uh=function(e){ehU(this,128,e)},eUe.zh=function(){return eBK(),tgL},eUe.Bh=function(e){var t;if(0===e){this.Ab||(this.Ab=new FQ(tm4,this,0,3)),eRT(this.Ab);return}ec5(this,e-Y1(this.zh()),ee2((t=Pp(eaS(this,16),26))||this.zh(),e))},eUe.Gh=function(){this.Bb|=1},eUe.Hh=function(e){return eDM(this,e)},eUe.Bb=0,Y6(eZ2,"EModelElementImpl",150),eTS(704,150,{105:1,92:1,90:1,471:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1},cQ),eUe.Ih=function(e,t){return ejZ(this,e,t)},eUe.Jh=function(e){var t,n,r,i,a;if(this.a!=etP(e)||(256&e.Bb)!=0)throw p7(new gL(eZ7+e.zb+eZ5));for(r=$E(e);0!=qt(r.a).i;){if(n=Pp(ejc(r,0,(a=(t=Pp(etj(qt(r.a),0),87)).c,M4(a,88)?Pp(a,26):(eBK(),tgI))),26),em4(n))return i=etP(n).Nh().Jh(n),Pp(i,49).th(e),i;r=$E(n)}return(null!=e.D?e.D:e.B)=="java.util.Map$Entry"?new RO(e):new Pq(e)},eUe.Kh=function(e,t){return eBd(this,e,t)},eUe._g=function(e,t,n){var r;switch(e){case 0:return this.Ab||(this.Ab=new FQ(tm4,this,0,3)),this.Ab;case 1:return this.a}return Qt(this,e-Y1((eBK(),tgM)),ee2((r=Pp(eaS(this,16),26))||tgM,e),t,n)},eUe.hh=function(e,t,n){var r,i;switch(t){case 0:return this.Ab||(this.Ab=new FQ(tm4,this,0,3)),edF(this.Ab,e,n);case 1:return this.a&&(n=Pp(this.a,49).ih(this,4,e5E,n)),ecb(this,Pp(e,235),n)}return(i=Pp(ee2((r=Pp(eaS(this,16),26))||(eBK(),tgM),t),66)).Nj().Qj(this,ehH(this),t-Y1((eBK(),tgM)),e,n)},eUe.jh=function(e,t,n){var r,i;switch(t){case 0:return this.Ab||(this.Ab=new FQ(tm4,this,0,3)),ep5(this.Ab,e,n);case 1:return ecb(this,null,n)}return(i=Pp(ee2((r=Pp(eaS(this,16),26))||(eBK(),tgM),t),66)).Nj().Rj(this,ehH(this),t-Y1((eBK(),tgM)),e,n)},eUe.lh=function(e){var t;switch(e){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return!!this.a}return VP(this,e-Y1((eBK(),tgM)),ee2((t=Pp(eaS(this,16),26))||tgM,e))},eUe.sh=function(e,t){var n;switch(e){case 0:this.Ab||(this.Ab=new FQ(tm4,this,0,3)),eRT(this.Ab),this.Ab||(this.Ab=new FQ(tm4,this,0,3)),Y4(this.Ab,Pp(t,14));return;case 1:e_B(this,Pp(t,235));return}efL(this,e-Y1((eBK(),tgM)),ee2((n=Pp(eaS(this,16),26))||tgM,e),t)},eUe.zh=function(){return eBK(),tgM},eUe.Bh=function(e){var t;switch(e){case 0:this.Ab||(this.Ab=new FQ(tm4,this,0,3)),eRT(this.Ab);return;case 1:e_B(this,null);return}ec5(this,e-Y1((eBK(),tgM)),ee2((t=Pp(eaS(this,16),26))||tgM,e))},Y6(eZ2,"EFactoryImpl",704),eTS(eXt,704,{105:1,2014:1,92:1,90:1,471:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1},o1),eUe.Ih=function(e,t){switch(e.yj()){case 12:return Pp(t,146).tg();case 13:return efF(t);default:throw p7(new gL(eZ6+e.ne()+eZ5))}},eUe.Jh=function(e){var t;switch(-1==e.G&&(e.G=(t=etP(e))?ebv(t.Mh(),e):-1),e.G){case 4:return new o0;case 6:return new mS;case 7:return new mk;case 8:return new oX;case 9:return new oJ;case 10:return new oQ;case 11:return new o3;default:throw p7(new gL(eZ7+e.zb+eZ5))}},eUe.Kh=function(e,t){switch(e.yj()){case 13:case 12:return null;default:throw p7(new gL(eZ6+e.ne()+eZ5))}},Y6(eZ3,"ElkGraphFactoryImpl",eXt),eTS(438,150,{105:1,92:1,90:1,147:1,191:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1}),eUe.Wg=function(){var e,t;return null==(t=zr(eNT((e=Pp(eaS(this,16),26))||this.zh())))?(_0(),_0(),tgV):new Lg(this,t)},eUe._g=function(e,t,n){var r;switch(e){case 0:return this.Ab||(this.Ab=new FQ(tm4,this,0,3)),this.Ab;case 1:return this.ne()}return Qt(this,e-Y1(this.zh()),ee2((r=Pp(eaS(this,16),26))||this.zh(),e),t,n)},eUe.lh=function(e){var t;switch(e){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb}return VP(this,e-Y1(this.zh()),ee2((t=Pp(eaS(this,16),26))||this.zh(),e))},eUe.sh=function(e,t){var n;switch(e){case 0:this.Ab||(this.Ab=new FQ(tm4,this,0,3)),eRT(this.Ab),this.Ab||(this.Ab=new FQ(tm4,this,0,3)),Y4(this.Ab,Pp(t,14));return;case 1:this.Lh(Lq(t));return}efL(this,e-Y1(this.zh()),ee2((n=Pp(eaS(this,16),26))||this.zh(),e),t)},eUe.zh=function(){return eBK(),tgC},eUe.Bh=function(e){var t;switch(e){case 0:this.Ab||(this.Ab=new FQ(tm4,this,0,3)),eRT(this.Ab);return;case 1:this.Lh(null);return}ec5(this,e-Y1(this.zh()),ee2((t=Pp(eaS(this,16),26))||this.zh(),e))},eUe.ne=function(){return this.zb},eUe.Lh=function(e){er3(this,e)},eUe.Ib=function(){return ecF(this)},eUe.zb=null,Y6(eZ2,"ENamedElementImpl",438),eTS(179,438,{105:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,49:1,97:1,150:1,179:1,114:1,115:1,675:1},$y),eUe.Qg=function(e){return eg6(this,e)},eUe._g=function(e,t,n){var r;switch(e){case 0:return this.Ab||(this.Ab=new FQ(tm4,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.yb;case 3:return this.xb;case 4:return this.sb;case 5:return this.rb||(this.rb=new Fq(this,tm9,this)),this.rb;case 6:return this.vb||(this.vb=new Ia(e5E,this,6,7)),this.vb;case 7:if(t)return this.Db>>16==7?Pp(this.Cb,235):null;return zU(this)}return Qt(this,e-Y1((eBK(),tgP)),ee2((r=Pp(eaS(this,16),26))||tgP,e),t,n)},eUe.hh=function(e,t,n){var r,i,a;switch(t){case 0:return this.Ab||(this.Ab=new FQ(tm4,this,0,3)),edF(this.Ab,e,n);case 4:return this.sb&&(n=Pp(this.sb,49).ih(this,1,e5w,n)),ecY(this,Pp(e,471),n);case 5:return this.rb||(this.rb=new Fq(this,tm9,this)),edF(this.rb,e,n);case 6:return this.vb||(this.vb=new Ia(e5E,this,6,7)),edF(this.vb,e,n);case 7:return this.Cb&&(n=(i=this.Db>>16)>=0?eg6(this,n):this.Cb.ih(this,-1-i,null,n)),eDg(this,e,7,n)}return(a=Pp(ee2((r=Pp(eaS(this,16),26))||(eBK(),tgP),t),66)).Nj().Qj(this,ehH(this),t-Y1((eBK(),tgP)),e,n)},eUe.jh=function(e,t,n){var r,i;switch(t){case 0:return this.Ab||(this.Ab=new FQ(tm4,this,0,3)),ep5(this.Ab,e,n);case 4:return ecY(this,null,n);case 5:return this.rb||(this.rb=new Fq(this,tm9,this)),ep5(this.rb,e,n);case 6:return this.vb||(this.vb=new Ia(e5E,this,6,7)),ep5(this.vb,e,n);case 7:return eDg(this,null,7,n)}return(i=Pp(ee2((r=Pp(eaS(this,16),26))||(eBK(),tgP),t),66)).Nj().Rj(this,ehH(this),t-Y1((eBK(),tgP)),e,n)},eUe.lh=function(e){var t;switch(e){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return null!=this.yb;case 3:return null!=this.xb;case 4:return!!this.sb;case 5:return!!this.rb&&0!=this.rb.i;case 6:return!!this.vb&&0!=this.vb.i;case 7:return!!zU(this)}return VP(this,e-Y1((eBK(),tgP)),ee2((t=Pp(eaS(this,16),26))||tgP,e))},eUe.oh=function(e){var t;return(t=eAd(this,e))||eF8(this,e)},eUe.sh=function(e,t){var n;switch(e){case 0:this.Ab||(this.Ab=new FQ(tm4,this,0,3)),eRT(this.Ab),this.Ab||(this.Ab=new FQ(tm4,this,0,3)),Y4(this.Ab,Pp(t,14));return;case 1:er3(this,Lq(t));return;case 2:er6(this,Lq(t));return;case 3:er4(this,Lq(t));return;case 4:e_9(this,Pp(t,471));return;case 5:this.rb||(this.rb=new Fq(this,tm9,this)),eRT(this.rb),this.rb||(this.rb=new Fq(this,tm9,this)),Y4(this.rb,Pp(t,14));return;case 6:this.vb||(this.vb=new Ia(e5E,this,6,7)),eRT(this.vb),this.vb||(this.vb=new Ia(e5E,this,6,7)),Y4(this.vb,Pp(t,14));return}efL(this,e-Y1((eBK(),tgP)),ee2((n=Pp(eaS(this,16),26))||tgP,e),t)},eUe.vh=function(e){var t,n;if(e&&this.rb)for(n=new Ow(this.rb);n.e!=n.i.gc();)t=epH(n),M4(t,351)&&(Pp(t,351).w=null);ehU(this,64,e)},eUe.zh=function(){return eBK(),tgP},eUe.Bh=function(e){var t;switch(e){case 0:this.Ab||(this.Ab=new FQ(tm4,this,0,3)),eRT(this.Ab);return;case 1:er3(this,null);return;case 2:er6(this,null);return;case 3:er4(this,null);return;case 4:e_9(this,null);return;case 5:this.rb||(this.rb=new Fq(this,tm9,this)),eRT(this.rb);return;case 6:this.vb||(this.vb=new Ia(e5E,this,6,7)),eRT(this.vb);return}ec5(this,e-Y1((eBK(),tgP)),ee2((t=Pp(eaS(this,16),26))||tgP,e))},eUe.Gh=function(){egb(this)},eUe.Mh=function(){return this.rb||(this.rb=new Fq(this,tm9,this)),this.rb},eUe.Nh=function(){return this.sb},eUe.Oh=function(){return this.ub},eUe.Ph=function(){return this.xb},eUe.Qh=function(){return this.yb},eUe.Rh=function(e){this.ub=e},eUe.Ib=function(){var e;return(64&this.Db)!=0?ecF(this):(e=new O1(ecF(this)),e.a+=" (nsURI: ",xk(e,this.yb),e.a+=", nsPrefix: ",xk(e,this.xb),e.a+=")",e.a)},eUe.xb=null,eUe.yb=null,Y6(eZ2,"EPackageImpl",179),eTS(555,179,{105:1,2016:1,555:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,49:1,97:1,150:1,179:1,114:1,115:1,675:1},eTv),eUe.q=!1,eUe.r=!1;var e5T=!1;Y6(eZ3,"ElkGraphPackageImpl",555),eTS(354,724,{105:1,413:1,160:1,137:1,470:1,354:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},o0),eUe.Qg=function(e){return eg0(this,e)},eUe._g=function(e,t,n){switch(e){case 7:return zH(this);case 8:return this.a}return efN(this,e,t,n)},eUe.hh=function(e,t,n){var r;return 7===t?(this.Cb&&(n=(r=this.Db>>16)>=0?eg0(this,n):this.Cb.ih(this,-1-r,null,n)),j2(this,Pp(e,160),n)):ew0(this,e,t,n)},eUe.jh=function(e,t,n){return 7==t?j2(this,null,n):ea8(this,e,t,n)},eUe.lh=function(e){switch(e){case 7:return!!zH(this);case 8:return!IE("",this.a)}return ef9(this,e)},eUe.sh=function(e,t){switch(e){case 7:eAu(this,Pp(t,160));return;case 8:eri(this,Lq(t));return}eym(this,e,t)},eUe.zh=function(){return eBa(),tmm},eUe.Bh=function(e){switch(e){case 7:eAu(this,null);return;case 8:eri(this,"");return}edS(this,e)},eUe.Ib=function(){return eE1(this)},eUe.a="",Y6(eZ3,"ElkLabelImpl",354),eTS(239,725,{105:1,413:1,82:1,160:1,33:1,470:1,239:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},mS),eUe.Qg=function(e){return evs(this,e)},eUe._g=function(e,t,n){switch(e){case 9:return this.c||(this.c=new FQ(e5x,this,9,9)),this.c;case 10:return this.a||(this.a=new FQ(e5k,this,10,11)),this.a;case 11:return z$(this);case 12:return this.b||(this.b=new FQ(e5g,this,12,3)),this.b;case 13:return OQ(),this.a||(this.a=new FQ(e5k,this,10,11)),this.a.i>0}return ebQ(this,e,t,n)},eUe.hh=function(e,t,n){var r;switch(t){case 9:return this.c||(this.c=new FQ(e5x,this,9,9)),edF(this.c,e,n);case 10:return this.a||(this.a=new FQ(e5k,this,10,11)),edF(this.a,e,n);case 11:return this.Cb&&(n=(r=this.Db>>16)>=0?evs(this,n):this.Cb.ih(this,-1-r,null,n)),C4(this,Pp(e,33),n);case 12:return this.b||(this.b=new FQ(e5g,this,12,3)),edF(this.b,e,n)}return evZ(this,e,t,n)},eUe.jh=function(e,t,n){switch(t){case 9:return this.c||(this.c=new FQ(e5x,this,9,9)),ep5(this.c,e,n);case 10:return this.a||(this.a=new FQ(e5k,this,10,11)),ep5(this.a,e,n);case 11:return C4(this,null,n);case 12:return this.b||(this.b=new FQ(e5g,this,12,3)),ep5(this.b,e,n)}return evX(this,e,t,n)},eUe.lh=function(e){switch(e){case 9:return!!this.c&&0!=this.c.i;case 10:return!!this.a&&0!=this.a.i;case 11:return!!z$(this);case 12:return!!this.b&&0!=this.b.i;case 13:return this.a||(this.a=new FQ(e5k,this,10,11)),this.a.i>0}return esM(this,e)},eUe.sh=function(e,t){switch(e){case 9:this.c||(this.c=new FQ(e5x,this,9,9)),eRT(this.c),this.c||(this.c=new FQ(e5x,this,9,9)),Y4(this.c,Pp(t,14));return;case 10:this.a||(this.a=new FQ(e5k,this,10,11)),eRT(this.a),this.a||(this.a=new FQ(e5k,this,10,11)),Y4(this.a,Pp(t,14));return;case 11:eO$(this,Pp(t,33));return;case 12:this.b||(this.b=new FQ(e5g,this,12,3)),eRT(this.b),this.b||(this.b=new FQ(e5g,this,12,3)),Y4(this.b,Pp(t,14));return}eTH(this,e,t)},eUe.zh=function(){return eBa(),tmg},eUe.Bh=function(e){switch(e){case 9:this.c||(this.c=new FQ(e5x,this,9,9)),eRT(this.c);return;case 10:this.a||(this.a=new FQ(e5k,this,10,11)),eRT(this.a);return;case 11:eO$(this,null);return;case 12:this.b||(this.b=new FQ(e5g,this,12,3)),eRT(this.b);return}ep2(this,e)},eUe.Ib=function(){return eC4(this)},Y6(eZ3,"ElkNodeImpl",239),eTS(186,725,{105:1,413:1,82:1,160:1,118:1,470:1,186:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},mk),eUe.Qg=function(e){return eg2(this,e)},eUe._g=function(e,t,n){return 9==e?zY(this):ebQ(this,e,t,n)},eUe.hh=function(e,t,n){var r;return 9===t?(this.Cb&&(n=(r=this.Db>>16)>=0?eg2(this,n):this.Cb.ih(this,-1-r,null,n)),Cl(this,Pp(e,33),n)):evZ(this,e,t,n)},eUe.jh=function(e,t,n){return 9==t?Cl(this,null,n):evX(this,e,t,n)},eUe.lh=function(e){return 9==e?!!zY(this):esM(this,e)},eUe.sh=function(e,t){if(9===e){eOL(this,Pp(t,33));return}eTH(this,e,t)},eUe.zh=function(){return eBa(),tmv},eUe.Bh=function(e){if(9===e){eOL(this,null);return}ep2(this,e)},eUe.Ib=function(){return eC6(this)},Y6(eZ3,"ElkPortImpl",186);var e5M=RL(eX_,"BasicEMap/Entry");eTS(1092,115,{105:1,42:1,92:1,90:1,133:1,56:1,108:1,49:1,97:1,114:1,115:1},o3),eUe.Fb=function(e){return this===e},eUe.cd=function(){return this.b},eUe.Hb=function(){return Ao(this)},eUe.Uh=function(e){era(this,Pp(e,146))},eUe._g=function(e,t,n){switch(e){case 0:return this.b;case 1:return this.c}return ebl(this,e,t,n)},eUe.lh=function(e){switch(e){case 0:return!!this.b;case 1:return null!=this.c}return epY(this,e)},eUe.sh=function(e,t){switch(e){case 0:era(this,Pp(t,146));return;case 1:eru(this,t);return}eS6(this,e,t)},eUe.zh=function(){return eBa(),tmy},eUe.Bh=function(e){switch(e){case 0:era(this,null);return;case 1:eru(this,null);return}eSi(this,e)},eUe.Sh=function(){var e;return -1==this.a&&(e=this.b,this.a=e?esj(e):0),this.a},eUe.dd=function(){return this.c},eUe.Th=function(e){this.a=e},eUe.ed=function(e){var t;return t=this.c,eru(this,e),t},eUe.Ib=function(){var e;return(64&this.Db)!=0?eMT(this):(xM(xM(xM(e=new vc,this.b?this.b.tg():eUg),eGH),Ae(this.c)),e.a)},eUe.a=-1,eUe.c=null;var e5O=Y6(eZ3,"ElkPropertyToValueMapEntryImpl",1092);eTS(984,1,{},o5),Y6(eXk,"JsonAdapter",984),eTS(210,60,eHr,gK),Y6(eXk,"JsonImportException",210),eTS(857,1,{},eg5),Y6(eXk,"JsonImporter",857),eTS(891,1,{},kP),Y6(eXk,"JsonImporter/lambda$0$Type",891),eTS(892,1,{},kR),Y6(eXk,"JsonImporter/lambda$1$Type",892),eTS(900,1,{},h7),Y6(eXk,"JsonImporter/lambda$10$Type",900),eTS(902,1,{},kj),Y6(eXk,"JsonImporter/lambda$11$Type",902),eTS(903,1,{},kF),Y6(eXk,"JsonImporter/lambda$12$Type",903),eTS(909,1,{},HE),Y6(eXk,"JsonImporter/lambda$13$Type",909),eTS(908,1,{},H_),Y6(eXk,"JsonImporter/lambda$14$Type",908),eTS(904,1,{},kY),Y6(eXk,"JsonImporter/lambda$15$Type",904),eTS(905,1,{},kB),Y6(eXk,"JsonImporter/lambda$16$Type",905),eTS(906,1,{},kU),Y6(eXk,"JsonImporter/lambda$17$Type",906),eTS(907,1,{},kH),Y6(eXk,"JsonImporter/lambda$18$Type",907),eTS(912,1,{},pe),Y6(eXk,"JsonImporter/lambda$19$Type",912),eTS(893,1,{},pt),Y6(eXk,"JsonImporter/lambda$2$Type",893),eTS(910,1,{},pn),Y6(eXk,"JsonImporter/lambda$20$Type",910),eTS(911,1,{},pr),Y6(eXk,"JsonImporter/lambda$21$Type",911),eTS(915,1,{},pi),Y6(eXk,"JsonImporter/lambda$22$Type",915),eTS(913,1,{},pa),Y6(eXk,"JsonImporter/lambda$23$Type",913),eTS(914,1,{},po),Y6(eXk,"JsonImporter/lambda$24$Type",914),eTS(917,1,{},ps),Y6(eXk,"JsonImporter/lambda$25$Type",917),eTS(916,1,{},pu),Y6(eXk,"JsonImporter/lambda$26$Type",916),eTS(918,1,eUF,k$),eUe.td=function(e){JH(this.b,this.a,Lq(e))},Y6(eXk,"JsonImporter/lambda$27$Type",918),eTS(919,1,eUF,kz),eUe.td=function(e){J$(this.b,this.a,Lq(e))},Y6(eXk,"JsonImporter/lambda$28$Type",919),eTS(920,1,{},kG),Y6(eXk,"JsonImporter/lambda$29$Type",920),eTS(896,1,{},pc),Y6(eXk,"JsonImporter/lambda$3$Type",896),eTS(921,1,{},kW),Y6(eXk,"JsonImporter/lambda$30$Type",921),eTS(922,1,{},pl),Y6(eXk,"JsonImporter/lambda$31$Type",922),eTS(923,1,{},pf),Y6(eXk,"JsonImporter/lambda$32$Type",923),eTS(924,1,{},pd),Y6(eXk,"JsonImporter/lambda$33$Type",924),eTS(925,1,{},ph),Y6(eXk,"JsonImporter/lambda$34$Type",925),eTS(859,1,{},pp),Y6(eXk,"JsonImporter/lambda$35$Type",859),eTS(929,1,{},N9),Y6(eXk,"JsonImporter/lambda$36$Type",929),eTS(926,1,eUF,pb),eUe.td=function(e){qW(this.a,Pp(e,469))},Y6(eXk,"JsonImporter/lambda$37$Type",926),eTS(927,1,eUF,k0),eUe.td=function(e){xC(this.a,this.b,Pp(e,202))},Y6(eXk,"JsonImporter/lambda$38$Type",927),eTS(928,1,eUF,k2),eUe.td=function(e){xI(this.a,this.b,Pp(e,202))},Y6(eXk,"JsonImporter/lambda$39$Type",928),eTS(894,1,{},pm),Y6(eXk,"JsonImporter/lambda$4$Type",894),eTS(930,1,eUF,pg),eUe.td=function(e){qK(this.a,Pp(e,8))},Y6(eXk,"JsonImporter/lambda$40$Type",930),eTS(895,1,{},pv),Y6(eXk,"JsonImporter/lambda$5$Type",895),eTS(899,1,{},py),Y6(eXk,"JsonImporter/lambda$6$Type",899),eTS(897,1,{},pw),Y6(eXk,"JsonImporter/lambda$7$Type",897),eTS(898,1,{},p_),Y6(eXk,"JsonImporter/lambda$8$Type",898),eTS(901,1,{},pE),Y6(eXk,"JsonImporter/lambda$9$Type",901),eTS(948,1,eUF,pS),eUe.td=function(e){BC(this.a,new B_(Lq(e)))},Y6(eXk,"JsonMetaDataConverter/lambda$0$Type",948),eTS(949,1,eUF,pk),eUe.td=function(e){Bm(this.a,Pp(e,237))},Y6(eXk,"JsonMetaDataConverter/lambda$1$Type",949),eTS(950,1,eUF,px),eUe.td=function(e){GR(this.a,Pp(e,149))},Y6(eXk,"JsonMetaDataConverter/lambda$2$Type",950),eTS(951,1,eUF,pT),eUe.td=function(e){Bg(this.a,Pp(e,175))},Y6(eXk,"JsonMetaDataConverter/lambda$3$Type",951),eTS(237,22,{3:1,35:1,22:1,237:1},k1);var e5A=enw(ezx,"GraphFeature",237,e1G,etM,N1);eTS(13,1,{35:1,146:1},pO,Cm,xX,T2),eUe.wd=function(e){return Oo(this,Pp(e,146))},eUe.Fb=function(e){return $k(this,e)},eUe.wg=function(){return epB(this)},eUe.tg=function(){return this.b},eUe.Hb=function(){return ebA(this.b)},eUe.Ib=function(){return this.b},Y6(ezx,"Property",13),eTS(818,1,e$C,pM),eUe.ue=function(e,t){return elW(this,Pp(e,94),Pp(t,94))},eUe.Fb=function(e){return this===e},eUe.ve=function(){return new fZ(this)},Y6(ezx,"PropertyHolderComparator",818),eTS(695,1,eUE,pL),eUe.Nb=function(e){F9(this,e)},eUe.Pb=function(){return JZ(this)},eUe.Qb=function(){yI()},eUe.Ob=function(){return!!this.a},Y6(eXY,"ElkGraphUtil/AncestorIterator",695);var e5L=RL(eX_,"EList");eTS(67,52,{20:1,28:1,52:1,14:1,15:1,67:1,58:1}),eUe.Vc=function(e,t){elm(this,e,t)},eUe.Fc=function(e){return JL(this,e)},eUe.Wc=function(e,t){return eo0(this,e,t)},eUe.Gc=function(e){return Y4(this,e)},eUe.Zh=function(){return new AY(this)},eUe.$h=function(){return new AB(this)},eUe._h=function(e){return enH(this,e)},eUe.ai=function(){return!0},eUe.bi=function(e,t){},eUe.ci=function(){},eUe.di=function(e,t){X9(this,e,t)},eUe.ei=function(e,t,n){},eUe.fi=function(e,t){},eUe.gi=function(e,t,n){},eUe.Fb=function(e){return eCc(this,e)},eUe.Hb=function(){return eov(this)},eUe.hi=function(){return!1},eUe.Kc=function(){return new Ow(this)},eUe.Yc=function(){return new AF(this)},eUe.Zc=function(e){var t;if(t=this.gc(),e<0||e>t)throw p7(new Ii(e,t));return new YC(this,e)},eUe.ji=function(e,t){this.ii(e,this.Xc(t))},eUe.Mc=function(e){return eeu(this,e)},eUe.li=function(e,t){return t},eUe._c=function(e,t){return eby(this,e,t)},eUe.Ib=function(){return efq(this)},eUe.ni=function(){return!0},eUe.oi=function(e,t){return euu(this,t)},Y6(eX_,"AbstractEList",67),eTS(63,67,eXz,o7,eta,eiP),eUe.Vh=function(e,t){return ew2(this,e,t)},eUe.Wh=function(e){return emp(this,e)},eUe.Xh=function(e,t){ecW(this,e,t)},eUe.Yh=function(e){Zz(this,e)},eUe.pi=function(e){return J6(this,e)},eUe.$b=function(){ZG(this)},eUe.Hc=function(e){return ev8(this,e)},eUe.Xb=function(e){return etj(this,e)},eUe.qi=function(e){var t,n,r;++this.j,e>(n=null==this.g?0:this.g.length)&&(r=this.g,(t=n+(n/2|0)+4)=0&&(this.$c(t),!0)},eUe.mi=function(e,t){return this.Ui(e,this.oi(e,t))},eUe.gc=function(){return this.Vi()},eUe.Pc=function(){return this.Wi()},eUe.Qc=function(e){return this.Xi(e)},eUe.Ib=function(){return this.Yi()},Y6(eX_,"DelegatingEList",1995),eTS(1996,1995,eJk),eUe.Vh=function(e,t){return eD1(this,e,t)},eUe.Wh=function(e){return this.Vh(this.Vi(),e)},eUe.Xh=function(e,t){eTf(this,e,t)},eUe.Yh=function(e){exq(this,e)},eUe.ai=function(){return!this.bj()},eUe.$b=function(){eRP(this)},eUe.Zi=function(e,t,n,r,i){return new $P(this,e,t,n,r,i)},eUe.$i=function(e){eam(this.Ai(),e)},eUe._i=function(){return null},eUe.aj=function(){return -1},eUe.Ai=function(){return null},eUe.bj=function(){return!1},eUe.cj=function(e,t){return t},eUe.dj=function(e,t){return t},eUe.ej=function(){return!1},eUe.fj=function(){return!this.Ri()},eUe.ii=function(e,t){var n,r;return this.ej()?(r=this.fj(),n=e_R(this,e,t),this.$i(this.Zi(7,ell(t),n,e,r)),n):e_R(this,e,t)},eUe.$c=function(e){var t,n,r,i;return this.ej()?(n=null,r=this.fj(),t=this.Zi(4,i=RC(this,e),null,e,r),this.bj()&&i?(n=this.dj(i,n))?(n.Ei(t),n.Fi()):this.$i(t):n?(n.Ei(t),n.Fi()):this.$i(t),i):(i=RC(this,e),this.bj()&&i&&(n=this.dj(i,null))&&n.Fi(),i)},eUe.mi=function(e,t){return eD0(this,e,t)},Y6(eZK,"DelegatingNotifyingListImpl",1996),eTS(143,1,eJx),eUe.Ei=function(e){return ey7(this,e)},eUe.Fi=function(){QU(this)},eUe.xi=function(){return this.d},eUe._i=function(){return null},eUe.gj=function(){return null},eUe.yi=function(e){return -1},eUe.zi=function(){return eLo(this)},eUe.Ai=function(){return null},eUe.Bi=function(){return eLs(this)},eUe.Ci=function(){return this.o<0?this.o<-2?-2-this.o-1:-1:this.o},eUe.hj=function(){return!1},eUe.Di=function(e){var t,n,r,i,a,o,s,u,c,l,f;switch(this.d){case 1:case 2:switch(i=e.xi()){case 1:case 2:if(xc(a=e.Ai())===xc(this.Ai())&&this.yi(null)==e.yi(null))return this.g=e.zi(),1==e.xi()&&(this.d=1),!0}case 4:if(4===(i=e.xi())&&xc(a=e.Ai())===xc(this.Ai())&&this.yi(null)==e.yi(null))return c=eju(this),u=this.o<0?this.o<-2?-2-this.o-1:-1:this.o,o=e.Ci(),this.d=6,f=new eta(2),u<=o?(JL(f,this.n),JL(f,e.Bi()),this.g=eow(vx(ty_,1),eHT,25,15,[this.o=u,o+1])):(JL(f,e.Bi()),JL(f,this.n),this.g=eow(vx(ty_,1),eHT,25,15,[this.o=o,u])),this.n=f,c||(this.o=-2-this.o-1),!0;break;case 6:if(4===(i=e.xi())&&xc(a=e.Ai())===xc(this.Ai())&&this.yi(null)==e.yi(null)){for(c=eju(this),o=e.Ci(),r=Je(ty_,eHT,25,(l=Pp(this.g,48)).length+1,15,1),t=0;t>>0).toString(16)),r.a+=" (eventType: ",this.d){case 1:r.a+="SET";break;case 2:r.a+="UNSET";break;case 3:r.a+="ADD";break;case 5:r.a+="ADD_MANY";break;case 4:r.a+="REMOVE";break;case 6:r.a+="REMOVE_MANY";break;case 7:r.a+="MOVE";break;case 8:r.a+="REMOVING_ADAPTER";break;case 9:r.a+="RESOLVE";break;default:yz(r,this.d)}if(eIb(this)&&(r.a+=", touch: true"),r.a+=", position: ",yz(r,this.o<0?this.o<-2?-2-this.o-1:-1:this.o),r.a+=", notifier: ",xS(r,this.Ai()),r.a+=", feature: ",xS(r,this._i()),r.a+=", oldValue: ",xS(r,eLs(this)),r.a+=", newValue: ",6==this.d&&M4(this.g,48)){for(n=Pp(this.g,48),r.a+="[",e=0;e10?(this.b&&this.c.j==this.a||(this.b=new Rq(this),this.a=this.j),w0(this.b,e)):ev8(this,e)},eUe.ni=function(){return!0},eUe.a=0,Y6(eX_,"AbstractEList/1",953),eTS(295,73,eHZ,Ii),Y6(eX_,"AbstractEList/BasicIndexOutOfBoundsException",295),eTS(40,1,eUE,Ow),eUe.Nb=function(e){F9(this,e)},eUe.mj=function(){if(this.i.j!=this.f)throw p7(new bA)},eUe.nj=function(){return epH(this)},eUe.Ob=function(){return this.e!=this.i.gc()},eUe.Pb=function(){return this.nj()},eUe.Qb=function(){ey_(this)},eUe.e=0,eUe.f=0,eUe.g=-1,Y6(eX_,"AbstractEList/EIterator",40),eTS(278,40,eUC,AF,YC),eUe.Qb=function(){ey_(this)},eUe.Rb=function(e){edq(this,e)},eUe.oj=function(){var e;try{return e=this.d.Xb(--this.e),this.mj(),this.g=this.e,e}catch(t){if(t=eoa(t),M4(t,73))throw this.mj(),p7(new bC);throw p7(t)}},eUe.pj=function(e){emE(this,e)},eUe.Sb=function(){return 0!=this.e},eUe.Tb=function(){return this.e},eUe.Ub=function(){return this.oj()},eUe.Vb=function(){return this.e-1},eUe.Wb=function(e){this.pj(e)},Y6(eX_,"AbstractEList/EListIterator",278),eTS(341,40,eUE,AY),eUe.nj=function(){return ep$(this)},eUe.Qb=function(){throw p7(new bO)},Y6(eX_,"AbstractEList/NonResolvingEIterator",341),eTS(385,278,eUC,AB,IB),eUe.Rb=function(e){throw p7(new bO)},eUe.nj=function(){var e;try{return e=this.c.ki(this.e),this.mj(),this.g=this.e++,e}catch(t){if(t=eoa(t),M4(t,73))throw this.mj(),p7(new bC);throw p7(t)}},eUe.oj=function(){var e;try{return e=this.c.ki(--this.e),this.mj(),this.g=this.e,e}catch(t){if(t=eoa(t),M4(t,73))throw this.mj(),p7(new bC);throw p7(t)}},eUe.Qb=function(){throw p7(new bO)},eUe.Wb=function(e){throw p7(new bO)},Y6(eX_,"AbstractEList/NonResolvingEListIterator",385),eTS(1982,67,eJO),eUe.Vh=function(e,t){var n,r,i,a,o,s,u,c,l,f,d;if(0==(i=t.gc()))return++this.j,!1;for(r=eue(this,d=(l=null==(c=Pp(eaS(this.a,4),126))?0:c.length)+i),(f=l-e)>0&&ePD(c,e,r,e+i,f),u=t.Kc(),o=0;on)throw p7(new Ii(e,n));return new Uu(this,e)},eUe.$b=function(){var e,t;++this.j,t=null==(e=Pp(eaS(this.a,4),126))?0:e.length,eps(this,null),X9(this,t,e)},eUe.Hc=function(e){var t,n,r,i,a;if(null!=(t=Pp(eaS(this.a,4),126))){if(null!=e){for(i=0,a=(r=t).length;i=(n=null==(t=Pp(eaS(this.a,4),126))?0:t.length))throw p7(new Ii(e,n));return t[e]},eUe.Xc=function(e){var t,n,r;if(null!=(t=Pp(eaS(this.a,4),126))){if(null!=e){for(n=0,r=t.length;nn)throw p7(new Ii(e,n));return new Us(this,e)},eUe.ii=function(e,t){var n,r,i;if(i=null==(n=ehc(this))?0:n.length,e>=i)throw p7(new gE(eXU+e+eXH+i));if(t>=i)throw p7(new gE(eX$+t+eXH+i));return r=n[t],e!=t&&(e0&&ePD(e,0,t,0,n),t},eUe.Qc=function(e){var t,n,r;return(r=null==(t=Pp(eaS(this.a,4),126))?0:t.length)>0&&(e.lengthr&&Bc(e,r,null),e},Y6(eX_,"ArrayDelegatingEList",1982),eTS(1038,40,eUE,Zl),eUe.mj=function(){if(this.b.j!=this.f||xc(Pp(eaS(this.b.a,4),126))!==xc(this.a))throw p7(new bA)},eUe.Qb=function(){ey_(this),this.a=Pp(eaS(this.b.a,4),126)},Y6(eX_,"ArrayDelegatingEList/EIterator",1038),eTS(706,278,eUC,FK,Us),eUe.mj=function(){if(this.b.j!=this.f||xc(Pp(eaS(this.b.a,4),126))!==xc(this.a))throw p7(new bA)},eUe.pj=function(e){emE(this,e),this.a=Pp(eaS(this.b.a,4),126)},eUe.Qb=function(){ey_(this),this.a=Pp(eaS(this.b.a,4),126)},Y6(eX_,"ArrayDelegatingEList/EListIterator",706),eTS(1039,341,eUE,Zf),eUe.mj=function(){if(this.b.j!=this.f||xc(Pp(eaS(this.b.a,4),126))!==xc(this.a))throw p7(new bA)},Y6(eX_,"ArrayDelegatingEList/NonResolvingEIterator",1039),eTS(707,385,eUC,FV,Uu),eUe.mj=function(){if(this.b.j!=this.f||xc(Pp(eaS(this.b.a,4),126))!==xc(this.a))throw p7(new bA)},Y6(eX_,"ArrayDelegatingEList/NonResolvingEListIterator",707),eTS(606,295,eHZ,xJ),Y6(eX_,"BasicEList/BasicIndexOutOfBoundsException",606),eTS(696,63,eXz,xt),eUe.Vc=function(e,t){throw p7(new bO)},eUe.Fc=function(e){throw p7(new bO)},eUe.Wc=function(e,t){throw p7(new bO)},eUe.Gc=function(e){throw p7(new bO)},eUe.$b=function(){throw p7(new bO)},eUe.qi=function(e){throw p7(new bO)},eUe.Kc=function(){return this.Zh()},eUe.Yc=function(){return this.$h()},eUe.Zc=function(e){return this._h(e)},eUe.ii=function(e,t){throw p7(new bO)},eUe.ji=function(e,t){throw p7(new bO)},eUe.$c=function(e){throw p7(new bO)},eUe.Mc=function(e){throw p7(new bO)},eUe._c=function(e,t){throw p7(new bO)},Y6(eX_,"BasicEList/UnmodifiableEList",696),eTS(705,1,{3:1,20:1,14:1,15:1,58:1,589:1}),eUe.Vc=function(e,t){Mq(this,e,Pp(t,42))},eUe.Fc=function(e){return LA(this,Pp(e,42))},eUe.Jc=function(e){qX(this,e)},eUe.Xb=function(e){return Pp(etj(this.c,e),133)},eUe.ii=function(e,t){return Pp(this.c.ii(e,t),42)},eUe.ji=function(e,t){MZ(this,e,Pp(t,42))},eUe.Lc=function(){return new R1(null,new Gq(this,16))},eUe.$c=function(e){return Pp(this.c.$c(e),42)},eUe._c=function(e,t){return YV(this,e,Pp(t,42))},eUe.ad=function(e){er9(this,e)},eUe.Nc=function(){return new Gq(this,16)},eUe.Oc=function(){return new R1(null,new Gq(this,16))},eUe.Wc=function(e,t){return this.c.Wc(e,t)},eUe.Gc=function(e){return this.c.Gc(e)},eUe.$b=function(){this.c.$b()},eUe.Hc=function(e){return this.c.Hc(e)},eUe.Ic=function(e){return eot(this.c,e)},eUe.qj=function(){var e,t,n;if(null==this.d){for(this.d=Je(e5C,eJA,63,2*this.f+1,0,1),n=this.e,this.f=0,t=this.c.Kc();t.e!=t.i.gc();)ebB(this,e=Pp(t.nj(),133));this.e=n}},eUe.Fb=function(e){return Ij(this,e)},eUe.Hb=function(){return eov(this.c)},eUe.Xc=function(e){return this.c.Xc(e)},eUe.rj=function(){this.c=new pC(this)},eUe.dc=function(){return 0==this.f},eUe.Kc=function(){return this.c.Kc()},eUe.Yc=function(){return this.c.Yc()},eUe.Zc=function(e){return this.c.Zc(e)},eUe.sj=function(){return X5(this)},eUe.tj=function(e,t,n){return new N7(e,t,n)},eUe.uj=function(){return new st},eUe.Mc=function(e){return en$(this,e)},eUe.gc=function(){return this.f},eUe.bd=function(e,t){return new Gz(this.c,e,t)},eUe.Pc=function(){return this.c.Pc()},eUe.Qc=function(e){return this.c.Qc(e)},eUe.Ib=function(){return efq(this.c)},eUe.e=0,eUe.f=0,Y6(eX_,"BasicEMap",705),eTS(1033,63,eXz,pC),eUe.bi=function(e,t){bH(this,Pp(t,133))},eUe.ei=function(e,t,n){var r;++(r=this,Pp(t,133),r).a.e},eUe.fi=function(e,t){b$(this,Pp(t,133))},eUe.gi=function(e,t,n){AO(this,Pp(t,133),Pp(n,133))},eUe.di=function(e,t){eac(this.a)},Y6(eX_,"BasicEMap/1",1033),eTS(1034,63,eXz,st),eUe.ri=function(e){return Je(e5R,eJL,612,e,0,1)},Y6(eX_,"BasicEMap/2",1034),eTS(1035,eUT,eUM,pI),eUe.$b=function(){this.a.c.$b()},eUe.Hc=function(e){return edG(this.a,e)},eUe.Kc=function(){return 0==this.a.f?(LF(),tmB.a):new yd(this.a)},eUe.Mc=function(e){var t;return t=this.a.f,ehx(this.a,e),this.a.f!=t},eUe.gc=function(){return this.a.f},Y6(eX_,"BasicEMap/3",1035),eTS(1036,28,eUx,pD),eUe.$b=function(){this.a.c.$b()},eUe.Hc=function(e){return eCl(this.a,e)},eUe.Kc=function(){return 0==this.a.f?(LF(),tmB.a):new yh(this.a)},eUe.gc=function(){return this.a.f},Y6(eX_,"BasicEMap/4",1036),eTS(1037,eUT,eUM,pN),eUe.$b=function(){this.a.c.$b()},eUe.Hc=function(e){var t,n,r,i,a,o,s,u,c;if(this.a.f>0&&M4(e,42)&&(this.a.qj(),i=null==(s=(u=Pp(e,42)).cd())?0:esj(s),a=Cb(this.a,i),t=this.a.d[a])){for(o=0,n=Pp(t.g,367),c=t.i;o"+this.c},eUe.a=0;var e5R=Y6(eX_,"BasicEMap/EntryImpl",612);eTS(536,1,{},o2),Y6(eX_,"BasicEMap/View",536),eTS(768,1,{}),eUe.Fb=function(e){return eT$((Hj(),e2r),e)},eUe.Hb=function(){return esS((Hj(),e2r))},eUe.Ib=function(){return e_F((Hj(),e2r))},Y6(eX_,"ECollections/BasicEmptyUnmodifiableEList",768),eTS(1312,1,eUC,sn),eUe.Nb=function(e){F9(this,e)},eUe.Rb=function(e){throw p7(new bO)},eUe.Ob=function(){return!1},eUe.Sb=function(){return!1},eUe.Pb=function(){throw p7(new bC)},eUe.Tb=function(){return 0},eUe.Ub=function(){throw p7(new bC)},eUe.Vb=function(){return -1},eUe.Qb=function(){throw p7(new bO)},eUe.Wb=function(e){throw p7(new bO)},Y6(eX_,"ECollections/BasicEmptyUnmodifiableEList/1",1312),eTS(1310,768,{20:1,14:1,15:1,58:1},mx),eUe.Vc=function(e,t){y6()},eUe.Fc=function(e){return y5()},eUe.Wc=function(e,t){return y8()},eUe.Gc=function(e){return y9()},eUe.$b=function(){y7()},eUe.Hc=function(e){return!1},eUe.Ic=function(e){return!1},eUe.Jc=function(e){qX(this,e)},eUe.Xb=function(e){return xY((Hj(),e)),null},eUe.Xc=function(e){return -1},eUe.dc=function(){return!0},eUe.Kc=function(){return this.a},eUe.Yc=function(){return this.a},eUe.Zc=function(e){return this.a},eUe.ii=function(e,t){return we()},eUe.ji=function(e,t){wt()},eUe.Lc=function(){return new R1(null,new Gq(this,16))},eUe.$c=function(e){return wn()},eUe.Mc=function(e){return wr()},eUe._c=function(e,t){return wi()},eUe.gc=function(){return 0},eUe.ad=function(e){er9(this,e)},eUe.Nc=function(){return new Gq(this,16)},eUe.Oc=function(){return new R1(null,new Gq(this,16))},eUe.bd=function(e,t){return Hj(),new Gz(e2r,e,t)},eUe.Pc=function(){return Fn((Hj(),e2r))},eUe.Qc=function(e){return Hj(),emk(e2r,e)},Y6(eX_,"ECollections/EmptyUnmodifiableEList",1310),eTS(1311,768,{20:1,14:1,15:1,58:1,589:1},mT),eUe.Vc=function(e,t){y6()},eUe.Fc=function(e){return y5()},eUe.Wc=function(e,t){return y8()},eUe.Gc=function(e){return y9()},eUe.$b=function(){y7()},eUe.Hc=function(e){return!1},eUe.Ic=function(e){return!1},eUe.Jc=function(e){qX(this,e)},eUe.Xb=function(e){return xY((Hj(),e)),null},eUe.Xc=function(e){return -1},eUe.dc=function(){return!0},eUe.Kc=function(){return this.a},eUe.Yc=function(){return this.a},eUe.Zc=function(e){return this.a},eUe.ii=function(e,t){return we()},eUe.ji=function(e,t){wt()},eUe.Lc=function(){return new R1(null,new Gq(this,16))},eUe.$c=function(e){return wn()},eUe.Mc=function(e){return wr()},eUe._c=function(e,t){return wi()},eUe.gc=function(){return 0},eUe.ad=function(e){er9(this,e)},eUe.Nc=function(){return new Gq(this,16)},eUe.Oc=function(){return new R1(null,new Gq(this,16))},eUe.bd=function(e,t){return Hj(),new Gz(e2r,e,t)},eUe.Pc=function(){return Fn((Hj(),e2r))},eUe.Qc=function(e){return Hj(),emk(e2r,e)},eUe.sj=function(){return Hj(),Hj(),e2i},Y6(eX_,"ECollections/EmptyUnmodifiableEMap",1311);var e5j=RL(eX_,"Enumerator");eTS(281,1,{281:1},eCg),eUe.Fb=function(e){var t;return this===e||!!M4(e,281)&&(t=Pp(e,281),this.f==t.f&&jx(this.i,t.i)&&jk(this.a,(256&this.f)!=0?(256&t.f)!=0?t.a:null:(256&t.f)!=0?null:t.a)&&jk(this.d,t.d)&&jk(this.g,t.g)&&jk(this.e,t.e)&&epK(this,t))},eUe.Hb=function(){return this.f},eUe.Ib=function(){return eDv(this)},eUe.f=0;var e5F,e5Y,e5B,e5U,e5H,e5$,e5z,e5G,e5W,e5K,e5V,e5q,e5Z,e5X,e5J,e5Q,e51,e50,e52,e53,e54,e56,e55,e58,e59,e57,e8e,e8t,e8n,e8r,e8i,e8a,e8o,e8s,e8u,e8c,e8l,e8f,e8d,e8h,e8p,e8b,e8m,e8g,e8v,e8y,e8w,e8_,e8E,e8S,e8k,e8x,e8T,e8M,e8O,e8A,e8L,e8C,e8I,e8D,e8N,e8P,e8R,e8j,e8F,e8Y,e8B,e8U,e8H,e8$,e8z,e8G,e8W,e8K,e8V,e8q,e8Z,e8X,e8J,e8Q,e81,e80,e82,e83,e84,e86,e85,e88,e89,e87,e9e,e9t,e9n,e9r,e9i,e9a,e9o,e9s,e9u,e9c,e9l,e9f,e9d,e9h,e9p,e9b,e9m,e9g,e9v,e9y,e9w,e9_,e9E,e9S,e9k,e9x,e9T,e9M,e9O,e9A,e9L,e9C,e9I,e9D,e9N,e9P,e9R,e9j,e9F,e9Y,e9B,e9U,e9H,e9$,e9z,e9G,e9W,e9K,e9V,e9q,e9Z,e9X,e9J,e9Q,e91,e90,e92,e93,e94,e96,e95,e98,e99,e97,e7e,e7t,e7n,e7r,e7i,e7a,e7o,e7s,e7u,e7c,e7l,e7f,e7d,e7h,e7p,e7b,e7m,e7g,e7v,e7y,e7w,e7_,e7E,e7S,e7k,e7x,e7T,e7M,e7O,e7A,e7L,e7C,e7I,e7D,e7N,e7P,e7R,e7j,e7F,e7Y,e7B,e7U,e7H,e7$,e7z,e7G,e7W,e7K,e7V,e7q,e7Z,e7X,e7J,e7Q,e71,e70,e72,e73,e74,e76,e75,e78,e79,e77,tee,tet,ten,ter,tei,tea,teo,tes,teu,tec,tel,tef,ted,teh,tep,teb,tem,teg,tev,tey,tew,te_,teE,teS,tek,tex,teT,teM,teO,teA,teL,teC,teI,teD,teN,teP,teR,tej,teF,teY,teB,teU,teH,te$,tez,teG,teW,teK,teV,teq,teZ,teX,teJ,teQ,te1,te0,te2,te3,te4,te6,te5,te8,te9,te7,tte,ttt,ttn,ttr,tti,tta,tto,tts,ttu,ttc,ttl,ttf,ttd,tth,ttp,ttb,ttm,ttg,ttv,tty,ttw,tt_,ttE,ttS,ttk,ttx,ttT,ttM,ttO,ttA,ttL,ttC,ttI,ttD,ttN,ttP,ttR,ttj,ttF,ttY,ttB,ttU,ttH,tt$,ttz,ttG,ttW,ttK,ttV,ttq,ttZ,ttX,ttJ,ttQ,tt1,tt0,tt2,tt3,tt4,tt6,tt5,tt8,tt9,tt7,tne,tnt,tnn,tnr,tni,tna,tno,tns,tnu,tnc,tnl,tnf,tnd,tnh,tnp,tnb,tnm,tng,tnv,tny,tnw,tn_,tnE,tnS,tnk,tnx,tnT,tnM,tnO,tnA,tnL,tnC,tnI,tnD,tnN,tnP,tnR,tnj,tnF,tnY,tnB,tnU,tnH,tn$,tnz,tnG,tnW,tnK,tnV,tnq,tnZ,tnX,tnJ,tnQ,tn1,tn0,tn2,tn3,tn4,tn6,tn5,tn8,tn9,tn7,tre,trt,trn,trr,tri,tra,tro,trs,tru,trc,trl,trf,trd,trh,trp,trb,trm,trg,trv,trw,tr_,trE,trS,trk,trx,trT,trM,trO,trA,trL,trC,trI,trD,trN,trP,trR,trj,trF,trY,trB,trU,trH,tr$,trz,trG,trW,trK,trV,trq,trZ,trX,trJ,trQ,tr1,tr0,tr2,tr3,tr4,tr6,tr5,tr8,tr9,tr7,tie,tit,tin,tir,tii,tia,tio,tis,tiu,tic,til,tif,tid,tih,tip,tib,tim,tig,tiv,tiy,tiw,ti_,tiE,tiS,tik,tix,tiT,tiM,tiO,tiA,tiL,tiC,tiI,tiD,tiN,tiP,tiR,tij,tiF,tiY,tiB,tiU,tiH,ti$,tiz,tiG,tiW,tiK,tiV,tiq,tiZ,tiX,tiJ,tiQ,ti1,ti0,ti2,ti3,ti4,ti6,ti5,ti8,ti9,ti7,tae,tat,tan,tar,tai,taa,tao,tas,tau,tac,tal,taf,tad,tah,tap,tab,tam,tag,tav,tay,taw,ta_,taE,taS,tak,tax,taT,taM,taO,taA,taL,taC,taI,taD,taN,taP,taR,taj,taF,taY,taB,taU,taH,ta$,taz,taG,taW,taK,taV,taq,taZ,taX,taJ,taQ,ta1,ta0,ta2,ta3,ta4,ta6,ta5,ta8,ta9,ta7,toe,tot,ton,tor,toi,toa,too,tos,tou,toc,tol,tof,tod,toh,top,tob,tom,tog,tov,toy,tow,to_,toE,toS,tok,tox,toT,toM,toO,toA,toL,toC,toI,toD,toN,toP,toR,toj,toF,toY,toB,toU,toH,to$,toz,toG,toW,toK,toV,toq,toZ,toX,toJ,toQ,to1,to0,to2,to3,to4,to6,to5,to8,to9,to7,tse,tst,tsn,tsr,tsi,tsa,tso,tss,tsu,tsc,tsl,tsf,tsd,tsh,tsp,tsb,tsm,tsg,tsv,tsy,tsw,ts_,tsE,tsS,tsk,tsx,tsT,tsM,tsO,tsA,tsL,tsC,tsI,tsD,tsN,tsP,tsR,tsj,tsF,tsY,tsB,tsU,tsH,ts$,tsz,tsG,tsW,tsK,tsV,tsq,tsZ,tsX,tsJ,tsQ,ts1,ts0,ts2,ts3,ts4,ts6,ts5,ts8,ts9,ts7,tue,tut,tun,tur,tui,tua,tuo,tus,tuu,tuc,tul,tuf,tud,tuh,tup,tub,tum,tug,tuv,tuy,tuw,tu_,tuE,tuS,tuk,tux,tuT,tuM,tuO,tuA,tuL,tuC,tuI,tuD,tuN,tuP,tuR,tuj,tuF,tuY,tuB,tuU,tuH,tu$,tuz,tuG,tuW,tuK,tuV,tuq,tuZ,tuX,tuJ,tuQ,tu1,tu0,tu2,tu3,tu4,tu6,tu5,tu8,tu9,tu7,tce,tct,tcn,tcr,tci,tca,tco,tcs,tcu,tcc,tcl,tcf,tcd,tch,tcp,tcb,tcm,tcg,tcv,tcy,tcw,tc_,tcE,tcS,tck,tcx,tcT,tcM,tcO,tcA,tcL,tcC,tcI,tcD,tcN,tcP,tcR,tcj,tcF,tcY,tcB,tcU,tcH,tc$,tcz,tcG,tcW,tcK,tcV,tcq,tcZ,tcX,tcJ,tcQ,tc1,tc0,tc2,tc3,tc4,tc6,tc5,tc8,tc9,tc7,tle,tlt,tln,tlr,tli,tla,tlo,tls,tlu,tlc,tll,tlf,tld,tlh,tlp,tlb,tlm,tlg,tlv,tly,tlw,tl_,tlE,tlS,tlk,tlx,tlT,tlM,tlO,tlA,tlL,tlC,tlI,tlD,tlN,tlP,tlR,tlj,tlF,tlY,tlB,tlU,tlH,tl$,tlz,tlG,tlW,tlK,tlV,tlq,tlZ,tlX,tlJ,tlQ,tl1,tl0,tl2,tl3,tl4,tl6,tl5,tl8,tl9,tl7,tfe,tft,tfn,tfr,tfi,tfa,tfo,tfs,tfu,tfc,tfl,tff,tfd,tfh,tfp,tfb,tfm,tfg,tfv,tfy,tfw,tf_,tfE,tfS,tfk,tfx,tfT,tfM,tfO,tfA,tfL,tfC,tfI,tfD,tfN,tfP,tfR,tfj,tfF,tfY,tfB,tfU,tfH,tf$,tfz,tfG,tfW,tfK,tfV,tfq,tfZ,tfX,tfJ,tfQ,tf1,tf0,tf2,tf3,tf4,tf6,tf5,tf8,tf9,tf7,tde,tdt,tdn,tdr,tdi,tda,tdo,tds,tdu,tdc,tdl,tdf,tdd,tdh,tdp,tdb,tdm,tdg,tdv,tdy,tdw,td_,tdE,tdS,tdk,tdx,tdT,tdM,tdO,tdA,tdL,tdC,tdI,tdD,tdN,tdP,tdR,tdj,tdF,tdY,tdB,tdU,tdH,td$,tdz,tdG,tdW,tdK,tdV,tdq,tdZ,tdX,tdJ,tdQ,td1,td0,td2,td3,td4,td6,td5,td8,td9,td7,the,tht,thn,thr,thi,tha,tho,ths,thu,thc,thl,thf,thd,thh,thp,thb,thm,thg,thv,thy,thw,th_,thE,thS,thk,thx,thT,thM,thO,thA,thL,thC,thI,thD,thN,thP,thR,thj,thF,thY,thB,thU,thH,th$,thz,thG,thW,thK,thV,thq,thZ,thX,thJ,thQ,th1,th0,th2,th3,th4,th6,th5,th8,th9,th7,tpe,tpt,tpn,tpr,tpi,tpa,tpo,tps,tpu,tpc,tpl,tpf,tpd,tph,tpp,tpb,tpm,tpg,tpv,tpy,tpw,tp_,tpE,tpS,tpk,tpx,tpT,tpM,tpO,tpA,tpL,tpC,tpI,tpD,tpN,tpP,tpR,tpj,tpF,tpY,tpB,tpU,tpH,tp$,tpz,tpG,tpW,tpK,tpV,tpq,tpZ,tpX,tpJ,tpQ,tp1,tp0,tp2,tp3,tp4,tp6,tp5,tp8,tp9,tp7,tbe,tbt,tbn,tbr,tbi,tba,tbo,tbs,tbu,tbc,tbl,tbf,tbd,tbh,tbp,tbb,tbm,tbg,tbv,tby,tbw,tb_,tbE,tbS,tbk,tbx,tbT,tbM,tbO,tbA,tbL,tbC,tbI,tbD,tbN,tbP,tbR,tbj,tbF,tbY,tbB,tbU,tbH,tb$,tbz,tbG,tbW,tbK,tbV,tbq,tbZ,tbX,tbJ,tbQ,tb1,tb0,tb2,tb3,tb4,tb6,tb5,tb8,tb9,tb7,tme,tmt,tmn,tmr,tmi,tma,tmo,tms,tmu,tmc,tml,tmf,tmd,tmh,tmp,tmb,tmm,tmg,tmv,tmy,tmw,tm_,tmE,tmS,tmk,tmx,tmT,tmM,tmO,tmA,tmL,tmC,tmI,tmD,tmN,tmP,tmR,tmj,tmF,tmY,tmB,tmU,tmH,tm$,tmz,tmG=0,tmW=0,tmK=0,tmV=0,tmq=0,tmZ=0,tmX=0,tmJ=0,tmQ=0,tm1=0,tm0=0,tm2=0,tm3=0;Y6(eX_,"URI",281),eTS(1091,43,e$s,mM),eUe.zc=function(e,t){return Pp(Ge(this,Lq(e),Pp(t,281)),281)},Y6(eX_,"URI/URICache",1091),eTS(497,63,eXz,o6,jf),eUe.hi=function(){return!0},Y6(eX_,"UniqueEList",497),eTS(581,60,eHr,QH),Y6(eX_,"WrappedException",581);var tm4=RL(eZD,eJD),tm6=RL(eZD,eJN),tm5=RL(eZD,eJP),tm8=RL(eZD,eJR),tm9=RL(eZD,eJj),tm7=RL(eZD,"EClass"),tge=RL(eZD,"EDataType");eTS(1183,43,e$s,mO),eUe.xc=function(e){return xd(e)?zg(this,e):xu($I(this.f,e))},Y6(eZD,"EDataType/Internal/ConversionDelegate/Factory/Registry/Impl",1183);var tgt=RL(eZD,"EEnum"),tgn=RL(eZD,eJF),tgr=RL(eZD,eJY),tgi=RL(eZD,eJB),tga=RL(eZD,eJU),tgo=RL(eZD,eJH);eTS(1029,1,{},o4),eUe.Ib=function(){return"NIL"},Y6(eZD,"EStructuralFeature/Internal/DynamicValueHolder/1",1029),eTS(1028,43,e$s,mA),eUe.xc=function(e){return xd(e)?zg(this,e):xu($I(this.f,e))},Y6(eZD,"EStructuralFeature/Internal/SettingDelegate/Factory/Registry/Impl",1028);var tgs=RL(eZD,eJ$),tgu=RL(eZD,"EValidator/PatternMatcher"),tgc=RL(eJz,"FeatureMap/Entry");eTS(535,1,{72:1},k3),eUe.ak=function(){return this.a},eUe.dd=function(){return this.b},Y6(eZ2,"BasicEObjectImpl/1",535),eTS(1027,1,eJG,k4),eUe.Wj=function(e){return ZN(this.a,this.b,e)},eUe.fj=function(){return zz(this.a,this.b)},eUe.Wb=function(e){zx(this.a,this.b,e)},eUe.Xj=function(){B4(this.a,this.b)},Y6(eZ2,"BasicEObjectImpl/4",1027),eTS(1983,1,{108:1}),eUe.bk=function(e){this.e=0==e?tgH:Je(e1R,eUp,1,e,5,1)},eUe.Ch=function(e){return this.e[e]},eUe.Dh=function(e,t){this.e[e]=t},eUe.Eh=function(e){this.e[e]=null},eUe.ck=function(){return this.c},eUe.dk=function(){throw p7(new bO)},eUe.ek=function(){throw p7(new bO)},eUe.fk=function(){return this.d},eUe.gk=function(){return null!=this.e},eUe.hk=function(e){this.c=e},eUe.ik=function(e){throw p7(new bO)},eUe.jk=function(e){throw p7(new bO)},eUe.kk=function(e){this.d=e},Y6(eZ2,"BasicEObjectImpl/EPropertiesHolderBaseImpl",1983),eTS(185,1983,{108:1},c1),eUe.dk=function(){return this.a},eUe.ek=function(){return this.b},eUe.ik=function(e){this.a=e},eUe.jk=function(e){this.b=e},Y6(eZ2,"BasicEObjectImpl/EPropertiesHolderImpl",185),eTS(506,97,eZ0,sr),eUe.Kg=function(){return this.f},eUe.Pg=function(){return this.k},eUe.Rg=function(e,t){this.g=e,this.i=t},eUe.Tg=function(){return(2&this.j)==0?this.zh():this.ph().ck()},eUe.Vg=function(){return this.i},eUe.Mg=function(){return(1&this.j)!=0},eUe.eh=function(){return this.g},eUe.kh=function(){return(4&this.j)!=0},eUe.ph=function(){return this.k||(this.k=new c1),this.k},eUe.th=function(e){this.ph().hk(e),e?this.j|=2:this.j&=-3},eUe.vh=function(e){this.ph().jk(e),e?this.j|=4:this.j&=-5},eUe.zh=function(){return(BM(),tgv).S},eUe.i=0,eUe.j=1,Y6(eZ2,"EObjectImpl",506),eTS(780,506,{105:1,92:1,90:1,56:1,108:1,49:1,97:1},Pq),eUe.Ch=function(e){return this.e[e]},eUe.Dh=function(e,t){this.e[e]=t},eUe.Eh=function(e){this.e[e]=null},eUe.Tg=function(){return this.d},eUe.Yg=function(e){return edv(this.d,e)},eUe.$g=function(){return this.d},eUe.dh=function(){return null!=this.e},eUe.ph=function(){return this.k||(this.k=new si),this.k},eUe.th=function(e){this.d=e},eUe.yh=function(){var e;return null==this.e&&(e=Y1(this.d),this.e=0==e?tg$:Je(e1R,eUp,1,e,5,1)),this},eUe.Ah=function(){return 0},Y6(eZ2,"DynamicEObjectImpl",780),eTS(1376,780,{105:1,42:1,92:1,90:1,133:1,56:1,108:1,49:1,97:1},RO),eUe.Fb=function(e){return this===e},eUe.Hb=function(){return Ao(this)},eUe.th=function(e){this.d=e,this.b=eAh(e,"key"),this.c=eAh(e,eXr)},eUe.Sh=function(){var e;return -1==this.a&&(e=Q8(this,this.b),this.a=null==e?0:esj(e)),this.a},eUe.cd=function(){return Q8(this,this.b)},eUe.dd=function(){return Q8(this,this.c)},eUe.Th=function(e){this.a=e},eUe.Uh=function(e){zx(this,this.b,e)},eUe.ed=function(e){var t;return t=Q8(this,this.c),zx(this,this.c,e),t},eUe.a=0,Y6(eZ2,"DynamicEObjectImpl/BasicEMapEntry",1376),eTS(1377,1,{108:1},si),eUe.bk=function(e){throw p7(new bO)},eUe.Ch=function(e){throw p7(new bO)},eUe.Dh=function(e,t){throw p7(new bO)},eUe.Eh=function(e){throw p7(new bO)},eUe.ck=function(){throw p7(new bO)},eUe.dk=function(){return this.a},eUe.ek=function(){return this.b},eUe.fk=function(){return this.c},eUe.gk=function(){throw p7(new bO)},eUe.hk=function(e){throw p7(new bO)},eUe.ik=function(e){this.a=e},eUe.jk=function(e){this.b=e},eUe.kk=function(e){this.c=e},Y6(eZ2,"DynamicEObjectImpl/DynamicEPropertiesHolderImpl",1377),eTS(510,150,{105:1,92:1,90:1,590:1,147:1,56:1,108:1,49:1,97:1,510:1,150:1,114:1,115:1},sa),eUe.Qg=function(e){return eg4(this,e)},eUe._g=function(e,t,n){var r;switch(e){case 0:return this.Ab||(this.Ab=new FQ(tm4,this,0,3)),this.Ab;case 1:return this.d;case 2:return n?(this.b||(this.b=new L_((eBK(),tgF),tgf,this)),this.b):(this.b||(this.b=new L_((eBK(),tgF),tgf,this)),X5(this.b));case 3:return z4(this);case 4:return this.a||(this.a=new O_(e5f,this,4)),this.a;case 5:return this.c||(this.c=new OT(e5f,this,5)),this.c}return Qt(this,e-Y1((eBK(),tgy)),ee2((r=Pp(eaS(this,16),26))||tgy,e),t,n)},eUe.hh=function(e,t,n){var r,i,a;switch(t){case 0:return this.Ab||(this.Ab=new FQ(tm4,this,0,3)),edF(this.Ab,e,n);case 3:return this.Cb&&(n=(i=this.Db>>16)>=0?eg4(this,n):this.Cb.ih(this,-1-i,null,n)),j3(this,Pp(e,147),n)}return(a=Pp(ee2((r=Pp(eaS(this,16),26))||(eBK(),tgy),t),66)).Nj().Qj(this,ehH(this),t-Y1((eBK(),tgy)),e,n)},eUe.jh=function(e,t,n){var r,i;switch(t){case 0:return this.Ab||(this.Ab=new FQ(tm4,this,0,3)),ep5(this.Ab,e,n);case 2:return this.b||(this.b=new L_((eBK(),tgF),tgf,this)),Iz(this.b,e,n);case 3:return j3(this,null,n);case 4:return this.a||(this.a=new O_(e5f,this,4)),ep5(this.a,e,n)}return(i=Pp(ee2((r=Pp(eaS(this,16),26))||(eBK(),tgy),t),66)).Nj().Rj(this,ehH(this),t-Y1((eBK(),tgy)),e,n)},eUe.lh=function(e){var t;switch(e){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.d;case 2:return!!this.b&&0!=this.b.f;case 3:return!!z4(this);case 4:return!!this.a&&0!=this.a.i;case 5:return!!this.c&&0!=this.c.i}return VP(this,e-Y1((eBK(),tgy)),ee2((t=Pp(eaS(this,16),26))||tgy,e))},eUe.sh=function(e,t){var n;switch(e){case 0:this.Ab||(this.Ab=new FQ(tm4,this,0,3)),eRT(this.Ab),this.Ab||(this.Ab=new FQ(tm4,this,0,3)),Y4(this.Ab,Pp(t,14));return;case 1:RN(this,Lq(t));return;case 2:this.b||(this.b=new L_((eBK(),tgF),tgf,this)),eai(this.b,t);return;case 3:eAc(this,Pp(t,147));return;case 4:this.a||(this.a=new O_(e5f,this,4)),eRT(this.a),this.a||(this.a=new O_(e5f,this,4)),Y4(this.a,Pp(t,14));return;case 5:this.c||(this.c=new OT(e5f,this,5)),eRT(this.c),this.c||(this.c=new OT(e5f,this,5)),Y4(this.c,Pp(t,14));return}efL(this,e-Y1((eBK(),tgy)),ee2((n=Pp(eaS(this,16),26))||tgy,e),t)},eUe.zh=function(){return eBK(),tgy},eUe.Bh=function(e){var t;switch(e){case 0:this.Ab||(this.Ab=new FQ(tm4,this,0,3)),eRT(this.Ab);return;case 1:erl(this,null);return;case 2:this.b||(this.b=new L_((eBK(),tgF),tgf,this)),this.b.c.$b();return;case 3:eAc(this,null);return;case 4:this.a||(this.a=new O_(e5f,this,4)),eRT(this.a);return;case 5:this.c||(this.c=new OT(e5f,this,5)),eRT(this.c);return}ec5(this,e-Y1((eBK(),tgy)),ee2((t=Pp(eaS(this,16),26))||tgy,e))},eUe.Ib=function(){return eln(this)},eUe.d=null,Y6(eZ2,"EAnnotationImpl",510),eTS(151,705,eJW,JY),eUe.Xh=function(e,t){T7(this,e,Pp(t,42))},eUe.lk=function(e,t){return I$(this,Pp(e,42),t)},eUe.pi=function(e){return Pp(Pp(this.c,69).pi(e),133)},eUe.Zh=function(){return Pp(this.c,69).Zh()},eUe.$h=function(){return Pp(this.c,69).$h()},eUe._h=function(e){return Pp(this.c,69)._h(e)},eUe.mk=function(e,t){return Iz(this,e,t)},eUe.Wj=function(e){return Pp(this.c,76).Wj(e)},eUe.rj=function(){},eUe.fj=function(){return Pp(this.c,76).fj()},eUe.tj=function(e,t,n){var r;return(r=Pp(etP(this.b).Nh().Jh(this.b),133)).Th(e),r.Uh(t),r.ed(n),r},eUe.uj=function(){return new pZ(this)},eUe.Wb=function(e){eai(this,e)},eUe.Xj=function(){Pp(this.c,76).Xj()},Y6(eJz,"EcoreEMap",151),eTS(158,151,eJW,L_),eUe.qj=function(){var e,t,n,r,i,a;if(null==this.d){for(a=Je(e5C,eJA,63,2*this.f+1,0,1),n=this.c.Kc();n.e!=n.i.gc();)(e=a[i=((r=(t=Pp(n.nj(),133)).Sh())&eUu)%a.length])||(e=a[i]=new pZ(this)),e.Fc(t);this.d=a}},Y6(eZ2,"EAnnotationImpl/1",158),eTS(284,438,{105:1,92:1,90:1,147:1,191:1,56:1,108:1,472:1,49:1,97:1,150:1,284:1,114:1,115:1}),eUe._g=function(e,t,n){var r,i;switch(e){case 0:return this.Ab||(this.Ab=new FQ(tm4,this,0,3)),this.Ab;case 1:return this.zb;case 2:return OQ(),(256&this.Bb)!=0;case 3:return OQ(),(512&this.Bb)!=0;case 4:return ell(this.s);case 5:return ell(this.t);case 6:return OQ(),!!this.$j();case 7:return OQ(),(i=this.s)>=1;case 8:if(t)return evl(this);return this.r;case 9:return this.q}return Qt(this,e-Y1(this.zh()),ee2((r=Pp(eaS(this,16),26))||this.zh(),e),t,n)},eUe.jh=function(e,t,n){var r,i;switch(t){case 0:return this.Ab||(this.Ab=new FQ(tm4,this,0,3)),ep5(this.Ab,e,n);case 9:return Y3(this,n)}return(i=Pp(ee2((r=Pp(eaS(this,16),26))||this.zh(),t),66)).Nj().Rj(this,ehH(this),t-Y1(this.zh()),e,n)},eUe.lh=function(e){var t,n;switch(e){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return(256&this.Bb)==0;case 3:return(512&this.Bb)==0;case 4:return 0!=this.s;case 5:return 1!=this.t;case 6:return this.$j();case 7:return(n=this.s)>=1;case 8:return!!this.r&&!this.q.e&&0==BX(this.q).i;case 9:return!!this.q&&!(this.r&&!this.q.e&&0==BX(this.q).i)}return VP(this,e-Y1(this.zh()),ee2((t=Pp(eaS(this,16),26))||this.zh(),e))},eUe.sh=function(e,t){var n,r;switch(e){case 0:this.Ab||(this.Ab=new FQ(tm4,this,0,3)),eRT(this.Ab),this.Ab||(this.Ab=new FQ(tm4,this,0,3)),Y4(this.Ab,Pp(t,14));return;case 1:this.Lh(Lq(t));return;case 2:eli(this,gN(LK(t)));return;case 3:els(this,gN(LK(t)));return;case 4:end(this,Pp(t,19).a);return;case 5:this.ok(Pp(t,19).a);return;case 8:eu2(this,Pp(t,138));return;case 9:(r=ew3(this,Pp(t,87),null))&&r.Fi();return}efL(this,e-Y1(this.zh()),ee2((n=Pp(eaS(this,16),26))||this.zh(),e),t)},eUe.zh=function(){return eBK(),tgB},eUe.Bh=function(e){var t,n;switch(e){case 0:this.Ab||(this.Ab=new FQ(tm4,this,0,3)),eRT(this.Ab);return;case 1:this.Lh(null);return;case 2:eli(this,!0);return;case 3:els(this,!0);return;case 4:end(this,0);return;case 5:this.ok(1);return;case 8:eu2(this,null);return;case 9:(n=ew3(this,null,null))&&n.Fi();return}ec5(this,e-Y1(this.zh()),ee2((t=Pp(eaS(this,16),26))||this.zh(),e))},eUe.Gh=function(){evl(this),this.Bb|=1},eUe.Yj=function(){return evl(this)},eUe.Zj=function(){return this.t},eUe.$j=function(){var e;return(e=this.t)>1||-1==e},eUe.hi=function(){return(512&this.Bb)!=0},eUe.nk=function(e,t){return ecz(this,e,t)},eUe.ok=function(e){enh(this,e)},eUe.Ib=function(){return ex3(this)},eUe.s=0,eUe.t=1,Y6(eZ2,"ETypedElementImpl",284),eTS(449,284,{105:1,92:1,90:1,147:1,191:1,56:1,170:1,66:1,108:1,472:1,49:1,97:1,150:1,449:1,284:1,114:1,115:1,677:1}),eUe.Qg=function(e){return egx(this,e)},eUe._g=function(e,t,n){var r,i;switch(e){case 0:return this.Ab||(this.Ab=new FQ(tm4,this,0,3)),this.Ab;case 1:return this.zb;case 2:return OQ(),(256&this.Bb)!=0;case 3:return OQ(),(512&this.Bb)!=0;case 4:return ell(this.s);case 5:return ell(this.t);case 6:return OQ(),!!this.$j();case 7:return OQ(),(i=this.s)>=1;case 8:if(t)return evl(this);return this.r;case 9:return this.q;case 10:return OQ(),(this.Bb&eXt)!=0;case 11:return OQ(),(this.Bb&eJq)!=0;case 12:return OQ(),(this.Bb&eH0)!=0;case 13:return this.j;case 14:return eOI(this);case 15:return OQ(),(this.Bb&eJV)!=0;case 16:return OQ(),(this.Bb&eUR)!=0;case 17:return z5(this)}return Qt(this,e-Y1(this.zh()),ee2((r=Pp(eaS(this,16),26))||this.zh(),e),t,n)},eUe.hh=function(e,t,n){var r,i,a;switch(t){case 0:return this.Ab||(this.Ab=new FQ(tm4,this,0,3)),edF(this.Ab,e,n);case 17:return this.Cb&&(n=(i=this.Db>>16)>=0?egx(this,n):this.Cb.ih(this,-1-i,null,n)),eDg(this,e,17,n)}return(a=Pp(ee2((r=Pp(eaS(this,16),26))||this.zh(),t),66)).Nj().Qj(this,ehH(this),t-Y1(this.zh()),e,n)},eUe.jh=function(e,t,n){var r,i;switch(t){case 0:return this.Ab||(this.Ab=new FQ(tm4,this,0,3)),ep5(this.Ab,e,n);case 9:return Y3(this,n);case 17:return eDg(this,null,17,n)}return(i=Pp(ee2((r=Pp(eaS(this,16),26))||this.zh(),t),66)).Nj().Rj(this,ehH(this),t-Y1(this.zh()),e,n)},eUe.lh=function(e){var t,n;switch(e){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return(256&this.Bb)==0;case 3:return(512&this.Bb)==0;case 4:return 0!=this.s;case 5:return 1!=this.t;case 6:return this.$j();case 7:return(n=this.s)>=1;case 8:return!!this.r&&!this.q.e&&0==BX(this.q).i;case 9:return!!this.q&&!(this.r&&!this.q.e&&0==BX(this.q).i);case 10:return(this.Bb&eXt)==0;case 11:return(this.Bb&eJq)!=0;case 12:return(this.Bb&eH0)!=0;case 13:return null!=this.j;case 14:return null!=eOI(this);case 15:return(this.Bb&eJV)!=0;case 16:return(this.Bb&eUR)!=0;case 17:return!!z5(this)}return VP(this,e-Y1(this.zh()),ee2((t=Pp(eaS(this,16),26))||this.zh(),e))},eUe.sh=function(e,t){var n,r;switch(e){case 0:this.Ab||(this.Ab=new FQ(tm4,this,0,3)),eRT(this.Ab),this.Ab||(this.Ab=new FQ(tm4,this,0,3)),Y4(this.Ab,Pp(t,14));return;case 1:GD(this,Lq(t));return;case 2:eli(this,gN(LK(t)));return;case 3:els(this,gN(LK(t)));return;case 4:end(this,Pp(t,19).a);return;case 5:this.ok(Pp(t,19).a);return;case 8:eu2(this,Pp(t,138));return;case 9:(r=ew3(this,Pp(t,87),null))&&r.Fi();return;case 10:elF(this,gN(LK(t)));return;case 11:elU(this,gN(LK(t)));return;case 12:elY(this,gN(LK(t)));return;case 13:xi(this,Lq(t));return;case 15:elB(this,gN(LK(t)));return;case 16:elZ(this,gN(LK(t)));return}efL(this,e-Y1(this.zh()),ee2((n=Pp(eaS(this,16),26))||this.zh(),e),t)},eUe.zh=function(){return eBK(),tgY},eUe.Bh=function(e){var t,n;switch(e){case 0:this.Ab||(this.Ab=new FQ(tm4,this,0,3)),eRT(this.Ab);return;case 1:M4(this.Cb,88)&&eko(Zd(Pp(this.Cb,88)),4),er3(this,null);return;case 2:eli(this,!0);return;case 3:els(this,!0);return;case 4:end(this,0);return;case 5:this.ok(1);return;case 8:eu2(this,null);return;case 9:(n=ew3(this,null,null))&&n.Fi();return;case 10:elF(this,!0);return;case 11:elU(this,!1);return;case 12:elY(this,!1);return;case 13:this.i=null,erA(this,null);return;case 15:elB(this,!1);return;case 16:elZ(this,!1);return}ec5(this,e-Y1(this.zh()),ee2((t=Pp(eaS(this,16),26))||this.zh(),e))},eUe.Gh=function(){UH(QZ((eSp(),tvc),this)),evl(this),this.Bb|=1},eUe.Gj=function(){return this.f},eUe.zj=function(){return eOI(this)},eUe.Hj=function(){return z5(this)},eUe.Lj=function(){return null},eUe.pk=function(){return this.k},eUe.aj=function(){return this.n},eUe.Mj=function(){return eyD(this)},eUe.Nj=function(){var e,t,n,r,i,a,o,s,u;return this.p||((null==(n=z5(this)).i&&eNT(n),n.i).length,(r=this.Lj())&&Y1(z5(r)),e=(o=(i=evl(this)).Bj())?(1&o.i)!=0?o==tyE?e11:o==ty_?e16:o==tyT?e14:o==tyx?e13:o==tyS?e15:o==tyM?e18:o==tyk?e10:e12:o:null,t=eOI(this),s=i.zj(),efl(this),(this.Bb&eUR)!=0&&((a=ev1((eSp(),tvc),n))&&a!=this||(a=Wk(QZ(tvc,this))))?this.p=new k5(this,a):this.$j()?this.rk()?r?(this.Bb&eJV)!=0?e?this.sk()?this.p=new HS(47,e,this,r):this.p=new HS(5,e,this,r):this.sk()?this.p=new qc(46,this,r):this.p=new qc(4,this,r):e?this.sk()?this.p=new HS(49,e,this,r):this.p=new HS(7,e,this,r):this.sk()?this.p=new qc(48,this,r):this.p=new qc(6,this,r):(this.Bb&eJV)!=0?e?e==e1$?this.p=new Pe(50,e5M,this):this.sk()?this.p=new Pe(43,e,this):this.p=new Pe(1,e,this):this.sk()?this.p=new $F(42,this):this.p=new $F(0,this):e?e==e1$?this.p=new Pe(41,e5M,this):this.sk()?this.p=new Pe(45,e,this):this.p=new Pe(3,e,this):this.sk()?this.p=new $F(44,this):this.p=new $F(2,this):M4(i,148)?e==tgc?this.p=new $F(40,this):(512&this.Bb)!=0?(this.Bb&eJV)!=0?e?this.p=new Pe(9,e,this):this.p=new $F(8,this):e?this.p=new Pe(11,e,this):this.p=new $F(10,this):(this.Bb&eJV)!=0?e?this.p=new Pe(13,e,this):this.p=new $F(12,this):e?this.p=new Pe(15,e,this):this.p=new $F(14,this):r?(u=r.t)>1||-1==u?this.sk()?(this.Bb&eJV)!=0?e?this.p=new HS(25,e,this,r):this.p=new qc(24,this,r):e?this.p=new HS(27,e,this,r):this.p=new qc(26,this,r):(this.Bb&eJV)!=0?e?this.p=new HS(29,e,this,r):this.p=new qc(28,this,r):e?this.p=new HS(31,e,this,r):this.p=new qc(30,this,r):this.sk()?(this.Bb&eJV)!=0?e?this.p=new HS(33,e,this,r):this.p=new qc(32,this,r):e?this.p=new HS(35,e,this,r):this.p=new qc(34,this,r):(this.Bb&eJV)!=0?e?this.p=new HS(37,e,this,r):this.p=new qc(36,this,r):e?this.p=new HS(39,e,this,r):this.p=new qc(38,this,r):this.sk()?(this.Bb&eJV)!=0?e?this.p=new Pe(17,e,this):this.p=new $F(16,this):e?this.p=new Pe(19,e,this):this.p=new $F(18,this):(this.Bb&eJV)!=0?e?this.p=new Pe(21,e,this):this.p=new $F(20,this):e?this.p=new Pe(23,e,this):this.p=new $F(22,this):this.qk()?this.sk()?this.p=new Pt(Pp(i,26),this,r):this.p=new zl(Pp(i,26),this,r):M4(i,148)?e==tgc?this.p=new $F(40,this):(this.Bb&eJV)!=0?e?this.p=new j8(t,s,this,(edO(),o==ty_?tg2:o==tyE?tgX:o==tyS?tg3:o==tyT?tg0:o==tyx?tg1:o==tyM?tg6:o==tyk?tgJ:o==tyw?tgQ:tg4)):this.p=new HT(Pp(i,148),t,s,this):e?this.p=new j5(t,s,this,(edO(),o==ty_?tg2:o==tyE?tgX:o==tyS?tg3:o==tyT?tg0:o==tyx?tg1:o==tyM?tg6:o==tyk?tgJ:o==tyw?tgQ:tg4)):this.p=new Hx(Pp(i,148),t,s,this):this.rk()?r?(this.Bb&eJV)!=0?this.sk()?this.p=new Ps(Pp(i,26),this,r):this.p=new Po(Pp(i,26),this,r):this.sk()?this.p=new Pa(Pp(i,26),this,r):this.p=new Pn(Pp(i,26),this,r):(this.Bb&eJV)!=0?this.sk()?this.p=new Lx(Pp(i,26),this):this.p=new Lk(Pp(i,26),this):this.sk()?this.p=new LS(Pp(i,26),this):this.p=new LE(Pp(i,26),this):this.sk()?r?(this.Bb&eJV)!=0?this.p=new Pu(Pp(i,26),this,r):this.p=new Pr(Pp(i,26),this,r):(this.Bb&eJV)!=0?this.p=new LM(Pp(i,26),this):this.p=new LT(Pp(i,26),this):r?(this.Bb&eJV)!=0?this.p=new Pc(Pp(i,26),this,r):this.p=new Pi(Pp(i,26),this,r):(this.Bb&eJV)!=0?this.p=new LO(Pp(i,26),this):this.p=new jd(Pp(i,26),this)),this.p},eUe.Ij=function(){return(this.Bb&eXt)!=0},eUe.qk=function(){return!1},eUe.rk=function(){return!1},eUe.Jj=function(){return(this.Bb&eUR)!=0},eUe.Oj=function(){return eec(this)},eUe.sk=function(){return!1},eUe.Kj=function(){return(this.Bb&eJV)!=0},eUe.tk=function(e){this.k=e},eUe.Lh=function(e){GD(this,e)},eUe.Ib=function(){return eCR(this)},eUe.e=!1,eUe.n=0,Y6(eZ2,"EStructuralFeatureImpl",449),eTS(322,449,{105:1,92:1,90:1,34:1,147:1,191:1,56:1,170:1,66:1,108:1,472:1,49:1,97:1,322:1,150:1,449:1,284:1,114:1,115:1,677:1},mC),eUe._g=function(e,t,n){var r,i;switch(e){case 0:return this.Ab||(this.Ab=new FQ(tm4,this,0,3)),this.Ab;case 1:return this.zb;case 2:return OQ(),(256&this.Bb)!=0;case 3:return OQ(),(512&this.Bb)!=0;case 4:return ell(this.s);case 5:return ell(this.t);case 6:return OQ(),!!ek7(this);case 7:return OQ(),(i=this.s)>=1;case 8:if(t)return evl(this);return this.r;case 9:return this.q;case 10:return OQ(),(this.Bb&eXt)!=0;case 11:return OQ(),(this.Bb&eJq)!=0;case 12:return OQ(),(this.Bb&eH0)!=0;case 13:return this.j;case 14:return eOI(this);case 15:return OQ(),(this.Bb&eJV)!=0;case 16:return OQ(),(this.Bb&eUR)!=0;case 17:return z5(this);case 18:return OQ(),(this.Bb&eZ1)!=0;case 19:if(t)return eoe(this);return Xl(this)}return Qt(this,e-Y1((eBK(),tgw)),ee2((r=Pp(eaS(this,16),26))||tgw,e),t,n)},eUe.lh=function(e){var t,n;switch(e){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return(256&this.Bb)==0;case 3:return(512&this.Bb)==0;case 4:return 0!=this.s;case 5:return 1!=this.t;case 6:return ek7(this);case 7:return(n=this.s)>=1;case 8:return!!this.r&&!this.q.e&&0==BX(this.q).i;case 9:return!!this.q&&!(this.r&&!this.q.e&&0==BX(this.q).i);case 10:return(this.Bb&eXt)==0;case 11:return(this.Bb&eJq)!=0;case 12:return(this.Bb&eH0)!=0;case 13:return null!=this.j;case 14:return null!=eOI(this);case 15:return(this.Bb&eJV)!=0;case 16:return(this.Bb&eUR)!=0;case 17:return!!z5(this);case 18:return(this.Bb&eZ1)!=0;case 19:return!!Xl(this)}return VP(this,e-Y1((eBK(),tgw)),ee2((t=Pp(eaS(this,16),26))||tgw,e))},eUe.sh=function(e,t){var n,r;switch(e){case 0:this.Ab||(this.Ab=new FQ(tm4,this,0,3)),eRT(this.Ab),this.Ab||(this.Ab=new FQ(tm4,this,0,3)),Y4(this.Ab,Pp(t,14));return;case 1:GD(this,Lq(t));return;case 2:eli(this,gN(LK(t)));return;case 3:els(this,gN(LK(t)));return;case 4:end(this,Pp(t,19).a);return;case 5:yg(this,Pp(t,19).a);return;case 8:eu2(this,Pp(t,138));return;case 9:(r=ew3(this,Pp(t,87),null))&&r.Fi();return;case 10:elF(this,gN(LK(t)));return;case 11:elU(this,gN(LK(t)));return;case 12:elY(this,gN(LK(t)));return;case 13:xi(this,Lq(t));return;case 15:elB(this,gN(LK(t)));return;case 16:elZ(this,gN(LK(t)));return;case 18:elX(this,gN(LK(t)));return}efL(this,e-Y1((eBK(),tgw)),ee2((n=Pp(eaS(this,16),26))||tgw,e),t)},eUe.zh=function(){return eBK(),tgw},eUe.Bh=function(e){var t,n;switch(e){case 0:this.Ab||(this.Ab=new FQ(tm4,this,0,3)),eRT(this.Ab);return;case 1:M4(this.Cb,88)&&eko(Zd(Pp(this.Cb,88)),4),er3(this,null);return;case 2:eli(this,!0);return;case 3:els(this,!0);return;case 4:end(this,0);return;case 5:this.b=0,enh(this,1);return;case 8:eu2(this,null);return;case 9:(n=ew3(this,null,null))&&n.Fi();return;case 10:elF(this,!0);return;case 11:elU(this,!1);return;case 12:elY(this,!1);return;case 13:this.i=null,erA(this,null);return;case 15:elB(this,!1);return;case 16:elZ(this,!1);return;case 18:elX(this,!1);return}ec5(this,e-Y1((eBK(),tgw)),ee2((t=Pp(eaS(this,16),26))||tgw,e))},eUe.Gh=function(){eoe(this),UH(QZ((eSp(),tvc),this)),evl(this),this.Bb|=1},eUe.$j=function(){return ek7(this)},eUe.nk=function(e,t){return this.b=0,this.a=null,ecz(this,e,t)},eUe.ok=function(e){yg(this,e)},eUe.Ib=function(){var e;return(64&this.Db)!=0?eCR(this):(e=new O1(eCR(this)),e.a+=" (iD: ",yG(e,(this.Bb&eZ1)!=0),e.a+=")",e.a)},eUe.b=0,Y6(eZ2,"EAttributeImpl",322),eTS(351,438,{105:1,92:1,90:1,138:1,147:1,191:1,56:1,108:1,49:1,97:1,351:1,150:1,114:1,115:1,676:1}),eUe.uk=function(e){return e.Tg()==this},eUe.Qg=function(e){return egn(this,e)},eUe.Rg=function(e,t){this.w=null,this.Db=t<<16|255&this.Db,this.Cb=e},eUe._g=function(e,t,n){var r;switch(e){case 0:return this.Ab||(this.Ab=new FQ(tm4,this,0,3)),this.Ab;case 1:return this.zb;case 2:return null!=this.D?this.D:this.B;case 3:return em4(this);case 4:return this.zj();case 5:return this.F;case 6:if(t)return etP(this);return z6(this);case 7:return this.A||(this.A=new OS(tgs,this,7)),this.A}return Qt(this,e-Y1(this.zh()),ee2((r=Pp(eaS(this,16),26))||this.zh(),e),t,n)},eUe.hh=function(e,t,n){var r,i,a;switch(t){case 0:return this.Ab||(this.Ab=new FQ(tm4,this,0,3)),edF(this.Ab,e,n);case 6:return this.Cb&&(n=(i=this.Db>>16)>=0?egn(this,n):this.Cb.ih(this,-1-i,null,n)),eDg(this,e,6,n)}return(a=Pp(ee2((r=Pp(eaS(this,16),26))||this.zh(),t),66)).Nj().Qj(this,ehH(this),t-Y1(this.zh()),e,n)},eUe.jh=function(e,t,n){var r,i;switch(t){case 0:return this.Ab||(this.Ab=new FQ(tm4,this,0,3)),ep5(this.Ab,e,n);case 6:return eDg(this,null,6,n);case 7:return this.A||(this.A=new OS(tgs,this,7)),ep5(this.A,e,n)}return(i=Pp(ee2((r=Pp(eaS(this,16),26))||this.zh(),t),66)).Nj().Rj(this,ehH(this),t-Y1(this.zh()),e,n)},eUe.lh=function(e){var t;switch(e){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return null!=this.D&&this.D==this.F;case 3:return!!em4(this);case 4:return null!=this.zj();case 5:return null!=this.F&&this.F!=this.D&&this.F!=this.B;case 6:return!!z6(this);case 7:return!!this.A&&0!=this.A.i}return VP(this,e-Y1(this.zh()),ee2((t=Pp(eaS(this,16),26))||this.zh(),e))},eUe.sh=function(e,t){var n;switch(e){case 0:this.Ab||(this.Ab=new FQ(tm4,this,0,3)),eRT(this.Ab),this.Ab||(this.Ab=new FQ(tm4,this,0,3)),Y4(this.Ab,Pp(t,14));return;case 1:GN(this,Lq(t));return;case 2:TF(this,Lq(t));return;case 5:eji(this,Lq(t));return;case 7:this.A||(this.A=new OS(tgs,this,7)),eRT(this.A),this.A||(this.A=new OS(tgs,this,7)),Y4(this.A,Pp(t,14));return}efL(this,e-Y1(this.zh()),ee2((n=Pp(eaS(this,16),26))||this.zh(),e),t)},eUe.zh=function(){return eBK(),tgE},eUe.Bh=function(e){var t;switch(e){case 0:this.Ab||(this.Ab=new FQ(tm4,this,0,3)),eRT(this.Ab);return;case 1:M4(this.Cb,179)&&(Pp(this.Cb,179).tb=null),er3(this,null);return;case 2:euc(this,null),enp(this,this.D);return;case 5:eji(this,null);return;case 7:this.A||(this.A=new OS(tgs,this,7)),eRT(this.A);return}ec5(this,e-Y1(this.zh()),ee2((t=Pp(eaS(this,16),26))||this.zh(),e))},eUe.yj=function(){var e;return -1==this.G&&(this.G=(e=etP(this))?ebv(e.Mh(),this):-1),this.G},eUe.zj=function(){return null},eUe.Aj=function(){return etP(this)},eUe.vk=function(){return this.v},eUe.Bj=function(){return em4(this)},eUe.Cj=function(){return null!=this.D?this.D:this.B},eUe.Dj=function(){return this.F},eUe.wj=function(e){return eNc(this,e)},eUe.wk=function(e){this.v=e},eUe.xk=function(e){eia(this,e)},eUe.yk=function(e){this.C=e},eUe.Lh=function(e){GN(this,e)},eUe.Ib=function(){return edb(this)},eUe.C=null,eUe.D=null,eUe.G=-1,Y6(eZ2,"EClassifierImpl",351),eTS(88,351,{105:1,92:1,90:1,26:1,138:1,147:1,191:1,56:1,108:1,49:1,97:1,88:1,351:1,150:1,473:1,114:1,115:1,676:1},c0),eUe.uk=function(e){return C7(this,e.Tg())},eUe._g=function(e,t,n){var r;switch(e){case 0:return this.Ab||(this.Ab=new FQ(tm4,this,0,3)),this.Ab;case 1:return this.zb;case 2:return null!=this.D?this.D:this.B;case 3:return em4(this);case 4:return null;case 5:return this.F;case 6:if(t)return etP(this);return z6(this);case 7:return this.A||(this.A=new OS(tgs,this,7)),this.A;case 8:return OQ(),(256&this.Bb)!=0;case 9:return OQ(),(512&this.Bb)!=0;case 10:return $E(this);case 11:return this.q||(this.q=new FQ(tgi,this,11,10)),this.q;case 12:return ePk(this);case 13:return ePl(this);case 14:return ePl(this),this.r;case 15:return ePk(this),this.k;case 16:return eSD(this);case 17:return eNQ(this);case 18:return eNT(this);case 19:return eOg(this);case 20:return ePk(this),this.o;case 21:return this.s||(this.s=new FQ(tm5,this,21,17)),this.s;case 22:return qt(this);case 23:return eCt(this)}return Qt(this,e-Y1((eBK(),tg_)),ee2((r=Pp(eaS(this,16),26))||tg_,e),t,n)},eUe.hh=function(e,t,n){var r,i,a;switch(t){case 0:return this.Ab||(this.Ab=new FQ(tm4,this,0,3)),edF(this.Ab,e,n);case 6:return this.Cb&&(n=(i=this.Db>>16)>=0?egn(this,n):this.Cb.ih(this,-1-i,null,n)),eDg(this,e,6,n);case 11:return this.q||(this.q=new FQ(tgi,this,11,10)),edF(this.q,e,n);case 21:return this.s||(this.s=new FQ(tm5,this,21,17)),edF(this.s,e,n)}return(a=Pp(ee2((r=Pp(eaS(this,16),26))||(eBK(),tg_),t),66)).Nj().Qj(this,ehH(this),t-Y1((eBK(),tg_)),e,n)},eUe.jh=function(e,t,n){var r,i;switch(t){case 0:return this.Ab||(this.Ab=new FQ(tm4,this,0,3)),ep5(this.Ab,e,n);case 6:return eDg(this,null,6,n);case 7:return this.A||(this.A=new OS(tgs,this,7)),ep5(this.A,e,n);case 11:return this.q||(this.q=new FQ(tgi,this,11,10)),ep5(this.q,e,n);case 21:return this.s||(this.s=new FQ(tm5,this,21,17)),ep5(this.s,e,n);case 22:return ep5(qt(this),e,n)}return(i=Pp(ee2((r=Pp(eaS(this,16),26))||(eBK(),tg_),t),66)).Nj().Rj(this,ehH(this),t-Y1((eBK(),tg_)),e,n)},eUe.lh=function(e){var t;switch(e){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return null!=this.D&&this.D==this.F;case 3:return!!em4(this);case 4:return!1;case 5:return null!=this.F&&this.F!=this.D&&this.F!=this.B;case 6:return!!z6(this);case 7:return!!this.A&&0!=this.A.i;case 8:return(256&this.Bb)!=0;case 9:return(512&this.Bb)!=0;case 10:return!!this.u&&0!=qt(this.u.a).i&&!(this.n&&ebV(this.n));case 11:return!!this.q&&0!=this.q.i;case 12:return 0!=ePk(this).i;case 13:return 0!=ePl(this).i;case 14:return ePl(this),0!=this.r.i;case 15:return ePk(this),0!=this.k.i;case 16:return 0!=eSD(this).i;case 17:return 0!=eNQ(this).i;case 18:return 0!=eNT(this).i;case 19:return 0!=eOg(this).i;case 20:return ePk(this),!!this.o;case 21:return!!this.s&&0!=this.s.i;case 22:return!!this.n&&ebV(this.n);case 23:return 0!=eCt(this).i}return VP(this,e-Y1((eBK(),tg_)),ee2((t=Pp(eaS(this,16),26))||tg_,e))},eUe.oh=function(e){var t;return(t=null==this.i||this.q&&0!=this.q.i?null:eAh(this,e))||eF8(this,e)},eUe.sh=function(e,t){var n;switch(e){case 0:this.Ab||(this.Ab=new FQ(tm4,this,0,3)),eRT(this.Ab),this.Ab||(this.Ab=new FQ(tm4,this,0,3)),Y4(this.Ab,Pp(t,14));return;case 1:GN(this,Lq(t));return;case 2:TF(this,Lq(t));return;case 5:eji(this,Lq(t));return;case 7:this.A||(this.A=new OS(tgs,this,7)),eRT(this.A),this.A||(this.A=new OS(tgs,this,7)),Y4(this.A,Pp(t,14));return;case 8:ela(this,gN(LK(t)));return;case 9:elu(this,gN(LK(t)));return;case 10:eRP($E(this)),Y4($E(this),Pp(t,14));return;case 11:this.q||(this.q=new FQ(tgi,this,11,10)),eRT(this.q),this.q||(this.q=new FQ(tgi,this,11,10)),Y4(this.q,Pp(t,14));return;case 21:this.s||(this.s=new FQ(tm5,this,21,17)),eRT(this.s),this.s||(this.s=new FQ(tm5,this,21,17)),Y4(this.s,Pp(t,14));return;case 22:eRT(qt(this)),Y4(qt(this),Pp(t,14));return}efL(this,e-Y1((eBK(),tg_)),ee2((n=Pp(eaS(this,16),26))||tg_,e),t)},eUe.zh=function(){return eBK(),tg_},eUe.Bh=function(e){var t;switch(e){case 0:this.Ab||(this.Ab=new FQ(tm4,this,0,3)),eRT(this.Ab);return;case 1:M4(this.Cb,179)&&(Pp(this.Cb,179).tb=null),er3(this,null);return;case 2:euc(this,null),enp(this,this.D);return;case 5:eji(this,null);return;case 7:this.A||(this.A=new OS(tgs,this,7)),eRT(this.A);return;case 8:ela(this,!1);return;case 9:elu(this,!1);return;case 10:this.u&&eRP(this.u);return;case 11:this.q||(this.q=new FQ(tgi,this,11,10)),eRT(this.q);return;case 21:this.s||(this.s=new FQ(tm5,this,21,17)),eRT(this.s);return;case 22:this.n&&eRT(this.n);return}ec5(this,e-Y1((eBK(),tg_)),ee2((t=Pp(eaS(this,16),26))||tg_,e))},eUe.Gh=function(){var e,t;if(ePk(this),ePl(this),eSD(this),eNQ(this),eNT(this),eOg(this),eCt(this),ZG(Pw(Zd(this))),this.s)for(e=0,t=this.s.i;e=0;--t)etj(this,t);return edj(this,e)},eUe.Xj=function(){eRT(this)},eUe.oi=function(e,t){return env(this,e,t)},Y6(eJz,"EcoreEList",622),eTS(496,622,eJ8,PK),eUe.ai=function(){return!1},eUe.aj=function(){return this.c},eUe.bj=function(){return!1},eUe.Fk=function(){return!0},eUe.hi=function(){return!0},eUe.li=function(e,t){return t},eUe.ni=function(){return!1},eUe.c=0,Y6(eJz,"EObjectEList",496),eTS(85,496,eJ8,O_),eUe.bj=function(){return!0},eUe.Dk=function(){return!1},eUe.rk=function(){return!0},Y6(eJz,"EObjectContainmentEList",85),eTS(545,85,eJ8,OE),eUe.ci=function(){this.b=!0},eUe.fj=function(){return this.b},eUe.Xj=function(){var e;eRT(this),TO(this.e)?(e=this.b,this.b=!1,eam(this.e,new ZB(this.e,2,this.c,e,!1))):this.b=!1},eUe.b=!1,Y6(eJz,"EObjectContainmentEList/Unsettable",545),eTS(1140,545,eJ8,j4),eUe.ii=function(e,t){var n,r;return n=Pp(elR(this,e,t),87),TO(this.e)&&bz(this,new JU(this.a,7,(eBK(),tgS),ell(t),M4(r=n.c,88)?Pp(r,26):tgI,e)),n},eUe.jj=function(e,t){return edB(this,Pp(e,87),t)},eUe.kj=function(e,t){return edY(this,Pp(e,87),t)},eUe.lj=function(e,t,n){return eyl(this,Pp(e,87),Pp(t,87),n)},eUe.Zi=function(e,t,n,r,i){switch(e){case 3:return Gt(this,e,t,n,r,this.i>1);case 5:return Gt(this,e,t,n,r,this.i-Pp(n,15).gc()>0);default:return new Q$(this.e,e,this.c,t,n,r,!0)}},eUe.ij=function(){return!0},eUe.fj=function(){return ebV(this)},eUe.Xj=function(){eRT(this)},Y6(eZ2,"EClassImpl/1",1140),eTS(1154,1153,eJS),eUe.ui=function(e){var t,n,r,i,a,o,s;if(8!=(n=e.xi())){if(0==(r=epM(e)))switch(n){case 1:case 9:null!=(s=e.Bi())&&((t=Zd(Pp(s,473))).c||(t.c=new sk),eeu(t.c,e.Ai())),null!=(o=e.zi())&&(1&(i=Pp(o,473)).Bb)==0&&((t=Zd(i)).c||(t.c=new sk),JL(t.c,Pp(e.Ai(),26)));break;case 3:null!=(o=e.zi())&&(1&(i=Pp(o,473)).Bb)==0&&((t=Zd(i)).c||(t.c=new sk),JL(t.c,Pp(e.Ai(),26)));break;case 5:if(null!=(o=e.zi()))for(a=Pp(o,14).Kc();a.Ob();)(1&(i=Pp(a.Pb(),473)).Bb)==0&&((t=Zd(i)).c||(t.c=new sk),JL(t.c,Pp(e.Ai(),26)));break;case 4:null!=(s=e.Bi())&&(1&(i=Pp(s,473)).Bb)==0&&((t=Zd(i)).c||(t.c=new sk),eeu(t.c,e.Ai()));break;case 6:if(null!=(s=e.Bi()))for(a=Pp(s,14).Kc();a.Ob();)(1&(i=Pp(a.Pb(),473)).Bb)==0&&((t=Zd(i)).c||(t.c=new sk),eeu(t.c,e.Ai()))}this.Hk(r)}},eUe.Hk=function(e){eCO(this,e)},eUe.b=63,Y6(eZ2,"ESuperAdapter",1154),eTS(1155,1154,eJS,pR),eUe.Hk=function(e){eko(this,e)},Y6(eZ2,"EClassImpl/10",1155),eTS(1144,696,eJ8),eUe.Vh=function(e,t){return ew2(this,e,t)},eUe.Wh=function(e){return emp(this,e)},eUe.Xh=function(e,t){ecW(this,e,t)},eUe.Yh=function(e){Zz(this,e)},eUe.pi=function(e){return J6(this,e)},eUe.mi=function(e,t){return ees(this,e,t)},eUe.lk=function(e,t){throw p7(new bO)},eUe.Zh=function(){return new AY(this)},eUe.$h=function(){return new AB(this)},eUe._h=function(e){return enH(this,e)},eUe.mk=function(e,t){throw p7(new bO)},eUe.Wj=function(e){return this},eUe.fj=function(){return 0!=this.i},eUe.Wb=function(e){throw p7(new bO)},eUe.Xj=function(){throw p7(new bO)},Y6(eJz,"EcoreEList/UnmodifiableEList",1144),eTS(319,1144,eJ8,xQ),eUe.ni=function(){return!1},Y6(eJz,"EcoreEList/UnmodifiableEList/FastCompare",319),eTS(1147,319,eJ8,eo9),eUe.Xc=function(e){var t,n,r;if(M4(e,170)&&-1!=(n=(t=Pp(e,170)).aj())){for(r=this.i;n4){if(!this.wj(e))return!1;if(this.rk()){if(s=(n=(r=Pp(e,49)).Ug())==this.b&&(this.Dk()?r.Og(r.Vg(),Pp(ee2($S(this.b),this.aj()).Yj(),26).Bj())==ebY(Pp(ee2($S(this.b),this.aj()),18)).n:-1-r.Vg()==this.aj()),this.Ek()&&!s&&!n&&r.Zg()){for(i=0;i1||-1==r)},eUe.Dk=function(){var e,t,n;return t=ee2($S(this.b),this.aj()),!!M4(t,99)&&!!(n=ebY(e=Pp(t,18)))},eUe.Ek=function(){var e,t;return t=ee2($S(this.b),this.aj()),!!M4(t,99)&&((e=Pp(t,18)).Bb&eH3)!=0},eUe.Xc=function(e){var t,n,r,i;if((r=this.Qi(e))>=0)return r;if(this.Fk()){for(n=0,i=this.Vi();n=0;--e)ejc(this,e,this.Oi(e));return this.Wi()},eUe.Qc=function(e){var t;if(this.Ek())for(t=this.Vi()-1;t>=0;--t)ejc(this,t,this.Oi(t));return this.Xi(e)},eUe.Xj=function(){eRP(this)},eUe.oi=function(e,t){return J5(this,e,t)},Y6(eJz,"DelegatingEcoreEList",742),eTS(1150,742,eQn,Cw),eUe.Hi=function(e,t){LP(this,e,Pp(t,26))},eUe.Ii=function(e){Mt(this,Pp(e,26))},eUe.Oi=function(e){var t,n;return n=(t=Pp(etj(qt(this.a),e),87)).c,M4(n,88)?Pp(n,26):(eBK(),tgI)},eUe.Ti=function(e){var t,n;return n=(t=Pp(eLN(qt(this.a),e),87)).c,M4(n,88)?Pp(n,26):(eBK(),tgI)},eUe.Ui=function(e,t){return emm(this,e,Pp(t,26))},eUe.ai=function(){return!1},eUe.Zi=function(e,t,n,r,i){return null},eUe.Ji=function(){return new pF(this)},eUe.Ki=function(){eRT(qt(this.a))},eUe.Li=function(e){return ec7(this,e)},eUe.Mi=function(e){var t,n;for(n=e.Kc();n.Ob();)if(!ec7(this,t=n.Pb()))return!1;return!0},eUe.Ni=function(e){var t,n,r;if(M4(e,15)&&(r=Pp(e,15)).gc()==qt(this.a).i){for(t=r.Kc(),n=new Ow(this);t.Ob();)if(xc(t.Pb())!==xc(epH(n)))return!1;return!0}return!1},eUe.Pi=function(){var e,t,n,r,i;for(n=1,t=new Ow(qt(this.a));t.e!=t.i.gc();)e=Pp(epH(t),87),r=M4(i=e.c,88)?Pp(i,26):(eBK(),tgI),n=31*n+(r?Ao(r):0);return n},eUe.Qi=function(e){var t,n,r,i;for(r=0,n=new Ow(qt(this.a));n.e!=n.i.gc();){if(t=Pp(epH(n),87),xc(e)===xc(M4(i=t.c,88)?Pp(i,26):(eBK(),tgI)))return r;++r}return -1},eUe.Ri=function(){return 0==qt(this.a).i},eUe.Si=function(){return null},eUe.Vi=function(){return qt(this.a).i},eUe.Wi=function(){var e,t,n,r,i,a;for(a=qt(this.a).i,i=Je(e1R,eUp,1,a,5,1),n=0,t=new Ow(qt(this.a));t.e!=t.i.gc();)e=Pp(epH(t),87),i[n++]=M4(r=e.c,88)?Pp(r,26):(eBK(),tgI);return i},eUe.Xi=function(e){var t,n,r,i,a,o,s;for(s=qt(this.a).i,e.lengths&&Bc(e,s,null),r=0,n=new Ow(qt(this.a));n.e!=n.i.gc();)t=Pp(epH(n),87),a=M4(o=t.c,88)?Pp(o,26):(eBK(),tgI),Bc(e,r++,a);return e},eUe.Yi=function(){var e,t,n,r,i;for(i=new vs,i.a+="[",e=qt(this.a),t=0,r=qt(this.a).i;t>16)>=0?egn(this,n):this.Cb.ih(this,-1-i,null,n)),eDg(this,e,6,n);case 9:return this.a||(this.a=new FQ(tgn,this,9,5)),edF(this.a,e,n)}return(a=Pp(ee2((r=Pp(eaS(this,16),26))||(eBK(),tgx),t),66)).Nj().Qj(this,ehH(this),t-Y1((eBK(),tgx)),e,n)},eUe.jh=function(e,t,n){var r,i;switch(t){case 0:return this.Ab||(this.Ab=new FQ(tm4,this,0,3)),ep5(this.Ab,e,n);case 6:return eDg(this,null,6,n);case 7:return this.A||(this.A=new OS(tgs,this,7)),ep5(this.A,e,n);case 9:return this.a||(this.a=new FQ(tgn,this,9,5)),ep5(this.a,e,n)}return(i=Pp(ee2((r=Pp(eaS(this,16),26))||(eBK(),tgx),t),66)).Nj().Rj(this,ehH(this),t-Y1((eBK(),tgx)),e,n)},eUe.lh=function(e){var t;switch(e){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return null!=this.D&&this.D==this.F;case 3:return!!em4(this);case 4:return!!euS(this);case 5:return null!=this.F&&this.F!=this.D&&this.F!=this.B;case 6:return!!z6(this);case 7:return!!this.A&&0!=this.A.i;case 8:return(256&this.Bb)==0;case 9:return!!this.a&&0!=this.a.i}return VP(this,e-Y1((eBK(),tgx)),ee2((t=Pp(eaS(this,16),26))||tgx,e))},eUe.sh=function(e,t){var n;switch(e){case 0:this.Ab||(this.Ab=new FQ(tm4,this,0,3)),eRT(this.Ab),this.Ab||(this.Ab=new FQ(tm4,this,0,3)),Y4(this.Ab,Pp(t,14));return;case 1:GN(this,Lq(t));return;case 2:TF(this,Lq(t));return;case 5:eji(this,Lq(t));return;case 7:this.A||(this.A=new OS(tgs,this,7)),eRT(this.A),this.A||(this.A=new OS(tgs,this,7)),Y4(this.A,Pp(t,14));return;case 8:elo(this,gN(LK(t)));return;case 9:this.a||(this.a=new FQ(tgn,this,9,5)),eRT(this.a),this.a||(this.a=new FQ(tgn,this,9,5)),Y4(this.a,Pp(t,14));return}efL(this,e-Y1((eBK(),tgx)),ee2((n=Pp(eaS(this,16),26))||tgx,e),t)},eUe.zh=function(){return eBK(),tgx},eUe.Bh=function(e){var t;switch(e){case 0:this.Ab||(this.Ab=new FQ(tm4,this,0,3)),eRT(this.Ab);return;case 1:M4(this.Cb,179)&&(Pp(this.Cb,179).tb=null),er3(this,null);return;case 2:euc(this,null),enp(this,this.D);return;case 5:eji(this,null);return;case 7:this.A||(this.A=new OS(tgs,this,7)),eRT(this.A);return;case 8:elo(this,!0);return;case 9:this.a||(this.a=new FQ(tgn,this,9,5)),eRT(this.a);return}ec5(this,e-Y1((eBK(),tgx)),ee2((t=Pp(eaS(this,16),26))||tgx,e))},eUe.Gh=function(){var e,t;if(this.a)for(e=0,t=this.a.i;e>16==5?Pp(this.Cb,671):null}return Qt(this,e-Y1((eBK(),tgT)),ee2((r=Pp(eaS(this,16),26))||tgT,e),t,n)},eUe.hh=function(e,t,n){var r,i,a;switch(t){case 0:return this.Ab||(this.Ab=new FQ(tm4,this,0,3)),edF(this.Ab,e,n);case 5:return this.Cb&&(n=(i=this.Db>>16)>=0?eg3(this,n):this.Cb.ih(this,-1-i,null,n)),eDg(this,e,5,n)}return(a=Pp(ee2((r=Pp(eaS(this,16),26))||(eBK(),tgT),t),66)).Nj().Qj(this,ehH(this),t-Y1((eBK(),tgT)),e,n)},eUe.jh=function(e,t,n){var r,i;switch(t){case 0:return this.Ab||(this.Ab=new FQ(tm4,this,0,3)),ep5(this.Ab,e,n);case 5:return eDg(this,null,5,n)}return(i=Pp(ee2((r=Pp(eaS(this,16),26))||(eBK(),tgT),t),66)).Nj().Rj(this,ehH(this),t-Y1((eBK(),tgT)),e,n)},eUe.lh=function(e){var t;switch(e){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return 0!=this.d;case 3:return!!this.b;case 4:return null!=this.c;case 5:return!!(this.Db>>16==5?Pp(this.Cb,671):null)}return VP(this,e-Y1((eBK(),tgT)),ee2((t=Pp(eaS(this,16),26))||tgT,e))},eUe.sh=function(e,t){var n;switch(e){case 0:this.Ab||(this.Ab=new FQ(tm4,this,0,3)),eRT(this.Ab),this.Ab||(this.Ab=new FQ(tm4,this,0,3)),Y4(this.Ab,Pp(t,14));return;case 1:er3(this,Lq(t));return;case 2:enf(this,Pp(t,19).a);return;case 3:exP(this,Pp(t,1940));return;case 4:erc(this,Lq(t));return}efL(this,e-Y1((eBK(),tgT)),ee2((n=Pp(eaS(this,16),26))||tgT,e),t)},eUe.zh=function(){return eBK(),tgT},eUe.Bh=function(e){var t;switch(e){case 0:this.Ab||(this.Ab=new FQ(tm4,this,0,3)),eRT(this.Ab);return;case 1:er3(this,null);return;case 2:enf(this,0);return;case 3:exP(this,null);return;case 4:erc(this,null);return}ec5(this,e-Y1((eBK(),tgT)),ee2((t=Pp(eaS(this,16),26))||tgT,e))},eUe.Ib=function(){var e;return null==(e=this.c)?this.zb:e},eUe.b=null,eUe.c=null,eUe.d=0,Y6(eZ2,"EEnumLiteralImpl",573);var tgl=RL(eZ2,"EFactoryImpl/InternalEDateTimeFormat");eTS(489,1,{2015:1},pY),Y6(eZ2,"EFactoryImpl/1ClientInternalEDateTimeFormat",489),eTS(241,115,{105:1,92:1,90:1,87:1,56:1,108:1,49:1,97:1,241:1,114:1,115:1},p6),eUe.Sg=function(e,t,n){var r;return n=eDg(this,e,t,n),this.e&&M4(e,170)&&(r=eOl(this,this.e))!=this.c&&(n=eFr(this,r,n)),n},eUe._g=function(e,t,n){var r;switch(e){case 0:return this.f;case 1:return this.d||(this.d=new O_(tgr,this,1)),this.d;case 2:if(t)return eD6(this);return this.c;case 3:return this.b;case 4:return this.e;case 5:if(t)return eb1(this);return this.a}return Qt(this,e-Y1((eBK(),tgO)),ee2((r=Pp(eaS(this,16),26))||tgO,e),t,n)},eUe.jh=function(e,t,n){var r,i;switch(t){case 0:return ecg(this,null,n);case 1:return this.d||(this.d=new O_(tgr,this,1)),ep5(this.d,e,n);case 3:return ecm(this,null,n)}return(i=Pp(ee2((r=Pp(eaS(this,16),26))||(eBK(),tgO),t),66)).Nj().Rj(this,ehH(this),t-Y1((eBK(),tgO)),e,n)},eUe.lh=function(e){var t;switch(e){case 0:return!!this.f;case 1:return!!this.d&&0!=this.d.i;case 2:return!!this.c;case 3:return!!this.b;case 4:return!!this.e;case 5:return!!this.a}return VP(this,e-Y1((eBK(),tgO)),ee2((t=Pp(eaS(this,16),26))||tgO,e))},eUe.sh=function(e,t){var n;switch(e){case 0:eyK(this,Pp(t,87));return;case 1:this.d||(this.d=new O_(tgr,this,1)),eRT(this.d),this.d||(this.d=new O_(tgr,this,1)),Y4(this.d,Pp(t,14));return;case 3:eyW(this,Pp(t,87));return;case 4:e_U(this,Pp(t,836));return;case 5:etV(this,Pp(t,138));return}efL(this,e-Y1((eBK(),tgO)),ee2((n=Pp(eaS(this,16),26))||tgO,e),t)},eUe.zh=function(){return eBK(),tgO},eUe.Bh=function(e){var t;switch(e){case 0:eyK(this,null);return;case 1:this.d||(this.d=new O_(tgr,this,1)),eRT(this.d);return;case 3:eyW(this,null);return;case 4:e_U(this,null);return;case 5:etV(this,null);return}ec5(this,e-Y1((eBK(),tgO)),ee2((t=Pp(eaS(this,16),26))||tgO,e))},eUe.Ib=function(){var e;return e=new O0(eMT(this)),e.a+=" (expression: ",ePB(this,e),e.a+=")",e.a},Y6(eZ2,"EGenericTypeImpl",241),eTS(1969,1964,eQr),eUe.Xh=function(e,t){Ch(this,e,t)},eUe.lk=function(e,t){return Ch(this,this.gc(),e),t},eUe.pi=function(e){return ep3(this.Gi(),e)},eUe.Zh=function(){return this.$h()},eUe.Gi=function(){return new pV(this)},eUe.$h=function(){return this._h(0)},eUe._h=function(e){return this.Gi().Zc(e)},eUe.mk=function(e,t){return eds(this,e,!0),t},eUe.ii=function(e,t){var n,r;return r=egW(this,t),(n=this.Zc(e)).Rb(r),r},eUe.ji=function(e,t){var n;eds(this,t,!0),(n=this.Zc(e)).Rb(t)},Y6(eJz,"AbstractSequentialInternalEList",1969),eTS(486,1969,eQr,AA),eUe.pi=function(e){return ep3(this.Gi(),e)},eUe.Zh=function(){return null==this.b?(_2(),_2(),tgq):this.Jk()},eUe.Gi=function(){return new x0(this.a,this.b)},eUe.$h=function(){return null==this.b?(_2(),_2(),tgq):this.Jk()},eUe._h=function(e){var t,n;if(null==this.b){if(e<0||e>1)throw p7(new gE(eJT+e+", size=0"));return _2(),_2(),tgq}for(t=0,n=this.Jk();t0;)if(t=this.c[--this.d],(!this.e||t.Gj()!=e5d||0!=t.aj())&&(!this.Mk()||this.b.mh(t))){if(a=this.b.bh(t,this.Lk()),this.f=(_4(),Pp(t,66).Oj()),this.f||t.$j()){if(this.Lk()?(r=Pp(a,15),this.k=r):(r=Pp(a,69),this.k=this.j=r),M4(this.k,54)?(this.o=this.k.gc(),this.n=this.o):this.p=this.j?this.j._h(this.k.gc()):this.k.Zc(this.k.gc()),this.p?eSs(this,this.p):eSQ(this))return i=this.p?this.p.Ub():this.j?this.j.pi(--this.n):this.k.Xb(--this.n),this.f?((e=Pp(i,72)).ak(),n=e.dd(),this.i=n):(n=i,this.i=n),this.g=-3,!0}else if(null!=a)return this.k=null,this.p=null,n=a,this.i=n,this.g=-2,!0}return this.k=null,this.p=null,this.g=-1,!1}},eUe.Pb=function(){return eaO(this)},eUe.Tb=function(){return this.a},eUe.Ub=function(){var e;if(this.g<-1||this.Sb())return--this.a,this.g=0,e=this.i,this.Sb(),e;throw p7(new bC)},eUe.Vb=function(){return this.a-1},eUe.Qb=function(){throw p7(new bO)},eUe.Lk=function(){return!1},eUe.Wb=function(e){throw p7(new bO)},eUe.Mk=function(){return!0},eUe.a=0,eUe.d=0,eUe.f=!1,eUe.g=0,eUe.n=0,eUe.o=0,Y6(eJz,"EContentsEList/FeatureIteratorImpl",279),eTS(697,279,eQi,Lv),eUe.Lk=function(){return!0},Y6(eJz,"EContentsEList/ResolvingFeatureIteratorImpl",697),eTS(1157,697,eQi,Lw),eUe.Mk=function(){return!1},Y6(eZ2,"ENamedElementImpl/1/1",1157),eTS(1158,279,eQi,Ly),eUe.Mk=function(){return!1},Y6(eZ2,"ENamedElementImpl/1/2",1158),eTS(36,143,eJx,qo,qs,FX,JB,Q$,ZB,en_,WX,enE,WJ,Zj,WQ,enx,W1,ZF,W0,enS,W2,FJ,JU,H0,enk,W3,ZY,W4),eUe._i=function(){return JA(this)},eUe.gj=function(){var e;return(e=JA(this))?e.zj():null},eUe.yi=function(e){return -1==this.b&&this.a&&(this.b=this.c.Xg(this.a.aj(),this.a.Gj())),this.c.Og(this.b,e)},eUe.Ai=function(){return this.c},eUe.hj=function(){var e;return!!(e=JA(this))&&e.Kj()},eUe.b=-1,Y6(eZ2,"ENotificationImpl",36),eTS(399,284,{105:1,92:1,90:1,147:1,191:1,56:1,59:1,108:1,472:1,49:1,97:1,150:1,399:1,284:1,114:1,115:1},mD),eUe.Qg=function(e){return evu(this,e)},eUe._g=function(e,t,n){var r,i,a;switch(e){case 0:return this.Ab||(this.Ab=new FQ(tm4,this,0,3)),this.Ab;case 1:return this.zb;case 2:return OQ(),(256&this.Bb)!=0;case 3:return OQ(),(512&this.Bb)!=0;case 4:return ell(this.s);case 5:return ell(this.t);case 6:return OQ(),(a=this.t)>1||-1==a;case 7:return OQ(),(i=this.s)>=1;case 8:if(t)return evl(this);return this.r;case 9:return this.q;case 10:return this.Db>>16==10?Pp(this.Cb,26):null;case 11:return this.d||(this.d=new OS(tgs,this,11)),this.d;case 12:return this.c||(this.c=new FQ(tga,this,12,10)),this.c;case 13:return this.a||(this.a=new C_(this,this)),this.a;case 14:return QX(this)}return Qt(this,e-Y1((eBK(),tgD)),ee2((r=Pp(eaS(this,16),26))||tgD,e),t,n)},eUe.hh=function(e,t,n){var r,i,a;switch(t){case 0:return this.Ab||(this.Ab=new FQ(tm4,this,0,3)),edF(this.Ab,e,n);case 10:return this.Cb&&(n=(i=this.Db>>16)>=0?evu(this,n):this.Cb.ih(this,-1-i,null,n)),eDg(this,e,10,n);case 12:return this.c||(this.c=new FQ(tga,this,12,10)),edF(this.c,e,n)}return(a=Pp(ee2((r=Pp(eaS(this,16),26))||(eBK(),tgD),t),66)).Nj().Qj(this,ehH(this),t-Y1((eBK(),tgD)),e,n)},eUe.jh=function(e,t,n){var r,i;switch(t){case 0:return this.Ab||(this.Ab=new FQ(tm4,this,0,3)),ep5(this.Ab,e,n);case 9:return Y3(this,n);case 10:return eDg(this,null,10,n);case 11:return this.d||(this.d=new OS(tgs,this,11)),ep5(this.d,e,n);case 12:return this.c||(this.c=new FQ(tga,this,12,10)),ep5(this.c,e,n);case 14:return ep5(QX(this),e,n)}return(i=Pp(ee2((r=Pp(eaS(this,16),26))||(eBK(),tgD),t),66)).Nj().Rj(this,ehH(this),t-Y1((eBK(),tgD)),e,n)},eUe.lh=function(e){var t,n,r;switch(e){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return(256&this.Bb)==0;case 3:return(512&this.Bb)==0;case 4:return 0!=this.s;case 5:return 1!=this.t;case 6:return(r=this.t)>1||-1==r;case 7:return(n=this.s)>=1;case 8:return!!this.r&&!this.q.e&&0==BX(this.q).i;case 9:return!!this.q&&!(this.r&&!this.q.e&&0==BX(this.q).i);case 10:return!!(this.Db>>16==10?Pp(this.Cb,26):null);case 11:return!!this.d&&0!=this.d.i;case 12:return!!this.c&&0!=this.c.i;case 13:return!!this.a&&0!=QX(this.a.a).i&&!(this.b&&ebq(this.b));case 14:return!!this.b&&ebq(this.b)}return VP(this,e-Y1((eBK(),tgD)),ee2((t=Pp(eaS(this,16),26))||tgD,e))},eUe.sh=function(e,t){var n,r;switch(e){case 0:this.Ab||(this.Ab=new FQ(tm4,this,0,3)),eRT(this.Ab),this.Ab||(this.Ab=new FQ(tm4,this,0,3)),Y4(this.Ab,Pp(t,14));return;case 1:er3(this,Lq(t));return;case 2:eli(this,gN(LK(t)));return;case 3:els(this,gN(LK(t)));return;case 4:end(this,Pp(t,19).a);return;case 5:enh(this,Pp(t,19).a);return;case 8:eu2(this,Pp(t,138));return;case 9:(r=ew3(this,Pp(t,87),null))&&r.Fi();return;case 11:this.d||(this.d=new OS(tgs,this,11)),eRT(this.d),this.d||(this.d=new OS(tgs,this,11)),Y4(this.d,Pp(t,14));return;case 12:this.c||(this.c=new FQ(tga,this,12,10)),eRT(this.c),this.c||(this.c=new FQ(tga,this,12,10)),Y4(this.c,Pp(t,14));return;case 13:this.a||(this.a=new C_(this,this)),eRP(this.a),this.a||(this.a=new C_(this,this)),Y4(this.a,Pp(t,14));return;case 14:eRT(QX(this)),Y4(QX(this),Pp(t,14));return}efL(this,e-Y1((eBK(),tgD)),ee2((n=Pp(eaS(this,16),26))||tgD,e),t)},eUe.zh=function(){return eBK(),tgD},eUe.Bh=function(e){var t,n;switch(e){case 0:this.Ab||(this.Ab=new FQ(tm4,this,0,3)),eRT(this.Ab);return;case 1:er3(this,null);return;case 2:eli(this,!0);return;case 3:els(this,!0);return;case 4:end(this,0);return;case 5:enh(this,1);return;case 8:eu2(this,null);return;case 9:(n=ew3(this,null,null))&&n.Fi();return;case 11:this.d||(this.d=new OS(tgs,this,11)),eRT(this.d);return;case 12:this.c||(this.c=new FQ(tga,this,12,10)),eRT(this.c);return;case 13:this.a&&eRP(this.a);return;case 14:this.b&&eRT(this.b);return}ec5(this,e-Y1((eBK(),tgD)),ee2((t=Pp(eaS(this,16),26))||tgD,e))},eUe.Gh=function(){var e,t;if(this.c)for(e=0,t=this.c.i;es&&Bc(e,s,null),r=0,n=new Ow(QX(this.a));n.e!=n.i.gc();)a=(o=(t=Pp(epH(n),87)).c)||(eBK(),tgA),Bc(e,r++,a);return e},eUe.Yi=function(){var e,t,n,r,i;for(i=new vs,i.a+="[",e=QX(this.a),t=0,r=QX(this.a).i;t1);case 5:return Gt(this,e,t,n,r,this.i-Pp(n,15).gc()>0);default:return new Q$(this.e,e,this.c,t,n,r,!0)}},eUe.ij=function(){return!0},eUe.fj=function(){return ebq(this)},eUe.Xj=function(){eRT(this)},Y6(eZ2,"EOperationImpl/2",1341),eTS(498,1,{1938:1,498:1},k6),Y6(eZ2,"EPackageImpl/1",498),eTS(16,85,eJ8,FQ),eUe.zk=function(){return this.d},eUe.Ak=function(){return this.b},eUe.Dk=function(){return!0},eUe.b=0,Y6(eJz,"EObjectContainmentWithInverseEList",16),eTS(353,16,eJ8,Ia),eUe.Ek=function(){return!0},eUe.li=function(e,t){return ex7(this,e,Pp(t,56))},Y6(eJz,"EObjectContainmentWithInverseEList/Resolving",353),eTS(298,353,eJ8,Fq),eUe.ci=function(){this.a.tb=null},Y6(eZ2,"EPackageImpl/2",298),eTS(1228,1,{},sh),Y6(eZ2,"EPackageImpl/3",1228),eTS(718,43,e$s,mP),eUe._b=function(e){return xd(e)?$r(this,e):!!$I(this.f,e)},Y6(eZ2,"EPackageRegistryImpl",718),eTS(509,284,{105:1,92:1,90:1,147:1,191:1,56:1,2017:1,108:1,472:1,49:1,97:1,150:1,509:1,284:1,114:1,115:1},mN),eUe.Qg=function(e){return evc(this,e)},eUe._g=function(e,t,n){var r,i,a;switch(e){case 0:return this.Ab||(this.Ab=new FQ(tm4,this,0,3)),this.Ab;case 1:return this.zb;case 2:return OQ(),(256&this.Bb)!=0;case 3:return OQ(),(512&this.Bb)!=0;case 4:return ell(this.s);case 5:return ell(this.t);case 6:return OQ(),(a=this.t)>1||-1==a;case 7:return OQ(),(i=this.s)>=1;case 8:if(t)return evl(this);return this.r;case 9:return this.q;case 10:return this.Db>>16==10?Pp(this.Cb,59):null}return Qt(this,e-Y1((eBK(),tgR)),ee2((r=Pp(eaS(this,16),26))||tgR,e),t,n)},eUe.hh=function(e,t,n){var r,i,a;switch(t){case 0:return this.Ab||(this.Ab=new FQ(tm4,this,0,3)),edF(this.Ab,e,n);case 10:return this.Cb&&(n=(i=this.Db>>16)>=0?evc(this,n):this.Cb.ih(this,-1-i,null,n)),eDg(this,e,10,n)}return(a=Pp(ee2((r=Pp(eaS(this,16),26))||(eBK(),tgR),t),66)).Nj().Qj(this,ehH(this),t-Y1((eBK(),tgR)),e,n)},eUe.jh=function(e,t,n){var r,i;switch(t){case 0:return this.Ab||(this.Ab=new FQ(tm4,this,0,3)),ep5(this.Ab,e,n);case 9:return Y3(this,n);case 10:return eDg(this,null,10,n)}return(i=Pp(ee2((r=Pp(eaS(this,16),26))||(eBK(),tgR),t),66)).Nj().Rj(this,ehH(this),t-Y1((eBK(),tgR)),e,n)},eUe.lh=function(e){var t,n,r;switch(e){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return(256&this.Bb)==0;case 3:return(512&this.Bb)==0;case 4:return 0!=this.s;case 5:return 1!=this.t;case 6:return(r=this.t)>1||-1==r;case 7:return(n=this.s)>=1;case 8:return!!this.r&&!this.q.e&&0==BX(this.q).i;case 9:return!!this.q&&!(this.r&&!this.q.e&&0==BX(this.q).i);case 10:return!!(this.Db>>16==10?Pp(this.Cb,59):null)}return VP(this,e-Y1((eBK(),tgR)),ee2((t=Pp(eaS(this,16),26))||tgR,e))},eUe.zh=function(){return eBK(),tgR},Y6(eZ2,"EParameterImpl",509),eTS(99,449,{105:1,92:1,90:1,147:1,191:1,56:1,18:1,170:1,66:1,108:1,472:1,49:1,97:1,150:1,99:1,449:1,284:1,114:1,115:1,677:1},LB),eUe._g=function(e,t,n){var r,i,a,o;switch(e){case 0:return this.Ab||(this.Ab=new FQ(tm4,this,0,3)),this.Ab;case 1:return this.zb;case 2:return OQ(),(256&this.Bb)!=0;case 3:return OQ(),(512&this.Bb)!=0;case 4:return ell(this.s);case 5:return ell(this.t);case 6:return OQ(),(o=this.t)>1||-1==o;case 7:return OQ(),(i=this.s)>=1;case 8:if(t)return evl(this);return this.r;case 9:return this.q;case 10:return OQ(),(this.Bb&eXt)!=0;case 11:return OQ(),(this.Bb&eJq)!=0;case 12:return OQ(),(this.Bb&eH0)!=0;case 13:return this.j;case 14:return eOI(this);case 15:return OQ(),(this.Bb&eJV)!=0;case 16:return OQ(),(this.Bb&eUR)!=0;case 17:return z5(this);case 18:return OQ(),(this.Bb&eZ1)!=0;case 19:return OQ(),!!(a=ebY(this))&&(a.Bb&eZ1)!=0;case 20:return OQ(),(this.Bb&eH3)!=0;case 21:if(t)return ebY(this);return this.b;case 22:if(t)return esd(this);return ZS(this);case 23:return this.a||(this.a=new OT(tm8,this,23)),this.a}return Qt(this,e-Y1((eBK(),tgj)),ee2((r=Pp(eaS(this,16),26))||tgj,e),t,n)},eUe.lh=function(e){var t,n,r,i;switch(e){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return(256&this.Bb)==0;case 3:return(512&this.Bb)==0;case 4:return 0!=this.s;case 5:return 1!=this.t;case 6:return(i=this.t)>1||-1==i;case 7:return(n=this.s)>=1;case 8:return!!this.r&&!this.q.e&&0==BX(this.q).i;case 9:return!!this.q&&!(this.r&&!this.q.e&&0==BX(this.q).i);case 10:return(this.Bb&eXt)==0;case 11:return(this.Bb&eJq)!=0;case 12:return(this.Bb&eH0)!=0;case 13:return null!=this.j;case 14:return null!=eOI(this);case 15:return(this.Bb&eJV)!=0;case 16:return(this.Bb&eUR)!=0;case 17:return!!z5(this);case 18:return(this.Bb&eZ1)!=0;case 19:return!!(r=ebY(this))&&(r.Bb&eZ1)!=0;case 20:return(this.Bb&eH3)==0;case 21:return!!this.b;case 22:return!!ZS(this);case 23:return!!this.a&&0!=this.a.i}return VP(this,e-Y1((eBK(),tgj)),ee2((t=Pp(eaS(this,16),26))||tgj,e))},eUe.sh=function(e,t){var n,r;switch(e){case 0:this.Ab||(this.Ab=new FQ(tm4,this,0,3)),eRT(this.Ab),this.Ab||(this.Ab=new FQ(tm4,this,0,3)),Y4(this.Ab,Pp(t,14));return;case 1:GD(this,Lq(t));return;case 2:eli(this,gN(LK(t)));return;case 3:els(this,gN(LK(t)));return;case 4:end(this,Pp(t,19).a);return;case 5:enh(this,Pp(t,19).a);return;case 8:eu2(this,Pp(t,138));return;case 9:(r=ew3(this,Pp(t,87),null))&&r.Fi();return;case 10:elF(this,gN(LK(t)));return;case 11:elU(this,gN(LK(t)));return;case 12:elY(this,gN(LK(t)));return;case 13:xi(this,Lq(t));return;case 15:elB(this,gN(LK(t)));return;case 16:elZ(this,gN(LK(t)));return;case 18:GI(this,gN(LK(t)));return;case 20:elQ(this,gN(LK(t)));return;case 21:erM(this,Pp(t,18));return;case 23:this.a||(this.a=new OT(tm8,this,23)),eRT(this.a),this.a||(this.a=new OT(tm8,this,23)),Y4(this.a,Pp(t,14));return}efL(this,e-Y1((eBK(),tgj)),ee2((n=Pp(eaS(this,16),26))||tgj,e),t)},eUe.zh=function(){return eBK(),tgj},eUe.Bh=function(e){var t,n;switch(e){case 0:this.Ab||(this.Ab=new FQ(tm4,this,0,3)),eRT(this.Ab);return;case 1:M4(this.Cb,88)&&eko(Zd(Pp(this.Cb,88)),4),er3(this,null);return;case 2:eli(this,!0);return;case 3:els(this,!0);return;case 4:end(this,0);return;case 5:enh(this,1);return;case 8:eu2(this,null);return;case 9:(n=ew3(this,null,null))&&n.Fi();return;case 10:elF(this,!0);return;case 11:elU(this,!1);return;case 12:elY(this,!1);return;case 13:this.i=null,erA(this,null);return;case 15:elB(this,!1);return;case 16:elZ(this,!1);return;case 18:elJ(this,!1),M4(this.Cb,88)&&eko(Zd(Pp(this.Cb,88)),2);return;case 20:elQ(this,!0);return;case 21:erM(this,null);return;case 23:this.a||(this.a=new OT(tm8,this,23)),eRT(this.a);return}ec5(this,e-Y1((eBK(),tgj)),ee2((t=Pp(eaS(this,16),26))||tgj,e))},eUe.Gh=function(){esd(this),UH(QZ((eSp(),tvc),this)),evl(this),this.Bb|=1},eUe.Lj=function(){return ebY(this)},eUe.qk=function(){var e;return!!(e=ebY(this))&&(e.Bb&eZ1)!=0},eUe.rk=function(){return(this.Bb&eZ1)!=0},eUe.sk=function(){return(this.Bb&eH3)!=0},eUe.nk=function(e,t){return this.c=null,ecz(this,e,t)},eUe.Ib=function(){var e;return(64&this.Db)!=0?eCR(this):(e=new O1(eCR(this)),e.a+=" (containment: ",yG(e,(this.Bb&eZ1)!=0),e.a+=", resolveProxies: ",yG(e,(this.Bb&eH3)!=0),e.a+=")",e.a)},Y6(eZ2,"EReferenceImpl",99),eTS(548,115,{105:1,42:1,92:1,90:1,133:1,56:1,108:1,49:1,97:1,548:1,114:1,115:1},sp),eUe.Fb=function(e){return this===e},eUe.cd=function(){return this.b},eUe.dd=function(){return this.c},eUe.Hb=function(){return Ao(this)},eUe.Uh=function(e){RP(this,Lq(e))},eUe.ed=function(e){return P6(this,Lq(e))},eUe._g=function(e,t,n){var r;switch(e){case 0:return this.b;case 1:return this.c}return Qt(this,e-Y1((eBK(),tgF)),ee2((r=Pp(eaS(this,16),26))||tgF,e),t,n)},eUe.lh=function(e){var t;switch(e){case 0:return null!=this.b;case 1:return null!=this.c}return VP(this,e-Y1((eBK(),tgF)),ee2((t=Pp(eaS(this,16),26))||tgF,e))},eUe.sh=function(e,t){var n;switch(e){case 0:RR(this,Lq(t));return;case 1:ers(this,Lq(t));return}efL(this,e-Y1((eBK(),tgF)),ee2((n=Pp(eaS(this,16),26))||tgF,e),t)},eUe.zh=function(){return eBK(),tgF},eUe.Bh=function(e){var t;switch(e){case 0:ero(this,null);return;case 1:ers(this,null);return}ec5(this,e-Y1((eBK(),tgF)),ee2((t=Pp(eaS(this,16),26))||tgF,e))},eUe.Sh=function(){var e;return -1==this.a&&(e=this.b,this.a=null==e?0:ebA(e)),this.a},eUe.Th=function(e){this.a=e},eUe.Ib=function(){var e;return(64&this.Db)!=0?eMT(this):(e=new O1(eMT(this)),e.a+=" (key: ",xk(e,this.b),e.a+=", value: ",xk(e,this.c),e.a+=")",e.a)},eUe.a=-1,eUe.b=null,eUe.c=null;var tgf=Y6(eZ2,"EStringToStringMapEntryImpl",548),tgd=RL(eJz,"FeatureMap/Entry/Internal");eTS(565,1,eQa),eUe.Ok=function(e){return this.Pk(Pp(e,49))},eUe.Pk=function(e){return this.Ok(e)},eUe.Fb=function(e){var t,n;return this===e||!!M4(e,72)&&(t=Pp(e,72)).ak()==this.c&&(null==(n=this.dd())?null==t.dd():ecX(n,t.dd()))},eUe.ak=function(){return this.c},eUe.Hb=function(){var e;return e=this.dd(),esj(this.c)^(null==e?0:esj(e))},eUe.Ib=function(){var e,t;return t=etP((e=this.c).Hj()).Ph(),e.ne(),(null!=t&&0!=t.length?t+":"+e.ne():e.ne())+"="+this.dd()},Y6(eZ2,"EStructuralFeatureImpl/BasicFeatureMapEntry",565),eTS(776,565,eQa,Cg),eUe.Pk=function(e){return new Cg(this.c,e)},eUe.dd=function(){return this.a},eUe.Qk=function(e,t,n){return eiY(this,e,this.a,t,n)},eUe.Rk=function(e,t,n){return eiB(this,e,this.a,t,n)},Y6(eZ2,"EStructuralFeatureImpl/ContainmentUpdatingFeatureMapEntry",776),eTS(1314,1,{},k5),eUe.Pj=function(e,t,n,r,i){var a;return(a=Pp(JG(e,this.b),215)).nl(this.a).Wj(r)},eUe.Qj=function(e,t,n,r,i){var a;return(a=Pp(JG(e,this.b),215)).el(this.a,r,i)},eUe.Rj=function(e,t,n,r,i){var a;return(a=Pp(JG(e,this.b),215)).fl(this.a,r,i)},eUe.Sj=function(e,t,n){var r;return(r=Pp(JG(e,this.b),215)).nl(this.a).fj()},eUe.Tj=function(e,t,n,r){var i;(i=Pp(JG(e,this.b),215)).nl(this.a).Wb(r)},eUe.Uj=function(e,t,n){return Pp(JG(e,this.b),215).nl(this.a)},eUe.Vj=function(e,t,n){var r;(r=Pp(JG(e,this.b),215)).nl(this.a).Xj()},Y6(eZ2,"EStructuralFeatureImpl/InternalSettingDelegateFeatureMapDelegator",1314),eTS(89,1,{},Pe,HS,$F,qc),eUe.Pj=function(e,t,n,r,i){var a;if(null==(a=t.Ch(n))&&t.Dh(n,a=eBN(this,e)),!i)switch(this.e){case 50:case 41:return Pp(a,589).sj();case 40:return Pp(a,215).kl()}return a},eUe.Qj=function(e,t,n,r,i){var a,o;return null==(o=t.Ch(n))&&t.Dh(n,o=eBN(this,e)),a=Pp(o,69).lk(r,i)},eUe.Rj=function(e,t,n,r,i){var a;return null!=(a=t.Ch(n))&&(i=Pp(a,69).mk(r,i)),i},eUe.Sj=function(e,t,n){var r;return null!=(r=t.Ch(n))&&Pp(r,76).fj()},eUe.Tj=function(e,t,n,r){var i;(i=Pp(t.Ch(n),76))||t.Dh(n,i=eBN(this,e)),i.Wb(r)},eUe.Uj=function(e,t,n){var r,i;return(null==(i=t.Ch(n))&&t.Dh(n,i=eBN(this,e)),M4(i,76))?Pp(i,76):(r=Pp(t.Ch(n),15),new pz(r))},eUe.Vj=function(e,t,n){var r;(r=Pp(t.Ch(n),76))||t.Dh(n,r=eBN(this,e)),r.Xj()},eUe.b=0,eUe.e=0,Y6(eZ2,"EStructuralFeatureImpl/InternalSettingDelegateMany",89),eTS(504,1,{}),eUe.Qj=function(e,t,n,r,i){throw p7(new bO)},eUe.Rj=function(e,t,n,r,i){throw p7(new bO)},eUe.Uj=function(e,t,n){return new Hk(this,e,t,n)},Y6(eZ2,"EStructuralFeatureImpl/InternalSettingDelegateSingle",504),eTS(1331,1,eJG,Hk),eUe.Wj=function(e){return this.a.Pj(this.c,this.d,this.b,e,!0)},eUe.fj=function(){return this.a.Sj(this.c,this.d,this.b)},eUe.Wb=function(e){this.a.Tj(this.c,this.d,this.b,e)},eUe.Xj=function(){this.a.Vj(this.c,this.d,this.b)},eUe.b=0,Y6(eZ2,"EStructuralFeatureImpl/InternalSettingDelegateSingle/1",1331),eTS(769,504,{},zl),eUe.Pj=function(e,t,n,r,i){return eIy(e,e.eh(),e.Vg())==this.b?this.sk()&&r?eTp(e):e.eh():null},eUe.Qj=function(e,t,n,r,i){var a,o;return e.eh()&&(i=(a=e.Vg())>=0?e.Qg(i):e.eh().ih(e,-1-a,null,i)),o=edv(e.Tg(),this.e),e.Sg(r,o,i)},eUe.Rj=function(e,t,n,r,i){var a;return a=edv(e.Tg(),this.e),e.Sg(null,a,i)},eUe.Sj=function(e,t,n){var r;return r=edv(e.Tg(),this.e),!!e.eh()&&e.Vg()==r},eUe.Tj=function(e,t,n,r){var i,a,o,s,u;if(null!=r&&!eNc(this.a,r))throw p7(new gA(eQo+(M4(r,56)?eyB(Pp(r,56).Tg()):ee5(esF(r)))+eQs+this.a+"'"));if(i=e.eh(),o=edv(e.Tg(),this.e),xc(r)!==xc(i)||e.Vg()!=o&&null!=r){if(eg7(e,Pp(r,56)))throw p7(new gL(eZ4+e.Ib()));u=null,i&&(u=(a=e.Vg())>=0?e.Qg(u):e.eh().ih(e,-1-a,null,u)),(s=Pp(r,49))&&(u=s.gh(e,edv(s.Tg(),this.b),null,u)),(u=e.Sg(s,o,u))&&u.Fi()}else e.Lg()&&e.Mg()&&eam(e,new FX(e,1,o,r,r))},eUe.Vj=function(e,t,n){var r,i,a,o;(r=e.eh())?(o=(i=e.Vg())>=0?e.Qg(null):e.eh().ih(e,-1-i,null,null),a=edv(e.Tg(),this.e),(o=e.Sg(null,a,o))&&o.Fi()):e.Lg()&&e.Mg()&&eam(e,new FJ(e,1,this.e,null,null))},eUe.sk=function(){return!1},Y6(eZ2,"EStructuralFeatureImpl/InternalSettingDelegateSingleContainer",769),eTS(1315,769,{},Pt),eUe.sk=function(){return!0},Y6(eZ2,"EStructuralFeatureImpl/InternalSettingDelegateSingleContainerResolving",1315),eTS(563,504,{}),eUe.Pj=function(e,t,n,r,i){var a;return null==(a=t.Ch(n))?this.b:xc(a)===xc(tgZ)?null:a},eUe.Sj=function(e,t,n){var r;return null!=(r=t.Ch(n))&&(xc(r)===xc(tgZ)||!ecX(r,this.b))},eUe.Tj=function(e,t,n,r){var i,a;e.Lg()&&e.Mg()?(i=null==(a=t.Ch(n))?this.b:xc(a)===xc(tgZ)?null:a,null==r?null!=this.c?(t.Dh(n,null),r=this.b):null!=this.b?t.Dh(n,tgZ):t.Dh(n,null):(this.Sk(r),t.Dh(n,r)),eam(e,this.d.Tk(e,1,this.e,i,r))):null==r?null!=this.c?t.Dh(n,null):null!=this.b?t.Dh(n,tgZ):t.Dh(n,null):(this.Sk(r),t.Dh(n,r))},eUe.Vj=function(e,t,n){var r,i;e.Lg()&&e.Mg()?(r=null==(i=t.Ch(n))?this.b:xc(i)===xc(tgZ)?null:i,t.Eh(n),eam(e,this.d.Tk(e,1,this.e,r,this.b))):t.Eh(n)},eUe.Sk=function(e){throw p7(new bk)},Y6(eZ2,"EStructuralFeatureImpl/InternalSettingDelegateSingleData",563),eTS(eQu,1,{},sb),eUe.Tk=function(e,t,n,r,i){return new FJ(e,t,n,r,i)},eUe.Uk=function(e,t,n,r,i,a){return new H0(e,t,n,r,i,a)},Y6(eZ2,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator",eQu),eTS(1332,eQu,{},sm),eUe.Tk=function(e,t,n,r,i){return new ZY(e,t,n,gN(LK(r)),gN(LK(i)))},eUe.Uk=function(e,t,n,r,i,a){return new W4(e,t,n,gN(LK(r)),gN(LK(i)),a)},Y6(eZ2,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/1",1332),eTS(1333,eQu,{},sg),eUe.Tk=function(e,t,n,r,i){return new en_(e,t,n,Pp(r,217).a,Pp(i,217).a)},eUe.Uk=function(e,t,n,r,i,a){return new WX(e,t,n,Pp(r,217).a,Pp(i,217).a,a)},Y6(eZ2,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/2",1333),eTS(1334,eQu,{},sv),eUe.Tk=function(e,t,n,r,i){return new enE(e,t,n,Pp(r,172).a,Pp(i,172).a)},eUe.Uk=function(e,t,n,r,i,a){return new WJ(e,t,n,Pp(r,172).a,Pp(i,172).a,a)},Y6(eZ2,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/3",1334),eTS(1335,eQu,{},sy),eUe.Tk=function(e,t,n,r,i){return new Zj(e,t,n,gP(LV(r)),gP(LV(i)))},eUe.Uk=function(e,t,n,r,i,a){return new WQ(e,t,n,gP(LV(r)),gP(LV(i)),a)},Y6(eZ2,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/4",1335),eTS(1336,eQu,{},sw),eUe.Tk=function(e,t,n,r,i){return new enx(e,t,n,Pp(r,155).a,Pp(i,155).a)},eUe.Uk=function(e,t,n,r,i,a){return new W1(e,t,n,Pp(r,155).a,Pp(i,155).a,a)},Y6(eZ2,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/5",1336),eTS(1337,eQu,{},s_),eUe.Tk=function(e,t,n,r,i){return new ZF(e,t,n,Pp(r,19).a,Pp(i,19).a)},eUe.Uk=function(e,t,n,r,i,a){return new W0(e,t,n,Pp(r,19).a,Pp(i,19).a,a)},Y6(eZ2,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/6",1337),eTS(1338,eQu,{},sE),eUe.Tk=function(e,t,n,r,i){return new enS(e,t,n,Pp(r,162).a,Pp(i,162).a)},eUe.Uk=function(e,t,n,r,i,a){return new W2(e,t,n,Pp(r,162).a,Pp(i,162).a,a)},Y6(eZ2,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/7",1338),eTS(1339,eQu,{},sS),eUe.Tk=function(e,t,n,r,i){return new enk(e,t,n,Pp(r,184).a,Pp(i,184).a)},eUe.Uk=function(e,t,n,r,i,a){return new W3(e,t,n,Pp(r,184).a,Pp(i,184).a,a)},Y6(eZ2,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/8",1339),eTS(1317,563,{},Hx),eUe.Sk=function(e){if(!this.a.wj(e))throw p7(new gA(eQo+esF(e)+eQs+this.a+"'"))},Y6(eZ2,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataDynamic",1317),eTS(1318,563,{},j5),eUe.Sk=function(e){},Y6(eZ2,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataStatic",1318),eTS(770,563,{}),eUe.Sj=function(e,t,n){var r;return null!=(r=t.Ch(n))},eUe.Tj=function(e,t,n,r){var i,a;e.Lg()&&e.Mg()?(i=!0,null==(a=t.Ch(n))?(i=!1,a=this.b):xc(a)===xc(tgZ)&&(a=null),null==r?null!=this.c?(t.Dh(n,null),r=this.b):t.Dh(n,tgZ):(this.Sk(r),t.Dh(n,r)),eam(e,this.d.Uk(e,1,this.e,a,r,!i))):null==r?null!=this.c?t.Dh(n,null):t.Dh(n,tgZ):(this.Sk(r),t.Dh(n,r))},eUe.Vj=function(e,t,n){var r,i;e.Lg()&&e.Mg()?(r=!0,null==(i=t.Ch(n))?(r=!1,i=this.b):xc(i)===xc(tgZ)&&(i=null),t.Eh(n),eam(e,this.d.Uk(e,2,this.e,i,this.b,r))):t.Eh(n)},Y6(eZ2,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettable",770),eTS(1319,770,{},HT),eUe.Sk=function(e){if(!this.a.wj(e))throw p7(new gA(eQo+esF(e)+eQs+this.a+"'"))},Y6(eZ2,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableDynamic",1319),eTS(1320,770,{},j8),eUe.Sk=function(e){},Y6(eZ2,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableStatic",1320),eTS(398,504,{},jd),eUe.Pj=function(e,t,n,r,i){var a,o,s,u,c;if(c=t.Ch(n),this.Kj()&&xc(c)===xc(tgZ))return null;if(!this.sk()||!r||null==c)return c;if((s=Pp(c,49)).kh()&&(u=ecv(e,s),s!=u)){if(!eNc(this.a,u))throw p7(new gA(eQo+esF(u)+eQs+this.a+"'"));t.Dh(n,c=u),this.rk()&&(a=Pp(u,49),o=s.ih(e,this.b?edv(s.Tg(),this.b):-1-edv(e.Tg(),this.e),null,null),a.eh()||(o=a.gh(e,this.b?edv(a.Tg(),this.b):-1-edv(e.Tg(),this.e),null,o)),o&&o.Fi()),e.Lg()&&e.Mg()&&eam(e,new FJ(e,9,this.e,s,u))}return c},eUe.Qj=function(e,t,n,r,i){var a,o;return xc(o=t.Ch(n))===xc(tgZ)&&(o=null),t.Dh(n,r),this.bj()?xc(o)!==xc(r)&&null!=o&&(i=(a=Pp(o,49)).ih(e,edv(a.Tg(),this.b),null,i)):this.rk()&&null!=o&&(i=Pp(o,49).ih(e,-1-edv(e.Tg(),this.e),null,i)),e.Lg()&&e.Mg()&&(i||(i=new yf(4)),i.Ei(new FJ(e,1,this.e,o,r))),i},eUe.Rj=function(e,t,n,r,i){var a;return xc(a=t.Ch(n))===xc(tgZ)&&(a=null),t.Eh(n),e.Lg()&&e.Mg()&&(i||(i=new yf(4)),this.Kj()?i.Ei(new FJ(e,2,this.e,a,null)):i.Ei(new FJ(e,1,this.e,a,null))),i},eUe.Sj=function(e,t,n){var r;return null!=(r=t.Ch(n))},eUe.Tj=function(e,t,n,r){var i,a,o,s,u;if(null!=r&&!eNc(this.a,r))throw p7(new gA(eQo+(M4(r,56)?eyB(Pp(r,56).Tg()):ee5(esF(r)))+eQs+this.a+"'"));s=null!=(u=t.Ch(n)),this.Kj()&&xc(u)===xc(tgZ)&&(u=null),o=null,this.bj()?xc(u)!==xc(r)&&(null!=u&&(o=(i=Pp(u,49)).ih(e,edv(i.Tg(),this.b),null,o)),null!=r&&(o=(i=Pp(r,49)).gh(e,edv(i.Tg(),this.b),null,o))):this.rk()&&xc(u)!==xc(r)&&(null!=u&&(o=Pp(u,49).ih(e,-1-edv(e.Tg(),this.e),null,o)),null!=r&&(o=Pp(r,49).gh(e,-1-edv(e.Tg(),this.e),null,o))),null==r&&this.Kj()?t.Dh(n,tgZ):t.Dh(n,r),e.Lg()&&e.Mg()?(a=new H0(e,1,this.e,u,r,this.Kj()&&!s),o?(o.Ei(a),o.Fi()):eam(e,a)):o&&o.Fi()},eUe.Vj=function(e,t,n){var r,i,a,o,s;o=null!=(s=t.Ch(n)),this.Kj()&&xc(s)===xc(tgZ)&&(s=null),a=null,null!=s&&(this.bj()?a=(r=Pp(s,49)).ih(e,edv(r.Tg(),this.b),null,a):this.rk()&&(a=Pp(s,49).ih(e,-1-edv(e.Tg(),this.e),null,a))),t.Eh(n),e.Lg()&&e.Mg()?(i=new H0(e,this.Kj()?2:1,this.e,s,null,o),a?(a.Ei(i),a.Fi()):eam(e,i)):a&&a.Fi()},eUe.bj=function(){return!1},eUe.rk=function(){return!1},eUe.sk=function(){return!1},eUe.Kj=function(){return!1},Y6(eZ2,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObject",398),eTS(564,398,{},LE),eUe.rk=function(){return!0},Y6(eZ2,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainment",564),eTS(1323,564,{},LS),eUe.sk=function(){return!0},Y6(eZ2,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentResolving",1323),eTS(772,564,{},Lk),eUe.Kj=function(){return!0},Y6(eZ2,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettable",772),eTS(1325,772,{},Lx),eUe.sk=function(){return!0},Y6(eZ2,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettableResolving",1325),eTS(640,564,{},Pn),eUe.bj=function(){return!0},Y6(eZ2,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverse",640),eTS(1324,640,{},Pa),eUe.sk=function(){return!0},Y6(eZ2,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseResolving",1324),eTS(773,640,{},Po),eUe.Kj=function(){return!0},Y6(eZ2,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettable",773),eTS(1326,773,{},Ps),eUe.sk=function(){return!0},Y6(eZ2,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettableResolving",1326),eTS(641,398,{},LT),eUe.sk=function(){return!0},Y6(eZ2,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolving",641),eTS(1327,641,{},LM),eUe.Kj=function(){return!0},Y6(eZ2,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingUnsettable",1327),eTS(774,641,{},Pr),eUe.bj=function(){return!0},Y6(eZ2,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverse",774),eTS(1328,774,{},Pu),eUe.Kj=function(){return!0},Y6(eZ2,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverseUnsettable",1328),eTS(1321,398,{},LO),eUe.Kj=function(){return!0},Y6(eZ2,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectUnsettable",1321),eTS(771,398,{},Pi),eUe.bj=function(){return!0},Y6(eZ2,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverse",771),eTS(1322,771,{},Pc),eUe.Kj=function(){return!0},Y6(eZ2,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverseUnsettable",1322),eTS(775,565,eQa,Bj),eUe.Pk=function(e){return new Bj(this.a,this.c,e)},eUe.dd=function(){return this.b},eUe.Qk=function(e,t,n){return Jt(this,e,this.b,n)},eUe.Rk=function(e,t,n){return Jn(this,e,this.b,n)},Y6(eZ2,"EStructuralFeatureImpl/InverseUpdatingFeatureMapEntry",775),eTS(1329,1,eJG,pz),eUe.Wj=function(e){return this.a},eUe.fj=function(){return M4(this.a,95)?Pp(this.a,95).fj():!this.a.dc()},eUe.Wb=function(e){this.a.$b(),this.a.Gc(Pp(e,15))},eUe.Xj=function(){M4(this.a,95)?Pp(this.a,95).Xj():this.a.$b()},Y6(eZ2,"EStructuralFeatureImpl/SettingMany",1329),eTS(1330,565,eQa,qf),eUe.Ok=function(e){return new Cv((eR7(),tvK),this.b.Ih(this.a,e))},eUe.dd=function(){return null},eUe.Qk=function(e,t,n){return n},eUe.Rk=function(e,t,n){return n},Y6(eZ2,"EStructuralFeatureImpl/SimpleContentFeatureMapEntry",1330),eTS(642,565,eQa,Cv),eUe.Ok=function(e){return new Cv(this.c,e)},eUe.dd=function(){return this.a},eUe.Qk=function(e,t,n){return n},eUe.Rk=function(e,t,n){return n},Y6(eZ2,"EStructuralFeatureImpl/SimpleFeatureMapEntry",642),eTS(391,497,eXz,sk),eUe.ri=function(e){return Je(tm7,eUp,26,e,0,1)},eUe.ni=function(){return!1},Y6(eZ2,"ESuperAdapter/1",391),eTS(444,438,{105:1,92:1,90:1,147:1,191:1,56:1,108:1,836:1,49:1,97:1,150:1,444:1,114:1,115:1},sx),eUe._g=function(e,t,n){var r;switch(e){case 0:return this.Ab||(this.Ab=new FQ(tm4,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.a||(this.a=new jh(this,tgr,this)),this.a}return Qt(this,e-Y1((eBK(),tgU)),ee2((r=Pp(eaS(this,16),26))||tgU,e),t,n)},eUe.jh=function(e,t,n){var r,i;switch(t){case 0:return this.Ab||(this.Ab=new FQ(tm4,this,0,3)),ep5(this.Ab,e,n);case 2:return this.a||(this.a=new jh(this,tgr,this)),ep5(this.a,e,n)}return(i=Pp(ee2((r=Pp(eaS(this,16),26))||(eBK(),tgU),t),66)).Nj().Rj(this,ehH(this),t-Y1((eBK(),tgU)),e,n)},eUe.lh=function(e){var t;switch(e){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return!!this.a&&0!=this.a.i}return VP(this,e-Y1((eBK(),tgU)),ee2((t=Pp(eaS(this,16),26))||tgU,e))},eUe.sh=function(e,t){var n;switch(e){case 0:this.Ab||(this.Ab=new FQ(tm4,this,0,3)),eRT(this.Ab),this.Ab||(this.Ab=new FQ(tm4,this,0,3)),Y4(this.Ab,Pp(t,14));return;case 1:er3(this,Lq(t));return;case 2:this.a||(this.a=new jh(this,tgr,this)),eRT(this.a),this.a||(this.a=new jh(this,tgr,this)),Y4(this.a,Pp(t,14));return}efL(this,e-Y1((eBK(),tgU)),ee2((n=Pp(eaS(this,16),26))||tgU,e),t)},eUe.zh=function(){return eBK(),tgU},eUe.Bh=function(e){var t;switch(e){case 0:this.Ab||(this.Ab=new FQ(tm4,this,0,3)),eRT(this.Ab);return;case 1:er3(this,null);return;case 2:this.a||(this.a=new jh(this,tgr,this)),eRT(this.a);return}ec5(this,e-Y1((eBK(),tgU)),ee2((t=Pp(eaS(this,16),26))||tgU,e))},Y6(eZ2,"ETypeParameterImpl",444),eTS(445,85,eJ8,jh),eUe.cj=function(e,t){return ewV(this,Pp(e,87),t)},eUe.dj=function(e,t){return ewq(this,Pp(e,87),t)},Y6(eZ2,"ETypeParameterImpl/1",445),eTS(634,43,e$s,mR),eUe.ec=function(){return new pG(this)},Y6(eZ2,"ETypeParameterImpl/2",634),eTS(556,eUT,eUM,pG),eUe.Fc=function(e){return Ie(this,Pp(e,87))},eUe.Gc=function(e){var t,n,r;for(r=!1,n=e.Kc();n.Ob();)t=Pp(n.Pb(),87),null==Um(this.a,t,"")&&(r=!0);return r},eUe.$b=function(){Yy(this.a)},eUe.Hc=function(e){return F8(this.a,e)},eUe.Kc=function(){var e;return e=new esz(new fS(this.a).a),new pW(e)},eUe.Mc=function(e){return Xp(this,e)},eUe.gc=function(){return wq(this.a)},Y6(eZ2,"ETypeParameterImpl/2/1",556),eTS(557,1,eUE,pW),eUe.Nb=function(e){F9(this,e)},eUe.Pb=function(){return Pp(etz(this.a).cd(),87)},eUe.Ob=function(){return this.a.b},eUe.Qb=function(){JM(this.a)},Y6(eZ2,"ETypeParameterImpl/2/1/1",557),eTS(1276,43,e$s,mj),eUe._b=function(e){return xd(e)?$r(this,e):!!$I(this.f,e)},eUe.xc=function(e){var t,n;return M4(t=xd(e)?zg(this,e):xu($I(this.f,e)),837)?(t=(n=Pp(t,837))._j(),Um(this,Pp(e,235),t),t):null!=t?t:null==e?(_3(),tvh):null},Y6(eZ2,"EValidatorRegistryImpl",1276),eTS(1313,704,{105:1,92:1,90:1,471:1,147:1,56:1,108:1,1941:1,49:1,97:1,150:1,114:1,115:1},sT),eUe.Ih=function(e,t){switch(e.yj()){case 21:case 22:case 23:case 24:case 26:case 31:case 32:case 37:case 38:case 39:case 40:case 43:case 44:case 48:case 49:case 20:return null==t?null:efF(t);case 25:return etR(t);case 27:return Qn(t);case 28:return Qr(t);case 29:return null==t?null:MU(tmS[0],Pp(t,199));case 41:return null==t?"":yx(Pp(t,290));case 42:return efF(t);case 50:return Lq(t);default:throw p7(new gL(eZ6+e.ne()+eZ5))}},eUe.Jh=function(e){var t;switch(-1==e.G&&(e.G=(t=etP(e))?ebv(t.Mh(),e):-1),e.G){case 0:return new mC;case 1:return new sa;case 2:return new c0;case 4:return new bN;case 5:return new mI;case 6:return new bD;case 7:return new cQ;case 10:return new sr;case 11:return new mD;case 12:return new $y;case 13:return new mN;case 14:return new LB;case 17:return new sp;case 18:return new p6;case 19:return new sx;default:throw p7(new gL(eZ7+e.zb+eZ5))}},eUe.Kh=function(e,t){switch(e.yj()){case 20:return null==t?null:new yY(t);case 21:return null==t?null:new TU(t);case 23:case 22:return null==t?null:ehL(t);case 26:case 24:return null==t?null:eeT(eDa(t,-128,127)<<24>>24);case 25:return eMp(t);case 27:return egg(t);case 28:return egv(t);case 29:return e__(t);case 32:case 31:return null==t?null:eEu(t);case 38:case 37:return null==t?null:new bK(t);case 40:case 39:return null==t?null:ell(eDa(t,eHt,eUu));case 41:case 42:return null;case 44:case 43:return null==t?null:ehQ(eF0(t));case 49:case 48:return null==t?null:elf(eDa(t,eQl,32767)<<16>>16);case 50:return t;default:throw p7(new gL(eZ6+e.ne()+eZ5))}},Y6(eZ2,"EcoreFactoryImpl",1313),eTS(547,179,{105:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,1939:1,49:1,97:1,150:1,179:1,547:1,114:1,115:1,675:1},Uh),eUe.gb=!1,eUe.hb=!1;var tgh,tgp,tgb,tgm,tgg,tgv,tgy,tgw,tg_,tgE,tgS,tgk,tgx,tgT,tgM,tgO,tgA,tgL,tgC,tgI,tgD,tgN,tgP,tgR,tgj,tgF,tgY,tgB,tgU,tgH,tg$,tgz,tgG,tgW,tgK,tgV,tgq,tgZ,tgX,tgJ,tgQ,tg1,tg0,tg2,tg3,tg4,tg6,tg5,tg8=!1;Y6(eZ2,"EcorePackageImpl",547),eTS(1184,1,{837:1},sM),eUe._j=function(){return OJ(),tvp},Y6(eZ2,"EcorePackageImpl/1",1184),eTS(1193,1,eQS,sO),eUe.wj=function(e){return M4(e,147)},eUe.xj=function(e){return Je(e5y,eUp,147,e,0,1)},Y6(eZ2,"EcorePackageImpl/10",1193),eTS(1194,1,eQS,sA),eUe.wj=function(e){return M4(e,191)},eUe.xj=function(e){return Je(e5_,eUp,191,e,0,1)},Y6(eZ2,"EcorePackageImpl/11",1194),eTS(1195,1,eQS,sL),eUe.wj=function(e){return M4(e,56)},eUe.xj=function(e){return Je(e5f,eUp,56,e,0,1)},Y6(eZ2,"EcorePackageImpl/12",1195),eTS(1196,1,eQS,sC),eUe.wj=function(e){return M4(e,399)},eUe.xj=function(e){return Je(tgi,eJ6,59,e,0,1)},Y6(eZ2,"EcorePackageImpl/13",1196),eTS(1197,1,eQS,sI),eUe.wj=function(e){return M4(e,235)},eUe.xj=function(e){return Je(e5E,eUp,235,e,0,1)},Y6(eZ2,"EcorePackageImpl/14",1197),eTS(1198,1,eQS,sD),eUe.wj=function(e){return M4(e,509)},eUe.xj=function(e){return Je(tga,eUp,2017,e,0,1)},Y6(eZ2,"EcorePackageImpl/15",1198),eTS(1199,1,eQS,sN),eUe.wj=function(e){return M4(e,99)},eUe.xj=function(e){return Je(tgo,eJ4,18,e,0,1)},Y6(eZ2,"EcorePackageImpl/16",1199),eTS(1200,1,eQS,sP),eUe.wj=function(e){return M4(e,170)},eUe.xj=function(e){return Je(tm5,eJ4,170,e,0,1)},Y6(eZ2,"EcorePackageImpl/17",1200),eTS(1201,1,eQS,sR),eUe.wj=function(e){return M4(e,472)},eUe.xj=function(e){return Je(tm6,eUp,472,e,0,1)},Y6(eZ2,"EcorePackageImpl/18",1201),eTS(1202,1,eQS,sj),eUe.wj=function(e){return M4(e,548)},eUe.xj=function(e){return Je(tgf,eJL,548,e,0,1)},Y6(eZ2,"EcorePackageImpl/19",1202),eTS(1185,1,eQS,sF),eUe.wj=function(e){return M4(e,322)},eUe.xj=function(e){return Je(tm8,eJ4,34,e,0,1)},Y6(eZ2,"EcorePackageImpl/2",1185),eTS(1203,1,eQS,sY),eUe.wj=function(e){return M4(e,241)},eUe.xj=function(e){return Je(tgr,eQt,87,e,0,1)},Y6(eZ2,"EcorePackageImpl/20",1203),eTS(1204,1,eQS,sB),eUe.wj=function(e){return M4(e,444)},eUe.xj=function(e){return Je(tgs,eUp,836,e,0,1)},Y6(eZ2,"EcorePackageImpl/21",1204),eTS(1205,1,eQS,sU),eUe.wj=function(e){return xl(e)},eUe.xj=function(e){return Je(e11,eUP,476,e,8,1)},Y6(eZ2,"EcorePackageImpl/22",1205),eTS(1206,1,eQS,sH),eUe.wj=function(e){return M4(e,190)},eUe.xj=function(e){return Je(tyk,eUP,190,e,0,2)},Y6(eZ2,"EcorePackageImpl/23",1206),eTS(1207,1,eQS,s$),eUe.wj=function(e){return M4(e,217)},eUe.xj=function(e){return Je(e10,eUP,217,e,0,1)},Y6(eZ2,"EcorePackageImpl/24",1207),eTS(1208,1,eQS,sz),eUe.wj=function(e){return M4(e,172)},eUe.xj=function(e){return Je(e12,eUP,172,e,0,1)},Y6(eZ2,"EcorePackageImpl/25",1208),eTS(1209,1,eQS,sG),eUe.wj=function(e){return M4(e,199)},eUe.xj=function(e){return Je(e1Q,eUP,199,e,0,1)},Y6(eZ2,"EcorePackageImpl/26",1209),eTS(1210,1,eQS,sW),eUe.wj=function(e){return!1},eUe.xj=function(e){return Je(tyA,eUp,2110,e,0,1)},Y6(eZ2,"EcorePackageImpl/27",1210),eTS(1211,1,eQS,sK),eUe.wj=function(e){return xf(e)},eUe.xj=function(e){return Je(e13,eUP,333,e,7,1)},Y6(eZ2,"EcorePackageImpl/28",1211),eTS(1212,1,eQS,sV),eUe.wj=function(e){return M4(e,58)},eUe.xj=function(e){return Je(e5L,ezZ,58,e,0,1)},Y6(eZ2,"EcorePackageImpl/29",1212),eTS(1186,1,eQS,sq),eUe.wj=function(e){return M4(e,510)},eUe.xj=function(e){return Je(tm4,{3:1,4:1,5:1,1934:1},590,e,0,1)},Y6(eZ2,"EcorePackageImpl/3",1186),eTS(1213,1,eQS,sZ),eUe.wj=function(e){return M4(e,573)},eUe.xj=function(e){return Je(e5j,eUp,1940,e,0,1)},Y6(eZ2,"EcorePackageImpl/30",1213),eTS(1214,1,eQS,sX),eUe.wj=function(e){return M4(e,153)},eUe.xj=function(e){return Je(tg7,ezZ,153,e,0,1)},Y6(eZ2,"EcorePackageImpl/31",1214),eTS(1215,1,eQS,sJ),eUe.wj=function(e){return M4(e,72)},eUe.xj=function(e){return Je(tgc,eQk,72,e,0,1)},Y6(eZ2,"EcorePackageImpl/32",1215),eTS(1216,1,eQS,sQ),eUe.wj=function(e){return M4(e,155)},eUe.xj=function(e){return Je(e14,eUP,155,e,0,1)},Y6(eZ2,"EcorePackageImpl/33",1216),eTS(1217,1,eQS,s1),eUe.wj=function(e){return M4(e,19)},eUe.xj=function(e){return Je(e16,eUP,19,e,0,1)},Y6(eZ2,"EcorePackageImpl/34",1217),eTS(1218,1,eQS,s0),eUe.wj=function(e){return M4(e,290)},eUe.xj=function(e){return Je(e1j,eUp,290,e,0,1)},Y6(eZ2,"EcorePackageImpl/35",1218),eTS(1219,1,eQS,s2),eUe.wj=function(e){return M4(e,162)},eUe.xj=function(e){return Je(e15,eUP,162,e,0,1)},Y6(eZ2,"EcorePackageImpl/36",1219),eTS(1220,1,eQS,s3),eUe.wj=function(e){return M4(e,83)},eUe.xj=function(e){return Je(e1Y,eUp,83,e,0,1)},Y6(eZ2,"EcorePackageImpl/37",1220),eTS(1221,1,eQS,s4),eUe.wj=function(e){return M4(e,591)},eUe.xj=function(e){return Je(tg9,eUp,591,e,0,1)},Y6(eZ2,"EcorePackageImpl/38",1221),eTS(1222,1,eQS,s6),eUe.wj=function(e){return!1},eUe.xj=function(e){return Je(tyL,eUp,2111,e,0,1)},Y6(eZ2,"EcorePackageImpl/39",1222),eTS(1187,1,eQS,s5),eUe.wj=function(e){return M4(e,88)},eUe.xj=function(e){return Je(tm7,eUp,26,e,0,1)},Y6(eZ2,"EcorePackageImpl/4",1187),eTS(1223,1,eQS,s8),eUe.wj=function(e){return M4(e,184)},eUe.xj=function(e){return Je(e18,eUP,184,e,0,1)},Y6(eZ2,"EcorePackageImpl/40",1223),eTS(1224,1,eQS,s9),eUe.wj=function(e){return xd(e)},eUe.xj=function(e){return Je(e17,eUP,2,e,6,1)},Y6(eZ2,"EcorePackageImpl/41",1224),eTS(1225,1,eQS,s7),eUe.wj=function(e){return M4(e,588)},eUe.xj=function(e){return Je(e5I,eUp,588,e,0,1)},Y6(eZ2,"EcorePackageImpl/42",1225),eTS(1226,1,eQS,ue),eUe.wj=function(e){return!1},eUe.xj=function(e){return Je(tyC,eUP,2112,e,0,1)},Y6(eZ2,"EcorePackageImpl/43",1226),eTS(1227,1,eQS,ut),eUe.wj=function(e){return M4(e,42)},eUe.xj=function(e){return Je(e1$,eUK,42,e,0,1)},Y6(eZ2,"EcorePackageImpl/44",1227),eTS(1188,1,eQS,un),eUe.wj=function(e){return M4(e,138)},eUe.xj=function(e){return Je(tm9,eUp,138,e,0,1)},Y6(eZ2,"EcorePackageImpl/5",1188),eTS(1189,1,eQS,ur),eUe.wj=function(e){return M4(e,148)},eUe.xj=function(e){return Je(tge,eUp,148,e,0,1)},Y6(eZ2,"EcorePackageImpl/6",1189),eTS(1190,1,eQS,ui),eUe.wj=function(e){return M4(e,457)},eUe.xj=function(e){return Je(tgt,eUp,671,e,0,1)},Y6(eZ2,"EcorePackageImpl/7",1190),eTS(1191,1,eQS,ua),eUe.wj=function(e){return M4(e,573)},eUe.xj=function(e){return Je(tgn,eUp,678,e,0,1)},Y6(eZ2,"EcorePackageImpl/8",1191),eTS(1192,1,eQS,uo),eUe.wj=function(e){return M4(e,471)},eUe.xj=function(e){return Je(e5w,eUp,471,e,0,1)},Y6(eZ2,"EcorePackageImpl/9",1192),eTS(1025,1982,eJO,gT),eUe.bi=function(e,t){ecV(this,Pp(t,415))},eUe.fi=function(e,t){eSU(this,e,Pp(t,415))},Y6(eZ2,"MinimalEObjectImpl/1ArrayDelegatingAdapterList",1025),eTS(1026,143,eJx,BF),eUe.Ai=function(){return this.a.a},Y6(eZ2,"MinimalEObjectImpl/1ArrayDelegatingAdapterList/1",1026),eTS(1053,1052,{},Ms),Y6("org.eclipse.emf.ecore.plugin","EcorePlugin",1053);var tg9=RL(eQx,"Resource");eTS(781,1378,eQT),eUe.Yk=function(e){},eUe.Zk=function(e){},eUe.Vk=function(){return this.a||(this.a=new pK(this)),this.a},eUe.Wk=function(e){var t,n,r,i,a;if((r=e.length)>0){if(GV(0,e.length),47==e.charCodeAt(0)){for(t=1,a=new XM(4),i=1;t0&&(e=e.substr(0,n))}return ekX(this,e)},eUe.Xk=function(){return this.c},eUe.Ib=function(){var e;return yx(this.gm)+"@"+(e=esj(this)>>>0).toString(16)+" uri='"+this.d+"'"},eUe.b=!1,Y6(eQM,"ResourceImpl",781),eTS(1379,781,eQT,pq),Y6(eQM,"BinaryResourceImpl",1379),eTS(1169,694,eXG),eUe.si=function(e){return M4(e,56)?$x(this,Pp(e,56)):M4(e,591)?new Ow(Pp(e,591).Vk()):xc(e)===xc(this.f)?Pp(e,14).Kc():(LF(),tmB.a)},eUe.Ob=function(){return exI(this)},eUe.a=!1,Y6(eJz,"EcoreUtil/ContentTreeIterator",1169),eTS(1380,1169,eXG,F0),eUe.si=function(e){return xc(e)===xc(this.f)?Pp(e,15).Kc():new K0(Pp(e,56))},Y6(eQM,"ResourceImpl/5",1380),eTS(648,1994,eJ5,pK),eUe.Hc=function(e){return this.i<=4?ev8(this,e):M4(e,49)&&Pp(e,49).Zg()==this.a},eUe.bi=function(e,t){e==this.i-1&&(this.a.b||(this.a.b=!0))},eUe.di=function(e,t){0==e?this.a.b||(this.a.b=!0):X9(this,e,t)},eUe.fi=function(e,t){},eUe.gi=function(e,t,n){},eUe.aj=function(){return 2},eUe.Ai=function(){return this.a},eUe.bj=function(){return!0},eUe.cj=function(e,t){var n;return t=(n=Pp(e,49)).wh(this.a,t)},eUe.dj=function(e,t){var n;return(n=Pp(e,49)).wh(null,t)},eUe.ej=function(){return!1},eUe.hi=function(){return!0},eUe.ri=function(e){return Je(e5f,eUp,56,e,0,1)},eUe.ni=function(){return!1},Y6(eQM,"ResourceImpl/ContentsEList",648),eTS(957,1964,eU6,pV),eUe.Zc=function(e){return this.a._h(e)},eUe.gc=function(){return this.a.gc()},Y6(eJz,"AbstractSequentialInternalEList/1",957),eTS(624,1,{},PQ),Y6(eJz,"BasicExtendedMetaData",624),eTS(1160,1,{},k8),eUe.$k=function(){return null},eUe._k=function(){return -2==this.a&&fi(this,e_f(this.d,this.b)),this.a},eUe.al=function(){return null},eUe.bl=function(){return Hj(),Hj(),e2r},eUe.ne=function(){return this.c==eQH&&fo(this,eh1(this.d,this.b)),this.c},eUe.cl=function(){return 0},eUe.a=-2,eUe.c=eQH,Y6(eJz,"BasicExtendedMetaData/EClassExtendedMetaDataImpl",1160),eTS(1161,1,{},Ke),eUe.$k=function(){return this.a==(ZE(),tvf)&&fa(this,eO8(this.f,this.b)),this.a},eUe._k=function(){return 0},eUe.al=function(){return this.c==(ZE(),tvf)&&fs(this,eO9(this.f,this.b)),this.c},eUe.bl=function(){return this.d||fu(this,eIA(this.f,this.b)),this.d},eUe.ne=function(){return this.e==eQH&&fc(this,eh1(this.f,this.b)),this.e},eUe.cl=function(){return -2==this.g&&fl(this,ewd(this.f,this.b)),this.g},eUe.e=eQH,eUe.g=-2,Y6(eJz,"BasicExtendedMetaData/EDataTypeExtendedMetaDataImpl",1161),eTS(1159,1,{},xn),eUe.b=!1,eUe.c=!1,Y6(eJz,"BasicExtendedMetaData/EPackageExtendedMetaDataImpl",1159),eTS(1162,1,{},W7),eUe.c=-2,eUe.e=eQH,eUe.f=eQH,Y6(eJz,"BasicExtendedMetaData/EStructuralFeatureExtendedMetaDataImpl",1162),eTS(585,622,eJ8,PJ),eUe.aj=function(){return this.c},eUe.Fk=function(){return!1},eUe.li=function(e,t){return t},eUe.c=0,Y6(eJz,"EDataTypeEList",585);var tg7=RL(eJz,"FeatureMap");eTS(75,585,{3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1,76:1,153:1,215:1,1937:1,69:1,95:1},eiR),eUe.Vc=function(e,t){eO0(this,e,Pp(t,72))},eUe.Fc=function(e){return eM5(this,Pp(e,72))},eUe.Yh=function(e){Y2(this,Pp(e,72))},eUe.cj=function(e,t){return IG(this,Pp(e,72),t)},eUe.dj=function(e,t){return IW(this,Pp(e,72),t)},eUe.ii=function(e,t){return eI7(this,e,t)},eUe.li=function(e,t){return ejg(this,e,Pp(t,72))},eUe._c=function(e,t){return eA5(this,e,Pp(t,72))},eUe.jj=function(e,t){return IK(this,Pp(e,72),t)},eUe.kj=function(e,t){return IV(this,Pp(e,72),t)},eUe.lj=function(e,t,n){return eyU(this,Pp(e,72),Pp(t,72),n)},eUe.oi=function(e,t){return ewk(this,e,Pp(t,72))},eUe.dl=function(e,t){return eIF(this,e,t)},eUe.Wc=function(e,t){var n,r,i,a,o,s,u,c,l;for(c=new eta(t.gc()),i=t.Kc();i.Ob();)if(a=(r=Pp(i.Pb(),72)).ak(),eLt(this.e,a))a.hi()&&(Vq(this,a,r.dd())||ev8(c,r))||JL(c,r);else{for(s=0,l=eAY(this.e.Tg(),a),n=Pp(this.g,119),o=!0;s=0;)if(t=e[this.c],this.k.rl(t.ak()))return this.j=this.f?t:t.dd(),this.i=-2,!0;return this.i=-1,this.g=-1,!1},Y6(eJz,"BasicFeatureMap/FeatureEIterator",410),eTS(662,410,eUC,x1),eUe.Lk=function(){return!0},Y6(eJz,"BasicFeatureMap/ResolvingFeatureEIterator",662),eTS(955,486,eQr,Mz),eUe.Gi=function(){return this},Y6(eJz,"EContentsEList/1",955),eTS(956,486,eQr,x0),eUe.Lk=function(){return!1},Y6(eJz,"EContentsEList/2",956),eTS(954,279,eQi,MG),eUe.Nk=function(e){},eUe.Ob=function(){return!1},eUe.Sb=function(){return!1},Y6(eJz,"EContentsEList/FeatureIteratorImpl/1",954),eTS(825,585,eJ8,OM),eUe.ci=function(){this.a=!0},eUe.fj=function(){return this.a},eUe.Xj=function(){var e;eRT(this),TO(this.e)?(e=this.a,this.a=!1,eam(this.e,new ZB(this.e,2,this.c,e,!1))):this.a=!1},eUe.a=!1,Y6(eJz,"EDataTypeEList/Unsettable",825),eTS(1849,585,eJ8,OO),eUe.hi=function(){return!0},Y6(eJz,"EDataTypeUniqueEList",1849),eTS(1850,825,eJ8,OA),eUe.hi=function(){return!0},Y6(eJz,"EDataTypeUniqueEList/Unsettable",1850),eTS(139,85,eJ8,OS),eUe.Ek=function(){return!0},eUe.li=function(e,t){return ex7(this,e,Pp(t,56))},Y6(eJz,"EObjectContainmentEList/Resolving",139),eTS(1163,545,eJ8,Ok),eUe.Ek=function(){return!0},eUe.li=function(e,t){return ex7(this,e,Pp(t,56))},Y6(eJz,"EObjectContainmentEList/Unsettable/Resolving",1163),eTS(748,16,eJ8,Io),eUe.ci=function(){this.a=!0},eUe.fj=function(){return this.a},eUe.Xj=function(){var e;eRT(this),TO(this.e)?(e=this.a,this.a=!1,eam(this.e,new ZB(this.e,2,this.c,e,!1))):this.a=!1},eUe.a=!1,Y6(eJz,"EObjectContainmentWithInverseEList/Unsettable",748),eTS(1173,748,eJ8,Is),eUe.Ek=function(){return!0},eUe.li=function(e,t){return ex7(this,e,Pp(t,56))},Y6(eJz,"EObjectContainmentWithInverseEList/Unsettable/Resolving",1173),eTS(743,496,eJ8,Ox),eUe.ci=function(){this.a=!0},eUe.fj=function(){return this.a},eUe.Xj=function(){var e;eRT(this),TO(this.e)?(e=this.a,this.a=!1,eam(this.e,new ZB(this.e,2,this.c,e,!1))):this.a=!1},eUe.a=!1,Y6(eJz,"EObjectEList/Unsettable",743),eTS(328,496,eJ8,OT),eUe.Ek=function(){return!0},eUe.li=function(e,t){return ex7(this,e,Pp(t,56))},Y6(eJz,"EObjectResolvingEList",328),eTS(1641,743,eJ8,OL),eUe.Ek=function(){return!0},eUe.li=function(e,t){return ex7(this,e,Pp(t,56))},Y6(eJz,"EObjectResolvingEList/Unsettable",1641),eTS(1381,1,{},us),Y6(eJz,"EObjectValidator",1381),eTS(546,496,eJ8,F1),eUe.zk=function(){return this.d},eUe.Ak=function(){return this.b},eUe.bj=function(){return!0},eUe.Dk=function(){return!0},eUe.b=0,Y6(eJz,"EObjectWithInverseEList",546),eTS(1176,546,eJ8,Iu),eUe.Ck=function(){return!0},Y6(eJz,"EObjectWithInverseEList/ManyInverse",1176),eTS(625,546,eJ8,Ic),eUe.ci=function(){this.a=!0},eUe.fj=function(){return this.a},eUe.Xj=function(){var e;eRT(this),TO(this.e)?(e=this.a,this.a=!1,eam(this.e,new ZB(this.e,2,this.c,e,!1))):this.a=!1},eUe.a=!1,Y6(eJz,"EObjectWithInverseEList/Unsettable",625),eTS(1175,625,eJ8,If),eUe.Ck=function(){return!0},Y6(eJz,"EObjectWithInverseEList/Unsettable/ManyInverse",1175),eTS(749,546,eJ8,Il),eUe.Ek=function(){return!0},eUe.li=function(e,t){return ex7(this,e,Pp(t,56))},Y6(eJz,"EObjectWithInverseResolvingEList",749),eTS(31,749,eJ8,Ih),eUe.Ck=function(){return!0},Y6(eJz,"EObjectWithInverseResolvingEList/ManyInverse",31),eTS(750,625,eJ8,Id),eUe.Ek=function(){return!0},eUe.li=function(e,t){return ex7(this,e,Pp(t,56))},Y6(eJz,"EObjectWithInverseResolvingEList/Unsettable",750),eTS(1174,750,eJ8,Ip),eUe.Ck=function(){return!0},Y6(eJz,"EObjectWithInverseResolvingEList/Unsettable/ManyInverse",1174),eTS(1164,622,eJ8),eUe.ai=function(){return(1792&this.b)==0},eUe.ci=function(){this.b|=1},eUe.Bk=function(){return(4&this.b)!=0},eUe.bj=function(){return(40&this.b)!=0},eUe.Ck=function(){return(16&this.b)!=0},eUe.Dk=function(){return(8&this.b)!=0},eUe.Ek=function(){return(this.b&eJq)!=0},eUe.rk=function(){return(32&this.b)!=0},eUe.Fk=function(){return(this.b&eXt)!=0},eUe.wj=function(e){return this.d?VB(this.d,e):this.ak().Yj().wj(e)},eUe.fj=function(){return(2&this.b)!=0?(1&this.b)!=0:0!=this.i},eUe.hi=function(){return(128&this.b)!=0},eUe.Xj=function(){var e;eRT(this),(2&this.b)!=0&&(TO(this.e)?(e=(1&this.b)!=0,this.b&=-2,bz(this,new ZB(this.e,2,edv(this.e.Tg(),this.ak()),e,!1))):this.b&=-2)},eUe.ni=function(){return(1536&this.b)==0},eUe.b=0,Y6(eJz,"EcoreEList/Generic",1164),eTS(1165,1164,eJ8,H2),eUe.ak=function(){return this.a},Y6(eJz,"EcoreEList/Dynamic",1165),eTS(747,63,eXz,pZ),eUe.ri=function(e){return enb(this.a.a,e)},Y6(eJz,"EcoreEMap/1",747),eTS(746,85,eJ8,FZ),eUe.bi=function(e,t){ebB(this.b,Pp(t,133))},eUe.di=function(e,t){eac(this.b)},eUe.ei=function(e,t,n){var r;++(r=this.b,Pp(t,133),r).e},eUe.fi=function(e,t){elj(this.b,Pp(t,133))},eUe.gi=function(e,t,n){elj(this.b,Pp(n,133)),xc(n)===xc(t)&&Pp(n,133).Th(Mi(Pp(t,133).cd())),ebB(this.b,Pp(t,133))},Y6(eJz,"EcoreEMap/DelegateEObjectContainmentEList",746),eTS(1171,151,eJW,enQ),Y6(eJz,"EcoreEMap/Unsettable",1171),eTS(1172,746,eJ8,Ib),eUe.ci=function(){this.a=!0},eUe.fj=function(){return this.a},eUe.Xj=function(){var e;eRT(this),TO(this.e)?(e=this.a,this.a=!1,eam(this.e,new ZB(this.e,2,this.c,e,!1))):this.a=!1},eUe.a=!1,Y6(eJz,"EcoreEMap/Unsettable/UnsettableDelegateEObjectContainmentEList",1172),eTS(1168,228,e$s,YQ),eUe.a=!1,eUe.b=!1,Y6(eJz,"EcoreUtil/Copier",1168),eTS(745,1,eUE,K0),eUe.Nb=function(e){F9(this,e)},eUe.Ob=function(){return edV(this)},eUe.Pb=function(){var e;return edV(this),e=this.b,this.b=null,e},eUe.Qb=function(){this.a.Qb()},Y6(eJz,"EcoreUtil/ProperContentIterator",745),eTS(1382,1381,{},c2),Y6(eJz,"EcoreValidator",1382),RL(eJz,"FeatureMapUtil/Validator"),eTS(1260,1,{1942:1},uu),eUe.rl=function(e){return!0},Y6(eJz,"FeatureMapUtil/1",1260),eTS(757,1,{1942:1},eF2),eUe.rl=function(e){var t;return this.c==e||(null!=(t=LK(Bp(this.a,e)))?t==(OQ(),e0P):eCV(this,e)?(Z$(this.a,e,(OQ(),e0P)),!0):(Z$(this.a,e,(OQ(),e0N)),!1))},eUe.e=!1,Y6(eJz,"FeatureMapUtil/BasicValidator",757),eTS(758,43,e$s,MW),Y6(eJz,"FeatureMapUtil/BasicValidator/Cache",758),eTS(501,52,{20:1,28:1,52:1,14:1,15:1,58:1,76:1,69:1,95:1},xe),eUe.Vc=function(e,t){eLe(this.c,this.b,e,t)},eUe.Fc=function(e){return eIF(this.c,this.b,e)},eUe.Wc=function(e,t){return ePq(this.c,this.b,e,t)},eUe.Gc=function(e){return MJ(this,e)},eUe.Xh=function(e,t){ee7(this.c,this.b,e,t)},eUe.lk=function(e,t){return eCB(this.c,this.b,e,t)},eUe.pi=function(e){return ePL(this.c,this.b,e,!1)},eUe.Zh=function(){return TC(this.c,this.b)},eUe.$h=function(){return TI(this.c,this.b)},eUe._h=function(e){return X8(this.c,this.b,e)},eUe.mk=function(e,t){return Cp(this,e,t)},eUe.$b=function(){bG(this)},eUe.Hc=function(e){return Vq(this.c,this.b,e)},eUe.Ic=function(e){return eiF(this.c,this.b,e)},eUe.Xb=function(e){return ePL(this.c,this.b,e,!0)},eUe.Wj=function(e){return this},eUe.Xc=function(e){return VZ(this.c,this.b,e)},eUe.dc=function(){return xs(this)},eUe.fj=function(){return!edK(this.c,this.b)},eUe.Kc=function(){return eei(this.c,this.b)},eUe.Yc=function(){return eea(this.c,this.b)},eUe.Zc=function(e){return ely(this.c,this.b,e)},eUe.ii=function(e,t){return eNn(this.c,this.b,e,t)},eUe.ji=function(e,t){Xx(this.c,this.b,e,t)},eUe.$c=function(e){return eE0(this.c,this.b,e)},eUe.Mc=function(e){return eIC(this.c,this.b,e)},eUe._c=function(e,t){return eNL(this.c,this.b,e,t)},eUe.Wb=function(e){exZ(this.c,this.b),MJ(this,Pp(e,15))},eUe.gc=function(){return elG(this.c,this.b)},eUe.Pc=function(){return Wb(this.c,this.b)},eUe.Qc=function(e){return VX(this.c,this.b,e)},eUe.Ib=function(){var e,t;for(t=new vs,t.a+="[",e=TC(this.c,this.b);euf(e);)xk(t,Ae(ebm(e))),euf(e)&&(t.a+=eUd);return t.a+="]",t.a},eUe.Xj=function(){exZ(this.c,this.b)},Y6(eJz,"FeatureMapUtil/FeatureEList",501),eTS(627,36,eJx,qu),eUe.yi=function(e){return elc(this,e)},eUe.Di=function(e){var t,n,r,i,a,o,s;switch(this.d){case 1:case 2:if(xc(a=e.Ai())===xc(this.c)&&elc(this,null)==e.yi(null))return this.g=e.zi(),1==e.xi()&&(this.d=1),!0;break;case 3:if(3===(i=e.xi())&&xc(a=e.Ai())===xc(this.c)&&elc(this,null)==e.yi(null))return this.d=5,JL(t=new eta(2),this.g),JL(t,e.zi()),this.g=t,!0;break;case 5:if(3===(i=e.xi())&&xc(a=e.Ai())===xc(this.c)&&elc(this,null)==e.yi(null))return(n=Pp(this.g,14)).Fc(e.zi()),!0;break;case 4:switch(i=e.xi()){case 3:if(xc(a=e.Ai())===xc(this.c)&&elc(this,null)==e.yi(null))return this.d=1,this.g=e.zi(),!0;break;case 4:if(xc(a=e.Ai())===xc(this.c)&&elc(this,null)==e.yi(null))return this.d=6,JL(s=new eta(2),this.n),JL(s,e.Bi()),this.n=s,o=eow(vx(ty_,1),eHT,25,15,[this.o,e.Ci()]),this.g=o,!0}break;case 6:if(4===(i=e.xi())&&xc(a=e.Ai())===xc(this.c)&&elc(this,null)==e.yi(null))return(n=Pp(this.n,14)).Fc(e.Bi()),r=Je(ty_,eHT,25,(o=Pp(this.g,48)).length+1,15,1),ePD(o,0,r,0,o.length),r[o.length]=e.Ci(),this.g=r,!0}return!1},Y6(eJz,"FeatureMapUtil/FeatureENotificationImpl",627),eTS(552,501,{20:1,28:1,52:1,14:1,15:1,58:1,76:1,153:1,215:1,1937:1,69:1,95:1},RA),eUe.dl=function(e,t){return eIF(this.c,e,t)},eUe.el=function(e,t,n){return eCB(this.c,e,t,n)},eUe.fl=function(e,t,n){return ePT(this.c,e,t,n)},eUe.gl=function(){return this},eUe.hl=function(e,t){return ePC(this.c,e,t)},eUe.il=function(e){return Pp(ePL(this.c,this.b,e,!1),72).ak()},eUe.jl=function(e){return Pp(ePL(this.c,this.b,e,!1),72).dd()},eUe.kl=function(){return this.a},eUe.ll=function(e){return!edK(this.c,e)},eUe.ml=function(e,t){ePJ(this.c,e,t)},eUe.nl=function(e){return erp(this.c,e)},eUe.ol=function(e){emY(this.c,e)},Y6(eJz,"FeatureMapUtil/FeatureFeatureMap",552),eTS(1259,1,eJG,xr),eUe.Wj=function(e){return ePL(this.b,this.a,-1,e)},eUe.fj=function(){return!edK(this.b,this.a)},eUe.Wb=function(e){ePJ(this.b,this.a,e)},eUe.Xj=function(){exZ(this.b,this.a)},Y6(eJz,"FeatureMapUtil/FeatureValue",1259);var tve=RL(eQz,"AnyType");eTS(666,60,eHr,gV),Y6(eQz,"InvalidDatatypeValueException",666);var tvt=RL(eQz,eQG),tvn=RL(eQz,eQW),tvr=RL(eQz,eQK);eTS(830,506,{105:1,92:1,90:1,56:1,49:1,97:1,843:1},mF),eUe._g=function(e,t,n){switch(e){case 0:if(n)return this.c||(this.c=new eiR(this,0)),this.c;return this.c||(this.c=new eiR(this,0)),this.c.b;case 1:if(n)return this.c||(this.c=new eiR(this,0)),Pp(GP(this.c,(eR7(),tvx)),153);return(this.c||(this.c=new eiR(this,0)),Pp(Pp(GP(this.c,(eR7(),tvx)),153),215)).kl();case 2:if(n)return this.b||(this.b=new eiR(this,2)),this.b;return this.b||(this.b=new eiR(this,2)),this.b.b}return Qt(this,e-Y1(this.zh()),ee2((2&this.j)==0?this.zh():(this.k||(this.k=new c1),this.k).ck(),e),t,n)},eUe.jh=function(e,t,n){var r;switch(t){case 0:return this.c||(this.c=new eiR(this,0)),eIM(this.c,e,n);case 1:return(this.c||(this.c=new eiR(this,0)),Pp(Pp(GP(this.c,(eR7(),tvx)),153),69)).mk(e,n);case 2:return this.b||(this.b=new eiR(this,2)),eIM(this.b,e,n)}return(r=Pp(ee2((2&this.j)==0?this.zh():(this.k||(this.k=new c1),this.k).ck(),t),66)).Nj().Rj(this,Q6(this),t-Y1(this.zh()),e,n)},eUe.lh=function(e){switch(e){case 0:return!!this.c&&0!=this.c.i;case 1:return!(this.c||(this.c=new eiR(this,0)),Pp(GP(this.c,(eR7(),tvx)),153)).dc();case 2:return!!this.b&&0!=this.b.i}return VP(this,e-Y1(this.zh()),ee2((2&this.j)==0?this.zh():(this.k||(this.k=new c1),this.k).ck(),e))},eUe.sh=function(e,t){switch(e){case 0:this.c||(this.c=new eiR(this,0)),YH(this.c,t);return;case 1:(this.c||(this.c=new eiR(this,0)),Pp(Pp(GP(this.c,(eR7(),tvx)),153),215)).Wb(t);return;case 2:this.b||(this.b=new eiR(this,2)),YH(this.b,t);return}efL(this,e-Y1(this.zh()),ee2((2&this.j)==0?this.zh():(this.k||(this.k=new c1),this.k).ck(),e),t)},eUe.zh=function(){return eR7(),tvk},eUe.Bh=function(e){switch(e){case 0:this.c||(this.c=new eiR(this,0)),eRT(this.c);return;case 1:(this.c||(this.c=new eiR(this,0)),Pp(GP(this.c,(eR7(),tvx)),153)).$b();return;case 2:this.b||(this.b=new eiR(this,2)),eRT(this.b);return}ec5(this,e-Y1(this.zh()),ee2((2&this.j)==0?this.zh():(this.k||(this.k=new c1),this.k).ck(),e))},eUe.Ib=function(){var e;return(4&this.j)!=0?eMT(this):(e=new O1(eMT(this)),e.a+=" (mixed: ",xS(e,this.c),e.a+=", anyAttribute: ",xS(e,this.b),e.a+=")",e.a)},Y6(eQV,"AnyTypeImpl",830),eTS(667,506,{105:1,92:1,90:1,56:1,49:1,97:1,2021:1,667:1},ul),eUe._g=function(e,t,n){switch(e){case 0:return this.a;case 1:return this.b}return Qt(this,e-Y1((eR7(),tvj)),ee2((2&this.j)==0?tvj:(this.k||(this.k=new c1),this.k).ck(),e),t,n)},eUe.lh=function(e){switch(e){case 0:return null!=this.a;case 1:return null!=this.b}return VP(this,e-Y1((eR7(),tvj)),ee2((2&this.j)==0?tvj:(this.k||(this.k=new c1),this.k).ck(),e))},eUe.sh=function(e,t){switch(e){case 0:fg(this,Lq(t));return;case 1:fv(this,Lq(t));return}efL(this,e-Y1((eR7(),tvj)),ee2((2&this.j)==0?tvj:(this.k||(this.k=new c1),this.k).ck(),e),t)},eUe.zh=function(){return eR7(),tvj},eUe.Bh=function(e){switch(e){case 0:this.a=null;return;case 1:this.b=null;return}ec5(this,e-Y1((eR7(),tvj)),ee2((2&this.j)==0?tvj:(this.k||(this.k=new c1),this.k).ck(),e))},eUe.Ib=function(){var e;return(4&this.j)!=0?eMT(this):(e=new O1(eMT(this)),e.a+=" (data: ",xk(e,this.a),e.a+=", target: ",xk(e,this.b),e.a+=")",e.a)},eUe.a=null,eUe.b=null,Y6(eQV,"ProcessingInstructionImpl",667),eTS(668,830,{105:1,92:1,90:1,56:1,49:1,97:1,843:1,2022:1,668:1},mB),eUe._g=function(e,t,n){switch(e){case 0:if(n)return this.c||(this.c=new eiR(this,0)),this.c;return this.c||(this.c=new eiR(this,0)),this.c.b;case 1:if(n)return this.c||(this.c=new eiR(this,0)),Pp(GP(this.c,(eR7(),tvx)),153);return(this.c||(this.c=new eiR(this,0)),Pp(Pp(GP(this.c,(eR7(),tvx)),153),215)).kl();case 2:if(n)return this.b||(this.b=new eiR(this,2)),this.b;return this.b||(this.b=new eiR(this,2)),this.b.b;case 3:return this.c||(this.c=new eiR(this,0)),Lq(ePC(this.c,(eR7(),tvB),!0));case 4:return Iy(this.a,(this.c||(this.c=new eiR(this,0)),Lq(ePC(this.c,(eR7(),tvB),!0))));case 5:return this.a}return Qt(this,e-Y1((eR7(),tvY)),ee2((2&this.j)==0?tvY:(this.k||(this.k=new c1),this.k).ck(),e),t,n)},eUe.lh=function(e){switch(e){case 0:return!!this.c&&0!=this.c.i;case 1:return!(this.c||(this.c=new eiR(this,0)),Pp(GP(this.c,(eR7(),tvx)),153)).dc();case 2:return!!this.b&&0!=this.b.i;case 3:return this.c||(this.c=new eiR(this,0)),null!=Lq(ePC(this.c,(eR7(),tvB),!0));case 4:return null!=Iy(this.a,(this.c||(this.c=new eiR(this,0)),Lq(ePC(this.c,(eR7(),tvB),!0))));case 5:return!!this.a}return VP(this,e-Y1((eR7(),tvY)),ee2((2&this.j)==0?tvY:(this.k||(this.k=new c1),this.k).ck(),e))},eUe.sh=function(e,t){switch(e){case 0:this.c||(this.c=new eiR(this,0)),YH(this.c,t);return;case 1:(this.c||(this.c=new eiR(this,0)),Pp(Pp(GP(this.c,(eR7(),tvx)),153),215)).Wb(t);return;case 2:this.b||(this.b=new eiR(this,2)),YH(this.b,t);return;case 3:Kt(this,Lq(t));return;case 4:Kt(this,Iw(this.a,t));return;case 5:fy(this,Pp(t,148));return}efL(this,e-Y1((eR7(),tvY)),ee2((2&this.j)==0?tvY:(this.k||(this.k=new c1),this.k).ck(),e),t)},eUe.zh=function(){return eR7(),tvY},eUe.Bh=function(e){switch(e){case 0:this.c||(this.c=new eiR(this,0)),eRT(this.c);return;case 1:(this.c||(this.c=new eiR(this,0)),Pp(GP(this.c,(eR7(),tvx)),153)).$b();return;case 2:this.b||(this.b=new eiR(this,2)),eRT(this.b);return;case 3:this.c||(this.c=new eiR(this,0)),ePJ(this.c,(eR7(),tvB),null);return;case 4:Kt(this,Iw(this.a,null));return;case 5:this.a=null;return}ec5(this,e-Y1((eR7(),tvY)),ee2((2&this.j)==0?tvY:(this.k||(this.k=new c1),this.k).ck(),e))},Y6(eQV,"SimpleAnyTypeImpl",668),eTS(669,506,{105:1,92:1,90:1,56:1,49:1,97:1,2023:1,669:1},mY),eUe._g=function(e,t,n){switch(e){case 0:if(n)return this.a||(this.a=new eiR(this,0)),this.a;return this.a||(this.a=new eiR(this,0)),this.a.b;case 1:return n?(this.b||(this.b=new JY((eBK(),tgF),tgf,this,1)),this.b):(this.b||(this.b=new JY((eBK(),tgF),tgf,this,1)),X5(this.b));case 2:return n?(this.c||(this.c=new JY((eBK(),tgF),tgf,this,2)),this.c):(this.c||(this.c=new JY((eBK(),tgF),tgf,this,2)),X5(this.c));case 3:return this.a||(this.a=new eiR(this,0)),GP(this.a,(eR7(),tv$));case 4:return this.a||(this.a=new eiR(this,0)),GP(this.a,(eR7(),tvz));case 5:return this.a||(this.a=new eiR(this,0)),GP(this.a,(eR7(),tvW));case 6:return this.a||(this.a=new eiR(this,0)),GP(this.a,(eR7(),tvK))}return Qt(this,e-Y1((eR7(),tvH)),ee2((2&this.j)==0?tvH:(this.k||(this.k=new c1),this.k).ck(),e),t,n)},eUe.jh=function(e,t,n){var r;switch(t){case 0:return this.a||(this.a=new eiR(this,0)),eIM(this.a,e,n);case 1:return this.b||(this.b=new JY((eBK(),tgF),tgf,this,1)),Iz(this.b,e,n);case 2:return this.c||(this.c=new JY((eBK(),tgF),tgf,this,2)),Iz(this.c,e,n);case 5:return this.a||(this.a=new eiR(this,0)),Cp(GP(this.a,(eR7(),tvW)),e,n)}return(r=Pp(ee2((2&this.j)==0?(eR7(),tvH):(this.k||(this.k=new c1),this.k).ck(),t),66)).Nj().Rj(this,Q6(this),t-Y1((eR7(),tvH)),e,n)},eUe.lh=function(e){switch(e){case 0:return!!this.a&&0!=this.a.i;case 1:return!!this.b&&0!=this.b.f;case 2:return!!this.c&&0!=this.c.f;case 3:return this.a||(this.a=new eiR(this,0)),!xs(GP(this.a,(eR7(),tv$)));case 4:return this.a||(this.a=new eiR(this,0)),!xs(GP(this.a,(eR7(),tvz)));case 5:return this.a||(this.a=new eiR(this,0)),!xs(GP(this.a,(eR7(),tvW)));case 6:return this.a||(this.a=new eiR(this,0)),!xs(GP(this.a,(eR7(),tvK)))}return VP(this,e-Y1((eR7(),tvH)),ee2((2&this.j)==0?tvH:(this.k||(this.k=new c1),this.k).ck(),e))},eUe.sh=function(e,t){switch(e){case 0:this.a||(this.a=new eiR(this,0)),YH(this.a,t);return;case 1:this.b||(this.b=new JY((eBK(),tgF),tgf,this,1)),eai(this.b,t);return;case 2:this.c||(this.c=new JY((eBK(),tgF),tgf,this,2)),eai(this.c,t);return;case 3:this.a||(this.a=new eiR(this,0)),bG(GP(this.a,(eR7(),tv$))),this.a||(this.a=new eiR(this,0)),MJ(GP(this.a,tv$),Pp(t,14));return;case 4:this.a||(this.a=new eiR(this,0)),bG(GP(this.a,(eR7(),tvz))),this.a||(this.a=new eiR(this,0)),MJ(GP(this.a,tvz),Pp(t,14));return;case 5:this.a||(this.a=new eiR(this,0)),bG(GP(this.a,(eR7(),tvW))),this.a||(this.a=new eiR(this,0)),MJ(GP(this.a,tvW),Pp(t,14));return;case 6:this.a||(this.a=new eiR(this,0)),bG(GP(this.a,(eR7(),tvK))),this.a||(this.a=new eiR(this,0)),MJ(GP(this.a,tvK),Pp(t,14));return}efL(this,e-Y1((eR7(),tvH)),ee2((2&this.j)==0?tvH:(this.k||(this.k=new c1),this.k).ck(),e),t)},eUe.zh=function(){return eR7(),tvH},eUe.Bh=function(e){switch(e){case 0:this.a||(this.a=new eiR(this,0)),eRT(this.a);return;case 1:this.b||(this.b=new JY((eBK(),tgF),tgf,this,1)),this.b.c.$b();return;case 2:this.c||(this.c=new JY((eBK(),tgF),tgf,this,2)),this.c.c.$b();return;case 3:this.a||(this.a=new eiR(this,0)),bG(GP(this.a,(eR7(),tv$)));return;case 4:this.a||(this.a=new eiR(this,0)),bG(GP(this.a,(eR7(),tvz)));return;case 5:this.a||(this.a=new eiR(this,0)),bG(GP(this.a,(eR7(),tvW)));return;case 6:this.a||(this.a=new eiR(this,0)),bG(GP(this.a,(eR7(),tvK)));return}ec5(this,e-Y1((eR7(),tvH)),ee2((2&this.j)==0?tvH:(this.k||(this.k=new c1),this.k).ck(),e))},eUe.Ib=function(){var e;return(4&this.j)!=0?eMT(this):(e=new O1(eMT(this)),e.a+=" (mixed: ",xS(e,this.a),e.a+=")",e.a)},Y6(eQV,"XMLTypeDocumentRootImpl",669),eTS(1919,704,{105:1,92:1,90:1,471:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1,2024:1},uc),eUe.Ih=function(e,t){switch(e.yj()){case 7:case 8:case 9:case 10:case 16:case 22:case 23:case 24:case 25:case 26:case 32:case 33:case 34:case 36:case 37:case 44:case 45:case 50:case 51:case 53:case 55:case 56:case 57:case 58:case 60:case 61:case 4:return null==t?null:efF(t);case 19:case 28:case 29:case 35:case 38:case 39:case 41:case 46:case 52:case 54:case 5:return Lq(t);case 6:return LH(Pp(t,190));case 12:case 47:case 49:case 11:return ejZ(this,e,t);case 13:return null==t?null:ePg(Pp(t,240));case 15:case 14:return null==t?null:Yk(gP(LV(t)));case 17:return eyV((eR7(),t));case 18:return eyV(t);case 21:case 20:return null==t?null:Yx(Pp(t,155).a);case 27:return L$(Pp(t,190));case 30:return emB((eR7(),Pp(t,15)));case 31:return emB(Pp(t,15));case 40:return LG((eR7(),t));case 42:return eyq((eR7(),t));case 43:return eyq(t);case 59:case 48:return Lz((eR7(),t));default:throw p7(new gL(eZ6+e.ne()+eZ5))}},eUe.Jh=function(e){var t;switch(-1==e.G&&(e.G=(t=etP(e))?ebv(t.Mh(),e):-1),e.G){case 0:return new mF;case 1:return new ul;case 2:return new mB;case 3:return new mY;default:throw p7(new gL(eZ7+e.zb+eZ5))}},eUe.Kh=function(e,t){var n,r,i,a,o,s,u,c,l,f,d,h,p,b,m,g;switch(e.yj()){case 5:case 52:case 4:return t;case 6:return epU(t);case 8:case 7:return null==t?null:ewe(t);case 9:return null==t?null:eeT(eDa((r=ePh(t,!0)).length>0&&(GV(0,r.length),43==r.charCodeAt(0))?r.substr(1):r,-128,127)<<24>>24);case 10:return null==t?null:eeT(eDa((i=ePh(t,!0)).length>0&&(GV(0,i.length),43==i.charCodeAt(0))?i.substr(1):i,-128,127)<<24>>24);case 11:return Lq(eBd(this,(eR7(),tvO),t));case 12:return Lq(eBd(this,(eR7(),tvA),t));case 13:return null==t?null:new yY(ePh(t,!0));case 15:case 14:return eOa(t);case 16:return Lq(eBd(this,(eR7(),tvL),t));case 17:return ehy((eR7(),t));case 18:return ehy(t);case 28:case 29:case 35:case 38:case 39:case 41:case 54:case 19:return ePh(t,!0);case 21:case 20:return eOv(t);case 22:return Lq(eBd(this,(eR7(),tvC),t));case 23:return Lq(eBd(this,(eR7(),tvI),t));case 24:return Lq(eBd(this,(eR7(),tvD),t));case 25:return Lq(eBd(this,(eR7(),tvN),t));case 26:return Lq(eBd(this,(eR7(),tvP),t));case 27:return epw(t);case 30:return ehw((eR7(),t));case 31:return ehw(t);case 32:return null==t?null:ell(eDa((l=ePh(t,!0)).length>0&&(GV(0,l.length),43==l.charCodeAt(0))?l.substr(1):l,eHt,eUu));case 33:return null==t?null:new TU((f=ePh(t,!0)).length>0&&(GV(0,f.length),43==f.charCodeAt(0))?f.substr(1):f);case 34:return null==t?null:ell(eDa((d=ePh(t,!0)).length>0&&(GV(0,d.length),43==d.charCodeAt(0))?d.substr(1):d,eHt,eUu));case 36:return null==t?null:ehQ(eF0((h=ePh(t,!0)).length>0&&(GV(0,h.length),43==h.charCodeAt(0))?h.substr(1):h));case 37:return null==t?null:ehQ(eF0((p=ePh(t,!0)).length>0&&(GV(0,p.length),43==p.charCodeAt(0))?p.substr(1):p));case 40:return edR((eR7(),t));case 42:return eh_((eR7(),t));case 43:return eh_(t);case 44:return null==t?null:new TU((b=ePh(t,!0)).length>0&&(GV(0,b.length),43==b.charCodeAt(0))?b.substr(1):b);case 45:return null==t?null:new TU((m=ePh(t,!0)).length>0&&(GV(0,m.length),43==m.charCodeAt(0))?m.substr(1):m);case 46:return ePh(t,!1);case 47:return Lq(eBd(this,(eR7(),tvR),t));case 59:case 48:return edP((eR7(),t));case 49:return Lq(eBd(this,(eR7(),tvF),t));case 50:return null==t?null:elf(eDa((g=ePh(t,!0)).length>0&&(GV(0,g.length),43==g.charCodeAt(0))?g.substr(1):g,eQl,32767)<<16>>16);case 51:return null==t?null:elf(eDa((a=ePh(t,!0)).length>0&&(GV(0,a.length),43==a.charCodeAt(0))?a.substr(1):a,eQl,32767)<<16>>16);case 53:return Lq(eBd(this,(eR7(),tvU),t));case 55:return null==t?null:elf(eDa((o=ePh(t,!0)).length>0&&(GV(0,o.length),43==o.charCodeAt(0))?o.substr(1):o,eQl,32767)<<16>>16);case 56:return null==t?null:elf(eDa((s=ePh(t,!0)).length>0&&(GV(0,s.length),43==s.charCodeAt(0))?s.substr(1):s,eQl,32767)<<16>>16);case 57:return null==t?null:ehQ(eF0((u=ePh(t,!0)).length>0&&(GV(0,u.length),43==u.charCodeAt(0))?u.substr(1):u));case 58:return null==t?null:ehQ(eF0((c=ePh(t,!0)).length>0&&(GV(0,c.length),43==c.charCodeAt(0))?c.substr(1):c));case 60:return null==t?null:ell(eDa((n=ePh(t,!0)).length>0&&(GV(0,n.length),43==n.charCodeAt(0))?n.substr(1):n,eHt,eUu));case 61:return null==t?null:ell(eDa(ePh(t,!0),eHt,eUu));default:throw p7(new gL(eZ6+e.ne()+eZ5))}},Y6(eQV,"XMLTypeFactoryImpl",1919),eTS(586,179,{105:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,49:1,97:1,150:1,179:1,114:1,115:1,675:1,1945:1,586:1},Ud),eUe.N=!1,eUe.O=!1;var tvi=!1;Y6(eQV,"XMLTypePackageImpl",586),eTS(1852,1,{837:1},uf),eUe._j=function(){return eD4(),eB2},Y6(eQV,"XMLTypePackageImpl/1",1852),eTS(1861,1,eQS,ud),eUe.wj=function(e){return xd(e)},eUe.xj=function(e){return Je(e17,eUP,2,e,6,1)},Y6(eQV,"XMLTypePackageImpl/10",1861),eTS(1862,1,eQS,uh),eUe.wj=function(e){return xd(e)},eUe.xj=function(e){return Je(e17,eUP,2,e,6,1)},Y6(eQV,"XMLTypePackageImpl/11",1862),eTS(1863,1,eQS,up),eUe.wj=function(e){return xd(e)},eUe.xj=function(e){return Je(e17,eUP,2,e,6,1)},Y6(eQV,"XMLTypePackageImpl/12",1863),eTS(1864,1,eQS,ub),eUe.wj=function(e){return xf(e)},eUe.xj=function(e){return Je(e13,eUP,333,e,7,1)},Y6(eQV,"XMLTypePackageImpl/13",1864),eTS(1865,1,eQS,um),eUe.wj=function(e){return xd(e)},eUe.xj=function(e){return Je(e17,eUP,2,e,6,1)},Y6(eQV,"XMLTypePackageImpl/14",1865),eTS(1866,1,eQS,ug),eUe.wj=function(e){return M4(e,15)},eUe.xj=function(e){return Je(e1H,ezZ,15,e,0,1)},Y6(eQV,"XMLTypePackageImpl/15",1866),eTS(1867,1,eQS,uv),eUe.wj=function(e){return M4(e,15)},eUe.xj=function(e){return Je(e1H,ezZ,15,e,0,1)},Y6(eQV,"XMLTypePackageImpl/16",1867),eTS(1868,1,eQS,uy),eUe.wj=function(e){return xd(e)},eUe.xj=function(e){return Je(e17,eUP,2,e,6,1)},Y6(eQV,"XMLTypePackageImpl/17",1868),eTS(1869,1,eQS,uw),eUe.wj=function(e){return M4(e,155)},eUe.xj=function(e){return Je(e14,eUP,155,e,0,1)},Y6(eQV,"XMLTypePackageImpl/18",1869),eTS(1870,1,eQS,u_),eUe.wj=function(e){return xd(e)},eUe.xj=function(e){return Je(e17,eUP,2,e,6,1)},Y6(eQV,"XMLTypePackageImpl/19",1870),eTS(1853,1,eQS,uE),eUe.wj=function(e){return M4(e,843)},eUe.xj=function(e){return Je(tve,eUp,843,e,0,1)},Y6(eQV,"XMLTypePackageImpl/2",1853),eTS(1871,1,eQS,uS),eUe.wj=function(e){return xd(e)},eUe.xj=function(e){return Je(e17,eUP,2,e,6,1)},Y6(eQV,"XMLTypePackageImpl/20",1871),eTS(1872,1,eQS,uk),eUe.wj=function(e){return xd(e)},eUe.xj=function(e){return Je(e17,eUP,2,e,6,1)},Y6(eQV,"XMLTypePackageImpl/21",1872),eTS(1873,1,eQS,ux),eUe.wj=function(e){return xd(e)},eUe.xj=function(e){return Je(e17,eUP,2,e,6,1)},Y6(eQV,"XMLTypePackageImpl/22",1873),eTS(1874,1,eQS,uT),eUe.wj=function(e){return xd(e)},eUe.xj=function(e){return Je(e17,eUP,2,e,6,1)},Y6(eQV,"XMLTypePackageImpl/23",1874),eTS(1875,1,eQS,uM),eUe.wj=function(e){return M4(e,190)},eUe.xj=function(e){return Je(tyk,eUP,190,e,0,2)},Y6(eQV,"XMLTypePackageImpl/24",1875),eTS(1876,1,eQS,uO),eUe.wj=function(e){return xd(e)},eUe.xj=function(e){return Je(e17,eUP,2,e,6,1)},Y6(eQV,"XMLTypePackageImpl/25",1876),eTS(1877,1,eQS,uA),eUe.wj=function(e){return xd(e)},eUe.xj=function(e){return Je(e17,eUP,2,e,6,1)},Y6(eQV,"XMLTypePackageImpl/26",1877),eTS(1878,1,eQS,uL),eUe.wj=function(e){return M4(e,15)},eUe.xj=function(e){return Je(e1H,ezZ,15,e,0,1)},Y6(eQV,"XMLTypePackageImpl/27",1878),eTS(1879,1,eQS,uC),eUe.wj=function(e){return M4(e,15)},eUe.xj=function(e){return Je(e1H,ezZ,15,e,0,1)},Y6(eQV,"XMLTypePackageImpl/28",1879),eTS(1880,1,eQS,uI),eUe.wj=function(e){return xd(e)},eUe.xj=function(e){return Je(e17,eUP,2,e,6,1)},Y6(eQV,"XMLTypePackageImpl/29",1880),eTS(1854,1,eQS,uD),eUe.wj=function(e){return M4(e,667)},eUe.xj=function(e){return Je(tvt,eUp,2021,e,0,1)},Y6(eQV,"XMLTypePackageImpl/3",1854),eTS(1881,1,eQS,uN),eUe.wj=function(e){return M4(e,19)},eUe.xj=function(e){return Je(e16,eUP,19,e,0,1)},Y6(eQV,"XMLTypePackageImpl/30",1881),eTS(1882,1,eQS,uP),eUe.wj=function(e){return xd(e)},eUe.xj=function(e){return Je(e17,eUP,2,e,6,1)},Y6(eQV,"XMLTypePackageImpl/31",1882),eTS(1883,1,eQS,uR),eUe.wj=function(e){return M4(e,162)},eUe.xj=function(e){return Je(e15,eUP,162,e,0,1)},Y6(eQV,"XMLTypePackageImpl/32",1883),eTS(1884,1,eQS,uj),eUe.wj=function(e){return xd(e)},eUe.xj=function(e){return Je(e17,eUP,2,e,6,1)},Y6(eQV,"XMLTypePackageImpl/33",1884),eTS(1885,1,eQS,uF),eUe.wj=function(e){return xd(e)},eUe.xj=function(e){return Je(e17,eUP,2,e,6,1)},Y6(eQV,"XMLTypePackageImpl/34",1885),eTS(1886,1,eQS,uY),eUe.wj=function(e){return xd(e)},eUe.xj=function(e){return Je(e17,eUP,2,e,6,1)},Y6(eQV,"XMLTypePackageImpl/35",1886),eTS(1887,1,eQS,uB),eUe.wj=function(e){return xd(e)},eUe.xj=function(e){return Je(e17,eUP,2,e,6,1)},Y6(eQV,"XMLTypePackageImpl/36",1887),eTS(1888,1,eQS,uU),eUe.wj=function(e){return M4(e,15)},eUe.xj=function(e){return Je(e1H,ezZ,15,e,0,1)},Y6(eQV,"XMLTypePackageImpl/37",1888),eTS(1889,1,eQS,uH),eUe.wj=function(e){return M4(e,15)},eUe.xj=function(e){return Je(e1H,ezZ,15,e,0,1)},Y6(eQV,"XMLTypePackageImpl/38",1889),eTS(1890,1,eQS,u$),eUe.wj=function(e){return xd(e)},eUe.xj=function(e){return Je(e17,eUP,2,e,6,1)},Y6(eQV,"XMLTypePackageImpl/39",1890),eTS(1855,1,eQS,uz),eUe.wj=function(e){return M4(e,668)},eUe.xj=function(e){return Je(tvn,eUp,2022,e,0,1)},Y6(eQV,"XMLTypePackageImpl/4",1855),eTS(1891,1,eQS,uG),eUe.wj=function(e){return xd(e)},eUe.xj=function(e){return Je(e17,eUP,2,e,6,1)},Y6(eQV,"XMLTypePackageImpl/40",1891),eTS(1892,1,eQS,uW),eUe.wj=function(e){return xd(e)},eUe.xj=function(e){return Je(e17,eUP,2,e,6,1)},Y6(eQV,"XMLTypePackageImpl/41",1892),eTS(1893,1,eQS,uK),eUe.wj=function(e){return xd(e)},eUe.xj=function(e){return Je(e17,eUP,2,e,6,1)},Y6(eQV,"XMLTypePackageImpl/42",1893),eTS(1894,1,eQS,uV),eUe.wj=function(e){return xd(e)},eUe.xj=function(e){return Je(e17,eUP,2,e,6,1)},Y6(eQV,"XMLTypePackageImpl/43",1894),eTS(1895,1,eQS,uq),eUe.wj=function(e){return xd(e)},eUe.xj=function(e){return Je(e17,eUP,2,e,6,1)},Y6(eQV,"XMLTypePackageImpl/44",1895),eTS(1896,1,eQS,uZ),eUe.wj=function(e){return M4(e,184)},eUe.xj=function(e){return Je(e18,eUP,184,e,0,1)},Y6(eQV,"XMLTypePackageImpl/45",1896),eTS(1897,1,eQS,uX),eUe.wj=function(e){return xd(e)},eUe.xj=function(e){return Je(e17,eUP,2,e,6,1)},Y6(eQV,"XMLTypePackageImpl/46",1897),eTS(1898,1,eQS,uJ),eUe.wj=function(e){return xd(e)},eUe.xj=function(e){return Je(e17,eUP,2,e,6,1)},Y6(eQV,"XMLTypePackageImpl/47",1898),eTS(1899,1,eQS,uQ),eUe.wj=function(e){return xd(e)},eUe.xj=function(e){return Je(e17,eUP,2,e,6,1)},Y6(eQV,"XMLTypePackageImpl/48",1899),eTS(eHx,1,eQS,u1),eUe.wj=function(e){return M4(e,184)},eUe.xj=function(e){return Je(e18,eUP,184,e,0,1)},Y6(eQV,"XMLTypePackageImpl/49",eHx),eTS(1856,1,eQS,u0),eUe.wj=function(e){return M4(e,669)},eUe.xj=function(e){return Je(tvr,eUp,2023,e,0,1)},Y6(eQV,"XMLTypePackageImpl/5",1856),eTS(1901,1,eQS,u2),eUe.wj=function(e){return M4(e,162)},eUe.xj=function(e){return Je(e15,eUP,162,e,0,1)},Y6(eQV,"XMLTypePackageImpl/50",1901),eTS(1902,1,eQS,u3),eUe.wj=function(e){return xd(e)},eUe.xj=function(e){return Je(e17,eUP,2,e,6,1)},Y6(eQV,"XMLTypePackageImpl/51",1902),eTS(1903,1,eQS,u4),eUe.wj=function(e){return M4(e,19)},eUe.xj=function(e){return Je(e16,eUP,19,e,0,1)},Y6(eQV,"XMLTypePackageImpl/52",1903),eTS(1857,1,eQS,u6),eUe.wj=function(e){return xd(e)},eUe.xj=function(e){return Je(e17,eUP,2,e,6,1)},Y6(eQV,"XMLTypePackageImpl/6",1857),eTS(1858,1,eQS,u5),eUe.wj=function(e){return M4(e,190)},eUe.xj=function(e){return Je(tyk,eUP,190,e,0,2)},Y6(eQV,"XMLTypePackageImpl/7",1858),eTS(1859,1,eQS,u8),eUe.wj=function(e){return xl(e)},eUe.xj=function(e){return Je(e11,eUP,476,e,8,1)},Y6(eQV,"XMLTypePackageImpl/8",1859),eTS(1860,1,eQS,u9),eUe.wj=function(e){return M4(e,217)},eUe.xj=function(e){return Je(e10,eUP,217,e,0,1)},Y6(eQV,"XMLTypePackageImpl/9",1860),eTS(50,60,eHr,gX),Y6(e1l,"RegEx/ParseException",50),eTS(820,1,{},u7),eUe.sl=function(e){return e16*n)throw p7(new gX(eBJ((Mo(),eJd))));n=16*n+i}if(125!=this.a)throw p7(new gX(eBJ((Mo(),eJh))));if(n>e1f)throw p7(new gX(eBJ((Mo(),eJp))));e=n}else{if(i=0,0!=this.c||(i=eb0(this.a))<0||(n=i,eBM(this),0!=this.c||(i=eb0(this.a))<0))throw p7(new gX(eBJ((Mo(),eJf))));e=n=16*n+i}break;case 117:if(r=0,eBM(this),0!=this.c||(r=eb0(this.a))<0||(t=r,eBM(this),0!=this.c||(r=eb0(this.a))<0)||(t=16*t+r,eBM(this),0!=this.c||(r=eb0(this.a))<0)||(t=16*t+r,eBM(this),0!=this.c||(r=eb0(this.a))<0))throw p7(new gX(eBJ((Mo(),eJf))));e=t=16*t+r;break;case 118:if(eBM(this),0!=this.c||(r=eb0(this.a))<0||(t=r,eBM(this),0!=this.c||(r=eb0(this.a))<0)||(t=16*t+r,eBM(this),0!=this.c||(r=eb0(this.a))<0)||(t=16*t+r,eBM(this),0!=this.c||(r=eb0(this.a))<0)||(t=16*t+r,eBM(this),0!=this.c||(r=eb0(this.a))<0)||(t=16*t+r,eBM(this),0!=this.c||(r=eb0(this.a))<0))throw p7(new gX(eBJ((Mo(),eJf))));if((t=16*t+r)>e1f)throw p7(new gX(eBJ((Mo(),"parser.descappe.4"))));e=t;break;case 65:case 90:case 122:throw p7(new gX(eBJ((Mo(),eJb))))}return e},eUe.ul=function(e){var t,n;switch(e){case 100:n=(32&this.e)==32?eYB("Nd",!0):(eBG(),tv9);break;case 68:n=(32&this.e)==32?eYB("Nd",!1):(eBG(),tyr);break;case 119:n=(32&this.e)==32?eYB("IsWord",!0):(eBG(),tyd);break;case 87:n=(32&this.e)==32?eYB("IsWord",!1):(eBG(),tya);break;case 115:n=(32&this.e)==32?eYB("IsSpace",!0):(eBG(),tys);break;case 83:n=(32&this.e)==32?eYB("IsSpace",!1):(eBG(),tyi);break;default:throw p7(new go(e1d+(t=e).toString(16)))}return n},eUe.vl=function(e){var t,n,r,i,a,o,s,u,c,l,f,d;for(this.b=1,eBM(this),t=null,0==this.c&&94==this.a?(eBM(this),e?l=(eBG(),eBG(),++tyv,new WZ(5)):(t=(eBG(),eBG(),++tyv,new WZ(4)),eLw(t,0,e1f),l=(++tyv,new WZ(4)))):l=(eBG(),eBG(),++tyv,new WZ(4)),i=!0;1!=(d=this.c)&&(0!=d||93!=this.a||i);){if(i=!1,n=this.a,r=!1,10==d)switch(n){case 100:case 68:case 119:case 87:case 115:case 83:ePR(l,this.ul(n)),r=!0;break;case 105:case 73:case 99:case 67:(n=this.Ll(l,n))<0&&(r=!0);break;case 112:case 80:if(!(f=ext(this,n)))throw p7(new gX(eBJ((Mo(),eJe))));ePR(l,f),r=!0;break;default:n=this.tl()}else if(20==d){if((o=AG(this.i,58,this.d))<0)throw p7(new gX(eBJ((Mo(),eJt))));if(s=!0,94==UI(this.i,this.d)&&(++this.d,s=!1),!(u=JI(a=Az(this.i,this.d,o),s,(512&this.e)==512)))throw p7(new gX(eBJ((Mo(),eJr))));if(ePR(l,u),r=!0,o+1>=this.j||93!=UI(this.i,o+1))throw p7(new gX(eBJ((Mo(),eJt))));this.d=o+2}if(eBM(this),!r){if(0!=this.c||45!=this.a)eLw(l,n,n);else{if(eBM(this),1==(d=this.c))throw p7(new gX(eBJ((Mo(),eJn))));0==d&&93==this.a?(eLw(l,n,n),eLw(l,45,45)):(c=this.a,10==d&&(c=this.tl()),eBM(this),eLw(l,n,c))}}(this.e&eXt)==eXt&&0==this.c&&44==this.a&&eBM(this)}if(1==this.c)throw p7(new gX(eBJ((Mo(),eJn))));return t&&(ej0(t,l),l=t),eMS(l),eRo(l),this.b=0,eBM(this),l},eUe.wl=function(){var e,t,n,r;for(n=this.vl(!1);7!=(r=this.c);)if(e=this.a,0==r&&(45==e||38==e)||4==r){if(eBM(this),9!=this.c)throw p7(new gX(eBJ((Mo(),eJu))));if(t=this.vl(!1),4==r)ePR(n,t);else if(45==e)ej0(n,t);else if(38==e)ejO(n,t);else throw p7(new go("ASSERT"))}else throw p7(new gX(eBJ((Mo(),eJc))));return eBM(this),n},eUe.xl=function(){var e,t;return e=this.a-48,t=(eBG(),eBG(),++tyv,new zc(12,null,e)),this.g||(this.g=new bZ),bY(this.g,new pX(e)),eBM(this),t},eUe.yl=function(){return eBM(this),eBG(),tyu},eUe.zl=function(){return eBM(this),eBG(),tyo},eUe.Al=function(){throw p7(new gX(eBJ((Mo(),eJm))))},eUe.Bl=function(){throw p7(new gX(eBJ((Mo(),eJm))))},eUe.Cl=function(){return eBM(this),esV()},eUe.Dl=function(){return eBM(this),eBG(),tyl},eUe.El=function(){return eBM(this),eBG(),tyh},eUe.Fl=function(){var e;if(this.d>=this.j||(65504&(e=UI(this.i,this.d++)))!=64)throw p7(new gX(eBJ((Mo(),eX5))));return eBM(this),eBG(),eBG(),++tyv,new jb(0,e-64)},eUe.Gl=function(){return eBM(this),eNw()},eUe.Hl=function(){return eBM(this),eBG(),typ},eUe.Il=function(){var e;return e=(eBG(),eBG(),++tyv,new jb(0,105)),eBM(this),e},eUe.Jl=function(){return eBM(this),eBG(),tyf},eUe.Kl=function(){return eBM(this),eBG(),tyc},eUe.Ll=function(e,t){return this.tl()},eUe.Ml=function(){return eBM(this),eBG(),tyt},eUe.Nl=function(){var e,t,n,r,i;if(this.d+1>=this.j)throw p7(new gX(eBJ((Mo(),eX3))));if(r=-1,t=null,49<=(e=UI(this.i,this.d))&&e<=57){if(r=e-48,this.g||(this.g=new bZ),bY(this.g,new pX(r)),++this.d,41!=UI(this.i,this.d))throw p7(new gX(eBJ((Mo(),eX1))));++this.d}else switch(63==e&&--this.d,eBM(this),(t=eBs(this)).e){case 20:case 21:case 22:case 23:break;case 8:if(7!=this.c)throw p7(new gX(eBJ((Mo(),eX1))));break;default:throw p7(new gX(eBJ((Mo(),eX4))))}if(eBM(this),i=ehT(this),n=null,2==i.e){if(2!=i.em())throw p7(new gX(eBJ((Mo(),eX6))));n=i.am(1),i=i.am(0)}if(7!=this.c)throw p7(new gX(eBJ((Mo(),eX1))));return eBM(this),eBG(),eBG(),++tyv,new ee_(r,t,i,n)},eUe.Ol=function(){return eBM(this),eBG(),tyn},eUe.Pl=function(){var e;if(eBM(this),e=F4(24,ehT(this)),7!=this.c)throw p7(new gX(eBJ((Mo(),eX1))));return eBM(this),e},eUe.Ql=function(){var e;if(eBM(this),e=F4(20,ehT(this)),7!=this.c)throw p7(new gX(eBJ((Mo(),eX1))));return eBM(this),e},eUe.Rl=function(){var e;if(eBM(this),e=F4(22,ehT(this)),7!=this.c)throw p7(new gX(eBJ((Mo(),eX1))));return eBM(this),e},eUe.Sl=function(){var e,t,n,r,i;for(e=0,n=0,t=-1;this.d=this.j)throw p7(new gX(eBJ((Mo(),eX0))));if(45==t){for(++this.d;this.d=this.j)throw p7(new gX(eBJ((Mo(),eX0))))}if(58==t){if(++this.d,eBM(this),r=Bu(ehT(this),e,n),7!=this.c)throw p7(new gX(eBJ((Mo(),eX1))));eBM(this)}else if(41==t)++this.d,eBM(this),r=Bu(ehT(this),e,n);else throw p7(new gX(eBJ((Mo(),eX2))));return r},eUe.Tl=function(){var e;if(eBM(this),e=F4(21,ehT(this)),7!=this.c)throw p7(new gX(eBJ((Mo(),eX1))));return eBM(this),e},eUe.Ul=function(){var e;if(eBM(this),e=F4(23,ehT(this)),7!=this.c)throw p7(new gX(eBJ((Mo(),eX1))));return eBM(this),e},eUe.Vl=function(){var e,t;if(eBM(this),e=this.f++,t=F6(ehT(this),e),7!=this.c)throw p7(new gX(eBJ((Mo(),eX1))));return eBM(this),t},eUe.Wl=function(){var e;if(eBM(this),e=F6(ehT(this),0),7!=this.c)throw p7(new gX(eBJ((Mo(),eX1))));return eBM(this),e},eUe.Xl=function(e){return(eBM(this),5==this.c)?(eBM(this),jS(e,(eBG(),eBG(),++tyv,new qa(9,e)))):jS(e,(eBG(),eBG(),++tyv,new qa(3,e)))},eUe.Yl=function(e){var t;return eBM(this),t=(eBG(),eBG(),++tyv,new Mr(2)),5==this.c?(eBM(this),eRv(t,tye),eRv(t,e)):(eRv(t,e),eRv(t,tye)),t},eUe.Zl=function(e){return(eBM(this),5==this.c)?(eBM(this),eBG(),eBG(),++tyv,new qa(9,e)):(eBG(),eBG(),++tyv,new qa(3,e))},eUe.a=0,eUe.b=0,eUe.c=0,eUe.d=0,eUe.e=0,eUe.f=1,eUe.g=null,eUe.j=0,Y6(e1l,"RegEx/RegexParser",820),eTS(1824,820,{},mU),eUe.sl=function(e){return!1},eUe.tl=function(){return eCn(this)},eUe.ul=function(e){return eDu(e)},eUe.vl=function(e){return eBL(this)},eUe.wl=function(){throw p7(new gX(eBJ((Mo(),eJm))))},eUe.xl=function(){throw p7(new gX(eBJ((Mo(),eJm))))},eUe.yl=function(){throw p7(new gX(eBJ((Mo(),eJm))))},eUe.zl=function(){throw p7(new gX(eBJ((Mo(),eJm))))},eUe.Al=function(){return eBM(this),eDu(67)},eUe.Bl=function(){return eBM(this),eDu(73)},eUe.Cl=function(){throw p7(new gX(eBJ((Mo(),eJm))))},eUe.Dl=function(){throw p7(new gX(eBJ((Mo(),eJm))))},eUe.El=function(){throw p7(new gX(eBJ((Mo(),eJm))))},eUe.Fl=function(){return eBM(this),eDu(99)},eUe.Gl=function(){throw p7(new gX(eBJ((Mo(),eJm))))},eUe.Hl=function(){throw p7(new gX(eBJ((Mo(),eJm))))},eUe.Il=function(){return eBM(this),eDu(105)},eUe.Jl=function(){throw p7(new gX(eBJ((Mo(),eJm))))},eUe.Kl=function(){throw p7(new gX(eBJ((Mo(),eJm))))},eUe.Ll=function(e,t){return ePR(e,eDu(t)),-1},eUe.Ml=function(){return eBM(this),eBG(),eBG(),++tyv,new jb(0,94)},eUe.Nl=function(){throw p7(new gX(eBJ((Mo(),eJm))))},eUe.Ol=function(){return eBM(this),eBG(),eBG(),++tyv,new jb(0,36)},eUe.Pl=function(){throw p7(new gX(eBJ((Mo(),eJm))))},eUe.Ql=function(){throw p7(new gX(eBJ((Mo(),eJm))))},eUe.Rl=function(){throw p7(new gX(eBJ((Mo(),eJm))))},eUe.Sl=function(){throw p7(new gX(eBJ((Mo(),eJm))))},eUe.Tl=function(){throw p7(new gX(eBJ((Mo(),eJm))))},eUe.Ul=function(){throw p7(new gX(eBJ((Mo(),eJm))))},eUe.Vl=function(){var e;if(eBM(this),e=F6(ehT(this),0),7!=this.c)throw p7(new gX(eBJ((Mo(),eX1))));return eBM(this),e},eUe.Wl=function(){throw p7(new gX(eBJ((Mo(),eJm))))},eUe.Xl=function(e){return eBM(this),jS(e,(eBG(),eBG(),++tyv,new qa(3,e)))},eUe.Yl=function(e){var t;return eBM(this),t=(eBG(),eBG(),++tyv,new Mr(2)),eRv(t,e),eRv(t,tye),t},eUe.Zl=function(e){return eBM(this),eBG(),eBG(),++tyv,new qa(3,e)};var tva=null,tvo=null;Y6(e1l,"RegEx/ParserForXMLSchema",1824),eTS(117,1,e1k,pJ),eUe.$l=function(e){throw p7(new go("Not supported."))},eUe._l=function(){return -1},eUe.am=function(e){return null},eUe.bm=function(){return null},eUe.cm=function(e){},eUe.dm=function(e){},eUe.em=function(){return 0},eUe.Ib=function(){return this.fm(0)},eUe.fm=function(e){return 11==this.e?".":""},eUe.e=0;var tvs,tvu,tvc,tvl,tvf,tvd,tvh,tvp,tvb,tvm,tvg,tvv,tvy,tvw,tv_,tvE,tvS,tvk,tvx,tvT,tvM,tvO,tvA,tvL,tvC,tvI,tvD,tvN,tvP,tvR,tvj,tvF,tvY,tvB,tvU,tvH,tv$,tvz,tvG,tvW,tvK,tvV,tvq,tvZ,tvX,tvJ,tvQ,tv1,tv0,tv2,tv3,tv4,tv6,tv5,tv8,tv9,tv7,tye,tyt,tyn,tyr,tyi,tya,tyo,tys,tyu,tyc,tyl,tyf,tyd,tyh,typ,tyb=null,tym=null,tyg=null,tyv=0,tyy=Y6(e1l,"RegEx/Token",117);eTS(136,117,{3:1,136:1,117:1},WZ),eUe.fm=function(e){var t,n,r;if(4==this.e){if(this==tv7)n=".";else if(this==tv9)n="\\d";else if(this==tyd)n="\\w";else if(this==tys)n="\\s";else{for(r=new vs,r.a+="[",t=0;t0&&(r.a+=","),this.b[t]===this.b[t+1]?xk(r,eN$(this.b[t])):(xk(r,eN$(this.b[t])),r.a+="-",xk(r,eN$(this.b[t+1])));r.a+="]",n=r.a}}else if(this==tyr)n="\\D";else if(this==tya)n="\\W";else if(this==tyi)n="\\S";else{for(r=new vs,r.a+="[^",t=0;t0&&(r.a+=","),this.b[t]===this.b[t+1]?xk(r,eN$(this.b[t])):(xk(r,eN$(this.b[t])),r.a+="-",xk(r,eN$(this.b[t+1])));r.a+="]",n=r.a}return n},eUe.a=!1,eUe.c=!1,Y6(e1l,"RegEx/RangeToken",136),eTS(584,1,{584:1},pX),eUe.a=0,Y6(e1l,"RegEx/RegexParser/ReferencePosition",584),eTS(583,1,{3:1,583:1},wu),eUe.Fb=function(e){var t;return!!(null!=e&&M4(e,583))&&(t=Pp(e,583),IE(this.b,t.b)&&this.a==t.a)},eUe.Hb=function(){return ebA(this.b+"/"+eAN(this.a))},eUe.Ib=function(){return this.c.fm(this.a)},eUe.a=0,Y6(e1l,"RegEx/RegularExpression",583),eTS(223,117,e1k,jb),eUe._l=function(){return this.a},eUe.fm=function(e){var t,n,r;switch(this.e){case 0:switch(this.a){case 124:case 42:case 43:case 63:case 40:case 41:case 46:case 91:case 123:case 92:r="\\"+CB(this.a&eHd);break;case 12:r="\\f";break;case 10:r="\\n";break;case 13:r="\\r";break;case 9:r="\\t";break;case 27:r="\\e";break;default:r=this.a>=eH3?"\\v"+Az(n="0"+(t=this.a>>>0).toString(16),n.length-6,n.length):""+CB(this.a&eHd)}break;case 8:r=this==tyt||this==tyn?""+CB(this.a&eHd):"\\"+CB(this.a&eHd);break;default:r=null}return r},eUe.a=0,Y6(e1l,"RegEx/Token/CharToken",223),eTS(309,117,e1k,qa),eUe.am=function(e){return this.a},eUe.cm=function(e){this.b=e},eUe.dm=function(e){this.c=e},eUe.em=function(){return 1},eUe.fm=function(e){var t;if(3==this.e){if(this.c<0&&this.b<0)t=this.a.fm(e)+"*";else if(this.c==this.b)t=this.a.fm(e)+"{"+this.c+"}";else if(this.c>=0&&this.b>=0)t=this.a.fm(e)+"{"+this.c+","+this.b+"}";else if(this.c>=0&&this.b<0)t=this.a.fm(e)+"{"+this.c+",}";else throw p7(new go("Token#toString(): CLOSURE "+this.c+eUd+this.b))}else if(this.c<0&&this.b<0)t=this.a.fm(e)+"*?";else if(this.c==this.b)t=this.a.fm(e)+"{"+this.c+"}?";else if(this.c>=0&&this.b>=0)t=this.a.fm(e)+"{"+this.c+","+this.b+"}?";else if(this.c>=0&&this.b<0)t=this.a.fm(e)+"{"+this.c+",}?";else throw p7(new go("Token#toString(): NONGREEDYCLOSURE "+this.c+eUd+this.b));return t},eUe.b=0,eUe.c=0,Y6(e1l,"RegEx/Token/ClosureToken",309),eTS(821,117,e1k,YD),eUe.am=function(e){return 0==e?this.a:this.b},eUe.em=function(){return 2},eUe.fm=function(e){var t;return 3==this.b.e&&this.b.am(0)==this.a?this.a.fm(e)+"+":9==this.b.e&&this.b.am(0)==this.a?this.a.fm(e)+"+?":this.a.fm(e)+""+this.b.fm(e)},Y6(e1l,"RegEx/Token/ConcatToken",821),eTS(1822,117,e1k,ee_),eUe.am=function(e){if(0==e)return this.d;if(1==e)return this.b;throw p7(new go("Internal Error: "+e))},eUe.em=function(){return this.b?2:1},eUe.fm=function(e){var t;return t=this.c>0?"(?("+this.c+")":8==this.a.e?"(?("+this.a+")":"(?"+this.a,this.b?t+=this.d+"|"+this.b+")":t+=this.d+")",t},eUe.c=0,Y6(e1l,"RegEx/Token/ConditionToken",1822),eTS(1823,117,e1k,Wq),eUe.am=function(e){return this.b},eUe.em=function(){return 1},eUe.fm=function(e){return"(?"+(0==this.a?"":eAN(this.a))+(0==this.c?"":eAN(this.c))+":"+this.b.fm(e)+")"},eUe.a=0,eUe.c=0,Y6(e1l,"RegEx/Token/ModifierToken",1823),eTS(822,117,e1k,BR),eUe.am=function(e){return this.a},eUe.em=function(){return 1},eUe.fm=function(e){var t;switch(t=null,this.e){case 6:t=0==this.b?"(?:"+this.a.fm(e)+")":"("+this.a.fm(e)+")";break;case 20:t="(?="+this.a.fm(e)+")";break;case 21:t="(?!"+this.a.fm(e)+")";break;case 22:t="(?<="+this.a.fm(e)+")";break;case 23:t="(?"+this.a.fm(e)+")"}return t},eUe.b=0,Y6(e1l,"RegEx/Token/ParenToken",822),eTS(521,117,{3:1,117:1,521:1},zc),eUe.bm=function(){return this.b},eUe.fm=function(e){return 12==this.e?"\\"+this.a:eTd(this.b)},eUe.a=0,Y6(e1l,"RegEx/Token/StringToken",521),eTS(465,117,e1k,Mr),eUe.$l=function(e){eRv(this,e)},eUe.am=function(e){return Pp(Bz(this.a,e),117)},eUe.em=function(){return this.a?this.a.a.c.length:0},eUe.fm=function(e){var t,n,r,i,a;if(1==this.e){if(2==this.a.a.c.length)t=Pp(Bz(this.a,0),117),i=3==(n=Pp(Bz(this.a,1),117)).e&&n.am(0)==t?t.fm(e)+"+":9==n.e&&n.am(0)==t?t.fm(e)+"+?":t.fm(e)+""+n.fm(e);else{for(r=0,a=new vs;r=this.c.b:this.a<=this.c.b},eUe.Sb=function(){return this.b>0},eUe.Tb=function(){return this.b},eUe.Vb=function(){return this.b-1},eUe.Qb=function(){throw p7(new gW(e1L))},eUe.a=0,eUe.b=0,Y6(e1M,"ExclusiveRange/RangeIterator",254);var tyw=Ui(eJX,"C"),ty_=Ui(eJ1,"I"),tyE=Ui(eUi,"Z"),tyS=Ui(eJ0,"J"),tyk=Ui(eJZ,"B"),tyx=Ui(eJJ,"D"),tyT=Ui(eJQ,"F"),tyM=Ui(eJ2,"S"),tyO=RL("org.eclipse.elk.core.labels","ILabelManager"),tyA=RL(eX_,"DiagnosticChain"),tyL=RL(eQx,"ResourceSet"),tyC=Y6(eX_,"InvocationTargetException",null),tyI=(vg(),q5),tyD=tyD=eyP;enI(bs),eiE("permProps",[[[e1C,e1I],[e1D,"gecko1_8"]],[[e1C,e1I],[e1D,"ie10"]],[[e1C,e1I],[e1D,"ie8"]],[[e1C,e1I],[e1D,"ie9"]],[[e1C,e1I],[e1D,"safari"]]]),tyD(null,"elk",null)},3379(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return t&&("object"==typeof t||"function"==typeof t)?t:e}function a(e,t){if("function"!=typeof t&&null!==t)throw 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 o=function(e){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};r(this,t);var a=Object.assign({},e),o=!1;try{o=!0}catch(s){}if(e.workerUrl){if(o){var u=n(84763);a.workerFactory=function(e){return new u(e)}}else console.warn("Web worker requested but 'web-worker' package not installed. \nConsider installing the package or pass your own 'workerFactory' to ELK's constructor.\n... Falling back to non-web worker version.")}if(!a.workerFactory){var c=n(55273).Worker;a.workerFactory=function(e){return new c(e)}}return i(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,a))}return a(t,e),t}(n(4005).default);Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports=o,o.default=o},17187(e){"use strict";var t,n="object"==typeof Reflect?Reflect:null,r=n&&"function"==typeof n.apply?n.apply:function(e,t,n){return Function.prototype.apply.call(e,t,n)};function i(e){console&&console.warn&&console.warn(e)}t=n&&"function"==typeof n.ownKeys?n.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var a=Number.isNaN||function(e){return e!=e};function o(){o.init.call(this)}e.exports=o,e.exports.once=v,o.EventEmitter=o,o.prototype._events=void 0,o.prototype._eventsCount=0,o.prototype._maxListeners=void 0;var s=10;function u(e){if("function"!=typeof e)throw TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}function c(e){return void 0===e._maxListeners?o.defaultMaxListeners:e._maxListeners}function l(e,t,n,r){if(u(n),void 0===(o=e._events)?(o=e._events=Object.create(null),e._eventsCount=0):(void 0!==o.newListener&&(e.emit("newListener",t,n.listener?n.listener:n),o=e._events),s=o[t]),void 0===s)s=o[t]=n,++e._eventsCount;else if("function"==typeof s?s=o[t]=r?[n,s]:[s,n]:r?s.unshift(n):s.push(n),(a=c(e))>0&&s.length>a&&!s.warned){s.warned=!0;var a,o,s,l=Error("Possible EventEmitter memory leak detected. "+s.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");l.name="MaxListenersExceededWarning",l.emitter=e,l.type=t,l.count=s.length,i(l)}return e}function f(){if(!this.fired)return(this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length)?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function d(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},i=f.bind(r);return i.listener=n,r.wrapFn=i,i}function h(e,t,n){var r=e._events;if(void 0===r)return[];var i=r[t];return void 0===i?[]:"function"==typeof i?n?[i.listener||i]:[i]:n?g(i):b(i,i.length)}function p(e){var t=this._events;if(void 0!==t){var n=t[e];if("function"==typeof n)return 1;if(void 0!==n)return n.length}return 0}function b(e,t){for(var n=Array(t),r=0;r0&&(o=t[0]),o instanceof Error)throw o;var o,s=Error("Unhandled error."+(o?" ("+o.message+")":""));throw s.context=o,s}var u=a[e];if(void 0===u)return!1;if("function"==typeof u)r(u,this,t);else for(var c=u.length,l=b(u,c),n=0;n=0;a--)if(n[a]===t||n[a].listener===t){o=n[a].listener,i=a;break}if(i<0)return this;0===i?n.shift():m(n,i),1===n.length&&(r[e]=n[0]),void 0!==r.removeListener&&this.emit("removeListener",e,o||t)}return this},o.prototype.off=o.prototype.removeListener,o.prototype.removeAllListeners=function(e){var t,n,r;if(void 0===(n=this._events))return this;if(void 0===n.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==n[e]&&(0==--this._eventsCount?this._events=Object.create(null):delete n[e]),this;if(0===arguments.length){var i,a=Object.keys(n);for(r=0;r=0;r--)this.removeListener(e,t[r]);return this},o.prototype.listeners=function(e){return h(this,e,!0)},o.prototype.rawListeners=function(e){return h(this,e,!1)},o.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):p.call(e,t)},o.prototype.listenerCount=p,o.prototype.eventNames=function(){return this._eventsCount>0?t(this._events):[]}},16839(e,t,n){var r=n(25323),i=n(31744),a=n(98361),o=n(4514);e.exports={graphlib:n(32478),read:r,readMany:i,write:a,version:o,type:"dot",buffer:!1}},11100(e,t,n){"use strict";var r=n(47755),i=n(32478).Graph;function a(e){var t="graph"!==e.type,n=!e.strict,a=[{node:{},edge:{}}],s=e.id,u=new i({directed:t,multigraph:n,compound:!0});return u.setGraph(null===s?{}:{id:s}),r.each(e.stmts,function(e){o(u,e,a)}),u}function o(e,t,n,r){switch(t.type){case"node":s(e,t,n,r);break;case"edge":u(e,t,n,r);break;case"subgraph":c(e,t,n,r);break;case"attr":l(e,t,n);break;case"inlineAttr":f(e,t,n,r)}}function s(e,t,n,i){var a=t.id,o=t.attrs;h(e,a,n,i),r.merge(e.node(a),o)}function u(e,t,n,i){var a,s,u=t.attrs;r.each(t.elems,function(t){switch(o(e,t,n,i),t.type){case"node":s=[t.id];break;case"subgraph":s=p(t)}r.each(a,function(t){r.each(s,function(i){var a;e.hasEdge(t,i)&&e.isMultigraph()&&(a=r.uniqueId("edge")),e.hasEdge(t,i,a)||e.setEdge(t,i,r.clone(r.last(n).edge),a),r.merge(e.edge(t,i,a),u)})}),a=s})}function c(e,t,n,i){var a=t.id;void 0===a&&(a=d(e)),n.push(r.clone(r.last(n))),h(e,a,n,i),r.each(t.stmts,function(t){o(e,t,n,a)}),e.children(a).length||e.removeNode(a),n.pop()}function l(e,t,n){r.merge(r.last(n)[t.attrType],t.attrs)}function f(e,t,n,i){r.merge(i?e.node(i):e.graph(),t.attrs)}function d(e){var t;do t=r.uniqueId("sg");while(e.hasNode(t))return t}function h(e,t,n,i){e.hasNode(t)||(e.setNode(t,r.clone(r.last(n).node)),e.setParent(t,i))}function p(e){var t,n={},i=[],a=i.push.bind(i);for(a(e);i.length;)switch((t=i.pop()).type){case"node":n[t.id]=!0;break;case"edge":r.each(t.elems,a);break;case"subgraph":r.each(t.stmts,a)}return r.keys(n)}e.exports=a},4644(e,t,n){e.exports=function(){function e(e,t){function n(){this.constructor=e}n.prototype=t.prototype,e.prototype=new n}function t(e,t,n,r,i,a){this.message=e,this.expected=t,this.found=n,this.offset=r,this.line=i,this.column=a,this.name="SyntaxError"}function r(e){var r,i,a=arguments.length>1?arguments[1]:{},o={},s={start:tf,graphStmt:td},u=tf,c=o,l=null,f="{",d={type:"literal",value:"{",description:'"{"'},h="}",p={type:"literal",value:"}",description:'"}"'},b=function(e,t,n,r){return{type:t,id:n,strict:null!==e,stmts:r}},m=";",g={type:"literal",value:";",description:'";"'},v=function(e,t){for(var n=[e],r=0;r",description:'"->"'},U=function(e,t){var n=[e];if(t)for(var r=0;rt&&(tr=0,ti={line:1,column:1,seenCR:!1}),n(ti,tr,t),tr=t),ti}function tc(e){!(ttta&&(ta=tt,to=[]),to.push(e))}function tl(n,r,i){function a(e){var t=1;for(e.sort(function(e,t){return e.descriptiont.description?1:0});t1?o.slice(0,-1).join(", ")+" or "+o[e.length-1]:o[0])+" but "+(i=t?'"'+n(t)+'"':"end of input")+" found."}var s=tu(i),u=itt?(s=e.charAt(tt),tt++):(s=o,0===ts&&tc(te)),s!==o?i=a=[a,s]:(tt=i,i=c)):(tt=i,i=c);i!==o;)r.push(i),i=tt,a=tt,ts++,e.substr(tt,2)===e9?(s=e9,tt+=2):(s=o,0===ts&&tc(e7)),ts--,s===o?a=F:(tt=a,a=c),a!==o?(e.length>tt?(s=e.charAt(tt),tt++):(s=o,0===ts&&tc(te)),s!==o?i=a=[a,s]:(tt=i,i=c)):(tt=i,i=c);r!==o?(e.substr(tt,2)===e9?(i=e9,tt+=2):(i=o,0===ts&&tc(e7)),i!==o?t=n=[n,r,i]:(tt=t,t=c)):(tt=t,t=c)}else tt=t,t=c}return ts--,t===o&&(n=o,0===ts&&tc(e0)),t}function tY(){var e;return(e=tj())===o&&(e=tF()),e}var tB=n(47755);if((i=u())!==o&&tt===e.length)return i;throw i!==o&&tt":"--",n=new f;e.isMultigraph()||n.write("strict "),n.writeLine((e.isDirected()?"digraph":"graph")+" {"),n.indent();var i=e.graph();return r.isObject(i)&&r.each(i,function(e,t){n.writeLine(l(t)+"="+l(e)+";")}),o(e,void 0,n),e.edges().forEach(function(r){u(e,r,t,n)}),n.unindent(),n.writeLine("}"),n.toString()}function o(e,t,n){var i=e.isCompound()?e.children(t):e.nodes();r.each(i,function(t){e.isCompound()&&e.children(t).length?(n.writeLine("subgraph "+l(t)+" {"),n.indent(),r.isObject(e.node(t))&&r.map(e.node(t),function(e,t){n.writeLine(l(t)+"="+l(e)+";")}),o(e,t,n),n.unindent(),n.writeLine("}")):s(e,t,n)})}function s(e,t,n){n.write(l(t)),c(e.node(t),n),n.writeLine()}function u(e,t,n,r){var i=t.v,a=t.w,o=e.edge(t);r.write(l(i)+" "+n+" "+l(a)),c(o,r),r.writeLine()}function c(e,t){if(r.isObject(e)){var n=r.map(e,function(e,t){return l(t)+"="+l(e)});n.length&&t.write(" ["+n.join(",")+"]")}}function l(e){return"number"==typeof e||e.toString().match(i)?e:'"'+e.toString().replace(/"/g,'\\"')+'"'}function f(){this._indent="",this._content="",this._shouldIndent=!0}f.prototype.INDENT=" ",f.prototype.indent=function(){this._indent+=this.INDENT},f.prototype.unindent=function(){this._indent=this._indent.slice(this.INDENT.length)},f.prototype.writeLine=function(e){this.write((e||"")+"\n"),this._shouldIndent=!0},f.prototype.write=function(e){this._shouldIndent&&(this._shouldIndent=!1,this._content+=this._indent),this._content+=e},f.prototype.toString=function(){return this._content}},28282(e,t,n){var r=n(82354);e.exports={Graph:r.Graph,json:n(28974),alg:n(12440),version:r.version}},2842(e,t,n){var r=n(89126);function i(e){var t,n={},i=[];function a(i){r.has(n,i)||(n[i]=!0,t.push(i),r.each(e.successors(i),a),r.each(e.predecessors(i),a))}return r.each(e.nodes(),function(e){t=[],a(e),t.length&&i.push(t)}),i}e.exports=i},53984(e,t,n){var r=n(89126);function i(e,t,n){r.isArray(t)||(t=[t]);var i=(e.isDirected()?e.successors:e.neighbors).bind(e),o=[],s={};return r.each(t,function(t){if(!e.hasNode(t))throw Error("Graph does not have node: "+t);a(e,t,"post"===n,s,i,o)}),o}function a(e,t,n,i,o,s){!r.has(i,t)&&(i[t]=!0,n||s.push(t),r.each(o(t),function(t){a(e,t,n,i,o,s)}),n&&s.push(t))}e.exports=i},84847(e,t,n){var r=n(63763),i=n(89126);function a(e,t,n){return i.transform(e.nodes(),function(i,a){i[a]=r(e,a,t,n)},{})}e.exports=a},63763(e,t,n){var r=n(89126),i=n(75639);e.exports=o;var a=r.constant(1);function o(e,t,n,r){return s(e,String(t),n||a,r||function(t){return e.outEdges(t)})}function s(e,t,n,r){var a,o,s={},u=new i,c=function(e){var t=e.v!==a?e.v:e.w,r=s[t],i=n(e),c=o.distance+i;if(i<0)throw Error("dijkstra does not allow negative edge weights. Bad edge: "+e+" Weight: "+i);c0&&(o=s[a=u.removeMin()]).distance!==Number.POSITIVE_INFINITY;)r(a).forEach(c);return s}},9096(e,t,n){var r=n(89126),i=n(5023);function a(e){return r.filter(i(e),function(t){return t.length>1||1===t.length&&e.hasEdge(t[0],t[0])})}e.exports=a},38924(e,t,n){var r=n(89126);e.exports=a;var i=r.constant(1);function a(e,t,n){return o(e,t||i,n||function(t){return e.outEdges(t)})}function o(e,t,n){var r={},i=e.nodes();return i.forEach(function(e){r[e]={},r[e][e]={distance:0},i.forEach(function(t){e!==t&&(r[e][t]={distance:Number.POSITIVE_INFINITY})}),n(e).forEach(function(n){var i=n.v===e?n.w:n.v,a=t(n);r[e][i]={distance:a,predecessor:e}})}),i.forEach(function(e){var t=r[e];i.forEach(function(n){var a=r[n];i.forEach(function(n){var r=a[e],i=t[n],o=a[n],s=r.distance+i.distance;s0;){if(n=u.removeMin(),r.has(s,n))o.setEdge(n,s[n]);else if(l)throw Error("Input graph is not connected: "+e);else l=!0;e.nodeEdges(n).forEach(c)}return o}e.exports=o},5023(e,t,n){var r=n(89126);function i(e){var t=0,n=[],i={},a=[];function o(s){var u=i[s]={onStack:!0,lowlink:t,index:t++};if(n.push(s),e.successors(s).forEach(function(e){r.has(i,e)?i[e].onStack&&(u.lowlink=Math.min(u.lowlink,i[e].index)):(o(e),u.lowlink=Math.min(u.lowlink,i[e].lowlink))}),u.lowlink===u.index){var c,l=[];do i[c=n.pop()].onStack=!1,l.push(c);while(s!==c)a.push(l)}}return e.nodes().forEach(function(e){r.has(i,e)||o(e)}),a}e.exports=i},2166(e,t,n){var r=n(89126);function i(e){var t={},n={},i=[];function o(s){if(r.has(n,s))throw new a;r.has(t,s)||(n[s]=!0,t[s]=!0,r.each(e.predecessors(s),o),delete n[s],i.push(s))}if(r.each(e.sinks(),o),r.size(t)!==e.nodeCount())throw new a;return i}function a(){}e.exports=i,i.CycleException=a,a.prototype=Error()},75639(e,t,n){var r=n(89126);function i(){this._arr=[],this._keyIndices={}}e.exports=i,i.prototype.size=function(){return this._arr.length},i.prototype.keys=function(){return this._arr.map(function(e){return e.key})},i.prototype.has=function(e){return r.has(this._keyIndices,e)},i.prototype.priority=function(e){var t=this._keyIndices[e];if(void 0!==t)return this._arr[t].priority},i.prototype.min=function(){if(0===this.size())throw Error("Queue underflow");return this._arr[0].key},i.prototype.add=function(e,t){var n=this._keyIndices;if(e=String(e),!r.has(n,e)){var i=this._arr,a=i.length;return n[e]=a,i.push({key:e,priority:t}),this._decrease(a),!0}return!1},i.prototype.removeMin=function(){this._swap(0,this._arr.length-1);var e=this._arr.pop();return delete this._keyIndices[e.key],this._heapify(0),e.key},i.prototype.decrease=function(e,t){var n=this._keyIndices[e];if(t>this._arr[n].priority)throw Error("New priority is greater than current priority. Key: "+e+" Old: "+this._arr[n].priority+" New: "+t);this._arr[n].priority=t,this._decrease(n)},i.prototype._heapify=function(e){var t=this._arr,n=2*e,r=n+1,i=e;n>1].priorityu){var c=s;s=u,u=c}return s+o+u+o+(r.isUndefined(a)?i:a)}function f(e,t,n,r){var i=""+t,a=""+n;if(!e&&i>a){var o=i;i=a,a=o}var s={v:i,w:a};return r&&(s.name=r),s}function d(e,t){return l(e,t.v,t.w,t.name)}s.prototype._nodeCount=0,s.prototype._edgeCount=0,s.prototype.isDirected=function(){return this._isDirected},s.prototype.isMultigraph=function(){return this._isMultigraph},s.prototype.isCompound=function(){return this._isCompound},s.prototype.setGraph=function(e){return this._label=e,this},s.prototype.graph=function(){return this._label},s.prototype.setDefaultNodeLabel=function(e){return r.isFunction(e)||(e=r.constant(e)),this._defaultNodeLabelFn=e,this},s.prototype.nodeCount=function(){return this._nodeCount},s.prototype.nodes=function(){return r.keys(this._nodes)},s.prototype.sources=function(){var e=this;return r.filter(this.nodes(),function(t){return r.isEmpty(e._in[t])})},s.prototype.sinks=function(){var e=this;return r.filter(this.nodes(),function(t){return r.isEmpty(e._out[t])})},s.prototype.setNodes=function(e,t){var n=arguments,i=this;return r.each(e,function(e){n.length>1?i.setNode(e,t):i.setNode(e)}),this},s.prototype.setNode=function(e,t){return r.has(this._nodes,e)?(arguments.length>1&&(this._nodes[e]=t),this):(this._nodes[e]=arguments.length>1?t:this._defaultNodeLabelFn(e),this._isCompound&&(this._parent[e]=a,this._children[e]={},this._children[a][e]=!0),this._in[e]={},this._preds[e]={},this._out[e]={},this._sucs[e]={},++this._nodeCount,this)},s.prototype.node=function(e){return this._nodes[e]},s.prototype.hasNode=function(e){return r.has(this._nodes,e)},s.prototype.removeNode=function(e){var t=this;if(r.has(this._nodes,e)){var n=function(e){t.removeEdge(t._edgeObjs[e])};delete this._nodes[e],this._isCompound&&(this._removeFromParentsChildList(e),delete this._parent[e],r.each(this.children(e),function(e){t.setParent(e)}),delete this._children[e]),r.each(r.keys(this._in[e]),n),delete this._in[e],delete this._preds[e],r.each(r.keys(this._out[e]),n),delete this._out[e],delete this._sucs[e],--this._nodeCount}return this},s.prototype.setParent=function(e,t){if(!this._isCompound)throw Error("Cannot set parent in a non-compound graph");if(r.isUndefined(t))t=a;else{t+="";for(var n=t;!r.isUndefined(n);n=this.parent(n))if(n===e)throw Error("Setting "+t+" as parent of "+e+" would create a cycle");this.setNode(t)}return this.setNode(e),this._removeFromParentsChildList(e),this._parent[e]=t,this._children[t][e]=!0,this},s.prototype._removeFromParentsChildList=function(e){delete this._children[this._parent[e]][e]},s.prototype.parent=function(e){if(this._isCompound){var t=this._parent[e];if(t!==a)return t}},s.prototype.children=function(e){if(r.isUndefined(e)&&(e=a),this._isCompound){var t=this._children[e];if(t)return r.keys(t)}else if(e===a)return this.nodes();else if(this.hasNode(e))return[]},s.prototype.predecessors=function(e){var t=this._preds[e];if(t)return r.keys(t)},s.prototype.successors=function(e){var t=this._sucs[e];if(t)return r.keys(t)},s.prototype.neighbors=function(e){var t=this.predecessors(e);if(t)return r.union(t,this.successors(e))},s.prototype.isLeaf=function(e){var t;return 0===(t=this.isDirected()?this.successors(e):this.neighbors(e)).length},s.prototype.filterNodes=function(e){var t=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});t.setGraph(this.graph());var n=this;r.each(this._nodes,function(n,r){e(r)&&t.setNode(r,n)}),r.each(this._edgeObjs,function(e){t.hasNode(e.v)&&t.hasNode(e.w)&&t.setEdge(e,n.edge(e))});var i={};function a(e){var r=n.parent(e);return void 0===r||t.hasNode(r)?(i[e]=r,r):r in i?i[r]:a(r)}return this._isCompound&&r.each(t.nodes(),function(e){t.setParent(e,a(e))}),t},s.prototype.setDefaultEdgeLabel=function(e){return r.isFunction(e)||(e=r.constant(e)),this._defaultEdgeLabelFn=e,this},s.prototype.edgeCount=function(){return this._edgeCount},s.prototype.edges=function(){return r.values(this._edgeObjs)},s.prototype.setPath=function(e,t){var n=this,i=arguments;return r.reduce(e,function(e,r){return i.length>1?n.setEdge(e,r,t):n.setEdge(e,r),r}),this},s.prototype.setEdge=function(){var e,t,n,i,a=!1,o=arguments[0];"object"==typeof o&&null!==o&&"v"in o?(e=o.v,t=o.w,n=o.name,2===arguments.length&&(i=arguments[1],a=!0)):(e=o,t=arguments[1],n=arguments[3],arguments.length>2&&(i=arguments[2],a=!0)),e=""+e,t=""+t,r.isUndefined(n)||(n=""+n);var s=l(this._isDirected,e,t,n);if(r.has(this._edgeLabels,s))return a&&(this._edgeLabels[s]=i),this;if(!r.isUndefined(n)&&!this._isMultigraph)throw Error("Cannot set a named edge when isMultigraph = false");this.setNode(e),this.setNode(t),this._edgeLabels[s]=a?i:this._defaultEdgeLabelFn(e,t,n);var c=f(this._isDirected,e,t,n);return e=c.v,t=c.w,Object.freeze(c),this._edgeObjs[s]=c,u(this._preds[t],e),u(this._sucs[e],t),this._in[t][s]=c,this._out[e][s]=c,this._edgeCount++,this},s.prototype.edge=function(e,t,n){var r=1===arguments.length?d(this._isDirected,arguments[0]):l(this._isDirected,e,t,n);return this._edgeLabels[r]},s.prototype.hasEdge=function(e,t,n){var i=1===arguments.length?d(this._isDirected,arguments[0]):l(this._isDirected,e,t,n);return r.has(this._edgeLabels,i)},s.prototype.removeEdge=function(e,t,n){var r=1===arguments.length?d(this._isDirected,arguments[0]):l(this._isDirected,e,t,n),i=this._edgeObjs[r];return i&&(e=i.v,t=i.w,delete this._edgeLabels[r],delete this._edgeObjs[r],c(this._preds[t],e),c(this._sucs[e],t),delete this._in[t][r],delete this._out[e][r],this._edgeCount--),this},s.prototype.inEdges=function(e,t){var n=this._in[e];if(n){var i=r.values(n);return t?r.filter(i,function(e){return e.v===t}):i}},s.prototype.outEdges=function(e,t){var n=this._out[e];if(n){var i=r.values(n);return t?r.filter(i,function(e){return e.w===t}):i}},s.prototype.nodeEdges=function(e,t){var n=this.inEdges(e,t);if(n)return n.concat(this.outEdges(e,t))}},82354(e,t,n){e.exports={Graph:n(30771),version:n(49631)}},28974(e,t,n){var r=n(89126),i=n(30771);function a(e){var t={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:o(e),edges:s(e)};return r.isUndefined(e.graph())||(t.value=r.clone(e.graph())),t}function o(e){return r.map(e.nodes(),function(t){var n=e.node(t),i=e.parent(t),a={v:t};return r.isUndefined(n)||(a.value=n),r.isUndefined(i)||(a.parent=i),a})}function s(e){return r.map(e.edges(),function(t){var n=e.edge(t),i={v:t.v,w:t.w};return r.isUndefined(t.name)||(i.name=t.name),r.isUndefined(n)||(i.value=n),i})}function u(e){var t=new i(e.options).setGraph(e.value);return r.each(e.nodes,function(e){t.setNode(e.v,e.value),e.parent&&t.setParent(e.v,e.parent)}),r.each(e.edges,function(e){t.setEdge({v:e.v,w:e.w,name:e.name},e.value)}),t}e.exports={write:a,read:u}},89126(e,t,n){var r;try{r={clone:n(66678),constant:n(75703),each:n(66073),filter:n(63105),has:n(18721),isArray:n(1469),isEmpty:n(41609),isFunction:n(23560),isUndefined:n(52353),keys:n(3674),map:n(35161),reduce:n(54061),size:n(84238),transform:n(68718),union:n(93386),values:n(52628)}}catch(i){}r||(r=window._),e.exports=r},49631(e){e.exports="2.1.8"},78892(e){"use strict";e.exports=n;var t=/[#.]/g;function n(e,n){for(var r,i,a,o=e||"",s=n||"div",u={},c=0;cC,q_:()=>F,ob:()=>y,PP:()=>B,Ep:()=>v,Hp:()=>w});var r=n(87462);function i(e){return"/"===e.charAt(0)}function a(e,t){for(var n=t,r=n+1,i=e.length;r=0;d--){var h=o[d];"."===h?a(o,d):".."===h?(a(o,d),f++):f&&(a(o,d),f--)}if(!c)for(;f--;f)o.unshift("..");!c||""===o[0]||o[0]&&i(o[0])||o.unshift("");var p=o.join("/");return n&&"/"!==p.substr(-1)&&(p+="/"),p}let s=o;function u(e){return e.valueOf?e.valueOf():Object.prototype.valueOf.call(e)}function c(e,t){if(e===t)return!0;if(null==e||null==t)return!1;if(Array.isArray(e))return Array.isArray(t)&&e.length===t.length&&e.every(function(e,n){return c(e,t[n])});if("object"==typeof e||"object"==typeof t){var n=u(e),r=u(t);return n!==e||r!==t?c(n,r):Object.keys(Object.assign({},e,t)).every(function(n){return c(e[n],t[n])})}return!1}let l=c;var f=n(2177);function d(e){return"/"===e.charAt(0)?e:"/"+e}function h(e){return"/"===e.charAt(0)?e.substr(1):e}function p(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}function b(e,t){return p(e,t)?e.substr(t.length):e}function m(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function g(e){var t=e||"/",n="",r="",i=t.indexOf("#");-1!==i&&(r=t.substr(i),t=t.substr(0,i));var a=t.indexOf("?");return -1!==a&&(n=t.substr(a),t=t.substr(0,a)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}function v(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 y(e,t,n,i){var a;"string"==typeof e?(a=g(e)).state=t:(void 0===(a=(0,r.Z)({},e)).pathname&&(a.pathname=""),a.search?"?"!==a.search.charAt(0)&&(a.search="?"+a.search):a.search="",a.hash?"#"!==a.hash.charAt(0)&&(a.hash="#"+a.hash):a.hash="",void 0!==t&&void 0===a.state&&(a.state=t));try{a.pathname=decodeURI(a.pathname)}catch(o){if(o instanceof URIError)throw URIError('Pathname "'+a.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.');throw o}return n&&(a.key=n),i?a.pathname?"/"!==a.pathname.charAt(0)&&(a.pathname=s(a.pathname,i.pathname)):a.pathname=i.pathname:a.pathname||(a.pathname="/"),a}function w(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 _(){var e=null;function t(t){return e=t,function(){e===t&&(e=null)}}function n(t,n,r,i){if(null!=e){var a="function"==typeof e?e(t,n):e;"string"==typeof a?"function"==typeof r?r(a,i):i(!0):i(!1!==a)}else i(!0)}var r=[];function i(e){var t=!0;function n(){t&&e.apply(void 0,arguments)}return r.push(n),function(){t=!1,r=r.filter(function(e){return e!==n})}}function a(){for(var e=arguments.length,t=Array(e),n=0;nn?a.splice(n,a.length-n,i):a.push(i),f({action:r,location:i,index:n,entries:a})}})}function g(e,t){var r="REPLACE",i=y(e,t,d(),M.location);l.confirmTransitionTo(i,r,n,function(e){e&&(M.entries[M.index]=i,f({action:r,location:i}))})}function w(e){var t=Y(M.index+e,0,M.entries.length-1),r="POP",i=M.entries[t];l.confirmTransitionTo(i,r,n,function(e){e?f({action:r,location:i,index:t}):f()})}function E(){w(-1)}function S(){w(1)}function k(e){var t=M.index+e;return t>=0&&tu});var r=/[A-Z]/g,i=/^ms-/,a={};function o(e){return"-"+e.toLowerCase()}function s(e){if(a.hasOwnProperty(e))return a[e];var t=e.replace(r,o);return a[e]=i.test(t)?"-"+t:t}let u=s},80645(e,t){/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */ t.read=function(e,t,n,r,i){var a,o,s=8*i-r-1,u=(1<>1,l=-7,f=n?i-1:0,d=n?-1:1,h=e[t+f];for(f+=d,a=h&(1<<-l)-1,h>>=-l,l+=s;l>0;a=256*a+e[t+f],f+=d,l-=8);for(o=a&(1<<-l)-1,a>>=-l,l+=r;l>0;o=256*o+e[t+f],f+=d,l-=8);if(0===a)a=1-c;else{if(a===u)return o?NaN:(h?-1:1)*(1/0);o+=Math.pow(2,r),a-=c}return(h?-1:1)*o*Math.pow(2,a-r)},t.write=function(e,t,n,r,i,a){var o,s,u,c=8*a-i-1,l=(1<>1,d=23===i?5960464477539062e-23:0,h=r?0:a-1,p=r?1:-1,b=t<0||0===t&&1/t<0?1:0;for(isNaN(t=Math.abs(t))||t===1/0?(s=isNaN(t)?1:0,o=l):(o=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-o))<1&&(o--,u*=2),o+f>=1?t+=d/u:t+=d*Math.pow(2,1-f),t*u>=2&&(o++,u/=2),o+f>=l?(s=0,o=l):o+f>=1?(s=(t*u-1)*Math.pow(2,i),o+=f):(s=t*Math.pow(2,f-1)*Math.pow(2,i),o=0));i>=8;e[n+h]=255&s,h+=p,s/=256,i-=8);for(o=o<0;e[n+h]=255&o,h+=p,o/=256,c-=8);e[n+h-p]|=128*b}},35717(e){"function"==typeof Object.create?e.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:e.exports=function(e,t){if(t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}}},46260(e){"use strict";function t(e){var t="string"==typeof e?e.charCodeAt(0):e;return t>=97&&t<=122||t>=65&&t<=90}e.exports=t},7961(e,t,n){"use strict";var r=n(46260),i=n(46195);function a(e){return r(e)||i(e)}e.exports=a},46195(e){"use strict";function t(e){var t="string"==typeof e?e.charCodeAt(0):e;return t>=48&&t<=57}e.exports=t},79480(e){"use strict";function t(e){var t="string"==typeof e?e.charCodeAt(0):e;return t>=97&&t<=102||t>=65&&t<=70||t>=48&&t<=57}e.exports=t},33827(e,t,n){"use strict";n.r(t),n.d(t,{default:()=>a,isBrowser:()=>i});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=("undefined"==typeof window?"undefined":r(window))==="object"&&("undefined"==typeof document?"undefined":r(document))==="object"&&9===document.nodeType;let a=i},5826(e){e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},47798(e){"use strict";/*! * isobject * * Copyright (c) 2014-2017, Jon Schlinkert. * Released under the MIT License. - */ e.exports=function(e){return null!=e&&"object"==typeof e&&!1===Array.isArray(e)}},80204(e,t,n){e.exports=self.fetch||(self.fetch=n(25869).default||n(25869))},5690(e,t,n){e.exports=n(67946)},8126(e,t,n){"use strict";n.d(t,{Z:()=>tl});var r,i="en",a={},o={};function s(){return i}function u(e){i=e}function c(e){return a[e]}function l(e){if(!e)throw Error("No locale data passed");a[e.locale]=e,o[e.locale.toLowerCase()]=e.locale}function f(e){return a[e]?e:o[e.toLowerCase()]?o[e.toLowerCase()]:void 0}function d(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.localeMatcher||"lookup";switch(n){case"lookup":case"best fit":return h(e);default:throw RangeError('Invalid "localeMatcher" option: '.concat(n))}}function h(e){var t=f(e);if(t)return t;for(var n=e.split("-");e.length>1;){n.pop();var r=f(e=n.join("-"));if(r)return r}}var p={af:function(e){return 1==e?"one":"other"},am:function(e){return e>=0&&e<=1?"one":"other"},ar:function(e){var t=String(e).split("."),n=Number(t[0])==e&&t[0].slice(-2);return 0==e?"zero":1==e?"one":2==e?"two":n>=3&&n<=10?"few":n>=11&&n<=99?"many":"other"},ast:function(e){var t=!String(e).split(".")[1];return 1==e&&t?"one":"other"},be:function(e){var t=String(e).split("."),n=Number(t[0])==e,r=n&&t[0].slice(-1),i=n&&t[0].slice(-2);return 1==r&&11!=i?"one":r>=2&&r<=4&&(i<12||i>14)?"few":n&&0==r||r>=5&&r<=9||i>=11&&i<=14?"many":"other"},br:function(e){var t=String(e).split("."),n=Number(t[0])==e,r=n&&t[0].slice(-1),i=n&&t[0].slice(-2),a=n&&t[0].slice(-6);return 1==r&&11!=i&&71!=i&&91!=i?"one":2==r&&12!=i&&72!=i&&92!=i?"two":(3==r||4==r||9==r)&&(i<10||i>19)&&(i<70||i>79)&&(i<90||i>99)?"few":0!=e&&n&&0==a?"many":"other"},bs:function(e){var t=String(e).split("."),n=t[0],r=t[1]||"",i=!t[1],a=n.slice(-1),o=n.slice(-2),s=r.slice(-1),u=r.slice(-2);return i&&1==a&&11!=o||1==s&&11!=u?"one":i&&a>=2&&a<=4&&(o<12||o>14)||s>=2&&s<=4&&(u<12||u>14)?"few":"other"},cs:function(e){var t=String(e).split("."),n=t[0],r=!t[1];return 1==e&&r?"one":n>=2&&n<=4&&r?"few":r?"other":"many"},cy:function(e){return 0==e?"zero":1==e?"one":2==e?"two":3==e?"few":6==e?"many":"other"},da:function(e){var t=String(e).split("."),n=t[0],r=Number(t[0])==e;return 1!=e&&(r||0!=n&&1!=n)?"other":"one"},dsb:function(e){var t=String(e).split("."),n=t[0],r=t[1]||"",i=!t[1],a=n.slice(-2),o=r.slice(-2);return i&&1==a||1==o?"one":i&&2==a||2==o?"two":i&&(3==a||4==a)||3==o||4==o?"few":"other"},dz:function(e){return"other"},fil:function(e){var t=String(e).split("."),n=t[0],r=t[1]||"",i=!t[1],a=n.slice(-1),o=r.slice(-1);return i&&(1==n||2==n||3==n)||i&&4!=a&&6!=a&&9!=a||!i&&4!=o&&6!=o&&9!=o?"one":"other"},fr:function(e){return e>=0&&e<2?"one":"other"},ga:function(e){var t=Number(String(e).split(".")[0])==e;return 1==e?"one":2==e?"two":t&&e>=3&&e<=6?"few":t&&e>=7&&e<=10?"many":"other"},gd:function(e){var t=Number(String(e).split(".")[0])==e;return 1==e||11==e?"one":2==e||12==e?"two":t&&e>=3&&e<=10||t&&e>=13&&e<=19?"few":"other"},he:function(e){var t=String(e).split("."),n=t[0],r=!t[1],i=Number(t[0])==e,a=i&&t[0].slice(-1);return 1==e&&r?"one":2==n&&r?"two":r&&(e<0||e>10)&&i&&0==a?"many":"other"},is:function(e){var t=String(e).split("."),n=t[0],r=Number(t[0])==e,i=n.slice(-1),a=n.slice(-2);return r&&1==i&&11!=a||!r?"one":"other"},ksh:function(e){return 0==e?"zero":1==e?"one":"other"},lt:function(e){var t=String(e).split("."),n=t[1]||"",r=Number(t[0])==e,i=r&&t[0].slice(-1),a=r&&t[0].slice(-2);return 1==i&&(a<11||a>19)?"one":i>=2&&i<=9&&(a<11||a>19)?"few":0!=n?"many":"other"},lv:function(e){var t=String(e).split("."),n=t[1]||"",r=n.length,i=Number(t[0])==e,a=i&&t[0].slice(-1),o=i&&t[0].slice(-2),s=n.slice(-2),u=n.slice(-1);return i&&0==a||o>=11&&o<=19||2==r&&s>=11&&s<=19?"zero":1==a&&11!=o||2==r&&1==u&&11!=s||2!=r&&1==u?"one":"other"},mk:function(e){var t=String(e).split("."),n=t[0],r=t[1]||"",i=!t[1],a=n.slice(-1),o=n.slice(-2),s=r.slice(-1),u=r.slice(-2);return i&&1==a&&11!=o||1==s&&11!=u?"one":"other"},mt:function(e){var t=String(e).split("."),n=Number(t[0])==e&&t[0].slice(-2);return 1==e?"one":0==e||n>=2&&n<=10?"few":n>=11&&n<=19?"many":"other"},pa:function(e){return 0==e||1==e?"one":"other"},pl:function(e){var t=String(e).split("."),n=t[0],r=!t[1],i=n.slice(-1),a=n.slice(-2);return 1==e&&r?"one":r&&i>=2&&i<=4&&(a<12||a>14)?"few":r&&1!=n&&(0==i||1==i)||r&&i>=5&&i<=9||r&&a>=12&&a<=14?"many":"other"},pt:function(e){var t=String(e).split(".")[0];return 0==t||1==t?"one":"other"},ro:function(e){var t=String(e).split("."),n=!t[1],r=Number(t[0])==e&&t[0].slice(-2);return 1==e&&n?"one":!n||0==e||1!=e&&r>=1&&r<=19?"few":"other"},ru:function(e){var t=String(e).split("."),n=t[0],r=!t[1],i=n.slice(-1),a=n.slice(-2);return r&&1==i&&11!=a?"one":r&&i>=2&&i<=4&&(a<12||a>14)?"few":r&&0==i||r&&i>=5&&i<=9||r&&a>=11&&a<=14?"many":"other"},se:function(e){return 1==e?"one":2==e?"two":"other"},si:function(e){var t=String(e).split("."),n=t[0],r=t[1]||"";return 0==e||1==e||0==n&&1==r?"one":"other"},sl:function(e){var t=String(e).split("."),n=t[0],r=!t[1],i=n.slice(-2);return r&&1==i?"one":r&&2==i?"two":r&&(3==i||4==i)||!r?"few":"other"}};p.as=p.am,p.az=p.af,p.bg=p.af,p.bn=p.am,p.ca=p.ast,p.ce=p.af,p.chr=p.af,p.de=p.ast,p.ee=p.af,p.el=p.af,p.en=p.ast,p.es=p.af,p.et=p.ast,p.eu=p.af,p.fa=p.am,p.fi=p.ast,p.fo=p.af,p.fur=p.af,p.fy=p.ast,p.gl=p.ast,p.gu=p.am,p.hi=p.am,p.hr=p.bs,p.hsb=p.dsb,p.hu=p.af,p.hy=p.fr,p.ia=p.ast,p.id=p.dz,p.it=p.ast,p.ja=p.dz,p.jgo=p.af,p.jv=p.dz,p.ka=p.af,p.kea=p.dz,p.kk=p.af,p.kl=p.af,p.km=p.dz,p.kn=p.am,p.ko=p.dz,p.ku=p.af,p.ky=p.af,p.lb=p.af,p.lkt=p.dz,p.lo=p.dz,p.ml=p.af,p.mn=p.af,p.mr=p.am,p.ms=p.dz,p.my=p.dz,p.nb=p.af,p.ne=p.af,p.nl=p.ast,p.nn=p.af,p.or=p.af,p.ps=p.af,p["pt-PT"]=p.ast,p.sah=p.dz,p.sd=p.af,p.sk=p.cs,p.so=p.af,p.sq=p.af,p.sr=p.bs,p.sv=p.ast,p.sw=p.ast,p.ta=p.af,p.te=p.af,p.th=p.dz,p.ti=p.pa,p.tk=p.af,p.to=p.dz,p.tr=p.af,p.ug=p.af,p.uk=p.ru,p.ur=p.ast,p.uz=p.af,p.vi=p.dz,p.wae=p.af,p.yi=p.ast,p.yue=p.dz,p.zh=p.dz,p.zu=p.am;let b=p;function m(e){return"pt-PT"===e?e:v(e)}var g=/^([a-z0-9]+)/i;function v(e){var t=e.match(g);if(!t)throw TypeError("Invalid locale: ".concat(e));return t[1]}function y(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}function w(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};A(this,e),I(this,"numeric","always"),I(this,"style","long"),I(this,"localeMatcher","lookup");var r=n.numeric,i=n.style,a=n.localeMatcher;if(void 0!==r){if(0>N.indexOf(r))throw RangeError('Invalid "numeric" option: '.concat(r));this.numeric=r}if(void 0!==i){if(0>P.indexOf(i))throw RangeError('Invalid "style" option: '.concat(i));this.style=i}if(void 0!==a){if(0>R.indexOf(a))throw RangeError('Invalid "localeMatcher" option: '.concat(a));this.localeMatcher=a}if("string"==typeof t&&(t=[t]),t.push(s()),this.locale=e.supportedLocalesOf(t,{localeMatcher:this.localeMatcher})[0],!this.locale)throw Error("No supported locale was found");E.supportedLocalesOf(this.locale).length>0?this.pluralRules=new E(this.locale):console.warn('"'.concat(this.locale,'" locale is not supported')),"undefined"!=typeof Intl&&Intl.NumberFormat?(this.numberFormat=new Intl.NumberFormat(this.locale),this.numberingSystem=this.numberFormat.resolvedOptions().numberingSystem):this.numberingSystem="latn",this.locale=d(this.locale,{localeMatcher:this.localeMatcher})}return C(e,[{key:"format",value:function(){var e=z(arguments),t=x(e,2),n=t[0],r=t[1];return this.getRule(n,r).replace("{0}",this.formatNumber(Math.abs(n)))}},{key:"formatToParts",value:function(){var e=z(arguments),t=x(e,2),n=t[0],r=t[1],i=this.getRule(n,r),a=i.indexOf("{0}");if(a<0)return[{type:"literal",value:i}];var o=[];return a>0&&o.push({type:"literal",value:i.slice(0,a)}),o=o.concat(this.formatNumberToParts(Math.abs(n)).map(function(e){return k({},e,{unit:r})})),a+31&&void 0!==arguments[1]?arguments[1]:{};if("string"==typeof e)e=[e];else if(!Array.isArray(e))throw TypeError('Invalid "locales" argument');return e.filter(function(e){return d(e,t)})},j.addLocale=l,j.setDefaultLocale=u,j.getDefaultLocale=s,j.PluralRules=E;var F='Invalid "unit" argument';function Y(e){if("symbol"===S(e))throw TypeError(F);if("string"!=typeof e||("s"===e[e.length-1]&&(e=e.slice(0,e.length-1)),0>D.indexOf(e)))throw RangeError("".concat(F,": ").concat(e));return e}var B='Invalid "number" argument';function U(e){if(e=Number(e),Number.isFinite&&!Number.isFinite(e))throw RangeError("".concat(B,": ").concat(e));return e}function H(e){return 1/e==-1/0}function $(e){return e<0||0===e&&H(e)}function z(e){if(e.length<2)throw TypeError('"unit" argument is required');return[U(e[0]),Y(e[1])]}function G(e){return(G="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function W(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}function K(e,t){for(var n=0;n=n.length)break;a=n[i++]}else{if((i=n.next()).done)break;a=i.value}var a,o=a;if(t(o))return o;for(var s=o.split("-");s.length>1;)if(s.pop(),t(o=s.join("-")))return o}throw Error("No locale data has been registered for any of the locales: ".concat(e.join(", ")))}function Q(){return("undefined"==typeof Intl?"undefined":X(Intl))==="object"&&"function"==typeof Intl.DateTimeFormat}var ee=60,et=60*ee,en=24*et,er=7*en,ei=30.44*en,ea=365.2425*en;function eo(e){switch(e){case"second":return 1;case"minute":return ee;case"hour":return et;case"day":return en;case"week":return er;case"month":return ei;case"year":return ea}}function es(e){return void 0!==e.factor?e.factor:eo(e.unit||e.formatAs)||1}function eu(e){return"floor"===e?Math.floor:(0,Math.round)}function ec(e){return"floor"===e?1:.5}function el(e){return(el="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function ef(e,t){var n,r=t.prevStep,i=t.timestamp,a=t.now,o=t.future,s=t.round;return r&&(r.id||r.unit)&&(n=e["threshold_for_".concat(r.id||r.unit)]),void 0===n&&void 0!==e.threshold&&"function"==typeof(n=e.threshold)&&(n=n(a,o)),void 0===n&&(n=e.minTime),"object"===el(n)&&(n=r&&r.id&&void 0!==n[r.id]?n[r.id]:n.default),"function"==typeof n&&(n=n(i,{future:o,getMinTimeForUnit:function(e,t){return ed(e,t||r&&r.formatAs,{round:s})}})),void 0===n&&e.test&&(n=e.test(i,{now:a,future:o})?0:9007199254740991),void 0===n&&(r?e.formatAs&&r.formatAs&&(n=ed(e.formatAs,r.formatAs,{round:s})):n=0),void 0===n&&console.warn("[javascript-time-ago] A step should specify `minTime`:\n"+JSON.stringify(e,null,2)),n}function ed(e,t,n){var r,i=n.round,a=eo(e);if(r="now"===t?eo(e):eo(t),void 0!==a&&void 0!==r)return a-r*(1-ec(i))}function eh(e){for(var t=1;t0?e[o-1]:s}}}function eg(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,i=ef(e[r],eh({prevStep:e[r-1],timestamp:n.now-1e3*t},n));return void 0===i||Math.abs(t)=0})}function ey(e,t,n){var r=n.now,i=n.round;if(eo(e)){var a=1e3*eo(e),o=t>r,s=Math.abs(t-r),u=eu(i)(s/a)*a;return o?u>0?s-u+e_(i,a):s-u+1:-(s-u)+ew(i,a)}}function ew(e,t){return ec(e)*t}function e_(e,t){return(1-ec(e))*t+1}var eE=31536e9;function eS(e,t,n){var r,i=n.prevStep,a=n.nextStep,o=n.now,s=n.future,u=n.round,c=e.getTime?e.getTime():e,l=function(e){return ey(e,c,{now:o,round:u})},f=ex(s?t:a,c,{future:s,now:o,round:u,prevStep:s?i:t});if(void 0!==f){if(t&&(t.getTimeToNextUpdate&&(r=t.getTimeToNextUpdate(c,{getTimeToNextUpdateForUnit:l,getRoundFunction:eu,now:o,future:s,round:u})),void 0===r)){var d=t.unit||t.formatAs;d&&(r=l(d))}return void 0===r?f:Math.min(r,f)}}function ek(e,t,n){var r,i=n.now,a=n.future,o=ef(e,{timestamp:t,now:i,future:a,round:n.round,prevStep:n.prevStep});return void 0===o?void 0:a?t-1e3*o+1:0===o&&t===i?eE:t+1e3*o}function ex(e,t,n){var r=n.now,i=n.future,a=n.round,o=n.prevStep;if(e){var s=ek(e,t,{now:r,future:i,round:a,prevStep:o});if(void 0===s)return;return s-r}return i?t-r+1:eE}var eT={};function eM(e){return eT[e]}function eO(e){if(!e)throw Error("[javascript-time-ago] No locale data passed.");eT[e.locale]=e}let eA=[{formatAs:"now"},{formatAs:"second"},{formatAs:"minute"},{formatAs:"hour"},{formatAs:"day"},{formatAs:"week"},{formatAs:"month"},{formatAs:"year"}],eL={steps:eA,labels:"long"};function eC(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.polyfill;ts(this,e),"string"==typeof t&&(t=[t]),this.locale=J(t.concat(e.getDefaultLocale()),eM),"undefined"!=typeof Intl&&Intl.NumberFormat&&(this.numberFormat=new Intl.NumberFormat(this.locale)),!1===r?(this.IntlRelativeTimeFormat=Intl.RelativeTimeFormat,this.IntlPluralRules=Intl.PluralRules):(this.IntlRelativeTimeFormat=j,this.IntlPluralRules=j.PluralRules),this.relativeTimeFormatCache=new Z,this.pluralRulesCache=new Z}return tc(e,[{key:"format",value:function(e,t,n){n||(t&&!tv(t)?(n=t,t=void 0):n={}),t||(t=eD),"string"==typeof t&&(t=tt(t));var r,i=td(e),a=this.getLabels(t.flavour||t.labels),o=a.labels,s=a.labelsType;void 0!==t.now&&(r=t.now),void 0===r&&void 0!==n.now&&(r=n.now),void 0===r&&(r=Date.now());var u=(r-i)/1e3,c=n.future||u<0,l=tb(o,eM(this.locale).now,eM(this.locale).long,c);if(t.custom){var f=t.custom({now:r,date:new Date(i),time:i,elapsed:u,locale:this.locale});if(void 0!==f)return f}var d=tp(t.units,o,l),h=n.round||t.round,p=eb(t.gradation||t.steps||eD.steps,u,{now:r,units:d,round:h,future:c,getNextStep:!0}),b=tr(p,3),m=b[0],g=b[1],v=b[2],y=this.formatDateForStep(i,g,u,{labels:o,labelsType:s,nowLabel:l,now:r,future:c,round:h})||"";if(n.getTimeToNextUpdate){var w=eS(i,g,{nextStep:v,prevStep:m,now:r,future:c,round:h});return[y,w]}return y}},{key:"formatDateForStep",value:function(e,t,n,r){var i=this,a=r.labels,o=r.labelsType,s=r.nowLabel,u=r.now,c=r.future,l=r.round;if(t){if(t.format)return t.format(e,this.locale,{formatAs:function(e,t){return i.formatValue(t,e,{labels:a,future:c})},now:u,future:c});var f=t.unit||t.formatAs;if(!f)throw Error("[javascript-time-ago] Each step must define either `formatAs` or `format()`. Step: ".concat(JSON.stringify(t)));if("now"===f)return s;var d=Math.abs(n)/es(t);t.granularity&&(d=eu(l)(d/t.granularity)*t.granularity);var h=-1*Math.sign(n)*eu(l)(d);switch(0===h&&(h=0),o){case"long":case"short":case"narrow":return this.getFormatter(o).format(h,f);default:return this.formatValue(h,f,{labels:a,future:c})}}}},{key:"formatValue",value:function(e,t,n){var r=n.labels,i=n.future;return this.getFormattingRule(r,t,e,{future:i}).replace("{0}",this.formatNumber(Math.abs(e)))}},{key:"getFormattingRule",value:function(e,t,n,r){var i=r.future;if(this.locale,"string"==typeof(e=e[t]))return e;var a=e[0===n?i?"future":"past":n<0?"past":"future"]||e;return"string"==typeof a?a:a[this.getPluralRules().select(Math.abs(n))]||a.other}},{key:"formatNumber",value:function(e){return this.numberFormat?this.numberFormat.format(e):String(e)}},{key:"getFormatter",value:function(e){return this.relativeTimeFormatCache.get(this.locale,e)||this.relativeTimeFormatCache.put(this.locale,e,new this.IntlRelativeTimeFormat(this.locale,{style:e}))}},{key:"getPluralRules",value:function(){return this.pluralRulesCache.get(this.locale)||this.pluralRulesCache.put(this.locale,new this.IntlPluralRules(this.locale))}},{key:"getLabels",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];"string"==typeof e&&(e=[e]),e=(e=e.map(function(e){switch(e){case"tiny":case"mini-time":return"mini";default:return e}})).concat("long");for(var t=eM(this.locale),n=e,r=Array.isArray(n),i=0,n=r?n:n[Symbol.iterator]();;){if(r){if(i>=n.length)break;a=n[i++]}else{if((i=n.next()).done)break;a=i.value}var a,o=a;if(t[o])return{labelsType:o,labels:t[o]}}}}]),e}(),tf="en";function td(e){if(e.constructor===Date||th(e))return e.getTime();if("number"==typeof e)return e;throw Error("Unsupported relative time formatter input: ".concat(tn(e),", ").concat(e))}function th(e){return"object"===tn(e)&&"function"==typeof e.getTime}function tp(e,t,n){var r=Object.keys(t);return n&&r.push("now"),e&&(r=e.filter(function(e){return"now"===e||r.indexOf(e)>=0})),r}function tb(e,t,n,r){var i=e.now||t&&t.now;return i?"string"==typeof i?i:r?i.future:i.past:n&&n.second&&n.second.current?n.second.current:void 0}tl.getDefaultLocale=function(){return tf},tl.setDefaultLocale=function(e){return tf=e},tl.addDefaultLocale=function(e){if(r)throw Error("[javascript-time-ago] `TimeAgo.addDefaultLocale()` can only be called once. To add other locales, use `TimeAgo.addLocale()`.");r=!0,tl.setDefaultLocale(e.locale),tl.addLocale(e)},tl.addLocale=function(e){eO(e),j.addLocale(e)},tl.locale=tl.addLocale,tl.addLabels=function(e,t,n){var r=eM(e);r||(eO({locale:e}),r=eM(e)),r[t]=n};var tm={}.constructor;function tg(e){return void 0!==tn(e)&&null!==e&&e.constructor===tm}function tv(e){return"string"==typeof e||ty(e)}function ty(e){return tg(e)&&(Array.isArray(e.steps)||Array.isArray(e.gradation)||Array.isArray(e.flavour)||"string"==typeof e.flavour||Array.isArray(e.labels)||"string"==typeof e.labels||Array.isArray(e.units)||"function"==typeof e.custom)}},41800(e,t,n){e.exports=function(){"use strict";var e={121:function(e,t,r){r.r(t),r.d(t,{default:function(){return E}}),n(41539),n(21249),n(54747),n(15306),n(74916),n(47042),n(82526),n(41817),n(32165),n(78783),n(66992),n(33948),n(81486);var i=n(68929),a=r.n(i),o=n(1469),s=r.n(o),u=n(45220),c=r.n(u),l=n(3674),f=r.n(l),d=n(82492),h=r.n(d);function p(e){return(p="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function b(e){return s()(e)?e:[e]}function m(e){if(null===e||"object"!==p(e)||(t=e,"[object Date]"===Object.prototype.toString.call(t)))return e;if(s()(e))return e.map(m);var t,n={};return f()(e).forEach(function(t){n[a()(t)]=m(e[t])}),n}function g(e,t){var n=t.camelizeKeys,r=t.camelizeTypeValues,i={};return f()(e).forEach(function(t){var o=e[t],u=n?a()(t):t;i[u]={},void 0!==o.data&&(s()(o.data)?i[u].data=o.data.map(function(e){return{id:e.id,type:r?a()(e.type):e.type}}):c()(o.data)?i[u].data=o.data:i[u].data={id:o.data.id,type:r?a()(o.data.type):o.data.type}),o.links&&(i[u].links=n?m(o.links):o.links),o.meta&&(i[u].meta=n?m(o.meta):o.meta)}),i}function v(e,t){if(t.camelizeKeys){var n={};return f()(e).forEach(function(t){n[a()(t)]=m(e[t])}),n}return e}function y(e,t){var n=t.camelizeKeys,r=t.camelizeTypeValues,i={};return b(e).forEach(function(e){var t=n?a()(e.type):e.type;i[t]=i[t]||{},i[t][e.id]=i[t][e.id]||{id:e.id},i[t][e.id].type=r?a()(e.type):e.type,n?(i[t][e.id].attributes={},f()(e.attributes).forEach(function(n){i[t][e.id].attributes[a()(n)]=m(e.attributes[n])})):i[t][e.id].attributes=e.attributes,e.links&&(i[t][e.id].links={},f()(e.links).forEach(function(r){var o=n?a()(r):r;i[t][e.id].links[o]=e.links[r]})),e.relationships&&(i[t][e.id].relationships=g(e.relationships,{camelizeKeys:n,camelizeTypeValues:r})),e.meta&&(i[t][e.id].meta=v(e.meta,{camelizeKeys:n}))}),i}function w(e){return e.replace(/\?.*$/,"")}function _(e,t,n){var r,i=n.camelizeKeys,o=n.camelizeTypeValues,s={meta:{}};if(n.filterEndpoint)s.meta[t]={},r=s.meta[t];else{var u=w(t);s.meta[u]={},s.meta[u][t.slice(u.length)]={},r=s.meta[u][t.slice(u.length)]}if(r.data={},e.data){var c=[];b(e.data).forEach(function(e){var t={id:e.id,type:o?a()(e.type):e.type};e.relationships&&(t.relationships=g(e.relationships,{camelizeKeys:i,camelizeTypeValues:o})),c.push(t)}),r.data=c}return e.links&&(r.links=e.links,s.meta[w(t)].links=e.links),e.meta&&(r.meta=v(e.meta,{camelizeKeys:i})),s}function E(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.filterEndpoint,r=void 0===n||n,i=t.camelizeKeys,a=void 0===i||i,o=t.camelizeTypeValues,s=void 0===o||o,u=t.endpoint,c={};if(e.data&&h()(c,y(e.data,{camelizeKeys:a,camelizeTypeValues:s})),e.included&&h()(c,y(e.included,{camelizeKeys:a,camelizeTypeValues:s})),u){var l=r?w(u):u;h()(c,_(e,l,{camelizeKeys:a,camelizeTypeValues:s,filterEndpoint:r}))}return c}}},t={};function r(n){if(t[n])return t[n].exports;var i=t[n]={exports:{}};return e[n](i,i.exports,r),i.exports}return r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,{a:t}),t},r.d=function(e,t){for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r(121)}()},63731:function(e){var t,n;t="undefined"!=typeof self?self:this,n=function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},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||4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(r,i,(function(t){return e[t]}).bind(null,i));return r},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 r=n(1),i=/["'&<>]/,a=function(e){var t=i.exec(e);if(null!==t){var n,r="",a=void 0,o=0;for(a=t.index;a")},e.prototype.space=function(){this.buffer.push(" ")},e.prototype.indent=function(e){if(e>0){for(var t="",n=0;n'+a(e)+""),this.buffer.push('"')},e.prototype.printString=function(e){this.buffer.push('"'),this.buffer.push(''+a(e)+""),this.buffer.push('"')},e.prototype.printBoolean=function(e){this.buffer.push(''+e+"")},e.prototype.printNumber=function(e){this.buffer.push(''+e+"")},e.prototype.printSelectionStart=function(){this.buffer.push(""),this.buffer.push('

    "),this.buffer.push('
    ')},Object.defineProperty(e.prototype,"printSelectionEndAtNewLine",{set:function(e){this._printSelectionEndAtNewLine=e},enumerable:!0,configurable:!0}),e.prototype.toString=function(){return this.buffer.join("")},e}(),s=function(e,t,n,r,i){t.checkCircular(e),t.print("{"),t.newLine();for(var a=Object.keys(e),o=0;o'):a.print('
    '),Array.isArray(e)?u(e,a,0,t,i):s(e,a,0,t,i),a.print("
    "),a.toString()}return""}},function(e,t,n){"use strict";n.r(t),n.d(t,"__extends",function(){return i}),n.d(t,"__assign",function(){return a}),n.d(t,"__rest",function(){return o}),n.d(t,"__decorate",function(){return s}),n.d(t,"__param",function(){return u}),n.d(t,"__metadata",function(){return c}),n.d(t,"__awaiter",function(){return l}),n.d(t,"__generator",function(){return f}),n.d(t,"__exportStar",function(){return d}),n.d(t,"__values",function(){return h}),n.d(t,"__read",function(){return p}),n.d(t,"__spread",function(){return b}),n.d(t,"__await",function(){return m}),n.d(t,"__asyncGenerator",function(){return g}),n.d(t,"__asyncDelegator",function(){return v}),n.d(t,"__asyncValues",function(){return y}),n.d(t,"__makeTemplateObject",function(){return w}),n.d(t,"__importStar",function(){return _}),n.d(t,"__importDefault",function(){return E});/*! ***************************************************************************** + */ e.exports=function(e){return null!=e&&"object"==typeof e&&!1===Array.isArray(e)}},80204(e,t,n){e.exports=self.fetch||(self.fetch=n(25869).default||n(25869))},5690(e,t,n){e.exports=n(67946)},8126(e,t,n){"use strict";n.d(t,{Z:()=>tl});var r,i="en",a={},o={};function s(){return i}function u(e){i=e}function c(e){return a[e]}function l(e){if(!e)throw Error("No locale data passed");a[e.locale]=e,o[e.locale.toLowerCase()]=e.locale}function f(e){return a[e]?e:o[e.toLowerCase()]?o[e.toLowerCase()]:void 0}function d(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.localeMatcher||"lookup";switch(n){case"lookup":case"best fit":return h(e);default:throw RangeError('Invalid "localeMatcher" option: '.concat(n))}}function h(e){var t=f(e);if(t)return t;for(var n=e.split("-");e.length>1;){n.pop();var r=f(e=n.join("-"));if(r)return r}}var p={af:function(e){return 1==e?"one":"other"},am:function(e){return e>=0&&e<=1?"one":"other"},ar:function(e){var t=String(e).split("."),n=Number(t[0])==e&&t[0].slice(-2);return 0==e?"zero":1==e?"one":2==e?"two":n>=3&&n<=10?"few":n>=11&&n<=99?"many":"other"},ast:function(e){var t=!String(e).split(".")[1];return 1==e&&t?"one":"other"},be:function(e){var t=String(e).split("."),n=Number(t[0])==e,r=n&&t[0].slice(-1),i=n&&t[0].slice(-2);return 1==r&&11!=i?"one":r>=2&&r<=4&&(i<12||i>14)?"few":n&&0==r||r>=5&&r<=9||i>=11&&i<=14?"many":"other"},br:function(e){var t=String(e).split("."),n=Number(t[0])==e,r=n&&t[0].slice(-1),i=n&&t[0].slice(-2),a=n&&t[0].slice(-6);return 1==r&&11!=i&&71!=i&&91!=i?"one":2==r&&12!=i&&72!=i&&92!=i?"two":(3==r||4==r||9==r)&&(i<10||i>19)&&(i<70||i>79)&&(i<90||i>99)?"few":0!=e&&n&&0==a?"many":"other"},bs:function(e){var t=String(e).split("."),n=t[0],r=t[1]||"",i=!t[1],a=n.slice(-1),o=n.slice(-2),s=r.slice(-1),u=r.slice(-2);return i&&1==a&&11!=o||1==s&&11!=u?"one":i&&a>=2&&a<=4&&(o<12||o>14)||s>=2&&s<=4&&(u<12||u>14)?"few":"other"},cs:function(e){var t=String(e).split("."),n=t[0],r=!t[1];return 1==e&&r?"one":n>=2&&n<=4&&r?"few":r?"other":"many"},cy:function(e){return 0==e?"zero":1==e?"one":2==e?"two":3==e?"few":6==e?"many":"other"},da:function(e){var t=String(e).split("."),n=t[0],r=Number(t[0])==e;return 1!=e&&(r||0!=n&&1!=n)?"other":"one"},dsb:function(e){var t=String(e).split("."),n=t[0],r=t[1]||"",i=!t[1],a=n.slice(-2),o=r.slice(-2);return i&&1==a||1==o?"one":i&&2==a||2==o?"two":i&&(3==a||4==a)||3==o||4==o?"few":"other"},dz:function(e){return"other"},fil:function(e){var t=String(e).split("."),n=t[0],r=t[1]||"",i=!t[1],a=n.slice(-1),o=r.slice(-1);return i&&(1==n||2==n||3==n)||i&&4!=a&&6!=a&&9!=a||!i&&4!=o&&6!=o&&9!=o?"one":"other"},fr:function(e){return e>=0&&e<2?"one":"other"},ga:function(e){var t=Number(String(e).split(".")[0])==e;return 1==e?"one":2==e?"two":t&&e>=3&&e<=6?"few":t&&e>=7&&e<=10?"many":"other"},gd:function(e){var t=Number(String(e).split(".")[0])==e;return 1==e||11==e?"one":2==e||12==e?"two":t&&e>=3&&e<=10||t&&e>=13&&e<=19?"few":"other"},he:function(e){var t=String(e).split("."),n=t[0],r=!t[1],i=Number(t[0])==e,a=i&&t[0].slice(-1);return 1==e&&r?"one":2==n&&r?"two":r&&(e<0||e>10)&&i&&0==a?"many":"other"},is:function(e){var t=String(e).split("."),n=t[0],r=Number(t[0])==e,i=n.slice(-1),a=n.slice(-2);return r&&1==i&&11!=a||!r?"one":"other"},ksh:function(e){return 0==e?"zero":1==e?"one":"other"},lt:function(e){var t=String(e).split("."),n=t[1]||"",r=Number(t[0])==e,i=r&&t[0].slice(-1),a=r&&t[0].slice(-2);return 1==i&&(a<11||a>19)?"one":i>=2&&i<=9&&(a<11||a>19)?"few":0!=n?"many":"other"},lv:function(e){var t=String(e).split("."),n=t[1]||"",r=n.length,i=Number(t[0])==e,a=i&&t[0].slice(-1),o=i&&t[0].slice(-2),s=n.slice(-2),u=n.slice(-1);return i&&0==a||o>=11&&o<=19||2==r&&s>=11&&s<=19?"zero":1==a&&11!=o||2==r&&1==u&&11!=s||2!=r&&1==u?"one":"other"},mk:function(e){var t=String(e).split("."),n=t[0],r=t[1]||"",i=!t[1],a=n.slice(-1),o=n.slice(-2),s=r.slice(-1),u=r.slice(-2);return i&&1==a&&11!=o||1==s&&11!=u?"one":"other"},mt:function(e){var t=String(e).split("."),n=Number(t[0])==e&&t[0].slice(-2);return 1==e?"one":0==e||n>=2&&n<=10?"few":n>=11&&n<=19?"many":"other"},pa:function(e){return 0==e||1==e?"one":"other"},pl:function(e){var t=String(e).split("."),n=t[0],r=!t[1],i=n.slice(-1),a=n.slice(-2);return 1==e&&r?"one":r&&i>=2&&i<=4&&(a<12||a>14)?"few":r&&1!=n&&(0==i||1==i)||r&&i>=5&&i<=9||r&&a>=12&&a<=14?"many":"other"},pt:function(e){var t=String(e).split(".")[0];return 0==t||1==t?"one":"other"},ro:function(e){var t=String(e).split("."),n=!t[1],r=Number(t[0])==e&&t[0].slice(-2);return 1==e&&n?"one":!n||0==e||1!=e&&r>=1&&r<=19?"few":"other"},ru:function(e){var t=String(e).split("."),n=t[0],r=!t[1],i=n.slice(-1),a=n.slice(-2);return r&&1==i&&11!=a?"one":r&&i>=2&&i<=4&&(a<12||a>14)?"few":r&&0==i||r&&i>=5&&i<=9||r&&a>=11&&a<=14?"many":"other"},se:function(e){return 1==e?"one":2==e?"two":"other"},si:function(e){var t=String(e).split("."),n=t[0],r=t[1]||"";return 0==e||1==e||0==n&&1==r?"one":"other"},sl:function(e){var t=String(e).split("."),n=t[0],r=!t[1],i=n.slice(-2);return r&&1==i?"one":r&&2==i?"two":r&&(3==i||4==i)||!r?"few":"other"}};p.as=p.am,p.az=p.af,p.bg=p.af,p.bn=p.am,p.ca=p.ast,p.ce=p.af,p.chr=p.af,p.de=p.ast,p.ee=p.af,p.el=p.af,p.en=p.ast,p.es=p.af,p.et=p.ast,p.eu=p.af,p.fa=p.am,p.fi=p.ast,p.fo=p.af,p.fur=p.af,p.fy=p.ast,p.gl=p.ast,p.gu=p.am,p.hi=p.am,p.hr=p.bs,p.hsb=p.dsb,p.hu=p.af,p.hy=p.fr,p.ia=p.ast,p.id=p.dz,p.it=p.ast,p.ja=p.dz,p.jgo=p.af,p.jv=p.dz,p.ka=p.af,p.kea=p.dz,p.kk=p.af,p.kl=p.af,p.km=p.dz,p.kn=p.am,p.ko=p.dz,p.ku=p.af,p.ky=p.af,p.lb=p.af,p.lkt=p.dz,p.lo=p.dz,p.ml=p.af,p.mn=p.af,p.mr=p.am,p.ms=p.dz,p.my=p.dz,p.nb=p.af,p.ne=p.af,p.nl=p.ast,p.nn=p.af,p.or=p.af,p.ps=p.af,p["pt-PT"]=p.ast,p.sah=p.dz,p.sd=p.af,p.sk=p.cs,p.so=p.af,p.sq=p.af,p.sr=p.bs,p.sv=p.ast,p.sw=p.ast,p.ta=p.af,p.te=p.af,p.th=p.dz,p.ti=p.pa,p.tk=p.af,p.to=p.dz,p.tr=p.af,p.ug=p.af,p.uk=p.ru,p.ur=p.ast,p.uz=p.af,p.vi=p.dz,p.wae=p.af,p.yi=p.ast,p.yue=p.dz,p.zh=p.dz,p.zu=p.am;let b=p;function m(e){return"pt-PT"===e?e:v(e)}var g=/^([a-z0-9]+)/i;function v(e){var t=e.match(g);if(!t)throw TypeError("Invalid locale: ".concat(e));return t[1]}function y(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}function w(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};A(this,e),I(this,"numeric","always"),I(this,"style","long"),I(this,"localeMatcher","lookup");var r=n.numeric,i=n.style,a=n.localeMatcher;if(void 0!==r){if(0>N.indexOf(r))throw RangeError('Invalid "numeric" option: '.concat(r));this.numeric=r}if(void 0!==i){if(0>P.indexOf(i))throw RangeError('Invalid "style" option: '.concat(i));this.style=i}if(void 0!==a){if(0>R.indexOf(a))throw RangeError('Invalid "localeMatcher" option: '.concat(a));this.localeMatcher=a}if("string"==typeof t&&(t=[t]),t.push(s()),this.locale=e.supportedLocalesOf(t,{localeMatcher:this.localeMatcher})[0],!this.locale)throw Error("No supported locale was found");E.supportedLocalesOf(this.locale).length>0?this.pluralRules=new E(this.locale):console.warn('"'.concat(this.locale,'" locale is not supported')),"undefined"!=typeof Intl&&Intl.NumberFormat?(this.numberFormat=new Intl.NumberFormat(this.locale),this.numberingSystem=this.numberFormat.resolvedOptions().numberingSystem):this.numberingSystem="latn",this.locale=d(this.locale,{localeMatcher:this.localeMatcher})}return C(e,[{key:"format",value:function(){var e=z(arguments),t=x(e,2),n=t[0],r=t[1];return this.getRule(n,r).replace("{0}",this.formatNumber(Math.abs(n)))}},{key:"formatToParts",value:function(){var e=z(arguments),t=x(e,2),n=t[0],r=t[1],i=this.getRule(n,r),a=i.indexOf("{0}");if(a<0)return[{type:"literal",value:i}];var o=[];return a>0&&o.push({type:"literal",value:i.slice(0,a)}),o=o.concat(this.formatNumberToParts(Math.abs(n)).map(function(e){return k({},e,{unit:r})})),a+31&&void 0!==arguments[1]?arguments[1]:{};if("string"==typeof e)e=[e];else if(!Array.isArray(e))throw TypeError('Invalid "locales" argument');return e.filter(function(e){return d(e,t)})},j.addLocale=l,j.setDefaultLocale=u,j.getDefaultLocale=s,j.PluralRules=E;var F='Invalid "unit" argument';function Y(e){if("symbol"===S(e))throw TypeError(F);if("string"!=typeof e||("s"===e[e.length-1]&&(e=e.slice(0,e.length-1)),0>D.indexOf(e)))throw RangeError("".concat(F,": ").concat(e));return e}var B='Invalid "number" argument';function U(e){if(e=Number(e),Number.isFinite&&!Number.isFinite(e))throw RangeError("".concat(B,": ").concat(e));return e}function H(e){return 1/e==-1/0}function $(e){return e<0||0===e&&H(e)}function z(e){if(e.length<2)throw TypeError('"unit" argument is required');return[U(e[0]),Y(e[1])]}function G(e){return(G="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function W(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}function K(e,t){for(var n=0;n=n.length)break;a=n[i++]}else{if((i=n.next()).done)break;a=i.value}var a,o=a;if(t(o))return o;for(var s=o.split("-");s.length>1;)if(s.pop(),t(o=s.join("-")))return o}throw Error("No locale data has been registered for any of the locales: ".concat(e.join(", ")))}function Q(){return("undefined"==typeof Intl?"undefined":X(Intl))==="object"&&"function"==typeof Intl.DateTimeFormat}var ee=60,et=60*ee,en=24*et,er=7*en,ei=30.44*en,ea=365.2425*en;function eo(e){switch(e){case"second":return 1;case"minute":return ee;case"hour":return et;case"day":return en;case"week":return er;case"month":return ei;case"year":return ea}}function es(e){return void 0!==e.factor?e.factor:eo(e.unit||e.formatAs)||1}function eu(e){return"floor"===e?Math.floor:(0,Math.round)}function ec(e){return"floor"===e?1:.5}function el(e){return(el="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function ef(e,t){var n,r=t.prevStep,i=t.timestamp,a=t.now,o=t.future,s=t.round;return r&&(r.id||r.unit)&&(n=e["threshold_for_".concat(r.id||r.unit)]),void 0===n&&void 0!==e.threshold&&"function"==typeof(n=e.threshold)&&(n=n(a,o)),void 0===n&&(n=e.minTime),"object"===el(n)&&(n=r&&r.id&&void 0!==n[r.id]?n[r.id]:n.default),"function"==typeof n&&(n=n(i,{future:o,getMinTimeForUnit:function(e,t){return ed(e,t||r&&r.formatAs,{round:s})}})),void 0===n&&e.test&&(n=e.test(i,{now:a,future:o})?0:9007199254740991),void 0===n&&(r?e.formatAs&&r.formatAs&&(n=ed(e.formatAs,r.formatAs,{round:s})):n=0),void 0===n&&console.warn("[javascript-time-ago] A step should specify `minTime`:\n"+JSON.stringify(e,null,2)),n}function ed(e,t,n){var r,i=n.round,a=eo(e);if(r="now"===t?eo(e):eo(t),void 0!==a&&void 0!==r)return a-r*(1-ec(i))}function eh(e){for(var t=1;t0?e[o-1]:s}}}function eg(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,i=ef(e[r],eh({prevStep:e[r-1],timestamp:n.now-1e3*t},n));return void 0===i||Math.abs(t)=0})}function ey(e,t,n){var r=n.now,i=n.round;if(eo(e)){var a=1e3*eo(e),o=t>r,s=Math.abs(t-r),u=eu(i)(s/a)*a;return o?u>0?s-u+e_(i,a):s-u+1:-(s-u)+ew(i,a)}}function ew(e,t){return ec(e)*t}function e_(e,t){return(1-ec(e))*t+1}var eE=31536e9;function eS(e,t,n){var r,i=n.prevStep,a=n.nextStep,o=n.now,s=n.future,u=n.round,c=e.getTime?e.getTime():e,l=function(e){return ey(e,c,{now:o,round:u})},f=ex(s?t:a,c,{future:s,now:o,round:u,prevStep:s?i:t});if(void 0!==f){if(t&&(t.getTimeToNextUpdate&&(r=t.getTimeToNextUpdate(c,{getTimeToNextUpdateForUnit:l,getRoundFunction:eu,now:o,future:s,round:u})),void 0===r)){var d=t.unit||t.formatAs;d&&(r=l(d))}return void 0===r?f:Math.min(r,f)}}function ek(e,t,n){var r,i=n.now,a=n.future,o=ef(e,{timestamp:t,now:i,future:a,round:n.round,prevStep:n.prevStep});return void 0===o?void 0:a?t-1e3*o+1:0===o&&t===i?eE:t+1e3*o}function ex(e,t,n){var r=n.now,i=n.future,a=n.round,o=n.prevStep;if(e){var s=ek(e,t,{now:r,future:i,round:a,prevStep:o});if(void 0===s)return;return s-r}return i?t-r+1:eE}var eT={};function eM(e){return eT[e]}function eO(e){if(!e)throw Error("[javascript-time-ago] No locale data passed.");eT[e.locale]=e}let eA=[{formatAs:"now"},{formatAs:"second"},{formatAs:"minute"},{formatAs:"hour"},{formatAs:"day"},{formatAs:"week"},{formatAs:"month"},{formatAs:"year"}],eL={steps:eA,labels:"long"};function eC(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.polyfill;ts(this,e),"string"==typeof t&&(t=[t]),this.locale=J(t.concat(e.getDefaultLocale()),eM),"undefined"!=typeof Intl&&Intl.NumberFormat&&(this.numberFormat=new Intl.NumberFormat(this.locale)),!1===r?(this.IntlRelativeTimeFormat=Intl.RelativeTimeFormat,this.IntlPluralRules=Intl.PluralRules):(this.IntlRelativeTimeFormat=j,this.IntlPluralRules=j.PluralRules),this.relativeTimeFormatCache=new Z,this.pluralRulesCache=new Z}return tc(e,[{key:"format",value:function(e,t,n){n||(t&&!tv(t)?(n=t,t=void 0):n={}),t||(t=eD),"string"==typeof t&&(t=tt(t));var r,i=td(e),a=this.getLabels(t.flavour||t.labels),o=a.labels,s=a.labelsType;void 0!==t.now&&(r=t.now),void 0===r&&void 0!==n.now&&(r=n.now),void 0===r&&(r=Date.now());var u=(r-i)/1e3,c=n.future||u<0,l=tb(o,eM(this.locale).now,eM(this.locale).long,c);if(t.custom){var f=t.custom({now:r,date:new Date(i),time:i,elapsed:u,locale:this.locale});if(void 0!==f)return f}var d=tp(t.units,o,l),h=n.round||t.round,p=eb(t.gradation||t.steps||eD.steps,u,{now:r,units:d,round:h,future:c,getNextStep:!0}),b=tr(p,3),m=b[0],g=b[1],v=b[2],y=this.formatDateForStep(i,g,u,{labels:o,labelsType:s,nowLabel:l,now:r,future:c,round:h})||"";if(n.getTimeToNextUpdate){var w=eS(i,g,{nextStep:v,prevStep:m,now:r,future:c,round:h});return[y,w]}return y}},{key:"formatDateForStep",value:function(e,t,n,r){var i=this,a=r.labels,o=r.labelsType,s=r.nowLabel,u=r.now,c=r.future,l=r.round;if(t){if(t.format)return t.format(e,this.locale,{formatAs:function(e,t){return i.formatValue(t,e,{labels:a,future:c})},now:u,future:c});var f=t.unit||t.formatAs;if(!f)throw Error("[javascript-time-ago] Each step must define either `formatAs` or `format()`. Step: ".concat(JSON.stringify(t)));if("now"===f)return s;var d=Math.abs(n)/es(t);t.granularity&&(d=eu(l)(d/t.granularity)*t.granularity);var h=-1*Math.sign(n)*eu(l)(d);switch(0===h&&(h=0),o){case"long":case"short":case"narrow":return this.getFormatter(o).format(h,f);default:return this.formatValue(h,f,{labels:a,future:c})}}}},{key:"formatValue",value:function(e,t,n){var r=n.labels,i=n.future;return this.getFormattingRule(r,t,e,{future:i}).replace("{0}",this.formatNumber(Math.abs(e)))}},{key:"getFormattingRule",value:function(e,t,n,r){var i=r.future;if(this.locale,"string"==typeof(e=e[t]))return e;var a=e[0===n?i?"future":"past":n<0?"past":"future"]||e;return"string"==typeof a?a:a[this.getPluralRules().select(Math.abs(n))]||a.other}},{key:"formatNumber",value:function(e){return this.numberFormat?this.numberFormat.format(e):String(e)}},{key:"getFormatter",value:function(e){return this.relativeTimeFormatCache.get(this.locale,e)||this.relativeTimeFormatCache.put(this.locale,e,new this.IntlRelativeTimeFormat(this.locale,{style:e}))}},{key:"getPluralRules",value:function(){return this.pluralRulesCache.get(this.locale)||this.pluralRulesCache.put(this.locale,new this.IntlPluralRules(this.locale))}},{key:"getLabels",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];"string"==typeof e&&(e=[e]),e=(e=e.map(function(e){switch(e){case"tiny":case"mini-time":return"mini";default:return e}})).concat("long");for(var t=eM(this.locale),n=e,r=Array.isArray(n),i=0,n=r?n:n[Symbol.iterator]();;){if(r){if(i>=n.length)break;a=n[i++]}else{if((i=n.next()).done)break;a=i.value}var a,o=a;if(t[o])return{labelsType:o,labels:t[o]}}}}]),e}(),tf="en";function td(e){if(e.constructor===Date||th(e))return e.getTime();if("number"==typeof e)return e;throw Error("Unsupported relative time formatter input: ".concat(tn(e),", ").concat(e))}function th(e){return"object"===tn(e)&&"function"==typeof e.getTime}function tp(e,t,n){var r=Object.keys(t);return n&&r.push("now"),e&&(r=e.filter(function(e){return"now"===e||r.indexOf(e)>=0})),r}function tb(e,t,n,r){var i=e.now||t&&t.now;return i?"string"==typeof i?i:r?i.future:i.past:n&&n.second&&n.second.current?n.second.current:void 0}tl.getDefaultLocale=function(){return tf},tl.setDefaultLocale=function(e){return tf=e},tl.addDefaultLocale=function(e){if(r)throw Error("[javascript-time-ago] `TimeAgo.addDefaultLocale()` can only be called once. To add other locales, use `TimeAgo.addLocale()`.");r=!0,tl.setDefaultLocale(e.locale),tl.addLocale(e)},tl.addLocale=function(e){eO(e),j.addLocale(e)},tl.locale=tl.addLocale,tl.addLabels=function(e,t,n){var r=eM(e);r||(eO({locale:e}),r=eM(e)),r[t]=n};var tm={}.constructor;function tg(e){return void 0!==tn(e)&&null!==e&&e.constructor===tm}function tv(e){return"string"==typeof e||ty(e)}function ty(e){return tg(e)&&(Array.isArray(e.steps)||Array.isArray(e.gradation)||Array.isArray(e.flavour)||"string"==typeof e.flavour||Array.isArray(e.labels)||"string"==typeof e.labels||Array.isArray(e.units)||"function"==typeof e.custom)}},41800(e,t,n){e.exports=function(){"use strict";var e={121:function(e,t,r){r.r(t),r.d(t,{default:function(){return E}}),n(41539),n(21249),n(54747),n(15306),n(74916),n(47042),n(82526),n(41817),n(32165),n(78783),n(66992),n(33948),n(81486);var i=n(68929),a=r.n(i),o=n(1469),s=r.n(o),u=n(45220),c=r.n(u),l=n(3674),f=r.n(l),d=n(82492),h=r.n(d);function p(e){return(p="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function b(e){return s()(e)?e:[e]}function m(e){if(null===e||"object"!==p(e)||(t=e,"[object Date]"===Object.prototype.toString.call(t)))return e;if(s()(e))return e.map(m);var t,n={};return f()(e).forEach(function(t){n[a()(t)]=m(e[t])}),n}function g(e,t){var n=t.camelizeKeys,r=t.camelizeTypeValues,i={};return f()(e).forEach(function(t){var o=e[t],u=n?a()(t):t;i[u]={},void 0!==o.data&&(s()(o.data)?i[u].data=o.data.map(function(e){return{id:e.id,type:r?a()(e.type):e.type}}):c()(o.data)?i[u].data=o.data:i[u].data={id:o.data.id,type:r?a()(o.data.type):o.data.type}),o.links&&(i[u].links=n?m(o.links):o.links),o.meta&&(i[u].meta=n?m(o.meta):o.meta)}),i}function v(e,t){if(t.camelizeKeys){var n={};return f()(e).forEach(function(t){n[a()(t)]=m(e[t])}),n}return e}function y(e,t){var n=t.camelizeKeys,r=t.camelizeTypeValues,i={};return b(e).forEach(function(e){var t=n?a()(e.type):e.type;i[t]=i[t]||{},i[t][e.id]=i[t][e.id]||{id:e.id},i[t][e.id].type=r?a()(e.type):e.type,n?(i[t][e.id].attributes={},f()(e.attributes).forEach(function(n){i[t][e.id].attributes[a()(n)]=m(e.attributes[n])})):i[t][e.id].attributes=e.attributes,e.links&&(i[t][e.id].links={},f()(e.links).forEach(function(r){var o=n?a()(r):r;i[t][e.id].links[o]=e.links[r]})),e.relationships&&(i[t][e.id].relationships=g(e.relationships,{camelizeKeys:n,camelizeTypeValues:r})),e.meta&&(i[t][e.id].meta=v(e.meta,{camelizeKeys:n}))}),i}function w(e){return e.replace(/\?.*$/,"")}function _(e,t,n){var r,i=n.camelizeKeys,o=n.camelizeTypeValues,s={meta:{}};if(n.filterEndpoint)s.meta[t]={},r=s.meta[t];else{var u=w(t);s.meta[u]={},s.meta[u][t.slice(u.length)]={},r=s.meta[u][t.slice(u.length)]}if(r.data={},e.data){var c=[];b(e.data).forEach(function(e){var t={id:e.id,type:o?a()(e.type):e.type};e.relationships&&(t.relationships=g(e.relationships,{camelizeKeys:i,camelizeTypeValues:o})),c.push(t)}),r.data=c}return e.links&&(r.links=e.links,s.meta[w(t)].links=e.links),e.meta&&(r.meta=v(e.meta,{camelizeKeys:i})),s}function E(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.filterEndpoint,r=void 0===n||n,i=t.camelizeKeys,a=void 0===i||i,o=t.camelizeTypeValues,s=void 0===o||o,u=t.endpoint,c={};if(e.data&&h()(c,y(e.data,{camelizeKeys:a,camelizeTypeValues:s})),e.included&&h()(c,y(e.included,{camelizeKeys:a,camelizeTypeValues:s})),u){var l=r?w(u):u;h()(c,_(e,l,{camelizeKeys:a,camelizeTypeValues:s,filterEndpoint:r}))}return c}}},t={};function r(n){if(t[n])return t[n].exports;var i=t[n]={exports:{}};return e[n](i,i.exports,r),i.exports}return r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,{a:t}),t},r.d=function(e,t){for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r(121)}()},63731:function(e){var t,n;t="undefined"!=typeof self?self:this,n=function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},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||4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(r,i,(function(t){return e[t]}).bind(null,i));return r},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 r=n(1),i=/["'&<>]/,a=function(e){var t=i.exec(e);if(null!==t){var n,r="",a=void 0,o=0;for(a=t.index;a")},e.prototype.space=function(){this.buffer.push(" ")},e.prototype.indent=function(e){if(e>0){for(var t="",n=0;n'+a(e)+""),this.buffer.push('"')},e.prototype.printString=function(e){this.buffer.push('"'),this.buffer.push(''+a(e)+""),this.buffer.push('"')},e.prototype.printBoolean=function(e){this.buffer.push(''+e+"")},e.prototype.printNumber=function(e){this.buffer.push(''+e+"")},e.prototype.printSelectionStart=function(){this.buffer.push("
    "),this.buffer.push('
    ')},e.prototype.printSelectionEnd=function(){this.buffer.push("
    "),this.buffer.push('
    ')},Object.defineProperty(e.prototype,"printSelectionEndAtNewLine",{set:function(e){this._printSelectionEndAtNewLine=e},enumerable:!0,configurable:!0}),e.prototype.toString=function(){return this.buffer.join("")},e}(),s=function(e,t,n,r,i){t.checkCircular(e),t.print("{"),t.newLine();for(var a=Object.keys(e),o=0;o'):a.print('
    '),Array.isArray(e)?u(e,a,0,t,i):s(e,a,0,t,i),a.print("
    "),a.toString()}return""}},function(e,t,n){"use strict";n.r(t),n.d(t,"__extends",function(){return i}),n.d(t,"__assign",function(){return a}),n.d(t,"__rest",function(){return o}),n.d(t,"__decorate",function(){return s}),n.d(t,"__param",function(){return u}),n.d(t,"__metadata",function(){return c}),n.d(t,"__awaiter",function(){return l}),n.d(t,"__generator",function(){return f}),n.d(t,"__exportStar",function(){return d}),n.d(t,"__values",function(){return h}),n.d(t,"__read",function(){return p}),n.d(t,"__spread",function(){return b}),n.d(t,"__await",function(){return m}),n.d(t,"__asyncGenerator",function(){return g}),n.d(t,"__asyncDelegator",function(){return v}),n.d(t,"__asyncValues",function(){return y}),n.d(t,"__makeTemplateObject",function(){return w}),n.d(t,"__importStar",function(){return _}),n.d(t,"__importDefault",function(){return E});/*! ***************************************************************************** Copyright (c) Microsoft Corporation. All rights reserved. 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 @@ -58,7 +45,7 @@ and limitations under the License. * Copyright(c) 2012-2014 Roman Shtylman * Copyright(c) 2015 Douglas Christopher Wilson * MIT Licensed - */ t.parse=o,t.serialize=s;var n=decodeURIComponent,r=encodeURIComponent,i=/; */,a=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/;function o(e,t){if("string"!=typeof e)throw TypeError("argument str must be a string");for(var r={},a=t||{},o=e.split(i),s=a.decode||n,c=0;cc});var r=n(56169);e=n.hmd(e);var i="object"==typeof exports&&exports&&!exports.nodeType&&exports,a=i&&e&&!e.nodeType&&e,o=a&&a.exports===i?r.Z.Buffer:void 0,s=o?o.allocUnsafe:void 0;function u(e,t){if(t)return e.slice();var n=e.length,r=s?s(n):new e.constructor(n);return e.copy(r),r}let c=u},48277(e,t,n){"use strict";n.d(t,{Z:()=>i});var r="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g;let i=r},79730(e,t,n){"use strict";n.d(t,{Z:()=>u});var r=n(48277);e=n.hmd(e);var i="object"==typeof exports&&exports&&!exports.nodeType&&exports,a=i&&e&&!e.nodeType&&e,o=a&&a.exports===i&&r.Z.process,s=function(){try{var e=a&&a.require&&a.require("util").types;if(e)return e;return o&&o.binding&&o.binding("util")}catch(t){}}();let u=s},56169(e,t,n){"use strict";n.d(t,{Z:()=>o});var r=n(48277),i="object"==typeof self&&self&&self.Object===Object&&self,a=r.Z||i||Function("return this")();let o=a},29710(e,t,n){"use strict";n.d(t,{Z:()=>l});var r=n(56169);function i(){return!1}let a=i;e=n.hmd(e);var o="object"==typeof exports&&exports&&!exports.nodeType&&exports,s=o&&e&&!e.nodeType&&e,u=s&&s.exports===o?r.Z.Buffer:void 0,c=(u?u.isBuffer:void 0)||a;let l=c},18552(e,t,n){var r=n(10852),i=n(55639),a=r(i,"DataView");e.exports=a},1989(e,t,n){var r=n(51789),i=n(80401),a=n(57667),o=n(21327),s=n(81866);function u(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t-1}e.exports=i},1196(e){function t(e,t,n){for(var r=-1,i=null==e?0:e.length;++r0&&n(l)?t>1?a(l,t-1,n,o,s):r(s,l):o||(s[s.length]=l)}return s}e.exports=a},28483(e,t,n){var r=n(25063)();e.exports=r},47816(e,t,n){var r=n(28483),i=n(3674);function a(e,t){return e&&r(e,t,i)}e.exports=a},97786(e,t,n){var r=n(71811),i=n(40327);function a(e,t){t=r(t,e);for(var n=0,a=t.length;null!=e&&ni?0:i+t),(n=n>i?i:n)<0&&(n+=i),i=t>n?0:n-t>>>0,t>>>=0;for(var a=Array(i);++r=c){var m=t?null:s(e);if(m)return u(m);h=!1,f=o,b=new r}else b=t?[]:p;outer:for(;++l=i?e:r(e,t,n)}e.exports=i},74318(e,t,n){var r=n(11149);function i(e){var t=new e.constructor(e.byteLength);return new r(t).set(new r(e)),t}e.exports=i},64626(e,t,n){e=n.nmd(e);var r=n(55639),i=t&&!t.nodeType&&t,a=i&&e&&!e.nodeType&&e,o=a&&a.exports===i?r.Buffer:void 0,s=o?o.allocUnsafe:void 0;function u(e,t){if(t)return e.slice();var n=e.length,r=s?s(n):new e.constructor(n);return e.copy(r),r}e.exports=u},57157(e,t,n){var r=n(74318);function i(e,t){var n=t?r(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}e.exports=i},93147(e){var t=/\w*$/;function n(e){var n=new e.constructor(e.source,t.exec(e));return n.lastIndex=e.lastIndex,n}e.exports=n},40419(e,t,n){var r=n(62705),i=r?r.prototype:void 0,a=i?i.valueOf:void 0;function o(e){return a?Object(a.call(e)):{}}e.exports=o},77133(e,t,n){var r=n(74318);function i(e,t){var n=t?r(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}e.exports=i},278(e){function t(e,t){var n=-1,r=e.length;for(t||(t=Array(r));++n1?n[a-1]:void 0,s=a>2?n[2]:void 0;for(o=e.length>3&&"function"==typeof o?(a--,o):void 0,s&&i(n[0],n[1],s)&&(o=a<3?void 0:o,a=1),t=Object(t);++rd))return!1;var p=l.get(e),b=l.get(t);if(p&&b)return p==t&&b==e;var m=-1,g=!0,v=n&s?new r:void 0;for(l.set(e,t),l.set(t,e);++m-1&&e%1==0&&e-1}e.exports=i},13399(e,t,n){var r=n(18470);function i(e,t){var n=this.__data__,i=r(n,e);return i<0?(++this.size,n.push([e,t])):n[i][1]=t,this}e.exports=i},24785(e,t,n){var r=n(1989),i=n(38407),a=n(57071);function o(){this.size=0,this.__data__={hash:new r,map:new(a||i),string:new r}}e.exports=o},11285(e,t,n){var r=n(45050);function i(e){var t=r(this,e).delete(e);return this.size-=t?1:0,t}e.exports=i},96e3(e,t,n){var r=n(45050);function i(e){return r(this,e).get(e)}e.exports=i},49916(e,t,n){var r=n(45050);function i(e){return r(this,e).has(e)}e.exports=i},95265(e,t,n){var r=n(45050);function i(e,t){var n=r(this,e),i=n.size;return n.set(e,t),this.size+=n.size==i?0:1,this}e.exports=i},68776(e){function t(e){var t=-1,n=Array(e.size);return e.forEach(function(e,r){n[++t]=[r,e]}),n}e.exports=t},42634(e){function t(e,t){return function(n){return null!=n&&n[e]===t&&(void 0!==t||e in Object(n))}}e.exports=t},24523(e,t,n){var r=n(88306),i=500;function a(e){var t=r(e,function(e){return n.size===i&&n.clear(),e}),n=t.cache;return t}e.exports=a},94536(e,t,n){var r=n(10852)(Object,"create");e.exports=r},86916(e,t,n){var r=n(5569)(Object.keys,Object);e.exports=r},33498(e){function t(e){var t=[];if(null!=e)for(var n in Object(e))t.push(n);return t}e.exports=t},31167(e,t,n){e=n.nmd(e);var r=n(31957),i=t&&!t.nodeType&&t,a=i&&e&&!e.nodeType&&e,o=a&&a.exports===i&&r.process,s=function(){try{var e=a&&a.require&&a.require("util").types;if(e)return e;return o&&o.binding&&o.binding("util")}catch(t){}}();e.exports=s},2333(e){var t=Object.prototype.toString;function n(e){return t.call(e)}e.exports=n},5569(e){function t(e,t){return function(n){return e(t(n))}}e.exports=t},45357(e,t,n){var r=n(96874),i=Math.max;function a(e,t,n){return t=i(void 0===t?e.length-1:t,0),function(){for(var a=arguments,o=-1,s=i(a.length-t,0),u=Array(s);++o0){if(++i>=t)return arguments[0]}else i=0;return e.apply(void 0,arguments)}}e.exports=i},37465(e,t,n){var r=n(38407);function i(){this.__data__=new r,this.size=0}e.exports=i},63779(e){function t(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}e.exports=t},67599(e){function t(e){return this.__data__.get(e)}e.exports=t},44758(e){function t(e){return this.__data__.has(e)}e.exports=t},34309(e,t,n){var r=n(38407),i=n(57071),a=n(83369),o=200;function s(e,t){var n=this.__data__;if(n instanceof r){var s=n.__data__;if(!i||s.length=t||n<0||g&&r>=f}function S(){var e=i();if(E(e))return k(e);h=setTimeout(S,_(e))}function k(e){return(h=void 0,v&&c)?y(e):(c=l=void 0,d)}function x(){void 0!==h&&clearTimeout(h),b=0,c=p=l=h=void 0}function T(){return void 0===h?d:k(i())}function M(){var e=i(),n=E(e);if(c=arguments,l=this,p=e,n){if(void 0===h)return w(p);if(g)return clearTimeout(h),h=setTimeout(S,t),y(p)}return void 0===h&&(h=setTimeout(S,t)),d}return t=a(t)||0,r(n)&&(m=!!n.leading,f=(g="maxWait"in n)?s(a(n.maxWait)||0,t):f,v="trailing"in n?!!n.trailing:v),M.cancel=x,M.flush=T,M}e.exports=c},53816(e,t,n){var r=n(69389),i=n(79833),a=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,o=RegExp("[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]","g");function s(e){return(e=i(e))&&e.replace(a,r).replace(o,"")}e.exports=s},66073(e,t,n){e.exports=n(84486)},77813(e){function t(e,t){return e===t||e!=e&&t!=t}e.exports=t},63105(e,t,n){var r=n(34963),i=n(80760),a=n(67206),o=n(1469);function s(e,t){return(o(e)?r:i)(e,a(t,3))}e.exports=s},85564(e,t,n){var r=n(21078);function i(e){return(null==e?0:e.length)?r(e,1):[]}e.exports=i},84486(e,t,n){var r=n(77412),i=n(89881),a=n(54290),o=n(1469);function s(e,t){return(o(e)?r:i)(e,a(t))}e.exports=s},27361(e,t,n){var r=n(97786);function i(e,t,n){var i=null==e?void 0:r(e,t);return void 0===i?n:i}e.exports=i},18721(e,t,n){var r=n(78565),i=n(222);function a(e,t){return null!=e&&i(e,t,r)}e.exports=a},79095(e,t,n){var r=n(13),i=n(222);function a(e,t){return null!=e&&i(e,t,r)}e.exports=a},6557(e){function t(e){return e}e.exports=t},35694(e,t,n){var r=n(9454),i=n(37005),a=Object.prototype,o=a.hasOwnProperty,s=a.propertyIsEnumerable,u=r(function(){return arguments}())?r:function(e){return i(e)&&o.call(e,"callee")&&!s.call(e,"callee")};e.exports=u},1469(e){var t=Array.isArray;e.exports=t},98612(e,t,n){var r=n(23560),i=n(41780);function a(e){return null!=e&&i(e.length)&&!r(e)}e.exports=a},29246(e,t,n){var r=n(98612),i=n(37005);function a(e){return i(e)&&r(e)}e.exports=a},44144(e,t,n){e=n.nmd(e);var r=n(55639),i=n(95062),a=t&&!t.nodeType&&t,o=a&&e&&!e.nodeType&&e,s=o&&o.exports===a?r.Buffer:void 0,u=(s?s.isBuffer:void 0)||i;e.exports=u},41609(e,t,n){var r=n(280),i=n(64160),a=n(35694),o=n(1469),s=n(98612),u=n(44144),c=n(25726),l=n(36719),f="[object Map]",d="[object Set]",h=Object.prototype.hasOwnProperty;function p(e){if(null==e)return!0;if(s(e)&&(o(e)||"string"==typeof e||"function"==typeof e.splice||u(e)||l(e)||a(e)))return!e.length;var t=i(e);if(t==f||t==d)return!e.size;if(c(e))return!r(e).length;for(var n in e)if(h.call(e,n))return!1;return!0}e.exports=p},23560(e,t,n){var r=n(44239),i=n(13218),a="[object AsyncFunction]",o="[object Function]",s="[object GeneratorFunction]",u="[object Proxy]";function c(e){if(!i(e))return!1;var t=r(e);return t==o||t==s||t==a||t==u}e.exports=c},41780(e){var t=9007199254740991;function n(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=t}e.exports=n},56688(e,t,n){var r=n(25588),i=n(7518),a=n(31167),o=a&&a.isMap,s=o?i(o):r;e.exports=s},45220(e){function t(e){return null===e}e.exports=t},13218(e){function t(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}e.exports=t},37005(e){function t(e){return null!=e&&"object"==typeof e}e.exports=t},68630(e,t,n){var r=n(44239),i=n(85924),a=n(37005),o="[object Object]",s=Function.prototype,u=Object.prototype,c=s.toString,l=u.hasOwnProperty,f=c.call(Object);function d(e){if(!a(e)||r(e)!=o)return!1;var t=i(e);if(null===t)return!0;var n=l.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&c.call(n)==f}e.exports=d},72928(e,t,n){var r=n(29221),i=n(7518),a=n(31167),o=a&&a.isSet,s=o?i(o):r;e.exports=s},47037(e,t,n){var r=n(44239),i=n(1469),a=n(37005),o="[object String]";function s(e){return"string"==typeof e||!i(e)&&a(e)&&r(e)==o}e.exports=s},33448(e,t,n){var r=n(44239),i=n(37005),a="[object Symbol]";function o(e){return"symbol"==typeof e||i(e)&&r(e)==a}e.exports=o},36719(e,t,n){var r=n(38749),i=n(7518),a=n(31167),o=a&&a.isTypedArray,s=o?i(o):r;e.exports=s},52353(e){function t(e){return void 0===e}e.exports=t},3674(e,t,n){var r=n(14636),i=n(280),a=n(98612);function o(e){return a(e)?r(e):i(e)}e.exports=o},81704(e,t,n){var r=n(14636),i=n(35014),a=n(98612);function o(e){return a(e)?r(e,!0):i(e)}e.exports=o},96486:function(e,t,n){var r;e=n.nmd(e),(function(){var i,a="4.17.21",o=200,s="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",u="Expected a function",c="Invalid `variable` option passed into `_.template`",l="__lodash_hash_undefined__",f=500,d="__lodash_placeholder__",h=1,p=2,b=4,m=1,g=2,v=1,y=2,w=4,_=8,E=16,S=32,k=64,x=128,T=256,M=512,O=30,A="...",L=800,C=16,I=1,D=2,N=3,P=1/0,R=9007199254740991,j=17976931348623157e292,F=0/0,Y=4294967295,B=Y-1,U=Y>>>1,H=[["ary",x],["bind",v],["bindKey",y],["curry",_],["curryRight",E],["flip",M],["partial",S],["partialRight",k],["rearg",T]],$="[object Arguments]",z="[object Array]",G="[object AsyncFunction]",W="[object Boolean]",K="[object Date]",V="[object DOMException]",q="[object Error]",Z="[object Function]",X="[object GeneratorFunction]",J="[object Map]",Q="[object Number]",ee="[object Null]",et="[object Object]",en="[object Promise]",er="[object Proxy]",ei="[object RegExp]",ea="[object Set]",eo="[object String]",es="[object Symbol]",eu="[object Undefined]",ec="[object WeakMap]",el="[object WeakSet]",ef="[object ArrayBuffer]",ed="[object DataView]",eh="[object Float32Array]",ep="[object Float64Array]",eb="[object Int8Array]",em="[object Int16Array]",eg="[object Int32Array]",ev="[object Uint8Array]",ey="[object Uint8ClampedArray]",ew="[object Uint16Array]",e_="[object Uint32Array]",eE=/\b__p \+= '';/g,eS=/\b(__p \+=) '' \+/g,ek=/(__e\(.*?\)|\b__t\)) \+\n'';/g,ex=/&(?:amp|lt|gt|quot|#39);/g,eT=/[&<>"']/g,eM=RegExp(ex.source),eO=RegExp(eT.source),eA=/<%-([\s\S]+?)%>/g,eL=/<%([\s\S]+?)%>/g,eC=/<%=([\s\S]+?)%>/g,eI=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,eD=/^\w*$/,eN=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,eP=/[\\^$.*+?()[\]{}|]/g,eR=RegExp(eP.source),ej=/^\s+/,eF=/\s/,eY=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,eB=/\{\n\/\* \[wrapped with (.+)\] \*/,eU=/,? & /,eH=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,e$=/[()=,{}\[\]\/\s]/,ez=/\\(\\)?/g,eG=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,eW=/\w*$/,eK=/^[-+]0x[0-9a-f]+$/i,eV=/^0b[01]+$/i,eq=/^\[object .+?Constructor\]$/,eZ=/^0o[0-7]+$/i,eX=/^(?:0|[1-9]\d*)$/,eJ=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,eQ=/($^)/,e1=/['\n\r\u2028\u2029\\]/g,e0="\ud800-\udfff",e2="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",e3="\\u2700-\\u27bf",e4="a-z\\xdf-\\xf6\\xf8-\\xff",e5="A-Z\\xc0-\\xd6\\xd8-\\xde",e6="\\ufe0e\\ufe0f",e9="\\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",e8="['’]",e7="["+e0+"]",te="["+e9+"]",tt="["+e2+"]",tn="\\d+",tr="["+e3+"]",ti="["+e4+"]",ta="[^"+e0+e9+tn+e3+e4+e5+"]",to="\ud83c[\udffb-\udfff]",ts="[^"+e0+"]",tu="(?:\ud83c[\udde6-\uddff]){2}",tc="[\ud800-\udbff][\udc00-\udfff]",tl="["+e5+"]",tf="\\u200d",td="(?:"+ti+"|"+ta+")",th="(?:"+tl+"|"+ta+")",tp="(?:"+e8+"(?:d|ll|m|re|s|t|ve))?",tb="(?:"+e8+"(?:D|LL|M|RE|S|T|VE))?",tm="(?:"+tt+"|"+to+")?",tg="["+e6+"]?",tv="(?:"+tf+"(?:"+[ts,tu,tc].join("|")+")"+tg+tm+")*",ty="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",tw="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",t_=tg+tm+tv,tE="(?:"+[tr,tu,tc].join("|")+")"+t_,tS="(?:"+[ts+tt+"?",tt,tu,tc,e7].join("|")+")",tk=RegExp(e8,"g"),tx=RegExp(tt,"g"),tT=RegExp(to+"(?="+to+")|"+tS+t_,"g"),tM=RegExp([tl+"?"+ti+"+"+tp+"(?="+[te,tl,"$"].join("|")+")",th+"+"+tb+"(?="+[te,tl+td,"$"].join("|")+")",tl+"?"+td+"+"+tp,tl+"+"+tb,tw,ty,tn,tE].join("|"),"g"),tO=RegExp("["+tf+e0+e2+e6+"]"),tA=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,tL=["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"],tC=-1,tI={};tI[eh]=tI[ep]=tI[eb]=tI[em]=tI[eg]=tI[ev]=tI[ey]=tI[ew]=tI[e_]=!0,tI[$]=tI[z]=tI[ef]=tI[W]=tI[ed]=tI[K]=tI[q]=tI[Z]=tI[J]=tI[Q]=tI[et]=tI[ei]=tI[ea]=tI[eo]=tI[ec]=!1;var tD={};tD[$]=tD[z]=tD[ef]=tD[ed]=tD[W]=tD[K]=tD[eh]=tD[ep]=tD[eb]=tD[em]=tD[eg]=tD[J]=tD[Q]=tD[et]=tD[ei]=tD[ea]=tD[eo]=tD[es]=tD[ev]=tD[ey]=tD[ew]=tD[e_]=!0,tD[q]=tD[Z]=tD[ec]=!1;var tN={À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",IJ:"IJ",ij:"ij",Œ:"Oe",œ:"oe",ʼn:"'n",ſ:"s"},tP={"&":"&","<":"<",">":">",'"':""","'":"'"},tR={"&":"&","<":"<",">":">",""":'"',"'":"'"},tj={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},tF=parseFloat,tY=parseInt,tB="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g,tU="object"==typeof self&&self&&self.Object===Object&&self,tH=tB||tU||Function("return this")(),t$=t&&!t.nodeType&&t,tz=t$&&e&&!e.nodeType&&e,tG=tz&&tz.exports===t$,tW=tG&&tB.process,tK=function(){try{var e=tz&&tz.require&&tz.require("util").types;if(e)return e;return tW&&tW.binding&&tW.binding("util")}catch(t){}}(),tV=tK&&tK.isArrayBuffer,tq=tK&&tK.isDate,tZ=tK&&tK.isMap,tX=tK&&tK.isRegExp,tJ=tK&&tK.isSet,tQ=tK&&tK.isTypedArray;function t1(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 t0(e,t,n,r){for(var i=-1,a=null==e?0:e.length;++i-1}function t9(e,t,n){for(var r=-1,i=null==e?0:e.length;++r-1;);return n}function nk(e,t){for(var n=e.length;n--&&nu(t,e[n],0)>-1;);return n}function nx(e,t){for(var n=e.length,r=0;n--;)e[n]===t&&++r;return r}var nT=nh(tN),nM=nh(tP);function nO(e){return"\\"+tj[e]}function nA(e,t){return null==e?i:e[t]}function nL(e){return tO.test(e)}function nC(e){return tA.test(e)}function nI(e){for(var t,n=[];!(t=e.next()).done;)n.push(t.value);return n}function nD(e){var t=-1,n=Array(e.size);return e.forEach(function(e,r){n[++t]=[r,e]}),n}function nN(e,t){return function(n){return e(t(n))}}function nP(e,t){for(var n=-1,r=e.length,i=0,a=[];++n-1}function rh(e,t){var n=this.__data__,r=rP(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}function rp(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t=t?e:t)),e}function rH(e,t,n,r,a,o){var s,u=t&h,c=t&p,l=t&b;if(n&&(s=a?n(e,r,a,o):n(e)),s!==i)return s;if(!u1(e))return e;var f=uF(e);if(f){if(s=a9(e),!u)return al(e,s)}else{var d=a3(e),m=d==Z||d==X;if(u$(e))return ae(e,u);if(d==et||d==$||m&&!a){if(s=c||m?{}:a8(e),!u)return c?ah(e,rF(s,e)):ad(e,rj(s,e))}else{if(!tD[d])return a?e:{};s=a7(e,d,u)}}o||(o=new rS);var g=o.get(e);if(g)return g;o.set(e,s),cr(e)?e.forEach(function(r){s.add(rH(r,t,n,r,e,o))}):u2(e)&&e.forEach(function(r,i){s.set(i,rH(r,t,n,i,e,o))});var v=l?c?aW:aG:c?c$:cH,y=f?i:v(e);return t2(y||e,function(r,i){y&&(r=e[i=r]),rN(s,i,rH(r,t,n,i,e,o))}),s}function r$(e){var t=cH(e);return function(n){return rz(n,e,t)}}function rz(e,t,n){var r=n.length;if(null==e)return!r;for(e=e4(e);r--;){var a=n[r],o=t[a],s=e[a];if(s===i&&!(a in e)||!o(s))return!1}return!0}function rG(e,t,n){if("function"!=typeof e)throw new e9(u);return o_(function(){e.apply(i,n)},t)}function rW(e,t,n,r){var i=-1,a=t6,s=!0,u=e.length,c=[],l=t.length;if(!u)return c;n&&(t=t8(t,nw(n))),r?(a=t9,s=!1):t.length>=o&&(a=nE,s=!1,t=new rw(t));outer:for(;++ia?0:a+n),(r=r===i||r>a?a:cp(r))<0&&(r+=a),r=n>r?0:cb(r);n0&&n(s)?t>1?rQ(s,t-1,n,r,i):t7(i,s):r||(i[i.length]=s)}return i}var r1=ag(),r0=ag(!0);function r2(e,t){return e&&r1(e,t,cH)}function r3(e,t){return e&&r0(e,t,cH)}function r4(e,t){return t5(t,function(t){return uX(e[t])})}function r5(e,t){t=i6(t,e);for(var n=0,r=t.length;null!=e&&nt}function r7(e,t){return null!=e&&tr.call(e,t)}function ie(e,t){return null!=e&&t in e4(e)}function it(e,t,n){return e>=tU(t,n)&&e=120&&f.length>=120)?new rw(s&&f):i}f=e[0];var d=-1,h=u[0];outer:for(;++d-1;)s!==e&&tg.call(s,u,1),tg.call(e,u,1);return e}function iD(e,t){for(var n=e?t.length:0,r=n-1;n--;){var i=t[n];if(n==r||i!==a){var a=i;on(i)?tg.call(e,i,1):iJ(e,i)}}return e}function iN(e,t){return e+tO(tW()*(t-e+1))}function iP(e,t,n,r){for(var i=-1,a=tB(tM((t-e)/(n||1)),0),o=eF(a);a--;)o[r?a:++i]=e,e+=n;return o}function iR(e,t){var n="";if(!e||t<1||t>R)return n;do t%2&&(n+=e),(t=tO(t/2))&&(e+=e);while(t)return n}function ij(e,t){return oE(om(e,t,lB),e+"")}function iF(e){return rL(c9(e))}function iY(e,t){var n=c9(e);return ox(n,rU(t,0,n.length))}function iB(e,t,n,r){if(!u1(e))return e;t=i6(t,e);for(var a=-1,o=t.length,s=o-1,u=e;null!=u&&++ai?0:i+t),(n=n>i?i:n)<0&&(n+=i),i=t>n?0:n-t>>>0,t>>>=0;for(var a=eF(i);++r>>1,o=e[a];null!==o&&!ca(o)&&(n?o<=t:o=o){var l=t?null:aP(e);if(l)return nR(l);s=!1,i=nE,c=new rw}else c=t?[]:u;outer:for(;++r=r?e:iz(e,t,n)}var i7=tE||function(e){return tH.clearTimeout(e)};function ae(e,t){if(t)return e.slice();var n=e.length,r=th?th(n):new e.constructor(n);return e.copy(r),r}function at(e){var t=new e.constructor(e.byteLength);return new td(t).set(new td(e)),t}function an(e,t){var n=t?at(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}function ar(e){var t=new e.constructor(e.source,eW.exec(e));return t.lastIndex=e.lastIndex,t}function ai(e){return n2?e4(n2.call(e)):{}}function aa(e,t){var n=t?at(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}function ao(e,t){if(e!==t){var n=e!==i,r=null===e,a=e==e,o=ca(e),s=t!==i,u=null===t,c=t==t,l=ca(t);if(!u&&!l&&!o&&e>t||o&&s&&c&&!u&&!l||r&&s&&c||!n&&c||!a)return 1;if(!r&&!o&&!l&&e=s)return u;return u*("desc"==n[r]?-1:1)}}return e.index-t.index}function au(e,t,n,r){for(var i=-1,a=e.length,o=n.length,s=-1,u=t.length,c=tB(a-o,0),l=eF(u+c),f=!r;++s1?n[a-1]:i,s=a>2?n[2]:i;for(o=e.length>3&&"function"==typeof o?(a--,o):i,s&&or(n[0],n[1],s)&&(o=a<3?i:o,a=1),t=e4(t);++r-1?a[o?t[s]:s]:i}}function ak(e){return az(function(t){var n=t.length,r=n,a=n9.prototype.thru;for(e&&t.reverse();r--;){var o=t[r];if("function"!=typeof o)throw new e9(u);if(a&&!s&&"wrapper"==aV(o))var s=new n9([],!0)}for(r=s?r:n;++r1&&v.reverse(),f&&cu))return!1;var l=o.get(e),f=o.get(t);if(l&&f)return l==t&&f==e;var d=-1,h=!0,p=n&g?new rw:i;for(o.set(e,t),o.set(t,e);++d1?"& ":"")+t[r],t=t.join(n>2?", ":" "),e.replace(eY,"{\n/* [wrapped with "+t+"] */\n")}function ot(e){return uF(e)||uj(e)||!!(tv&&e&&e[tv])}function on(e,t){var n=typeof e;return!!(t=null==t?R:t)&&("number"==n||"symbol"!=n&&eX.test(e))&&e>-1&&e%1==0&&e0){if(++t>=L)return arguments[0]}else t=0;return e.apply(i,arguments)}}function ox(e,t){var n=-1,r=e.length,a=r-1;for(t=t===i?r:t;++n1?e[t-1]:i;return n="function"==typeof n?(e.pop(),n):i,sE(e,n)});function sC(e){var t=n4(e);return t.__chain__=!0,t}function sI(e,t){return t(e),e}function sD(e,t){return t(e)}var sN=az(function(e){var t=e.length,n=t?e[0]:0,r=this.__wrapped__,a=function(t){return rB(t,e)};return!(t>1)&&!this.__actions__.length&&r instanceof n8&&on(n)?((r=r.slice(n,+n+(t?1:0))).__actions__.push({func:sD,args:[a],thisArg:i}),new n9(r,this.__chain__).thru(function(e){return t&&!e.length&&e.push(i),e})):this.thru(a)});function sP(){return sC(this)}function sR(){return new n9(this.value(),this.__chain__)}function sj(){i===this.__values__&&(this.__values__=cd(this.value()));var e=this.__index__>=this.__values__.length,t=e?i:this.__values__[this.__index__++];return{done:e,value:t}}function sF(){return this}function sY(e){for(var t,n=this;n instanceof n6;){var r=oL(n);r.__index__=0,r.__values__=i,t?a.__wrapped__=r:t=r;var a=r;n=n.__wrapped__}return a.__wrapped__=e,t}function sB(){var e=this.__wrapped__;if(e instanceof n8){var t=e;return this.__actions__.length&&(t=new n8(this)),(t=t.reverse()).__actions__.push({func:sD,args:[se],thisArg:i}),new n9(t,this.__chain__)}return this.thru(se)}function sU(){return i0(this.__wrapped__,this.__actions__)}var sH=ap(function(e,t,n){tr.call(e,n)?++e[n]:rY(e,n,1)});function s$(e,t,n){var r=uF(e)?t4:rq;return n&&or(e,t,n)&&(t=i),r(e,aZ(t,3))}function sz(e,t){return(uF(e)?t5:rJ)(e,aZ(t,3))}var sG=aS(oH),sW=aS(o$);function sK(e,t){return rQ(s2(e,t),1)}function sV(e,t){return rQ(s2(e,t),P)}function sq(e,t,n){return n=n===i?1:cp(n),rQ(s2(e,t),n)}function sZ(e,t){return(uF(e)?t2:rK)(e,aZ(t,3))}function sX(e,t){return(uF(e)?t3:rV)(e,aZ(t,3))}var sJ=ap(function(e,t,n){tr.call(e,n)?e[n].push(t):rY(e,n,[t])});function sQ(e,t,n,r){e=uB(e)?e:c9(e),n=n&&!r?cp(n):0;var i=e.length;return n<0&&(n=tB(i+n,0)),ci(e)?n<=i&&e.indexOf(t,n)>-1:!!i&&nu(e,t,n)>-1}var s1=ij(function(e,t,n){var r=-1,i="function"==typeof t,a=uB(e)?eF(e.length):[];return rK(e,function(e){a[++r]=i?t1(t,e,n):ia(e,t,n)}),a}),s0=ap(function(e,t,n){rY(e,n,t)});function s2(e,t){return(uF(e)?t8:iE)(e,aZ(t,3))}function s3(e,t,n,r){return null==e?[]:(uF(t)||(t=null==t?[]:[t]),n=r?i:n,uF(n)||(n=null==n?[]:[n]),iO(e,t,n))}var s4=ap(function(e,t,n){e[n?0:1].push(t)},function(){return[[],[]]});function s5(e,t,n){var r=uF(e)?ne:np,i=arguments.length<3;return r(e,aZ(t,4),n,i,rK)}function s6(e,t,n){var r=uF(e)?nt:np,i=arguments.length<3;return r(e,aZ(t,4),n,i,rV)}function s9(e,t){return(uF(e)?t5:rJ)(e,ug(aZ(t,3)))}function s8(e){return(uF(e)?rL:iF)(e)}function s7(e,t,n){return t=(n?or(e,t,n):t===i)?1:cp(t),(uF(e)?rC:iY)(e,t)}function ue(e){return(uF(e)?rI:i$)(e)}function ut(e){if(null==e)return 0;if(uB(e))return ci(e)?nB(e):e.length;var t=a3(e);return t==J||t==ea?e.size:iy(e).length}function un(e,t,n){var r=uF(e)?nn:iG;return n&&or(e,t,n)&&(t=i),r(e,aZ(t,3))}var ur=ij(function(e,t){if(null==e)return[];var n=t.length;return n>1&&or(e,t[0],t[1])?t=[]:n>2&&or(t[0],t[1],t[2])&&(t=[t[0]]),iO(e,rQ(t,1),[])}),ui=tS||function(){return tH.Date.now()};function ua(e,t){if("function"!=typeof t)throw new e9(u);return e=cp(e),function(){if(--e<1)return t.apply(this,arguments)}}function uo(e,t,n){return t=n?i:t,t=e&&null==t?e.length:t,aj(e,x,i,i,i,i,t)}function us(e,t){var n;if("function"!=typeof t)throw new e9(u);return e=cp(e),function(){return--e>0&&(n=t.apply(this,arguments)),e<=1&&(t=i),n}}var uu=ij(function(e,t,n){var r=v;if(n.length){var i=nP(n,aq(uu));r|=S}return aj(e,r,t,n,i)}),uc=ij(function(e,t,n){var r=v|y;if(n.length){var i=nP(n,aq(uc));r|=S}return aj(t,r,e,n,i)});function ul(e,t,n){t=n?i:t;var r=aj(e,_,i,i,i,i,i,t);return r.placeholder=ul.placeholder,r}function uf(e,t,n){t=n?i:t;var r=aj(e,E,i,i,i,i,i,t);return r.placeholder=uf.placeholder,r}function ud(e,t,n){var r,a,o,s,c,l,f=0,d=!1,h=!1,p=!0;if("function"!=typeof e)throw new e9(u);function b(t){var n=r,o=a;return r=a=i,f=t,s=e.apply(o,n)}function m(e){return f=e,c=o_(y,t),d?b(e):s}function g(e){var n=e-l,r=e-f,i=t-n;return h?tU(i,o-r):i}function v(e){var n=e-l,r=e-f;return l===i||n>=t||n<0||h&&r>=o}function y(){var e=ui();if(v(e))return w(e);c=o_(y,g(e))}function w(e){return(c=i,p&&r)?b(e):(r=a=i,s)}function _(){c!==i&&i7(c),f=0,r=l=a=c=i}function E(){return c===i?s:w(ui())}function S(){var e=ui(),n=v(e);if(r=arguments,a=this,l=e,n){if(c===i)return m(l);if(h)return i7(c),c=o_(y,t),b(l)}return c===i&&(c=o_(y,t)),s}return t=cm(t)||0,u1(n)&&(d=!!n.leading,o=(h="maxWait"in n)?tB(cm(n.maxWait)||0,t):o,p="trailing"in n?!!n.trailing:p),S.cancel=_,S.flush=E,S}var uh=ij(function(e,t){return rG(e,1,t)}),up=ij(function(e,t,n){return rG(e,cm(t)||0,n)});function ub(e){return aj(e,M)}function um(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new e9(u);var n=function(){var r=arguments,i=t?t.apply(this,r):r[0],a=n.cache;if(a.has(i))return a.get(i);var o=e.apply(this,r);return n.cache=a.set(i,o)||a,o};return n.cache=new(um.Cache||rp),n}function ug(e){if("function"!=typeof e)throw new e9(u);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 uv(e){return us(2,e)}um.Cache=rp;var uy=i9(function(e,t){var n=(t=1==t.length&&uF(t[0])?t8(t[0],nw(aZ())):t8(rQ(t,1),nw(aZ()))).length;return ij(function(r){for(var i=-1,a=tU(r.length,n);++i=t}),uj=io(function(){return arguments}())?io:function(e){return u0(e)&&tr.call(e,"callee")&&!tm.call(e,"callee")},uF=eF.isArray,uY=tV?nw(tV):is;function uB(e){return null!=e&&uQ(e.length)&&!uX(e)}function uU(e){return u0(e)&&uB(e)}function uH(e){return!0===e||!1===e||u0(e)&&r9(e)==W}var u$=tN||l4,uz=tq?nw(tq):iu;function uG(e){return u0(e)&&1===e.nodeType&&!ce(e)}function uW(e){if(null==e)return!0;if(uB(e)&&(uF(e)||"string"==typeof e||"function"==typeof e.splice||u$(e)||co(e)||uj(e)))return!e.length;var t=a3(e);if(t==J||t==ea)return!e.size;if(oc(e))return!iy(e).length;for(var n in e)if(tr.call(e,n))return!1;return!0}function uK(e,t){return ic(e,t)}function uV(e,t,n){var r=(n="function"==typeof n?n:i)?n(e,t):i;return r===i?ic(e,t,i,n):!!r}function uq(e){if(!u0(e))return!1;var t=r9(e);return t==q||t==V||"string"==typeof e.message&&"string"==typeof e.name&&!ce(e)}function uZ(e){return"number"==typeof e&&tP(e)}function uX(e){if(!u1(e))return!1;var t=r9(e);return t==Z||t==X||t==G||t==er}function uJ(e){return"number"==typeof e&&e==cp(e)}function uQ(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=R}function u1(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function u0(e){return null!=e&&"object"==typeof e}var u2=tZ?nw(tZ):id;function u3(e,t){return e===t||ih(e,t,aJ(t))}function u4(e,t,n){return n="function"==typeof n?n:i,ih(e,t,aJ(t),n)}function u5(e){return u7(e)&&e!=+e}function u6(e){if(ou(e))throw new e0(s);return ip(e)}function u9(e){return null===e}function u8(e){return null==e}function u7(e){return"number"==typeof e||u0(e)&&r9(e)==Q}function ce(e){if(!u0(e)||r9(e)!=et)return!1;var t=tp(e);if(null===t)return!0;var n=tr.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&tn.call(n)==ts}var ct=tX?nw(tX):ib;function cn(e){return uJ(e)&&e>=-R&&e<=R}var cr=tJ?nw(tJ):im;function ci(e){return"string"==typeof e||!uF(e)&&u0(e)&&r9(e)==eo}function ca(e){return"symbol"==typeof e||u0(e)&&r9(e)==es}var co=tQ?nw(tQ):ig;function cs(e){return e===i}function cu(e){return u0(e)&&a3(e)==ec}function cc(e){return u0(e)&&r9(e)==el}var cl=aI(i_),cf=aI(function(e,t){return e<=t});function cd(e){if(!e)return[];if(uB(e))return ci(e)?nU(e):al(e);if(ty&&e[ty])return nI(e[ty]());var t=a3(e);return(t==J?nD:t==ea?nR:c9)(e)}function ch(e){return e?(e=cm(e))===P||e===-P?(e<0?-1:1)*j:e==e?e:0:0===e?e:0}function cp(e){var t=ch(e),n=t%1;return t==t?n?t-n:t:0}function cb(e){return e?rU(cp(e),0,Y):0}function cm(e){if("number"==typeof e)return e;if(ca(e))return F;if(u1(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=u1(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=ny(e);var n=eV.test(e);return n||eZ.test(e)?tY(e.slice(2),n?2:8):eK.test(e)?F:+e}function cg(e){return af(e,c$(e))}function cv(e){return e?rU(cp(e),-R,R):0===e?e:0}function cy(e){return null==e?"":iZ(e)}var cw=ab(function(e,t){if(oc(t)||uB(t)){af(t,cH(t),e);return}for(var n in t)tr.call(t,n)&&rN(e,n,t[n])}),c_=ab(function(e,t){af(t,c$(t),e)}),cE=ab(function(e,t,n,r){af(t,c$(t),e,r)}),cS=ab(function(e,t,n,r){af(t,cH(t),e,r)}),ck=az(rB);function cx(e,t){var n=n5(e);return null==t?n:rj(n,t)}var cT=ij(function(e,t){e=e4(e);var n=-1,r=t.length,a=r>2?t[2]:i;for(a&&or(t[0],t[1],a)&&(r=1);++n1),t}),af(e,aW(e),n),r&&(n=rH(n,h|p|b,aB));for(var i=t.length;i--;)iJ(n,t[i]);return n});function cq(e,t){return cX(e,ug(aZ(t)))}var cZ=az(function(e,t){return null==e?{}:iA(e,t)});function cX(e,t){if(null==e)return{};var n=t8(aW(e),function(e){return[e]});return t=aZ(t),iL(e,n,function(e,n){return t(e,n[0])})}function cJ(e,t,n){t=i6(t,e);var r=-1,a=t.length;for(a||(a=1,e=i);++rt){var r=e;e=t,t=r}if(n||e%1||t%1){var a=tW();return tU(e+a*(t-e+tF("1e-"+((a+"").length-1))),t)}return iN(e,t)}var ln=aw(function(e,t,n){return t=t.toLowerCase(),e+(n?lr(t):t)});function lr(e){return lL(cy(e).toLowerCase())}function li(e){return(e=cy(e))&&e.replace(eJ,nT).replace(tx,"")}function la(e,t,n){e=cy(e),t=iZ(t);var r=e.length,a=n=n===i?r:rU(cp(n),0,r);return(n-=t.length)>=0&&e.slice(n,a)==t}function lo(e){return(e=cy(e))&&eO.test(e)?e.replace(eT,nM):e}function ls(e){return(e=cy(e))&&eR.test(e)?e.replace(eP,"\\$&"):e}var lu=aw(function(e,t,n){return e+(n?"-":"")+t.toLowerCase()}),lc=aw(function(e,t,n){return e+(n?" ":"")+t.toLowerCase()}),ll=ay("toLowerCase");function lf(e,t,n){e=cy(e);var r=(t=cp(t))?nB(e):0;if(!t||r>=t)return e;var i=(t-r)/2;return aA(tO(i),n)+e+aA(tM(i),n)}function ld(e,t,n){e=cy(e);var r=(t=cp(t))?nB(e):0;return t&&r>>0)?(e=cy(e))&&("string"==typeof t||null!=t&&!ct(t))&&!(t=iZ(t))&&nL(e)?i8(nU(e),0,n):e.split(t,n):[]}var ly=aw(function(e,t,n){return e+(n?" ":"")+lL(t)});function lw(e,t,n){return e=cy(e),n=null==n?0:rU(cp(n),0,e.length),t=iZ(t),e.slice(n,n+t.length)==t}function l_(e,t,n){var r=n4.templateSettings;n&&or(e,t,n)&&(t=i),e=cy(e),t=cE({},t,r,aF);var a,o,s=cE({},t.imports,r.imports,aF),u=cH(s),l=n_(s,u),f=0,d=t.interpolate||eQ,h="__p += '",p=e5((t.escape||eQ).source+"|"+d.source+"|"+(d===eC?eG:eQ).source+"|"+(t.evaluate||eQ).source+"|$","g"),b="//# sourceURL="+(tr.call(t,"sourceURL")?(t.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++tC+"]")+"\n";e.replace(p,function(t,n,r,i,s,u){return r||(r=i),h+=e.slice(f,u).replace(e1,nO),n&&(a=!0,h+="' +\n__e("+n+") +\n'"),s&&(o=!0,h+="';\n"+s+";\n__p += '"),r&&(h+="' +\n((__t = ("+r+")) == null ? '' : __t) +\n'"),f=u+t.length,t}),h+="';\n";var m=tr.call(t,"variable")&&t.variable;if(m){if(e$.test(m))throw new e0(c)}else h="with (obj) {\n"+h+"\n}\n";h=(o?h.replace(eE,""):h).replace(eS,"$1").replace(ek,"$1;"),h="function("+(m||"obj")+") {\n"+(m?"":"obj || (obj = {});\n")+"var __t, __p = ''"+(a?", __e = _.escape":"")+(o?", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n":";\n")+h+"return __p\n}";var g=lI(function(){return e2(u,b+"return "+h).apply(i,l)});if(g.source=h,uq(g))throw g;return g}function lE(e){return cy(e).toLowerCase()}function lS(e){return cy(e).toUpperCase()}function lk(e,t,n){if((e=cy(e))&&(n||t===i))return ny(e);if(!e||!(t=iZ(t)))return e;var r=nU(e),a=nU(t),o=nS(r,a),s=nk(r,a)+1;return i8(r,o,s).join("")}function lx(e,t,n){if((e=cy(e))&&(n||t===i))return e.slice(0,nH(e)+1);if(!e||!(t=iZ(t)))return e;var r=nU(e),a=nk(r,nU(t))+1;return i8(r,0,a).join("")}function lT(e,t,n){if((e=cy(e))&&(n||t===i))return e.replace(ej,"");if(!e||!(t=iZ(t)))return e;var r=nU(e),a=nS(r,nU(t));return i8(r,a).join("")}function lM(e,t){var n=O,r=A;if(u1(t)){var a="separator"in t?t.separator:a;n="length"in t?cp(t.length):n,r="omission"in t?iZ(t.omission):r}var o=(e=cy(e)).length;if(nL(e)){var s=nU(e);o=s.length}if(n>=o)return e;var u=n-nB(r);if(u<1)return r;var c=s?i8(s,0,u).join(""):e.slice(0,u);if(a===i)return c+r;if(s&&(u+=c.length-u),ct(a)){if(e.slice(u).search(a)){var l,f=c;for(a.global||(a=e5(a.source,cy(eW.exec(a))+"g")),a.lastIndex=0;l=a.exec(f);)var d=l.index;c=c.slice(0,d===i?u:d)}}else if(e.indexOf(iZ(a),u)!=u){var h=c.lastIndexOf(a);h>-1&&(c=c.slice(0,h))}return c+r}function lO(e){return(e=cy(e))&&eM.test(e)?e.replace(ex,n$):e}var lA=aw(function(e,t,n){return e+(n?" ":"")+t.toUpperCase()}),lL=ay("toUpperCase");function lC(e,t,n){return(e=cy(e),i===(t=n?i:t))?nC(e)?nW(e):na(e):e.match(t)||[]}var lI=ij(function(e,t){try{return t1(e,i,t)}catch(n){return uq(n)?n:new e0(n)}}),lD=az(function(e,t){return t2(t,function(t){t=oM(t),rY(e,t,uu(e[t],e))}),e});function lN(e){var t=null==e?0:e.length,n=aZ();return e=t?t8(e,function(e){if("function"!=typeof e[1])throw new e9(u);return[n(e[0]),e[1]]}):[],ij(function(n){for(var r=-1;++rR)return[];var n=Y,r=tU(e,Y);t=aZ(t),e-=Y;for(var i=ng(r,t);++n0||t<0)?new n8(n):(e<0?n=n.takeRight(-e):e&&(n=n.drop(e)),t!==i&&(n=(t=cp(t))<0?n.dropRight(-t):n.take(t-e)),n)},n8.prototype.takeRightWhile=function(e){return this.reverse().takeWhile(e).reverse()},n8.prototype.toArray=function(){return this.take(Y)},r2(n8.prototype,function(e,t){var n=/^(?:filter|find|map|reject)|While$/.test(t),r=/^(?:head|last)$/.test(t),a=n4[r?"take"+("last"==t?"Right":""):t],o=r||/^find/.test(t);a&&(n4.prototype[t]=function(){var t=this.__wrapped__,s=r?[1]:arguments,u=t instanceof n8,c=s[0],l=u||uF(t),f=function(e){var t=a.apply(n4,t7([e],s));return r&&d?t[0]:t};l&&n&&"function"==typeof c&&1!=c.length&&(u=l=!1);var d=this.__chain__,h=!!this.__actions__.length,p=o&&!d,b=u&&!h;if(!o&&l){t=b?t:new n8(this);var m=e.apply(t,s);return m.__actions__.push({func:sD,args:[f],thisArg:i}),new n9(m,d)}return p&&b?e.apply(this,s):(m=this.thru(f),p?r?m.value()[0]:m.value():m)})}),t2(["pop","push","shift","sort","splice","unshift"],function(e){var t=e8[e],n=/^(?:push|sort|unshift)$/.test(e)?"tap":"thru",r=/^(?:pop|shift)$/.test(e);n4.prototype[e]=function(){var e=arguments;if(r&&!this.__chain__){var i=this.value();return t.apply(uF(i)?i:[],e)}return this[n](function(n){return t.apply(uF(n)?n:[],e)})}}),r2(n8.prototype,function(e,t){var n=n4[t];if(n){var r=n.name+"";tr.call(nq,r)||(nq[r]=[]),nq[r].push({name:t,func:n})}}),nq[ax(i,y).name]=[{name:"wrapper",func:i}],n8.prototype.clone=n7,n8.prototype.reverse=re,n8.prototype.value=rt,n4.prototype.at=sN,n4.prototype.chain=sP,n4.prototype.commit=sR,n4.prototype.next=sj,n4.prototype.plant=sY,n4.prototype.reverse=sB,n4.prototype.toJSON=n4.prototype.valueOf=n4.prototype.value=sU,n4.prototype.first=n4.prototype.head,ty&&(n4.prototype[ty]=sF),n4}();tH._=nK,i!==(r=(function(){return nK}).call(t,n,t,e))&&(e.exports=r)}).call(this)},35161(e,t,n){var r=n(29932),i=n(67206),a=n(69199),o=n(1469);function s(e,t){return(o(e)?r:a)(e,i(t,3))}e.exports=s},67523(e,t,n){var r=n(89465),i=n(47816),a=n(67206);function o(e,t){var n={};return t=a(t,3),i(e,function(e,i,a){r(n,t(e,i,a),e)}),n}e.exports=o},66604(e,t,n){var r=n(89465),i=n(47816),a=n(67206);function o(e,t){var n={};return t=a(t,3),i(e,function(e,i,a){r(n,i,t(e,i,a))}),n}e.exports=o},88306(e,t,n){var r=n(83369),i="Expected a function";function a(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw TypeError(i);var n=function(){var r=arguments,i=t?t.apply(this,r):r[0],a=n.cache;if(a.has(i))return a.get(i);var o=e.apply(this,r);return n.cache=a.set(i,o)||a,o};return n.cache=new(a.Cache||r),n}a.Cache=r,e.exports=a},82492(e,t,n){var r=n(42980),i=n(21463)(function(e,t,n){r(e,t,n)});e.exports=i},50308(e){function t(){}e.exports=t},7771(e,t,n){var r=n(55639),i=function(){return r.Date.now()};e.exports=i},78718(e,t,n){var r=n(25970),i=n(99021)(function(e,t){return null==e?{}:r(e,t)});e.exports=i},39601(e,t,n){var r=n(40371),i=n(79152),a=n(15403),o=n(40327);function s(e){return a(e)?r(o(e)):i(e)}e.exports=s},54061(e,t,n){var r=n(62663),i=n(89881),a=n(67206),o=n(10107),s=n(1469);function u(e,t,n){var u=s(e)?r:o,c=arguments.length<3;return u(e,a(t,4),n,c,i)}e.exports=u},84238(e,t,n){var r=n(280),i=n(64160),a=n(98612),o=n(47037),s=n(88016),u="[object Map]",c="[object Set]";function l(e){if(null==e)return 0;if(a(e))return o(e)?s(e):e.length;var t=i(e);return t==u||t==c?e.size:r(e).length}e.exports=l},11865(e,t,n){var r=n(35393)(function(e,t,n){return e+(n?"_":"")+t.toLowerCase()});e.exports=r},70479(e){function t(){return[]}e.exports=t},95062(e){function t(){return!1}e.exports=t},14841(e,t,n){var r=n(27561),i=n(13218),a=n(33448),o=0/0,s=/^[-+]0x[0-9a-f]+$/i,u=/^0b[01]+$/i,c=/^0o[0-7]+$/i,l=parseInt;function f(e){if("number"==typeof e)return e;if(a(e))return o;if(i(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=i(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=r(e);var n=u.test(e);return n||c.test(e)?l(e.slice(2),n?2:8):s.test(e)?o:+e}e.exports=f},59881(e,t,n){var r=n(98363),i=n(81704);function a(e){return r(e,i(e))}e.exports=a},79833(e,t,n){var r=n(80531);function i(e){return null==e?"":r(e)}e.exports=i},68718(e,t,n){var r=n(77412),i=n(3118),a=n(47816),o=n(67206),s=n(85924),u=n(1469),c=n(44144),l=n(23560),f=n(13218),d=n(36719);function h(e,t,n){var h=u(e),p=h||c(e)||d(e);if(t=o(t,4),null==n){var b=e&&e.constructor;n=p?h?new b:[]:f(e)&&l(b)?i(s(e)):{}}return(p?r:a)(e,function(e,r,i){return t(n,e,r,i)}),n}e.exports=h},93386(e,t,n){var r=n(21078),i=n(5976),a=n(45652),o=n(29246),s=i(function(e){return a(r(e,1,o,!0))});e.exports=s},11700(e,t,n){var r=n(98805)("toUpperCase");e.exports=r},52628(e,t,n){var r=n(47415),i=n(3674);function a(e){return null==e?[]:r(e,i(e))}e.exports=a},58748(e,t,n){var r=n(49029),i=n(93157),a=n(79833),o=n(2757);function s(e,t,n){return(e=a(e),void 0===(t=n?void 0:t))?i(e)?o(e):r(e):e.match(t)||[]}e.exports=s},42786:function(e,t,n){var r,i;r=this,(i=function(e){return e.defineLocale("af",{months:"Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des".split("_"),weekdays:"Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag".split("_"),weekdaysShort:"Son_Maa_Din_Woe_Don_Vry_Sat".split("_"),weekdaysMin:"So_Ma_Di_Wo_Do_Vr_Sa".split("_"),meridiemParse:/vm|nm/i,isPM:function(e){return/^nm$/i.test(e)},meridiem:function(e,t,n){return e<12?n?"vm":"VM":n?"nm":"NM"},longDateFormat:{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"},calendar:{sameDay:"[Vandag om] LT",nextDay:"[M\xf4re om] LT",nextWeek:"dddd [om] LT",lastDay:"[Gister om] LT",lastWeek:"[Laas] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oor %s",past:"%s gelede",s:"'n paar sekondes",ss:"%d 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"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||e>=20?"ste":"de")},week:{dow:1,doy:4}})})(n(30381))},14130:function(e,t,n){var r,i;r=this,(i=function(e){"use strict";//! moment.js locale configuration + */ t.parse=o,t.serialize=s;var n=decodeURIComponent,r=encodeURIComponent,i=/; */,a=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/;function o(e,t){if("string"!=typeof e)throw TypeError("argument str must be a string");for(var r={},a=t||{},o=e.split(i),s=a.decode||n,c=0;cc});var r=n(56169);e=n.hmd(e);var i="object"==typeof exports&&exports&&!exports.nodeType&&exports,a=i&&e&&!e.nodeType&&e,o=a&&a.exports===i?r.Z.Buffer:void 0,s=o?o.allocUnsafe:void 0;function u(e,t){if(t)return e.slice();var n=e.length,r=s?s(n):new e.constructor(n);return e.copy(r),r}let c=u},48277(e,t,n){"use strict";n.d(t,{Z:()=>i});var r="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g;let i=r},79730(e,t,n){"use strict";n.d(t,{Z:()=>u});var r=n(48277);e=n.hmd(e);var i="object"==typeof exports&&exports&&!exports.nodeType&&exports,a=i&&e&&!e.nodeType&&e,o=a&&a.exports===i&&r.Z.process,s=function(){try{var e=a&&a.require&&a.require("util").types;if(e)return e;return o&&o.binding&&o.binding("util")}catch(t){}}();let u=s},56169(e,t,n){"use strict";n.d(t,{Z:()=>o});var r=n(48277),i="object"==typeof self&&self&&self.Object===Object&&self,a=r.Z||i||Function("return this")();let o=a},29710(e,t,n){"use strict";n.d(t,{Z:()=>l});var r=n(56169);function i(){return!1}let a=i;e=n.hmd(e);var o="object"==typeof exports&&exports&&!exports.nodeType&&exports,s=o&&e&&!e.nodeType&&e,u=s&&s.exports===o?r.Z.Buffer:void 0,c=(u?u.isBuffer:void 0)||a;let l=c},18552(e,t,n){var r=n(10852),i=n(55639),a=r(i,"DataView");e.exports=a},1989(e,t,n){var r=n(51789),i=n(80401),a=n(57667),o=n(21327),s=n(81866);function u(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t-1}e.exports=i},1196(e){function t(e,t,n){for(var r=-1,i=null==e?0:e.length;++r0&&n(l)?t>1?a(l,t-1,n,o,s):r(s,l):o||(s[s.length]=l)}return s}e.exports=a},28483(e,t,n){var r=n(25063)();e.exports=r},47816(e,t,n){var r=n(28483),i=n(3674);function a(e,t){return e&&r(e,t,i)}e.exports=a},97786(e,t,n){var r=n(71811),i=n(40327);function a(e,t){t=r(t,e);for(var n=0,a=t.length;null!=e&&ni?0:i+t),(n=n>i?i:n)<0&&(n+=i),i=t>n?0:n-t>>>0,t>>>=0;for(var a=Array(i);++r=c){var m=t?null:s(e);if(m)return u(m);h=!1,f=o,b=new r}else b=t?[]:p;outer:for(;++l=i?e:r(e,t,n)}e.exports=i},74318(e,t,n){var r=n(11149);function i(e){var t=new e.constructor(e.byteLength);return new r(t).set(new r(e)),t}e.exports=i},64626(e,t,n){e=n.nmd(e);var r=n(55639),i=t&&!t.nodeType&&t,a=i&&e&&!e.nodeType&&e,o=a&&a.exports===i?r.Buffer:void 0,s=o?o.allocUnsafe:void 0;function u(e,t){if(t)return e.slice();var n=e.length,r=s?s(n):new e.constructor(n);return e.copy(r),r}e.exports=u},57157(e,t,n){var r=n(74318);function i(e,t){var n=t?r(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}e.exports=i},93147(e){var t=/\w*$/;function n(e){var n=new e.constructor(e.source,t.exec(e));return n.lastIndex=e.lastIndex,n}e.exports=n},40419(e,t,n){var r=n(62705),i=r?r.prototype:void 0,a=i?i.valueOf:void 0;function o(e){return a?Object(a.call(e)):{}}e.exports=o},77133(e,t,n){var r=n(74318);function i(e,t){var n=t?r(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}e.exports=i},278(e){function t(e,t){var n=-1,r=e.length;for(t||(t=Array(r));++n1?n[a-1]:void 0,s=a>2?n[2]:void 0;for(o=e.length>3&&"function"==typeof o?(a--,o):void 0,s&&i(n[0],n[1],s)&&(o=a<3?void 0:o,a=1),t=Object(t);++rd))return!1;var p=l.get(e),b=l.get(t);if(p&&b)return p==t&&b==e;var m=-1,g=!0,v=n&s?new r:void 0;for(l.set(e,t),l.set(t,e);++m-1&&e%1==0&&e-1}e.exports=i},13399(e,t,n){var r=n(18470);function i(e,t){var n=this.__data__,i=r(n,e);return i<0?(++this.size,n.push([e,t])):n[i][1]=t,this}e.exports=i},24785(e,t,n){var r=n(1989),i=n(38407),a=n(57071);function o(){this.size=0,this.__data__={hash:new r,map:new(a||i),string:new r}}e.exports=o},11285(e,t,n){var r=n(45050);function i(e){var t=r(this,e).delete(e);return this.size-=t?1:0,t}e.exports=i},96e3(e,t,n){var r=n(45050);function i(e){return r(this,e).get(e)}e.exports=i},49916(e,t,n){var r=n(45050);function i(e){return r(this,e).has(e)}e.exports=i},95265(e,t,n){var r=n(45050);function i(e,t){var n=r(this,e),i=n.size;return n.set(e,t),this.size+=n.size==i?0:1,this}e.exports=i},68776(e){function t(e){var t=-1,n=Array(e.size);return e.forEach(function(e,r){n[++t]=[r,e]}),n}e.exports=t},42634(e){function t(e,t){return function(n){return null!=n&&n[e]===t&&(void 0!==t||e in Object(n))}}e.exports=t},24523(e,t,n){var r=n(88306),i=500;function a(e){var t=r(e,function(e){return n.size===i&&n.clear(),e}),n=t.cache;return t}e.exports=a},94536(e,t,n){var r=n(10852)(Object,"create");e.exports=r},86916(e,t,n){var r=n(5569)(Object.keys,Object);e.exports=r},33498(e){function t(e){var t=[];if(null!=e)for(var n in Object(e))t.push(n);return t}e.exports=t},31167(e,t,n){e=n.nmd(e);var r=n(31957),i=t&&!t.nodeType&&t,a=i&&e&&!e.nodeType&&e,o=a&&a.exports===i&&r.process,s=function(){try{var e=a&&a.require&&a.require("util").types;if(e)return e;return o&&o.binding&&o.binding("util")}catch(t){}}();e.exports=s},2333(e){var t=Object.prototype.toString;function n(e){return t.call(e)}e.exports=n},5569(e){function t(e,t){return function(n){return e(t(n))}}e.exports=t},45357(e,t,n){var r=n(96874),i=Math.max;function a(e,t,n){return t=i(void 0===t?e.length-1:t,0),function(){for(var a=arguments,o=-1,s=i(a.length-t,0),u=Array(s);++o0){if(++i>=t)return arguments[0]}else i=0;return e.apply(void 0,arguments)}}e.exports=i},37465(e,t,n){var r=n(38407);function i(){this.__data__=new r,this.size=0}e.exports=i},63779(e){function t(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}e.exports=t},67599(e){function t(e){return this.__data__.get(e)}e.exports=t},44758(e){function t(e){return this.__data__.has(e)}e.exports=t},34309(e,t,n){var r=n(38407),i=n(57071),a=n(83369),o=200;function s(e,t){var n=this.__data__;if(n instanceof r){var s=n.__data__;if(!i||s.length=t||n<0||g&&r>=f}function S(){var e=i();if(E(e))return k(e);h=setTimeout(S,_(e))}function k(e){return(h=void 0,v&&c)?y(e):(c=l=void 0,d)}function x(){void 0!==h&&clearTimeout(h),b=0,c=p=l=h=void 0}function T(){return void 0===h?d:k(i())}function M(){var e=i(),n=E(e);if(c=arguments,l=this,p=e,n){if(void 0===h)return w(p);if(g)return clearTimeout(h),h=setTimeout(S,t),y(p)}return void 0===h&&(h=setTimeout(S,t)),d}return t=a(t)||0,r(n)&&(m=!!n.leading,f=(g="maxWait"in n)?s(a(n.maxWait)||0,t):f,v="trailing"in n?!!n.trailing:v),M.cancel=x,M.flush=T,M}e.exports=c},53816(e,t,n){var r=n(69389),i=n(79833),a=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,o=RegExp("[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]","g");function s(e){return(e=i(e))&&e.replace(a,r).replace(o,"")}e.exports=s},66073(e,t,n){e.exports=n(84486)},77813(e){function t(e,t){return e===t||e!=e&&t!=t}e.exports=t},63105(e,t,n){var r=n(34963),i=n(80760),a=n(67206),o=n(1469);function s(e,t){return(o(e)?r:i)(e,a(t,3))}e.exports=s},85564(e,t,n){var r=n(21078);function i(e){return(null==e?0:e.length)?r(e,1):[]}e.exports=i},84486(e,t,n){var r=n(77412),i=n(89881),a=n(54290),o=n(1469);function s(e,t){return(o(e)?r:i)(e,a(t))}e.exports=s},27361(e,t,n){var r=n(97786);function i(e,t,n){var i=null==e?void 0:r(e,t);return void 0===i?n:i}e.exports=i},18721(e,t,n){var r=n(78565),i=n(222);function a(e,t){return null!=e&&i(e,t,r)}e.exports=a},79095(e,t,n){var r=n(13),i=n(222);function a(e,t){return null!=e&&i(e,t,r)}e.exports=a},6557(e){function t(e){return e}e.exports=t},35694(e,t,n){var r=n(9454),i=n(37005),a=Object.prototype,o=a.hasOwnProperty,s=a.propertyIsEnumerable,u=r(function(){return arguments}())?r:function(e){return i(e)&&o.call(e,"callee")&&!s.call(e,"callee")};e.exports=u},1469(e){var t=Array.isArray;e.exports=t},98612(e,t,n){var r=n(23560),i=n(41780);function a(e){return null!=e&&i(e.length)&&!r(e)}e.exports=a},29246(e,t,n){var r=n(98612),i=n(37005);function a(e){return i(e)&&r(e)}e.exports=a},44144(e,t,n){e=n.nmd(e);var r=n(55639),i=n(95062),a=t&&!t.nodeType&&t,o=a&&e&&!e.nodeType&&e,s=o&&o.exports===a?r.Buffer:void 0,u=(s?s.isBuffer:void 0)||i;e.exports=u},41609(e,t,n){var r=n(280),i=n(64160),a=n(35694),o=n(1469),s=n(98612),u=n(44144),c=n(25726),l=n(36719),f="[object Map]",d="[object Set]",h=Object.prototype.hasOwnProperty;function p(e){if(null==e)return!0;if(s(e)&&(o(e)||"string"==typeof e||"function"==typeof e.splice||u(e)||l(e)||a(e)))return!e.length;var t=i(e);if(t==f||t==d)return!e.size;if(c(e))return!r(e).length;for(var n in e)if(h.call(e,n))return!1;return!0}e.exports=p},23560(e,t,n){var r=n(44239),i=n(13218),a="[object AsyncFunction]",o="[object Function]",s="[object GeneratorFunction]",u="[object Proxy]";function c(e){if(!i(e))return!1;var t=r(e);return t==o||t==s||t==a||t==u}e.exports=c},41780(e){var t=9007199254740991;function n(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=t}e.exports=n},56688(e,t,n){var r=n(25588),i=n(7518),a=n(31167),o=a&&a.isMap,s=o?i(o):r;e.exports=s},45220(e){function t(e){return null===e}e.exports=t},13218(e){function t(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}e.exports=t},37005(e){function t(e){return null!=e&&"object"==typeof e}e.exports=t},68630(e,t,n){var r=n(44239),i=n(85924),a=n(37005),o="[object Object]",s=Function.prototype,u=Object.prototype,c=s.toString,l=u.hasOwnProperty,f=c.call(Object);function d(e){if(!a(e)||r(e)!=o)return!1;var t=i(e);if(null===t)return!0;var n=l.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&c.call(n)==f}e.exports=d},72928(e,t,n){var r=n(29221),i=n(7518),a=n(31167),o=a&&a.isSet,s=o?i(o):r;e.exports=s},47037(e,t,n){var r=n(44239),i=n(1469),a=n(37005),o="[object String]";function s(e){return"string"==typeof e||!i(e)&&a(e)&&r(e)==o}e.exports=s},33448(e,t,n){var r=n(44239),i=n(37005),a="[object Symbol]";function o(e){return"symbol"==typeof e||i(e)&&r(e)==a}e.exports=o},36719(e,t,n){var r=n(38749),i=n(7518),a=n(31167),o=a&&a.isTypedArray,s=o?i(o):r;e.exports=s},52353(e){function t(e){return void 0===e}e.exports=t},3674(e,t,n){var r=n(14636),i=n(280),a=n(98612);function o(e){return a(e)?r(e):i(e)}e.exports=o},81704(e,t,n){var r=n(14636),i=n(35014),a=n(98612);function o(e){return a(e)?r(e,!0):i(e)}e.exports=o},96486:function(e,t,n){var r;e=n.nmd(e),(function(){var i,a="4.17.21",o=200,s="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",u="Expected a function",c="Invalid `variable` option passed into `_.template`",l="__lodash_hash_undefined__",f=500,d="__lodash_placeholder__",h=1,p=2,b=4,m=1,g=2,v=1,y=2,w=4,_=8,E=16,S=32,k=64,x=128,T=256,M=512,O=30,A="...",L=800,C=16,I=1,D=2,N=3,P=1/0,R=9007199254740991,j=17976931348623157e292,F=0/0,Y=4294967295,B=Y-1,U=Y>>>1,H=[["ary",x],["bind",v],["bindKey",y],["curry",_],["curryRight",E],["flip",M],["partial",S],["partialRight",k],["rearg",T]],$="[object Arguments]",z="[object Array]",G="[object AsyncFunction]",W="[object Boolean]",K="[object Date]",V="[object DOMException]",q="[object Error]",Z="[object Function]",X="[object GeneratorFunction]",J="[object Map]",Q="[object Number]",ee="[object Null]",et="[object Object]",en="[object Promise]",er="[object Proxy]",ei="[object RegExp]",ea="[object Set]",eo="[object String]",es="[object Symbol]",eu="[object Undefined]",ec="[object WeakMap]",el="[object WeakSet]",ef="[object ArrayBuffer]",ed="[object DataView]",eh="[object Float32Array]",ep="[object Float64Array]",eb="[object Int8Array]",em="[object Int16Array]",eg="[object Int32Array]",ev="[object Uint8Array]",ey="[object Uint8ClampedArray]",ew="[object Uint16Array]",e_="[object Uint32Array]",eE=/\b__p \+= '';/g,eS=/\b(__p \+=) '' \+/g,ek=/(__e\(.*?\)|\b__t\)) \+\n'';/g,ex=/&(?:amp|lt|gt|quot|#39);/g,eT=/[&<>"']/g,eM=RegExp(ex.source),eO=RegExp(eT.source),eA=/<%-([\s\S]+?)%>/g,eL=/<%([\s\S]+?)%>/g,eC=/<%=([\s\S]+?)%>/g,eI=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,eD=/^\w*$/,eN=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,eP=/[\\^$.*+?()[\]{}|]/g,eR=RegExp(eP.source),ej=/^\s+/,eF=/\s/,eY=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,eB=/\{\n\/\* \[wrapped with (.+)\] \*/,eU=/,? & /,eH=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,e$=/[()=,{}\[\]\/\s]/,ez=/\\(\\)?/g,eG=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,eW=/\w*$/,eK=/^[-+]0x[0-9a-f]+$/i,eV=/^0b[01]+$/i,eq=/^\[object .+?Constructor\]$/,eZ=/^0o[0-7]+$/i,eX=/^(?:0|[1-9]\d*)$/,eJ=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,eQ=/($^)/,e1=/['\n\r\u2028\u2029\\]/g,e0="\ud800-\udfff",e2="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",e3="\\u2700-\\u27bf",e4="a-z\\xdf-\\xf6\\xf8-\\xff",e6="A-Z\\xc0-\\xd6\\xd8-\\xde",e5="\\ufe0e\\ufe0f",e8="\\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",e9="['’]",e7="["+e0+"]",te="["+e8+"]",tt="["+e2+"]",tn="\\d+",tr="["+e3+"]",ti="["+e4+"]",ta="[^"+e0+e8+tn+e3+e4+e6+"]",to="\ud83c[\udffb-\udfff]",ts="[^"+e0+"]",tu="(?:\ud83c[\udde6-\uddff]){2}",tc="[\ud800-\udbff][\udc00-\udfff]",tl="["+e6+"]",tf="\\u200d",td="(?:"+ti+"|"+ta+")",th="(?:"+tl+"|"+ta+")",tp="(?:"+e9+"(?:d|ll|m|re|s|t|ve))?",tb="(?:"+e9+"(?:D|LL|M|RE|S|T|VE))?",tm="(?:"+tt+"|"+to+")?",tg="["+e5+"]?",tv="(?:"+tf+"(?:"+[ts,tu,tc].join("|")+")"+tg+tm+")*",ty="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",tw="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",t_=tg+tm+tv,tE="(?:"+[tr,tu,tc].join("|")+")"+t_,tS="(?:"+[ts+tt+"?",tt,tu,tc,e7].join("|")+")",tk=RegExp(e9,"g"),tx=RegExp(tt,"g"),tT=RegExp(to+"(?="+to+")|"+tS+t_,"g"),tM=RegExp([tl+"?"+ti+"+"+tp+"(?="+[te,tl,"$"].join("|")+")",th+"+"+tb+"(?="+[te,tl+td,"$"].join("|")+")",tl+"?"+td+"+"+tp,tl+"+"+tb,tw,ty,tn,tE].join("|"),"g"),tO=RegExp("["+tf+e0+e2+e5+"]"),tA=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,tL=["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"],tC=-1,tI={};tI[eh]=tI[ep]=tI[eb]=tI[em]=tI[eg]=tI[ev]=tI[ey]=tI[ew]=tI[e_]=!0,tI[$]=tI[z]=tI[ef]=tI[W]=tI[ed]=tI[K]=tI[q]=tI[Z]=tI[J]=tI[Q]=tI[et]=tI[ei]=tI[ea]=tI[eo]=tI[ec]=!1;var tD={};tD[$]=tD[z]=tD[ef]=tD[ed]=tD[W]=tD[K]=tD[eh]=tD[ep]=tD[eb]=tD[em]=tD[eg]=tD[J]=tD[Q]=tD[et]=tD[ei]=tD[ea]=tD[eo]=tD[es]=tD[ev]=tD[ey]=tD[ew]=tD[e_]=!0,tD[q]=tD[Z]=tD[ec]=!1;var tN={À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",IJ:"IJ",ij:"ij",Œ:"Oe",œ:"oe",ʼn:"'n",ſ:"s"},tP={"&":"&","<":"<",">":">",'"':""","'":"'"},tR={"&":"&","<":"<",">":">",""":'"',"'":"'"},tj={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},tF=parseFloat,tY=parseInt,tB="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g,tU="object"==typeof self&&self&&self.Object===Object&&self,tH=tB||tU||Function("return this")(),t$=t&&!t.nodeType&&t,tz=t$&&e&&!e.nodeType&&e,tG=tz&&tz.exports===t$,tW=tG&&tB.process,tK=function(){try{var e=tz&&tz.require&&tz.require("util").types;if(e)return e;return tW&&tW.binding&&tW.binding("util")}catch(t){}}(),tV=tK&&tK.isArrayBuffer,tq=tK&&tK.isDate,tZ=tK&&tK.isMap,tX=tK&&tK.isRegExp,tJ=tK&&tK.isSet,tQ=tK&&tK.isTypedArray;function t1(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 t0(e,t,n,r){for(var i=-1,a=null==e?0:e.length;++i-1}function t8(e,t,n){for(var r=-1,i=null==e?0:e.length;++r-1;);return n}function nk(e,t){for(var n=e.length;n--&&nu(t,e[n],0)>-1;);return n}function nx(e,t){for(var n=e.length,r=0;n--;)e[n]===t&&++r;return r}var nT=nh(tN),nM=nh(tP);function nO(e){return"\\"+tj[e]}function nA(e,t){return null==e?i:e[t]}function nL(e){return tO.test(e)}function nC(e){return tA.test(e)}function nI(e){for(var t,n=[];!(t=e.next()).done;)n.push(t.value);return n}function nD(e){var t=-1,n=Array(e.size);return e.forEach(function(e,r){n[++t]=[r,e]}),n}function nN(e,t){return function(n){return e(t(n))}}function nP(e,t){for(var n=-1,r=e.length,i=0,a=[];++n-1}function rh(e,t){var n=this.__data__,r=rP(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}function rp(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t=t?e:t)),e}function rH(e,t,n,r,a,o){var s,u=t&h,c=t&p,l=t&b;if(n&&(s=a?n(e,r,a,o):n(e)),s!==i)return s;if(!u1(e))return e;var f=uF(e);if(f){if(s=a8(e),!u)return al(e,s)}else{var d=a3(e),m=d==Z||d==X;if(u$(e))return ae(e,u);if(d==et||d==$||m&&!a){if(s=c||m?{}:a9(e),!u)return c?ah(e,rF(s,e)):ad(e,rj(s,e))}else{if(!tD[d])return a?e:{};s=a7(e,d,u)}}o||(o=new rS);var g=o.get(e);if(g)return g;o.set(e,s),cr(e)?e.forEach(function(r){s.add(rH(r,t,n,r,e,o))}):u2(e)&&e.forEach(function(r,i){s.set(i,rH(r,t,n,i,e,o))});var v=l?c?aW:aG:c?c$:cH,y=f?i:v(e);return t2(y||e,function(r,i){y&&(r=e[i=r]),rN(s,i,rH(r,t,n,i,e,o))}),s}function r$(e){var t=cH(e);return function(n){return rz(n,e,t)}}function rz(e,t,n){var r=n.length;if(null==e)return!r;for(e=e4(e);r--;){var a=n[r],o=t[a],s=e[a];if(s===i&&!(a in e)||!o(s))return!1}return!0}function rG(e,t,n){if("function"!=typeof e)throw new e8(u);return o_(function(){e.apply(i,n)},t)}function rW(e,t,n,r){var i=-1,a=t5,s=!0,u=e.length,c=[],l=t.length;if(!u)return c;n&&(t=t9(t,nw(n))),r?(a=t8,s=!1):t.length>=o&&(a=nE,s=!1,t=new rw(t));outer:for(;++ia?0:a+n),(r=r===i||r>a?a:cp(r))<0&&(r+=a),r=n>r?0:cb(r);n0&&n(s)?t>1?rQ(s,t-1,n,r,i):t7(i,s):r||(i[i.length]=s)}return i}var r1=ag(),r0=ag(!0);function r2(e,t){return e&&r1(e,t,cH)}function r3(e,t){return e&&r0(e,t,cH)}function r4(e,t){return t6(t,function(t){return uX(e[t])})}function r6(e,t){t=i5(t,e);for(var n=0,r=t.length;null!=e&&nt}function r7(e,t){return null!=e&&tr.call(e,t)}function ie(e,t){return null!=e&&t in e4(e)}function it(e,t,n){return e>=tU(t,n)&&e=120&&f.length>=120)?new rw(s&&f):i}f=e[0];var d=-1,h=u[0];outer:for(;++d-1;)s!==e&&tg.call(s,u,1),tg.call(e,u,1);return e}function iD(e,t){for(var n=e?t.length:0,r=n-1;n--;){var i=t[n];if(n==r||i!==a){var a=i;on(i)?tg.call(e,i,1):iJ(e,i)}}return e}function iN(e,t){return e+tO(tW()*(t-e+1))}function iP(e,t,n,r){for(var i=-1,a=tB(tM((t-e)/(n||1)),0),o=eF(a);a--;)o[r?a:++i]=e,e+=n;return o}function iR(e,t){var n="";if(!e||t<1||t>R)return n;do t%2&&(n+=e),(t=tO(t/2))&&(e+=e);while(t)return n}function ij(e,t){return oE(om(e,t,lB),e+"")}function iF(e){return rL(c8(e))}function iY(e,t){var n=c8(e);return ox(n,rU(t,0,n.length))}function iB(e,t,n,r){if(!u1(e))return e;t=i5(t,e);for(var a=-1,o=t.length,s=o-1,u=e;null!=u&&++ai?0:i+t),(n=n>i?i:n)<0&&(n+=i),i=t>n?0:n-t>>>0,t>>>=0;for(var a=eF(i);++r>>1,o=e[a];null!==o&&!ca(o)&&(n?o<=t:o=o){var l=t?null:aP(e);if(l)return nR(l);s=!1,i=nE,c=new rw}else c=t?[]:u;outer:for(;++r=r?e:iz(e,t,n)}var i7=tE||function(e){return tH.clearTimeout(e)};function ae(e,t){if(t)return e.slice();var n=e.length,r=th?th(n):new e.constructor(n);return e.copy(r),r}function at(e){var t=new e.constructor(e.byteLength);return new td(t).set(new td(e)),t}function an(e,t){var n=t?at(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}function ar(e){var t=new e.constructor(e.source,eW.exec(e));return t.lastIndex=e.lastIndex,t}function ai(e){return n2?e4(n2.call(e)):{}}function aa(e,t){var n=t?at(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}function ao(e,t){if(e!==t){var n=e!==i,r=null===e,a=e==e,o=ca(e),s=t!==i,u=null===t,c=t==t,l=ca(t);if(!u&&!l&&!o&&e>t||o&&s&&c&&!u&&!l||r&&s&&c||!n&&c||!a)return 1;if(!r&&!o&&!l&&e=s)return u;return u*("desc"==n[r]?-1:1)}}return e.index-t.index}function au(e,t,n,r){for(var i=-1,a=e.length,o=n.length,s=-1,u=t.length,c=tB(a-o,0),l=eF(u+c),f=!r;++s1?n[a-1]:i,s=a>2?n[2]:i;for(o=e.length>3&&"function"==typeof o?(a--,o):i,s&&or(n[0],n[1],s)&&(o=a<3?i:o,a=1),t=e4(t);++r-1?a[o?t[s]:s]:i}}function ak(e){return az(function(t){var n=t.length,r=n,a=n8.prototype.thru;for(e&&t.reverse();r--;){var o=t[r];if("function"!=typeof o)throw new e8(u);if(a&&!s&&"wrapper"==aV(o))var s=new n8([],!0)}for(r=s?r:n;++r1&&v.reverse(),f&&cu))return!1;var l=o.get(e),f=o.get(t);if(l&&f)return l==t&&f==e;var d=-1,h=!0,p=n&g?new rw:i;for(o.set(e,t),o.set(t,e);++d1?"& ":"")+t[r],t=t.join(n>2?", ":" "),e.replace(eY,"{\n/* [wrapped with "+t+"] */\n")}function ot(e){return uF(e)||uj(e)||!!(tv&&e&&e[tv])}function on(e,t){var n=typeof e;return!!(t=null==t?R:t)&&("number"==n||"symbol"!=n&&eX.test(e))&&e>-1&&e%1==0&&e0){if(++t>=L)return arguments[0]}else t=0;return e.apply(i,arguments)}}function ox(e,t){var n=-1,r=e.length,a=r-1;for(t=t===i?r:t;++n1?e[t-1]:i;return n="function"==typeof n?(e.pop(),n):i,sE(e,n)});function sC(e){var t=n4(e);return t.__chain__=!0,t}function sI(e,t){return t(e),e}function sD(e,t){return t(e)}var sN=az(function(e){var t=e.length,n=t?e[0]:0,r=this.__wrapped__,a=function(t){return rB(t,e)};return!(t>1)&&!this.__actions__.length&&r instanceof n9&&on(n)?((r=r.slice(n,+n+(t?1:0))).__actions__.push({func:sD,args:[a],thisArg:i}),new n8(r,this.__chain__).thru(function(e){return t&&!e.length&&e.push(i),e})):this.thru(a)});function sP(){return sC(this)}function sR(){return new n8(this.value(),this.__chain__)}function sj(){i===this.__values__&&(this.__values__=cd(this.value()));var e=this.__index__>=this.__values__.length,t=e?i:this.__values__[this.__index__++];return{done:e,value:t}}function sF(){return this}function sY(e){for(var t,n=this;n instanceof n5;){var r=oL(n);r.__index__=0,r.__values__=i,t?a.__wrapped__=r:t=r;var a=r;n=n.__wrapped__}return a.__wrapped__=e,t}function sB(){var e=this.__wrapped__;if(e instanceof n9){var t=e;return this.__actions__.length&&(t=new n9(this)),(t=t.reverse()).__actions__.push({func:sD,args:[se],thisArg:i}),new n8(t,this.__chain__)}return this.thru(se)}function sU(){return i0(this.__wrapped__,this.__actions__)}var sH=ap(function(e,t,n){tr.call(e,n)?++e[n]:rY(e,n,1)});function s$(e,t,n){var r=uF(e)?t4:rq;return n&&or(e,t,n)&&(t=i),r(e,aZ(t,3))}function sz(e,t){return(uF(e)?t6:rJ)(e,aZ(t,3))}var sG=aS(oH),sW=aS(o$);function sK(e,t){return rQ(s2(e,t),1)}function sV(e,t){return rQ(s2(e,t),P)}function sq(e,t,n){return n=n===i?1:cp(n),rQ(s2(e,t),n)}function sZ(e,t){return(uF(e)?t2:rK)(e,aZ(t,3))}function sX(e,t){return(uF(e)?t3:rV)(e,aZ(t,3))}var sJ=ap(function(e,t,n){tr.call(e,n)?e[n].push(t):rY(e,n,[t])});function sQ(e,t,n,r){e=uB(e)?e:c8(e),n=n&&!r?cp(n):0;var i=e.length;return n<0&&(n=tB(i+n,0)),ci(e)?n<=i&&e.indexOf(t,n)>-1:!!i&&nu(e,t,n)>-1}var s1=ij(function(e,t,n){var r=-1,i="function"==typeof t,a=uB(e)?eF(e.length):[];return rK(e,function(e){a[++r]=i?t1(t,e,n):ia(e,t,n)}),a}),s0=ap(function(e,t,n){rY(e,n,t)});function s2(e,t){return(uF(e)?t9:iE)(e,aZ(t,3))}function s3(e,t,n,r){return null==e?[]:(uF(t)||(t=null==t?[]:[t]),n=r?i:n,uF(n)||(n=null==n?[]:[n]),iO(e,t,n))}var s4=ap(function(e,t,n){e[n?0:1].push(t)},function(){return[[],[]]});function s6(e,t,n){var r=uF(e)?ne:np,i=arguments.length<3;return r(e,aZ(t,4),n,i,rK)}function s5(e,t,n){var r=uF(e)?nt:np,i=arguments.length<3;return r(e,aZ(t,4),n,i,rV)}function s8(e,t){return(uF(e)?t6:rJ)(e,ug(aZ(t,3)))}function s9(e){return(uF(e)?rL:iF)(e)}function s7(e,t,n){return t=(n?or(e,t,n):t===i)?1:cp(t),(uF(e)?rC:iY)(e,t)}function ue(e){return(uF(e)?rI:i$)(e)}function ut(e){if(null==e)return 0;if(uB(e))return ci(e)?nB(e):e.length;var t=a3(e);return t==J||t==ea?e.size:iy(e).length}function un(e,t,n){var r=uF(e)?nn:iG;return n&&or(e,t,n)&&(t=i),r(e,aZ(t,3))}var ur=ij(function(e,t){if(null==e)return[];var n=t.length;return n>1&&or(e,t[0],t[1])?t=[]:n>2&&or(t[0],t[1],t[2])&&(t=[t[0]]),iO(e,rQ(t,1),[])}),ui=tS||function(){return tH.Date.now()};function ua(e,t){if("function"!=typeof t)throw new e8(u);return e=cp(e),function(){if(--e<1)return t.apply(this,arguments)}}function uo(e,t,n){return t=n?i:t,t=e&&null==t?e.length:t,aj(e,x,i,i,i,i,t)}function us(e,t){var n;if("function"!=typeof t)throw new e8(u);return e=cp(e),function(){return--e>0&&(n=t.apply(this,arguments)),e<=1&&(t=i),n}}var uu=ij(function(e,t,n){var r=v;if(n.length){var i=nP(n,aq(uu));r|=S}return aj(e,r,t,n,i)}),uc=ij(function(e,t,n){var r=v|y;if(n.length){var i=nP(n,aq(uc));r|=S}return aj(t,r,e,n,i)});function ul(e,t,n){t=n?i:t;var r=aj(e,_,i,i,i,i,i,t);return r.placeholder=ul.placeholder,r}function uf(e,t,n){t=n?i:t;var r=aj(e,E,i,i,i,i,i,t);return r.placeholder=uf.placeholder,r}function ud(e,t,n){var r,a,o,s,c,l,f=0,d=!1,h=!1,p=!0;if("function"!=typeof e)throw new e8(u);function b(t){var n=r,o=a;return r=a=i,f=t,s=e.apply(o,n)}function m(e){return f=e,c=o_(y,t),d?b(e):s}function g(e){var n=e-l,r=e-f,i=t-n;return h?tU(i,o-r):i}function v(e){var n=e-l,r=e-f;return l===i||n>=t||n<0||h&&r>=o}function y(){var e=ui();if(v(e))return w(e);c=o_(y,g(e))}function w(e){return(c=i,p&&r)?b(e):(r=a=i,s)}function _(){c!==i&&i7(c),f=0,r=l=a=c=i}function E(){return c===i?s:w(ui())}function S(){var e=ui(),n=v(e);if(r=arguments,a=this,l=e,n){if(c===i)return m(l);if(h)return i7(c),c=o_(y,t),b(l)}return c===i&&(c=o_(y,t)),s}return t=cm(t)||0,u1(n)&&(d=!!n.leading,o=(h="maxWait"in n)?tB(cm(n.maxWait)||0,t):o,p="trailing"in n?!!n.trailing:p),S.cancel=_,S.flush=E,S}var uh=ij(function(e,t){return rG(e,1,t)}),up=ij(function(e,t,n){return rG(e,cm(t)||0,n)});function ub(e){return aj(e,M)}function um(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new e8(u);var n=function(){var r=arguments,i=t?t.apply(this,r):r[0],a=n.cache;if(a.has(i))return a.get(i);var o=e.apply(this,r);return n.cache=a.set(i,o)||a,o};return n.cache=new(um.Cache||rp),n}function ug(e){if("function"!=typeof e)throw new e8(u);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 uv(e){return us(2,e)}um.Cache=rp;var uy=i8(function(e,t){var n=(t=1==t.length&&uF(t[0])?t9(t[0],nw(aZ())):t9(rQ(t,1),nw(aZ()))).length;return ij(function(r){for(var i=-1,a=tU(r.length,n);++i=t}),uj=io(function(){return arguments}())?io:function(e){return u0(e)&&tr.call(e,"callee")&&!tm.call(e,"callee")},uF=eF.isArray,uY=tV?nw(tV):is;function uB(e){return null!=e&&uQ(e.length)&&!uX(e)}function uU(e){return u0(e)&&uB(e)}function uH(e){return!0===e||!1===e||u0(e)&&r8(e)==W}var u$=tN||l4,uz=tq?nw(tq):iu;function uG(e){return u0(e)&&1===e.nodeType&&!ce(e)}function uW(e){if(null==e)return!0;if(uB(e)&&(uF(e)||"string"==typeof e||"function"==typeof e.splice||u$(e)||co(e)||uj(e)))return!e.length;var t=a3(e);if(t==J||t==ea)return!e.size;if(oc(e))return!iy(e).length;for(var n in e)if(tr.call(e,n))return!1;return!0}function uK(e,t){return ic(e,t)}function uV(e,t,n){var r=(n="function"==typeof n?n:i)?n(e,t):i;return r===i?ic(e,t,i,n):!!r}function uq(e){if(!u0(e))return!1;var t=r8(e);return t==q||t==V||"string"==typeof e.message&&"string"==typeof e.name&&!ce(e)}function uZ(e){return"number"==typeof e&&tP(e)}function uX(e){if(!u1(e))return!1;var t=r8(e);return t==Z||t==X||t==G||t==er}function uJ(e){return"number"==typeof e&&e==cp(e)}function uQ(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=R}function u1(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function u0(e){return null!=e&&"object"==typeof e}var u2=tZ?nw(tZ):id;function u3(e,t){return e===t||ih(e,t,aJ(t))}function u4(e,t,n){return n="function"==typeof n?n:i,ih(e,t,aJ(t),n)}function u6(e){return u7(e)&&e!=+e}function u5(e){if(ou(e))throw new e0(s);return ip(e)}function u8(e){return null===e}function u9(e){return null==e}function u7(e){return"number"==typeof e||u0(e)&&r8(e)==Q}function ce(e){if(!u0(e)||r8(e)!=et)return!1;var t=tp(e);if(null===t)return!0;var n=tr.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&tn.call(n)==ts}var ct=tX?nw(tX):ib;function cn(e){return uJ(e)&&e>=-R&&e<=R}var cr=tJ?nw(tJ):im;function ci(e){return"string"==typeof e||!uF(e)&&u0(e)&&r8(e)==eo}function ca(e){return"symbol"==typeof e||u0(e)&&r8(e)==es}var co=tQ?nw(tQ):ig;function cs(e){return e===i}function cu(e){return u0(e)&&a3(e)==ec}function cc(e){return u0(e)&&r8(e)==el}var cl=aI(i_),cf=aI(function(e,t){return e<=t});function cd(e){if(!e)return[];if(uB(e))return ci(e)?nU(e):al(e);if(ty&&e[ty])return nI(e[ty]());var t=a3(e);return(t==J?nD:t==ea?nR:c8)(e)}function ch(e){return e?(e=cm(e))===P||e===-P?(e<0?-1:1)*j:e==e?e:0:0===e?e:0}function cp(e){var t=ch(e),n=t%1;return t==t?n?t-n:t:0}function cb(e){return e?rU(cp(e),0,Y):0}function cm(e){if("number"==typeof e)return e;if(ca(e))return F;if(u1(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=u1(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=ny(e);var n=eV.test(e);return n||eZ.test(e)?tY(e.slice(2),n?2:8):eK.test(e)?F:+e}function cg(e){return af(e,c$(e))}function cv(e){return e?rU(cp(e),-R,R):0===e?e:0}function cy(e){return null==e?"":iZ(e)}var cw=ab(function(e,t){if(oc(t)||uB(t)){af(t,cH(t),e);return}for(var n in t)tr.call(t,n)&&rN(e,n,t[n])}),c_=ab(function(e,t){af(t,c$(t),e)}),cE=ab(function(e,t,n,r){af(t,c$(t),e,r)}),cS=ab(function(e,t,n,r){af(t,cH(t),e,r)}),ck=az(rB);function cx(e,t){var n=n6(e);return null==t?n:rj(n,t)}var cT=ij(function(e,t){e=e4(e);var n=-1,r=t.length,a=r>2?t[2]:i;for(a&&or(t[0],t[1],a)&&(r=1);++n1),t}),af(e,aW(e),n),r&&(n=rH(n,h|p|b,aB));for(var i=t.length;i--;)iJ(n,t[i]);return n});function cq(e,t){return cX(e,ug(aZ(t)))}var cZ=az(function(e,t){return null==e?{}:iA(e,t)});function cX(e,t){if(null==e)return{};var n=t9(aW(e),function(e){return[e]});return t=aZ(t),iL(e,n,function(e,n){return t(e,n[0])})}function cJ(e,t,n){t=i5(t,e);var r=-1,a=t.length;for(a||(a=1,e=i);++rt){var r=e;e=t,t=r}if(n||e%1||t%1){var a=tW();return tU(e+a*(t-e+tF("1e-"+((a+"").length-1))),t)}return iN(e,t)}var ln=aw(function(e,t,n){return t=t.toLowerCase(),e+(n?lr(t):t)});function lr(e){return lL(cy(e).toLowerCase())}function li(e){return(e=cy(e))&&e.replace(eJ,nT).replace(tx,"")}function la(e,t,n){e=cy(e),t=iZ(t);var r=e.length,a=n=n===i?r:rU(cp(n),0,r);return(n-=t.length)>=0&&e.slice(n,a)==t}function lo(e){return(e=cy(e))&&eO.test(e)?e.replace(eT,nM):e}function ls(e){return(e=cy(e))&&eR.test(e)?e.replace(eP,"\\$&"):e}var lu=aw(function(e,t,n){return e+(n?"-":"")+t.toLowerCase()}),lc=aw(function(e,t,n){return e+(n?" ":"")+t.toLowerCase()}),ll=ay("toLowerCase");function lf(e,t,n){e=cy(e);var r=(t=cp(t))?nB(e):0;if(!t||r>=t)return e;var i=(t-r)/2;return aA(tO(i),n)+e+aA(tM(i),n)}function ld(e,t,n){e=cy(e);var r=(t=cp(t))?nB(e):0;return t&&r>>0)?(e=cy(e))&&("string"==typeof t||null!=t&&!ct(t))&&!(t=iZ(t))&&nL(e)?i9(nU(e),0,n):e.split(t,n):[]}var ly=aw(function(e,t,n){return e+(n?" ":"")+lL(t)});function lw(e,t,n){return e=cy(e),n=null==n?0:rU(cp(n),0,e.length),t=iZ(t),e.slice(n,n+t.length)==t}function l_(e,t,n){var r=n4.templateSettings;n&&or(e,t,n)&&(t=i),e=cy(e),t=cE({},t,r,aF);var a,o,s=cE({},t.imports,r.imports,aF),u=cH(s),l=n_(s,u),f=0,d=t.interpolate||eQ,h="__p += '",p=e6((t.escape||eQ).source+"|"+d.source+"|"+(d===eC?eG:eQ).source+"|"+(t.evaluate||eQ).source+"|$","g"),b="//# sourceURL="+(tr.call(t,"sourceURL")?(t.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++tC+"]")+"\n";e.replace(p,function(t,n,r,i,s,u){return r||(r=i),h+=e.slice(f,u).replace(e1,nO),n&&(a=!0,h+="' +\n__e("+n+") +\n'"),s&&(o=!0,h+="';\n"+s+";\n__p += '"),r&&(h+="' +\n((__t = ("+r+")) == null ? '' : __t) +\n'"),f=u+t.length,t}),h+="';\n";var m=tr.call(t,"variable")&&t.variable;if(m){if(e$.test(m))throw new e0(c)}else h="with (obj) {\n"+h+"\n}\n";h=(o?h.replace(eE,""):h).replace(eS,"$1").replace(ek,"$1;"),h="function("+(m||"obj")+") {\n"+(m?"":"obj || (obj = {});\n")+"var __t, __p = ''"+(a?", __e = _.escape":"")+(o?", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n":";\n")+h+"return __p\n}";var g=lI(function(){return e2(u,b+"return "+h).apply(i,l)});if(g.source=h,uq(g))throw g;return g}function lE(e){return cy(e).toLowerCase()}function lS(e){return cy(e).toUpperCase()}function lk(e,t,n){if((e=cy(e))&&(n||t===i))return ny(e);if(!e||!(t=iZ(t)))return e;var r=nU(e),a=nU(t),o=nS(r,a),s=nk(r,a)+1;return i9(r,o,s).join("")}function lx(e,t,n){if((e=cy(e))&&(n||t===i))return e.slice(0,nH(e)+1);if(!e||!(t=iZ(t)))return e;var r=nU(e),a=nk(r,nU(t))+1;return i9(r,0,a).join("")}function lT(e,t,n){if((e=cy(e))&&(n||t===i))return e.replace(ej,"");if(!e||!(t=iZ(t)))return e;var r=nU(e),a=nS(r,nU(t));return i9(r,a).join("")}function lM(e,t){var n=O,r=A;if(u1(t)){var a="separator"in t?t.separator:a;n="length"in t?cp(t.length):n,r="omission"in t?iZ(t.omission):r}var o=(e=cy(e)).length;if(nL(e)){var s=nU(e);o=s.length}if(n>=o)return e;var u=n-nB(r);if(u<1)return r;var c=s?i9(s,0,u).join(""):e.slice(0,u);if(a===i)return c+r;if(s&&(u+=c.length-u),ct(a)){if(e.slice(u).search(a)){var l,f=c;for(a.global||(a=e6(a.source,cy(eW.exec(a))+"g")),a.lastIndex=0;l=a.exec(f);)var d=l.index;c=c.slice(0,d===i?u:d)}}else if(e.indexOf(iZ(a),u)!=u){var h=c.lastIndexOf(a);h>-1&&(c=c.slice(0,h))}return c+r}function lO(e){return(e=cy(e))&&eM.test(e)?e.replace(ex,n$):e}var lA=aw(function(e,t,n){return e+(n?" ":"")+t.toUpperCase()}),lL=ay("toUpperCase");function lC(e,t,n){return(e=cy(e),i===(t=n?i:t))?nC(e)?nW(e):na(e):e.match(t)||[]}var lI=ij(function(e,t){try{return t1(e,i,t)}catch(n){return uq(n)?n:new e0(n)}}),lD=az(function(e,t){return t2(t,function(t){t=oM(t),rY(e,t,uu(e[t],e))}),e});function lN(e){var t=null==e?0:e.length,n=aZ();return e=t?t9(e,function(e){if("function"!=typeof e[1])throw new e8(u);return[n(e[0]),e[1]]}):[],ij(function(n){for(var r=-1;++rR)return[];var n=Y,r=tU(e,Y);t=aZ(t),e-=Y;for(var i=ng(r,t);++n0||t<0)?new n9(n):(e<0?n=n.takeRight(-e):e&&(n=n.drop(e)),t!==i&&(n=(t=cp(t))<0?n.dropRight(-t):n.take(t-e)),n)},n9.prototype.takeRightWhile=function(e){return this.reverse().takeWhile(e).reverse()},n9.prototype.toArray=function(){return this.take(Y)},r2(n9.prototype,function(e,t){var n=/^(?:filter|find|map|reject)|While$/.test(t),r=/^(?:head|last)$/.test(t),a=n4[r?"take"+("last"==t?"Right":""):t],o=r||/^find/.test(t);a&&(n4.prototype[t]=function(){var t=this.__wrapped__,s=r?[1]:arguments,u=t instanceof n9,c=s[0],l=u||uF(t),f=function(e){var t=a.apply(n4,t7([e],s));return r&&d?t[0]:t};l&&n&&"function"==typeof c&&1!=c.length&&(u=l=!1);var d=this.__chain__,h=!!this.__actions__.length,p=o&&!d,b=u&&!h;if(!o&&l){t=b?t:new n9(this);var m=e.apply(t,s);return m.__actions__.push({func:sD,args:[f],thisArg:i}),new n8(m,d)}return p&&b?e.apply(this,s):(m=this.thru(f),p?r?m.value()[0]:m.value():m)})}),t2(["pop","push","shift","sort","splice","unshift"],function(e){var t=e9[e],n=/^(?:push|sort|unshift)$/.test(e)?"tap":"thru",r=/^(?:pop|shift)$/.test(e);n4.prototype[e]=function(){var e=arguments;if(r&&!this.__chain__){var i=this.value();return t.apply(uF(i)?i:[],e)}return this[n](function(n){return t.apply(uF(n)?n:[],e)})}}),r2(n9.prototype,function(e,t){var n=n4[t];if(n){var r=n.name+"";tr.call(nq,r)||(nq[r]=[]),nq[r].push({name:t,func:n})}}),nq[ax(i,y).name]=[{name:"wrapper",func:i}],n9.prototype.clone=n7,n9.prototype.reverse=re,n9.prototype.value=rt,n4.prototype.at=sN,n4.prototype.chain=sP,n4.prototype.commit=sR,n4.prototype.next=sj,n4.prototype.plant=sY,n4.prototype.reverse=sB,n4.prototype.toJSON=n4.prototype.valueOf=n4.prototype.value=sU,n4.prototype.first=n4.prototype.head,ty&&(n4.prototype[ty]=sF),n4}();tH._=nK,i!==(r=(function(){return nK}).call(t,n,t,e))&&(e.exports=r)}).call(this)},35161(e,t,n){var r=n(29932),i=n(67206),a=n(69199),o=n(1469);function s(e,t){return(o(e)?r:a)(e,i(t,3))}e.exports=s},67523(e,t,n){var r=n(89465),i=n(47816),a=n(67206);function o(e,t){var n={};return t=a(t,3),i(e,function(e,i,a){r(n,t(e,i,a),e)}),n}e.exports=o},66604(e,t,n){var r=n(89465),i=n(47816),a=n(67206);function o(e,t){var n={};return t=a(t,3),i(e,function(e,i,a){r(n,i,t(e,i,a))}),n}e.exports=o},88306(e,t,n){var r=n(83369),i="Expected a function";function a(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw TypeError(i);var n=function(){var r=arguments,i=t?t.apply(this,r):r[0],a=n.cache;if(a.has(i))return a.get(i);var o=e.apply(this,r);return n.cache=a.set(i,o)||a,o};return n.cache=new(a.Cache||r),n}a.Cache=r,e.exports=a},82492(e,t,n){var r=n(42980),i=n(21463)(function(e,t,n){r(e,t,n)});e.exports=i},50308(e){function t(){}e.exports=t},7771(e,t,n){var r=n(55639),i=function(){return r.Date.now()};e.exports=i},78718(e,t,n){var r=n(25970),i=n(99021)(function(e,t){return null==e?{}:r(e,t)});e.exports=i},39601(e,t,n){var r=n(40371),i=n(79152),a=n(15403),o=n(40327);function s(e){return a(e)?r(o(e)):i(e)}e.exports=s},54061(e,t,n){var r=n(62663),i=n(89881),a=n(67206),o=n(10107),s=n(1469);function u(e,t,n){var u=s(e)?r:o,c=arguments.length<3;return u(e,a(t,4),n,c,i)}e.exports=u},84238(e,t,n){var r=n(280),i=n(64160),a=n(98612),o=n(47037),s=n(88016),u="[object Map]",c="[object Set]";function l(e){if(null==e)return 0;if(a(e))return o(e)?s(e):e.length;var t=i(e);return t==u||t==c?e.size:r(e).length}e.exports=l},11865(e,t,n){var r=n(35393)(function(e,t,n){return e+(n?"_":"")+t.toLowerCase()});e.exports=r},70479(e){function t(){return[]}e.exports=t},95062(e){function t(){return!1}e.exports=t},14841(e,t,n){var r=n(27561),i=n(13218),a=n(33448),o=0/0,s=/^[-+]0x[0-9a-f]+$/i,u=/^0b[01]+$/i,c=/^0o[0-7]+$/i,l=parseInt;function f(e){if("number"==typeof e)return e;if(a(e))return o;if(i(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=i(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=r(e);var n=u.test(e);return n||c.test(e)?l(e.slice(2),n?2:8):s.test(e)?o:+e}e.exports=f},59881(e,t,n){var r=n(98363),i=n(81704);function a(e){return r(e,i(e))}e.exports=a},79833(e,t,n){var r=n(80531);function i(e){return null==e?"":r(e)}e.exports=i},68718(e,t,n){var r=n(77412),i=n(3118),a=n(47816),o=n(67206),s=n(85924),u=n(1469),c=n(44144),l=n(23560),f=n(13218),d=n(36719);function h(e,t,n){var h=u(e),p=h||c(e)||d(e);if(t=o(t,4),null==n){var b=e&&e.constructor;n=p?h?new b:[]:f(e)&&l(b)?i(s(e)):{}}return(p?r:a)(e,function(e,r,i){return t(n,e,r,i)}),n}e.exports=h},93386(e,t,n){var r=n(21078),i=n(5976),a=n(45652),o=n(29246),s=i(function(e){return a(r(e,1,o,!0))});e.exports=s},11700(e,t,n){var r=n(98805)("toUpperCase");e.exports=r},52628(e,t,n){var r=n(47415),i=n(3674);function a(e){return null==e?[]:r(e,i(e))}e.exports=a},58748(e,t,n){var r=n(49029),i=n(93157),a=n(79833),o=n(2757);function s(e,t,n){return(e=a(e),void 0===(t=n?void 0:t))?i(e)?o(e):r(e):e.match(t)||[]}e.exports=s},42786:function(e,t,n){var r,i;r=this,(i=function(e){return e.defineLocale("af",{months:"Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des".split("_"),weekdays:"Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag".split("_"),weekdaysShort:"Son_Maa_Din_Woe_Don_Vry_Sat".split("_"),weekdaysMin:"So_Ma_Di_Wo_Do_Vr_Sa".split("_"),meridiemParse:/vm|nm/i,isPM:function(e){return/^nm$/i.test(e)},meridiem:function(e,t,n){return e<12?n?"vm":"VM":n?"nm":"NM"},longDateFormat:{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"},calendar:{sameDay:"[Vandag om] LT",nextDay:"[M\xf4re om] LT",nextWeek:"dddd [om] LT",lastDay:"[Gister om] LT",lastWeek:"[Laas] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oor %s",past:"%s gelede",s:"'n paar sekondes",ss:"%d 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"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||e>=20?"ste":"de")},week:{dow:1,doy:4}})})(n(30381))},14130:function(e,t,n){var r,i;r=this,(i=function(e){"use strict";//! moment.js locale configuration var t=function(e){return 0===e?0:1===e?1:2===e?2:e%100>=3&&e%100<=10?3:e%100>=11?4:5},n={s:["أقل من ثانية","ثانية واحدة",["ثانيتان","ثانيتين"],"%d ثوان","%d ثانية","%d ثانية",],m:["أقل من دقيقة","دقيقة واحدة",["دقيقتان","دقيقتين"],"%d دقائق","%d دقيقة","%d دقيقة",],h:["أقل من ساعة","ساعة واحدة",["ساعتان","ساعتين"],"%d ساعات","%d ساعة","%d ساعة",],d:["أقل من يوم","يوم واحد",["يومان","يومين"],"%d أيام","%d يومًا","%d يوم",],M:["أقل من شهر","شهر واحد",["شهران","شهرين"],"%d أشهر","%d شهرا","%d شهر",],y:["أقل من عام","عام واحد",["عامان","عامين"],"%d أعوام","%d عامًا","%d عام",]},r=function(e){return function(r,i,a,o){var s=t(r),u=n[e][t(r)];return 2===s&&(u=u[i?0:1]),u.replace(/%d/i,r)}},i=["جانفي","فيفري","مارس","أفريل","ماي","جوان","جويلية","أوت","سبتمبر","أكتوبر","نوفمبر","ديسمبر",];return e.defineLocale("ar-dz",{months:i,monthsShort:i,weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{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"},meridiemParse:/ص|م/,isPM:function(e){return"م"===e},meridiem:function(e,t,n){return e<12?"ص":"م"},calendar:{sameDay:"[اليوم عند الساعة] LT",nextDay:"[غدًا عند الساعة] LT",nextWeek:"dddd [عند الساعة] LT",lastDay:"[أمس عند الساعة] LT",lastWeek:"dddd [عند الساعة] LT",sameElse:"L"},relativeTime:{future:"بعد %s",past:"منذ %s",s:r("s"),ss:r("s"),m:r("m"),mm:r("m"),h:r("h"),hh:r("h"),d:r("d"),dd:r("d"),M:r("M"),MM:r("M"),y:r("y"),yy:r("y")},postformat:function(e){return e.replace(/,/g,"،")},week:{dow:0,doy:4}})})(n(30381))},96135:function(e,t,n){var r,i;r=this,(i=function(e){return e.defineLocale("ar-kw",{months:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),weekdays:"الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{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"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:0,doy:12}})})(n(30381))},56440:function(e,t,n){var r,i;r=this,(i=function(e){"use strict";//! moment.js locale configuration var t={1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",0:"0"},n=function(e){return 0===e?0:1===e?1:2===e?2:e%100>=3&&e%100<=10?3:e%100>=11?4:5},r={s:["أقل من ثانية","ثانية واحدة",["ثانيتان","ثانيتين"],"%d ثوان","%d ثانية","%d ثانية",],m:["أقل من دقيقة","دقيقة واحدة",["دقيقتان","دقيقتين"],"%d دقائق","%d دقيقة","%d دقيقة",],h:["أقل من ساعة","ساعة واحدة",["ساعتان","ساعتين"],"%d ساعات","%d ساعة","%d ساعة",],d:["أقل من يوم","يوم واحد",["يومان","يومين"],"%d أيام","%d يومًا","%d يوم",],M:["أقل من شهر","شهر واحد",["شهران","شهرين"],"%d أشهر","%d شهرا","%d شهر",],y:["أقل من عام","عام واحد",["عامان","عامين"],"%d أعوام","%d عامًا","%d عام",]},i=function(e){return function(t,i,a,o){var s=n(t),u=r[e][n(t)];return 2===s&&(u=u[i?0:1]),u.replace(/%d/i,t)}},a=["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر",];return e.defineLocale("ar-ly",{months:a,monthsShort:a,weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{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"},meridiemParse:/ص|م/,isPM:function(e){return"م"===e},meridiem:function(e,t,n){return e<12?"ص":"م"},calendar:{sameDay:"[اليوم عند الساعة] LT",nextDay:"[غدًا عند الساعة] LT",nextWeek:"dddd [عند الساعة] LT",lastDay:"[أمس عند الساعة] LT",lastWeek:"dddd [عند الساعة] LT",sameElse:"L"},relativeTime:{future:"بعد %s",past:"منذ %s",s:i("s"),ss:i("s"),m:i("m"),mm:i("m"),h:i("h"),hh:i("h"),d:i("d"),dd:i("d"),M:i("M"),MM:i("M"),y:i("y"),yy:i("y")},preparse:function(e){return e.replace(/،/g,",")},postformat:function(e){return e.replace(/\d/g,function(e){return t[e]}).replace(/,/g,"،")},week:{dow:6,doy:12}})})(n(30381))},47702:function(e,t,n){var r,i;r=this,(i=function(e){return e.defineLocale("ar-ma",{months:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{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"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:1,doy:4}})})(n(30381))},16040:function(e,t,n){var r,i;r=this,(i=function(e){"use strict";//! moment.js locale configuration var t={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},n={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"};return e.defineLocale("ar-sa",{months:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{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"},meridiemParse:/ص|م/,isPM:function(e){return"م"===e},meridiem:function(e,t,n){return e<12?"ص":"م"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},preparse:function(e){return e.replace(/[١٢٣٤٥٦٧٨٩٠]/g,function(e){return n[e]}).replace(/،/g,",")},postformat:function(e){return e.replace(/\d/g,function(e){return t[e]}).replace(/,/g,"،")},week:{dow:0,doy:6}})})(n(30381))},37100:function(e,t,n){var r,i;r=this,(i=function(e){return e.defineLocale("ar-tn",{months:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{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"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:1,doy:4}})})(n(30381))},30867:function(e,t,n){var r,i;r=this,(i=function(e){"use strict";//! moment.js locale configuration @@ -125,8 +112,8 @@ var t="pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut".split("_");function n 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ı",9:"'uncu",10:"'uncu",30:"'uncu",60:"'ıncı",90:"'ıncı"};return e.defineLocale("tr",{months:"Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eyl\xfcl_Ekim_Kasım_Aralık".split("_"),monthsShort:"Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara".split("_"),weekdays:"Pazar_Pazartesi_Salı_\xc7arşamba_Perşembe_Cuma_Cumartesi".split("_"),weekdaysShort:"Paz_Pts_Sal_\xc7ar_Per_Cum_Cts".split("_"),weekdaysMin:"Pz_Pt_Sa_\xc7a_Pe_Cu_Ct".split("_"),meridiem:function(e,t,n){return e<12?n?"\xf6\xf6":"\xd6\xd6":n?"\xf6s":"\xd6S"},meridiemParse:/öö|ÖÖ|ös|ÖS/,isPM:function(e){return"\xf6s"===e||"\xd6S"===e},longDateFormat:{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"},calendar:{sameDay:"[bug\xfcn saat] LT",nextDay:"[yarın saat] LT",nextWeek:"[gelecek] dddd [saat] LT",lastDay:"[d\xfcn] LT",lastWeek:"[ge\xe7en] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s \xf6nce",s:"birka\xe7 saniye",ss:"%d saniye",m:"bir dakika",mm:"%d dakika",h:"bir saat",hh:"%d saat",d:"bir g\xfcn",dd:"%d g\xfcn",w:"bir hafta",ww:"%d hafta",M:"bir ay",MM:"%d ay",y:"bir yıl",yy:"%d yıl"},ordinal:function(e,n){switch(n){case"d":case"D":case"Do":case"DD":return e;default:if(0===e)return e+"'ıncı";var r=e%10,i=e%100-r,a=e>=100?100:null;return e+(t[r]||t[i]||t[a])}},week:{dow:1,doy:7}})})(n(30381))},28254:function(e,t,n){var r,i;r=this,(i=function(e){"use strict";//! moment.js locale configuration var t=e.defineLocale("tzl",{months:"Januar_Fevraglh_Mar\xe7_Avr\xefu_Mai_G\xfcn_Julia_Guscht_Setemvar_Listop\xe4ts_Noemvar_Zecemvar".split("_"),monthsShort:"Jan_Fev_Mar_Avr_Mai_G\xfcn_Jul_Gus_Set_Lis_Noe_Zec".split("_"),weekdays:"S\xfaladi_L\xfane\xe7i_Maitzi_M\xe1rcuri_Xh\xfaadi_Vi\xe9ner\xe7i_S\xe1turi".split("_"),weekdaysShort:"S\xfal_L\xfan_Mai_M\xe1r_Xh\xfa_Vi\xe9_S\xe1t".split("_"),weekdaysMin:"S\xfa_L\xfa_Ma_M\xe1_Xh_Vi_S\xe1".split("_"),longDateFormat:{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"},meridiemParse:/d\'o|d\'a/i,isPM:function(e){return"d'o"===e.toLowerCase()},meridiem:function(e,t,n){return e>11?n?"d'o":"D'O":n?"d'a":"D'A"},calendar:{sameDay:"[oxhi \xe0] LT",nextDay:"[dem\xe0 \xe0] LT",nextWeek:"dddd [\xe0] LT",lastDay:"[ieiri \xe0] LT",lastWeek:"[s\xfcr el] dddd [lasteu \xe0] LT",sameElse:"L"},relativeTime:{future:"osprei %s",past:"ja%s",s:n,ss:n,m:n,mm:n,h:n,hh:n,d:n,dd:n,M:n,MM:n,y:n,yy:n},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});function n(e,t,n,r){var i={s:["viensas secunds","'iensas secunds"],ss:[e+" secunds",""+e+" secunds"],m:["'n m\xedut","'iens m\xedut"],mm:[e+" m\xeduts",""+e+" m\xeduts"],h:["'n \xfeora","'iensa \xfeora"],hh:[e+" \xfeoras",""+e+" \xfeoras"],d:["'n ziua","'iensa ziua"],dd:[e+" ziuas",""+e+" ziuas"],M:["'n mes","'iens mes"],MM:[e+" mesen",""+e+" mesen"],y:["'n ar","'iens ar"],yy:[e+" ars",""+e+" ars"]};return r?i[n][0]:t?i[n][0]:i[n][1]}return t})(n(30381))},30699:function(e,t,n){var r,i;r=this,(i=function(e){return e.defineLocale("tzm-latn",{months:"innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir".split("_"),monthsShort:"innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir".split("_"),weekdays:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),weekdaysShort:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),weekdaysMin:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),longDateFormat:{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"},calendar:{sameDay:"[asdkh g] LT",nextDay:"[aska g] LT",nextWeek:"dddd [g] LT",lastDay:"[assant g] LT",lastWeek:"dddd [g] LT",sameElse:"L"},relativeTime:{future:"dadkh s yan %s",past:"yan %s",s:"imik",ss:"%d imik",m:"minuḍ",mm:"%d minuḍ",h:"saɛa",hh:"%d tassaɛin",d:"ass",dd:"%d ossan",M:"ayowr",MM:"%d iyyirn",y:"asgas",yy:"%d isgasn"},week:{dow:6,doy:12}})})(n(30381))},51106:function(e,t,n){var r,i;r=this,(i=function(e){return e.defineLocale("tzm",{months:"ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ".split("_"),monthsShort:"ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ".split("_"),weekdays:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),weekdaysShort:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),weekdaysMin:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),longDateFormat:{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"},calendar:{sameDay:"[ⴰⵙⴷⵅ ⴴ] LT",nextDay:"[ⴰⵙⴽⴰ ⴴ] LT",nextWeek:"dddd [ⴴ] LT",lastDay:"[ⴰⵚⴰⵏⵜ ⴴ] LT",lastWeek:"dddd [ⴴ] LT",sameElse:"L"},relativeTime:{future:"ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s",past:"ⵢⴰⵏ %s",s:"ⵉⵎⵉⴽ",ss:"%d ⵉⵎⵉⴽ",m:"ⵎⵉⵏⵓⴺ",mm:"%d ⵎⵉⵏⵓⴺ",h:"ⵙⴰⵄⴰ",hh:"%d ⵜⴰⵙⵙⴰⵄⵉⵏ",d:"ⴰⵙⵙ",dd:"%d oⵙⵙⴰⵏ",M:"ⴰⵢoⵓⵔ",MM:"%d ⵉⵢⵢⵉⵔⵏ",y:"ⴰⵙⴳⴰⵙ",yy:"%d ⵉⵙⴳⴰⵙⵏ"},week:{dow:6,doy:12}})})(n(30381))},9288:function(e,t,n){var r,i;r=this,(i=function(e){return e.defineLocale("ug-cn",{months:"يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر".split("_"),monthsShort:"يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر".split("_"),weekdays:"يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە".split("_"),weekdaysShort:"يە_دۈ_سە_چا_پە_جۈ_شە".split("_"),weekdaysMin:"يە_دۈ_سە_چا_پە_جۈ_شە".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY-يىلىM-ئاينىڭD-كۈنى",LLL:"YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm",LLLL:"dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm"},meridiemParse:/يېرىم كېچە|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن كېيىن|كەچ/,meridiemHour:function(e,t){return(12===e&&(e=0),"يېرىم كېچە"===t||"سەھەر"===t||"چۈشتىن بۇرۇن"===t)?e:"چۈشتىن كېيىن"===t||"كەچ"===t?e+12:e>=11?e:e+12},meridiem:function(e,t,n){var r=100*e+t;if(r<600)return"يېرىم كېچە";if(r<900)return"سەھەر";if(r<1130)return"چۈشتىن بۇرۇن";if(r<1230)return"چۈش";if(r<1800)return"چۈشتىن كېيىن";else return"كەچ"},calendar:{sameDay:"[بۈگۈن سائەت] LT",nextDay:"[ئەتە سائەت] LT",nextWeek:"[كېلەركى] dddd [سائەت] LT",lastDay:"[تۆنۈگۈن] LT",lastWeek:"[ئالدىنقى] dddd [سائەت] LT",sameElse:"L"},relativeTime:{future:"%s كېيىن",past:"%s بۇرۇن",s:"نەچچە سېكونت",ss:"%d سېكونت",m:"بىر مىنۇت",mm:"%d مىنۇت",h:"بىر سائەت",hh:"%d سائەت",d:"بىر كۈن",dd:"%d كۈن",M:"بىر ئاي",MM:"%d ئاي",y:"بىر يىل",yy:"%d يىل"},dayOfMonthOrdinalParse:/\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"-كۈنى";case"w":case"W":return e+"-ھەپتە";default:return e}},preparse:function(e){return e.replace(/،/g,",")},postformat:function(e){return e.replace(/,/g,"،")},week:{dow:1,doy:7}})})(n(30381))},67691:function(e,t,n){var r,i;r=this,(i=function(e){"use strict";//! moment.js locale configuration function t(e,t){var n=e.split("_");return t%10==1&&t%100!=11?n[0]:t%10>=2&&t%10<=4&&(t%100<10||t%100>=20)?n[1]:n[2]}function n(e,n,r){var i={ss:n?"секунда_секунди_секунд":"секунду_секунди_секунд",mm:n?"хвилина_хвилини_хвилин":"хвилину_хвилини_хвилин",hh:n?"година_години_годин":"годину_години_годин",dd:"день_дні_днів",MM:"місяць_місяці_місяців",yy:"рік_роки_років"};return"m"===r?n?"хвилина":"хвилину":"h"===r?n?"година":"годину":e+" "+t(i[r],+e)}function r(e,t){var n,r={nominative:"неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота".split("_"),accusative:"неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу".split("_"),genitive:"неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи".split("_")};return!0===e?r.nominative.slice(1,7).concat(r.nominative.slice(0,1)):e?r[n=/(\[[ВвУу]\]) ?dddd/.test(t)?"accusative":/\[?(?:минулої|наступної)? ?\] ?dddd/.test(t)?"genitive":"nominative"][e.day()]:r.nominative}function i(e){return function(){return e+"о"+(11===this.hours()?"б":"")+"] LT"}}return e.defineLocale("uk",{months:{format:"січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня".split("_"),standalone:"січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень".split("_")},monthsShort:"січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд".split("_"),weekdays:r,weekdaysShort:"нд_пн_вт_ср_чт_пт_сб".split("_"),weekdaysMin:"нд_пн_вт_ср_чт_пт_сб".split("_"),longDateFormat:{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"},calendar:{sameDay:i("[Сьогодні "),nextDay:i("[Завтра "),lastDay:i("[Вчора "),nextWeek:i("[У] dddd ["),lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return i("[Минулої] dddd [").call(this);case 1:case 2:case 4:return i("[Минулого] dddd [").call(this)}},sameElse:"L"},relativeTime:{future:"за %s",past:"%s тому",s:"декілька секунд",ss:n,m:n,mm:n,h:"годину",hh:n,d:"день",dd:n,M:"місяць",MM:n,y:"рік",yy:n},meridiemParse:/ночі|ранку|дня|вечора/,isPM:function(e){return/^(дня|вечора)$/.test(e)},meridiem:function(e,t,n){return e<4?"ночі":e<12?"ранку":e<17?"дня":"вечора"},dayOfMonthOrdinalParse:/\d{1,2}-(й|го)/,ordinal:function(e,t){switch(t){case"M":case"d":case"DDD":case"w":case"W":return e+"-й";case"D":return e+"-го";default:return e}},week:{dow:1,doy:7}})})(n(30381))},13795:function(e,t,n){var r,i;r=this,(i=function(e){"use strict";//! moment.js locale configuration -var t=["جنوری","فروری","مارچ","اپریل","مئی","جون","جولائی","اگست","ستمبر","اکتوبر","نومبر","دسمبر",],n=["اتوار","پیر","منگل","بدھ","جمعرات","جمعہ","ہفتہ"];return e.defineLocale("ur",{months:t,monthsShort:t,weekdays:n,weekdaysShort:n,weekdaysMin:n,longDateFormat:{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"},meridiemParse:/صبح|شام/,isPM:function(e){return"شام"===e},meridiem:function(e,t,n){return e<12?"صبح":"شام"},calendar:{sameDay:"[آج بوقت] LT",nextDay:"[کل بوقت] LT",nextWeek:"dddd [بوقت] LT",lastDay:"[گذشتہ روز بوقت] LT",lastWeek:"[گذشتہ] dddd [بوقت] LT",sameElse:"L"},relativeTime:{future:"%s بعد",past:"%s قبل",s:"چند سیکنڈ",ss:"%d سیکنڈ",m:"ایک منٹ",mm:"%d منٹ",h:"ایک گھنٹہ",hh:"%d گھنٹے",d:"ایک دن",dd:"%d دن",M:"ایک ماہ",MM:"%d ماہ",y:"ایک سال",yy:"%d سال"},preparse:function(e){return e.replace(/،/g,",")},postformat:function(e){return e.replace(/,/g,"،")},week:{dow:1,doy:4}})})(n(30381))},60588:function(e,t,n){var r,i;r=this,(i=function(e){return e.defineLocale("uz-latn",{months:"Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr".split("_"),monthsShort:"Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek".split("_"),weekdays:"Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba".split("_"),weekdaysShort:"Yak_Dush_Sesh_Chor_Pay_Jum_Shan".split("_"),weekdaysMin:"Ya_Du_Se_Cho_Pa_Ju_Sha".split("_"),longDateFormat:{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"},calendar:{sameDay:"[Bugun soat] LT [da]",nextDay:"[Ertaga] LT [da]",nextWeek:"dddd [kuni soat] LT [da]",lastDay:"[Kecha soat] LT [da]",lastWeek:"[O'tgan] dddd [kuni soat] LT [da]",sameElse:"L"},relativeTime:{future:"Yaqin %s ichida",past:"Bir necha %s oldin",s:"soniya",ss:"%d 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"},week:{dow:1,doy:7}})})(n(30381))},6791:function(e,t,n){var r,i;r=this,(i=function(e){return e.defineLocale("uz",{months:"январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр".split("_"),monthsShort:"янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек".split("_"),weekdays:"Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба".split("_"),weekdaysShort:"Якш_Душ_Сеш_Чор_Пай_Жум_Шан".split("_"),weekdaysMin:"Як_Ду_Се_Чо_Па_Жу_Ша".split("_"),longDateFormat:{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"},calendar:{sameDay:"[Бугун соат] LT [да]",nextDay:"[Эртага] LT [да]",nextWeek:"dddd [куни соат] LT [да]",lastDay:"[Кеча соат] LT [да]",lastWeek:"[Утган] dddd [куни соат] LT [да]",sameElse:"L"},relativeTime:{future:"Якин %s ичида",past:"Бир неча %s олдин",s:"фурсат",ss:"%d фурсат",m:"бир дакика",mm:"%d дакика",h:"бир соат",hh:"%d соат",d:"бир кун",dd:"%d кун",M:"бир ой",MM:"%d ой",y:"бир йил",yy:"%d йил"},week:{dow:1,doy:7}})})(n(30381))},65666:function(e,t,n){var r,i;r=this,(i=function(e){return e.defineLocale("vi",{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("_"),monthsShort:"Thg 01_Thg 02_Thg 03_Thg 04_Thg 05_Thg 06_Thg 07_Thg 08_Thg 09_Thg 10_Thg 11_Thg 12".split("_"),monthsParseExact:!0,weekdays:"chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ s\xe1u_thứ bảy".split("_"),weekdaysShort:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysMin:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysParseExact:!0,meridiemParse:/sa|ch/i,isPM:function(e){return/^ch$/i.test(e)},meridiem:function(e,t,n){return e<12?n?"sa":"SA":n?"ch":"CH"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [năm] YYYY",LLL:"D MMMM [năm] YYYY HH:mm",LLLL:"dddd, D MMMM [năm] YYYY HH:mm",l:"DD/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[H\xf4m nay l\xfac] LT",nextDay:"[Ng\xe0y mai l\xfac] LT",nextWeek:"dddd [tuần tới l\xfac] LT",lastDay:"[H\xf4m qua l\xfac] LT",lastWeek:"dddd [tuần trước l\xfac] LT",sameElse:"L"},relativeTime:{future:"%s tới",past:"%s trước",s:"v\xe0i gi\xe2y",ss:"%d gi\xe2y",m:"một ph\xfat",mm:"%d ph\xfat",h:"một giờ",hh:"%d giờ",d:"một ng\xe0y",dd:"%d ng\xe0y",w:"một tuần",ww:"%d tuần",M:"một th\xe1ng",MM:"%d th\xe1ng",y:"một năm",yy:"%d năm"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(e){return e},week:{dow:1,doy:4}})})(n(30381))},14378:function(e,t,n){var r,i;r=this,(i=function(e){return e.defineLocale("x-pseudo",{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("_"),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("_"),monthsParseExact:!0,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("_"),weekdaysShort:"S~\xfa\xf1_~M\xf3\xf1_~T\xfa\xe9_~W\xe9d_~Th\xfa_~Fr\xed_~S\xe1t".split("_"),weekdaysMin:"S~\xfa_M\xf3~_T\xfa_~W\xe9_T~h_Fr~_S\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[T~\xf3d\xe1~\xfd \xe1t] LT",nextDay:"[T~\xf3m\xf3~rr\xf3~w \xe1t] LT",nextWeek:"dddd [\xe1t] LT",lastDay:"[\xdd~\xe9st~\xe9rd\xe1~\xfd \xe1t] LT",lastWeek:"[L~\xe1st] dddd [\xe1t] LT",sameElse:"L"},relativeTime:{future:"\xed~\xf1 %s",past:"%s \xe1~g\xf3",s:"\xe1 ~f\xe9w ~s\xe9c\xf3~\xf1ds",ss:"%d s~\xe9c\xf3\xf1~ds",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"},dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10,n=1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th";return e+n},week:{dow:1,doy:4}})})(n(30381))},75805:function(e,t,n){var r,i;r=this,(i=function(e){return e.defineLocale("yo",{months:"Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀".split("_"),monthsShort:"Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀".split("_"),weekdays:"Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta".split("_"),weekdaysShort:"Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá".split("_"),weekdaysMin:"Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb".split("_"),longDateFormat:{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"},calendar:{sameDay:"[Ònì ni] LT",nextDay:"[Ọ̀la ni] LT",nextWeek:"dddd [Ọsẹ̀ tón'bọ] [ni] LT",lastDay:"[Àna ni] LT",lastWeek:"dddd [Ọsẹ̀ tólọ́] [ni] LT",sameElse:"L"},relativeTime:{future:"ní %s",past:"%s kọjá",s:"ìsẹjú aayá die",ss:"aayá %d",m:"ìsẹjú kan",mm:"ìsẹjú %d",h:"wákati kan",hh:"wákati %d",d:"ọjọ́ kan",dd:"ọjọ́ %d",M:"osù kan",MM:"osù %d",y:"ọdún kan",yy:"ọdún %d"},dayOfMonthOrdinalParse:/ọjọ́\s\d{1,2}/,ordinal:"ọjọ́ %d",week:{dow:1,doy:4}})})(n(30381))},83839:function(e,t,n){var r,i;r=this,(i=function(e){return e.defineLocale("zh-cn",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"周日_周一_周二_周三_周四_周五_周六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日Ah点mm分",LLLL:"YYYY年M月D日ddddAh点mm分",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(e,t){return(12===e&&(e=0),"凌晨"===t||"早上"===t||"上午"===t)?e:"下午"===t||"晚上"===t?e+12:e>=11?e:e+12},meridiem:function(e,t,n){var r=100*e+t;if(r<600)return"凌晨";if(r<900)return"早上";if(r<1130)return"上午";if(r<1230)return"中午";if(r<1800)return"下午";else return"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:function(e){return e.week()!==this.week()?"[下]dddLT":"[本]dddLT"},lastDay:"[昨天]LT",lastWeek:function(e){return this.week()!==e.week()?"[上]dddLT":"[本]dddLT"},sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|周)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"日";case"M":return e+"月";case"w":case"W":return e+"周";default:return e}},relativeTime:{future:"%s后",past:"%s前",s:"几秒",ss:"%d 秒",m:"1 分钟",mm:"%d 分钟",h:"1 小时",hh:"%d 小时",d:"1 天",dd:"%d 天",w:"1 周",ww:"%d 周",M:"1 个月",MM:"%d 个月",y:"1 年",yy:"%d 年"},week:{dow:1,doy:4}})})(n(30381))},55726:function(e,t,n){var r,i;r=this,(i=function(e){return e.defineLocale("zh-hk",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"週日_週一_週二_週三_週四_週五_週六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日dddd HH:mm",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(e,t){return(12===e&&(e=0),"凌晨"===t||"早上"===t||"上午"===t)?e:"中午"===t?e>=11?e:e+12:"下午"===t||"晚上"===t?e+12:void 0},meridiem:function(e,t,n){var r=100*e+t;if(r<600)return"凌晨";if(r<900)return"早上";if(r<1200)return"上午";if(1200===r)return"中午";if(r<1800)return"下午";else return"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:"[下]ddddLT",lastDay:"[昨天]LT",lastWeek:"[上]ddddLT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|週)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"日";case"M":return e+"月";case"w":case"W":return e+"週";default:return e}},relativeTime:{future:"%s後",past:"%s前",s:"幾秒",ss:"%d 秒",m:"1 分鐘",mm:"%d 分鐘",h:"1 小時",hh:"%d 小時",d:"1 天",dd:"%d 天",M:"1 個月",MM:"%d 個月",y:"1 年",yy:"%d 年"}})})(n(30381))},99807:function(e,t,n){var r,i;r=this,(i=function(e){return e.defineLocale("zh-mo",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"週日_週一_週二_週三_週四_週五_週六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日dddd HH:mm",l:"D/M/YYYY",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(e,t){return(12===e&&(e=0),"凌晨"===t||"早上"===t||"上午"===t)?e:"中午"===t?e>=11?e:e+12:"下午"===t||"晚上"===t?e+12:void 0},meridiem:function(e,t,n){var r=100*e+t;if(r<600)return"凌晨";if(r<900)return"早上";if(r<1130)return"上午";if(r<1230)return"中午";if(r<1800)return"下午";else return"晚上"},calendar:{sameDay:"[今天] LT",nextDay:"[明天] LT",nextWeek:"[下]dddd LT",lastDay:"[昨天] LT",lastWeek:"[上]dddd LT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|週)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"日";case"M":return e+"月";case"w":case"W":return e+"週";default:return e}},relativeTime:{future:"%s內",past:"%s前",s:"幾秒",ss:"%d 秒",m:"1 分鐘",mm:"%d 分鐘",h:"1 小時",hh:"%d 小時",d:"1 天",dd:"%d 天",M:"1 個月",MM:"%d 個月",y:"1 年",yy:"%d 年"}})})(n(30381))},74152:function(e,t,n){var r,i;r=this,(i=function(e){return e.defineLocale("zh-tw",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"週日_週一_週二_週三_週四_週五_週六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日dddd HH:mm",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(e,t){return(12===e&&(e=0),"凌晨"===t||"早上"===t||"上午"===t)?e:"中午"===t?e>=11?e:e+12:"下午"===t||"晚上"===t?e+12:void 0},meridiem:function(e,t,n){var r=100*e+t;if(r<600)return"凌晨";if(r<900)return"早上";if(r<1130)return"上午";if(r<1230)return"中午";if(r<1800)return"下午";else return"晚上"},calendar:{sameDay:"[今天] LT",nextDay:"[明天] LT",nextWeek:"[下]dddd LT",lastDay:"[昨天] LT",lastWeek:"[上]dddd LT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|週)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"日";case"M":return e+"月";case"w":case"W":return e+"週";default:return e}},relativeTime:{future:"%s後",past:"%s前",s:"幾秒",ss:"%d 秒",m:"1 分鐘",mm:"%d 分鐘",h:"1 小時",hh:"%d 小時",d:"1 天",dd:"%d 天",M:"1 個月",MM:"%d 個月",y:"1 年",yy:"%d 年"}})})(n(30381))},46700(e,t,n){var r={"./af":42786,"./af.js":42786,"./ar":30867,"./ar-dz":14130,"./ar-dz.js":14130,"./ar-kw":96135,"./ar-kw.js":96135,"./ar-ly":56440,"./ar-ly.js":56440,"./ar-ma":47702,"./ar-ma.js":47702,"./ar-sa":16040,"./ar-sa.js":16040,"./ar-tn":37100,"./ar-tn.js":37100,"./ar.js":30867,"./az":31083,"./az.js":31083,"./be":9808,"./be.js":9808,"./bg":68338,"./bg.js":68338,"./bm":67438,"./bm.js":67438,"./bn":8905,"./bn-bd":76225,"./bn-bd.js":76225,"./bn.js":8905,"./bo":11560,"./bo.js":11560,"./br":1278,"./br.js":1278,"./bs":80622,"./bs.js":80622,"./ca":2468,"./ca.js":2468,"./cs":5822,"./cs.js":5822,"./cv":50877,"./cv.js":50877,"./cy":47373,"./cy.js":47373,"./da":24780,"./da.js":24780,"./de":59740,"./de-at":60217,"./de-at.js":60217,"./de-ch":60894,"./de-ch.js":60894,"./de.js":59740,"./dv":5300,"./dv.js":5300,"./el":50837,"./el.js":50837,"./en-au":78348,"./en-au.js":78348,"./en-ca":77925,"./en-ca.js":77925,"./en-gb":22243,"./en-gb.js":22243,"./en-ie":46436,"./en-ie.js":46436,"./en-il":47207,"./en-il.js":47207,"./en-in":44175,"./en-in.js":44175,"./en-nz":76319,"./en-nz.js":76319,"./en-sg":31662,"./en-sg.js":31662,"./eo":92915,"./eo.js":92915,"./es":55655,"./es-do":55251,"./es-do.js":55251,"./es-mx":96112,"./es-mx.js":96112,"./es-us":71146,"./es-us.js":71146,"./es.js":55655,"./et":5603,"./et.js":5603,"./eu":77763,"./eu.js":77763,"./fa":76959,"./fa.js":76959,"./fi":11897,"./fi.js":11897,"./fil":42549,"./fil.js":42549,"./fo":94694,"./fo.js":94694,"./fr":94470,"./fr-ca":63049,"./fr-ca.js":63049,"./fr-ch":52330,"./fr-ch.js":52330,"./fr.js":94470,"./fy":5044,"./fy.js":5044,"./ga":29295,"./ga.js":29295,"./gd":2101,"./gd.js":2101,"./gl":38794,"./gl.js":38794,"./gom-deva":27884,"./gom-deva.js":27884,"./gom-latn":23168,"./gom-latn.js":23168,"./gu":95349,"./gu.js":95349,"./he":24206,"./he.js":24206,"./hi":30094,"./hi.js":30094,"./hr":30316,"./hr.js":30316,"./hu":22138,"./hu.js":22138,"./hy-am":11423,"./hy-am.js":11423,"./id":29218,"./id.js":29218,"./is":90135,"./is.js":90135,"./it":90626,"./it-ch":10150,"./it-ch.js":10150,"./it.js":90626,"./ja":39183,"./ja.js":39183,"./jv":24286,"./jv.js":24286,"./ka":12105,"./ka.js":12105,"./kk":47772,"./kk.js":47772,"./km":18758,"./km.js":18758,"./kn":79282,"./kn.js":79282,"./ko":33730,"./ko.js":33730,"./ku":1408,"./ku.js":1408,"./ky":33291,"./ky.js":33291,"./lb":36841,"./lb.js":36841,"./lo":55466,"./lo.js":55466,"./lt":57010,"./lt.js":57010,"./lv":37595,"./lv.js":37595,"./me":39861,"./me.js":39861,"./mi":35493,"./mi.js":35493,"./mk":95966,"./mk.js":95966,"./ml":87341,"./ml.js":87341,"./mn":5115,"./mn.js":5115,"./mr":10370,"./mr.js":10370,"./ms":9847,"./ms-my":41237,"./ms-my.js":41237,"./ms.js":9847,"./mt":72126,"./mt.js":72126,"./my":56165,"./my.js":56165,"./nb":64924,"./nb.js":64924,"./ne":16744,"./ne.js":16744,"./nl":93901,"./nl-be":59814,"./nl-be.js":59814,"./nl.js":93901,"./nn":83877,"./nn.js":83877,"./oc-lnc":92135,"./oc-lnc.js":92135,"./pa-in":15858,"./pa-in.js":15858,"./pl":64495,"./pl.js":64495,"./pt":89520,"./pt-br":57971,"./pt-br.js":57971,"./pt.js":89520,"./ro":96459,"./ro.js":96459,"./ru":21793,"./ru.js":21793,"./sd":40950,"./sd.js":40950,"./se":10490,"./se.js":10490,"./si":90124,"./si.js":90124,"./sk":64249,"./sk.js":64249,"./sl":14985,"./sl.js":14985,"./sq":51104,"./sq.js":51104,"./sr":49131,"./sr-cyrl":79915,"./sr-cyrl.js":79915,"./sr.js":49131,"./ss":85893,"./ss.js":85893,"./sv":98760,"./sv.js":98760,"./sw":91172,"./sw.js":91172,"./ta":27333,"./ta.js":27333,"./te":23110,"./te.js":23110,"./tet":52095,"./tet.js":52095,"./tg":27321,"./tg.js":27321,"./th":9041,"./th.js":9041,"./tk":19005,"./tk.js":19005,"./tl-ph":75768,"./tl-ph.js":75768,"./tlh":89444,"./tlh.js":89444,"./tr":72397,"./tr.js":72397,"./tzl":28254,"./tzl.js":28254,"./tzm":51106,"./tzm-latn":30699,"./tzm-latn.js":30699,"./tzm.js":51106,"./ug-cn":9288,"./ug-cn.js":9288,"./uk":67691,"./uk.js":67691,"./ur":13795,"./ur.js":13795,"./uz":6791,"./uz-latn":60588,"./uz-latn.js":60588,"./uz.js":6791,"./vi":65666,"./vi.js":65666,"./x-pseudo":14378,"./x-pseudo.js":14378,"./yo":75805,"./yo.js":75805,"./zh-cn":83839,"./zh-cn.js":83839,"./zh-hk":55726,"./zh-hk.js":55726,"./zh-mo":99807,"./zh-mo.js":99807,"./zh-tw":74152,"./zh-tw.js":74152};function i(e){return n(a(e))}function a(e){if(!n.o(r,e)){var t=Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}i.keys=function(){return Object.keys(r)},i.resolve=a,e.exports=i,i.id=46700},30381:function(e,t,n){var r,i;e=n.nmd(e),r=this,i=function(){"use strict";function t(){return em.apply(null,arguments)}function r(e){em=e}function i(e){return e instanceof Array||"[object Array]"===Object.prototype.toString.call(e)}function a(e){return null!=e&&"[object Object]"===Object.prototype.toString.call(e)}function o(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function s(e){var t;if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(e).length;for(t in e)if(o(e,t))return!1;return!0}function u(e){return void 0===e}function c(e){return"number"==typeof e||"[object Number]"===Object.prototype.toString.call(e)}function l(e){return e instanceof Date||"[object Date]"===Object.prototype.toString.call(e)}function f(e,t){var n,r=[];for(n=0;n>>0;for(t=0;t0)for(n=0;n=0?n?"+":"":"-")+Math.pow(10,Math.max(0,t-i.length)).toString().substr(1)+i}var R=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,j=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,F={},Y={};function B(e,t,n,r){var i=r;"string"==typeof r&&(i=function(){return this[r]()}),e&&(Y[e]=i),t&&(Y[t[0]]=function(){return P(i.apply(this,arguments),t[1],t[2])}),n&&(Y[n]=function(){return this.localeData().ordinal(i.apply(this,arguments),e)})}function U(e){return e.match(/\[[\s\S]/)?e.replace(/^\[|\]$/g,""):e.replace(/\\/g,"")}function H(e){var t,n,r=e.match(R);for(t=0,n=r.length;t=0&&j.test(e);)e=e.replace(j,r),j.lastIndex=0,n-=1;return e}var G={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"};function W(e){var t=this._longDateFormat[e],n=this._longDateFormat[e.toUpperCase()];return t||!n?t:(this._longDateFormat[e]=n.match(R).map(function(e){return"MMMM"===e||"MM"===e||"DD"===e||"dddd"===e?e.slice(1):e}).join(""),this._longDateFormat[e])}var K="Invalid date";function V(){return this._invalidDate}var q="%d",Z=/\d{1,2}/;function X(e){return this._ordinal.replace("%d",e)}var J={future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",w:"a week",ww:"%d weeks",M:"a month",MM:"%d months",y:"a year",yy:"%d years"};function Q(e,t,n,r){var i=this._relativeTime[n];return A(i)?i(e,t,n,r):i.replace(/%d/i,e)}function ee(e,t){var n=this._relativeTime[e>0?"future":"past"];return A(n)?n(t):n.replace(/%s/i,t)}var et={};function en(e,t){var n=e.toLowerCase();et[n]=et[n+"s"]=et[t]=e}function er(e){return"string"==typeof e?et[e]||et[e.toLowerCase()]:void 0}function ei(e){var t,n,r={};for(n in e)o(e,n)&&(t=er(n))&&(r[t]=e[n]);return r}var ea={};function eo(e,t){ea[e]=t}function es(e){var t,n=[];for(t in e)o(e,t)&&n.push({unit:t,priority:ea[t]});return n.sort(function(e,t){return e.priority-t.priority}),n}function eu(e){return e%4==0&&e%100!=0||e%400==0}function ec(e){return e<0?Math.ceil(e)||0:Math.floor(e)}function el(e){var t=+e,n=0;return 0!==t&&isFinite(t)&&(n=ec(t)),n}function ef(e,n){return function(r){return null!=r?(eh(this,e,r),t.updateOffset(this,n),this):ed(this,e)}}function ed(e,t){return e.isValid()?e._d["get"+(e._isUTC?"UTC":"")+t]():NaN}function eh(e,t,n){e.isValid()&&!isNaN(n)&&("FullYear"===t&&eu(e.year())&&1===e.month()&&29===e.date()?(n=el(n),e._d["set"+(e._isUTC?"UTC":"")+t](n,e.month(),e0(n,e.month()))):e._d["set"+(e._isUTC?"UTC":"")+t](n))}function ep(e){return A(this[e=er(e)])?this[e]():this}function eb(e,t){if("object"==typeof e){e=ei(e);var n,r=es(e);for(n=0;n68?1900:2e3)};var tu=ef("FullYear",!0);function tc(){return eu(this.year())}function tl(e,t,n,r,i,a,o){var s;return e<100&&e>=0?(s=new Date(e+400,t,n,r,i,a,o),isFinite(s.getFullYear())&&s.setFullYear(e)):s=new Date(e,t,n,r,i,a,o),s}function tf(e){var t,n;return e<100&&e>=0?(n=Array.prototype.slice.call(arguments),n[0]=e+400,t=new Date(Date.UTC.apply(null,n)),isFinite(t.getUTCFullYear())&&t.setUTCFullYear(e)):t=new Date(Date.UTC.apply(null,arguments)),t}function td(e,t,n){var r=7+t-n;return-((7+tf(e,0,r).getUTCDay()-t)%7)+r-1}function th(e,t,n,r,i){var a,o,s=(7+n-r)%7,u=td(e,r,i),c=1+7*(t-1)+s+u;return c<=0?o=ts(a=e-1)+c:c>ts(e)?(a=e+1,o=c-ts(e)):(a=e,o=c),{year:a,dayOfYear:o}}function tp(e,t,n){var r,i,a=td(e.year(),t,n),o=Math.floor((e.dayOfYear()-a-1)/7)+1;return o<1?r=o+tb(i=e.year()-1,t,n):o>tb(e.year(),t,n)?(r=o-tb(e.year(),t,n),i=e.year()+1):(i=e.year(),r=o),{week:r,year:i}}function tb(e,t,n){var r=td(e,t,n),i=td(e+1,t,n);return(ts(e)-r+i)/7}function tm(e){return tp(e,this._week.dow,this._week.doy).week}B("w",["ww",2],"wo","week"),B("W",["WW",2],"Wo","isoWeek"),en("week","w"),en("isoWeek","W"),eo("week",5),eo("isoWeek",5),ej("w",ex),ej("ww",ex,e_),ej("W",ex),ej("WW",ex,e_),e$(["w","ww","W","WW"],function(e,t,n,r){t[r.substr(0,1)]=el(e)});var tg={dow:0,doy:6};function tv(){return this._week.dow}function ty(){return this._week.doy}function tw(e){var t=this.localeData().week(this);return null==e?t:this.add((e-t)*7,"d")}function t_(e){var t=tp(this,1,4).week;return null==e?t:this.add((e-t)*7,"d")}function tE(e,t){return"string"!=typeof e?e:isNaN(e)?"number"==typeof(e=t.weekdaysParse(e))?e:null:parseInt(e,10)}function tS(e,t){return"string"==typeof e?t.weekdaysParse(e)%7||7:isNaN(e)?null:e}function tk(e,t){return e.slice(t,7).concat(e.slice(0,t))}B("d",0,"do","day"),B("dd",0,0,function(e){return this.localeData().weekdaysMin(this,e)}),B("ddd",0,0,function(e){return this.localeData().weekdaysShort(this,e)}),B("dddd",0,0,function(e){return this.localeData().weekdays(this,e)}),B("e",0,0,"weekday"),B("E",0,0,"isoWeekday"),en("day","d"),en("weekday","e"),en("isoWeekday","E"),eo("day",11),eo("weekday",11),eo("isoWeekday",11),ej("d",ex),ej("e",ex),ej("E",ex),ej("dd",function(e,t){return t.weekdaysMinRegex(e)}),ej("ddd",function(e,t){return t.weekdaysShortRegex(e)}),ej("dddd",function(e,t){return t.weekdaysRegex(e)}),e$(["dd","ddd","dddd"],function(e,t,n,r){var i=n._locale.weekdaysParse(e,r,n._strict);null!=i?t.d=i:b(n).invalidWeekday=e}),e$(["d","e","E"],function(e,t,n,r){t[r]=el(e)});var tx="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),tT="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),tM="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),tO=eR,tA=eR,tL=eR;function tC(e,t){var n=i(this._weekdays)?this._weekdays:this._weekdays[e&&!0!==e&&this._weekdays.isFormat.test(t)?"format":"standalone"];return!0===e?tk(n,this._week.dow):e?n[e.day()]:n}function tI(e){return!0===e?tk(this._weekdaysShort,this._week.dow):e?this._weekdaysShort[e.day()]:this._weekdaysShort}function tD(e){return!0===e?tk(this._weekdaysMin,this._week.dow):e?this._weekdaysMin[e.day()]:this._weekdaysMin}function tN(e,t,n){var r,i,a,o=e.toLocaleLowerCase();if(!this._weekdaysParse)for(r=0,this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[];r<7;++r)a=h([2e3,1]).day(r),this._minWeekdaysParse[r]=this.weekdaysMin(a,"").toLocaleLowerCase(),this._shortWeekdaysParse[r]=this.weekdaysShort(a,"").toLocaleLowerCase(),this._weekdaysParse[r]=this.weekdays(a,"").toLocaleLowerCase();return n?"dddd"===t?-1!==(i=tX.call(this._weekdaysParse,o))?i:null:"ddd"===t?-1!==(i=tX.call(this._shortWeekdaysParse,o))?i:null:-1!==(i=tX.call(this._minWeekdaysParse,o))?i:null:"dddd"===t?-1!==(i=tX.call(this._weekdaysParse,o))||-1!==(i=tX.call(this._shortWeekdaysParse,o))?i:-1!==(i=tX.call(this._minWeekdaysParse,o))?i:null:"ddd"===t?-1!==(i=tX.call(this._shortWeekdaysParse,o))||-1!==(i=tX.call(this._weekdaysParse,o))?i:-1!==(i=tX.call(this._minWeekdaysParse,o))?i:null:-1!==(i=tX.call(this._minWeekdaysParse,o))||-1!==(i=tX.call(this._weekdaysParse,o))?i:-1!==(i=tX.call(this._shortWeekdaysParse,o))?i:null}function tP(e,t,n){var r,i,a;if(this._weekdaysParseExact)return tN.call(this,e,t,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),r=0;r<7;r++){if(i=h([2e3,1]).day(r),n&&!this._fullWeekdaysParse[r]&&(this._fullWeekdaysParse[r]=RegExp("^"+this.weekdays(i,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[r]=RegExp("^"+this.weekdaysShort(i,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[r]=RegExp("^"+this.weekdaysMin(i,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[r]||(a="^"+this.weekdays(i,"")+"|^"+this.weekdaysShort(i,"")+"|^"+this.weekdaysMin(i,""),this._weekdaysParse[r]=RegExp(a.replace(".",""),"i")),n&&"dddd"===t&&this._fullWeekdaysParse[r].test(e))return r;if(n&&"ddd"===t&&this._shortWeekdaysParse[r].test(e))return r;if(n&&"dd"===t&&this._minWeekdaysParse[r].test(e))return r;else if(!n&&this._weekdaysParse[r].test(e))return r}}function tR(e){if(!this.isValid())return null!=e?this:NaN;var t=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=e?(e=tE(e,this.localeData()),this.add(e-t,"d")):t}function tj(e){if(!this.isValid())return null!=e?this:NaN;var t=(this.day()+7-this.localeData()._week.dow)%7;return null==e?t:this.add(e-t,"d")}function tF(e){if(!this.isValid())return null!=e?this:NaN;if(null==e)return this.day()||7;var t=tS(e,this.localeData());return this.day(this.day()%7?t:t-7)}function tY(e){return this._weekdaysParseExact?(o(this,"_weekdaysRegex")||tH.call(this),e)?this._weekdaysStrictRegex:this._weekdaysRegex:(o(this,"_weekdaysRegex")||(this._weekdaysRegex=tO),this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex)}function tB(e){return this._weekdaysParseExact?(o(this,"_weekdaysRegex")||tH.call(this),e)?this._weekdaysShortStrictRegex:this._weekdaysShortRegex:(o(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=tA),this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}function tU(e){return this._weekdaysParseExact?(o(this,"_weekdaysRegex")||tH.call(this),e)?this._weekdaysMinStrictRegex:this._weekdaysMinRegex:(o(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=tL),this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function tH(){function e(e,t){return t.length-e.length}var t,n,r,i,a,o=[],s=[],u=[],c=[];for(t=0;t<7;t++)n=h([2e3,1]).day(t),r=eB(this.weekdaysMin(n,"")),i=eB(this.weekdaysShort(n,"")),a=eB(this.weekdays(n,"")),o.push(r),s.push(i),u.push(a),c.push(r),c.push(i),c.push(a);o.sort(e),s.sort(e),u.sort(e),c.sort(e),this._weekdaysRegex=RegExp("^("+c.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=RegExp("^("+u.join("|")+")","i"),this._weekdaysShortStrictRegex=RegExp("^("+s.join("|")+")","i"),this._weekdaysMinStrictRegex=RegExp("^("+o.join("|")+")","i")}function t$(){return this.hours()%12||12}function tz(){return this.hours()||24}function tG(e,t){B(e,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)})}function tW(e,t){return t._meridiemParse}function tK(e){return"p"===(e+"").toLowerCase().charAt(0)}B("H",["HH",2],0,"hour"),B("h",["hh",2],0,t$),B("k",["kk",2],0,tz),B("hmm",0,0,function(){return""+t$.apply(this)+P(this.minutes(),2)}),B("hmmss",0,0,function(){return""+t$.apply(this)+P(this.minutes(),2)+P(this.seconds(),2)}),B("Hmm",0,0,function(){return""+this.hours()+P(this.minutes(),2)}),B("Hmmss",0,0,function(){return""+this.hours()+P(this.minutes(),2)+P(this.seconds(),2)}),tG("a",!0),tG("A",!1),en("hour","h"),eo("hour",13),ej("a",tW),ej("A",tW),ej("H",ex),ej("h",ex),ej("k",ex),ej("HH",ex,e_),ej("hh",ex,e_),ej("kk",ex,e_),ej("hmm",eT),ej("hmmss",eM),ej("Hmm",eT),ej("Hmmss",eM),eH(["H","HH"],eV),eH(["k","kk"],function(e,t,n){var r=el(e);t[eV]=24===r?0:r}),eH(["a","A"],function(e,t,n){n._isPm=n._locale.isPM(e),n._meridiem=e}),eH(["h","hh"],function(e,t,n){t[eV]=el(e),b(n).bigHour=!0}),eH("hmm",function(e,t,n){var r=e.length-2;t[eV]=el(e.substr(0,r)),t[eq]=el(e.substr(r)),b(n).bigHour=!0}),eH("hmmss",function(e,t,n){var r=e.length-4,i=e.length-2;t[eV]=el(e.substr(0,r)),t[eq]=el(e.substr(r,2)),t[eZ]=el(e.substr(i)),b(n).bigHour=!0}),eH("Hmm",function(e,t,n){var r=e.length-2;t[eV]=el(e.substr(0,r)),t[eq]=el(e.substr(r))}),eH("Hmmss",function(e,t,n){var r=e.length-4,i=e.length-2;t[eV]=el(e.substr(0,r)),t[eq]=el(e.substr(r,2)),t[eZ]=el(e.substr(i))});var tV=/[ap]\.?m?\.?/i,tq=ef("Hours",!0);function tZ(e,t,n){return e>11?n?"pm":"PM":n?"am":"AM"}var tX,tJ,tQ={calendar:D,longDateFormat:G,invalidDate:K,ordinal:q,dayOfMonthOrdinalParse:Z,relativeTime:J,months:e2,monthsShort:e3,week:tg,weekdays:tx,weekdaysMin:tM,weekdaysShort:tT,meridiemParse:tV},t1={},t0={};function t2(e,t){var n,r=Math.min(e.length,t.length);for(n=0;n0;){if(r=t5(i.slice(0,t).join("-")))return r;if(n&&n.length>=t&&t2(i,n)>=t-1)break;t--}a++}return tJ}function t5(t){var r,i=null;if(void 0===t1[t]&&e&&e.exports)try{i=tJ._abbr,r=void 0,n(46700)("./"+t),t6(i)}catch(a){t1[t]=null}return t1[t]}function t6(e,t){var n;return e&&((n=u(t)?t7(e):t9(e,t))?tJ=n:"undefined"!=typeof console&&console.warn&&console.warn("Locale "+e+" not found. Did you forget to load it?")),tJ._abbr}function t9(e,t){if(null===t)return delete t1[e],null;var n,r=tQ;if(t.abbr=e,null!=t1[e])O("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),r=t1[e]._config;else if(null!=t.parentLocale){if(null!=t1[t.parentLocale])r=t1[t.parentLocale]._config;else{if(null==(n=t5(t.parentLocale)))return t0[t.parentLocale]||(t0[t.parentLocale]=[]),t0[t.parentLocale].push({name:e,config:t}),null;r=n._config}}return t1[e]=new I(C(r,t)),t0[e]&&t0[e].forEach(function(e){t9(e.name,e.config)}),t6(e),t1[e]}function t8(e,t){if(null!=t){var n,r,i=tQ;null!=t1[e]&&null!=t1[e].parentLocale?t1[e].set(C(t1[e]._config,t)):(null!=(r=t5(e))&&(i=r._config),t=C(i,t),null==r&&(t.abbr=e),(n=new I(t)).parentLocale=t1[e],t1[e]=n),t6(e)}else null!=t1[e]&&(null!=t1[e].parentLocale?(t1[e]=t1[e].parentLocale,e===t6()&&t6(e)):null!=t1[e]&&delete t1[e]);return t1[e]}function t7(e){var t;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return tJ;if(!i(e)){if(t=t5(e))return t;e=[e]}return t4(e)}function ne(){return ev(t1)}function nt(e){var t,n=e._a;return n&&-2===b(e).overflow&&(t=n[eW]<0||n[eW]>11?eW:n[eK]<1||n[eK]>e0(n[eG],n[eW])?eK:n[eV]<0||n[eV]>24||24===n[eV]&&(0!==n[eq]||0!==n[eZ]||0!==n[eX])?eV:n[eq]<0||n[eq]>59?eq:n[eZ]<0||n[eZ]>59?eZ:n[eX]<0||n[eX]>999?eX:-1,b(e)._overflowDayOfYear&&(teK)&&(t=eK),b(e)._overflowWeeks&&-1===t&&(t=eJ),b(e)._overflowWeekday&&-1===t&&(t=eQ),b(e).overflow=t),e}var nn=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,nr=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d|))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,ni=/Z|[+-]\d\d(?::?\d\d)?/,na=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/],["YYYYMM",/\d{6}/,!1],["YYYY",/\d{4}/,!1],],no=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/],],ns=/^\/?Date\((-?\d+)/i,nu=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/,nc={UT:0,GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function nl(e){var t,n,r,i,a,o,s=e._i,u=nn.exec(s)||nr.exec(s);if(u){for(t=0,b(e).iso=!0,n=na.length;tts(a)||0===e._dayOfYear)&&(b(e)._overflowDayOfYear=!0),n=tf(a,0,e._dayOfYear),e._a[eW]=n.getUTCMonth(),e._a[eK]=n.getUTCDate()),t=0;t<3&&null==e._a[t];++t)e._a[t]=o[t]=r[t];for(;t<7;t++)e._a[t]=o[t]=null==e._a[t]?2===t?1:0:e._a[t];24===e._a[eV]&&0===e._a[eq]&&0===e._a[eZ]&&0===e._a[eX]&&(e._nextDay=!0,e._a[eV]=0),e._d=(e._useUTC?tf:tl).apply(null,o),i=e._useUTC?e._d.getUTCDay():e._d.getDay(),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[eV]=24),e._w&&void 0!==e._w.d&&e._w.d!==i&&(b(e).weekdayMismatch=!0)}}function n_(e){var t,n,r,i,a,o,s,u,c;null!=(t=e._w).GG||null!=t.W||null!=t.E?(a=1,o=4,n=nv(t.GG,e._a[eG],tp(nL(),1,4).year),r=nv(t.W,1),((i=nv(t.E,1))<1||i>7)&&(u=!0)):(a=e._locale._week.dow,o=e._locale._week.doy,c=tp(nL(),a,o),n=nv(t.gg,e._a[eG],c.year),r=nv(t.w,c.week),null!=t.d?((i=t.d)<0||i>6)&&(u=!0):null!=t.e?(i=t.e+a,(t.e<0||t.e>6)&&(u=!0)):i=a),r<1||r>tb(n,a,o)?b(e)._overflowWeeks=!0:null!=u?b(e)._overflowWeekday=!0:(s=th(n,r,i,a,o),e._a[eG]=s.year,e._dayOfYear=s.dayOfYear)}function nE(e){if(e._f===t.ISO_8601){nl(e);return}if(e._f===t.RFC_2822){nm(e);return}e._a=[],b(e).empty=!0;var n,r,i,a,o,s,u=""+e._i,c=u.length,l=0;for(n=0,i=z(e._f,e._locale).match(R)||[];n0&&b(e).unusedInput.push(o),u=u.slice(u.indexOf(r)+r.length),l+=r.length),Y[a]?(r?b(e).empty=!1:b(e).unusedTokens.push(a),ez(a,r,e)):e._strict&&!r&&b(e).unusedTokens.push(a);b(e).charsLeftOver=c-l,u.length>0&&b(e).unusedInput.push(u),e._a[eV]<=12&&!0===b(e).bigHour&&e._a[eV]>0&&(b(e).bigHour=void 0),b(e).parsedDateParts=e._a.slice(0),b(e).meridiem=e._meridiem,e._a[eV]=nS(e._locale,e._a[eV],e._meridiem),null!==(s=b(e).era)&&(e._a[eG]=e._locale.erasConvertYear(s,e._a[eG])),nw(e),nt(e)}function nS(e,t,n){var r;return null==n?t:null!=e.meridiemHour?e.meridiemHour(t,n):(null!=e.isPM&&((r=e.isPM(n))&&t<12&&(t+=12),r||12!==t||(t=0)),t)}function nk(e){var t,n,r,i,a,o,s=!1;if(0===e._f.length){b(e).invalidFormat=!0,e._d=new Date(NaN);return}for(i=0;ithis?this:e:g()});function nD(e,t){var n,r;if(1===t.length&&i(t[0])&&(t=t[0]),!t.length)return nL();for(r=1,n=t[0];rMath.abs(e)&&!r&&(e*=60);return!this._isUTC&&n&&(i=nq(this)),this._offset=e,this._isUTC=!0,null!=i&&this.add(i,"m"),a===e||(!n||this._changeInProgress?ri(this,n7(e-a,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,t.updateOffset(this,!0),this._changeInProgress=null)),this}function nX(e,t){return null!=e?("string"!=typeof e&&(e=-e),this.utcOffset(e,t),this):-this.utcOffset()}function nJ(e){return this.utcOffset(0,e)}function nQ(e){return this._isUTC&&(this.utcOffset(0,e),this._isUTC=!1,e&&this.subtract(nq(this),"m")),this}function n1(){if(null!=this._tzm)this.utcOffset(this._tzm,!1,!0);else if("string"==typeof this._i){var e=nK(eD,this._i);null!=e?this.utcOffset(e):this.utcOffset(0,!0)}return this}function n0(e){return!!this.isValid()&&(e=e?nL(e).utcOffset():0,(this.utcOffset()-e)%60==0)}function n2(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function n3(){if(!u(this._isDSTShifted))return this._isDSTShifted;var e,t={};return E(t,this),(t=nM(t))._a?(e=t._isUTC?h(t._a):nL(t._a),this._isDSTShifted=this.isValid()&&nz(t._a,e.toArray())>0):this._isDSTShifted=!1,this._isDSTShifted}function n4(){return!!this.isValid()&&!this._isUTC}function n5(){return!!this.isValid()&&this._isUTC}function n6(){return!!this.isValid()&&this._isUTC&&0===this._offset}t.updateOffset=function(){};var n9=/^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/,n8=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function n7(e,t){var n,r,i,a=e,s=null;return nH(e)?a={ms:e._milliseconds,d:e._days,M:e._months}:c(e)||!isNaN(+e)?(a={},t?a[t]=+e:a.milliseconds=+e):(s=n9.exec(e))?(n="-"===s[1]?-1:1,a={y:0,d:el(s[eK])*n,h:el(s[eV])*n,m:el(s[eq])*n,s:el(s[eZ])*n,ms:el(n$(1e3*s[eX]))*n}):(s=n8.exec(e))?(n="-"===s[1]?-1:1,a={y:re(s[2],n),M:re(s[3],n),w:re(s[4],n),d:re(s[5],n),h:re(s[6],n),m:re(s[7],n),s:re(s[8],n)}):null==a?a={}:"object"==typeof a&&("from"in a||"to"in a)&&(i=rn(nL(a.from),nL(a.to)),(a={}).ms=i.milliseconds,a.M=i.months),r=new nU(a),nH(e)&&o(e,"_locale")&&(r._locale=e._locale),nH(e)&&o(e,"_isValid")&&(r._isValid=e._isValid),r}function re(e,t){var n=e&&parseFloat(e.replace(",","."));return(isNaN(n)?0:n)*t}function rt(e,t){var n={};return n.months=t.month()-e.month()+(t.year()-e.year())*12,e.clone().add(n.months,"M").isAfter(t)&&--n.months,n.milliseconds=+t-+e.clone().add(n.months,"M"),n}function rn(e,t){var n;return e.isValid()&&t.isValid()?(t=nV(t,e),e.isBefore(t)?n=rt(e,t):((n=rt(t,e)).milliseconds=-n.milliseconds,n.months=-n.months),n):{milliseconds:0,months:0}}function rr(e,t){return function(n,r){var i,a;return null===r||isNaN(+r)||(O(t,"moment()."+t+"(period, number) is deprecated. Please use moment()."+t+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),a=n,n=r,r=a),i=n7(n,r),ri(this,i,e),this}}function ri(e,n,r,i){var a=n._milliseconds,o=n$(n._days),s=n$(n._months);e.isValid()&&(i=null==i||i,s&&tt(e,ed(e,"Month")+s*r),o&&eh(e,"Date",ed(e,"Date")+o*r),a&&e._d.setTime(e._d.valueOf()+a*r),i&&t.updateOffset(e,o||s))}n7.fn=nU.prototype,n7.invalid=nB;var ra=rr(1,"add"),ro=rr(-1,"subtract");function rs(e){return"string"==typeof e||e instanceof String}function ru(e){return k(e)||l(e)||rs(e)||c(e)||rl(e)||rc(e)||null==e}function rc(e){var t,n,r=a(e)&&!s(e),i=!1,u=["years","year","y","months","month","M","days","day","d","dates","date","D","hours","hour","h","minutes","minute","m","seconds","second","s","milliseconds","millisecond","ms",];for(t=0;tn.valueOf():n.valueOf()n.year()||n.year()>9999?$(n,t?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):A(Date.prototype.toISOString)?t?this.toDate().toISOString():new Date(this.valueOf()+6e4*this.utcOffset()).toISOString().replace("Z",$(n,"Z")):$(n,t?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")}function rx(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var e,t,n,r,i="moment",a="";return this.isLocal()||(i=0===this.utcOffset()?"moment.utc":"moment.parseZone",a="Z"),e="["+i+'("]',t=0<=this.year()&&9999>=this.year()?"YYYY":"YYYYYY",n="-MM-DD[T]HH:mm:ss.SSS",r=a+'[")]',this.format(e+t+n+r)}function rT(e){e||(e=this.isUtc()?t.defaultFormatUtc:t.defaultFormat);var n=$(this,e);return this.localeData().postformat(n)}function rM(e,t){return this.isValid()&&(k(e)&&e.isValid()||nL(e).isValid())?n7({to:this,from:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()}function rO(e){return this.from(nL(),e)}function rA(e,t){return this.isValid()&&(k(e)&&e.isValid()||nL(e).isValid())?n7({from:this,to:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()}function rL(e){return this.to(nL(),e)}function rC(e){var t;return void 0===e?this._locale._abbr:(null!=(t=t7(e))&&(this._locale=t),this)}t.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",t.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var rI=T("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(e){return void 0===e?this.localeData():this.locale(e)});function rD(){return this._locale}var rN=1e3,rP=60*rN,rR=60*rP,rj=3506328*rR;function rF(e,t){return(e%t+t)%t}function rY(e,t,n){return e<100&&e>=0?new Date(e+400,t,n)-rj:new Date(e,t,n).valueOf()}function rB(e,t,n){return e<100&&e>=0?Date.UTC(e+400,t,n)-rj:Date.UTC(e,t,n)}function rU(e){var n,r;if(void 0===(e=er(e))||"millisecond"===e||!this.isValid())return this;switch(r=this._isUTC?rB:rY,e){case"year":n=r(this.year(),0,1);break;case"quarter":n=r(this.year(),this.month()-this.month()%3,1);break;case"month":n=r(this.year(),this.month(),1);break;case"week":n=r(this.year(),this.month(),this.date()-this.weekday());break;case"isoWeek":n=r(this.year(),this.month(),this.date()-(this.isoWeekday()-1));break;case"day":case"date":n=r(this.year(),this.month(),this.date());break;case"hour":n=this._d.valueOf(),n-=rF(n+(this._isUTC?0:this.utcOffset()*rP),rR);break;case"minute":n=this._d.valueOf(),n-=rF(n,rP);break;case"second":n=this._d.valueOf(),n-=rF(n,rN)}return this._d.setTime(n),t.updateOffset(this,!0),this}function rH(e){var n,r;if(void 0===(e=er(e))||"millisecond"===e||!this.isValid())return this;switch(r=this._isUTC?rB:rY,e){case"year":n=r(this.year()+1,0,1)-1;break;case"quarter":n=r(this.year(),this.month()-this.month()%3+3,1)-1;break;case"month":n=r(this.year(),this.month()+1,1)-1;break;case"week":n=r(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case"isoWeek":n=r(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case"day":case"date":n=r(this.year(),this.month(),this.date()+1)-1;break;case"hour":n=this._d.valueOf(),n+=rR-rF(n+(this._isUTC?0:this.utcOffset()*rP),rR)-1;break;case"minute":n=this._d.valueOf(),n+=rP-rF(n,rP)-1;break;case"second":n=this._d.valueOf(),n+=rN-rF(n,rN)-1}return this._d.setTime(n),t.updateOffset(this,!0),this}function r$(){return this._d.valueOf()-6e4*(this._offset||0)}function rz(){return Math.floor(this.valueOf()/1e3)}function rG(){return new Date(this.valueOf())}function rW(){var e=this;return[e.year(),e.month(),e.date(),e.hour(),e.minute(),e.second(),e.millisecond(),]}function rK(){var e=this;return{years:e.year(),months:e.month(),date:e.date(),hours:e.hours(),minutes:e.minutes(),seconds:e.seconds(),milliseconds:e.milliseconds()}}function rV(){return this.isValid()?this.toISOString():null}function rq(){return m(this)}function rZ(){return d({},b(this))}function rX(){return b(this).overflow}function rJ(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}function rQ(e,n){var r,i,a,o=this._eras||t7("en")._eras;for(r=0,i=o.length;r=0)return u[r]}function r0(e,n){var r=e.since<=e.until?1:-1;return void 0===n?t(e.since).year():t(e.since).year()+(n-e.offset)*r}function r2(){var e,t,n,r=this.localeData().eras();for(e=0,t=r.length;ea&&(t=a),ip.call(this,e,t,n,r,i))}function ip(e,t,n,r,i){var a=th(e,t,n,r,i),o=tf(a.year,0,a.dayOfYear);return this.year(o.getUTCFullYear()),this.month(o.getUTCMonth()),this.date(o.getUTCDate()),this}function ib(e){return null==e?Math.ceil((this.month()+1)/3):this.month((e-1)*3+this.month()%3)}B("N",0,0,"eraAbbr"),B("NN",0,0,"eraAbbr"),B("NNN",0,0,"eraAbbr"),B("NNNN",0,0,"eraName"),B("NNNNN",0,0,"eraNarrow"),B("y",["y",1],"yo","eraYear"),B("y",["yy",2],0,"eraYear"),B("y",["yyy",3],0,"eraYear"),B("y",["yyyy",4],0,"eraYear"),ej("N",r7),ej("NN",r7),ej("NNN",r7),ej("NNNN",ie),ej("NNNNN",it),eH(["N","NN","NNN","NNNN","NNNNN"],function(e,t,n,r){var i=n._locale.erasParse(e,r,n._strict);i?b(n).era=i:b(n).invalidEra=e}),ej("y",eC),ej("yy",eC),ej("yyy",eC),ej("yyyy",eC),ej("yo",ir),eH(["y","yy","yyy","yyyy"],eG),eH(["yo"],function(e,t,n,r){var i;n._locale._eraYearOrdinalRegex&&(i=e.match(n._locale._eraYearOrdinalRegex)),n._locale.eraYearOrdinalParse?t[eG]=n._locale.eraYearOrdinalParse(e,i):t[eG]=parseInt(e,10)}),B(0,["gg",2],0,function(){return this.weekYear()%100}),B(0,["GG",2],0,function(){return this.isoWeekYear()%100}),ia("gggg","weekYear"),ia("ggggg","weekYear"),ia("GGGG","isoWeekYear"),ia("GGGGG","isoWeekYear"),en("weekYear","gg"),en("isoWeekYear","GG"),eo("weekYear",1),eo("isoWeekYear",1),ej("G",eI),ej("g",eI),ej("GG",ex,e_),ej("gg",ex,e_),ej("GGGG",eA,eS),ej("gggg",eA,eS),ej("GGGGG",eL,ek),ej("ggggg",eL,ek),e$(["gggg","ggggg","GGGG","GGGGG"],function(e,t,n,r){t[r.substr(0,2)]=el(e)}),e$(["gg","GG"],function(e,n,r,i){n[i]=t.parseTwoDigitYear(e)}),B("Q",0,"Qo","quarter"),en("quarter","Q"),eo("quarter",7),ej("Q",ew),eH("Q",function(e,t){t[eW]=(el(e)-1)*3}),B("D",["DD",2],"Do","date"),en("date","D"),eo("date",9),ej("D",ex),ej("DD",ex,e_),ej("Do",function(e,t){return e?t._dayOfMonthOrdinalParse||t._ordinalParse:t._dayOfMonthOrdinalParseLenient}),eH(["D","DD"],eK),eH("Do",function(e,t){t[eK]=el(e.match(ex)[0])});var im=ef("Date",!0);function ig(e){var t=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==e?t:this.add(e-t,"d")}B("DDD",["DDDD",3],"DDDo","dayOfYear"),en("dayOfYear","DDD"),eo("dayOfYear",4),ej("DDD",eO),ej("DDDD",eE),eH(["DDD","DDDD"],function(e,t,n){n._dayOfYear=el(e)}),B("m",["mm",2],0,"minute"),en("minute","m"),eo("minute",14),ej("m",ex),ej("mm",ex,e_),eH(["m","mm"],eq);var iv=ef("Minutes",!1);B("s",["ss",2],0,"second"),en("second","s"),eo("second",15),ej("s",ex),ej("ss",ex,e_),eH(["s","ss"],eZ);var iy=ef("Seconds",!1);for(B("S",0,0,function(){return~~(this.millisecond()/100)}),B(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),B(0,["SSS",3],0,"millisecond"),B(0,["SSSS",4],0,function(){return 10*this.millisecond()}),B(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),B(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),B(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),B(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),B(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),en("millisecond","ms"),eo("millisecond",16),ej("S",eO,ew),ej("SS",eO,e_),ej("SSS",eO,eE),v="SSSS";v.length<=9;v+="S")ej(v,eC);function iw(e,t){t[eX]=el(("0."+e)*1e3)}for(v="S";v.length<=9;v+="S")eH(v,iw);function i_(){return this._isUTC?"UTC":""}function iE(){return this._isUTC?"Coordinated Universal Time":""}y=ef("Milliseconds",!1),B("z",0,0,"zoneAbbr"),B("zz",0,0,"zoneName");var iS=S.prototype;function ik(e){return nL(1e3*e)}function ix(){return nL.apply(null,arguments).parseZone()}function iT(e){return e}iS.add=ra,iS.calendar=rh,iS.clone=rp,iS.diff=r_,iS.endOf=rH,iS.format=rT,iS.from=rM,iS.fromNow=rO,iS.to=rA,iS.toNow=rL,iS.get=ep,iS.invalidAt=rX,iS.isAfter=rb,iS.isBefore=rm,iS.isBetween=rg,iS.isSame=rv,iS.isSameOrAfter=ry,iS.isSameOrBefore=rw,iS.isValid=rq,iS.lang=rI,iS.locale=rC,iS.localeData=rD,iS.max=nI,iS.min=nC,iS.parsingFlags=rZ,iS.set=eb,iS.startOf=rU,iS.subtract=ro,iS.toArray=rW,iS.toObject=rK,iS.toDate=rG,iS.toISOString=rk,iS.inspect=rx,"undefined"!=typeof Symbol&&null!=Symbol.for&&(iS[Symbol.for("nodejs.util.inspect.custom")]=function(){return"Moment<"+this.format()+">"}),iS.toJSON=rV,iS.toString=rS,iS.unix=rz,iS.valueOf=r$,iS.creationData=rJ,iS.eraName=r2,iS.eraNarrow=r3,iS.eraAbbr=r4,iS.eraYear=r5,iS.year=tu,iS.isLeapYear=tc,iS.weekYear=io,iS.isoWeekYear=is,iS.quarter=iS.quarters=ib,iS.month=tn,iS.daysInMonth=tr,iS.week=iS.weeks=tw,iS.isoWeek=iS.isoWeeks=t_,iS.weeksInYear=il,iS.weeksInWeekYear=id,iS.isoWeeksInYear=iu,iS.isoWeeksInISOWeekYear=ic,iS.date=im,iS.day=iS.days=tR,iS.weekday=tj,iS.isoWeekday=tF,iS.dayOfYear=ig,iS.hour=iS.hours=tq,iS.minute=iS.minutes=iv,iS.second=iS.seconds=iy,iS.millisecond=iS.milliseconds=y,iS.utcOffset=nZ,iS.utc=nJ,iS.local=nQ,iS.parseZone=n1,iS.hasAlignedHourOffset=n0,iS.isDST=n2,iS.isLocal=n4,iS.isUtcOffset=n5,iS.isUtc=n6,iS.isUTC=n6,iS.zoneAbbr=i_,iS.zoneName=iE,iS.dates=T("dates accessor is deprecated. Use date instead.",im),iS.months=T("months accessor is deprecated. Use month instead",tn),iS.years=T("years accessor is deprecated. Use year instead",tu),iS.zone=T("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",nX),iS.isDSTShifted=T("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",n3);var iM=I.prototype;function iO(e,t,n,r){var i=t7(),a=h().set(r,t);return i[n](a,e)}function iA(e,t,n){if(c(e)&&(t=e,e=void 0),e=e||"",null!=t)return iO(e,t,n,"month");var r,i=[];for(r=0;r<12;r++)i[r]=iO(e,r,n,"month");return i}function iL(e,t,n,r){"boolean"==typeof e?(c(t)&&(n=t,t=void 0),t=t||""):(n=t=e,e=!1,c(t)&&(n=t,t=void 0),t=t||"");var i,a=t7(),o=e?a._week.dow:0,s=[];if(null!=n)return iO(t,(n+o)%7,r,"day");for(i=0;i<7;i++)s[i]=iO(t,(i+o)%7,r,"day");return s}function iC(e,t){return iA(e,t,"months")}function iI(e,t){return iA(e,t,"monthsShort")}function iD(e,t,n){return iL(e,t,n,"weekdays")}function iN(e,t,n){return iL(e,t,n,"weekdaysShort")}function iP(e,t,n){return iL(e,t,n,"weekdaysMin")}iM.calendar=N,iM.longDateFormat=W,iM.invalidDate=V,iM.ordinal=X,iM.preparse=iT,iM.postformat=iT,iM.relativeTime=Q,iM.pastFuture=ee,iM.set=L,iM.eras=rQ,iM.erasParse=r1,iM.erasConvertYear=r0,iM.erasAbbrRegex=r9,iM.erasNameRegex=r6,iM.erasNarrowRegex=r8,iM.months=e9,iM.monthsShort=e8,iM.monthsParse=te,iM.monthsRegex=ta,iM.monthsShortRegex=ti,iM.week=tm,iM.firstDayOfYear=ty,iM.firstDayOfWeek=tv,iM.weekdays=tC,iM.weekdaysMin=tD,iM.weekdaysShort=tI,iM.weekdaysParse=tP,iM.weekdaysRegex=tY,iM.weekdaysShortRegex=tB,iM.weekdaysMinRegex=tU,iM.isPM=tK,iM.meridiem=tZ,t6("en",{eras:[{since:"0001-01-01",until:Infinity,offset:1,name:"Anno Domini",narrow:"AD",abbr:"AD"},{since:"0000-12-31",until:-1/0,offset:1,name:"Before Christ",narrow:"BC",abbr:"BC"},],dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10,n=1===el(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th";return e+n}}),t.lang=T("moment.lang is deprecated. Use moment.locale instead.",t6),t.langData=T("moment.langData is deprecated. Use moment.localeData instead.",t7);var iR=Math.abs;function ij(){var e=this._data;return this._milliseconds=iR(this._milliseconds),this._days=iR(this._days),this._months=iR(this._months),e.milliseconds=iR(e.milliseconds),e.seconds=iR(e.seconds),e.minutes=iR(e.minutes),e.hours=iR(e.hours),e.months=iR(e.months),e.years=iR(e.years),this}function iF(e,t,n,r){var i=n7(t,n);return e._milliseconds+=r*i._milliseconds,e._days+=r*i._days,e._months+=r*i._months,e._bubble()}function iY(e,t){return iF(this,e,t,1)}function iB(e,t){return iF(this,e,t,-1)}function iU(e){return e<0?Math.floor(e):Math.ceil(e)}function iH(){var e,t,n,r,i,a=this._milliseconds,o=this._days,s=this._months,u=this._data;return a>=0&&o>=0&&s>=0||a<=0&&o<=0&&s<=0||(a+=864e5*iU(iz(s)+o),o=0,s=0),u.milliseconds=a%1e3,e=ec(a/1e3),u.seconds=e%60,t=ec(e/60),u.minutes=t%60,n=ec(t/60),u.hours=n%24,o+=ec(n/24),s+=i=ec(i$(o)),o-=iU(iz(i)),r=ec(s/12),s%=12,u.days=o,u.months=s,u.years=r,this}function i$(e){return 4800*e/146097}function iz(e){return 146097*e/4800}function iG(e){if(!this.isValid())return NaN;var t,n,r=this._milliseconds;if("month"===(e=er(e))||"quarter"===e||"year"===e)switch(t=this._days+r/864e5,n=this._months+i$(t),e){case"month":return n;case"quarter":return n/3;case"year":return n/12}else switch(t=this._days+Math.round(iz(this._months)),e){case"week":return t/7+r/6048e5;case"day":return t+r/864e5;case"hour":return 24*t+r/36e5;case"minute":return 1440*t+r/6e4;case"second":return 86400*t+r/1e3;case"millisecond":return Math.floor(864e5*t)+r;default:throw Error("Unknown unit "+e)}}function iW(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*el(this._months/12):NaN}function iK(e){return function(){return this.as(e)}}var iV=iK("ms"),iq=iK("s"),iZ=iK("m"),iX=iK("h"),iJ=iK("d"),iQ=iK("w"),i1=iK("M"),i0=iK("Q"),i2=iK("y");function i3(){return n7(this)}function i4(e){return e=er(e),this.isValid()?this[e+"s"]():NaN}function i5(e){return function(){return this.isValid()?this._data[e]:NaN}}var i6=i5("milliseconds"),i9=i5("seconds"),i8=i5("minutes"),i7=i5("hours"),ae=i5("days"),at=i5("months"),an=i5("years");function ar(){return ec(this.days()/7)}var ai=Math.round,aa={ss:44,s:45,m:45,h:22,d:26,w:null,M:11};function ao(e,t,n,r,i){return i.relativeTime(t||1,!!n,e,r)}function as(e,t,n,r){var i=n7(e).abs(),a=ai(i.as("s")),o=ai(i.as("m")),s=ai(i.as("h")),u=ai(i.as("d")),c=ai(i.as("M")),l=ai(i.as("w")),f=ai(i.as("y")),d=a<=n.ss&&["s",a]||a0,d[4]=r,ao.apply(null,d)}function au(e){return void 0===e?ai:"function"==typeof e&&(ai=e,!0)}function ac(e,t){return void 0!==aa[e]&&(void 0===t?aa[e]:(aa[e]=t,"s"===e&&(aa.ss=t-1),!0))}function al(e,t){if(!this.isValid())return this.localeData().invalidDate();var n,r,i=!1,a=aa;return"object"==typeof e&&(t=e,e=!1),"boolean"==typeof e&&(i=e),"object"==typeof t&&(a=Object.assign({},aa,t),null!=t.s&&null==t.ss&&(a.ss=t.s-1)),r=as(this,!i,a,n=this.localeData()),i&&(r=n.pastFuture(+this,r)),n.postformat(r)}var af=Math.abs;function ad(e){return(e>0)-(e<0)||+e}function ah(){if(!this.isValid())return this.localeData().invalidDate();var e,t,n,r,i,a,o,s,u=af(this._milliseconds)/1e3,c=af(this._days),l=af(this._months),f=this.asSeconds();return f?(e=ec(u/60),t=ec(e/60),u%=60,e%=60,n=ec(l/12),l%=12,r=u?u.toFixed(3).replace(/\.?0+$/,""):"",i=f<0?"-":"",a=ad(this._months)!==ad(f)?"-":"",o=ad(this._days)!==ad(f)?"-":"",s=ad(this._milliseconds)!==ad(f)?"-":"",i+"P"+(n?a+n+"Y":"")+(l?a+l+"M":"")+(c?o+c+"D":"")+(t||e||u?"T":"")+(t?s+t+"H":"")+(e?s+e+"M":"")+(u?s+r+"S":"")):"P0D"}var ap=nU.prototype;return ap.isValid=nY,ap.abs=ij,ap.add=iY,ap.subtract=iB,ap.as=iG,ap.asMilliseconds=iV,ap.asSeconds=iq,ap.asMinutes=iZ,ap.asHours=iX,ap.asDays=iJ,ap.asWeeks=iQ,ap.asMonths=i1,ap.asQuarters=i0,ap.asYears=i2,ap.valueOf=iW,ap._bubble=iH,ap.clone=i3,ap.get=i4,ap.milliseconds=i6,ap.seconds=i9,ap.minutes=i8,ap.hours=i7,ap.days=ae,ap.weeks=ar,ap.months=at,ap.years=an,ap.humanize=al,ap.toISOString=ah,ap.toString=ah,ap.toJSON=ah,ap.locale=rC,ap.localeData=rD,ap.toIsoString=T("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",ah),ap.lang=rI,B("X",0,0,"unix"),B("x",0,0,"valueOf"),ej("x",eI),ej("X",eP),eH("X",function(e,t,n){n._d=new Date(1e3*parseFloat(e))}),eH("x",function(e,t,n){n._d=new Date(el(e))}),//! moment.js -t.version="2.29.1",r(nL),t.fn=iS,t.min=nN,t.max=nP,t.now=nR,t.utc=h,t.unix=ik,t.months=iC,t.isDate=l,t.locale=t6,t.invalid=g,t.duration=n7,t.isMoment=k,t.weekdays=iD,t.parseZone=ix,t.localeData=t7,t.isDuration=nH,t.monthsShort=iI,t.weekdaysMin=iP,t.defineLocale=t9,t.updateLocale=t8,t.locales=ne,t.weekdaysShort=iN,t.normalizeUnits=er,t.relativeTimeRounding=au,t.relativeTimeThreshold=ac,t.calendarFormat=rd,t.prototype=iS,t.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"},t},e.exports=i()},46417(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n,r=!!("undefined"!=typeof window&&window.document&&window.document.createElement);function i(e){n=e}function a(){if(n)return n;if(!r||!window.document.body)return"indeterminate";var e=window.document.createElement("div");return e.appendChild(document.createTextNode("ABCD")),e.dir="rtl",e.style.fontSize="14px",e.style.width="4px",e.style.height="1px",e.style.position="absolute",e.style.top="-1000px",e.style.overflow="scroll",document.body.appendChild(e),n="reverse",e.scrollLeft>0?n="default":(e.scrollLeft=1,0===e.scrollLeft&&(n="negative")),document.body.removeChild(e),n}function o(e,t){var n=e.scrollLeft;if("rtl"!==t)return n;var r=a();if("indeterminate"===r)return Number.NaN;switch(r){case"negative":return e.scrollWidth-e.clientWidth+n;case"reverse":return e.scrollWidth-e.clientWidth-n}return n}function s(e,t,n){if("rtl"!==n){e.scrollLeft=t;return}var r=a();if("indeterminate"!==r)switch(r){case"negative":e.scrollLeft=e.clientWidth-e.scrollWidth+t;break;case"reverse":e.scrollLeft=e.scrollWidth-e.clientWidth-t;break;default:e.scrollLeft=t}}t._setScrollType=i,t.detectScrollType=a,t.getNormalizedScrollLeft=o,t.setNormalizedScrollLeft=s},27418(e){"use strict";/* +var t=["جنوری","فروری","مارچ","اپریل","مئی","جون","جولائی","اگست","ستمبر","اکتوبر","نومبر","دسمبر",],n=["اتوار","پیر","منگل","بدھ","جمعرات","جمعہ","ہفتہ"];return e.defineLocale("ur",{months:t,monthsShort:t,weekdays:n,weekdaysShort:n,weekdaysMin:n,longDateFormat:{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"},meridiemParse:/صبح|شام/,isPM:function(e){return"شام"===e},meridiem:function(e,t,n){return e<12?"صبح":"شام"},calendar:{sameDay:"[آج بوقت] LT",nextDay:"[کل بوقت] LT",nextWeek:"dddd [بوقت] LT",lastDay:"[گذشتہ روز بوقت] LT",lastWeek:"[گذشتہ] dddd [بوقت] LT",sameElse:"L"},relativeTime:{future:"%s بعد",past:"%s قبل",s:"چند سیکنڈ",ss:"%d سیکنڈ",m:"ایک منٹ",mm:"%d منٹ",h:"ایک گھنٹہ",hh:"%d گھنٹے",d:"ایک دن",dd:"%d دن",M:"ایک ماہ",MM:"%d ماہ",y:"ایک سال",yy:"%d سال"},preparse:function(e){return e.replace(/،/g,",")},postformat:function(e){return e.replace(/,/g,"،")},week:{dow:1,doy:4}})})(n(30381))},60588:function(e,t,n){var r,i;r=this,(i=function(e){return e.defineLocale("uz-latn",{months:"Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr".split("_"),monthsShort:"Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek".split("_"),weekdays:"Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba".split("_"),weekdaysShort:"Yak_Dush_Sesh_Chor_Pay_Jum_Shan".split("_"),weekdaysMin:"Ya_Du_Se_Cho_Pa_Ju_Sha".split("_"),longDateFormat:{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"},calendar:{sameDay:"[Bugun soat] LT [da]",nextDay:"[Ertaga] LT [da]",nextWeek:"dddd [kuni soat] LT [da]",lastDay:"[Kecha soat] LT [da]",lastWeek:"[O'tgan] dddd [kuni soat] LT [da]",sameElse:"L"},relativeTime:{future:"Yaqin %s ichida",past:"Bir necha %s oldin",s:"soniya",ss:"%d 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"},week:{dow:1,doy:7}})})(n(30381))},6791:function(e,t,n){var r,i;r=this,(i=function(e){return e.defineLocale("uz",{months:"январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр".split("_"),monthsShort:"янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек".split("_"),weekdays:"Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба".split("_"),weekdaysShort:"Якш_Душ_Сеш_Чор_Пай_Жум_Шан".split("_"),weekdaysMin:"Як_Ду_Се_Чо_Па_Жу_Ша".split("_"),longDateFormat:{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"},calendar:{sameDay:"[Бугун соат] LT [да]",nextDay:"[Эртага] LT [да]",nextWeek:"dddd [куни соат] LT [да]",lastDay:"[Кеча соат] LT [да]",lastWeek:"[Утган] dddd [куни соат] LT [да]",sameElse:"L"},relativeTime:{future:"Якин %s ичида",past:"Бир неча %s олдин",s:"фурсат",ss:"%d фурсат",m:"бир дакика",mm:"%d дакика",h:"бир соат",hh:"%d соат",d:"бир кун",dd:"%d кун",M:"бир ой",MM:"%d ой",y:"бир йил",yy:"%d йил"},week:{dow:1,doy:7}})})(n(30381))},65666:function(e,t,n){var r,i;r=this,(i=function(e){return e.defineLocale("vi",{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("_"),monthsShort:"Thg 01_Thg 02_Thg 03_Thg 04_Thg 05_Thg 06_Thg 07_Thg 08_Thg 09_Thg 10_Thg 11_Thg 12".split("_"),monthsParseExact:!0,weekdays:"chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ s\xe1u_thứ bảy".split("_"),weekdaysShort:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysMin:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysParseExact:!0,meridiemParse:/sa|ch/i,isPM:function(e){return/^ch$/i.test(e)},meridiem:function(e,t,n){return e<12?n?"sa":"SA":n?"ch":"CH"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [năm] YYYY",LLL:"D MMMM [năm] YYYY HH:mm",LLLL:"dddd, D MMMM [năm] YYYY HH:mm",l:"DD/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[H\xf4m nay l\xfac] LT",nextDay:"[Ng\xe0y mai l\xfac] LT",nextWeek:"dddd [tuần tới l\xfac] LT",lastDay:"[H\xf4m qua l\xfac] LT",lastWeek:"dddd [tuần trước l\xfac] LT",sameElse:"L"},relativeTime:{future:"%s tới",past:"%s trước",s:"v\xe0i gi\xe2y",ss:"%d gi\xe2y",m:"một ph\xfat",mm:"%d ph\xfat",h:"một giờ",hh:"%d giờ",d:"một ng\xe0y",dd:"%d ng\xe0y",w:"một tuần",ww:"%d tuần",M:"một th\xe1ng",MM:"%d th\xe1ng",y:"một năm",yy:"%d năm"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(e){return e},week:{dow:1,doy:4}})})(n(30381))},14378:function(e,t,n){var r,i;r=this,(i=function(e){return e.defineLocale("x-pseudo",{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("_"),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("_"),monthsParseExact:!0,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("_"),weekdaysShort:"S~\xfa\xf1_~M\xf3\xf1_~T\xfa\xe9_~W\xe9d_~Th\xfa_~Fr\xed_~S\xe1t".split("_"),weekdaysMin:"S~\xfa_M\xf3~_T\xfa_~W\xe9_T~h_Fr~_S\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[T~\xf3d\xe1~\xfd \xe1t] LT",nextDay:"[T~\xf3m\xf3~rr\xf3~w \xe1t] LT",nextWeek:"dddd [\xe1t] LT",lastDay:"[\xdd~\xe9st~\xe9rd\xe1~\xfd \xe1t] LT",lastWeek:"[L~\xe1st] dddd [\xe1t] LT",sameElse:"L"},relativeTime:{future:"\xed~\xf1 %s",past:"%s \xe1~g\xf3",s:"\xe1 ~f\xe9w ~s\xe9c\xf3~\xf1ds",ss:"%d s~\xe9c\xf3\xf1~ds",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"},dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10,n=1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th";return e+n},week:{dow:1,doy:4}})})(n(30381))},75805:function(e,t,n){var r,i;r=this,(i=function(e){return e.defineLocale("yo",{months:"Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀".split("_"),monthsShort:"Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀".split("_"),weekdays:"Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta".split("_"),weekdaysShort:"Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá".split("_"),weekdaysMin:"Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb".split("_"),longDateFormat:{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"},calendar:{sameDay:"[Ònì ni] LT",nextDay:"[Ọ̀la ni] LT",nextWeek:"dddd [Ọsẹ̀ tón'bọ] [ni] LT",lastDay:"[Àna ni] LT",lastWeek:"dddd [Ọsẹ̀ tólọ́] [ni] LT",sameElse:"L"},relativeTime:{future:"ní %s",past:"%s kọjá",s:"ìsẹjú aayá die",ss:"aayá %d",m:"ìsẹjú kan",mm:"ìsẹjú %d",h:"wákati kan",hh:"wákati %d",d:"ọjọ́ kan",dd:"ọjọ́ %d",M:"osù kan",MM:"osù %d",y:"ọdún kan",yy:"ọdún %d"},dayOfMonthOrdinalParse:/ọjọ́\s\d{1,2}/,ordinal:"ọjọ́ %d",week:{dow:1,doy:4}})})(n(30381))},83839:function(e,t,n){var r,i;r=this,(i=function(e){return e.defineLocale("zh-cn",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"周日_周一_周二_周三_周四_周五_周六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日Ah点mm分",LLLL:"YYYY年M月D日ddddAh点mm分",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(e,t){return(12===e&&(e=0),"凌晨"===t||"早上"===t||"上午"===t)?e:"下午"===t||"晚上"===t?e+12:e>=11?e:e+12},meridiem:function(e,t,n){var r=100*e+t;if(r<600)return"凌晨";if(r<900)return"早上";if(r<1130)return"上午";if(r<1230)return"中午";if(r<1800)return"下午";else return"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:function(e){return e.week()!==this.week()?"[下]dddLT":"[本]dddLT"},lastDay:"[昨天]LT",lastWeek:function(e){return this.week()!==e.week()?"[上]dddLT":"[本]dddLT"},sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|周)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"日";case"M":return e+"月";case"w":case"W":return e+"周";default:return e}},relativeTime:{future:"%s后",past:"%s前",s:"几秒",ss:"%d 秒",m:"1 分钟",mm:"%d 分钟",h:"1 小时",hh:"%d 小时",d:"1 天",dd:"%d 天",w:"1 周",ww:"%d 周",M:"1 个月",MM:"%d 个月",y:"1 年",yy:"%d 年"},week:{dow:1,doy:4}})})(n(30381))},55726:function(e,t,n){var r,i;r=this,(i=function(e){return e.defineLocale("zh-hk",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"週日_週一_週二_週三_週四_週五_週六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日dddd HH:mm",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(e,t){return(12===e&&(e=0),"凌晨"===t||"早上"===t||"上午"===t)?e:"中午"===t?e>=11?e:e+12:"下午"===t||"晚上"===t?e+12:void 0},meridiem:function(e,t,n){var r=100*e+t;if(r<600)return"凌晨";if(r<900)return"早上";if(r<1200)return"上午";if(1200===r)return"中午";if(r<1800)return"下午";else return"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:"[下]ddddLT",lastDay:"[昨天]LT",lastWeek:"[上]ddddLT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|週)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"日";case"M":return e+"月";case"w":case"W":return e+"週";default:return e}},relativeTime:{future:"%s後",past:"%s前",s:"幾秒",ss:"%d 秒",m:"1 分鐘",mm:"%d 分鐘",h:"1 小時",hh:"%d 小時",d:"1 天",dd:"%d 天",M:"1 個月",MM:"%d 個月",y:"1 年",yy:"%d 年"}})})(n(30381))},99807:function(e,t,n){var r,i;r=this,(i=function(e){return e.defineLocale("zh-mo",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"週日_週一_週二_週三_週四_週五_週六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日dddd HH:mm",l:"D/M/YYYY",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(e,t){return(12===e&&(e=0),"凌晨"===t||"早上"===t||"上午"===t)?e:"中午"===t?e>=11?e:e+12:"下午"===t||"晚上"===t?e+12:void 0},meridiem:function(e,t,n){var r=100*e+t;if(r<600)return"凌晨";if(r<900)return"早上";if(r<1130)return"上午";if(r<1230)return"中午";if(r<1800)return"下午";else return"晚上"},calendar:{sameDay:"[今天] LT",nextDay:"[明天] LT",nextWeek:"[下]dddd LT",lastDay:"[昨天] LT",lastWeek:"[上]dddd LT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|週)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"日";case"M":return e+"月";case"w":case"W":return e+"週";default:return e}},relativeTime:{future:"%s內",past:"%s前",s:"幾秒",ss:"%d 秒",m:"1 分鐘",mm:"%d 分鐘",h:"1 小時",hh:"%d 小時",d:"1 天",dd:"%d 天",M:"1 個月",MM:"%d 個月",y:"1 年",yy:"%d 年"}})})(n(30381))},74152:function(e,t,n){var r,i;r=this,(i=function(e){return e.defineLocale("zh-tw",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"週日_週一_週二_週三_週四_週五_週六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日dddd HH:mm",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(e,t){return(12===e&&(e=0),"凌晨"===t||"早上"===t||"上午"===t)?e:"中午"===t?e>=11?e:e+12:"下午"===t||"晚上"===t?e+12:void 0},meridiem:function(e,t,n){var r=100*e+t;if(r<600)return"凌晨";if(r<900)return"早上";if(r<1130)return"上午";if(r<1230)return"中午";if(r<1800)return"下午";else return"晚上"},calendar:{sameDay:"[今天] LT",nextDay:"[明天] LT",nextWeek:"[下]dddd LT",lastDay:"[昨天] LT",lastWeek:"[上]dddd LT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|週)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"日";case"M":return e+"月";case"w":case"W":return e+"週";default:return e}},relativeTime:{future:"%s後",past:"%s前",s:"幾秒",ss:"%d 秒",m:"1 分鐘",mm:"%d 分鐘",h:"1 小時",hh:"%d 小時",d:"1 天",dd:"%d 天",M:"1 個月",MM:"%d 個月",y:"1 年",yy:"%d 年"}})})(n(30381))},46700(e,t,n){var r={"./af":42786,"./af.js":42786,"./ar":30867,"./ar-dz":14130,"./ar-dz.js":14130,"./ar-kw":96135,"./ar-kw.js":96135,"./ar-ly":56440,"./ar-ly.js":56440,"./ar-ma":47702,"./ar-ma.js":47702,"./ar-sa":16040,"./ar-sa.js":16040,"./ar-tn":37100,"./ar-tn.js":37100,"./ar.js":30867,"./az":31083,"./az.js":31083,"./be":9808,"./be.js":9808,"./bg":68338,"./bg.js":68338,"./bm":67438,"./bm.js":67438,"./bn":8905,"./bn-bd":76225,"./bn-bd.js":76225,"./bn.js":8905,"./bo":11560,"./bo.js":11560,"./br":1278,"./br.js":1278,"./bs":80622,"./bs.js":80622,"./ca":2468,"./ca.js":2468,"./cs":5822,"./cs.js":5822,"./cv":50877,"./cv.js":50877,"./cy":47373,"./cy.js":47373,"./da":24780,"./da.js":24780,"./de":59740,"./de-at":60217,"./de-at.js":60217,"./de-ch":60894,"./de-ch.js":60894,"./de.js":59740,"./dv":5300,"./dv.js":5300,"./el":50837,"./el.js":50837,"./en-au":78348,"./en-au.js":78348,"./en-ca":77925,"./en-ca.js":77925,"./en-gb":22243,"./en-gb.js":22243,"./en-ie":46436,"./en-ie.js":46436,"./en-il":47207,"./en-il.js":47207,"./en-in":44175,"./en-in.js":44175,"./en-nz":76319,"./en-nz.js":76319,"./en-sg":31662,"./en-sg.js":31662,"./eo":92915,"./eo.js":92915,"./es":55655,"./es-do":55251,"./es-do.js":55251,"./es-mx":96112,"./es-mx.js":96112,"./es-us":71146,"./es-us.js":71146,"./es.js":55655,"./et":5603,"./et.js":5603,"./eu":77763,"./eu.js":77763,"./fa":76959,"./fa.js":76959,"./fi":11897,"./fi.js":11897,"./fil":42549,"./fil.js":42549,"./fo":94694,"./fo.js":94694,"./fr":94470,"./fr-ca":63049,"./fr-ca.js":63049,"./fr-ch":52330,"./fr-ch.js":52330,"./fr.js":94470,"./fy":5044,"./fy.js":5044,"./ga":29295,"./ga.js":29295,"./gd":2101,"./gd.js":2101,"./gl":38794,"./gl.js":38794,"./gom-deva":27884,"./gom-deva.js":27884,"./gom-latn":23168,"./gom-latn.js":23168,"./gu":95349,"./gu.js":95349,"./he":24206,"./he.js":24206,"./hi":30094,"./hi.js":30094,"./hr":30316,"./hr.js":30316,"./hu":22138,"./hu.js":22138,"./hy-am":11423,"./hy-am.js":11423,"./id":29218,"./id.js":29218,"./is":90135,"./is.js":90135,"./it":90626,"./it-ch":10150,"./it-ch.js":10150,"./it.js":90626,"./ja":39183,"./ja.js":39183,"./jv":24286,"./jv.js":24286,"./ka":12105,"./ka.js":12105,"./kk":47772,"./kk.js":47772,"./km":18758,"./km.js":18758,"./kn":79282,"./kn.js":79282,"./ko":33730,"./ko.js":33730,"./ku":1408,"./ku.js":1408,"./ky":33291,"./ky.js":33291,"./lb":36841,"./lb.js":36841,"./lo":55466,"./lo.js":55466,"./lt":57010,"./lt.js":57010,"./lv":37595,"./lv.js":37595,"./me":39861,"./me.js":39861,"./mi":35493,"./mi.js":35493,"./mk":95966,"./mk.js":95966,"./ml":87341,"./ml.js":87341,"./mn":5115,"./mn.js":5115,"./mr":10370,"./mr.js":10370,"./ms":9847,"./ms-my":41237,"./ms-my.js":41237,"./ms.js":9847,"./mt":72126,"./mt.js":72126,"./my":56165,"./my.js":56165,"./nb":64924,"./nb.js":64924,"./ne":16744,"./ne.js":16744,"./nl":93901,"./nl-be":59814,"./nl-be.js":59814,"./nl.js":93901,"./nn":83877,"./nn.js":83877,"./oc-lnc":92135,"./oc-lnc.js":92135,"./pa-in":15858,"./pa-in.js":15858,"./pl":64495,"./pl.js":64495,"./pt":89520,"./pt-br":57971,"./pt-br.js":57971,"./pt.js":89520,"./ro":96459,"./ro.js":96459,"./ru":21793,"./ru.js":21793,"./sd":40950,"./sd.js":40950,"./se":10490,"./se.js":10490,"./si":90124,"./si.js":90124,"./sk":64249,"./sk.js":64249,"./sl":14985,"./sl.js":14985,"./sq":51104,"./sq.js":51104,"./sr":49131,"./sr-cyrl":79915,"./sr-cyrl.js":79915,"./sr.js":49131,"./ss":85893,"./ss.js":85893,"./sv":98760,"./sv.js":98760,"./sw":91172,"./sw.js":91172,"./ta":27333,"./ta.js":27333,"./te":23110,"./te.js":23110,"./tet":52095,"./tet.js":52095,"./tg":27321,"./tg.js":27321,"./th":9041,"./th.js":9041,"./tk":19005,"./tk.js":19005,"./tl-ph":75768,"./tl-ph.js":75768,"./tlh":89444,"./tlh.js":89444,"./tr":72397,"./tr.js":72397,"./tzl":28254,"./tzl.js":28254,"./tzm":51106,"./tzm-latn":30699,"./tzm-latn.js":30699,"./tzm.js":51106,"./ug-cn":9288,"./ug-cn.js":9288,"./uk":67691,"./uk.js":67691,"./ur":13795,"./ur.js":13795,"./uz":6791,"./uz-latn":60588,"./uz-latn.js":60588,"./uz.js":6791,"./vi":65666,"./vi.js":65666,"./x-pseudo":14378,"./x-pseudo.js":14378,"./yo":75805,"./yo.js":75805,"./zh-cn":83839,"./zh-cn.js":83839,"./zh-hk":55726,"./zh-hk.js":55726,"./zh-mo":99807,"./zh-mo.js":99807,"./zh-tw":74152,"./zh-tw.js":74152};function i(e){return n(a(e))}function a(e){if(!n.o(r,e)){var t=Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}i.keys=function(){return Object.keys(r)},i.resolve=a,e.exports=i,i.id=46700},30381:function(e,t,n){var r,i;e=n.nmd(e),r=this,i=function(){"use strict";function t(){return em.apply(null,arguments)}function r(e){em=e}function i(e){return e instanceof Array||"[object Array]"===Object.prototype.toString.call(e)}function a(e){return null!=e&&"[object Object]"===Object.prototype.toString.call(e)}function o(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function s(e){var t;if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(e).length;for(t in e)if(o(e,t))return!1;return!0}function u(e){return void 0===e}function c(e){return"number"==typeof e||"[object Number]"===Object.prototype.toString.call(e)}function l(e){return e instanceof Date||"[object Date]"===Object.prototype.toString.call(e)}function f(e,t){var n,r=[];for(n=0;n>>0;for(t=0;t0)for(n=0;n=0?n?"+":"":"-")+Math.pow(10,Math.max(0,t-i.length)).toString().substr(1)+i}var R=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,j=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,F={},Y={};function B(e,t,n,r){var i=r;"string"==typeof r&&(i=function(){return this[r]()}),e&&(Y[e]=i),t&&(Y[t[0]]=function(){return P(i.apply(this,arguments),t[1],t[2])}),n&&(Y[n]=function(){return this.localeData().ordinal(i.apply(this,arguments),e)})}function U(e){return e.match(/\[[\s\S]/)?e.replace(/^\[|\]$/g,""):e.replace(/\\/g,"")}function H(e){var t,n,r=e.match(R);for(t=0,n=r.length;t=0&&j.test(e);)e=e.replace(j,r),j.lastIndex=0,n-=1;return e}var G={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"};function W(e){var t=this._longDateFormat[e],n=this._longDateFormat[e.toUpperCase()];return t||!n?t:(this._longDateFormat[e]=n.match(R).map(function(e){return"MMMM"===e||"MM"===e||"DD"===e||"dddd"===e?e.slice(1):e}).join(""),this._longDateFormat[e])}var K="Invalid date";function V(){return this._invalidDate}var q="%d",Z=/\d{1,2}/;function X(e){return this._ordinal.replace("%d",e)}var J={future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",w:"a week",ww:"%d weeks",M:"a month",MM:"%d months",y:"a year",yy:"%d years"};function Q(e,t,n,r){var i=this._relativeTime[n];return A(i)?i(e,t,n,r):i.replace(/%d/i,e)}function ee(e,t){var n=this._relativeTime[e>0?"future":"past"];return A(n)?n(t):n.replace(/%s/i,t)}var et={};function en(e,t){var n=e.toLowerCase();et[n]=et[n+"s"]=et[t]=e}function er(e){return"string"==typeof e?et[e]||et[e.toLowerCase()]:void 0}function ei(e){var t,n,r={};for(n in e)o(e,n)&&(t=er(n))&&(r[t]=e[n]);return r}var ea={};function eo(e,t){ea[e]=t}function es(e){var t,n=[];for(t in e)o(e,t)&&n.push({unit:t,priority:ea[t]});return n.sort(function(e,t){return e.priority-t.priority}),n}function eu(e){return e%4==0&&e%100!=0||e%400==0}function ec(e){return e<0?Math.ceil(e)||0:Math.floor(e)}function el(e){var t=+e,n=0;return 0!==t&&isFinite(t)&&(n=ec(t)),n}function ef(e,n){return function(r){return null!=r?(eh(this,e,r),t.updateOffset(this,n),this):ed(this,e)}}function ed(e,t){return e.isValid()?e._d["get"+(e._isUTC?"UTC":"")+t]():NaN}function eh(e,t,n){e.isValid()&&!isNaN(n)&&("FullYear"===t&&eu(e.year())&&1===e.month()&&29===e.date()?(n=el(n),e._d["set"+(e._isUTC?"UTC":"")+t](n,e.month(),e0(n,e.month()))):e._d["set"+(e._isUTC?"UTC":"")+t](n))}function ep(e){return A(this[e=er(e)])?this[e]():this}function eb(e,t){if("object"==typeof e){e=ei(e);var n,r=es(e);for(n=0;n68?1900:2e3)};var tu=ef("FullYear",!0);function tc(){return eu(this.year())}function tl(e,t,n,r,i,a,o){var s;return e<100&&e>=0?(s=new Date(e+400,t,n,r,i,a,o),isFinite(s.getFullYear())&&s.setFullYear(e)):s=new Date(e,t,n,r,i,a,o),s}function tf(e){var t,n;return e<100&&e>=0?(n=Array.prototype.slice.call(arguments),n[0]=e+400,t=new Date(Date.UTC.apply(null,n)),isFinite(t.getUTCFullYear())&&t.setUTCFullYear(e)):t=new Date(Date.UTC.apply(null,arguments)),t}function td(e,t,n){var r=7+t-n;return-((7+tf(e,0,r).getUTCDay()-t)%7)+r-1}function th(e,t,n,r,i){var a,o,s=(7+n-r)%7,u=td(e,r,i),c=1+7*(t-1)+s+u;return c<=0?o=ts(a=e-1)+c:c>ts(e)?(a=e+1,o=c-ts(e)):(a=e,o=c),{year:a,dayOfYear:o}}function tp(e,t,n){var r,i,a=td(e.year(),t,n),o=Math.floor((e.dayOfYear()-a-1)/7)+1;return o<1?r=o+tb(i=e.year()-1,t,n):o>tb(e.year(),t,n)?(r=o-tb(e.year(),t,n),i=e.year()+1):(i=e.year(),r=o),{week:r,year:i}}function tb(e,t,n){var r=td(e,t,n),i=td(e+1,t,n);return(ts(e)-r+i)/7}function tm(e){return tp(e,this._week.dow,this._week.doy).week}B("w",["ww",2],"wo","week"),B("W",["WW",2],"Wo","isoWeek"),en("week","w"),en("isoWeek","W"),eo("week",5),eo("isoWeek",5),ej("w",ex),ej("ww",ex,e_),ej("W",ex),ej("WW",ex,e_),e$(["w","ww","W","WW"],function(e,t,n,r){t[r.substr(0,1)]=el(e)});var tg={dow:0,doy:6};function tv(){return this._week.dow}function ty(){return this._week.doy}function tw(e){var t=this.localeData().week(this);return null==e?t:this.add((e-t)*7,"d")}function t_(e){var t=tp(this,1,4).week;return null==e?t:this.add((e-t)*7,"d")}function tE(e,t){return"string"!=typeof e?e:isNaN(e)?"number"==typeof(e=t.weekdaysParse(e))?e:null:parseInt(e,10)}function tS(e,t){return"string"==typeof e?t.weekdaysParse(e)%7||7:isNaN(e)?null:e}function tk(e,t){return e.slice(t,7).concat(e.slice(0,t))}B("d",0,"do","day"),B("dd",0,0,function(e){return this.localeData().weekdaysMin(this,e)}),B("ddd",0,0,function(e){return this.localeData().weekdaysShort(this,e)}),B("dddd",0,0,function(e){return this.localeData().weekdays(this,e)}),B("e",0,0,"weekday"),B("E",0,0,"isoWeekday"),en("day","d"),en("weekday","e"),en("isoWeekday","E"),eo("day",11),eo("weekday",11),eo("isoWeekday",11),ej("d",ex),ej("e",ex),ej("E",ex),ej("dd",function(e,t){return t.weekdaysMinRegex(e)}),ej("ddd",function(e,t){return t.weekdaysShortRegex(e)}),ej("dddd",function(e,t){return t.weekdaysRegex(e)}),e$(["dd","ddd","dddd"],function(e,t,n,r){var i=n._locale.weekdaysParse(e,r,n._strict);null!=i?t.d=i:b(n).invalidWeekday=e}),e$(["d","e","E"],function(e,t,n,r){t[r]=el(e)});var tx="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),tT="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),tM="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),tO=eR,tA=eR,tL=eR;function tC(e,t){var n=i(this._weekdays)?this._weekdays:this._weekdays[e&&!0!==e&&this._weekdays.isFormat.test(t)?"format":"standalone"];return!0===e?tk(n,this._week.dow):e?n[e.day()]:n}function tI(e){return!0===e?tk(this._weekdaysShort,this._week.dow):e?this._weekdaysShort[e.day()]:this._weekdaysShort}function tD(e){return!0===e?tk(this._weekdaysMin,this._week.dow):e?this._weekdaysMin[e.day()]:this._weekdaysMin}function tN(e,t,n){var r,i,a,o=e.toLocaleLowerCase();if(!this._weekdaysParse)for(r=0,this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[];r<7;++r)a=h([2e3,1]).day(r),this._minWeekdaysParse[r]=this.weekdaysMin(a,"").toLocaleLowerCase(),this._shortWeekdaysParse[r]=this.weekdaysShort(a,"").toLocaleLowerCase(),this._weekdaysParse[r]=this.weekdays(a,"").toLocaleLowerCase();return n?"dddd"===t?-1!==(i=tX.call(this._weekdaysParse,o))?i:null:"ddd"===t?-1!==(i=tX.call(this._shortWeekdaysParse,o))?i:null:-1!==(i=tX.call(this._minWeekdaysParse,o))?i:null:"dddd"===t?-1!==(i=tX.call(this._weekdaysParse,o))||-1!==(i=tX.call(this._shortWeekdaysParse,o))?i:-1!==(i=tX.call(this._minWeekdaysParse,o))?i:null:"ddd"===t?-1!==(i=tX.call(this._shortWeekdaysParse,o))||-1!==(i=tX.call(this._weekdaysParse,o))?i:-1!==(i=tX.call(this._minWeekdaysParse,o))?i:null:-1!==(i=tX.call(this._minWeekdaysParse,o))||-1!==(i=tX.call(this._weekdaysParse,o))?i:-1!==(i=tX.call(this._shortWeekdaysParse,o))?i:null}function tP(e,t,n){var r,i,a;if(this._weekdaysParseExact)return tN.call(this,e,t,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),r=0;r<7;r++){if(i=h([2e3,1]).day(r),n&&!this._fullWeekdaysParse[r]&&(this._fullWeekdaysParse[r]=RegExp("^"+this.weekdays(i,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[r]=RegExp("^"+this.weekdaysShort(i,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[r]=RegExp("^"+this.weekdaysMin(i,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[r]||(a="^"+this.weekdays(i,"")+"|^"+this.weekdaysShort(i,"")+"|^"+this.weekdaysMin(i,""),this._weekdaysParse[r]=RegExp(a.replace(".",""),"i")),n&&"dddd"===t&&this._fullWeekdaysParse[r].test(e))return r;if(n&&"ddd"===t&&this._shortWeekdaysParse[r].test(e))return r;if(n&&"dd"===t&&this._minWeekdaysParse[r].test(e))return r;else if(!n&&this._weekdaysParse[r].test(e))return r}}function tR(e){if(!this.isValid())return null!=e?this:NaN;var t=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=e?(e=tE(e,this.localeData()),this.add(e-t,"d")):t}function tj(e){if(!this.isValid())return null!=e?this:NaN;var t=(this.day()+7-this.localeData()._week.dow)%7;return null==e?t:this.add(e-t,"d")}function tF(e){if(!this.isValid())return null!=e?this:NaN;if(null==e)return this.day()||7;var t=tS(e,this.localeData());return this.day(this.day()%7?t:t-7)}function tY(e){return this._weekdaysParseExact?(o(this,"_weekdaysRegex")||tH.call(this),e)?this._weekdaysStrictRegex:this._weekdaysRegex:(o(this,"_weekdaysRegex")||(this._weekdaysRegex=tO),this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex)}function tB(e){return this._weekdaysParseExact?(o(this,"_weekdaysRegex")||tH.call(this),e)?this._weekdaysShortStrictRegex:this._weekdaysShortRegex:(o(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=tA),this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}function tU(e){return this._weekdaysParseExact?(o(this,"_weekdaysRegex")||tH.call(this),e)?this._weekdaysMinStrictRegex:this._weekdaysMinRegex:(o(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=tL),this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function tH(){function e(e,t){return t.length-e.length}var t,n,r,i,a,o=[],s=[],u=[],c=[];for(t=0;t<7;t++)n=h([2e3,1]).day(t),r=eB(this.weekdaysMin(n,"")),i=eB(this.weekdaysShort(n,"")),a=eB(this.weekdays(n,"")),o.push(r),s.push(i),u.push(a),c.push(r),c.push(i),c.push(a);o.sort(e),s.sort(e),u.sort(e),c.sort(e),this._weekdaysRegex=RegExp("^("+c.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=RegExp("^("+u.join("|")+")","i"),this._weekdaysShortStrictRegex=RegExp("^("+s.join("|")+")","i"),this._weekdaysMinStrictRegex=RegExp("^("+o.join("|")+")","i")}function t$(){return this.hours()%12||12}function tz(){return this.hours()||24}function tG(e,t){B(e,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)})}function tW(e,t){return t._meridiemParse}function tK(e){return"p"===(e+"").toLowerCase().charAt(0)}B("H",["HH",2],0,"hour"),B("h",["hh",2],0,t$),B("k",["kk",2],0,tz),B("hmm",0,0,function(){return""+t$.apply(this)+P(this.minutes(),2)}),B("hmmss",0,0,function(){return""+t$.apply(this)+P(this.minutes(),2)+P(this.seconds(),2)}),B("Hmm",0,0,function(){return""+this.hours()+P(this.minutes(),2)}),B("Hmmss",0,0,function(){return""+this.hours()+P(this.minutes(),2)+P(this.seconds(),2)}),tG("a",!0),tG("A",!1),en("hour","h"),eo("hour",13),ej("a",tW),ej("A",tW),ej("H",ex),ej("h",ex),ej("k",ex),ej("HH",ex,e_),ej("hh",ex,e_),ej("kk",ex,e_),ej("hmm",eT),ej("hmmss",eM),ej("Hmm",eT),ej("Hmmss",eM),eH(["H","HH"],eV),eH(["k","kk"],function(e,t,n){var r=el(e);t[eV]=24===r?0:r}),eH(["a","A"],function(e,t,n){n._isPm=n._locale.isPM(e),n._meridiem=e}),eH(["h","hh"],function(e,t,n){t[eV]=el(e),b(n).bigHour=!0}),eH("hmm",function(e,t,n){var r=e.length-2;t[eV]=el(e.substr(0,r)),t[eq]=el(e.substr(r)),b(n).bigHour=!0}),eH("hmmss",function(e,t,n){var r=e.length-4,i=e.length-2;t[eV]=el(e.substr(0,r)),t[eq]=el(e.substr(r,2)),t[eZ]=el(e.substr(i)),b(n).bigHour=!0}),eH("Hmm",function(e,t,n){var r=e.length-2;t[eV]=el(e.substr(0,r)),t[eq]=el(e.substr(r))}),eH("Hmmss",function(e,t,n){var r=e.length-4,i=e.length-2;t[eV]=el(e.substr(0,r)),t[eq]=el(e.substr(r,2)),t[eZ]=el(e.substr(i))});var tV=/[ap]\.?m?\.?/i,tq=ef("Hours",!0);function tZ(e,t,n){return e>11?n?"pm":"PM":n?"am":"AM"}var tX,tJ,tQ={calendar:D,longDateFormat:G,invalidDate:K,ordinal:q,dayOfMonthOrdinalParse:Z,relativeTime:J,months:e2,monthsShort:e3,week:tg,weekdays:tx,weekdaysMin:tM,weekdaysShort:tT,meridiemParse:tV},t1={},t0={};function t2(e,t){var n,r=Math.min(e.length,t.length);for(n=0;n0;){if(r=t6(i.slice(0,t).join("-")))return r;if(n&&n.length>=t&&t2(i,n)>=t-1)break;t--}a++}return tJ}function t6(t){var r,i=null;if(void 0===t1[t]&&e&&e.exports)try{i=tJ._abbr,r=void 0,n(46700)("./"+t),t5(i)}catch(a){t1[t]=null}return t1[t]}function t5(e,t){var n;return e&&((n=u(t)?t7(e):t8(e,t))?tJ=n:"undefined"!=typeof console&&console.warn&&console.warn("Locale "+e+" not found. Did you forget to load it?")),tJ._abbr}function t8(e,t){if(null===t)return delete t1[e],null;var n,r=tQ;if(t.abbr=e,null!=t1[e])O("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),r=t1[e]._config;else if(null!=t.parentLocale){if(null!=t1[t.parentLocale])r=t1[t.parentLocale]._config;else{if(null==(n=t6(t.parentLocale)))return t0[t.parentLocale]||(t0[t.parentLocale]=[]),t0[t.parentLocale].push({name:e,config:t}),null;r=n._config}}return t1[e]=new I(C(r,t)),t0[e]&&t0[e].forEach(function(e){t8(e.name,e.config)}),t5(e),t1[e]}function t9(e,t){if(null!=t){var n,r,i=tQ;null!=t1[e]&&null!=t1[e].parentLocale?t1[e].set(C(t1[e]._config,t)):(null!=(r=t6(e))&&(i=r._config),t=C(i,t),null==r&&(t.abbr=e),(n=new I(t)).parentLocale=t1[e],t1[e]=n),t5(e)}else null!=t1[e]&&(null!=t1[e].parentLocale?(t1[e]=t1[e].parentLocale,e===t5()&&t5(e)):null!=t1[e]&&delete t1[e]);return t1[e]}function t7(e){var t;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return tJ;if(!i(e)){if(t=t6(e))return t;e=[e]}return t4(e)}function ne(){return ev(t1)}function nt(e){var t,n=e._a;return n&&-2===b(e).overflow&&(t=n[eW]<0||n[eW]>11?eW:n[eK]<1||n[eK]>e0(n[eG],n[eW])?eK:n[eV]<0||n[eV]>24||24===n[eV]&&(0!==n[eq]||0!==n[eZ]||0!==n[eX])?eV:n[eq]<0||n[eq]>59?eq:n[eZ]<0||n[eZ]>59?eZ:n[eX]<0||n[eX]>999?eX:-1,b(e)._overflowDayOfYear&&(teK)&&(t=eK),b(e)._overflowWeeks&&-1===t&&(t=eJ),b(e)._overflowWeekday&&-1===t&&(t=eQ),b(e).overflow=t),e}var nn=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,nr=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d|))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,ni=/Z|[+-]\d\d(?::?\d\d)?/,na=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/],["YYYYMM",/\d{6}/,!1],["YYYY",/\d{4}/,!1],],no=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/],],ns=/^\/?Date\((-?\d+)/i,nu=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/,nc={UT:0,GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function nl(e){var t,n,r,i,a,o,s=e._i,u=nn.exec(s)||nr.exec(s);if(u){for(t=0,b(e).iso=!0,n=na.length;tts(a)||0===e._dayOfYear)&&(b(e)._overflowDayOfYear=!0),n=tf(a,0,e._dayOfYear),e._a[eW]=n.getUTCMonth(),e._a[eK]=n.getUTCDate()),t=0;t<3&&null==e._a[t];++t)e._a[t]=o[t]=r[t];for(;t<7;t++)e._a[t]=o[t]=null==e._a[t]?2===t?1:0:e._a[t];24===e._a[eV]&&0===e._a[eq]&&0===e._a[eZ]&&0===e._a[eX]&&(e._nextDay=!0,e._a[eV]=0),e._d=(e._useUTC?tf:tl).apply(null,o),i=e._useUTC?e._d.getUTCDay():e._d.getDay(),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[eV]=24),e._w&&void 0!==e._w.d&&e._w.d!==i&&(b(e).weekdayMismatch=!0)}}function n_(e){var t,n,r,i,a,o,s,u,c;null!=(t=e._w).GG||null!=t.W||null!=t.E?(a=1,o=4,n=nv(t.GG,e._a[eG],tp(nL(),1,4).year),r=nv(t.W,1),((i=nv(t.E,1))<1||i>7)&&(u=!0)):(a=e._locale._week.dow,o=e._locale._week.doy,c=tp(nL(),a,o),n=nv(t.gg,e._a[eG],c.year),r=nv(t.w,c.week),null!=t.d?((i=t.d)<0||i>6)&&(u=!0):null!=t.e?(i=t.e+a,(t.e<0||t.e>6)&&(u=!0)):i=a),r<1||r>tb(n,a,o)?b(e)._overflowWeeks=!0:null!=u?b(e)._overflowWeekday=!0:(s=th(n,r,i,a,o),e._a[eG]=s.year,e._dayOfYear=s.dayOfYear)}function nE(e){if(e._f===t.ISO_8601){nl(e);return}if(e._f===t.RFC_2822){nm(e);return}e._a=[],b(e).empty=!0;var n,r,i,a,o,s,u=""+e._i,c=u.length,l=0;for(n=0,i=z(e._f,e._locale).match(R)||[];n0&&b(e).unusedInput.push(o),u=u.slice(u.indexOf(r)+r.length),l+=r.length),Y[a]?(r?b(e).empty=!1:b(e).unusedTokens.push(a),ez(a,r,e)):e._strict&&!r&&b(e).unusedTokens.push(a);b(e).charsLeftOver=c-l,u.length>0&&b(e).unusedInput.push(u),e._a[eV]<=12&&!0===b(e).bigHour&&e._a[eV]>0&&(b(e).bigHour=void 0),b(e).parsedDateParts=e._a.slice(0),b(e).meridiem=e._meridiem,e._a[eV]=nS(e._locale,e._a[eV],e._meridiem),null!==(s=b(e).era)&&(e._a[eG]=e._locale.erasConvertYear(s,e._a[eG])),nw(e),nt(e)}function nS(e,t,n){var r;return null==n?t:null!=e.meridiemHour?e.meridiemHour(t,n):(null!=e.isPM&&((r=e.isPM(n))&&t<12&&(t+=12),r||12!==t||(t=0)),t)}function nk(e){var t,n,r,i,a,o,s=!1;if(0===e._f.length){b(e).invalidFormat=!0,e._d=new Date(NaN);return}for(i=0;ithis?this:e:g()});function nD(e,t){var n,r;if(1===t.length&&i(t[0])&&(t=t[0]),!t.length)return nL();for(r=1,n=t[0];rMath.abs(e)&&!r&&(e*=60);return!this._isUTC&&n&&(i=nq(this)),this._offset=e,this._isUTC=!0,null!=i&&this.add(i,"m"),a===e||(!n||this._changeInProgress?ri(this,n7(e-a,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,t.updateOffset(this,!0),this._changeInProgress=null)),this}function nX(e,t){return null!=e?("string"!=typeof e&&(e=-e),this.utcOffset(e,t),this):-this.utcOffset()}function nJ(e){return this.utcOffset(0,e)}function nQ(e){return this._isUTC&&(this.utcOffset(0,e),this._isUTC=!1,e&&this.subtract(nq(this),"m")),this}function n1(){if(null!=this._tzm)this.utcOffset(this._tzm,!1,!0);else if("string"==typeof this._i){var e=nK(eD,this._i);null!=e?this.utcOffset(e):this.utcOffset(0,!0)}return this}function n0(e){return!!this.isValid()&&(e=e?nL(e).utcOffset():0,(this.utcOffset()-e)%60==0)}function n2(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function n3(){if(!u(this._isDSTShifted))return this._isDSTShifted;var e,t={};return E(t,this),(t=nM(t))._a?(e=t._isUTC?h(t._a):nL(t._a),this._isDSTShifted=this.isValid()&&nz(t._a,e.toArray())>0):this._isDSTShifted=!1,this._isDSTShifted}function n4(){return!!this.isValid()&&!this._isUTC}function n6(){return!!this.isValid()&&this._isUTC}function n5(){return!!this.isValid()&&this._isUTC&&0===this._offset}t.updateOffset=function(){};var n8=/^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/,n9=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function n7(e,t){var n,r,i,a=e,s=null;return nH(e)?a={ms:e._milliseconds,d:e._days,M:e._months}:c(e)||!isNaN(+e)?(a={},t?a[t]=+e:a.milliseconds=+e):(s=n8.exec(e))?(n="-"===s[1]?-1:1,a={y:0,d:el(s[eK])*n,h:el(s[eV])*n,m:el(s[eq])*n,s:el(s[eZ])*n,ms:el(n$(1e3*s[eX]))*n}):(s=n9.exec(e))?(n="-"===s[1]?-1:1,a={y:re(s[2],n),M:re(s[3],n),w:re(s[4],n),d:re(s[5],n),h:re(s[6],n),m:re(s[7],n),s:re(s[8],n)}):null==a?a={}:"object"==typeof a&&("from"in a||"to"in a)&&(i=rn(nL(a.from),nL(a.to)),(a={}).ms=i.milliseconds,a.M=i.months),r=new nU(a),nH(e)&&o(e,"_locale")&&(r._locale=e._locale),nH(e)&&o(e,"_isValid")&&(r._isValid=e._isValid),r}function re(e,t){var n=e&&parseFloat(e.replace(",","."));return(isNaN(n)?0:n)*t}function rt(e,t){var n={};return n.months=t.month()-e.month()+(t.year()-e.year())*12,e.clone().add(n.months,"M").isAfter(t)&&--n.months,n.milliseconds=+t-+e.clone().add(n.months,"M"),n}function rn(e,t){var n;return e.isValid()&&t.isValid()?(t=nV(t,e),e.isBefore(t)?n=rt(e,t):((n=rt(t,e)).milliseconds=-n.milliseconds,n.months=-n.months),n):{milliseconds:0,months:0}}function rr(e,t){return function(n,r){var i,a;return null===r||isNaN(+r)||(O(t,"moment()."+t+"(period, number) is deprecated. Please use moment()."+t+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),a=n,n=r,r=a),i=n7(n,r),ri(this,i,e),this}}function ri(e,n,r,i){var a=n._milliseconds,o=n$(n._days),s=n$(n._months);e.isValid()&&(i=null==i||i,s&&tt(e,ed(e,"Month")+s*r),o&&eh(e,"Date",ed(e,"Date")+o*r),a&&e._d.setTime(e._d.valueOf()+a*r),i&&t.updateOffset(e,o||s))}n7.fn=nU.prototype,n7.invalid=nB;var ra=rr(1,"add"),ro=rr(-1,"subtract");function rs(e){return"string"==typeof e||e instanceof String}function ru(e){return k(e)||l(e)||rs(e)||c(e)||rl(e)||rc(e)||null==e}function rc(e){var t,n,r=a(e)&&!s(e),i=!1,u=["years","year","y","months","month","M","days","day","d","dates","date","D","hours","hour","h","minutes","minute","m","seconds","second","s","milliseconds","millisecond","ms",];for(t=0;tn.valueOf():n.valueOf()n.year()||n.year()>9999?$(n,t?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):A(Date.prototype.toISOString)?t?this.toDate().toISOString():new Date(this.valueOf()+6e4*this.utcOffset()).toISOString().replace("Z",$(n,"Z")):$(n,t?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")}function rx(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var e,t,n,r,i="moment",a="";return this.isLocal()||(i=0===this.utcOffset()?"moment.utc":"moment.parseZone",a="Z"),e="["+i+'("]',t=0<=this.year()&&9999>=this.year()?"YYYY":"YYYYYY",n="-MM-DD[T]HH:mm:ss.SSS",r=a+'[")]',this.format(e+t+n+r)}function rT(e){e||(e=this.isUtc()?t.defaultFormatUtc:t.defaultFormat);var n=$(this,e);return this.localeData().postformat(n)}function rM(e,t){return this.isValid()&&(k(e)&&e.isValid()||nL(e).isValid())?n7({to:this,from:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()}function rO(e){return this.from(nL(),e)}function rA(e,t){return this.isValid()&&(k(e)&&e.isValid()||nL(e).isValid())?n7({from:this,to:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()}function rL(e){return this.to(nL(),e)}function rC(e){var t;return void 0===e?this._locale._abbr:(null!=(t=t7(e))&&(this._locale=t),this)}t.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",t.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var rI=T("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(e){return void 0===e?this.localeData():this.locale(e)});function rD(){return this._locale}var rN=1e3,rP=60*rN,rR=60*rP,rj=3506328*rR;function rF(e,t){return(e%t+t)%t}function rY(e,t,n){return e<100&&e>=0?new Date(e+400,t,n)-rj:new Date(e,t,n).valueOf()}function rB(e,t,n){return e<100&&e>=0?Date.UTC(e+400,t,n)-rj:Date.UTC(e,t,n)}function rU(e){var n,r;if(void 0===(e=er(e))||"millisecond"===e||!this.isValid())return this;switch(r=this._isUTC?rB:rY,e){case"year":n=r(this.year(),0,1);break;case"quarter":n=r(this.year(),this.month()-this.month()%3,1);break;case"month":n=r(this.year(),this.month(),1);break;case"week":n=r(this.year(),this.month(),this.date()-this.weekday());break;case"isoWeek":n=r(this.year(),this.month(),this.date()-(this.isoWeekday()-1));break;case"day":case"date":n=r(this.year(),this.month(),this.date());break;case"hour":n=this._d.valueOf(),n-=rF(n+(this._isUTC?0:this.utcOffset()*rP),rR);break;case"minute":n=this._d.valueOf(),n-=rF(n,rP);break;case"second":n=this._d.valueOf(),n-=rF(n,rN)}return this._d.setTime(n),t.updateOffset(this,!0),this}function rH(e){var n,r;if(void 0===(e=er(e))||"millisecond"===e||!this.isValid())return this;switch(r=this._isUTC?rB:rY,e){case"year":n=r(this.year()+1,0,1)-1;break;case"quarter":n=r(this.year(),this.month()-this.month()%3+3,1)-1;break;case"month":n=r(this.year(),this.month()+1,1)-1;break;case"week":n=r(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case"isoWeek":n=r(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case"day":case"date":n=r(this.year(),this.month(),this.date()+1)-1;break;case"hour":n=this._d.valueOf(),n+=rR-rF(n+(this._isUTC?0:this.utcOffset()*rP),rR)-1;break;case"minute":n=this._d.valueOf(),n+=rP-rF(n,rP)-1;break;case"second":n=this._d.valueOf(),n+=rN-rF(n,rN)-1}return this._d.setTime(n),t.updateOffset(this,!0),this}function r$(){return this._d.valueOf()-6e4*(this._offset||0)}function rz(){return Math.floor(this.valueOf()/1e3)}function rG(){return new Date(this.valueOf())}function rW(){var e=this;return[e.year(),e.month(),e.date(),e.hour(),e.minute(),e.second(),e.millisecond(),]}function rK(){var e=this;return{years:e.year(),months:e.month(),date:e.date(),hours:e.hours(),minutes:e.minutes(),seconds:e.seconds(),milliseconds:e.milliseconds()}}function rV(){return this.isValid()?this.toISOString():null}function rq(){return m(this)}function rZ(){return d({},b(this))}function rX(){return b(this).overflow}function rJ(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}function rQ(e,n){var r,i,a,o=this._eras||t7("en")._eras;for(r=0,i=o.length;r=0)return u[r]}function r0(e,n){var r=e.since<=e.until?1:-1;return void 0===n?t(e.since).year():t(e.since).year()+(n-e.offset)*r}function r2(){var e,t,n,r=this.localeData().eras();for(e=0,t=r.length;ea&&(t=a),ip.call(this,e,t,n,r,i))}function ip(e,t,n,r,i){var a=th(e,t,n,r,i),o=tf(a.year,0,a.dayOfYear);return this.year(o.getUTCFullYear()),this.month(o.getUTCMonth()),this.date(o.getUTCDate()),this}function ib(e){return null==e?Math.ceil((this.month()+1)/3):this.month((e-1)*3+this.month()%3)}B("N",0,0,"eraAbbr"),B("NN",0,0,"eraAbbr"),B("NNN",0,0,"eraAbbr"),B("NNNN",0,0,"eraName"),B("NNNNN",0,0,"eraNarrow"),B("y",["y",1],"yo","eraYear"),B("y",["yy",2],0,"eraYear"),B("y",["yyy",3],0,"eraYear"),B("y",["yyyy",4],0,"eraYear"),ej("N",r7),ej("NN",r7),ej("NNN",r7),ej("NNNN",ie),ej("NNNNN",it),eH(["N","NN","NNN","NNNN","NNNNN"],function(e,t,n,r){var i=n._locale.erasParse(e,r,n._strict);i?b(n).era=i:b(n).invalidEra=e}),ej("y",eC),ej("yy",eC),ej("yyy",eC),ej("yyyy",eC),ej("yo",ir),eH(["y","yy","yyy","yyyy"],eG),eH(["yo"],function(e,t,n,r){var i;n._locale._eraYearOrdinalRegex&&(i=e.match(n._locale._eraYearOrdinalRegex)),n._locale.eraYearOrdinalParse?t[eG]=n._locale.eraYearOrdinalParse(e,i):t[eG]=parseInt(e,10)}),B(0,["gg",2],0,function(){return this.weekYear()%100}),B(0,["GG",2],0,function(){return this.isoWeekYear()%100}),ia("gggg","weekYear"),ia("ggggg","weekYear"),ia("GGGG","isoWeekYear"),ia("GGGGG","isoWeekYear"),en("weekYear","gg"),en("isoWeekYear","GG"),eo("weekYear",1),eo("isoWeekYear",1),ej("G",eI),ej("g",eI),ej("GG",ex,e_),ej("gg",ex,e_),ej("GGGG",eA,eS),ej("gggg",eA,eS),ej("GGGGG",eL,ek),ej("ggggg",eL,ek),e$(["gggg","ggggg","GGGG","GGGGG"],function(e,t,n,r){t[r.substr(0,2)]=el(e)}),e$(["gg","GG"],function(e,n,r,i){n[i]=t.parseTwoDigitYear(e)}),B("Q",0,"Qo","quarter"),en("quarter","Q"),eo("quarter",7),ej("Q",ew),eH("Q",function(e,t){t[eW]=(el(e)-1)*3}),B("D",["DD",2],"Do","date"),en("date","D"),eo("date",9),ej("D",ex),ej("DD",ex,e_),ej("Do",function(e,t){return e?t._dayOfMonthOrdinalParse||t._ordinalParse:t._dayOfMonthOrdinalParseLenient}),eH(["D","DD"],eK),eH("Do",function(e,t){t[eK]=el(e.match(ex)[0])});var im=ef("Date",!0);function ig(e){var t=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==e?t:this.add(e-t,"d")}B("DDD",["DDDD",3],"DDDo","dayOfYear"),en("dayOfYear","DDD"),eo("dayOfYear",4),ej("DDD",eO),ej("DDDD",eE),eH(["DDD","DDDD"],function(e,t,n){n._dayOfYear=el(e)}),B("m",["mm",2],0,"minute"),en("minute","m"),eo("minute",14),ej("m",ex),ej("mm",ex,e_),eH(["m","mm"],eq);var iv=ef("Minutes",!1);B("s",["ss",2],0,"second"),en("second","s"),eo("second",15),ej("s",ex),ej("ss",ex,e_),eH(["s","ss"],eZ);var iy=ef("Seconds",!1);for(B("S",0,0,function(){return~~(this.millisecond()/100)}),B(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),B(0,["SSS",3],0,"millisecond"),B(0,["SSSS",4],0,function(){return 10*this.millisecond()}),B(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),B(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),B(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),B(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),B(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),en("millisecond","ms"),eo("millisecond",16),ej("S",eO,ew),ej("SS",eO,e_),ej("SSS",eO,eE),v="SSSS";v.length<=9;v+="S")ej(v,eC);function iw(e,t){t[eX]=el(("0."+e)*1e3)}for(v="S";v.length<=9;v+="S")eH(v,iw);function i_(){return this._isUTC?"UTC":""}function iE(){return this._isUTC?"Coordinated Universal Time":""}y=ef("Milliseconds",!1),B("z",0,0,"zoneAbbr"),B("zz",0,0,"zoneName");var iS=S.prototype;function ik(e){return nL(1e3*e)}function ix(){return nL.apply(null,arguments).parseZone()}function iT(e){return e}iS.add=ra,iS.calendar=rh,iS.clone=rp,iS.diff=r_,iS.endOf=rH,iS.format=rT,iS.from=rM,iS.fromNow=rO,iS.to=rA,iS.toNow=rL,iS.get=ep,iS.invalidAt=rX,iS.isAfter=rb,iS.isBefore=rm,iS.isBetween=rg,iS.isSame=rv,iS.isSameOrAfter=ry,iS.isSameOrBefore=rw,iS.isValid=rq,iS.lang=rI,iS.locale=rC,iS.localeData=rD,iS.max=nI,iS.min=nC,iS.parsingFlags=rZ,iS.set=eb,iS.startOf=rU,iS.subtract=ro,iS.toArray=rW,iS.toObject=rK,iS.toDate=rG,iS.toISOString=rk,iS.inspect=rx,"undefined"!=typeof Symbol&&null!=Symbol.for&&(iS[Symbol.for("nodejs.util.inspect.custom")]=function(){return"Moment<"+this.format()+">"}),iS.toJSON=rV,iS.toString=rS,iS.unix=rz,iS.valueOf=r$,iS.creationData=rJ,iS.eraName=r2,iS.eraNarrow=r3,iS.eraAbbr=r4,iS.eraYear=r6,iS.year=tu,iS.isLeapYear=tc,iS.weekYear=io,iS.isoWeekYear=is,iS.quarter=iS.quarters=ib,iS.month=tn,iS.daysInMonth=tr,iS.week=iS.weeks=tw,iS.isoWeek=iS.isoWeeks=t_,iS.weeksInYear=il,iS.weeksInWeekYear=id,iS.isoWeeksInYear=iu,iS.isoWeeksInISOWeekYear=ic,iS.date=im,iS.day=iS.days=tR,iS.weekday=tj,iS.isoWeekday=tF,iS.dayOfYear=ig,iS.hour=iS.hours=tq,iS.minute=iS.minutes=iv,iS.second=iS.seconds=iy,iS.millisecond=iS.milliseconds=y,iS.utcOffset=nZ,iS.utc=nJ,iS.local=nQ,iS.parseZone=n1,iS.hasAlignedHourOffset=n0,iS.isDST=n2,iS.isLocal=n4,iS.isUtcOffset=n6,iS.isUtc=n5,iS.isUTC=n5,iS.zoneAbbr=i_,iS.zoneName=iE,iS.dates=T("dates accessor is deprecated. Use date instead.",im),iS.months=T("months accessor is deprecated. Use month instead",tn),iS.years=T("years accessor is deprecated. Use year instead",tu),iS.zone=T("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",nX),iS.isDSTShifted=T("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",n3);var iM=I.prototype;function iO(e,t,n,r){var i=t7(),a=h().set(r,t);return i[n](a,e)}function iA(e,t,n){if(c(e)&&(t=e,e=void 0),e=e||"",null!=t)return iO(e,t,n,"month");var r,i=[];for(r=0;r<12;r++)i[r]=iO(e,r,n,"month");return i}function iL(e,t,n,r){"boolean"==typeof e?(c(t)&&(n=t,t=void 0),t=t||""):(n=t=e,e=!1,c(t)&&(n=t,t=void 0),t=t||"");var i,a=t7(),o=e?a._week.dow:0,s=[];if(null!=n)return iO(t,(n+o)%7,r,"day");for(i=0;i<7;i++)s[i]=iO(t,(i+o)%7,r,"day");return s}function iC(e,t){return iA(e,t,"months")}function iI(e,t){return iA(e,t,"monthsShort")}function iD(e,t,n){return iL(e,t,n,"weekdays")}function iN(e,t,n){return iL(e,t,n,"weekdaysShort")}function iP(e,t,n){return iL(e,t,n,"weekdaysMin")}iM.calendar=N,iM.longDateFormat=W,iM.invalidDate=V,iM.ordinal=X,iM.preparse=iT,iM.postformat=iT,iM.relativeTime=Q,iM.pastFuture=ee,iM.set=L,iM.eras=rQ,iM.erasParse=r1,iM.erasConvertYear=r0,iM.erasAbbrRegex=r8,iM.erasNameRegex=r5,iM.erasNarrowRegex=r9,iM.months=e8,iM.monthsShort=e9,iM.monthsParse=te,iM.monthsRegex=ta,iM.monthsShortRegex=ti,iM.week=tm,iM.firstDayOfYear=ty,iM.firstDayOfWeek=tv,iM.weekdays=tC,iM.weekdaysMin=tD,iM.weekdaysShort=tI,iM.weekdaysParse=tP,iM.weekdaysRegex=tY,iM.weekdaysShortRegex=tB,iM.weekdaysMinRegex=tU,iM.isPM=tK,iM.meridiem=tZ,t5("en",{eras:[{since:"0001-01-01",until:Infinity,offset:1,name:"Anno Domini",narrow:"AD",abbr:"AD"},{since:"0000-12-31",until:-1/0,offset:1,name:"Before Christ",narrow:"BC",abbr:"BC"},],dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10,n=1===el(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th";return e+n}}),t.lang=T("moment.lang is deprecated. Use moment.locale instead.",t5),t.langData=T("moment.langData is deprecated. Use moment.localeData instead.",t7);var iR=Math.abs;function ij(){var e=this._data;return this._milliseconds=iR(this._milliseconds),this._days=iR(this._days),this._months=iR(this._months),e.milliseconds=iR(e.milliseconds),e.seconds=iR(e.seconds),e.minutes=iR(e.minutes),e.hours=iR(e.hours),e.months=iR(e.months),e.years=iR(e.years),this}function iF(e,t,n,r){var i=n7(t,n);return e._milliseconds+=r*i._milliseconds,e._days+=r*i._days,e._months+=r*i._months,e._bubble()}function iY(e,t){return iF(this,e,t,1)}function iB(e,t){return iF(this,e,t,-1)}function iU(e){return e<0?Math.floor(e):Math.ceil(e)}function iH(){var e,t,n,r,i,a=this._milliseconds,o=this._days,s=this._months,u=this._data;return a>=0&&o>=0&&s>=0||a<=0&&o<=0&&s<=0||(a+=864e5*iU(iz(s)+o),o=0,s=0),u.milliseconds=a%1e3,e=ec(a/1e3),u.seconds=e%60,t=ec(e/60),u.minutes=t%60,n=ec(t/60),u.hours=n%24,o+=ec(n/24),s+=i=ec(i$(o)),o-=iU(iz(i)),r=ec(s/12),s%=12,u.days=o,u.months=s,u.years=r,this}function i$(e){return 4800*e/146097}function iz(e){return 146097*e/4800}function iG(e){if(!this.isValid())return NaN;var t,n,r=this._milliseconds;if("month"===(e=er(e))||"quarter"===e||"year"===e)switch(t=this._days+r/864e5,n=this._months+i$(t),e){case"month":return n;case"quarter":return n/3;case"year":return n/12}else switch(t=this._days+Math.round(iz(this._months)),e){case"week":return t/7+r/6048e5;case"day":return t+r/864e5;case"hour":return 24*t+r/36e5;case"minute":return 1440*t+r/6e4;case"second":return 86400*t+r/1e3;case"millisecond":return Math.floor(864e5*t)+r;default:throw Error("Unknown unit "+e)}}function iW(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*el(this._months/12):NaN}function iK(e){return function(){return this.as(e)}}var iV=iK("ms"),iq=iK("s"),iZ=iK("m"),iX=iK("h"),iJ=iK("d"),iQ=iK("w"),i1=iK("M"),i0=iK("Q"),i2=iK("y");function i3(){return n7(this)}function i4(e){return e=er(e),this.isValid()?this[e+"s"]():NaN}function i6(e){return function(){return this.isValid()?this._data[e]:NaN}}var i5=i6("milliseconds"),i8=i6("seconds"),i9=i6("minutes"),i7=i6("hours"),ae=i6("days"),at=i6("months"),an=i6("years");function ar(){return ec(this.days()/7)}var ai=Math.round,aa={ss:44,s:45,m:45,h:22,d:26,w:null,M:11};function ao(e,t,n,r,i){return i.relativeTime(t||1,!!n,e,r)}function as(e,t,n,r){var i=n7(e).abs(),a=ai(i.as("s")),o=ai(i.as("m")),s=ai(i.as("h")),u=ai(i.as("d")),c=ai(i.as("M")),l=ai(i.as("w")),f=ai(i.as("y")),d=a<=n.ss&&["s",a]||a0,d[4]=r,ao.apply(null,d)}function au(e){return void 0===e?ai:"function"==typeof e&&(ai=e,!0)}function ac(e,t){return void 0!==aa[e]&&(void 0===t?aa[e]:(aa[e]=t,"s"===e&&(aa.ss=t-1),!0))}function al(e,t){if(!this.isValid())return this.localeData().invalidDate();var n,r,i=!1,a=aa;return"object"==typeof e&&(t=e,e=!1),"boolean"==typeof e&&(i=e),"object"==typeof t&&(a=Object.assign({},aa,t),null!=t.s&&null==t.ss&&(a.ss=t.s-1)),r=as(this,!i,a,n=this.localeData()),i&&(r=n.pastFuture(+this,r)),n.postformat(r)}var af=Math.abs;function ad(e){return(e>0)-(e<0)||+e}function ah(){if(!this.isValid())return this.localeData().invalidDate();var e,t,n,r,i,a,o,s,u=af(this._milliseconds)/1e3,c=af(this._days),l=af(this._months),f=this.asSeconds();return f?(e=ec(u/60),t=ec(e/60),u%=60,e%=60,n=ec(l/12),l%=12,r=u?u.toFixed(3).replace(/\.?0+$/,""):"",i=f<0?"-":"",a=ad(this._months)!==ad(f)?"-":"",o=ad(this._days)!==ad(f)?"-":"",s=ad(this._milliseconds)!==ad(f)?"-":"",i+"P"+(n?a+n+"Y":"")+(l?a+l+"M":"")+(c?o+c+"D":"")+(t||e||u?"T":"")+(t?s+t+"H":"")+(e?s+e+"M":"")+(u?s+r+"S":"")):"P0D"}var ap=nU.prototype;return ap.isValid=nY,ap.abs=ij,ap.add=iY,ap.subtract=iB,ap.as=iG,ap.asMilliseconds=iV,ap.asSeconds=iq,ap.asMinutes=iZ,ap.asHours=iX,ap.asDays=iJ,ap.asWeeks=iQ,ap.asMonths=i1,ap.asQuarters=i0,ap.asYears=i2,ap.valueOf=iW,ap._bubble=iH,ap.clone=i3,ap.get=i4,ap.milliseconds=i5,ap.seconds=i8,ap.minutes=i9,ap.hours=i7,ap.days=ae,ap.weeks=ar,ap.months=at,ap.years=an,ap.humanize=al,ap.toISOString=ah,ap.toString=ah,ap.toJSON=ah,ap.locale=rC,ap.localeData=rD,ap.toIsoString=T("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",ah),ap.lang=rI,B("X",0,0,"unix"),B("x",0,0,"valueOf"),ej("x",eI),ej("X",eP),eH("X",function(e,t,n){n._d=new Date(1e3*parseFloat(e))}),eH("x",function(e,t,n){n._d=new Date(el(e))}),//! moment.js +t.version="2.29.1",r(nL),t.fn=iS,t.min=nN,t.max=nP,t.now=nR,t.utc=h,t.unix=ik,t.months=iC,t.isDate=l,t.locale=t5,t.invalid=g,t.duration=n7,t.isMoment=k,t.weekdays=iD,t.parseZone=ix,t.localeData=t7,t.isDuration=nH,t.monthsShort=iI,t.weekdaysMin=iP,t.defineLocale=t8,t.updateLocale=t9,t.locales=ne,t.weekdaysShort=iN,t.normalizeUnits=er,t.relativeTimeRounding=au,t.relativeTimeThreshold=ac,t.calendarFormat=rd,t.prototype=iS,t.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"},t},e.exports=i()},46417(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n,r=!!("undefined"!=typeof window&&window.document&&window.document.createElement);function i(e){n=e}function a(){if(n)return n;if(!r||!window.document.body)return"indeterminate";var e=window.document.createElement("div");return e.appendChild(document.createTextNode("ABCD")),e.dir="rtl",e.style.fontSize="14px",e.style.width="4px",e.style.height="1px",e.style.position="absolute",e.style.top="-1000px",e.style.overflow="scroll",document.body.appendChild(e),n="reverse",e.scrollLeft>0?n="default":(e.scrollLeft=1,0===e.scrollLeft&&(n="negative")),document.body.removeChild(e),n}function o(e,t){var n=e.scrollLeft;if("rtl"!==t)return n;var r=a();if("indeterminate"===r)return Number.NaN;switch(r){case"negative":return e.scrollWidth-e.clientWidth+n;case"reverse":return e.scrollWidth-e.clientWidth-n}return n}function s(e,t,n){if("rtl"!==n){e.scrollLeft=t;return}var r=a();if("indeterminate"!==r)switch(r){case"negative":e.scrollLeft=e.clientWidth-e.scrollWidth+t;break;case"reverse":e.scrollLeft=e.scrollWidth-e.clientWidth-t;break;default:e.scrollLeft=t}}t._setScrollType=i,t.detectScrollType=a,t.getNormalizedScrollLeft=o,t.setNormalizedScrollLeft=s},27418(e){"use strict";/* object-assign (c) Sindre Sorhus @license MIT @@ -153,35 +140,35 @@ object-assign * 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. - */ var r="undefined"!=typeof window&&"undefined"!=typeof document&&"undefined"!=typeof navigator,i=function(){for(var e=["Edge","Trident","Firefox"],t=0;t=0)return 1;return 0}();function a(e){var t=!1;return function(){!t&&(t=!0,window.Promise.resolve().then(function(){t=!1,e()}))}}function o(e){var t=!1;return function(){t||(t=!0,setTimeout(function(){t=!1,e()},i))}}var s=r&&window.Promise?a:o;function u(e){var t={};return e&&"[object Function]"===t.toString.call(e)}function c(e,t){if(1!==e.nodeType)return[];var n=e.ownerDocument.defaultView.getComputedStyle(e,null);return t?n[t]:n}function l(e){return"HTML"===e.nodeName?e:e.parentNode||e.host}function f(e){if(!e)return document.body;switch(e.nodeName){case"HTML":case"BODY":return e.ownerDocument.body;case"#document":return e.body}var t=c(e),n=t.overflow,r=t.overflowX,i=t.overflowY;return/(auto|scroll|overlay)/.test(n+i+r)?e:f(l(e))}function d(e){return e&&e.referenceNode?e.referenceNode:e}var h=r&&!!(window.MSInputMethodContext&&document.documentMode),p=r&&/MSIE 10/.test(navigator.userAgent);function b(e){return 11===e?h:10===e?p:h||p}function m(e){if(!e)return document.documentElement;for(var t=b(10)?document.body:null,n=e.offsetParent||null;n===t&&e.nextElementSibling;)n=(e=e.nextElementSibling).offsetParent;var r=n&&n.nodeName;return r&&"BODY"!==r&&"HTML"!==r?-1!==["TH","TD","TABLE"].indexOf(n.nodeName)&&"static"===c(n,"position")?m(n):n:e?e.ownerDocument.documentElement:document.documentElement}function g(e){var t=e.nodeName;return"BODY"!==t&&("HTML"===t||m(e.firstElementChild)===e)}function v(e){return null!==e.parentNode?v(e.parentNode):e}function y(e,t){if(!e||!e.nodeType||!t||!t.nodeType)return document.documentElement;var n=e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING,r=n?e:t,i=n?t:e,a=document.createRange();a.setStart(r,0),a.setEnd(i,0);var o=a.commonAncestorContainer;if(e!==o&&t!==o||r.contains(i))return g(o)?o:m(o);var s=v(e);return s.host?y(s.host,t):y(e,v(t).host)}function w(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"top",n="top"===t?"scrollTop":"scrollLeft",r=e.nodeName;if("BODY"===r||"HTML"===r){var i=e.ownerDocument.documentElement;return(e.ownerDocument.scrollingElement||i)[n]}return e[n]}function _(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=w(t,"top"),i=w(t,"left"),a=n?-1:1;return e.top+=r*a,e.bottom+=r*a,e.left+=i*a,e.right+=i*a,e}function E(e,t){var n="x"===t?"Left":"Top",r="Left"===n?"Right":"Bottom";return parseFloat(e["border"+n+"Width"],10)+parseFloat(e["border"+r+"Width"],10)}function S(e,t,n,r){return Math.max(t["offset"+e],t["scroll"+e],n["client"+e],n["offset"+e],n["scroll"+e],b(10)?parseInt(n["offset"+e])+parseInt(r["margin"+("Height"===e?"Top":"Left")])+parseInt(r["margin"+("Height"===e?"Bottom":"Right")]):0)}function k(e){var t=e.body,n=e.documentElement,r=b(10)&&getComputedStyle(n);return{height:S("Height",t,n,r),width:S("Width",t,n,r)}}var x=function(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")},T=function(){function e(e,t){for(var n=0;n2&&void 0!==arguments[2]&&arguments[2],r=b(10),i="HTML"===t.nodeName,a=L(e),o=L(t),s=f(e),u=c(t),l=parseFloat(u.borderTopWidth,10),d=parseFloat(u.borderLeftWidth,10);n&&i&&(o.top=Math.max(o.top,0),o.left=Math.max(o.left,0));var h=A({top:a.top-o.top-l,left:a.left-o.left-d,width:a.width,height:a.height});if(h.marginTop=0,h.marginLeft=0,!r&&i){var p=parseFloat(u.marginTop,10),m=parseFloat(u.marginLeft,10);h.top-=l-p,h.bottom-=l-p,h.left-=d-m,h.right-=d-m,h.marginTop=p,h.marginLeft=m}return(r&&!n?t.contains(s):t===s&&"BODY"!==s.nodeName)&&(h=_(h,t)),h}function I(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e.ownerDocument.documentElement,r=C(e,n),i=Math.max(n.clientWidth,window.innerWidth||0),a=Math.max(n.clientHeight,window.innerHeight||0),o=t?0:w(n),s=t?0:w(n,"left");return A({top:o-r.top+r.marginTop,left:s-r.left+r.marginLeft,width:i,height:a})}function D(e){var t=e.nodeName;if("BODY"===t||"HTML"===t)return!1;if("fixed"===c(e,"position"))return!0;var n=l(e);return!!n&&D(n)}function N(e){if(!e||!e.parentElement||b())return document.documentElement;for(var t=e.parentElement;t&&"none"===c(t,"transform");)t=t.parentElement;return t||document.documentElement}function P(e,t,n,r){var i=arguments.length>4&&void 0!==arguments[4]&&arguments[4],a={top:0,left:0},o=i?N(e):y(e,d(t));if("viewport"===r)a=I(o,i);else{var s=void 0;"scrollParent"===r?"BODY"===(s=f(l(t))).nodeName&&(s=e.ownerDocument.documentElement):s="window"===r?e.ownerDocument.documentElement:r;var u=C(s,o,i);if("HTML"!==s.nodeName||D(o))a=u;else{var c=k(e.ownerDocument),h=c.height,p=c.width;a.top+=u.top-u.marginTop,a.bottom=h+u.top,a.left+=u.left-u.marginLeft,a.right=p+u.left}}var b="number"==typeof(n=n||0);return a.left+=b?n:n.left||0,a.top+=b?n:n.top||0,a.right-=b?n:n.right||0,a.bottom-=b?n:n.bottom||0,a}function R(e){var t;return e.width*e.height}function j(e,t,n,r,i){var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0;if(-1===e.indexOf("auto"))return e;var o=P(n,r,a,i),s={top:{width:o.width,height:t.top-o.top},right:{width:o.right-t.right,height:o.height},bottom:{width:o.width,height:o.bottom-t.bottom},left:{width:t.left-o.left,height:o.height}},u=Object.keys(s).map(function(e){return O({key:e},s[e],{area:R(s[e])})}).sort(function(e,t){return t.area-e.area}),c=u.filter(function(e){var t=e.width,r=e.height;return t>=n.clientWidth&&r>=n.clientHeight}),l=c.length>0?c[0].key:u[0].key,f=e.split("-")[1];return l+(f?"-"+f:"")}function F(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,i=r?N(t):y(t,d(n));return C(n,i,r)}function Y(e){var t=e.ownerDocument.defaultView.getComputedStyle(e),n=parseFloat(t.marginTop||0)+parseFloat(t.marginBottom||0),r=parseFloat(t.marginLeft||0)+parseFloat(t.marginRight||0);return{width:e.offsetWidth+r,height:e.offsetHeight+n}}function B(e){var t={left:"right",right:"left",bottom:"top",top:"bottom"};return e.replace(/left|right|bottom|top/g,function(e){return t[e]})}function U(e,t,n){n=n.split("-")[0];var r=Y(e),i={width:r.width,height:r.height},a=-1!==["right","left"].indexOf(n),o=a?"top":"left",s=a?"left":"top",u=a?"height":"width",c=a?"width":"height";return i[o]=t[o]+t[u]/2-r[u]/2,n===s?i[s]=t[s]-r[c]:i[s]=t[B(s)],i}function H(e,t){return Array.prototype.find?e.find(t):e.filter(t)[0]}function $(e,t,n){if(Array.prototype.findIndex)return e.findIndex(function(e){return e[t]===n});var r=H(e,function(e){return e[t]===n});return e.indexOf(r)}function z(e,t,n){return(void 0===n?e:e.slice(0,$(e,"name",n))).forEach(function(e){e.function&&console.warn("`modifier.function` is deprecated, use `modifier.fn`!");var n=e.function||e.fn;e.enabled&&u(n)&&(t.offsets.popper=A(t.offsets.popper),t.offsets.reference=A(t.offsets.reference),t=n(t,e))}),t}function G(){if(!this.state.isDestroyed){var e={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};e.offsets.reference=F(this.state,this.popper,this.reference,this.options.positionFixed),e.placement=j(this.options.placement,e.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),e.originalPlacement=e.placement,e.positionFixed=this.options.positionFixed,e.offsets.popper=U(this.popper,e.offsets.reference,e.placement),e.offsets.popper.position=this.options.positionFixed?"fixed":"absolute",e=z(this.modifiers,e),this.state.isCreated?this.options.onUpdate(e):(this.state.isCreated=!0,this.options.onCreate(e))}}function W(e,t){return e.some(function(e){var n=e.name;return e.enabled&&n===t})}function K(e){for(var t=[!1,"ms","Webkit","Moz","O"],n=e.charAt(0).toUpperCase()+e.slice(1),r=0;ro[p]&&(e.offsets.popper[d]+=s[d]+b-o[p]),e.offsets.popper=A(e.offsets.popper);var m=s[d]+s[l]/2-b/2,g=c(e.instance.popper),v=parseFloat(g["margin"+f],10),y=parseFloat(g["border"+f+"Width"],10),w=m-e.offsets.popper[d]-v-y;return w=Math.max(Math.min(o[l]-b,w),0),e.arrowElement=r,e.offsets.arrow=(M(n={},d,Math.round(w)),M(n,h,""),n),e}function ef(e){return"end"===e?"start":"start"===e?"end":e}var ed=["auto-start","auto","auto-end","top-start","top","top-end","right-start","right","right-end","bottom-end","bottom","bottom-start","left-end","left","left-start"],eh=ed.slice(3);function ep(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=eh.indexOf(e),r=eh.slice(n+1).concat(eh.slice(0,n));return t?r.reverse():r}var eb={FLIP:"flip",CLOCKWISE:"clockwise",COUNTERCLOCKWISE:"counterclockwise"};function em(e,t){if(W(e.instance.modifiers,"inner")||e.flipped&&e.placement===e.originalPlacement)return e;var n=P(e.instance.popper,e.instance.reference,t.padding,t.boundariesElement,e.positionFixed),r=e.placement.split("-")[0],i=B(r),a=e.placement.split("-")[1]||"",o=[];switch(t.behavior){case eb.FLIP:o=[r,i];break;case eb.CLOCKWISE:o=ep(r);break;case eb.COUNTERCLOCKWISE:o=ep(r,!0);break;default:o=t.behavior}return o.forEach(function(s,u){if(r!==s||o.length===u+1)return e;i=B(r=e.placement.split("-")[0]);var c=e.offsets.popper,l=e.offsets.reference,f=Math.floor,d="left"===r&&f(c.right)>f(l.left)||"right"===r&&f(c.left)f(l.top)||"bottom"===r&&f(c.top)f(n.right),b=f(c.top)f(n.bottom),g="left"===r&&h||"right"===r&&p||"top"===r&&b||"bottom"===r&&m,v=-1!==["top","bottom"].indexOf(r),y=!!t.flipVariations&&(v&&"start"===a&&h||v&&"end"===a&&p||!v&&"start"===a&&b||!v&&"end"===a&&m),w=!!t.flipVariationsByContent&&(v&&"start"===a&&p||v&&"end"===a&&h||!v&&"start"===a&&m||!v&&"end"===a&&b),_=y||w;(d||g||_)&&(e.flipped=!0,(d||g)&&(r=o[u+1]),_&&(a=ef(a)),e.placement=r+(a?"-"+a:""),e.offsets.popper=O({},e.offsets.popper,U(e.instance.popper,e.offsets.reference,e.placement)),e=z(e.instance.modifiers,e,"flip"))}),e}function eg(e){var t=e.offsets,n=t.popper,r=t.reference,i=e.placement.split("-")[0],a=Math.floor,o=-1!==["top","bottom"].indexOf(i),s=o?"right":"bottom",u=o?"left":"top",c=o?"width":"height";return n[s]a(r[s])&&(e.offsets.popper[u]=a(r[s])),e}function ev(e,t,n,r){var i=e.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),a=+i[1],o=i[2];if(!a)return e;if(0===o.indexOf("%")){var s=void 0;return A(s="%p"===o?n:r)[t]/100*a}if("vh"!==o&&"vw"!==o)return a;var u=void 0;return(u="vh"===o?Math.max(document.documentElement.clientHeight,window.innerHeight||0):Math.max(document.documentElement.clientWidth,window.innerWidth||0))/100*a}function ey(e,t,n,r){var i=[0,0],a=-1!==["right","left"].indexOf(r),o=e.split(/(\+|\-)/).map(function(e){return e.trim()}),s=o.indexOf(H(o,function(e){return -1!==e.search(/,|\s/)}));o[s]&&-1===o[s].indexOf(",")&&console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead.");var u=/\s*,\s*|\s+/,c=-1!==s?[o.slice(0,s).concat([o[s].split(u)[0]]),[o[s].split(u)[1]].concat(o.slice(s+1))]:[o];return(c=c.map(function(e,r){var i=(1===r?!a:a)?"height":"width",o=!1;return e.reduce(function(e,t){return""===e[e.length-1]&&-1!==["+","-"].indexOf(t)?(e[e.length-1]=t,o=!0,e):o?(e[e.length-1]+=t,o=!1,e):e.concat(t)},[]).map(function(e){return ev(e,i,t,n)})})).forEach(function(e,t){e.forEach(function(n,r){et(n)&&(i[t]+=n*("-"===e[r-1]?-1:1))})}),i}function ew(e,t){var n=t.offset,r=e.placement,i=e.offsets,a=i.popper,o=i.reference,s=r.split("-")[0],u=void 0;return u=et(+n)?[+n,0]:ey(n,a,o,s),"left"===s?(a.top+=u[0],a.left-=u[1]):"right"===s?(a.top+=u[0],a.left+=u[1]):"top"===s?(a.left+=u[0],a.top-=u[1]):"bottom"===s&&(a.left+=u[0],a.top+=u[1]),e.popper=a,e}function e_(e,t){var n=t.boundariesElement||m(e.instance.popper);e.instance.reference===n&&(n=m(n));var r=K("transform"),i=e.instance.popper.style,a=i.top,o=i.left,s=i[r];i.top="",i.left="",i[r]="";var u=P(e.instance.popper,e.instance.reference,t.padding,n,e.positionFixed);i.top=a,i.left=o,i[r]=s,t.boundaries=u;var c=t.priority,l=e.offsets.popper,f={primary:function(e){var n=l[e];return l[e]u[e]&&!t.escapeWithReference&&(r=Math.min(l[n],u[e]-("right"===e?l.width:l.height))),M({},n,r)}};return c.forEach(function(e){l=O({},l,f[-1!==["left","top"].indexOf(e)?"primary":"secondary"](e))}),e.offsets.popper=l,e}function eE(e){var t=e.placement,n=t.split("-")[0],r=t.split("-")[1];if(r){var i=e.offsets,a=i.reference,o=i.popper,s=-1!==["bottom","top"].indexOf(n),u=s?"left":"top",c=s?"width":"height",l={start:M({},u,a[u]),end:M({},u,a[u]+a[c]-o[c])};e.offsets.popper=O({},o,l[r])}return e}function eS(e){if(!ec(e.instance.modifiers,"hide","preventOverflow"))return e;var t=e.offsets.reference,n=H(e.instance.modifiers,function(e){return"preventOverflow"===e.name}).boundaries;if(t.bottomn.right||t.top>n.bottom||t.right2&&void 0!==arguments[2]?arguments[2]:{};x(this,e),this.scheduleUpdate=function(){return requestAnimationFrame(r.update)},this.update=s(this.update.bind(this)),this.options=O({},e.Defaults,i),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=t&&t.jquery?t[0]:t,this.popper=n&&n.jquery?n[0]:n,this.options.modifiers={},Object.keys(O({},e.Defaults.modifiers,i.modifiers)).forEach(function(t){r.options.modifiers[t]=O({},e.Defaults.modifiers[t]||{},i.modifiers?i.modifiers[t]:{})}),this.modifiers=Object.keys(this.options.modifiers).map(function(e){return O({name:e},r.options.modifiers[e])}).sort(function(e,t){return e.order-t.order}),this.modifiers.forEach(function(e){e.enabled&&u(e.onLoad)&&e.onLoad(r.reference,r.popper,r.options,e,r.state)}),this.update();var a=this.options.eventsEnabled;a&&this.enableEventListeners(),this.state.eventsEnabled=a}return T(e,[{key:"update",value:function(){return G.call(this)}},{key:"destroy",value:function(){return V.call(this)}},{key:"enableEventListeners",value:function(){return J.call(this)}},{key:"disableEventListeners",value:function(){return ee.call(this)}}]),e}();eT.Utils=("undefined"!=typeof window?window:n.g).PopperUtils,eT.placements=ed,eT.Defaults=ex;let eM=eT},92703(e,t,n){"use strict";var r=n(50414);function i(){}function a(){}a.resetWarningCache=i,e.exports=function(){function e(e,t,n,i,a,o){if(o!==r){var s=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,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:a,resetWarningCache:i};return n.PropTypes=n,n}},45697(e,t,n){e.exports=n(92703)()},50414(e){"use strict";var t="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";e.exports=t},55760(e){"use strict";function t(e){this._maxSize=e,this.clear()}t.prototype.clear=function(){this._size=0,this._values=Object.create(null)},t.prototype.get=function(e){return this._values[e]},t.prototype.set=function(e,t){return this._size>=this._maxSize&&this.clear(),!(e in this._values)&&this._size++,this._values[e]=t};var n=/[^.^\]^[]+|(?=\[\]|\.\.)/g,r=/^\d+$/,i=/^\d/,a=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,o=/^\s*(['"]?)(.*?)(\1)\s*$/,s=512,u=new t(s),c=new t(s),l=new t(s);function f(e){return u.get(e)||u.set(e,d(e).map(function(e){return e.replace(o,"$2")}))}function d(e){return e.match(n)}function h(e,t,n){var r,i,a,o,s=e.length;for(i=0;i4&&n.slice(0,4)===o&&s.test(t)&&("-"===t.charAt(4)?u=f(t):t=d(t),c=i),new c(u,t))}function f(e){var t=e.slice(5).replace(u,p);return o+t.charAt(0).toUpperCase()+t.slice(1)}function d(e){var t=e.slice(4);return u.test(t)?e:("-"!==(t=t.replace(c,h)).charAt(0)&&(t="-"+t),o+t)}function h(e){return"-"+e.toLowerCase()}function p(e){return e.charAt(1).toUpperCase()}},97247(e,t,n){"use strict";var r=n(19940),i=n(8289),a=n(5812),o=n(94397),s=n(67716),u=n(61805);e.exports=r([a,i,o,s,u])},67716(e,t,n){"use strict";var r=n(17e3),i=n(17596),a=r.booleanish,o=r.number,s=r.spaceSeparated;function u(e,t){return"role"===t?t:"aria-"+t.slice(4).toLowerCase()}e.exports=i({transform:u,properties:{ariaActiveDescendant:null,ariaAtomic:a,ariaAutoComplete:null,ariaBusy:a,ariaChecked:a,ariaColCount:o,ariaColIndex:o,ariaColSpan:o,ariaControls:s,ariaCurrent:null,ariaDescribedBy:s,ariaDetails:null,ariaDisabled:a,ariaDropEffect:s,ariaErrorMessage:null,ariaExpanded:a,ariaFlowTo:s,ariaGrabbed:a,ariaHasPopup:null,ariaHidden:a,ariaInvalid:null,ariaKeyShortcuts:null,ariaLabel:null,ariaLabelledBy:s,ariaLevel:o,ariaLive:null,ariaModal:a,ariaMultiLine:a,ariaMultiSelectable:a,ariaOrientation:null,ariaOwns:s,ariaPlaceholder:null,ariaPosInSet:o,ariaPressed:a,ariaReadOnly:a,ariaRelevant:null,ariaRequired:a,ariaRoleDescription:s,ariaRowCount:o,ariaRowIndex:o,ariaRowSpan:o,ariaSelected:a,ariaSetSize:o,ariaSort:null,ariaValueMax:o,ariaValueMin:o,ariaValueNow:o,ariaValueText:null,role:null}})},61805(e,t,n){"use strict";var r=n(17e3),i=n(17596),a=n(10855),o=r.boolean,s=r.overloadedBoolean,u=r.booleanish,c=r.number,l=r.spaceSeparated,f=r.commaSeparated;e.exports=i({space:"html",attributes:{acceptcharset:"accept-charset",classname:"class",htmlfor:"for",httpequiv:"http-equiv"},transform:a,mustUseProperty:["checked","multiple","muted","selected"],properties:{abbr:null,accept:f,acceptCharset:l,accessKey:l,action:null,allow:null,allowFullScreen:o,allowPaymentRequest:o,allowUserMedia:o,alt:null,as:null,async:o,autoCapitalize:null,autoComplete:l,autoFocus:o,autoPlay:o,capture:o,charSet:null,checked:o,cite:null,className:l,cols:c,colSpan:null,content:null,contentEditable:u,controls:o,controlsList:l,coords:c|f,crossOrigin:null,data:null,dateTime:null,decoding:null,default:o,defer:o,dir:null,dirName:null,disabled:o,download:s,draggable:u,encType:null,enterKeyHint:null,form:null,formAction:null,formEncType:null,formMethod:null,formNoValidate:o,formTarget:null,headers:l,height:c,hidden:o,high:c,href:null,hrefLang:null,htmlFor:l,httpEquiv:l,id:null,imageSizes:null,imageSrcSet:f,inputMode:null,integrity:null,is:null,isMap:o,itemId:null,itemProp:l,itemRef:l,itemScope:o,itemType:l,kind:null,label:null,lang:null,language:null,list:null,loading:null,loop:o,low:c,manifest:null,max:null,maxLength:c,media:null,method:null,min:null,minLength:c,multiple:o,muted:o,name:null,nonce:null,noModule:o,noValidate:o,onAbort:null,onAfterPrint:null,onAuxClick:null,onBeforePrint:null,onBeforeUnload:null,onBlur:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onContextMenu:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnded:null,onError:null,onFocus:null,onFormData:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLanguageChange:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadEnd:null,onLoadStart:null,onMessage:null,onMessageError:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRejectionHandled:null,onReset:null,onResize:null,onScroll:null,onSecurityPolicyViolation:null,onSeeked:null,onSeeking:null,onSelect:null,onSlotChange:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnhandledRejection:null,onUnload:null,onVolumeChange:null,onWaiting:null,onWheel:null,open:o,optimum:c,pattern:null,ping:l,placeholder:null,playsInline:o,poster:null,preload:null,readOnly:o,referrerPolicy:null,rel:l,required:o,reversed:o,rows:c,rowSpan:c,sandbox:l,scope:null,scoped:o,seamless:o,selected:o,shape:null,size:c,sizes:null,slot:null,span:c,spellCheck:u,src:null,srcDoc:null,srcLang:null,srcSet:f,start:c,step:null,style:null,tabIndex:c,target:null,title:null,translate:null,type:null,typeMustMatch:o,useMap:null,value:u,width:c,wrap:null,align:null,aLink:null,archive:l,axis:null,background:null,bgColor:null,border:c,borderColor:null,bottomMargin:c,cellPadding:null,cellSpacing:null,char:null,charOff:null,classId:null,clear:null,code:null,codeBase:null,codeType:null,color:null,compact:o,declare:o,event:null,face:null,frame:null,frameBorder:null,hSpace:c,leftMargin:c,link:null,longDesc:null,lowSrc:null,marginHeight:c,marginWidth:c,noResize:o,noHref:o,noShade:o,noWrap:o,object:null,profile:null,prompt:null,rev:null,rightMargin:c,rules:null,scheme:null,scrolling:u,standby:null,summary:null,text:null,topMargin:c,valueType:null,version:null,vAlign:null,vLink:null,vSpace:c,allowTransparency:null,autoCorrect:null,autoSave:null,disablePictureInPicture:o,disableRemotePlayback:o,prefix:null,property:null,results:c,security:null,unselectable:null}})},10855(e,t,n){"use strict";var r=n(28740);function i(e,t){return r(e,t.toLowerCase())}e.exports=i},28740(e){"use strict";function t(e,t){return t in e?e[t]:t}e.exports=t},17596(e,t,n){"use strict";var r=n(66632),i=n(99607),a=n(81674);function o(e){var t,n,o=e.space,s=e.mustUseProperty||[],u=e.attributes||{},c=e.properties,l=e.transform,f={},d={};for(t in c)n=new a(t,l(u,t),c[t],o),-1!==s.indexOf(t)&&(n.mustUseProperty=!0),f[t]=n,d[r(t)]=t,d[r(n.attribute)]=t;return new i(f,d,o)}e.exports=o},81674(e,t,n){"use strict";var r=n(57643),i=n(17e3);e.exports=s,s.prototype=new r,s.prototype.defined=!0;var a=["boolean","booleanish","overloadedBoolean","number","commaSeparated","spaceSeparated","commaOrSpaceSeparated"],o=a.length;function s(e,t,n,s){var c,l=-1;for(u(this,"space",s),r.call(this,e,t);++l=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function l(e,t){if(null==e)return{};var n,r,i={},a=Object.keys(e);for(r=0;r=0||(i[n]=e[n]);return i}function f(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}function d(e,t){for(var n=0;n1&&void 0!==arguments[1]&&arguments[1];return n._tick((0,d.updateNodeHighlightedValue)(n.state.nodes,n.state.links,n.state.config,e,t))}),O(S(n),"_tick",function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;return t?n.setState(e,t):n.setState(e)}),O(S(n),"_zoomConfig",function(){var e=(0,o.select)("#".concat(n.state.id,"-").concat(u.default.GRAPH_WRAPPER_ID)),t=(0,s.zoom)().scaleExtent([n.state.config.minZoom,n.state.config.maxZoom]);n.state.config.freezeAllDragEvents||t.on("zoom",n._zoomed),null!==n.state.config.initialZoom&&t.scaleTo(e,n.state.config.initialZoom),e.call(t).on("dblclick.zoom",null)}),O(S(n),"_zoomed",function(){var e=o.event.transform;(0,o.selectAll)("#".concat(n.state.id,"-").concat(u.default.GRAPH_CONTAINER_ID)).attr("transform",e),n.state.config.panAndZoom&&n.setState({transform:e.k}),n.debouncedOnZoomChange&&n.state.previousZoom!==e.k&&(n.debouncedOnZoomChange(n.state.previousZoom,e.k),n.setState({previousZoom:e.k}))}),O(S(n),"onClickGraph",function(e){n.state.enableFocusAnimation&&n.setState({enableFocusAnimation:!1});var t,r,i,a=e.target&&e.target.tagName,o=null==e?void 0:null===(t=e.target)||void 0===t?void 0:null===(r=t.attributes)||void 0===r?void 0:null===(i=r.name)||void 0===i?void 0:i.value,s="svg-container-".concat(n.state.id);"SVG"===a.toUpperCase()&&o===s&&n.props.onClickGraph&&n.props.onClickGraph(e)}),O(S(n),"onClickNode",function(e){var t=n.state.nodes[e];if(n.state.config.collapsible){var r=(0,f.getTargetLeafConnections)(e,n.state.links,n.state.config),i=(0,f.toggleLinksMatrixConnections)(n.state.links,r,n.state.config),a=(0,f.toggleLinksConnections)(n.state.d3Links,i),o=null==r?void 0:r["0"],s=!1;o&&(s=1===i[o.source][o.target]),n._tick({links:i,d3Links:a},function(){n.props.onClickNode&&n.props.onClickNode(e,t),s&&n._graphNodeDragConfig()})}else n.nodeClickTimer?(n.props.onDoubleClickNode&&n.props.onDoubleClickNode(e,t),n.nodeClickTimer=clearTimeout(n.nodeClickTimer)):n.nodeClickTimer=setTimeout(function(){n.props.onClickNode&&n.props.onClickNode(e,t),n.nodeClickTimer=null},u.default.TTL_DOUBLE_CLICK_IN_MS)}),O(S(n),"onRightClickNode",function(e,t){var r=n.state.nodes[t];n.props.onRightClickNode&&n.props.onRightClickNode(e,t,r)}),O(S(n),"onMouseOverNode",function(e){if(!n.isDraggingNode){var t=n.state.nodes[e];n.props.onMouseOverNode&&n.props.onMouseOverNode(e,t),n.state.config.nodeHighlightBehavior&&n._setNodeHighlightedValue(e,!0)}}),O(S(n),"onMouseOutNode",function(e){if(!n.isDraggingNode){var t=n.state.nodes[e];n.props.onMouseOutNode&&n.props.onMouseOutNode(e,t),n.state.config.nodeHighlightBehavior&&n._setNodeHighlightedValue(e,!1)}}),O(S(n),"onMouseOverLink",function(e,t){if(n.props.onMouseOverLink&&n.props.onMouseOverLink(e,t),n.state.config.linkHighlightBehavior){var r={source:e,target:t};n._tick({highlightedLink:r})}}),O(S(n),"onMouseOutLink",function(e,t){if(n.props.onMouseOutLink&&n.props.onMouseOutLink(e,t),n.state.config.linkHighlightBehavior){var r=void 0;n._tick({highlightedLink:r})}}),O(S(n),"onNodePositionChange",function(e){if(n.props.onNodePositionChange){var t=e.id,r=e.x,i=e.y;n.props.onNodePositionChange(t,r,i)}}),O(S(n),"pauseSimulation",function(){return n.state.simulation.stop()}),O(S(n),"resetNodesPositions",function(){if(!n.state.config.staticGraph){var e=(0,d.initializeNodes)(n.props.data.nodes);for(var t in n.state.nodes){var r=n.state.nodes[t];if(r.fx&&r.fy&&(Reflect.deleteProperty(r,"fx"),Reflect.deleteProperty(r,"fy")),t in e){var i=e[t];r.x=i.x,r.y=i.y}}n.state.simulation.alphaTarget(n.state.config.d3.alphaTarget).restart(),n._tick()}}),O(S(n),"restartSimulation",function(){return!n.state.config.staticGraph&&n.state.simulation.restart()}),n.props.id||(0,p.throwErr)(n.constructor.name,l.default.GRAPH_NO_ID_PROP),n.focusAnimationTimeout=null,n.nodeClickTimer=null,n.isDraggingNode=!1,n.state=(0,d.initializeGraphState)(n.props,n.state),n.debouncedOnZoomChange=n.props.onZoomChange?(0,p.debounce)(n.props.onZoomChange,100):null,n}return T(t,e),x(t,[{key:"_graphLinkForceConfig",value:function(){var e=(0,a.forceLink)(this.state.d3Links).id(function(e){return e.id}).distance(this.state.config.d3.linkLength).strength(this.state.config.d3.linkStrength);this.state.simulation.force(u.default.LINK_CLASS_NAME,e)}},{key:"_graphNodeDragConfig",value:function(){var e=(0,i.drag)().on("start",this._onDragStart).on("drag",this._onDragMove).on("end",this._onDragEnd);(0,o.select)("#".concat(this.state.id,"-").concat(u.default.GRAPH_WRAPPER_ID)).selectAll(".node").call(e)}},{key:"_graphBindD3ToReactComponent",value:function(){this.state.config.d3.disableLinkForce||(this.state.simulation.nodes(this.state.d3Nodes).on("tick",this._tick),this._graphLinkForceConfig()),this.state.config.freezeAllDragEvents||this._graphNodeDragConfig()}}]),x(t,[{key:"UNSAFE_componentWillReceiveProps",value:function(e){var t=(0,d.checkForGraphElementsChanges)(e,this.state),n=t.graphElementsUpdated,r=t.newGraphElements,i=n?(0,d.initializeGraphState)(e,this.state):this.state,a=e.config||{},o=(0,d.checkForGraphConfigChanges)(e,this.state),s=o.configUpdated,l=o.d3ConfigUpdated,f=s?(0,p.merge)(c.default,a):this.state.config;r&&this.pauseSimulation();var h=a.panAndZoom!==this.state.config.panAndZoom?1:this.state.transform,b=e.data.focusedNodeId,m=this.state.d3Nodes.find(function(e){return"".concat(e.id)==="".concat(b)}),g="".concat(this.state.id,"-").concat(u.default.GRAPH_WRAPPER_ID),v=(0,d.getCenterAndZoomTransformation)(m,this.state.config,g)||this.state.focusTransformation,w=this.props.data.focusedNodeId!==e.data.focusedNodeId;e.onZoomChange&&(this.debouncedOnZoomChange=(0,p.debounce)(e.onZoomChange,100)),this.setState(y({},i,{config:f,configUpdated:s,d3ConfigUpdated:l,newGraphElements:r,transform:h,focusedNodeId:b,enableFocusAnimation:w,focusTransformation:v}))}},{key:"componentDidUpdate",value:function(){(this.state.config.staticGraph||this.state.config.staticGraphWithDragAndDrop)&&this.pauseSimulation(),!this.state.config.staticGraph&&(this.state.newGraphElements||this.state.d3ConfigUpdated)?(this._graphBindD3ToReactComponent(),this.state.config.staticGraphWithDragAndDrop||this.restartSimulation(),this.setState({newGraphElements:!1,d3ConfigUpdated:!1})):this.state.configUpdated&&this._graphNodeDragConfig(),this.state.configUpdated&&(this._zoomConfig(),this.setState({configUpdated:!1}))}},{key:"componentDidMount",value:function(){this.state.config.staticGraph||this._graphBindD3ToReactComponent(),this._zoomConfig()}},{key:"componentWillUnmount",value:function(){this.pauseSimulation(),this.nodeClickTimer&&(clearTimeout(this.nodeClickTimer),this.nodeClickTimer=null),this.focusAnimationTimeout&&(clearTimeout(this.focusAnimationTimeout),this.focusAnimationTimeout=null)}},{key:"render",value:function(){var e=(0,h.renderGraph)(this.state.nodes,{onClickNode:this.onClickNode,onDoubleClickNode:this.onDoubleClickNode,onRightClickNode:this.onRightClickNode,onMouseOverNode:this.onMouseOverNode,onMouseOut:this.onMouseOutNode},this.state.d3Links,this.state.links,{onClickLink:this.props.onClickLink,onRightClickLink:this.props.onRightClickLink,onMouseOverLink:this.onMouseOverLink,onMouseOutLink:this.onMouseOutLink},this.state.config,this.state.highlightedNode,this.state.highlightedLink,this.state.transform),t=e.nodes,n=e.links,i=e.defs,a={height:this.state.config.height,width:this.state.config.width},o=this._generateFocusAnimationProps();return r.default.createElement("div",{id:"".concat(this.state.id,"-").concat(u.default.GRAPH_WRAPPER_ID)},r.default.createElement("svg",{name:"svg-container-".concat(this.state.id),style:a,onClick:this.onClickGraph},i,r.default.createElement("g",g({id:"".concat(this.state.id,"-").concat(u.default.GRAPH_CONTAINER_ID)},o),n,t)))}}]),t}(r.default.Component);t.default=A},37973(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.computeNodeDegree=l,t.getTargetLeafConnections=f,t.isNodeVisible=d,t.toggleLinksConnections=h,t.toggleLinksMatrixConnections=p;var r=n(52694);function i(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 a(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:{};return Object.keys(t).reduce(function(n,r){return t[r]?Object.keys(t[r]).reduce(function(n,i){return e===r&&(n.outDegree+=t[e][i]),e===i&&(n.inDegree+=t[r][e]),n},n):n},{inDegree:0,outDegree:0})}function f(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0,r=n.directed;return(t[e]?Object.keys(t[e]):[]).reduce(function(n,i){return c(i,t,r)&&n.push({source:e,target:i}),n},[])}function d(e,t,n){if(!t[e])return!1;if(t[e]._orphan)return!0;var r=l(e,n),i=r.inDegree,a=r.outDegree;return i>0||a>0}function h(e,t){return e.map(function(e){var n=e.source,i=e.target,o=(0,r.getId)(n),s=(0,r.getId)(i);return a({},e,{isHidden:!(t&&t[o]&&t[o][s])})})}function p(e,t,n){var r=n.directed;return t.reduce(function(e,t){e[t.source]||(e[t.source]={}),e[t.source][t.target]||(e[t.source][t.target]=0);var n=0===e[t.source][t.target]?1:0;return e[t.source][t.target]=n,r||(e[t.target][t.source]=n),e},a({},e))}n(69901)},99182(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.buildLinkProps=h,t.buildNodeProps=p;var r=s(n(53880)),i=n(37109),a=n(80362),o=n(52694);function s(e){return e&&e.__esModule?e:{default:e}}function u(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;t2&&void 0!==arguments[2]?arguments[2]:{},i=arguments.length>3?arguments[3]:void 0,a=arguments.length>4?arguments[4]:void 0,o=arguments.length>5?arguments[5]:void 0,s=e.highlighted||e.id===(a&&a.source)||e.id===(a&&a.target),u=d(e,i,a,t),l=e.color||t.node.color;s&&t.node.highlightColor!==r.default.KEYWORDS.SAME&&(l=t.node.highlightColor);var h=e.strokeColor||t.node.strokeColor;s&&t.node.highlightStrokeColor!==r.default.KEYWORDS.SAME&&(h=t.node.highlightStrokeColor);var p=e[t.node.labelProperty]||e.id;"function"==typeof t.node.labelProperty&&(p=t.node.labelProperty(e));var b=e.labelPosition||t.node.labelPosition,m=e.strokeWidth||t.node.strokeWidth;s&&t.node.highlightStrokeWidth!==r.default.KEYWORDS.SAME&&(m=t.node.highlightStrokeWidth);var g=1/o,v=e.size||t.node.size,y="object"!==f(v),w=0;y?w=v:"top"===b||"bottom"===b?w=v.height:("right"===b||"left"===b)&&(w=v.width);var _=e.fontSize||t.node.fontSize,E=e.highlightFontSize||t.node.highlightFontSize,S=s?E:_,k=S*g+w/100+1.5,x=e.svg||t.node.svg,T=e.fontColor||t.node.fontColor,M=t.node.renderLabel;return void 0!==e.renderLabel&&"boolean"==typeof e.renderLabel&&(M=e.renderLabel),c({},e,{className:r.default.NODE_CLASS_NAME,cursor:t.node.mouseCursor,cx:(null==e?void 0:e.x)||"0",cy:(null==e?void 0:e.y)||"0",dx:k,fill:l,fontColor:T,fontSize:S*g,fontWeight:s?t.node.highlightFontWeight:t.node.fontWeight,id:e.id,label:p,labelPosition:b,opacity:u,overrideGlobalViewGenerator:!e.viewGenerator&&e.svg,renderLabel:M,size:y?v*g:{height:v.height*g,width:v.width*g},stroke:h,strokeWidth:m*g,svg:x,type:e.symbolType||t.node.symbolType,viewGenerator:e.viewGenerator||t.node.viewGenerator,onClickNode:n.onClickNode,onMouseOut:n.onMouseOut,onMouseOverNode:n.onMouseOverNode,onRightClickNode:n.onRightClickNode})}},98510(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n={automaticRearrangeAfterDropNode:!1,collapsible:!1,directed:!1,focusAnimationDuration:.75,focusZoom:1,freezeAllDragEvents:!1,height:400,highlightDegree:1,highlightOpacity:1,linkHighlightBehavior:!1,maxZoom:8,minZoom:.1,initialZoom:null,nodeHighlightBehavior:!1,panAndZoom:!1,staticGraph:!1,staticGraphWithDragAndDrop:!1,width:800,d3:{alphaTarget:.05,gravity:-100,linkLength:100,linkStrength:1,disableLinkForce:!1},node:{color:"#d3d3d3",fontColor:"black",fontSize:8,fontWeight:"normal",highlightColor:"SAME",highlightFontSize:8,highlightFontWeight:"normal",highlightStrokeColor:"SAME",highlightStrokeWidth:"SAME",labelProperty:"id",labelPosition:null,mouseCursor:"pointer",opacity:1,renderLabel:!0,size:200,strokeColor:"none",strokeWidth:1.5,svg:"",symbolType:"circle",viewGenerator:null},link:{color:"#d3d3d3",fontColor:"black",fontSize:8,fontWeight:"normal",highlightColor:"SAME",highlightFontSize:8,highlightFontWeight:"normal",labelProperty:"label",mouseCursor:"pointer",opacity:1,renderLabel:!1,semanticStrokeWidth:!1,strokeWidth:1.5,markerHeight:6,markerWidth:6,type:"STRAIGHT",strokeDasharray:0,strokeDashoffset:0,strokeLinecap:"butt"}};t.default=n},53880(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=i(n(11041));function i(e){return e&&e.__esModule?e:{default:e}}function a(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 o(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:[],r=arguments.length>3?arguments[3]:void 0,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{},a=n.find(function(t){return t.source.id===e.source&&t.target.id===e.target}),o=a&&(0,c.pick)(a,m),s=(0,c.antiPick)(e,["source","target"]);if(o){var u=i.config&&Object.prototype.hasOwnProperty.call(i.config,"directed")&&r.directed!==i.config.directed,l=h({index:t},o,{},s);return u?h({},l,{isHidden:!1}):r.collapsible?l:h({},l,{isHidden:!1})}var f=!1,d={id:e.source,highlighted:f},p={id:e.target,highlighted:f};return h({index:t,source:d,target:p},s)}function _(e,t){return Object.keys(e).reduce(function(n,r){var i=(0,l.computeNodeDegree)(r,t),a=i.inDegree,o=i.outDegree,s=e[r],u=0===a&&0===o?h({},s,{_orphan:!0}):s;return n[r]=u,n},{})}function E(e){e.nodes&&e.nodes.length||((0,c.logWarning)("Graph",u.default.INSUFFICIENT_DATA),e.nodes=[]),e.links||((0,c.logWarning)("Graph",u.default.INSUFFICIENT_LINKS),e.links=[]);for(var t=e.links.length,n=function(t){var n=e.links[t];e.nodes.find(function(e){return e.id===n.source})||(0,c.throwErr)("Graph","".concat(u.default.INVALID_LINKS,' - "').concat(n.source,'" is not a valid source node id')),e.nodes.find(function(e){return e.id===n.target})||(0,c.throwErr)("Graph","".concat(u.default.INVALID_LINKS,' - "').concat(n.target,'" is not a valid target node id')),n&&void 0!==n.value&&"number"!=typeof n.value&&(0,c.throwErr)("Graph","".concat(u.default.INVALID_LINK_VALUE,' - found in link with source "').concat(n.source,'" and target "').concat(n.target,'"'))},r=0;rx?o.focusZoom=x:T4&&void 0!==arguments[4]&&arguments[4],a=i?r:"",o=h({},e[r],{highlighted:i}),s=h({},e,p({},r,o));return t[r]&&0!==n.highlightDegree&&(s=Object.keys(t[r]).reduce(function(e,t){var n=h({},s[t],{highlighted:i});return e[t]=n,e},s)),{nodes:s,highlightedNode:a}}function I(e){var t=Math.sqrt(Math.pow(e.x,2)+Math.pow(e.y,2));return 0===t?e:{x:e.x/t,y:e.y/t}}var D=new Set([o.default.SYMBOLS.CIRCLE]);function N(e,t,n,r){var i=e.sourceId,a=e.targetId,s=e.sourceCoords,u=void 0===s?{}:s,c=e.targetCoords,l=void 0===c?{}:c,f=null==t?void 0:t[i],d=null==t?void 0:t[a];if(!f||!d||(null===(_=n.node)||void 0===_?void 0:_.viewGenerator)||(null==f?void 0:f.viewGenerator)||(null==d?void 0:d.viewGenerator))return{sourceCoords:u,targetCoords:l};var h=f.symbolType||(null===(E=n.node)||void 0===E?void 0:E.symbolType),p=d.symbolType||(null===(S=n.node)||void 0===S?void 0:S.symbolType);if(!D.has(h)&&!D.has(p))return{sourceCoords:u,targetCoords:l};var b=u.x,m=u.y,g=l.x,v=l.y,y=I({x:g-b,y:v-m});if(h===o.default.SYMBOLS.CIRCLE){var w=(null==f?void 0:f.size)||n.node.size;b+=(w=.95*Math.sqrt(w/Math.PI))*y.x,m+=w*y.y}if(p===o.default.SYMBOLS.CIRCLE){var _,E,S,k,x,T=r*Math.min((null===(k=n.link)||void 0===k?void 0:k.markerWidth)||0,(null===(x=n.link)||void 0===x?void 0:x.markerHeight)||0),M=(null==d?void 0:d.size)||n.node.size;g-=((M=.95*Math.sqrt(M/Math.PI))+(n.directed?T:0))*y.x,v-=(M+(n.directed?T:0))*y.y}return{sourceCoords:{x:b,y:m},targetCoords:{x:g,y:v}}}},75791(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.renderGraph=E;var r=h(n(67294)),i=h(n(53880)),a=n(7619),o=h(n(33938)),s=h(n(61740)),u=h(n(28017)),c=n(99182),l=n(52694),f=n(37973),d=n(80362);function h(e){return e&&e.__esModule?e:{default:e}}function p(){return(p=Object.assign||function(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:i.LINE_TYPES.STRAIGHT,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[],o=e.x,s=e.y,u=p(i.LINE_TYPES[n]||i.LINE_TYPES.STRAIGHT),c=[].concat(a(r),[t]),l=c.map(function(t,n){var r,i=t.x,a=t.y,o=n>0?c[n-1]:e,s=u(o.x,o.y,i,a);return" A".concat(s,",").concat(s," 0 0,1 ").concat(i,",").concat(a)}).join("");return"M".concat(o,",").concat(s).concat(l)}},28017(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=i(n(67294));function i(e){return e&&e.__esModule?e:{default:e}}function a(e){return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function o(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}function s(e,t){for(var n=0;n=t&&e0&&void 0!==arguments[0]?arguments[0]:i.default.DEFAULT_NODE_SIZE,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:i.default.SYMBOLS.CIRCLE;return(0,r.symbol)().size(function(){return e}).type(function(){return o(t)})()}function u(e,t){switch(t){case"right":return{dx:e?"".concat(e):i.default.NODE_LABEL_DX,dy:"0",dominantBaseline:"middle",textAnchor:"start"};case"left":return{dx:e?"".concat(-e):"-".concat(i.default.NODE_LABEL_DX),dy:"0",dominantBaseline:"middle",textAnchor:"end"};case"top":return{dx:"0",dy:e?"".concat(-e):"-".concat(i.default.NODE_LABEL_DX),dominantBaseline:"baseline",textAnchor:"middle"};case"bottom":return{dx:"0",dy:e?"".concat(e):i.default.NODE_LABEL_DX,dominantBaseline:"hanging",textAnchor:"middle"};case"center":return{dx:"0",dy:"0",dominantBaseline:"middle",textAnchor:"middle"};default:return{dx:e?"".concat(e):i.default.NODE_LABEL_DX,dy:i.default.NODE_LABEL_DY}}}var c={buildSvgSymbol:s,getLabelPlacementProps:u};t.default=c},11041(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n={SYMBOLS:{CIRCLE:"circle",CROSS:"cross",DIAMOND:"diamond",SQUARE:"square",STAR:"star",TRIANGLE:"triangle",WYE:"wye"}};t.default=n},34214(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n={GRAPH_NO_ID_PROP:"id prop not defined! id property is mandatory and it should be unique.",INSUFFICIENT_LINKS:"you are passing invalid data to react-d3-graph. You must include a links array, even if empty, in the data object you're passing down to the component.",INVALID_LINKS:"you provided a invalid links data structure. Links source and target attributes must point to an existent node",INSUFFICIENT_DATA:"you have not provided enough data for react-d3-graph to render something. You need to provide at least one node",INVALID_LINK_VALUE:"links 'value' attribute must be of type number"};t.default=n},94164(e,t,n){"use strict";r={value:!0},Object.defineProperty(t,"kJ",{enumerable:!0,get:function(){return i.default}}),r={enumerable:!0,get:function(){return a.default}},r={enumerable:!0,get:function(){return o.default}};var r,i=s(n(82623)),a=s(n(61740)),o=s(n(33938));function s(e){return e&&e.__esModule?e:{default:e}}},69901(e,t){"use strict";function n(e){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.isDeepEqual=a,t.isEmptyObject=o,t.deepClone=s,t.merge=u,t.pick=c,t.antiPick=l,t.debounce=f,t.throwErr=h,t.logError=p,t.logWarning=b;var r=20;function i(e,t){return!!e&&Object.prototype.hasOwnProperty.call(e,t)&&"object"===n(e[t])&&null!==e[t]&&!o(e[t])}function a(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,s=[];if(0===n&&e===t)return!0;if(o(e)&&!o(t)||!o(e)&&o(t))return!1;var u=Object.keys(e),c=Object.keys(t);if(u.length!==c.length)return!1;for(var l=0,f=u;l1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,a=Object.keys(e),o=0,u=a;o0&&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]:0,a={};if(0===Object.keys(e||{}).length)return t&&!o(t)?t:{};for(var s=0,c=Object.keys(e);s1&&void 0!==arguments[1]?arguments[1]:[];return t.reduce(function(t,n){return Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]),t},{})}function l(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=Object.keys(e).filter(function(e){return!t.includes(e)});return c(e,n)}function f(e,t){var n;return function(){for(var r=arguments.length,i=Array(r),a=0;a0&&void 0!==arguments[0]?arguments[0]:"N/A",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"N/A";return"react-d3-graph :: ".concat(e," :: ").concat(t)}function h(e,t){throw Error(d(e,t))}function p(e,t){console.error(d(e,t))}function b(e,t){var n="react-d3-graph :: ".concat(e," :: ").concat(t);console.warn(n)}},64448(e,t,n){"use strict";/** @license React v16.12.0 + */ var r="undefined"!=typeof window&&"undefined"!=typeof document&&"undefined"!=typeof navigator,i=function(){for(var e=["Edge","Trident","Firefox"],t=0;t=0)return 1;return 0}();function a(e){var t=!1;return function(){!t&&(t=!0,window.Promise.resolve().then(function(){t=!1,e()}))}}function o(e){var t=!1;return function(){t||(t=!0,setTimeout(function(){t=!1,e()},i))}}var s=r&&window.Promise?a:o;function u(e){var t={};return e&&"[object Function]"===t.toString.call(e)}function c(e,t){if(1!==e.nodeType)return[];var n=e.ownerDocument.defaultView.getComputedStyle(e,null);return t?n[t]:n}function l(e){return"HTML"===e.nodeName?e:e.parentNode||e.host}function f(e){if(!e)return document.body;switch(e.nodeName){case"HTML":case"BODY":return e.ownerDocument.body;case"#document":return e.body}var t=c(e),n=t.overflow,r=t.overflowX,i=t.overflowY;return/(auto|scroll|overlay)/.test(n+i+r)?e:f(l(e))}function d(e){return e&&e.referenceNode?e.referenceNode:e}var h=r&&!!(window.MSInputMethodContext&&document.documentMode),p=r&&/MSIE 10/.test(navigator.userAgent);function b(e){return 11===e?h:10===e?p:h||p}function m(e){if(!e)return document.documentElement;for(var t=b(10)?document.body:null,n=e.offsetParent||null;n===t&&e.nextElementSibling;)n=(e=e.nextElementSibling).offsetParent;var r=n&&n.nodeName;return r&&"BODY"!==r&&"HTML"!==r?-1!==["TH","TD","TABLE"].indexOf(n.nodeName)&&"static"===c(n,"position")?m(n):n:e?e.ownerDocument.documentElement:document.documentElement}function g(e){var t=e.nodeName;return"BODY"!==t&&("HTML"===t||m(e.firstElementChild)===e)}function v(e){return null!==e.parentNode?v(e.parentNode):e}function y(e,t){if(!e||!e.nodeType||!t||!t.nodeType)return document.documentElement;var n=e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING,r=n?e:t,i=n?t:e,a=document.createRange();a.setStart(r,0),a.setEnd(i,0);var o=a.commonAncestorContainer;if(e!==o&&t!==o||r.contains(i))return g(o)?o:m(o);var s=v(e);return s.host?y(s.host,t):y(e,v(t).host)}function w(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"top",n="top"===t?"scrollTop":"scrollLeft",r=e.nodeName;if("BODY"===r||"HTML"===r){var i=e.ownerDocument.documentElement;return(e.ownerDocument.scrollingElement||i)[n]}return e[n]}function _(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=w(t,"top"),i=w(t,"left"),a=n?-1:1;return e.top+=r*a,e.bottom+=r*a,e.left+=i*a,e.right+=i*a,e}function E(e,t){var n="x"===t?"Left":"Top",r="Left"===n?"Right":"Bottom";return parseFloat(e["border"+n+"Width"],10)+parseFloat(e["border"+r+"Width"],10)}function S(e,t,n,r){return Math.max(t["offset"+e],t["scroll"+e],n["client"+e],n["offset"+e],n["scroll"+e],b(10)?parseInt(n["offset"+e])+parseInt(r["margin"+("Height"===e?"Top":"Left")])+parseInt(r["margin"+("Height"===e?"Bottom":"Right")]):0)}function k(e){var t=e.body,n=e.documentElement,r=b(10)&&getComputedStyle(n);return{height:S("Height",t,n,r),width:S("Width",t,n,r)}}var x=function(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")},T=function(){function e(e,t){for(var n=0;n2&&void 0!==arguments[2]&&arguments[2],r=b(10),i="HTML"===t.nodeName,a=L(e),o=L(t),s=f(e),u=c(t),l=parseFloat(u.borderTopWidth,10),d=parseFloat(u.borderLeftWidth,10);n&&i&&(o.top=Math.max(o.top,0),o.left=Math.max(o.left,0));var h=A({top:a.top-o.top-l,left:a.left-o.left-d,width:a.width,height:a.height});if(h.marginTop=0,h.marginLeft=0,!r&&i){var p=parseFloat(u.marginTop,10),m=parseFloat(u.marginLeft,10);h.top-=l-p,h.bottom-=l-p,h.left-=d-m,h.right-=d-m,h.marginTop=p,h.marginLeft=m}return(r&&!n?t.contains(s):t===s&&"BODY"!==s.nodeName)&&(h=_(h,t)),h}function I(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e.ownerDocument.documentElement,r=C(e,n),i=Math.max(n.clientWidth,window.innerWidth||0),a=Math.max(n.clientHeight,window.innerHeight||0),o=t?0:w(n),s=t?0:w(n,"left");return A({top:o-r.top+r.marginTop,left:s-r.left+r.marginLeft,width:i,height:a})}function D(e){var t=e.nodeName;if("BODY"===t||"HTML"===t)return!1;if("fixed"===c(e,"position"))return!0;var n=l(e);return!!n&&D(n)}function N(e){if(!e||!e.parentElement||b())return document.documentElement;for(var t=e.parentElement;t&&"none"===c(t,"transform");)t=t.parentElement;return t||document.documentElement}function P(e,t,n,r){var i=arguments.length>4&&void 0!==arguments[4]&&arguments[4],a={top:0,left:0},o=i?N(e):y(e,d(t));if("viewport"===r)a=I(o,i);else{var s=void 0;"scrollParent"===r?"BODY"===(s=f(l(t))).nodeName&&(s=e.ownerDocument.documentElement):s="window"===r?e.ownerDocument.documentElement:r;var u=C(s,o,i);if("HTML"!==s.nodeName||D(o))a=u;else{var c=k(e.ownerDocument),h=c.height,p=c.width;a.top+=u.top-u.marginTop,a.bottom=h+u.top,a.left+=u.left-u.marginLeft,a.right=p+u.left}}var b="number"==typeof(n=n||0);return a.left+=b?n:n.left||0,a.top+=b?n:n.top||0,a.right-=b?n:n.right||0,a.bottom-=b?n:n.bottom||0,a}function R(e){var t;return e.width*e.height}function j(e,t,n,r,i){var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0;if(-1===e.indexOf("auto"))return e;var o=P(n,r,a,i),s={top:{width:o.width,height:t.top-o.top},right:{width:o.right-t.right,height:o.height},bottom:{width:o.width,height:o.bottom-t.bottom},left:{width:t.left-o.left,height:o.height}},u=Object.keys(s).map(function(e){return O({key:e},s[e],{area:R(s[e])})}).sort(function(e,t){return t.area-e.area}),c=u.filter(function(e){var t=e.width,r=e.height;return t>=n.clientWidth&&r>=n.clientHeight}),l=c.length>0?c[0].key:u[0].key,f=e.split("-")[1];return l+(f?"-"+f:"")}function F(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,i=r?N(t):y(t,d(n));return C(n,i,r)}function Y(e){var t=e.ownerDocument.defaultView.getComputedStyle(e),n=parseFloat(t.marginTop||0)+parseFloat(t.marginBottom||0),r=parseFloat(t.marginLeft||0)+parseFloat(t.marginRight||0);return{width:e.offsetWidth+r,height:e.offsetHeight+n}}function B(e){var t={left:"right",right:"left",bottom:"top",top:"bottom"};return e.replace(/left|right|bottom|top/g,function(e){return t[e]})}function U(e,t,n){n=n.split("-")[0];var r=Y(e),i={width:r.width,height:r.height},a=-1!==["right","left"].indexOf(n),o=a?"top":"left",s=a?"left":"top",u=a?"height":"width",c=a?"width":"height";return i[o]=t[o]+t[u]/2-r[u]/2,n===s?i[s]=t[s]-r[c]:i[s]=t[B(s)],i}function H(e,t){return Array.prototype.find?e.find(t):e.filter(t)[0]}function $(e,t,n){if(Array.prototype.findIndex)return e.findIndex(function(e){return e[t]===n});var r=H(e,function(e){return e[t]===n});return e.indexOf(r)}function z(e,t,n){return(void 0===n?e:e.slice(0,$(e,"name",n))).forEach(function(e){e.function&&console.warn("`modifier.function` is deprecated, use `modifier.fn`!");var n=e.function||e.fn;e.enabled&&u(n)&&(t.offsets.popper=A(t.offsets.popper),t.offsets.reference=A(t.offsets.reference),t=n(t,e))}),t}function G(){if(!this.state.isDestroyed){var e={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};e.offsets.reference=F(this.state,this.popper,this.reference,this.options.positionFixed),e.placement=j(this.options.placement,e.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),e.originalPlacement=e.placement,e.positionFixed=this.options.positionFixed,e.offsets.popper=U(this.popper,e.offsets.reference,e.placement),e.offsets.popper.position=this.options.positionFixed?"fixed":"absolute",e=z(this.modifiers,e),this.state.isCreated?this.options.onUpdate(e):(this.state.isCreated=!0,this.options.onCreate(e))}}function W(e,t){return e.some(function(e){var n=e.name;return e.enabled&&n===t})}function K(e){for(var t=[!1,"ms","Webkit","Moz","O"],n=e.charAt(0).toUpperCase()+e.slice(1),r=0;ro[p]&&(e.offsets.popper[d]+=s[d]+b-o[p]),e.offsets.popper=A(e.offsets.popper);var m=s[d]+s[l]/2-b/2,g=c(e.instance.popper),v=parseFloat(g["margin"+f],10),y=parseFloat(g["border"+f+"Width"],10),w=m-e.offsets.popper[d]-v-y;return w=Math.max(Math.min(o[l]-b,w),0),e.arrowElement=r,e.offsets.arrow=(M(n={},d,Math.round(w)),M(n,h,""),n),e}function ef(e){return"end"===e?"start":"start"===e?"end":e}var ed=["auto-start","auto","auto-end","top-start","top","top-end","right-start","right","right-end","bottom-end","bottom","bottom-start","left-end","left","left-start"],eh=ed.slice(3);function ep(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=eh.indexOf(e),r=eh.slice(n+1).concat(eh.slice(0,n));return t?r.reverse():r}var eb={FLIP:"flip",CLOCKWISE:"clockwise",COUNTERCLOCKWISE:"counterclockwise"};function em(e,t){if(W(e.instance.modifiers,"inner")||e.flipped&&e.placement===e.originalPlacement)return e;var n=P(e.instance.popper,e.instance.reference,t.padding,t.boundariesElement,e.positionFixed),r=e.placement.split("-")[0],i=B(r),a=e.placement.split("-")[1]||"",o=[];switch(t.behavior){case eb.FLIP:o=[r,i];break;case eb.CLOCKWISE:o=ep(r);break;case eb.COUNTERCLOCKWISE:o=ep(r,!0);break;default:o=t.behavior}return o.forEach(function(s,u){if(r!==s||o.length===u+1)return e;i=B(r=e.placement.split("-")[0]);var c=e.offsets.popper,l=e.offsets.reference,f=Math.floor,d="left"===r&&f(c.right)>f(l.left)||"right"===r&&f(c.left)f(l.top)||"bottom"===r&&f(c.top)f(n.right),b=f(c.top)f(n.bottom),g="left"===r&&h||"right"===r&&p||"top"===r&&b||"bottom"===r&&m,v=-1!==["top","bottom"].indexOf(r),y=!!t.flipVariations&&(v&&"start"===a&&h||v&&"end"===a&&p||!v&&"start"===a&&b||!v&&"end"===a&&m),w=!!t.flipVariationsByContent&&(v&&"start"===a&&p||v&&"end"===a&&h||!v&&"start"===a&&m||!v&&"end"===a&&b),_=y||w;(d||g||_)&&(e.flipped=!0,(d||g)&&(r=o[u+1]),_&&(a=ef(a)),e.placement=r+(a?"-"+a:""),e.offsets.popper=O({},e.offsets.popper,U(e.instance.popper,e.offsets.reference,e.placement)),e=z(e.instance.modifiers,e,"flip"))}),e}function eg(e){var t=e.offsets,n=t.popper,r=t.reference,i=e.placement.split("-")[0],a=Math.floor,o=-1!==["top","bottom"].indexOf(i),s=o?"right":"bottom",u=o?"left":"top",c=o?"width":"height";return n[s]a(r[s])&&(e.offsets.popper[u]=a(r[s])),e}function ev(e,t,n,r){var i=e.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),a=+i[1],o=i[2];if(!a)return e;if(0===o.indexOf("%")){var s=void 0;return A(s="%p"===o?n:r)[t]/100*a}if("vh"!==o&&"vw"!==o)return a;var u=void 0;return(u="vh"===o?Math.max(document.documentElement.clientHeight,window.innerHeight||0):Math.max(document.documentElement.clientWidth,window.innerWidth||0))/100*a}function ey(e,t,n,r){var i=[0,0],a=-1!==["right","left"].indexOf(r),o=e.split(/(\+|\-)/).map(function(e){return e.trim()}),s=o.indexOf(H(o,function(e){return -1!==e.search(/,|\s/)}));o[s]&&-1===o[s].indexOf(",")&&console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead.");var u=/\s*,\s*|\s+/,c=-1!==s?[o.slice(0,s).concat([o[s].split(u)[0]]),[o[s].split(u)[1]].concat(o.slice(s+1))]:[o];return(c=c.map(function(e,r){var i=(1===r?!a:a)?"height":"width",o=!1;return e.reduce(function(e,t){return""===e[e.length-1]&&-1!==["+","-"].indexOf(t)?(e[e.length-1]=t,o=!0,e):o?(e[e.length-1]+=t,o=!1,e):e.concat(t)},[]).map(function(e){return ev(e,i,t,n)})})).forEach(function(e,t){e.forEach(function(n,r){et(n)&&(i[t]+=n*("-"===e[r-1]?-1:1))})}),i}function ew(e,t){var n=t.offset,r=e.placement,i=e.offsets,a=i.popper,o=i.reference,s=r.split("-")[0],u=void 0;return u=et(+n)?[+n,0]:ey(n,a,o,s),"left"===s?(a.top+=u[0],a.left-=u[1]):"right"===s?(a.top+=u[0],a.left+=u[1]):"top"===s?(a.left+=u[0],a.top-=u[1]):"bottom"===s&&(a.left+=u[0],a.top+=u[1]),e.popper=a,e}function e_(e,t){var n=t.boundariesElement||m(e.instance.popper);e.instance.reference===n&&(n=m(n));var r=K("transform"),i=e.instance.popper.style,a=i.top,o=i.left,s=i[r];i.top="",i.left="",i[r]="";var u=P(e.instance.popper,e.instance.reference,t.padding,n,e.positionFixed);i.top=a,i.left=o,i[r]=s,t.boundaries=u;var c=t.priority,l=e.offsets.popper,f={primary:function(e){var n=l[e];return l[e]u[e]&&!t.escapeWithReference&&(r=Math.min(l[n],u[e]-("right"===e?l.width:l.height))),M({},n,r)}};return c.forEach(function(e){l=O({},l,f[-1!==["left","top"].indexOf(e)?"primary":"secondary"](e))}),e.offsets.popper=l,e}function eE(e){var t=e.placement,n=t.split("-")[0],r=t.split("-")[1];if(r){var i=e.offsets,a=i.reference,o=i.popper,s=-1!==["bottom","top"].indexOf(n),u=s?"left":"top",c=s?"width":"height",l={start:M({},u,a[u]),end:M({},u,a[u]+a[c]-o[c])};e.offsets.popper=O({},o,l[r])}return e}function eS(e){if(!ec(e.instance.modifiers,"hide","preventOverflow"))return e;var t=e.offsets.reference,n=H(e.instance.modifiers,function(e){return"preventOverflow"===e.name}).boundaries;if(t.bottomn.right||t.top>n.bottom||t.right2&&void 0!==arguments[2]?arguments[2]:{};x(this,e),this.scheduleUpdate=function(){return requestAnimationFrame(r.update)},this.update=s(this.update.bind(this)),this.options=O({},e.Defaults,i),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=t&&t.jquery?t[0]:t,this.popper=n&&n.jquery?n[0]:n,this.options.modifiers={},Object.keys(O({},e.Defaults.modifiers,i.modifiers)).forEach(function(t){r.options.modifiers[t]=O({},e.Defaults.modifiers[t]||{},i.modifiers?i.modifiers[t]:{})}),this.modifiers=Object.keys(this.options.modifiers).map(function(e){return O({name:e},r.options.modifiers[e])}).sort(function(e,t){return e.order-t.order}),this.modifiers.forEach(function(e){e.enabled&&u(e.onLoad)&&e.onLoad(r.reference,r.popper,r.options,e,r.state)}),this.update();var a=this.options.eventsEnabled;a&&this.enableEventListeners(),this.state.eventsEnabled=a}return T(e,[{key:"update",value:function(){return G.call(this)}},{key:"destroy",value:function(){return V.call(this)}},{key:"enableEventListeners",value:function(){return J.call(this)}},{key:"disableEventListeners",value:function(){return ee.call(this)}}]),e}();eT.Utils=("undefined"!=typeof window?window:n.g).PopperUtils,eT.placements=ed,eT.Defaults=ex;let eM=eT},92703(e,t,n){"use strict";var r=n(50414);function i(){}function a(){}a.resetWarningCache=i,e.exports=function(){function e(e,t,n,i,a,o){if(o!==r){var s=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:a,resetWarningCache:i};return n.PropTypes=n,n}},45697(e,t,n){e.exports=n(92703)()},50414(e){"use strict";var t="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";e.exports=t},55760(e){"use strict";function t(e){this._maxSize=e,this.clear()}t.prototype.clear=function(){this._size=0,this._values=Object.create(null)},t.prototype.get=function(e){return this._values[e]},t.prototype.set=function(e,t){return this._size>=this._maxSize&&this.clear(),!(e in this._values)&&this._size++,this._values[e]=t};var n=/[^.^\]^[]+|(?=\[\]|\.\.)/g,r=/^\d+$/,i=/^\d/,a=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,o=/^\s*(['"]?)(.*?)(\1)\s*$/,s=512,u=new t(s),c=new t(s),l=new t(s);function f(e){return u.get(e)||u.set(e,d(e).map(function(e){return e.replace(o,"$2")}))}function d(e){return e.match(n)}function h(e,t,n){var r,i,a,o,s=e.length;for(i=0;i4&&n.slice(0,4)===o&&s.test(t)&&("-"===t.charAt(4)?u=f(t):t=d(t),c=i),new c(u,t))}function f(e){var t=e.slice(5).replace(u,p);return o+t.charAt(0).toUpperCase()+t.slice(1)}function d(e){var t=e.slice(4);return u.test(t)?e:("-"!==(t=t.replace(c,h)).charAt(0)&&(t="-"+t),o+t)}function h(e){return"-"+e.toLowerCase()}function p(e){return e.charAt(1).toUpperCase()}},97247(e,t,n){"use strict";var r=n(19940),i=n(8289),a=n(5812),o=n(94397),s=n(67716),u=n(61805);e.exports=r([a,i,o,s,u])},67716(e,t,n){"use strict";var r=n(17e3),i=n(17596),a=r.booleanish,o=r.number,s=r.spaceSeparated;function u(e,t){return"role"===t?t:"aria-"+t.slice(4).toLowerCase()}e.exports=i({transform:u,properties:{ariaActiveDescendant:null,ariaAtomic:a,ariaAutoComplete:null,ariaBusy:a,ariaChecked:a,ariaColCount:o,ariaColIndex:o,ariaColSpan:o,ariaControls:s,ariaCurrent:null,ariaDescribedBy:s,ariaDetails:null,ariaDisabled:a,ariaDropEffect:s,ariaErrorMessage:null,ariaExpanded:a,ariaFlowTo:s,ariaGrabbed:a,ariaHasPopup:null,ariaHidden:a,ariaInvalid:null,ariaKeyShortcuts:null,ariaLabel:null,ariaLabelledBy:s,ariaLevel:o,ariaLive:null,ariaModal:a,ariaMultiLine:a,ariaMultiSelectable:a,ariaOrientation:null,ariaOwns:s,ariaPlaceholder:null,ariaPosInSet:o,ariaPressed:a,ariaReadOnly:a,ariaRelevant:null,ariaRequired:a,ariaRoleDescription:s,ariaRowCount:o,ariaRowIndex:o,ariaRowSpan:o,ariaSelected:a,ariaSetSize:o,ariaSort:null,ariaValueMax:o,ariaValueMin:o,ariaValueNow:o,ariaValueText:null,role:null}})},61805(e,t,n){"use strict";var r=n(17e3),i=n(17596),a=n(10855),o=r.boolean,s=r.overloadedBoolean,u=r.booleanish,c=r.number,l=r.spaceSeparated,f=r.commaSeparated;e.exports=i({space:"html",attributes:{acceptcharset:"accept-charset",classname:"class",htmlfor:"for",httpequiv:"http-equiv"},transform:a,mustUseProperty:["checked","multiple","muted","selected"],properties:{abbr:null,accept:f,acceptCharset:l,accessKey:l,action:null,allow:null,allowFullScreen:o,allowPaymentRequest:o,allowUserMedia:o,alt:null,as:null,async:o,autoCapitalize:null,autoComplete:l,autoFocus:o,autoPlay:o,capture:o,charSet:null,checked:o,cite:null,className:l,cols:c,colSpan:null,content:null,contentEditable:u,controls:o,controlsList:l,coords:c|f,crossOrigin:null,data:null,dateTime:null,decoding:null,default:o,defer:o,dir:null,dirName:null,disabled:o,download:s,draggable:u,encType:null,enterKeyHint:null,form:null,formAction:null,formEncType:null,formMethod:null,formNoValidate:o,formTarget:null,headers:l,height:c,hidden:o,high:c,href:null,hrefLang:null,htmlFor:l,httpEquiv:l,id:null,imageSizes:null,imageSrcSet:f,inputMode:null,integrity:null,is:null,isMap:o,itemId:null,itemProp:l,itemRef:l,itemScope:o,itemType:l,kind:null,label:null,lang:null,language:null,list:null,loading:null,loop:o,low:c,manifest:null,max:null,maxLength:c,media:null,method:null,min:null,minLength:c,multiple:o,muted:o,name:null,nonce:null,noModule:o,noValidate:o,onAbort:null,onAfterPrint:null,onAuxClick:null,onBeforePrint:null,onBeforeUnload:null,onBlur:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onContextMenu:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnded:null,onError:null,onFocus:null,onFormData:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLanguageChange:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadEnd:null,onLoadStart:null,onMessage:null,onMessageError:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRejectionHandled:null,onReset:null,onResize:null,onScroll:null,onSecurityPolicyViolation:null,onSeeked:null,onSeeking:null,onSelect:null,onSlotChange:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnhandledRejection:null,onUnload:null,onVolumeChange:null,onWaiting:null,onWheel:null,open:o,optimum:c,pattern:null,ping:l,placeholder:null,playsInline:o,poster:null,preload:null,readOnly:o,referrerPolicy:null,rel:l,required:o,reversed:o,rows:c,rowSpan:c,sandbox:l,scope:null,scoped:o,seamless:o,selected:o,shape:null,size:c,sizes:null,slot:null,span:c,spellCheck:u,src:null,srcDoc:null,srcLang:null,srcSet:f,start:c,step:null,style:null,tabIndex:c,target:null,title:null,translate:null,type:null,typeMustMatch:o,useMap:null,value:u,width:c,wrap:null,align:null,aLink:null,archive:l,axis:null,background:null,bgColor:null,border:c,borderColor:null,bottomMargin:c,cellPadding:null,cellSpacing:null,char:null,charOff:null,classId:null,clear:null,code:null,codeBase:null,codeType:null,color:null,compact:o,declare:o,event:null,face:null,frame:null,frameBorder:null,hSpace:c,leftMargin:c,link:null,longDesc:null,lowSrc:null,marginHeight:c,marginWidth:c,noResize:o,noHref:o,noShade:o,noWrap:o,object:null,profile:null,prompt:null,rev:null,rightMargin:c,rules:null,scheme:null,scrolling:u,standby:null,summary:null,text:null,topMargin:c,valueType:null,version:null,vAlign:null,vLink:null,vSpace:c,allowTransparency:null,autoCorrect:null,autoSave:null,disablePictureInPicture:o,disableRemotePlayback:o,prefix:null,property:null,results:c,security:null,unselectable:null}})},10855(e,t,n){"use strict";var r=n(28740);function i(e,t){return r(e,t.toLowerCase())}e.exports=i},28740(e){"use strict";function t(e,t){return t in e?e[t]:t}e.exports=t},17596(e,t,n){"use strict";var r=n(66632),i=n(99607),a=n(81674);function o(e){var t,n,o=e.space,s=e.mustUseProperty||[],u=e.attributes||{},c=e.properties,l=e.transform,f={},d={};for(t in c)n=new a(t,l(u,t),c[t],o),-1!==s.indexOf(t)&&(n.mustUseProperty=!0),f[t]=n,d[r(t)]=t,d[r(n.attribute)]=t;return new i(f,d,o)}e.exports=o},81674(e,t,n){"use strict";var r=n(57643),i=n(17e3);e.exports=s,s.prototype=new r,s.prototype.defined=!0;var a=["boolean","booleanish","overloadedBoolean","number","commaSeparated","spaceSeparated","commaOrSpaceSeparated"],o=a.length;function s(e,t,n,s){var c,l=-1;for(u(this,"space",s),r.call(this,e,t);++l=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function l(e,t){if(null==e)return{};var n,r,i={},a=Object.keys(e);for(r=0;r=0||(i[n]=e[n]);return i}function f(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}function d(e,t){for(var n=0;n1&&void 0!==arguments[1]&&arguments[1];return n._tick((0,d.updateNodeHighlightedValue)(n.state.nodes,n.state.links,n.state.config,e,t))}),O(S(n),"_tick",function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;return t?n.setState(e,t):n.setState(e)}),O(S(n),"_zoomConfig",function(){var e=(0,o.select)("#".concat(n.state.id,"-").concat(u.default.GRAPH_WRAPPER_ID)),t=(0,s.zoom)().scaleExtent([n.state.config.minZoom,n.state.config.maxZoom]);n.state.config.freezeAllDragEvents||t.on("zoom",n._zoomed),null!==n.state.config.initialZoom&&t.scaleTo(e,n.state.config.initialZoom),e.call(t).on("dblclick.zoom",null)}),O(S(n),"_zoomed",function(){var e=o.event.transform;(0,o.selectAll)("#".concat(n.state.id,"-").concat(u.default.GRAPH_CONTAINER_ID)).attr("transform",e),n.state.config.panAndZoom&&n.setState({transform:e.k}),n.debouncedOnZoomChange&&n.state.previousZoom!==e.k&&(n.debouncedOnZoomChange(n.state.previousZoom,e.k),n.setState({previousZoom:e.k}))}),O(S(n),"onClickGraph",function(e){n.state.enableFocusAnimation&&n.setState({enableFocusAnimation:!1});var t,r,i,a=e.target&&e.target.tagName,o=null==e?void 0:null===(t=e.target)||void 0===t?void 0:null===(r=t.attributes)||void 0===r?void 0:null===(i=r.name)||void 0===i?void 0:i.value,s="svg-container-".concat(n.state.id);"SVG"===a.toUpperCase()&&o===s&&n.props.onClickGraph&&n.props.onClickGraph(e)}),O(S(n),"onClickNode",function(e){var t=n.state.nodes[e];if(n.state.config.collapsible){var r=(0,f.getTargetLeafConnections)(e,n.state.links,n.state.config),i=(0,f.toggleLinksMatrixConnections)(n.state.links,r,n.state.config),a=(0,f.toggleLinksConnections)(n.state.d3Links,i),o=null==r?void 0:r["0"],s=!1;o&&(s=1===i[o.source][o.target]),n._tick({links:i,d3Links:a},function(){n.props.onClickNode&&n.props.onClickNode(e,t),s&&n._graphNodeDragConfig()})}else n.nodeClickTimer?(n.props.onDoubleClickNode&&n.props.onDoubleClickNode(e,t),n.nodeClickTimer=clearTimeout(n.nodeClickTimer)):n.nodeClickTimer=setTimeout(function(){n.props.onClickNode&&n.props.onClickNode(e,t),n.nodeClickTimer=null},u.default.TTL_DOUBLE_CLICK_IN_MS)}),O(S(n),"onRightClickNode",function(e,t){var r=n.state.nodes[t];n.props.onRightClickNode&&n.props.onRightClickNode(e,t,r)}),O(S(n),"onMouseOverNode",function(e){if(!n.isDraggingNode){var t=n.state.nodes[e];n.props.onMouseOverNode&&n.props.onMouseOverNode(e,t),n.state.config.nodeHighlightBehavior&&n._setNodeHighlightedValue(e,!0)}}),O(S(n),"onMouseOutNode",function(e){if(!n.isDraggingNode){var t=n.state.nodes[e];n.props.onMouseOutNode&&n.props.onMouseOutNode(e,t),n.state.config.nodeHighlightBehavior&&n._setNodeHighlightedValue(e,!1)}}),O(S(n),"onMouseOverLink",function(e,t){if(n.props.onMouseOverLink&&n.props.onMouseOverLink(e,t),n.state.config.linkHighlightBehavior){var r={source:e,target:t};n._tick({highlightedLink:r})}}),O(S(n),"onMouseOutLink",function(e,t){if(n.props.onMouseOutLink&&n.props.onMouseOutLink(e,t),n.state.config.linkHighlightBehavior){var r=void 0;n._tick({highlightedLink:r})}}),O(S(n),"onNodePositionChange",function(e){if(n.props.onNodePositionChange){var t=e.id,r=e.x,i=e.y;n.props.onNodePositionChange(t,r,i)}}),O(S(n),"pauseSimulation",function(){return n.state.simulation.stop()}),O(S(n),"resetNodesPositions",function(){if(!n.state.config.staticGraph){var e=(0,d.initializeNodes)(n.props.data.nodes);for(var t in n.state.nodes){var r=n.state.nodes[t];if(r.fx&&r.fy&&(Reflect.deleteProperty(r,"fx"),Reflect.deleteProperty(r,"fy")),t in e){var i=e[t];r.x=i.x,r.y=i.y}}n.state.simulation.alphaTarget(n.state.config.d3.alphaTarget).restart(),n._tick()}}),O(S(n),"restartSimulation",function(){return!n.state.config.staticGraph&&n.state.simulation.restart()}),n.props.id||(0,p.throwErr)(n.constructor.name,l.default.GRAPH_NO_ID_PROP),n.focusAnimationTimeout=null,n.nodeClickTimer=null,n.isDraggingNode=!1,n.state=(0,d.initializeGraphState)(n.props,n.state),n.debouncedOnZoomChange=n.props.onZoomChange?(0,p.debounce)(n.props.onZoomChange,100):null,n}return T(t,e),x(t,[{key:"_graphLinkForceConfig",value:function(){var e=(0,a.forceLink)(this.state.d3Links).id(function(e){return e.id}).distance(this.state.config.d3.linkLength).strength(this.state.config.d3.linkStrength);this.state.simulation.force(u.default.LINK_CLASS_NAME,e)}},{key:"_graphNodeDragConfig",value:function(){var e=(0,i.drag)().on("start",this._onDragStart).on("drag",this._onDragMove).on("end",this._onDragEnd);(0,o.select)("#".concat(this.state.id,"-").concat(u.default.GRAPH_WRAPPER_ID)).selectAll(".node").call(e)}},{key:"_graphBindD3ToReactComponent",value:function(){this.state.config.d3.disableLinkForce||(this.state.simulation.nodes(this.state.d3Nodes).on("tick",this._tick),this._graphLinkForceConfig()),this.state.config.freezeAllDragEvents||this._graphNodeDragConfig()}}]),x(t,[{key:"UNSAFE_componentWillReceiveProps",value:function(e){var t=(0,d.checkForGraphElementsChanges)(e,this.state),n=t.graphElementsUpdated,r=t.newGraphElements,i=n?(0,d.initializeGraphState)(e,this.state):this.state,a=e.config||{},o=(0,d.checkForGraphConfigChanges)(e,this.state),s=o.configUpdated,l=o.d3ConfigUpdated,f=s?(0,p.merge)(c.default,a):this.state.config;r&&this.pauseSimulation();var h=a.panAndZoom!==this.state.config.panAndZoom?1:this.state.transform,b=e.data.focusedNodeId,m=this.state.d3Nodes.find(function(e){return"".concat(e.id)==="".concat(b)}),g="".concat(this.state.id,"-").concat(u.default.GRAPH_WRAPPER_ID),v=(0,d.getCenterAndZoomTransformation)(m,this.state.config,g)||this.state.focusTransformation,w=this.props.data.focusedNodeId!==e.data.focusedNodeId;e.onZoomChange&&(this.debouncedOnZoomChange=(0,p.debounce)(e.onZoomChange,100)),this.setState(y({},i,{config:f,configUpdated:s,d3ConfigUpdated:l,newGraphElements:r,transform:h,focusedNodeId:b,enableFocusAnimation:w,focusTransformation:v}))}},{key:"componentDidUpdate",value:function(){(this.state.config.staticGraph||this.state.config.staticGraphWithDragAndDrop)&&this.pauseSimulation(),!this.state.config.staticGraph&&(this.state.newGraphElements||this.state.d3ConfigUpdated)?(this._graphBindD3ToReactComponent(),this.state.config.staticGraphWithDragAndDrop||this.restartSimulation(),this.setState({newGraphElements:!1,d3ConfigUpdated:!1})):this.state.configUpdated&&this._graphNodeDragConfig(),this.state.configUpdated&&(this._zoomConfig(),this.setState({configUpdated:!1}))}},{key:"componentDidMount",value:function(){this.state.config.staticGraph||this._graphBindD3ToReactComponent(),this._zoomConfig()}},{key:"componentWillUnmount",value:function(){this.pauseSimulation(),this.nodeClickTimer&&(clearTimeout(this.nodeClickTimer),this.nodeClickTimer=null),this.focusAnimationTimeout&&(clearTimeout(this.focusAnimationTimeout),this.focusAnimationTimeout=null)}},{key:"render",value:function(){var e=(0,h.renderGraph)(this.state.nodes,{onClickNode:this.onClickNode,onDoubleClickNode:this.onDoubleClickNode,onRightClickNode:this.onRightClickNode,onMouseOverNode:this.onMouseOverNode,onMouseOut:this.onMouseOutNode},this.state.d3Links,this.state.links,{onClickLink:this.props.onClickLink,onRightClickLink:this.props.onRightClickLink,onMouseOverLink:this.onMouseOverLink,onMouseOutLink:this.onMouseOutLink},this.state.config,this.state.highlightedNode,this.state.highlightedLink,this.state.transform),t=e.nodes,n=e.links,i=e.defs,a={height:this.state.config.height,width:this.state.config.width},o=this._generateFocusAnimationProps();return r.default.createElement("div",{id:"".concat(this.state.id,"-").concat(u.default.GRAPH_WRAPPER_ID)},r.default.createElement("svg",{name:"svg-container-".concat(this.state.id),style:a,onClick:this.onClickGraph},i,r.default.createElement("g",g({id:"".concat(this.state.id,"-").concat(u.default.GRAPH_CONTAINER_ID)},o),n,t)))}}]),t}(r.default.Component);t.default=A},37973(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.computeNodeDegree=l,t.getTargetLeafConnections=f,t.isNodeVisible=d,t.toggleLinksConnections=h,t.toggleLinksMatrixConnections=p;var r=n(52694);function i(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 a(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:{};return Object.keys(t).reduce(function(n,r){return t[r]?Object.keys(t[r]).reduce(function(n,i){return e===r&&(n.outDegree+=t[e][i]),e===i&&(n.inDegree+=t[r][e]),n},n):n},{inDegree:0,outDegree:0})}function f(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0,r=n.directed;return(t[e]?Object.keys(t[e]):[]).reduce(function(n,i){return c(i,t,r)&&n.push({source:e,target:i}),n},[])}function d(e,t,n){if(!t[e])return!1;if(t[e]._orphan)return!0;var r=l(e,n),i=r.inDegree,a=r.outDegree;return i>0||a>0}function h(e,t){return e.map(function(e){var n=e.source,i=e.target,o=(0,r.getId)(n),s=(0,r.getId)(i);return a({},e,{isHidden:!(t&&t[o]&&t[o][s])})})}function p(e,t,n){var r=n.directed;return t.reduce(function(e,t){e[t.source]||(e[t.source]={}),e[t.source][t.target]||(e[t.source][t.target]=0);var n=0===e[t.source][t.target]?1:0;return e[t.source][t.target]=n,r||(e[t.target][t.source]=n),e},a({},e))}n(69901)},99182(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.buildLinkProps=h,t.buildNodeProps=p;var r=s(n(53880)),i=n(37109),a=n(80362),o=n(52694);function s(e){return e&&e.__esModule?e:{default:e}}function u(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;t2&&void 0!==arguments[2]?arguments[2]:{},i=arguments.length>3?arguments[3]:void 0,a=arguments.length>4?arguments[4]:void 0,o=arguments.length>5?arguments[5]:void 0,s=e.highlighted||e.id===(a&&a.source)||e.id===(a&&a.target),u=d(e,i,a,t),l=e.color||t.node.color;s&&t.node.highlightColor!==r.default.KEYWORDS.SAME&&(l=t.node.highlightColor);var h=e.strokeColor||t.node.strokeColor;s&&t.node.highlightStrokeColor!==r.default.KEYWORDS.SAME&&(h=t.node.highlightStrokeColor);var p=e[t.node.labelProperty]||e.id;"function"==typeof t.node.labelProperty&&(p=t.node.labelProperty(e));var b=e.labelPosition||t.node.labelPosition,m=e.strokeWidth||t.node.strokeWidth;s&&t.node.highlightStrokeWidth!==r.default.KEYWORDS.SAME&&(m=t.node.highlightStrokeWidth);var g=1/o,v=e.size||t.node.size,y="object"!==f(v),w=0;y?w=v:"top"===b||"bottom"===b?w=v.height:("right"===b||"left"===b)&&(w=v.width);var _=e.fontSize||t.node.fontSize,E=e.highlightFontSize||t.node.highlightFontSize,S=s?E:_,k=S*g+w/100+1.5,x=e.svg||t.node.svg,T=e.fontColor||t.node.fontColor,M=t.node.renderLabel;return void 0!==e.renderLabel&&"boolean"==typeof e.renderLabel&&(M=e.renderLabel),c({},e,{className:r.default.NODE_CLASS_NAME,cursor:t.node.mouseCursor,cx:(null==e?void 0:e.x)||"0",cy:(null==e?void 0:e.y)||"0",dx:k,fill:l,fontColor:T,fontSize:S*g,fontWeight:s?t.node.highlightFontWeight:t.node.fontWeight,id:e.id,label:p,labelPosition:b,opacity:u,overrideGlobalViewGenerator:!e.viewGenerator&&e.svg,renderLabel:M,size:y?v*g:{height:v.height*g,width:v.width*g},stroke:h,strokeWidth:m*g,svg:x,type:e.symbolType||t.node.symbolType,viewGenerator:e.viewGenerator||t.node.viewGenerator,onClickNode:n.onClickNode,onMouseOut:n.onMouseOut,onMouseOverNode:n.onMouseOverNode,onRightClickNode:n.onRightClickNode})}},98510(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n={automaticRearrangeAfterDropNode:!1,collapsible:!1,directed:!1,focusAnimationDuration:.75,focusZoom:1,freezeAllDragEvents:!1,height:400,highlightDegree:1,highlightOpacity:1,linkHighlightBehavior:!1,maxZoom:8,minZoom:.1,initialZoom:null,nodeHighlightBehavior:!1,panAndZoom:!1,staticGraph:!1,staticGraphWithDragAndDrop:!1,width:800,d3:{alphaTarget:.05,gravity:-100,linkLength:100,linkStrength:1,disableLinkForce:!1},node:{color:"#d3d3d3",fontColor:"black",fontSize:8,fontWeight:"normal",highlightColor:"SAME",highlightFontSize:8,highlightFontWeight:"normal",highlightStrokeColor:"SAME",highlightStrokeWidth:"SAME",labelProperty:"id",labelPosition:null,mouseCursor:"pointer",opacity:1,renderLabel:!0,size:200,strokeColor:"none",strokeWidth:1.5,svg:"",symbolType:"circle",viewGenerator:null},link:{color:"#d3d3d3",fontColor:"black",fontSize:8,fontWeight:"normal",highlightColor:"SAME",highlightFontSize:8,highlightFontWeight:"normal",labelProperty:"label",mouseCursor:"pointer",opacity:1,renderLabel:!1,semanticStrokeWidth:!1,strokeWidth:1.5,markerHeight:6,markerWidth:6,type:"STRAIGHT",strokeDasharray:0,strokeDashoffset:0,strokeLinecap:"butt"}};t.default=n},53880(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=i(n(11041));function i(e){return e&&e.__esModule?e:{default:e}}function a(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 o(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:[],r=arguments.length>3?arguments[3]:void 0,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{},a=n.find(function(t){return t.source.id===e.source&&t.target.id===e.target}),o=a&&(0,c.pick)(a,m),s=(0,c.antiPick)(e,["source","target"]);if(o){var u=i.config&&Object.prototype.hasOwnProperty.call(i.config,"directed")&&r.directed!==i.config.directed,l=h({index:t},o,{},s);return u?h({},l,{isHidden:!1}):r.collapsible?l:h({},l,{isHidden:!1})}var f=!1,d={id:e.source,highlighted:f},p={id:e.target,highlighted:f};return h({index:t,source:d,target:p},s)}function _(e,t){return Object.keys(e).reduce(function(n,r){var i=(0,l.computeNodeDegree)(r,t),a=i.inDegree,o=i.outDegree,s=e[r],u=0===a&&0===o?h({},s,{_orphan:!0}):s;return n[r]=u,n},{})}function E(e){e.nodes&&e.nodes.length||((0,c.logWarning)("Graph",u.default.INSUFFICIENT_DATA),e.nodes=[]),e.links||((0,c.logWarning)("Graph",u.default.INSUFFICIENT_LINKS),e.links=[]);for(var t=e.links.length,n=function(t){var n=e.links[t];e.nodes.find(function(e){return e.id===n.source})||(0,c.throwErr)("Graph","".concat(u.default.INVALID_LINKS,' - "').concat(n.source,'" is not a valid source node id')),e.nodes.find(function(e){return e.id===n.target})||(0,c.throwErr)("Graph","".concat(u.default.INVALID_LINKS,' - "').concat(n.target,'" is not a valid target node id')),n&&void 0!==n.value&&"number"!=typeof n.value&&(0,c.throwErr)("Graph","".concat(u.default.INVALID_LINK_VALUE,' - found in link with source "').concat(n.source,'" and target "').concat(n.target,'"'))},r=0;rx?o.focusZoom=x:T4&&void 0!==arguments[4]&&arguments[4],a=i?r:"",o=h({},e[r],{highlighted:i}),s=h({},e,p({},r,o));return t[r]&&0!==n.highlightDegree&&(s=Object.keys(t[r]).reduce(function(e,t){var n=h({},s[t],{highlighted:i});return e[t]=n,e},s)),{nodes:s,highlightedNode:a}}function I(e){var t=Math.sqrt(Math.pow(e.x,2)+Math.pow(e.y,2));return 0===t?e:{x:e.x/t,y:e.y/t}}var D=new Set([o.default.SYMBOLS.CIRCLE]);function N(e,t,n,r){var i=e.sourceId,a=e.targetId,s=e.sourceCoords,u=void 0===s?{}:s,c=e.targetCoords,l=void 0===c?{}:c,f=null==t?void 0:t[i],d=null==t?void 0:t[a];if(!f||!d||(null===(_=n.node)||void 0===_?void 0:_.viewGenerator)||(null==f?void 0:f.viewGenerator)||(null==d?void 0:d.viewGenerator))return{sourceCoords:u,targetCoords:l};var h=f.symbolType||(null===(E=n.node)||void 0===E?void 0:E.symbolType),p=d.symbolType||(null===(S=n.node)||void 0===S?void 0:S.symbolType);if(!D.has(h)&&!D.has(p))return{sourceCoords:u,targetCoords:l};var b=u.x,m=u.y,g=l.x,v=l.y,y=I({x:g-b,y:v-m});if(h===o.default.SYMBOLS.CIRCLE){var w=(null==f?void 0:f.size)||n.node.size;b+=(w=.95*Math.sqrt(w/Math.PI))*y.x,m+=w*y.y}if(p===o.default.SYMBOLS.CIRCLE){var _,E,S,k,x,T=r*Math.min((null===(k=n.link)||void 0===k?void 0:k.markerWidth)||0,(null===(x=n.link)||void 0===x?void 0:x.markerHeight)||0),M=(null==d?void 0:d.size)||n.node.size;g-=((M=.95*Math.sqrt(M/Math.PI))+(n.directed?T:0))*y.x,v-=(M+(n.directed?T:0))*y.y}return{sourceCoords:{x:b,y:m},targetCoords:{x:g,y:v}}}},75791(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.renderGraph=E;var r=h(n(67294)),i=h(n(53880)),a=n(7619),o=h(n(33938)),s=h(n(61740)),u=h(n(28017)),c=n(99182),l=n(52694),f=n(37973),d=n(80362);function h(e){return e&&e.__esModule?e:{default:e}}function p(){return(p=Object.assign||function(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:i.LINE_TYPES.STRAIGHT,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[],o=e.x,s=e.y,u=p(i.LINE_TYPES[n]||i.LINE_TYPES.STRAIGHT),c=[].concat(a(r),[t]),l=c.map(function(t,n){var r,i=t.x,a=t.y,o=n>0?c[n-1]:e,s=u(o.x,o.y,i,a);return" A".concat(s,",").concat(s," 0 0,1 ").concat(i,",").concat(a)}).join("");return"M".concat(o,",").concat(s).concat(l)}},28017(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=i(n(67294));function i(e){return e&&e.__esModule?e:{default:e}}function a(e){return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function o(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}function s(e,t){for(var n=0;n=t&&e0&&void 0!==arguments[0]?arguments[0]:i.default.DEFAULT_NODE_SIZE,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:i.default.SYMBOLS.CIRCLE;return(0,r.symbol)().size(function(){return e}).type(function(){return o(t)})()}function u(e,t){switch(t){case"right":return{dx:e?"".concat(e):i.default.NODE_LABEL_DX,dy:"0",dominantBaseline:"middle",textAnchor:"start"};case"left":return{dx:e?"".concat(-e):"-".concat(i.default.NODE_LABEL_DX),dy:"0",dominantBaseline:"middle",textAnchor:"end"};case"top":return{dx:"0",dy:e?"".concat(-e):"-".concat(i.default.NODE_LABEL_DX),dominantBaseline:"baseline",textAnchor:"middle"};case"bottom":return{dx:"0",dy:e?"".concat(e):i.default.NODE_LABEL_DX,dominantBaseline:"hanging",textAnchor:"middle"};case"center":return{dx:"0",dy:"0",dominantBaseline:"middle",textAnchor:"middle"};default:return{dx:e?"".concat(e):i.default.NODE_LABEL_DX,dy:i.default.NODE_LABEL_DY}}}var c={buildSvgSymbol:s,getLabelPlacementProps:u};t.default=c},11041(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n={SYMBOLS:{CIRCLE:"circle",CROSS:"cross",DIAMOND:"diamond",SQUARE:"square",STAR:"star",TRIANGLE:"triangle",WYE:"wye"}};t.default=n},34214(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n={GRAPH_NO_ID_PROP:"id prop not defined! id property is mandatory and it should be unique.",INSUFFICIENT_LINKS:"you are passing invalid data to react-d3-graph. You must include a links array, even if empty, in the data object you're passing down to the component.",INVALID_LINKS:"you provided a invalid links data structure. Links source and target attributes must point to an existent node",INSUFFICIENT_DATA:"you have not provided enough data for react-d3-graph to render something. You need to provide at least one node",INVALID_LINK_VALUE:"links 'value' attribute must be of type number"};t.default=n},94164(e,t,n){"use strict";r={value:!0},Object.defineProperty(t,"kJ",{enumerable:!0,get:function(){return i.default}}),r={enumerable:!0,get:function(){return a.default}},r={enumerable:!0,get:function(){return o.default}};var r,i=s(n(82623)),a=s(n(61740)),o=s(n(33938));function s(e){return e&&e.__esModule?e:{default:e}}},69901(e,t){"use strict";function n(e){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.isDeepEqual=a,t.isEmptyObject=o,t.deepClone=s,t.merge=u,t.pick=c,t.antiPick=l,t.debounce=f,t.throwErr=h,t.logError=p,t.logWarning=b;var r=20;function i(e,t){return!!e&&Object.prototype.hasOwnProperty.call(e,t)&&"object"===n(e[t])&&null!==e[t]&&!o(e[t])}function a(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,s=[];if(0===n&&e===t)return!0;if(o(e)&&!o(t)||!o(e)&&o(t))return!1;var u=Object.keys(e),c=Object.keys(t);if(u.length!==c.length)return!1;for(var l=0,f=u;l1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,a=Object.keys(e),o=0,u=a;o0&&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]:0,a={};if(0===Object.keys(e||{}).length)return t&&!o(t)?t:{};for(var s=0,c=Object.keys(e);s1&&void 0!==arguments[1]?arguments[1]:[];return t.reduce(function(t,n){return Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]),t},{})}function l(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=Object.keys(e).filter(function(e){return!t.includes(e)});return c(e,n)}function f(e,t){var n;return function(){for(var r=arguments.length,i=Array(r),a=0;a0&&void 0!==arguments[0]?arguments[0]:"N/A",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"N/A";return"react-d3-graph :: ".concat(e," :: ").concat(t)}function h(e,t){throw Error(d(e,t))}function p(e,t){console.error(d(e,t))}function b(e,t){var n="react-d3-graph :: ".concat(e," :: ").concat(t);console.warn(n)}},64448(e,t,n){"use strict";/** @license React v16.12.0 * 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. - */ var r,i,a,o,s,u=n(67294),c=n(27418),l=n(63840);function f(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;nt}return!1}function eM(e,t,n,r,i,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=a}var eO={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){eO[e]=new eM(e,0,!1,e,null,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];eO[t]=new eM(t,1,!1,e[1],null,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(e){eO[e]=new eM(e,2,!1,e.toLowerCase(),null,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){eO[e]=new eM(e,2,!1,e,null,!1)}),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){eO[e]=new eM(e,3,!1,e.toLowerCase(),null,!1)}),["checked","multiple","muted","selected"].forEach(function(e){eO[e]=new eM(e,3,!0,e,null,!1)}),["capture","download"].forEach(function(e){eO[e]=new eM(e,4,!1,e,null,!1)}),["cols","rows","size","span"].forEach(function(e){eO[e]=new eM(e,6,!1,e,null,!1)}),["rowSpan","start"].forEach(function(e){eO[e]=new eM(e,5,!1,e.toLowerCase(),null,!1)});var eA=/[\-:]([a-z])/g;function eL(e){return e[1].toUpperCase()}function eC(e){switch(typeof e){case"boolean":case"number":case"object":case"string":case"undefined":return e;default:return""}}function eI(e,t,n,r){var i=eO.hasOwnProperty(t)?eO[t]:null;(null!==i?0===i.type:!r&&2=t.length))throw Error(f(93));t=t[0]}n=t}null==n&&(n="")}e._wrapperState={initialValue:eC(n)}}function eV(e,t){var n=eC(t.value),r=eC(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 eq(e){var t=e.textContent;t===e._wrapperState.initialValue&&""!==t&&null!==t&&(e.value=t)}"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(eA,eL);eO[t]=new eM(t,1,!1,e,null,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(eA,eL);eO[t]=new eM(t,1,!1,e,"http://www.w3.org/1999/xlink",!1)}),["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(eA,eL);eO[t]=new eM(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1)}),["tabIndex","crossOrigin"].forEach(function(e){eO[e]=new eM(e,1,!1,e.toLowerCase(),null,!1)}),eO.xlinkHref=new eM("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0),["src","href","action","formAction"].forEach(function(e){eO[e]=new eM(e,1,!1,e.toLowerCase(),null,!0)});var eZ={html:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML",svg:"http://www.w3.org/2000/svg"};function eX(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 eJ(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?eX(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var eQ,e1,e0=(eQ=function(e,t){if(e.namespaceURI!==eZ.svg||"innerHTML"in e)e.innerHTML=t;else{for((e1=e1||document.createElement("div")).innerHTML=""+t.valueOf().toString()+"",t=e1.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 eQ(e,t,n,r)})}:eQ);function e2(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType){n.nodeValue=t;return}}e.textContent=t}function e3(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var e4={animationend:e3("Animation","AnimationEnd"),animationiteration:e3("Animation","AnimationIteration"),animationstart:e3("Animation","AnimationStart"),transitionend:e3("Transition","TransitionEnd")},e5={},e6={};function e9(e){if(e5[e])return e5[e];if(!e4[e])return e;var t,n=e4[e];for(t in n)if(n.hasOwnProperty(t)&&t in e6)return e5[e]=n[t];return e}eo&&(e6=document.createElement("div").style,"AnimationEvent"in window||(delete e4.animationend.animation,delete e4.animationiteration.animation,delete e4.animationstart.animation),"TransitionEvent"in window||delete e4.transitionend.transition);var e8=e9("animationend"),e7=e9("animationiteration"),te=e9("animationstart"),tt=e9("transitionend"),tn="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting".split(" ");function tr(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do 0!=(1026&(t=e).effectTag)&&(n=t.return),e=t.return;while(e)}return 3===t.tag?n:null}function ti(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 ta(e){if(tr(e)!==e)throw Error(f(188))}function to(e){var t=e.alternate;if(!t){if(null===(t=tr(e)))throw Error(f(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 ta(i),e;if(a===r)return ta(i),t;a=a.sibling}throw Error(f(188))}if(n.return!==r.return)n=i,r=a;else{for(var o=!1,s=i.child;s;){if(s===n){o=!0,n=i,r=a;break}if(s===r){o=!0,r=i,n=a;break}s=s.sibling}if(!o){for(s=a.child;s;){if(s===n){o=!0,n=a,r=i;break}if(s===r){o=!0,r=a,n=i;break}s=s.sibling}if(!o)throw Error(f(189))}}if(n.alternate!==r)throw Error(f(190))}if(3!==n.tag)throw Error(f(188));return n.stateNode.current===n?e:t}function ts(e){if(!(e=to(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}var tu,tc,tl,tf=!1,td=[],th=null,tp=null,tb=null,tm=new Map,tg=new Map,tv=[],ty="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput close cancel copy cut paste click change contextmenu reset submit".split(" "),tw="focus blur dragenter dragleave mouseover mouseout pointerover pointerout gotpointercapture lostpointercapture".split(" ");function t_(e){var t=nA(e);ty.forEach(function(n){nL(n,e,t)}),tw.forEach(function(n){nL(n,e,t)})}function tE(e,t,n,r){return{blockedOn:e,topLevelType:t,eventSystemFlags:32|n,nativeEvent:r}}function tS(e,t){switch(e){case"focus":case"blur":th=null;break;case"dragenter":case"dragleave":tp=null;break;case"mouseover":case"mouseout":tb=null;break;case"pointerover":case"pointerout":tm.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":tg.delete(t.pointerId)}}function tk(e,t,n,r,i){return null===e||e.nativeEvent!==i?(e=tE(t,n,r,i),null!==t&&null!==(t=n7(t))&&tc(t),e):(e.eventSystemFlags|=r,e)}function tx(e,t,n,r){switch(t){case"focus":return th=tk(th,e,t,n,r),!0;case"dragenter":return tp=tk(tp,e,t,n,r),!0;case"mouseover":return tb=tk(tb,e,t,n,r),!0;case"pointerover":var i=r.pointerId;return tm.set(i,tk(tm.get(i)||null,e,t,n,r)),!0;case"gotpointercapture":return i=r.pointerId,tg.set(i,tk(tg.get(i)||null,e,t,n,r)),!0}return!1}function tT(e){var t=n8(e.target);if(null!==t){var n=tr(t);if(null!==n){if(13===(t=n.tag)){if(null!==(t=ti(n))){e.blockedOn=t,l.unstable_runWithPriority(e.priority,function(){tl(n)});return}}else if(3===t&&n.stateNode.hydrate){e.blockedOn=3===n.tag?n.stateNode.containerInfo:null;return}}}e.blockedOn=null}function tM(e){if(null!==e.blockedOn)return!1;var t=nT(e.topLevelType,e.eventSystemFlags,e.nativeEvent);if(null!==t){var n=n7(t);return null!==n&&tc(n),e.blockedOn=t,!1}return!0}function tO(e,t,n){tM(e)&&n.delete(t)}function tA(){for(tf=!1;0this.eventPool.length&&this.eventPool.push(e)}function tz(e){e.eventPool=[],e.getPooled=tH,e.release=t$}c(tU.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=tY)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=tY)},persist:function(){this.isPersistent=tY},isPersistent:tB,destructor:function(){var e,t=this.constructor.Interface;for(e in t)this[e]=null;this.nativeEvent=this._targetInst=this.dispatchConfig=null,this.isPropagationStopped=this.isDefaultPrevented=tB,this._dispatchInstances=this._dispatchListeners=null}}),tU.Interface={type:null,target:null,currentTarget:function(){return null},eventPhase:null,bubbles:null,cancelable:null,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:null,isTrusted:null},tU.extend=function(e){function t(){}function n(){return r.apply(this,arguments)}var r=this;t.prototype=r.prototype;var i=new t;return c(i,n.prototype),n.prototype=i,n.prototype.constructor=n,n.Interface=c({},r.Interface,e),n.extend=r.extend,tz(n),n},tz(tU);var tG=tU.extend({animationName:null,elapsedTime:null,pseudoElement:null}),tW=tU.extend({clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),tK=tU.extend({view:null,detail:null}),tV=tK.extend({relatedTarget:null});function tq(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}var tZ={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},tX={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"},tJ={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function tQ(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=tJ[e])&&!!t[e]}function t1(){return tQ}for(var t0=tK.extend({key:function(e){if(e.key){var t=tZ[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?13===(e=tq(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?tX[e.keyCode]||"Unidentified":""},location:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,repeat:null,locale:null,getModifierState:t1,charCode:function(e){return"keypress"===e.type?tq(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?tq(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}}),t2=0,t3=0,t4=!1,t5=!1,t6=tK.extend({screenX:null,screenY:null,clientX:null,clientY:null,pageX:null,pageY:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,getModifierState:t1,button:null,buttons:null,relatedTarget:function(e){return e.relatedTarget||(e.fromElement===e.srcElement?e.toElement:e.fromElement)},movementX:function(e){if(("movementX"in e))return e.movementX;var t=t2;return t2=e.screenX,t4?"mousemove"===e.type?e.screenX-t:0:(t4=!0,0)},movementY:function(e){if(("movementY"in e))return e.movementY;var t=t3;return t3=e.screenY,t5?"mousemove"===e.type?e.screenY-t:0:(t5=!0,0)}}),t9=t6.extend({pointerId:null,width:null,height:null,pressure:null,tangentialPressure:null,tiltX:null,tiltY:null,twist:null,pointerType:null,isPrimary:null}),t8=t6.extend({dataTransfer:null}),t7=tK.extend({touches:null,targetTouches:null,changedTouches:null,altKey:null,metaKey:null,ctrlKey:null,shiftKey:null,getModifierState:t1}),ne=tU.extend({propertyName:null,elapsedTime:null,pseudoElement:null}),nt=t6.extend({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:null,deltaMode:null}),nn=[["blur","blur",0],["cancel","cancel",0],["click","click",0],["close","close",0],["contextmenu","contextMenu",0],["copy","copy",0],["cut","cut",0],["auxclick","auxClick",0],["dblclick","doubleClick",0],["dragend","dragEnd",0],["dragstart","dragStart",0],["drop","drop",0],["focus","focus",0],["input","input",0],["invalid","invalid",0],["keydown","keyDown",0],["keypress","keyPress",0],["keyup","keyUp",0],["mousedown","mouseDown",0],["mouseup","mouseUp",0],["paste","paste",0],["pause","pause",0],["play","play",0],["pointercancel","pointerCancel",0],["pointerdown","pointerDown",0],["pointerup","pointerUp",0],["ratechange","rateChange",0],["reset","reset",0],["seeked","seeked",0],["submit","submit",0],["touchcancel","touchCancel",0],["touchend","touchEnd",0],["touchstart","touchStart",0],["volumechange","volumeChange",0],["drag","drag",1],["dragenter","dragEnter",1],["dragexit","dragExit",1],["dragleave","dragLeave",1],["dragover","dragOver",1],["mousemove","mouseMove",1],["mouseout","mouseOut",1],["mouseover","mouseOver",1],["pointermove","pointerMove",1],["pointerout","pointerOut",1],["pointerover","pointerOver",1],["scroll","scroll",1],["toggle","toggle",1],["touchmove","touchMove",1],["wheel","wheel",1],["abort","abort",2],[e8,"animationEnd",2],[e7,"animationIteration",2],[te,"animationStart",2],["canplay","canPlay",2],["canplaythrough","canPlayThrough",2],["durationchange","durationChange",2],["emptied","emptied",2],["encrypted","encrypted",2],["ended","ended",2],["error","error",2],["gotpointercapture","gotPointerCapture",2],["load","load",2],["loadeddata","loadedData",2],["loadedmetadata","loadedMetadata",2],["loadstart","loadStart",2],["lostpointercapture","lostPointerCapture",2],["playing","playing",2],["progress","progress",2],["seeking","seeking",2],["stalled","stalled",2],["suspend","suspend",2],["timeupdate","timeUpdate",2],[tt,"transitionEnd",2],["waiting","waiting",2]],nr={},ni={},na=0;na=t)return{node:r,offset:t-e};e=n}a:{for(;r;){if(r.nextSibling){r=r.nextSibling;break a}r=r.parentNode}r=void 0}r=nU(r)}}function n$(e,t){return!!e&&!!t&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?n$(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function nz(){for(var e=window,t=nB();t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(r){n=!1}if(n)e=t.contentWindow;else break;t=nB(e.document)}return t}function nG(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 nW="$",nK="/$",nV="$?",nq="$!",nZ=null,nX=null;function nJ(e,t){switch(e){case"button":case"input":case"select":case"textarea":return!!t.autoFocus}return!1}function nQ(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 n1="function"==typeof setTimeout?setTimeout:void 0,n0="function"==typeof clearTimeout?clearTimeout:void 0;function n2(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break}return e}function n3(e){e=e.previousSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if(n===nW||n===nq||n===nV){if(0===t)return e;t--}else n===nK&&t++}e=e.previousSibling}return null}var n4=Math.random().toString(36).slice(2),n5="__reactInternalInstance$"+n4,n6="__reactEventHandlers$"+n4,n9="__reactContainere$"+n4;function n8(e){var t=e[n5];if(t)return t;for(var n=e.parentNode;n;){if(t=n[n9]||n[n5]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=n3(e);null!==e;){if(n=e[n5])return n;e=n3(e)}return t}n=(e=n).parentNode}return null}function n7(e){return(e=e[n5]||e[n9])&&(5===e.tag||6===e.tag||13===e.tag||3===e.tag)?e:null}function re(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(f(33))}function rt(e){return e[n6]||null}var rn=null,rr=null,ri=null;function ra(){if(ri)return ri;var e,t,n=rr,r=n.length,i="value"in rn?rn.value:rn.textContent,a=i.length;for(e=0;e=rl),rh=" ",rp={beforeInput:{phasedRegistrationNames:{bubbled:"onBeforeInput",captured:"onBeforeInputCapture"},dependencies:["compositionend","keypress","textInput","paste"]},compositionEnd:{phasedRegistrationNames:{bubbled:"onCompositionEnd",captured:"onCompositionEndCapture"},dependencies:"blur compositionend keydown keypress keyup mousedown".split(" ")},compositionStart:{phasedRegistrationNames:{bubbled:"onCompositionStart",captured:"onCompositionStartCapture"},dependencies:"blur compositionstart keydown keypress keyup mousedown".split(" ")},compositionUpdate:{phasedRegistrationNames:{bubbled:"onCompositionUpdate",captured:"onCompositionUpdateCapture"},dependencies:"blur compositionupdate keydown keypress keyup mousedown".split(" ")}},rb=!1;function rm(e,t){switch(e){case"keyup":return -1!==ru.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"blur":return!0;default:return!1}}function rg(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var rv=!1;function ry(e,t){switch(e){case"compositionend":return rg(t);case"keypress":if(32!==t.which)return null;return rb=!0,rh;case"textInput":return(e=t.data)===rh&&rb?null:e;default:return null}}function rw(e,t){if(rv)return"compositionend"===e||!rc&&rm(e,t)?(e=ra(),ri=rr=rn=null,rv=!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=document.documentMode,rK={select:{phasedRegistrationNames:{bubbled:"onSelect",captured:"onSelectCapture"},dependencies:"blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange".split(" ")}},rV=null,rq=null,rZ=null,rX=!1;function rJ(e,t){var n=t.window===t?t.document:9===t.nodeType?t:t.ownerDocument;return rX||null==rV||rV!==nB(n)?null:(n="selectionStart"in(n=rV)&&nG(n)?{start:n.selectionStart,end:n.selectionEnd}:{anchorNode:(n=(n.ownerDocument&&n.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:n.anchorOffset,focusNode:n.focusNode,focusOffset:n.focusOffset},rZ&&rG(rZ,n)?null:(rZ=n,(e=tU.getPooled(rK.select,rq,e,t)).type="select",e.target=rV,tF(e),e))}var rQ={eventTypes:rK,extractEvents:function(e,t,n,r){var i,a=r.window===r?r.document:9===r.nodeType?r:r.ownerDocument;if(!(i=!a)){a:{a=nA(a),i=y.onSelect;for(var o=0;or2||(e.current=r0[r2],r0[r2]=null,r2--)}function r4(e,t){r0[++r2]=e.current,e.current=t}var r5={},r6={current:r5},r9={current:!1},r8=r5;function r7(e,t){var n=e.type.contextTypes;if(!n)return r5;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var i,a={};for(i in n)a[i]=t[i];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=a),a}function ie(e){return null!=(e=e.childContextTypes)}function it(e){r3(r9,e),r3(r6,e)}function ir(e){r3(r9,e),r3(r6,e)}function ii(e,t,n){if(r6.current!==r5)throw Error(f(168));r4(r6,t,e),r4(r9,n,e)}function ia(e,t,n){var r=e.stateNode;if(e=t.childContextTypes,"function"!=typeof r.getChildContext)return n;for(var i in r=r.getChildContext())if(!(i in e))throw Error(f(108,ei(t)||"Unknown",i));return c({},n,{},r)}function io(e){var t=e.stateNode;return t=t&&t.__reactInternalMemoizedMergedChildContext||r5,r8=r6.current,r4(r6,t,e),r4(r9,r9.current,e),!0}function is(e,t,n){var r=e.stateNode;if(!r)throw Error(f(169));n?(t=ia(e,t,r8),r.__reactInternalMemoizedMergedChildContext=t,r3(r9,e),r3(r6,e),r4(r6,t,e)):r3(r9,e),r4(r9,n,e)}var iu=l.unstable_runWithPriority,ic=l.unstable_scheduleCallback,il=l.unstable_cancelCallback,id=l.unstable_shouldYield,ih=l.unstable_requestPaint,ip=l.unstable_now,ib=l.unstable_getCurrentPriorityLevel,im=l.unstable_ImmediatePriority,ig=l.unstable_UserBlockingPriority,iv=l.unstable_NormalPriority,iy=l.unstable_LowPriority,iw=l.unstable_IdlePriority,i_={},iE=void 0!==ih?ih:function(){},iS=null,ik=null,ix=!1,iT=ip(),iM=1e4>iT?ip:function(){return ip()-iT};function iO(){switch(ib()){case im:return 99;case ig:return 98;case iv:return 97;case iy:return 96;case iw:return 95;default:throw Error(f(332))}}function iA(e){switch(e){case 99:return im;case 98:return ig;case 97:return iv;case 96:return iy;case 95:return iw;default:throw Error(f(332))}}function iL(e,t){return e=iA(e),iu(e,t)}function iC(e,t,n){return e=iA(e),ic(e,t,n)}function iI(e){return null===iS?(iS=[e],ik=ic(im,iN)):iS.push(e),i_}function iD(){if(null!==ik){var e=ik;ik=null,il(e)}iN()}function iN(){if(!ix&&null!==iS){ix=!0;var e=0;try{var t=iS;iL(99,function(){for(;e=t&&(oo=!0),e.firstContext=null)}function iK(e,t){if(iU!==e&&!1!==t&&0!==t){if(("number"!=typeof t||1073741823===t)&&(iU=e,t=1073741823),t={context:e,observedBits:t,next:null},null===iB){if(null===iY)throw Error(f(308));iB=t,iY.dependencies={expirationTime:0,firstContext:t,responders:null}}else iB=iB.next=t}return e._currentValue}var iV=!1;function iq(e){return{baseState:e,firstUpdate:null,lastUpdate:null,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function iZ(e){return{baseState:e.baseState,firstUpdate:e.firstUpdate,lastUpdate:e.lastUpdate,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function iX(e,t){return{expirationTime:e,suspenseConfig:t,tag:0,payload:null,callback:null,next:null,nextEffect:null}}function iJ(e,t){null===e.lastUpdate?e.firstUpdate=e.lastUpdate=t:(e.lastUpdate.next=t,e.lastUpdate=t)}function iQ(e,t){var n=e.alternate;if(null===n){var r=e.updateQueue,i=null;null===r&&(r=e.updateQueue=iq(e.memoizedState))}else r=e.updateQueue,i=n.updateQueue,null===r?null===i?(r=e.updateQueue=iq(e.memoizedState),i=n.updateQueue=iq(n.memoizedState)):r=e.updateQueue=iZ(i):null===i&&(i=n.updateQueue=iZ(r));null===i||r===i?iJ(r,t):null===r.lastUpdate||null===i.lastUpdate?(iJ(r,t),iJ(i,t)):(iJ(r,t),i.lastUpdate=t)}function i1(e,t){var n=e.updateQueue;null===(n=null===n?e.updateQueue=iq(e.memoizedState):i0(e,n)).lastCapturedUpdate?n.firstCapturedUpdate=n.lastCapturedUpdate=t:(n.lastCapturedUpdate.next=t,n.lastCapturedUpdate=t)}function i0(e,t){var n=e.alternate;return null!==n&&t===n.updateQueue&&(t=e.updateQueue=iZ(t)),t}function i2(e,t,n,r,i,a){switch(n.tag){case 1:return"function"==typeof(e=n.payload)?e.call(a,r,i):e;case 3:e.effectTag=-4097&e.effectTag|64;case 0:if(null==(i="function"==typeof(e=n.payload)?e.call(a,r,i):e))break;return c({},r,i);case 2:iV=!0}return r}function i3(e,t,n,r,i){iV=!1,t=i0(e,t);for(var a=t.baseState,o=null,s=0,u=t.firstUpdate,c=a;null!==u;){var l=u.expirationTime;lb?(m=f,f=null):m=f.sibling;var g=h(i,f,s[b],u);if(null===g){null===f&&(f=m);break}e&&f&&null===g.alternate&&t(i,f),o=a(g,o,b),null===l?c=g:l.sibling=g,l=g,f=m}if(b===s.length)return n(i,f),c;if(null===f){for(;bm?(g=b,b=null):g=b.sibling;var y=h(i,b,v.value,u);if(null===y){null===b&&(b=g);break}e&&b&&null===y.alternate&&t(i,b),o=a(y,o,m),null===l?c=y:l.sibling=y,l=y,b=g}if(v.done)return n(i,b),c;if(null===b){for(;!v.done;m++,v=s.next())null!==(v=d(i,v.value,u))&&(o=a(v,o,m),null===l?c=v:l.sibling=v,l=v);return c}for(b=r(i,b);!v.done;m++,v=s.next())null!==(v=p(b,i,m,v.value,u))&&(e&&null!==v.alternate&&b.delete(null===v.key?m:v.key),o=a(v,o,m),null===l?c=v:l.sibling=v,l=v);return e&&b.forEach(function(e){return t(i,e)}),c}return function(e,r,a,s){var u="object"==typeof a&&null!==a&&a.type===z&&null===a.key;u&&(a=a.props.children);var c="object"==typeof a&&null!==a;if(c)switch(a.$$typeof){case H:a:{for(c=a.key,u=r;null!==u;){if(u.key===c){if(7===u.tag?a.type===z:u.elementType===a.type){n(e,u.sibling),(r=i(u,a.type===z?a.props.children:a.props,s)).ref=aa(e,u,a),r.return=e,e=r;break a}n(e,u);break}t(e,u),u=u.sibling}a.type===z?((r=s1(a.props.children,e.mode,s,a.key)).return=e,e=r):((s=sQ(a.type,a.key,a.props,null,e.mode,s)).ref=aa(e,r,a),s.return=e,e=s)}return o(e);case $:a:{for(u=a.key;null!==r;){if(r.key===u){if(4===r.tag&&r.stateNode.containerInfo===a.containerInfo&&r.stateNode.implementation===a.implementation){n(e,r.sibling),(r=i(r,a.children||[],s)).return=e,e=r;break a}n(e,r);break}t(e,r),r=r.sibling}(r=s2(a,e.mode,s)).return=e,e=r}return o(e)}if("string"==typeof a||"number"==typeof a)return a=""+a,null!==r&&6===r.tag?(n(e,r.sibling),(r=i(r,a,s)).return=e,e=r):(n(e,r),(r=s0(a,e.mode,s)).return=e,e=r),o(e);if(ai(a))return b(e,r,a,s);if(en(a))return m(e,r,a,s);if(c&&ao(e,a),void 0===a&&!u)switch(e.tag){case 1:case 0:throw Error(f(152,(e=e.type).displayName||e.name||"Component"))}return n(e,r)}}var au=as(!0),ac=as(!1),al={},af={current:al},ad={current:al},ah={current:al};function ap(e){if(e===al)throw Error(f(174));return e}function ab(e,t){r4(ah,t,e),r4(ad,e,e),r4(af,al,e);var n=t.nodeType;switch(n){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:eJ(null,"");break;default:t=eJ(t=(n=8===n?t.parentNode:t).namespaceURI||null,n=n.tagName)}r3(af,e),r4(af,t,e)}function am(e){r3(af,e),r3(ad,e),r3(ah,e)}function ag(e){ap(ah.current);var t=ap(af.current),n=eJ(t,e.type);t!==n&&(r4(ad,e,e),r4(af,n,e))}function av(e){ad.current===e&&(r3(af,e),r3(ad,e))}var ay={current:0};function aw(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||n.data===nV||n.data===nq))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(0!=(64&t.effectTag))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}function a_(e,t){return{responder:e,props:t}}var aE=Y.ReactCurrentDispatcher,aS=Y.ReactCurrentBatchConfig,ak=0,ax=null,aT=null,aM=null,aO=null,aA=null,aL=null,aC=0,aI=null,aD=0,aN=!1,aP=null,aR=0;function aj(){throw Error(f(321))}function aF(e,t){if(null===t)return!1;for(var n=0;naC&&sL(aC=l)):(sA(l,u.suspenseConfig),a=u.eagerReducer===e?u.eagerState:e(a,u.action)),o=u,u=u.next}while(null!==u&&u!==r)c||(s=o,i=a),r$(a,t.memoizedState)||(oo=!0),t.memoizedState=a,t.baseUpdate=s,t.baseState=i,n.lastRenderedState=a}return[t.memoizedState,n.dispatch]}function aG(e){var t=aU();return"function"==typeof e&&(e=e()),t.memoizedState=t.baseState=e,e=(e=t.queue={last:null,dispatch:null,lastRenderedReducer:a$,lastRenderedState:e}).dispatch=a2.bind(null,ax,e),[t.memoizedState,e]}function aW(e){return az(a$,e)}function aK(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===aI?(aI={lastEffect:null}).lastEffect=e.next=e:null===(t=aI.lastEffect)?aI.lastEffect=e.next=e:(n=t.next,t.next=e,e.next=n,aI.lastEffect=e),e}function aV(e,t,n,r){var i=aU();aD|=e,i.memoizedState=aK(t,n,void 0,void 0===r?null:r)}function aq(e,t,n,r){var i=aH();r=void 0===r?null:r;var a=void 0;if(null!==aT){var o=aT.memoizedState;if(a=o.destroy,null!==r&&aF(r,o.deps)){aK(0,n,a,r);return}}aD|=e,i.memoizedState=aK(t,n,a,r)}function aZ(e,t){return aV(516,192,e,t)}function aX(e,t){return aq(516,192,e,t)}function aJ(e,t){return"function"==typeof t?(t(e=e()),function(){t(null)}):null!=t?(e=e(),t.current=e,function(){t.current=null}):void 0}function aQ(){}function a1(e,t){return aU().memoizedState=[e,void 0===t?null:t],e}function a0(e,t){var n=aH();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&aF(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function a2(e,t,n){if(!(25>aR))throw Error(f(301));var r=e.alternate;if(e===ax||null!==r&&r===ax){if(aN=!0,e={expirationTime:ak,suspenseConfig:null,action:n,eagerReducer:null,eagerState:null,next:null},null===aP&&(aP=new Map),void 0===(n=aP.get(t)))aP.set(t,e);else{for(t=n;null!==t.next;)t=t.next;t.next=e}}else{var i=sb(),a=i6.suspense;a={expirationTime:i=sm(i,e,a),suspenseConfig:a,action:n,eagerReducer:null,eagerState:null,next:null};var o=t.last;if(null===o)a.next=a;else{var s=o.next;null!==s&&(a.next=s),o.next=a}if(t.last=a,0===e.expirationTime&&(null===r||0===r.expirationTime)&&null!==(r=t.lastRenderedReducer))try{var u=t.lastRenderedState,c=r(u,n);if(a.eagerReducer=r,a.eagerState=c,r$(c,u))return}catch(l){}finally{}sg(e,i)}}var a3={readContext:iK,useCallback:aj,useContext:aj,useEffect:aj,useImperativeHandle:aj,useLayoutEffect:aj,useMemo:aj,useReducer:aj,useRef:aj,useState:aj,useDebugValue:aj,useResponder:aj,useDeferredValue:aj,useTransition:aj},a4={readContext:iK,useCallback:a1,useContext:iK,useEffect:aZ,useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,aV(4,36,aJ.bind(null,t,e),n)},useLayoutEffect:function(e,t){return aV(4,36,e,t)},useMemo:function(e,t){var n=aU();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=aU();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e=(e=r.queue={last:null,dispatch:null,lastRenderedReducer:e,lastRenderedState:t}).dispatch=a2.bind(null,ax,e),[r.memoizedState,e]},useRef:function(e){var t=aU();return e={current:e},t.memoizedState=e},useState:aG,useDebugValue:aQ,useResponder:a_,useDeferredValue:function(e,t){var n=aG(e),r=n[0],i=n[1];return aZ(function(){l.unstable_next(function(){var n=aS.suspense;aS.suspense=void 0===t?null:t;try{i(e)}finally{aS.suspense=n}})},[e,t]),r},useTransition:function(e){var t=aG(!1),n=t[0],r=t[1];return[a1(function(t){r(!0),l.unstable_next(function(){var n=aS.suspense;aS.suspense=void 0===e?null:e;try{r(!1),t()}finally{aS.suspense=n}})},[e,n]),n]}},a5={readContext:iK,useCallback:a0,useContext:iK,useEffect:aX,useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,aq(4,36,aJ.bind(null,t,e),n)},useLayoutEffect:function(e,t){return aq(4,36,e,t)},useMemo:function(e,t){var n=aH();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&aF(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)},useReducer:az,useRef:function(){return aH().memoizedState},useState:aW,useDebugValue:aQ,useResponder:a_,useDeferredValue:function(e,t){var n=aW(e),r=n[0],i=n[1];return aX(function(){l.unstable_next(function(){var n=aS.suspense;aS.suspense=void 0===t?null:t;try{i(e)}finally{aS.suspense=n}})},[e,t]),r},useTransition:function(e){var t=aW(!1),n=t[0],r=t[1];return[a0(function(t){r(!0),l.unstable_next(function(){var n=aS.suspense;aS.suspense=void 0===e?null:e;try{r(!1),t()}finally{aS.suspense=n}})},[e,n]),n]}},a6=null,a9=null,a8=!1;function a7(e,t){var n=sq(5,null,null,0);n.elementType="DELETED",n.type="DELETED",n.stateNode=t,n.return=e,n.effectTag=8,null!==e.lastEffect?(e.lastEffect.nextEffect=n,e.lastEffect=n):e.firstEffect=e.lastEffect=n}function oe(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 ot(e){if(a8){var t=a9;if(t){var n=t;if(!oe(e,t)){if(!(t=n2(n.nextSibling))||!oe(e,t)){e.effectTag=-1025&e.effectTag|2,a8=!1,a6=e;return}a7(a6,n)}a6=e,a9=n2(t.firstChild)}else e.effectTag=-1025&e.effectTag|2,a8=!1,a6=e}}function on(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&13!==e.tag;)e=e.return;a6=e}function or(e){if(e!==a6)return!1;if(!a8)return on(e),a8=!0,!1;var t=e.type;if(5!==e.tag||"head"!==t&&"body"!==t&&!nQ(t,e.memoizedProps))for(t=a9;t;)a7(e,t),t=n2(t.nextSibling);if(on(e),13===e.tag){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(f(317));a:{for(t=0,e=e.nextSibling;e;){if(8===e.nodeType){var n=e.data;if(n===nK){if(0===t){a9=n2(e.nextSibling);break a}t--}else n!==nW&&n!==nq&&n!==nV||t++}e=e.nextSibling}a9=null}}else a9=a6?n2(e.stateNode.nextSibling):null;return!0}function oi(){a9=a6=null,a8=!1}var oa=Y.ReactCurrentOwner,oo=!1;function os(e,t,n,r){t.child=null===e?ac(t,null,n,r):au(t,e.child,n,r)}function ou(e,t,n,r,i){n=n.render;var a=t.ref;return(iW(t,i),r=aY(e,t,n,r,a,i),null===e||oo)?(t.effectTag|=1,os(e,t,r,i),t.child):(t.updateQueue=e.updateQueue,t.effectTag&=-517,e.expirationTime<=i&&(e.expirationTime=0),o_(e,t,i))}function oc(e,t,n,r,i,a){if(null===e){var o=n.type;return"function"!=typeof o||sZ(o)||void 0!==o.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=sQ(n.type,null,r,null,t.mode,a)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=o,ol(e,t,o,r,i,a))}return(o=e.child,it)&&sf.set(e,t))}}function sv(e,t){e.expirationTime(e=e.nextKnownPendingLevel)?t:e:t}function sw(e){if(0!==e.lastExpiredTime)e.callbackExpirationTime=1073741823,e.callbackPriority=99,e.callbackNode=iI(sE.bind(null,e));else{var t=sy(e),n=e.callbackNode;if(0===t)null!==n&&(e.callbackNode=null,e.callbackExpirationTime=0,e.callbackPriority=90);else{var r=sb();if(r=1073741823===t?99:1===t||2===t?95:0>=(r=10*(1073741821-t)-10*(1073741821-r))?99:250>=r?98:5250>=r?97:95,null!==n){var i=e.callbackPriority;if(e.callbackExpirationTime===t&&i>=r)return;n!==i_&&il(n)}e.callbackExpirationTime=t,e.callbackPriority=r,t=1073741823===t?iI(sE.bind(null,e)):iC(r,s_.bind(null,e),{timeout:10*(1073741821-t)-iM()}),e.callbackNode=t}}}function s_(e,t){if(sp=0,t)return t=sb(),s9(e,t),sw(e),null;var n=sy(e);if(0!==n){if(t=e.callbackNode,(o0&(oK|oV))!==oG)throw Error(f(327));if(sY(),e===o2&&n===o4||sT(e,n),null!==o3){var r=o0;o0|=oK;for(var i=sO(e);;)try{sI();break}catch(a){sM(e,a)}if(iH(),o0=r,o$.current=i,o5===oZ)throw t=o6,sT(e,n),s5(e,n),sw(e),t;if(null===o3)switch(i=e.finishedWork=e.current.alternate,e.finishedExpirationTime=n,o2=null,r=o5){case oq:case oZ:throw Error(f(345));case oX:s9(e,2=n){e.lastPingedTime=n,sT(e,n);break}}if(0!==(o=sy(e))&&o!==n)break;if(0!==r&&r!==n){e.lastPingedTime=r;break}e.timeoutHandle=n1(sR.bind(null,e),i);break}sR(e);break;case oQ:if(s5(e,n),n===(r=e.lastSuspendedTime)&&(e.nextKnownPendingLevel=sP(i)),st&&(0===(i=e.lastPingedTime)||i>=n)){e.lastPingedTime=n,sT(e,n);break}if(0!==(i=sy(e))&&i!==n)break;if(0!==r&&r!==n){e.lastPingedTime=r;break}if(1073741823!==o8?r=10*(1073741821-o8)-iM():1073741823===o9?r=0:(r=10*(1073741821-o9)-5e3,n=10*(1073741821-n)-(i=iM()),0>(r=i-r)&&(r=0),n<(r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*oH(r/1960))-r)&&(r=n)),10=(r=0|s.busyMinDurationMs)?r=0:(i=0|s.busyDelayMs,r=(o=iM()-(10*(1073741821-o)-(0|s.timeoutMs||5e3)))<=i?0:i+r-o),10 component higher in the tree to provide a loading indicator or placeholder to display."+ea(i))}o5!==o1&&(o5=oX),a=ox(a,i),c=r;do{switch(c.tag){case 3:s=a,c.effectTag|=4096,c.expirationTime=t;var g=oB(c,s,t);i1(c,g);break a;case 1:s=a;var v=c.type,y=c.stateNode;if(0==(64&c.effectTag)&&("function"==typeof v.getDerivedStateFromError||null!==y&&"function"==typeof y.componentDidCatch&&(null===ss||!ss.has(y)))){c.effectTag|=4096,c.expirationTime=t;var w=oU(c,s,t);i1(c,w);break a}}c=c.return}while(null!==c)}o3=sN(o3)}catch(_){t=_;continue}break}}function sO(){var e=o$.current;return o$.current=a3,null===e?a3:e}function sA(e,t){ese&&(se=e)}function sC(){for(;null!==o3;)o3=sD(o3)}function sI(){for(;null!==o3&&!id();)o3=sD(o3)}function sD(e){var t=s(e.alternate,e,o4);return e.memoizedProps=e.pendingProps,null===t&&(t=sN(e)),oz.current=null,t}function sN(e){o3=e;do{var t=o3.alternate;if(e=o3.return,0==(2048&o3.effectTag)){a:{var n=t;t=o3;var s=o4,u=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:case 20:case 21:break;case 1:case 17:ie(t.type)&&it(t);break;case 3:am(t),ir(t),(u=t.stateNode).pendingContext&&(u.context=u.pendingContext,u.pendingContext=null),(null===n||null===n.child)&&or(t)&&oE(t),i(t);break;case 5:av(t),s=ap(ah.current);var l=t.type;if(null!==n&&null!=t.stateNode)a(n,t,l,u,s),n.ref!==t.ref&&(t.effectTag|=128);else if(u){var d=ap(af.current);if(or(t)){var h=(u=t).stateNode;n=u.type;var p=u.memoizedProps,b=s;switch(h[n5]=u,h[n6]=p,l=void 0,s=h,n){case"iframe":case"object":case"embed":nw("load",s);break;case"video":case"audio":for(h=0;h",h=p.removeChild(p.firstChild)):"string"==typeof p.is?h=h.createElement(b,{is:p.is}):(h=h.createElement(b),"select"===b&&(b=h,p.multiple?b.multiple=!0:p.size&&(b.size=p.size))):h=h.createElementNS(d,b),(p=h)[n5]=n,p[n6]=u,r(p,t,!1,!1),t.stateNode=p,b=l;var m=s,g=nj(b,n=u);switch(b){case"iframe":case"object":case"embed":nw("load",p),s=n;break;case"video":case"audio":for(s=0;su.tailExpiration&&1l&&(l=n),p>l&&(l=p),s=s.sibling;u.childExpirationTime=l}if(null!==t)return t;null!==e&&0==(2048&e.effectTag)&&(null===e.firstEffect&&(e.firstEffect=o3.firstEffect),null!==o3.lastEffect&&(null!==e.lastEffect&&(e.lastEffect.nextEffect=o3.firstEffect),e.lastEffect=o3.lastEffect),1(e=e.childExpirationTime)?t:e}function sR(e){var t=iO();return iL(99,sj.bind(null,e,t)),null}function sj(e,t){do sY();while(null!==sc)if((o0&(oK|oV))!==oG)throw Error(f(327));var n=e.finishedWork,r=e.finishedExpirationTime;if(null===n)return null;if(e.finishedWork=null,e.finishedExpirationTime=0,n===e.current)throw Error(f(177));e.callbackNode=null,e.callbackExpirationTime=0,e.callbackPriority=90,e.nextKnownPendingLevel=0;var i=sP(n);if(e.firstPendingTime=i,r<=e.lastSuspendedTime?e.firstSuspendedTime=e.lastSuspendedTime=e.nextKnownPendingLevel=0:r<=e.firstSuspendedTime&&(e.firstSuspendedTime=r-1),r<=e.lastPingedTime&&(e.lastPingedTime=0),r<=e.lastExpiredTime&&(e.lastExpiredTime=0),e===o2&&(o3=o2=null,o4=0),1s&&(l=s,s=o,o=l),l=nH(E,o),d=nH(E,s),l&&d&&(1!==k.rangeCount||k.anchorNode!==l.node||k.anchorOffset!==l.offset||k.focusNode!==d.node||k.focusOffset!==d.offset)&&((S=S.createRange()).setStart(l.node,l.offset),k.removeAllRanges(),o>s?(k.addRange(S),k.extend(d.node,d.offset)):(S.setEnd(d.node,d.offset),k.addRange(S))))),S=[],k=E;k=k.parentNode;)1===k.nodeType&&S.push({element:k,left:k.scrollLeft,top:k.scrollTop});for("function"==typeof E.focus&&E.focus(),E=0;E=n)return og(e,t,n);return r4(ay,1&ay.current,t),null!==(t=o_(e,t,n))?t.sibling:null}r4(ay,1&ay.current,t);break;case 19:if(r=t.childExpirationTime>=n,0!=(64&e.effectTag)){if(r)return ow(e,t,n);t.effectTag|=64}if(null!==(i=t.memoizedState)&&(i.rendering=null,i.tail=null),r4(ay,ay.current,t),!r)return null}return o_(e,t,n)}oo=!1}}else oo=!1;switch(t.expirationTime=0,t.tag){case 2:if(r=t.type,null!==e&&(e.alternate=null,t.alternate=null,t.effectTag|=2),e=t.pendingProps,i=r7(t,r6.current),iW(t,n),i=aY(null,t,r,e,i,n),t.effectTag|=1,"object"==typeof i&&null!==i&&"function"==typeof i.render&&void 0===i.$$typeof){if(t.tag=1,aB(),ie(r)){var a=!0;io(t)}else a=!1;t.memoizedState=null!==i.state&&void 0!==i.state?i.state:null;var o=r.getDerivedStateFromProps;"function"==typeof o&&i8(t,r,o,e),i.updater=i7,t.stateNode=i,i._reactInternalFiber=t,ar(t,r,e,n),t=op(null,t,r,!0,a,n)}else t.tag=0,os(null,t,i,n),t=t.child;return t;case 16:if(i=t.elementType,null!==e&&(e.alternate=null,t.alternate=null,t.effectTag|=2),e=t.pendingProps,er(i),1!==i._status)throw i._result;switch(i=i._result,t.type=i,a=t.tag=sX(i),e=ij(i,e),a){case 0:t=od(null,t,i,e,n);break;case 1:t=oh(null,t,i,e,n);break;case 11:t=ou(null,t,i,e,n);break;case 14:t=oc(null,t,i,ij(i.type,e),r,n);break;default:throw Error(f(306,i,""))}return t;case 0:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:ij(r,i),od(e,t,r,i,n);case 1:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:ij(r,i),oh(e,t,r,i,n);case 3:if(ob(t),null===(r=t.updateQueue))throw Error(f(282));if(i=null!==(i=t.memoizedState)?i.element:null,i3(t,r,t.pendingProps,null,n),(r=t.memoizedState.element)===i)oi(),t=o_(e,t,n);else{if((i=t.stateNode.hydrate)&&(a9=n2(t.stateNode.containerInfo.firstChild),a6=t,i=a8=!0),i)for(n=ac(t,null,r,n),t.child=n;n;)n.effectTag=-3&n.effectTag|1024,n=n.sibling;else os(e,t,r,n),oi();t=t.child}return t;case 5:return ag(t),null===e&&ot(t),r=t.type,i=t.pendingProps,a=null!==e?e.memoizedProps:null,o=i.children,nQ(r,i)?o=null:null!==a&&nQ(r,a)&&(t.effectTag|=16),of(e,t),4&t.mode&&1!==n&&i.hidden?(t.expirationTime=t.childExpirationTime=1,t=null):(os(e,t,o,n),t=t.child),t;case 6:return null===e&&ot(t),null;case 13:return og(e,t,n);case 4:return ab(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=au(t,null,r,n):os(e,t,r,n),t.child;case 11:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:ij(r,i),ou(e,t,r,i,n);case 7:return os(e,t,t.pendingProps,n),t.child;case 8:case 12:return os(e,t,t.pendingProps.children,n),t.child;case 10:a:{if(r=t.type._context,i=t.pendingProps,o=t.memoizedProps,i$(t,a=i.value),null!==o){var s=o.value;if(0==(a=r$(s,a)?0:("function"==typeof r._calculateChangedBits?r._calculateChangedBits(s,a):1073741823)|0)){if(o.children===i.children&&!r9.current){t=o_(e,t,n);break a}}else for(null!==(s=t.child)&&(s.return=t);null!==s;){var u=s.dependencies;if(null!==u){o=s.child;for(var c=u.firstContext;null!==c;){if(c.context===r&&0!=(c.observedBits&a)){1===s.tag&&((c=iX(n,null)).tag=2,iQ(s,c)),s.expirationTime=t&&e<=t}function s5(e,t){var n=e.firstSuspendedTime,r=e.lastSuspendedTime;nt||0===n)&&(e.lastSuspendedTime=t),t<=e.lastPingedTime&&(e.lastPingedTime=0),t<=e.lastExpiredTime&&(e.lastExpiredTime=0)}function s6(e,t){t>e.firstPendingTime&&(e.firstPendingTime=t);var n=e.firstSuspendedTime;0!==n&&(t>=n?e.firstSuspendedTime=e.lastSuspendedTime=e.nextKnownPendingLevel=0:t>=e.lastSuspendedTime&&(e.lastSuspendedTime=t+1),t>e.nextKnownPendingLevel&&(e.nextKnownPendingLevel=t))}function s9(e,t){var n=e.lastExpiredTime;(0===n||n>t)&&(e.lastExpiredTime=t)}function s8(e,t,n,r){var i=t.current,a=sb(),o=i6.suspense;a=sm(a,i,o);a:if(n){n=n._reactInternalFiber;b:{if(tr(n)!==n||1!==n.tag)throw Error(f(170));var s=n;do{switch(s.tag){case 3:s=s.stateNode.context;break b;case 1:if(ie(s.type)){s=s.stateNode.__reactInternalMemoizedMergedChildContext;break b}}s=s.return}while(null!==s)throw Error(f(171))}if(1===n.tag){var u=n.type;if(ie(u)){n=ia(n,u,s);break a}}n=s}else n=r5;return null===t.context?t.context=n:t.pendingContext=n,(t=iX(a,o)).payload={element:e},null!==(r=void 0===r?null:r)&&(t.callback=r),iQ(i,t),sg(i,a),a}function s7(e){return(e=e.current).child?(e.child.tag,e.child.stateNode):null}function ue(e,t){null!==(e=e.memoizedState)&&null!==e.dehydrated&&e.retryTime1&&void 0!==arguments[1]?arguments[1]:this.props,n=t.target;if(n){var r=n;"string"==typeof n&&(r=window[n]),_(t,e.bind(null,r))}}},{key:"render",value:function(){return this.props.children||null}}]),t}(h.PureComponent);S.propTypes={},t.withOptions=E,t.default=S},69590(e){"use strict";var t=Array.isArray,n=Object.keys,r=Object.prototype.hasOwnProperty,i="undefined"!=typeof Element;function a(e,o){if(e===o)return!0;if(e&&o&&"object"==typeof e&&"object"==typeof o){var s,u,c,l=t(e),f=t(o);if(l&&f){if((u=e.length)!=o.length)return!1;for(s=u;0!=s--;)if(!a(e[s],o[s]))return!1;return!0}if(l!=f)return!1;var d=e instanceof Date,h=o instanceof Date;if(d!=h)return!1;if(d&&h)return e.getTime()==o.getTime();var p=e instanceof RegExp,b=o instanceof RegExp;if(p!=b)return!1;if(p&&b)return e.toString()==o.toString();var m=n(e);if((u=m.length)!==n(o).length)return!1;for(s=u;0!=s--;)if(!r.call(o,m[s]))return!1;if(i&&e instanceof Element&&o instanceof Element)return e===o;for(s=u;0!=s--;)if(("_owner"!==(c=m[s])||!e.$$typeof)&&!a(e[c],o[c]))return!1;return!0}return e!=e&&o!=o}e.exports=function(e,t){try{return a(e,t)}catch(n){if(n.message&&n.message.match(/stack|recursion/i)||-2146828260===n.number)return console.warn("Warning: react-fast-compare does not handle circular references.",n.name,n.message),!1;throw n}}},57209(e,t,n){"use strict";function r(e){return e&&"object"==typeof e&&"default"in e?e.default:e}i={value:!0};var i,a=r(n(67294));function o(e){return o.warnAboutHMRDisabled&&(o.warnAboutHMRDisabled=!0,console.error("React-Hot-Loader: misconfiguration detected, using production version in non-production environment."),console.error("React-Hot-Loader: Hot Module Replacement is not enabled.")),a.Children.only(e.children)}o.warnAboutHMRDisabled=!1;var s=function e(){return e.shouldWrapWithAppContainer?function(e){return function(t){return a.createElement(o,null,a.createElement(e,t))}}:function(e){return e}};s.shouldWrapWithAppContainer=!1;var u=function(e,t){return e===t},c=function(){},l=function(e){return e},f=function(){};t.zj=o,t.wU=s,i=u,i=c,i=l,i=f},69921(e,t){"use strict";/** @license React v16.13.1 + */ var r,i,a,o,s,u=n(67294),c=n(27418),l=n(63840);function f(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;nt}return!1}function eM(e,t,n,r,i,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=a}var eO={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){eO[e]=new eM(e,0,!1,e,null,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];eO[t]=new eM(t,1,!1,e[1],null,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(e){eO[e]=new eM(e,2,!1,e.toLowerCase(),null,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){eO[e]=new eM(e,2,!1,e,null,!1)}),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){eO[e]=new eM(e,3,!1,e.toLowerCase(),null,!1)}),["checked","multiple","muted","selected"].forEach(function(e){eO[e]=new eM(e,3,!0,e,null,!1)}),["capture","download"].forEach(function(e){eO[e]=new eM(e,4,!1,e,null,!1)}),["cols","rows","size","span"].forEach(function(e){eO[e]=new eM(e,6,!1,e,null,!1)}),["rowSpan","start"].forEach(function(e){eO[e]=new eM(e,5,!1,e.toLowerCase(),null,!1)});var eA=/[\-:]([a-z])/g;function eL(e){return e[1].toUpperCase()}function eC(e){switch(typeof e){case"boolean":case"number":case"object":case"string":case"undefined":return e;default:return""}}function eI(e,t,n,r){var i=eO.hasOwnProperty(t)?eO[t]:null;(null!==i?0===i.type:!r&&2=t.length))throw Error(f(93));t=t[0]}n=t}null==n&&(n="")}e._wrapperState={initialValue:eC(n)}}function eV(e,t){var n=eC(t.value),r=eC(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 eq(e){var t=e.textContent;t===e._wrapperState.initialValue&&""!==t&&null!==t&&(e.value=t)}"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(eA,eL);eO[t]=new eM(t,1,!1,e,null,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(eA,eL);eO[t]=new eM(t,1,!1,e,"http://www.w3.org/1999/xlink",!1)}),["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(eA,eL);eO[t]=new eM(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1)}),["tabIndex","crossOrigin"].forEach(function(e){eO[e]=new eM(e,1,!1,e.toLowerCase(),null,!1)}),eO.xlinkHref=new eM("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0),["src","href","action","formAction"].forEach(function(e){eO[e]=new eM(e,1,!1,e.toLowerCase(),null,!0)});var eZ={html:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML",svg:"http://www.w3.org/2000/svg"};function eX(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 eJ(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?eX(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var eQ,e1,e0=(eQ=function(e,t){if(e.namespaceURI!==eZ.svg||"innerHTML"in e)e.innerHTML=t;else{for((e1=e1||document.createElement("div")).innerHTML=""+t.valueOf().toString()+"",t=e1.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 eQ(e,t,n,r)})}:eQ);function e2(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType){n.nodeValue=t;return}}e.textContent=t}function e3(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var e4={animationend:e3("Animation","AnimationEnd"),animationiteration:e3("Animation","AnimationIteration"),animationstart:e3("Animation","AnimationStart"),transitionend:e3("Transition","TransitionEnd")},e6={},e5={};function e8(e){if(e6[e])return e6[e];if(!e4[e])return e;var t,n=e4[e];for(t in n)if(n.hasOwnProperty(t)&&t in e5)return e6[e]=n[t];return e}eo&&(e5=document.createElement("div").style,"AnimationEvent"in window||(delete e4.animationend.animation,delete e4.animationiteration.animation,delete e4.animationstart.animation),"TransitionEvent"in window||delete e4.transitionend.transition);var e9=e8("animationend"),e7=e8("animationiteration"),te=e8("animationstart"),tt=e8("transitionend"),tn="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting".split(" ");function tr(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do 0!=(1026&(t=e).effectTag)&&(n=t.return),e=t.return;while(e)}return 3===t.tag?n:null}function ti(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 ta(e){if(tr(e)!==e)throw Error(f(188))}function to(e){var t=e.alternate;if(!t){if(null===(t=tr(e)))throw Error(f(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 ta(i),e;if(a===r)return ta(i),t;a=a.sibling}throw Error(f(188))}if(n.return!==r.return)n=i,r=a;else{for(var o=!1,s=i.child;s;){if(s===n){o=!0,n=i,r=a;break}if(s===r){o=!0,r=i,n=a;break}s=s.sibling}if(!o){for(s=a.child;s;){if(s===n){o=!0,n=a,r=i;break}if(s===r){o=!0,r=a,n=i;break}s=s.sibling}if(!o)throw Error(f(189))}}if(n.alternate!==r)throw Error(f(190))}if(3!==n.tag)throw Error(f(188));return n.stateNode.current===n?e:t}function ts(e){if(!(e=to(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}var tu,tc,tl,tf=!1,td=[],th=null,tp=null,tb=null,tm=new Map,tg=new Map,tv=[],ty="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput close cancel copy cut paste click change contextmenu reset submit".split(" "),tw="focus blur dragenter dragleave mouseover mouseout pointerover pointerout gotpointercapture lostpointercapture".split(" ");function t_(e){var t=nA(e);ty.forEach(function(n){nL(n,e,t)}),tw.forEach(function(n){nL(n,e,t)})}function tE(e,t,n,r){return{blockedOn:e,topLevelType:t,eventSystemFlags:32|n,nativeEvent:r}}function tS(e,t){switch(e){case"focus":case"blur":th=null;break;case"dragenter":case"dragleave":tp=null;break;case"mouseover":case"mouseout":tb=null;break;case"pointerover":case"pointerout":tm.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":tg.delete(t.pointerId)}}function tk(e,t,n,r,i){return null===e||e.nativeEvent!==i?(e=tE(t,n,r,i),null!==t&&null!==(t=n7(t))&&tc(t),e):(e.eventSystemFlags|=r,e)}function tx(e,t,n,r){switch(t){case"focus":return th=tk(th,e,t,n,r),!0;case"dragenter":return tp=tk(tp,e,t,n,r),!0;case"mouseover":return tb=tk(tb,e,t,n,r),!0;case"pointerover":var i=r.pointerId;return tm.set(i,tk(tm.get(i)||null,e,t,n,r)),!0;case"gotpointercapture":return i=r.pointerId,tg.set(i,tk(tg.get(i)||null,e,t,n,r)),!0}return!1}function tT(e){var t=n9(e.target);if(null!==t){var n=tr(t);if(null!==n){if(13===(t=n.tag)){if(null!==(t=ti(n))){e.blockedOn=t,l.unstable_runWithPriority(e.priority,function(){tl(n)});return}}else if(3===t&&n.stateNode.hydrate){e.blockedOn=3===n.tag?n.stateNode.containerInfo:null;return}}}e.blockedOn=null}function tM(e){if(null!==e.blockedOn)return!1;var t=nT(e.topLevelType,e.eventSystemFlags,e.nativeEvent);if(null!==t){var n=n7(t);return null!==n&&tc(n),e.blockedOn=t,!1}return!0}function tO(e,t,n){tM(e)&&n.delete(t)}function tA(){for(tf=!1;0this.eventPool.length&&this.eventPool.push(e)}function tz(e){e.eventPool=[],e.getPooled=tH,e.release=t$}c(tU.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=tY)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=tY)},persist:function(){this.isPersistent=tY},isPersistent:tB,destructor:function(){var e,t=this.constructor.Interface;for(e in t)this[e]=null;this.nativeEvent=this._targetInst=this.dispatchConfig=null,this.isPropagationStopped=this.isDefaultPrevented=tB,this._dispatchInstances=this._dispatchListeners=null}}),tU.Interface={type:null,target:null,currentTarget:function(){return null},eventPhase:null,bubbles:null,cancelable:null,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:null,isTrusted:null},tU.extend=function(e){function t(){}function n(){return r.apply(this,arguments)}var r=this;t.prototype=r.prototype;var i=new t;return c(i,n.prototype),n.prototype=i,n.prototype.constructor=n,n.Interface=c({},r.Interface,e),n.extend=r.extend,tz(n),n},tz(tU);var tG=tU.extend({animationName:null,elapsedTime:null,pseudoElement:null}),tW=tU.extend({clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),tK=tU.extend({view:null,detail:null}),tV=tK.extend({relatedTarget:null});function tq(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}var tZ={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},tX={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"},tJ={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function tQ(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=tJ[e])&&!!t[e]}function t1(){return tQ}for(var t0=tK.extend({key:function(e){if(e.key){var t=tZ[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?13===(e=tq(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?tX[e.keyCode]||"Unidentified":""},location:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,repeat:null,locale:null,getModifierState:t1,charCode:function(e){return"keypress"===e.type?tq(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?tq(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}}),t2=0,t3=0,t4=!1,t6=!1,t5=tK.extend({screenX:null,screenY:null,clientX:null,clientY:null,pageX:null,pageY:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,getModifierState:t1,button:null,buttons:null,relatedTarget:function(e){return e.relatedTarget||(e.fromElement===e.srcElement?e.toElement:e.fromElement)},movementX:function(e){if(("movementX"in e))return e.movementX;var t=t2;return t2=e.screenX,t4?"mousemove"===e.type?e.screenX-t:0:(t4=!0,0)},movementY:function(e){if(("movementY"in e))return e.movementY;var t=t3;return t3=e.screenY,t6?"mousemove"===e.type?e.screenY-t:0:(t6=!0,0)}}),t8=t5.extend({pointerId:null,width:null,height:null,pressure:null,tangentialPressure:null,tiltX:null,tiltY:null,twist:null,pointerType:null,isPrimary:null}),t9=t5.extend({dataTransfer:null}),t7=tK.extend({touches:null,targetTouches:null,changedTouches:null,altKey:null,metaKey:null,ctrlKey:null,shiftKey:null,getModifierState:t1}),ne=tU.extend({propertyName:null,elapsedTime:null,pseudoElement:null}),nt=t5.extend({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:null,deltaMode:null}),nn=[["blur","blur",0],["cancel","cancel",0],["click","click",0],["close","close",0],["contextmenu","contextMenu",0],["copy","copy",0],["cut","cut",0],["auxclick","auxClick",0],["dblclick","doubleClick",0],["dragend","dragEnd",0],["dragstart","dragStart",0],["drop","drop",0],["focus","focus",0],["input","input",0],["invalid","invalid",0],["keydown","keyDown",0],["keypress","keyPress",0],["keyup","keyUp",0],["mousedown","mouseDown",0],["mouseup","mouseUp",0],["paste","paste",0],["pause","pause",0],["play","play",0],["pointercancel","pointerCancel",0],["pointerdown","pointerDown",0],["pointerup","pointerUp",0],["ratechange","rateChange",0],["reset","reset",0],["seeked","seeked",0],["submit","submit",0],["touchcancel","touchCancel",0],["touchend","touchEnd",0],["touchstart","touchStart",0],["volumechange","volumeChange",0],["drag","drag",1],["dragenter","dragEnter",1],["dragexit","dragExit",1],["dragleave","dragLeave",1],["dragover","dragOver",1],["mousemove","mouseMove",1],["mouseout","mouseOut",1],["mouseover","mouseOver",1],["pointermove","pointerMove",1],["pointerout","pointerOut",1],["pointerover","pointerOver",1],["scroll","scroll",1],["toggle","toggle",1],["touchmove","touchMove",1],["wheel","wheel",1],["abort","abort",2],[e9,"animationEnd",2],[e7,"animationIteration",2],[te,"animationStart",2],["canplay","canPlay",2],["canplaythrough","canPlayThrough",2],["durationchange","durationChange",2],["emptied","emptied",2],["encrypted","encrypted",2],["ended","ended",2],["error","error",2],["gotpointercapture","gotPointerCapture",2],["load","load",2],["loadeddata","loadedData",2],["loadedmetadata","loadedMetadata",2],["loadstart","loadStart",2],["lostpointercapture","lostPointerCapture",2],["playing","playing",2],["progress","progress",2],["seeking","seeking",2],["stalled","stalled",2],["suspend","suspend",2],["timeupdate","timeUpdate",2],[tt,"transitionEnd",2],["waiting","waiting",2]],nr={},ni={},na=0;na=t)return{node:r,offset:t-e};e=n}a:{for(;r;){if(r.nextSibling){r=r.nextSibling;break a}r=r.parentNode}r=void 0}r=nU(r)}}function n$(e,t){return!!e&&!!t&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?n$(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function nz(){for(var e=window,t=nB();t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(r){n=!1}if(n)e=t.contentWindow;else break;t=nB(e.document)}return t}function nG(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 nW="$",nK="/$",nV="$?",nq="$!",nZ=null,nX=null;function nJ(e,t){switch(e){case"button":case"input":case"select":case"textarea":return!!t.autoFocus}return!1}function nQ(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 n1="function"==typeof setTimeout?setTimeout:void 0,n0="function"==typeof clearTimeout?clearTimeout:void 0;function n2(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break}return e}function n3(e){e=e.previousSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if(n===nW||n===nq||n===nV){if(0===t)return e;t--}else n===nK&&t++}e=e.previousSibling}return null}var n4=Math.random().toString(36).slice(2),n6="__reactInternalInstance$"+n4,n5="__reactEventHandlers$"+n4,n8="__reactContainere$"+n4;function n9(e){var t=e[n6];if(t)return t;for(var n=e.parentNode;n;){if(t=n[n8]||n[n6]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=n3(e);null!==e;){if(n=e[n6])return n;e=n3(e)}return t}n=(e=n).parentNode}return null}function n7(e){return(e=e[n6]||e[n8])&&(5===e.tag||6===e.tag||13===e.tag||3===e.tag)?e:null}function re(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(f(33))}function rt(e){return e[n5]||null}var rn=null,rr=null,ri=null;function ra(){if(ri)return ri;var e,t,n=rr,r=n.length,i="value"in rn?rn.value:rn.textContent,a=i.length;for(e=0;e=rl),rh=" ",rp={beforeInput:{phasedRegistrationNames:{bubbled:"onBeforeInput",captured:"onBeforeInputCapture"},dependencies:["compositionend","keypress","textInput","paste"]},compositionEnd:{phasedRegistrationNames:{bubbled:"onCompositionEnd",captured:"onCompositionEndCapture"},dependencies:"blur compositionend keydown keypress keyup mousedown".split(" ")},compositionStart:{phasedRegistrationNames:{bubbled:"onCompositionStart",captured:"onCompositionStartCapture"},dependencies:"blur compositionstart keydown keypress keyup mousedown".split(" ")},compositionUpdate:{phasedRegistrationNames:{bubbled:"onCompositionUpdate",captured:"onCompositionUpdateCapture"},dependencies:"blur compositionupdate keydown keypress keyup mousedown".split(" ")}},rb=!1;function rm(e,t){switch(e){case"keyup":return -1!==ru.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"blur":return!0;default:return!1}}function rg(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var rv=!1;function ry(e,t){switch(e){case"compositionend":return rg(t);case"keypress":if(32!==t.which)return null;return rb=!0,rh;case"textInput":return(e=t.data)===rh&&rb?null:e;default:return null}}function rw(e,t){if(rv)return"compositionend"===e||!rc&&rm(e,t)?(e=ra(),ri=rr=rn=null,rv=!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=document.documentMode,rK={select:{phasedRegistrationNames:{bubbled:"onSelect",captured:"onSelectCapture"},dependencies:"blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange".split(" ")}},rV=null,rq=null,rZ=null,rX=!1;function rJ(e,t){var n=t.window===t?t.document:9===t.nodeType?t:t.ownerDocument;return rX||null==rV||rV!==nB(n)?null:(n="selectionStart"in(n=rV)&&nG(n)?{start:n.selectionStart,end:n.selectionEnd}:{anchorNode:(n=(n.ownerDocument&&n.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:n.anchorOffset,focusNode:n.focusNode,focusOffset:n.focusOffset},rZ&&rG(rZ,n)?null:(rZ=n,(e=tU.getPooled(rK.select,rq,e,t)).type="select",e.target=rV,tF(e),e))}var rQ={eventTypes:rK,extractEvents:function(e,t,n,r){var i,a=r.window===r?r.document:9===r.nodeType?r:r.ownerDocument;if(!(i=!a)){a:{a=nA(a),i=y.onSelect;for(var o=0;or2||(e.current=r0[r2],r0[r2]=null,r2--)}function r4(e,t){r0[++r2]=e.current,e.current=t}var r6={},r5={current:r6},r8={current:!1},r9=r6;function r7(e,t){var n=e.type.contextTypes;if(!n)return r6;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var i,a={};for(i in n)a[i]=t[i];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=a),a}function ie(e){return null!=(e=e.childContextTypes)}function it(e){r3(r8,e),r3(r5,e)}function ir(e){r3(r8,e),r3(r5,e)}function ii(e,t,n){if(r5.current!==r6)throw Error(f(168));r4(r5,t,e),r4(r8,n,e)}function ia(e,t,n){var r=e.stateNode;if(e=t.childContextTypes,"function"!=typeof r.getChildContext)return n;for(var i in r=r.getChildContext())if(!(i in e))throw Error(f(108,ei(t)||"Unknown",i));return c({},n,{},r)}function io(e){var t=e.stateNode;return t=t&&t.__reactInternalMemoizedMergedChildContext||r6,r9=r5.current,r4(r5,t,e),r4(r8,r8.current,e),!0}function is(e,t,n){var r=e.stateNode;if(!r)throw Error(f(169));n?(t=ia(e,t,r9),r.__reactInternalMemoizedMergedChildContext=t,r3(r8,e),r3(r5,e),r4(r5,t,e)):r3(r8,e),r4(r8,n,e)}var iu=l.unstable_runWithPriority,ic=l.unstable_scheduleCallback,il=l.unstable_cancelCallback,id=l.unstable_shouldYield,ih=l.unstable_requestPaint,ip=l.unstable_now,ib=l.unstable_getCurrentPriorityLevel,im=l.unstable_ImmediatePriority,ig=l.unstable_UserBlockingPriority,iv=l.unstable_NormalPriority,iy=l.unstable_LowPriority,iw=l.unstable_IdlePriority,i_={},iE=void 0!==ih?ih:function(){},iS=null,ik=null,ix=!1,iT=ip(),iM=1e4>iT?ip:function(){return ip()-iT};function iO(){switch(ib()){case im:return 99;case ig:return 98;case iv:return 97;case iy:return 96;case iw:return 95;default:throw Error(f(332))}}function iA(e){switch(e){case 99:return im;case 98:return ig;case 97:return iv;case 96:return iy;case 95:return iw;default:throw Error(f(332))}}function iL(e,t){return e=iA(e),iu(e,t)}function iC(e,t,n){return e=iA(e),ic(e,t,n)}function iI(e){return null===iS?(iS=[e],ik=ic(im,iN)):iS.push(e),i_}function iD(){if(null!==ik){var e=ik;ik=null,il(e)}iN()}function iN(){if(!ix&&null!==iS){ix=!0;var e=0;try{var t=iS;iL(99,function(){for(;e=t&&(oo=!0),e.firstContext=null)}function iK(e,t){if(iU!==e&&!1!==t&&0!==t){if(("number"!=typeof t||1073741823===t)&&(iU=e,t=1073741823),t={context:e,observedBits:t,next:null},null===iB){if(null===iY)throw Error(f(308));iB=t,iY.dependencies={expirationTime:0,firstContext:t,responders:null}}else iB=iB.next=t}return e._currentValue}var iV=!1;function iq(e){return{baseState:e,firstUpdate:null,lastUpdate:null,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function iZ(e){return{baseState:e.baseState,firstUpdate:e.firstUpdate,lastUpdate:e.lastUpdate,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function iX(e,t){return{expirationTime:e,suspenseConfig:t,tag:0,payload:null,callback:null,next:null,nextEffect:null}}function iJ(e,t){null===e.lastUpdate?e.firstUpdate=e.lastUpdate=t:(e.lastUpdate.next=t,e.lastUpdate=t)}function iQ(e,t){var n=e.alternate;if(null===n){var r=e.updateQueue,i=null;null===r&&(r=e.updateQueue=iq(e.memoizedState))}else r=e.updateQueue,i=n.updateQueue,null===r?null===i?(r=e.updateQueue=iq(e.memoizedState),i=n.updateQueue=iq(n.memoizedState)):r=e.updateQueue=iZ(i):null===i&&(i=n.updateQueue=iZ(r));null===i||r===i?iJ(r,t):null===r.lastUpdate||null===i.lastUpdate?(iJ(r,t),iJ(i,t)):(iJ(r,t),i.lastUpdate=t)}function i1(e,t){var n=e.updateQueue;null===(n=null===n?e.updateQueue=iq(e.memoizedState):i0(e,n)).lastCapturedUpdate?n.firstCapturedUpdate=n.lastCapturedUpdate=t:(n.lastCapturedUpdate.next=t,n.lastCapturedUpdate=t)}function i0(e,t){var n=e.alternate;return null!==n&&t===n.updateQueue&&(t=e.updateQueue=iZ(t)),t}function i2(e,t,n,r,i,a){switch(n.tag){case 1:return"function"==typeof(e=n.payload)?e.call(a,r,i):e;case 3:e.effectTag=-4097&e.effectTag|64;case 0:if(null==(i="function"==typeof(e=n.payload)?e.call(a,r,i):e))break;return c({},r,i);case 2:iV=!0}return r}function i3(e,t,n,r,i){iV=!1,t=i0(e,t);for(var a=t.baseState,o=null,s=0,u=t.firstUpdate,c=a;null!==u;){var l=u.expirationTime;lb?(m=f,f=null):m=f.sibling;var g=h(i,f,s[b],u);if(null===g){null===f&&(f=m);break}e&&f&&null===g.alternate&&t(i,f),o=a(g,o,b),null===l?c=g:l.sibling=g,l=g,f=m}if(b===s.length)return n(i,f),c;if(null===f){for(;bm?(g=b,b=null):g=b.sibling;var y=h(i,b,v.value,u);if(null===y){null===b&&(b=g);break}e&&b&&null===y.alternate&&t(i,b),o=a(y,o,m),null===l?c=y:l.sibling=y,l=y,b=g}if(v.done)return n(i,b),c;if(null===b){for(;!v.done;m++,v=s.next())null!==(v=d(i,v.value,u))&&(o=a(v,o,m),null===l?c=v:l.sibling=v,l=v);return c}for(b=r(i,b);!v.done;m++,v=s.next())null!==(v=p(b,i,m,v.value,u))&&(e&&null!==v.alternate&&b.delete(null===v.key?m:v.key),o=a(v,o,m),null===l?c=v:l.sibling=v,l=v);return e&&b.forEach(function(e){return t(i,e)}),c}return function(e,r,a,s){var u="object"==typeof a&&null!==a&&a.type===z&&null===a.key;u&&(a=a.props.children);var c="object"==typeof a&&null!==a;if(c)switch(a.$$typeof){case H:a:{for(c=a.key,u=r;null!==u;){if(u.key===c){if(7===u.tag?a.type===z:u.elementType===a.type){n(e,u.sibling),(r=i(u,a.type===z?a.props.children:a.props,s)).ref=aa(e,u,a),r.return=e,e=r;break a}n(e,u);break}t(e,u),u=u.sibling}a.type===z?((r=s1(a.props.children,e.mode,s,a.key)).return=e,e=r):((s=sQ(a.type,a.key,a.props,null,e.mode,s)).ref=aa(e,r,a),s.return=e,e=s)}return o(e);case $:a:{for(u=a.key;null!==r;){if(r.key===u){if(4===r.tag&&r.stateNode.containerInfo===a.containerInfo&&r.stateNode.implementation===a.implementation){n(e,r.sibling),(r=i(r,a.children||[],s)).return=e,e=r;break a}n(e,r);break}t(e,r),r=r.sibling}(r=s2(a,e.mode,s)).return=e,e=r}return o(e)}if("string"==typeof a||"number"==typeof a)return a=""+a,null!==r&&6===r.tag?(n(e,r.sibling),(r=i(r,a,s)).return=e,e=r):(n(e,r),(r=s0(a,e.mode,s)).return=e,e=r),o(e);if(ai(a))return b(e,r,a,s);if(en(a))return m(e,r,a,s);if(c&&ao(e,a),void 0===a&&!u)switch(e.tag){case 1:case 0:throw Error(f(152,(e=e.type).displayName||e.name||"Component"))}return n(e,r)}}var au=as(!0),ac=as(!1),al={},af={current:al},ad={current:al},ah={current:al};function ap(e){if(e===al)throw Error(f(174));return e}function ab(e,t){r4(ah,t,e),r4(ad,e,e),r4(af,al,e);var n=t.nodeType;switch(n){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:eJ(null,"");break;default:t=eJ(t=(n=8===n?t.parentNode:t).namespaceURI||null,n=n.tagName)}r3(af,e),r4(af,t,e)}function am(e){r3(af,e),r3(ad,e),r3(ah,e)}function ag(e){ap(ah.current);var t=ap(af.current),n=eJ(t,e.type);t!==n&&(r4(ad,e,e),r4(af,n,e))}function av(e){ad.current===e&&(r3(af,e),r3(ad,e))}var ay={current:0};function aw(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||n.data===nV||n.data===nq))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(0!=(64&t.effectTag))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}function a_(e,t){return{responder:e,props:t}}var aE=Y.ReactCurrentDispatcher,aS=Y.ReactCurrentBatchConfig,ak=0,ax=null,aT=null,aM=null,aO=null,aA=null,aL=null,aC=0,aI=null,aD=0,aN=!1,aP=null,aR=0;function aj(){throw Error(f(321))}function aF(e,t){if(null===t)return!1;for(var n=0;naC&&sL(aC=l)):(sA(l,u.suspenseConfig),a=u.eagerReducer===e?u.eagerState:e(a,u.action)),o=u,u=u.next}while(null!==u&&u!==r)c||(s=o,i=a),r$(a,t.memoizedState)||(oo=!0),t.memoizedState=a,t.baseUpdate=s,t.baseState=i,n.lastRenderedState=a}return[t.memoizedState,n.dispatch]}function aG(e){var t=aU();return"function"==typeof e&&(e=e()),t.memoizedState=t.baseState=e,e=(e=t.queue={last:null,dispatch:null,lastRenderedReducer:a$,lastRenderedState:e}).dispatch=a2.bind(null,ax,e),[t.memoizedState,e]}function aW(e){return az(a$,e)}function aK(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===aI?(aI={lastEffect:null}).lastEffect=e.next=e:null===(t=aI.lastEffect)?aI.lastEffect=e.next=e:(n=t.next,t.next=e,e.next=n,aI.lastEffect=e),e}function aV(e,t,n,r){var i=aU();aD|=e,i.memoizedState=aK(t,n,void 0,void 0===r?null:r)}function aq(e,t,n,r){var i=aH();r=void 0===r?null:r;var a=void 0;if(null!==aT){var o=aT.memoizedState;if(a=o.destroy,null!==r&&aF(r,o.deps)){aK(0,n,a,r);return}}aD|=e,i.memoizedState=aK(t,n,a,r)}function aZ(e,t){return aV(516,192,e,t)}function aX(e,t){return aq(516,192,e,t)}function aJ(e,t){return"function"==typeof t?(t(e=e()),function(){t(null)}):null!=t?(e=e(),t.current=e,function(){t.current=null}):void 0}function aQ(){}function a1(e,t){return aU().memoizedState=[e,void 0===t?null:t],e}function a0(e,t){var n=aH();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&aF(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function a2(e,t,n){if(!(25>aR))throw Error(f(301));var r=e.alternate;if(e===ax||null!==r&&r===ax){if(aN=!0,e={expirationTime:ak,suspenseConfig:null,action:n,eagerReducer:null,eagerState:null,next:null},null===aP&&(aP=new Map),void 0===(n=aP.get(t)))aP.set(t,e);else{for(t=n;null!==t.next;)t=t.next;t.next=e}}else{var i=sb(),a=i5.suspense;a={expirationTime:i=sm(i,e,a),suspenseConfig:a,action:n,eagerReducer:null,eagerState:null,next:null};var o=t.last;if(null===o)a.next=a;else{var s=o.next;null!==s&&(a.next=s),o.next=a}if(t.last=a,0===e.expirationTime&&(null===r||0===r.expirationTime)&&null!==(r=t.lastRenderedReducer))try{var u=t.lastRenderedState,c=r(u,n);if(a.eagerReducer=r,a.eagerState=c,r$(c,u))return}catch(l){}finally{}sg(e,i)}}var a3={readContext:iK,useCallback:aj,useContext:aj,useEffect:aj,useImperativeHandle:aj,useLayoutEffect:aj,useMemo:aj,useReducer:aj,useRef:aj,useState:aj,useDebugValue:aj,useResponder:aj,useDeferredValue:aj,useTransition:aj},a4={readContext:iK,useCallback:a1,useContext:iK,useEffect:aZ,useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,aV(4,36,aJ.bind(null,t,e),n)},useLayoutEffect:function(e,t){return aV(4,36,e,t)},useMemo:function(e,t){var n=aU();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=aU();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e=(e=r.queue={last:null,dispatch:null,lastRenderedReducer:e,lastRenderedState:t}).dispatch=a2.bind(null,ax,e),[r.memoizedState,e]},useRef:function(e){var t=aU();return e={current:e},t.memoizedState=e},useState:aG,useDebugValue:aQ,useResponder:a_,useDeferredValue:function(e,t){var n=aG(e),r=n[0],i=n[1];return aZ(function(){l.unstable_next(function(){var n=aS.suspense;aS.suspense=void 0===t?null:t;try{i(e)}finally{aS.suspense=n}})},[e,t]),r},useTransition:function(e){var t=aG(!1),n=t[0],r=t[1];return[a1(function(t){r(!0),l.unstable_next(function(){var n=aS.suspense;aS.suspense=void 0===e?null:e;try{r(!1),t()}finally{aS.suspense=n}})},[e,n]),n]}},a6={readContext:iK,useCallback:a0,useContext:iK,useEffect:aX,useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,aq(4,36,aJ.bind(null,t,e),n)},useLayoutEffect:function(e,t){return aq(4,36,e,t)},useMemo:function(e,t){var n=aH();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&aF(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)},useReducer:az,useRef:function(){return aH().memoizedState},useState:aW,useDebugValue:aQ,useResponder:a_,useDeferredValue:function(e,t){var n=aW(e),r=n[0],i=n[1];return aX(function(){l.unstable_next(function(){var n=aS.suspense;aS.suspense=void 0===t?null:t;try{i(e)}finally{aS.suspense=n}})},[e,t]),r},useTransition:function(e){var t=aW(!1),n=t[0],r=t[1];return[a0(function(t){r(!0),l.unstable_next(function(){var n=aS.suspense;aS.suspense=void 0===e?null:e;try{r(!1),t()}finally{aS.suspense=n}})},[e,n]),n]}},a5=null,a8=null,a9=!1;function a7(e,t){var n=sq(5,null,null,0);n.elementType="DELETED",n.type="DELETED",n.stateNode=t,n.return=e,n.effectTag=8,null!==e.lastEffect?(e.lastEffect.nextEffect=n,e.lastEffect=n):e.firstEffect=e.lastEffect=n}function oe(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 ot(e){if(a9){var t=a8;if(t){var n=t;if(!oe(e,t)){if(!(t=n2(n.nextSibling))||!oe(e,t)){e.effectTag=-1025&e.effectTag|2,a9=!1,a5=e;return}a7(a5,n)}a5=e,a8=n2(t.firstChild)}else e.effectTag=-1025&e.effectTag|2,a9=!1,a5=e}}function on(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&13!==e.tag;)e=e.return;a5=e}function or(e){if(e!==a5)return!1;if(!a9)return on(e),a9=!0,!1;var t=e.type;if(5!==e.tag||"head"!==t&&"body"!==t&&!nQ(t,e.memoizedProps))for(t=a8;t;)a7(e,t),t=n2(t.nextSibling);if(on(e),13===e.tag){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(f(317));a:{for(t=0,e=e.nextSibling;e;){if(8===e.nodeType){var n=e.data;if(n===nK){if(0===t){a8=n2(e.nextSibling);break a}t--}else n!==nW&&n!==nq&&n!==nV||t++}e=e.nextSibling}a8=null}}else a8=a5?n2(e.stateNode.nextSibling):null;return!0}function oi(){a8=a5=null,a9=!1}var oa=Y.ReactCurrentOwner,oo=!1;function os(e,t,n,r){t.child=null===e?ac(t,null,n,r):au(t,e.child,n,r)}function ou(e,t,n,r,i){n=n.render;var a=t.ref;return(iW(t,i),r=aY(e,t,n,r,a,i),null===e||oo)?(t.effectTag|=1,os(e,t,r,i),t.child):(t.updateQueue=e.updateQueue,t.effectTag&=-517,e.expirationTime<=i&&(e.expirationTime=0),o_(e,t,i))}function oc(e,t,n,r,i,a){if(null===e){var o=n.type;return"function"!=typeof o||sZ(o)||void 0!==o.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=sQ(n.type,null,r,null,t.mode,a)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=o,ol(e,t,o,r,i,a))}return(o=e.child,it)&&sf.set(e,t))}}function sv(e,t){e.expirationTime(e=e.nextKnownPendingLevel)?t:e:t}function sw(e){if(0!==e.lastExpiredTime)e.callbackExpirationTime=1073741823,e.callbackPriority=99,e.callbackNode=iI(sE.bind(null,e));else{var t=sy(e),n=e.callbackNode;if(0===t)null!==n&&(e.callbackNode=null,e.callbackExpirationTime=0,e.callbackPriority=90);else{var r=sb();if(r=1073741823===t?99:1===t||2===t?95:0>=(r=10*(1073741821-t)-10*(1073741821-r))?99:250>=r?98:5250>=r?97:95,null!==n){var i=e.callbackPriority;if(e.callbackExpirationTime===t&&i>=r)return;n!==i_&&il(n)}e.callbackExpirationTime=t,e.callbackPriority=r,t=1073741823===t?iI(sE.bind(null,e)):iC(r,s_.bind(null,e),{timeout:10*(1073741821-t)-iM()}),e.callbackNode=t}}}function s_(e,t){if(sp=0,t)return t=sb(),s8(e,t),sw(e),null;var n=sy(e);if(0!==n){if(t=e.callbackNode,(o0&(oK|oV))!==oG)throw Error(f(327));if(sY(),e===o2&&n===o4||sT(e,n),null!==o3){var r=o0;o0|=oK;for(var i=sO(e);;)try{sI();break}catch(a){sM(e,a)}if(iH(),o0=r,o$.current=i,o6===oZ)throw t=o5,sT(e,n),s6(e,n),sw(e),t;if(null===o3)switch(i=e.finishedWork=e.current.alternate,e.finishedExpirationTime=n,o2=null,r=o6){case oq:case oZ:throw Error(f(345));case oX:s8(e,2=n){e.lastPingedTime=n,sT(e,n);break}}if(0!==(o=sy(e))&&o!==n)break;if(0!==r&&r!==n){e.lastPingedTime=r;break}e.timeoutHandle=n1(sR.bind(null,e),i);break}sR(e);break;case oQ:if(s6(e,n),n===(r=e.lastSuspendedTime)&&(e.nextKnownPendingLevel=sP(i)),st&&(0===(i=e.lastPingedTime)||i>=n)){e.lastPingedTime=n,sT(e,n);break}if(0!==(i=sy(e))&&i!==n)break;if(0!==r&&r!==n){e.lastPingedTime=r;break}if(1073741823!==o9?r=10*(1073741821-o9)-iM():1073741823===o8?r=0:(r=10*(1073741821-o8)-5e3,n=10*(1073741821-n)-(i=iM()),0>(r=i-r)&&(r=0),n<(r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*oH(r/1960))-r)&&(r=n)),10=(r=0|s.busyMinDurationMs)?r=0:(i=0|s.busyDelayMs,r=(o=iM()-(10*(1073741821-o)-(0|s.timeoutMs||5e3)))<=i?0:i+r-o),10 component higher in the tree to provide a loading indicator or placeholder to display."+ea(i))}o6!==o1&&(o6=oX),a=ox(a,i),c=r;do{switch(c.tag){case 3:s=a,c.effectTag|=4096,c.expirationTime=t;var g=oB(c,s,t);i1(c,g);break a;case 1:s=a;var v=c.type,y=c.stateNode;if(0==(64&c.effectTag)&&("function"==typeof v.getDerivedStateFromError||null!==y&&"function"==typeof y.componentDidCatch&&(null===ss||!ss.has(y)))){c.effectTag|=4096,c.expirationTime=t;var w=oU(c,s,t);i1(c,w);break a}}c=c.return}while(null!==c)}o3=sN(o3)}catch(_){t=_;continue}break}}function sO(){var e=o$.current;return o$.current=a3,null===e?a3:e}function sA(e,t){ese&&(se=e)}function sC(){for(;null!==o3;)o3=sD(o3)}function sI(){for(;null!==o3&&!id();)o3=sD(o3)}function sD(e){var t=s(e.alternate,e,o4);return e.memoizedProps=e.pendingProps,null===t&&(t=sN(e)),oz.current=null,t}function sN(e){o3=e;do{var t=o3.alternate;if(e=o3.return,0==(2048&o3.effectTag)){a:{var n=t;t=o3;var s=o4,u=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:case 20:case 21:break;case 1:case 17:ie(t.type)&&it(t);break;case 3:am(t),ir(t),(u=t.stateNode).pendingContext&&(u.context=u.pendingContext,u.pendingContext=null),(null===n||null===n.child)&&or(t)&&oE(t),i(t);break;case 5:av(t),s=ap(ah.current);var l=t.type;if(null!==n&&null!=t.stateNode)a(n,t,l,u,s),n.ref!==t.ref&&(t.effectTag|=128);else if(u){var d=ap(af.current);if(or(t)){var h=(u=t).stateNode;n=u.type;var p=u.memoizedProps,b=s;switch(h[n6]=u,h[n5]=p,l=void 0,s=h,n){case"iframe":case"object":case"embed":nw("load",s);break;case"video":case"audio":for(h=0;h",h=p.removeChild(p.firstChild)):"string"==typeof p.is?h=h.createElement(b,{is:p.is}):(h=h.createElement(b),"select"===b&&(b=h,p.multiple?b.multiple=!0:p.size&&(b.size=p.size))):h=h.createElementNS(d,b),(p=h)[n6]=n,p[n5]=u,r(p,t,!1,!1),t.stateNode=p,b=l;var m=s,g=nj(b,n=u);switch(b){case"iframe":case"object":case"embed":nw("load",p),s=n;break;case"video":case"audio":for(s=0;su.tailExpiration&&1l&&(l=n),p>l&&(l=p),s=s.sibling;u.childExpirationTime=l}if(null!==t)return t;null!==e&&0==(2048&e.effectTag)&&(null===e.firstEffect&&(e.firstEffect=o3.firstEffect),null!==o3.lastEffect&&(null!==e.lastEffect&&(e.lastEffect.nextEffect=o3.firstEffect),e.lastEffect=o3.lastEffect),1(e=e.childExpirationTime)?t:e}function sR(e){var t=iO();return iL(99,sj.bind(null,e,t)),null}function sj(e,t){do sY();while(null!==sc)if((o0&(oK|oV))!==oG)throw Error(f(327));var n=e.finishedWork,r=e.finishedExpirationTime;if(null===n)return null;if(e.finishedWork=null,e.finishedExpirationTime=0,n===e.current)throw Error(f(177));e.callbackNode=null,e.callbackExpirationTime=0,e.callbackPriority=90,e.nextKnownPendingLevel=0;var i=sP(n);if(e.firstPendingTime=i,r<=e.lastSuspendedTime?e.firstSuspendedTime=e.lastSuspendedTime=e.nextKnownPendingLevel=0:r<=e.firstSuspendedTime&&(e.firstSuspendedTime=r-1),r<=e.lastPingedTime&&(e.lastPingedTime=0),r<=e.lastExpiredTime&&(e.lastExpiredTime=0),e===o2&&(o3=o2=null,o4=0),1s&&(l=s,s=o,o=l),l=nH(E,o),d=nH(E,s),l&&d&&(1!==k.rangeCount||k.anchorNode!==l.node||k.anchorOffset!==l.offset||k.focusNode!==d.node||k.focusOffset!==d.offset)&&((S=S.createRange()).setStart(l.node,l.offset),k.removeAllRanges(),o>s?(k.addRange(S),k.extend(d.node,d.offset)):(S.setEnd(d.node,d.offset),k.addRange(S))))),S=[],k=E;k=k.parentNode;)1===k.nodeType&&S.push({element:k,left:k.scrollLeft,top:k.scrollTop});for("function"==typeof E.focus&&E.focus(),E=0;E=n)return og(e,t,n);return r4(ay,1&ay.current,t),null!==(t=o_(e,t,n))?t.sibling:null}r4(ay,1&ay.current,t);break;case 19:if(r=t.childExpirationTime>=n,0!=(64&e.effectTag)){if(r)return ow(e,t,n);t.effectTag|=64}if(null!==(i=t.memoizedState)&&(i.rendering=null,i.tail=null),r4(ay,ay.current,t),!r)return null}return o_(e,t,n)}oo=!1}}else oo=!1;switch(t.expirationTime=0,t.tag){case 2:if(r=t.type,null!==e&&(e.alternate=null,t.alternate=null,t.effectTag|=2),e=t.pendingProps,i=r7(t,r5.current),iW(t,n),i=aY(null,t,r,e,i,n),t.effectTag|=1,"object"==typeof i&&null!==i&&"function"==typeof i.render&&void 0===i.$$typeof){if(t.tag=1,aB(),ie(r)){var a=!0;io(t)}else a=!1;t.memoizedState=null!==i.state&&void 0!==i.state?i.state:null;var o=r.getDerivedStateFromProps;"function"==typeof o&&i9(t,r,o,e),i.updater=i7,t.stateNode=i,i._reactInternalFiber=t,ar(t,r,e,n),t=op(null,t,r,!0,a,n)}else t.tag=0,os(null,t,i,n),t=t.child;return t;case 16:if(i=t.elementType,null!==e&&(e.alternate=null,t.alternate=null,t.effectTag|=2),e=t.pendingProps,er(i),1!==i._status)throw i._result;switch(i=i._result,t.type=i,a=t.tag=sX(i),e=ij(i,e),a){case 0:t=od(null,t,i,e,n);break;case 1:t=oh(null,t,i,e,n);break;case 11:t=ou(null,t,i,e,n);break;case 14:t=oc(null,t,i,ij(i.type,e),r,n);break;default:throw Error(f(306,i,""))}return t;case 0:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:ij(r,i),od(e,t,r,i,n);case 1:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:ij(r,i),oh(e,t,r,i,n);case 3:if(ob(t),null===(r=t.updateQueue))throw Error(f(282));if(i=null!==(i=t.memoizedState)?i.element:null,i3(t,r,t.pendingProps,null,n),(r=t.memoizedState.element)===i)oi(),t=o_(e,t,n);else{if((i=t.stateNode.hydrate)&&(a8=n2(t.stateNode.containerInfo.firstChild),a5=t,i=a9=!0),i)for(n=ac(t,null,r,n),t.child=n;n;)n.effectTag=-3&n.effectTag|1024,n=n.sibling;else os(e,t,r,n),oi();t=t.child}return t;case 5:return ag(t),null===e&&ot(t),r=t.type,i=t.pendingProps,a=null!==e?e.memoizedProps:null,o=i.children,nQ(r,i)?o=null:null!==a&&nQ(r,a)&&(t.effectTag|=16),of(e,t),4&t.mode&&1!==n&&i.hidden?(t.expirationTime=t.childExpirationTime=1,t=null):(os(e,t,o,n),t=t.child),t;case 6:return null===e&&ot(t),null;case 13:return og(e,t,n);case 4:return ab(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=au(t,null,r,n):os(e,t,r,n),t.child;case 11:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:ij(r,i),ou(e,t,r,i,n);case 7:return os(e,t,t.pendingProps,n),t.child;case 8:case 12:return os(e,t,t.pendingProps.children,n),t.child;case 10:a:{if(r=t.type._context,i=t.pendingProps,o=t.memoizedProps,i$(t,a=i.value),null!==o){var s=o.value;if(0==(a=r$(s,a)?0:("function"==typeof r._calculateChangedBits?r._calculateChangedBits(s,a):1073741823)|0)){if(o.children===i.children&&!r8.current){t=o_(e,t,n);break a}}else for(null!==(s=t.child)&&(s.return=t);null!==s;){var u=s.dependencies;if(null!==u){o=s.child;for(var c=u.firstContext;null!==c;){if(c.context===r&&0!=(c.observedBits&a)){1===s.tag&&((c=iX(n,null)).tag=2,iQ(s,c)),s.expirationTime=t&&e<=t}function s6(e,t){var n=e.firstSuspendedTime,r=e.lastSuspendedTime;nt||0===n)&&(e.lastSuspendedTime=t),t<=e.lastPingedTime&&(e.lastPingedTime=0),t<=e.lastExpiredTime&&(e.lastExpiredTime=0)}function s5(e,t){t>e.firstPendingTime&&(e.firstPendingTime=t);var n=e.firstSuspendedTime;0!==n&&(t>=n?e.firstSuspendedTime=e.lastSuspendedTime=e.nextKnownPendingLevel=0:t>=e.lastSuspendedTime&&(e.lastSuspendedTime=t+1),t>e.nextKnownPendingLevel&&(e.nextKnownPendingLevel=t))}function s8(e,t){var n=e.lastExpiredTime;(0===n||n>t)&&(e.lastExpiredTime=t)}function s9(e,t,n,r){var i=t.current,a=sb(),o=i5.suspense;a=sm(a,i,o);a:if(n){n=n._reactInternalFiber;b:{if(tr(n)!==n||1!==n.tag)throw Error(f(170));var s=n;do{switch(s.tag){case 3:s=s.stateNode.context;break b;case 1:if(ie(s.type)){s=s.stateNode.__reactInternalMemoizedMergedChildContext;break b}}s=s.return}while(null!==s)throw Error(f(171))}if(1===n.tag){var u=n.type;if(ie(u)){n=ia(n,u,s);break a}}n=s}else n=r6;return null===t.context?t.context=n:t.pendingContext=n,(t=iX(a,o)).payload={element:e},null!==(r=void 0===r?null:r)&&(t.callback=r),iQ(i,t),sg(i,a),a}function s7(e){return(e=e.current).child?(e.child.tag,e.child.stateNode):null}function ue(e,t){null!==(e=e.memoizedState)&&null!==e.dehydrated&&e.retryTime1&&void 0!==arguments[1]?arguments[1]:this.props,n=t.target;if(n){var r=n;"string"==typeof n&&(r=window[n]),_(t,e.bind(null,r))}}},{key:"render",value:function(){return this.props.children||null}}]),t}(h.PureComponent);S.propTypes={},t.withOptions=E,t.default=S},69590(e){"use strict";var t=Array.isArray,n=Object.keys,r=Object.prototype.hasOwnProperty,i="undefined"!=typeof Element;function a(e,o){if(e===o)return!0;if(e&&o&&"object"==typeof e&&"object"==typeof o){var s,u,c,l=t(e),f=t(o);if(l&&f){if((u=e.length)!=o.length)return!1;for(s=u;0!=s--;)if(!a(e[s],o[s]))return!1;return!0}if(l!=f)return!1;var d=e instanceof Date,h=o instanceof Date;if(d!=h)return!1;if(d&&h)return e.getTime()==o.getTime();var p=e instanceof RegExp,b=o instanceof RegExp;if(p!=b)return!1;if(p&&b)return e.toString()==o.toString();var m=n(e);if((u=m.length)!==n(o).length)return!1;for(s=u;0!=s--;)if(!r.call(o,m[s]))return!1;if(i&&e instanceof Element&&o instanceof Element)return e===o;for(s=u;0!=s--;)if(("_owner"!==(c=m[s])||!e.$$typeof)&&!a(e[c],o[c]))return!1;return!0}return e!=e&&o!=o}e.exports=function(e,t){try{return a(e,t)}catch(n){if(n.message&&n.message.match(/stack|recursion/i)||-2146828260===n.number)return console.warn("Warning: react-fast-compare does not handle circular references.",n.name,n.message),!1;throw n}}},57209(e,t,n){"use strict";function r(e){return e&&"object"==typeof e&&"default"in e?e.default:e}i={value:!0};var i,a=r(n(67294));function o(e){return o.warnAboutHMRDisabled&&(o.warnAboutHMRDisabled=!0,console.error("React-Hot-Loader: misconfiguration detected, using production version in non-production environment."),console.error("React-Hot-Loader: Hot Module Replacement is not enabled.")),a.Children.only(e.children)}o.warnAboutHMRDisabled=!1;var s=function e(){return e.shouldWrapWithAppContainer?function(e){return function(t){return a.createElement(o,null,a.createElement(e,t))}}:function(e){return e}};s.shouldWrapWithAppContainer=!1;var u=function(e,t){return e===t},c=function(){},l=function(e){return e},f=function(){};t.zj=o,t.wU=s,i=u,i=c,i=l,i=f},69921(e,t){"use strict";/** @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. - */ var n="function"==typeof Symbol&&Symbol.for,r=n?Symbol.for("react.element"):60103,i=n?Symbol.for("react.portal"):60106,a=n?Symbol.for("react.fragment"):60107,o=n?Symbol.for("react.strict_mode"):60108,s=n?Symbol.for("react.profiler"):60114,u=n?Symbol.for("react.provider"):60109,c=n?Symbol.for("react.context"):60110,l=n?Symbol.for("react.async_mode"):60111,f=n?Symbol.for("react.concurrent_mode"):60111,d=n?Symbol.for("react.forward_ref"):60112,h=n?Symbol.for("react.suspense"):60113,p=n?Symbol.for("react.suspense_list"):60120,b=n?Symbol.for("react.memo"):60115,m=n?Symbol.for("react.lazy"):60116,g=n?Symbol.for("react.block"):60121,v=n?Symbol.for("react.fundamental"):60117,y=n?Symbol.for("react.responder"):60118,w=n?Symbol.for("react.scope"):60119;function _(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case l:case f:case a:case s:case o:case h:return e;default:switch(e=e&&e.$$typeof){case c:case d:case m:case b:case u:return e;default:return t}}case i:return t}}}function E(e){return _(e)===f}t.AsyncMode=l,t.ConcurrentMode=f,t.ContextConsumer=c,t.ContextProvider=u,t.Element=r,t.ForwardRef=d,t.Fragment=a,t.Lazy=m,t.Memo=b,t.Portal=i,t.Profiler=s,t.StrictMode=o,t.Suspense=h,t.isAsyncMode=function(e){return E(e)||_(e)===l},t.isConcurrentMode=E,t.isContextConsumer=function(e){return _(e)===c},t.isContextProvider=function(e){return _(e)===u},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return _(e)===d},t.isFragment=function(e){return _(e)===a},t.isLazy=function(e){return _(e)===m},t.isMemo=function(e){return _(e)===b},t.isPortal=function(e){return _(e)===i},t.isProfiler=function(e){return _(e)===s},t.isStrictMode=function(e){return _(e)===o},t.isSuspense=function(e){return _(e)===h},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===a||e===f||e===s||e===o||e===h||e===p||"object"==typeof e&&null!==e&&(e.$$typeof===m||e.$$typeof===b||e.$$typeof===u||e.$$typeof===c||e.$$typeof===d||e.$$typeof===v||e.$$typeof===y||e.$$typeof===w||e.$$typeof===g)},t.typeOf=_},59864(e,t,n){"use strict";e.exports=n(69921)},46871(e,t,n){"use strict";function r(){var e=this.constructor.getDerivedStateFromProps(this.props,this.state);null!=e&&this.setState(e)}function i(e){function t(t){var n=this.constructor.getDerivedStateFromProps(e,t);return null!=n?n:null}this.setState(t.bind(this))}function a(e,t){try{var n=this.props,r=this.state;this.props=e,this.state=t,this.__reactInternalSnapshotFlag=!0,this.__reactInternalSnapshot=this.getSnapshotBeforeUpdate(n,r)}finally{this.props=n,this.state=r}}function o(e){var t,n=e.prototype;if(!n||!n.isReactComponent)throw Error("Can only polyfill class components");if("function"!=typeof e.getDerivedStateFromProps&&"function"!=typeof n.getSnapshotBeforeUpdate)return e;var o=null,s=null,u=null;if("function"==typeof n.componentWillMount?o="componentWillMount":"function"==typeof n.UNSAFE_componentWillMount&&(o="UNSAFE_componentWillMount"),"function"==typeof n.componentWillReceiveProps?s="componentWillReceiveProps":"function"==typeof n.UNSAFE_componentWillReceiveProps&&(s="UNSAFE_componentWillReceiveProps"),"function"==typeof n.componentWillUpdate?u="componentWillUpdate":"function"==typeof n.UNSAFE_componentWillUpdate&&(u="UNSAFE_componentWillUpdate"),null!==o||null!==s||null!==u){throw Error("Unsafe legacy lifecycles will not be called for components using new component APIs.\n\n"+(e.displayName||e.name)+" uses "+("function"==typeof e.getDerivedStateFromProps?"getDerivedStateFromProps()":"getSnapshotBeforeUpdate()")+" but also contains the following legacy lifecycles:"+(null!==o?"\n "+o:"")+(null!==s?"\n "+s:"")+(null!==u?"\n "+u:"")+"\n\nThe above lifecycles should be removed. Learn more about this warning here:\nhttps://fb.me/react-async-component-lifecycle-hooks")}if("function"==typeof e.getDerivedStateFromProps&&(n.componentWillMount=r,n.componentWillReceiveProps=i),"function"==typeof n.getSnapshotBeforeUpdate){if("function"!=typeof n.componentDidUpdate)throw Error("Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype");n.componentWillUpdate=a;var c=n.componentDidUpdate;n.componentDidUpdate=function(e,t,n){var r=this.__reactInternalSnapshotFlag?this.__reactInternalSnapshot:n;c.call(this,e,t,r)}}return e}n.r(t),n.d(t,{polyfill:()=>o}),r.__suppressDeprecationWarning=!0,i.__suppressDeprecationWarning=!0,a.__suppressDeprecationWarning=!0},55977(e,t,n){"use strict";n.d(t,{zt:()=>h,$j:()=>J,wU:()=>A,I0:()=>er,v9:()=>es});var r=n(67294);n(45697);var i=r.createContext(null);function a(e){e()}var o=a,s=function(e){return o=e},u=function(){return o},c={notify:function(){}};function l(){var e=u(),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 f=function(){function e(e,t){this.store=e,this.parentSub=t,this.unsubscribe=null,this.listeners=c,this.handleChangeWrapper=this.handleChangeWrapper.bind(this)}var t=e.prototype;return t.addNestedSub=function(e){return this.trySubscribe(),this.listeners.subscribe(e)},t.notifyNestedSubs=function(){this.listeners.notify()},t.handleChangeWrapper=function(){this.onStateChange&&this.onStateChange()},t.isSubscribed=function(){return Boolean(this.unsubscribe)},t.trySubscribe=function(){this.unsubscribe||(this.unsubscribe=this.parentSub?this.parentSub.addNestedSub(this.handleChangeWrapper):this.store.subscribe(this.handleChangeWrapper),this.listeners=l())},t.tryUnsubscribe=function(){this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=null,this.listeners.clear(),this.listeners=c)},e}();function d(e){var t=e.store,n=e.context,a=e.children,o=(0,r.useMemo)(function(){var e=new f(t);return e.onStateChange=e.notifyNestedSubs,{store:t,subscription:e}},[t]),s=(0,r.useMemo)(function(){return t.getState()},[t]);(0,r.useEffect)(function(){var e=o.subscription;return e.trySubscribe(),s!==t.getState()&&e.notifyNestedSubs(),function(){e.tryUnsubscribe(),e.onStateChange=null}},[o,s]);var u=n||i;return r.createElement(u.Provider,{value:o},a)}let h=d;var p=n(87462);function b(e,t){if(null==e)return{};var n,r,i={},a=Object.keys(e);for(r=0;r=0||(i[n]=e[n]);return i}var m=n(8679),g=n.n(m),v=n(59864),y="undefined"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement?r.useLayoutEffect:r.useEffect,w=[],_=[null,null];function E(e,t){var n=e[1];return[t.payload,n+1]}function S(e,t,n){y(function(){return e.apply(void 0,t)},n)}function k(e,t,n,r,i,a,o){e.current=r,t.current=i,n.current=!1,a.current&&(a.current=null,o())}function x(e,t,n,r,i,a,o,s,u,c){if(e){var l,f=!1,d=null,h=function(){if(!f){var e,n,l=t.getState();try{e=r(l,i.current)}catch(h){n=h,d=h}n||(d=null),e===a.current?o.current||u():(a.current=e,s.current=e,o.current=!0,c({type:"STORE_UPDATED",payload:{error:n}}))}};return n.onStateChange=h,n.trySubscribe(),h(),function(){if(f=!0,n.tryUnsubscribe(),n.onStateChange=null,d)throw d}}}var T=function(){return[null,0]};function M(e,t){void 0===t&&(t={});var n=t,a=n.getDisplayName,o=void 0===a?function(e){return"ConnectAdvanced("+e+")"}:a,s=n.methodName,u=void 0===s?"connectAdvanced":s,c=n.renderCountProp,l=void 0===c?void 0:c,d=n.shouldHandleStateChanges,h=void 0===d||d,m=n.storeKey,y=void 0===m?"store":m,M=(n.withRef,n.forwardRef),O=void 0!==M&&M,A=n.context,L=void 0===A?i:A,C=b(n,["getDisplayName","methodName","renderCountProp","shouldHandleStateChanges","storeKey","withRef","forwardRef","context"]),I=L;return function(t){var n=t.displayName||t.name||"Component",i=o(n),a=(0,p.Z)({},C,{getDisplayName:o,methodName:u,renderCountProp:l,shouldHandleStateChanges:h,storeKey:y,displayName:i,wrappedComponentName:n,WrappedComponent:t}),s=C.pure;function c(t){return e(t.dispatch,a)}var d=s?r.useMemo:function(e){return e()};function m(e){var n=(0,r.useMemo)(function(){var t=e.reactReduxForwardedRef,n=b(e,["reactReduxForwardedRef"]);return[e.context,t,n]},[e]),i=n[0],a=n[1],o=n[2],s=(0,r.useMemo)(function(){return i&&i.Consumer&&(0,v.isContextConsumer)(r.createElement(i.Consumer,null))?i:I},[i,I]),u=(0,r.useContext)(s),l=Boolean(e.store)&&Boolean(e.store.getState)&&Boolean(e.store.dispatch);Boolean(u)&&u.store;var m=l?e.store:u.store,g=(0,r.useMemo)(function(){return c(m)},[m]),y=(0,r.useMemo)(function(){if(!h)return _;var e=new f(m,l?null:u.subscription),t=e.notifyNestedSubs.bind(e);return[e,t]},[m,l,u]),M=y[0],O=y[1],A=(0,r.useMemo)(function(){return l?u:(0,p.Z)({},u,{subscription:M})},[l,u,M]),L=(0,r.useReducer)(E,w,T),C=L[0][0],D=L[1];if(C&&C.error)throw C.error;var N=(0,r.useRef)(),P=(0,r.useRef)(o),R=(0,r.useRef)(),j=(0,r.useRef)(!1),F=d(function(){return R.current&&o===P.current?R.current:g(m.getState(),o)},[m,C,o]);S(k,[P,N,j,o,F,R,O]),S(x,[h,m,M,g,P,N,j,R,O,D],[m,M,g]);var Y=(0,r.useMemo)(function(){return r.createElement(t,(0,p.Z)({},F,{ref:a}))},[a,t,F]);return(0,r.useMemo)(function(){return h?r.createElement(s.Provider,{value:A},Y):Y},[s,Y,A])}var M=s?r.memo(m):m;if(M.WrappedComponent=t,M.displayName=i,O){var A=r.forwardRef(function(e,t){return r.createElement(M,(0,p.Z)({},e,{reactReduxForwardedRef:t}))});return A.displayName=i,A.WrappedComponent=t,g()(A,t)}return g()(M,t)}}function O(e,t){return e===t?0!==e||0!==t||1/e==1/t:e!=e&&t!=t}function A(e,t){if(O(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=0;r--){var i=t[r](e);if(i)return i}return function(t,r){throw Error("Invalid value of type "+typeof e+" for "+n+" argument when connecting component "+r.wrappedComponentName+".")}}function Z(e,t){return e===t}function X(e){var t=void 0===e?{}:e,n=t.connectHOC,r=void 0===n?M:n,i=t.mapStateToPropsFactories,a=void 0===i?B:i,o=t.mapDispatchToPropsFactories,s=void 0===o?j:o,u=t.mergePropsFactories,c=void 0===u?G:u,l=t.selectorFactory,f=void 0===l?V:l;return function(e,t,n,i){void 0===i&&(i={});var o=i,u=o.pure,l=void 0===u||u,d=o.areStatesEqual,h=void 0===d?Z:d,m=o.areOwnPropsEqual,g=void 0===m?A:m,v=o.areStatePropsEqual,y=void 0===v?A:v,w=o.areMergedPropsEqual,_=void 0===w?A:w,E=b(o,["pure","areStatesEqual","areOwnPropsEqual","areStatePropsEqual","areMergedPropsEqual"]),S=q(e,a,"mapStateToProps"),k=q(t,s,"mapDispatchToProps"),x=q(n,c,"mergeProps");return r(f,(0,p.Z)({methodName:"connect",getDisplayName:function(e){return"Connect("+e+")"},shouldHandleStateChanges:Boolean(e),initMapStateToProps:S,initMapDispatchToProps:k,initMergeProps:x,pure:l,areStatesEqual:h,areOwnPropsEqual:g,areStatePropsEqual:y,areMergedPropsEqual:_},E))}}let J=X();function Q(){var e;return(0,r.useContext)(i)}function ee(e){void 0===e&&(e=i);var t=e===i?Q:function(){return(0,r.useContext)(e)};return function(){return t().store}}var et=ee();function en(e){void 0===e&&(e=i);var t=e===i?et:ee(e);return function(){return t().dispatch}}var er=en(),ei=function(e,t){return e===t};function ea(e,t,n,i){var a,o=(0,r.useReducer)(function(e){return e+1},0)[1],s=(0,r.useMemo)(function(){return new f(n,i)},[n,i]),u=(0,r.useRef)(),c=(0,r.useRef)(),l=(0,r.useRef)(),d=(0,r.useRef)(),h=n.getState();try{a=e!==c.current||h!==l.current||u.current?e(h):d.current}catch(p){throw u.current&&(p.message+="\nThe error may be correlated with this previous error:\n"+u.current.stack+"\n\n"),p}return y(function(){c.current=e,l.current=h,d.current=a,u.current=void 0}),y(function(){function e(){try{var e=c.current(n.getState());if(t(e,d.current))return;d.current=e}catch(r){u.current=r}o()}return s.onStateChange=e,s.trySubscribe(),e(),function(){return s.tryUnsubscribe()}},[n,s]),a}function eo(e){void 0===e&&(e=i);var t=e===i?Q:function(){return(0,r.useContext)(e)};return function(e,n){void 0===n&&(n=ei);var i,a=t(),o=ea(e,n,a.store,a.subscription);return(0,r.useDebugValue)(o),o}}var es=eo();s(n(73935).unstable_batchedUpdates)},76(e,t,n){"use strict";n.d(t,{VK:()=>f,rU:()=>v});var r=n(47886);function i(e,t){return(i=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function a(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,i(e,t)}var o=n(67294),s=n(90071);function u(){return(u=Object.assign||function(e){for(var t=1;t=0||(i[n]=e[n]);return i}n(45697);var l=n(2177),f=function(e){function t(){for(var t,n=arguments.length,r=Array(n),i=0;iN,AW:()=>U,F0:()=>M,rs:()=>$,s6:()=>T,LX:()=>Y,k6:()=>G,TH:()=>W,UO:()=>K,$B:()=>V});var a=n(67294),o=n(45697),s=n.n(o),u=n(90071);function c(e,t){return(c=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function l(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,c(e,t)}var f=1073741823,d="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==n.g?n.g:{};function h(){var e="__global_unique_id__";return d[e]=(d[e]||0)+1}function p(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}function b(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)})}}}function m(e){return Array.isArray(e)?e[0]:e}function g(e,t){var n,r,i="__create-react-context-"+h()+"__",o=function(e){function n(){var t;return t=e.apply(this,arguments)||this,t.emitter=b(t.props.value),t}l(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;p(r,i)?n=0:(n="function"==typeof t?t(r,i):f,0!=(n|=0)&&this.emitter.set(e.value,n))}},r.render=function(){return this.props.children},n}(a.Component);o.childContextTypes=((n={})[i]=s().object.isRequired,n);var u=function(t){function n(){var e;return e=t.apply(this,arguments)||this,e.state={value:e.getValue()},e.onUpdate=function(t,n){((0|e.observedBits)&n)!=0&&e.setState({value:e.getValue()})},e}l(n,t);var r=n.prototype;return r.componentWillReceiveProps=function(e){var t=e.observedBits;this.observedBits=null==t?f:t},r.componentDidMount=function(){this.context[i]&&this.context[i].on(this.onUpdate);var e=this.props.observedBits;this.observedBits=null==e?f: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 m(this.props.children)(this.state.value)},n}(a.Component);return u.contextTypes=((r={})[i]=s().object,r),{Provider:o,Consumer:u}}var v=a.createContext||g;let y=v;var w=n(2177);function _(){return(_=Object.assign||function(e){for(var t=1;t=0||(i[n]=e[n]);return i}function l(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}n(54726);var f="unmounted";t.UNMOUNTED=f;var d="exited";t.EXITED=d;var h="entering";t.ENTERING=h;var p="entered";t.ENTERED=p;var b="exiting";t.EXITING=b;var m=function(e){function t(t,n){r=e.call(this,t,n)||this;var r,i,a=n.transitionGroup,o=a&&!a.isMounting?t.enter:t.appear;return r.appearStatus=null,t.in?o?(i=d,r.appearStatus=h):i=p:i=t.unmountOnExit||t.mountOnEnter?f:d,r.state={status:i},r.nextCallback=null,r}l(t,e);var n=t.prototype;return n.getChildContext=function(){return{transitionGroup:null}},t.getDerivedStateFromProps=function(e,t){return e.in&&t.status===f?{status:d}:null},n.componentDidMount=function(){this.updateStatus(!0,this.appearStatus)},n.componentDidUpdate=function(e){var t=null;if(e!==this.props){var n=this.state.status;this.props.in?n!==h&&n!==p&&(t=h):(n===h||n===p)&&(t=b)}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){this.cancelNextCallback();var n=a.default.findDOMNode(this);t===h?this.performEnter(n,e):this.performExit(n)}else this.props.unmountOnExit&&this.state.status===d&&this.setState({status:f})},n.performEnter=function(e,t){var n=this,r=this.props.enter,i=this.context.transitionGroup?this.context.transitionGroup.isMounting:t,a=this.getTimeouts(),o=i?a.appear:a.enter;if(!t&&!r){this.safeSetState({status:p},function(){n.props.onEntered(e)});return}this.props.onEnter(e,i),this.safeSetState({status:h},function(){n.props.onEntering(e,i),n.onTransitionEnd(e,o,function(){n.safeSetState({status:p},function(){n.props.onEntered(e,i)})})})},n.performExit=function(e){var t=this,n=this.props.exit,r=this.getTimeouts();if(!n){this.safeSetState({status:d},function(){t.props.onExited(e)});return}this.props.onExit(e),this.safeSetState({status:b},function(){t.props.onExiting(e),t.onTransitionEnd(e,r.exit,function(){t.safeSetState({status:d},function(){t.props.onExited(e)})})})},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,n){this.setNextCallback(n);var r=null==t&&!this.props.addEndListener;if(!e||r){setTimeout(this.nextCallback,0);return}this.props.addEndListener&&this.props.addEndListener(e,this.nextCallback),null!=t&&setTimeout(this.nextCallback,t)},n.render=function(){var e=this.state.status;if(e===f)return null;var t=this.props,n=t.children,r=c(t,["children"]);if(delete r.in,delete r.mountOnEnter,delete r.unmountOnExit,delete r.appear,delete r.enter,delete r.exit,delete r.timeout,delete r.addEndListener,delete r.onEnter,delete r.onEntering,delete r.onEntered,delete r.onExit,delete r.onExiting,delete r.onExited,"function"==typeof n)return n(e,r);var a=i.default.Children.only(n);return i.default.cloneElement(a,r)},t}(i.default.Component);function g(){}m.contextTypes={transitionGroup:r.object},m.childContextTypes={transitionGroup:function(){}},m.propTypes={},m.defaultProps={in:!1,mountOnEnter:!1,unmountOnExit:!1,appear:!1,enter:!0,exit:!0,onEnter:g,onEntering:g,onEntered:g,onExit:g,onExiting:g,onExited:g},m.UNMOUNTED=0,m.EXITED=1,m.ENTERING=2,m.ENTERED=3,m.EXITING=4;var v=(0,o.polyfill)(m);t.default=v},92381(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=s(n(45697)),i=s(n(67294)),a=n(46871),o=n(40537);function s(e){return e&&e.__esModule?e:{default:e}}function u(e,t){if(null==e)return{};var n,r,i={},a=Object.keys(e);for(r=0;r=0||(i[n]=e[n]);return i}function c(){return(c=Object.assign||function(e){for(var t=1;to}),r.__suppressDeprecationWarning=!0,i.__suppressDeprecationWarning=!0,a.__suppressDeprecationWarning=!0},37703(e,t,n){"use strict";n.d(t,{zt:()=>h,$j:()=>J,wU:()=>A,I0:()=>er,v9:()=>es});var r=n(67294),i=r.createContext(null);function a(e){e()}var o=a,s=function(e){return o=e},u=function(){return o},c={notify:function(){}};function l(){var e=u(),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 f=function(){function e(e,t){this.store=e,this.parentSub=t,this.unsubscribe=null,this.listeners=c,this.handleChangeWrapper=this.handleChangeWrapper.bind(this)}var t=e.prototype;return t.addNestedSub=function(e){return this.trySubscribe(),this.listeners.subscribe(e)},t.notifyNestedSubs=function(){this.listeners.notify()},t.handleChangeWrapper=function(){this.onStateChange&&this.onStateChange()},t.isSubscribed=function(){return Boolean(this.unsubscribe)},t.trySubscribe=function(){this.unsubscribe||(this.unsubscribe=this.parentSub?this.parentSub.addNestedSub(this.handleChangeWrapper):this.store.subscribe(this.handleChangeWrapper),this.listeners=l())},t.tryUnsubscribe=function(){this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=null,this.listeners.clear(),this.listeners=c)},e}();function d(e){var t=e.store,n=e.context,a=e.children,o=(0,r.useMemo)(function(){var e=new f(t);return e.onStateChange=e.notifyNestedSubs,{store:t,subscription:e}},[t]),s=(0,r.useMemo)(function(){return t.getState()},[t]);(0,r.useEffect)(function(){var e=o.subscription;return e.trySubscribe(),s!==t.getState()&&e.notifyNestedSubs(),function(){e.tryUnsubscribe(),e.onStateChange=null}},[o,s]);var u=n||i;return r.createElement(u.Provider,{value:o},a)}let h=d;var p=n(87462),b=n(63366),m=n(8679),g=n.n(m),v=n(59864),y="undefined"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement?r.useLayoutEffect:r.useEffect,w=[],_=[null,null];function E(e,t){var n=e[1];return[t.payload,n+1]}function S(e,t,n){y(function(){return e.apply(void 0,t)},n)}function k(e,t,n,r,i,a,o){e.current=r,t.current=i,n.current=!1,a.current&&(a.current=null,o())}function x(e,t,n,r,i,a,o,s,u,c){if(e){var l,f=!1,d=null,h=function(){if(!f){var e,n,l=t.getState();try{e=r(l,i.current)}catch(h){n=h,d=h}n||(d=null),e===a.current?o.current||u():(a.current=e,s.current=e,o.current=!0,c({type:"STORE_UPDATED",payload:{error:n}}))}};return n.onStateChange=h,n.trySubscribe(),h(),function(){if(f=!0,n.tryUnsubscribe(),n.onStateChange=null,d)throw d}}}var T=function(){return[null,0]};function M(e,t){void 0===t&&(t={});var n=t,a=n.getDisplayName,o=void 0===a?function(e){return"ConnectAdvanced("+e+")"}:a,s=n.methodName,u=void 0===s?"connectAdvanced":s,c=n.renderCountProp,l=void 0===c?void 0:c,d=n.shouldHandleStateChanges,h=void 0===d||d,m=n.storeKey,y=void 0===m?"store":m,M=(n.withRef,n.forwardRef),O=void 0!==M&&M,A=n.context,L=void 0===A?i:A,C=(0,b.Z)(n,["getDisplayName","methodName","renderCountProp","shouldHandleStateChanges","storeKey","withRef","forwardRef","context"]),I=L;return function(t){var n=t.displayName||t.name||"Component",i=o(n),a=(0,p.Z)({},C,{getDisplayName:o,methodName:u,renderCountProp:l,shouldHandleStateChanges:h,storeKey:y,displayName:i,wrappedComponentName:n,WrappedComponent:t}),s=C.pure;function c(t){return e(t.dispatch,a)}var d=s?r.useMemo:function(e){return e()};function m(e){var n=(0,r.useMemo)(function(){var t=e.reactReduxForwardedRef,n=(0,b.Z)(e,["reactReduxForwardedRef"]);return[e.context,t,n]},[e]),i=n[0],a=n[1],o=n[2],s=(0,r.useMemo)(function(){return i&&i.Consumer&&(0,v.isContextConsumer)(r.createElement(i.Consumer,null))?i:I},[i,I]),u=(0,r.useContext)(s),l=Boolean(e.store)&&Boolean(e.store.getState)&&Boolean(e.store.dispatch);Boolean(u)&&u.store;var m=l?e.store:u.store,g=(0,r.useMemo)(function(){return c(m)},[m]),y=(0,r.useMemo)(function(){if(!h)return _;var e=new f(m,l?null:u.subscription),t=e.notifyNestedSubs.bind(e);return[e,t]},[m,l,u]),M=y[0],O=y[1],A=(0,r.useMemo)(function(){return l?u:(0,p.Z)({},u,{subscription:M})},[l,u,M]),L=(0,r.useReducer)(E,w,T),C=L[0][0],D=L[1];if(C&&C.error)throw C.error;var N=(0,r.useRef)(),P=(0,r.useRef)(o),R=(0,r.useRef)(),j=(0,r.useRef)(!1),F=d(function(){return R.current&&o===P.current?R.current:g(m.getState(),o)},[m,C,o]);S(k,[P,N,j,o,F,R,O]),S(x,[h,m,M,g,P,N,j,R,O,D],[m,M,g]);var Y=(0,r.useMemo)(function(){return r.createElement(t,(0,p.Z)({},F,{ref:a}))},[a,t,F]);return(0,r.useMemo)(function(){return h?r.createElement(s.Provider,{value:A},Y):Y},[s,Y,A])}var M=s?r.memo(m):m;if(M.WrappedComponent=t,M.displayName=i,O){var A=r.forwardRef(function(e,t){return r.createElement(M,(0,p.Z)({},e,{reactReduxForwardedRef:t}))});return A.displayName=i,A.WrappedComponent=t,g()(A,t)}return g()(M,t)}}function O(e,t){return e===t?0!==e||0!==t||1/e==1/t:e!=e&&t!=t}function A(e,t){if(O(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=0;r--){var i=t[r](e);if(i)return i}return function(t,r){throw Error("Invalid value of type "+typeof e+" for "+n+" argument when connecting component "+r.wrappedComponentName+".")}}function Z(e,t){return e===t}function X(e){var t=void 0===e?{}:e,n=t.connectHOC,r=void 0===n?M:n,i=t.mapStateToPropsFactories,a=void 0===i?B:i,o=t.mapDispatchToPropsFactories,s=void 0===o?j:o,u=t.mergePropsFactories,c=void 0===u?G:u,l=t.selectorFactory,f=void 0===l?V:l;return function(e,t,n,i){void 0===i&&(i={});var o=i,u=o.pure,l=void 0===u||u,d=o.areStatesEqual,h=void 0===d?Z:d,m=o.areOwnPropsEqual,g=void 0===m?A:m,v=o.areStatePropsEqual,y=void 0===v?A:v,w=o.areMergedPropsEqual,_=void 0===w?A:w,E=(0,b.Z)(o,["pure","areStatesEqual","areOwnPropsEqual","areStatePropsEqual","areMergedPropsEqual"]),S=q(e,a,"mapStateToProps"),k=q(t,s,"mapDispatchToProps"),x=q(n,c,"mergeProps");return r(f,(0,p.Z)({methodName:"connect",getDisplayName:function(e){return"Connect("+e+")"},shouldHandleStateChanges:Boolean(e),initMapStateToProps:S,initMapDispatchToProps:k,initMergeProps:x,pure:l,areStatesEqual:h,areOwnPropsEqual:g,areStatePropsEqual:y,areMergedPropsEqual:_},E))}}let J=X();function Q(){var e;return(0,r.useContext)(i)}function ee(e){void 0===e&&(e=i);var t=e===i?Q:function(){return(0,r.useContext)(e)};return function(){return t().store}}var et=ee();function en(e){void 0===e&&(e=i);var t=e===i?et:ee(e);return function(){return t().dispatch}}var er=en(),ei=function(e,t){return e===t};function ea(e,t,n,i){var a,o=(0,r.useReducer)(function(e){return e+1},0)[1],s=(0,r.useMemo)(function(){return new f(n,i)},[n,i]),u=(0,r.useRef)(),c=(0,r.useRef)(),l=(0,r.useRef)(),d=(0,r.useRef)(),h=n.getState();try{a=e!==c.current||h!==l.current||u.current?e(h):d.current}catch(p){throw u.current&&(p.message+="\nThe error may be correlated with this previous error:\n"+u.current.stack+"\n\n"),p}return y(function(){c.current=e,l.current=h,d.current=a,u.current=void 0}),y(function(){function e(){try{var e=c.current(n.getState());if(t(e,d.current))return;d.current=e}catch(r){u.current=r}o()}return s.onStateChange=e,s.trySubscribe(),e(),function(){return s.tryUnsubscribe()}},[n,s]),a}function eo(e){void 0===e&&(e=i);var t=e===i?Q:function(){return(0,r.useContext)(e)};return function(e,n){void 0===n&&(n=ei);var i,a=t(),o=ea(e,n,a.store,a.subscription);return(0,r.useDebugValue)(o),o}}var es=eo();s(n(73935).unstable_batchedUpdates)},73727(e,t,n){"use strict";n.d(t,{VK:()=>l,rU:()=>g});var r=n(5977),i=n(51721),a=n(67294),o=n(90071),s=n(87462),u=n(63366),c=n(2177),l=function(e){function t(){for(var t,n=arguments.length,r=Array(n),i=0;iC,AW:()=>F,F0:()=>k,rs:()=>B,s6:()=>S,LX:()=>R,k6:()=>H,TH:()=>$,UO:()=>z,$B:()=>G});var r=n(51721),i=n(67294),a=n(90071),o=n(45697),s=n.n(o),u=1073741823,c="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==n.g?n.g:{};function l(){var e="__global_unique_id__";return c[e]=(c[e]||0)+1}function f(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}function d(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)})}}}function h(e){return Array.isArray(e)?e[0]:e}function p(e,t){var n,a,o="__create-react-context-"+l()+"__",c=function(e){function n(){var t;return t=e.apply(this,arguments)||this,t.emitter=d(t.props.value),t}(0,r.Z)(n,e);var i=n.prototype;return i.getChildContext=function(){var e;return(e={})[o]=this.emitter,e},i.componentWillReceiveProps=function(e){if(this.props.value!==e.value){var n,r=this.props.value,i=e.value;f(r,i)?n=0:(n="function"==typeof t?t(r,i):u,0!=(n|=0)&&this.emitter.set(e.value,n))}},i.render=function(){return this.props.children},n}(i.Component);c.childContextTypes=((n={})[o]=s().object.isRequired,n);var p=function(t){function n(){var e;return e=t.apply(this,arguments)||this,e.state={value:e.getValue()},e.onUpdate=function(t,n){((0|e.observedBits)&n)!=0&&e.setState({value:e.getValue()})},e}(0,r.Z)(n,t);var i=n.prototype;return i.componentWillReceiveProps=function(e){var t=e.observedBits;this.observedBits=null==t?u:t},i.componentDidMount=function(){this.context[o]&&this.context[o].on(this.onUpdate);var e=this.props.observedBits;this.observedBits=null==e?u:e},i.componentWillUnmount=function(){this.context[o]&&this.context[o].off(this.onUpdate)},i.getValue=function(){return this.context[o]?this.context[o].get():e},i.render=function(){return h(this.props.children)(this.state.value)},n}(i.Component);return p.contextTypes=((a={})[o]=s().object,a),{Provider:c,Consumer:p}}var b=i.createContext||p;let m=b;var g=n(2177),v=n(87462),y=n(39658),w=n.n(y);n(59864),n(63366),n(8679);var _=function(e){var t=m();return t.displayName=e,t},E=_("Router-History"),S=_("Router"),k=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._isMounted?n.setState({location:e}):n._pendingLocation=e})),n}(0,r.Z)(t,e),t.computeRootMatch=function(e){return{path:"/",url:"/",params:{},isExact:"/"===e}};var n=t.prototype;return n.componentDidMount=function(){this._isMounted=!0,this._pendingLocation&&this.setState({location:this._pendingLocation})},n.componentWillUnmount=function(){this.unlisten&&(this.unlisten(),this._isMounted=!1,this._pendingLocation=null)},n.render=function(){return i.createElement(S.Provider,{value:{history:this.props.history,location:this.state.location,match:t.computeRootMatch(this.state.location.pathname),staticContext:this.props.staticContext}},i.createElement(E.Provider,{children:this.props.children||null,value:this.props.history}))},t}(i.Component);i.Component;var x=function(e){function t(){return e.apply(this,arguments)||this}(0,r.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}(i.Component),T={},M=1e4,O=0;function A(e){if(T[e])return T[e];var t=w().compile(e);return O=0||(i[n]=e[n]);return i}function l(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}n(54726);var f="unmounted";t.UNMOUNTED=f;var d="exited";t.EXITED=d;var h="entering";t.ENTERING=h;var p="entered";t.ENTERED=p;var b="exiting";t.EXITING=b;var m=function(e){function t(t,n){r=e.call(this,t,n)||this;var r,i,a=n.transitionGroup,o=a&&!a.isMounting?t.enter:t.appear;return r.appearStatus=null,t.in?o?(i=d,r.appearStatus=h):i=p:i=t.unmountOnExit||t.mountOnEnter?f:d,r.state={status:i},r.nextCallback=null,r}l(t,e);var n=t.prototype;return n.getChildContext=function(){return{transitionGroup:null}},t.getDerivedStateFromProps=function(e,t){return e.in&&t.status===f?{status:d}:null},n.componentDidMount=function(){this.updateStatus(!0,this.appearStatus)},n.componentDidUpdate=function(e){var t=null;if(e!==this.props){var n=this.state.status;this.props.in?n!==h&&n!==p&&(t=h):(n===h||n===p)&&(t=b)}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){this.cancelNextCallback();var n=a.default.findDOMNode(this);t===h?this.performEnter(n,e):this.performExit(n)}else this.props.unmountOnExit&&this.state.status===d&&this.setState({status:f})},n.performEnter=function(e,t){var n=this,r=this.props.enter,i=this.context.transitionGroup?this.context.transitionGroup.isMounting:t,a=this.getTimeouts(),o=i?a.appear:a.enter;if(!t&&!r){this.safeSetState({status:p},function(){n.props.onEntered(e)});return}this.props.onEnter(e,i),this.safeSetState({status:h},function(){n.props.onEntering(e,i),n.onTransitionEnd(e,o,function(){n.safeSetState({status:p},function(){n.props.onEntered(e,i)})})})},n.performExit=function(e){var t=this,n=this.props.exit,r=this.getTimeouts();if(!n){this.safeSetState({status:d},function(){t.props.onExited(e)});return}this.props.onExit(e),this.safeSetState({status:b},function(){t.props.onExiting(e),t.onTransitionEnd(e,r.exit,function(){t.safeSetState({status:d},function(){t.props.onExited(e)})})})},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,n){this.setNextCallback(n);var r=null==t&&!this.props.addEndListener;if(!e||r){setTimeout(this.nextCallback,0);return}this.props.addEndListener&&this.props.addEndListener(e,this.nextCallback),null!=t&&setTimeout(this.nextCallback,t)},n.render=function(){var e=this.state.status;if(e===f)return null;var t=this.props,n=t.children,r=c(t,["children"]);if(delete r.in,delete r.mountOnEnter,delete r.unmountOnExit,delete r.appear,delete r.enter,delete r.exit,delete r.timeout,delete r.addEndListener,delete r.onEnter,delete r.onEntering,delete r.onEntered,delete r.onExit,delete r.onExiting,delete r.onExited,"function"==typeof n)return n(e,r);var a=i.default.Children.only(n);return i.default.cloneElement(a,r)},t}(i.default.Component);function g(){}m.contextTypes={transitionGroup:r.object},m.childContextTypes={transitionGroup:function(){}},m.propTypes={},m.defaultProps={in:!1,mountOnEnter:!1,unmountOnExit:!1,appear:!1,enter:!0,exit:!0,onEnter:g,onEntering:g,onEntered:g,onExit:g,onExiting:g,onExited:g},m.UNMOUNTED=0,m.EXITED=1,m.ENTERING=2,m.ENTERED=3,m.EXITING=4;var v=(0,o.polyfill)(m);t.default=v},92381(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=s(n(45697)),i=s(n(67294)),a=n(46871),o=n(40537);function s(e){return e&&e.__esModule?e:{default:e}}function u(e,t){if(null==e)return{};var n,r,i={},a=Object.keys(e);for(r=0;r=0||(i[n]=e[n]);return i}function c(){return(c=Object.assign||function(e){for(var t=1;tI.length&&I.push(e)}function P(e,t,n,r){var i=typeof e;("undefined"===i||"boolean"===i)&&(e=null);var s=!1;if(null===e)s=!0;else switch(i){case"string":case"number":s=!0;break;case"object":switch(e.$$typeof){case a:case o:s=!0}}if(s)return n(r,e,""===t?"."+j(e,0):t),1;if(s=0,t=""===t?".":t+":",Array.isArray(e))for(var u=0;u2)?"one of ".concat(t," ").concat(e.slice(0,n-1).join(", "),", or ")+e[n-1]:2===n?"one of ".concat(t," ").concat(e[0]," or ").concat(e[1]):"of ".concat(t," ").concat(e[0])}function a(e,t,n){return e.substr(!n||n<0?0:+n,t.length)===t}function o(e,t,n){return(void 0===n||n>e.length)&&(n=e.length),e.substring(n-t.length,n)===t}function s(e,t,n){return"number"!=typeof n&&(n=0),!(n+t.length>e.length)&&-1!==e.indexOf(t,n)}r("ERR_INVALID_OPT_VALUE",function(e,t){return'The value "'+t+'" is invalid for option "'+e+'"'},TypeError),r("ERR_INVALID_ARG_TYPE",function(e,t,n){if("string"==typeof t&&a(t,"not ")?(r="must not be",t=t.replace(/^not /,"")):r="must be",o(e," argument"))u="The ".concat(e," ").concat(r," ").concat(i(t,"type"));else{var r,u,c=s(e,".")?"property":"argument";u='The "'.concat(e,'" ').concat(c," ").concat(r," ").concat(i(t,"type"))}return u+". Received type ".concat(typeof n)},TypeError),r("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),r("ERR_METHOD_NOT_IMPLEMENTED",function(e){return"The "+e+" method is not implemented"}),r("ERR_STREAM_PREMATURE_CLOSE","Premature close"),r("ERR_STREAM_DESTROYED",function(e){return"Cannot call "+e+" after a stream was destroyed"}),r("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),r("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),r("ERR_STREAM_WRITE_AFTER_END","write after end"),r("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),r("ERR_UNKNOWN_ENCODING",function(e){return"Unknown encoding: "+e},TypeError),r("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),e.exports.q=n},56753(e,t,n){"use strict";var r=Object.keys||function(e){var t=[];for(var n in e)t.push(n);return t};e.exports=c;var i=n(79481),a=n(64229);n(35717)(c,i);for(var o=r(a.prototype),s=0;s0){if("string"==typeof t||u.objectMode||Object.getPrototypeOf(t)===a.prototype||(t=s(t)),r)u.endEmitted?S(e,new E):A(e,u,t,!0);else if(u.ended)S(e,new w);else{if(u.destroyed)return!1;u.reading=!1,u.decoder&&!n?(t=u.decoder.write(t),u.objectMode||0!==t.length?A(e,u,t,!1):j(e,u)):A(e,u,t,!1)}}else r||(u.reading=!1,j(e,u));return!u.ended&&(u.length=C?e=C:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}function D(e,t){return e<=0||0===t.length&&t.ended?0:t.objectMode?1:e!=e?t.flowing&&t.length?t.buffer.head.data.length:t.length:(e>t.highWaterMark&&(t.highWaterMark=I(e)),e<=t.length)?e:t.ended?t.length:(t.needReadable=!0,0)}function N(e,t){if(f("onEofChunk"),!t.ended){if(t.decoder){var n=t.decoder.end();n&&n.length&&(t.buffer.push(n),t.length+=t.objectMode?1:n.length)}t.ended=!0,t.sync?P(e):(t.needReadable=!1,t.emittedReadable||(t.emittedReadable=!0,R(e)))}}function P(e){var t=e._readableState;f("emitReadable",t.needReadable,t.emittedReadable),t.needReadable=!1,t.emittedReadable||(f("emitReadable",t.flowing),t.emittedReadable=!0,process.nextTick(R,e))}function R(e){var t=e._readableState;f("emitReadable_",t.destroyed,t.length,t.ended),!t.destroyed&&(t.length||t.ended)&&(e.emit("readable"),t.emittedReadable=!1),t.needReadable=!t.flowing&&!t.ended&&t.length<=t.highWaterMark,z(e)}function j(e,t){t.readingMore||(t.readingMore=!0,process.nextTick(F,e,t))}function F(e,t){for(;!t.reading&&!t.ended&&(t.length0,t.resumeScheduled&&!t.paused?t.flowing=!0:e.listenerCount("data")>0&&e.resume()}function U(e){f("readable nexttick read 0"),e.read(0)}function H(e,t){t.resumeScheduled||(t.resumeScheduled=!0,process.nextTick($,e,t))}function $(e,t){f("resume",t.reading),t.reading||e.read(0),t.resumeScheduled=!1,e.emit("resume"),z(e),t.flowing&&!t.reading&&e.read(0)}function z(e){var t=e._readableState;for(f("flow",t.flowing);t.flowing&&null!==e.read(););}function G(e,t){var n;return 0===t.length?null:(t.objectMode?n=t.buffer.shift():!e||e>=t.length?(n=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.first():t.buffer.concat(t.length),t.buffer.clear()):n=t.buffer.consume(e,t.decoder),n)}function W(e){var t=e._readableState;f("endReadable",t.endEmitted),t.endEmitted||(t.ended=!0,process.nextTick(K,t,e))}function K(e,t){if(f("endReadableNT",e.endEmitted,e.length),!e.endEmitted&&0===e.length&&(e.endEmitted=!0,t.readable=!1,t.emit("end"),e.autoDestroy)){var n=t._writableState;(!n||n.autoDestroy&&n.finished)&&t.destroy()}}function V(e,t){for(var n=0,r=e.length;n=n.highWaterMark:n.length>0)||n.ended))return f("read: emitReadable",n.length,n.ended),0===n.length&&n.ended?W(this):P(this),null;if(0===(e=D(e,n))&&n.ended)return 0===n.length&&W(this),null;var i=n.needReadable;return f("need readable",i),(0===n.length||n.length-e0?G(e,n):null)?(n.needReadable=n.length<=n.highWaterMark,e=0):(n.length-=e,n.awaitDrain=0),0===n.length&&(n.ended||(n.needReadable=!0),r!==e&&n.ended&&W(this)),null!==t&&this.emit("data",t),t},M.prototype._read=function(e){S(this,new _("_read()"))},M.prototype.pipe=function(e,t){var n=this,i=this._readableState;switch(i.pipesCount){case 0:i.pipes=e;break;case 1:i.pipes=[i.pipes,e];break;default:i.pipes.push(e)}i.pipesCount+=1,f("pipe count=%d opts=%j",i.pipesCount,t);var a=t&&!1===t.end||e===process.stdout||e===process.stderr?m:s;function o(e,t){f("onunpipe"),e===n&&t&&!1===t.hasUnpiped&&(t.hasUnpiped=!0,l())}function s(){f("onend"),e.end()}i.endEmitted?process.nextTick(a):n.once("end",a),e.on("unpipe",o);var u=Y(n);e.on("drain",u);var c=!1;function l(){f("cleanup"),e.removeListener("close",p),e.removeListener("finish",b),e.removeListener("drain",u),e.removeListener("error",h),e.removeListener("unpipe",o),n.removeListener("end",s),n.removeListener("end",m),n.removeListener("data",d),c=!0,i.awaitDrain&&(!e._writableState||e._writableState.needDrain)&&u()}function d(t){f("ondata");var r=e.write(t);f("dest.write",r),!1===r&&((1===i.pipesCount&&i.pipes===e||i.pipesCount>1&&-1!==V(i.pipes,e))&&!c&&(f("false write response, pause",i.awaitDrain),i.awaitDrain++),n.pause())}function h(t){f("onerror",t),m(),e.removeListener("error",h),0===r(e,"error")&&S(e,t)}function p(){e.removeListener("finish",b),m()}function b(){f("onfinish"),e.removeListener("close",p),m()}function m(){f("unpipe"),n.unpipe(e)}return n.on("data",d),x(e,"error",h),e.once("close",p),e.once("finish",b),e.emit("pipe",n),i.flowing||(f("pipe resume"),n.resume()),e},M.prototype.unpipe=function(e){var t=this._readableState,n={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes||(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,n)),this;if(!e){var r=t.pipes,i=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var a=0;a0,!1!==r.flowing&&this.resume()):"readable"!==e||r.endEmitted||r.readableListening||(r.readableListening=r.needReadable=!0,r.flowing=!1,r.emittedReadable=!1,f("on readable",r.length,r.reading),r.length?P(this):r.reading||process.nextTick(U,this)),n},M.prototype.addListener=M.prototype.on,M.prototype.removeListener=function(e,t){var n=i.prototype.removeListener.call(this,e,t);return"readable"===e&&process.nextTick(B,this),n},M.prototype.removeAllListeners=function(e){var t=i.prototype.removeAllListeners.apply(this,arguments);return("readable"===e||void 0===e)&&process.nextTick(B,this),t},M.prototype.resume=function(){var e=this._readableState;return e.flowing||(f("resume"),e.flowing=!e.readableListening,H(this,e)),e.paused=!1,this},M.prototype.pause=function(){return f("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(f("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},M.prototype.wrap=function(e){var t=this,n=this._readableState,r=!1;for(var i in e.on("end",function(){if(f("wrapped end"),n.decoder&&!n.ended){var e=n.decoder.end();e&&e.length&&t.push(e)}t.push(null)}),e.on("data",function(i){if(f("wrapped data"),n.decoder&&(i=n.decoder.write(i)),!n.objectMode||null!=i)(n.objectMode||i&&i.length)&&(t.push(i)||(r=!0,e.pause()))}),e)void 0===this[i]&&"function"==typeof e[i]&&(this[i]=function(t){return function(){return e[t].apply(e,arguments)}}(i));for(var a=0;a-1))throw new E(e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(T.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(T.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),T.prototype._write=function(e,t,n){n(new m("_write()"))},T.prototype._writev=null,T.prototype.end=function(e,t,n){var r=this._writableState;return"function"==typeof e?(n=e,e=null,t=null):"function"==typeof t&&(n=t,t=null),null!=e&&this.write(e,t),r.corked&&(r.corked=1,this.uncork()),r.ending||H(this,r,n),this},Object.defineProperty(T.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(T.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),T.prototype.destroy=d.destroy,T.prototype._undestroy=d.undestroy,T.prototype._destroy=function(e,t){t(e)}},45850(e,t,n){"use strict";function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var i,a=n(8610),o=Symbol("lastResolve"),s=Symbol("lastReject"),u=Symbol("error"),c=Symbol("ended"),l=Symbol("lastPromise"),f=Symbol("handlePromise"),d=Symbol("stream");function h(e,t){return{value:e,done:t}}function p(e){var t=e[o];if(null!==t){var n=e[d].read();null!==n&&(e[l]=null,e[o]=null,e[s]=null,t(h(n,!1)))}}function b(e){process.nextTick(p,e)}function m(e,t){return function(n,r){e.then(function(){if(t[c]){n(h(void 0,!0));return}t[f](n,r)},r)}}var g=Object.getPrototypeOf(function(){}),v=Object.setPrototypeOf((i={get stream(){return this[d]},next:function(){var e,t=this,n=this[u];if(null!==n)return Promise.reject(n);if(this[c])return Promise.resolve(h(void 0,!0));if(this[d].destroyed)return new Promise(function(e,n){process.nextTick(function(){t[u]?n(t[u]):e(h(void 0,!0))})});var r=this[l];if(r)e=new Promise(m(r,this));else{var i=this[d].read();if(null!==i)return Promise.resolve(h(i,!1));e=new Promise(this[f])}return this[l]=e,e}},r(i,Symbol.asyncIterator,function(){return this}),r(i,"return",function(){var e=this;return new Promise(function(t,n){e[d].destroy(null,function(e){if(e){n(e);return}t(h(void 0,!0))})})}),i),g),y=function(e){var t,n=Object.create(v,(r(t={},d,{value:e,writable:!0}),r(t,o,{value:null,writable:!0}),r(t,s,{value:null,writable:!0}),r(t,u,{value:null,writable:!0}),r(t,c,{value:e._readableState.endEmitted,writable:!0}),r(t,f,{value:function(e,t){var r=n[d].read();r?(n[l]=null,n[o]=null,n[s]=null,e(h(r,!1))):(n[o]=e,n[s]=t)},writable:!0}),t));return n[l]=null,a(e,function(e){if(e&&"ERR_STREAM_PREMATURE_CLOSE"!==e.code){var t=n[s];null!==t&&(n[l]=null,n[o]=null,n[s]=null,t(e)),n[u]=e;return}var r=n[o];null!==r&&(n[l]=null,n[o]=null,n[s]=null,r(h(void 0,!0))),n[c]=!0}),e.on("readable",b.bind(null,n)),n};e.exports=y},77086(e,t,n){"use strict";function r(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 i(e){for(var t=1;t0?this.tail.next=t:this.head=t,this.tail=t,++this.length}},{key:"unshift",value:function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length}},{key:"shift",value:function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(e){if(0===this.length)return"";for(var t=this.head,n=""+t.data;t=t.next;)n+=e+t.data;return n}},{key:"concat",value:function(e){if(0===this.length)return c.alloc(0);for(var t=c.allocUnsafe(e>>>0),n=this.head,r=0;n;)d(n.data,t,r),r+=n.data.length,n=n.next;return t}},{key:"consume",value:function(e,t){var n;return ei.length?i.length:e;if(a===i.length?r+=i:r+=i.slice(0,e),0==(e-=a)){a===i.length?(++n,t.next?this.head=t.next:this.head=this.tail=null):(this.head=t,t.data=i.slice(a));break}++n}return this.length-=n,r}},{key:"_getBuffer",value:function(e){var t=c.allocUnsafe(e),n=this.head,r=1;for(n.data.copy(t),e-=n.data.length;n=n.next;){var i=n.data,a=e>i.length?i.length:e;if(i.copy(t,t.length-e,0,a),0==(e-=a)){a===i.length?(++r,n.next?this.head=n.next:this.head=this.tail=null):(this.head=n,n.data=i.slice(a));break}++r}return this.length-=r,t}},{key:f,value:function(e,t){return l(this,i({},t,{depth:0,customInspect:!1}))}}]),e}()},61195(e){"use strict";function t(e,t){var i=this,o=this._readableState&&this._readableState.destroyed,s=this._writableState&&this._writableState.destroyed;return o||s?(t?t(e):e&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(a,this,e)):process.nextTick(a,this,e)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,function(e){!t&&e?i._writableState?i._writableState.errorEmitted?process.nextTick(r,i):(i._writableState.errorEmitted=!0,process.nextTick(n,i,e)):process.nextTick(n,i,e):t?(process.nextTick(r,i),t(e)):process.nextTick(r,i)}),this)}function n(e,t){a(e,t),r(e)}function r(e){(!e._writableState||e._writableState.emitClose)&&(!e._readableState||e._readableState.emitClose)&&e.emit("close")}function i(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function a(e,t){e.emit("error",t)}function o(e,t){var n=e._readableState,r=e._writableState;n&&n.autoDestroy||r&&r.autoDestroy?e.destroy(t):e.emit("error",t)}e.exports={destroy:t,undestroy:i,errorOrDestroy:o}},8610(e,t,n){"use strict";var r=n(94281).q.ERR_STREAM_PREMATURE_CLOSE;function i(e){var t=!1;return function(){if(!t){t=!0;for(var n=arguments.length,r=Array(n),i=0;i0,function(t){e||(e=t),t&&a.forEach(f),o||(a.forEach(f),i(e))})});return n.reduce(d)}e.exports=p},82457(e,t,n){"use strict";var r=n(94281).q.ERR_INVALID_OPT_VALUE;function i(e,t,n){return null!=e.highWaterMark?e.highWaterMark:t?e[n]:null}function a(e,t,n,a){var o=i(t,a,n);if(null!=o){if(!(isFinite(o)&&Math.floor(o)===o)||o<0){var s=a?n:"highWaterMark";throw new r(s,o)}return Math.floor(o)}return e.objectMode?16:16384}e.exports={getHighWaterMark:a}},22503(e,t,n){e.exports=n(17187).EventEmitter},61566(e,t){"use strict";t.__esModule=!0,t.default=void 0;var n=function(e){return"string"==typeof e?e:e?e.displayName||e.name||"Component":void 0};t.default=n},60375(e){"use strict";var t=Object.prototype.hasOwnProperty;function n(e,t){return e===t?0!==e||0!==t||1/e==1/t:e!=e&&t!=t}function r(e,r){if(n(e,r))return!0;if("object"!=typeof e||null===e||"object"!=typeof r||null===r)return!1;var i=Object.keys(e),a=Object.keys(r);if(i.length!==a.length)return!1;for(var o=0;og,DE:()=>b,UY:()=>h,qC:()=>m,MT:()=>f});var s="function"==typeof Symbol&&Symbol.observable||"@@observable",u=function(){return Math.random().toString(36).substring(7).split("").join(".")},c={INIT:"@@redux/INIT"+u(),REPLACE:"@@redux/REPLACE"+u(),PROBE_UNKNOWN_ACTION:function(){return"@@redux/PROBE_UNKNOWN_ACTION"+u()}};function l(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 f(e,t,n){if("function"==typeof t&&"function"==typeof n||"function"==typeof n&&"function"==typeof arguments[3])throw Error(o(0));if("function"==typeof t&&void 0===n&&(n=t,t=void 0),void 0!==n){if("function"!=typeof n)throw Error(o(1));return n(f)(e,t)}if("function"!=typeof e)throw Error(o(2));var r,i=e,a=t,u=[],d=u,h=!1;function p(){d===u&&(d=u.slice())}function b(){if(h)throw Error(o(3));return a}function m(e){if("function"!=typeof e)throw Error(o(4));if(h)throw Error(o(5));var t=!0;return p(),d.push(e),function(){if(t){if(h)throw Error(o(6));t=!1,p();var n=d.indexOf(e);d.splice(n,1),u=null}}}function g(e){if(!l(e))throw Error(o(7));if(void 0===e.type)throw Error(o(8));if(h)throw Error(o(9));try{h=!0,a=i(a,e)}finally{h=!1}for(var t=u=d,n=0;n]?|>=?|\?=|[-+\/=])(?=\s)/,lookbehind:!0},"string-operator":{pattern:/(\s)&&?(?=\s)/,lookbehind:!0,alias:"keyword"},"token-operator":[{pattern:/(\w)(?:->?|=>|[~|{}])(?=\w)/,lookbehind:!0,alias:"punctuation"},{pattern:/[|{}]/,alias:"punctuation"}],punctuation:/[,.:()]/}}e.exports=t,t.displayName="abap",t.aliases=[]},68313(e){"use strict";function t(e){var t,n;n="(?:ALPHA|BIT|CHAR|CR|CRLF|CTL|DIGIT|DQUOTE|HEXDIG|HTAB|LF|LWSP|OCTET|SP|VCHAR|WSP)",(t=e).languages.abnf={comment:/;.*/,string:{pattern:/(?:%[is])?"[^"\n\r]*"/,greedy:!0,inside:{punctuation:/^%[is]/}},range:{pattern:/%(?:b[01]+-[01]+|d\d+-\d+|x[A-F\d]+-[A-F\d]+)/i,alias:"number"},terminal:{pattern:/%(?:b[01]+(?:\.[01]+)*|d\d+(?:\.\d+)*|x[A-F\d]+(?:\.[A-F\d]+)*)/i,alias:"number"},repetition:{pattern:/(^|[^\w-])(?:\d*\*\d*|\d+)/,lookbehind:!0,alias:"operator"},definition:{pattern:/(^[ \t]*)(?:[a-z][\w-]*|<[^<>\r\n]*>)(?=\s*=)/m,lookbehind:!0,alias:"keyword",inside:{punctuation:/<|>/}},"core-rule":{pattern:RegExp("(?:(^|[^<\\w-])"+n+"|<"+n+">)(?![\\w-])","i"),lookbehind:!0,alias:["rule","constant"],inside:{punctuation:/<|>/}},rule:{pattern:/(^|[^<\w-])[a-z][\w-]*|<[^<>\r\n]*>/i,lookbehind:!0,inside:{punctuation:/<|>/}},operator:/=\/?|\//,punctuation:/[()\[\]]/}}e.exports=t,t.displayName="abnf",t.aliases=[]},5199(e){"use strict";function t(e){e.languages.actionscript=e.languages.extend("javascript",{keyword:/\b(?:as|break|case|catch|class|const|default|delete|do|else|extends|finally|for|function|if|implements|import|in|instanceof|interface|internal|is|native|new|null|package|private|protected|public|return|super|switch|this|throw|try|typeof|use|var|void|while|with|dynamic|each|final|get|include|namespace|override|set|static)\b/,operator:/\+\+|--|(?:[+\-*\/%^]|&&?|\|\|?|<>?>?|[!=]=?)=?|[~?@]/}),e.languages.actionscript["class-name"].alias="function",e.languages.markup&&e.languages.insertBefore("actionscript","string",{xml:{pattern:/(^|[^.])<\/?\w+(?:\s+[^\s>\/=]+=("|')(?:\\[\s\S]|(?!\2)[^\\])*\2)*\s*\/?>/,lookbehind:!0,inside:e.languages.markup}})}e.exports=t,t.displayName="actionscript",t.aliases=[]},89693(e){"use strict";function t(e){e.languages.ada={comment:/--.*/,string:/"(?:""|[^"\r\f\n])*"/i,number:[{pattern:/\b\d(?:_?\d)*#[\dA-F](?:_?[\dA-F])*(?:\.[\dA-F](?:_?[\dA-F])*)?#(?:E[+-]?\d(?:_?\d)*)?/i},{pattern:/\b\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:E[+-]?\d(?:_?\d)*)?\b/i}],"attr-name":/\b'\w+/i,keyword:/\b(?:abort|abs|abstract|accept|access|aliased|all|and|array|at|begin|body|case|constant|declare|delay|delta|digits|do|else|new|return|elsif|end|entry|exception|exit|for|function|generic|goto|if|in|interface|is|limited|loop|mod|not|null|of|others|out|overriding|package|pragma|private|procedure|protected|raise|range|record|rem|renames|requeue|reverse|select|separate|some|subtype|synchronized|tagged|task|terminate|then|type|until|use|when|while|with|xor)\b/i,boolean:/\b(?:true|false)\b/i,operator:/<[=>]?|>=?|=>?|:=|\/=?|\*\*?|[&+-]/,punctuation:/\.\.?|[,;():]/,char:/'.'/,variable:/\b[a-z](?:\w)*\b/i}}e.exports=t,t.displayName="ada",t.aliases=[]},24001(e){"use strict";function t(e){var t;(t=e).languages.agda={comment:/\{-[\s\S]*?(?:-\}|$)|--.*/,string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},punctuation:/[(){}⦃⦄.;@]/,"class-name":{pattern:/((?:data|record) +)\S+/,lookbehind:!0},function:{pattern:/(^[ \t]*)(?!\s)[^:\r\n]+(?=:)/m,lookbehind:!0},operator:{pattern:/(^\s*|\s)(?:[=|:∀→λ\\?_]|->)(?=\s)/,lookbehind:!0},keyword:/\b(?:Set|abstract|constructor|data|eta-equality|field|forall|hiding|import|in|inductive|infix|infixl|infixr|instance|let|macro|module|mutual|no-eta-equality|open|overlap|pattern|postulate|primitive|private|public|quote|quoteContext|quoteGoal|quoteTerm|record|renaming|rewrite|syntax|tactic|unquote|unquoteDecl|unquoteDef|using|variable|where|with)\b/}}e.exports=t,t.displayName="agda",t.aliases=[]},18018(e){"use strict";function t(e){e.languages.al={comment:/\/\/.*|\/\*[\s\S]*?\*\//,string:{pattern:/'(?:''|[^'\r\n])*'(?!')|"(?:""|[^"\r\n])*"(?!")/,greedy:!0},function:{pattern:/(\b(?:event|procedure|trigger)\s+|(?:^|[^.])\.\s*)[a-z_]\w*(?=\s*\()/i,lookbehind:!0},keyword:[/\b(?:array|asserterror|begin|break|case|do|downto|else|end|event|exit|for|foreach|function|if|implements|in|indataset|interface|internal|local|of|procedure|program|protected|repeat|runonclient|securityfiltering|suppressdispose|temporary|then|to|trigger|until|var|while|with|withevents)\b/i,/\b(?:action|actions|addafter|addbefore|addfirst|addlast|area|assembly|chartpart|codeunit|column|controladdin|cuegroup|customizes|dataitem|dataset|dotnet|elements|enum|enumextension|extends|field|fieldattribute|fieldelement|fieldgroup|fieldgroups|fields|filter|fixed|grid|group|key|keys|label|labels|layout|modify|moveafter|movebefore|movefirst|movelast|page|pagecustomization|pageextension|part|profile|query|repeater|report|requestpage|schema|separator|systempart|table|tableelement|tableextension|textattribute|textelement|type|usercontrol|value|xmlport)\b/i],number:/\b(?:0x[\da-f]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?)(?:F|U(?:LL?)?|LL?)?\b/i,boolean:/\b(?:false|true)\b/i,variable:/\b(?:Curr(?:FieldNo|Page|Report)|RequestOptionsPage|x?Rec)\b/,"class-name":/\b(?:automation|biginteger|bigtext|blob|boolean|byte|char|clienttype|code|completiontriggererrorlevel|connectiontype|database|dataclassification|datascope|date|dateformula|datetime|decimal|defaultlayout|dialog|dictionary|dotnetassembly|dotnettypedeclaration|duration|errorinfo|errortype|executioncontext|executionmode|fieldclass|fieldref|fieldtype|file|filterpagebuilder|guid|httpclient|httpcontent|httpheaders|httprequestmessage|httpresponsemessage|instream|integer|joker|jsonarray|jsonobject|jsontoken|jsonvalue|keyref|list|moduledependencyinfo|moduleinfo|none|notification|notificationscope|objecttype|option|outstream|pageresult|record|recordid|recordref|reportformat|securityfilter|sessionsettings|tableconnectiontype|tablefilter|testaction|testfield|testfilterfield|testpage|testpermissions|testrequestpage|text|textbuilder|textconst|textencoding|time|transactionmodel|transactiontype|variant|verbosity|version|view|views|webserviceactioncontext|webserviceactionresultcode|xmlattribute|xmlattributecollection|xmlcdata|xmlcomment|xmldeclaration|xmldocument|xmldocumenttype|xmlelement|xmlnamespacemanager|xmlnametable|xmlnode|xmlnodelist|xmlprocessinginstruction|xmlreadoptions|xmltext|xmlwriteoptions)\b/i,operator:/\.\.|:[=:]|[-+*/]=?|<>|[<>]=?|=|\b(?:and|div|mod|not|or|xor)\b/i,punctuation:/[()\[\]{}:.;,]/}}e.exports=t,t.displayName="al",t.aliases=[]},36363(e){"use strict";function t(e){e.languages.antlr4={comment:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,string:{pattern:/'(?:\\.|[^\\'\r\n])*'/,greedy:!0},"character-class":{pattern:/\[(?:\\.|[^\\\]\r\n])*\]/,greedy:!0,alias:"regex",inside:{range:{pattern:/([^[]|(?:^|[^\\])(?:\\\\)*\\\[)-(?!\])/,lookbehind:!0,alias:"punctuation"},escape:/\\(?:u(?:[a-fA-F\d]{4}|\{[a-fA-F\d]+\})|[pP]\{[=\w-]+\}|[^\r\nupP])/,punctuation:/[\[\]]/}},action:{pattern:/\{(?:[^{}]|\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})*\})*\}/,greedy:!0,inside:{content:{pattern:/(\{)[\s\S]+(?=\})/,lookbehind:!0},punctuation:/[{}]/}},command:{pattern:/(->\s*(?!\s))(?:\s*(?:,\s*)?\b[a-z]\w*(?:\s*\([^()\r\n]*\))?)+(?=\s*;)/i,lookbehind:!0,inside:{function:/\b\w+(?=\s*(?:[,(]|$))/,punctuation:/[,()]/}},annotation:{pattern:/@\w+(?:::\w+)*/,alias:"keyword"},label:{pattern:/#[ \t]*\w+/,alias:"punctuation"},keyword:/\b(?:catch|channels|finally|fragment|grammar|import|lexer|locals|mode|options|parser|returns|throws|tokens)\b/,definition:[{pattern:/\b[a-z]\w*(?=\s*:)/,alias:["rule","class-name"]},{pattern:/\b[A-Z]\w*(?=\s*:)/,alias:["token","constant"]}],constant:/\b[A-Z][A-Z_]*\b/,operator:/\.\.|->|[|~]|[*+?]\??/,punctuation:/[;:()=]/},e.languages.g4=e.languages.antlr4}e.exports=t,t.displayName="antlr4",t.aliases=["g4"]},35281(e){"use strict";function t(e){e.languages.apacheconf={comment:/#.*/,"directive-inline":{pattern:/(^[\t ]*)\b(?:AcceptFilter|AcceptPathInfo|AccessFileName|Action|Add(?:Alt|AltByEncoding|AltByType|Charset|DefaultCharset|Description|Encoding|Handler|Icon|IconByEncoding|IconByType|InputFilter|Language|ModuleInfo|OutputFilter|OutputFilterByType|Type)|Alias|AliasMatch|Allow(?:CONNECT|EncodedSlashes|Methods|Override|OverrideList)?|Anonymous(?:_LogEmail|_MustGiveEmail|_NoUserID|_VerifyEmail)?|AsyncRequestWorkerFactor|Auth(?:BasicAuthoritative|BasicFake|BasicProvider|BasicUseDigestAlgorithm|DBDUserPWQuery|DBDUserRealmQuery|DBMGroupFile|DBMType|DBMUserFile|Digest(?:Algorithm|Domain|NonceLifetime|Provider|Qop|ShmemSize)|Form(?:Authoritative|Body|DisableNoStore|FakeBasicAuth|Location|LoginRequiredLocation|LoginSuccessLocation|LogoutLocation|Method|Mimetype|Password|Provider|SitePassphrase|Size|Username)|GroupFile|LDAP(?:AuthorizePrefix|BindAuthoritative|BindDN|BindPassword|CharsetConfig|CompareAsUser|CompareDNOnServer|DereferenceAliases|GroupAttribute|GroupAttributeIsDN|InitialBindAsUser|InitialBindPattern|MaxSubGroupDepth|RemoteUserAttribute|RemoteUserIsDN|SearchAsUser|SubGroupAttribute|SubGroupClass|Url)|Merging|Name|Type|UserFile|nCache(?:Context|Enable|ProvideFor|SOCache|Timeout)|nzFcgiCheckAuthnProvider|nzFcgiDefineProvider|zDBDLoginToReferer|zDBDQuery|zDBDRedirectQuery|zDBMType|zSendForbiddenOnFailure)|BalancerGrowth|BalancerInherit|BalancerMember|BalancerPersist|BrowserMatch|BrowserMatchNoCase|BufferSize|BufferedLogs|CGIDScriptTimeout|CGIMapExtension|Cache(?:DefaultExpire|DetailHeader|DirLength|DirLevels|Disable|Enable|File|Header|IgnoreCacheControl|IgnoreHeaders|IgnoreNoLastMod|IgnoreQueryString|IgnoreURLSessionIdentifiers|KeyBaseURL|LastModifiedFactor|Lock|LockMaxAge|LockPath|MaxExpire|MaxFileSize|MinExpire|MinFileSize|NegotiatedDocs|QuickHandler|ReadSize|ReadTime|Root|Socache(?:MaxSize|MaxTime|MinTime|ReadSize|ReadTime)?|StaleOnError|StoreExpired|StoreNoStore|StorePrivate)|CharsetDefault|CharsetOptions|CharsetSourceEnc|CheckCaseOnly|CheckSpelling|ChrootDir|ContentDigest|CookieDomain|CookieExpires|CookieName|CookieStyle|CookieTracking|CoreDumpDirectory|CustomLog|DBDExptime|DBDInitSQL|DBDKeep|DBDMax|DBDMin|DBDParams|DBDPersist|DBDPrepareSQL|DBDriver|DTracePrivileges|Dav|DavDepthInfinity|DavGenericLockDB|DavLockDB|DavMinTimeout|DefaultIcon|DefaultLanguage|DefaultRuntimeDir|DefaultType|Define|Deflate(?:BufferSize|CompressionLevel|FilterNote|InflateLimitRequestBody|InflateRatio(?:Burst|Limit)|MemLevel|WindowSize)|Deny|DirectoryCheckHandler|DirectoryIndex|DirectoryIndexRedirect|DirectorySlash|DocumentRoot|DumpIOInput|DumpIOOutput|EnableExceptionHook|EnableMMAP|EnableSendfile|Error|ErrorDocument|ErrorLog|ErrorLogFormat|Example|ExpiresActive|ExpiresByType|ExpiresDefault|ExtFilterDefine|ExtFilterOptions|ExtendedStatus|FallbackResource|FileETag|FilterChain|FilterDeclare|FilterProtocol|FilterProvider|FilterTrace|ForceLanguagePriority|ForceType|ForensicLog|GprofDir|GracefulShutdownTimeout|Group|Header|HeaderName|Heartbeat(?:Address|Listen|MaxServers|Storage)|HostnameLookups|ISAPI(?:AppendLogToErrors|AppendLogToQuery|CacheFile|FakeAsync|LogNotSupported|ReadAheadBuffer)|IdentityCheck|IdentityCheckTimeout|ImapBase|ImapDefault|ImapMenu|Include|IncludeOptional|Index(?:HeadInsert|Ignore|IgnoreReset|Options|OrderDefault|StyleSheet)|InputSed|KeepAlive|KeepAliveTimeout|KeptBodySize|LDAP(?:CacheEntries|CacheTTL|ConnectionPoolTTL|ConnectionTimeout|LibraryDebug|OpCacheEntries|OpCacheTTL|ReferralHopLimit|Referrals|Retries|RetryDelay|SharedCacheFile|SharedCacheSize|Timeout|TrustedClientCert|TrustedGlobalCert|TrustedMode|VerifyServerCert)|LanguagePriority|Limit(?:InternalRecursion|Request(?:Body|FieldSize|Fields|Line)|XMLRequestBody)|Listen|ListenBackLog|LoadFile|LoadModule|LogFormat|LogLevel|LogMessage|LuaAuthzProvider|LuaCodeCache|Lua(?:Hook(?:AccessChecker|AuthChecker|CheckUserID|Fixups|InsertFilter|Log|MapToStorage|TranslateName|TypeChecker)|Inherit|InputFilter|MapHandler|OutputFilter|PackageCPath|PackagePath|QuickHandler|Root|Scope)|MMapFile|Max(?:ConnectionsPerChild|KeepAliveRequests|MemFree|RangeOverlaps|RangeReversals|Ranges|RequestWorkers|SpareServers|SpareThreads|Threads)|MergeTrailers|MetaDir|MetaFiles|MetaSuffix|MimeMagicFile|MinSpareServers|MinSpareThreads|ModMimeUsePathInfo|ModemStandard|MultiviewsMatch|Mutex|NWSSLTrustedCerts|NWSSLUpgradeable|NameVirtualHost|NoProxy|Options|Order|OutputSed|PassEnv|PidFile|PrivilegesMode|Protocol|ProtocolEcho|Proxy(?:AddHeaders|BadHeader|Block|Domain|ErrorOverride|ExpressDBMFile|ExpressDBMType|ExpressEnable|FtpDirCharset|FtpEscapeWildcards|FtpListOnWildcard|HTML(?:BufSize|CharsetOut|DocType|Enable|Events|Extended|Fixups|Interp|Links|Meta|StripComments|URLMap)|IOBufferSize|MaxForwards|Pass(?:Inherit|InterpolateEnv|Match|Reverse|ReverseCookieDomain|ReverseCookiePath)?|PreserveHost|ReceiveBufferSize|Remote|RemoteMatch|Requests|SCGIInternalRedirect|SCGISendfile|Set|SourceAddress|Status|Timeout|Via)|RLimitCPU|RLimitMEM|RLimitNPROC|ReadmeName|ReceiveBufferSize|Redirect|RedirectMatch|RedirectPermanent|RedirectTemp|ReflectorHeader|RemoteIP(?:Header|InternalProxy|InternalProxyList|ProxiesHeader|TrustedProxy|TrustedProxyList)|RemoveCharset|RemoveEncoding|RemoveHandler|RemoveInputFilter|RemoveLanguage|RemoveOutputFilter|RemoveType|RequestHeader|RequestReadTimeout|Require|Rewrite(?:Base|Cond|Engine|Map|Options|Rule)|SSIETag|SSIEndTag|SSIErrorMsg|SSILastModified|SSILegacyExprParser|SSIStartTag|SSITimeFormat|SSIUndefinedEcho|SSL(?:CACertificateFile|CACertificatePath|CADNRequestFile|CADNRequestPath|CARevocationCheck|CARevocationFile|CARevocationPath|CertificateChainFile|CertificateFile|CertificateKeyFile|CipherSuite|Compression|CryptoDevice|Engine|FIPS|HonorCipherOrder|InsecureRenegotiation|OCSP(?:DefaultResponder|Enable|OverrideResponder|ResponderTimeout|ResponseMaxAge|ResponseTimeSkew|UseRequestNonce)|OpenSSLConfCmd|Options|PassPhraseDialog|Protocol|Proxy(?:CACertificateFile|CACertificatePath|CARevocation(?:Check|File|Path)|CheckPeer(?:CN|Expire|Name)|CipherSuite|Engine|MachineCertificate(?:ChainFile|File|Path)|Protocol|Verify|VerifyDepth)|RandomSeed|RenegBufferSize|Require|RequireSSL|SRPUnknownUserSeed|SRPVerifierFile|Session(?:Cache|CacheTimeout|TicketKeyFile|Tickets)|Stapling(?:Cache|ErrorCacheTimeout|FakeTryLater|ForceURL|ResponderTimeout|ResponseMaxAge|ResponseTimeSkew|ReturnResponderErrors|StandardCacheTimeout)|StrictSNIVHostCheck|UseStapling|UserName|VerifyClient|VerifyDepth)|Satisfy|ScoreBoardFile|Script(?:Alias|AliasMatch|InterpreterSource|Log|LogBuffer|LogLength|Sock)?|SecureListen|SeeRequestTail|SendBufferSize|Server(?:Admin|Alias|Limit|Name|Path|Root|Signature|Tokens)|Session(?:Cookie(?:Name|Name2|Remove)|Crypto(?:Cipher|Driver|Passphrase|PassphraseFile)|DBD(?:CookieName|CookieName2|CookieRemove|DeleteLabel|InsertLabel|PerUser|SelectLabel|UpdateLabel)|Env|Exclude|Header|Include|MaxAge)?|SetEnv|SetEnvIf|SetEnvIfExpr|SetEnvIfNoCase|SetHandler|SetInputFilter|SetOutputFilter|StartServers|StartThreads|Substitute|Suexec|SuexecUserGroup|ThreadLimit|ThreadStackSize|ThreadsPerChild|TimeOut|TraceEnable|TransferLog|TypesConfig|UnDefine|UndefMacro|UnsetEnv|Use|UseCanonicalName|UseCanonicalPhysicalPort|User|UserDir|VHostCGIMode|VHostCGIPrivs|VHostGroup|VHostPrivs|VHostSecure|VHostUser|Virtual(?:DocumentRoot|ScriptAlias)(?:IP)?|WatchdogInterval|XBitHack|xml2EncAlias|xml2EncDefault|xml2StartParse)\b/im,lookbehind:!0,alias:"property"},"directive-block":{pattern:/<\/?\b(?:Auth[nz]ProviderAlias|Directory|DirectoryMatch|Else|ElseIf|Files|FilesMatch|If|IfDefine|IfModule|IfVersion|Limit|LimitExcept|Location|LocationMatch|Macro|Proxy|Require(?:All|Any|None)|VirtualHost)\b.*>/i,inside:{"directive-block":{pattern:/^<\/?\w+/,inside:{punctuation:/^<\/?/},alias:"tag"},"directive-block-parameter":{pattern:/.*[^>]/,inside:{punctuation:/:/,string:{pattern:/("|').*\1/,inside:{variable:/[$%]\{?(?:\w\.?[-+:]?)+\}?/}}},alias:"attr-value"},punctuation:/>/},alias:"tag"},"directive-flags":{pattern:/\[(?:[\w=],?)+\]/,alias:"keyword"},string:{pattern:/("|').*\1/,inside:{variable:/[$%]\{?(?:\w\.?[-+:]?)+\}?/}},variable:/[$%]\{?(?:\w\.?[-+:]?)+\}?/,regex:/\^?.*\$|\^.*\$?/}}e.exports=t,t.displayName="apacheconf",t.aliases=[]},10433(e,t,n){"use strict";var r=n(11114);function i(e){e.register(r),function(e){var t=/\b(?:abstract|activate|and|any|array|as|asc|autonomous|begin|bigdecimal|blob|boolean|break|bulk|by|byte|case|cast|catch|char|class|collect|commit|const|continue|currency|date|datetime|decimal|default|delete|desc|do|double|else|end|enum|exception|exit|export|extends|final|finally|float|for|from|global|goto|group|having|hint|if|implements|import|in|inner|insert|instanceof|int|integer|interface|into|join|like|limit|list|long|loop|map|merge|new|not|null|nulls|number|object|of|on|or|outer|override|package|parallel|pragma|private|protected|public|retrieve|return|rollback|select|set|short|sObject|sort|static|string|super|switch|synchronized|system|testmethod|then|this|throw|time|transaction|transient|trigger|try|undelete|update|upsert|using|virtual|void|webservice|when|where|while|get(?=\s*[{};])|(?:after|before)(?=\s+[a-z])|(?:inherited|with|without)\s+sharing)\b/i,n=/\b(?:(?=[a-z_]\w*\s*[<\[])|(?!))[A-Z_]\w*(?:\s*\.\s*[A-Z_]\w*)*\b(?:\s*(?:\[\s*\]|<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>))*/.source.replace(//g,function(){return t.source});function r(e){return RegExp(e.replace(//g,function(){return n}),"i")}var i={keyword:t,punctuation:/[()\[\]{};,:.<>]/};e.languages.apex={comment:e.languages.clike.comment,string:e.languages.clike.string,sql:{pattern:/((?:[=,({:]|\breturn)\s*)\[[^\[\]]*\]/i,lookbehind:!0,greedy:!0,alias:"language-sql",inside:e.languages.sql},annotation:{pattern:/@\w+\b/,alias:"punctuation"},"class-name":[{pattern:r(/(\b(?:class|enum|extends|implements|instanceof|interface|new|trigger\s+\w+\s+on)\s+)/.source),lookbehind:!0,inside:i},{pattern:r(/(\(\s*)(?=\s*\)\s*[\w(])/.source),lookbehind:!0,inside:i},{pattern:r(/(?=\s*\w+\s*[;=,(){:])/.source),inside:i}],trigger:{pattern:/(\btrigger\s+)\w+\b/i,lookbehind:!0,alias:"class-name"},keyword:t,function:/\b[a-z_]\w*(?=\s*\()/i,boolean:/\b(?:false|true)\b/i,number:/(?:\B\.\d+|\b\d+(?:\.\d+|L)?)\b/i,operator:/[!=](?:==?)?|\?\.?|&&|\|\||--|\+\+|[-+*/^&|]=?|:|<{1,3}=?/,punctuation:/[()\[\]{};,.]/}}(e)}e.exports=i,i.displayName="apex",i.aliases=[]},84039(e){"use strict";function t(e){e.languages.apl={comment:/(?:⍝|#[! ]).*$/m,string:{pattern:/'(?:[^'\r\n]|'')*'/,greedy:!0},number:/¯?(?:\d*\.?\b\d+(?:e[+¯]?\d+)?|¯|∞)(?:j¯?(?:(?:\d+(?:\.\d+)?|\.\d+)(?:e[+¯]?\d+)?|¯|∞))?/i,statement:/:[A-Z][a-z][A-Za-z]*\b/,"system-function":{pattern:/⎕[A-Z]+/i,alias:"function"},constant:/[⍬⌾#⎕⍞]/,function:/[-+×÷⌈⌊∣|⍳⍸?*⍟○!⌹<≤=>≥≠≡≢∊⍷∪∩~∨∧⍱⍲⍴,⍪⌽⊖⍉↑↓⊂⊃⊆⊇⌷⍋⍒⊤⊥⍕⍎⊣⊢⍁⍂≈⍯↗¤→]/,"monadic-operator":{pattern:/[\\\/⌿⍀¨⍨⌶&∥]/,alias:"operator"},"dyadic-operator":{pattern:/[.⍣⍠⍤∘⌸@⌺⍥]/,alias:"operator"},assignment:{pattern:/←/,alias:"keyword"},punctuation:/[\[;\]()◇⋄]/,dfn:{pattern:/[{}⍺⍵⍶⍹∇⍫:]/,alias:"builtin"}}}e.exports=t,t.displayName="apl",t.aliases=[]},71336(e){"use strict";function t(e){e.languages.applescript={comment:[/\(\*(?:\(\*(?:[^*]|\*(?!\)))*\*\)|(?!\(\*)[\s\S])*?\*\)/,/--.+/,/#.+/],string:/"(?:\\.|[^"\\\r\n])*"/,number:/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e-?\d+)?\b/i,operator:[/[&=≠≤≥*+\-\/÷^]|[<>]=?/,/\b(?:(?:start|begin|end)s? with|(?:(?:does not|doesn't) contain|contains?)|(?:is|isn't|is not) (?:in|contained by)|(?:(?:is|isn't|is not) )?(?:greater|less) than(?: or equal)?(?: to)?|(?:(?:does not|doesn't) come|comes) (?:before|after)|(?:is|isn't|is not) equal(?: to)?|(?:(?:does not|doesn't) equal|equals|equal to|isn't|is not)|(?:a )?(?:ref(?: to)?|reference to)|(?:and|or|div|mod|as|not))\b/],keyword:/\b(?:about|above|after|against|apart from|around|aside from|at|back|before|beginning|behind|below|beneath|beside|between|but|by|considering|continue|copy|does|eighth|else|end|equal|error|every|exit|false|fifth|first|for|fourth|from|front|get|given|global|if|ignoring|in|instead of|into|is|it|its|last|local|me|middle|my|ninth|of|on|onto|out of|over|prop|property|put|repeat|return|returning|second|set|seventh|since|sixth|some|tell|tenth|that|the|then|third|through|thru|timeout|times|to|transaction|true|try|until|where|while|whose|with|without)\b/,class:{pattern:/\b(?:alias|application|boolean|class|constant|date|file|integer|list|number|POSIX file|real|record|reference|RGB color|script|text|centimetres|centimeters|feet|inches|kilometres|kilometers|metres|meters|miles|yards|square feet|square kilometres|square kilometers|square metres|square meters|square miles|square yards|cubic centimetres|cubic centimeters|cubic feet|cubic inches|cubic metres|cubic meters|cubic yards|gallons|litres|liters|quarts|grams|kilograms|ounces|pounds|degrees Celsius|degrees Fahrenheit|degrees Kelvin)\b/,alias:"builtin"},punctuation:/[{}():,¬«»《》]/}}e.exports=t,t.displayName="applescript",t.aliases=[]},4481(e){"use strict";function t(e){e.languages.aql={comment:/\/\/.*|\/\*[\s\S]*?\*\//,property:{pattern:/([{,]\s*)(?:(?!\d)\w+|(["'´`])(?:(?!\2)[^\\\r\n]|\\.)*\2)(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(["'´`])(?:(?!\1)[^\\\r\n]|\\.)*\1/,greedy:!0},variable:/@@?\w+/,keyword:[{pattern:/(\bWITH\s+)COUNT(?=\s+INTO\b)/i,lookbehind:!0},/\b(?:AGGREGATE|ALL|AND|ANY|ASC|COLLECT|DESC|DISTINCT|FILTER|FOR|GRAPH|IN|INBOUND|INSERT|INTO|K_PATHS|K_SHORTEST_PATHS|LET|LIKE|LIMIT|NONE|NOT|NULL|OR|OUTBOUND|REMOVE|REPLACE|RETURN|SHORTEST_PATH|SORT|UPDATE|UPSERT|WINDOW|WITH)\b/i,{pattern:/(^|[^\w.[])(?:KEEP|PRUNE|SEARCH|TO)\b/i,lookbehind:!0},{pattern:/(^|[^\w.[])(?:CURRENT|NEW|OLD)\b/,lookbehind:!0},{pattern:/\bOPTIONS(?=\s*\{)/i}],function:/\b(?!\d)\w+(?=\s*\()/,boolean:/\b(?:true|false)\b/i,range:{pattern:/\.\./,alias:"operator"},number:[/\b0b[01]+/i,/\b0x[0-9a-f]+/i,/(?:\B\.\d+|\b(?:0|[1-9]\d*)(?:\.\d+)?)(?:e[+-]?\d+)?/i],operator:/\*{2,}|[=!]~|[!=<>]=?|&&|\|\||[-+*/%]/,punctuation:/::|[?.:,;()[\]{}]/}}e.exports=t,t.displayName="aql",t.aliases=[]},2159(e,t,n){"use strict";var r=n(80096);function i(e){e.register(r),e.languages.arduino=e.languages.extend("cpp",{constant:/\b(?:DIGITAL_MESSAGE|FIRMATA_STRING|ANALOG_MESSAGE|REPORT_DIGITAL|REPORT_ANALOG|INPUT_PULLUP|SET_PIN_MODE|INTERNAL2V56|SYSTEM_RESET|LED_BUILTIN|INTERNAL1V1|SYSEX_START|INTERNAL|EXTERNAL|DEFAULT|OUTPUT|INPUT|HIGH|LOW)\b/,keyword:/\b(?:setup|if|else|while|do|for|return|in|instanceof|default|function|loop|goto|switch|case|new|try|throw|catch|finally|null|break|continue|boolean|bool|void|byte|word|string|String|array|int|long|integer|double)\b/,builtin:/\b(?:KeyboardController|MouseController|SoftwareSerial|EthernetServer|EthernetClient|LiquidCrystal|LiquidCrystal_I2C|RobotControl|GSMVoiceCall|EthernetUDP|EsploraTFT|HttpClient|RobotMotor|WiFiClient|GSMScanner|FileSystem|Scheduler|GSMServer|YunClient|YunServer|IPAddress|GSMClient|GSMModem|Keyboard|Ethernet|Console|GSMBand|Esplora|Stepper|Process|WiFiUDP|GSM_SMS|Mailbox|USBHost|Firmata|PImage|Client|Server|GSMPIN|FileIO|Bridge|Serial|EEPROM|Stream|Mouse|Audio|Servo|File|Task|GPRS|WiFi|Wire|TFT|GSM|SPI|SD|runShellCommandAsynchronously|analogWriteResolution|retrieveCallingNumber|printFirmwareVersion|analogReadResolution|sendDigitalPortPair|noListenOnLocalhost|readJoystickButton|setFirmwareVersion|readJoystickSwitch|scrollDisplayRight|getVoiceCallStatus|scrollDisplayLeft|writeMicroseconds|delayMicroseconds|beginTransmission|getSignalStrength|runAsynchronously|getAsynchronously|listenOnLocalhost|getCurrentCarrier|readAccelerometer|messageAvailable|sendDigitalPorts|lineFollowConfig|countryNameWrite|runShellCommand|readStringUntil|rewindDirectory|readTemperature|setClockDivider|readLightSensor|endTransmission|analogReference|detachInterrupt|countryNameRead|attachInterrupt|encryptionType|readBytesUntil|robotNameWrite|readMicrophone|robotNameRead|cityNameWrite|userNameWrite|readJoystickY|readJoystickX|mouseReleased|openNextFile|scanNetworks|noInterrupts|digitalWrite|beginSpeaker|mousePressed|isActionDone|mouseDragged|displayLogos|noAutoscroll|addParameter|remoteNumber|getModifiers|keyboardRead|userNameRead|waitContinue|processInput|parseCommand|printVersion|readNetworks|writeMessage|blinkVersion|cityNameRead|readMessage|setDataMode|parsePacket|isListening|setBitOrder|beginPacket|isDirectory|motorsWrite|drawCompass|digitalRead|clearScreen|serialEvent|rightToLeft|setTextSize|leftToRight|requestFrom|keyReleased|compassRead|analogWrite|interrupts|WiFiServer|disconnect|playMelody|parseFloat|autoscroll|getPINUsed|setPINUsed|setTimeout|sendAnalog|readSlider|analogRead|beginWrite|createChar|motorsStop|keyPressed|tempoWrite|readButton|subnetMask|debugPrint|macAddress|writeGreen|randomSeed|attachGPRS|readString|sendString|remotePort|releaseAll|mouseMoved|background|getXChange|getYChange|answerCall|getResult|voiceCall|endPacket|constrain|getSocket|writeJSON|getButton|available|connected|findUntil|readBytes|exitValue|readGreen|writeBlue|startLoop|isPressed|sendSysex|pauseMode|gatewayIP|setCursor|getOemKey|tuneWrite|noDisplay|loadImage|switchPIN|onRequest|onReceive|changePIN|playFile|noBuffer|parseInt|overflow|checkPIN|knobRead|beginTFT|bitClear|updateIR|bitWrite|position|writeRGB|highByte|writeRed|setSpeed|readBlue|noStroke|remoteIP|transfer|shutdown|hangCall|beginSMS|endWrite|attached|maintain|noCursor|checkReg|checkPUK|shiftOut|isValid|shiftIn|pulseIn|connect|println|localIP|pinMode|getIMEI|display|noBlink|process|getBand|running|beginSD|drawBMP|lowByte|setBand|release|bitRead|prepare|pointTo|readRed|setMode|noFill|remove|listen|stroke|detach|attach|noTone|exists|buffer|height|bitSet|circle|config|cursor|random|IRread|setDNS|endSMS|getKey|micros|millis|begin|print|write|ready|flush|width|isPIN|blink|clear|press|mkdir|rmdir|close|point|yield|image|BSSID|click|delay|read|text|move|peek|beep|rect|line|open|seek|fill|size|turn|stop|home|find|step|tone|sqrt|RSSI|SSID|end|bit|tan|cos|sin|pow|map|abs|max|min|get|run|put)\b/})}e.exports=i,i.displayName="arduino",i.aliases=[]},60274(e){"use strict";function t(e){e.languages.arff={comment:/%.*/,string:{pattern:/(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},keyword:/@(?:attribute|data|end|relation)\b/i,number:/\b\d+(?:\.\d+)?\b/,punctuation:/[{},]/}}e.exports=t,t.displayName="arff",t.aliases=[]},18738(e){"use strict";function t(e){!function(e){var t={pattern:/(^[ \t]*)\[(?!\[)(?:(["'$`])(?:(?!\2)[^\\]|\\.)*\2|\[(?:[^\[\]\\]|\\.)*\]|[^\[\]\\"'$`]|\\.)*\]/m,lookbehind:!0,inside:{quoted:{pattern:/([$`])(?:(?!\1)[^\\]|\\.)*\1/,inside:{punctuation:/^[$`]|[$`]$/}},interpreted:{pattern:/'(?:[^'\\]|\\.)*'/,inside:{punctuation:/^'|'$/}},string:/"(?:[^"\\]|\\.)*"/,variable:/\w+(?==)/,punctuation:/^\[|\]$|,/,operator:/=/,"attr-value":/(?!^\s+$).+/}},n=e.languages.asciidoc={"comment-block":{pattern:/^(\/{4,})(?:\r?\n|\r)(?:[\s\S]*(?:\r?\n|\r))??\1/m,alias:"comment"},table:{pattern:/^\|={3,}(?:(?:\r?\n|\r(?!\n)).*)*?(?:\r?\n|\r)\|={3,}$/m,inside:{specifiers:{pattern:/(?!\|)(?:(?:(?:\d+(?:\.\d+)?|\.\d+)[+*])?(?:[<^>](?:\.[<^>])?|\.[<^>])?[a-z]*)(?=\|)/,alias:"attr-value"},punctuation:{pattern:/(^|[^\\])[|!]=*/,lookbehind:!0}}},"passthrough-block":{pattern:/^(\+{4,})(?:\r?\n|\r)(?:[\s\S]*(?:\r?\n|\r))??\1$/m,inside:{punctuation:/^\++|\++$/}},"literal-block":{pattern:/^(-{4,}|\.{4,})(?:\r?\n|\r)(?:[\s\S]*(?:\r?\n|\r))??\1$/m,inside:{punctuation:/^(?:-+|\.+)|(?:-+|\.+)$/}},"other-block":{pattern:/^(--|\*{4,}|_{4,}|={4,})(?:\r?\n|\r)(?:[\s\S]*(?:\r?\n|\r))??\1$/m,inside:{punctuation:/^(?:-+|\*+|_+|=+)|(?:-+|\*+|_+|=+)$/}},"list-punctuation":{pattern:/(^[ \t]*)(?:-|\*{1,5}|\.{1,5}|(?:[a-z]|\d+)\.|[xvi]+\))(?= )/im,lookbehind:!0,alias:"punctuation"},"list-label":{pattern:/(^[ \t]*)[a-z\d].+(?::{2,4}|;;)(?=\s)/im,lookbehind:!0,alias:"symbol"},"indented-block":{pattern:/((\r?\n|\r)\2)([ \t]+)\S.*(?:(?:\r?\n|\r)\3.+)*(?=\2{2}|$)/,lookbehind:!0},comment:/^\/\/.*/m,title:{pattern:/^.+(?:\r?\n|\r)(?:={3,}|-{3,}|~{3,}|\^{3,}|\+{3,})$|^={1,5} .+|^\.(?![\s.]).*/m,alias:"important",inside:{punctuation:/^(?:\.|=+)|(?:=+|-+|~+|\^+|\++)$/}},"attribute-entry":{pattern:/^:[^:\r\n]+:(?: .*?(?: \+(?:\r?\n|\r).*?)*)?$/m,alias:"tag"},attributes:t,hr:{pattern:/^'{3,}$/m,alias:"punctuation"},"page-break":{pattern:/^<{3,}$/m,alias:"punctuation"},admonition:{pattern:/^(?:TIP|NOTE|IMPORTANT|WARNING|CAUTION):/m,alias:"keyword"},callout:[{pattern:/(^[ \t]*)/m,lookbehind:!0,alias:"symbol"},{pattern:/<\d+>/,alias:"symbol"}],macro:{pattern:/\b[a-z\d][a-z\d-]*::?(?:[^\s\[\]]*\[(?:[^\]\\"']|(["'])(?:(?!\1)[^\\]|\\.)*\1|\\.)*\])/,inside:{function:/^[a-z\d-]+(?=:)/,punctuation:/^::?/,attributes:{pattern:/(?:\[(?:[^\]\\"']|(["'])(?:(?!\1)[^\\]|\\.)*\1|\\.)*\])/,inside:t.inside}}},inline:{pattern:/(^|[^\\])(?:(?:\B\[(?:[^\]\\"']|(["'])(?:(?!\2)[^\\]|\\.)*\2|\\.)*\])?(?:\b_(?!\s)(?: _|[^_\\\r\n]|\\.)+(?:(?:\r?\n|\r)(?: _|[^_\\\r\n]|\\.)+)*_\b|\B``(?!\s).+?(?:(?:\r?\n|\r).+?)*''\B|\B`(?!\s)(?:[^`'\s]|\s+\S)+['`]\B|\B(['*+#])(?!\s)(?: \3|(?!\3)[^\\\r\n]|\\.)+(?:(?:\r?\n|\r)(?: \3|(?!\3)[^\\\r\n]|\\.)+)*\3\B)|(?:\[(?:[^\]\\"']|(["'])(?:(?!\4)[^\\]|\\.)*\4|\\.)*\])?(?:(__|\*\*|\+\+\+?|##|\$\$|[~^]).+?(?:(?:\r?\n|\r).+?)*\5|\{[^}\r\n]+\}|\[\[\[?.+?(?:(?:\r?\n|\r).+?)*\]?\]\]|<<.+?(?:(?:\r?\n|\r).+?)*>>|\(\(\(?.+?(?:(?:\r?\n|\r).+?)*\)?\)\)))/m,lookbehind:!0,inside:{attributes:t,url:{pattern:/^(?:\[\[\[?.+?\]?\]\]|<<.+?>>)$/,inside:{punctuation:/^(?:\[\[\[?|<<)|(?:\]\]\]?|>>)$/}},"attribute-ref":{pattern:/^\{.+\}$/,inside:{variable:{pattern:/(^\{)[a-z\d,+_-]+/,lookbehind:!0},operator:/^[=?!#%@$]|!(?=[:}])/,punctuation:/^\{|\}$|::?/}},italic:{pattern:/^(['_])[\s\S]+\1$/,inside:{punctuation:/^(?:''?|__?)|(?:''?|__?)$/}},bold:{pattern:/^\*[\s\S]+\*$/,inside:{punctuation:/^\*\*?|\*\*?$/}},punctuation:/^(?:``?|\+{1,3}|##?|\$\$|[~^]|\(\(\(?)|(?:''?|\+{1,3}|##?|\$\$|[~^`]|\)?\)\))$/}},replacement:{pattern:/\((?:C|TM|R)\)/,alias:"builtin"},entity:/&#?[\da-z]{1,8};/i,"line-continuation":{pattern:/(^| )\+$/m,lookbehind:!0,alias:"punctuation"}};function r(e){e=e.split(" ");for(var t={},r=0,i=e.length;r/i,alias:"tag",inside:{"page-directive":{pattern:/<%\s*@\s*(?:Assembly|Control|Implements|Import|Master(?:Type)?|OutputCache|Page|PreviousPageType|Reference|Register)?|%>/i,alias:"tag"},rest:e.languages.markup.tag.inside}},directive:{pattern:/<%.*%>/i,alias:"tag",inside:{directive:{pattern:/<%\s*?[$=%#:]{0,2}|%>/i,alias:"tag"},rest:e.languages.csharp}}}),e.languages.aspnet.tag.pattern=/<(?!%)\/?[^\s>\/]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+))?)*\s*\/?>/i,e.languages.insertBefore("inside","punctuation",{directive:e.languages.aspnet.directive},e.languages.aspnet.tag.inside["attr-value"]),e.languages.insertBefore("aspnet","comment",{"asp-comment":{pattern:/<%--[\s\S]*?--%>/,alias:["asp","comment"]}}),e.languages.insertBefore("aspnet",e.languages.javascript?"script":"tag",{"asp-script":{pattern:/(]*>)[\s\S]*?(?=<\/script>)/i,lookbehind:!0,alias:["asp","script"],inside:e.languages.csharp||{}}})}e.exports=i,i.displayName="aspnet",i.aliases=[]},6681(e){"use strict";function t(e){e.languages.autohotkey={comment:[{pattern:/(^|\s);.*/,lookbehind:!0},{pattern:/(^[\t ]*)\/\*(?:[\r\n](?![ \t]*\*\/)|[^\r\n])*(?:[\r\n][ \t]*\*\/)?/m,lookbehind:!0,greedy:!0}],tag:{pattern:/^([ \t]*)[^\s,`":]+(?=:[ \t]*$)/m,lookbehind:!0},string:/"(?:[^"\n\r]|"")*"/m,variable:/%\w+%/,number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/\?|\/\/?=?|:=|\|[=|]?|&[=&]?|\+[=+]?|-[=-]?|\*[=*]?|<(?:<=?|>|=)?|>>?=?|[.^!=~]=?|\b(?:AND|NOT|OR)\b/,boolean:/\b(?:true|false)\b/,selector:/\b(?:AutoTrim|BlockInput|Break|Click|ClipWait|Continue|Control|ControlClick|ControlFocus|ControlGet|ControlGetFocus|ControlGetPos|ControlGetText|ControlMove|ControlSend|ControlSendRaw|ControlSetText|CoordMode|Critical|DetectHiddenText|DetectHiddenWindows|Drive|DriveGet|DriveSpaceFree|EnvAdd|EnvDiv|EnvGet|EnvMult|EnvSet|EnvSub|EnvUpdate|Exit|ExitApp|FileAppend|FileCopy|FileCopyDir|FileCreateDir|FileCreateShortcut|FileDelete|FileEncoding|FileGetAttrib|FileGetShortcut|FileGetSize|FileGetTime|FileGetVersion|FileInstall|FileMove|FileMoveDir|FileRead|FileReadLine|FileRecycle|FileRecycleEmpty|FileRemoveDir|FileSelectFile|FileSelectFolder|FileSetAttrib|FileSetTime|FormatTime|GetKeyState|Gosub|Goto|GroupActivate|GroupAdd|GroupClose|GroupDeactivate|Gui|GuiControl|GuiControlGet|Hotkey|ImageSearch|IniDelete|IniRead|IniWrite|Input|InputBox|KeyWait|ListHotkeys|ListLines|ListVars|Loop|Menu|MouseClick|MouseClickDrag|MouseGetPos|MouseMove|MsgBox|OnExit|OutputDebug|Pause|PixelGetColor|PixelSearch|PostMessage|Process|Progress|Random|RegDelete|RegRead|RegWrite|Reload|Repeat|Return|Run|RunAs|RunWait|Send|SendEvent|SendInput|SendMessage|SendMode|SendPlay|SendRaw|SetBatchLines|SetCapslockState|SetControlDelay|SetDefaultMouseSpeed|SetEnv|SetFormat|SetKeyDelay|SetMouseDelay|SetNumlockState|SetRegView|SetScrollLockState|SetStoreCapslockMode|SetTimer|SetTitleMatchMode|SetWinDelay|SetWorkingDir|Shutdown|Sleep|Sort|SoundBeep|SoundGet|SoundGetWaveVolume|SoundPlay|SoundSet|SoundSetWaveVolume|SplashImage|SplashTextOff|SplashTextOn|SplitPath|StatusBarGetText|StatusBarWait|StringCaseSense|StringGetPos|StringLeft|StringLen|StringLower|StringMid|StringReplace|StringRight|StringSplit|StringTrimLeft|StringTrimRight|StringUpper|Suspend|SysGet|Thread|ToolTip|Transform|TrayTip|URLDownloadToFile|WinActivate|WinActivateBottom|WinClose|WinGet|WinGetActiveStats|WinGetActiveTitle|WinGetClass|WinGetPos|WinGetText|WinGetTitle|WinHide|WinKill|WinMaximize|WinMenuSelectItem|WinMinimize|WinMinimizeAll|WinMinimizeAllUndo|WinMove|WinRestore|WinSet|WinSetTitle|WinShow|WinWait|WinWaitActive|WinWaitClose|WinWaitNotActive)\b/i,constant:/\b(?:a_ahkpath|a_ahkversion|a_appdata|a_appdatacommon|a_autotrim|a_batchlines|a_caretx|a_carety|a_computername|a_controldelay|a_cursor|a_dd|a_ddd|a_dddd|a_defaultmousespeed|a_desktop|a_desktopcommon|a_detecthiddentext|a_detecthiddenwindows|a_endchar|a_eventinfo|a_exitreason|a_fileencoding|a_formatfloat|a_formatinteger|a_gui|a_guievent|a_guicontrol|a_guicontrolevent|a_guiheight|a_guiwidth|a_guix|a_guiy|a_hour|a_iconfile|a_iconhidden|a_iconnumber|a_icontip|a_index|a_ipaddress1|a_ipaddress2|a_ipaddress3|a_ipaddress4|a_is64bitos|a_isadmin|a_iscompiled|a_iscritical|a_ispaused|a_issuspended|a_isunicode|a_keydelay|a_language|a_lasterror|a_linefile|a_linenumber|a_loopfield|a_loopfileattrib|a_loopfiledir|a_loopfileext|a_loopfilefullpath|a_loopfilelongpath|a_loopfilename|a_loopfileshortname|a_loopfileshortpath|a_loopfilesize|a_loopfilesizekb|a_loopfilesizemb|a_loopfiletimeaccessed|a_loopfiletimecreated|a_loopfiletimemodified|a_loopreadline|a_loopregkey|a_loopregname|a_loopregsubkey|a_loopregtimemodified|a_loopregtype|a_mday|a_min|a_mm|a_mmm|a_mmmm|a_mon|a_mousedelay|a_msec|a_mydocuments|a_now|a_nowutc|a_numbatchlines|a_ostype|a_osversion|a_priorhotkey|a_priorkey|programfiles|a_programfiles|a_programs|a_programscommon|a_ptrsize|a_regview|a_screendpi|a_screenheight|a_screenwidth|a_scriptdir|a_scriptfullpath|a_scripthwnd|a_scriptname|a_sec|a_space|a_startmenu|a_startmenucommon|a_startup|a_startupcommon|a_stringcasesense|a_tab|a_temp|a_thisfunc|a_thishotkey|a_thislabel|a_thismenu|a_thismenuitem|a_thismenuitempos|a_tickcount|a_timeidle|a_timeidlephysical|a_timesincepriorhotkey|a_timesincethishotkey|a_titlematchmode|a_titlematchmodespeed|a_username|a_wday|a_windelay|a_windir|a_workingdir|a_yday|a_year|a_yweek|a_yyyy|clipboard|clipboardall|comspec|errorlevel)\b/i,builtin:/\b(?:abs|acos|asc|asin|atan|ceil|chr|class|comobjactive|comobjarray|comobjconnect|comobjcreate|comobjerror|comobjflags|comobjget|comobjquery|comobjtype|comobjvalue|cos|dllcall|exp|fileexist|Fileopen|floor|format|il_add|il_create|il_destroy|instr|substr|isfunc|islabel|IsObject|ln|log|lv_add|lv_delete|lv_deletecol|lv_getcount|lv_getnext|lv_gettext|lv_insert|lv_insertcol|lv_modify|lv_modifycol|lv_setimagelist|ltrim|rtrim|mod|onmessage|numget|numput|registercallback|regexmatch|regexreplace|round|sin|tan|sqrt|strlen|strreplace|sb_seticon|sb_setparts|sb_settext|strsplit|tv_add|tv_delete|tv_getchild|tv_getcount|tv_getnext|tv_get|tv_getparent|tv_getprev|tv_getselection|tv_gettext|tv_modify|varsetcapacity|winactive|winexist|__New|__Call|__Get|__Set)\b/i,symbol:/\b(?:alt|altdown|altup|appskey|backspace|browser_back|browser_favorites|browser_forward|browser_home|browser_refresh|browser_search|browser_stop|bs|capslock|ctrl|ctrlbreak|ctrldown|ctrlup|del|delete|down|end|enter|esc|escape|f1|f10|f11|f12|f13|f14|f15|f16|f17|f18|f19|f2|f20|f21|f22|f23|f24|f3|f4|f5|f6|f7|f8|f9|home|ins|insert|joy1|joy10|joy11|joy12|joy13|joy14|joy15|joy16|joy17|joy18|joy19|joy2|joy20|joy21|joy22|joy23|joy24|joy25|joy26|joy27|joy28|joy29|joy3|joy30|joy31|joy32|joy4|joy5|joy6|joy7|joy8|joy9|joyaxes|joybuttons|joyinfo|joyname|joypov|joyr|joyu|joyv|joyx|joyy|joyz|lalt|launch_app1|launch_app2|launch_mail|launch_media|lbutton|lcontrol|lctrl|left|lshift|lwin|lwindown|lwinup|mbutton|media_next|media_play_pause|media_prev|media_stop|numlock|numpad0|numpad1|numpad2|numpad3|numpad4|numpad5|numpad6|numpad7|numpad8|numpad9|numpadadd|numpadclear|numpaddel|numpaddiv|numpaddot|numpaddown|numpadend|numpadenter|numpadhome|numpadins|numpadleft|numpadmult|numpadpgdn|numpadpgup|numpadright|numpadsub|numpadup|pgdn|pgup|printscreen|ralt|rbutton|rcontrol|rctrl|right|rshift|rwin|rwindown|rwinup|scrolllock|shift|shiftdown|shiftup|space|tab|up|volume_down|volume_mute|volume_up|wheeldown|wheelleft|wheelright|wheelup|xbutton1|xbutton2)\b/i,important:/#\b(?:AllowSameLineComments|ClipboardTimeout|CommentFlag|DerefChar|ErrorStdOut|EscapeChar|HotkeyInterval|HotkeyModifierTimeout|Hotstring|If|IfTimeout|IfWinActive|IfWinExist|IfWinNotActive|IfWinNotExist|Include|IncludeAgain|InputLevel|InstallKeybdHook|InstallMouseHook|KeyHistory|MaxHotkeysPerInterval|MaxMem|MaxThreads|MaxThreadsBuffer|MaxThreadsPerHotkey|MenuMaskKey|NoEnv|NoTrayIcon|Persistent|SingleInstance|UseHook|Warn|WinActivateForce)\b/i,keyword:/\b(?:Abort|AboveNormal|Add|ahk_class|ahk_exe|ahk_group|ahk_id|ahk_pid|All|Alnum|Alpha|AltSubmit|AltTab|AltTabAndMenu|AltTabMenu|AltTabMenuDismiss|AlwaysOnTop|AutoSize|Background|BackgroundTrans|BelowNormal|between|BitAnd|BitNot|BitOr|BitShiftLeft|BitShiftRight|BitXOr|Bold|Border|Button|ByRef|Checkbox|Checked|CheckedGray|Choose|ChooseString|Close|Color|ComboBox|Contains|ControlList|Count|Date|DateTime|Days|DDL|Default|DeleteAll|Delimiter|Deref|Destroy|Digit|Disable|Disabled|DropDownList|Edit|Eject|Else|Enable|Enabled|Error|Exist|Expand|ExStyle|FileSystem|First|Flash|Float|FloatFast|Focus|Font|for|global|Grid|Group|GroupBox|GuiClose|GuiContextMenu|GuiDropFiles|GuiEscape|GuiSize|Hdr|Hidden|Hide|High|HKCC|HKCR|HKCU|HKEY_CLASSES_ROOT|HKEY_CURRENT_CONFIG|HKEY_CURRENT_USER|HKEY_LOCAL_MACHINE|HKEY_USERS|HKLM|HKU|Hours|HScroll|Icon|IconSmall|ID|IDLast|If|IfEqual|IfExist|IfGreater|IfGreaterOrEqual|IfInString|IfLess|IfLessOrEqual|IfMsgBox|IfNotEqual|IfNotExist|IfNotInString|IfWinActive|IfWinExist|IfWinNotActive|IfWinNotExist|Ignore|ImageList|in|Integer|IntegerFast|Interrupt|is|italic|Join|Label|LastFound|LastFoundExist|Limit|Lines|List|ListBox|ListView|local|Lock|Logoff|Low|Lower|Lowercase|MainWindow|Margin|Maximize|MaximizeBox|MaxSize|Minimize|MinimizeBox|MinMax|MinSize|Minutes|MonthCal|Mouse|Move|Multi|NA|No|NoActivate|NoDefault|NoHide|NoIcon|NoMainWindow|norm|Normal|NoSort|NoSortHdr|NoStandard|Not|NoTab|NoTimers|Number|Off|Ok|On|OwnDialogs|Owner|Parse|Password|Picture|Pixel|Pos|Pow|Priority|ProcessName|Radio|Range|Read|ReadOnly|Realtime|Redraw|REG_BINARY|REG_DWORD|REG_EXPAND_SZ|REG_MULTI_SZ|REG_SZ|Region|Relative|Rename|Report|Resize|Restore|Retry|RGB|Screen|Seconds|Section|Serial|SetLabel|ShiftAltTab|Show|Single|Slider|SortDesc|Standard|static|Status|StatusBar|StatusCD|strike|Style|Submit|SysMenu|Tab2|TabStop|Text|Theme|Tile|ToggleCheck|ToggleEnable|ToolWindow|Top|Topmost|TransColor|Transparent|Tray|TreeView|TryAgain|Throw|Try|Catch|Finally|Type|UnCheck|underline|Unicode|Unlock|Until|UpDown|Upper|Uppercase|UseErrorLevel|Vis|VisFirst|Visible|VScroll|Wait|WaitClose|WantCtrlA|WantF2|WantReturn|While|Wrap|Xdigit|xm|xp|xs|Yes|ym|yp|ys)\b/i,function:/[^(); \t,\n+*\-=?>:\\\/<&%\[\]]+(?=\()/m,punctuation:/[{}[\]():,]/}}e.exports=t,t.displayName="autohotkey",t.aliases=[]},53358(e){"use strict";function t(e){e.languages.autoit={comment:[/;.*/,{pattern:/(^[\t ]*)#(?:comments-start|cs)[\s\S]*?^[ \t]*#(?:comments-end|ce)/m,lookbehind:!0}],url:{pattern:/(^[\t ]*#include\s+)(?:<[^\r\n>]+>|"[^\r\n"]+")/m,lookbehind:!0},string:{pattern:/(["'])(?:\1\1|(?!\1)[^\r\n])*\1/,greedy:!0,inside:{variable:/([%$@])\w+\1/}},directive:{pattern:/(^[\t ]*)#\w+/m,lookbehind:!0,alias:"keyword"},function:/\b\w+(?=\()/,variable:/[$@]\w+/,keyword:/\b(?:Case|Const|Continue(?:Case|Loop)|Default|Dim|Do|Else(?:If)?|End(?:Func|If|Select|Switch|With)|Enum|Exit(?:Loop)?|For|Func|Global|If|In|Local|Next|Null|ReDim|Select|Static|Step|Switch|Then|To|Until|Volatile|WEnd|While|With)\b/i,number:/\b(?:0x[\da-f]+|\d+(?:\.\d+)?(?:e[+-]?\d+)?)\b/i,boolean:/\b(?:True|False)\b/i,operator:/<[=>]?|[-+*\/=&>]=?|[?^]|\b(?:And|Or|Not)\b/i,punctuation:/[\[\]().,:]/}}e.exports=t,t.displayName="autoit",t.aliases=[]},6979(e){"use strict";function t(e){!function(e){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",n={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},r={bash:n,environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|x[0-9a-fA-F]{1,2}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:r},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:n}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:r},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:r.entity}}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:r.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|aptitude|apt-cache|apt-get|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:if|then|else|elif|fi|for|while|in|case|esac|function|select|do|done|until)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|break|cd|continue|eval|exec|exit|export|getopts|hash|pwd|readonly|return|shift|test|times|trap|umask|unset|alias|bind|builtin|caller|command|declare|echo|enable|help|let|local|logout|mapfile|printf|read|readarray|source|type|typeset|ulimit|unalias|set|shopt)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:true|false)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},n.inside=e.languages.bash;for(var i=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],a=r.variable[1].inside,o=0;o?^\w +\-.])*"/i,greedy:!0},number:/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:E[+-]?\d+)?/i,keyword:/\b(?:AS|BEEP|BLOAD|BSAVE|CALL(?: ABSOLUTE)?|CASE|CHAIN|CHDIR|CLEAR|CLOSE|CLS|COM|COMMON|CONST|DATA|DECLARE|DEF(?: FN| SEG|DBL|INT|LNG|SNG|STR)|DIM|DO|DOUBLE|ELSE|ELSEIF|END|ENVIRON|ERASE|ERROR|EXIT|FIELD|FILES|FOR|FUNCTION|GET|GOSUB|GOTO|IF|INPUT|INTEGER|IOCTL|KEY|KILL|LINE INPUT|LOCATE|LOCK|LONG|LOOP|LSET|MKDIR|NAME|NEXT|OFF|ON(?: COM| ERROR| KEY| TIMER)?|OPEN|OPTION BASE|OUT|POKE|PUT|READ|REDIM|REM|RESTORE|RESUME|RETURN|RMDIR|RSET|RUN|SHARED|SINGLE|SELECT CASE|SHELL|SLEEP|STATIC|STEP|STOP|STRING|SUB|SWAP|SYSTEM|THEN|TIMER|TO|TROFF|TRON|TYPE|UNLOCK|UNTIL|USING|VIEW PRINT|WAIT|WEND|WHILE|WRITE)(?:\$|\b)/i,function:/\b(?:ABS|ACCESS|ACOS|ANGLE|AREA|ARITHMETIC|ARRAY|ASIN|ASK|AT|ATN|BASE|BEGIN|BREAK|CAUSE|CEIL|CHR|CLIP|COLLATE|COLOR|CON|COS|COSH|COT|CSC|DATE|DATUM|DEBUG|DECIMAL|DEF|DEG|DEGREES|DELETE|DET|DEVICE|DISPLAY|DOT|ELAPSED|EPS|ERASABLE|EXLINE|EXP|EXTERNAL|EXTYPE|FILETYPE|FIXED|FP|GO|GRAPH|HANDLER|IDN|IMAGE|IN|INT|INTERNAL|IP|IS|KEYED|LBOUND|LCASE|LEFT|LEN|LENGTH|LET|LINE|LINES|LOG|LOG10|LOG2|LTRIM|MARGIN|MAT|MAX|MAXNUM|MID|MIN|MISSING|MOD|NATIVE|NUL|NUMERIC|OF|OPTION|ORD|ORGANIZATION|OUTIN|OUTPUT|PI|POINT|POINTER|POINTS|POS|PRINT|PROGRAM|PROMPT|RAD|RADIANS|RANDOMIZE|RECORD|RECSIZE|RECTYPE|RELATIVE|REMAINDER|REPEAT|REST|RETRY|REWRITE|RIGHT|RND|ROUND|RTRIM|SAME|SEC|SELECT|SEQUENTIAL|SET|SETTER|SGN|SIN|SINH|SIZE|SKIP|SQR|STANDARD|STATUS|STR|STREAM|STYLE|TAB|TAN|TANH|TEMPLATE|TEXT|THERE|TIME|TIMEOUT|TRACE|TRANSFORM|TRUNCATE|UBOUND|UCASE|USE|VAL|VARIABLE|VIEWPORT|WHEN|WINDOW|WITH|ZER|ZONEWIDTH)(?:\$|\b)/i,operator:/<[=>]?|>=?|[+\-*\/^=&]|\b(?:AND|EQV|IMP|NOT|OR|XOR)\b/i,punctuation:/[,;:()]/}}e.exports=t,t.displayName="basic",t.aliases=[]},94781(e){"use strict";function t(e){var t,n,r,i,a;n=/%%?[~:\w]+%?|!\S+!/,r={pattern:/\/[a-z?]+(?=[ :]|$):?|-[a-z]\b|--[a-z-]+\b/im,alias:"attr-name",inside:{punctuation:/:/}},i=/"(?:[\\"]"|[^"])*"(?!")/,a=/(?:\b|-)\d+\b/,(t=e).languages.batch={comment:[/^::.*/m,{pattern:/((?:^|[&(])[ \t]*)rem\b(?:[^^&)\r\n]|\^(?:\r\n|[\s\S]))*/im,lookbehind:!0}],label:{pattern:/^:.*/m,alias:"property"},command:[{pattern:/((?:^|[&(])[ \t]*)for(?: \/[a-z?](?:[ :](?:"[^"]*"|[^\s"/]\S*))?)* \S+ in \([^)]+\) do/im,lookbehind:!0,inside:{keyword:/^for\b|\b(?:in|do)\b/i,string:i,parameter:r,variable:n,number:a,punctuation:/[()',]/}},{pattern:/((?:^|[&(])[ \t]*)if(?: \/[a-z?](?:[ :](?:"[^"]*"|[^\s"/]\S*))?)* (?:not )?(?:cmdextversion \d+|defined \w+|errorlevel \d+|exist \S+|(?:"[^"]*"|(?!")(?:(?!==)\S)+)?(?:==| (?:equ|neq|lss|leq|gtr|geq) )(?:"[^"]*"|[^\s"]\S*))/im,lookbehind:!0,inside:{keyword:/^if\b|\b(?:not|cmdextversion|defined|errorlevel|exist)\b/i,string:i,parameter:r,variable:n,number:a,operator:/\^|==|\b(?:equ|neq|lss|leq|gtr|geq)\b/i}},{pattern:/((?:^|[&()])[ \t]*)else\b/im,lookbehind:!0,inside:{keyword:/^else\b/i}},{pattern:/((?:^|[&(])[ \t]*)set(?: \/[a-z](?:[ :](?:"[^"]*"|[^\s"/]\S*))?)* (?:[^^&)\r\n]|\^(?:\r\n|[\s\S]))*/im,lookbehind:!0,inside:{keyword:/^set\b/i,string:i,parameter:r,variable:[n,/\w+(?=(?:[*\/%+\-&^|]|<<|>>)?=)/],number:a,operator:/[*\/%+\-&^|]=?|<<=?|>>=?|[!~_=]/,punctuation:/[()',]/}},{pattern:/((?:^|[&(])[ \t]*@?)\w+\b(?:"(?:[\\"]"|[^"])*"(?!")|[^"^&)\r\n]|\^(?:\r\n|[\s\S]))*/im,lookbehind:!0,inside:{keyword:/^\w+\b/i,string:i,parameter:r,label:{pattern:/(^\s*):\S+/m,lookbehind:!0,alias:"property"},variable:n,number:a,operator:/\^/}}],operator:/[&@]/,punctuation:/[()']/}}e.exports=t,t.displayName="batch",t.aliases=[]},62260(e){"use strict";function t(e){e.languages.bbcode={tag:{pattern:/\[\/?[^\s=\]]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'"\]=]+))?(?:\s+[^\s=\]]+\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'"\]=]+))*\s*\]/,inside:{tag:{pattern:/^\[\/?[^\s=\]]+/,inside:{punctuation:/^\[\/?/}},"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'"\]=]+)/i,inside:{punctuation:[/^=/,{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\]/,"attr-name":/[^\s=\]]+/}}},e.languages.shortcode=e.languages.bbcode}e.exports=t,t.displayName="bbcode",t.aliases=["shortcode"]},59258(e){"use strict";function t(e){e.languages.birb=e.languages.extend("clike",{string:{pattern:/r?("|')(?:\\.|(?!\1)[^\\])*\1/,greedy:!0},"class-name":[/\b[A-Z](?:[\d_]*[a-zA-Z]\w*)?\b/,/\b[A-Z]\w*(?=\s+\w+\s*[;,=()])/],keyword:/\b(?:assert|break|case|class|const|default|else|enum|final|follows|for|grab|if|nest|next|new|noSeeb|return|static|switch|throw|var|void|while)\b/,operator:/\+\+|--|&&|\|\||<<=?|>>=?|~(?:\/=?)?|[+\-*\/%&^|=!<>]=?|\?|:/,variable:/\b[a-z_]\w*\b/}),e.languages.insertBefore("birb","function",{metadata:{pattern:/<\w+>/,greedy:!0,alias:"symbol"}})}e.exports=t,t.displayName="birb",t.aliases=[]},62890(e,t,n){"use strict";var r=n(65806);function i(e){e.register(r),e.languages.bison=e.languages.extend("c",{}),e.languages.insertBefore("bison","comment",{bison:{pattern:/^(?:[^%]|%(?!%))*%%[\s\S]*?%%/,inside:{c:{pattern:/%\{[\s\S]*?%\}|\{(?:\{[^}]*\}|[^{}])*\}/,inside:{delimiter:{pattern:/^%?\{|%?\}$/,alias:"punctuation"},"bison-variable":{pattern:/[$@](?:<[^\s>]+>)?[\w$]+/,alias:"variable",inside:{punctuation:/<|>/}},rest:e.languages.c}},comment:e.languages.c.comment,string:e.languages.c.string,property:/\S+(?=:)/,keyword:/%\w+/,number:{pattern:/(^|[^@])\b(?:0x[\da-f]+|\d+)/i,lookbehind:!0},punctuation:/%[%?]|[|:;\[\]<>]/}}})}e.exports=i,i.displayName="bison",i.aliases=[]},15958(e){"use strict";function t(e){e.languages.bnf={string:{pattern:/"[^\r\n"]*"|'[^\r\n']*'/},definition:{pattern:/<[^<>\r\n\t]+>(?=\s*::=)/,alias:["rule","keyword"],inside:{punctuation:/^<|>$/}},rule:{pattern:/<[^<>\r\n\t]+>/,inside:{punctuation:/^<|>$/}},operator:/::=|[|()[\]{}*+?]|\.{3}/},e.languages.rbnf=e.languages.bnf}e.exports=t,t.displayName="bnf",t.aliases=["rbnf"]},61321(e){"use strict";function t(e){e.languages.brainfuck={pointer:{pattern:/<|>/,alias:"keyword"},increment:{pattern:/\+/,alias:"inserted"},decrement:{pattern:/-/,alias:"deleted"},branching:{pattern:/\[|\]/,alias:"important"},operator:/[.,]/,comment:/\S+/}}e.exports=t,t.displayName="brainfuck",t.aliases=[]},77856(e){"use strict";function t(e){e.languages.brightscript={comment:/(?:\brem|').*/i,"directive-statement":{pattern:/(^[\t ]*)#(?:const|else(?:[\t ]+if)?|end[\t ]+if|error|if).*/im,lookbehind:!0,alias:"property",inside:{"error-message":{pattern:/(^#error).+/,lookbehind:!0},directive:{pattern:/^#(?:const|else(?:[\t ]+if)?|end[\t ]+if|error|if)/,alias:"keyword"},expression:{pattern:/[\s\S]+/,inside:null}}},property:{pattern:/([\r\n{,][\t ]*)(?:(?!\d)\w+|"(?:[^"\r\n]|"")*"(?!"))(?=[ \t]*:)/,lookbehind:!0,greedy:!0},string:{pattern:/"(?:[^"\r\n]|"")*"(?!")/,greedy:!0},"class-name":{pattern:/(\bAs[\t ]+)\w+/i,lookbehind:!0},keyword:/\b(?:As|Dim|Each|Else|Elseif|End|Exit|For|Function|Goto|If|In|Print|Return|Step|Stop|Sub|Then|To|While)\b/i,boolean:/\b(?:true|false)\b/i,function:/\b(?!\d)\w+(?=[\t ]*\()/i,number:/(?:\b\d+(?:\.\d+)?(?:[ed][+-]\d+)?|&h[a-f\d]+)\b[%&!#]?/i,operator:/--|\+\+|>>=?|<<=?|<>|[-+*/\\<>]=?|[:^=?]|\b(?:and|mod|not|or)\b/i,punctuation:/[.,;()[\]{}]/,constant:/\b(?:LINE_NUM)\b/i},e.languages.brightscript["directive-statement"].inside.expression.inside=e.languages.brightscript}e.exports=t,t.displayName="brightscript",t.aliases=[]},90741(e){"use strict";function t(e){e.languages.bro={comment:{pattern:/(^|[^\\$])#.*/,lookbehind:!0,inside:{italic:/\b(?:TODO|FIXME|XXX)\b/}},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},boolean:/\b[TF]\b/,function:{pattern:/(?:function|hook|event) \w+(?:::\w+)?/,inside:{keyword:/^(?:function|hook|event)/}},variable:{pattern:/(?:global|local) \w+/i,inside:{keyword:/(?:global|local)/}},builtin:/(?:@(?:load(?:-(?:sigs|plugin))?|unload|prefixes|ifn?def|else|(?:end)?if|DIR|FILENAME))|(?:&?(?:redef|priority|log|optional|default|add_func|delete_func|expire_func|read_expire|write_expire|create_expire|synchronized|persistent|rotate_interval|rotate_size|encrypt|raw_output|mergeable|group|error_handler|type_column))/,constant:{pattern:/const \w+/i,inside:{keyword:/const/}},keyword:/\b(?:break|next|continue|alarm|using|of|add|delete|export|print|return|schedule|when|timeout|addr|any|bool|count|double|enum|file|int|interval|pattern|opaque|port|record|set|string|subnet|table|time|vector|for|if|else|in|module|function)\b/,operator:/--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&|\|\|?|\?|\*|\/|~|\^|%/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,punctuation:/[{}[\];(),.:]/}}e.exports=t,t.displayName="bro",t.aliases=[]},83410(e){"use strict";function t(e){e.languages.bsl={comment:/\/\/.*/,string:[{pattern:/"(?:[^"]|"")*"(?!")/,greedy:!0},{pattern:/'(?:[^'\r\n\\]|\\.)*'/}],keyword:[{pattern:/(^|[^\w\u0400-\u0484\u0487-\u052f\u1d2b\u1d78\u2de0-\u2dff\ua640-\ua69f\ufe2e\ufe2f])(?:пока|для|новый|прервать|попытка|исключение|вызватьисключение|иначе|конецпопытки|неопределено|функция|перем|возврат|конецфункции|если|иначеесли|процедура|конецпроцедуры|тогда|знач|экспорт|конецесли|из|каждого|истина|ложь|по|цикл|конеццикла|выполнить)(?![\w\u0400-\u0484\u0487-\u052f\u1d2b\u1d78\u2de0-\u2dff\ua640-\ua69f\ufe2e\ufe2f])/i,lookbehind:!0},{pattern:/\b(?:while|for|new|break|try|except|raise|else|endtry|undefined|function|var|return|endfunction|null|if|elseif|procedure|endprocedure|then|val|export|endif|in|each|true|false|to|do|enddo|execute)\b/i}],number:{pattern:/(^(?=\d)|[^\w\u0400-\u0484\u0487-\u052f\u1d2b\u1d78\u2de0-\u2dff\ua640-\ua69f\ufe2e\ufe2f])(?:\d+(?:\.\d*)?|\.\d+)(?:E[+-]?\d+)?/i,lookbehind:!0},operator:[/[<>+\-*/]=?|[%=]/,{pattern:/(^|[^\w\u0400-\u0484\u0487-\u052f\u1d2b\u1d78\u2de0-\u2dff\ua640-\ua69f\ufe2e\ufe2f])(?:и|или|не)(?![\w\u0400-\u0484\u0487-\u052f\u1d2b\u1d78\u2de0-\u2dff\ua640-\ua69f\ufe2e\ufe2f])/i,lookbehind:!0},{pattern:/\b(?:and|or|not)\b/i}],punctuation:/\(\.|\.\)|[()\[\]:;,.]/,directive:[{pattern:/^(\s*)&.*/m,lookbehind:!0,alias:"important"},{pattern:/^\s*#.*/gm,alias:"important"}]},e.languages.oscript=e.languages.bsl}e.exports=t,t.displayName="bsl",t.aliases=[]},65806(e){"use strict";function t(e){e.languages.c=e.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:__attribute__|_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|asm|typeof|inline|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),e.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},e.languages.c.string],comment:e.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:e.languages.c}}},constant:/\b(?:__FILE__|__LINE__|__DATE__|__TIME__|__TIMESTAMP__|__func__|EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|stdin|stdout|stderr)\b/}),delete e.languages.c.boolean}e.exports=t,t.displayName="c",t.aliases=[]},33039(e){"use strict";function t(e){e.languages.cfscript=e.languages.extend("clike",{comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,inside:{annotation:{pattern:/(?:^|[^.])@[\w\.]+/,alias:"punctuation"}}},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],keyword:/\b(?:abstract|break|catch|component|continue|default|do|else|extends|final|finally|for|function|if|in|include|package|private|property|public|remote|required|rethrow|return|static|switch|throw|try|var|while|xml)\b(?!\s*=)/,operator:[/\+\+|--|&&|\|\||::|=>|[!=]==|<=?|>=?|[-+*/%&|^!=<>]=?|\?(?:\.|:)?|[?:]/,/\b(?:and|contains|eq|equal|eqv|gt|gte|imp|is|lt|lte|mod|not|or|xor)\b/],scope:{pattern:/\b(?:application|arguments|cgi|client|cookie|local|session|super|this|variables)\b/,alias:"global"},type:{pattern:/\b(?:any|array|binary|boolean|date|guid|numeric|query|string|struct|uuid|void|xml)\b/,alias:"builtin"}}),e.languages.insertBefore("cfscript","keyword",{"function-variable":{pattern:/[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"}}),delete e.languages.cfscript["class-name"],e.languages.cfc=e.languages.cfscript}e.exports=t,t.displayName="cfscript",t.aliases=[]},85082(e,t,n){"use strict";var r=n(80096);function i(e){e.register(r),e.languages.chaiscript=e.languages.extend("clike",{string:{pattern:/(^|[^\\])'(?:[^'\\]|\\[\s\S])*'/,lookbehind:!0,greedy:!0},"class-name":[{pattern:/(\bclass\s+)\w+/,lookbehind:!0},{pattern:/(\b(?:attr|def)\s+)\w+(?=\s*::)/,lookbehind:!0}],keyword:/\b(?:attr|auto|break|case|catch|class|continue|def|default|else|finally|for|fun|global|if|return|switch|this|try|var|while)\b/,number:[e.languages.cpp.number,/\b(?:Infinity|NaN)\b/],operator:/>>=?|<<=?|\|\||&&|:[:=]?|--|\+\+|[=!<>+\-*/%|&^]=?|[?~]|`[^`\r\n]{1,4}`/}),e.languages.insertBefore("chaiscript","operator",{"parameter-type":{pattern:/([,(]\s*)\w+(?=\s+\w)/,lookbehind:!0,alias:"class-name"}}),e.languages.insertBefore("chaiscript","string",{"string-interpolation":{pattern:/(^|[^\\])"(?:[^"$\\]|\\[\s\S]|\$(?!\{)|\$\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})*\})*"/,lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})*\}/,lookbehind:!0,inside:{"interpolation-expression":{pattern:/(^\$\{)[\s\S]+(?=\}$)/,lookbehind:!0,inside:e.languages.chaiscript},"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"}}},string:/[\s\S]+/}}})}e.exports=i,i.displayName="chaiscript",i.aliases=[]},79415(e){"use strict";function t(e){e.languages.cil={comment:/\/\/.*/,string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},directive:{pattern:/(^|\W)\.[a-z]+(?=\s)/,lookbehind:!0,alias:"class-name"},variable:/\[[\w\.]+\]/,keyword:/\b(?:abstract|ansi|assembly|auto|autochar|beforefieldinit|bool|bstr|byvalstr|catch|char|cil|class|currency|date|decimal|default|enum|error|explicit|extends|extern|famandassem|family|famorassem|final(?:ly)?|float32|float64|hidebysig|iant|idispatch|implements|import|initonly|instance|u?int(?:8|16|32|64)?|interface|iunknown|literal|lpstr|lpstruct|lptstr|lpwstr|managed|method|native(?:Type)?|nested|newslot|object(?:ref)?|pinvokeimpl|private|privatescope|public|reqsecobj|rtspecialname|runtime|sealed|sequential|serializable|specialname|static|string|struct|syschar|tbstr|unicode|unmanagedexp|unsigned|value(?:type)?|variant|virtual|void)\b/,function:/\b(?:(?:constrained|unaligned|volatile|readonly|tail|no)\.)?(?:conv\.(?:[iu][1248]?|ovf\.[iu][1248]?(?:\.un)?|r\.un|r4|r8)|ldc\.(?:i4(?:\.[0-9]+|\.[mM]1|\.s)?|i8|r4|r8)|ldelem(?:\.[iu][1248]?|\.r[48]|\.ref|a)?|ldind\.(?:[iu][1248]?|r[48]|ref)|stelem\.?(?:i[1248]?|r[48]|ref)?|stind\.(?:i[1248]?|r[48]|ref)?|end(?:fault|filter|finally)|ldarg(?:\.[0-3s]|a(?:\.s)?)?|ldloc(?:\.[0-9]+|\.s)?|sub(?:\.ovf(?:\.un)?)?|mul(?:\.ovf(?:\.un)?)?|add(?:\.ovf(?:\.un)?)?|stloc(?:\.[0-3s])?|refany(?:type|val)|blt(?:\.un)?(?:\.s)?|ble(?:\.un)?(?:\.s)?|bgt(?:\.un)?(?:\.s)?|bge(?:\.un)?(?:\.s)?|unbox(?:\.any)?|init(?:blk|obj)|call(?:i|virt)?|brfalse(?:\.s)?|bne\.un(?:\.s)?|ldloca(?:\.s)?|brzero(?:\.s)?|brtrue(?:\.s)?|brnull(?:\.s)?|brinst(?:\.s)?|starg(?:\.s)?|leave(?:\.s)?|shr(?:\.un)?|rem(?:\.un)?|div(?:\.un)?|clt(?:\.un)?|alignment|ldvirtftn|castclass|beq(?:\.s)?|mkrefany|localloc|ckfinite|rethrow|ldtoken|ldsflda|cgt\.un|arglist|switch|stsfld|sizeof|newobj|newarr|ldsfld|ldnull|ldflda|isinst|throw|stobj|stfld|ldstr|ldobj|ldlen|ldftn|ldfld|cpobj|cpblk|break|br\.s|xor|shl|ret|pop|not|nop|neg|jmp|dup|cgt|ceq|box|and|or|br)\b/,boolean:/\b(?:true|false)\b/,number:/\b-?(?:0x[0-9a-f]+|[0-9]+)(?:\.[0-9a-f]+)?\b/i,punctuation:/[{}[\];(),:=]|IL_[0-9A-Za-z]+/}}e.exports=t,t.displayName="cil",t.aliases=[]},29726(e){"use strict";function t(e){e.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|interface|extends|implements|trait|instanceof|new)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/,boolean:/\b(?:true|false)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/}}e.exports=t,t.displayName="clike",t.aliases=[]},62849(e){"use strict";function t(e){e.languages.clojure={comment:/;.*/,string:{pattern:/"(?:[^"\\]|\\.)*"/,greedy:!0},operator:/(?:::|[:|'])\b[a-z][\w*+!?-]*\b/i,keyword:{pattern:/([^\w+*'?-])(?:def|if|do|let|\.\.|quote|var|->>|->|fn|loop|recur|throw|try|monitor-enter|\.|new|set!|def-|defn|defn-|defmacro|defmulti|defmethod|defstruct|defonce|declare|definline|definterface|defprotocol|==|defrecord|>=|deftype|<=|defproject|ns|\*|\+|-|\/|<|=|>|accessor|agent|agent-errors|aget|alength|all-ns|alter|and|append-child|apply|array-map|aset|aset-boolean|aset-byte|aset-char|aset-double|aset-float|aset-int|aset-long|aset-short|assert|assoc|await|await-for|bean|binding|bit-and|bit-not|bit-or|bit-shift-left|bit-shift-right|bit-xor|boolean|branch\?|butlast|byte|cast|char|children|class|clear-agent-errors|comment|commute|comp|comparator|complement|concat|conj|cons|constantly|cond|if-not|construct-proxy|contains\?|count|create-ns|create-struct|cycle|dec|deref|difference|disj|dissoc|distinct|doall|doc|dorun|doseq|dosync|dotimes|doto|double|down|drop|drop-while|edit|end\?|ensure|eval|every\?|false\?|ffirst|file-seq|filter|find|find-doc|find-ns|find-var|first|float|flush|for|fnseq|frest|gensym|get-proxy-class|get|hash-map|hash-set|identical\?|identity|if-let|import|in-ns|inc|index|insert-child|insert-left|insert-right|inspect-table|inspect-tree|instance\?|int|interleave|intersection|into|into-array|iterate|join|key|keys|keyword|keyword\?|last|lazy-cat|lazy-cons|left|lefts|line-seq|list\*|list|load|load-file|locking|long|macroexpand|macroexpand-1|make-array|make-node|map|map-invert|map\?|mapcat|max|max-key|memfn|merge|merge-with|meta|min|min-key|name|namespace|neg\?|newline|next|nil\?|node|not|not-any\?|not-every\?|not=|ns-imports|ns-interns|ns-map|ns-name|ns-publics|ns-refers|ns-resolve|ns-unmap|nth|nthrest|or|parse|partial|path|peek|pop|pos\?|pr|pr-str|print|print-str|println|println-str|prn|prn-str|project|proxy|proxy-mappings|quot|rand|rand-int|range|re-find|re-groups|re-matcher|re-matches|re-pattern|re-seq|read|read-line|reduce|ref|ref-set|refer|rem|remove|remove-method|remove-ns|rename|rename-keys|repeat|replace|replicate|resolve|rest|resultset-seq|reverse|rfirst|right|rights|root|rrest|rseq|second|select|select-keys|send|send-off|seq|seq-zip|seq\?|set|short|slurp|some|sort|sort-by|sorted-map|sorted-map-by|sorted-set|special-symbol\?|split-at|split-with|str|string\?|struct|struct-map|subs|subvec|symbol|symbol\?|sync|take|take-nth|take-while|test|time|to-array|to-array-2d|tree-seq|true\?|union|up|update-proxy|val|vals|var-get|var-set|var\?|vector|vector-zip|vector\?|when|when-first|when-let|when-not|with-local-vars|with-meta|with-open|with-out-str|xml-seq|xml-zip|zero\?|zipmap|zipper)(?=[^\w+*'?-])/,lookbehind:!0},boolean:/\b(?:true|false|nil)\b/,number:/\b[\da-f]+\b/i,punctuation:/[{}\[\](),]/}}e.exports=t,t.displayName="clojure",t.aliases=[]},55773(e){"use strict";function t(e){e.languages.cmake={comment:/#.*/,string:{pattern:/"(?:[^\\"]|\\.)*"/,greedy:!0,inside:{interpolation:{pattern:/\$\{(?:[^{}$]|\$\{[^{}$]*\})*\}/,inside:{punctuation:/\$\{|\}/,variable:/\w+/}}}},variable:/\b(?:CMAKE_\w+|\w+_(?:VERSION(?:_MAJOR|_MINOR|_PATCH|_TWEAK)?|(?:BINARY|SOURCE)_DIR|DESCRIPTION|HOMEPAGE_URL|ROOT)|(?:ANDROID|APPLE|BORLAND|BUILD_SHARED_LIBS|CACHE|CPACK_(?:ABSOLUTE_DESTINATION_FILES|COMPONENT_INCLUDE_TOPLEVEL_DIRECTORY|ERROR_ON_ABSOLUTE_INSTALL_DESTINATION|INCLUDE_TOPLEVEL_DIRECTORY|INSTALL_DEFAULT_DIRECTORY_PERMISSIONS|INSTALL_SCRIPT|PACKAGING_INSTALL_PREFIX|SET_DESTDIR|WARN_ON_ABSOLUTE_INSTALL_DESTINATION)|CTEST_(?:BINARY_DIRECTORY|BUILD_COMMAND|BUILD_NAME|BZR_COMMAND|BZR_UPDATE_OPTIONS|CHANGE_ID|CHECKOUT_COMMAND|CONFIGURATION_TYPE|CONFIGURE_COMMAND|COVERAGE_COMMAND|COVERAGE_EXTRA_FLAGS|CURL_OPTIONS|CUSTOM_(?:COVERAGE_EXCLUDE|ERROR_EXCEPTION|ERROR_MATCH|ERROR_POST_CONTEXT|ERROR_PRE_CONTEXT|MAXIMUM_FAILED_TEST_OUTPUT_SIZE|MAXIMUM_NUMBER_OF_(?:ERRORS|WARNINGS)|MAXIMUM_PASSED_TEST_OUTPUT_SIZE|MEMCHECK_IGNORE|POST_MEMCHECK|POST_TEST|PRE_MEMCHECK|PRE_TEST|TESTS_IGNORE|WARNING_EXCEPTION|WARNING_MATCH)|CVS_CHECKOUT|CVS_COMMAND|CVS_UPDATE_OPTIONS|DROP_LOCATION|DROP_METHOD|DROP_SITE|DROP_SITE_CDASH|DROP_SITE_PASSWORD|DROP_SITE_USER|EXTRA_COVERAGE_GLOB|GIT_COMMAND|GIT_INIT_SUBMODULES|GIT_UPDATE_CUSTOM|GIT_UPDATE_OPTIONS|HG_COMMAND|HG_UPDATE_OPTIONS|LABELS_FOR_SUBPROJECTS|MEMORYCHECK_(?:COMMAND|COMMAND_OPTIONS|SANITIZER_OPTIONS|SUPPRESSIONS_FILE|TYPE)|NIGHTLY_START_TIME|P4_CLIENT|P4_COMMAND|P4_OPTIONS|P4_UPDATE_OPTIONS|RUN_CURRENT_SCRIPT|SCP_COMMAND|SITE|SOURCE_DIRECTORY|SUBMIT_URL|SVN_COMMAND|SVN_OPTIONS|SVN_UPDATE_OPTIONS|TEST_LOAD|TEST_TIMEOUT|TRIGGER_SITE|UPDATE_COMMAND|UPDATE_OPTIONS|UPDATE_VERSION_ONLY|USE_LAUNCHERS)|CYGWIN|ENV|EXECUTABLE_OUTPUT_PATH|GHS-MULTI|IOS|LIBRARY_OUTPUT_PATH|MINGW|MSVC(?:10|11|12|14|60|70|71|80|90|_IDE|_TOOLSET_VERSION|_VERSION)?|MSYS|PROJECT_(?:BINARY_DIR|DESCRIPTION|HOMEPAGE_URL|NAME|SOURCE_DIR|VERSION|VERSION_(?:MAJOR|MINOR|PATCH|TWEAK))|UNIX|WIN32|WINCE|WINDOWS_PHONE|WINDOWS_STORE|XCODE|XCODE_VERSION))\b/,property:/\b(?:cxx_\w+|(?:ARCHIVE_OUTPUT_(?:DIRECTORY|NAME)|COMPILE_DEFINITIONS|COMPILE_PDB_NAME|COMPILE_PDB_OUTPUT_DIRECTORY|EXCLUDE_FROM_DEFAULT_BUILD|IMPORTED_(?:IMPLIB|LIBNAME|LINK_DEPENDENT_LIBRARIES|LINK_INTERFACE_LANGUAGES|LINK_INTERFACE_LIBRARIES|LINK_INTERFACE_MULTIPLICITY|LOCATION|NO_SONAME|OBJECTS|SONAME)|INTERPROCEDURAL_OPTIMIZATION|LIBRARY_OUTPUT_DIRECTORY|LIBRARY_OUTPUT_NAME|LINK_FLAGS|LINK_INTERFACE_LIBRARIES|LINK_INTERFACE_MULTIPLICITY|LOCATION|MAP_IMPORTED_CONFIG|OSX_ARCHITECTURES|OUTPUT_NAME|PDB_NAME|PDB_OUTPUT_DIRECTORY|RUNTIME_OUTPUT_DIRECTORY|RUNTIME_OUTPUT_NAME|STATIC_LIBRARY_FLAGS|VS_CSHARP|VS_DOTNET_REFERENCEPROP|VS_DOTNET_REFERENCE|VS_GLOBAL_SECTION_POST|VS_GLOBAL_SECTION_PRE|VS_GLOBAL|XCODE_ATTRIBUTE)_\w+|\w+_(?:CLANG_TIDY|COMPILER_LAUNCHER|CPPCHECK|CPPLINT|INCLUDE_WHAT_YOU_USE|OUTPUT_NAME|POSTFIX|VISIBILITY_PRESET)|ABSTRACT|ADDITIONAL_MAKE_CLEAN_FILES|ADVANCED|ALIASED_TARGET|ALLOW_DUPLICATE_CUSTOM_TARGETS|ANDROID_(?:ANT_ADDITIONAL_OPTIONS|API|API_MIN|ARCH|ASSETS_DIRECTORIES|GUI|JAR_DEPENDENCIES|NATIVE_LIB_DEPENDENCIES|NATIVE_LIB_DIRECTORIES|PROCESS_MAX|PROGUARD|PROGUARD_CONFIG_PATH|SECURE_PROPS_PATH|SKIP_ANT_STEP|STL_TYPE)|ARCHIVE_OUTPUT_DIRECTORY|ATTACHED_FILES|ATTACHED_FILES_ON_FAIL|AUTOGEN_(?:BUILD_DIR|ORIGIN_DEPENDS|PARALLEL|SOURCE_GROUP|TARGETS_FOLDER|TARGET_DEPENDS)|AUTOMOC|AUTOMOC_(?:COMPILER_PREDEFINES|DEPEND_FILTERS|EXECUTABLE|MACRO_NAMES|MOC_OPTIONS|SOURCE_GROUP|TARGETS_FOLDER)|AUTORCC|AUTORCC_EXECUTABLE|AUTORCC_OPTIONS|AUTORCC_SOURCE_GROUP|AUTOUIC|AUTOUIC_EXECUTABLE|AUTOUIC_OPTIONS|AUTOUIC_SEARCH_PATHS|BINARY_DIR|BUILDSYSTEM_TARGETS|BUILD_RPATH|BUILD_RPATH_USE_ORIGIN|BUILD_WITH_INSTALL_NAME_DIR|BUILD_WITH_INSTALL_RPATH|BUNDLE|BUNDLE_EXTENSION|CACHE_VARIABLES|CLEAN_NO_CUSTOM|COMMON_LANGUAGE_RUNTIME|COMPATIBLE_INTERFACE_(?:BOOL|NUMBER_MAX|NUMBER_MIN|STRING)|COMPILE_(?:DEFINITIONS|FEATURES|FLAGS|OPTIONS|PDB_NAME|PDB_OUTPUT_DIRECTORY)|COST|CPACK_DESKTOP_SHORTCUTS|CPACK_NEVER_OVERWRITE|CPACK_PERMANENT|CPACK_STARTUP_SHORTCUTS|CPACK_START_MENU_SHORTCUTS|CPACK_WIX_ACL|CROSSCOMPILING_EMULATOR|CUDA_EXTENSIONS|CUDA_PTX_COMPILATION|CUDA_RESOLVE_DEVICE_SYMBOLS|CUDA_SEPARABLE_COMPILATION|CUDA_STANDARD|CUDA_STANDARD_REQUIRED|CXX_EXTENSIONS|CXX_STANDARD|CXX_STANDARD_REQUIRED|C_EXTENSIONS|C_STANDARD|C_STANDARD_REQUIRED|DEBUG_CONFIGURATIONS|DEFINE_SYMBOL|DEFINITIONS|DEPENDS|DEPLOYMENT_ADDITIONAL_FILES|DEPLOYMENT_REMOTE_DIRECTORY|DISABLED|DISABLED_FEATURES|ECLIPSE_EXTRA_CPROJECT_CONTENTS|ECLIPSE_EXTRA_NATURES|ENABLED_FEATURES|ENABLED_LANGUAGES|ENABLE_EXPORTS|ENVIRONMENT|EXCLUDE_FROM_ALL|EXCLUDE_FROM_DEFAULT_BUILD|EXPORT_NAME|EXPORT_PROPERTIES|EXTERNAL_OBJECT|EchoString|FAIL_REGULAR_EXPRESSION|FIND_LIBRARY_USE_LIB32_PATHS|FIND_LIBRARY_USE_LIB64_PATHS|FIND_LIBRARY_USE_LIBX32_PATHS|FIND_LIBRARY_USE_OPENBSD_VERSIONING|FIXTURES_CLEANUP|FIXTURES_REQUIRED|FIXTURES_SETUP|FOLDER|FRAMEWORK|Fortran_FORMAT|Fortran_MODULE_DIRECTORY|GENERATED|GENERATOR_FILE_NAME|GENERATOR_IS_MULTI_CONFIG|GHS_INTEGRITY_APP|GHS_NO_SOURCE_GROUP_FILE|GLOBAL_DEPENDS_DEBUG_MODE|GLOBAL_DEPENDS_NO_CYCLES|GNUtoMS|HAS_CXX|HEADER_FILE_ONLY|HELPSTRING|IMPLICIT_DEPENDS_INCLUDE_TRANSFORM|IMPORTED|IMPORTED_(?:COMMON_LANGUAGE_RUNTIME|CONFIGURATIONS|GLOBAL|IMPLIB|LIBNAME|LINK_DEPENDENT_LIBRARIES|LINK_INTERFACE_(?:LANGUAGES|LIBRARIES|MULTIPLICITY)|LOCATION|NO_SONAME|OBJECTS|SONAME)|IMPORT_PREFIX|IMPORT_SUFFIX|INCLUDE_DIRECTORIES|INCLUDE_REGULAR_EXPRESSION|INSTALL_NAME_DIR|INSTALL_RPATH|INSTALL_RPATH_USE_LINK_PATH|INTERFACE_(?:AUTOUIC_OPTIONS|COMPILE_DEFINITIONS|COMPILE_FEATURES|COMPILE_OPTIONS|INCLUDE_DIRECTORIES|LINK_DEPENDS|LINK_DIRECTORIES|LINK_LIBRARIES|LINK_OPTIONS|POSITION_INDEPENDENT_CODE|SOURCES|SYSTEM_INCLUDE_DIRECTORIES)|INTERPROCEDURAL_OPTIMIZATION|IN_TRY_COMPILE|IOS_INSTALL_COMBINED|JOB_POOLS|JOB_POOL_COMPILE|JOB_POOL_LINK|KEEP_EXTENSION|LABELS|LANGUAGE|LIBRARY_OUTPUT_DIRECTORY|LINKER_LANGUAGE|LINK_(?:DEPENDS|DEPENDS_NO_SHARED|DIRECTORIES|FLAGS|INTERFACE_LIBRARIES|INTERFACE_MULTIPLICITY|LIBRARIES|OPTIONS|SEARCH_END_STATIC|SEARCH_START_STATIC|WHAT_YOU_USE)|LISTFILE_STACK|LOCATION|MACOSX_BUNDLE|MACOSX_BUNDLE_INFO_PLIST|MACOSX_FRAMEWORK_INFO_PLIST|MACOSX_PACKAGE_LOCATION|MACOSX_RPATH|MACROS|MANUALLY_ADDED_DEPENDENCIES|MEASUREMENT|MODIFIED|NAME|NO_SONAME|NO_SYSTEM_FROM_IMPORTED|OBJECT_DEPENDS|OBJECT_OUTPUTS|OSX_ARCHITECTURES|OUTPUT_NAME|PACKAGES_FOUND|PACKAGES_NOT_FOUND|PARENT_DIRECTORY|PASS_REGULAR_EXPRESSION|PDB_NAME|PDB_OUTPUT_DIRECTORY|POSITION_INDEPENDENT_CODE|POST_INSTALL_SCRIPT|PREDEFINED_TARGETS_FOLDER|PREFIX|PRE_INSTALL_SCRIPT|PRIVATE_HEADER|PROCESSORS|PROCESSOR_AFFINITY|PROJECT_LABEL|PUBLIC_HEADER|REPORT_UNDEFINED_PROPERTIES|REQUIRED_FILES|RESOURCE|RESOURCE_LOCK|RULE_LAUNCH_COMPILE|RULE_LAUNCH_CUSTOM|RULE_LAUNCH_LINK|RULE_MESSAGES|RUNTIME_OUTPUT_DIRECTORY|RUN_SERIAL|SKIP_AUTOGEN|SKIP_AUTOMOC|SKIP_AUTORCC|SKIP_AUTOUIC|SKIP_BUILD_RPATH|SKIP_RETURN_CODE|SOURCES|SOURCE_DIR|SOVERSION|STATIC_LIBRARY_FLAGS|STATIC_LIBRARY_OPTIONS|STRINGS|SUBDIRECTORIES|SUFFIX|SYMBOLIC|TARGET_ARCHIVES_MAY_BE_SHARED_LIBS|TARGET_MESSAGES|TARGET_SUPPORTS_SHARED_LIBS|TESTS|TEST_INCLUDE_FILE|TEST_INCLUDE_FILES|TIMEOUT|TIMEOUT_AFTER_MATCH|TYPE|USE_FOLDERS|VALUE|VARIABLES|VERSION|VISIBILITY_INLINES_HIDDEN|VS_(?:CONFIGURATION_TYPE|COPY_TO_OUT_DIR|DEBUGGER_(?:COMMAND|COMMAND_ARGUMENTS|ENVIRONMENT|WORKING_DIRECTORY)|DEPLOYMENT_CONTENT|DEPLOYMENT_LOCATION|DOTNET_REFERENCES|DOTNET_REFERENCES_COPY_LOCAL|GLOBAL_KEYWORD|GLOBAL_PROJECT_TYPES|GLOBAL_ROOTNAMESPACE|INCLUDE_IN_VSIX|IOT_STARTUP_TASK|KEYWORD|RESOURCE_GENERATOR|SCC_AUXPATH|SCC_LOCALPATH|SCC_PROJECTNAME|SCC_PROVIDER|SDK_REFERENCES|SHADER_(?:DISABLE_OPTIMIZATIONS|ENABLE_DEBUG|ENTRYPOINT|FLAGS|MODEL|OBJECT_FILE_NAME|OUTPUT_HEADER_FILE|TYPE|VARIABLE_NAME)|STARTUP_PROJECT|TOOL_OVERRIDE|USER_PROPS|WINRT_COMPONENT|WINRT_EXTENSIONS|WINRT_REFERENCES|XAML_TYPE)|WILL_FAIL|WIN32_EXECUTABLE|WINDOWS_EXPORT_ALL_SYMBOLS|WORKING_DIRECTORY|WRAP_EXCLUDE|XCODE_(?:EMIT_EFFECTIVE_PLATFORM_NAME|EXPLICIT_FILE_TYPE|FILE_ATTRIBUTES|LAST_KNOWN_FILE_TYPE|PRODUCT_TYPE|SCHEME_(?:ADDRESS_SANITIZER|ADDRESS_SANITIZER_USE_AFTER_RETURN|ARGUMENTS|DISABLE_MAIN_THREAD_CHECKER|DYNAMIC_LIBRARY_LOADS|DYNAMIC_LINKER_API_USAGE|ENVIRONMENT|EXECUTABLE|GUARD_MALLOC|MAIN_THREAD_CHECKER_STOP|MALLOC_GUARD_EDGES|MALLOC_SCRIBBLE|MALLOC_STACK|THREAD_SANITIZER(?:_STOP)?|UNDEFINED_BEHAVIOUR_SANITIZER(?:_STOP)?|ZOMBIE_OBJECTS))|XCTEST)\b/,keyword:/\b(?:add_compile_definitions|add_compile_options|add_custom_command|add_custom_target|add_definitions|add_dependencies|add_executable|add_library|add_link_options|add_subdirectory|add_test|aux_source_directory|break|build_command|build_name|cmake_host_system_information|cmake_minimum_required|cmake_parse_arguments|cmake_policy|configure_file|continue|create_test_sourcelist|ctest_build|ctest_configure|ctest_coverage|ctest_empty_binary_directory|ctest_memcheck|ctest_read_custom_files|ctest_run_script|ctest_sleep|ctest_start|ctest_submit|ctest_test|ctest_update|ctest_upload|define_property|else|elseif|enable_language|enable_testing|endforeach|endfunction|endif|endmacro|endwhile|exec_program|execute_process|export|export_library_dependencies|file|find_file|find_library|find_package|find_path|find_program|fltk_wrap_ui|foreach|function|get_cmake_property|get_directory_property|get_filename_component|get_property|get_source_file_property|get_target_property|get_test_property|if|include|include_directories|include_external_msproject|include_guard|include_regular_expression|install|install_files|install_programs|install_targets|link_directories|link_libraries|list|load_cache|load_command|macro|make_directory|mark_as_advanced|math|message|option|output_required_files|project|qt_wrap_cpp|qt_wrap_ui|remove|remove_definitions|return|separate_arguments|set|set_directory_properties|set_property|set_source_files_properties|set_target_properties|set_tests_properties|site_name|source_group|string|subdir_depends|subdirs|target_compile_definitions|target_compile_features|target_compile_options|target_include_directories|target_link_directories|target_link_libraries|target_link_options|target_sources|try_compile|try_run|unset|use_mangled_mesa|utility_source|variable_requires|variable_watch|while|write_file)(?=\s*\()\b/,boolean:/\b(?:ON|OFF|TRUE|FALSE)\b/,namespace:/\b(?:PROPERTIES|SHARED|PRIVATE|STATIC|PUBLIC|INTERFACE|TARGET_OBJECTS)\b/,operator:/\b(?:NOT|AND|OR|MATCHES|LESS|GREATER|EQUAL|STRLESS|STRGREATER|STREQUAL|VERSION_LESS|VERSION_EQUAL|VERSION_GREATER|DEFINED)\b/,inserted:{pattern:/\b\w+::\w+\b/,alias:"class-name"},number:/\b\d+(?:\.\d+)*\b/,function:/\b[a-z_]\w*(?=\s*\()\b/i,punctuation:/[()>}]|\$[<{]/}}e.exports=t,t.displayName="cmake",t.aliases=[]},32762(e){"use strict";function t(e){e.languages.cobol={comment:{pattern:/\*>.*|(^[ \t]*)\*.*/m,lookbehind:!0,greedy:!0},string:{pattern:/[xzgn]?(?:"(?:[^\r\n"]|"")*"(?!")|'(?:[^\r\n']|'')*'(?!'))/i,greedy:!0},level:{pattern:/(^[ \t]*)\d+\b/m,lookbehind:!0,greedy:!0,alias:"number"},"class-name":{pattern:/(\bpic(?:ture)?\s+)(?:(?:[-\w$/,:*+<>]|\.(?!\s|$))(?:\(\d+\))?)+/i,lookbehind:!0,inside:{number:{pattern:/(\()\d+/,lookbehind:!0},punctuation:/[()]/}},keyword:{pattern:/(^|[^\w-])(?:ABORT|ACCEPT|ACCESS|ADD|ADDRESS|ADVANCING|AFTER|ALIGNED|ALL|ALPHABET|ALPHABETIC|ALPHABETIC-LOWER|ALPHABETIC-UPPER|ALPHANUMERIC|ALPHANUMERIC-EDITED|ALSO|ALTER|ALTERNATE|ANY|ARE|AREA|AREAS|AS|ASCENDING|ASCII|ASSIGN|ASSOCIATED-DATA|ASSOCIATED-DATA-LENGTH|AT|ATTRIBUTE|AUTHOR|AUTO|AUTO-SKIP|BACKGROUND-COLOR|BACKGROUND-COLOUR|BASIS|BEEP|BEFORE|BEGINNING|BELL|BINARY|BIT|BLANK|BLINK|BLOCK|BOUNDS|BOTTOM|BY|BYFUNCTION|BYTITLE|CALL|CANCEL|CAPABLE|CCSVERSION|CD|CF|CH|CHAINING|CHANGED|CHANNEL|CHARACTER|CHARACTERS|CLASS|CLASS-ID|CLOCK-UNITS|CLOSE|CLOSE-DISPOSITION|COBOL|CODE|CODE-SET|COLLATING|COL|COLUMN|COM-REG|COMMA|COMMITMENT|COMMON|COMMUNICATION|COMP|COMP-1|COMP-2|COMP-3|COMP-4|COMP-5|COMPUTATIONAL|COMPUTATIONAL-1|COMPUTATIONAL-2|COMPUTATIONAL-3|COMPUTATIONAL-4|COMPUTATIONAL-5|COMPUTE|CONFIGURATION|CONTAINS|CONTENT|CONTINUE|CONTROL|CONTROL-POINT|CONTROLS|CONVENTION|CONVERTING|COPY|CORR|CORRESPONDING|COUNT|CRUNCH|CURRENCY|CURSOR|DATA|DATA-BASE|DATE|DATE-COMPILED|DATE-WRITTEN|DAY|DAY-OF-WEEK|DBCS|DE|DEBUG-CONTENTS|DEBUG-ITEM|DEBUG-LINE|DEBUG-NAME|DEBUG-SUB-1|DEBUG-SUB-2|DEBUG-SUB-3|DEBUGGING|DECIMAL-POINT|DECLARATIVES|DEFAULT|DEFAULT-DISPLAY|DEFINITION|DELETE|DELIMITED|DELIMITER|DEPENDING|DESCENDING|DESTINATION|DETAIL|DFHRESP|DFHVALUE|DISABLE|DISK|DISPLAY|DISPLAY-1|DIVIDE|DIVISION|DONTCARE|DOUBLE|DOWN|DUPLICATES|DYNAMIC|EBCDIC|EGCS|EGI|ELSE|EMI|EMPTY-CHECK|ENABLE|END|END-ACCEPT|END-ADD|END-CALL|END-COMPUTE|END-DELETE|END-DIVIDE|END-EVALUATE|END-IF|END-MULTIPLY|END-OF-PAGE|END-PERFORM|END-READ|END-RECEIVE|END-RETURN|END-REWRITE|END-SEARCH|END-START|END-STRING|END-SUBTRACT|END-UNSTRING|END-WRITE|ENDING|ENTER|ENTRY|ENTRY-PROCEDURE|ENVIRONMENT|EOP|ERASE|ERROR|EOL|EOS|ESCAPE|ESI|EVALUATE|EVENT|EVERY|EXCEPTION|EXCLUSIVE|EXHIBIT|EXIT|EXPORT|EXTEND|EXTENDED|EXTERNAL|FD|FILE|FILE-CONTROL|FILLER|FINAL|FIRST|FOOTING|FOR|FOREGROUND-COLOR|FOREGROUND-COLOUR|FROM|FULL|FUNCTION|FUNCTIONNAME|FUNCTION-POINTER|GENERATE|GOBACK|GIVING|GLOBAL|GO|GRID|GROUP|HEADING|HIGHLIGHT|HIGH-VALUE|HIGH-VALUES|I-O|I-O-CONTROL|ID|IDENTIFICATION|IF|IMPLICIT|IMPORT|IN|INDEX|INDEXED|INDICATE|INITIAL|INITIALIZE|INITIATE|INPUT|INPUT-OUTPUT|INSPECT|INSTALLATION|INTEGER|INTO|INVALID|INVOKE|IS|JUST|JUSTIFIED|KANJI|KEPT|KEY|KEYBOARD|LABEL|LANGUAGE|LAST|LB|LD|LEADING|LEFT|LEFTLINE|LENGTH|LENGTH-CHECK|LIBACCESS|LIBPARAMETER|LIBRARY|LIMIT|LIMITS|LINAGE|LINAGE-COUNTER|LINE|LINES|LINE-COUNTER|LINKAGE|LIST|LOCAL|LOCAL-STORAGE|LOCK|LONG-DATE|LONG-TIME|LOWER|LOWLIGHT|LOW-VALUE|LOW-VALUES|MEMORY|MERGE|MESSAGE|MMDDYYYY|MODE|MODULES|MORE-LABELS|MOVE|MULTIPLE|MULTIPLY|NAMED|NATIONAL|NATIONAL-EDITED|NATIVE|NEGATIVE|NETWORK|NEXT|NO|NO-ECHO|NULL|NULLS|NUMBER|NUMERIC|NUMERIC-DATE|NUMERIC-EDITED|NUMERIC-TIME|OBJECT-COMPUTER|OCCURS|ODT|OF|OFF|OMITTED|ON|OPEN|OPTIONAL|ORDER|ORDERLY|ORGANIZATION|OTHER|OUTPUT|OVERFLOW|OVERLINE|OWN|PACKED-DECIMAL|PADDING|PAGE|PAGE-COUNTER|PASSWORD|PERFORM|PF|PH|PIC|PICTURE|PLUS|POINTER|POSITION|POSITIVE|PORT|PRINTER|PRINTING|PRIVATE|PROCEDURE|PROCEDURE-POINTER|PROCEDURES|PROCEED|PROCESS|PROGRAM|PROGRAM-ID|PROGRAM-LIBRARY|PROMPT|PURGE|QUEUE|QUOTE|QUOTES|RANDOM|READER|REMOTE|RD|REAL|READ|RECEIVE|RECEIVED|RECORD|RECORDING|RECORDS|RECURSIVE|REDEFINES|REEL|REF|REFERENCE|REFERENCES|RELATIVE|RELEASE|REMAINDER|REMARKS|REMOVAL|REMOVE|RENAMES|REPLACE|REPLACING|REPORT|REPORTING|REPORTS|REQUIRED|RERUN|RESERVE|REVERSE-VIDEO|RESET|RETURN|RETURN-CODE|RETURNING|REVERSED|REWIND|REWRITE|RF|RH|RIGHT|ROUNDED|RUN|SAME|SAVE|SCREEN|SD|SEARCH|SECTION|SECURE|SECURITY|SEGMENT|SEGMENT-LIMIT|SELECT|SEND|SENTENCE|SEPARATE|SEQUENCE|SEQUENTIAL|SET|SHARED|SHAREDBYALL|SHAREDBYRUNUNIT|SHARING|SHIFT-IN|SHIFT-OUT|SHORT-DATE|SIGN|SIZE|SORT|SORT-CONTROL|SORT-CORE-SIZE|SORT-FILE-SIZE|SORT-MERGE|SORT-MESSAGE|SORT-MODE-SIZE|SORT-RETURN|SOURCE|SOURCE-COMPUTER|SPACE|SPACES|SPECIAL-NAMES|STANDARD|STANDARD-1|STANDARD-2|START|STATUS|STOP|STRING|SUB-QUEUE-1|SUB-QUEUE-2|SUB-QUEUE-3|SUBTRACT|SUM|SUPPRESS|SYMBOL|SYMBOLIC|SYNC|SYNCHRONIZED|TABLE|TALLY|TALLYING|TASK|TAPE|TERMINAL|TERMINATE|TEST|TEXT|THEN|THREAD|THREAD-LOCAL|THROUGH|THRU|TIME|TIMER|TIMES|TITLE|TO|TODAYS-DATE|TODAYS-NAME|TOP|TRAILING|TRUNCATED|TYPE|TYPEDEF|UNDERLINE|UNIT|UNSTRING|UNTIL|UP|UPON|USAGE|USE|USING|VALUE|VALUES|VARYING|VIRTUAL|WAIT|WHEN|WHEN-COMPILED|WITH|WORDS|WORKING-STORAGE|WRITE|YEAR|YYYYMMDD|YYYYDDD|ZERO-FILL|ZEROS|ZEROES)(?![\w-])/i,lookbehind:!0},boolean:{pattern:/(^|[^\w-])(?:false|true)(?![\w-])/i,lookbehind:!0},number:{pattern:/(^|[^\w-])(?:[+-]?(?:(?:\d+(?:[.,]\d+)?|[.,]\d+)(?:e[+-]?\d+)?|zero))(?![\w-])/i,lookbehind:!0},operator:[/<>|[<>]=?|[=+*/&]/,{pattern:/(^|[^\w-])(?:-|and|equal|greater|less|not|or|than)(?![\w-])/i,lookbehind:!0}],punctuation:/[.:,()]/}}e.exports=t,t.displayName="cobol",t.aliases=[]},43576(e){"use strict";function t(e){var t,n,r;n=/#(?!\{).+/,r={pattern:/#\{[^}]+\}/,alias:"variable"},(t=e).languages.coffeescript=t.languages.extend("javascript",{comment:n,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:r}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),t.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:n,interpolation:r}}}),t.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:t.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:r}}]}),t.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete t.languages.coffeescript["template-string"],t.languages.coffee=t.languages.coffeescript}e.exports=t,t.displayName="coffeescript",t.aliases=["coffee"]},71794(e){"use strict";function t(e){e.languages.concurnas={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],langext:{pattern:/\b\w+\s*\|\|[\s\S]+?\|\|/,greedy:!0,alias:"string"},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/,lookbehind:!0},keyword:/\b(?:abstract|actor|also|annotation|assert|async|await|bool|boolean|break|byte|case|catch|changed|char|class|closed|constant|continue|def|default|del|double|elif|else|enum|every|extends|false|finally|float|for|from|global|gpudef|gpukernel|if|import|in|init|inject|int|lambda|local|long|loop|match|new|nodefault|null|of|onchange|open|out|override|package|parfor|parforsync|post|pre|private|protected|provide|provider|public|return|shared|short|single|size_t|sizeof|super|sync|this|throw|trait|trans|transient|true|try|typedef|unchecked|using|val|var|void|while|with)\b/,boolean:/\b(?:false|true)\b/,number:/\b0b[01][01_]*L?\b|\b0x(?:[\da-f_]*\.)?[\da-f_p+-]+\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfls]?/i,punctuation:/[{}[\];(),.:]/,operator:/<==|>==|=>|->|<-|<>|\^|&==|&<>|!|\?:?|\.\?|\+\+|--|[-+*/=<>]=?|\b(?:and|as|band|bor|bxor|comp|is|isnot|mod|or)\b=?/,annotation:{pattern:/@(?:\w+:)?(?:\w+|\[[^\]]+\])?/,alias:"builtin"}},e.languages.insertBefore("concurnas","langext",{string:{pattern:/[rs]?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:e.languages.concurnas},string:/[\s\S]+/}}}),e.languages.conc=e.languages.concurnas}e.exports=t,t.displayName="concurnas",t.aliases=["conc"]},1315(e){"use strict";function t(e){!function(e){for(var t=/\(\*(?:[^(*]|\((?!\*)|\*(?!\))|)*\*\)/.source,n=0;n<2;n++)t=t.replace(//g,function(){return t});t=t.replace(//g,"[]"),e.languages.coq={comment:RegExp(t),string:{pattern:/"(?:[^"]|"")*"(?!")/,greedy:!0},attribute:[{pattern:RegExp(/#\[(?:[^\]("]|"(?:[^"]|"")*"(?!")|\((?!\*)|)*\]/.source.replace(//g,function(){return t})),greedy:!0,alias:"attr-name",inside:{comment:RegExp(t),string:{pattern:/"(?:[^"]|"")*"(?!")/,greedy:!0},operator:/=/,punctuation:/^#\[|\]$|[,()]/}},{pattern:/\b(?:Cumulative|Global|Local|Monomorphic|NonCumulative|Polymorphic|Private|Program)\b/,alias:"attr-name"}],keyword:/\b(?:_|Abort|About|Add|Admit|Admitted|All|apply|Arguments|as|As|Assumptions|at|Axiom|Axioms|Back|BackTo|Backtrace|Bind|BinOp|BinOpSpec|BinRel|Blacklist|by|Canonical|Case|Cd|Check|Class|Classes|Close|Coercion|Coercions|cofix|CoFixpoint|CoInductive|Collection|Combined|Compute|Conjecture|Conjectures|Constant|Constants|Constraint|Constructors|Context|Corollary|Create|CstOp|Custom|Cut|Debug|Declare|Defined|Definition|Delimit|Dependencies|Dependent|Derive|Diffs|Drop|Elimination|else|end|End|Entry|Equality|Eval|Example|Existential|Existentials|Existing|exists|exists2|Export|Extern|Extraction|Fact|Fail|Field|File|Firstorder|fix|Fixpoint|Flags|Focus|for|forall|From|fun|Funclass|Function|Functional|GC|Generalizable|Goal|Grab|Grammar|Graph|Guarded|Haskell|Heap|Hide|Hint|HintDb|Hints|Hypotheses|Hypothesis|Identity|if|IF|Immediate|Implicit|Implicits|Import|in|Include|Induction|Inductive|Infix|Info|Initial|InjTyp|Inline|Inspect|Instance|Instances|Intro|Intros|Inversion|Inversion_clear|JSON|Language|Left|Lemma|let|Let|Lia|Libraries|Library|Load|LoadPath|Locate|Ltac|Ltac2|match|Match|measure|Method|Minimality|ML|Module|Modules|Morphism|move|Next|NoInline|Notation|Number|Obligation|Obligations|OCaml|Opaque|Open|Optimize|Parameter|Parameters|Parametric|Path|Paths|Prenex|Preterm|Primitive|Print|Profile|Projections|Proof|Prop|PropBinOp|Property|PropOp|Proposition|PropUOp|Pwd|Qed|Quit|Rec|Record|Recursive|Redirect|Reduction|Register|Relation|Remark|Remove|removed|Require|Reserved|Reset|Resolve|Restart|return|Rewrite|Right|Ring|Rings|Saturate|Save|Scheme|Scope|Scopes|Search|SearchHead|SearchPattern|SearchRewrite|Section|Separate|Set|Setoid|Show|Signatures|Solve|Solver|Sort|Sortclass|Sorted|Spec|SProp|Step|Strategies|Strategy|String|struct|Structure|SubClass|Subgraph|SuchThat|Tactic|Term|TestCompile|then|Theorem|Time|Timeout|To|Transparent|Type|Typeclasses|Types|Typing|Undelimit|Undo|Unfocus|Unfocused|Unfold|Universe|Universes|UnOp|UnOpSpec|Unshelve|using|Variable|Variables|Variant|Verbose|View|Visibility|wf|where|with|Zify)\b/,number:/\b(?:0x[a-f0-9][a-f0-9_]*(?:\.[a-f0-9_]+)?(?:p[+-]?\d[\d_]*)?|\d[\d_]*(?:\.[\d_]+)?(?:e[+-]?\d[\d_]*)?)\b/i,punct:{pattern:/@\{|\{\||\[=|:>/,alias:"punctuation"},operator:/\/\\|\\\/|\.{2,3}|:{1,2}=|\*\*|[-=]>|<(?:->?|[+:=>]|<:)|>(?:=|->)|\|[-|]?|[-!%&*+/<=>?@^~']/,punctuation:/\.\(|`\(|@\{|`\{|\{\||\[=|:>|[:.,;(){}\[\]]/}}(e)}e.exports=t,t.displayName="coq",t.aliases=[]},80096(e,t,n){"use strict";var r=n(65806);function i(e){var t,n,i;e.register(r),t=e,n=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char8_t|char16_t|char32_t|class|compl|concept|const|consteval|constexpr|constinit|const_cast|continue|co_await|co_return|co_yield|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,i=/\b(?!)\w+(?:\s*\.\s*\w+)*\b/.source.replace(//g,function(){return n.source}),t.languages.cpp=t.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!)\w+/.source.replace(//g,function(){return n.source})),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:n,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:true|false)\b/}),t.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:module|import)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/(?:\s*:\s*)?|:\s*/.source.replace(//g,function(){return i})+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),t.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b[a-z_]\w*\s*<(?:[^<>]|<(?:[^<>])*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:t.languages.cpp}}}}),t.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),t.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:t.languages.extend("cpp",{})}}),t.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},t.languages.cpp["base-clause"])}e.exports=i,i.displayName="cpp",i.aliases=[]},99176(e,t,n){"use strict";var r=n(56939);function i(e){var t;e.register(r),(t=e).languages.crystal=t.languages.extend("ruby",{keyword:[/\b(?:abstract|alias|as|asm|begin|break|case|class|def|do|else|elsif|end|ensure|enum|extend|for|fun|if|include|instance_sizeof|lib|macro|module|next|of|out|pointerof|private|protected|rescue|return|require|select|self|sizeof|struct|super|then|type|typeof|uninitialized|union|unless|until|when|while|with|yield|__DIR__|__END_LINE__|__FILE__|__LINE__)\b/,{pattern:/(\.\s*)(?:is_a|responds_to)\?/,lookbehind:!0}],number:/\b(?:0b[01_]*[01]|0o[0-7_]*[0-7]|0x[\da-fA-F_]*[\da-fA-F]|(?:\d(?:[\d_]*\d)?)(?:\.[\d_]*\d)?(?:[eE][+-]?[\d_]*\d)?)(?:_(?:[uif](?:8|16|32|64))?)?\b/}),t.languages.insertBefore("crystal","string",{attribute:{pattern:/@\[.+?\]/,alias:"attr-name",inside:{delimiter:{pattern:/^@\[|\]$/,alias:"tag"},rest:t.languages.crystal}},expansion:[{pattern:/\{\{.+?\}\}/,inside:{delimiter:{pattern:/^\{\{|\}\}$/,alias:"tag"},rest:t.languages.crystal}},{pattern:/\{%.+?%\}/,inside:{delimiter:{pattern:/^\{%|%\}$/,alias:"tag"},rest:t.languages.crystal}}]})}e.exports=i,i.displayName="crystal",i.aliases=[]},61958(e){"use strict";function t(e){!function(e){function t(e,t){return e.replace(/<<(\d+)>>/g,function(e,n){return"(?:"+t[+n]+")"})}function n(e,n,r){return RegExp(t(e,n),r||"")}function r(e,t){for(var n=0;n>/g,function(){return"(?:"+e+")"});return e.replace(/<>/g,"[^\\s\\S]")}var i={type:"bool byte char decimal double dynamic float int long object sbyte short string uint ulong ushort var void",typeDeclaration:"class enum interface struct",contextual:"add alias and ascending async await by descending from get global group into join let nameof not notnull on or orderby partial remove select set unmanaged value when where",other:"abstract as base break case catch checked const continue default delegate do else event explicit extern finally fixed for foreach goto if implicit in internal is lock namespace new null operator out override params private protected public readonly ref return sealed sizeof stackalloc static switch this throw try typeof unchecked unsafe using virtual volatile while yield"};function a(e){return"\\b(?:"+e.trim().replace(/ /g,"|")+")\\b"}var o=a(i.typeDeclaration),s=RegExp(a(i.type+" "+i.typeDeclaration+" "+i.contextual+" "+i.other)),u=a(i.typeDeclaration+" "+i.contextual+" "+i.other),c=a(i.type+" "+i.typeDeclaration+" "+i.other),l=r(/<(?:[^<>;=+\-*/%&|^]|<>)*>/.source,2),f=r(/\((?:[^()]|<>)*\)/.source,2),d=/@?\b[A-Za-z_]\w*\b/.source,h=t(/<<0>>(?:\s*<<1>>)?/.source,[d,l]),p=t(/(?!<<0>>)<<1>>(?:\s*\.\s*<<1>>)*/.source,[u,h]),b=/\[\s*(?:,\s*)*\]/.source,m=t(/<<0>>(?:\s*(?:\?\s*)?<<1>>)*(?:\s*\?)?/.source,[p,b]),g=t(/[^,()<>[\];=+\-*/%&|^]|<<0>>|<<1>>|<<2>>/.source,[l,f,b]),v=t(/\(<<0>>+(?:,<<0>>+)+\)/.source,[g]),y=t(/(?:<<0>>|<<1>>)(?:\s*(?:\?\s*)?<<2>>)*(?:\s*\?)?/.source,[v,p,b]),w={keyword:s,punctuation:/[<>()?,.:[\]]/},_=/'(?:[^\r\n'\\]|\\.|\\[Uux][\da-fA-F]{1,8})'/.source,E=/"(?:\\.|[^\\"\r\n])*"/.source,S=/@"(?:""|\\[\s\S]|[^\\"])*"(?!")/.source;e.languages.csharp=e.languages.extend("clike",{string:[{pattern:n(/(^|[^$\\])<<0>>/.source,[S]),lookbehind:!0,greedy:!0},{pattern:n(/(^|[^@$\\])<<0>>/.source,[E]),lookbehind:!0,greedy:!0},{pattern:RegExp(_),greedy:!0,alias:"character"}],"class-name":[{pattern:n(/(\busing\s+static\s+)<<0>>(?=\s*;)/.source,[p]),lookbehind:!0,inside:w},{pattern:n(/(\busing\s+<<0>>\s*=\s*)<<1>>(?=\s*;)/.source,[d,y]),lookbehind:!0,inside:w},{pattern:n(/(\busing\s+)<<0>>(?=\s*=)/.source,[d]),lookbehind:!0},{pattern:n(/(\b<<0>>\s+)<<1>>/.source,[o,h]),lookbehind:!0,inside:w},{pattern:n(/(\bcatch\s*\(\s*)<<0>>/.source,[p]),lookbehind:!0,inside:w},{pattern:n(/(\bwhere\s+)<<0>>/.source,[d]),lookbehind:!0},{pattern:n(/(\b(?:is(?:\s+not)?|as)\s+)<<0>>/.source,[m]),lookbehind:!0,inside:w},{pattern:n(/\b<<0>>(?=\s+(?!<<1>>)<<2>>(?:\s*[=,;:{)\]]|\s+(?:in|when)\b))/.source,[y,c,d]),inside:w}],keyword:s,number:/(?:\b0(?:x[\da-f_]*[\da-f]|b[01_]*[01])|(?:\B\.\d+(?:_+\d+)*|\b\d+(?:_+\d+)*(?:\.\d+(?:_+\d+)*)?)(?:e[-+]?\d+(?:_+\d+)*)?)(?:ul|lu|[dflmu])?\b/i,operator:/>>=?|<<=?|[-=]>|([-+&|])\1|~|\?\?=?|[-+*/%&|^!=<>]=?/,punctuation:/\?\.?|::|[{}[\];(),.:]/}),e.languages.insertBefore("csharp","number",{range:{pattern:/\.\./,alias:"operator"}}),e.languages.insertBefore("csharp","punctuation",{"named-parameter":{pattern:n(/([(,]\s*)<<0>>(?=\s*:)/.source,[d]),lookbehind:!0,alias:"punctuation"}}),e.languages.insertBefore("csharp","class-name",{namespace:{pattern:n(/(\b(?:namespace|using)\s+)<<0>>(?:\s*\.\s*<<0>>)*(?=\s*[;{])/.source,[d]),lookbehind:!0,inside:{punctuation:/\./}},"type-expression":{pattern:n(/(\b(?:default|typeof|sizeof)\s*\(\s*(?!\s))(?:[^()\s]|\s(?!\s)|<<0>>)*(?=\s*\))/.source,[f]),lookbehind:!0,alias:"class-name",inside:w},"return-type":{pattern:n(/<<0>>(?=\s+(?:<<1>>\s*(?:=>|[({]|\.\s*this\s*\[)|this\s*\[))/.source,[y,p]),inside:w,alias:"class-name"},"constructor-invocation":{pattern:n(/(\bnew\s+)<<0>>(?=\s*[[({])/.source,[y]),lookbehind:!0,inside:w,alias:"class-name"},"generic-method":{pattern:n(/<<0>>\s*<<1>>(?=\s*\()/.source,[d,l]),inside:{function:n(/^<<0>>/.source,[d]),generic:{pattern:RegExp(l),alias:"class-name",inside:w}}},"type-list":{pattern:n(/\b((?:<<0>>\s+<<1>>|where\s+<<2>>)\s*:\s*)(?:<<3>>|<<4>>)(?:\s*,\s*(?:<<3>>|<<4>>))*(?=\s*(?:where|[{;]|=>|$))/.source,[o,h,d,y,s.source]),lookbehind:!0,inside:{keyword:s,"class-name":{pattern:RegExp(y),greedy:!0,inside:w},punctuation:/,/}},preprocessor:{pattern:/(^[\t ]*)#.*/m,lookbehind:!0,alias:"property",inside:{directive:{pattern:/(#)\b(?:define|elif|else|endif|endregion|error|if|line|pragma|region|undef|warning)\b/,lookbehind:!0,alias:"keyword"}}}});var k=E+"|"+_,x=t(/\/(?![*/])|\/\/[^\r\n]*[\r\n]|\/\*(?:[^*]|\*(?!\/))*\*\/|<<0>>/.source,[k]),T=r(t(/[^"'/()]|<<0>>|\(<>*\)/.source,[x]),2),M=/\b(?:assembly|event|field|method|module|param|property|return|type)\b/.source,O=t(/<<0>>(?:\s*\(<<1>>*\))?/.source,[p,T]);e.languages.insertBefore("csharp","class-name",{attribute:{pattern:n(/((?:^|[^\s\w>)?])\s*\[\s*)(?:<<0>>\s*:\s*)?<<1>>(?:\s*,\s*<<1>>)*(?=\s*\])/.source,[M,O]),lookbehind:!0,greedy:!0,inside:{target:{pattern:n(/^<<0>>(?=\s*:)/.source,[M]),alias:"keyword"},"attribute-arguments":{pattern:n(/\(<<0>>*\)/.source,[T]),inside:e.languages.csharp},"class-name":{pattern:RegExp(p),inside:{punctuation:/\./}},punctuation:/[:,]/}}});var A=/:[^}\r\n]+/.source,L=r(t(/[^"'/()]|<<0>>|\(<>*\)/.source,[x]),2),C=t(/\{(?!\{)(?:(?![}:])<<0>>)*<<1>>?\}/.source,[L,A]),I=r(t(/[^"'/()]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|<<0>>|\(<>*\)/.source,[k]),2),D=t(/\{(?!\{)(?:(?![}:])<<0>>)*<<1>>?\}/.source,[I,A]);function N(t,r){return{interpolation:{pattern:n(/((?:^|[^{])(?:\{\{)*)<<0>>/.source,[t]),lookbehind:!0,inside:{"format-string":{pattern:n(/(^\{(?:(?![}:])<<0>>)*)<<1>>(?=\}$)/.source,[r,A]),lookbehind:!0,inside:{punctuation:/^:/}},punctuation:/^\{|\}$/,expression:{pattern:/[\s\S]+/,alias:"language-csharp",inside:e.languages.csharp}}},string:/[\s\S]+/}}e.languages.insertBefore("csharp","string",{"interpolation-string":[{pattern:n(/(^|[^\\])(?:\$@|@\$)"(?:""|\\[\s\S]|\{\{|<<0>>|[^\\{"])*"/.source,[C]),lookbehind:!0,greedy:!0,inside:N(C,L)},{pattern:n(/(^|[^@\\])\$"(?:\\.|\{\{|<<0>>|[^\\"{])*"/.source,[D]),lookbehind:!0,greedy:!0,inside:N(D,I)}]})}(e),e.languages.dotnet=e.languages.cs=e.languages.csharp}e.exports=t,t.displayName="csharp",t.aliases=["dotnet","cs"]},65447(e){"use strict";function t(e){e.languages.csp={directive:{pattern:/(^|[^-\da-z])(?:base-uri|block-all-mixed-content|(?:child|connect|default|font|frame|img|manifest|media|object|prefetch|script|style|worker)-src|disown-opener|form-action|frame-(?:ancestors|options)|input-protection(?:-(?:clip|selectors))?|navigate-to|plugin-types|policy-uri|referrer|reflected-xss|report-(?:to|uri)|require-sri-for|sandbox|(?:script|style)-src-(?:attr|elem)|upgrade-insecure-requests)(?=[^-\da-z]|$)/i,lookbehind:!0,alias:"keyword"},safe:{pattern:/'(?:deny|none|report-sample|self|strict-dynamic|top-only|(?:nonce|sha(?:256|384|512))-[-+/\w=]+)'/i,alias:"selector"},unsafe:{pattern:/(?:'unsafe-(?:allow-redirects|dynamic|eval|hash-attributes|hashed-attributes|hashes|inline)'|\*)/i,alias:"function"}}}e.exports=t,t.displayName="csp",t.aliases=[]},4762(e){"use strict";function t(e){var t,n,r,i,a;r=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,(t=e).languages.css.selector={pattern:t.languages.css.selector.pattern,lookbehind:!0,inside:n={"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+/,class:/\.[-\w]+/,id:/#[-\w]+/,attribute:{pattern:RegExp("\\[(?:[^[\\]\"']|"+r.source+")*\\]"),greedy:!0,inside:{punctuation:/^\[|\]$/,"case-sensitivity":{pattern:/(\s)[si]$/i,lookbehind:!0,alias:"keyword"},namespace:{pattern:/^(\s*)(?:(?!\s)[-*\w\xA0-\uFFFF])*\|(?!=)/,lookbehind:!0,inside:{punctuation:/\|$/}},"attr-name":{pattern:/^(\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+/,lookbehind:!0},"attr-value":[r,{pattern:/(=\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+(?=\s*$)/,lookbehind:!0}],operator:/[|~*^$]?=/}},"n-th":[{pattern:/(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/,lookbehind:!0,inside:{number:/[\dn]+/,operator:/[+-]/}},{pattern:/(\(\s*)(?:even|odd)(?=\s*\))/i,lookbehind:!0}],combinator:/>|\+|~|\|\|/,punctuation:/[(),]/}},t.languages.css.atrule.inside["selector-function-argument"].inside=n,t.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}}),i={pattern:/(\b\d+)(?:%|[a-z]+\b)/,lookbehind:!0},a={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0},t.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[/\b(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\b/i,{pattern:/\b(?:rgb|hsl)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:rgb|hsl)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:i,number:a,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:i,number:a})}e.exports=t,t.displayName="cssExtras",t.aliases=[]},12049(e){"use strict";function t(e){var t,n,r;n=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/,(t=e).languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/,inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+n.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+n.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+n.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:n,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},t.languages.css.atrule.inside.rest=t.languages.css,(r=t.languages.markup)&&(r.tag.addInlined("style","css"),r.tag.addAttribute("style","css"))}e.exports=t,t.displayName="css",t.aliases=[]},78090(e){"use strict";function t(e){e.languages.csv={value:/[^\r\n,"]+|"(?:[^"]|"")*"(?!")/,punctuation:/,/}}e.exports=t,t.displayName="csv",t.aliases=[]},40315(e){"use strict";function t(e){e.languages.cypher={comment:/\/\/.*/,string:{pattern:/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/,greedy:!0},"class-name":{pattern:/(:\s*)(?:\w+|`(?:[^`\\\r\n])*`)(?=\s*[{):])/,lookbehind:!0,greedy:!0},relationship:{pattern:/(-\[\s*(?:\w+\s*|`(?:[^`\\\r\n])*`\s*)?:\s*|\|\s*:\s*)(?:\w+|`(?:[^`\\\r\n])*`)/,lookbehind:!0,greedy:!0,alias:"property"},identifier:{pattern:/`(?:[^`\\\r\n])*`/,greedy:!0,alias:"symbol"},variable:/\$\w+/,keyword:/\b(?:ADD|ALL|AND|AS|ASC|ASCENDING|ASSERT|BY|CALL|CASE|COMMIT|CONSTRAINT|CONTAINS|CREATE|CSV|DELETE|DESC|DESCENDING|DETACH|DISTINCT|DO|DROP|ELSE|END|ENDS|EXISTS|FOR|FOREACH|IN|INDEX|IS|JOIN|KEY|LIMIT|LOAD|MANDATORY|MATCH|MERGE|NODE|NOT|OF|ON|OPTIONAL|OR|ORDER(?=\s+BY)|PERIODIC|REMOVE|REQUIRE|RETURN|SCALAR|SCAN|SET|SKIP|START|STARTS|THEN|UNION|UNIQUE|UNWIND|USING|WHEN|WHERE|WITH|XOR|YIELD)\b/i,function:/\b\w+\b(?=\s*\()/,boolean:/\b(?:true|false|null)\b/i,number:/\b(?:0x[\da-fA-F]+|\d+(?:\.\d+)?(?:[eE][+-]?\d+)?)\b/,operator:/:|<--?|--?>?|<>|=~?|[<>]=?|[+*/%^|]|\.\.\.?/,punctuation:/[()[\]{},;.]/}}e.exports=t,t.displayName="cypher",t.aliases=[]},7902(e){"use strict";function t(e){e.languages.d=e.languages.extend("clike",{comment:[{pattern:/^\s*#!.+/,greedy:!0},{pattern:RegExp(/(^|[^\\])/.source+"(?:"+[/\/\+(?:\/\+(?:[^+]|\+(?!\/))*\+\/|(?!\/\+)[\s\S])*?\+\//.source,/\/\/.*/.source,/\/\*[\s\S]*?\*\//.source].join("|")+")"),lookbehind:!0,greedy:!0}],string:[{pattern:RegExp([/\b[rx]"(?:\\[\s\S]|[^\\"])*"[cwd]?/.source,/\bq"(?:\[[\s\S]*?\]|\([\s\S]*?\)|<[\s\S]*?>|\{[\s\S]*?\})"/.source,/\bq"((?!\d)\w+)$[\s\S]*?^\1"/.source,/\bq"(.)[\s\S]*?\2"/.source,/'(?:\\(?:\W|\w+)|[^\\])'/.source,/(["`])(?:\\[\s\S]|(?!\3)[^\\])*\3[cwd]?/.source].join("|"),"m"),greedy:!0},{pattern:/\bq\{(?:\{[^{}]*\}|[^{}])*\}/,greedy:!0,alias:"token-string"}],keyword:/\$|\b(?:abstract|alias|align|asm|assert|auto|body|bool|break|byte|case|cast|catch|cdouble|cent|cfloat|char|class|const|continue|creal|dchar|debug|default|delegate|delete|deprecated|do|double|else|enum|export|extern|false|final|finally|float|for|foreach|foreach_reverse|function|goto|idouble|if|ifloat|immutable|import|inout|int|interface|invariant|ireal|lazy|long|macro|mixin|module|new|nothrow|null|out|override|package|pragma|private|protected|public|pure|real|ref|return|scope|shared|short|static|struct|super|switch|synchronized|template|this|throw|true|try|typedef|typeid|typeof|ubyte|ucent|uint|ulong|union|unittest|ushort|version|void|volatile|wchar|while|with|__(?:(?:FILE|MODULE|LINE|FUNCTION|PRETTY_FUNCTION|DATE|EOF|TIME|TIMESTAMP|VENDOR|VERSION)__|gshared|traits|vector|parameters)|string|wstring|dstring|size_t|ptrdiff_t)\b/,number:[/\b0x\.?[a-f\d_]+(?:(?!\.\.)\.[a-f\d_]*)?(?:p[+-]?[a-f\d_]+)?[ulfi]{0,4}/i,{pattern:/((?:\.\.)?)(?:\b0b\.?|\b|\.)\d[\d_]*(?:(?!\.\.)\.[\d_]*)?(?:e[+-]?\d[\d_]*)?[ulfi]{0,4}/i,lookbehind:!0}],operator:/\|[|=]?|&[&=]?|\+[+=]?|-[-=]?|\.?\.\.|=[>=]?|!(?:i[ns]\b|<>?=?|>=?|=)?|\bi[ns]\b|(?:<[<>]?|>>?>?|\^\^|[*\/%^~])=?/}),e.languages.insertBefore("d","keyword",{property:/\B@\w*/}),e.languages.insertBefore("d","function",{register:{pattern:/\b(?:[ABCD][LHX]|E[ABCD]X|E?(?:BP|SP|DI|SI)|[ECSDGF]S|CR[0234]|DR[012367]|TR[3-7]|X?MM[0-7]|R[ABCD]X|[BS]PL|R[BS]P|[DS]IL|R[DS]I|R(?:[89]|1[0-5])[BWD]?|XMM(?:[89]|1[0-5])|YMM(?:1[0-5]|\d))\b|\bST(?:\([0-7]\)|\b)/,alias:"variable"}})}e.exports=t,t.displayName="d",t.aliases=[]},28651(e){"use strict";function t(e){var t,n,r,i;t=e,n=[/\b(?:async|sync|yield)\*/,/\b(?:abstract|assert|async|await|break|case|catch|class|const|continue|covariant|default|deferred|do|dynamic|else|enum|export|extension|external|extends|factory|final|finally|for|get|hide|if|implements|interface|import|in|library|mixin|new|null|on|operator|part|rethrow|return|set|show|static|super|switch|sync|this|throw|try|typedef|var|void|while|with|yield)\b/],i={pattern:RegExp((r=/(^|[^\w.])(?:[a-z]\w*\s*\.\s*)*(?:[A-Z]\w*\s*\.\s*)*/.source)+/[A-Z](?:[\d_A-Z]*[a-z]\w*)?\b/.source),lookbehind:!0,inside:{namespace:{pattern:/^[a-z]\w*(?:\s*\.\s*[a-z]\w*)*(?:\s*\.)?/,inside:{punctuation:/\./}}}},t.languages.dart=t.languages.extend("clike",{string:[{pattern:/r?("""|''')[\s\S]*?\1/,greedy:!0},{pattern:/r?(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0}],"class-name":[i,{pattern:RegExp(r+/[A-Z]\w*(?=\s+\w+\s*[;,=()])/.source),lookbehind:!0,inside:i.inside}],keyword:n,operator:/\bis!|\b(?:as|is)\b|\+\+|--|&&|\|\||<<=?|>>=?|~(?:\/=?)?|[+\-*\/%&^|=!<>]=?|\?/}),t.languages.insertBefore("dart","function",{metadata:{pattern:/@\w+/,alias:"symbol"}}),t.languages.insertBefore("dart","class-name",{generics:{pattern:/<(?:[\w\s,.&?]|<(?:[\w\s,.&?]|<(?:[\w\s,.&?]|<[\w\s,.&?]*>)*>)*>)*>/,inside:{"class-name":i,keyword:n,punctuation:/[<>(),.:]/,operator:/[?&|]/}}})}e.exports=t,t.displayName="dart",t.aliases=[]},55579(e){"use strict";function t(e){var t;(t=e).languages.dataweave={url:/\b[A-Za-z]+:\/\/[\w/:.?=&-]+|\burn:[\w:.?=&-]+/,property:{pattern:/(?:\b\w+#)?(?:"(?:\\.|[^\\"\r\n])*"|\b\w+)(?=\s*[:@])/,greedy:!0},string:{pattern:/(["'`])(?:\\[\s\S]|(?!\1)[^\\])*\1/,greedy:!0},"mime-type":/\b(?:text|audio|video|application|multipart|image)\/[\w+-]+/,date:{pattern:/\|[\w:+-]+\|/,greedy:!0},comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],regex:{pattern:/\/(?:[^\\\/\r\n]|\\[^\r\n])+\//,greedy:!0},function:/\b[A-Z_]\w*(?=\s*\()/i,number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\];(),.:@]/,operator:/<<|>>|->|[<>~=]=?|!=|--?-?|\+\+?|!|\?/,boolean:/\b(?:true|false)\b/,keyword:/\b(?:match|input|output|ns|type|update|null|if|else|using|unless|at|is|as|case|do|fun|var|not|and|or)\b/}}e.exports=t,t.displayName="dataweave",t.aliases=[]},93685(e){"use strict";function t(e){e.languages.dax={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/).*)/,lookbehind:!0},"data-field":{pattern:/'(?:[^']|'')*'(?!')(?:\[[ \w\xA0-\uFFFF]+\])?|\w+\[[ \w\xA0-\uFFFF]+\]/,alias:"symbol"},measure:{pattern:/\[[ \w\xA0-\uFFFF]+\]/,alias:"constant"},string:{pattern:/"(?:[^"]|"")*"(?!")/,greedy:!0},function:/\b(?:ABS|ACOS|ACOSH|ACOT|ACOTH|ADDCOLUMNS|ADDMISSINGITEMS|ALL|ALLCROSSFILTERED|ALLEXCEPT|ALLNOBLANKROW|ALLSELECTED|AND|APPROXIMATEDISTINCTCOUNT|ASIN|ASINH|ATAN|ATANH|AVERAGE|AVERAGEA|AVERAGEX|BETA\.DIST|BETA\.INV|BLANK|CALCULATE|CALCULATETABLE|CALENDAR|CALENDARAUTO|CEILING|CHISQ\.DIST|CHISQ\.DIST\.RT|CHISQ\.INV|CHISQ\.INV\.RT|CLOSINGBALANCEMONTH|CLOSINGBALANCEQUARTER|CLOSINGBALANCEYEAR|COALESCE|COMBIN|COMBINA|COMBINEVALUES|CONCATENATE|CONCATENATEX|CONFIDENCE\.NORM|CONFIDENCE\.T|CONTAINS|CONTAINSROW|CONTAINSSTRING|CONTAINSSTRINGEXACT|CONVERT|COS|COSH|COT|COTH|COUNT|COUNTA|COUNTAX|COUNTBLANK|COUNTROWS|COUNTX|CROSSFILTER|CROSSJOIN|CURRENCY|CURRENTGROUP|CUSTOMDATA|DATATABLE|DATE|DATEADD|DATEDIFF|DATESBETWEEN|DATESINPERIOD|DATESMTD|DATESQTD|DATESYTD|DATEVALUE|DAY|DEGREES|DETAILROWS|DISTINCT|DISTINCTCOUNT|DISTINCTCOUNTNOBLANK|DIVIDE|EARLIER|EARLIEST|EDATE|ENDOFMONTH|ENDOFQUARTER|ENDOFYEAR|EOMONTH|ERROR|EVEN|EXACT|EXCEPT|EXP|EXPON\.DIST|FACT|FALSE|FILTER|FILTERS|FIND|FIRSTDATE|FIRSTNONBLANK|FIRSTNONBLANKVALUE|FIXED|FLOOR|FORMAT|GCD|GENERATE|GENERATEALL|GENERATESERIES|GEOMEAN|GEOMEANX|GROUPBY|HASONEFILTER|HASONEVALUE|HOUR|IF|IF\.EAGER|IFERROR|IGNORE|INT|INTERSECT|ISBLANK|ISCROSSFILTERED|ISEMPTY|ISERROR|ISEVEN|ISFILTERED|ISINSCOPE|ISLOGICAL|ISNONTEXT|ISNUMBER|ISO\.CEILING|ISODD|ISONORAFTER|ISSELECTEDMEASURE|ISSUBTOTAL|ISTEXT|KEEPFILTERS|KEYWORDMATCH|LASTDATE|LASTNONBLANK|LASTNONBLANKVALUE|LCM|LEFT|LEN|LN|LOG|LOG10|LOOKUPVALUE|LOWER|MAX|MAXA|MAXX|MEDIAN|MEDIANX|MID|MIN|MINA|MINUTE|MINX|MOD|MONTH|MROUND|NATURALINNERJOIN|NATURALLEFTOUTERJOIN|NEXTDAY|NEXTMONTH|NEXTQUARTER|NEXTYEAR|NONVISUAL|NORM\.DIST|NORM\.INV|NORM\.S\.DIST|NORM\.S\.INV|NOT|NOW|ODD|OPENINGBALANCEMONTH|OPENINGBALANCEQUARTER|OPENINGBALANCEYEAR|OR|PARALLELPERIOD|PATH|PATHCONTAINS|PATHITEM|PATHITEMREVERSE|PATHLENGTH|PERCENTILE\.EXC|PERCENTILE\.INC|PERCENTILEX\.EXC|PERCENTILEX\.INC|PERMUT|PI|POISSON\.DIST|POWER|PREVIOUSDAY|PREVIOUSMONTH|PREVIOUSQUARTER|PREVIOUSYEAR|PRODUCT|PRODUCTX|QUARTER|QUOTIENT|RADIANS|RAND|RANDBETWEEN|RANK\.EQ|RANKX|RELATED|RELATEDTABLE|REMOVEFILTERS|REPLACE|REPT|RIGHT|ROLLUP|ROLLUPADDISSUBTOTAL|ROLLUPGROUP|ROLLUPISSUBTOTAL|ROUND|ROUNDDOWN|ROUNDUP|ROW|SAMEPERIODLASTYEAR|SAMPLE|SEARCH|SECOND|SELECTCOLUMNS|SELECTEDMEASURE|SELECTEDMEASUREFORMATSTRING|SELECTEDMEASURENAME|SELECTEDVALUE|SIGN|SIN|SINH|SQRT|SQRTPI|STARTOFMONTH|STARTOFQUARTER|STARTOFYEAR|STDEV\.P|STDEV\.S|STDEVX\.P|STDEVX\.S|SUBSTITUTE|SUBSTITUTEWITHINDEX|SUM|SUMMARIZE|SUMMARIZECOLUMNS|SUMX|SWITCH|T\.DIST|T\.DIST\.2T|T\.DIST\.RT|T\.INV|T\.INV\.2T|TAN|TANH|TIME|TIMEVALUE|TODAY|TOPN|TOPNPERLEVEL|TOPNSKIP|TOTALMTD|TOTALQTD|TOTALYTD|TREATAS|TRIM|TRUE|TRUNC|UNICHAR|UNICODE|UNION|UPPER|USERELATIONSHIP|USERNAME|USEROBJECTID|USERPRINCIPALNAME|UTCNOW|UTCTODAY|VALUE|VALUES|VAR\.P|VAR\.S|VARX\.P|VARX\.S|WEEKDAY|WEEKNUM|XIRR|XNPV|YEAR|YEARFRAC)(?=\s*\()/i,keyword:/\b(?:DEFINE|MEASURE|EVALUATE|ORDER\s+BY|RETURN|VAR|START\s+AT|ASC|DESC)\b/i,boolean:{pattern:/\b(?:TRUE|FALSE|NULL)\b/i,alias:"constant"},number:/\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/:=|[-+*\/=^]|&&?|\|\||<(?:=>?|<|>)?|>[>=]?|\b(?:IN|NOT)\b/i,punctuation:/[;\[\](){}`,.]/}}e.exports=t,t.displayName="dax",t.aliases=[]},13934(e){"use strict";function t(e){e.languages.dhall={comment:/--.*|\{-(?:[^-{]|-(?!\})|\{(?!-)|\{-(?:[^-{]|-(?!\})|\{(?!-))*-\})*-\}/,string:{pattern:/"(?:[^"\\]|\\.)*"|''(?:[^']|'(?!')|'''|''\$\{)*''(?!'|\$)/,greedy:!0,inside:{interpolation:{pattern:/\$\{[^{}]*\}/,inside:{expression:{pattern:/(^\$\{)[\s\S]+(?=\}$)/,lookbehind:!0,alias:"language-dhall",inside:null},punctuation:/\$\{|\}/}}}},label:{pattern:/`[^`]*`/,greedy:!0},url:{pattern:/\bhttps?:\/\/[\w.:%!$&'*+;=@~-]+(?:\/[\w.:%!$&'*+;=@~-]*)*(?:\?[/?\w.:%!$&'*+;=@~-]*)?/,greedy:!0},env:{pattern:/\benv:(?:(?!\d)\w+|"(?:[^"\\=]|\\.)*")/,greedy:!0,inside:{function:/^env/,operator:/^:/,variable:/[\s\S]+/}},hash:{pattern:/\bsha256:[\da-fA-F]{64}\b/,inside:{function:/sha256/,operator:/:/,number:/[\da-fA-F]{64}/}},keyword:/\b(?:as|assert|else|forall|if|in|let|merge|missing|then|toMap|using|with)\b|\u2200/,builtin:/\b(?:Some|None)\b/,boolean:/\b(?:False|True)\b/,number:/\bNaN\b|-?\bInfinity\b|[+-]?\b(?:0x[\da-fA-F]+|\d+(?:\.\d+)?(?:e[+-]?\d+)?)\b/,operator:/\/\\|\/\/\\\\|&&|\|\||===|[!=]=|\/\/|->|\+\+|::|[+*#@=:?<>|\\\u2227\u2a53\u2261\u2afd\u03bb\u2192]/,punctuation:/\.\.|[{}\[\](),./]/,"class-name":/\b[A-Z]\w*\b/},e.languages.dhall.string.inside.interpolation.inside.expression.inside=e.languages.dhall}e.exports=t,t.displayName="dhall",t.aliases=[]},93336(e){"use strict";function t(e){var t,n;(t=e).languages.diff={coord:[/^(?:\*{3}|-{3}|\+{3}).*$/m,/^@@.*@@$/m,/^\d.*$/m]},Object.keys(n={"deleted-sign":"-","deleted-arrow":"<","inserted-sign":"+","inserted-arrow":">",unchanged:" ",diff:"!"}).forEach(function(e){var r=n[e],i=[];/^\w+$/.test(e)||i.push(/\w+/.exec(e)[0]),"diff"===e&&i.push("bold"),t.languages.diff[e]={pattern:RegExp("^(?:["+r+"].*(?:\r\n?|\n|(?![\\s\\S])))+","m"),alias:i,inside:{line:{pattern:/(.)(?=[\s\S]).*(?:\r\n?|\n)?/,lookbehind:!0},prefix:{pattern:/[\s\S]/,alias:/\w+/.exec(e)[0]}}}}),Object.defineProperty(t.languages.diff,"PREFIXES",{value:n})}e.exports=t,t.displayName="diff",t.aliases=[]},13294(e,t,n){"use strict";var r=n(93205);function i(e){var t,n,i;e.register(r),(t=e).languages.django={comment:/^\{#[\s\S]*?#\}$/,tag:{pattern:/(^\{%[+-]?\s*)\w+/,lookbehind:!0,alias:"keyword"},delimiter:{pattern:/^\{[{%][+-]?|[+-]?[}%]\}$/,alias:"punctuation"},string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},filter:{pattern:/(\|)\w+/,lookbehind:!0,alias:"function"},test:{pattern:/(\bis\s+(?:not\s+)?)(?!not\b)\w+/,lookbehind:!0,alias:"function"},function:/\b[a-z_]\w+(?=\s*\()/i,keyword:/\b(?:and|as|by|else|for|if|import|in|is|loop|not|or|recursive|with|without)\b/,operator:/[-+%=]=?|!=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,number:/\b\d+(?:\.\d+)?\b/,boolean:/[Tt]rue|[Ff]alse|[Nn]one/,variable:/\b\w+?\b/,punctuation:/[{}[\](),.:;]/},n=/\{\{[\s\S]*?\}\}|\{%[\s\S]*?%\}|\{#[\s\S]*?#\}/g,i=t.languages["markup-templating"],t.hooks.add("before-tokenize",function(e){i.buildPlaceholders(e,"django",n)}),t.hooks.add("after-tokenize",function(e){i.tokenizePlaceholders(e,"django")}),t.languages.jinja2=t.languages.django,t.hooks.add("before-tokenize",function(e){i.buildPlaceholders(e,"jinja2",n)}),t.hooks.add("after-tokenize",function(e){i.tokenizePlaceholders(e,"jinja2")})}e.exports=i,i.displayName="django",i.aliases=["jinja2"]},38223(e){"use strict";function t(e){e.languages["dns-zone-file"]={comment:/;.*/,string:{pattern:/"(?:\\.|[^"\\\r\n])*"/,greedy:!0},variable:[{pattern:/(^\$ORIGIN[ \t]+)\S+/m,lookbehind:!0},{pattern:/(^|\s)@(?=\s|$)/,lookbehind:!0}],keyword:/^\$(?:ORIGIN|INCLUDE|TTL)(?=\s|$)/m,class:{pattern:/(^|\s)(?:IN|CH|CS|HS)(?=\s|$)/,lookbehind:!0,alias:"keyword"},type:{pattern:/(^|\s)(?:A|A6|AAAA|AFSDB|APL|ATMA|CAA|CDNSKEY|CDS|CERT|CNAME|DHCID|DLV|DNAME|DNSKEY|DS|EID|GID|GPOS|HINFO|HIP|IPSECKEY|ISDN|KEY|KX|LOC|MAILA|MAILB|MB|MD|MF|MG|MINFO|MR|MX|NAPTR|NB|NBSTAT|NIMLOC|NINFO|NS|NSAP|NSAP-PTR|NSEC|NSEC3|NSEC3PARAM|NULL|NXT|OPENPGPKEY|PTR|PX|RKEY|RP|RRSIG|RT|SIG|SINK|SMIMEA|SOA|SPF|SRV|SSHFP|TA|TKEY|TLSA|TSIG|TXT|UID|UINFO|UNSPEC|URI|WKS|X25)(?=\s|$)/,lookbehind:!0,alias:"keyword"},punctuation:/[()]/},e.languages["dns-zone"]=e.languages["dns-zone-file"]}e.exports=t,t.displayName="dnsZoneFile",t.aliases=[]},97266(e){"use strict";function t(e){!function(e){var t=/\\[\r\n](?:\s|\\[\r\n]|#.*(?!.))*(?![\s#]|\\[\r\n])/.source,n=/(?:[ \t]+(?![ \t])(?:)?|)/.source.replace(//g,function(){return t}),r=/"(?:[^"\\\r\n]|\\(?:\r\n|[\s\S]))*"|'(?:[^'\\\r\n]|\\(?:\r\n|[\s\S]))*'/.source,i=/--[\w-]+=(?:|(?!["'])(?:[^\s\\]|\\.)+)/.source.replace(//g,function(){return r}),a={pattern:RegExp(r),greedy:!0},o={pattern:/(^[ \t]*)#.*/m,lookbehind:!0,greedy:!0};function s(e,t){return e=e.replace(//g,function(){return i}).replace(//g,function(){return n}),RegExp(e,t)}e.languages.docker={instruction:{pattern:/(^[ \t]*)(?:ADD|ARG|CMD|COPY|ENTRYPOINT|ENV|EXPOSE|FROM|HEALTHCHECK|LABEL|MAINTAINER|ONBUILD|RUN|SHELL|STOPSIGNAL|USER|VOLUME|WORKDIR)(?=\s)(?:\\.|[^\r\n\\])*(?:\\$(?:\s|#.*$)*(?![\s#])(?:\\.|[^\r\n\\])*)*/im,lookbehind:!0,greedy:!0,inside:{options:{pattern:s(/(^(?:ONBUILD)?\w+)(?:)*/.source,"i"),lookbehind:!0,greedy:!0,inside:{property:{pattern:/(^|\s)--[\w-]+/,lookbehind:!0},string:[a,{pattern:/(=)(?!["'])(?:[^\s\\]|\\.)+/,lookbehind:!0}],operator:/\\$/m,punctuation:/=/}},keyword:[{pattern:s(/(^(?:ONBUILD)?HEALTHCHECK(?:)*)(?:CMD|NONE)\b/.source,"i"),lookbehind:!0,greedy:!0},{pattern:s(/(^(?:ONBUILD)?FROM(?:)*(?!--)[^ \t\\]+)AS/.source,"i"),lookbehind:!0,greedy:!0},{pattern:s(/(^ONBUILD)\w+/.source,"i"),lookbehind:!0,greedy:!0},{pattern:/^\w+/,greedy:!0}],comment:o,string:a,variable:/\$(?:\w+|\{[^{}"'\\]*\})/,operator:/\\$/m}},comment:o},e.languages.dockerfile=e.languages.docker}(e)}e.exports=t,t.displayName="docker",t.aliases=["dockerfile"]},80636(e){"use strict";function t(e){!function(e){var t="(?:"+[/[a-zA-Z_\x80-\uFFFF][\w\x80-\uFFFF]*/.source,/-?(?:\.\d+|\d+(?:\.\d*)?)/.source,/"[^"\\]*(?:\\[\s\S][^"\\]*)*"/.source,/<(?:[^<>]|(?!)*>/.source].join("|")+")",n={markup:{pattern:/(^<)[\s\S]+(?=>$)/,lookbehind:!0,alias:["language-markup","language-html","language-xml"],inside:e.languages.markup}};function r(e,n){return RegExp(e.replace(//g,function(){return t}),n)}e.languages.dot={comment:{pattern:/\/\/.*|\/\*[\s\S]*?\*\/|^#.*/m,greedy:!0},"graph-name":{pattern:r(/(\b(?:digraph|graph|subgraph)[ \t\r\n]+)/.source,"i"),lookbehind:!0,greedy:!0,alias:"class-name",inside:n},"attr-value":{pattern:r(/(=[ \t\r\n]*)/.source),lookbehind:!0,greedy:!0,inside:n},"attr-name":{pattern:r(/([\[;, \t\r\n])(?=[ \t\r\n]*=)/.source),lookbehind:!0,greedy:!0,inside:n},keyword:/\b(?:digraph|edge|graph|node|strict|subgraph)\b/i,"compass-point":{pattern:/(:[ \t\r\n]*)(?:[ns][ew]?|[ewc_])(?![\w\x80-\uFFFF])/,lookbehind:!0,alias:"builtin"},node:{pattern:r(/(^|[^-.\w\x80-\uFFFF\\])/.source),lookbehind:!0,greedy:!0,inside:n},operator:/[=:]|-[->]/,punctuation:/[\[\]{};,]/},e.languages.gv=e.languages.dot}(e)}e.exports=t,t.displayName="dot",t.aliases=["gv"]},36500(e){"use strict";function t(e){e.languages.ebnf={comment:/\(\*[\s\S]*?\*\)/,string:{pattern:/"[^"\r\n]*"|'[^'\r\n]*'/,greedy:!0},special:{pattern:/\?[^?\r\n]*\?/,greedy:!0,alias:"class-name"},definition:{pattern:/^([\t ]*)[a-z]\w*(?:[ \t]+[a-z]\w*)*(?=\s*=)/im,lookbehind:!0,alias:["rule","keyword"]},rule:/\b[a-z]\w*(?:[ \t]+[a-z]\w*)*\b/i,punctuation:/\([:/]|[:/]\)|[.,;()[\]{}]/,operator:/[-=|*/!]/}}e.exports=t,t.displayName="ebnf",t.aliases=[]},30296(e){"use strict";function t(e){e.languages.editorconfig={comment:/[;#].*/,section:{pattern:/(^[ \t]*)\[.+\]/m,lookbehind:!0,alias:"keyword",inside:{regex:/\\\\[\[\]{},!?.*]/,operator:/[!?]|\.\.|\*{1,2}/,punctuation:/[\[\]{},]/}},property:{pattern:/(^[ \t]*)[^\s=]+(?=[ \t]*=)/m,lookbehind:!0},value:{pattern:/=.*/,alias:"string",inside:{punctuation:/^=/}}}}e.exports=t,t.displayName="editorconfig",t.aliases=[]},50115(e){"use strict";function t(e){e.languages.eiffel={comment:/--.*/,string:[{pattern:/"([^[]*)\[[\s\S]*?\]\1"/,greedy:!0},{pattern:/"([^{]*)\{[\s\S]*?\}\1"/,greedy:!0},{pattern:/"(?:%(?:(?!\n)\s)*\n\s*%|%\S|[^%"\r\n])*"/,greedy:!0}],char:/'(?:%.|[^%'\r\n])+'/,keyword:/\b(?:across|agent|alias|all|and|attached|as|assign|attribute|check|class|convert|create|Current|debug|deferred|detachable|do|else|elseif|end|ensure|expanded|export|external|feature|from|frozen|if|implies|inherit|inspect|invariant|like|local|loop|not|note|obsolete|old|once|or|Precursor|redefine|rename|require|rescue|Result|retry|select|separate|some|then|undefine|until|variant|Void|when|xor)\b/i,boolean:/\b(?:True|False)\b/i,"class-name":{pattern:/\b[A-Z][\dA-Z_]*\b/,alias:"builtin"},number:[/\b0[xcb][\da-f](?:_*[\da-f])*\b/i,/(?:\b\d(?:_*\d)*)?\.(?:(?:\d(?:_*\d)*)?e[+-]?)?\d(?:_*\d)*\b|\b\d(?:_*\d)*\b\.?/i],punctuation:/:=|<<|>>|\(\||\|\)|->|\.(?=\w)|[{}[\];(),:?]/,operator:/\\\\|\|\.\.\||\.\.|\/[~\/=]?|[><]=?|[-+*^=~]/}}e.exports=t,t.displayName="eiffel",t.aliases=[]},20791(e,t,n){"use strict";var r=n(93205);function i(e){var t;e.register(r),(t=e).languages.ejs={delimiter:{pattern:/^<%[-_=]?|[-_]?%>$/,alias:"punctuation"},comment:/^#[\s\S]*/,"language-javascript":{pattern:/[\s\S]+/,inside:t.languages.javascript}},t.hooks.add("before-tokenize",function(e){var n=/<%(?!%)[\s\S]+?%>/g;t.languages["markup-templating"].buildPlaceholders(e,"ejs",n)}),t.hooks.add("after-tokenize",function(e){t.languages["markup-templating"].tokenizePlaceholders(e,"ejs")}),t.languages.eta=t.languages.ejs}e.exports=i,i.displayName="ejs",i.aliases=["eta"]},11974(e){"use strict";function t(e){e.languages.elixir={doc:{pattern:/@(?:doc|moduledoc)\s+(?:("""|''')[\s\S]*?\1|("|')(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2)/,inside:{attribute:/^@\w+/,string:/['"][\s\S]+/}},comment:{pattern:/#.*/m,greedy:!0},regex:{pattern:/~[rR](?:("""|''')(?:\\[\s\S]|(?!\1)[^\\])+\1|([\/|"'])(?:\\.|(?!\2)[^\\\r\n])+\2|\((?:\\.|[^\\)\r\n])+\)|\[(?:\\.|[^\\\]\r\n])+\]|\{(?:\\.|[^\\}\r\n])+\}|<(?:\\.|[^\\>\r\n])+>)[uismxfr]*/,greedy:!0},string:[{pattern:/~[cCsSwW](?:("""|''')(?:\\[\s\S]|(?!\1)[^\\])+\1|([\/|"'])(?:\\.|(?!\2)[^\\\r\n])+\2|\((?:\\.|[^\\)\r\n])+\)|\[(?:\\.|[^\\\]\r\n])+\]|\{(?:\\.|#\{[^}]+\}|#(?!\{)|[^#\\}\r\n])+\}|<(?:\\.|[^\\>\r\n])+>)[csa]?/,greedy:!0,inside:{}},{pattern:/("""|''')[\s\S]*?\1/,greedy:!0,inside:{}},{pattern:/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0,inside:{}}],atom:{pattern:/(^|[^:]):\w+/,lookbehind:!0,alias:"symbol"},module:{pattern:/\b[A-Z]\w*\b/,alias:"class-name"},"attr-name":/\b\w+\??:(?!:)/,argument:{pattern:/(^|[^&])&\d+/,lookbehind:!0,alias:"variable"},attribute:{pattern:/@\w+/,alias:"variable"},function:/\b[_a-zA-Z]\w*[?!]?(?:(?=\s*(?:\.\s*)?\()|(?=\/\d))/,number:/\b(?:0[box][a-f\d_]+|\d[\d_]*)(?:\.[\d_]+)?(?:e[+-]?[\d_]+)?\b/i,keyword:/\b(?:after|alias|and|case|catch|cond|def(?:callback|delegate|exception|impl|macro|module|n|np|p|protocol|struct)?|do|else|end|fn|for|if|import|not|or|quote|raise|require|rescue|try|unless|unquote|use|when)\b/,boolean:/\b(?:true|false|nil)\b/,operator:[/\bin\b|&&?|\|[|>]?|\\\\|::|\.\.\.?|\+\+?|-[->]?|<[-=>]|>=|!==?|\B!|=(?:==?|[>~])?|[*\/^]/,{pattern:/([^<])<(?!<)/,lookbehind:!0},{pattern:/([^>])>(?!>)/,lookbehind:!0}],punctuation:/<<|>>|[.,%\[\]{}()]/},e.languages.elixir.string.forEach(function(t){t.inside={interpolation:{pattern:/#\{[^}]+\}/,inside:{delimiter:{pattern:/^#\{|\}$/,alias:"punctuation"},rest:e.languages.elixir}}}})}e.exports=t,t.displayName="elixir",t.aliases=[]},8645(e){"use strict";function t(e){e.languages.elm={comment:/--.*|\{-[\s\S]*?-\}/,char:{pattern:/'(?:[^\\'\r\n]|\\(?:[abfnrtv\\']|\d+|x[0-9a-fA-F]+))'/,greedy:!0},string:[{pattern:/"""[\s\S]*?"""/,greedy:!0},{pattern:/"(?:[^\\"\r\n]|\\.)*"/,greedy:!0}],"import-statement":{pattern:/(^[\t ]*)import\s+[A-Z]\w*(?:\.[A-Z]\w*)*(?:\s+as\s+(?:[A-Z]\w*)(?:\.[A-Z]\w*)*)?(?:\s+exposing\s+)?/m,lookbehind:!0,inside:{keyword:/\b(?:import|as|exposing)\b/}},keyword:/\b(?:alias|as|case|else|exposing|if|in|infixl|infixr|let|module|of|then|type)\b/,builtin:/\b(?:abs|acos|always|asin|atan|atan2|ceiling|clamp|compare|cos|curry|degrees|e|flip|floor|fromPolar|identity|isInfinite|isNaN|logBase|max|min|negate|never|not|pi|radians|rem|round|sin|sqrt|tan|toFloat|toPolar|toString|truncate|turns|uncurry|xor)\b/,number:/\b(?:\d+(?:\.\d+)?(?:e[+-]?\d+)?|0x[0-9a-f]+)\b/i,operator:/\s\.\s|[+\-/*=.$<>:&|^?%#@~!]{2,}|[+\-/*=$<>:&|^?%#@~!]/,hvariable:/\b(?:[A-Z]\w*\.)*[a-z]\w*\b/,constant:/\b(?:[A-Z]\w*\.)*[A-Z]\w*\b/,punctuation:/[{}[\]|(),.:]/}}e.exports=t,t.displayName="elm",t.aliases=[]},84790(e,t,n){"use strict";var r=n(56939),i=n(93205);function a(e){var t;e.register(r),e.register(i),(t=e).languages.erb=t.languages.extend("ruby",{}),t.languages.insertBefore("erb","comment",{delimiter:{pattern:/^<%=?|%>$/,alias:"punctuation"}}),t.hooks.add("before-tokenize",function(e){var n=/<%=?(?:[^\r\n]|[\r\n](?!=begin)|[\r\n]=begin\s(?:[^\r\n]|[\r\n](?!=end))*[\r\n]=end)+?%>/gm;t.languages["markup-templating"].buildPlaceholders(e,"erb",n)}),t.hooks.add("after-tokenize",function(e){t.languages["markup-templating"].tokenizePlaceholders(e,"erb")})}e.exports=a,a.displayName="erb",a.aliases=[]},4502(e){"use strict";function t(e){e.languages.erlang={comment:/%.+/,string:{pattern:/"(?:\\.|[^\\"\r\n])*"/,greedy:!0},"quoted-function":{pattern:/'(?:\\.|[^\\'\r\n])+'(?=\()/,alias:"function"},"quoted-atom":{pattern:/'(?:\\.|[^\\'\r\n])+'/,alias:"atom"},boolean:/\b(?:true|false)\b/,keyword:/\b(?:fun|when|case|of|end|if|receive|after|try|catch)\b/,number:[/\$\\?./,/\b\d+#[a-z0-9]+/i,/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i],function:/\b[a-z][\w@]*(?=\()/,variable:{pattern:/(^|[^@])(?:\b|\?)[A-Z_][\w@]*/,lookbehind:!0},operator:[/[=\/<>:]=|=[:\/]=|\+\+?|--?|[=*\/!]|\b(?:bnot|div|rem|band|bor|bxor|bsl|bsr|not|and|or|xor|orelse|andalso)\b/,{pattern:/(^|[^<])<(?!<)/,lookbehind:!0},{pattern:/(^|[^>])>(?!>)/,lookbehind:!0}],atom:/\b[a-z][\w@]*/,punctuation:/[()[\]{}:;,.#|]|<<|>>/}}e.exports=t,t.displayName="erlang",t.aliases=[]},66055(e,t,n){"use strict";var r=n(59803),i=n(93205);function a(e){var t;e.register(r),e.register(i),(t=e).languages.etlua={delimiter:{pattern:/^<%[-=]?|-?%>$/,alias:"punctuation"},"language-lua":{pattern:/[\s\S]+/,inside:t.languages.lua}},t.hooks.add("before-tokenize",function(e){var n=/<%[\s\S]+?%>/g;t.languages["markup-templating"].buildPlaceholders(e,"etlua",n)}),t.hooks.add("after-tokenize",function(e){t.languages["markup-templating"].tokenizePlaceholders(e,"etlua")})}e.exports=a,a.displayName="etlua",a.aliases=[]},68876(e){"use strict";function t(e){e.languages["excel-formula"]={comment:{pattern:/(\bN\(\s*)"(?:[^"]|"")*"(?=\s*\))/i,lookbehind:!0,greedy:!0},string:{pattern:/"(?:[^"]|"")*"(?!")/,greedy:!0},reference:{pattern:/(?:'[^']*'|(?:[^\s()[\]{}<>*?"';,$&]*\[[^^\s()[\]{}<>*?"']+\])?\w+)!/,greedy:!0,alias:"string",inside:{operator:/!$/,punctuation:/'/,sheet:{pattern:/[^[\]]+$/,alias:"function"},file:{pattern:/\[[^[\]]+\]$/,inside:{punctuation:/[[\]]/}},path:/[\s\S]+/}},"function-name":{pattern:/\b[A-Z]\w*(?=\()/i,alias:"keyword"},range:{pattern:/\$?\b(?:[A-Z]+\$?\d+:\$?[A-Z]+\$?\d+|[A-Z]+:\$?[A-Z]+|\d+:\$?\d+)\b/i,alias:"property",inside:{operator:/:/,cell:/\$?[A-Z]+\$?\d+/i,column:/\$?[A-Z]+/i,row:/\$?\d+/}},cell:{pattern:/\b[A-Z]+\d+\b|\$[A-Za-z]+\$?\d+\b|\b[A-Za-z]+\$\d+\b/,alias:"property"},number:/(?:\b\d+(?:\.\d+)?|\B\.\d+)(?:e[+-]?\d+)?\b/i,boolean:/\b(?:TRUE|FALSE)\b/i,operator:/[-+*/^%=&,]|<[=>]?|>=?/,punctuation:/[[\]();{}|]/},e.languages.xlsx=e.languages.xls=e.languages["excel-formula"]}e.exports=t,t.displayName="excelFormula",t.aliases=[]},95126(e){"use strict";function t(e){var t,n,r,i,a,o,s,u;t=e,i={comment:[{pattern:/(^|\s)(?:! .*|!$)/,lookbehind:!0,inside:n={function:/\b(?:TODOS?|FIX(?:MES?)?|NOTES?|BUGS?|XX+|HACKS?|WARN(?:ING)?|\?{2,}|!{2,})\b/}},{pattern:/(^|\s)\/\*\s[\s\S]*?\*\/(?=\s|$)/,lookbehind:!0,greedy:!0,inside:n},{pattern:/(^|\s)!\[(={0,6})\[\s[\s\S]*?\]\2\](?=\s|$)/,lookbehind:!0,greedy:!0,inside:n}],number:[{pattern:/(^|\s)[+-]?\d+(?=\s|$)/,lookbehind:!0},{pattern:/(^|\s)[+-]?0(?:b[01]+|o[0-7]+|d\d+|x[\dA-F]+)(?=\s|$)/i,lookbehind:!0},{pattern:/(^|\s)[+-]?\d+\/\d+\.?(?=\s|$)/,lookbehind:!0},{pattern:/(^|\s)\+?\d+\+\d+\/\d+(?=\s|$)/,lookbehind:!0},{pattern:/(^|\s)-\d+-\d+\/\d+(?=\s|$)/,lookbehind:!0},{pattern:/(^|\s)[+-]?(?:\d*\.\d+|\d+\.\d*|\d+)(?:e[+-]?\d+)?(?=\s|$)/i,lookbehind:!0},{pattern:/(^|\s)NAN:\s+[\da-fA-F]+(?=\s|$)/,lookbehind:!0},{pattern:/(^|\s)[+-]?0(?:b1\.[01]*|o1\.[0-7]*|d1\.\d*|x1\.[\dA-F]*)p\d+(?=\s|$)/i,lookbehind:!0}],regexp:{pattern:/(^|\s)R\/\s(?:\\\S|[^\\/])*\/(?:[idmsr]*|[idmsr]+-[idmsr]+)(?=\s|$)/,lookbehind:!0,alias:"number",inside:{variable:/\\\S/,keyword:/[+?*\[\]^$(){}.|]/,operator:{pattern:/(\/)[idmsr]+(?:-[idmsr]+)?/,lookbehind:!0}}},boolean:{pattern:/(^|\s)[tf](?=\s|$)/,lookbehind:!0},"custom-string":{pattern:/(^|\s)[A-Z0-9\-]+"\s(?:\\\S|[^"\\])*"/,lookbehind:!0,greedy:!0,alias:"string",inside:{number:/\\\S|%\w|\//}},"multiline-string":[{pattern:/(^|\s)STRING:\s+\S+(?:\n|\r\n).*(?:\n|\r\n)\s*;(?=\s|$)/,lookbehind:!0,greedy:!0,alias:"string",inside:{number:(r={number:/\\[^\s']|%\w/}).number,"semicolon-or-setlocal":{pattern:/([\r\n][ \t]*);(?=\s|$)/,lookbehind:!0,alias:"function"}}},{pattern:/(^|\s)HEREDOC:\s+\S+(?:\n|\r\n).*(?:\n|\r\n)\s*\S+(?=\s|$)/,lookbehind:!0,greedy:!0,alias:"string",inside:r},{pattern:/(^|\s)\[(={0,6})\[\s[\s\S]*?\]\2\](?=\s|$)/,lookbehind:!0,greedy:!0,alias:"string",inside:r}],"special-using":{pattern:/(^|\s)USING:(?:\s\S+)*(?=\s+;(?:\s|$))/,lookbehind:!0,alias:"function",inside:{string:{pattern:/(\s)[^:\s]+/,lookbehind:!0}}},"stack-effect-delimiter":[{pattern:/(^|\s)(?:call|execute|eval)?\((?=\s)/,lookbehind:!0,alias:"operator"},{pattern:/(\s)--(?=\s)/,lookbehind:!0,alias:"operator"},{pattern:/(\s)\)(?=\s|$)/,lookbehind:!0,alias:"operator"}],combinators:{pattern:null,lookbehind:!0,alias:"keyword"},"kernel-builtin":{pattern:null,lookbehind:!0,alias:"variable"},"sequences-builtin":{pattern:null,lookbehind:!0,alias:"variable"},"math-builtin":{pattern:null,lookbehind:!0,alias:"variable"},"constructor-word":{pattern:/(^|\s)<(?!=+>|-+>)\S+>(?=\s|$)/,lookbehind:!0,alias:"keyword"},"other-builtin-syntax":{pattern:null,lookbehind:!0,alias:"operator"},"conventionally-named-word":{pattern:/(^|\s)(?!")(?:(?:set|change|with|new)-\S+|\$\S+|>[^>\s]+|[^:>\s]+>|[^>\s]+>[^>\s]+|\+[^+\s]+\+|[^?\s]+\?|\?[^?\s]+|[^>\s]+>>|>>[^>\s]+|[^<\s]+<<|\([^()\s]+\)|[^!\s]+!|[^*\s]\S*\*|[^.\s]\S*\.)(?=\s|$)/,lookbehind:!0,alias:"keyword"},"colon-syntax":{pattern:/(^|\s)(?:[A-Z0-9\-]+#?)?:{1,2}\s+(?:;\S+|(?!;)\S+)(?=\s|$)/,lookbehind:!0,greedy:!0,alias:"function"},"semicolon-or-setlocal":{pattern:/(\s)(?:;|:>)(?=\s|$)/,lookbehind:!0,alias:"function"},"curly-brace-literal-delimiter":[{pattern:/(^|\s)[a-z]*\{(?=\s)/i,lookbehind:!0,alias:"operator"},{pattern:/(\s)\}(?=\s|$)/,lookbehind:!0,alias:"operator"}],"quotation-delimiter":[{pattern:/(^|\s)\[(?=\s)/,lookbehind:!0,alias:"operator"},{pattern:/(\s)\](?=\s|$)/,lookbehind:!0,alias:"operator"}],"normal-word":{pattern:/(^|\s)[^"\s]\S*(?=\s|$)/,lookbehind:!0},string:{pattern:/"(?:\\\S|[^"\\])*"/,greedy:!0,inside:r}},a=function(e){return(e+"").replace(/([.?*+\^$\[\]\\(){}|\-])/g,"\\$1")},o=function(e){return RegExp("(^|\\s)(?:"+e.map(a).join("|")+")(?=\\s|$)")},Object.keys(s={"kernel-builtin":["or","2nipd","4drop","tuck","wrapper","nip","wrapper?","callstack>array","die","dupd","callstack","callstack?","3dup","hashcode","pick","4nip","build",">boolean","nipd","clone","5nip","eq?","?","=","swapd","2over","clear","2dup","get-retainstack","not","tuple?","dup","3nipd","call","-rotd","object","drop","assert=","assert?","-rot","execute","boa","get-callstack","curried?","3drop","pickd","overd","over","roll","3nip","swap","and","2nip","rotd","throw","(clone)","hashcode*","spin","reach","4dup","equal?","get-datastack","assert","2drop","","boolean?","identity-hashcode","identity-tuple?","null","composed?","new","5drop","rot","-roll","xor","identity-tuple","boolean"],"other-builtin-syntax":["=======","recursive","flushable",">>","<<<<<<","M\\","B","PRIVATE>","\\","======","final","inline","delimiter","deprecated",">>>>>","<<<<<<<","parse-complex","malformed-complex","read-only",">>>>>>>","call-next-method","<<","foldable","$","$[","${"],"sequences-builtin":["member-eq?","mismatch","append","assert-sequence=","longer","repetition","clone-like","3sequence","assert-sequence?","last-index-from","reversed","index-from","cut*","pad-tail","join-as","remove-eq!","concat-as","but-last","snip","nths","nth","sequence","longest","slice?","","remove-nth","tail-slice","empty?","tail*","member?","virtual-sequence?","set-length","drop-prefix","iota","unclip","bounds-error?","unclip-last-slice","non-negative-integer-expected","non-negative-integer-expected?","midpoint@","longer?","?set-nth","?first","rest-slice","prepend-as","prepend","fourth","sift","subseq-start","new-sequence","?last","like","first4","1sequence","reverse","slice","virtual@","repetition?","set-last","index","4sequence","max-length","set-second","immutable-sequence","first2","first3","supremum","unclip-slice","suffix!","insert-nth","tail","3append","short","suffix","concat","flip","immutable?","reverse!","2sequence","sum","delete-all","indices","snip-slice","","check-slice","sequence?","head","append-as","halves","sequence=","collapse-slice","?second","slice-error?","product","bounds-check?","bounds-check","immutable","virtual-exemplar","harvest","remove","pad-head","last","set-fourth","cartesian-product","remove-eq","shorten","shorter","reversed?","shorter?","shortest","head-slice","pop*","tail-slice*","but-last-slice","iota?","append!","cut-slice","new-resizable","head-slice*","sequence-hashcode","pop","set-nth","?nth","second","join","immutable-sequence?","","3append-as","virtual-sequence","subseq?","remove-nth!","length","last-index","lengthen","assert-sequence","copy","move","third","first","tail?","set-first","prefix","bounds-error","","exchange","surround","cut","min-length","set-third","push-all","head?","subseq-start-from","delete-slice","rest","sum-lengths","head*","infimum","remove!","glue","slice-error","subseq","push","replace-slice","subseq-as","unclip-last"],"math-builtin":["number=","next-power-of-2","?1+","fp-special?","imaginary-part","float>bits","number?","fp-infinity?","bignum?","fp-snan?","denominator","gcd","*","+","fp-bitwise=","-","u>=","/",">=","bitand","power-of-2?","log2-expects-positive","neg?","<","log2",">","integer?","number","bits>double","2/","zero?","bits>float","float?","shift","ratio?","rect>","even?","ratio","fp-sign","bitnot",">fixnum","complex?","/i","integer>fixnum","/f","sgn",">bignum","next-float","u<","u>","mod","recip","rational",">float","2^","integer","fixnum?","neg","fixnum","sq","bignum",">rect","bit?","fp-qnan?","simple-gcd","complex","","real",">fraction","double>bits","bitor","rem","fp-nan-payload","real-part","log2-expects-positive?","prev-float","align","unordered?","float","fp-nan?","abs","bitxor","integer>fixnum-strict","u<=","odd?","<=","/mod",">integer","real?","rational?","numerator"]}).forEach(function(e){i[e].pattern=o(s[e])}),u=["2bi","while","2tri","bi*","4dip","both?","same?","tri@","curry","prepose","3bi","?if","tri*","2keep","3keep","curried","2keepd","when","2bi*","2tri*","4keep","bi@","keepdd","do","unless*","tri-curry","if*","loop","bi-curry*","when*","2bi@","2tri@","with","2with","either?","bi","until","3dip","3curry","tri-curry*","tri-curry@","bi-curry","keepd","compose","2dip","if","3tri","unless","tuple","keep","2curry","tri","most","while*","dip","composed","bi-curry@","find-last-from","trim-head-slice","map-as","each-from","none?","trim-tail","partition","if-empty","accumulate*","reject!","find-from","accumulate-as","collector-for-as","reject","map","map-sum","accumulate!","2each-from","follow","supremum-by","map!","unless-empty","collector","padding","reduce-index","replicate-as","infimum-by","trim-tail-slice","count","find-index","filter","accumulate*!","reject-as","map-integers","map-find","reduce","selector","interleave","2map","filter-as","binary-reduce","map-index-as","find","produce","filter!","replicate","cartesian-map","cartesian-each","find-index-from","map-find-last","3map-as","3map","find-last","selector-as","2map-as","2map-reduce","accumulate","each","each-index","accumulate*-as","when-empty","all?","collector-as","push-either","new-like","collector-for","2selector","push-if","2all?","map-reduce","3each","any?","trim-slice","2reduce","change-nth","produce-as","2each","trim","trim-head","cartesian-find","map-index","if-zero","each-integer","unless-zero","(find-integer)","when-zero","find-last-integer","(all-integers?)","times","(each-integer)","find-integer","all-integers?","unless-negative","if-positive","when-positive","when-negative","unless-positive","if-negative","case","2cleave","cond>quot","case>quot","3cleave","wrong-values","to-fixed-point","alist>quot","cond","cleave","call-effect","recursive-hashcode","spread","deep-spread>quot","2||","0||","n||","0&&","2&&","3||","1||","1&&","n&&","3&&","smart-unless*","keep-inputs","reduce-outputs","smart-when*","cleave>array","smart-with","smart-apply","smart-if","inputs/outputs","output>sequence-n","map-outputs","map-reduce-outputs","dropping","output>array","smart-map-reduce","smart-2map-reduce","output>array-n","nullary","inputsequence"],i.combinators.pattern=o(u),t.languages.factor=i}e.exports=t,t.displayName="factor",t.aliases=[]},74644(e){"use strict";function t(e){var t;(t=e).languages.false={comment:{pattern:/\{[^}]*\}/},string:{pattern:/"[^"]*"/,greedy:!0},"character-code":{pattern:/'(?:[^\r]|\r\n?)/,alias:"number"},"assembler-code":{pattern:/\d+`/,alias:"important"},number:/\d+/,operator:/[-!#$%&'*+,./:;=>?@\\^_`|~ßø]/,punctuation:/\[|\]/,variable:/[a-z]/,"non-standard":{pattern:/[()!=]=?|[-+*/%]|\b(?:in|is)\b/}),delete e.languages["firestore-security-rules"]["class-name"],e.languages.insertBefore("firestore-security-rules","keyword",{path:{pattern:/(^|[\s(),])(?:\/(?:[\w\xA0-\uFFFF]+|\{[\w\xA0-\uFFFF]+(?:=\*\*)?\}|\$\([\w\xA0-\uFFFF.]+\)))+/,lookbehind:!0,greedy:!0,inside:{variable:{pattern:/\{[\w\xA0-\uFFFF]+(?:=\*\*)?\}|\$\([\w\xA0-\uFFFF.]+\)/,inside:{operator:/=/,keyword:/\*\*/,punctuation:/[.$(){}]/}},punctuation:/\//}},method:{pattern:/(\ballow\s+)[a-z]+(?:\s*,\s*[a-z]+)*(?=\s*[:;])/,lookbehind:!0,alias:"builtin",inside:{punctuation:/,/}}})}e.exports=t,t.displayName="firestoreSecurityRules",t.aliases=[]},37225(e){"use strict";function t(e){var t;(t=e).languages.flow=t.languages.extend("javascript",{}),t.languages.insertBefore("flow","keyword",{type:[{pattern:/\b(?:[Nn]umber|[Ss]tring|[Bb]oolean|Function|any|mixed|null|void)\b/,alias:"tag"}]}),t.languages.flow["function-variable"].pattern=/(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=\s*(?:function\b|(?:\([^()]*\)(?:\s*:\s*\w+)?|(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/i,delete t.languages.flow.parameter,t.languages.insertBefore("flow","operator",{"flow-punctuation":{pattern:/\{\||\|\}/,alias:"punctuation"}}),Array.isArray(t.languages.flow.keyword)||(t.languages.flow.keyword=[t.languages.flow.keyword]),t.languages.flow.keyword.unshift({pattern:/(^|[^$]\b)(?:type|opaque|declare|Class)\b(?!\$)/,lookbehind:!0},{pattern:/(^|[^$]\B)\$(?:await|Diff|Exact|Keys|ObjMap|PropertyType|Shape|Record|Supertype|Subtype|Enum)\b(?!\$)/,lookbehind:!0})}e.exports=t,t.displayName="flow",t.aliases=[]},16725(e){"use strict";function t(e){e.languages.fortran={"quoted-number":{pattern:/[BOZ](['"])[A-F0-9]+\1/i,alias:"number"},string:{pattern:/(?:\b\w+_)?(['"])(?:\1\1|&(?:\r\n?|\n)(?:[ \t]*!.*(?:\r\n?|\n)|(?![ \t]*!))|(?!\1).)*(?:\1|&)/,inside:{comment:{pattern:/(&(?:\r\n?|\n)\s*)!.*/,lookbehind:!0}}},comment:{pattern:/!.*/,greedy:!0},boolean:/\.(?:TRUE|FALSE)\.(?:_\w+)?/i,number:/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[ED][+-]?\d+)?(?:_\w+)?/i,keyword:[/\b(?:INTEGER|REAL|DOUBLE ?PRECISION|COMPLEX|CHARACTER|LOGICAL)\b/i,/\b(?:END ?)?(?:BLOCK ?DATA|DO|FILE|FORALL|FUNCTION|IF|INTERFACE|MODULE(?! PROCEDURE)|PROGRAM|SELECT|SUBROUTINE|TYPE|WHERE)\b/i,/\b(?:ALLOCATABLE|ALLOCATE|BACKSPACE|CALL|CASE|CLOSE|COMMON|CONTAINS|CONTINUE|CYCLE|DATA|DEALLOCATE|DIMENSION|DO|END|EQUIVALENCE|EXIT|EXTERNAL|FORMAT|GO ?TO|IMPLICIT(?: NONE)?|INQUIRE|INTENT|INTRINSIC|MODULE PROCEDURE|NAMELIST|NULLIFY|OPEN|OPTIONAL|PARAMETER|POINTER|PRINT|PRIVATE|PUBLIC|READ|RETURN|REWIND|SAVE|SELECT|STOP|TARGET|WHILE|WRITE)\b/i,/\b(?:ASSIGNMENT|DEFAULT|ELEMENTAL|ELSE|ELSEWHERE|ELSEIF|ENTRY|IN|INCLUDE|INOUT|KIND|NULL|ONLY|OPERATOR|OUT|PURE|RECURSIVE|RESULT|SEQUENCE|STAT|THEN|USE)\b/i],operator:[/\*\*|\/\/|=>|[=\/]=|[<>]=?|::|[+\-*=%]|\.[A-Z]+\./i,{pattern:/(^|(?!\().)\/(?!\))/,lookbehind:!0}],punctuation:/\(\/|\/\)|[(),;:&]/}}e.exports=t,t.displayName="fortran",t.aliases=[]},95559(e){"use strict";function t(e){e.languages.fsharp=e.languages.extend("clike",{comment:[{pattern:/(^|[^\\])\(\*(?!\))[\s\S]*?\*\)/,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0}],string:{pattern:/(?:"""[\s\S]*?"""|@"(?:""|[^"])*"|"(?:\\[\s\S]|[^\\"])*")B?|'(?:[^\\']|\\(?:.|\d{3}|x[a-fA-F\d]{2}|u[a-fA-F\d]{4}|U[a-fA-F\d]{8}))'B?/,greedy:!0},"class-name":{pattern:/(\b(?:exception|inherit|interface|new|of|type)\s+|\w\s*:\s*|\s:\??>\s*)[.\w]+\b(?:\s*(?:->|\*)\s*[.\w]+\b)*(?!\s*[:.])/,lookbehind:!0,inside:{operator:/->|\*/,punctuation:/\./}},keyword:/\b(?:let|return|use|yield)(?:!\B|\b)|\b(?:abstract|and|as|assert|base|begin|class|default|delegate|do|done|downcast|downto|elif|else|end|exception|extern|false|finally|for|fun|function|global|if|in|inherit|inline|interface|internal|lazy|match|member|module|mutable|namespace|new|not|null|of|open|or|override|private|public|rec|select|static|struct|then|to|true|try|type|upcast|val|void|when|while|with|asr|land|lor|lsl|lsr|lxor|mod|sig|atomic|break|checked|component|const|constraint|constructor|continue|eager|event|external|fixed|functor|include|method|mixin|object|parallel|process|protected|pure|sealed|tailcall|trait|virtual|volatile)\b/,number:[/\b0x[\da-fA-F]+(?:un|lf|LF)?\b/,/\b0b[01]+(?:y|uy)?\b/,/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[fm]|e[+-]?\d+)?\b/i,/\b\d+(?:[IlLsy]|u[lsy]?|UL)?\b/],operator:/([<>~&^])\1\1|([*.:<>&])\2|<-|->|[!=:]=|?|\??(?:<=|>=|<>|[-+*/%=<>])\??|[!?^&]|~[+~-]|:>|:\?>?/}),e.languages.insertBefore("fsharp","keyword",{preprocessor:{pattern:/(^[\t ]*)#.*/m,lookbehind:!0,alias:"property",inside:{directive:{pattern:/(^#)\b(?:else|endif|if|light|line|nowarn)\b/,lookbehind:!0,alias:"keyword"}}}}),e.languages.insertBefore("fsharp","punctuation",{"computation-expression":{pattern:/\b[_a-z]\w*(?=\s*\{)/i,alias:"keyword"}}),e.languages.insertBefore("fsharp","string",{annotation:{pattern:/\[<.+?>\]/,inside:{punctuation:/^\[<|>\]$/,"class-name":{pattern:/^\w+$|(^|;\s*)[A-Z]\w*(?=\()/,lookbehind:!0},"annotation-content":{pattern:/[\s\S]+/,inside:e.languages.fsharp}}}})}e.exports=t,t.displayName="fsharp",t.aliases=[]},82114(e,t,n){"use strict";var r=n(93205);function i(e){e.register(r),function(e){for(var t=/[^<()"']|\((?:)*\)|<(?!#--)|<#--(?:[^-]|-(?!->))*-->|"(?:[^\\"]|\\.)*"|'(?:[^\\']|\\.)*'/.source,n=0;n<2;n++)t=t.replace(//g,function(){return t});t=t.replace(//g,/[^\s\S]/.source);var r={comment:/<#--[\s\S]*?-->/,string:[{pattern:/\br("|')(?:(?!\1)[^\\]|\\.)*\1/,greedy:!0},{pattern:RegExp(/("|')(?:(?!\1|\$\{)[^\\]|\\.|\$\{(?:(?!\})(?:))*\})*\1/.source.replace(//g,function(){return t})),greedy:!0,inside:{interpolation:{pattern:RegExp(/((?:^|[^\\])(?:\\\\)*)\$\{(?:(?!\})(?:))*\}/.source.replace(//g,function(){return t})),lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:null}}}}],keyword:/\b(?:as)\b/,boolean:/\b(?:true|false)\b/,"builtin-function":{pattern:/((?:^|[^?])\?\s*)\w+/,lookbehind:!0,alias:"function"},function:/\b\w+(?=\s*\()/,number:/\b\d+(?:\.\d+)?\b/,operator:/\.\.[<*!]?|->|--|\+\+|&&|\|\||\?{1,2}|[-+*/%!=<>]=?|\b(?:gt|gte|lt|lte)\b/,punctuation:/[,;.:()[\]{}]/};r.string[1].inside.interpolation.inside.rest=r,e.languages.ftl={"ftl-comment":{pattern:/^<#--[\s\S]*/,alias:"comment"},"ftl-directive":{pattern:/^<[\s\S]+>$/,inside:{directive:{pattern:/(^<\/?)[#@][a-z]\w*/i,lookbehind:!0,alias:"keyword"},punctuation:/^<\/?|\/?>$/,content:{pattern:/\s*\S[\s\S]*/,alias:"ftl",inside:r}}},"ftl-interpolation":{pattern:/^\$\{[\s\S]*\}$/,inside:{punctuation:/^\$\{|\}$/,content:{pattern:/\s*\S[\s\S]*/,alias:"ftl",inside:r}}}},e.hooks.add("before-tokenize",function(n){var r=RegExp(/<#--[\s\S]*?-->|<\/?[#@][a-zA-Z](?:)*?>|\$\{(?:)*?\}/.source.replace(//g,function(){return t}),"gi");e.languages["markup-templating"].buildPlaceholders(n,"ftl",r)}),e.hooks.add("after-tokenize",function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"ftl")})}(e)}e.exports=i,i.displayName="ftl",i.aliases=[]},12208(e){"use strict";function t(e){e.languages.gcode={comment:/;.*|\B\(.*?\)\B/,string:{pattern:/"(?:""|[^"])*"/,greedy:!0},keyword:/\b[GM]\d+(?:\.\d+)?\b/,property:/\b[A-Z]/,checksum:{pattern:/\*\d+/,alias:"punctuation"},punctuation:/:/}}e.exports=t,t.displayName="gcode",t.aliases=[]},62728(e){"use strict";function t(e){e.languages.gdscript={comment:/#.*/,string:{pattern:/@?(?:("|')(?:(?!\1)[^\n\\]|\\[\s\S])*\1(?!"|')|"""(?:[^\\]|\\[\s\S])*?""")/,greedy:!0},"class-name":{pattern:/(^(?:class_name|class|extends)[ \t]+|^export\([ \t]*|\bas[ \t]+|(?:\b(?:const|var)[ \t]|[,(])[ \t]*\w+[ \t]*:[ \t]*|->[ \t]*)[a-zA-Z_]\w*/m,lookbehind:!0},keyword:/\b(?:and|as|assert|break|breakpoint|class|class_name|const|continue|elif|else|enum|export|extends|for|func|if|in|is|master|mastersync|match|not|null|onready|or|pass|preload|puppet|puppetsync|remote|remotesync|return|self|setget|signal|static|tool|var|while|yield)\b/,function:/\b[a-z_]\w*(?=[ \t]*\()/i,variable:/\$\w+/,number:[/\b0b[01_]+\b|\b0x[\da-fA-F_]+\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.[\d_]+)(?:e[+-]?[\d_]+)?\b/,/\b(?:INF|NAN|PI|TAU)\b/],constant:/\b[A-Z][A-Z_\d]*\b/,boolean:/\b(?:false|true)\b/,operator:/->|:=|&&|\|\||<<|>>|[-+*/%&|!<>=]=?|[~^]/,punctuation:/[.:,;()[\]{}]/}}e.exports=t,t.displayName="gdscript",t.aliases=[]},81549(e){"use strict";function t(e){e.languages.gedcom={"line-value":{pattern:/(^[\t ]*\d+ +(?:@\w[\w!"$%&'()*+,\-./:;<=>?[\\\]^`{|}~\x80-\xfe #]*@ +)?\w+ ).+/m,lookbehind:!0,inside:{pointer:{pattern:/^@\w[\w!"$%&'()*+,\-./:;<=>?[\\\]^`{|}~\x80-\xfe #]*@$/,alias:"variable"}}},tag:{pattern:/(^[\t ]*\d+ +(?:@\w[\w!"$%&'()*+,\-./:;<=>?[\\\]^`{|}~\x80-\xfe #]*@ +)?)\w+/m,lookbehind:!0,alias:"string"},level:{pattern:/(^[\t ]*)\d+/m,lookbehind:!0,alias:"number"},pointer:{pattern:/@\w[\w!"$%&'()*+,\-./:;<=>?[\\\]^`{|}~\x80-\xfe #]*@/,alias:"variable"}}}e.exports=t,t.displayName="gedcom",t.aliases=[]},6024(e){"use strict";function t(e){var t,n;n=/(?:\r?\n|\r)[ \t]*\|.+\|(?:(?!\|).)*/.source,(t=e).languages.gherkin={pystring:{pattern:/("""|''')[\s\S]+?\1/,alias:"string"},comment:{pattern:/(^[ \t]*)#.*/m,lookbehind:!0},tag:{pattern:/(^[ \t]*)@\S*/m,lookbehind:!0},feature:{pattern:/((?:^|\r?\n|\r)[ \t]*)(?:Ability|Ahoy matey!|Arwedd|Aspekt|Besigheid Behoefte|Business Need|Caracteristica|Característica|Egenskab|Egenskap|Eiginleiki|Feature|Fīča|Fitur|Fonctionnalité|Fonksyonalite|Funcionalidade|Funcionalitat|Functionalitate|Funcţionalitate|Funcționalitate|Functionaliteit|Fungsi|Funkcia|Funkcija|Funkcionalitāte|Funkcionalnost|Funkcja|Funksie|Funktionalität|Funktionalitéit|Funzionalità|Hwaet|Hwæt|Jellemző|Karakteristik|laH|Lastnost|Mak|Mogucnost|Mogućnost|Moznosti|Možnosti|OH HAI|Omadus|Ominaisuus|Osobina|Özellik|perbogh|poQbogh malja'|Potrzeba biznesowa|Požadavek|Požiadavka|Pretty much|Qap|Qu'meH 'ut|Savybė|Tính năng|Trajto|Vermoë|Vlastnosť|Właściwość|Značilnost|Δυνατότητα|Λειτουργία|Могућност|Мөмкинлек|Особина|Свойство|Үзенчәлеклелек|Функционал|Функционалност|Функция|Функціонал|תכונה|خاصية|خصوصیت|صلاحیت|کاروبار کی ضرورت|وِیژگی|रूप लेख|ਖਾਸੀਅਤ|ਨਕਸ਼ ਨੁਹਾਰ|ਮੁਹਾਂਦਰਾ|గుణము|ಹೆಚ್ಚಳ|ความต้องการทางธุรกิจ|ความสามารถ|โครงหลัก|기능|フィーチャ|功能|機能):(?:[^:\r\n]+(?:\r?\n|\r|$))*/,lookbehind:!0,inside:{important:{pattern:/(:)[^\r\n]+/,lookbehind:!0},keyword:/[^:\r\n]+:/}},scenario:{pattern:/(^[ \t]*)(?:Abstract Scenario|Abstrakt Scenario|Achtergrond|Aer|Ær|Agtergrond|All y'all|Antecedentes|Antecedents|Atburðarás|Atburðarásir|Awww, look mate|B4|Background|Baggrund|Bakgrund|Bakgrunn|Bakgrunnur|Beispiele|Beispiller|Bối cảnh|Cefndir|Cenario|Cenário|Cenario de Fundo|Cenário de Fundo|Cenarios|Cenários|Contesto|Context|Contexte|Contexto|Conto|Contoh|Contone|Dæmi|Dasar|Dead men tell no tales|Delineacao do Cenario|Delineação do Cenário|Dis is what went down|Dữ liệu|Dyagram senaryo|Dyagram Senaryo|Egzanp|Ejemplos|Eksempler|Ekzemploj|Enghreifftiau|Esbozo do escenario|Escenari|Escenario|Esempi|Esquema de l'escenari|Esquema del escenario|Esquema do Cenario|Esquema do Cenário|Examples|EXAMPLZ|Exempel|Exemple|Exemples|Exemplos|First off|Fono|Forgatókönyv|Forgatókönyv vázlat|Fundo|Geçmiş|ghantoH|Grundlage|Hannergrond|Háttér|Heave to|Istorik|Juhtumid|Keadaan|Khung kịch bản|Khung tình huống|Kịch bản|Koncept|Konsep skenario|Kontèks|Kontekst|Kontekstas|Konteksts|Kontext|Konturo de la scenaro|Latar Belakang|lut|lut chovnatlh|lutmey|Lýsing Atburðarásar|Lýsing Dæma|Menggariskan Senario|MISHUN|MISHUN SRSLY|mo'|Náčrt Scenára|Náčrt Scénáře|Náčrt Scenáru|Oris scenarija|Örnekler|Osnova|Osnova Scenára|Osnova scénáře|Osnutek|Ozadje|Paraugs|Pavyzdžiai|Példák|Piemēri|Plan du scénario|Plan du Scénario|Plan senaryo|Plan Senaryo|Plang vum Szenario|Pozadí|Pozadie|Pozadina|Príklady|Příklady|Primer|Primeri|Primjeri|Przykłady|Raamstsenaarium|Reckon it's like|Rerefons|Scenár|Scénář|Scenarie|Scenarij|Scenarijai|Scenarijaus šablonas|Scenariji|Scenārijs|Scenārijs pēc parauga|Scenarijus|Scenario|Scénario|Scenario Amlinellol|Scenario Outline|Scenario Template|Scenariomal|Scenariomall|Scenarios|Scenariu|Scenariusz|Scenaro|Schema dello scenario|Se ðe|Se the|Se þe|Senario|Senaryo|Senaryo deskripsyon|Senaryo Deskripsyon|Senaryo taslağı|Shiver me timbers|Situācija|Situai|Situasie|Situasie Uiteensetting|Skenario|Skenario konsep|Skica|Structura scenariu|Structură scenariu|Struktura scenarija|Stsenaarium|Swa|Swa hwaer swa|Swa hwær swa|Szablon scenariusza|Szenario|Szenariogrundriss|Tapaukset|Tapaus|Tapausaihio|Taust|Tausta|Template Keadaan|Template Senario|Template Situai|The thing of it is|Tình huống|Variantai|Voorbeelde|Voorbeelden|Wharrimean is|Yo-ho-ho|You'll wanna|Założenia|Παραδείγματα|Περιγραφή Σεναρίου|Σενάρια|Σενάριο|Υπόβαθρο|Кереш|Контекст|Концепт|Мисаллар|Мисоллар|Основа|Передумова|Позадина|Предистория|Предыстория|Приклади|Пример|Примери|Примеры|Рамка на сценарий|Скица|Структура сценарија|Структура сценария|Структура сценарію|Сценарий|Сценарий структураси|Сценарийның төзелеше|Сценарији|Сценарио|Сценарій|Тарих|Үрнәкләр|דוגמאות|רקע|תבנית תרחיש|תרחיש|الخلفية|الگوی سناریو|امثلة|پس منظر|زمینه|سناریو|سيناريو|سيناريو مخطط|مثالیں|منظر نامے کا خاکہ|منظرنامہ|نمونه ها|उदाहरण|परिदृश्य|परिदृश्य रूपरेखा|पृष्ठभूमि|ਉਦਾਹਰਨਾਂ|ਪਟਕਥਾ|ਪਟਕਥਾ ਢਾਂਚਾ|ਪਟਕਥਾ ਰੂਪ ਰੇਖਾ|ਪਿਛੋਕੜ|ఉదాహరణలు|కథనం|నేపథ్యం|సన్నివేశం|ಉದಾಹರಣೆಗಳು|ಕಥಾಸಾರಾಂಶ|ವಿವರಣೆ|ಹಿನ್ನೆಲೆ|โครงสร้างของเหตุการณ์|ชุดของตัวอย่าง|ชุดของเหตุการณ์|แนวคิด|สรุปเหตุการณ์|เหตุการณ์|배경|시나리오|시나리오 개요|예|サンプル|シナリオ|シナリオアウトライン|シナリオテンプレ|シナリオテンプレート|テンプレ|例|例子|剧本|剧本大纲|劇本|劇本大綱|场景|场景大纲|場景|場景大綱|背景):[^:\r\n]*/m,lookbehind:!0,inside:{important:{pattern:/(:)[^\r\n]*/,lookbehind:!0},keyword:/[^:\r\n]+:/}},"table-body":{pattern:RegExp("("+n+")(?:"+n+")+"),lookbehind:!0,inside:{outline:{pattern:/<[^>]+>/,alias:"variable"},td:{pattern:/\s*[^\s|][^|]*/,alias:"string"},punctuation:/\|/}},"table-head":{pattern:RegExp(n),inside:{th:{pattern:/\s*[^\s|][^|]*/,alias:"variable"},punctuation:/\|/}},atrule:{pattern:/(^[ \t]+)(?:'ach|'a|'ej|7|a|A také|A taktiež|A tiež|A zároveň|Aber|Ac|Adott|Akkor|Ak|Aleshores|Ale|Ali|Allora|Alors|Als|Ama|Amennyiben|Amikor|Ampak|an|AN|Ananging|And y'all|And|Angenommen|Anrhegedig a|An|Apabila|Atès|Atesa|Atunci|Avast!|Aye|A|awer|Bagi|Banjur|Bet|Biết|Blimey!|Buh|But at the end of the day I reckon|But y'all|But|BUT|Cal|Când|Cando|Cand|Ce|Cuando|Če|Ða ðe|Ða|Dadas|Dada|Dados|Dado|DaH ghu' bejlu'|dann|Dann|Dano|Dan|Dar|Dat fiind|Data|Date fiind|Date|Dati fiind|Dati|Daţi fiind|Dați fiind|Dato|DEN|Den youse gotta|Dengan|De|Diberi|Diyelim ki|Donada|Donat|Donitaĵo|Do|Dun|Duota|Ðurh|Eeldades|Ef|Eğer ki|Entao|Então|Entón|Entonces|En|Epi|E|És|Etant donnée|Etant donné|Et|Étant données|Étant donnée|Étant donné|Etant données|Etant donnés|Étant donnés|Fakat|Gangway!|Gdy|Gegeben seien|Gegeben sei|Gegeven|Gegewe|ghu' noblu'|Gitt|Given y'all|Given|Givet|Givun|Ha|Cho|I CAN HAZ|In|Ir|It's just unbelievable|I|Ja|Jeśli|Jeżeli|Kadar|Kada|Kad|Kai|Kaj|Když|Keď|Kemudian|Ketika|Khi|Kiedy|Ko|Kuid|Kui|Kun|Lan|latlh|Le sa a|Let go and haul|Le|Lè sa a|Lè|Logo|Lorsqu'<|Lorsque|mä|Maar|Mais|Mając|Majd|Maka|Manawa|Mas|Ma|Menawa|Men|Mutta|Nalikaning|Nalika|Nanging|Når|När|Nato|Nhưng|Niin|Njuk|O zaman|Og|Och|Oletetaan|Onda|Ond|Oraz|Pak|Pero|Però|Podano|Pokiaľ|Pokud|Potem|Potom|Privzeto|Pryd|qaSDI'|Quando|Quand|Quan|Så|Sed|Se|Siis|Sipoze ke|Sipoze Ke|Sipoze|Si|Şi|Și|Soit|Stel|Tada|Tad|Takrat|Tak|Tapi|Ter|Tetapi|Tha the|Tha|Then y'all|Then|Thì|Thurh|Toda|Too right|ugeholl|Und|Un|Và|vaj|Vendar|Ve|wann|Wanneer|WEN|Wenn|When y'all|When|Wtedy|Wun|Y'know|Yeah nah|Yna|Youse know like when|Youse know when youse got|Y|Za predpokladu|Za předpokladu|Zadani|Zadano|Zadan|Zadate|Zadato|Zakładając|Zaradi|Zatati|Þa þe|Þa|Þá|Þegar|Þurh|Αλλά|Δεδομένου|Και|Όταν|Τότε|А також|Агар|Але|Али|Аммо|А|Әгәр|Әйтик|Әмма|Бирок|Ва|Вә|Дадено|Дано|Допустим|Если|Задате|Задати|Задато|И|І|К тому же|Када|Кад|Когато|Когда|Коли|Ләкин|Лекин|Нәтиҗәдә|Нехай|Но|Онда|Припустимо, що|Припустимо|Пусть|Также|Та|Тогда|Тоді|То|Унда|Һәм|Якщо|אבל|אזי|אז|בהינתן|וגם|כאשר|آنگاه|اذاً|اگر|اما|اور|با فرض|بالفرض|بفرض|پھر|تب|ثم|جب|عندما|فرض کیا|لكن|لیکن|متى|هنگامی|و|अगर|और|कदा|किन्तु|चूंकि|जब|तथा|तदा|तब|परन्तु|पर|यदि|ਅਤੇ|ਜਦੋਂ|ਜਿਵੇਂ ਕਿ|ਜੇਕਰ|ਤਦ|ਪਰ|అప్పుడు|ఈ పరిస్థితిలో|కాని|చెప్పబడినది|మరియు|ಆದರೆ|ನಂತರ|ನೀಡಿದ|ಮತ್ತು|ಸ್ಥಿತಿಯನ್ನು|กำหนดให้|ดังนั้น|แต่|เมื่อ|และ|그러면<|그리고<|단<|만약<|만일<|먼저<|조건<|하지만<|かつ<|しかし<|ただし<|ならば<|もし<|並且<|但し<|但是<|假如<|假定<|假設<|假设<|前提<|同时<|同時<|并且<|当<|當<|而且<|那么<|那麼<)(?=[ \t])/m,lookbehind:!0},string:{pattern:/"(?:\\.|[^"\\\r\n])*"|'(?:\\.|[^'\\\r\n])*'/,inside:{outline:{pattern:/<[^>]+>/,alias:"variable"}}},outline:{pattern:/<[^>]+>/,alias:"variable"}}}e.exports=t,t.displayName="gherkin",t.aliases=[]},13600(e){"use strict";function t(e){e.languages.git={comment:/^#.*/m,deleted:/^[-–].*/m,inserted:/^\+.*/m,string:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/m,command:{pattern:/^.*\$ git .*$/m,inside:{parameter:/\s--?\w+/m}},coord:/^@@.*@@$/m,"commit-sha1":/^commit \w{40}$/m}}e.exports=t,t.displayName="git",t.aliases=[]},3322(e,t,n){"use strict";var r=n(65806);function i(e){e.register(r),e.languages.glsl=e.languages.extend("c",{keyword:/\b(?:attribute|const|uniform|varying|buffer|shared|coherent|volatile|restrict|readonly|writeonly|atomic_uint|layout|centroid|flat|smooth|noperspective|patch|sample|break|continue|do|for|while|switch|case|default|if|else|subroutine|in|out|inout|float|double|int|void|bool|true|false|invariant|precise|discard|return|d?mat[234](?:x[234])?|[ibdu]?vec[234]|uint|lowp|mediump|highp|precision|[iu]?sampler[123]D|[iu]?samplerCube|sampler[12]DShadow|samplerCubeShadow|[iu]?sampler[12]DArray|sampler[12]DArrayShadow|[iu]?sampler2DRect|sampler2DRectShadow|[iu]?samplerBuffer|[iu]?sampler2DMS(?:Array)?|[iu]?samplerCubeArray|samplerCubeArrayShadow|[iu]?image[123]D|[iu]?image2DRect|[iu]?imageCube|[iu]?imageBuffer|[iu]?image[12]DArray|[iu]?imageCubeArray|[iu]?image2DMS(?:Array)?|struct|common|partition|active|asm|class|union|enum|typedef|template|this|resource|goto|inline|noinline|public|static|extern|external|interface|long|short|half|fixed|unsigned|superp|input|output|hvec[234]|fvec[234]|sampler3DRect|filter|sizeof|cast|namespace|using)\b/})}e.exports=i,i.displayName="glsl",i.aliases=[]},53877(e){"use strict";function t(e){e.languages.gamemakerlanguage=e.languages.gml=e.languages.extend("clike",{keyword:/\b(?:if|else|switch|case|default|break|for|repeat|while|do|until|continue|exit|return|globalvar|var|enum)\b/,number:/(?:\b0x[\da-f]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ulf]{0,4}/i,operator:/[-+%=]=?|!=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]|\b(?:or|and|not|with|at|xor)\b/,constant:/\b(?:self|other|all|noone|global|local|undefined|pointer_(?:invalid|null)|action_(?:stop|restart|continue|reverse)|pi|GM_build_date|GM_version|timezone_(?:local|utc)|gamespeed_(?:fps|microseconds)|ev_(?:create|destroy|step|alarm|keyboard|mouse|collision|other|draw|draw_(?:begin|end|pre|post)|keypress|keyrelease|trigger|(?:left|right|middle|no)_button|(?:left|right|middle)_press|(?:left|right|middle)_release|mouse_(?:enter|leave|wheel_up|wheel_down)|global_(?:left|right|middle)_button|global_(?:left|right|middle)_press|global_(?:left|right|middle)_release|joystick(?:1|2)_(?:left|right|up|down|button1|button2|button3|button4|button5|button6|button7|button8)|outside|boundary|game_start|game_end|room_start|room_end|no_more_lives|animation_end|end_of_path|no_more_health|user\d|step_(?:normal|begin|end)|gui|gui_begin|gui_end)|vk_(?:nokey|anykey|enter|return|shift|control|alt|escape|space|backspace|tab|pause|printscreen|left|right|up|down|home|end|delete|insert|pageup|pagedown|f\d|numpad\d|divide|multiply|subtract|add|decimal|lshift|lcontrol|lalt|rshift|rcontrol|ralt)|mb_(?:any|none|left|right|middle)|c_(?:aqua|black|blue|dkgray|fuchsia|gray|green|lime|ltgray|maroon|navy|olive|purple|red|silver|teal|white|yellow|orange)|fa_(?:left|center|right|top|middle|bottom|readonly|hidden|sysfile|volumeid|directory|archive)|pr_(?:pointlist|linelist|linestrip|trianglelist|trianglestrip|trianglefan)|bm_(?:complex|normal|add|max|subtract|zero|one|src_colour|inv_src_colour|src_color|inv_src_color|src_alpha|inv_src_alpha|dest_alpha|inv_dest_alpha|dest_colour|inv_dest_colour|dest_color|inv_dest_color|src_alpha_sat)|audio_(?:falloff_(?:none|inverse_distance|inverse_distance_clamped|linear_distance|linear_distance_clamped|exponent_distance|exponent_distance_clamped)|old_system|new_system|mono|stereo|3d)|cr_(?:default|none|arrow|cross|beam|size_nesw|size_ns|size_nwse|size_we|uparrow|hourglass|drag|appstart|handpoint|size_all)|asset_(?:object|unknown|sprite|sound|room|path|script|font|timeline|tiles|shader)|ds_type_(?:map|list|stack|queue|grid|priority)|ef_(?:explosion|ring|ellipse|firework|smoke|smokeup|star|spark|flare|cloud|rain|snow)|pt_shape_(?:pixel|disk|square|line|star|circle|ring|sphere|flare|spark|explosion|cloud|smoke|snow)|ps_(?:distr|shape)_(?:linear|gaussian|invgaussian|rectangle|ellipse|diamond|line)|ty_(?:real|string)|dll_(?:cdel|cdecl|stdcall)|matrix_(?:view|projection|world)|os_(?:win32|windows|macosx|ios|android|linux|unknown|winphone|win8native|psvita|ps4|xboxone|ps3|uwp)|browser_(?:not_a_browser|unknown|ie|firefox|chrome|safari|safari_mobile|opera|tizen|windows_store|ie_mobile)|device_ios_(?:unknown|iphone|iphone_retina|ipad|ipad_retina|iphone5|iphone6|iphone6plus)|device_(?:emulator|tablet)|display_(?:landscape|landscape_flipped|portrait|portrait_flipped)|of_challenge_(?:win|lose|tie)|leaderboard_type_(?:number|time_mins_secs)|cmpfunc_(?:never|less|equal|lessequal|greater|notequal|greaterequal|always)|cull_(?:noculling|clockwise|counterclockwise)|lighttype_(?:dir|point)|iap_(?:ev_storeload|ev_product|ev_purchase|ev_consume|ev_restore|storeload_ok|storeload_failed|status_uninitialised|status_unavailable|status_loading|status_available|status_processing|status_restoring|failed|unavailable|available|purchased|canceled|refunded)|fb_login_(?:default|fallback_to_webview|no_fallback_to_webview|forcing_webview|use_system_account|forcing_safari)|phy_joint_(?:anchor_1_x|anchor_1_y|anchor_2_x|anchor_2_y|reaction_force_x|reaction_force_y|reaction_torque|motor_speed|angle|motor_torque|max_motor_torque|translation|speed|motor_force|max_motor_force|length_1|length_2|damping_ratio|frequency|lower_angle_limit|upper_angle_limit|angle_limits|max_length|max_torque|max_force)|phy_debug_render_(?:aabb|collision_pairs|coms|core_shapes|joints|obb|shapes)|phy_particle_flag_(?:water|zombie|wall|spring|elastic|viscous|powder|tensile|colourmixing|colormixing)|phy_particle_group_flag_(?:solid|rigid)|phy_particle_data_flag_(?:typeflags|position|velocity|colour|color|category)|achievement_(?:our_info|friends_info|leaderboard_info|info|filter_(?:all_players|friends_only|favorites_only)|type_challenge|type_score_challenge|pic_loaded|show_(?:ui|profile|leaderboard|achievement|bank|friend_picker|purchase_prompt))|network_(?:socket_(?:tcp|udp|bluetooth)|type_(?:connect|disconnect|data|non_blocking_connect)|config_(?:connect_timeout|use_non_blocking_socket|enable_reliable_udp|disable_reliable_udp))|buffer_(?:fixed|grow|wrap|fast|vbuffer|network|u8|s8|u16|s16|u32|s32|u64|f16|f32|f64|bool|text|string|seek_start|seek_relative|seek_end|generalerror|outofspace|outofbounds|invalidtype)|gp_(?:face\d|shoulderl|shoulderr|shoulderlb|shoulderrb|select|start|stickl|stickr|padu|padd|padl|padr|axislh|axislv|axisrh|axisrv)|ov_(?:friends|community|players|settings|gamegroup|achievements)|lb_sort_(?:none|ascending|descending)|lb_disp_(?:none|numeric|time_sec|time_ms)|ugc_(?:result_success|filetype_(?:community|microtrans)|visibility_(?:public|friends_only|private)|query_RankedBy(?:Vote|PublicationDate|Trend|NumTimesReported|TotalVotesAsc|VotesUp|TextSearch)|query_(?:AcceptedForGameRankedByAcceptanceDate|FavoritedByFriendsRankedByPublicationDate|CreatedByFriendsRankedByPublicationDate|NotYetRated)|sortorder_CreationOrder(?:Desc|Asc)|sortorder_(?:TitleAsc|LastUpdatedDesc|SubscriptionDateDesc|VoteScoreDesc|ForModeration)|list_(?:Published|VotedOn|VotedUp|VotedDown|WillVoteLater|Favorited|Subscribed|UsedOrPlayed|Followed)|match_(?:Items|Items_Mtx|Items_ReadyToUse|Collections|Artwork|Videos|Screenshots|AllGuides|WebGuides|IntegratedGuides|UsableInGame|ControllerBindings))|vertex_usage_(?:position|colour|color|normal|texcoord|textcoord|blendweight|blendindices|psize|tangent|binormal|fog|depth|sample)|vertex_type_(?:float\d|colour|color|ubyte4)|layerelementtype_(?:undefined|background|instance|oldtilemap|sprite|tilemap|particlesystem|tile)|tile_(?:rotate|flip|mirror|index_mask)|input_type|se_(?:chorus|compressor|echo|equalizer|flanger|gargle|none|reverb)|text_type|(?:obj|scr|spr|rm)\w+)\b/,variable:/\b(?:x|y|(?:x|y)(?:previous|start)|(?:h|v)speed|direction|speed|friction|gravity|gravity_direction|path_(?:index|position|positionprevious|speed|scale|orientation|endaction)|object_index|id|solid|persistent|mask_index|instance_(?:count|id)|alarm|timeline_(?:index|position|speed|running|loop)|visible|sprite_(?:index|width|height|xoffset|yoffset)|image_(?:number|index|speed|depth|xscale|yscale|angle|alpha|blend)|bbox_(?:left|right|top|bottom)|layer|phy_(?:rotation|(?:position|linear_velocity|speed|com|collision|col_normal)_(?:x|y)|angular_(?:velocity|damping)|position_(?:x|y)previous|speed|linear_damping|bullet|fixed_rotation|active|mass|inertia|dynamic|kinematic|sleeping|collision_points)|working_directory|webgl_enabled|view_(?:(?:y|x|w|h)view|(?:y|x|w|h)port|(?:v|h)(?:speed|border)|visible|surface_id|object|enabled|current|angle)|undefined|transition_(?:steps|kind|color)|temp_directory|show_(?:score|lives|health)|secure_mode|score|room_(?:width|speed|persistent|last|height|first|caption)|room|pointer_(?:null|invalid)|os_(?:version|type|device|browser)|mouse_(?:y|x|lastbutton|button)|lives|keyboard_(?:string|lastkey|lastchar|key)|iap_data|health|gamemaker_(?:version|registered|pro)|game_(?:save|project|display)_(?:id|name)|fps_real|fps|event_(?:type|object|number|action)|error_(?:occurred|last)|display_aa|delta_time|debug_mode|cursor_sprite|current_(?:year|weekday|time|second|month|minute|hour|day)|caption_(?:score|lives|health)|browser_(?:width|height)|background_(?:yscale|y|xscale|x|width|vtiled|vspeed|visible|showcolour|showcolor|index|htiled|hspeed|height|foreground|colour|color|blend|alpha)|async_load|application_surface|argument(?:_relitive|_count|\d)|argument|global|local|self|other)\b/})}e.exports=t,t.displayName="gml",t.aliases=[]},51519(e){"use strict";function t(e){e.languages.go=e.languages.extend("clike",{string:{pattern:/(["'`])(?:\\[\s\S]|(?!\1)[^\\])*\1/,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|iota|nil|true|false)\b/,number:/(?:\b0x[a-f\d]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[-+]?\d+)?)i?/i,operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:bool|byte|complex(?:64|128)|error|float(?:32|64)|rune|string|u?int(?:8|16|32|64)?|uintptr|append|cap|close|complex|copy|delete|imag|len|make|new|panic|print(?:ln)?|real|recover)\b/}),delete e.languages.go["class-name"]}e.exports=t,t.displayName="go",t.aliases=[]},94055(e){"use strict";function t(e){e.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:e.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:true|false)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/[A-Z]\w*Input(?=!?.*$)/m,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},e.hooks.add("after-tokenize",function(e){if("graphql"===e.language){for(var t=e.tokens.filter(function(e){return"string"!=typeof e&&"comment"!==e.type&&"scalar"!==e.type}),n=0;n0)){var s=d(/^\{$/,/^\}$/);if(-1===s)continue;for(var u=n;u=0&&h(c,"variable-input")}}}}}function l(e){return t[n+e]}function f(e,t){t=t||0;for(var n=0;n]?|\+[+=]?|!=?|<(?:<=?|=>?)?|>(?:>>?=?|=)?|&[&=]?|\|[|=]?|\/=?|\^=?|%=?)/,lookbehind:!0},punctuation:/\.+|[{}[\];(),:$]/}),e.languages.insertBefore("groovy","string",{shebang:{pattern:/#!.+/,alias:"comment"}}),e.languages.insertBefore("groovy","punctuation",{"spock-block":/\b(?:setup|given|when|then|and|cleanup|expect|where):/}),e.languages.insertBefore("groovy","function",{annotation:{pattern:/(^|[^.])@\w+/,lookbehind:!0,alias:"punctuation"}}),e.hooks.add("wrap",function(t){if("groovy"===t.language&&"string"===t.type){var n=t.content.value[0];if("'"!=n){var r=/([^\\])(?:\$(?:\{.*?\}|[\w.]+))/;"$"===n&&(r=/([^\$])(?:\$(?:\{.*?\}|[\w.]+))/),t.content.value=t.content.value.replace(/</g,"<").replace(/&/g,"&"),t.content=e.highlight(t.content.value,{expression:{pattern:r,lookbehind:!0,inside:e.languages.groovy}}),t.classes.push("/"===n?"regex":"gstring")}}})}e.exports=t,t.displayName="groovy",t.aliases=[]},29536(e,t,n){"use strict";var r=n(56939);function i(e){e.register(r),function(e){e.languages.haml={"multiline-comment":{pattern:/((?:^|\r?\n|\r)([\t ]*))(?:\/|-#).*(?:(?:\r?\n|\r)\2[\t ].+)*/,lookbehind:!0,alias:"comment"},"multiline-code":[{pattern:/((?:^|\r?\n|\r)([\t ]*)(?:[~-]|[&!]?=)).*,[\t ]*(?:(?:\r?\n|\r)\2[\t ].*,[\t ]*)*(?:(?:\r?\n|\r)\2[\t ].+)/,lookbehind:!0,inside:e.languages.ruby},{pattern:/((?:^|\r?\n|\r)([\t ]*)(?:[~-]|[&!]?=)).*\|[\t ]*(?:(?:\r?\n|\r)\2[\t ].*\|[\t ]*)*/,lookbehind:!0,inside:e.languages.ruby}],filter:{pattern:/((?:^|\r?\n|\r)([\t ]*)):[\w-]+(?:(?:\r?\n|\r)(?:\2[\t ].+|\s*?(?=\r?\n|\r)))+/,lookbehind:!0,inside:{"filter-name":{pattern:/^:[\w-]+/,alias:"variable"}}},markup:{pattern:/((?:^|\r?\n|\r)[\t ]*)<.+/,lookbehind:!0,inside:e.languages.markup},doctype:{pattern:/((?:^|\r?\n|\r)[\t ]*)!!!(?: .+)?/,lookbehind:!0},tag:{pattern:/((?:^|\r?\n|\r)[\t ]*)[%.#][\w\-#.]*[\w\-](?:\([^)]+\)|\{(?:\{[^}]+\}|[^{}])+\}|\[[^\]]+\])*[\/<>]*/,lookbehind:!0,inside:{attributes:[{pattern:/(^|[^#])\{(?:\{[^}]+\}|[^{}])+\}/,lookbehind:!0,inside:e.languages.ruby},{pattern:/\([^)]+\)/,inside:{"attr-value":{pattern:/(=\s*)(?:"(?:\\.|[^\\"\r\n])*"|[^)\s]+)/,lookbehind:!0},"attr-name":/[\w:-]+(?=\s*!?=|\s*[,)])/,punctuation:/[=(),]/}},{pattern:/\[[^\]]+\]/,inside:e.languages.ruby}],punctuation:/[<>]/}},code:{pattern:/((?:^|\r?\n|\r)[\t ]*(?:[~-]|[&!]?=)).+/,lookbehind:!0,inside:e.languages.ruby},interpolation:{pattern:/#\{[^}]+\}/,inside:{delimiter:{pattern:/^#\{|\}$/,alias:"punctuation"},rest:e.languages.ruby}},punctuation:{pattern:/((?:^|\r?\n|\r)[\t ]*)[~=\-&!]+/,lookbehind:!0}};for(var t="((?:^|\\r?\\n|\\r)([\\t ]*)):{{filter_name}}(?:(?:\\r?\\n|\\r)(?:\\2[\\t ].+|\\s*?(?=\\r?\\n|\\r)))+",n=["css",{filter:"coffee",language:"coffeescript"},"erb","javascript","less","markdown","ruby","scss","textile"],r={},i=0,a=n.length;i@\[\\\]^`{|}~]/,variable:/[^!"#%&'()*+,\/;<=>@\[\\\]^`{|}~\s]+/},t.hooks.add("before-tokenize",function(e){var n=/\{\{\{[\s\S]+?\}\}\}|\{\{[\s\S]+?\}\}/g;t.languages["markup-templating"].buildPlaceholders(e,"handlebars",n)}),t.hooks.add("after-tokenize",function(e){t.languages["markup-templating"].tokenizePlaceholders(e,"handlebars")}),t.languages.hbs=t.languages.handlebars}e.exports=i,i.displayName="handlebars",i.aliases=["hbs"]},58090(e){"use strict";function t(e){e.languages.haskell={comment:{pattern:/(^|[^-!#$%*+=?&@|~.:<>^\\\/])(?:--(?:(?=.)[^-!#$%*+=?&@|~.:<>^\\\/].*|$)|\{-[\s\S]*?-\})/m,lookbehind:!0},char:{pattern:/'(?:[^\\']|\\(?:[abfnrtv\\"'&]|\^[A-Z@[\]^_]|NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|\d+|o[0-7]+|x[0-9a-fA-F]+))'/,alias:"string"},string:{pattern:/"(?:[^\\"]|\\(?:\S|\s+\\))*"/,greedy:!0},keyword:/\b(?:case|class|data|deriving|do|else|if|in|infixl|infixr|instance|let|module|newtype|of|primitive|then|type|where)\b/,"import-statement":{pattern:/(^[\t ]*)import\s+(?:qualified\s+)?(?:[A-Z][\w']*)(?:\.[A-Z][\w']*)*(?:\s+as\s+(?:[A-Z][\w']*)(?:\.[A-Z][\w']*)*)?(?:\s+hiding\b)?/m,lookbehind:!0,inside:{keyword:/\b(?:import|qualified|as|hiding)\b/}},builtin:/\b(?:abs|acos|acosh|all|and|any|appendFile|approxRational|asTypeOf|asin|asinh|atan|atan2|atanh|basicIORun|break|catch|ceiling|chr|compare|concat|concatMap|const|cos|cosh|curry|cycle|decodeFloat|denominator|digitToInt|div|divMod|drop|dropWhile|either|elem|encodeFloat|enumFrom|enumFromThen|enumFromThenTo|enumFromTo|error|even|exp|exponent|fail|filter|flip|floatDigits|floatRadix|floatRange|floor|fmap|foldl|foldl1|foldr|foldr1|fromDouble|fromEnum|fromInt|fromInteger|fromIntegral|fromRational|fst|gcd|getChar|getContents|getLine|group|head|id|inRange|index|init|intToDigit|interact|ioError|isAlpha|isAlphaNum|isAscii|isControl|isDenormalized|isDigit|isHexDigit|isIEEE|isInfinite|isLower|isNaN|isNegativeZero|isOctDigit|isPrint|isSpace|isUpper|iterate|last|lcm|length|lex|lexDigits|lexLitChar|lines|log|logBase|lookup|map|mapM|mapM_|max|maxBound|maximum|maybe|min|minBound|minimum|mod|negate|not|notElem|null|numerator|odd|or|ord|otherwise|pack|pi|pred|primExitWith|print|product|properFraction|putChar|putStr|putStrLn|quot|quotRem|range|rangeSize|read|readDec|readFile|readFloat|readHex|readIO|readInt|readList|readLitChar|readLn|readOct|readParen|readSigned|reads|readsPrec|realToFrac|recip|rem|repeat|replicate|return|reverse|round|scaleFloat|scanl|scanl1|scanr|scanr1|seq|sequence|sequence_|show|showChar|showInt|showList|showLitChar|showParen|showSigned|showString|shows|showsPrec|significand|signum|sin|sinh|snd|sort|span|splitAt|sqrt|subtract|succ|sum|tail|take|takeWhile|tan|tanh|threadToIOResult|toEnum|toInt|toInteger|toLower|toRational|toUpper|truncate|uncurry|undefined|unlines|until|unwords|unzip|unzip3|userError|words|writeFile|zip|zip3|zipWith|zipWith3)\b/,number:/\b(?:\d+(?:\.\d+)?(?:e[+-]?\d+)?|0o[0-7]+|0x[0-9a-f]+)\b/i,operator:/\s\.\s|[-!#$%*+=?&@|~:<>^\\\/]*\.[-!#$%*+=?&@|~.:<>^\\\/]+|[-!#$%*+=?&@|~.:<>^\\\/]+\.[-!#$%*+=?&@|~:<>^\\\/]*|[-!#$%*+=?&@|~:<>^\\\/]+|`(?:[A-Z][\w']*\.)*[_a-z][\w']*`/,hvariable:/\b(?:[A-Z][\w']*\.)*[_a-z][\w']*\b/,constant:/\b(?:[A-Z][\w']*\.)*[A-Z][\w']*\b/,punctuation:/[{}[\];(),.:]/},e.languages.hs=e.languages.haskell}e.exports=t,t.displayName="haskell",t.aliases=["hs"]},95121(e){"use strict";function t(e){e.languages.haxe=e.languages.extend("clike",{string:{pattern:/(["'])(?:(?!\1)[^\\]|\\[\s\S])*\1/,greedy:!0,inside:{interpolation:{pattern:/(^|[^\\])\$(?:\w+|\{[^}]+\})/,lookbehind:!0,inside:{interpolation:{pattern:/^\$\w*/,alias:"variable"}}}}},keyword:/\bthis\b|\b(?:abstract|as|break|case|cast|catch|class|continue|default|do|dynamic|else|enum|extends|extern|from|for|function|if|implements|import|in|inline|interface|macro|new|null|override|public|private|return|static|super|switch|throw|to|try|typedef|using|var|while)(?!\.)\b/,operator:/\.{3}|\+\+?|-[->]?|[=!]=?|&&?|\|\|?|<[<=]?|>[>=]?|[*\/%~^]/}),e.languages.insertBefore("haxe","class-name",{regex:{pattern:/~\/(?:[^\/\\\r\n]|\\.)+\/[igmsu]*/,greedy:!0}}),e.languages.insertBefore("haxe","keyword",{preprocessor:{pattern:/#\w+/,alias:"builtin"},metadata:{pattern:/@:?\w+/,alias:"symbol"},reification:{pattern:/\$(?:\w+|(?=\{))/,alias:"variable"}}),e.languages.haxe.string.inside.interpolation.inside.rest=e.languages.haxe,delete e.languages.haxe["class-name"]}e.exports=t,t.displayName="haxe",t.aliases=[]},59904(e){"use strict";function t(e){e.languages.hcl={comment:/(?:\/\/|#).*|\/\*[\s\S]*?(?:\*\/|$)/,heredoc:{pattern:/<<-?(\w+\b)[\s\S]*?^[ \t]*\1/m,greedy:!0,alias:"string"},keyword:[{pattern:/(?:resource|data)\s+(?:"(?:\\[\s\S]|[^\\"])*")(?=\s+"[\w-]+"\s+\{)/i,inside:{type:{pattern:/(resource|data|\s+)(?:"(?:\\[\s\S]|[^\\"])*")/i,lookbehind:!0,alias:"variable"}}},{pattern:/(?:provider|provisioner|variable|output|module|backend)\s+(?:[\w-]+|"(?:\\[\s\S]|[^\\"])*")\s+(?=\{)/i,inside:{type:{pattern:/(provider|provisioner|variable|output|module|backend)\s+(?:[\w-]+|"(?:\\[\s\S]|[^\\"])*")\s+/i,lookbehind:!0,alias:"variable"}}},/[\w-]+(?=\s+\{)/],property:[/[-\w\.]+(?=\s*=(?!=))/,/"(?:\\[\s\S]|[^\\"])+"(?=\s*[:=])/],string:{pattern:/"(?:[^\\$"]|\\[\s\S]|\$(?:(?=")|\$+(?!\$)|[^"${])|\$\{(?:[^{}"]|"(?:[^\\"]|\\[\s\S])*")*\})*"/,greedy:!0,inside:{interpolation:{pattern:/(^|[^$])\$\{(?:[^{}"]|"(?:[^\\"]|\\[\s\S])*")*\}/,lookbehind:!0,inside:{type:{pattern:/(\b(?:terraform|var|self|count|module|path|data|local)\b\.)[\w\*]+/i,lookbehind:!0,alias:"variable"},keyword:/\b(?:terraform|var|self|count|module|path|data|local)\b/i,function:/\w+(?=\()/,string:{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0},number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?(?:e[+-]?\d+)?/i,punctuation:/[!\$#%&'()*+,.\/;<=>@\[\\\]^`{|}~?:]/}}}},number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?(?:e[+-]?\d+)?/i,boolean:/\b(?:true|false)\b/i,punctuation:/[=\[\]{}]/}}e.exports=t,t.displayName="hcl",t.aliases=[]},9436(e,t,n){"use strict";var r=n(65806);function i(e){e.register(r),e.languages.hlsl=e.languages.extend("c",{"class-name":[e.languages.c["class-name"],/\b(?:AppendStructuredBuffer|BlendState|Buffer|ByteAddressBuffer|CompileShader|ComputeShader|ConsumeStructuredBuffer|DepthStencilState|DepthStencilView|DomainShader|GeometryShader|Hullshader|InputPatch|LineStream|OutputPatch|PixelShader|PointStream|RasterizerState|RenderTargetView|RWBuffer|RWByteAddressBuffer|RWStructuredBuffer|RWTexture(?:1D|1DArray|2D|2DArray|3D)|SamplerComparisonState|SamplerState|StructuredBuffer|Texture(?:1D|1DArray|2D|2DArray|2DMS|2DMSArray|3D|Cube|CubeArray)|TriangleStream|VertexShader)\b/],keyword:[/\b(?:asm|asm_fragment|auto|break|case|catch|cbuffer|centroid|char|class|column_major|compile|compile_fragment|const|const_cast|continue|default|delete|discard|do|dynamic_cast|else|enum|explicit|export|extern|for|friend|fxgroup|goto|groupshared|if|in|inline|inout|interface|line|lineadj|linear|long|matrix|mutable|namespace|new|nointerpolation|noperspective|operator|out|packoffset|pass|pixelfragment|point|precise|private|protected|public|register|reinterpret_cast|return|row_major|sample|sampler|shared|short|signed|sizeof|snorm|stateblock|stateblock_state|static|static_cast|string|struct|switch|tbuffer|technique|technique10|technique11|template|texture|this|throw|triangle|triangleadj|try|typedef|typename|uniform|union|unorm|unsigned|using|vector|vertexfragment|virtual|void|volatile|while)\b/,/\b(?:bool|double|dword|float|half|int|min(?:10float|12int|16(?:float|int|uint))|uint)(?:[1-4](?:x[1-4])?)?\b/],number:/(?:(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[eE][+-]?\d+)?|\b0x[\da-fA-F]+)[fFhHlLuU]?\b/,boolean:/\b(?:false|true)\b/})}e.exports=i,i.displayName="hlsl",i.aliases=[]},76942(e){"use strict";function t(e){e.languages.hpkp={directive:{pattern:/\b(?:(?:includeSubDomains|preload|strict)(?: |;)|pin-sha256="[a-zA-Z\d+=/]+"|(?:max-age|report-uri)=|report-to )/,alias:"keyword"},safe:{pattern:/\b\d{7,}\b/,alias:"selector"},unsafe:{pattern:/\b\d{1,6}\b/,alias:"function"}}}e.exports=t,t.displayName="hpkp",t.aliases=[]},60561(e){"use strict";function t(e){e.languages.hsts={directive:{pattern:/\b(?:max-age=|includeSubDomains|preload)/,alias:"keyword"},safe:{pattern:/\b\d{8,}\b/,alias:"selector"},unsafe:{pattern:/\b\d{1,7}\b/,alias:"function"}}}e.exports=t,t.displayName="hsts",t.aliases=[]},49660(e){"use strict";function t(e){!function(e){e.languages.http={"request-line":{pattern:/^(?:GET|HEAD|POST|PUT|DELETE|CONNECT|OPTIONS|TRACE|PATCH|PRI|SEARCH)\s(?:https?:\/\/|\/)\S*\sHTTP\/[0-9.]+/m,inside:{method:{pattern:/^[A-Z]+\b/,alias:"property"},"request-target":{pattern:/^(\s)(?:https?:\/\/|\/)\S*(?=\s)/,lookbehind:!0,alias:"url",inside:e.languages.uri},"http-version":{pattern:/^(\s)HTTP\/[0-9.]+/,lookbehind:!0,alias:"property"}}},"response-status":{pattern:/^HTTP\/[0-9.]+ \d+ .+/m,inside:{"http-version":{pattern:/^HTTP\/[0-9.]+/,alias:"property"},"status-code":{pattern:/^(\s)\d+(?=\s)/,lookbehind:!0,alias:"number"},"reason-phrase":{pattern:/^(\s).+/,lookbehind:!0,alias:"string"}}},"header-name":{pattern:/^[\w-]+:(?=.)/m,alias:"keyword"}};var t,n=e.languages,r={"application/javascript":n.javascript,"application/json":n.json||n.javascript,"application/xml":n.xml,"text/xml":n.xml,"text/html":n.html,"text/css":n.css},i={"application/json":!0,"application/xml":!0};function a(e){var t="\\w+/(?:[\\w.-]+\\+)+"+e.replace(/^[a-z]+\//,"")+"(?![+\\w.-])";return"(?:"+e+"|"+t+")"}for(var o in r)if(r[o]){t=t||{};var s=i[o]?a(o):o;t[o.replace(/\//g,"-")]={pattern:RegExp("(content-type:\\s*"+s+"(?:(?:\\r\\n?|\\n).+)*)(?:\\r?\\n|\\r){2}[\\s\\S]*","i"),lookbehind:!0,inside:r[o]}}t&&e.languages.insertBefore("http","header-name",t)}(e)}e.exports=t,t.displayName="http",t.aliases=[]},30615(e){"use strict";function t(e){e.languages.ichigojam={comment:/(?:\B'|REM)(?:[^\n\r]*)/i,string:{pattern:/"(?:""|[!#$%&'()*,\/:;<=>?^\w +\-.])*"/i,greedy:!0},number:/\B#[0-9A-F]+|\B`[01]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:E[+-]?\d+)?/i,keyword:/\b(?:BEEP|BPS|CASE|CLEAR|CLK|CLO|CLP|CLS|CLT|CLV|CONT|COPY|ELSE|END|FILE|FILES|FOR|GOSUB|GSB|GOTO|IF|INPUT|KBD|LED|LET|LIST|LOAD|LOCATE|LRUN|NEW|NEXT|OUT|RIGHT|PLAY|POKE|PRINT|PWM|REM|RENUM|RESET|RETURN|RTN|RUN|SAVE|SCROLL|SLEEP|SRND|STEP|STOP|SUB|TEMPO|THEN|TO|UART|VIDEO|WAIT)(?:\$|\b)/i,function:/\b(?:ABS|ANA|ASC|BIN|BTN|DEC|END|FREE|HELP|HEX|I2CR|I2CW|IN|INKEY|LEN|LINE|PEEK|RND|SCR|SOUND|STR|TICK|USR|VER|VPEEK|ZER)(?:\$|\b)/i,label:/(?:\B@\S+)/i,operator:/<[=>]?|>=?|\|\||&&|[+\-*\/=|&^~!]|\b(?:AND|NOT|OR)\b/i,punctuation:/[\[,;:()\]]/}}e.exports=t,t.displayName="ichigojam",t.aliases=[]},93865(e){"use strict";function t(e){e.languages.icon={comment:/#.*/,string:{pattern:/(["'])(?:(?!\1)[^\\\r\n_]|\\.|_(?!\1)(?:\r\n|[\s\S]))*\1/,greedy:!0},number:/\b(?:\d+r[a-z\d]+|\d+(?:\.\d+)?(?:e[+-]?\d+)?)\b|\.\d+\b/i,"builtin-keyword":{pattern:/&(?:allocated|ascii|clock|collections|cset|current|date|dateline|digits|dump|e|error(?:number|text|value)?|errout|fail|features|file|host|input|lcase|letters|level|line|main|null|output|phi|pi|pos|progname|random|regions|source|storage|subject|time|trace|ucase|version)\b/,alias:"variable"},directive:{pattern:/\$\w+/,alias:"builtin"},keyword:/\b(?:break|by|case|create|default|do|else|end|every|fail|global|if|initial|invocable|link|local|next|not|of|procedure|record|repeat|return|static|suspend|then|to|until|while)\b/,function:/\b(?!\d)\w+(?=\s*[({]|\s*!\s*\[)/,operator:/[+-]:(?!=)|(?:[\/?@^%&]|\+\+?|--?|==?=?|~==?=?|\*\*?|\|\|\|?|<(?:->?|>?=?)(?::=)?|:(?:=:?)?|[!.\\|~]/,punctuation:/[\[\](){},;]/}}e.exports=t,t.displayName="icon",t.aliases=[]},51078(e){"use strict";function t(e){!function(e){function t(e,n){return n<=0?/[]/.source:e.replace(//g,function(){return t(e,n-1)})}var n=/'[{}:=,](?:[^']|'')*'(?!')/,r={pattern:/''/,greedy:!0,alias:"operator"},i={pattern:n,greedy:!0,inside:{escape:r}},a=t(/\{(?:[^{}']|'(?![{},'])|''||)*\}/.source.replace(//g,function(){return n.source}),8),o={pattern:RegExp(a),inside:{message:{pattern:/^(\{)[\s\S]+(?=\}$)/,lookbehind:!0,inside:null},"message-delimiter":{pattern:/./,alias:"punctuation"}}};e.languages["icu-message-format"]={argument:{pattern:RegExp(a),greedy:!0,inside:{content:{pattern:/^(\{)[\s\S]+(?=\}$)/,lookbehind:!0,inside:{"argument-name":{pattern:/^(\s*)[^{}:=,\s]+/,lookbehind:!0},"choice-style":{pattern:/^(\s*,\s*choice\s*,\s*)\S(?:[\s\S]*\S)?/,lookbehind:!0,inside:{punctuation:/\|/,range:{pattern:/^(\s*)[+-]?(?:\d+(?:\.\d*)?|\u221e)\s*[<#\u2264]/,lookbehind:!0,inside:{operator:/[<#\u2264]/,number:/\S+/}},rest:null}},"plural-style":{pattern:/^(\s*,\s*(?:plural|selectordinal)\s*,\s*)\S(?:[\s\S]*\S)?/,lookbehind:!0,inside:{offset:/^offset:\s*\d+/,"nested-message":o,selector:{pattern:/=\d+|[^{}:=,\s]+/,inside:{keyword:/^(?:zero|one|two|few|many|other)$/}}}},"select-style":{pattern:/^(\s*,\s*select\s*,\s*)\S(?:[\s\S]*\S)?/,lookbehind:!0,inside:{"nested-message":o,selector:{pattern:/[^{}:=,\s]+/,inside:{keyword:/^other$/}}}},keyword:/\b(?:choice|plural|select|selectordinal)\b/,"arg-type":{pattern:/\b(?:number|date|time|spellout|ordinal|duration)\b/,alias:"keyword"},"arg-skeleton":{pattern:/(,\s*)::[^{}:=,\s]+/,lookbehind:!0},"arg-style":{pattern:/(,\s*)(?:short|medium|long|full|integer|currency|percent)(?=\s*$)/,lookbehind:!0},"arg-style-text":{pattern:RegExp(/(^\s*,\s*(?=\S))/.source+t(/(?:[^{}']|'[^']*'|\{(?:)?\})+/.source,8)+"$"),lookbehind:!0,alias:"string"},punctuation:/,/}},"argument-delimiter":{pattern:/./,alias:"operator"}}},escape:r,string:i},o.inside.message.inside=e.languages["icu-message-format"],e.languages["icu-message-format"].argument.inside.content.inside["choice-style"].inside.rest=e.languages["icu-message-format"]}(e)}e.exports=t,t.displayName="icuMessageFormat",t.aliases=[]},91178(e,t,n){"use strict";var r=n(58090);function i(e){e.register(r),e.languages.idris=e.languages.extend("haskell",{comment:{pattern:/(?:(?:--|\|\|\|).*$|\{-[\s\S]*?-\})/m},keyword:/\b(?:Type|case|class|codata|constructor|corecord|data|do|dsl|else|export|if|implementation|implicit|import|impossible|in|infix|infixl|infixr|instance|interface|let|module|mutual|namespace|of|parameters|partial|postulate|private|proof|public|quoteGoal|record|rewrite|syntax|then|total|using|where|with)\b/,"import-statement":{pattern:/(^\s*)import\s+(?:[A-Z][\w']*)(?:\.[A-Z][\w']*)*/m,lookbehind:!0},builtin:void 0}),e.languages.idr=e.languages.idris}e.exports=i,i.displayName="idris",i.aliases=["idr"]},40011(e){"use strict";function t(e){e.languages.iecst={comment:[{pattern:/(^|[^\\])(?:\/\*[\s\S]*?(?:\*\/|$)|\(\*[\s\S]*?(?:\*\)|$)|\{[\s\S]*?(?:\}|$))/,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":/\b(?:END_)?(?:PROGRAM|CONFIGURATION|INTERFACE|FUNCTION_BLOCK|FUNCTION|ACTION|TRANSITION|TYPE|STRUCT|(?:INITIAL_)?STEP|NAMESPACE|LIBRARY|CHANNEL|FOLDER|RESOURCE|VAR_(?:GLOBAL|INPUT|PUTPUT|IN_OUT|ACCESS|TEMP|EXTERNAL|CONFIG)|VAR|METHOD|PROPERTY)\b/i,keyword:/\b(?:(?:END_)?(?:IF|WHILE|REPEAT|CASE|FOR)|ELSE|FROM|THEN|ELSIF|DO|TO|BY|PRIVATE|PUBLIC|PROTECTED|CONSTANT|RETURN|EXIT|CONTINUE|GOTO|JMP|AT|RETAIN|NON_RETAIN|TASK|WITH|UNTIL|USING|EXTENDS|IMPLEMENTS|GET|SET|__TRY|__CATCH|__FINALLY|__ENDTRY)\b/,variable:/\b(?:AT|BOOL|BYTE|(?:D|L)?WORD|U?(?:S|D|L)?INT|L?REAL|TIME(?:_OF_DAY)?|TOD|DT|DATE(?:_AND_TIME)?|STRING|ARRAY|ANY|POINTER)\b/,symbol:/%[IQM][XBWDL][\d.]*|%[IQ][\d.]*/,number:/\b(?:16#[\da-f]+|2#[01_]+|0x[\da-f]+)\b|\b(?:T|D|DT|TOD)#[\d_shmd:]*|\b[A-Z]*#[\d.,_]*|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,boolean:/\b(?:TRUE|FALSE|NULL)\b/,function:/\w+(?=\()/,operator:/(?:S?R?:?=>?|&&?|\*\*?|<=?|>=?|[-:^/+])|\b(?:OR|AND|MOD|NOT|XOR|LE|GE|EQ|NE|GT|LT)\b/,punctuation:/[();]/,type:{pattern:/#/,alias:"selector"}}}e.exports=t,t.displayName="iecst",t.aliases=[]},12017(e){"use strict";function t(e){var t;(t=e).languages.ignore={comment:/^#.*/m,entry:{pattern:/\S(?:.*(?:(?:\\ )|\S))?/,alias:"string",inside:{operator:/^!|\*\*?|\?/,regex:{pattern:/(^|[^\\])\[[^\[\]]*\]/,lookbehind:!0},punctuation:/\//}}},t.languages.gitignore=t.languages.ignore,t.languages.hgignore=t.languages.ignore,t.languages.npmignore=t.languages.ignore}e.exports=t,t.displayName="ignore",t.aliases=["gitignore","hgignore","npmignore"]},65175(e){"use strict";function t(e){e.languages.inform7={string:{pattern:/"[^"]*"/,inside:{substitution:{pattern:/\[[^\[\]]+\]/,inside:{delimiter:{pattern:/\[|\]/,alias:"punctuation"}}}}},comment:{pattern:/\[[^\[\]]+\]/,greedy:!0},title:{pattern:/^[ \t]*(?:volume|book|part(?! of)|chapter|section|table)\b.+/im,alias:"important"},number:{pattern:/(^|[^-])(?:\b\d+(?:\.\d+)?(?:\^\d+)?(?:(?!\d)\w+)?|\b(?:one|two|three|four|five|six|seven|eight|nine|ten|eleven|twelve))\b(?!-)/i,lookbehind:!0},verb:{pattern:/(^|[^-])\b(?:applying to|are|attacking|answering|asking|be(?:ing)?|burning|buying|called|carries|carry(?! out)|carrying|climbing|closing|conceal(?:s|ing)?|consulting|contain(?:s|ing)?|cutting|drinking|dropping|eating|enclos(?:es?|ing)|entering|examining|exiting|getting|giving|going|ha(?:ve|s|ving)|hold(?:s|ing)?|impl(?:y|ies)|incorporat(?:es?|ing)|inserting|is|jumping|kissing|listening|locking|looking|mean(?:s|ing)?|opening|provid(?:es?|ing)|pulling|pushing|putting|relat(?:es?|ing)|removing|searching|see(?:s|ing)?|setting|showing|singing|sleeping|smelling|squeezing|switching|support(?:s|ing)?|swearing|taking|tasting|telling|thinking|throwing|touching|turning|tying|unlock(?:s|ing)?|var(?:y|ies|ying)|waiting|waking|waving|wear(?:s|ing)?)\b(?!-)/i,lookbehind:!0,alias:"operator"},keyword:{pattern:/(^|[^-])\b(?:after|before|carry out|check|continue the action|definition(?= *:)|do nothing|else|end (?:if|unless|the story)|every turn|if|include|instead(?: of)?|let|move|no|now|otherwise|repeat|report|resume the story|rule for|running through|say(?:ing)?|stop the action|test|try(?:ing)?|understand|unless|use|when|while|yes)\b(?!-)/i,lookbehind:!0},property:{pattern:/(^|[^-])\b(?:adjacent(?! to)|carried|closed|concealed|contained|dark|described|edible|empty|enclosed|enterable|even|female|fixed in place|full|handled|held|improper-named|incorporated|inedible|invisible|lighted|lit|lock(?:able|ed)|male|marked for listing|mentioned|negative|neuter|non-(?:empty|full|recurring)|odd|opaque|open(?:able)?|plural-named|portable|positive|privately-named|proper-named|provided|publically-named|pushable between rooms|recurring|related|rubbing|scenery|seen|singular-named|supported|swinging|switch(?:able|ed(?: on| off)?)|touch(?:able|ed)|transparent|unconcealed|undescribed|unlit|unlocked|unmarked for listing|unmentioned|unopenable|untouchable|unvisited|variable|visible|visited|wearable|worn)\b(?!-)/i,lookbehind:!0,alias:"symbol"},position:{pattern:/(^|[^-])\b(?:above|adjacent to|back side of|below|between|down|east|everywhere|front side|here|in|inside(?: from)?|north(?:east|west)?|nowhere|on(?: top of)?|other side|outside(?: from)?|parts? of|regionally in|south(?:east|west)?|through|up|west|within)\b(?!-)/i,lookbehind:!0,alias:"keyword"},type:{pattern:/(^|[^-])\b(?:actions?|activit(?:y|ies)|actors?|animals?|backdrops?|containers?|devices?|directions?|doors?|holders?|kinds?|lists?|m[ae]n|nobody|nothing|nouns?|numbers?|objects?|people|persons?|player(?:'s holdall)?|regions?|relations?|rooms?|rule(?:book)?s?|scenes?|someone|something|supporters?|tables?|texts?|things?|time|vehicles?|wom[ae]n)\b(?!-)/i,lookbehind:!0,alias:"variable"},punctuation:/[.,:;(){}]/},e.languages.inform7.string.inside.substitution.inside.rest=e.languages.inform7,e.languages.inform7.string.inside.substitution.inside.rest.text={pattern:/\S(?:\s*\S)*/,alias:"comment"}}e.exports=t,t.displayName="inform7",t.aliases=[]},14970(e){"use strict";function t(e){e.languages.ini={comment:{pattern:/(^[ \f\t\v]*)[#;][^\n\r]*/m,lookbehind:!0},header:{pattern:/(^[ \f\t\v]*)\[[^\n\r\]]*\]?/m,lookbehind:!0,inside:{"section-name":{pattern:/(^\[[ \f\t\v]*)[^ \f\t\v\]]+(?:[ \f\t\v]+[^ \f\t\v\]]+)*/,lookbehind:!0,alias:"selector"},punctuation:/\[|\]/}},key:{pattern:/(^[ \f\t\v]*)[^ \f\n\r\t\v=]+(?:[ \f\t\v]+[^ \f\n\r\t\v=]+)*(?=[ \f\t\v]*=)/m,lookbehind:!0,alias:"attr-name"},value:{pattern:/(=[ \f\t\v]*)[^ \f\n\r\t\v]+(?:[ \f\t\v]+[^ \f\n\r\t\v]+)*/,lookbehind:!0,alias:"attr-value",inside:{"inner-value":{pattern:/^("|').+(?=\1$)/,lookbehind:!0}}},punctuation:/=/}}e.exports=t,t.displayName="ini",t.aliases=[]},30764(e){"use strict";function t(e){e.languages.io={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0},{pattern:/(^|[^\\])\/\/.*/,lookbehind:!0},{pattern:/(^|[^\\])#.*/,lookbehind:!0}],"triple-quoted-string":{pattern:/"""(?:\\[\s\S]|(?!""")[^\\])*"""/,greedy:!0,alias:"string"},string:{pattern:/"(?:\\.|[^\\\r\n"])*"/,greedy:!0},keyword:/\b(?:activate|activeCoroCount|asString|block|break|catch|clone|collectGarbage|compileString|continue|do|doFile|doMessage|doString|else|elseif|exit|for|foreach|forward|getSlot|getEnvironmentVariable|hasSlot|if|ifFalse|ifNil|ifNilEval|ifTrue|isActive|isNil|isResumable|list|message|method|parent|pass|pause|perform|performWithArgList|print|println|proto|raise|raiseResumable|removeSlot|resend|resume|schedulerSleepSeconds|self|sender|setSchedulerSleepSeconds|setSlot|shallowCopy|slotNames|super|system|then|thisBlock|thisContext|call|try|type|uniqueId|updateSlot|wait|while|write|yield)\b/,builtin:/\b(?:Array|AudioDevice|AudioMixer|Block|Box|Buffer|CFunction|CGI|Color|Curses|DBM|DNSResolver|DOConnection|DOProxy|DOServer|Date|Directory|Duration|DynLib|Error|Exception|FFT|File|Fnmatch|Font|Future|GL|GLE|GLScissor|GLU|GLUCylinder|GLUQuadric|GLUSphere|GLUT|Host|Image|Importer|LinkList|List|Lobby|Locals|MD5|MP3Decoder|MP3Encoder|Map|Message|Movie|Notification|Number|Object|OpenGL|Point|Protos|Regex|SGML|SGMLElement|SGMLParser|SQLite|Server|Sequence|ShowMessage|SleepyCat|SleepyCatCursor|Socket|SocketManager|Sound|Soup|Store|String|Tree|UDPSender|UPDReceiver|URL|User|Warning|WeakLink|Random|BigNum)\b/,boolean:/\b(?:true|false|nil)\b/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e-?\d+)?/i,operator:/[=!*/%+\-^&|]=|>>?=?|<+*\-%$|,#][.:]?|[?^]\.?|[;\[]:?|[~}"i][.:]|[ACeEIjLor]\.|(?:[_\/\\qsux]|_?\d):)/,alias:"keyword"},number:/\b_?(?:(?!\d:)\d+(?:\.\d+)?(?:(?:[ejpx]|ad|ar)_?\d+(?:\.\d+)?)*(?:b_?[\da-z]+(?:\.[\da-z]+)?)?|_\b(?!\.))/,adverb:{pattern:/[~}]|[\/\\]\.?|[bfM]\.|t[.:]/,alias:"builtin"},operator:/[=a][.:]|_\./,conjunction:{pattern:/&(?:\.:?|:)?|[.:@][.:]?|[!D][.:]|[;dHT]\.|`:?|[\^LS]:|"/,alias:"variable"},punctuation:/[()]/}}e.exports=t,t.displayName="j",t.aliases=[]},15909(e){"use strict";function t(e){var t,n,r,i;t=e,n=/\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|non-sealed|null|open|opens|package|permits|private|protected|provides|public|record|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\b/,i={pattern:RegExp((r=/(^|[^\w.])(?:[a-z]\w*\s*\.\s*)*(?:[A-Z]\w*\s*\.\s*)*/.source)+/[A-Z](?:[\d_A-Z]*[a-z]\w*)?\b/.source),lookbehind:!0,inside:{namespace:{pattern:/^[a-z]\w*(?:\s*\.\s*[a-z]\w*)*(?:\s*\.)?/,inside:{punctuation:/\./}},punctuation:/\./}},t.languages.java=t.languages.extend("clike",{"class-name":[i,{pattern:RegExp(r+/[A-Z]\w*(?=\s+\w+\s*[;,=()])/.source),lookbehind:!0,inside:i.inside}],keyword:n,function:[t.languages.clike.function,{pattern:/(::\s*)[a-z_]\w*/,lookbehind:!0}],number:/\b0b[01][01_]*L?\b|\b0x(?:\.[\da-f_p+-]+|[\da-f_]+(?:\.[\da-f_p+-]+)?)\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfl]?/i,operator:{pattern:/(^|[^.])(?:<<=?|>>>?=?|->|--|\+\+|&&|\|\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,lookbehind:!0}}),t.languages.insertBefore("java","string",{"triple-quoted-string":{pattern:/"""[ \t]*[\r\n](?:(?:"|"")?(?:\\.|[^"\\]))*"""/,greedy:!0,alias:"string"}}),t.languages.insertBefore("java","class-name",{annotation:{pattern:/(^|[^.])@\w+(?:\s*\.\s*\w+)*/,lookbehind:!0,alias:"punctuation"},generics:{pattern:/<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&))*>)*>)*>)*>/,inside:{"class-name":i,keyword:n,punctuation:/[<>(),.:]/,operator:/[?&|]/}},namespace:{pattern:RegExp(/(\b(?:exports|import(?:\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\s+)(?!)[a-z]\w*(?:\.[a-z]\w*)*\.?/.source.replace(//g,function(){return n.source})),lookbehind:!0,inside:{punctuation:/\./}}})}e.exports=t,t.displayName="java",t.aliases=[]},36553(e,t,n){"use strict";var r=n(15909),i=n(9858);function a(e){var t,n,a,o;e.register(r),e.register(i),t=e,n=/(^(?:[\t ]*(?:\*\s*)*))[^*\s].*$/m,a=/#\s*\w+(?:\s*\([^()]*\))?/.source,o=/(?:\b[a-zA-Z]\w+\s*\.\s*)*\b[A-Z]\w*(?:\s*)?|/.source.replace(//g,function(){return a}),t.languages.javadoc=t.languages.extend("javadoclike",{}),t.languages.insertBefore("javadoc","keyword",{reference:{pattern:RegExp(/(@(?:exception|throws|see|link|linkplain|value)\s+(?:\*\s*)?)/.source+"(?:"+o+")"),lookbehind:!0,inside:{function:{pattern:/(#\s*)\w+(?=\s*\()/,lookbehind:!0},field:{pattern:/(#\s*)\w+/,lookbehind:!0},namespace:{pattern:/\b(?:[a-z]\w*\s*\.\s*)+/,inside:{punctuation:/\./}},"class-name":/\b[A-Z]\w*/,keyword:t.languages.java.keyword,punctuation:/[#()[\],.]/}},"class-name":{pattern:/(@param\s+)<[A-Z]\w*>/,lookbehind:!0,inside:{punctuation:/[.<>]/}},"code-section":[{pattern:/(\{@code\s+(?!\s))(?:[^\s{}]|\s+(?![\s}])|\{(?:[^{}]|\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})*\})*\})+(?=\s*\})/,lookbehind:!0,inside:{code:{pattern:n,lookbehind:!0,inside:t.languages.java,alias:"language-java"}}},{pattern:/(<(code|pre|tt)>(?!)\s*)\S(?:\S|\s+\S)*?(?=\s*<\/\2>)/,lookbehind:!0,inside:{line:{pattern:n,lookbehind:!0,inside:{tag:t.languages.markup.tag,entity:t.languages.markup.entity,code:{pattern:/.+/,inside:t.languages.java,alias:"language-java"}}}}}],tag:t.languages.markup.tag,entity:t.languages.markup.entity}),t.languages.javadoclike.addSupport("java",t.languages.javadoc)}e.exports=a,a.displayName="javadoc",a.aliases=[]},9858(e){"use strict";function t(e){!function(e){var t=e.languages.javadoclike={parameter:{pattern:/(^[\t ]*(?:\/{3}|\*|\/\*\*)\s*@(?:param|arg|arguments)\s+)\w+/m,lookbehind:!0},keyword:{pattern:/(^[\t ]*(?:\/{3}|\*|\/\*\*)\s*|\{)@[a-z][a-zA-Z-]+\b/m,lookbehind:!0},punctuation:/[{}]/};function n(t,n){var r="doc-comment",i=e.languages[t];if(i){var a=i[r];if(!a){var o={};o[r]={pattern:/(^|[^\\])\/\*\*[^/][\s\S]*?(?:\*\/|$)/,lookbehind:!0,alias:"comment"},a=(i=e.languages.insertBefore(t,"comment",o))[r]}if(a instanceof RegExp&&(a=i[r]={pattern:a}),Array.isArray(a))for(var s=0,u=a.length;s|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),e.languages.javascript["class-name"][0].pattern=/(\b(?:class|interface|extends|implements|instanceof|new)\s+)[\w.\\]+/,e.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:e.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:e.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:e.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:e.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:e.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),e.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:e.languages.javascript}},string:/[\s\S]+/}}}),e.languages.markup&&(e.languages.markup.tag.addInlined("script","javascript"),e.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),e.languages.js=e.languages.javascript}e.exports=t,t.displayName="javascript",t.aliases=["js"]},11223(e){"use strict";function t(e){e.languages.javastacktrace={summary:{pattern:/^[\t ]*(?:(?:Caused by:|Suppressed:|Exception in thread "[^"]*")[\t ]+)?[\w$.]+(?::.*)?$/m,inside:{keyword:{pattern:/^(\s*)(?:(?:Caused by|Suppressed)(?=:)|Exception in thread)/m,lookbehind:!0},string:{pattern:/^(\s*)"[^"]*"/,lookbehind:!0},exceptions:{pattern:/^(:?\s*)[\w$.]+(?=:|$)/,lookbehind:!0,inside:{"class-name":/[\w$]+(?=$|:)/,namespace:/[a-z]\w*/,punctuation:/[.:]/}},message:{pattern:/(:\s*)\S.*/,lookbehind:!0,alias:"string"},punctuation:/:/}},"stack-frame":{pattern:/^[\t ]*at (?:[\w$./]|@[\w$.+-]*\/)+(?:)?\([^()]*\)/m,inside:{keyword:{pattern:/^(\s*)at(?= )/,lookbehind:!0},source:[{pattern:/(\()\w+\.\w+:\d+(?=\))/,lookbehind:!0,inside:{file:/^\w+\.\w+/,punctuation:/:/,"line-number":{pattern:/\d+/,alias:"number"}}},{pattern:/(\()[^()]*(?=\))/,lookbehind:!0,inside:{keyword:/^(?:Unknown Source|Native Method)$/}}],"class-name":/[\w$]+(?=\.(?:|[\w$]+)\()/,function:/(?:|[\w$]+)(?=\()/,"class-loader":{pattern:/(\s)[a-z]\w*(?:\.[a-z]\w*)*(?=\/[\w@$.]*\/)/,lookbehind:!0,alias:"namespace",inside:{punctuation:/\./}},module:{pattern:/([\s/])[a-z]\w*(?:\.[a-z]\w*)*(?:@[\w$.+-]*)?(?=\/)/,lookbehind:!0,inside:{version:{pattern:/(@)[\s\S]+/,lookbehind:!0,alias:"number"},punctuation:/[@.]/}},namespace:{pattern:/(?:[a-z]\w*\.)+/,inside:{punctuation:/\./}},punctuation:/[()/.]/}},more:{pattern:/^[\t ]*\.{3} \d+ [a-z]+(?: [a-z]+)*/m,inside:{punctuation:/\.{3}/,number:/\d+/,keyword:/\b[a-z]+(?: [a-z]+)*\b/}}}}e.exports=t,t.displayName="javastacktrace",t.aliases=[]},57957(e){"use strict";function t(e){e.languages.jexl={string:/(["'])(?:\\[\s\S]|(?!\1)[^\\])*\1/,transform:{pattern:/(\|\s*)[a-zA-Zа-яА-Я_\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF$][\wа-яА-Я\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF$]*/,alias:"function",lookbehind:!0},function:/[a-zA-Zа-яА-Я_\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF$][\wа-яА-Я\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF$]*\s*(?=\()/,number:/\b\d+(?:\.\d+)?\b|\B\.\d+\b/,operator:/[<>!]=?|-|\+|&&|==|\|\|?|\/\/?|[?:*^%]/,boolean:/\b(?:true|false)\b/,keyword:/\bin\b/,punctuation:/[{}[\](),.]/}}e.exports=t,t.displayName="jexl",t.aliases=[]},75807(e){"use strict";function t(e){e.languages.jolie=e.languages.extend("clike",{string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},keyword:/\b(?:include|define|is_defined|undef|main|init|outputPort|inputPort|Location|Protocol|Interfaces|RequestResponse|OneWay|type|interface|extender|throws|cset|csets|forward|Aggregates|Redirects|embedded|courier|execution|sequential|concurrent|single|scope|install|throw|comp|cH|default|global|linkIn|linkOut|synchronized|this|new|for|if|else|while|in|Jolie|Java|Javascript|nullProcess|spawn|constants|with|provide|until|exit|foreach|instanceof|over|service)\b/,number:/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?l?/i,operator:/-[-=>]?|\+[+=]?|<[<=]?|[>=*!]=?|&&|\|\||[:?\/%^]/,punctuation:/[,.]/,builtin:/\b(?:undefined|string|int|void|long|Byte|bool|double|float|char|any)\b/,symbol:/[|;@]/}),delete e.languages.jolie["class-name"],e.languages.insertBefore("jolie","keyword",{function:{pattern:/((?:\b(?:outputPort|inputPort|in|service|courier)\b|@)\s*)\w+/,lookbehind:!0},aggregates:{pattern:/(\bAggregates\s*:\s*)(?:\w+(?:\s+with\s+\w+)?\s*,\s*)*\w+(?:\s+with\s+\w+)?/,lookbehind:!0,inside:{"with-extension":{pattern:/\bwith\s+\w+/,inside:{keyword:/\bwith\b/}},function:{pattern:/\w+/},punctuation:{pattern:/,/}}},redirects:{pattern:/(\bRedirects\s*:\s*)(?:\w+\s*=>\s*\w+\s*,\s*)*(?:\w+\s*=>\s*\w+)/,lookbehind:!0,inside:{punctuation:{pattern:/,/},function:{pattern:/\w+/},symbol:{pattern:/=>/}}}})}e.exports=t,t.displayName="jolie",t.aliases=[]},77935(e){"use strict";function t(e){var t,n,r,i,a;t=e,n=/\\\((?:[^()]|\([^()]*\))*\)/.source,r=RegExp(/"(?:[^"\r\n\\]|\\[^\r\n(]|__)*"/.source.replace(/__/g,function(){return n})),i={interpolation:{pattern:RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+n),lookbehind:!0,inside:{content:{pattern:/^(\\\()[\s\S]+(?=\)$)/,lookbehind:!0,inside:null},punctuation:/^\\\(|\)$/}}},a=t.languages.jq={comment:/#.*/,property:{pattern:RegExp(r.source+/(?=\s*:(?!:))/.source),greedy:!0,inside:i},string:{pattern:r,greedy:!0,inside:i},function:{pattern:/(\bdef\s+)[a-z_]\w+/i,lookbehind:!0},variable:/\B\$\w+/,"property-literal":{pattern:/\b[a-z_]\w*(?=\s*:(?!:))/i,alias:"property"},keyword:/\b(?:as|break|catch|def|elif|else|end|foreach|if|import|include|label|module|modulemeta|null|reduce|then|try|while)\b/,boolean:/\b(?:true|false)\b/,number:/(?:\b\d+\.|\B\.)?\b\d+(?:[eE][+-]?\d+)?\b/,operator:[{pattern:/\|=?/,alias:"pipe"},/\.\.|[!=<>]?=|\?\/\/|\/\/=?|[-+*/%]=?|[<>?]|\b(?:and|or|not)\b/],"c-style-function":{pattern:/\b[a-z_]\w*(?=\s*\()/i,alias:"function"},punctuation:/::|[()\[\]{},:;]|\.(?=\s*[\[\w$])/,dot:{pattern:/\./,alias:"important"}},i.interpolation.inside.content.inside=a}e.exports=t,t.displayName="jq",t.aliases=[]},46155(e){"use strict";function t(e){!function(e){function t(e,t){return RegExp(e.replace(//g,function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source}),t)}e.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+e.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),e.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+e.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),e.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:(?:Uint|Int)(?:8|16|32)|Uint8Clamped|Float(?:32|64))?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|(?:Weak)?(?:Set|Map)|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),e.languages.insertBefore("javascript","keyword",{imports:{pattern:t(/(\bimport\b\s*)(?:(?:\s*,\s*(?:\*\s*as\s+|\{[^{}]*\}))?|\*\s*as\s+|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:t(/(\bexport\b\s*)(?:\*(?:\s*as\s+)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:e.languages.javascript}}),e.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|for|finally|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),e.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),e.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:t(/(\.\s*)#?/.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|location|navigator|performance|(?:local|session)Storage|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var n=["function","function-variable","method","method-variable","property-access"],r=0;r=h.length)return;var n=e[t];if("string"==typeof n||"string"==typeof n.content){var r=h[o],i="string"==typeof n?n:n.content,a=i.indexOf(r);if(-1!==a){++o;var s=i.substring(0,a),u=c(l[r]),f=i.substring(a+r.length),d=[];if(s&&d.push(s),d.push(u),f){var b=[f];p(b),d.push.apply(d,b)}"string"==typeof n?(e.splice.apply(e,[t,1].concat(d)),t+=d.length-1):n.content=d}}else{var m=n.content;Array.isArray(m)?p(m):p([m])}}}return o=0,p(d),new e.Token(r,d,"language-"+r,t)}e.languages.javascript["template-string"]=[o("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),o("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),o("svg",/\bsvg/.source),o("markdown",/\b(?:md|markdown)/.source),o("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),o("sql",/\bsql/.source),t].filter(Boolean);var f={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function d(e){return"string"==typeof e?e:Array.isArray(e)?e.map(d).join(""):d(e.content)}e.hooks.add("after-tokenize",function(t){t.language in f&&n(t.tokens);function n(t){for(var r=0,i=t.length;r\s+)?)[A-Z]\w*(?:\.[A-Z]\w*)*/.source.replace(//g,function(){return a})),lookbehind:!0,inside:{punctuation:/\./}},{pattern:RegExp("(@[a-z]+\\s+)"+a),lookbehind:!0,inside:{string:n.string,number:n.number,boolean:n.boolean,keyword:t.languages.typescript.keyword,operator:/=>|\.\.\.|[&|?:*]/,punctuation:/[.,;=<>{}()[\]]/}}],example:{pattern:/(@example\s+(?!\s))(?:[^@\s]|\s+(?!\s))+?(?=\s*(?:\*\s*)?(?:@\w|\*\/))/,lookbehind:!0,inside:{code:{pattern:/^([\t ]*(?:\*\s*)?)\S.*$/m,lookbehind:!0,inside:n,alias:"language-javascript"}}}}),t.languages.javadoclike.addSupport("javascript",t.languages.jsdoc)}e.exports=a,a.displayName="jsdoc",a.aliases=[]},45950(e){"use strict";function t(e){e.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:true|false)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},e.languages.webmanifest=e.languages.json}e.exports=t,t.displayName="json",t.aliases=["webmanifest"]},50235(e,t,n){"use strict";var r=n(45950);function i(e){var t,n;e.register(r),n=/("|')(?:\\(?:\r\n?|\n|.)|(?!\1)[^\\\r\n])*\1/,(t=e).languages.json5=t.languages.extend("json",{property:[{pattern:RegExp(n.source+"(?=\\s*:)"),greedy:!0},{pattern:/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/,alias:"unquoted"}],string:{pattern:n,greedy:!0},number:/[+-]?\b(?:NaN|Infinity|0x[a-fA-F\d]+)\b|[+-]?(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[eE][+-]?\d+\b)?/})}e.exports=i,i.displayName="json5",i.aliases=[]},80963(e,t,n){"use strict";var r=n(45950);function i(e){e.register(r),e.languages.jsonp=e.languages.extend("json",{punctuation:/[{}[\]();,.]/}),e.languages.insertBefore("jsonp","punctuation",{function:/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*\()/})}e.exports=i,i.displayName="jsonp",i.aliases=[]},79358(e){"use strict";function t(e){e.languages.jsstacktrace={"error-message":{pattern:/^\S.*/m,alias:"string"},"stack-frame":{pattern:/(^[ \t]+)at[ \t].*/m,lookbehind:!0,inside:{"not-my-code":{pattern:/^at[ \t]+(?!\s)(?:node\.js||.*(?:node_modules|\(\)|\(|$|\(internal\/|\(node\.js)).*/m,alias:"comment"},filename:{pattern:/(\bat\s+(?!\s)|\()(?:[a-zA-Z]:)?[^():]+(?=:)/,lookbehind:!0,alias:"url"},function:{pattern:/(at\s+(?:new\s+)?)(?!\s)[_$a-zA-Z\xA0-\uFFFF<][.$\w\xA0-\uFFFF<>]*/,lookbehind:!0,inside:{punctuation:/\./}},punctuation:/[()]/,keyword:/\b(?:at|new)\b/,alias:{pattern:/\[(?:as\s+)?(?!\s)[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*\]/,alias:"variable"},"line-number":{pattern:/:[0-9]+(?::[0-9]+)?\b/,alias:"number",inside:{punctuation:/:/}}}}}}e.exports=t,t.displayName="jsstacktrace",t.aliases=[]},96412(e){"use strict";function t(e){!function(e){var t=e.util.clone(e.languages.javascript),n=/(?:\s|\/\/.*(?!.)|\/\*(?:[^*]|\*(?!\/))\*\/)/.source,r=/(?:\{(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])*\})/.source,i=/(?:\{*\.{3}(?:[^{}]|)*\})/.source;function a(e,t){return RegExp(e=e.replace(//g,function(){return n}).replace(//g,function(){return r}).replace(//g,function(){return i}),t)}i=a(i).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=a(/<\/?(?:[\w.:-]+(?:+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|))?|))**\/?)?>/.source),e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/i,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/i,e.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.jsx.tag.inside.comment=t.comment,e.languages.insertBefore("inside","attr-name",{spread:{pattern:a(//.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:a(/=/.source),inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:e.languages.jsx},alias:"language-javascript"}},e.languages.jsx.tag);var o=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(o).join(""):""},s=function(t){for(var n=[],r=0;r0&&n[n.length-1].tagName===o(i.content[0].content[1])&&n.pop():"/>"===i.content[i.content.length-1].content||n.push({tagName:o(i.content[0].content[1]),openedBraces:0}):n.length>0&&"punctuation"===i.type&&"{"===i.content?n[n.length-1].openedBraces++:n.length>0&&n[n.length-1].openedBraces>0&&"punctuation"===i.type&&"}"===i.content?n[n.length-1].openedBraces--:a=!0),(a||"string"==typeof i)&&n.length>0&&0===n[n.length-1].openedBraces){var u=o(i);r0&&("string"==typeof t[r-1]||"plain-text"===t[r-1].type)&&(u=o(t[r-1])+u,t.splice(r-1,1),r--),t[r]=new e.Token("plain-text",u,null,u)}i.content&&"string"!=typeof i.content&&s(i.content)}};e.hooks.add("after-tokenize",function(e){("jsx"===e.language||"tsx"===e.language)&&s(e.tokens)})}(e)}e.exports=t,t.displayName="jsx",t.aliases=[]},39259(e){"use strict";function t(e){e.languages.julia={comment:{pattern:/(^|[^\\])(?:#=(?:[^#=]|=(?!#)|#(?!=)|#=(?:[^#=]|=(?!#)|#(?!=))*=#)*=#|#.*)/,lookbehind:!0},regex:{pattern:/r"(?:\\.|[^"\\\r\n])*"[imsx]{0,4}/,greedy:!0},string:{pattern:/"""[\s\S]+?"""|(?:\b\w+)?"(?:\\.|[^"\\\r\n])*"|(^|[^\w'])'(?:\\[^\r\n][^'\r\n]*|[^\\\r\n])'|`(?:[^\\`\r\n]|\\.)*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:abstract|baremodule|begin|bitstype|break|catch|ccall|const|continue|do|else|elseif|end|export|finally|for|function|global|if|immutable|import|importall|in|let|local|macro|module|print|println|quote|return|struct|try|type|typealias|using|while)\b/,boolean:/\b(?:true|false)\b/,number:/(?:\b(?=\d)|\B(?=\.))(?:0[box])?(?:[\da-f]+(?:_[\da-f]+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[efp][+-]?\d+(?:_\d+)*)?j?/i,operator:/&&|\|\||[-+*^%÷⊻&$\\]=?|\/[\/=]?|!=?=?|\|[=>]?|<(?:<=?|[=:|])?|>(?:=|>>?=?)?|==?=?|[~≠≤≥'√∛]/,punctuation:/::?|[{}[\]();,.?]/,constant:/\b(?:(?:NaN|Inf)(?:16|32|64)?|im|pi)\b|[πℯ]/}}e.exports=t,t.displayName="julia",t.aliases=[]},35760(e){"use strict";function t(e){e.languages.keyman={comment:/\bc\s.*/i,function:/\[\s*(?:(?:CTRL|SHIFT|ALT|LCTRL|RCTRL|LALT|RALT|CAPS|NCAPS)\s+)*(?:[TKU]_[\w?]+|".+?"|'.+?')\s*\]/i,string:/("|').*?\1/,bold:[/&(?:baselayout|bitmap|capsononly|capsalwaysoff|shiftfreescaps|copyright|ethnologuecode|hotkey|includecodes|keyboardversion|kmw_embedcss|kmw_embedjs|kmw_helpfile|kmw_helptext|kmw_rtl|language|layer|layoutfile|message|mnemoniclayout|name|oldcharposmatching|platform|targets|version|visualkeyboard|windowslanguages)\b/i,/\b(?:bitmap|bitmaps|caps on only|caps always off|shift frees caps|copyright|hotkey|language|layout|message|name|version)\b/i],keyword:/\b(?:any|baselayout|beep|call|context|deadkey|dk|if|index|layer|notany|nul|outs|platform|return|reset|save|set|store|use)\b/i,atrule:/\b(?:ansi|begin|unicode|group|using keys|match|nomatch)\b/i,number:/\b(?:U\+[\dA-F]+|d\d+|x[\da-f]+|\d+)\b/i,operator:/[+>\\,()]/,tag:/\$(?:keyman|kmfl|weaver|keymanweb|keymanonly):/i}}e.exports=t,t.displayName="keyman",t.aliases=[]},19715(e){"use strict";function t(e){var t,n;(t=e).languages.kotlin=t.languages.extend("clike",{keyword:{pattern:/(^|[^.])\b(?:abstract|actual|annotation|as|break|by|catch|class|companion|const|constructor|continue|crossinline|data|do|dynamic|else|enum|expect|external|final|finally|for|fun|get|if|import|in|infix|init|inline|inner|interface|internal|is|lateinit|noinline|null|object|open|operator|out|override|package|private|protected|public|reified|return|sealed|set|super|suspend|tailrec|this|throw|to|try|typealias|val|var|vararg|when|where|while)\b/,lookbehind:!0},function:[{pattern:/(?:`[^\r\n`]+`|\b\w+)(?=\s*\()/,greedy:!0},{pattern:/(\.)(?:`[^\r\n`]+`|\w+)(?=\s*\{)/,lookbehind:!0,greedy:!0}],number:/\b(?:0[xX][\da-fA-F]+(?:_[\da-fA-F]+)*|0[bB][01]+(?:_[01]+)*|\d+(?:_\d+)*(?:\.\d+(?:_\d+)*)?(?:[eE][+-]?\d+(?:_\d+)*)?[fFL]?)\b/,operator:/\+[+=]?|-[-=>]?|==?=?|!(?:!|==?)?|[\/*%<>]=?|[?:]:?|\.\.|&&|\|\||\b(?:and|inv|or|shl|shr|ushr|xor)\b/}),delete t.languages.kotlin["class-name"],t.languages.insertBefore("kotlin","string",{"raw-string":{pattern:/("""|''')[\s\S]*?\1/,alias:"string"}}),t.languages.insertBefore("kotlin","keyword",{annotation:{pattern:/\B@(?:\w+:)?(?:[A-Z]\w*|\[[^\]]+\])/,alias:"builtin"}}),t.languages.insertBefore("kotlin","function",{label:{pattern:/\b\w+@|@\w+\b/,alias:"symbol"}}),n=[{pattern:/\$\{[^}]+\}/,inside:{delimiter:{pattern:/^\$\{|\}$/,alias:"variable"},rest:t.languages.kotlin}},{pattern:/\$\w+/,alias:"variable"}],t.languages.kotlin.string.inside=t.languages.kotlin["raw-string"].inside={interpolation:n},t.languages.kt=t.languages.kotlin,t.languages.kts=t.languages.kotlin}e.exports=t,t.displayName="kotlin",t.aliases=["kt","kts"]},27614(e){"use strict";function t(e){!function(e){var t=/\s\x00-\x1f\x22-\x2f\x3a-\x3f\x5b-\x5e\x60\x7b-\x7e/.source;function n(e,n){return RegExp(e.replace(//g,t),n)}e.languages.kumir={comment:{pattern:/\|.*/},prolog:{pattern:/#.*/,greedy:!0},string:{pattern:/"[^\n\r"]*"|'[^\n\r']*'/,greedy:!0},boolean:{pattern:n(/(^|[])(?:да|нет)(?=[]|$)/.source),lookbehind:!0},"operator-word":{pattern:n(/(^|[])(?:и|или|не)(?=[]|$)/.source),lookbehind:!0,alias:"keyword"},"system-variable":{pattern:n(/(^|[])знач(?=[]|$)/.source),lookbehind:!0,alias:"keyword"},type:[{pattern:n(/(^|[])(?:вещ|лит|лог|сим|цел)(?:\x20*таб)?(?=[]|$)/.source),lookbehind:!0,alias:"builtin"},{pattern:n(/(^|[])(?:компл|сканкод|файл|цвет)(?=[]|$)/.source),lookbehind:!0,alias:"important"}],keyword:{pattern:n(/(^|[])(?:алг|арг(?:\x20*рез)?|ввод|ВКЛЮЧИТЬ|вс[её]|выбор|вывод|выход|дано|для|до|дс|если|иначе|исп|использовать|кон(?:(?:\x20+|_)исп)?|кц(?:(?:\x20+|_)при)?|надо|нач|нс|нц|от|пауза|пока|при|раза?|рез|стоп|таб|то|утв|шаг)(?=[]|$)/.source),lookbehind:!0},name:{pattern:n(/(^|[])[^\d][^]*(?:\x20+[^]+)*(?=[]|$)/.source),lookbehind:!0},number:{pattern:n(/(^|[])(?:\B\$[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)(?=[]|$)/.source,"i"),lookbehind:!0},punctuation:/:=|[(),:;\[\]]/,"operator-char":{pattern:/\*\*?|<[=>]?|>=?|[-+/=]/,alias:"operator"}},e.languages.kum=e.languages.kumir}(e)}e.exports=t,t.displayName="kumir",t.aliases=["kum"]},42876(e){"use strict";function t(e){var t,n,r;t=e,r={"equation-command":{pattern:n=/\\(?:[^a-z()[\]]|[a-z*]+)/i,alias:"regex"}},t.languages.latex={comment:/%.*/m,cdata:{pattern:/(\\begin\{((?:verbatim|lstlisting)\*?)\})[\s\S]*?(?=\\end\{\2\})/,lookbehind:!0},equation:[{pattern:/\$\$(?:\\[\s\S]|[^\\$])+\$\$|\$(?:\\[\s\S]|[^\\$])+\$|\\\([\s\S]*?\\\)|\\\[[\s\S]*?\\\]/,inside:r,alias:"string"},{pattern:/(\\begin\{((?:equation|math|eqnarray|align|multline|gather)\*?)\})[\s\S]*?(?=\\end\{\2\})/,lookbehind:!0,inside:r,alias:"string"}],keyword:{pattern:/(\\(?:begin|end|ref|cite|label|usepackage|documentclass)(?:\[[^\]]+\])?\{)[^}]+(?=\})/,lookbehind:!0},url:{pattern:/(\\url\{)[^}]+(?=\})/,lookbehind:!0},headline:{pattern:/(\\(?:part|chapter|section|subsection|frametitle|subsubsection|paragraph|subparagraph|subsubparagraph|subsubsubparagraph)\*?(?:\[[^\]]+\])?\{)[^}]+(?=\})/,lookbehind:!0,alias:"class-name"},function:{pattern:n,alias:"selector"},punctuation:/[[\]{}&]/},t.languages.tex=t.languages.latex,t.languages.context=t.languages.latex}e.exports=t,t.displayName="latex",t.aliases=["tex","context"]},2980(e,t,n){"use strict";var r=n(93205),i=n(88262);function a(e){var t,n;e.register(r),e.register(i),(t=e).languages.latte={comment:/^\{\*[\s\S]*/,ld:{pattern:/^\{(?:[=_]|\/?(?!\d|\w+\()\w+)?/,inside:{punctuation:/^\{\/?/,tag:{pattern:/.+/,alias:"important"}}},rd:{pattern:/\}$/,inside:{punctuation:/.+/}},php:{pattern:/\S(?:[\s\S]*\S)?/,alias:"language-php",inside:t.languages.php}},n=t.languages.extend("markup",{}),t.languages.insertBefore("inside","attr-value",{"n-attr":{pattern:/n:[\w-]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+))?/,inside:{"attr-name":{pattern:/^[^\s=]+/,alias:"important"},"attr-value":{pattern:/=[\s\S]+/,inside:{punctuation:[/^=/,{pattern:/^(\s*)["']|["']$/,lookbehind:!0}],php:{pattern:/\S(?:[\s\S]*\S)?/,inside:t.languages.php}}}}}},n.tag),t.hooks.add("before-tokenize",function(e){if("latte"===e.language){var r=/\{\*[\s\S]*?\*\}|\{[^'"\s{}*](?:[^"'/{}]|\/(?![*/])|("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|\/\*(?:[^*]|\*(?!\/))*\*\/)*?\}/g;t.languages["markup-templating"].buildPlaceholders(e,"latte",r),e.grammar=n}}),t.hooks.add("after-tokenize",function(e){t.languages["markup-templating"].tokenizePlaceholders(e,"latte")})}e.exports=a,a.displayName="latte",a.aliases=[]},41701(e){"use strict";function t(e){e.languages.less=e.languages.extend("css",{comment:[/\/\*[\s\S]*?\*\//,{pattern:/(^|[^\\])\/\/.*/,lookbehind:!0}],atrule:{pattern:/@[\w-](?:\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{punctuation:/[:()]/}},selector:{pattern:/(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};@\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{variable:/@+[\w-]+/}},property:/(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/i,operator:/[+\-*\/]/}),e.languages.insertBefore("less","property",{variable:[{pattern:/@[\w-]+\s*:/,inside:{punctuation:/:/}},/@@?[\w-]+/],"mixin-usage":{pattern:/([{;]\s*)[.#](?!\d)[\w-].*?(?=[(;])/,lookbehind:!0,alias:"function"}})}e.exports=t,t.displayName="less",t.aliases=[]},42491(e,t,n){"use strict";var r=n(9997);function i(e){e.register(r),function(e){for(var t=/\((?:[^();"#\\]|\\[\s\S]|;.*(?!.)|"(?:[^"\\]|\\.)*"|#(?:\{(?:(?!#\})[\s\S])*#\}|[^{])|)*\)/.source,n=5,r=0;r/g,function(){return t});t=t.replace(//g,/[^\s\S]/.source);var i=e.languages.lilypond={comment:/%(?:(?!\{).*|\{[\s\S]*?%\})/,"embedded-scheme":{pattern:RegExp(/(^|[=\s])#(?:"(?:[^"\\]|\\.)*"|[^\s()"]*(?:[^\s()]|))/.source.replace(//g,function(){return t}),"m"),lookbehind:!0,greedy:!0,inside:{scheme:{pattern:/^(#)[\s\S]+$/,lookbehind:!0,alias:"language-scheme",inside:{"embedded-lilypond":{pattern:/#\{[\s\S]*?#\}/,greedy:!0,inside:{punctuation:/^#\{|#\}$/,lilypond:{pattern:/[\s\S]+/,alias:"language-lilypond",inside:null}}},rest:e.languages.scheme}},punctuation:/#/}},string:{pattern:/"(?:[^"\\]|\\.)*"/,greedy:!0},"class-name":{pattern:/(\\new\s+)[\w-]+/,lookbehind:!0},keyword:{pattern:/\\[a-z][-\w]*/i,inside:{punctuation:/^\\/}},operator:/[=|]|<<|>>/,punctuation:{pattern:/(^|[a-z\d])(?:'+|,+|[_^]?-[_^]?(?:[-+^!>._]|(?=\d))|[_^]\.?|[.!])|[{}()[\]<>^~]|\\[()[\]<>\\!]|--|__/,lookbehind:!0},number:/\b\d+(?:\/\d+)?\b/};i["embedded-scheme"].inside.scheme.inside["embedded-lilypond"].inside.lilypond.inside=i,e.languages.ly=i}(e)}e.exports=i,i.displayName="lilypond",i.aliases=[]},34927(e,t,n){"use strict";var r=n(93205);function i(e){e.register(r),e.languages.liquid={comment:{pattern:/(^\{%\s*comment\s*%\})[\s\S]+(?=\{%\s*endcomment\s*%\}$)/,lookbehind:!0},delimiter:{pattern:/^\{(?:\{\{|[%\{])-?|-?(?:\}\}|[%\}])\}$/,alias:"punctuation"},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},keyword:/\b(?:as|assign|break|continue|cycle|decrement|echo|else|elsif|(?:end)?(?:capture|case|comment|for|form|if|paginate|style|raw|tablerow|unless)|in|include|increment|limit|liquid|offset|range|render|reversed|section|when|with)\b/,function:[{pattern:/(\|\s*)\w+/,lookbehind:!0,alias:"filter"},{pattern:/(\.\s*)(?:first|last|size)/,lookbehind:!0}],boolean:/\b(?:true|false|nil)\b/,range:{pattern:/\.\./,alias:"operator"},number:/\b\d+(?:\.\d+)?\b/,operator:/[!=]=|<>|[<>]=?|[|?:=-]|\b(?:and|or|contains(?=\s))\b/,punctuation:/[.,\[\]()]/},e.hooks.add("before-tokenize",function(t){var n=/\{%\s*comment\s*%\}[\s\S]*?\{%\s*endcomment\s*%\}|\{(?:%[\s\S]*?%|\{\{[\s\S]*?\}\}|\{[\s\S]*?\})\}/g,r=!1;e.languages["markup-templating"].buildPlaceholders(t,"liquid",n,function(e){var t=/^\{%-?\s*(\w+)/.exec(e);if(t){var n=t[1];if("raw"===n&&!r)return r=!0,!0;if("endraw"===n)return r=!1,!0}return!r})}),e.hooks.add("after-tokenize",function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"liquid")})}e.exports=i,i.displayName="liquid",i.aliases=[]},3848(e){"use strict";function t(e){!function(e){function t(e){return RegExp("(\\()"+e+"(?=[\\s\\)])")}function n(e){return RegExp("([\\s([])"+e+"(?=[\\s)])")}var r="[-+*/_~!@$%^=<>{}\\w]+",i="&"+r,a="(\\()",o="(?=\\))",s="(?=\\s)",u={heading:{pattern:/;;;.*/,alias:["comment","title"]},comment:/;.*/,string:{pattern:/"(?:[^"\\]|\\.)*"/,greedy:!0,inside:{argument:/[-A-Z]+(?=[.,\s])/,symbol:RegExp("`"+r+"'")}},"quoted-symbol":{pattern:RegExp("#?'"+r),alias:["variable","symbol"]},"lisp-property":{pattern:RegExp(":"+r),alias:"property"},splice:{pattern:RegExp(",@?"+r),alias:["symbol","variable"]},keyword:[{pattern:RegExp(a+"(?:(?:lexical-)?let\\*?|(?:cl-)?letf|if|when|while|unless|cons|cl-loop|and|or|not|cond|setq|error|message|null|require|provide|use-package)"+s),lookbehind:!0},{pattern:RegExp(a+"(?:for|do|collect|return|finally|append|concat|in|by)"+s),lookbehind:!0}],declare:{pattern:t("declare"),lookbehind:!0,alias:"keyword"},interactive:{pattern:t("interactive"),lookbehind:!0,alias:"keyword"},boolean:{pattern:n("(?:t|nil)"),lookbehind:!0},number:{pattern:n("[-+]?\\d+(?:\\.\\d*)?"),lookbehind:!0},defvar:{pattern:RegExp(a+"def(?:var|const|custom|group)\\s+"+r),lookbehind:!0,inside:{keyword:/^def[a-z]+/,variable:RegExp(r)}},defun:{pattern:RegExp(a+"(?:cl-)?(?:defun\\*?|defmacro)\\s+"+r+"\\s+\\([\\s\\S]*?\\)"),lookbehind:!0,inside:{keyword:/^(?:cl-)?def\S+/,arguments:null,function:{pattern:RegExp("(^\\s)"+r),lookbehind:!0},punctuation:/[()]/}},lambda:{pattern:RegExp(a+"lambda\\s+\\(\\s*(?:&?"+r+"(?:\\s+&?"+r+")*\\s*)?\\)"),lookbehind:!0,inside:{keyword:/^lambda/,arguments:null,punctuation:/[()]/}},car:{pattern:RegExp(a+r),lookbehind:!0},punctuation:[/(?:['`,]?\(|[)\[\]])/,{pattern:/(\s)\.(?=\s)/,lookbehind:!0}]},c={"lisp-marker":RegExp(i),rest:{argument:{pattern:RegExp(r),alias:"variable"},varform:{pattern:RegExp(a+r+"\\s+\\S[\\s\\S]*"+o),lookbehind:!0,inside:{string:u.string,boolean:u.boolean,number:u.number,symbol:u.symbol,punctuation:/[()]/}}}},l="\\S+(?:\\s+\\S+)*",f={pattern:RegExp(a+"[\\s\\S]*"+o),lookbehind:!0,inside:{"rest-vars":{pattern:RegExp("&(?:rest|body)\\s+"+l),inside:c},"other-marker-vars":{pattern:RegExp("&(?:optional|aux)\\s+"+l),inside:c},keys:{pattern:RegExp("&key\\s+"+l+"(?:\\s+&allow-other-keys)?"),inside:c},argument:{pattern:RegExp(r),alias:"variable"},punctuation:/[()]/}};u.lambda.inside.arguments=f,u.defun.inside.arguments=e.util.clone(f),u.defun.inside.arguments.inside.sublist=f,e.languages.lisp=u,e.languages.elisp=u,e.languages.emacs=u,e.languages["emacs-lisp"]=u}(e)}e.exports=t,t.displayName="lisp",t.aliases=[]},41469(e){"use strict";function t(e){e.languages.livescript={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?\*\//,lookbehind:!0},{pattern:/(^|[^\\])#.*/,lookbehind:!0}],"interpolated-string":{pattern:/(^|[^"])("""|")(?:\\[\s\S]|(?!\2)[^\\])*\2(?!")/,lookbehind:!0,greedy:!0,inside:{variable:{pattern:/(^|[^\\])#[a-z_](?:-?[a-z]|[\d_])*/m,lookbehind:!0},interpolation:{pattern:/(^|[^\\])#\{[^}]+\}/m,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^#\{|\}$/,alias:"variable"}}},string:/[\s\S]+/}},string:[{pattern:/('''|')(?:\\[\s\S]|(?!\1)[^\\])*\1/,greedy:!0},{pattern:/<\[[\s\S]*?\]>/,greedy:!0},/\\[^\s,;\])}]+/],regex:[{pattern:/\/\/(?:\[[^\r\n\]]*\]|\\.|(?!\/\/)[^\\\[])+\/\/[gimyu]{0,5}/,greedy:!0,inside:{comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0}}},{pattern:/\/(?:\[[^\r\n\]]*\]|\\.|[^/\\\r\n\[])+\/[gimyu]{0,5}/,greedy:!0}],keyword:{pattern:/(^|(?!-).)\b(?:break|case|catch|class|const|continue|default|do|else|extends|fallthrough|finally|for(?: ever)?|function|if|implements|it|let|loop|new|null|otherwise|own|return|super|switch|that|then|this|throw|try|unless|until|var|void|when|while|yield)(?!-)\b/m,lookbehind:!0},"keyword-operator":{pattern:/(^|[^-])\b(?:(?:delete|require|typeof)!|(?:and|by|delete|export|from|import(?: all)?|in|instanceof|is(?:nt| not)?|not|of|or|til|to|typeof|with|xor)(?!-)\b)/m,lookbehind:!0,alias:"operator"},boolean:{pattern:/(^|[^-])\b(?:false|no|off|on|true|yes)(?!-)\b/m,lookbehind:!0},argument:{pattern:/(^|(?!\.&\.)[^&])&(?!&)\d*/m,lookbehind:!0,alias:"variable"},number:/\b(?:\d+~[\da-z]+|\d[\d_]*(?:\.\d[\d_]*)?(?:[a-z]\w*)?)/i,identifier:/[a-z_](?:-?[a-z]|[\d_])*/i,operator:[{pattern:/( )\.(?= )/,lookbehind:!0},/\.(?:[=~]|\.\.?)|\.(?:[&|^]|<<|>>>?)\.|:(?:=|:=?)|&&|\|[|>]|<(?:<[>=?]?|-(?:->?|>)?|\+\+?|@@?|%%?|\*\*?|!(?:~?=|--?>|~?~>)?|~(?:~?>|=)?|==?|\^\^?|[\/?]/],punctuation:/[(){}\[\]|.,:;`]/},e.languages.livescript["interpolated-string"].inside.interpolation.inside.rest=e.languages.livescript}e.exports=t,t.displayName="livescript",t.aliases=[]},73070(e){"use strict";function t(e){var t;(t=e).languages.llvm={comment:/;.*/,string:{pattern:/"[^"]*"/,greedy:!0},boolean:/\b(?:true|false)\b/,variable:/[%@!#](?:(?!\d)(?:[-$.\w]|\\[a-f\d]{2})+|\d+)/i,label:/(?!\d)(?:[-$.\w]|\\[a-f\d]{2})+:/i,type:{pattern:/\b(?:double|float|fp128|half|i[1-9]\d*|label|metadata|ppc_fp128|token|void|x86_fp80|x86_mmx)\b/,alias:"class-name"},keyword:/\b[a-z_][a-z_0-9]*\b/,number:/[+-]?\b\d+(?:\.\d+)?(?:[eE][+-]?\d+)?\b|\b0x[\dA-Fa-f]+\b|\b0xK[\dA-Fa-f]{20}\b|\b0x[ML][\dA-Fa-f]{32}\b|\b0xH[\dA-Fa-f]{4}\b/,punctuation:/[{}[\];(),.!*=<>]/}}e.exports=t,t.displayName="llvm",t.aliases=[]},35049(e){"use strict";function t(e){e.languages.log={string:{pattern:/"(?:[^"\\\r\n]|\\.)*"|'(?![st] | \w)(?:[^'\\\r\n]|\\.)*'/,greedy:!0},level:[{pattern:/\b(?:ALERT|CRIT|CRITICAL|EMERG|EMERGENCY|ERR|ERROR|FAILURE|FATAL|SEVERE)\b/,alias:["error","important"]},{pattern:/\b(?:WARN|WARNING|WRN)\b/,alias:["warning","important"]},{pattern:/\b(?:DISPLAY|INF|INFO|NOTICE|STATUS)\b/,alias:["info","keyword"]},{pattern:/\b(?:DBG|DEBUG|FINE)\b/,alias:["debug","keyword"]},{pattern:/\b(?:FINER|FINEST|TRACE|TRC|VERBOSE|VRB)\b/,alias:["trace","comment"]}],property:{pattern:/((?:^|[\]|])[ \t]*)[a-z_](?:[\w-]|\b\/\b)*(?:[. ]\(?\w(?:[\w-]|\b\/\b)*\)?)*:(?=\s)/im,lookbehind:!0},separator:{pattern:/(^|[^-+])-{3,}|={3,}|\*{3,}|- - /m,lookbehind:!0,alias:"comment"},url:/\b(?:https?|ftp|file):\/\/[^\s|,;'"]*[^\s|,;'">.]/,email:{pattern:/(^|\s)[-\w+.]+@[a-z][a-z0-9-]*(?:\.[a-z][a-z0-9-]*)+(?=\s)/,lookbehind:!0,alias:"url"},"ip-address":{pattern:/\b(?:\d{1,3}(?:\.\d{1,3}){3})\b/i,alias:"constant"},"mac-address":{pattern:/\b[a-f0-9]{2}(?::[a-f0-9]{2}){5}\b/i,alias:"constant"},domain:{pattern:/(^|\s)[a-z][a-z0-9-]*(?:\.[a-z][a-z0-9-]*)*\.[a-z][a-z0-9-]+(?=\s)/,lookbehind:!0,alias:"constant"},uuid:{pattern:/\b[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\b/i,alias:"constant"},hash:{pattern:/\b(?:[a-f0-9]{32}){1,2}\b/i,alias:"constant"},"file-path":{pattern:/\b[a-z]:[\\/][^\s|,;:(){}\[\]"']+|(^|[\s:\[\](>|])\.{0,2}\/\w[^\s|,;:(){}\[\]"']*/i,lookbehind:!0,greedy:!0,alias:"string"},date:{pattern:RegExp(/\b\d{4}[-/]\d{2}[-/]\d{2}(?:T(?=\d{1,2}:)|(?=\s\d{1,2}:))/.source+"|"+/\b\d{1,4}[-/ ](?:\d{1,2}|Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)[-/ ]\d{2,4}T?\b/.source+"|"+/\b(?:(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun)(?:\s{1,2}(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec))?|Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s{1,2}\d{1,2}\b/.source,"i"),alias:"number"},time:{pattern:/\b\d{1,2}:\d{1,2}:\d{1,2}(?:[.,:]\d+)?(?:\s?[+-]\d{2}:?\d{2}|Z)?\b/,alias:"number"},boolean:/\b(?:true|false|null)\b/i,number:{pattern:/(^|[^.\w])(?:0x[a-f0-9]+|0o[0-7]+|0b[01]+|v?\d[\da-f]*(?:\.\d+)*(?:e[+-]?\d+)?[a-z]{0,3}\b)\b(?!\.\w)/i,lookbehind:!0},operator:/[;:?<=>~/@!$%&+\-|^(){}*#]/,punctuation:/[\[\].,]/}}e.exports=t,t.displayName="log",t.aliases=[]},8789(e){"use strict";function t(e){e.languages.lolcode={comment:[/\bOBTW\s[\s\S]*?\sTLDR\b/,/\bBTW.+/],string:{pattern:/"(?::.|[^":])*"/,inside:{variable:/:\{[^}]+\}/,symbol:[/:\([a-f\d]+\)/i,/:\[[^\]]+\]/,/:[)>o":]/]},greedy:!0},number:/(?:\B-)?(?:\b\d+(?:\.\d*)?|\B\.\d+)/,symbol:{pattern:/(^|\s)(?:A )?(?:YARN|NUMBR|NUMBAR|TROOF|BUKKIT|NOOB)(?=\s|,|$)/,lookbehind:!0,inside:{keyword:/A(?=\s)/}},label:{pattern:/((?:^|\s)(?:IM IN YR|IM OUTTA YR) )[a-zA-Z]\w*/,lookbehind:!0,alias:"string"},function:{pattern:/((?:^|\s)(?:I IZ|HOW IZ I|IZ) )[a-zA-Z]\w*/,lookbehind:!0},keyword:[{pattern:/(^|\s)(?:O HAI IM|KTHX|HAI|KTHXBYE|I HAS A|ITZ(?: A)?|R|AN|MKAY|SMOOSH|MAEK|IS NOW(?: A)?|VISIBLE|GIMMEH|O RLY\?|YA RLY|NO WAI|OIC|MEBBE|WTF\?|OMG|OMGWTF|GTFO|IM IN YR|IM OUTTA YR|FOUND YR|YR|TIL|WILE|UPPIN|NERFIN|I IZ|HOW IZ I|IF U SAY SO|SRS|HAS A|LIEK(?: A)?|IZ)(?=\s|,|$)/,lookbehind:!0},/'Z(?=\s|,|$)/],boolean:{pattern:/(^|\s)(?:WIN|FAIL)(?=\s|,|$)/,lookbehind:!0},variable:{pattern:/(^|\s)IT(?=\s|,|$)/,lookbehind:!0},operator:{pattern:/(^|\s)(?:NOT|BOTH SAEM|DIFFRINT|(?:SUM|DIFF|PRODUKT|QUOSHUNT|MOD|BIGGR|SMALLR|BOTH|EITHER|WON|ALL|ANY) OF)(?=\s|,|$)/,lookbehind:!0},punctuation:/\.{3}|…|,|!/}}e.exports=t,t.displayName="lolcode",t.aliases=[]},59803(e){"use strict";function t(e){e.languages.lua={comment:/^#!.+|--(?:\[(=*)\[[\s\S]*?\]\1\]|.*)/m,string:{pattern:/(["'])(?:(?!\1)[^\\\r\n]|\\z(?:\r\n|\s)|\\(?:\r\n|[^z]))*\1|\[(=*)\[[\s\S]*?\]\2\]/,greedy:!0},number:/\b0x[a-f\d]+(?:\.[a-f\d]*)?(?:p[+-]?\d+)?\b|\b\d+(?:\.\B|(?:\.\d*)?(?:e[+-]?\d+)?\b)|\B\.\d+(?:e[+-]?\d+)?\b/i,keyword:/\b(?:and|break|do|else|elseif|end|false|for|function|goto|if|in|local|nil|not|or|repeat|return|then|true|until|while)\b/,function:/(?!\d)\w+(?=\s*(?:[({]))/,operator:[/[-+*%^&|#]|\/\/?|<[<=]?|>[>=]?|[=~]=?/,{pattern:/(^|[^.])\.\.(?!\.)/,lookbehind:!0}],punctuation:/[\[\](){},;]|\.+|:+/}}e.exports=t,t.displayName="lua",t.aliases=[]},33055(e){"use strict";function t(e){e.languages.makefile={comment:{pattern:/(^|[^\\])#(?:\\(?:\r\n|[\s\S])|[^\\\r\n])*/,lookbehind:!0},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},builtin:/\.[A-Z][^:#=\s]+(?=\s*:(?!=))/,symbol:{pattern:/^(?:[^:=\s]|[ \t]+(?![\s:]))+(?=\s*:(?!=))/m,inside:{variable:/\$+(?:(?!\$)[^(){}:#=\s]+|(?=[({]))/}},variable:/\$+(?:(?!\$)[^(){}:#=\s]+|\([@*%<^+?][DF]\)|(?=[({]))/,keyword:[/-include\b|\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\b/,{pattern:/(\()(?:addsuffix|abspath|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:s|list)?)(?=[ \t])/,lookbehind:!0}],operator:/(?:::|[?:+!])?=|[|@]/,punctuation:/[:;(){}]/}}e.exports=t,t.displayName="makefile",t.aliases=[]},90542(e){"use strict";function t(e){!function(e){var t=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function n(e){return e=e.replace(//g,function(){return t}),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+e+")")}var r=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,i=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,function(){return r}),a=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source;e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"font-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+i+a+"(?:"+i+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+i+a+")(?:"+i+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+i+")"+a+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+i+"$"),inside:{"table-header":{pattern:RegExp(r),alias:"important",inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:n(/\b__(?:(?!_)|_(?:(?!_))+_)+__\b|\*\*(?:(?!\*)|\*(?:(?!\*))+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/\b_(?:(?!_)|__(?:(?!_))+__)+_\b|\*(?:(?!\*)|\*\*(?:(?!\*))+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~))+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:n(/!?\[(?:(?!\]))+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\]))+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach(function(t){["url","bold","italic","strike","code-snippet"].forEach(function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])})}),e.hooks.add("after-tokenize",function(e){("markdown"===e.language||"md"===e.language)&&t(e.tokens);function t(e){if(e&&"string"!=typeof e)for(var n=0,r=e.length;n=a.length);u++){var c=s[u];if("string"==typeof c||c.content&&"string"==typeof c.content){var l=a[i],f=n.tokenStack[l],d="string"==typeof c?c:c.content,h=t(r,l),p=d.indexOf(h);if(p>-1){++i;var b=d.substring(0,p),m=new e.Token(r,e.tokenize(f,n.grammar),"language-"+r,f),g=d.substring(p+h.length),v=[];b&&v.push.apply(v,o([b])),v.push(m),g&&v.push.apply(v,o([g])),"string"==typeof c?s.splice.apply(s,[u,1].concat(v)):c.content=v}}else c.content&&o(c.content)}return s}}}})}(e)}e.exports=t,t.displayName="markupTemplating",t.aliases=[]},2717(e){"use strict";function t(e){e.languages.markup={comment://,prolog:/<\?[\s\S]+?\?>/,doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^$|[[\]]/,"doctype-tag":/^DOCTYPE/,name:/[^\s<>'"]+/}},cdata://i,tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},e.languages.markup.tag.inside["attr-value"].inside.entity=e.languages.markup.entity,e.languages.markup.doctype.inside["internal-subset"].inside=e.languages.markup,e.hooks.add("wrap",function(e){"entity"===e.type&&(e.attributes.title=e.content.value.replace(/&/,"&"))}),Object.defineProperty(e.languages.markup.tag,"addInlined",{value:function(t,n){var r={};r["language-"+n]={pattern:/(^$)/i,lookbehind:!0,inside:e.languages[n]},r.cdata=/^$/i;var i={"included-cdata":{pattern://i,inside:r}};i["language-"+n]={pattern:/[\s\S]+/,inside:e.languages[n]};var a={};a[t]={pattern:RegExp(/(<__[^>]*>)(?:))*\]\]>|(?!)/.source.replace(/__/g,function(){return t}),"i"),lookbehind:!0,greedy:!0,inside:i},e.languages.insertBefore("markup","cdata",a)}}),Object.defineProperty(e.languages.markup.tag,"addAttribute",{value:function(t,n){e.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+t+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[n,"language-"+n],inside:e.languages[n]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),e.languages.html=e.languages.markup,e.languages.mathml=e.languages.markup,e.languages.svg=e.languages.markup,e.languages.xml=e.languages.extend("markup",{}),e.languages.ssml=e.languages.xml,e.languages.atom=e.languages.xml,e.languages.rss=e.languages.xml}e.exports=t,t.displayName="markup",t.aliases=["html","mathml","svg","xml","ssml","atom","rss"]},27992(e){"use strict";function t(e){e.languages.matlab={comment:[/%\{[\s\S]*?\}%/,/%.+/],string:{pattern:/\B'(?:''|[^'\r\n])*'/,greedy:!0},number:/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[eE][+-]?\d+)?(?:[ij])?|\b[ij]\b/,keyword:/\b(?:break|case|catch|continue|else|elseif|end|for|function|if|inf|NaN|otherwise|parfor|pause|pi|return|switch|try|while)\b/,function:/\b(?!\d)\w+(?=\s*\()/,operator:/\.?[*^\/\\']|[+\-:@]|[<>=~]=?|&&?|\|\|?/,punctuation:/\.{3}|[.,;\[\](){}!]/}}e.exports=t,t.displayName="matlab",t.aliases=[]},606(e){"use strict";function t(e){e.languages.mel={comment:/\/\/.*/,code:{pattern:/`(?:\\.|[^\\`\r\n])*`/,greedy:!0,alias:"italic",inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"}}},string:{pattern:/"(?:\\.|[^\\"\r\n])*"/,greedy:!0},variable:/\$\w+/,number:/\b0x[\da-fA-F]+\b|\b\d+(?:\.\d*)?|\B\.\d+/,flag:{pattern:/-[^\d\W]\w*/,alias:"operator"},keyword:/\b(?:break|case|continue|default|do|else|float|for|global|if|in|int|matrix|proc|return|string|switch|vector|while)\b/,function:/\b\w+(?=\()|\b(?:about|abs|addAttr|addAttributeEditorNodeHelp|addDynamic|addNewShelfTab|addPP|addPanelCategory|addPrefixToName|advanceToNextDrivenKey|affectedNet|affects|aimConstraint|air|alias|aliasAttr|align|alignCtx|alignCurve|alignSurface|allViewFit|ambientLight|angle|angleBetween|animCone|animCurveEditor|animDisplay|animView|annotate|appendStringArray|applicationName|applyAttrPreset|applyTake|arcLenDimContext|arcLengthDimension|arclen|arrayMapper|art3dPaintCtx|artAttrCtx|artAttrPaintVertexCtx|artAttrSkinPaintCtx|artAttrTool|artBuildPaintMenu|artFluidAttrCtx|artPuttyCtx|artSelectCtx|artSetPaintCtx|artUserPaintCtx|assignCommand|assignInputDevice|assignViewportFactories|attachCurve|attachDeviceAttr|attachSurface|attrColorSliderGrp|attrCompatibility|attrControlGrp|attrEnumOptionMenu|attrEnumOptionMenuGrp|attrFieldGrp|attrFieldSliderGrp|attrNavigationControlGrp|attrPresetEditWin|attributeExists|attributeInfo|attributeMenu|attributeQuery|autoKeyframe|autoPlace|bakeClip|bakeFluidShading|bakePartialHistory|bakeResults|bakeSimulation|basename|basenameEx|batchRender|bessel|bevel|bevelPlus|binMembership|bindSkin|blend2|blendShape|blendShapeEditor|blendShapePanel|blendTwoAttr|blindDataType|boneLattice|boundary|boxDollyCtx|boxZoomCtx|bufferCurve|buildBookmarkMenu|buildKeyframeMenu|button|buttonManip|CBG|cacheFile|cacheFileCombine|cacheFileMerge|cacheFileTrack|camera|cameraView|canCreateManip|canvas|capitalizeString|catch|catchQuiet|ceil|changeSubdivComponentDisplayLevel|changeSubdivRegion|channelBox|character|characterMap|characterOutlineEditor|characterize|chdir|checkBox|checkBoxGrp|checkDefaultRenderGlobals|choice|circle|circularFillet|clamp|clear|clearCache|clip|clipEditor|clipEditorCurrentTimeCtx|clipSchedule|clipSchedulerOutliner|clipTrimBefore|closeCurve|closeSurface|cluster|cmdFileOutput|cmdScrollFieldExecuter|cmdScrollFieldReporter|cmdShell|coarsenSubdivSelectionList|collision|color|colorAtPoint|colorEditor|colorIndex|colorIndexSliderGrp|colorSliderButtonGrp|colorSliderGrp|columnLayout|commandEcho|commandLine|commandPort|compactHairSystem|componentEditor|compositingInterop|computePolysetVolume|condition|cone|confirmDialog|connectAttr|connectControl|connectDynamic|connectJoint|connectionInfo|constrain|constrainValue|constructionHistory|container|containsMultibyte|contextInfo|control|convertFromOldLayers|convertIffToPsd|convertLightmap|convertSolidTx|convertTessellation|convertUnit|copyArray|copyFlexor|copyKey|copySkinWeights|cos|cpButton|cpCache|cpClothSet|cpCollision|cpConstraint|cpConvClothToMesh|cpForces|cpGetSolverAttr|cpPanel|cpProperty|cpRigidCollisionFilter|cpSeam|cpSetEdit|cpSetSolverAttr|cpSolver|cpSolverTypes|cpTool|cpUpdateClothUVs|createDisplayLayer|createDrawCtx|createEditor|createLayeredPsdFile|createMotionField|createNewShelf|createNode|createRenderLayer|createSubdivRegion|cross|crossProduct|ctxAbort|ctxCompletion|ctxEditMode|ctxTraverse|currentCtx|currentTime|currentTimeCtx|currentUnit|curve|curveAddPtCtx|curveCVCtx|curveEPCtx|curveEditorCtx|curveIntersect|curveMoveEPCtx|curveOnSurface|curveSketchCtx|cutKey|cycleCheck|cylinder|dagPose|date|defaultLightListCheckBox|defaultNavigation|defineDataServer|defineVirtualDevice|deformer|deg_to_rad|delete|deleteAttr|deleteShadingGroupsAndMaterials|deleteShelfTab|deleteUI|deleteUnusedBrushes|delrandstr|detachCurve|detachDeviceAttr|detachSurface|deviceEditor|devicePanel|dgInfo|dgdirty|dgeval|dgtimer|dimWhen|directKeyCtx|directionalLight|dirmap|dirname|disable|disconnectAttr|disconnectJoint|diskCache|displacementToPoly|displayAffected|displayColor|displayCull|displayLevelOfDetail|displayPref|displayRGBColor|displaySmoothness|displayStats|displayString|displaySurface|distanceDimContext|distanceDimension|doBlur|dolly|dollyCtx|dopeSheetEditor|dot|dotProduct|doubleProfileBirailSurface|drag|dragAttrContext|draggerContext|dropoffLocator|duplicate|duplicateCurve|duplicateSurface|dynCache|dynControl|dynExport|dynExpression|dynGlobals|dynPaintEditor|dynParticleCtx|dynPref|dynRelEdPanel|dynRelEditor|dynamicLoad|editAttrLimits|editDisplayLayerGlobals|editDisplayLayerMembers|editRenderLayerAdjustment|editRenderLayerGlobals|editRenderLayerMembers|editor|editorTemplate|effector|emit|emitter|enableDevice|encodeString|endString|endsWith|env|equivalent|equivalentTol|erf|error|eval|evalDeferred|evalEcho|event|exactWorldBoundingBox|exclusiveLightCheckBox|exec|executeForEachObject|exists|exp|expression|expressionEditorListen|extendCurve|extendSurface|extrude|fcheck|fclose|feof|fflush|fgetline|fgetword|file|fileBrowserDialog|fileDialog|fileExtension|fileInfo|filetest|filletCurve|filter|filterCurve|filterExpand|filterStudioImport|findAllIntersections|findAnimCurves|findKeyframe|findMenuItem|findRelatedSkinCluster|finder|firstParentOf|fitBspline|flexor|floatEq|floatField|floatFieldGrp|floatScrollBar|floatSlider|floatSlider2|floatSliderButtonGrp|floatSliderGrp|floor|flow|fluidCacheInfo|fluidEmitter|fluidVoxelInfo|flushUndo|fmod|fontDialog|fopen|formLayout|format|fprint|frameLayout|fread|freeFormFillet|frewind|fromNativePath|fwrite|gamma|gauss|geometryConstraint|getApplicationVersionAsFloat|getAttr|getClassification|getDefaultBrush|getFileList|getFluidAttr|getInputDeviceRange|getMayaPanelTypes|getModifiers|getPanel|getParticleAttr|getPluginResource|getenv|getpid|glRender|glRenderEditor|globalStitch|gmatch|goal|gotoBindPose|grabColor|gradientControl|gradientControlNoAttr|graphDollyCtx|graphSelectContext|graphTrackCtx|gravity|grid|gridLayout|group|groupObjectsByName|HfAddAttractorToAS|HfAssignAS|HfBuildEqualMap|HfBuildFurFiles|HfBuildFurImages|HfCancelAFR|HfConnectASToHF|HfCreateAttractor|HfDeleteAS|HfEditAS|HfPerformCreateAS|HfRemoveAttractorFromAS|HfSelectAttached|HfSelectAttractors|HfUnAssignAS|hardenPointCurve|hardware|hardwareRenderPanel|headsUpDisplay|headsUpMessage|help|helpLine|hermite|hide|hilite|hitTest|hotBox|hotkey|hotkeyCheck|hsv_to_rgb|hudButton|hudSlider|hudSliderButton|hwReflectionMap|hwRender|hwRenderLoad|hyperGraph|hyperPanel|hyperShade|hypot|iconTextButton|iconTextCheckBox|iconTextRadioButton|iconTextRadioCollection|iconTextScrollList|iconTextStaticLabel|ikHandle|ikHandleCtx|ikHandleDisplayScale|ikSolver|ikSplineHandleCtx|ikSystem|ikSystemInfo|ikfkDisplayMethod|illustratorCurves|image|imfPlugins|inheritTransform|insertJoint|insertJointCtx|insertKeyCtx|insertKnotCurve|insertKnotSurface|instance|instanceable|instancer|intField|intFieldGrp|intScrollBar|intSlider|intSliderGrp|interToUI|internalVar|intersect|iprEngine|isAnimCurve|isConnected|isDirty|isParentOf|isSameObject|isTrue|isValidObjectName|isValidString|isValidUiName|isolateSelect|itemFilter|itemFilterAttr|itemFilterRender|itemFilterType|joint|jointCluster|jointCtx|jointDisplayScale|jointLattice|keyTangent|keyframe|keyframeOutliner|keyframeRegionCurrentTimeCtx|keyframeRegionDirectKeyCtx|keyframeRegionDollyCtx|keyframeRegionInsertKeyCtx|keyframeRegionMoveKeyCtx|keyframeRegionScaleKeyCtx|keyframeRegionSelectKeyCtx|keyframeRegionSetKeyCtx|keyframeRegionTrackCtx|keyframeStats|lassoContext|lattice|latticeDeformKeyCtx|launch|launchImageEditor|layerButton|layeredShaderPort|layeredTexturePort|layout|layoutDialog|lightList|lightListEditor|lightListPanel|lightlink|lineIntersection|linearPrecision|linstep|listAnimatable|listAttr|listCameras|listConnections|listDeviceAttachments|listHistory|listInputDeviceAxes|listInputDeviceButtons|listInputDevices|listMenuAnnotation|listNodeTypes|listPanelCategories|listRelatives|listSets|listTransforms|listUnselected|listerEditor|loadFluid|loadNewShelf|loadPlugin|loadPluginLanguageResources|loadPrefObjects|localizedPanelLabel|lockNode|loft|log|longNameOf|lookThru|ls|lsThroughFilter|lsType|lsUI|Mayatomr|mag|makeIdentity|makeLive|makePaintable|makeRoll|makeSingleSurface|makeTubeOn|makebot|manipMoveContext|manipMoveLimitsCtx|manipOptions|manipRotateContext|manipRotateLimitsCtx|manipScaleContext|manipScaleLimitsCtx|marker|match|max|memory|menu|menuBarLayout|menuEditor|menuItem|menuItemToShelf|menuSet|menuSetPref|messageLine|min|minimizeApp|mirrorJoint|modelCurrentTimeCtx|modelEditor|modelPanel|mouse|movIn|movOut|move|moveIKtoFK|moveKeyCtx|moveVertexAlongDirection|multiProfileBirailSurface|mute|nParticle|nameCommand|nameField|namespace|namespaceInfo|newPanelItems|newton|nodeCast|nodeIconButton|nodeOutliner|nodePreset|nodeType|noise|nonLinear|normalConstraint|normalize|nurbsBoolean|nurbsCopyUVSet|nurbsCube|nurbsEditUV|nurbsPlane|nurbsSelect|nurbsSquare|nurbsToPoly|nurbsToPolygonsPref|nurbsToSubdiv|nurbsToSubdivPref|nurbsUVSet|nurbsViewDirectionVector|objExists|objectCenter|objectLayer|objectType|objectTypeUI|obsoleteProc|oceanNurbsPreviewPlane|offsetCurve|offsetCurveOnSurface|offsetSurface|openGLExtension|openMayaPref|optionMenu|optionMenuGrp|optionVar|orbit|orbitCtx|orientConstraint|outlinerEditor|outlinerPanel|overrideModifier|paintEffectsDisplay|pairBlend|palettePort|paneLayout|panel|panelConfiguration|panelHistory|paramDimContext|paramDimension|paramLocator|parent|parentConstraint|particle|particleExists|particleInstancer|particleRenderInfo|partition|pasteKey|pathAnimation|pause|pclose|percent|performanceOptions|pfxstrokes|pickWalk|picture|pixelMove|planarSrf|plane|play|playbackOptions|playblast|plugAttr|plugNode|pluginInfo|pluginResourceUtil|pointConstraint|pointCurveConstraint|pointLight|pointMatrixMult|pointOnCurve|pointOnSurface|pointPosition|poleVectorConstraint|polyAppend|polyAppendFacetCtx|polyAppendVertex|polyAutoProjection|polyAverageNormal|polyAverageVertex|polyBevel|polyBlendColor|polyBlindData|polyBoolOp|polyBridgeEdge|polyCacheMonitor|polyCheck|polyChipOff|polyClipboard|polyCloseBorder|polyCollapseEdge|polyCollapseFacet|polyColorBlindData|polyColorDel|polyColorPerVertex|polyColorSet|polyCompare|polyCone|polyCopyUV|polyCrease|polyCreaseCtx|polyCreateFacet|polyCreateFacetCtx|polyCube|polyCut|polyCutCtx|polyCylinder|polyCylindricalProjection|polyDelEdge|polyDelFacet|polyDelVertex|polyDuplicateAndConnect|polyDuplicateEdge|polyEditUV|polyEditUVShell|polyEvaluate|polyExtrudeEdge|polyExtrudeFacet|polyExtrudeVertex|polyFlipEdge|polyFlipUV|polyForceUV|polyGeoSampler|polyHelix|polyInfo|polyInstallAction|polyLayoutUV|polyListComponentConversion|polyMapCut|polyMapDel|polyMapSew|polyMapSewMove|polyMergeEdge|polyMergeEdgeCtx|polyMergeFacet|polyMergeFacetCtx|polyMergeUV|polyMergeVertex|polyMirrorFace|polyMoveEdge|polyMoveFacet|polyMoveFacetUV|polyMoveUV|polyMoveVertex|polyNormal|polyNormalPerVertex|polyNormalizeUV|polyOptUvs|polyOptions|polyOutput|polyPipe|polyPlanarProjection|polyPlane|polyPlatonicSolid|polyPoke|polyPrimitive|polyPrism|polyProjection|polyPyramid|polyQuad|polyQueryBlindData|polyReduce|polySelect|polySelectConstraint|polySelectConstraintMonitor|polySelectCtx|polySelectEditCtx|polySeparate|polySetToFaceNormal|polySewEdge|polyShortestPathCtx|polySmooth|polySoftEdge|polySphere|polySphericalProjection|polySplit|polySplitCtx|polySplitEdge|polySplitRing|polySplitVertex|polyStraightenUVBorder|polySubdivideEdge|polySubdivideFacet|polyToSubdiv|polyTorus|polyTransfer|polyTriangulate|polyUVSet|polyUnite|polyWedgeFace|popen|popupMenu|pose|pow|preloadRefEd|print|progressBar|progressWindow|projFileViewer|projectCurve|projectTangent|projectionContext|projectionManip|promptDialog|propModCtx|propMove|psdChannelOutliner|psdEditTextureFile|psdExport|psdTextureFile|putenv|pwd|python|querySubdiv|quit|rad_to_deg|radial|radioButton|radioButtonGrp|radioCollection|radioMenuItemCollection|rampColorPort|rand|randomizeFollicles|randstate|rangeControl|readTake|rebuildCurve|rebuildSurface|recordAttr|recordDevice|redo|reference|referenceEdit|referenceQuery|refineSubdivSelectionList|refresh|refreshAE|registerPluginResource|rehash|reloadImage|removeJoint|removeMultiInstance|removePanelCategory|rename|renameAttr|renameSelectionList|renameUI|render|renderGlobalsNode|renderInfo|renderLayerButton|renderLayerParent|renderLayerPostProcess|renderLayerUnparent|renderManip|renderPartition|renderQualityNode|renderSettings|renderThumbnailUpdate|renderWindowEditor|renderWindowSelectContext|renderer|reorder|reorderDeformers|requires|reroot|resampleFluid|resetAE|resetPfxToPolyCamera|resetTool|resolutionNode|retarget|reverseCurve|reverseSurface|revolve|rgb_to_hsv|rigidBody|rigidSolver|roll|rollCtx|rootOf|rot|rotate|rotationInterpolation|roundConstantRadius|rowColumnLayout|rowLayout|runTimeCommand|runup|sampleImage|saveAllShelves|saveAttrPreset|saveFluid|saveImage|saveInitialState|saveMenu|savePrefObjects|savePrefs|saveShelf|saveToolSettings|scale|scaleBrushBrightness|scaleComponents|scaleConstraint|scaleKey|scaleKeyCtx|sceneEditor|sceneUIReplacement|scmh|scriptCtx|scriptEditorInfo|scriptJob|scriptNode|scriptTable|scriptToShelf|scriptedPanel|scriptedPanelType|scrollField|scrollLayout|sculpt|searchPathArray|seed|selLoadSettings|select|selectContext|selectCurveCV|selectKey|selectKeyCtx|selectKeyframeRegionCtx|selectMode|selectPref|selectPriority|selectType|selectedNodes|selectionConnection|separator|setAttr|setAttrEnumResource|setAttrMapping|setAttrNiceNameResource|setConstraintRestPosition|setDefaultShadingGroup|setDrivenKeyframe|setDynamic|setEditCtx|setEditor|setFluidAttr|setFocus|setInfinity|setInputDeviceMapping|setKeyCtx|setKeyPath|setKeyframe|setKeyframeBlendshapeTargetWts|setMenuMode|setNodeNiceNameResource|setNodeTypeFlag|setParent|setParticleAttr|setPfxToPolyCamera|setPluginResource|setProject|setStampDensity|setStartupMessage|setState|setToolTo|setUITemplate|setXformManip|sets|shadingConnection|shadingGeometryRelCtx|shadingLightRelCtx|shadingNetworkCompare|shadingNode|shapeCompare|shelfButton|shelfLayout|shelfTabLayout|shellField|shortNameOf|showHelp|showHidden|showManipCtx|showSelectionInTitle|showShadingGroupAttrEditor|showWindow|sign|simplify|sin|singleProfileBirailSurface|size|sizeBytes|skinCluster|skinPercent|smoothCurve|smoothTangentSurface|smoothstep|snap2to2|snapKey|snapMode|snapTogetherCtx|snapshot|soft|softMod|softModCtx|sort|sound|soundControl|source|spaceLocator|sphere|sphrand|spotLight|spotLightPreviewPort|spreadSheetEditor|spring|sqrt|squareSurface|srtContext|stackTrace|startString|startsWith|stitchAndExplodeShell|stitchSurface|stitchSurfacePoints|strcmp|stringArrayCatenate|stringArrayContains|stringArrayCount|stringArrayInsertAtIndex|stringArrayIntersector|stringArrayRemove|stringArrayRemoveAtIndex|stringArrayRemoveDuplicates|stringArrayRemoveExact|stringArrayToString|stringToStringArray|strip|stripPrefixFromName|stroke|subdAutoProjection|subdCleanTopology|subdCollapse|subdDuplicateAndConnect|subdEditUV|subdListComponentConversion|subdMapCut|subdMapSewMove|subdMatchTopology|subdMirror|subdToBlind|subdToPoly|subdTransferUVsToCache|subdiv|subdivCrease|subdivDisplaySmoothness|substitute|substituteAllString|substituteGeometry|substring|surface|surfaceSampler|surfaceShaderList|swatchDisplayPort|switchTable|symbolButton|symbolCheckBox|sysFile|system|tabLayout|tan|tangentConstraint|texLatticeDeformContext|texManipContext|texMoveContext|texMoveUVShellContext|texRotateContext|texScaleContext|texSelectContext|texSelectShortestPathCtx|texSmudgeUVContext|texWinToolCtx|text|textCurves|textField|textFieldButtonGrp|textFieldGrp|textManip|textScrollList|textToShelf|textureDisplacePlane|textureHairColor|texturePlacementContext|textureWindow|threadCount|threePointArcCtx|timeControl|timePort|timerX|toNativePath|toggle|toggleAxis|toggleWindowVisibility|tokenize|tokenizeList|tolerance|tolower|toolButton|toolCollection|toolDropped|toolHasOptions|toolPropertyWindow|torus|toupper|trace|track|trackCtx|transferAttributes|transformCompare|transformLimits|translator|trim|trunc|truncateFluidCache|truncateHairCache|tumble|tumbleCtx|turbulence|twoPointArcCtx|uiRes|uiTemplate|unassignInputDevice|undo|undoInfo|ungroup|uniform|unit|unloadPlugin|untangleUV|untitledFileName|untrim|upAxis|updateAE|userCtx|uvLink|uvSnapshot|validateShelfName|vectorize|view2dToolCtx|viewCamera|viewClipPlane|viewFit|viewHeadOn|viewLookAt|viewManip|viewPlace|viewSet|visor|volumeAxis|vortex|waitCursor|warning|webBrowser|webBrowserPrefs|whatIs|window|windowPref|wire|wireContext|workspace|wrinkle|wrinkleContext|writeTake|xbmLangPathList|xform)\b/,operator:[/\+[+=]?|-[-=]?|&&|\|\||[<>]=|[*\/!=]=?|[%^]/,{pattern:/(^|[^<])<(?!<)/,lookbehind:!0},{pattern:/(^|[^>])>(?!>)/,lookbehind:!0}],punctuation:/<<|>>|[.,:;?\[\](){}]/},e.languages.mel.code.inside.rest=e.languages.mel}e.exports=t,t.displayName="mel",t.aliases=[]},23388(e){"use strict";function t(e){e.languages.mizar={comment:/::.+/,keyword:/@proof\b|\b(?:according|aggregate|all|and|antonym|are|as|associativity|assume|asymmetry|attr|be|begin|being|by|canceled|case|cases|clusters?|coherence|commutativity|compatibility|connectedness|consider|consistency|constructors|contradiction|correctness|def|deffunc|define|definitions?|defpred|do|does|equals|end|environ|ex|exactly|existence|for|from|func|given|hence|hereby|holds|idempotence|identity|iff?|implies|involutiveness|irreflexivity|is|it|let|means|mode|non|not|notations?|now|of|or|otherwise|over|per|pred|prefix|projectivity|proof|provided|qua|reconsider|redefine|reduce|reducibility|reflexivity|registrations?|requirements|reserve|sch|schemes?|section|selector|set|sethood|st|struct|such|suppose|symmetry|synonym|take|that|the|then|theorems?|thesis|thus|to|transitivity|uniqueness|vocabular(?:y|ies)|when|where|with|wrt)\b/,parameter:{pattern:/\$(?:10|\d)/,alias:"variable"},variable:/\b\w+(?=:)/,number:/(?:\b|-)\d+\b/,operator:/\.\.\.|->|&|\.?=/,punctuation:/\(#|#\)|[,:;\[\](){}]/}}e.exports=t,t.displayName="mizar",t.aliases=[]},90596(e){"use strict";function t(e){var t,n,r,i;t=e,r=["ObjectId","Code","BinData","DBRef","Timestamp","NumberLong","NumberDecimal","MaxKey","MinKey","RegExp","ISODate","UUID"],i="(?:"+(n=(n=["$eq","$gt","$gte","$in","$lt","$lte","$ne","$nin","$and","$not","$nor","$or","$exists","$type","$expr","$jsonSchema","$mod","$regex","$text","$where","$geoIntersects","$geoWithin","$near","$nearSphere","$all","$elemMatch","$size","$bitsAllClear","$bitsAllSet","$bitsAnyClear","$bitsAnySet","$comment","$elemMatch","$meta","$slice","$currentDate","$inc","$min","$max","$mul","$rename","$set","$setOnInsert","$unset","$addToSet","$pop","$pull","$push","$pullAll","$each","$position","$slice","$sort","$bit","$addFields","$bucket","$bucketAuto","$collStats","$count","$currentOp","$facet","$geoNear","$graphLookup","$group","$indexStats","$limit","$listLocalSessions","$listSessions","$lookup","$match","$merge","$out","$planCacheStats","$project","$redact","$replaceRoot","$replaceWith","$sample","$set","$skip","$sort","$sortByCount","$unionWith","$unset","$unwind","$abs","$accumulator","$acos","$acosh","$add","$addToSet","$allElementsTrue","$and","$anyElementTrue","$arrayElemAt","$arrayToObject","$asin","$asinh","$atan","$atan2","$atanh","$avg","$binarySize","$bsonSize","$ceil","$cmp","$concat","$concatArrays","$cond","$convert","$cos","$dateFromParts","$dateToParts","$dateFromString","$dateToString","$dayOfMonth","$dayOfWeek","$dayOfYear","$degreesToRadians","$divide","$eq","$exp","$filter","$first","$floor","$function","$gt","$gte","$hour","$ifNull","$in","$indexOfArray","$indexOfBytes","$indexOfCP","$isArray","$isNumber","$isoDayOfWeek","$isoWeek","$isoWeekYear","$last","$last","$let","$literal","$ln","$log","$log10","$lt","$lte","$ltrim","$map","$max","$mergeObjects","$meta","$min","$millisecond","$minute","$mod","$month","$multiply","$ne","$not","$objectToArray","$or","$pow","$push","$radiansToDegrees","$range","$reduce","$regexFind","$regexFindAll","$regexMatch","$replaceOne","$replaceAll","$reverseArray","$round","$rtrim","$second","$setDifference","$setEquals","$setIntersection","$setIsSubset","$setUnion","$size","$sin","$slice","$split","$sqrt","$stdDevPop","$stdDevSamp","$strcasecmp","$strLenBytes","$strLenCP","$substr","$substrBytes","$substrCP","$subtract","$sum","$switch","$tan","$toBool","$toDate","$toDecimal","$toDouble","$toInt","$toLong","$toObjectId","$toString","$toLower","$toUpper","$trim","$trunc","$type","$week","$year","$zip","$comment","$explain","$hint","$max","$maxTimeMS","$min","$orderby","$query","$returnKey","$showDiskLoc","$natural"]).map(function(e){return e.replace("$","\\$")})).join("|")+")\\b",t.languages.mongodb=t.languages.extend("javascript",{}),t.languages.insertBefore("mongodb","string",{property:{pattern:/(?:(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)(?=\s*:)/,greedy:!0,inside:{keyword:RegExp("^(['\"])?"+i+"(?:\\1)?$")}}}),t.languages.mongodb.string.inside={url:{pattern:/https?:\/\/[-\w@:%.+~#=]{1,256}\.[a-z0-9()]{1,6}\b[-\w()@:%+.~#?&/=]*/i,greedy:!0},entity:{pattern:/\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b/,greedy:!0}},t.languages.insertBefore("mongodb","constant",{builtin:{pattern:RegExp("\\b(?:"+r.join("|")+")\\b"),alias:"keyword"}})}e.exports=t,t.displayName="mongodb",t.aliases=[]},95721(e){"use strict";function t(e){e.languages.monkey={string:/"[^"\r\n]*"/,comment:[{pattern:/^#Rem\s[\s\S]*?^#End/im,greedy:!0},{pattern:/'.+/,greedy:!0}],preprocessor:{pattern:/(^[ \t]*)#.+/m,lookbehind:!0,alias:"comment"},function:/\b\w+(?=\()/,"type-char":{pattern:/(\w)[?%#$]/,lookbehind:!0,alias:"variable"},number:{pattern:/((?:\.\.)?)(?:(?:\b|\B-\.?|\B\.)\d+(?:(?!\.\.)\.\d*)?|\$[\da-f]+)/i,lookbehind:!0},keyword:/\b(?:Void|Strict|Public|Private|Property|Bool|Int|Float|String|Array|Object|Continue|Exit|Import|Extern|New|Self|Super|Try|Catch|Eachin|True|False|Extends|Abstract|Final|Select|Case|Default|Const|Local|Global|Field|Method|Function|Class|End|If|Then|Else|ElseIf|EndIf|While|Wend|Repeat|Until|Forever|For|To|Step|Next|Return|Module|Interface|Implements|Inline|Throw|Null)\b/i,operator:/\.\.|<[=>]?|>=?|:?=|(?:[+\-*\/&~|]|\b(?:Mod|Shl|Shr)\b)=?|\b(?:And|Not|Or)\b/i,punctuation:/[.,:;()\[\]]/}}e.exports=t,t.displayName="monkey",t.aliases=[]},64262(e){"use strict";function t(e){e.languages.moonscript={comment:/--.*/,string:[{pattern:/'[^']*'|\[(=*)\[[\s\S]*?\]\1\]/,greedy:!0},{pattern:/"[^"]*"/,greedy:!0,inside:{interpolation:{pattern:/#\{[^{}]*\}/,inside:{moonscript:{pattern:/(^#\{)[\s\S]+(?=\})/,lookbehind:!0,inside:null},"interpolation-punctuation":{pattern:/#\{|\}/,alias:"punctuation"}}}}}],"class-name":[{pattern:/(\b(?:class|extends)[ \t]+)\w+/,lookbehind:!0},/\b[A-Z]\w*/],keyword:/\b(?:class|continue|do|else|elseif|export|extends|for|from|if|import|in|local|nil|return|self|super|switch|then|unless|using|when|while|with)\b/,variable:/@@?\w*/,property:{pattern:/\b(?!\d)\w+(?=:)|(:)(?!\d)\w+/,lookbehind:!0},function:{pattern:/\b(?:_G|_VERSION|assert|collectgarbage|coroutine\.(?:running|create|resume|status|wrap|yield)|debug\.(?:debug|gethook|getinfo|getlocal|getupvalue|setlocal|setupvalue|sethook|traceback|getfenv|getmetatable|getregistry|setfenv|setmetatable)|dofile|error|getfenv|getmetatable|io\.(?:stdin|stdout|stderr|close|flush|input|lines|open|output|popen|read|tmpfile|type|write)|ipairs|load|loadfile|loadstring|math\.(?:abs|acos|asin|atan|atan2|ceil|sin|cos|tan|deg|exp|floor|log|log10|max|min|fmod|modf|cosh|sinh|tanh|pow|rad|sqrt|frexp|ldexp|random|randomseed|pi)|module|next|os\.(?:clock|date|difftime|execute|exit|getenv|remove|rename|setlocale|time|tmpname)|package\.(?:cpath|loaded|loadlib|path|preload|seeall)|pairs|pcall|print|rawequal|rawget|rawset|require|select|setfenv|setmetatable|string\.(?:byte|char|dump|find|len|lower|rep|sub|upper|format|gsub|gmatch|match|reverse)|table\.(?:maxn|concat|sort|insert|remove)|tonumber|tostring|type|unpack|xpcall)\b/,inside:{punctuation:/\./}},boolean:/\b(?:false|true)\b/,number:/(?:\B\.\d+|\b\d+\.\d+|\b\d+(?=[eE]))(?:[eE][-+]?\d+)?\b|\b(?:0x[a-fA-F\d]+|\d+)(?:U?LL)?\b/,operator:/\.{3}|[-=]>|~=|(?:[-+*/%<>!=]|\.\.)=?|[:#^]|\b(?:and|or)\b=?|\b(?:not)\b/,punctuation:/[.,()[\]{}\\]/},e.languages.moonscript.string[1].inside.interpolation.inside.moonscript.inside=e.languages.moonscript,e.languages.moon=e.languages.moonscript}e.exports=t,t.displayName="moonscript",t.aliases=["moon"]},18190(e){"use strict";function t(e){e.languages.n1ql={comment:/\/\*[\s\S]*?(?:$|\*\/)/,parameter:/\$[\w.]+/,string:{pattern:/(["'])(?:\\[\s\S]|(?!\1)[^\\]|\1\1)*\1/,greedy:!0},identifier:{pattern:/`(?:\\[\s\S]|[^\\`]|``)*`/,greedy:!0},function:/\b(?:ABS|ACOS|ARRAY_AGG|ARRAY_APPEND|ARRAY_AVG|ARRAY_CONCAT|ARRAY_CONTAINS|ARRAY_COUNT|ARRAY_DISTINCT|ARRAY_FLATTEN|ARRAY_IFNULL|ARRAY_INSERT|ARRAY_INTERSECT|ARRAY_LENGTH|ARRAY_MAX|ARRAY_MIN|ARRAY_POSITION|ARRAY_PREPEND|ARRAY_PUT|ARRAY_RANGE|ARRAY_REMOVE|ARRAY_REPEAT|ARRAY_REPLACE|ARRAY_REVERSE|ARRAY_SORT|ARRAY_STAR|ARRAY_SUM|ARRAY_SYMDIFF|ARRAY_SYMDIFFN|ARRAY_UNION|ASIN|ATAN|ATAN2|AVG|BASE64|BASE64_DECODE|BASE64_ENCODE|BITAND|BITCLEAR|BITNOT|BITOR|BITSET|BITSHIFT|BITTEST|BITXOR|CEIL|CLOCK_LOCAL|CLOCK_MILLIS|CLOCK_STR|CLOCK_TZ|CLOCK_UTC|CONTAINS|CONTAINS_TOKEN|CONTAINS_TOKEN_LIKE|CONTAINS_TOKEN_REGEXP|COS|COUNT|CURL|DATE_ADD_MILLIS|DATE_ADD_STR|DATE_DIFF_MILLIS|DATE_DIFF_STR|DATE_FORMAT_STR|DATE_PART_MILLIS|DATE_PART_STR|DATE_RANGE_MILLIS|DATE_RANGE_STR|DATE_TRUNC_MILLIS|DATE_TRUNC_STR|DECODE_JSON|DEGREES|DURATION_TO_STR|E|ENCODED_SIZE|ENCODE_JSON|EXP|FLOOR|GREATEST|HAS_TOKEN|IFINF|IFMISSING|IFMISSINGORNULL|IFNAN|IFNANORINF|IFNULL|INITCAP|ISARRAY|ISATOM|ISBOOLEAN|ISNUMBER|ISOBJECT|ISSTRING|IsBitSET|LEAST|LENGTH|LN|LOG|LOWER|LTRIM|MAX|META|MILLIS|MILLIS_TO_LOCAL|MILLIS_TO_STR|MILLIS_TO_TZ|MILLIS_TO_UTC|MILLIS_TO_ZONE_NAME|MIN|MISSINGIF|NANIF|NEGINFIF|NOW_LOCAL|NOW_MILLIS|NOW_STR|NOW_TZ|NOW_UTC|NULLIF|OBJECT_ADD|OBJECT_CONCAT|OBJECT_INNER_PAIRS|OBJECT_INNER_VALUES|OBJECT_LENGTH|OBJECT_NAMES|OBJECT_PAIRS|OBJECT_PUT|OBJECT_REMOVE|OBJECT_RENAME|OBJECT_REPLACE|OBJECT_UNWRAP|OBJECT_VALUES|PAIRS|PI|POLY_LENGTH|POSINFIF|POSITION|POWER|RADIANS|RANDOM|REGEXP_CONTAINS|REGEXP_LIKE|REGEXP_POSITION|REGEXP_REPLACE|REPEAT|REPLACE|REVERSE|ROUND|RTRIM|SIGN|SIN|SPLIT|SQRT|STR_TO_DURATION|STR_TO_MILLIS|STR_TO_TZ|STR_TO_UTC|STR_TO_ZONE_NAME|SUBSTR|SUFFIXES|SUM|TAN|TITLE|TOARRAY|TOATOM|TOBOOLEAN|TOKENS|TONUMBER|TOOBJECT|TOSTRING|TRIM|TRUNC|TYPE|UPPER|WEEKDAY_MILLIS|WEEKDAY_STR)(?=\s*\()/i,keyword:/\b(?:ALL|ALTER|ANALYZE|AS|ASC|BEGIN|BINARY|BOOLEAN|BREAK|BUCKET|BUILD|BY|CALL|CAST|CLUSTER|COLLATE|COLLECTION|COMMIT|CONNECT|CONTINUE|CORRELATE|COVER|CREATE|DATABASE|DATASET|DATASTORE|DECLARE|DECREMENT|DELETE|DERIVED|DESC|DESCRIBE|DISTINCT|DO|DROP|EACH|ELEMENT|EXCEPT|EXCLUDE|EXECUTE|EXPLAIN|FETCH|FLATTEN|FOR|FORCE|FROM|FUNCTION|GRANT|GROUP|GSI|HAVING|IF|IGNORE|ILIKE|INCLUDE|INCREMENT|INDEX|INFER|INLINE|INNER|INSERT|INTERSECT|INTO|IS|JOIN|KEY|KEYS|KEYSPACE|KNOWN|LAST|LEFT|LET|LETTING|LIMIT|LSM|MAP|MAPPING|MATCHED|MATERIALIZED|MERGE|MINUS|MISSING|NAMESPACE|NEST|NULL|NUMBER|OBJECT|OFFSET|ON|OPTION|ORDER|OUTER|OVER|PARSE|PARTITION|PASSWORD|PATH|POOL|PREPARE|PRIMARY|PRIVATE|PRIVILEGE|PROCEDURE|PUBLIC|RAW|REALM|REDUCE|RENAME|RETURN|RETURNING|REVOKE|RIGHT|ROLE|ROLLBACK|SATISFIES|SCHEMA|SELECT|SELF|SEMI|SET|SHOW|SOME|START|STATISTICS|STRING|SYSTEM|TO|TRANSACTION|TRIGGER|TRUNCATE|UNDER|UNION|UNIQUE|UNKNOWN|UNNEST|UNSET|UPDATE|UPSERT|USE|USER|USING|VALIDATE|VALUE|VALUES|VIA|VIEW|WHERE|WHILE|WITH|WORK|XOR)\b/i,boolean:/\b(?:TRUE|FALSE)\b/i,number:/(?:\b\d+\.|\B\.)\d+e[+\-]?\d+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/%]|!=|==?|\|\||<[>=]?|>=?|\b(?:AND|ANY|ARRAY|BETWEEN|CASE|ELSE|END|EVERY|EXISTS|FIRST|IN|LIKE|NOT|OR|THEN|VALUED|WHEN|WITHIN)\b/i,punctuation:/[;[\](),.{}:]/}}e.exports=t,t.displayName="n1ql",t.aliases=[]},70896(e){"use strict";function t(e){e.languages.n4js=e.languages.extend("javascript",{keyword:/\b(?:any|Array|boolean|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|false|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|module|new|null|number|package|private|protected|public|return|set|static|string|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)\b/}),e.languages.insertBefore("n4js","constant",{annotation:{pattern:/@+\w+/,alias:"operator"}}),e.languages.n4jsd=e.languages.n4js}e.exports=t,t.displayName="n4js",t.aliases=["n4jsd"]},42242(e){"use strict";function t(e){e.languages["nand2tetris-hdl"]={comment:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,keyword:/\b(?:CHIP|IN|OUT|PARTS|BUILTIN|CLOCKED)\b/,boolean:/\b(?:true|false)\b/,function:/\b[A-Za-z][A-Za-z0-9]*(?=\()/,number:/\b\d+\b/,operator:/=|\.\./,punctuation:/[{}[\];(),:]/}}e.exports=t,t.displayName="nand2tetrisHdl",t.aliases=[]},37943(e){"use strict";function t(e){!function(e){var t=/\{[^\r\n\[\]{}]*\}/,n={"quoted-string":{pattern:/"(?:[^"\\]|\\.)*"/,alias:"operator"},"command-param-id":{pattern:/(\s)\w+:/,lookbehind:!0,alias:"property"},"command-param-value":[{pattern:t,alias:"selector"},{pattern:/([\t ])\S+/,lookbehind:!0,greedy:!0,alias:"operator"},{pattern:/\S(?:.*\S)?/,alias:"operator"}]};function r(e){for(var t="[]{}",n=[],r=0;r.+/m,alias:"tag",inside:{value:{pattern:/(^>\w+[\t ]+)(?!\s)[^{}\r\n]+/,lookbehind:!0,alias:"operator"},key:{pattern:/(^>)\w+/,lookbehind:!0}}},label:{pattern:/^([\t ]*)#[\t ]*\w+[\t ]*$/m,lookbehind:!0,alias:"regex"},command:{pattern:/^([\t ]*)@\w+(?=[\t ]|$).*/m,lookbehind:!0,alias:"function",inside:{"command-name":/^@\w+/,expression:{pattern:t,greedy:!0,alias:"selector"},"command-params":{pattern:/\s*\S[\s\S]*/,inside:n}}},"generic-text":{pattern:/(^[ \t]*)[^#@>;\s].*/m,lookbehind:!0,alias:"punctuation",inside:{"escaped-char":/\\[{}\[\]"]/,expression:{pattern:t,greedy:!0,alias:"selector"},"inline-command":{pattern:/\[[\t ]*\w[^\r\n\[\]]*\]/,greedy:!0,alias:"function",inside:{"command-params":{pattern:/(^\[[\t ]*\w+\b)[\s\S]+(?=\]$)/,lookbehind:!0,inside:n},"command-param-name":{pattern:/^(\[[\t ]*)\w+/,lookbehind:!0,alias:"name"},"start-stop-char":/[\[\]]/}}}}},e.languages.nani=e.languages.naniscript,e.hooks.add("after-tokenize",function(e){e.tokens.forEach(function(e){if("string"!=typeof e&&"generic-text"===e.type){var t=i(e);r(t)||(e.type="bad-line",e.content=t)}})})}(e)}e.exports=t,t.displayName="naniscript",t.aliases=[]},293(e){"use strict";function t(e){e.languages.nasm={comment:/;.*$/m,string:/(["'`])(?:\\.|(?!\1)[^\\\r\n])*\1/,label:{pattern:/(^\s*)[A-Za-z._?$][\w.?$@~#]*:/m,lookbehind:!0,alias:"function"},keyword:[/\[?BITS (?:16|32|64)\]?/,{pattern:/(^\s*)section\s*[a-z.]+:?/im,lookbehind:!0},/(?:extern|global)[^;\r\n]*/i,/(?:CPU|FLOAT|DEFAULT).*$/m],register:{pattern:/\b(?:st\d|[xyz]mm\d\d?|[cdt]r\d|r\d\d?[bwd]?|[er]?[abcd]x|[abcd][hl]|[er]?(?:bp|sp|si|di)|[cdefgs]s)\b/i,alias:"variable"},number:/(?:\b|(?=\$))(?:0[hx](?:\.[\da-f]+|[\da-f]+(?:\.[\da-f]+)?)(?:p[+-]?\d+)?|\d[\da-f]+[hx]|\$\d[\da-f]*|0[oq][0-7]+|[0-7]+[oq]|0[by][01]+|[01]+[by]|0[dt]\d+|(?:\d+(?:\.\d+)?|\.\d+)(?:\.?e[+-]?\d+)?[dt]?)\b/i,operator:/[\[\]*+\-\/%<>=&|$!]/}}e.exports=t,t.displayName="nasm",t.aliases=[]},83873(e){"use strict";function t(e){e.languages.neon={comment:{pattern:/#.*/,greedy:!0},datetime:{pattern:/(^|[[{(=:,\s])\d\d\d\d-\d\d?-\d\d?(?:(?:[Tt]| +)\d\d?:\d\d:\d\d(?:\.\d*)? *(?:Z|[-+]\d\d?(?::?\d\d)?)?)?(?=$|[\]}),\s])/,lookbehind:!0,alias:"number"},key:{pattern:/(^|[[{(,\s])[^,:=[\]{}()'"\s]+(?=\s*:(?:$|[\]}),\s])|\s*=)/,lookbehind:!0,alias:"atrule"},number:{pattern:/(^|[[{(=:,\s])[+-]?(?:0x[\da-fA-F]+|0o[0-7]+|0b[01]+|(?:\d+(?:\.\d*)?|\.?\d+)(?:[eE][+-]?\d+)?)(?=$|[\]}),:=\s])/,lookbehind:!0},boolean:{pattern:/(^|[[{(=:,\s])(?:true|false|yes|no)(?=$|[\]}),:=\s])/i,lookbehind:!0},null:{pattern:/(^|[[{(=:,\s])(?:null)(?=$|[\]}),:=\s])/i,lookbehind:!0,alias:"keyword"},string:{pattern:/(^|[[{(=:,\s])(?:('''|""")\r?\n(?:(?:[^\r\n]|\r?\n(?![\t ]*\2))*\r?\n)?[\t ]*\2|'[^'\r\n]*'|"(?:\\.|[^\\"\r\n])*")/,lookbehind:!0,greedy:!0},literal:{pattern:/(^|[[{(=:,\s])(?:[^#"',:=[\]{}()\s`-]|[:-][^"',=[\]{}()\s])(?:[^,:=\]})(\s]|:(?![\s,\]})]|$)|[ \t]+[^#,:=\]})(\s])*/,lookbehind:!0,alias:"string"},punctuation:/[,:=[\]{}()-]/}}e.exports=t,t.displayName="neon",t.aliases=[]},75932(e){"use strict";function t(e){e.languages.nevod={comment:/\/\/.*|(?:\/\*[\s\S]*?(?:\*\/|$))/,string:{pattern:/(?:"(?:""|[^"])*"(?!")|'(?:''|[^'])*'(?!'))!?\*?/,greedy:!0,inside:{"string-attrs":/!$|!\*$|\*$/}},namespace:{pattern:/(@namespace\s+)[a-zA-Z0-9\-.]+(?=\s*\{)/,lookbehind:!0},pattern:{pattern:/(@pattern\s+)?#?[a-zA-Z0-9\-.]+(?:\s*\(\s*(?:~\s*)?[a-zA-Z0-9\-.]+\s*(?:,\s*(?:~\s*)?[a-zA-Z0-9\-.]*)*\))?(?=\s*=)/,lookbehind:!0,inside:{"pattern-name":{pattern:/^#?[a-zA-Z0-9\-.]+/,alias:"class-name"},fields:{pattern:/\(.*\)/,inside:{"field-name":{pattern:/[a-zA-Z0-9\-.]+/,alias:"variable"},punctuation:/[,()]/,operator:{pattern:/~/,alias:"field-hidden-mark"}}}}},search:{pattern:/(@search\s+|#)[a-zA-Z0-9\-.]+(?:\.\*)?(?=\s*;)/,alias:"function",lookbehind:!0},keyword:/@(?:require|namespace|pattern|search|inside|outside|having|where)\b/,"standard-pattern":{pattern:/\b(?:Word|Punct|Symbol|Space|LineBreak|Start|End|Alpha|AlphaNum|Num|NumAlpha|Blank|WordBreak|Any)(?:\([a-zA-Z0-9\-.,\s+]*\))?/,inside:{"standard-pattern-name":{pattern:/^[a-zA-Z0-9\-.]+/,alias:"builtin"},quantifier:{pattern:/\b\d+(?:\s*\+|\s*-\s*\d+)?(?!\w)/,alias:"number"},"standard-pattern-attr":{pattern:/[a-zA-Z0-9\-.]+/,alias:"builtin"},punctuation:/[,()]/}},quantifier:{pattern:/\b\d+(?:\s*\+|\s*-\s*\d+)?(?!\w)/,alias:"number"},operator:[{pattern:/=/,alias:"pattern-def"},{pattern:/&/,alias:"conjunction"},{pattern:/~/,alias:"exception"},{pattern:/\?/,alias:"optionality"},{pattern:/[[\]]/,alias:"repetition"},{pattern:/[{}]/,alias:"variation"},{pattern:/[+_]/,alias:"sequence"},{pattern:/\.{2,3}/,alias:"span"}],"field-capture":[{pattern:/([a-zA-Z0-9\-.]+\s*\()\s*[a-zA-Z0-9\-.]+\s*:\s*[a-zA-Z0-9\-.]+(?:\s*,\s*[a-zA-Z0-9\-.]+\s*:\s*[a-zA-Z0-9\-.]+)*(?=\s*\))/,lookbehind:!0,inside:{"field-name":{pattern:/[a-zA-Z0-9\-.]+/,alias:"variable"},colon:/:/}},{pattern:/[a-zA-Z0-9\-.]+\s*:/,inside:{"field-name":{pattern:/[a-zA-Z0-9\-.]+/,alias:"variable"},colon:/:/}}],punctuation:/[:;,()]/,name:/[a-zA-Z0-9\-.]+/}}e.exports=t,t.displayName="nevod",t.aliases=[]},60221(e){"use strict";function t(e){var t,n;n=/\$(?:\w[a-z\d]*(?:_[^\x00-\x1F\s"'\\()$]*)?|\{[^}\s"'\\]+\})/i,(t=e).languages.nginx={comment:{pattern:/(^|[\s{};])#.*/,lookbehind:!0},directive:{pattern:/(^|\s)\w(?:[^;{}"'\\\s]|\\.|"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*'|\s+(?:#.*(?!.)|(?![#\s])))*?(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:{string:{pattern:/((?:^|[^\\])(?:\\\\)*)(?:"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*')/,lookbehind:!0,inside:{escape:{pattern:/\\["'\\nrt]/,alias:"entity"},variable:n}},comment:{pattern:/(\s)#.*/,lookbehind:!0,greedy:!0},keyword:{pattern:/^\S+/,greedy:!0},boolean:{pattern:/(\s)(?:off|on)(?!\S)/,lookbehind:!0},number:{pattern:/(\s)\d+[a-z]*(?!\S)/i,lookbehind:!0},variable:n}},punctuation:/[{};]/}}e.exports=t,t.displayName="nginx",t.aliases=[]},44188(e){"use strict";function t(e){e.languages.nim={comment:/#.*/,string:{pattern:/(?:(?:\b(?!\d)(?:\w|\\x[8-9a-fA-F][0-9a-fA-F])+)?(?:"""[\s\S]*?"""(?!")|"(?:\\[\s\S]|""|[^"\\])*")|'(?:\\(?:\d+|x[\da-fA-F]{2}|.)|[^'])')/,greedy:!0},number:/\b(?:0[xXoObB][\da-fA-F_]+|\d[\d_]*(?:(?!\.\.)\.[\d_]*)?(?:[eE][+-]?\d[\d_]*)?)(?:'?[iuf]\d*)?/,keyword:/\b(?:addr|as|asm|atomic|bind|block|break|case|cast|concept|const|continue|converter|defer|discard|distinct|do|elif|else|end|enum|except|export|finally|for|from|func|generic|if|import|include|interface|iterator|let|macro|method|mixin|nil|object|out|proc|ptr|raise|ref|return|static|template|try|tuple|type|using|var|when|while|with|without|yield)\b/,function:{pattern:/(?:(?!\d)(?:\w|\\x[8-9a-fA-F][0-9a-fA-F])+|`[^`\r\n]+`)\*?(?:\[[^\]]+\])?(?=\s*\()/,inside:{operator:/\*$/}},ignore:{pattern:/`[^`\r\n]+`/,inside:{punctuation:/`/}},operator:{pattern:/(^|[({\[](?=\.\.)|(?![({\[]\.).)(?:(?:[=+\-*\/<>@$~&%|!?^:\\]|\.\.|\.(?![)}\]]))+|\b(?:and|div|of|or|in|is|isnot|mod|not|notin|shl|shr|xor)\b)/m,lookbehind:!0},punctuation:/[({\[]\.|\.[)}\]]|[`(){}\[\],:]/}}e.exports=t,t.displayName="nim",t.aliases=[]},74426(e){"use strict";function t(e){e.languages.nix={comment:/\/\*[\s\S]*?\*\/|#.*/,string:{pattern:/"(?:[^"\\]|\\[\s\S])*"|''(?:(?!'')[\s\S]|''(?:'|\\|\$\{))*''/,greedy:!0,inside:{interpolation:{pattern:/(^|(?:^|(?!'').)[^\\])\$\{(?:[^{}]|\{[^}]*\})*\}/,lookbehind:!0,inside:{antiquotation:{pattern:/^\$(?=\{)/,alias:"variable"}}}}},url:[/\b(?:[a-z]{3,7}:\/\/)[\w\-+%~\/.:#=?&]+/,{pattern:/([^\/])(?:[\w\-+%~.:#=?&]*(?!\/\/)[\w\-+%~\/.:#=?&])?(?!\/\/)\/[\w\-+%~\/.:#=?&]*/,lookbehind:!0}],antiquotation:{pattern:/\$(?=\{)/,alias:"variable"},number:/\b\d+\b/,keyword:/\b(?:assert|builtins|else|if|in|inherit|let|null|or|then|with)\b/,function:/\b(?:abort|add|all|any|attrNames|attrValues|baseNameOf|compareVersions|concatLists|currentSystem|deepSeq|derivation|dirOf|div|elem(?:At)?|fetch(?:url|Tarball)|filter(?:Source)?|fromJSON|genList|getAttr|getEnv|hasAttr|hashString|head|import|intersectAttrs|is(?:Attrs|Bool|Function|Int|List|Null|String)|length|lessThan|listToAttrs|map|mul|parseDrvName|pathExists|read(?:Dir|File)|removeAttrs|replaceStrings|seq|sort|stringLength|sub(?:string)?|tail|throw|to(?:File|JSON|Path|String|XML)|trace|typeOf)\b|\bfoldl'\B/,boolean:/\b(?:true|false)\b/,operator:/[=!<>]=?|\+\+?|\|\||&&|\/\/|->?|[?@]/,punctuation:/[{}()[\].,:;]/},e.languages.nix.string.inside.interpolation.inside.rest=e.languages.nix}e.exports=t,t.displayName="nix",t.aliases=[]},88447(e){"use strict";function t(e){e.languages.nsis={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|[#;].*)/,lookbehind:!0},string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},keyword:{pattern:/(^[\t ]*)(?:Abort|Add(?:BrandingImage|Size)|AdvSplash|Allow(?:RootDirInstall|SkipFiles)|AutoCloseWindow|Banner|BG(?:Font|Gradient|Image)|BrandingText|BringToFront|Call(?:InstDLL)?|Caption|ChangeUI|CheckBitmap|ClearErrors|CompletedText|ComponentText|CopyFiles|CRCCheck|Create(?:Directory|Font|ShortCut)|Delete(?:INISec|INIStr|RegKey|RegValue)?|Detail(?:Print|sButtonText)|Dialer|Dir(?:Text|Var|Verify)|EnableWindow|Enum(?:RegKey|RegValue)|Exch|Exec(?:Shell(?:Wait)?|Wait)?|ExpandEnvStrings|File(?:BufSize|Close|ErrorText|Open|Read|ReadByte|ReadUTF16LE|ReadWord|WriteUTF16LE|Seek|Write|WriteByte|WriteWord)?|Find(?:Close|First|Next|Window)|FlushINI|Get(?:CurInstType|CurrentAddress|DlgItem|DLLVersion(?:Local)?|ErrorLevel|FileTime(?:Local)?|FullPathName|Function(?:Address|End)?|InstDirError|LabelAddress|TempFileName)|Goto|HideWindow|Icon|If(?:Abort|Errors|FileExists|RebootFlag|Silent)|InitPluginsDir|Install(?:ButtonText|Colors|Dir(?:RegKey)?)|InstProgressFlags|Inst(?:Type(?:GetText|SetText)?)|Int(?:64|Ptr)?CmpU?|Int(?:64)?Fmt|Int(?:Ptr)?Op|IsWindow|Lang(?:DLL|String)|License(?:BkColor|Data|ForceSelection|LangString|Text)|LoadLanguageFile|LockWindow|Log(?:Set|Text)|Manifest(?:DPIAware|SupportedOS)|Math|MessageBox|MiscButtonText|Name|Nop|ns(?:Dialogs|Exec)|NSISdl|OutFile|Page(?:Callbacks)?|PE(?:DllCharacteristics|SubsysVer)|Pop|Push|Quit|Read(?:EnvStr|INIStr|RegDWORD|RegStr)|Reboot|RegDLL|Rename|RequestExecutionLevel|ReserveFile|Return|RMDir|SearchPath|Section(?:End|GetFlags|GetInstTypes|GetSize|GetText|Group|In|SetFlags|SetInstTypes|SetSize|SetText)?|SendMessage|Set(?:AutoClose|BrandingImage|Compress|Compressor(?:DictSize)?|CtlColors|CurInstType|DatablockOptimize|DateSave|Details(?:Print|View)|ErrorLevel|Errors|FileAttributes|Font|OutPath|Overwrite|PluginUnload|RebootFlag|RegView|ShellVarContext|Silent)|Show(?:InstDetails|UninstDetails|Window)|Silent(?:Install|UnInstall)|Sleep|SpaceTexts|Splash|StartMenu|Str(?:CmpS?|Cpy|Len)|SubCaption|System|Unicode|Uninstall(?:ButtonText|Caption|Icon|SubCaption|Text)|UninstPage|UnRegDLL|UserInfo|Var|VI(?:AddVersionKey|FileVersion|ProductVersion)|VPatch|WindowIcon|Write(?:INIStr|Reg(?:Bin|DWORD|ExpandStr|MultiStr|None|Str)|Uninstaller)|XPStyle)\b/m,lookbehind:!0},property:/\b(?:admin|all|auto|both|colored|false|force|hide|highest|lastused|leave|listonly|none|normal|notset|off|on|open|print|show|silent|silentlog|smooth|textonly|true|user|ARCHIVE|FILE_(?:ATTRIBUTE_ARCHIVE|ATTRIBUTE_NORMAL|ATTRIBUTE_OFFLINE|ATTRIBUTE_READONLY|ATTRIBUTE_SYSTEM|ATTRIBUTE_TEMPORARY)|HK(?:(?:CR|CU|LM)(?:32|64)?|DD|PD|U)|HKEY_(?:CLASSES_ROOT|CURRENT_CONFIG|CURRENT_USER|DYN_DATA|LOCAL_MACHINE|PERFORMANCE_DATA|USERS)|ID(?:ABORT|CANCEL|IGNORE|NO|OK|RETRY|YES)|MB_(?:ABORTRETRYIGNORE|DEFBUTTON1|DEFBUTTON2|DEFBUTTON3|DEFBUTTON4|ICONEXCLAMATION|ICONINFORMATION|ICONQUESTION|ICONSTOP|OK|OKCANCEL|RETRYCANCEL|RIGHT|RTLREADING|SETFOREGROUND|TOPMOST|USERICON|YESNO)|NORMAL|OFFLINE|READONLY|SHCTX|SHELL_CONTEXT|SYSTEM|TEMPORARY)\b/,constant:/\$\{[\w\.:\^-]+\}|\$\([\w\.:\^-]+\)/i,variable:/\$\w+/i,number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--?|\+\+?|<=?|>=?|==?=?|&&?|\|\|?|[?*\/~^%]/,punctuation:/[{}[\];(),.:]/,important:{pattern:/(^[\t ]*)!(?:addincludedir|addplugindir|appendfile|cd|define|delfile|echo|else|endif|error|execute|finalize|getdllversion|gettlbversion|ifdef|ifmacrodef|ifmacrondef|ifndef|if|include|insertmacro|macroend|macro|makensis|packhdr|pragma|searchparse|searchreplace|system|tempfile|undef|verbose|warning)\b/im,lookbehind:!0}}}e.exports=t,t.displayName="nsis",t.aliases=[]},16032(e,t,n){"use strict";var r=n(65806);function i(e){e.register(r),e.languages.objectivec=e.languages.extend("c",{string:/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1|@"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,keyword:/\b(?:asm|typeof|inline|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|union|unsigned|void|volatile|while|in|self|super)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete e.languages.objectivec["class-name"],e.languages.objc=e.languages.objectivec}e.exports=i,i.displayName="objectivec",i.aliases=["objc"]},33607(e){"use strict";function t(e){e.languages.ocaml={comment:/\(\*[\s\S]*?\*\)/,string:[{pattern:/"(?:\\.|[^\\\r\n"])*"/,greedy:!0},{pattern:/(['`])(?:\\(?:\d+|x[\da-f]+|.)|(?!\1)[^\\\r\n])\1/i,greedy:!0}],number:/\b(?:0x[\da-f][\da-f_]+|(?:0[bo])?\d[\d_]*(?:\.[\d_]*)?(?:e[+-]?[\d_]+)?)/i,directive:{pattern:/\B#\w+/,alias:"important"},label:{pattern:/\B~\w+/,alias:"function"},"type-variable":{pattern:/\B'\w+/,alias:"function"},variant:{pattern:/`\w+/,alias:"variable"},module:{pattern:/\b[A-Z]\w+/,alias:"variable"},keyword:/\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|nonrec|object|of|open|private|rec|sig|struct|then|to|try|type|val|value|virtual|when|where|while|with)\b/,boolean:/\b(?:false|true)\b/,operator:/:=|[=<>@^|&+\-*\/$%!?~][!$%&*+\-.\/:<=>?@^|~]*|\b(?:and|asr|land|lor|lsl|lsr|lxor|mod|or)\b/,punctuation:/[(){}\[\]|.,:;]|\b_\b/}}e.exports=t,t.displayName="ocaml",t.aliases=[]},22001(e,t,n){"use strict";var r=n(65806);function i(e){var t,n;e.register(r),(t=e).languages.opencl=t.languages.extend("c",{keyword:/\b(?:__attribute__|(?:__)?(?:constant|global|kernel|local|private|read_only|read_write|write_only)|auto|break|case|complex|const|continue|default|do|(?:float|double)(?:16(?:x(?:1|16|2|4|8))?|1x(?:1|16|2|4|8)|2(?:x(?:1|16|2|4|8))?|3|4(?:x(?:1|16|2|4|8))?|8(?:x(?:1|16|2|4|8))?)?|else|enum|extern|for|goto|(?:u?(?:char|short|int|long)|half|quad|bool)(?:2|3|4|8|16)?|if|imaginary|inline|packed|pipe|register|restrict|return|signed|sizeof|static|struct|switch|typedef|uniform|union|unsigned|void|volatile|while)\b/,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[fuhl]{0,4}/i,boolean:/\b(?:false|true)\b/,"constant-opencl-kernel":{pattern:/\b(?:CHAR_(?:BIT|MAX|MIN)|CLK_(?:ADDRESS_(?:CLAMP(?:_TO_EDGE)?|NONE|REPEAT)|FILTER_(?:LINEAR|NEAREST)|(?:LOCAL|GLOBAL)_MEM_FENCE|NORMALIZED_COORDS_(?:FALSE|TRUE))|CL_(?:BGRA|(?:HALF_)?FLOAT|INTENSITY|LUMINANCE|A?R?G?B?[Ax]?|(?:(?:UN)?SIGNED|[US]NORM)_(?:INT(?:8|16|32))|UNORM_(?:INT_101010|SHORT_(?:555|565)))|(?:DBL|FLT|HALF)_(?:DIG|EPSILON|MANT_DIG|(?:MIN|MAX)(?:(?:_10)?_EXP)?)|FLT_RADIX|HUGE_VALF?|INFINITY|(?:INT|LONG|SCHAR|SHRT)_(?:MAX|MIN)|(?:UCHAR|USHRT|UINT|ULONG)_MAX|MAXFLOAT|M_(?:[12]_PI|2_SQRTPI|E|LN(?:2|10)|LOG(?:10|2)E?|PI(?:_[24])?|SQRT(?:1_2|2))(?:_F|_H)?|NAN)\b/,alias:"constant"}}),t.languages.insertBefore("opencl","class-name",{"builtin-type":{pattern:/\b(?:_cl_(?:command_queue|context|device_id|event|kernel|mem|platform_id|program|sampler)|cl_(?:image_format|mem_fence_flags)|clk_event_t|event_t|image(?:1d_(?:array_|buffer_)?t|2d_(?:array_(?:depth_|msaa_depth_|msaa_)?|depth_|msaa_depth_|msaa_)?t|3d_t)|intptr_t|ndrange_t|ptrdiff_t|queue_t|reserve_id_t|sampler_t|size_t|uintptr_t)\b/,alias:"keyword"}}),n={"type-opencl-host":{pattern:/\b(?:cl_(?:GLenum|GLint|GLuin|addressing_mode|bitfield|bool|buffer_create_type|build_status|channel_(?:order|type)|(?:u?(?:char|short|int|long)|float|double)(?:2|3|4|8|16)?|command_(?:queue(?:_info|_properties)?|type)|context(?:_info|_properties)?|device_(?:exec_capabilities|fp_config|id|info|local_mem_type|mem_cache_type|type)|(?:event|sampler)(?:_info)?|filter_mode|half|image_info|kernel(?:_info|_work_group_info)?|map_flags|mem(?:_flags|_info|_object_type)?|platform_(?:id|info)|profiling_info|program(?:_build_info|_info)?))\b/,alias:"keyword"},"boolean-opencl-host":{pattern:/\bCL_(?:TRUE|FALSE)\b/,alias:"boolean"},"constant-opencl-host":{pattern:/\bCL_(?:A|ABGR|ADDRESS_(?:CLAMP(?:_TO_EDGE)?|MIRRORED_REPEAT|NONE|REPEAT)|ARGB|BGRA|BLOCKING|BUFFER_CREATE_TYPE_REGION|BUILD_(?:ERROR|IN_PROGRESS|NONE|PROGRAM_FAILURE|SUCCESS)|COMMAND_(?:ACQUIRE_GL_OBJECTS|BARRIER|COPY_(?:BUFFER(?:_RECT|_TO_IMAGE)?|IMAGE(?:_TO_BUFFER)?)|FILL_(?:BUFFER|IMAGE)|MAP(?:_BUFFER|_IMAGE)|MARKER|MIGRATE(?:_SVM)?_MEM_OBJECTS|NATIVE_KERNEL|NDRANGE_KERNEL|READ_(?:BUFFER(?:_RECT)?|IMAGE)|RELEASE_GL_OBJECTS|SVM_(?:FREE|MAP|MEMCPY|MEMFILL|UNMAP)|TASK|UNMAP_MEM_OBJECT|USER|WRITE_(?:BUFFER(?:_RECT)?|IMAGE))|COMPILER_NOT_AVAILABLE|COMPILE_PROGRAM_FAILURE|COMPLETE|CONTEXT_(?:DEVICES|INTEROP_USER_SYNC|NUM_DEVICES|PLATFORM|PROPERTIES|REFERENCE_COUNT)|DEPTH(?:_STENCIL)?|DEVICE_(?:ADDRESS_BITS|AFFINITY_DOMAIN_(?:L[1-4]_CACHE|NEXT_PARTITIONABLE|NUMA)|AVAILABLE|BUILT_IN_KERNELS|COMPILER_AVAILABLE|DOUBLE_FP_CONFIG|ENDIAN_LITTLE|ERROR_CORRECTION_SUPPORT|EXECUTION_CAPABILITIES|EXTENSIONS|GLOBAL_(?:MEM_(?:CACHELINE_SIZE|CACHE_SIZE|CACHE_TYPE|SIZE)|VARIABLE_PREFERRED_TOTAL_SIZE)|HOST_UNIFIED_MEMORY|IL_VERSION|IMAGE(?:2D_MAX_(?:HEIGHT|WIDTH)|3D_MAX_(?:DEPTH|HEIGHT|WIDTH)|_BASE_ADDRESS_ALIGNMENT|_MAX_ARRAY_SIZE|_MAX_BUFFER_SIZE|_PITCH_ALIGNMENT|_SUPPORT)|LINKER_AVAILABLE|LOCAL_MEM_SIZE|LOCAL_MEM_TYPE|MAX_(?:CLOCK_FREQUENCY|COMPUTE_UNITS|CONSTANT_ARGS|CONSTANT_BUFFER_SIZE|GLOBAL_VARIABLE_SIZE|MEM_ALLOC_SIZE|NUM_SUB_GROUPS|ON_DEVICE_(?:EVENTS|QUEUES)|PARAMETER_SIZE|PIPE_ARGS|READ_IMAGE_ARGS|READ_WRITE_IMAGE_ARGS|SAMPLERS|WORK_GROUP_SIZE|WORK_ITEM_DIMENSIONS|WORK_ITEM_SIZES|WRITE_IMAGE_ARGS)|MEM_BASE_ADDR_ALIGN|MIN_DATA_TYPE_ALIGN_SIZE|NAME|NATIVE_VECTOR_WIDTH_(?:CHAR|DOUBLE|FLOAT|HALF|INT|LONG|SHORT)|NOT_(?:AVAILABLE|FOUND)|OPENCL_C_VERSION|PARENT_DEVICE|PARTITION_(?:AFFINITY_DOMAIN|BY_AFFINITY_DOMAIN|BY_COUNTS|BY_COUNTS_LIST_END|EQUALLY|FAILED|MAX_SUB_DEVICES|PROPERTIES|TYPE)|PIPE_MAX_(?:ACTIVE_RESERVATIONS|PACKET_SIZE)|PLATFORM|PREFERRED_(?:GLOBAL_ATOMIC_ALIGNMENT|INTEROP_USER_SYNC|LOCAL_ATOMIC_ALIGNMENT|PLATFORM_ATOMIC_ALIGNMENT|VECTOR_WIDTH_(?:CHAR|DOUBLE|FLOAT|HALF|INT|LONG|SHORT))|PRINTF_BUFFER_SIZE|PROFILE|PROFILING_TIMER_RESOLUTION|QUEUE_(?:ON_(?:DEVICE_(?:MAX_SIZE|PREFERRED_SIZE|PROPERTIES)|HOST_PROPERTIES)|PROPERTIES)|REFERENCE_COUNT|SINGLE_FP_CONFIG|SUB_GROUP_INDEPENDENT_FORWARD_PROGRESS|SVM_(?:ATOMICS|CAPABILITIES|COARSE_GRAIN_BUFFER|FINE_GRAIN_BUFFER|FINE_GRAIN_SYSTEM)|TYPE(?:_ACCELERATOR|_ALL|_CPU|_CUSTOM|_DEFAULT|_GPU)?|VENDOR(?:_ID)?|VERSION)|DRIVER_VERSION|EVENT_(?:COMMAND_(?:EXECUTION_STATUS|QUEUE|TYPE)|CONTEXT|REFERENCE_COUNT)|EXEC_(?:KERNEL|NATIVE_KERNEL|STATUS_ERROR_FOR_EVENTS_IN_WAIT_LIST)|FILTER_(?:LINEAR|NEAREST)|FLOAT|FP_(?:CORRECTLY_ROUNDED_DIVIDE_SQRT|DENORM|FMA|INF_NAN|ROUND_TO_INF|ROUND_TO_NEAREST|ROUND_TO_ZERO|SOFT_FLOAT)|GLOBAL|HALF_FLOAT|IMAGE_(?:ARRAY_SIZE|BUFFER|DEPTH|ELEMENT_SIZE|FORMAT|FORMAT_MISMATCH|FORMAT_NOT_SUPPORTED|HEIGHT|NUM_MIP_LEVELS|NUM_SAMPLES|ROW_PITCH|SLICE_PITCH|WIDTH)|INTENSITY|INVALID_(?:ARG_INDEX|ARG_SIZE|ARG_VALUE|BINARY|BUFFER_SIZE|BUILD_OPTIONS|COMMAND_QUEUE|COMPILER_OPTIONS|CONTEXT|DEVICE|DEVICE_PARTITION_COUNT|DEVICE_QUEUE|DEVICE_TYPE|EVENT|EVENT_WAIT_LIST|GLOBAL_OFFSET|GLOBAL_WORK_SIZE|GL_OBJECT|HOST_PTR|IMAGE_DESCRIPTOR|IMAGE_FORMAT_DESCRIPTOR|IMAGE_SIZE|KERNEL|KERNEL_ARGS|KERNEL_DEFINITION|KERNEL_NAME|LINKER_OPTIONS|MEM_OBJECT|MIP_LEVEL|OPERATION|PIPE_SIZE|PLATFORM|PROGRAM|PROGRAM_EXECUTABLE|PROPERTY|QUEUE_PROPERTIES|SAMPLER|VALUE|WORK_DIMENSION|WORK_GROUP_SIZE|WORK_ITEM_SIZE)|KERNEL_(?:ARG_(?:ACCESS_(?:NONE|QUALIFIER|READ_ONLY|READ_WRITE|WRITE_ONLY)|ADDRESS_(?:CONSTANT|GLOBAL|LOCAL|PRIVATE|QUALIFIER)|INFO_NOT_AVAILABLE|NAME|TYPE_(?:CONST|NAME|NONE|PIPE|QUALIFIER|RESTRICT|VOLATILE))|ATTRIBUTES|COMPILE_NUM_SUB_GROUPS|COMPILE_WORK_GROUP_SIZE|CONTEXT|EXEC_INFO_SVM_FINE_GRAIN_SYSTEM|EXEC_INFO_SVM_PTRS|FUNCTION_NAME|GLOBAL_WORK_SIZE|LOCAL_MEM_SIZE|LOCAL_SIZE_FOR_SUB_GROUP_COUNT|MAX_NUM_SUB_GROUPS|MAX_SUB_GROUP_SIZE_FOR_NDRANGE|NUM_ARGS|PREFERRED_WORK_GROUP_SIZE_MULTIPLE|PRIVATE_MEM_SIZE|PROGRAM|REFERENCE_COUNT|SUB_GROUP_COUNT_FOR_NDRANGE|WORK_GROUP_SIZE)|LINKER_NOT_AVAILABLE|LINK_PROGRAM_FAILURE|LOCAL|LUMINANCE|MAP_(?:FAILURE|READ|WRITE|WRITE_INVALIDATE_REGION)|MEM_(?:ALLOC_HOST_PTR|ASSOCIATED_MEMOBJECT|CONTEXT|COPY_HOST_PTR|COPY_OVERLAP|FLAGS|HOST_NO_ACCESS|HOST_PTR|HOST_READ_ONLY|HOST_WRITE_ONLY|KERNEL_READ_AND_WRITE|MAP_COUNT|OBJECT_(?:ALLOCATION_FAILURE|BUFFER|IMAGE1D|IMAGE1D_ARRAY|IMAGE1D_BUFFER|IMAGE2D|IMAGE2D_ARRAY|IMAGE3D|PIPE)|OFFSET|READ_ONLY|READ_WRITE|REFERENCE_COUNT|SIZE|SVM_ATOMICS|SVM_FINE_GRAIN_BUFFER|TYPE|USES_SVM_POINTER|USE_HOST_PTR|WRITE_ONLY)|MIGRATE_MEM_OBJECT_(?:CONTENT_UNDEFINED|HOST)|MISALIGNED_SUB_BUFFER_OFFSET|NONE|NON_BLOCKING|OUT_OF_(?:HOST_MEMORY|RESOURCES)|PIPE_(?:MAX_PACKETS|PACKET_SIZE)|PLATFORM_(?:EXTENSIONS|HOST_TIMER_RESOLUTION|NAME|PROFILE|VENDOR|VERSION)|PROFILING_(?:COMMAND_(?:COMPLETE|END|QUEUED|START|SUBMIT)|INFO_NOT_AVAILABLE)|PROGRAM_(?:BINARIES|BINARY_SIZES|BINARY_TYPE(?:_COMPILED_OBJECT|_EXECUTABLE|_LIBRARY|_NONE)?|BUILD_(?:GLOBAL_VARIABLE_TOTAL_SIZE|LOG|OPTIONS|STATUS)|CONTEXT|DEVICES|IL|KERNEL_NAMES|NUM_DEVICES|NUM_KERNELS|REFERENCE_COUNT|SOURCE)|QUEUED|QUEUE_(?:CONTEXT|DEVICE|DEVICE_DEFAULT|ON_DEVICE|ON_DEVICE_DEFAULT|OUT_OF_ORDER_EXEC_MODE_ENABLE|PROFILING_ENABLE|PROPERTIES|REFERENCE_COUNT|SIZE)|R|RA|READ_(?:ONLY|WRITE)_CACHE|RG|RGB|RGBA|RGBx|RGx|RUNNING|Rx|SAMPLER_(?:ADDRESSING_MODE|CONTEXT|FILTER_MODE|LOD_MAX|LOD_MIN|MIP_FILTER_MODE|NORMALIZED_COORDS|REFERENCE_COUNT)|(?:UN)?SIGNED_INT(?:8|16|32)|SNORM_INT(?:8|16)|SUBMITTED|SUCCESS|UNORM_INT(?:16|24|8|_101010|_101010_2)|UNORM_SHORT_(?:555|565)|VERSION_(?:1_0|1_1|1_2|2_0|2_1)|sBGRA|sRGB|sRGBA|sRGBx)\b/,alias:"constant"},"function-opencl-host":{pattern:/\bcl(?:BuildProgram|CloneKernel|CompileProgram|Create(?:Buffer|CommandQueue(?:WithProperties)?|Context|ContextFromType|Image|Image2D|Image3D|Kernel|KernelsInProgram|Pipe|ProgramWith(?:Binary|BuiltInKernels|IL|Source)|Sampler|SamplerWithProperties|SubBuffer|SubDevices|UserEvent)|Enqueue(?:(?:Barrier|Marker)(?:WithWaitList)?|Copy(?:Buffer(?:Rect|ToImage)?|Image(?:ToBuffer)?)|(?:Fill|Map)(?:Buffer|Image)|MigrateMemObjects|NDRangeKernel|NativeKernel|(?:Read|Write)(?:Buffer(?:Rect)?|Image)|SVM(?:Free|Map|MemFill|Memcpy|MigrateMem|Unmap)|Task|UnmapMemObject|WaitForEvents)|Finish|Flush|Get(?:CommandQueueInfo|ContextInfo|Device(?:AndHostTimer|IDs|Info)|Event(?:Profiling)?Info|ExtensionFunctionAddress(?:ForPlatform)?|HostTimer|ImageInfo|Kernel(?:ArgInfo|Info|SubGroupInfo|WorkGroupInfo)|MemObjectInfo|PipeInfo|Platform(?:IDs|Info)|Program(?:Build)?Info|SamplerInfo|SupportedImageFormats)|LinkProgram|(?:Release|Retain)(?:CommandQueue|Context|Device|Event|Kernel|MemObject|Program|Sampler)|SVM(?:Alloc|Free)|Set(?:CommandQueueProperty|DefaultDeviceCommandQueue|EventCallback|Kernel(?:Arg(?:SVMPointer)?|ExecInfo)|Kernel|MemObjectDestructorCallback|UserEventStatus)|Unload(?:Platform)?Compiler|WaitForEvents)\b/,alias:"function"}},t.languages.insertBefore("c","keyword",n),t.languages.cpp&&(n["type-opencl-host-cpp"]={pattern:/\b(?:Buffer|BufferGL|BufferRenderGL|CommandQueue|Context|Device|DeviceCommandQueue|EnqueueArgs|Event|Image|Image1D|Image1DArray|Image1DBuffer|Image2D|Image2DArray|Image2DGL|Image3D|Image3DGL|ImageFormat|ImageGL|Kernel|KernelFunctor|LocalSpaceArg|Memory|NDRange|Pipe|Platform|Program|Sampler|SVMAllocator|SVMTraitAtomic|SVMTraitCoarse|SVMTraitFine|SVMTraitReadOnly|SVMTraitReadWrite|SVMTraitWriteOnly|UserEvent)\b/,alias:"keyword"},t.languages.insertBefore("cpp","keyword",n))}e.exports=i,i.displayName="opencl",i.aliases=[]},22950(e){"use strict";function t(e){e.languages.openqasm={comment:/\/\*[\s\S]*?\*\/|\/\/.*/,string:{pattern:/"[^"\r\n\t]*"|'[^'\r\n\t]*'/,greedy:!0},keyword:/\b(?:barrier|boxas|boxto|break|const|continue|ctrl|def|defcal|defcalgrammar|delay|else|end|for|gate|gphase|if|in|include|inv|kernel|lengthof|let|measure|pow|reset|return|rotary|stretchinf|while|CX|OPENQASM|U)\b|#pragma\b/,"class-name":/\b(?:angle|bit|bool|creg|fixed|float|int|length|qreg|qubit|stretch|uint)\b/,function:/\b(?:sin|cos|tan|exp|ln|sqrt|rotl|rotr|popcount)\b(?=\s*\()/,constant:/\b(?:pi|tau|euler)\b|π|𝜏|ℇ/,number:{pattern:/(^|[^.\w$])(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?(?:dt|ns|us|µs|ms|s)?/i,lookbehind:!0},operator:/->|>>=?|<<=?|&&|\|\||\+\+|--|[!=<>&|~^+\-*/%]=?|@/,punctuation:/[(){}\[\];,:.]/},e.languages.qasm=e.languages.openqasm}e.exports=t,t.displayName="openqasm",t.aliases=["qasm"]},23254(e){"use strict";function t(e){e.languages.oz={comment:/\/\*[\s\S]*?\*\/|%.*/,string:{pattern:/"(?:[^"\\]|\\[\s\S])*"/,greedy:!0},atom:{pattern:/'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,alias:"builtin"},keyword:/\$|\[\]|\b(?:_|at|attr|case|catch|choice|class|cond|declare|define|dis|else(?:case|if)?|end|export|fail|false|feat|finally|from|fun|functor|if|import|in|local|lock|meth|nil|not|of|or|prepare|proc|prop|raise|require|self|skip|then|thread|true|try|unit)\b/,function:[/\b[a-z][A-Za-z\d]*(?=\()/,{pattern:/(\{)[A-Z][A-Za-z\d]*\b/,lookbehind:!0}],number:/\b(?:0[bx][\da-f]+|\d+(?:\.\d*)?(?:e~?\d+)?)\b|&(?:[^\\]|\\(?:\d{3}|.))/i,variable:/\b[A-Z][A-Za-z\d]*|`(?:[^`\\]|\\.)+`/,"attr-name":/\b\w+(?=:)/,operator:/:(?:=|::?)|<[-:=]?|=(?:=|=?:?|\\=:?|!!?|[|#+\-*\/,~^@]|\b(?:andthen|div|mod|orelse)\b/,punctuation:/[\[\](){}.:;?]/}}e.exports=t,t.displayName="oz",t.aliases=[]},92694(e){"use strict";function t(e){var t;e.languages.parigp={comment:/\/\*[\s\S]*?\*\/|\\\\.*/,string:{pattern:/"(?:[^"\\\r\n]|\\.)*"/,greedy:!0},keyword:RegExp("\\b(?:"+(t=(t=["breakpoint","break","dbg_down","dbg_err","dbg_up","dbg_x","forcomposite","fordiv","forell","forpart","forprime","forstep","forsubgroup","forvec","for","iferr","if","local","my","next","return","until","while"]).map(function(e){return e.split("").join(" *")}).join("|"))+")\\b"),function:/\b\w(?:[\w ]*\w)?(?= *\()/,number:{pattern:/((?:\. *\. *)?)(?:\b\d(?: *\d)*(?: *(?!\. *\.)\.(?: *\d)*)?|\. *\d(?: *\d)*)(?: *e *(?:[+-] *)?\d(?: *\d)*)?/i,lookbehind:!0},operator:/\. *\.|[*\/!](?: *=)?|%(?: *=|(?: *#)?(?: *')*)?|\+(?: *[+=])?|-(?: *[-=>])?|<(?: *>|(?: *<)?(?: *=)?)?|>(?: *>)?(?: *=)?|=(?: *=){0,2}|\\(?: *\/)?(?: *=)?|&(?: *&)?|\| *\||['#~^]/,punctuation:/[\[\]{}().,:;|]/}}e.exports=t,t.displayName="parigp",t.aliases=[]},43273(e){"use strict";function t(e){var t,n;n=(t=e).languages.parser=t.languages.extend("markup",{keyword:{pattern:/(^|[^^])(?:\^(?:case|eval|for|if|switch|throw)\b|@(?:BASE|CLASS|GET(?:_DEFAULT)?|OPTIONS|SET_DEFAULT|USE)\b)/,lookbehind:!0},variable:{pattern:/(^|[^^])\B\$(?:\w+|(?=[.{]))(?:(?:\.|::?)\w+)*(?:\.|::?)?/,lookbehind:!0,inside:{punctuation:/\.|:+/}},function:{pattern:/(^|[^^])\B[@^]\w+(?:(?:\.|::?)\w+)*(?:\.|::?)?/,lookbehind:!0,inside:{keyword:{pattern:/(^@)(?:GET_|SET_)/,lookbehind:!0},punctuation:/\.|:+/}},escape:{pattern:/\^(?:[$^;@()\[\]{}"':]|#[a-f\d]*)/i,alias:"builtin"},punctuation:/[\[\](){};]/}),n=t.languages.insertBefore("parser","keyword",{"parser-comment":{pattern:/(\s)#.*/,lookbehind:!0,alias:"comment"},expression:{pattern:/(^|[^^])\((?:[^()]|\((?:[^()]|\((?:[^()])*\))*\))*\)/,greedy:!0,lookbehind:!0,inside:{string:{pattern:/(^|[^^])(["'])(?:(?!\2)[^^]|\^[\s\S])*\2/,lookbehind:!0},keyword:n.keyword,variable:n.variable,function:n.function,boolean:/\b(?:true|false)\b/,number:/\b(?:0x[a-f\d]+|\d+(?:\.\d*)?(?:e[+-]?\d+)?)\b/i,escape:n.escape,operator:/[~+*\/\\%]|!(?:\|\|?|=)?|&&?|\|\|?|==|<[<=]?|>[>=]?|-[fd]?|\b(?:def|eq|ge|gt|in|is|le|lt|ne)\b/,punctuation:n.punctuation}}}),t.languages.insertBefore("inside","punctuation",{expression:n.expression,keyword:n.keyword,variable:n.variable,function:n.function,escape:n.escape,"parser-punctuation":{pattern:n.punctuation,alias:"punctuation"}},n.tag.inside["attr-value"])}e.exports=t,t.displayName="parser",t.aliases=[]},60718(e){"use strict";function t(e){e.languages.pascal={comment:[/\(\*[\s\S]+?\*\)/,/\{[\s\S]+?\}/,/\/\/.*/],string:{pattern:/(?:'(?:''|[^'\r\n])*'(?!')|#[&$%]?[a-f\d]+)+|\^[a-z]/i,greedy:!0},keyword:[{pattern:/(^|[^&])\b(?:absolute|array|asm|begin|case|const|constructor|destructor|do|downto|else|end|file|for|function|goto|if|implementation|inherited|inline|interface|label|nil|object|of|operator|packed|procedure|program|record|reintroduce|repeat|self|set|string|then|to|type|unit|until|uses|var|while|with)\b/i,lookbehind:!0},{pattern:/(^|[^&])\b(?:dispose|exit|false|new|true)\b/i,lookbehind:!0},{pattern:/(^|[^&])\b(?:class|dispinterface|except|exports|finalization|finally|initialization|inline|library|on|out|packed|property|raise|resourcestring|threadvar|try)\b/i,lookbehind:!0},{pattern:/(^|[^&])\b(?:absolute|abstract|alias|assembler|bitpacked|break|cdecl|continue|cppdecl|cvar|default|deprecated|dynamic|enumerator|experimental|export|external|far|far16|forward|generic|helper|implements|index|interrupt|iochecks|local|message|name|near|nodefault|noreturn|nostackframe|oldfpccall|otherwise|overload|override|pascal|platform|private|protected|public|published|read|register|reintroduce|result|safecall|saveregisters|softfloat|specialize|static|stdcall|stored|strict|unaligned|unimplemented|varargs|virtual|write)\b/i,lookbehind:!0}],number:[/(?:[&%]\d+|\$[a-f\d]+)/i,/\b\d+(?:\.\d+)?(?:e[+-]?\d+)?/i],operator:[/\.\.|\*\*|:=|<[<=>]?|>[>=]?|[+\-*\/]=?|[@^=]/i,{pattern:/(^|[^&])\b(?:and|as|div|exclude|in|include|is|mod|not|or|shl|shr|xor)\b/,lookbehind:!0}],punctuation:/\(\.|\.\)|[()\[\]:;,.]/},e.languages.objectpascal=e.languages.pascal}e.exports=t,t.displayName="pascal",t.aliases=["objectpascal"]},39303(e){"use strict";function t(e){var t,n,r,i,a;t=e,n=/\((?:[^()]|\((?:[^()]|\([^()]*\))*\))*\)/.source,r=/(?:\b\w+(?:)?|)/.source.replace(//g,function(){return n}),i=t.languages.pascaligo={comment:/\(\*[\s\S]+?\*\)|\/\/.*/,string:{pattern:/(["'`])(?:\\[\s\S]|(?!\1)[^\\])*\1|\^[a-z]/i,greedy:!0},"class-name":[{pattern:RegExp(/(\btype\s+\w+\s+is\s+)/.source.replace(//g,function(){return r}),"i"),lookbehind:!0,inside:null},{pattern:RegExp(/(?=\s+is\b)/.source.replace(//g,function(){return r}),"i"),inside:null},{pattern:RegExp(/(:\s*)/.source.replace(//g,function(){return r})),lookbehind:!0,inside:null}],keyword:{pattern:/(^|[^&])\b(?:begin|block|case|const|else|end|fail|for|from|function|if|is|nil|of|remove|return|skip|then|type|var|while|with)\b/i,lookbehind:!0},boolean:{pattern:/(^|[^&])\b(?:True|False)\b/i,lookbehind:!0},builtin:{pattern:/(^|[^&])\b(?:bool|int|list|map|nat|record|string|unit)\b/i,lookbehind:!0},function:/\b\w+(?=\s*\()/i,number:[/%[01]+|&[0-7]+|\$[a-f\d]+/i,/\b\d+(?:\.\d+)?(?:e[+-]?\d+)?(?:mtz|n)?/i],operator:/->|=\/=|\.\.|\*\*|:=|<[<=>]?|>[>=]?|[+\-*\/]=?|[@^=|]|\b(?:and|mod|or)\b/,punctuation:/\(\.|\.\)|[()\[\]:;,.{}]/},a=["comment","keyword","builtin","operator","punctuation"].reduce(function(e,t){return e[t]=i[t],e},{}),i["class-name"].forEach(function(e){e.inside=a})}e.exports=t,t.displayName="pascaligo",t.aliases=[]},77393(e){"use strict";function t(e){e.languages.pcaxis={string:/"[^"]*"/,keyword:{pattern:/((?:^|;)\s*)[-A-Z\d]+(?:\s*\[[-\w]+\])?(?:\s*\("[^"]*"(?:,\s*"[^"]*")*\))?(?=\s*=)/,lookbehind:!0,greedy:!0,inside:{keyword:/^[-A-Z\d]+/,language:{pattern:/^(\s*)\[[-\w]+\]/,lookbehind:!0,inside:{punctuation:/^\[|\]$/,property:/[-\w]+/}},"sub-key":{pattern:/^(\s*)\S[\s\S]*/,lookbehind:!0,inside:{parameter:{pattern:/"[^"]*"/,alias:"property"},punctuation:/^\(|\)$|,/}}}},operator:/=/,tlist:{pattern:/TLIST\s*\(\s*\w+(?:(?:\s*,\s*"[^"]*")+|\s*,\s*"[^"]*"-"[^"]*")?\s*\)/,greedy:!0,inside:{function:/^TLIST/,property:{pattern:/^(\s*\(\s*)\w+/,lookbehind:!0},string:/"[^"]*"/,punctuation:/[(),]/,operator:/-/}},punctuation:/[;,]/,number:{pattern:/(^|\s)\d+(?:\.\d+)?(?!\S)/,lookbehind:!0},boolean:/YES|NO/},e.languages.px=e.languages.pcaxis}e.exports=t,t.displayName="pcaxis",t.aliases=["px"]},19023(e){"use strict";function t(e){e.languages.peoplecode={comment:RegExp([/\/\*[\s\S]*?\*\//.source,/\bREM[^;]*;/.source,/<\*(?:[^<*]|\*(?!>)|<(?!\*)|<\*(?:(?!\*>)[\s\S])*\*>)*\*>/.source,/\/\+[\s\S]*?\+\//.source].join("|")),string:{pattern:/'(?:''|[^'\r\n])*'(?!')|"(?:""|[^"\r\n])*"(?!")/,greedy:!0},variable:/%\w+/,"function-definition":{pattern:/((?:^|[^\w-])(?:function|method)\s+)\w+/i,lookbehind:!0,alias:"function"},"class-name":{pattern:/((?:^|[^-\w])(?:as|catch|class|component|create|extends|global|implements|instance|local|of|property|returns)\s+)\w+(?::\w+)*/i,lookbehind:!0,inside:{punctuation:/:/}},keyword:/\b(?:abstract|alias|as|catch|class|component|constant|create|declare|else|end-(?:class|evaluate|for|function|get|if|method|set|try|while)|evaluate|extends|for|function|get|global|implements|import|instance|if|library|local|method|null|of|out|peopleCode|private|program|property|protected|readonly|ref|repeat|returns?|set|step|then|throw|to|try|until|value|when(?:-other)?|while)\b/i,"operator-keyword":{pattern:/\b(?:and|not|or)\b/i,alias:"operator"},function:/[_a-z]\w*(?=\s*\()/i,boolean:/\b(?:false|true)\b/i,number:/\b\d+(?:\.\d+)?\b/,operator:/<>|[<>]=?|!=|\*\*|[-+*/|=@]/,punctuation:/[:.;,()[\]]/},e.languages.pcode=e.languages.peoplecode}e.exports=t,t.displayName="peoplecode",t.aliases=["pcode"]},74212(e){"use strict";function t(e){e.languages.perl={comment:[{pattern:/(^\s*)=\w[\s\S]*?=cut.*/m,lookbehind:!0},{pattern:/(^|[^\\$])#.*/,lookbehind:!0}],string:[{pattern:/\b(?:q|qq|qx|qw)\s*([^a-zA-Z0-9\s{(\[<])(?:(?!\1)[^\\]|\\[\s\S])*\1/,greedy:!0},{pattern:/\b(?:q|qq|qx|qw)\s+([a-zA-Z0-9])(?:(?!\1)[^\\]|\\[\s\S])*\1/,greedy:!0},{pattern:/\b(?:q|qq|qx|qw)\s*\((?:[^()\\]|\\[\s\S])*\)/,greedy:!0},{pattern:/\b(?:q|qq|qx|qw)\s*\{(?:[^{}\\]|\\[\s\S])*\}/,greedy:!0},{pattern:/\b(?:q|qq|qx|qw)\s*\[(?:[^[\]\\]|\\[\s\S])*\]/,greedy:!0},{pattern:/\b(?:q|qq|qx|qw)\s*<(?:[^<>\\]|\\[\s\S])*>/,greedy:!0},{pattern:/("|`)(?:(?!\1)[^\\]|\\[\s\S])*\1/,greedy:!0},{pattern:/'(?:[^'\\\r\n]|\\.)*'/,greedy:!0}],regex:[{pattern:/\b(?:m|qr)\s*([^a-zA-Z0-9\s{(\[<])(?:(?!\1)[^\\]|\\[\s\S])*\1[msixpodualngc]*/,greedy:!0},{pattern:/\b(?:m|qr)\s+([a-zA-Z0-9])(?:(?!\1)[^\\]|\\[\s\S])*\1[msixpodualngc]*/,greedy:!0},{pattern:/\b(?:m|qr)\s*\((?:[^()\\]|\\[\s\S])*\)[msixpodualngc]*/,greedy:!0},{pattern:/\b(?:m|qr)\s*\{(?:[^{}\\]|\\[\s\S])*\}[msixpodualngc]*/,greedy:!0},{pattern:/\b(?:m|qr)\s*\[(?:[^[\]\\]|\\[\s\S])*\][msixpodualngc]*/,greedy:!0},{pattern:/\b(?:m|qr)\s*<(?:[^<>\\]|\\[\s\S])*>[msixpodualngc]*/,greedy:!0},{pattern:/(^|[^-]\b)(?:s|tr|y)\s*([^a-zA-Z0-9\s{(\[<])(?:(?!\2)[^\\]|\\[\s\S])*\2(?:(?!\2)[^\\]|\\[\s\S])*\2[msixpodualngcer]*/,lookbehind:!0,greedy:!0},{pattern:/(^|[^-]\b)(?:s|tr|y)\s+([a-zA-Z0-9])(?:(?!\2)[^\\]|\\[\s\S])*\2(?:(?!\2)[^\\]|\\[\s\S])*\2[msixpodualngcer]*/,lookbehind:!0,greedy:!0},{pattern:/(^|[^-]\b)(?:s|tr|y)\s*\((?:[^()\\]|\\[\s\S])*\)\s*\((?:[^()\\]|\\[\s\S])*\)[msixpodualngcer]*/,lookbehind:!0,greedy:!0},{pattern:/(^|[^-]\b)(?:s|tr|y)\s*\{(?:[^{}\\]|\\[\s\S])*\}\s*\{(?:[^{}\\]|\\[\s\S])*\}[msixpodualngcer]*/,lookbehind:!0,greedy:!0},{pattern:/(^|[^-]\b)(?:s|tr|y)\s*\[(?:[^[\]\\]|\\[\s\S])*\]\s*\[(?:[^[\]\\]|\\[\s\S])*\][msixpodualngcer]*/,lookbehind:!0,greedy:!0},{pattern:/(^|[^-]\b)(?:s|tr|y)\s*<(?:[^<>\\]|\\[\s\S])*>\s*<(?:[^<>\\]|\\[\s\S])*>[msixpodualngcer]*/,lookbehind:!0,greedy:!0},{pattern:/\/(?:[^\/\\\r\n]|\\.)*\/[msixpodualngc]*(?=\s*(?:$|[\r\n,.;})&|\-+*~<>!?^]|(?:lt|gt|le|ge|eq|ne|cmp|not|and|or|xor|x)\b))/,greedy:!0}],variable:[/[&*$@%]\{\^[A-Z]+\}/,/[&*$@%]\^[A-Z_]/,/[&*$@%]#?(?=\{)/,/[&*$@%]#?(?:(?:::)*'?(?!\d)[\w$]+(?![\w$]))+(?:::)*/i,/[&*$@%]\d+/,/(?!%=)[$@%][!"#$%&'()*+,\-.\/:;<=>?@[\\\]^_`{|}~]/],filehandle:{pattern:/<(?![<=])\S*>|\b_\b/,alias:"symbol"},vstring:{pattern:/v\d+(?:\.\d+)*|\d+(?:\.\d+){2,}/,alias:"string"},function:{pattern:/sub \w+/i,inside:{keyword:/sub/}},keyword:/\b(?:any|break|continue|default|delete|die|do|else|elsif|eval|for|foreach|given|goto|if|last|local|my|next|our|package|print|redo|require|return|say|state|sub|switch|undef|unless|until|use|when|while)\b/,number:/\b(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0b[01](?:_?[01])*|(?:(?:\d(?:_?\d)*)?\.)?\d(?:_?\d)*(?:[Ee][+-]?\d+)?)\b/,operator:/-[rwxoRWXOezsfdlpSbctugkTBMAC]\b|\+[+=]?|-[-=>]?|\*\*?=?|\/\/?=?|=[=~>]?|~[~=]?|\|\|?=?|&&?=?|<(?:=>?|<=?)?|>>?=?|![~=]?|[%^]=?|\.(?:=|\.\.?)?|[\\?]|\bx(?:=|\b)|\b(?:lt|gt|le|ge|eq|ne|cmp|not|and|or|xor)\b/,punctuation:/[{}[\];(),:]/}}e.exports=t,t.displayName="perl",t.aliases=[]},5137(e,t,n){"use strict";var r=n(88262);function i(e){e.register(r),e.languages.insertBefore("php","variable",{this:/\$this\b/,global:/\$(?:_(?:SERVER|GET|POST|FILES|REQUEST|SESSION|ENV|COOKIE)|GLOBALS|HTTP_RAW_POST_DATA|argc|argv|php_errormsg|http_response_header)\b/,scope:{pattern:/\b[\w\\]+::/,inside:{keyword:/static|self|parent/,punctuation:/::|\\/}}})}e.exports=i,i.displayName="phpExtras",i.aliases=[]},88262(e,t,n){"use strict";var r=n(93205);function i(e){var t,n,i,a,o,s,u,c;e.register(r),n=/\/\*[\s\S]*?\*\/|\/\/.*|#(?!\[).*/,i=[{pattern:/\b(?:false|true)\b/i,alias:"boolean"},{pattern:/(::\s*)\b[a-z_]\w*\b(?!\s*\()/i,greedy:!0,lookbehind:!0},{pattern:/(\b(?:case|const)\s+)\b[a-z_]\w*(?=\s*[;=])/i,greedy:!0,lookbehind:!0},/\b(?:null)\b/i,/\b[A-Z_][A-Z0-9_]*\b(?!\s*\()/],a=/\b0b[01]+(?:_[01]+)*\b|\b0o[0-7]+(?:_[0-7]+)*\b|\b0x[\da-f]+(?:_[\da-f]+)*\b|(?:\b\d+(?:_\d+)*\.?(?:\d+(?:_\d+)*)?|\B\.\d+)(?:e[+-]?\d+)?/i,o=/|\?\?=?|\.{3}|\??->|[!=]=?=?|::|\*\*=?|--|\+\+|&&|\|\||<<|>>|[?~]|[/^|%*&<>.+-]=?/,s=/[{}\[\](),:;]/,(t=e).languages.php={delimiter:{pattern:/\?>$|^<\?(?:php(?=\s)|=)?/i,alias:"important"},comment:n,variable:/\$+(?:\w+\b|(?=\{))/i,package:{pattern:/(namespace\s+|use\s+(?:function\s+)?)(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,lookbehind:!0,inside:{punctuation:/\\/}},"class-name-definition":{pattern:/(\b(?:class|enum|interface|trait)\s+)\b[a-z_]\w*(?!\\)\b/i,lookbehind:!0,alias:"class-name"},"function-definition":{pattern:/(\bfunction\s+)[a-z_]\w*(?=\s*\()/i,lookbehind:!0,alias:"function"},keyword:[{pattern:/(\(\s*)\b(?:bool|boolean|int|integer|float|string|object|array)\b(?=\s*\))/i,alias:"type-casting",greedy:!0,lookbehind:!0},{pattern:/([(,?]\s*)\b(?:bool|int|float|string|object|array(?!\s*\()|mixed|self|static|callable|iterable|(?:null|false)(?=\s*\|))\b(?=\s*\$)/i,alias:"type-hint",greedy:!0,lookbehind:!0},{pattern:/([(,?]\s*[\w|]\|\s*)(?:null|false)\b(?=\s*\$)/i,alias:"type-hint",greedy:!0,lookbehind:!0},{pattern:/(\)\s*:\s*(?:\?\s*)?)\b(?:bool|int|float|string|object|void|array(?!\s*\()|mixed|self|static|callable|iterable|(?:null|false)(?=\s*\|))\b/i,alias:"return-type",greedy:!0,lookbehind:!0},{pattern:/(\)\s*:\s*(?:\?\s*)?[\w|]\|\s*)(?:null|false)\b/i,alias:"return-type",greedy:!0,lookbehind:!0},{pattern:/\b(?:bool|int|float|string|object|void|array(?!\s*\()|mixed|iterable|(?:null|false)(?=\s*\|))\b/i,alias:"type-declaration",greedy:!0},{pattern:/(\|\s*)(?:null|false)\b/i,alias:"type-declaration",greedy:!0,lookbehind:!0},{pattern:/\b(?:parent|self|static)(?=\s*::)/i,alias:"static-context",greedy:!0},{pattern:/(\byield\s+)from\b/i,lookbehind:!0},/\bclass\b/i,{pattern:/((?:^|[^\s>:]|(?:^|[^-])>|(?:^|[^:]):)\s*)\b(?:__halt_compiler|abstract|and|array|as|break|callable|case|catch|clone|const|continue|declare|default|die|do|echo|else|elseif|empty|enddeclare|endfor|endforeach|endif|endswitch|endwhile|enum|eval|exit|extends|final|finally|fn|for|foreach|function|global|goto|if|implements|include|include_once|instanceof|insteadof|interface|isset|list|namespace|match|new|or|parent|print|private|protected|public|require|require_once|return|self|static|switch|throw|trait|try|unset|use|var|while|xor|yield)\b/i,lookbehind:!0}],"argument-name":{pattern:/([(,]\s+)\b[a-z_]\w*(?=\s*:(?!:))/i,lookbehind:!0},"class-name":[{pattern:/(\b(?:extends|implements|instanceof|new(?!\s+self|\s+static))\s+|\bcatch\s*\()\b[a-z_]\w*(?!\\)\b/i,greedy:!0,lookbehind:!0},{pattern:/(\|\s*)\b[a-z_]\w*(?!\\)\b/i,greedy:!0,lookbehind:!0},{pattern:/\b[a-z_]\w*(?!\\)\b(?=\s*\|)/i,greedy:!0},{pattern:/(\|\s*)(?:\\?\b[a-z_]\w*)+\b/i,alias:"class-name-fully-qualified",greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/(?:\\?\b[a-z_]\w*)+\b(?=\s*\|)/i,alias:"class-name-fully-qualified",greedy:!0,inside:{punctuation:/\\/}},{pattern:/(\b(?:extends|implements|instanceof|new(?!\s+self\b|\s+static\b))\s+|\bcatch\s*\()(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,alias:"class-name-fully-qualified",greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/\b[a-z_]\w*(?=\s*\$)/i,alias:"type-declaration",greedy:!0},{pattern:/(?:\\?\b[a-z_]\w*)+(?=\s*\$)/i,alias:["class-name-fully-qualified","type-declaration"],greedy:!0,inside:{punctuation:/\\/}},{pattern:/\b[a-z_]\w*(?=\s*::)/i,alias:"static-context",greedy:!0},{pattern:/(?:\\?\b[a-z_]\w*)+(?=\s*::)/i,alias:["class-name-fully-qualified","static-context"],greedy:!0,inside:{punctuation:/\\/}},{pattern:/([(,?]\s*)[a-z_]\w*(?=\s*\$)/i,alias:"type-hint",greedy:!0,lookbehind:!0},{pattern:/([(,?]\s*)(?:\\?\b[a-z_]\w*)+(?=\s*\$)/i,alias:["class-name-fully-qualified","type-hint"],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/(\)\s*:\s*(?:\?\s*)?)\b[a-z_]\w*(?!\\)\b/i,alias:"return-type",greedy:!0,lookbehind:!0},{pattern:/(\)\s*:\s*(?:\?\s*)?)(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,alias:["class-name-fully-qualified","return-type"],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}}],constant:i,function:{pattern:/(^|[^\\\w])\\?[a-z_](?:[\w\\]*\w)?(?=\s*\()/i,lookbehind:!0,inside:{punctuation:/\\/}},property:{pattern:/(->\s*)\w+/,lookbehind:!0},number:a,operator:o,punctuation:s},c=[{pattern:/<<<'([^']+)'[\r\n](?:.*[\r\n])*?\1;/,alias:"nowdoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<<'[^']+'|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<'?|[';]$/}}}},{pattern:/<<<(?:"([^"]+)"[\r\n](?:.*[\r\n])*?\1;|([a-z_]\w*)[\r\n](?:.*[\r\n])*?\2;)/i,alias:"heredoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<<(?:"[^"]+"|[a-z_]\w*)|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<"?|[";]$/}},interpolation:u={pattern:/\{\$(?:\{(?:\{[^{}]+\}|[^{}]+)\}|[^{}])+\}|(^|[^\\{])\$+(?:\w+(?:\[[^\r\n\[\]]+\]|->\w+)?)/,lookbehind:!0,inside:t.languages.php}}},{pattern:/`(?:\\[\s\S]|[^\\`])*`/,alias:"backtick-quoted-string",greedy:!0},{pattern:/'(?:\\[\s\S]|[^\\'])*'/,alias:"single-quoted-string",greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,alias:"double-quoted-string",greedy:!0,inside:{interpolation:u}}],t.languages.insertBefore("php","variable",{string:c,attribute:{pattern:/#\[(?:[^"'\/#]|\/(?![*/])|\/\/.*$|#(?!\[).*$|\/\*(?:[^*]|\*(?!\/))*\*\/|"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*')+\](?=\s*[a-z$#])/im,greedy:!0,inside:{"attribute-content":{pattern:/^(#\[)[\s\S]+(?=\]$)/,lookbehind:!0,inside:{comment:n,string:c,"attribute-class-name":[{pattern:/([^:]|^)\b[a-z_]\w*(?!\\)\b/i,alias:"class-name",greedy:!0,lookbehind:!0},{pattern:/([^:]|^)(?:\\?\b[a-z_]\w*)+/i,alias:["class-name","class-name-fully-qualified"],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}}],constant:i,number:a,operator:o,punctuation:s}},delimiter:{pattern:/^#\[|\]$/,alias:"punctuation"}}}}),t.hooks.add("before-tokenize",function(e){if(/<\?/.test(e.code)){var n=/<\?(?:[^"'/#]|\/(?![*/])|("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|(?:\/\/|#(?!\[))(?:[^?\n\r]|\?(?!>))*(?=$|\?>|[\r\n])|#\[|\/\*(?:[^*]|\*(?!\/))*(?:\*\/|$))*?(?:\?>|$)/gi;t.languages["markup-templating"].buildPlaceholders(e,"php",n)}}),t.hooks.add("after-tokenize",function(e){t.languages["markup-templating"].tokenizePlaceholders(e,"php")})}e.exports=i,i.displayName="php",i.aliases=[]},63632(e,t,n){"use strict";var r=n(88262),i=n(9858);function a(e){var t,n;e.register(r),e.register(i),n=/(?:\b[a-zA-Z]\w*|[|\\[\]])+/.source,(t=e).languages.phpdoc=t.languages.extend("javadoclike",{parameter:{pattern:RegExp("(@(?:global|param|property(?:-read|-write)?|var)\\s+(?:"+n+"\\s+)?)\\$\\w+"),lookbehind:!0}}),t.languages.insertBefore("phpdoc","keyword",{"class-name":[{pattern:RegExp("(@(?:global|package|param|property(?:-read|-write)?|return|subpackage|throws|var)\\s+)"+n),lookbehind:!0,inside:{keyword:/\b(?:callback|resource|boolean|integer|double|object|string|array|false|float|mixed|bool|null|self|true|void|int)\b/,punctuation:/[|\\[\]()]/}}]}),t.languages.javadoclike.addSupport("php",t.languages.phpdoc)}e.exports=a,a.displayName="phpdoc",a.aliases=[]},59149(e,t,n){"use strict";var r=n(11114);function i(e){var t,n,i,a;e.register(r),Array.isArray(i=(n=(t=e).languages.plsql=t.languages.extend("sql",{comment:[/\/\*[\s\S]*?\*\//,/--.*/]})).keyword)||(i=n.keyword=[i]),i.unshift(/\b(?:ACCESS|AGENT|AGGREGATE|ARRAY|ARROW|AT|ATTRIBUTE|AUDIT|AUTHID|BFILE_BASE|BLOB_BASE|BLOCK|BODY|BOTH|BOUND|BYTE|CALLING|CHAR_BASE|CHARSET(?:FORM|ID)|CLOB_BASE|COLAUTH|COLLECT|CLUSTERS?|COMPILED|COMPRESS|CONSTANT|CONSTRUCTOR|CONTEXT|CRASH|CUSTOMDATUM|DANGLING|DATE_BASE|DEFINE|DETERMINISTIC|DURATION|ELEMENT|EMPTY|EXCEPTIONS?|EXCLUSIVE|EXTERNAL|FINAL|FORALL|FORM|FOUND|GENERAL|HEAP|HIDDEN|IDENTIFIED|IMMEDIATE|INCLUDING|INCREMENT|INDICATOR|INDEXES|INDICES|INFINITE|INITIAL|ISOPEN|INSTANTIABLE|INTERFACE|INVALIDATE|JAVA|LARGE|LEADING|LENGTH|LIBRARY|LIKE[24C]|LIMITED|LONG|LOOP|MAP|MAXEXTENTS|MAXLEN|MEMBER|MINUS|MLSLABEL|MULTISET|NAME|NAN|NATIVE|NEW|NOAUDIT|NOCOMPRESS|NOCOPY|NOTFOUND|NOWAIT|NUMBER(?:_BASE)?|OBJECT|OCI(?:COLL|DATE|DATETIME|DURATION|INTERVAL|LOBLOCATOR|NUMBER|RAW|REF|REFCURSOR|ROWID|STRING|TYPE)|OFFLINE|ONLINE|ONLY|OPAQUE|OPERATOR|ORACLE|ORADATA|ORGANIZATION|ORL(?:ANY|VARY)|OTHERS|OVERLAPS|OVERRIDING|PACKAGE|PARALLEL_ENABLE|PARAMETERS?|PASCAL|PCTFREE|PIPE(?:LINED)?|PRAGMA|PRIOR|PRIVATE|RAISE|RANGE|RAW|RECORD|REF|REFERENCE|REM|REMAINDER|RESULT|RESOURCE|RETURNING|REVERSE|ROW(?:ID|NUM|TYPE)|SAMPLE|SB[124]|SEGMENT|SELF|SEPARATE|SEQUENCE|SHORT|SIZE(?:_T)?|SPARSE|SQL(?:CODE|DATA|NAME|STATE)|STANDARD|STATIC|STDDEV|STORED|STRING|STRUCT|STYLE|SUBMULTISET|SUBPARTITION|SUBSTITUTABLE|SUBTYPE|SUCCESSFUL|SYNONYM|SYSDATE|TABAUTH|TDO|THE|TIMEZONE_(?:ABBR|HOUR|MINUTE|REGION)|TRAILING|TRANSAC(?:TIONAL)?|TRUSTED|UB[124]|UID|UNDER|UNTRUSTED|VALIDATE|VALIST|VARCHAR2|VARIABLE|VARIANCE|VARRAY|VIEWS|VOID|WHENEVER|WRAPPED|ZONE)\b/i),Array.isArray(a=n.operator)||(a=n.operator=[a]),a.unshift(/:=/)}e.exports=i,i.displayName="plsql",i.aliases=[]},50256(e){"use strict";function t(e){e.languages.powerquery={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:\/\/).*)/,lookbehind:!0},"quoted-identifier":{pattern:/#"(?:[^"\r\n]|"")*"(?!")/,greedy:!0,alias:"variable"},string:{pattern:/"(?:[^"\r\n]|"")*"(?!")/,greedy:!0},constant:[/\bDay\.(?:Sunday|Monday|Tuesday|Wednesday|Thursday|Friday|Saturday)\b/,/\bTraceLevel\.(?:Critical|Error|Information|Verbose|Warning)\b/,/\bOccurrence\.(?:First|Last|All)\b/,/\bOrder\.(?:Ascending|Descending)\b/,/\bRoundingMode\.(?:AwayFromZero|Down|ToEven|TowardZero|Up)\b/,/\bMissingField\.(?:Error|Ignore|UseNull)\b/,/\bQuoteStyle\.(?:Csv|None)\b/,/\bJoinKind\.(?:Inner|LeftOuter|RightOuter|FullOuter|LeftAnti|RightAnti)\b/,/\bGroupKind\.(?:Global|Local)\b/,/\bExtraValues\.(?:List|Ignore|Error)\b/,/\bJoinAlgorithm\.(?:Dynamic|PairwiseHash|SortMerge|LeftHash|RightHash|LeftIndex|RightIndex)\b/,/\bJoinSide\.(?:Left|Right)\b/,/\bPrecision\.(?:Double|Decimal)\b/,/\bRelativePosition\.From(?:End|Start)\b/,/\bTextEncoding\.(?:Ascii|BigEndianUnicode|Unicode|Utf8|Utf16|Windows)\b/,/\b(?:Any|Binary|Date|DateTime|DateTimeZone|Duration|Int8|Int16|Int32|Int64|Function|List|Logical|None|Number|Record|Table|Text|Time)\.Type\b/,/\bnull\b/],boolean:/\b(?:true|false)\b/,keyword:/\b(?:and|as|each|else|error|if|in|is|let|meta|not|nullable|optional|or|otherwise|section|shared|then|try|type)\b|#(?:binary|date|datetime|datetimezone|duration|infinity|nan|sections|shared|table|time)\b/,function:{pattern:/(^|[^#\w.])(?!\d)[\w.]+(?=\s*\()/,lookbehind:!0},"data-type":{pattern:/\b(?:any|anynonnull|binary|date|datetime|datetimezone|duration|function|list|logical|none|number|record|table|text|time|type)\b/,alias:"variable"},number:{pattern:/\b0x[\da-f]+\b|(?:[+-]?(?:\b\d+\.)?\b\d+|[+-]\.\d+|(^|[^.])\B\.\d+)(?:e[+-]?\d+)?\b/i,lookbehind:!0},operator:/[-+*\/&?@^]|<(?:=>?|>)?|>=?|=>?|\.\.\.?/,punctuation:/[,;\[\](){}]/},e.languages.pq=e.languages.powerquery,e.languages.mscript=e.languages.powerquery}e.exports=t,t.displayName="powerquery",t.aliases=[]},61777(e){"use strict";function t(e){var t,n,r;(r=(n=(t=e).languages.powershell={comment:[{pattern:/(^|[^`])<#[\s\S]*?#>/,lookbehind:!0},{pattern:/(^|[^`])#.*/,lookbehind:!0}],string:[{pattern:/"(?:`[\s\S]|[^`"])*"/,greedy:!0,inside:{function:{pattern:/(^|[^`])\$\((?:\$\([^\r\n()]*\)|(?!\$\()[^\r\n)])*\)/,lookbehind:!0,inside:{}}}},{pattern:/'(?:[^']|'')*'/,greedy:!0}],namespace:/\[[a-z](?:\[(?:\[[^\]]*\]|[^\[\]])*\]|[^\[\]])*\]/i,boolean:/\$(?:true|false)\b/i,variable:/\$\w+\b/,function:[/\b(?:Add|Approve|Assert|Backup|Block|Checkpoint|Clear|Close|Compare|Complete|Compress|Confirm|Connect|Convert|ConvertFrom|ConvertTo|Copy|Debug|Deny|Disable|Disconnect|Dismount|Edit|Enable|Enter|Exit|Expand|Export|Find|ForEach|Format|Get|Grant|Group|Hide|Import|Initialize|Install|Invoke|Join|Limit|Lock|Measure|Merge|Move|New|Open|Optimize|Out|Ping|Pop|Protect|Publish|Push|Read|Receive|Redo|Register|Remove|Rename|Repair|Request|Reset|Resize|Resolve|Restart|Restore|Resume|Revoke|Save|Search|Select|Send|Set|Show|Skip|Sort|Split|Start|Step|Stop|Submit|Suspend|Switch|Sync|Tee|Test|Trace|Unblock|Undo|Uninstall|Unlock|Unprotect|Unpublish|Unregister|Update|Use|Wait|Watch|Where|Write)-[a-z]+\b/i,/\b(?:ac|cat|chdir|clc|cli|clp|clv|compare|copy|cp|cpi|cpp|cvpa|dbp|del|diff|dir|ebp|echo|epal|epcsv|epsn|erase|fc|fl|ft|fw|gal|gbp|gc|gci|gcs|gdr|gi|gl|gm|gp|gps|group|gsv|gu|gv|gwmi|iex|ii|ipal|ipcsv|ipsn|irm|iwmi|iwr|kill|lp|ls|measure|mi|mount|move|mp|mv|nal|ndr|ni|nv|ogv|popd|ps|pushd|pwd|rbp|rd|rdr|ren|ri|rm|rmdir|rni|rnp|rp|rv|rvpa|rwmi|sal|saps|sasv|sbp|sc|select|set|shcm|si|sl|sleep|sls|sort|sp|spps|spsv|start|sv|swmi|tee|trcm|type|write)\b/i],keyword:/\b(?:Begin|Break|Catch|Class|Continue|Data|Define|Do|DynamicParam|Else|ElseIf|End|Exit|Filter|Finally|For|ForEach|From|Function|If|InlineScript|Parallel|Param|Process|Return|Sequence|Switch|Throw|Trap|Try|Until|Using|Var|While|Workflow)\b/i,operator:{pattern:/(\W?)(?:!|-(?:eq|ne|gt|ge|lt|le|sh[lr]|not|b?(?:and|x?or)|(?:Not)?(?:Like|Match|Contains|In)|Replace|Join|is(?:Not)?|as)\b|-[-=]?|\+[+=]?|[*\/%]=?)/i,lookbehind:!0},punctuation:/[|{}[\];(),.]/}).string[0].inside).boolean=n.boolean,r.variable=n.variable,r.function.inside=n}e.exports=t,t.displayName="powershell",t.aliases=[]},3623(e){"use strict";function t(e){e.languages.processing=e.languages.extend("clike",{keyword:/\b(?:break|catch|case|class|continue|default|else|extends|final|for|if|implements|import|new|null|private|public|return|static|super|switch|this|try|void|while)\b/,operator:/<[<=]?|>[>=]?|&&?|\|\|?|[%?]|[!=+\-*\/]=?/}),e.languages.insertBefore("processing","number",{constant:/\b(?!XML\b)[A-Z][A-Z\d_]+\b/,type:{pattern:/\b(?:boolean|byte|char|color|double|float|int|[A-Z]\w*)\b/,alias:"variable"}}),e.languages.processing.function=/\b\w+(?=\s*\()/,e.languages.processing["class-name"].alias="variable"}e.exports=t,t.displayName="processing",t.aliases=[]},82707(e){"use strict";function t(e){e.languages.prolog={comment:[/%.+/,/\/\*[\s\S]*?\*\//],string:{pattern:/(["'])(?:\1\1|\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},builtin:/\b(?:fx|fy|xf[xy]?|yfx?)\b/,variable:/\b[A-Z_]\w*/,function:/\b[a-z]\w*(?:(?=\()|\/\d+)/,number:/\b\d+(?:\.\d*)?/,operator:/[:\\=><\-?*@\/;+^|!$.]+|\b(?:is|mod|not|xor)\b/,punctuation:/[(){}\[\],]/}}e.exports=t,t.displayName="prolog",t.aliases=[]},59338(e){"use strict";function t(e){var t,n,r;t=e,r=["sum","min","max","avg","group","stddev","stdvar","count","count_values","bottomk","topk","quantile"].concat(n=["on","ignoring","group_right","group_left","by","without"],["offset"]),t.languages.promql={comment:{pattern:/(^[ \t]*)#.*/m,lookbehind:!0},"vector-match":{pattern:RegExp("((?:"+n.join("|")+")\\s*)\\([^)]*\\)"),lookbehind:!0,inside:{"label-key":{pattern:/\b[^,]*\b/,alias:"attr-name"},punctuation:/[(),]/}},"context-labels":{pattern:/\{[^{}]*\}/,inside:{"label-key":{pattern:/\b[a-z_]\w*(?=\s*(?:=|![=~]))/,alias:"attr-name"},"label-value":{pattern:/(["'`])(?:\\[\s\S]|(?!\1)[^\\])*\1/,greedy:!0,alias:"attr-value"},punctuation:/\{|\}|=~?|![=~]|,/}},"context-range":[{pattern:/\[[\w\s:]+\]/,inside:{punctuation:/\[|\]|:/,"range-duration":{pattern:/\b(?:\d+(?:[smhdwy]|ms))+\b/i,alias:"number"}}},{pattern:/(\boffset\s+)\w+/,lookbehind:!0,inside:{"range-duration":{pattern:/\b(?:\d+(?:[smhdwy]|ms))+\b/i,alias:"number"}}}],keyword:RegExp("\\b(?:"+r.join("|")+")\\b","i"),function:/\b[a-z_]\w*(?=\s*\()/i,number:/[-+]?(?:(?:\b\d+(?:\.\d+)?|\B\.\d+)(?:e[-+]?\d+)?\b|\b(?:0x[0-9a-f]+|nan|inf)\b)/i,operator:/[\^*/%+-]|==|!=|<=|<|>=|>|\b(?:and|unless|or)\b/i,punctuation:/[{};()`,.[\]]/}}e.exports=t,t.displayName="promql",t.aliases=[]},56267(e){"use strict";function t(e){e.languages.properties={comment:/^[ \t]*[#!].*$/m,"attr-value":{pattern:/(^[ \t]*(?:\\(?:\r\n|[\s\S])|[^\\\s:=])+(?: *[=:] *(?! )| ))(?:\\(?:\r\n|[\s\S])|[^\\\r\n])+/m,lookbehind:!0},"attr-name":/^[ \t]*(?:\\(?:\r\n|[\s\S])|[^\\\s:=])+(?= *[=:]| )/m,punctuation:/[=:]/}}e.exports=t,t.displayName="properties",t.aliases=[]},98809(e){"use strict";function t(e){var t,n;n=/\b(?:double|float|[su]?int(?:32|64)|s?fixed(?:32|64)|bool|string|bytes)\b/,(t=e).languages.protobuf=t.languages.extend("clike",{"class-name":[{pattern:/(\b(?:enum|extend|message|service)\s+)[A-Za-z_]\w*(?=\s*\{)/,lookbehind:!0},{pattern:/(\b(?:rpc\s+\w+|returns)\s*\(\s*(?:stream\s+)?)\.?[A-Za-z_]\w*(?:\.[A-Za-z_]\w*)*(?=\s*\))/,lookbehind:!0}],keyword:/\b(?:enum|extend|extensions|import|message|oneof|option|optional|package|public|repeated|required|reserved|returns|rpc(?=\s+\w)|service|stream|syntax|to)\b(?!\s*=\s*\d)/,function:/\b[a-z_]\w*(?=\s*\()/i}),t.languages.insertBefore("protobuf","operator",{map:{pattern:/\bmap<\s*[\w.]+\s*,\s*[\w.]+\s*>(?=\s+[a-z_]\w*\s*[=;])/i,alias:"class-name",inside:{punctuation:/[<>.,]/,builtin:n}},builtin:n,"positional-class-name":{pattern:/(?:\b|\B\.)[a-z_]\w*(?:\.[a-z_]\w*)*(?=\s+[a-z_]\w*\s*[=;])/i,alias:"class-name",inside:{punctuation:/\./}},annotation:{pattern:/(\[\s*)[a-z_]\w*(?=\s*=)/i,lookbehind:!0}})}e.exports=t,t.displayName="protobuf",t.aliases=[]},37548(e){"use strict";function t(e){e.languages.psl={comment:{pattern:/#.*/,greedy:!0},string:{pattern:/"(?:\\.|[^\\"])*"/,greedy:!0,inside:{symbol:/\\[ntrbA-Z"\\]/}},"heredoc-string":{pattern:/<<<([a-zA-Z_]\w*)[\r\n](?:.*[\r\n])*?\1\b/,alias:"string",greedy:!0},keyword:/\b(?:__multi|__single|case|default|do|else|elsif|exit|export|for|foreach|function|if|last|line|local|next|requires|return|switch|until|while|word)\b/,constant:/\b(?:ALARM|CHART_ADD_GRAPH|CHART_DELETE_GRAPH|CHART_DESTROY|CHART_LOAD|CHART_PRINT|EOF|FALSE|False|false|NO|No|no|OFFLINE|OK|PSL_PROF_LOG|R_CHECK_HORIZ|R_CHECK_VERT|R_CLICKER|R_COLUMN|R_FRAME|R_ICON|R_LABEL|R_LABEL_CENTER|R_LIST_MULTIPLE|R_LIST_MULTIPLE_ND|R_LIST_SINGLE|R_LIST_SINGLE_ND|R_MENU|R_POPUP|R_POPUP_SCROLLED|R_RADIO_HORIZ|R_RADIO_VERT|R_ROW|R_SCALE_HORIZ|R_SCALE_VERT|R_SPINNER|R_TEXT_FIELD|R_TEXT_FIELD_LABEL|R_TOGGLE|TRIM_LEADING|TRIM_LEADING_AND_TRAILING|TRIM_REDUNDANT|TRIM_TRAILING|TRUE|True|true|VOID|WARN)\b/,variable:/\b(?:errno|exit_status|PslDebug)\b/,builtin:{pattern:/\b(?:acos|add_diary|annotate|annotate_get|asctime|asin|atan|atexit|ascii_to_ebcdic|batch_set|blackout|cat|ceil|chan_exists|change_state|close|code_cvt|cond_signal|cond_wait|console_type|convert_base|convert_date|convert_locale_date|cos|cosh|create|destroy_lock|dump_hist|date|destroy|difference|dget_text|dcget_text|ebcdic_to_ascii|encrypt|event_archive|event_catalog_get|event_check|event_query|event_range_manage|event_range_query|event_report|event_schedule|event_trigger|event_trigger2|execute|exists|exp|fabs|floor|fmod|full_discovery|file|fopen|ftell|fseek|grep|get_vars|getenv|get|get_chan_info|get_ranges|get_text|gethostinfo|getpid|getpname|history_get_retention|history|index|int|is_var|intersection|isnumber|internal|in_transition|join|kill|length|lines|lock|lock_info|log|loge|log10|matchline|msg_check|msg_get_format|msg_get_severity|msg_printf|msg_sprintf|ntharg|num_consoles|nthargf|nthline|nthlinef|num_bytes|print|proc_exists|process|popen|printf|pconfig|poplines|pow|PslExecute|PslFunctionCall|PslFunctionExists|PslSetOptions|random|read|readln|refresh_parameters|remote_check|remote_close|remote_event_query|remote_event_trigger|remote_file_send|remote_open|remove|replace|rindex|sec_check_priv|sec_store_get|sec_store_set|set_alarm_ranges|set_locale|share|sin|sinh|sleep|sopen|sqrt|srandom|subset|set|substr|system|sprintf|sort|snmp_agent_config|_snmp_debug|snmp_agent_stop|snmp_agent_start|snmp_h_set|snmp_h_get_next|snmp_h_get|snmp_set|snmp_walk|snmp_get_next|snmp_get|snmp_config|snmp_close|snmp_open|snmp_trap_receive|snmp_trap_ignore|snmp_trap_listen|snmp_trap_send|snmp_trap_raise_std_trap|snmp_trap_register_im|splitline|strcasecmp|str_repeat|trim|tail|tan|tanh|time|tmpnam|tolower|toupper|trace_psl_process|text_domain|unlock|unique|union|unset|va_arg|va_start|write)\b/,alias:"builtin-function"},"foreach-variable":{pattern:/(\bforeach\s+(?:(?:\w+\b|"(?:\\.|[^\\"])*")\s+){0,2})[_a-zA-Z]\w*(?=\s*\()/,lookbehind:!0,greedy:!0},function:{pattern:/\b[_a-z]\w*\b(?=\s*\()/i},number:/\b(?:0x[0-9a-f]+|[0-9]+(?:\.[0-9]+)?)\b/i,operator:/--|\+\+|&&=?|\|\|=?|<<=?|>>=?|[=!]~|[-+*/%&|^!=<>]=?|\.|[:?]/,punctuation:/[(){}\[\];,]/}}e.exports=t,t.displayName="psl",t.aliases=[]},82161(e){"use strict";function t(e){!function(e){e.languages.pug={comment:{pattern:/(^([\t ]*))\/\/.*(?:(?:\r?\n|\r)\2[\t ].+)*/m,lookbehind:!0},"multiline-script":{pattern:/(^([\t ]*)script\b.*\.[\t ]*)(?:(?:\r?\n|\r(?!\n))(?:\2[\t ].+|\s*?(?=\r?\n|\r)))+/m,lookbehind:!0,inside:e.languages.javascript},filter:{pattern:/(^([\t ]*)):.+(?:(?:\r?\n|\r(?!\n))(?:\2[\t ].+|\s*?(?=\r?\n|\r)))+/m,lookbehind:!0,inside:{"filter-name":{pattern:/^:[\w-]+/,alias:"variable"}}},"multiline-plain-text":{pattern:/(^([\t ]*)[\w\-#.]+\.[\t ]*)(?:(?:\r?\n|\r(?!\n))(?:\2[\t ].+|\s*?(?=\r?\n|\r)))+/m,lookbehind:!0},markup:{pattern:/(^[\t ]*)<.+/m,lookbehind:!0,inside:e.languages.markup},doctype:{pattern:/((?:^|\n)[\t ]*)doctype(?: .+)?/,lookbehind:!0},"flow-control":{pattern:/(^[\t ]*)(?:if|unless|else|case|when|default|each|while)\b(?: .+)?/m,lookbehind:!0,inside:{each:{pattern:/^each .+? in\b/,inside:{keyword:/\b(?:each|in)\b/,punctuation:/,/}},branch:{pattern:/^(?:if|unless|else|case|when|default|while)\b/,alias:"keyword"},rest:e.languages.javascript}},keyword:{pattern:/(^[\t ]*)(?:block|extends|include|append|prepend)\b.+/m,lookbehind:!0},mixin:[{pattern:/(^[\t ]*)mixin .+/m,lookbehind:!0,inside:{keyword:/^mixin/,function:/\w+(?=\s*\(|\s*$)/,punctuation:/[(),.]/}},{pattern:/(^[\t ]*)\+.+/m,lookbehind:!0,inside:{name:{pattern:/^\+\w+/,alias:"function"},rest:e.languages.javascript}}],script:{pattern:/(^[\t ]*script(?:(?:&[^(]+)?\([^)]+\))*[\t ]).+/m,lookbehind:!0,inside:e.languages.javascript},"plain-text":{pattern:/(^[\t ]*(?!-)[\w\-#.]*[\w\-](?:(?:&[^(]+)?\([^)]+\))*\/?[\t ]).+/m,lookbehind:!0},tag:{pattern:/(^[\t ]*)(?!-)[\w\-#.]*[\w\-](?:(?:&[^(]+)?\([^)]+\))*\/?:?/m,lookbehind:!0,inside:{attributes:[{pattern:/&[^(]+\([^)]+\)/,inside:e.languages.javascript},{pattern:/\([^)]+\)/,inside:{"attr-value":{pattern:/(=\s*(?!\s))(?:\{[^}]*\}|[^,)\r\n]+)/,lookbehind:!0,inside:e.languages.javascript},"attr-name":/[\w-]+(?=\s*!?=|\s*[,)])/,punctuation:/[!=(),]+/}}],punctuation:/:/,"attr-id":/#[\w\-]+/,"attr-class":/\.[\w\-]+/}},code:[{pattern:/(^[\t ]*(?:-|!?=)).+/m,lookbehind:!0,inside:e.languages.javascript}],punctuation:/[.\-!=|]+/};for(var t=/(^([\t ]*)):(?:(?:\r?\n|\r(?!\n))(?:\2[\t ].+|\s*?(?=\r?\n|\r)))+/.source,n=[{filter:"atpl",language:"twig"},{filter:"coffee",language:"coffeescript"},"ejs","handlebars","less","livescript","markdown",{filter:"sass",language:"scss"},"stylus"],r={},i=0,a=n.length;i",function(){return o.filter}),"m"),lookbehind:!0,inside:{"filter-name":{pattern:/^:[\w-]+/,alias:"variable"},rest:e.languages[o.language]}})}e.languages.insertBefore("pug","filter",r)}(e)}e.exports=t,t.displayName="pug",t.aliases=[]},80625(e){"use strict";function t(e){var t,n;(t=e).languages.puppet={heredoc:[{pattern:/(@\("([^"\r\n\/):]+)"(?:\/[nrts$uL]*)?\).*(?:\r?\n|\r))(?:.*(?:\r?\n|\r(?!\n)))*?[ \t]*(?:\|[ \t]*)?(?:-[ \t]*)?\2/,lookbehind:!0,alias:"string",inside:{punctuation:/(?=\S).*\S(?= *$)/}},{pattern:/(@\(([^"\r\n\/):]+)(?:\/[nrts$uL]*)?\).*(?:\r?\n|\r))(?:.*(?:\r?\n|\r(?!\n)))*?[ \t]*(?:\|[ \t]*)?(?:-[ \t]*)?\2/,lookbehind:!0,greedy:!0,alias:"string",inside:{punctuation:/(?=\S).*\S(?= *$)/}},{pattern:/@\("?(?:[^"\r\n\/):]+)"?(?:\/[nrts$uL]*)?\)/,alias:"string",inside:{punctuation:{pattern:/(\().+?(?=\))/,lookbehind:!0}}}],"multiline-comment":{pattern:/(^|[^\\])\/\*[\s\S]*?\*\//,lookbehind:!0,greedy:!0,alias:"comment"},regex:{pattern:/((?:\bnode\s+|[~=\(\[\{,]\s*|[=+]>\s*|^\s*))\/(?:[^\/\\]|\\[\s\S])+\/(?:[imx]+\b|\B)/,lookbehind:!0,greedy:!0,inside:{"extended-regex":{pattern:/^\/(?:[^\/\\]|\\[\s\S])+\/[im]*x[im]*$/,inside:{comment:/#.*/}}}},comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},string:{pattern:/(["'])(?:\$\{(?:[^'"}]|(["'])(?:(?!\2)[^\\]|\\[\s\S])*\2)+\}|\$(?!\{)|(?!\1)[^\\$]|\\[\s\S])*\1/,greedy:!0,inside:{"double-quoted":{pattern:/^"[\s\S]*"$/,inside:{}}}},variable:{pattern:/\$(?:::)?\w+(?:::\w+)*/,inside:{punctuation:/::/}},"attr-name":/(?:\b\w+|\*)(?=\s*=>)/,function:[{pattern:/(\.)(?!\d)\w+/,lookbehind:!0},/\b(?:contain|debug|err|fail|include|info|notice|realize|require|tag|warning)\b|\b(?!\d)\w+(?=\()/],number:/\b(?:0x[a-f\d]+|\d+(?:\.\d+)?(?:e-?\d+)?)\b/i,boolean:/\b(?:true|false)\b/,keyword:/\b(?:application|attr|case|class|consumes|default|define|else|elsif|function|if|import|inherits|node|private|produces|type|undef|unless)\b/,datatype:{pattern:/\b(?:Any|Array|Boolean|Callable|Catalogentry|Class|Collection|Data|Default|Enum|Float|Hash|Integer|NotUndef|Numeric|Optional|Pattern|Regexp|Resource|Runtime|Scalar|String|Struct|Tuple|Type|Undef|Variant)\b/,alias:"symbol"},operator:/=[=~>]?|![=~]?|<(?:<\|?|[=~|-])?|>[>=]?|->?|~>|\|>?>?|[*\/%+?]|\b(?:and|in|or)\b/,punctuation:/[\[\]{}().,;]|:+/},n=[{pattern:/(^|[^\\])\$\{(?:[^'"{}]|\{[^}]*\}|(["'])(?:(?!\2)[^\\]|\\[\s\S])*\2)+\}/,lookbehind:!0,inside:{"short-variable":{pattern:/(^\$\{)(?!\w+\()(?:::)?\w+(?:::\w+)*/,lookbehind:!0,alias:"variable",inside:{punctuation:/::/}},delimiter:{pattern:/^\$/,alias:"variable"},rest:t.languages.puppet}},{pattern:/(^|[^\\])\$(?:::)?\w+(?:::\w+)*/,lookbehind:!0,alias:"variable",inside:{punctuation:/::/}}],t.languages.puppet.heredoc[0].inside.interpolation=n,t.languages.puppet.string.inside["double-quoted"].inside.interpolation=n}e.exports=t,t.displayName="puppet",t.aliases=[]},88393(e){"use strict";function t(e){var t,n,r;(t=e).languages.pure={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?\*\//,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0},/#!.+/],"inline-lang":{pattern:/%<[\s\S]+?%>/,greedy:!0,inside:{lang:{pattern:/(^%< *)-\*-.+?-\*-/,lookbehind:!0,alias:"comment"},delimiter:{pattern:/^%<.*|%>$/,alias:"punctuation"}}},string:{pattern:/"(?:\\.|[^"\\\r\n])*"/,greedy:!0},number:{pattern:/((?:\.\.)?)(?:\b(?:inf|nan)\b|\b0x[\da-f]+|(?:\b(?:0b)?\d+(?:\.\d+)?|\B\.\d+)(?:e[+-]?\d+)?L?)/i,lookbehind:!0},keyword:/\b(?:ans|break|bt|case|catch|cd|clear|const|def|del|dump|else|end|exit|extern|false|force|help|if|infix[lr]?|interface|let|ls|mem|namespace|nonfix|NULL|of|otherwise|outfix|override|postfix|prefix|private|public|pwd|quit|run|save|show|stats|then|throw|trace|true|type|underride|using|when|with)\b/,function:/\b(?:abs|add_(?:(?:fundef|interface|macdef|typedef)(?:_at)?|addr|constdef|vardef)|all|any|applp?|arity|bigintp?|blob(?:_crc|_size|p)?|boolp?|byte_(?:matrix|pointer)|byte_c?string(?:_pointer)?|calloc|cat|catmap|ceil|char[ps]?|check_ptrtag|chr|clear_sentry|clearsym|closurep?|cmatrixp?|cols?|colcat(?:map)?|colmap|colrev|colvector(?:p|seq)?|complex(?:_float_(?:matrix|pointer)|_matrix(?:_view)?|_pointer|p)?|conj|cookedp?|cst|cstring(?:_(?:dup|list|vector))?|curry3?|cyclen?|del_(?:constdef|fundef|interface|macdef|typedef|vardef)|delete|diag(?:mat)?|dim|dmatrixp?|do|double(?:_matrix(?:_view)?|_pointer|p)?|dowith3?|drop|dropwhile|eval(?:cmd)?|exactp|filter|fix|fixity|flip|float(?:_matrix|_pointer)|floor|fold[lr]1?|frac|free|funp?|functionp?|gcd|get(?:_(?:byte|constdef|double|float|fundef|int(?:64)?|interface(?:_typedef)?|long|macdef|pointer|ptrtag|short|sentry|string|typedef|vardef))?|globsym|hash|head|id|im|imatrixp?|index|inexactp|infp|init|insert|int(?:_matrix(?:_view)?|_pointer|p)?|int64_(?:matrix|pointer)|integerp?|iteraten?|iterwhile|join|keys?|lambdap?|last(?:err(?:pos)?)?|lcd|list[2p]?|listmap|make_ptrtag|malloc|map|matcat|matrixp?|max|member|min|nanp|nargs|nmatrixp?|null|numberp?|ord|pack(?:ed)?|pointer(?:_cast|_tag|_type|p)?|pow|pred|ptrtag|put(?:_(?:byte|double|float|int(?:64)?|long|pointer|short|string))?|rationalp?|re|realp?|realloc|recordp?|redim|reduce(?:_with)?|refp?|repeatn?|reverse|rlistp?|round|rows?|rowcat(?:map)?|rowmap|rowrev|rowvector(?:p|seq)?|same|scan[lr]1?|sentry|sgn|short_(?:matrix|pointer)|slice|smatrixp?|sort|split|str|strcat|stream|stride|string(?:_(?:dup|list|vector)|p)?|subdiag(?:mat)?|submat|subseq2?|substr|succ|supdiag(?:mat)?|symbolp?|tail|take|takewhile|thunkp?|transpose|trunc|tuplep?|typep|ubyte|uint(?:64)?|ulong|uncurry3?|unref|unzip3?|update|ushort|vals?|varp?|vector(?:p|seq)?|void|zip3?|zipwith3?)\b/,special:{pattern:/\b__[a-z]+__\b/i,alias:"builtin"},operator:/(?:[!"#$%&'*+,\-.\/:<=>?@\\^`|~\u00a1-\u00bf\u00d7-\u00f7\u20d0-\u2bff]|\b_+\b)+|\b(?:and|div|mod|not|or)\b/,punctuation:/[(){}\[\];,|]/},r=/%< *-\*- *\d* *-\*-[\s\S]+?%>/.source,(n=["c",{lang:"c++",alias:"cpp"},"fortran"]).forEach(function(e){var n=e;if("string"!=typeof e&&(n=e.alias,e=e.lang),t.languages[n]){var i={};i["inline-lang-"+n]={pattern:RegExp(r.replace("",e.replace(/([.+*?\/\\(){}\[\]])/g,"\\$1")),"i"),inside:t.util.clone(t.languages.pure["inline-lang"].inside)},i["inline-lang-"+n].inside.rest=t.util.clone(t.languages[n]),t.languages.insertBefore("pure","inline-lang",i)}}),t.languages.c&&(t.languages.pure["inline-lang"].inside.rest=t.util.clone(t.languages.c))}e.exports=t,t.displayName="pure",t.aliases=[]},78404(e){"use strict";function t(e){e.languages.purebasic=e.languages.extend("clike",{comment:/;.*/,keyword:/\b(?:declarecdll|declaredll|compilerselect|compilercase|compilerdefault|compilerendselect|compilererror|enableexplicit|disableexplicit|not|and|or|xor|calldebugger|debuglevel|enabledebugger|disabledebugger|restore|read|includepath|includebinary|threaded|runtime|with|endwith|structureunion|endstructureunion|align|newlist|newmap|interface|endinterface|extends|enumeration|endenumeration|swap|foreach|continue|fakereturn|goto|gosub|return|break|module|endmodule|declaremodule|enddeclaremodule|declare|declarec|prototype|prototypec|enableasm|disableasm|dim|redim|data|datasection|enddatasection|to|procedurereturn|debug|default|case|select|endselect|as|import|endimport|importc|compilerif|compilerelse|compilerendif|compilerelseif|end|structure|endstructure|while|wend|for|next|step|if|else|elseif|endif|repeat|until|procedure|proceduredll|procedurec|procedurecdll|endprocedure|protected|shared|static|global|define|includefile|xincludefile|macro|endmacro)\b/i,function:/\b\w+(?:\.\w+)?\s*(?=\()/,number:/(?:\$[\da-f]+|\b-?(?:\d+(?:\.\d+)?|\.\d+)(?:e[+-]?\d+)?)\b/i,operator:/(?:@\*?|\?|\*)\w+|-[>-]?|\+\+?|!=?|<>?=?|==?|&&?|\|?\||[~^%?*/@]/}),e.languages.insertBefore("purebasic","keyword",{tag:/#\w+/,asm:{pattern:/(^[\t ]*)!.*/m,lookbehind:!0,alias:"tag",inside:{comment:/;.*/,string:{pattern:/(["'`])(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},"label-reference-anonymous":{pattern:/(!\s*j[a-z]+\s+)@[fb]/i,lookbehind:!0,alias:"fasm-label"},"label-reference-addressed":{pattern:/(!\s*j[a-z]+\s+)[A-Z._?$@][\w.?$@~#]*/i,lookbehind:!0,alias:"fasm-label"},function:{pattern:/^([\t ]*!\s*)[\da-z]+(?=\s|$)/im,lookbehind:!0},"function-inline":{pattern:/(:\s*)[\da-z]+(?=\s)/i,lookbehind:!0,alias:"function"},label:{pattern:/^([\t ]*!\s*)[A-Za-z._?$@][\w.?$@~#]*(?=:)/m,lookbehind:!0,alias:"fasm-label"},keyword:[/\b(?:extern|global)\b[^;\r\n]*/i,/\b(?:CPU|FLOAT|DEFAULT)\b.*/],register:/\b(?:st\d|[xyz]mm\d\d?|[cdt]r\d|r\d\d?[bwd]?|[er]?[abcd]x|[abcd][hl]|[er]?(?:bp|sp|si|di)|[cdefgs]s|mm\d+)\b/i,number:/(?:\b|-|(?=\$))(?:0[hx](?:[\da-f]*\.)?[\da-f]+(?:p[+-]?\d+)?|\d[\da-f]+[hx]|\$\d[\da-f]*|0[oq][0-7]+|[0-7]+[oq]|0[by][01]+|[01]+[by]|0[dt]\d+|(?:\d+(?:\.\d+)?|\.\d+)(?:\.?e[+-]?\d+)?[dt]?)\b/i,operator:/[\[\]*+\-/%<>=&|$!,.:]/}}}),delete e.languages.purebasic["class-name"],delete e.languages.purebasic.boolean,e.languages.pbfasm=e.languages.purebasic}e.exports=t,t.displayName="purebasic",t.aliases=[]},92923(e,t,n){"use strict";var r=n(58090);function i(e){e.register(r),e.languages.purescript=e.languages.extend("haskell",{keyword:/\b(?:ado|case|class|data|derive|do|else|forall|if|in|infixl|infixr|instance|let|module|newtype|of|primitive|then|type|where)\b/,"import-statement":{pattern:/(^[\t ]*)import\s+[A-Z][\w']*(?:\.[A-Z][\w']*)*(?:\s+as\s+[A-Z][\w']*(?:\.[A-Z][\w']*)*)?(?:\s+hiding\b)?/m,lookbehind:!0,inside:{keyword:/\b(?:import|as|hiding)\b/}},builtin:/\b(?:absurd|add|ap|append|apply|between|bind|bottom|clamp|compare|comparing|compose|conj|const|degree|discard|disj|div|eq|flap|flip|gcd|identity|ifM|join|lcm|liftA1|liftM1|map|max|mempty|min|mod|mul|negate|not|notEq|one|otherwise|recip|show|sub|top|unit|unless|unlessM|void|when|whenM|zero)\b/}),e.languages.purs=e.languages.purescript}e.exports=i,i.displayName="purescript",i.aliases=["purs"]},52992(e){"use strict";function t(e){e.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0},"string-interpolation":{pattern:/(?:f|rf|fr)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|rb|br)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|rb|br)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/im,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?: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)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:True|False|None)\b/,number:/(?:\b(?=\d)|\B(?=\.))(?:0[bo])?(?:(?:\d|0x[\da-f])[\da-f]*(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?j?\b/i,operator:/[-+%=]=?|!=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},e.languages.python["string-interpolation"].inside.interpolation.inside.rest=e.languages.python,e.languages.py=e.languages.python}e.exports=t,t.displayName="python",t.aliases=["py"]},55762(e){"use strict";function t(e){e.languages.q={string:/"(?:\\.|[^"\\\r\n])*"/,comment:[{pattern:/([\t )\]}])\/.*/,lookbehind:!0,greedy:!0},{pattern:/(^|\r?\n|\r)\/[\t ]*(?:(?:\r?\n|\r)(?:.*(?:\r?\n|\r(?!\n)))*?(?:\\(?=[\t ]*(?:\r?\n|\r))|$)|\S.*)/,lookbehind:!0,greedy:!0},{pattern:/^\\[\t ]*(?:\r?\n|\r)[\s\S]+/m,greedy:!0},{pattern:/^#!.+/m,greedy:!0}],symbol:/`(?::\S+|[\w.]*)/,datetime:{pattern:/0N[mdzuvt]|0W[dtz]|\d{4}\.\d\d(?:m|\.\d\d(?:T(?:\d\d(?::\d\d(?::\d\d(?:[.:]\d\d\d)?)?)?)?)?[dz]?)|\d\d:\d\d(?::\d\d(?:[.:]\d\d\d)?)?[uvt]?/,alias:"number"},number:/\b(?![01]:)(?:0[wn]|0W[hj]?|0N[hje]?|0x[\da-fA-F]+|\d+(?:\.\d*)?(?:e[+-]?\d+)?[hjfeb]?)/,keyword:/\\\w+\b|\b(?:abs|acos|aj0?|all|and|any|asc|asin|asof|atan|attr|avgs?|binr?|by|ceiling|cols|cor|cos|count|cov|cross|csv|cut|delete|deltas|desc|dev|differ|distinct|div|do|dsave|ej|enlist|eval|except|exec|exit|exp|fby|fills|first|fkeys|flip|floor|from|get|getenv|group|gtime|hclose|hcount|hdel|hopen|hsym|iasc|identity|idesc|if|ij|in|insert|inter|inv|keys?|last|like|list|ljf?|load|log|lower|lsq|ltime|ltrim|mavg|maxs?|mcount|md5|mdev|med|meta|mins?|mmax|mmin|mmu|mod|msum|neg|next|not|null|or|over|parse|peach|pj|plist|prds?|prev|prior|rand|rank|ratios|raze|read0|read1|reciprocal|reval|reverse|rload|rotate|rsave|rtrim|save|scan|scov|sdev|select|set|setenv|show|signum|sin|sqrt|ssr?|string|sublist|sums?|sv|svar|system|tables|tan|til|trim|txf|type|uj|ungroup|union|update|upper|upsert|value|var|views?|vs|wavg|where|while|within|wj1?|wsum|ww|xasc|xbar|xcols?|xdesc|xexp|xgroup|xkey|xlog|xprev|xrank)\b/,adverb:{pattern:/['\/\\]:?|\beach\b/,alias:"function"},verb:{pattern:/(?:\B\.\B|\b[01]:|<[=>]?|>=?|[:+\-*%,!?~=|$&#@^]):?|\b_\b:?/,alias:"operator"},punctuation:/[(){}\[\];.]/}}e.exports=t,t.displayName="q",t.aliases=[]},4137(e){"use strict";function t(e){!function(e){for(var t=/"(?:\\.|[^\\"\r\n])*"|'(?:\\.|[^\\'\r\n])*'/.source,n=/\/\/.*(?!.)|\/\*(?:[^*]|\*(?!\/))*\*\//.source,r=/(?:[^\\()[\]{}"'/]||\/(?![*/])||\(*\)|\[*\]|\{*\}|\\[\s\S])/.source.replace(//g,function(){return t}).replace(//g,function(){return n}),i=0;i<2;i++)r=r.replace(//g,function(){return r});r=r.replace(//g,"[^\\s\\S]"),e.languages.qml={comment:{pattern:/\/\/.*|\/\*[\s\S]*?\*\//,greedy:!0},"javascript-function":{pattern:RegExp(/((?:^|;)[ \t]*)function\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*\(*\)\s*\{*\}/.source.replace(//g,function(){return r}),"m"),lookbehind:!0,greedy:!0,alias:"language-javascript",inside:e.languages.javascript},"class-name":{pattern:/((?:^|[:;])[ \t]*)(?!\d)\w+(?=[ \t]*\{|[ \t]+on\b)/m,lookbehind:!0},property:[{pattern:/((?:^|[;{])[ \t]*)(?!\d)\w+(?:\.\w+)*(?=[ \t]*:)/m,lookbehind:!0},{pattern:/((?:^|[;{])[ \t]*)property[ \t]+(?!\d)\w+(?:\.\w+)*[ \t]+(?!\d)\w+(?:\.\w+)*(?=[ \t]*:)/m,lookbehind:!0,inside:{keyword:/^property/,property:/\w+(?:\.\w+)*/}}],"javascript-expression":{pattern:RegExp(/(:[ \t]*)(?![\s;}[])(?:(?!$|[;}]))+/.source.replace(//g,function(){return r}),"m"),lookbehind:!0,greedy:!0,alias:"language-javascript",inside:e.languages.javascript},string:/"(?:\\.|[^\\"\r\n])*"/,keyword:/\b(?:as|import|on)\b/,punctuation:/[{}[\]:;,]/}}(e)}e.exports=t,t.displayName="qml",t.aliases=[]},28260(e){"use strict";function t(e){e.languages.qore=e.languages.extend("clike",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:\/\/|#).*)/,lookbehind:!0},string:{pattern:/("|')(?:\\[\s\S]|(?!\1)[^\\])*\1/,greedy:!0},keyword:/\b(?:abstract|any|assert|binary|bool|boolean|break|byte|case|catch|char|class|code|const|continue|data|default|do|double|else|enum|extends|final|finally|float|for|goto|hash|if|implements|import|inherits|instanceof|int|interface|long|my|native|new|nothing|null|object|our|own|private|reference|rethrow|return|short|soft(?:int|float|number|bool|string|date|list)|static|strictfp|string|sub|super|switch|synchronized|this|throw|throws|transient|try|void|volatile|while)\b/,boolean:/\b(?:true|false)\b/i,function:/\$?\b(?!\d)\w+(?=\()/,number:/\b(?:0b[01]+|0x(?:[\da-f]*\.)?[\da-fp\-]+|(?:\d+(?:\.\d+)?|\.\d+)(?:e\d+)?[df]|(?:\d+(?:\.\d+)?|\.\d+))\b/i,operator:{pattern:/(^|[^.])(?:\+[+=]?|-[-=]?|[!=](?:==?|~)?|>>?=?|<(?:=>?|<=?)?|&[&=]?|\|[|=]?|[*\/%^]=?|[~?])/,lookbehind:!0},variable:/\$(?!\d)\w+\b/})}e.exports=t,t.displayName="qore",t.aliases=[]},71360(e){"use strict";function t(e){!function(e){function t(e,t){return e.replace(/<<(\d+)>>/g,function(e,n){return"(?:"+t[+n]+")"})}function n(e,n,r){return RegExp(t(e,n),r||"")}function r(e,t){for(var n=0;n>/g,function(){return"(?:"+e+")"});return e.replace(/<>/g,"[^\\s\\S]")}var i={type:"Adj BigInt Bool Ctl Double false Int One Pauli PauliI PauliX PauliY PauliZ Qubit Range Result String true Unit Zero",other:"Adjoint adjoint apply as auto body borrow borrowing Controlled controlled distribute elif else fail fixup for function if in internal intrinsic invert is let mutable namespace new newtype open operation repeat return self set until use using while within"};function a(e){return"\\b(?:"+e.trim().replace(/ /g,"|")+")\\b"}var o=RegExp(a(i.type+" "+i.other)),s=/\b[A-Za-z_]\w*\b/.source,u=t(/<<0>>(?:\s*\.\s*<<0>>)*/.source,[s]),c={keyword:o,punctuation:/[<>()?,.:[\]]/},l=/"(?:\\.|[^\\"])*"/.source;e.languages.qsharp=e.languages.extend("clike",{comment:/\/\/.*/,string:[{pattern:n(/(^|[^$\\])<<0>>/.source,[l]),lookbehind:!0,greedy:!0}],"class-name":[{pattern:n(/(\b(?:as|open)\s+)<<0>>(?=\s*(?:;|as\b))/.source,[u]),lookbehind:!0,inside:c},{pattern:n(/(\bnamespace\s+)<<0>>(?=\s*\{)/.source,[u]),lookbehind:!0,inside:c}],keyword:o,number:/(?:\b0(?:x[\da-f]+|b[01]+|o[0-7]+)|(?:\B\.\d+|\b\d+(?:\.\d*)?)(?:e[-+]?\d+)?)l?\b/i,operator:/\band=|\bor=|\band\b|\bor\b|\bnot\b|<[-=]|[-=]>|>>>=?|<<<=?|\^\^\^=?|\|\|\|=?|&&&=?|w\/=?|~~~|[*\/+\-^=!%]=?/,punctuation:/::|[{}[\];(),.:]/}),e.languages.insertBefore("qsharp","number",{range:{pattern:/\.\./,alias:"operator"}});var f=r(t(/\{(?:[^"{}]|<<0>>|<>)*\}/.source,[l]),2);e.languages.insertBefore("qsharp","string",{"interpolation-string":{pattern:n(/\$"(?:\\.|<<0>>|[^\\"{])*"/.source,[f]),greedy:!0,inside:{interpolation:{pattern:n(/((?:^|[^\\])(?:\\\\)*)<<0>>/.source,[f]),lookbehind:!0,inside:{punctuation:/^\{|\}$/,expression:{pattern:/[\s\S]+/,alias:"language-qsharp",inside:e.languages.qsharp}}},string:/[\s\S]+/}}})}(e),e.languages.qs=e.languages.qsharp}e.exports=t,t.displayName="qsharp",t.aliases=["qs"]},29308(e){"use strict";function t(e){e.languages.r={comment:/#.*/,string:{pattern:/(['"])(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},"percent-operator":{pattern:/%[^%\s]*%/,alias:"operator"},boolean:/\b(?:TRUE|FALSE)\b/,ellipsis:/\.\.(?:\.|\d+)/,number:[/\b(?:NaN|Inf)\b/,/(?:\b0x[\dA-Fa-f]+(?:\.\d*)?|\b\d+(?:\.\d*)?|\B\.\d+)(?:[EePp][+-]?\d+)?[iL]?/],keyword:/\b(?:if|else|repeat|while|function|for|in|next|break|NULL|NA|NA_integer_|NA_real_|NA_complex_|NA_character_)\b/,operator:/->?>?|<(?:=|=!]=?|::?|&&?|\|\|?|[+*\/^$@~]/,punctuation:/[(){}\[\],;]/}}e.exports=t,t.displayName="r",t.aliases=[]},32168(e,t,n){"use strict";var r=n(9997);function i(e){e.register(r),e.languages.racket=e.languages.extend("scheme",{"lambda-parameter":{pattern:/([(\[]lambda\s+[(\[])[^()\[\]'\s]+/,lookbehind:!0}}),e.languages.insertBefore("racket","string",{lang:{pattern:/^#lang.+/m,greedy:!0,alias:"keyword"}}),e.languages.rkt=e.languages.racket}e.exports=i,i.displayName="racket",i.aliases=["rkt"]},5755(e){"use strict";function t(e){e.languages.reason=e.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:mod|land|lor|lxor|lsl|lsr|asr)\b/}),e.languages.insertBefore("reason","class-name",{character:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,alias:"string"},constructor:{pattern:/\b[A-Z]\w*\b(?!\s*\.)/,alias:"variable"},label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete e.languages.reason.function}e.exports=t,t.displayName="reason",t.aliases=[]},54105(e){"use strict";function t(e){var t,n,r,i,a,o,s,u;t=e,n={pattern:/\\[\\(){}[\]^$+*?|.]/,alias:"escape"},i={pattern:/\.|\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},a={pattern:/\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},s=RegExp((o="(?:[^\\\\-]|"+(r=/\\(?:x[\da-fA-F]{2}|u[\da-fA-F]{4}|u\{[\da-fA-F]+\}|c[a-zA-Z]|0[0-7]{0,2}|[123][0-7]{2}|.)/).source+")")+"-"+o),u={pattern:/(<|')[^<>']+(?=[>']$)/,lookbehind:!0,alias:"variable"},t.languages.regex={charset:{pattern:/((?:^|[^\\])(?:\\\\)*)\[(?:[^\\\]]|\\[\s\S])*\]/,lookbehind:!0,inside:{"charset-negation":{pattern:/(^\[)\^/,lookbehind:!0,alias:"operator"},"charset-punctuation":{pattern:/^\[|\]$/,alias:"punctuation"},range:{pattern:s,inside:{escape:r,"range-punctuation":{pattern:/-/,alias:"operator"}}},"special-escape":n,charclass:a,escape:r}},"special-escape":n,charclass:i,backreference:[{pattern:/\\(?![123][0-7]{2})[1-9]/,alias:"keyword"},{pattern:/\\k<[^<>']+>/,alias:"keyword",inside:{"group-name":u}}],anchor:{pattern:/[$^]|\\[ABbGZz]/,alias:"function"},escape:r,group:[{pattern:/\((?:\?(?:<[^<>']+>|'[^<>']+'|[>:]|:=]=?|!=|\b_\b/,punctuation:/[,;.\[\]{}()]/}}e.exports=t,t.displayName="rego",t.aliases=[]},35108(e){"use strict";function t(e){e.languages.renpy={comment:{pattern:/(^|[^\\])#.+/,lookbehind:!0},string:{pattern:/("""|''')[\s\S]+?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2|(?:^#?(?:[0-9a-fA-F]{6}|(?:[0-9a-fA-F]){3})$)/m,greedy:!0},function:/\b[a-z_]\w*(?=\()/i,property:/\b(?:insensitive|idle|hover|selected_idle|selected_hover|background|position|alt|xpos|ypos|pos|xanchor|yanchor|anchor|xalign|yalign|align|xcenter|ycenter|xofsset|yoffset|ymaximum|maximum|xmaximum|xminimum|yminimum|minimum|xsize|ysizexysize|xfill|yfill|area|antialias|black_color|bold|caret|color|first_indent|font|size|italic|justify|kerning|language|layout|line_leading|line_overlap_split|line_spacing|min_width|newline_indent|outlines|rest_indent|ruby_style|slow_cps|slow_cps_multiplier|strikethrough|text_align|underline|hyperlink_functions|vertical|hinting|foreground|left_margin|xmargin|top_margin|bottom_margin|ymargin|left_padding|right_padding|xpadding|top_padding|bottom_padding|ypadding|size_group|child|hover_sound|activate_sound|mouse|focus_mask|keyboard_focus|bar_vertical|bar_invert|bar_resizing|left_gutter|right_gutter|top_gutter|bottom_gutter|left_bar|right_bar|top_bar|bottom_bar|thumb|thumb_shadow|thumb_offset|unscrollable|spacing|first_spacing|box_reverse|box_wrap|order_reverse|fit_first|ysize|thumbnail_width|thumbnail_height|help|text_ypos|text_xpos|idle_color|hover_color|selected_idle_color|selected_hover_color|insensitive_color|alpha|insensitive_background|hover_background|zorder|value|width|xadjustment|xanchoraround|xaround|xinitial|xoffset|xzoom|yadjustment|yanchoraround|yaround|yinitial|yzoom|zoom|ground|height|text_style|text_y_fudge|selected_insensitive|has_sound|has_music|has_voice|focus|hovered|image_style|length|minwidth|mousewheel|offset|prefix|radius|range|right_margin|rotate|rotate_pad|developer|screen_width|screen_height|window_title|name|version|windows_icon|default_fullscreen|default_text_cps|default_afm_time|main_menu_music|sample_sound|enter_sound|exit_sound|save_directory|enter_transition|exit_transition|intra_transition|main_game_transition|game_main_transition|end_splash_transition|end_game_transition|after_load_transition|window_show_transition|window_hide_transition|adv_nvl_transition|nvl_adv_transition|enter_yesno_transition|exit_yesno_transition|enter_replay_transition|exit_replay_transition|say_attribute_transition|directory_name|executable_name|include_update|window_icon|modal|google_play_key|google_play_salt|drag_name|drag_handle|draggable|dragged|droppable|dropped|narrator_menu|action|default_afm_enable|version_name|version_tuple|inside|fadeout|fadein|layers|layer_clipping|linear|scrollbars|side_xpos|side_ypos|side_spacing|edgescroll|drag_joined|drag_raise|drop_shadow|drop_shadow_color|subpixel|easein|easeout|time|crop|auto|update|get_installed_packages|can_update|UpdateVersion|Update|overlay_functions|translations|window_left_padding|show_side_image|show_two_window)\b/,tag:/\b(?:label|image|menu|[hv]box|frame|text|imagemap|imagebutton|bar|vbar|screen|textbutton|buttoscreenn|fixed|grid|input|key|mousearea|side|timer|viewport|window|hotspot|hotbar|self|button|drag|draggroup|tag|mm_menu_frame|nvl|block|parallel)\b|\$/,keyword:/\b(?:as|assert|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|pass|print|raise|return|try|while|yield|adjustment|alignaround|allow|angle|around|box_layout|cache|changed|child_size|clicked|clipping|corner1|corner2|default|delay|exclude|scope|slow|slow_abortable|slow_done|sound|style_group|substitute|suffix|transform_anchor|transpose|unhovered|config|theme|mm_root|gm_root|rounded_window|build|disabled_text|disabled|widget_selected|widget_text|widget_hover|widget|updater|behind|call|expression|hide|init|jump|onlayer|python|renpy|scene|set|show|transform|play|queue|stop|pause|define|window|repeat|contains|choice|on|function|event|animation|clockwise|counterclockwise|circles|knot|null|None|random|has|add|use|fade|dissolve|style|store|id|voice|center|left|right|less_rounded|music|movie|clear|persistent|ui)\b/,boolean:/\b(?:[Tt]rue|[Ff]alse)\b/,number:/(?:\b(?:0[bo])?(?:(?:\d|0x[\da-f])[\da-f]*(?:\.\d*)?)|\B\.\d+)(?:e[+-]?\d+)?j?/i,operator:/[-+%=]=?|!=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]|\b(?:or|and|not|with|at)\b/,punctuation:/[{}[\];(),.:]/},e.languages.rpy=e.languages.renpy}e.exports=t,t.displayName="renpy",t.aliases=["rpy"]},46678(e){"use strict";function t(e){e.languages.rest={table:[{pattern:/(^[\t ]*)(?:\+[=-]+)+\+(?:\r?\n|\r)(?:\1[+|].+[+|](?:\r?\n|\r))+\1(?:\+[=-]+)+\+/m,lookbehind:!0,inside:{punctuation:/\||(?:\+[=-]+)+\+/}},{pattern:/(^[\t ]*)=+ [ =]*=(?:(?:\r?\n|\r)\1.+)+(?:\r?\n|\r)\1=+ [ =]*=(?=(?:\r?\n|\r){2}|\s*$)/m,lookbehind:!0,inside:{punctuation:/[=-]+/}}],"substitution-def":{pattern:/(^[\t ]*\.\. )\|(?:[^|\s](?:[^|]*[^|\s])?)\| [^:]+::/m,lookbehind:!0,inside:{substitution:{pattern:/^\|(?:[^|\s]|[^|\s][^|]*[^|\s])\|/,alias:"attr-value",inside:{punctuation:/^\||\|$/}},directive:{pattern:/( )(?! )[^:]+::/,lookbehind:!0,alias:"function",inside:{punctuation:/::$/}}}},"link-target":[{pattern:/(^[\t ]*\.\. )\[[^\]]+\]/m,lookbehind:!0,alias:"string",inside:{punctuation:/^\[|\]$/}},{pattern:/(^[\t ]*\.\. )_(?:`[^`]+`|(?:[^:\\]|\\.)+):/m,lookbehind:!0,alias:"string",inside:{punctuation:/^_|:$/}}],directive:{pattern:/(^[\t ]*\.\. )[^:]+::/m,lookbehind:!0,alias:"function",inside:{punctuation:/::$/}},comment:{pattern:/(^[\t ]*\.\.)(?:(?: .+)?(?:(?:\r?\n|\r).+)+| .+)(?=(?:\r?\n|\r){2}|$)/m,lookbehind:!0},title:[{pattern:/^(([!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~])\2+)(?:\r?\n|\r).+(?:\r?\n|\r)\1$/m,inside:{punctuation:/^[!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~]+|[!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~]+$/,important:/.+/}},{pattern:/(^|(?:\r?\n|\r){2}).+(?:\r?\n|\r)([!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~])\2+(?=\r?\n|\r|$)/,lookbehind:!0,inside:{punctuation:/[!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~]+$/,important:/.+/}}],hr:{pattern:/((?:\r?\n|\r){2})([!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~])\2{3,}(?=(?:\r?\n|\r){2})/,lookbehind:!0,alias:"punctuation"},field:{pattern:/(^[\t ]*):[^:\r\n]+:(?= )/m,lookbehind:!0,alias:"attr-name"},"command-line-option":{pattern:/(^[\t ]*)(?:[+-][a-z\d]|(?:--|\/)[a-z\d-]+)(?:[ =](?:[a-z][\w-]*|<[^<>]+>))?(?:, (?:[+-][a-z\d]|(?:--|\/)[a-z\d-]+)(?:[ =](?:[a-z][\w-]*|<[^<>]+>))?)*(?=(?:\r?\n|\r)? {2,}\S)/im,lookbehind:!0,alias:"symbol"},"literal-block":{pattern:/::(?:\r?\n|\r){2}([ \t]+)(?![ \t]).+(?:(?:\r?\n|\r)\1.+)*/,inside:{"literal-block-punctuation":{pattern:/^::/,alias:"punctuation"}}},"quoted-literal-block":{pattern:/::(?:\r?\n|\r){2}([!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~]).*(?:(?:\r?\n|\r)\1.*)*/,inside:{"literal-block-punctuation":{pattern:/^(?:::|([!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~])\1*)/m,alias:"punctuation"}}},"list-bullet":{pattern:/(^[\t ]*)(?:[*+\-•‣⁃]|\(?(?:\d+|[a-z]|[ivxdclm]+)\)|(?:\d+|[a-z]|[ivxdclm]+)\.)(?= )/im,lookbehind:!0,alias:"punctuation"},"doctest-block":{pattern:/(^[\t ]*)>>> .+(?:(?:\r?\n|\r).+)*/m,lookbehind:!0,inside:{punctuation:/^>>>/}},inline:[{pattern:/(^|[\s\-:\/'"<(\[{])(?::[^:]+:`.*?`|`.*?`:[^:]+:|(\*\*?|``?|\|)(?!\s)(?:(?!\2).)*\S\2(?=[\s\-.,:;!?\\\/'")\]}]|$))/m,lookbehind:!0,inside:{bold:{pattern:/(^\*\*).+(?=\*\*$)/,lookbehind:!0},italic:{pattern:/(^\*).+(?=\*$)/,lookbehind:!0},"inline-literal":{pattern:/(^``).+(?=``$)/,lookbehind:!0,alias:"symbol"},role:{pattern:/^:[^:]+:|:[^:]+:$/,alias:"function",inside:{punctuation:/^:|:$/}},"interpreted-text":{pattern:/(^`).+(?=`$)/,lookbehind:!0,alias:"attr-value"},substitution:{pattern:/(^\|).+(?=\|$)/,lookbehind:!0,alias:"attr-value"},punctuation:/\*\*?|``?|\|/}}],link:[{pattern:/\[[^\[\]]+\]_(?=[\s\-.,:;!?\\\/'")\]}]|$)/,alias:"string",inside:{punctuation:/^\[|\]_$/}},{pattern:/(?:\b[a-z\d]+(?:[_.:+][a-z\d]+)*_?_|`[^`]+`_?_|_`[^`]+`)(?=[\s\-.,:;!?\\\/'")\]}]|$)/i,alias:"string",inside:{punctuation:/^_?`|`$|`?_?_$/}}],punctuation:{pattern:/(^[\t ]*)(?:\|(?= |$)|(?:---?|—|\.\.|__)(?= )|\.\.$)/m,lookbehind:!0}}}e.exports=t,t.displayName="rest",t.aliases=[]},47496(e){"use strict";function t(e){e.languages.rip={comment:/#.*/,keyword:/(?:=>|->)|\b(?:class|if|else|switch|case|return|exit|try|catch|finally|raise)\b/,builtin:/@|\bSystem\b/,boolean:/\b(?:true|false)\b/,date:/\b\d{4}-\d{2}-\d{2}\b/,time:/\b\d{2}:\d{2}:\d{2}\b/,datetime:/\b\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\b/,character:/\B`[^\s`'",.:;#\/\\()<>\[\]{}]\b/,regex:{pattern:/(^|[^/])\/(?!\/)(?:\[[^\n\r\]]*\]|\\.|[^/\\\r\n\[])+\/(?=\s*(?:$|[\r\n,.;})]))/,lookbehind:!0,greedy:!0},symbol:/:[^\d\s`'",.:;#\/\\()<>\[\]{}][^\s`'",.:;#\/\\()<>\[\]{}]*/,string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},number:/[+-]?\b(?:\d+\.\d+|\d+)\b/,punctuation:/(?:\.{2,3})|[`,.:;=\/\\()<>\[\]{}]/,reference:/[^\d\s`'",.:;#\/\\()<>\[\]{}][^\s`'",.:;#\/\\()<>\[\]{}]*/}}e.exports=t,t.displayName="rip",t.aliases=[]},30527(e){"use strict";function t(e){e.languages.roboconf={comment:/#.*/,keyword:{pattern:/(^|\s)(?:(?:facet|instance of)(?=[ \t]+[\w-]+[ \t]*\{)|(?:external|import)\b)/,lookbehind:!0},component:{pattern:/[\w-]+(?=[ \t]*\{)/,alias:"variable"},property:/[\w.-]+(?=[ \t]*:)/,value:{pattern:/(=[ \t]*(?![ \t]))[^,;]+/,lookbehind:!0,alias:"attr-value"},optional:{pattern:/\(optional\)/,alias:"builtin"},wildcard:{pattern:/(\.)\*/,lookbehind:!0,alias:"operator"},punctuation:/[{},.;:=]/}}e.exports=t,t.displayName="roboconf",t.aliases=[]},5261(e){"use strict";function t(e){!function(e){var t={pattern:/(^[ \t]*| {2}|\t)#.*/m,lookbehind:!0,greedy:!0},n={pattern:/((?:^|[^\\])(?:\\{2})*)[$@&%]\{(?:[^{}\r\n]|\{[^{}\r\n]*\})*\}/,lookbehind:!0,inside:{punctuation:/^[$@&%]\{|\}$/}};function r(e,r){var i={};for(var a in i["section-header"]={pattern:/^ ?\*{3}.+?\*{3}/,alias:"keyword"},r)i[a]=r[a];return i.tag={pattern:/([\r\n](?: {2}|\t)[ \t]*)\[[-\w]+\]/,lookbehind:!0,inside:{punctuation:/\[|\]/}},i.variable=n,i.comment=t,{pattern:RegExp(/^ ?\*{3}[ \t]*[ \t]*\*{3}(?:.|[\r\n](?!\*{3}))*/.source.replace(//g,function(){return e}),"im"),alias:"section",inside:i}}var i={pattern:/(\[Documentation\](?: {2}|\t)[ \t]*)(?![ \t]|#)(?:.|(?:\r\n?|\n)[ \t]*\.{3})+/,lookbehind:!0,alias:"string"},a={pattern:/([\r\n] ?)(?!#)(?:\S(?:[ \t]\S)*)+/,lookbehind:!0,alias:"function",inside:{variable:n}},o={pattern:/([\r\n](?: {2}|\t)[ \t]*)(?!\[|\.{3}|#)(?:\S(?:[ \t]\S)*)+/,lookbehind:!0,inside:{variable:n}};e.languages.robotframework={settings:r("Settings",{documentation:{pattern:/([\r\n] ?Documentation(?: {2}|\t)[ \t]*)(?![ \t]|#)(?:.|(?:\r\n?|\n)[ \t]*\.{3})+/,lookbehind:!0,alias:"string"},property:{pattern:/([\r\n] ?)(?!\.{3}|#)(?:\S(?:[ \t]\S)*)+/,lookbehind:!0}}),variables:r("Variables"),"test-cases":r("Test Cases",{"test-name":a,documentation:i,property:o}),keywords:r("Keywords",{"keyword-name":a,documentation:i,property:o}),tasks:r("Tasks",{"task-name":a,documentation:i,property:o}),comment:t},e.languages.robot=e.languages.robotframework}(e)}e.exports=t,t.displayName="robotframework",t.aliases=[]},56939(e){"use strict";function t(e){var t,n;(t=e).languages.ruby=t.languages.extend("clike",{comment:[/#.*/,{pattern:/^=begin\s[\s\S]*?^=end/m,greedy:!0}],"class-name":{pattern:/(\b(?:class)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:alias|and|BEGIN|begin|break|case|class|def|define_method|defined|do|each|else|elsif|END|end|ensure|extend|for|if|in|include|module|new|next|nil|not|or|prepend|protected|private|public|raise|redo|require|rescue|retry|return|self|super|then|throw|undef|unless|until|when|while|yield)\b/}),n={pattern:/#\{[^}]+\}/,inside:{delimiter:{pattern:/^#\{|\}$/,alias:"tag"},rest:t.languages.ruby}},delete t.languages.ruby.function,t.languages.insertBefore("ruby","keyword",{regex:[{pattern:RegExp(/%r/.source+"(?:"+[/([^a-zA-Z0-9\s{(\[<])(?:(?!\1)[^\\]|\\[\s\S])*\1/.source,/\((?:[^()\\]|\\[\s\S])*\)/.source,/\{(?:[^#{}\\]|#(?:\{[^}]+\})?|\\[\s\S])*\}/.source,/\[(?:[^\[\]\\]|\\[\s\S])*\]/.source,/<(?:[^<>\\]|\\[\s\S])*>/.source].join("|")+")"+/[egimnosux]{0,6}/.source),greedy:!0,inside:{interpolation:n}},{pattern:/(^|[^/])\/(?!\/)(?:\[[^\r\n\]]+\]|\\.|[^[/\\\r\n])+\/[egimnosux]{0,6}(?=\s*(?:$|[\r\n,.;})#]))/,lookbehind:!0,greedy:!0,inside:{interpolation:n}}],variable:/[@$]+[a-zA-Z_]\w*(?:[?!]|\b)/,symbol:{pattern:/(^|[^:]):[a-zA-Z_]\w*(?:[?!]|\b)/,lookbehind:!0},"method-definition":{pattern:/(\bdef\s+)[\w.]+/,lookbehind:!0,inside:{function:/\w+$/,rest:t.languages.ruby}}}),t.languages.insertBefore("ruby","number",{builtin:/\b(?:Array|Bignum|Binding|Class|Continuation|Dir|Exception|FalseClass|File|Stat|Fixnum|Float|Hash|Integer|IO|MatchData|Method|Module|NilClass|Numeric|Object|Proc|Range|Regexp|String|Struct|TMS|Symbol|ThreadGroup|Thread|Time|TrueClass)\b/,constant:/\b[A-Z]\w*(?:[?!]|\b)/}),t.languages.ruby.string=[{pattern:RegExp(/%[qQiIwWxs]?/.source+"(?:"+[/([^a-zA-Z0-9\s{(\[<])(?:(?!\1)[^\\]|\\[\s\S])*\1/.source,/\((?:[^()\\]|\\[\s\S])*\)/.source,/\{(?:[^#{}\\]|#(?:\{[^}]+\})?|\\[\s\S])*\}/.source,/\[(?:[^\[\]\\]|\\[\s\S])*\]/.source,/<(?:[^<>\\]|\\[\s\S])*>/.source].join("|")+")"),greedy:!0,inside:{interpolation:n}},{pattern:/("|')(?:#\{[^}]+\}|#(?!\{)|\\(?:\r\n|[\s\S])|(?!\1)[^\\#\r\n])*\1/,greedy:!0,inside:{interpolation:n}},{pattern:/<<[-~]?([a-z_]\w*)[\r\n](?:.*[\r\n])*?[\t ]*\1/i,alias:"heredoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<[-~]?[a-z_]\w*|[a-z_]\w*$/i,alias:"symbol",inside:{punctuation:/^<<[-~]?/}},interpolation:n}},{pattern:/<<[-~]?'([a-z_]\w*)'[\r\n](?:.*[\r\n])*?[\t ]*\1/i,alias:"heredoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<[-~]?'[a-z_]\w*'|[a-z_]\w*$/i,alias:"symbol",inside:{punctuation:/^<<[-~]?'|'$/}}}}],t.languages.rb=t.languages.ruby}e.exports=t,t.displayName="ruby",t.aliases=["rb"]},83648(e){"use strict";function t(e){!function(e){for(var t=/\/\*(?:[^*/]|\*(?!\/)|\/(?!\*)|)*\*\//.source,n=0;n<2;n++)t=t.replace(//g,function(){return t});t=t.replace(//g,function(){return/[^\s\S]/.source}),e.languages.rust={comment:[{pattern:RegExp(/(^|[^\\])/.source+t),lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/b?"(?:\\[\s\S]|[^\\"])*"|b?r(#*)"(?:[^"]|"(?!\1))*"\1/,greedy:!0},char:{pattern:/b?'(?:\\(?:x[0-7][\da-fA-F]|u\{(?:[\da-fA-F]_*){1,6}\}|.)|[^\\\r\n\t'])'/,greedy:!0,alias:"string"},attribute:{pattern:/#!?\[(?:[^\[\]"]|"(?:\\[\s\S]|[^\\"])*")*\]/,greedy:!0,alias:"attr-name",inside:{string:null}},"closure-params":{pattern:/([=(,:]\s*|\bmove\s*)\|[^|]*\||\|[^|]*\|(?=\s*(?:\{|->))/,lookbehind:!0,greedy:!0,inside:{"closure-punctuation":{pattern:/^\||\|$/,alias:"punctuation"},rest:null}},"lifetime-annotation":{pattern:/'\w+/,alias:"symbol"},"fragment-specifier":{pattern:/(\$\w+:)[a-z]+/,lookbehind:!0,alias:"punctuation"},variable:/\$\w+/,"function-definition":{pattern:/(\bfn\s+)\w+/,lookbehind:!0,alias:"function"},"type-definition":{pattern:/(\b(?:enum|struct|union)\s+)\w+/,lookbehind:!0,alias:"class-name"},"module-declaration":[{pattern:/(\b(?:crate|mod)\s+)[a-z][a-z_\d]*/,lookbehind:!0,alias:"namespace"},{pattern:/(\b(?:crate|self|super)\s*)::\s*[a-z][a-z_\d]*\b(?:\s*::(?:\s*[a-z][a-z_\d]*\s*::)*)?/,lookbehind:!0,alias:"namespace",inside:{punctuation:/::/}}],keyword:[/\b(?:abstract|as|async|await|become|box|break|const|continue|crate|do|dyn|else|enum|extern|final|fn|for|if|impl|in|let|loop|macro|match|mod|move|mut|override|priv|pub|ref|return|self|Self|static|struct|super|trait|try|type|typeof|union|unsafe|unsized|use|virtual|where|while|yield)\b/,/\b(?:[ui](?:8|16|32|64|128|size)|f(?:32|64)|bool|char|str)\b/],function:/\b[a-z_]\w*(?=\s*(?:::\s*<|\())/,macro:{pattern:/\b\w+!/,alias:"property"},constant:/\b[A-Z_][A-Z_\d]+\b/,"class-name":/\b[A-Z]\w*\b/,namespace:{pattern:/(?:\b[a-z][a-z_\d]*\s*::\s*)*\b[a-z][a-z_\d]*\s*::(?!\s*<)/,inside:{punctuation:/::/}},number:/\b(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0o[0-7](?:_?[0-7])*|0b[01](?:_?[01])*|(?:(?:\d(?:_?\d)*)?\.)?\d(?:_?\d)*(?:[Ee][+-]?\d+)?)(?:_?(?:[iu](?:8|16|32|64|size)?|f32|f64))?\b/,boolean:/\b(?:false|true)\b/,punctuation:/->|\.\.=|\.{1,3}|::|[{}[\];(),:]/,operator:/[-+*\/%!^]=?|=[=>]?|&[&=]?|\|[|=]?|<>?=?|[@?]/},e.languages.rust["closure-params"].inside.rest=e.languages.rust,e.languages.rust.attribute.inside.string=e.languages.rust.string}(e)}e.exports=t,t.displayName="rust",t.aliases=[]},16009(e){"use strict";function t(e){var t,n,r,i,a,o,s,u,c,l,f,d,h,p,b,m,g,v,y;t=e,n=/(?:"(?:""|[^"])*"(?!")|'(?:''|[^'])*'(?!'))/.source,r=/\b(?:\d[\da-f]*x|\d+(?:\.\d+)?(?:e[+-]?\d+)?)\b/i,i={pattern:RegExp(n+"[bx]"),alias:"number"},a={pattern:/&[a-z_]\w*/i},o={pattern:/((?:^|\s|=|\())%(?:ABORT|BY|CMS|COPY|DISPLAY|DO|ELSE|END|EVAL|GLOBAL|GO|GOTO|IF|INC|INCLUDE|INDEX|INPUT|KTRIM|LENGTH|LET|LIST|LOCAL|PUT|QKTRIM|QSCAN|QSUBSTR|QSYSFUNC|QUPCASE|RETURN|RUN|SCAN|SUBSTR|SUPERQ|SYMDEL|SYMGLOBL|SYMLOCAL|SYMEXIST|SYSCALL|SYSEVALF|SYSEXEC|SYSFUNC|SYSGET|SYSRPUT|THEN|TO|TSO|UNQUOTE|UNTIL|UPCASE|WHILE|WINDOW)\b/i,lookbehind:!0,alias:"keyword"},s={pattern:/(^|\s)(?:proc\s+\w+|quit|run|data(?!=))\b/i,alias:"keyword",lookbehind:!0},u=[/\/\*[\s\S]*?\*\//,{pattern:/(^[ \t]*|;\s*)\*[^;]*;/m,lookbehind:!0}],c={pattern:RegExp(n),greedy:!0},d={function:f={pattern:/%?\b\w+(?=\()/,alias:"keyword"},"arg-value":{pattern:/(=\s*)[A-Z\.]+/i,lookbehind:!0},operator:/=/,"macro-variable":a,arg:{pattern:/[A-Z]+/i,alias:"keyword"},number:r,"numeric-constant":i,punctuation:l=/[$%@.(){}\[\];,\\]/,string:c},h={pattern:/\b(?:format|put)\b=?[\w'$.]+/im,inside:{keyword:/^(?:format|put)(?==)/i,equals:/=/,format:{pattern:/(?:\w|\$\d)+\.\d?/i,alias:"number"}}},p={pattern:/\b(?:format|put)\s+[\w']+(?:\s+[$.\w]+)+(?=;)/i,inside:{keyword:/^(?:format|put)/i,format:{pattern:/[\w$]+\.\d?/,alias:"number"}}},b={pattern:/((?:^|\s)=?)(?:catname|checkpoint execute_always|dm|endsas|filename|footnote|%include|libname|%list|lock|missing|options|page|resetline|%run|sasfile|skip|sysecho|title\d?)\b/i,lookbehind:!0,alias:"keyword"},m={pattern:/(^|\s)(?:submit(?:\s+(?:load|parseonly|norun))?|endsubmit)\b/i,lookbehind:!0,alias:"keyword"},g=/accessControl|cdm|aggregation|aStore|ruleMining|audio|autotune|bayesianNetClassifier|bioMedImage|boolRule|builtins|cardinality|sccasl|clustering|copula|countreg|dataDiscovery|dataPreprocess|dataSciencePilot|dataStep|decisionTree|deepLearn|deepNeural|varReduce|simSystem|ds2|deduplication|ecm|entityRes|espCluster|explainModel|factmac|fastKnn|fcmpact|fedSql|freqTab|gam|gleam|graphSemiSupLearn|gVarCluster|hiddenMarkovModel|hyperGroup|image|iml|ica|kernalPca|langModel|ldaTopic|sparseML|mlTools|mixed|modelPublishing|mbc|network|optNetwork|neuralNet|nonlinear|nmf|nonParametricBayes|optimization|panel|pls|percentile|pca|phreg|qkb|qlim|quantreg|recommend|tsReconcile|deepRnn|regression|reinforcementLearn|robustPca|sampling|sparkEmbeddedProcess|search(?:Analytics)?|sentimentAnalysis|sequence|configuration|session(?:Prop)?|severity|simple|smartData|sandwich|spatialreg|stabilityMonitoring|spc|loadStreams|svDataDescription|svm|table|conditionalRandomFields|text(?:Rule(?:Develop|Score)|Mining|Parse|Topic|Util|Filters|Frequency)|tsInfo|timeData|transpose|uniTimeSeries/.source,v={pattern:RegExp(/(^|\s)(?:action\s+)?(?:)\.[a-z]+\b[^;]+/.source.replace(//g,function(){return g}),"i"),lookbehind:!0,inside:{keyword:RegExp(/(?:)\.[a-z]+\b/.source.replace(//g,function(){return g}),"i"),action:{pattern:/(?:action)/i,alias:"keyword"},comment:u,function:f,"arg-value":d["arg-value"],operator:d.operator,argument:d.arg,number:r,"numeric-constant":i,punctuation:l,string:c}},y={pattern:/((?:^|\s)=?)(?:after|analysis|and|array|barchart|barwidth|begingraph|by|call|cas|cbarline|cfill|class(?:lev)?|close|column|computed?|contains|continue|data(?==)|define|delete|describe|document|do\s+over|do|dol|drop|dul|end(?:source|comp)?|entryTitle|else|eval(?:uate)?|exec(?:ute)?|exit|fill(?:attrs)?|file(?:name)?|flist|fnc|function(?:list)?|goto|global|group(?:by)?|headline|headskip|histogram|if|infile|keep|keylabel|keyword|label|layout|leave|legendlabel|length|libname|loadactionset|merge|midpoints|name|noobs|nowd|_?null_|ods|options|or|otherwise|out(?:put)?|over(?:lay)?|plot|put|print|raise|ranexp|rannor|rbreak|retain|return|select|set|session|sessref|source|statgraph|sum|summarize|table|temp|terminate|then\s+do|then|title\d?|to|var|when|where|xaxisopts|yaxisopts|y2axisopts)\b/i,lookbehind:!0},t.languages.sas={datalines:{pattern:/^([ \t]*)(?:(?:data)?lines|cards);[\s\S]+?^[ \t]*;/im,lookbehind:!0,alias:"string",inside:{keyword:{pattern:/^(?:(?:data)?lines|cards)/i},punctuation:/;/}},"proc-sql":{pattern:/(^proc\s+(?:fed)?sql(?:\s+[\w|=]+)?;)[\s\S]+?(?=^(?:proc\s+\w+|quit|run|data);|(?![\s\S]))/im,lookbehind:!0,inside:{sql:{pattern:RegExp(/^[ \t]*(?:select|alter\s+table|(?:create|describe|drop)\s+(?:index|table(?:\s+constraints)?|view)|create\s+unique\s+index|insert\s+into|update)(?:|[^;"'])+;/.source.replace(//g,function(){return n}),"im"),alias:"language-sql",inside:t.languages.sql},"global-statements":b,"sql-statements":{pattern:/(^|\s)(?:disconnect\s+from|exec(?:ute)?|begin|commit|rollback|reset|validate)\b/i,lookbehind:!0,alias:"keyword"},number:r,"numeric-constant":i,punctuation:l,string:c}},"proc-groovy":{pattern:/(^proc\s+groovy(?:\s+[\w|=]+)?;)[\s\S]+?(?=^(?:proc\s+\w+|quit|run|data);|(?![\s\S]))/im,lookbehind:!0,inside:{comment:u,groovy:{pattern:RegExp(/(^[ \t]*submit(?:\s+(?:load|parseonly|norun))?)(?:|[^"'])+?(?=endsubmit;)/.source.replace(//g,function(){return n}),"im"),lookbehind:!0,alias:"language-groovy",inside:t.languages.groovy},keyword:y,"submit-statement":m,"global-statements":b,number:r,"numeric-constant":i,punctuation:l,string:c}},"proc-lua":{pattern:/(^proc\s+lua(?:\s+[\w|=]+)?;)[\s\S]+?(?=^(?:proc\s+\w+|quit|run|data);|(?![\s\S]))/im,lookbehind:!0,inside:{comment:u,lua:{pattern:RegExp(/(^[ \t]*submit(?:\s+(?:load|parseonly|norun))?)(?:|[^"'])+?(?=endsubmit;)/.source.replace(//g,function(){return n}),"im"),lookbehind:!0,alias:"language-lua",inside:t.languages.lua},keyword:y,"submit-statement":m,"global-statements":b,number:r,"numeric-constant":i,punctuation:l,string:c}},"proc-cas":{pattern:/(^proc\s+cas(?:\s+[\w|=]+)?;)[\s\S]+?(?=^(?:proc\s+\w+|quit|data);|(?![\s\S]))/im,lookbehind:!0,inside:{comment:u,"statement-var":{pattern:/((?:^|\s)=?)saveresult\s[^;]+/im,lookbehind:!0,inside:{statement:{pattern:/^saveresult\s+\S+/i,inside:{keyword:/^(?:saveresult)/i}},rest:d}},"cas-actions":v,statement:{pattern:/((?:^|\s)=?)(?:default|(?:un)?set|on|output|upload)[^;]+/im,lookbehind:!0,inside:d},step:s,keyword:y,function:f,format:h,altformat:p,"global-statements":b,number:r,"numeric-constant":i,punctuation:l,string:c}},"proc-args":{pattern:RegExp(/(^proc\s+\w+\s+)(?!\s)(?:[^;"']|)+;/.source.replace(//g,function(){return n}),"im"),lookbehind:!0,inside:d},"macro-keyword":o,"macro-variable":a,"macro-string-functions":{pattern:/((?:^|\s|=))%(?:NRBQUOTE|NRQUOTE|NRSTR|BQUOTE|QUOTE|STR)\(.*?(?:[^%]\))/i,lookbehind:!0,inside:{function:{pattern:/%(?:NRBQUOTE|NRQUOTE|NRSTR|BQUOTE|QUOTE|STR)/i,alias:"keyword"},"macro-keyword":o,"macro-variable":a,"escaped-char":{pattern:/%['"()<>=¬^~;,#]/i},punctuation:l}},"macro-declaration":{pattern:/^%macro[^;]+(?=;)/im,inside:{keyword:/%macro/i}},"macro-end":{pattern:/^%mend[^;]+(?=;)/im,inside:{keyword:/%mend/i}},macro:{pattern:/%_\w+(?=\()/,alias:"keyword"},input:{pattern:/\binput\s[-\w\s/*.$&]+;/i,inside:{input:{alias:"keyword",pattern:/^input/i},comment:u,number:r,"numeric-constant":i}},"options-args":{pattern:/(^options)[-'"|/\\<>*+=:()\w\s]*(?=;)/im,lookbehind:!0,inside:d},"cas-actions":v,comment:u,function:f,format:h,altformat:p,"numeric-constant":i,datetime:{pattern:RegExp(n+"(?:dt?|t)"),alias:"number"},string:c,step:s,keyword:y,"operator-keyword":{pattern:/\b(?:eq|ne|gt|lt|ge|le|in|not)\b/i,alias:"operator"},number:r,operator:/\*\*?|\|\|?|!!?|¦¦?|<[>=]?|>[<=]?|[-+\/=&]|[~¬^]=?/i,punctuation:l}}e.exports=t,t.displayName="sas",t.aliases=[]},41720(e){"use strict";function t(e){var t,n,r;(t=e).languages.sass=t.languages.extend("css",{comment:{pattern:/^([ \t]*)\/[\/*].*(?:(?:\r?\n|\r)\1[ \t].+)*/m,lookbehind:!0}}),t.languages.insertBefore("sass","atrule",{"atrule-line":{pattern:/^(?:[ \t]*)[@+=].+/m,inside:{atrule:/(?:@[\w-]+|[+=])/m}}}),delete t.languages.sass.atrule,n=/\$[-\w]+|#\{\$[-\w]+\}/,r=[/[+*\/%]|[=!]=|<=?|>=?|\b(?:and|or|not)\b/,{pattern:/(\s)-(?=\s)/,lookbehind:!0}],t.languages.insertBefore("sass","property",{"variable-line":{pattern:/^[ \t]*\$.+/m,inside:{punctuation:/:/,variable:n,operator:r}},"property-line":{pattern:/^[ \t]*(?:[^:\s]+ *:.*|:[^:\s].*)/m,inside:{property:[/[^:\s]+(?=\s*:)/,{pattern:/(:)[^:\s]+/,lookbehind:!0}],punctuation:/:/,variable:n,operator:r,important:t.languages.sass.important}}}),delete t.languages.sass.property,delete t.languages.sass.important,t.languages.insertBefore("sass","punctuation",{selector:{pattern:/([ \t]*)\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*)*/,lookbehind:!0}})}e.exports=t,t.displayName="sass",t.aliases=[]},6054(e,t,n){"use strict";var r=n(15909);function i(e){e.register(r),e.languages.scala=e.languages.extend("java",{"triple-quoted-string":{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string"},string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},keyword:/<-|=>|\b(?:abstract|case|catch|class|def|do|else|extends|final|finally|for|forSome|if|implicit|import|lazy|match|new|null|object|override|package|private|protected|return|sealed|self|super|this|throw|trait|try|type|val|var|while|with|yield)\b/,number:/\b0x(?:[\da-f]*\.)?[\da-f]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e\d+)?[dfl]?/i,builtin:/\b(?:String|Int|Long|Short|Byte|Boolean|Double|Float|Char|Any|AnyRef|AnyVal|Unit|Nothing)\b/,symbol:/'[^\d\s\\]\w*/}),delete e.languages.scala["class-name"],delete e.languages.scala.function}e.exports=i,i.displayName="scala",i.aliases=[]},9997(e){"use strict";function t(e){!function(e){e.languages.scheme={comment:/;.*|#;\s*(?:\((?:[^()]|\([^()]*\))*\)|\[(?:[^\[\]]|\[[^\[\]]*\])*\])|#\|(?:[^#|]|#(?!\|)|\|(?!#)|#\|(?:[^#|]|#(?!\|)|\|(?!#))*\|#)*\|#/,string:{pattern:/"(?:[^"\\]|\\.)*"/,greedy:!0},symbol:{pattern:/'[^()\[\]#'\s]+/,greedy:!0},character:{pattern:/#\\(?:[ux][a-fA-F\d]+\b|[-a-zA-Z]+\b|[\uD800-\uDBFF][\uDC00-\uDFFF]|\S)/,greedy:!0,alias:"string"},"lambda-parameter":[{pattern:/((?:^|[^'`#])[(\[]lambda\s+)(?:[^|()\[\]'\s]+|\|(?:[^\\|]|\\.)*\|)/,lookbehind:!0},{pattern:/((?:^|[^'`#])[(\[]lambda\s+[(\[])[^()\[\]']+/,lookbehind:!0}],keyword:{pattern:/((?:^|[^'`#])[(\[])(?:begin|case(?:-lambda)?|cond(?:-expand)?|define(?:-library|-macro|-record-type|-syntax|-values)?|defmacro|delay(?:-force)?|do|else|export|except|guard|if|import|include(?:-ci|-library-declarations)?|lambda|let(?:rec)?(?:-syntax|-values|\*)?|let\*-values|only|parameterize|prefix|(?:quasi-?)?quote|rename|set!|syntax-(?:case|rules)|unless|unquote(?:-splicing)?|when)(?=[()\[\]\s]|$)/,lookbehind:!0},builtin:{pattern:/((?:^|[^'`#])[(\[])(?:abs|and|append|apply|assoc|ass[qv]|binary-port\?|boolean=?\?|bytevector(?:-append|-copy|-copy!|-length|-u8-ref|-u8-set!|\?)?|caar|cadr|call-with-(?:current-continuation|port|values)|call\/cc|car|cdar|cddr|cdr|ceiling|char(?:->integer|-ready\?|\?|<\?|<=\?|=\?|>\?|>=\?)|close-(?:input-port|output-port|port)|complex\?|cons|current-(?:error|input|output)-port|denominator|dynamic-wind|eof-object\??|eq\?|equal\?|eqv\?|error|error-object(?:-irritants|-message|\?)|eval|even\?|exact(?:-integer-sqrt|-integer\?|\?)?|expt|features|file-error\?|floor(?:-quotient|-remainder|\/)?|flush-output-port|for-each|gcd|get-output-(?:bytevector|string)|inexact\??|input-port(?:-open\?|\?)|integer(?:->char|\?)|lcm|length|list(?:->string|->vector|-copy|-ref|-set!|-tail|\?)?|make-(?:bytevector|list|parameter|string|vector)|map|max|member|memq|memv|min|modulo|negative\?|newline|not|null\?|number(?:->string|\?)|numerator|odd\?|open-(?:input|output)-(?:bytevector|string)|or|output-port(?:-open\?|\?)|pair\?|peek-char|peek-u8|port\?|positive\?|procedure\?|quotient|raise|raise-continuable|rational\?|rationalize|read-(?:bytevector|bytevector!|char|error\?|line|string|u8)|real\?|remainder|reverse|round|set-c[ad]r!|square|string(?:->list|->number|->symbol|->utf8|->vector|-append|-copy|-copy!|-fill!|-for-each|-length|-map|-ref|-set!|\?|<\?|<=\?|=\?|>\?|>=\?)?|substring|symbol(?:->string|\?|=\?)|syntax-error|textual-port\?|truncate(?:-quotient|-remainder|\/)?|u8-ready\?|utf8->string|values|vector(?:->list|->string|-append|-copy|-copy!|-fill!|-for-each|-length|-map|-ref|-set!|\?)?|with-exception-handler|write-(?:bytevector|char|string|u8)|zero\?)(?=[()\[\]\s]|$)/,lookbehind:!0},operator:{pattern:/((?:^|[^'`#])[(\[])(?:[-+*%/]|[<>]=?|=>?)(?=[()\[\]\s]|$)/,lookbehind:!0},number:{pattern:RegExp(t({"":/\d+(?:\/\d+)|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?/.source,"":/[+-]?|[+-](?:inf|nan)\.0/.source,"":/[+-](?:|(?:inf|nan)\.0)?i/.source,"":/(?:@|)?|/.source,"":/(?:#d(?:#[ei])?|#[ei](?:#d)?)?/.source,"":/[0-9a-f]+(?:\/[0-9a-f]+)?/.source,"":/[+-]?|[+-](?:inf|nan)\.0/.source,"":/[+-](?:|(?:inf|nan)\.0)?i/.source,"":/(?:@|)?|/.source,"":/#[box](?:#[ei])?|(?:#[ei])?#[box]/.source,"":/(^|[()\[\]\s])(?:|)(?=[()\[\]\s]|$)/.source}),"i"),lookbehind:!0},boolean:{pattern:/(^|[()\[\]\s])#(?:[ft]|false|true)(?=[()\[\]\s]|$)/,lookbehind:!0},function:{pattern:/((?:^|[^'`#])[(\[])(?:[^|()\[\]'\s]+|\|(?:[^\\|]|\\.)*\|)(?=[()\[\]\s]|$)/,lookbehind:!0},identifier:{pattern:/(^|[()\[\]\s])\|(?:[^\\|]|\\.)*\|(?=[()\[\]\s]|$)/,lookbehind:!0,greedy:!0},punctuation:/[()\[\]']/};function t(e){for(var t in e)e[t]=e[t].replace(/<[\w\s]+>/g,function(t){return"(?:"+e[t].trim()+")"});return e[t]}}(e)}e.exports=t,t.displayName="scheme",t.aliases=[]},24296(e){"use strict";function t(e){e.languages.scss=e.languages.extend("css",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},atrule:{pattern:/@[\w-](?:\([^()]+\)|[^()\s]|\s+(?!\s))*?(?=\s+[{;])/,inside:{rule:/@[\w-]+/}},url:/(?:[-a-z]+-)?url(?=\()/i,selector:{pattern:/(?=\S)[^@;{}()]?(?:[^@;{}()\s]|\s+(?!\s)|#\{\$[-\w]+\})+(?=\s*\{(?:\}|\s|[^}][^:{}]*[:{][^}]))/m,inside:{parent:{pattern:/&/,alias:"important"},placeholder:/%[-\w]+/,variable:/\$[-\w]+|#\{\$[-\w]+\}/}},property:{pattern:/(?:[-\w]|\$[-\w]|#\{\$[-\w]+\})+(?=\s*:)/,inside:{variable:/\$[-\w]+|#\{\$[-\w]+\}/}}}),e.languages.insertBefore("scss","atrule",{keyword:[/@(?:if|else(?: if)?|forward|for|each|while|import|use|extend|debug|warn|mixin|include|function|return|content)\b/i,{pattern:/( )(?:from|through)(?= )/,lookbehind:!0}]}),e.languages.insertBefore("scss","important",{variable:/\$[-\w]+|#\{\$[-\w]+\}/}),e.languages.insertBefore("scss","function",{"module-modifier":{pattern:/\b(?:as|with|show|hide)\b/i,alias:"keyword"},placeholder:{pattern:/%[-\w]+/,alias:"selector"},statement:{pattern:/\B!(?:default|optional)\b/i,alias:"keyword"},boolean:/\b(?:true|false)\b/,null:{pattern:/\bnull\b/,alias:"keyword"},operator:{pattern:/(\s)(?:[-+*\/%]|[=!]=|<=?|>=?|and|or|not)(?=\s)/,lookbehind:!0}}),e.languages.scss.atrule.inside.rest=e.languages.scss}e.exports=t,t.displayName="scss",t.aliases=[]},49246(e,t,n){"use strict";var r=n(6979);function i(e){var t,n;e.register(r),n=[/"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/.source,/'[^']*'/.source,/\$'(?:[^'\\]|\\[\s\S])*'/.source,/<<-?\s*(["']?)(\w+)\1\s[\s\S]*?[\r\n]\2/.source].join("|"),(t=e).languages["shell-session"]={command:{pattern:RegExp(/^(?:[^\s@:$#*!/\\]+@[^\r\n@:$#*!/\\]+(?::[^\0-\x1F$#*?"<>:;|]+)?|[^\0-\x1F$#*?"<>@:;|]+)?/.source+/[$#]/.source+/(?:[^\\\r\n'"<$]|\\(?:[^\r]|\r\n?)|\$(?!')|<>)+/.source.replace(/<>/g,function(){return n}),"m"),greedy:!0,inside:{info:{pattern:/^[^#$]+/,alias:"punctuation",inside:{user:/^[^\s@:$#*!/\\]+@[^\r\n@:$#*!/\\]+/,punctuation:/:/,path:/[\s\S]+/}},bash:{pattern:/(^[$#]\s*)\S[\s\S]*/,lookbehind:!0,alias:"language-bash",inside:t.languages.bash},"shell-symbol":{pattern:/^[$#]/,alias:"important"}}},output:/.(?:.*(?:[\r\n]|.$))*/},t.languages["sh-session"]=t.languages.shellsession=t.languages["shell-session"]}e.exports=i,i.displayName="shellSession",i.aliases=[]},18890(e){"use strict";function t(e){e.languages.smali={comment:/#.*/,string:{pattern:/"(?:[^\r\n\\"]|\\.)*"|'(?:[^\r\n\\']|\\(?:.|u[\da-fA-F]{4}))'/,greedy:!0},"class-name":{pattern:/(^|[^L])L(?:(?:\w+|`[^`\r\n]*`)\/)*(?:[\w$]+|`[^`\r\n]*`)(?=\s*;)/,lookbehind:!0,inside:{"class-name":{pattern:/(^L|\/)(?:[\w$]+|`[^`\r\n]*`)$/,lookbehind:!0},namespace:{pattern:/^(L)(?:(?:\w+|`[^`\r\n]*`)\/)+/,lookbehind:!0,inside:{punctuation:/\//}},builtin:/^L/}},builtin:[{pattern:/([();\[])[BCDFIJSVZ]+/,lookbehind:!0},{pattern:/([\w$>]:)[BCDFIJSVZ]/,lookbehind:!0}],keyword:[{pattern:/(\.end\s+)[\w-]+/,lookbehind:!0},{pattern:/(^|[^\w.-])\.(?!\d)[\w-]+/,lookbehind:!0},{pattern:/(^|[^\w.-])(?:abstract|annotation|bridge|constructor|enum|final|interface|private|protected|public|runtime|static|synthetic|system|transient)(?![\w.-])/,lookbehind:!0}],function:{pattern:/(^|[^\w.-])(?:\w+|<[\w$-]+>)(?=\()/,lookbehind:!0},field:{pattern:/[\w$]+(?=:)/,alias:"variable"},register:{pattern:/(^|[^\w.-])[vp]\d(?![\w.-])/,lookbehind:!0,alias:"variable"},boolean:{pattern:/(^|[^\w.-])(?:true|false)(?![\w.-])/,lookbehind:!0},number:{pattern:/(^|[^/\w.-])-?(?:NAN|INFINITY|0x(?:[\dA-F]+(?:\.[\dA-F]*)?|\.[\dA-F]+)(?:p[+-]?[\dA-F]+)?|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?)[dflst]?(?![\w.-])/i,lookbehind:!0},label:{pattern:/(:)\w+/,lookbehind:!0,alias:"property"},operator:/->|\.\.|[\[=]/,punctuation:/[{}(),;:]/}}e.exports=t,t.displayName="smali",t.aliases=[]},11037(e){"use strict";function t(e){e.languages.smalltalk={comment:/"(?:""|[^"])*"/,character:{pattern:/\$./,alias:"string"},string:/'(?:''|[^'])*'/,symbol:/#[\da-z]+|#(?:-|([+\/\\*~<>=@%|&?!])\1?)|#(?=\()/i,"block-arguments":{pattern:/(\[\s*):[^\[|]*\|/,lookbehind:!0,inside:{variable:/:[\da-z]+/i,punctuation:/\|/}},"temporary-variables":{pattern:/\|[^|]+\|/,inside:{variable:/[\da-z]+/i,punctuation:/\|/}},keyword:/\b(?:nil|true|false|self|super|new)\b/,number:[/\d+r-?[\dA-Z]+(?:\.[\dA-Z]+)?(?:e-?\d+)?/,/\b\d+(?:\.\d+)?(?:e-?\d+)?/],operator:/[<=]=?|:=|~[~=]|\/\/?|\\\\|>[>=]?|[!^+\-*&|,@]/,punctuation:/[.;:?\[\](){}]/}}e.exports=t,t.displayName="smalltalk",t.aliases=[]},64020(e,t,n){"use strict";var r=n(93205);function i(e){var t;e.register(r),(t=e).languages.smarty={comment:/\{\*[\s\S]*?\*\}/,delimiter:{pattern:/^\{|\}$/i,alias:"punctuation"},string:/(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,number:/\b0x[\dA-Fa-f]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][-+]?\d+)?/,variable:[/\$(?!\d)\w+/,/#(?!\d)\w+#/,{pattern:/(\.|->)(?!\d)\w+/,lookbehind:!0},{pattern:/(\[)(?!\d)\w+(?=\])/,lookbehind:!0}],function:[{pattern:/(\|\s*)@?(?!\d)\w+/,lookbehind:!0},/^\/?(?!\d)\w+/,/(?!\d)\w+(?=\()/],"attr-name":{pattern:/\w+\s*=\s*(?:(?!\d)\w+)?/,inside:{variable:{pattern:/(=\s*)(?!\d)\w+/,lookbehind:!0},operator:/=/}},punctuation:[/[\[\]().,:`]|->/],operator:[/[+\-*\/%]|==?=?|[!<>]=?|&&|\|\|?/,/\bis\s+(?:not\s+)?(?:div|even|odd)(?:\s+by)?\b/,/\b(?:eq|neq?|gt|lt|gt?e|lt?e|not|mod|or|and)\b/],keyword:/\b(?:false|off|on|no|true|yes)\b/},t.hooks.add("before-tokenize",function(e){var n=/\{\*[\s\S]*?\*\}|\{[\s\S]+?\}/g,r="{literal}",i="{/literal}",a=!1;t.languages["markup-templating"].buildPlaceholders(e,"smarty",n,function(e){return e===i&&(a=!1),!a&&(e===r&&(a=!0),!0)})}),t.hooks.add("after-tokenize",function(e){t.languages["markup-templating"].tokenizePlaceholders(e,"smarty")})}e.exports=i,i.displayName="smarty",i.aliases=[]},49760(e){"use strict";function t(e){var t,n;n=/\b(?:abstype|and|andalso|as|case|datatype|do|else|end|eqtype|exception|fn|fun|functor|handle|if|in|include|infix|infixr|let|local|nonfix|of|op|open|orelse|raise|rec|sharing|sig|signature|struct|structure|then|type|val|where|while|with|withtype)\b/i,(t=e).languages.sml={comment:/\(\*(?:[^*(]|\*(?!\))|\((?!\*)|\(\*(?:[^*(]|\*(?!\))|\((?!\*))*\*\))*\*\)/,string:{pattern:/#?"(?:[^"\\]|\\.)*"/,greedy:!0},"class-name":[{pattern:RegExp(/((?:^|[^:]):\s*)(?:\s*(?:(?:\*|->)\s*|,\s*(?:(?=)|(?!)\s+)))*/.source.replace(//g,function(){return/\s*(?:[*,]|->)/.source}).replace(//g,function(){return/(?:'[\w']*||\((?:[^()]|\([^()]*\))*\)|\{(?:[^{}]|\{[^{}]*\})*\})(?:\s+)*/.source}).replace(//g,function(){return/(?!)[a-z\d_][\w'.]*/.source}).replace(//g,function(){return n.source}),"i"),lookbehind:!0,greedy:!0,inside:null},{pattern:/((?:^|[^\w'])(?:datatype|exception|functor|signature|structure|type)\s+)[a-z_][\w'.]*/i,lookbehind:!0}],function:{pattern:/((?:^|[^\w'])fun\s+)[a-z_][\w'.]*/i,lookbehind:!0},keyword:n,variable:{pattern:/(^|[^\w'])'[\w']*/,lookbehind:!0},number:/~?\b(?:\d+(?:\.\d+)?(?:e~?\d+)?|0x[\da-f]+)\b/i,word:{pattern:/\b0w(?:\d+|x[\da-f]+)\b/i,alias:"constant"},boolean:/\b(?:false|true)\b/i,operator:/\.\.\.|:[>=:]|=>?|->|[<>]=?|[!+\-*/^#|@~]/,punctuation:/[(){}\[\].:,;]/},t.languages.sml["class-name"][0].inside=t.languages.sml,t.languages.smlnj=t.languages.sml}e.exports=t,t.displayName="sml",t.aliases=["smlnj"]},33351(e){"use strict";function t(e){e.languages.solidity=e.languages.extend("clike",{"class-name":{pattern:/(\b(?:contract|enum|interface|library|new|struct|using)\s+)(?!\d)[\w$]+/,lookbehind:!0},keyword:/\b(?:_|anonymous|as|assembly|assert|break|calldata|case|constant|constructor|continue|contract|default|delete|do|else|emit|enum|event|external|for|from|function|if|import|indexed|inherited|interface|internal|is|let|library|mapping|memory|modifier|new|payable|pragma|private|public|pure|require|returns?|revert|selfdestruct|solidity|storage|struct|suicide|switch|this|throw|using|var|view|while)\b/,operator:/=>|->|:=|=:|\*\*|\+\+|--|\|\||&&|<<=?|>>=?|[-+*/%^&|<>!=]=?|[~?]/}),e.languages.insertBefore("solidity","keyword",{builtin:/\b(?:address|bool|string|u?int(?:8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?|byte|bytes(?:[1-9]|[12]\d|3[0-2])?)\b/}),e.languages.insertBefore("solidity","number",{version:{pattern:/([<>]=?|\^)\d+\.\d+\.\d+\b/,lookbehind:!0,alias:"number"}}),e.languages.sol=e.languages.solidity}e.exports=t,t.displayName="solidity",t.aliases=["sol"]},13570(e){"use strict";function t(e){var t,n;n={pattern:/\{[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}\}/i,alias:"constant",inside:{punctuation:/[{}]/}},(t=e).languages["solution-file"]={comment:{pattern:/#.*/,greedy:!0},string:{pattern:/"[^"\r\n]*"|'[^'\r\n]*'/,greedy:!0,inside:{guid:n}},object:{pattern:/^([ \t]*)(?:([A-Z]\w*)\b(?=.*(?:\r\n?|\n)(?:\1[ \t].*(?:\r\n?|\n))*\1End\2(?=[ \t]*$))|End[A-Z]\w*(?=[ \t]*$))/m,lookbehind:!0,greedy:!0,alias:"keyword"},property:{pattern:/^([ \t]*)(?!\s)[^\r\n"#=()]*[^\s"#=()](?=\s*=)/m,lookbehind:!0,inside:{guid:n}},guid:n,number:/\b\d+(?:\.\d+)*\b/,boolean:/\b(?:FALSE|TRUE)\b/,operator:/=/,punctuation:/[(),]/},t.languages.sln=t.languages["solution-file"]}e.exports=t,t.displayName="solutionFile",t.aliases=[]},38181(e,t,n){"use strict";var r=n(93205);function i(e){var t,n,i;e.register(r),n=/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,i=/\b\d+(?:\.\d+)?(?:[eE][+-]?\d+)?\b|\b0x[\dA-F]+\b/,(t=e).languages.soy={comment:[/\/\*[\s\S]*?\*\//,{pattern:/(\s)\/\/.*/,lookbehind:!0,greedy:!0}],"command-arg":{pattern:/(\{+\/?\s*(?:alias|call|delcall|delpackage|deltemplate|namespace|template)\s+)\.?[\w.]+/,lookbehind:!0,alias:"string",inside:{punctuation:/\./}},parameter:{pattern:/(\{+\/?\s*@?param\??\s+)\.?[\w.]+/,lookbehind:!0,alias:"variable"},keyword:[{pattern:/(\{+\/?[^\S\r\n]*)(?:\\[nrt]|alias|call|case|css|default|delcall|delpackage|deltemplate|else(?:if)?|fallbackmsg|for(?:each)?|if(?:empty)?|lb|let|literal|msg|namespace|nil|@?param\??|rb|sp|switch|template|xid)/,lookbehind:!0},/\b(?:any|as|attributes|bool|css|float|in|int|js|html|list|map|null|number|string|uri)\b/],delimiter:{pattern:/^\{+\/?|\/?\}+$/,alias:"punctuation"},property:/\w+(?==)/,variable:{pattern:/\$[^\W\d]\w*(?:\??(?:\.\w+|\[[^\]]+\]))*/,inside:{string:{pattern:n,greedy:!0},number:i,punctuation:/[\[\].?]/}},string:{pattern:n,greedy:!0},function:[/\w+(?=\()/,{pattern:/(\|[^\S\r\n]*)\w+/,lookbehind:!0}],boolean:/\b(?:true|false)\b/,number:i,operator:/\?:?|<=?|>=?|==?|!=|[+*/%-]|\b(?:and|not|or)\b/,punctuation:/[{}()\[\]|.,:]/},t.hooks.add("before-tokenize",function(e){var n=/\{\{.+?\}\}|\{.+?\}|\s\/\/.*|\/\*[\s\S]*?\*\//g,r="{literal}",i="{/literal}",a=!1;t.languages["markup-templating"].buildPlaceholders(e,"soy",n,function(e){return e===i&&(a=!1),!a&&(e===r&&(a=!0),!0)})}),t.hooks.add("after-tokenize",function(e){t.languages["markup-templating"].tokenizePlaceholders(e,"soy")})}e.exports=i,i.displayName="soy",i.aliases=[]},98774(e,t,n){"use strict";var r=n(24691);function i(e){e.register(r),e.languages.sparql=e.languages.extend("turtle",{boolean:/\b(?:true|false)\b/i,variable:{pattern:/[?$]\w+/,greedy:!0}}),e.languages.insertBefore("sparql","punctuation",{keyword:[/\b(?:A|ADD|ALL|AS|ASC|ASK|BNODE|BY|CLEAR|CONSTRUCT|COPY|CREATE|DATA|DEFAULT|DELETE|DESC|DESCRIBE|DISTINCT|DROP|EXISTS|FILTER|FROM|GROUP|HAVING|INSERT|INTO|LIMIT|LOAD|MINUS|MOVE|NAMED|NOT|NOW|OFFSET|OPTIONAL|ORDER|RAND|REDUCED|SELECT|SEPARATOR|SERVICE|SILENT|STRUUID|UNION|USING|UUID|VALUES|WHERE)\b/i,/\b(?:ABS|AVG|BIND|BOUND|CEIL|COALESCE|CONCAT|CONTAINS|COUNT|DATATYPE|DAY|ENCODE_FOR_URI|FLOOR|GROUP_CONCAT|HOURS|IF|IRI|isBLANK|isIRI|isLITERAL|isNUMERIC|isURI|LANG|LANGMATCHES|LCASE|MAX|MD5|MIN|MINUTES|MONTH|ROUND|REGEX|REPLACE|sameTerm|SAMPLE|SECONDS|SHA1|SHA256|SHA384|SHA512|STR|STRAFTER|STRBEFORE|STRDT|STRENDS|STRLANG|STRLEN|STRSTARTS|SUBSTR|SUM|TIMEZONE|TZ|UCASE|URI|YEAR)\b(?=\s*\()/i,/\b(?:GRAPH|BASE|PREFIX)\b/i]}),e.languages.rq=e.languages.sparql}e.exports=i,i.displayName="sparql",i.aliases=["rq"]},22855(e){"use strict";function t(e){e.languages["splunk-spl"]={comment:/`comment\("(?:\\.|[^\\"])*"\)`/,string:{pattern:/"(?:\\.|[^\\"])*"/,greedy:!0},keyword:/\b(?:abstract|accum|addcoltotals|addinfo|addtotals|analyzefields|anomalies|anomalousvalue|anomalydetection|append|appendcols|appendcsv|appendlookup|appendpipe|arules|associate|audit|autoregress|bin|bucket|bucketdir|chart|cluster|cofilter|collect|concurrency|contingency|convert|correlate|datamodel|dbinspect|dedup|delete|delta|diff|erex|eval|eventcount|eventstats|extract|fieldformat|fields|fieldsummary|filldown|fillnull|findtypes|folderize|foreach|format|from|gauge|gentimes|geom|geomfilter|geostats|head|highlight|history|iconify|input|inputcsv|inputlookup|iplocation|join|kmeans|kv|kvform|loadjob|localize|localop|lookup|makecontinuous|makemv|makeresults|map|mcollect|metadata|metasearch|meventcollect|mstats|multikv|multisearch|mvcombine|mvexpand|nomv|outlier|outputcsv|outputlookup|outputtext|overlap|pivot|predict|rangemap|rare|regex|relevancy|reltime|rename|replace|rest|return|reverse|rex|rtorder|run|savedsearch|script|scrub|search|searchtxn|selfjoin|sendemail|set|setfields|sichart|sirare|sistats|sitimechart|sitop|sort|spath|stats|strcat|streamstats|table|tags|tail|timechart|timewrap|top|transaction|transpose|trendline|tscollect|tstats|typeahead|typelearner|typer|union|uniq|untable|where|x11|xmlkv|xmlunescape|xpath|xyseries)\b/i,"operator-word":{pattern:/\b(?:and|as|by|not|or|xor)\b/i,alias:"operator"},function:/\b\w+(?=\s*\()/,property:/\b\w+(?=\s*=(?!=))/,date:{pattern:/\b\d{1,2}\/\d{1,2}\/\d{1,4}(?:(?::\d{1,2}){3})?\b/,alias:"number"},number:/\b\d+(?:\.\d+)?\b/,boolean:/\b(?:f|false|t|true)\b/i,operator:/[<>=]=?|[-+*/%|]/,punctuation:/[()[\],]/}}e.exports=t,t.displayName="splunkSpl",t.aliases=[]},29611(e){"use strict";function t(e){e.languages.sqf=e.languages.extend("clike",{string:{pattern:/"(?:(?:"")?[^"])*"(?!")|'(?:[^'])*'/,greedy:!0},keyword:/\b(?:breakOut|breakTo|call|case|catch|default|do|echo|else|execVM|execFSM|exitWith|for|forEach|forEachMember|forEachMemberAgent|forEachMemberTeam|from|goto|if|nil|preprocessFile|preprocessFileLineNumbers|private|scopeName|spawn|step|switch|then|throw|to|try|while|with)\b/i,boolean:/\b(?:true|false)\b/i,function:/\b(?:abs|accTime|acos|action|actionIDs|actionKeys|actionKeysImages|actionKeysNames|actionKeysNamesArray|actionName|actionParams|activateAddons|activatedAddons|activateKey|add3DENConnection|add3DENEventHandler|add3DENLayer|addAction|addBackpack|addBackpackCargo|addBackpackCargoGlobal|addBackpackGlobal|addCamShake|addCuratorAddons|addCuratorCameraArea|addCuratorEditableObjects|addCuratorEditingArea|addCuratorPoints|addEditorObject|addEventHandler|addForce|addForceGeneratorRTD|addGoggles|addGroupIcon|addHandgunItem|addHeadgear|addItem|addItemCargo|addItemCargoGlobal|addItemPool|addItemToBackpack|addItemToUniform|addItemToVest|addLiveStats|addMagazine|addMagazineAmmoCargo|addMagazineCargo|addMagazineCargoGlobal|addMagazineGlobal|addMagazinePool|addMagazines|addMagazineTurret|addMenu|addMenuItem|addMissionEventHandler|addMPEventHandler|addMusicEventHandler|addOwnedMine|addPlayerScores|addPrimaryWeaponItem|addPublicVariableEventHandler|addRating|addResources|addScore|addScoreSide|addSecondaryWeaponItem|addSwitchableUnit|addTeamMember|addToRemainsCollector|addTorque|addUniform|addVehicle|addVest|addWaypoint|addWeapon|addWeaponCargo|addWeaponCargoGlobal|addWeaponGlobal|addWeaponItem|addWeaponPool|addWeaponTurret|admin|agent|agents|AGLToASL|aimedAtTarget|aimPos|airDensityCurveRTD|airDensityRTD|airplaneThrottle|airportSide|AISFinishHeal|alive|all3DENEntities|allAirports|allControls|allCurators|allCutLayers|allDead|allDeadMen|allDisplays|allGroups|allMapMarkers|allMines|allMissionObjects|allow3DMode|allowCrewInImmobile|allowCuratorLogicIgnoreAreas|allowDamage|allowDammage|allowFileOperations|allowFleeing|allowGetIn|allowSprint|allPlayers|allSimpleObjects|allSites|allTurrets|allUnits|allUnitsUAV|allVariables|ammo|ammoOnPylon|animate|animateBay|animateDoor|animatePylon|animateSource|animationNames|animationPhase|animationSourcePhase|animationState|append|apply|armoryPoints|arrayIntersect|asin|ASLToAGL|ASLToATL|assert|assignAsCargo|assignAsCargoIndex|assignAsCommander|assignAsDriver|assignAsGunner|assignAsTurret|assignCurator|assignedCargo|assignedCommander|assignedDriver|assignedGunner|assignedItems|assignedTarget|assignedTeam|assignedVehicle|assignedVehicleRole|assignItem|assignTeam|assignToAirport|atan|atan2|atg|ATLToASL|attachedObject|attachedObjects|attachedTo|attachObject|attachTo|attackEnabled|backpack|backpackCargo|backpackContainer|backpackItems|backpackMagazines|backpackSpaceFor|behaviour|benchmark|binocular|blufor|boundingBox|boundingBoxReal|boundingCenter|briefingName|buildingExit|buildingPos|buldozer_EnableRoadDiag|buldozer_IsEnabledRoadDiag|buldozer_LoadNewRoads|buldozer_reloadOperMap|buttonAction|buttonSetAction|cadetMode|callExtension|camCommand|camCommit|camCommitPrepared|camCommitted|camConstuctionSetParams|camCreate|camDestroy|cameraEffect|cameraEffectEnableHUD|cameraInterest|cameraOn|cameraView|campaignConfigFile|camPreload|camPreloaded|camPrepareBank|camPrepareDir|camPrepareDive|camPrepareFocus|camPrepareFov|camPrepareFovRange|camPreparePos|camPrepareRelPos|camPrepareTarget|camSetBank|camSetDir|camSetDive|camSetFocus|camSetFov|camSetFovRange|camSetPos|camSetRelPos|camSetTarget|camTarget|camUseNVG|canAdd|canAddItemToBackpack|canAddItemToUniform|canAddItemToVest|cancelSimpleTaskDestination|canFire|canMove|canSlingLoad|canStand|canSuspend|canTriggerDynamicSimulation|canUnloadInCombat|canVehicleCargo|captive|captiveNum|cbChecked|cbSetChecked|ceil|channelEnabled|cheatsEnabled|checkAIFeature|checkVisibility|civilian|className|clear3DENAttribute|clear3DENInventory|clearAllItemsFromBackpack|clearBackpackCargo|clearBackpackCargoGlobal|clearForcesRTD|clearGroupIcons|clearItemCargo|clearItemCargoGlobal|clearItemPool|clearMagazineCargo|clearMagazineCargoGlobal|clearMagazinePool|clearOverlay|clearRadio|clearVehicleInit|clearWeaponCargo|clearWeaponCargoGlobal|clearWeaponPool|clientOwner|closeDialog|closeDisplay|closeOverlay|collapseObjectTree|collect3DENHistory|collectiveRTD|combatMode|commandArtilleryFire|commandChat|commander|commandFire|commandFollow|commandFSM|commandGetOut|commandingMenu|commandMove|commandRadio|commandStop|commandSuppressiveFire|commandTarget|commandWatch|comment|commitOverlay|compile|compileFinal|completedFSM|composeText|configClasses|configFile|configHierarchy|configName|configNull|configProperties|configSourceAddonList|configSourceMod|configSourceModList|confirmSensorTarget|connectTerminalToUAV|controlNull|controlsGroupCtrl|copyFromClipboard|copyToClipboard|copyWaypoints|cos|count|countEnemy|countFriendly|countSide|countType|countUnknown|create3DENComposition|create3DENEntity|createAgent|createCenter|createDialog|createDiaryLink|createDiaryRecord|createDiarySubject|createDisplay|createGearDialog|createGroup|createGuardedPoint|createLocation|createMarker|createMarkerLocal|createMenu|createMine|createMissionDisplay|createMPCampaignDisplay|createSimpleObject|createSimpleTask|createSite|createSoundSource|createTask|createTeam|createTrigger|createUnit|createVehicle|createVehicleCrew|createVehicleLocal|crew|ctAddHeader|ctAddRow|ctClear|ctCurSel|ctData|ctFindHeaderRows|ctFindRowHeader|ctHeaderControls|ctHeaderCount|ctRemoveHeaders|ctRemoveRows|ctrlActivate|ctrlAddEventHandler|ctrlAngle|ctrlAutoScrollDelay|ctrlAutoScrollRewind|ctrlAutoScrollSpeed|ctrlChecked|ctrlClassName|ctrlCommit|ctrlCommitted|ctrlCreate|ctrlDelete|ctrlEnable|ctrlEnabled|ctrlFade|ctrlHTMLLoaded|ctrlIDC|ctrlIDD|ctrlMapAnimAdd|ctrlMapAnimClear|ctrlMapAnimCommit|ctrlMapAnimDone|ctrlMapCursor|ctrlMapMouseOver|ctrlMapScale|ctrlMapScreenToWorld|ctrlMapWorldToScreen|ctrlModel|ctrlModelDirAndUp|ctrlModelScale|ctrlParent|ctrlParentControlsGroup|ctrlPosition|ctrlRemoveAllEventHandlers|ctrlRemoveEventHandler|ctrlScale|ctrlSetActiveColor|ctrlSetAngle|ctrlSetAutoScrollDelay|ctrlSetAutoScrollRewind|ctrlSetAutoScrollSpeed|ctrlSetBackgroundColor|ctrlSetChecked|ctrlSetDisabledColor|ctrlSetEventHandler|ctrlSetFade|ctrlSetFocus|ctrlSetFont|ctrlSetFontH1|ctrlSetFontH1B|ctrlSetFontH2|ctrlSetFontH2B|ctrlSetFontH3|ctrlSetFontH3B|ctrlSetFontH4|ctrlSetFontH4B|ctrlSetFontH5|ctrlSetFontH5B|ctrlSetFontH6|ctrlSetFontH6B|ctrlSetFontHeight|ctrlSetFontHeightH1|ctrlSetFontHeightH2|ctrlSetFontHeightH3|ctrlSetFontHeightH4|ctrlSetFontHeightH5|ctrlSetFontHeightH6|ctrlSetFontHeightSecondary|ctrlSetFontP|ctrlSetFontPB|ctrlSetFontSecondary|ctrlSetForegroundColor|ctrlSetModel|ctrlSetModelDirAndUp|ctrlSetModelScale|ctrlSetPixelPrecision|ctrlSetPosition|ctrlSetScale|ctrlSetStructuredText|ctrlSetText|ctrlSetTextColor|ctrlSetTextColorSecondary|ctrlSetTextSecondary|ctrlSetTooltip|ctrlSetTooltipColorBox|ctrlSetTooltipColorShade|ctrlSetTooltipColorText|ctrlShow|ctrlShown|ctrlText|ctrlTextHeight|ctrlTextSecondary|ctrlTextWidth|ctrlType|ctrlVisible|ctRowControls|ctRowCount|ctSetCurSel|ctSetData|ctSetHeaderTemplate|ctSetRowTemplate|ctSetValue|ctValue|curatorAddons|curatorCamera|curatorCameraArea|curatorCameraAreaCeiling|curatorCoef|curatorEditableObjects|curatorEditingArea|curatorEditingAreaType|curatorMouseOver|curatorPoints|curatorRegisteredObjects|curatorSelected|curatorWaypointCost|current3DENOperation|currentChannel|currentCommand|currentMagazine|currentMagazineDetail|currentMagazineDetailTurret|currentMagazineTurret|currentMuzzle|currentNamespace|currentTask|currentTasks|currentThrowable|currentVisionMode|currentWaypoint|currentWeapon|currentWeaponMode|currentWeaponTurret|currentZeroing|cursorObject|cursorTarget|customChat|customRadio|cutFadeOut|cutObj|cutRsc|cutText|damage|date|dateToNumber|daytime|deActivateKey|debriefingText|debugFSM|debugLog|deg|delete3DENEntities|deleteAt|deleteCenter|deleteCollection|deleteEditorObject|deleteGroup|deleteGroupWhenEmpty|deleteIdentity|deleteLocation|deleteMarker|deleteMarkerLocal|deleteRange|deleteResources|deleteSite|deleteStatus|deleteTeam|deleteVehicle|deleteVehicleCrew|deleteWaypoint|detach|detectedMines|diag_activeMissionFSMs|diag_activeScripts|diag_activeSQFScripts|diag_activeSQSScripts|diag_captureFrame|diag_captureFrameToFile|diag_captureSlowFrame|diag_codePerformance|diag_drawMode|diag_dynamicSimulationEnd|diag_enable|diag_enabled|diag_fps|diag_fpsMin|diag_frameNo|diag_lightNewLoad|diag_list|diag_log|diag_logSlowFrame|diag_mergeConfigFile|diag_recordTurretLimits|diag_setLightNew|diag_tickTime|diag_toggle|dialog|diarySubjectExists|didJIP|didJIPOwner|difficulty|difficultyEnabled|difficultyEnabledRTD|difficultyOption|direction|directSay|disableAI|disableCollisionWith|disableConversation|disableDebriefingStats|disableMapIndicators|disableNVGEquipment|disableRemoteSensors|disableSerialization|disableTIEquipment|disableUAVConnectability|disableUserInput|displayAddEventHandler|displayCtrl|displayNull|displayParent|displayRemoveAllEventHandlers|displayRemoveEventHandler|displaySetEventHandler|dissolveTeam|distance|distance2D|distanceSqr|distributionRegion|do3DENAction|doArtilleryFire|doFire|doFollow|doFSM|doGetOut|doMove|doorPhase|doStop|doSuppressiveFire|doTarget|doWatch|drawArrow|drawEllipse|drawIcon|drawIcon3D|drawLine|drawLine3D|drawLink|drawLocation|drawPolygon|drawRectangle|drawTriangle|driver|drop|dynamicSimulationDistance|dynamicSimulationDistanceCoef|dynamicSimulationEnabled|dynamicSimulationSystemEnabled|east|edit3DENMissionAttributes|editObject|editorSetEventHandler|effectiveCommander|emptyPositions|enableAI|enableAIFeature|enableAimPrecision|enableAttack|enableAudioFeature|enableAutoStartUpRTD|enableAutoTrimRTD|enableCamShake|enableCaustics|enableChannel|enableCollisionWith|enableCopilot|enableDebriefingStats|enableDiagLegend|enableDynamicSimulation|enableDynamicSimulationSystem|enableEndDialog|enableEngineArtillery|enableEnvironment|enableFatigue|enableGunLights|enableInfoPanelComponent|enableIRLasers|enableMimics|enablePersonTurret|enableRadio|enableReload|enableRopeAttach|enableSatNormalOnDetail|enableSaving|enableSentences|enableSimulation|enableSimulationGlobal|enableStamina|enableStressDamage|enableTeamSwitch|enableTraffic|enableUAVConnectability|enableUAVWaypoints|enableVehicleCargo|enableVehicleSensor|enableWeaponDisassembly|endl|endLoadingScreen|endMission|engineOn|enginesIsOnRTD|enginesPowerRTD|enginesRpmRTD|enginesTorqueRTD|entities|environmentEnabled|estimatedEndServerTime|estimatedTimeLeft|evalObjectArgument|everyBackpack|everyContainer|exec|execEditorScript|exp|expectedDestination|exportJIPMessages|eyeDirection|eyePos|face|faction|fadeMusic|fadeRadio|fadeSound|fadeSpeech|failMission|fillWeaponsFromPool|find|findCover|findDisplay|findEditorObject|findEmptyPosition|findEmptyPositionReady|findIf|findNearestEnemy|finishMissionInit|finite|fire|fireAtTarget|firstBackpack|flag|flagAnimationPhase|flagOwner|flagSide|flagTexture|fleeing|floor|flyInHeight|flyInHeightASL|fog|fogForecast|fogParams|forceAddUniform|forceAtPositionRTD|forcedMap|forceEnd|forceFlagTexture|forceFollowRoad|forceGeneratorRTD|forceMap|forceRespawn|forceSpeed|forceWalk|forceWeaponFire|forceWeatherChange|forgetTarget|format|formation|formationDirection|formationLeader|formationMembers|formationPosition|formationTask|formatText|formLeader|freeLook|fromEditor|fuel|fullCrew|gearIDCAmmoCount|gearSlotAmmoCount|gearSlotData|get3DENActionState|get3DENAttribute|get3DENCamera|get3DENConnections|get3DENEntity|get3DENEntityID|get3DENGrid|get3DENIconsVisible|get3DENLayerEntities|get3DENLinesVisible|get3DENMissionAttribute|get3DENMouseOver|get3DENSelected|getAimingCoef|getAllEnvSoundControllers|getAllHitPointsDamage|getAllOwnedMines|getAllSoundControllers|getAmmoCargo|getAnimAimPrecision|getAnimSpeedCoef|getArray|getArtilleryAmmo|getArtilleryComputerSettings|getArtilleryETA|getAssignedCuratorLogic|getAssignedCuratorUnit|getBackpackCargo|getBleedingRemaining|getBurningValue|getCameraViewDirection|getCargoIndex|getCenterOfMass|getClientState|getClientStateNumber|getCompatiblePylonMagazines|getConnectedUAV|getContainerMaxLoad|getCursorObjectParams|getCustomAimCoef|getDammage|getDescription|getDir|getDirVisual|getDLCAssetsUsage|getDLCAssetsUsageByName|getDLCs|getDLCUsageTime|getEditorCamera|getEditorMode|getEditorObjectScope|getElevationOffset|getEngineTargetRpmRTD|getEnvSoundController|getFatigue|getFieldManualStartPage|getForcedFlagTexture|getFriend|getFSMVariable|getFuelCargo|getGroupIcon|getGroupIconParams|getGroupIcons|getHideFrom|getHit|getHitIndex|getHitPointDamage|getItemCargo|getMagazineCargo|getMarkerColor|getMarkerPos|getMarkerSize|getMarkerType|getMass|getMissionConfig|getMissionConfigValue|getMissionDLCs|getMissionLayerEntities|getMissionLayers|getModelInfo|getMousePosition|getMusicPlayedTime|getNumber|getObjectArgument|getObjectChildren|getObjectDLC|getObjectMaterials|getObjectProxy|getObjectTextures|getObjectType|getObjectViewDistance|getOxygenRemaining|getPersonUsedDLCs|getPilotCameraDirection|getPilotCameraPosition|getPilotCameraRotation|getPilotCameraTarget|getPlateNumber|getPlayerChannel|getPlayerScores|getPlayerUID|getPlayerUIDOld|getPos|getPosASL|getPosASLVisual|getPosASLW|getPosATL|getPosATLVisual|getPosVisual|getPosWorld|getPylonMagazines|getRelDir|getRelPos|getRemoteSensorsDisabled|getRepairCargo|getResolution|getRotorBrakeRTD|getShadowDistance|getShotParents|getSlingLoad|getSoundController|getSoundControllerResult|getSpeed|getStamina|getStatValue|getSuppression|getTerrainGrid|getTerrainHeightASL|getText|getTotalDLCUsageTime|getTrimOffsetRTD|getUnitLoadout|getUnitTrait|getUserMFDText|getUserMFDValue|getVariable|getVehicleCargo|getWeaponCargo|getWeaponSway|getWingsOrientationRTD|getWingsPositionRTD|getWPPos|glanceAt|globalChat|globalRadio|goggles|group|groupChat|groupFromNetId|groupIconSelectable|groupIconsVisible|groupId|groupOwner|groupRadio|groupSelectedUnits|groupSelectUnit|grpNull|gunner|gusts|halt|handgunItems|handgunMagazine|handgunWeapon|handsHit|hasInterface|hasPilotCamera|hasWeapon|hcAllGroups|hcGroupParams|hcLeader|hcRemoveAllGroups|hcRemoveGroup|hcSelected|hcSelectGroup|hcSetGroup|hcShowBar|hcShownBar|headgear|hideBody|hideObject|hideObjectGlobal|hideSelection|hint|hintC|hintCadet|hintSilent|hmd|hostMission|htmlLoad|HUDMovementLevels|humidity|image|importAllGroups|importance|in|inArea|inAreaArray|incapacitatedState|independent|inflame|inflamed|infoPanel|infoPanelComponentEnabled|infoPanelComponents|infoPanels|inGameUISetEventHandler|inheritsFrom|initAmbientLife|inPolygon|inputAction|inRangeOfArtillery|insertEditorObject|intersect|is3DEN|is3DENMultiplayer|isAbleToBreathe|isAgent|isAimPrecisionEnabled|isArray|isAutoHoverOn|isAutonomous|isAutoStartUpEnabledRTD|isAutotest|isAutoTrimOnRTD|isBleeding|isBurning|isClass|isCollisionLightOn|isCopilotEnabled|isDamageAllowed|isDedicated|isDLCAvailable|isEngineOn|isEqualTo|isEqualType|isEqualTypeAll|isEqualTypeAny|isEqualTypeArray|isEqualTypeParams|isFilePatchingEnabled|isFlashlightOn|isFlatEmpty|isForcedWalk|isFormationLeader|isGroupDeletedWhenEmpty|isHidden|isInRemainsCollector|isInstructorFigureEnabled|isIRLaserOn|isKeyActive|isKindOf|isLaserOn|isLightOn|isLocalized|isManualFire|isMarkedForCollection|isMultiplayer|isMultiplayerSolo|isNil|isNull|isNumber|isObjectHidden|isObjectRTD|isOnRoad|isPipEnabled|isPlayer|isRealTime|isRemoteExecuted|isRemoteExecutedJIP|isServer|isShowing3DIcons|isSimpleObject|isSprintAllowed|isStaminaEnabled|isSteamMission|isStreamFriendlyUIEnabled|isStressDamageEnabled|isText|isTouchingGround|isTurnedOut|isTutHintsEnabled|isUAVConnectable|isUAVConnected|isUIContext|isUniformAllowed|isVehicleCargo|isVehicleRadarOn|isVehicleSensorEnabled|isWalking|isWeaponDeployed|isWeaponRested|itemCargo|items|itemsWithMagazines|join|joinAs|joinAsSilent|joinSilent|joinString|kbAddDatabase|kbAddDatabaseTargets|kbAddTopic|kbHasTopic|kbReact|kbRemoveTopic|kbTell|kbWasSaid|keyImage|keyName|knowsAbout|land|landAt|landResult|language|laserTarget|lbAdd|lbClear|lbColor|lbColorRight|lbCurSel|lbData|lbDelete|lbIsSelected|lbPicture|lbPictureRight|lbSelection|lbSetColor|lbSetColorRight|lbSetCurSel|lbSetData|lbSetPicture|lbSetPictureColor|lbSetPictureColorDisabled|lbSetPictureColorSelected|lbSetPictureRight|lbSetPictureRightColor|lbSetPictureRightColorDisabled|lbSetPictureRightColorSelected|lbSetSelectColor|lbSetSelectColorRight|lbSetSelected|lbSetText|lbSetTextRight|lbSetTooltip|lbSetValue|lbSize|lbSort|lbSortByValue|lbText|lbTextRight|lbValue|leader|leaderboardDeInit|leaderboardGetRows|leaderboardInit|leaderboardRequestRowsFriends|leaderboardRequestRowsGlobal|leaderboardRequestRowsGlobalAroundUser|leaderboardsRequestUploadScore|leaderboardsRequestUploadScoreKeepBest|leaderboardState|leaveVehicle|libraryCredits|libraryDisclaimers|lifeState|lightAttachObject|lightDetachObject|lightIsOn|lightnings|limitSpeed|linearConversion|lineBreak|lineIntersects|lineIntersectsObjs|lineIntersectsSurfaces|lineIntersectsWith|linkItem|list|listObjects|listRemoteTargets|listVehicleSensors|ln|lnbAddArray|lnbAddColumn|lnbAddRow|lnbClear|lnbColor|lnbColorRight|lnbCurSelRow|lnbData|lnbDeleteColumn|lnbDeleteRow|lnbGetColumnsPosition|lnbPicture|lnbPictureRight|lnbSetColor|lnbSetColorRight|lnbSetColumnsPos|lnbSetCurSelRow|lnbSetData|lnbSetPicture|lnbSetPictureColor|lnbSetPictureColorRight|lnbSetPictureColorSelected|lnbSetPictureColorSelectedRight|lnbSetPictureRight|lnbSetText|lnbSetTextRight|lnbSetValue|lnbSize|lnbSort|lnbSortByValue|lnbText|lnbTextRight|lnbValue|load|loadAbs|loadBackpack|loadFile|loadGame|loadIdentity|loadMagazine|loadOverlay|loadStatus|loadUniform|loadVest|local|localize|locationNull|locationPosition|lock|lockCameraTo|lockCargo|lockDriver|locked|lockedCargo|lockedDriver|lockedTurret|lockIdentity|lockTurret|lockWP|log|logEntities|logNetwork|logNetworkTerminate|lookAt|lookAtPos|magazineCargo|magazines|magazinesAllTurrets|magazinesAmmo|magazinesAmmoCargo|magazinesAmmoFull|magazinesDetail|magazinesDetailBackpack|magazinesDetailUniform|magazinesDetailVest|magazinesTurret|magazineTurretAmmo|mapAnimAdd|mapAnimClear|mapAnimCommit|mapAnimDone|mapCenterOnCamera|mapGridPosition|markAsFinishedOnSteam|markerAlpha|markerBrush|markerColor|markerDir|markerPos|markerShape|markerSize|markerText|markerType|max|members|menuAction|menuAdd|menuChecked|menuClear|menuCollapse|menuData|menuDelete|menuEnable|menuEnabled|menuExpand|menuHover|menuPicture|menuSetAction|menuSetCheck|menuSetData|menuSetPicture|menuSetValue|menuShortcut|menuShortcutText|menuSize|menuSort|menuText|menuURL|menuValue|min|mineActive|mineDetectedBy|missionConfigFile|missionDifficulty|missionName|missionNamespace|missionStart|missionVersion|modelToWorld|modelToWorldVisual|modelToWorldVisualWorld|modelToWorldWorld|modParams|moonIntensity|moonPhase|morale|move|move3DENCamera|moveInAny|moveInCargo|moveInCommander|moveInDriver|moveInGunner|moveInTurret|moveObjectToEnd|moveOut|moveTime|moveTo|moveToCompleted|moveToFailed|musicVolume|name|nameSound|nearEntities|nearestBuilding|nearestLocation|nearestLocations|nearestLocationWithDubbing|nearestObject|nearestObjects|nearestTerrainObjects|nearObjects|nearObjectsReady|nearRoads|nearSupplies|nearTargets|needReload|netId|netObjNull|newOverlay|nextMenuItemIndex|nextWeatherChange|nMenuItems|numberOfEnginesRTD|numberToDate|objectCurators|objectFromNetId|objectParent|objNull|objStatus|onBriefingGear|onBriefingGroup|onBriefingNotes|onBriefingPlan|onBriefingTeamSwitch|onCommandModeChanged|onDoubleClick|onEachFrame|onGroupIconClick|onGroupIconOverEnter|onGroupIconOverLeave|onHCGroupSelectionChanged|onMapSingleClick|onPlayerConnected|onPlayerDisconnected|onPreloadFinished|onPreloadStarted|onShowNewObject|onTeamSwitch|openCuratorInterface|openDLCPage|openDSInterface|openMap|openSteamApp|openYoutubeVideo|opfor|orderGetIn|overcast|overcastForecast|owner|param|params|parseNumber|parseSimpleArray|parseText|parsingNamespace|particlesQuality|pi|pickWeaponPool|pitch|pixelGrid|pixelGridBase|pixelGridNoUIScale|pixelH|pixelW|playableSlotsNumber|playableUnits|playAction|playActionNow|player|playerRespawnTime|playerSide|playersNumber|playGesture|playMission|playMove|playMoveNow|playMusic|playScriptedMission|playSound|playSound3D|position|positionCameraToWorld|posScreenToWorld|posWorldToScreen|ppEffectAdjust|ppEffectCommit|ppEffectCommitted|ppEffectCreate|ppEffectDestroy|ppEffectEnable|ppEffectEnabled|ppEffectForceInNVG|precision|preloadCamera|preloadObject|preloadSound|preloadTitleObj|preloadTitleRsc|primaryWeapon|primaryWeaponItems|primaryWeaponMagazine|priority|processDiaryLink|processInitCommands|productVersion|profileName|profileNamespace|profileNameSteam|progressLoadingScreen|progressPosition|progressSetPosition|publicVariable|publicVariableClient|publicVariableServer|pushBack|pushBackUnique|putWeaponPool|queryItemsPool|queryMagazinePool|queryWeaponPool|rad|radioChannelAdd|radioChannelCreate|radioChannelRemove|radioChannelSetCallSign|radioChannelSetLabel|radioVolume|rain|rainbow|random|rank|rankId|rating|rectangular|registeredTasks|registerTask|reload|reloadEnabled|remoteControl|remoteExec|remoteExecCall|remoteExecutedOwner|remove3DENConnection|remove3DENEventHandler|remove3DENLayer|removeAction|removeAll3DENEventHandlers|removeAllActions|removeAllAssignedItems|removeAllContainers|removeAllCuratorAddons|removeAllCuratorCameraAreas|removeAllCuratorEditingAreas|removeAllEventHandlers|removeAllHandgunItems|removeAllItems|removeAllItemsWithMagazines|removeAllMissionEventHandlers|removeAllMPEventHandlers|removeAllMusicEventHandlers|removeAllOwnedMines|removeAllPrimaryWeaponItems|removeAllWeapons|removeBackpack|removeBackpackGlobal|removeCuratorAddons|removeCuratorCameraArea|removeCuratorEditableObjects|removeCuratorEditingArea|removeDrawIcon|removeDrawLinks|removeEventHandler|removeFromRemainsCollector|removeGoggles|removeGroupIcon|removeHandgunItem|removeHeadgear|removeItem|removeItemFromBackpack|removeItemFromUniform|removeItemFromVest|removeItems|removeMagazine|removeMagazineGlobal|removeMagazines|removeMagazinesTurret|removeMagazineTurret|removeMenuItem|removeMissionEventHandler|removeMPEventHandler|removeMusicEventHandler|removeOwnedMine|removePrimaryWeaponItem|removeSecondaryWeaponItem|removeSimpleTask|removeSwitchableUnit|removeTeamMember|removeUniform|removeVest|removeWeapon|removeWeaponAttachmentCargo|removeWeaponCargo|removeWeaponGlobal|removeWeaponTurret|reportRemoteTarget|requiredVersion|resetCamShake|resetSubgroupDirection|resistance|resize|resources|respawnVehicle|restartEditorCamera|reveal|revealMine|reverse|reversedMouseY|roadAt|roadsConnectedTo|roleDescription|ropeAttachedObjects|ropeAttachedTo|ropeAttachEnabled|ropeAttachTo|ropeCreate|ropeCut|ropeDestroy|ropeDetach|ropeEndPosition|ropeLength|ropes|ropeUnwind|ropeUnwound|rotorsForcesRTD|rotorsRpmRTD|round|runInitScript|safeZoneH|safeZoneW|safeZoneWAbs|safeZoneX|safeZoneXAbs|safeZoneY|save3DENInventory|saveGame|saveIdentity|saveJoysticks|saveOverlay|saveProfileNamespace|saveStatus|saveVar|savingEnabled|say|say2D|say3D|score|scoreSide|screenshot|screenToWorld|scriptDone|scriptName|scriptNull|scudState|secondaryWeapon|secondaryWeaponItems|secondaryWeaponMagazine|select|selectBestPlaces|selectDiarySubject|selectedEditorObjects|selectEditorObject|selectionNames|selectionPosition|selectLeader|selectMax|selectMin|selectNoPlayer|selectPlayer|selectRandom|selectRandomWeighted|selectWeapon|selectWeaponTurret|sendAUMessage|sendSimpleCommand|sendTask|sendTaskResult|sendUDPMessage|serverCommand|serverCommandAvailable|serverCommandExecutable|serverName|serverTime|set|set3DENAttribute|set3DENAttributes|set3DENGrid|set3DENIconsVisible|set3DENLayer|set3DENLinesVisible|set3DENLogicType|set3DENMissionAttribute|set3DENMissionAttributes|set3DENModelsVisible|set3DENObjectType|set3DENSelected|setAccTime|setActualCollectiveRTD|setAirplaneThrottle|setAirportSide|setAmmo|setAmmoCargo|setAmmoOnPylon|setAnimSpeedCoef|setAperture|setApertureNew|setArmoryPoints|setAttributes|setAutonomous|setBehaviour|setBleedingRemaining|setBrakesRTD|setCameraInterest|setCamShakeDefParams|setCamShakeParams|setCamUseTI|setCaptive|setCenterOfMass|setCollisionLight|setCombatMode|setCompassOscillation|setConvoySeparation|setCuratorCameraAreaCeiling|setCuratorCoef|setCuratorEditingAreaType|setCuratorWaypointCost|setCurrentChannel|setCurrentTask|setCurrentWaypoint|setCustomAimCoef|setCustomWeightRTD|setDamage|setDammage|setDate|setDebriefingText|setDefaultCamera|setDestination|setDetailMapBlendPars|setDir|setDirection|setDrawIcon|setDriveOnPath|setDropInterval|setDynamicSimulationDistance|setDynamicSimulationDistanceCoef|setEditorMode|setEditorObjectScope|setEffectCondition|setEngineRpmRTD|setFace|setFaceAnimation|setFatigue|setFeatureType|setFlagAnimationPhase|setFlagOwner|setFlagSide|setFlagTexture|setFog|setForceGeneratorRTD|setFormation|setFormationTask|setFormDir|setFriend|setFromEditor|setFSMVariable|setFuel|setFuelCargo|setGroupIcon|setGroupIconParams|setGroupIconsSelectable|setGroupIconsVisible|setGroupId|setGroupIdGlobal|setGroupOwner|setGusts|setHideBehind|setHit|setHitIndex|setHitPointDamage|setHorizonParallaxCoef|setHUDMovementLevels|setIdentity|setImportance|setInfoPanel|setLeader|setLightAmbient|setLightAttenuation|setLightBrightness|setLightColor|setLightDayLight|setLightFlareMaxDistance|setLightFlareSize|setLightIntensity|setLightnings|setLightUseFlare|setLocalWindParams|setMagazineTurretAmmo|setMarkerAlpha|setMarkerAlphaLocal|setMarkerBrush|setMarkerBrushLocal|setMarkerColor|setMarkerColorLocal|setMarkerDir|setMarkerDirLocal|setMarkerPos|setMarkerPosLocal|setMarkerShape|setMarkerShapeLocal|setMarkerSize|setMarkerSizeLocal|setMarkerText|setMarkerTextLocal|setMarkerType|setMarkerTypeLocal|setMass|setMimic|setMousePosition|setMusicEffect|setMusicEventHandler|setName|setNameSound|setObjectArguments|setObjectMaterial|setObjectMaterialGlobal|setObjectProxy|setObjectTexture|setObjectTextureGlobal|setObjectViewDistance|setOvercast|setOwner|setOxygenRemaining|setParticleCircle|setParticleClass|setParticleFire|setParticleParams|setParticleRandom|setPilotCameraDirection|setPilotCameraRotation|setPilotCameraTarget|setPilotLight|setPiPEffect|setPitch|setPlateNumber|setPlayable|setPlayerRespawnTime|setPos|setPosASL|setPosASL2|setPosASLW|setPosATL|setPosition|setPosWorld|setPylonLoadOut|setPylonsPriority|setRadioMsg|setRain|setRainbow|setRandomLip|setRank|setRectangular|setRepairCargo|setRotorBrakeRTD|setShadowDistance|setShotParents|setSide|setSimpleTaskAlwaysVisible|setSimpleTaskCustomData|setSimpleTaskDescription|setSimpleTaskDestination|setSimpleTaskTarget|setSimpleTaskType|setSimulWeatherLayers|setSize|setSkill|setSlingLoad|setSoundEffect|setSpeaker|setSpeech|setSpeedMode|setStamina|setStaminaScheme|setStatValue|setSuppression|setSystemOfUnits|setTargetAge|setTaskMarkerOffset|setTaskResult|setTaskState|setTerrainGrid|setText|setTimeMultiplier|setTitleEffect|setToneMapping|setToneMappingParams|setTrafficDensity|setTrafficDistance|setTrafficGap|setTrafficSpeed|setTriggerActivation|setTriggerArea|setTriggerStatements|setTriggerText|setTriggerTimeout|setTriggerType|setType|setUnconscious|setUnitAbility|setUnitLoadout|setUnitPos|setUnitPosWeak|setUnitRank|setUnitRecoilCoefficient|setUnitTrait|setUnloadInCombat|setUserActionText|setUserMFDText|setUserMFDValue|setVariable|setVectorDir|setVectorDirAndUp|setVectorUp|setVehicleAmmo|setVehicleAmmoDef|setVehicleArmor|setVehicleCargo|setVehicleId|setVehicleInit|setVehicleLock|setVehiclePosition|setVehicleRadar|setVehicleReceiveRemoteTargets|setVehicleReportOwnPosition|setVehicleReportRemoteTargets|setVehicleTIPars|setVehicleVarName|setVelocity|setVelocityModelSpace|setVelocityTransformation|setViewDistance|setVisibleIfTreeCollapsed|setWantedRpmRTD|setWaves|setWaypointBehaviour|setWaypointCombatMode|setWaypointCompletionRadius|setWaypointDescription|setWaypointForceBehaviour|setWaypointFormation|setWaypointHousePosition|setWaypointLoiterRadius|setWaypointLoiterType|setWaypointName|setWaypointPosition|setWaypointScript|setWaypointSpeed|setWaypointStatements|setWaypointTimeout|setWaypointType|setWaypointVisible|setWeaponReloadingTime|setWind|setWindDir|setWindForce|setWindStr|setWingForceScaleRTD|setWPPos|show3DIcons|showChat|showCinemaBorder|showCommandingMenu|showCompass|showCuratorCompass|showGPS|showHUD|showLegend|showMap|shownArtilleryComputer|shownChat|shownCompass|shownCuratorCompass|showNewEditorObject|shownGPS|shownHUD|shownMap|shownPad|shownRadio|shownScoretable|shownUAVFeed|shownWarrant|shownWatch|showPad|showRadio|showScoretable|showSubtitles|showUAVFeed|showWarrant|showWatch|showWaypoint|showWaypoints|side|sideAmbientLife|sideChat|sideEmpty|sideEnemy|sideFriendly|sideLogic|sideRadio|sideUnknown|simpleTasks|simulationEnabled|simulCloudDensity|simulCloudOcclusion|simulInClouds|simulWeatherSync|sin|size|sizeOf|skill|skillFinal|skipTime|sleep|sliderPosition|sliderRange|sliderSetPosition|sliderSetRange|sliderSetSpeed|sliderSpeed|slingLoadAssistantShown|soldierMagazines|someAmmo|sort|soundVolume|speaker|speed|speedMode|splitString|sqrt|squadParams|stance|startLoadingScreen|stop|stopEngineRTD|stopped|str|sunOrMoon|supportInfo|suppressFor|surfaceIsWater|surfaceNormal|surfaceType|swimInDepth|switchableUnits|switchAction|switchCamera|switchGesture|switchLight|switchMove|synchronizedObjects|synchronizedTriggers|synchronizedWaypoints|synchronizeObjectsAdd|synchronizeObjectsRemove|synchronizeTrigger|synchronizeWaypoint|systemChat|systemOfUnits|tan|targetKnowledge|targets|targetsAggregate|targetsQuery|taskAlwaysVisible|taskChildren|taskCompleted|taskCustomData|taskDescription|taskDestination|taskHint|taskMarkerOffset|taskNull|taskParent|taskResult|taskState|taskType|teamMember|teamMemberNull|teamName|teams|teamSwitch|teamSwitchEnabled|teamType|terminate|terrainIntersect|terrainIntersectASL|terrainIntersectAtASL|text|textLog|textLogFormat|tg|time|timeMultiplier|titleCut|titleFadeOut|titleObj|titleRsc|titleText|toArray|toFixed|toLower|toString|toUpper|triggerActivated|triggerActivation|triggerArea|triggerAttachedVehicle|triggerAttachObject|triggerAttachVehicle|triggerDynamicSimulation|triggerStatements|triggerText|triggerTimeout|triggerTimeoutCurrent|triggerType|turretLocal|turretOwner|turretUnit|tvAdd|tvClear|tvCollapse|tvCollapseAll|tvCount|tvCurSel|tvData|tvDelete|tvExpand|tvExpandAll|tvPicture|tvPictureRight|tvSetColor|tvSetCurSel|tvSetData|tvSetPicture|tvSetPictureColor|tvSetPictureColorDisabled|tvSetPictureColorSelected|tvSetPictureRight|tvSetPictureRightColor|tvSetPictureRightColorDisabled|tvSetPictureRightColorSelected|tvSetSelectColor|tvSetText|tvSetTooltip|tvSetValue|tvSort|tvSortByValue|tvText|tvTooltip|tvValue|type|typeName|typeOf|UAVControl|uiNamespace|uiSleep|unassignCurator|unassignItem|unassignTeam|unassignVehicle|underwater|uniform|uniformContainer|uniformItems|uniformMagazines|unitAddons|unitAimPosition|unitAimPositionVisual|unitBackpack|unitIsUAV|unitPos|unitReady|unitRecoilCoefficient|units|unitsBelowHeight|unlinkItem|unlockAchievement|unregisterTask|updateDrawIcon|updateMenuItem|updateObjectTree|useAIOperMapObstructionTest|useAISteeringComponent|useAudioTimeForMoves|userInputDisabled|vectorAdd|vectorCos|vectorCrossProduct|vectorDiff|vectorDir|vectorDirVisual|vectorDistance|vectorDistanceSqr|vectorDotProduct|vectorFromTo|vectorMagnitude|vectorMagnitudeSqr|vectorModelToWorld|vectorModelToWorldVisual|vectorMultiply|vectorNormalized|vectorUp|vectorUpVisual|vectorWorldToModel|vectorWorldToModelVisual|vehicle|vehicleCargoEnabled|vehicleChat|vehicleRadio|vehicleReceiveRemoteTargets|vehicleReportOwnPosition|vehicleReportRemoteTargets|vehicles|vehicleVarName|velocity|velocityModelSpace|verifySignature|vest|vestContainer|vestItems|vestMagazines|viewDistance|visibleCompass|visibleGPS|visibleMap|visiblePosition|visiblePositionASL|visibleScoretable|visibleWatch|waitUntil|waves|waypointAttachedObject|waypointAttachedVehicle|waypointAttachObject|waypointAttachVehicle|waypointBehaviour|waypointCombatMode|waypointCompletionRadius|waypointDescription|waypointForceBehaviour|waypointFormation|waypointHousePosition|waypointLoiterRadius|waypointLoiterType|waypointName|waypointPosition|waypoints|waypointScript|waypointsEnabledUAV|waypointShow|waypointSpeed|waypointStatements|waypointTimeout|waypointTimeoutCurrent|waypointType|waypointVisible|weaponAccessories|weaponAccessoriesCargo|weaponCargo|weaponDirection|weaponInertia|weaponLowered|weapons|weaponsItems|weaponsItemsCargo|weaponState|weaponsTurret|weightRTD|west|WFSideText|wind|windDir|windRTD|windStr|wingsForcesRTD|worldName|worldSize|worldToModel|worldToModelVisual|worldToScreen)\b/i,number:/(?:\$|\b0x)[\da-f]+\b|(?:\B\.\d+|\b\d+(?:\.\d+)?)(?:e[+-]?\d+)?\b/i,operator:/##|>>|&&|\|\||[!=<>]=?|[-+*/%#^]|\b(?:and|mod|not|or)\b/i,"magic-variable":{pattern:/\b(?:_exception|_fnc_scriptName|_fnc_scriptNameParent|_forEachIndex|_this|_thisEventHandler|_thisFSM|_thisScript|_x|this|thisList|thisTrigger)\b/i,alias:"keyword"},constant:/\bDIK(?:_[a-z\d]+)+\b/i}),e.languages.insertBefore("sqf","string",{macro:{pattern:/(^[ \t]*)#[a-z](?:[^\r\n\\]|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{directive:{pattern:/#[a-z]+\b/i,alias:"keyword"},comment:e.languages.sqf.comment}}}),delete e.languages.sqf["class-name"]}e.exports=t,t.displayName="sqf",t.aliases=[]},11114(e){"use strict";function t(e){e.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},variable:[{pattern:/@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,greedy:!0},/@[\w.$]+/],string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/,greedy:!0,lookbehind:!0},function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:_INSERT|COL)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:S|ING)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:TRUE|FALSE|NULL)\b/i,number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|IN|ILIKE|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/}}e.exports=t,t.displayName="sql",t.aliases=[]},67386(e){"use strict";function t(e){e.languages.squirrel=e.languages.extend("clike",{comment:[e.languages.clike.comment[0],{pattern:/(^|[^\\:])(?:\/\/|#).*/,lookbehind:!0,greedy:!0}],string:[{pattern:/(^|[^\\"'@])(?:@"(?:[^"]|"")*"(?!")|"(?:[^\\\r\n"]|\\.)*")/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\"'])'(?:[^\\']|\\(?:[xuU][0-9a-fA-F]{0,8}|[\s\S]))'/,lookbehind:!0,greedy:!0}],"class-name":{pattern:/(\b(?:class|enum|extends|instanceof)\s+)\w+(?:\.\w+)*/,lookbehind:!0,inside:{punctuation:/\./}},keyword:/\b(?:base|break|case|catch|class|clone|const|constructor|continue|default|delete|else|enum|extends|for|foreach|function|if|in|instanceof|local|null|resume|return|static|switch|this|throw|try|typeof|while|yield|__LINE__|__FILE__)\b/,number:/\b(?:0x[0-9a-fA-F]+|\d+(?:\.(?:\d+|[eE][+-]?\d+))?)\b/,operator:/\+\+|--|<=>|<[-<]|>>>?|&&?|\|\|?|[-+*/%!=<>]=?|[~^]|::?/,punctuation:/[(){}\[\],;.]/}),e.languages.insertBefore("squirrel","operator",{"attribute-punctuation":{pattern:/<\/|\/>/,alias:"important"},lambda:{pattern:/@(?=\()/,alias:"operator"}})}e.exports=t,t.displayName="squirrel",t.aliases=[]},28067(e){"use strict";function t(e){e.languages.stan={comment:/\/\/.*|\/\*[\s\S]*?\*\/|#(?!include).*/,string:{pattern:/"[\x20\x21\x23-\x5B\x5D-\x7E]*"/,greedy:!0},directive:{pattern:/^([ \t]*)#include\b.*/m,lookbehind:!0,alias:"property"},"function-arg":{pattern:/(\b(?:algebra_solver|integrate_1d|integrate_ode|integrate_ode_bdf|integrate_ode_rk45|map_rect)\s*\(\s*)[a-zA-Z]\w*/,lookbehind:!0,alias:"function"},constraint:{pattern:/(\b(?:int|matrix|real|row_vector|vector)\s*)<[^<>]*>/,lookbehind:!0,inside:{expression:{pattern:/(=\s*)\S(?:\S|\s+(?!\s))*?(?=\s*(?:>$|,\s*\w+\s*=))/,lookbehind:!0,inside:null},property:/\b[a-z]\w*(?=\s*=)/i,operator:/=/,punctuation:/^<|>$|,/}},keyword:[/\b(?:break|cholesky_factor_corr|cholesky_factor_cov|continue|corr_matrix|cov_matrix|data|else|for|functions|generated|if|in|increment_log_prob|int|matrix|model|ordered|parameters|positive_ordered|print|quantities|real|reject|return|row_vector|simplex|target|transformed|unit_vector|vector|void|while)\b/,/\b(?:algebra_solver|integrate_1d|integrate_ode|integrate_ode_bdf|integrate_ode_rk45|map_rect)\b/],function:/\b[a-z]\w*(?=\s*\()/i,number:/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:E[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,operator:/<-|\.[*/]=?|\|\|?|&&|[!=<>+\-*/]=?|['^%~?:]/,punctuation:/[()\[\]{},;]/},e.languages.stan.constraint.inside.expression.inside=e.languages.stan}e.exports=t,t.displayName="stan",t.aliases=[]},49168(e){"use strict";function t(e){var t,n,r,i;t=e,(i={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},url:{pattern:/\burl\((["']?).*?\1\)/i,greedy:!0},string:{pattern:/("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*\1/,greedy:!0},interpolation:null,func:null,important:/\B!(?:important|optional)\b/i,keyword:{pattern:/(^|\s+)(?:(?:if|else|for|return|unless)(?=\s|$)|@[\w-]+)/,lookbehind:!0},hexcode:/#[\da-f]{3,6}/i,color:[/\b(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\b/i,{pattern:/\b(?:rgb|hsl)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:rgb|hsl)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:n={pattern:/(\b\d+)(?:%|[a-z]+)/,lookbehind:!0},number:r={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0},function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:n,boolean:/\b(?:true|false)\b/,operator:[/~|[+!\/%<>?=]=?|[-:]=|\*[*=]?|\.{2,3}|&&|\|\||\B-\B|\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\b/],number:r,punctuation:/[{}()\[\];:,]/}).interpolation={pattern:/\{[^\r\n}:]+\}/,alias:"variable",inside:{delimiter:{pattern:/^\{|\}$/,alias:"punctuation"},rest:i}},i.func={pattern:/[\w-]+\([^)]*\).*/,inside:{function:/^[^(]+/,rest:i}},t.languages.stylus={"atrule-declaration":{pattern:/(^[ \t]*)@.+/m,lookbehind:!0,inside:{atrule:/^@[\w-]+/,rest:i}},"variable-declaration":{pattern:/(^[ \t]*)[\w$-]+\s*.?=[ \t]*(?:\{[^{}]*\}|\S.*|$)/m,lookbehind:!0,inside:{variable:/^\S+/,rest:i}},statement:{pattern:/(^[ \t]*)(?:if|else|for|return|unless)[ \t].+/m,lookbehind:!0,inside:{keyword:/^\S+/,rest:i}},"property-declaration":{pattern:/((?:^|\{)([ \t]*))(?:[\w-]|\{[^}\r\n]+\})+(?:\s*:\s*|[ \t]+)(?!\s)[^{\r\n]*(?:;|[^{\r\n,]$(?!(?:\r?\n|\r)(?:\{|\2[ \t])))/m,lookbehind:!0,inside:{property:{pattern:/^[^\s:]+/,inside:{interpolation:i.interpolation}},rest:i}},selector:{pattern:/(^[ \t]*)(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)(?:(?:\r?\n|\r)(?:\1(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)))*(?:,$|\{|(?=(?:\r?\n|\r)(?:\{|\1[ \t])))/m,lookbehind:!0,inside:{interpolation:i.interpolation,comment:i.comment,punctuation:/[{},]/}},func:i.func,string:i.string,comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0,greedy:!0},interpolation:i.interpolation,punctuation:/[{}()\[\];:.]/}}e.exports=t,t.displayName="stylus",t.aliases=[]},23651(e){"use strict";function t(e){e.languages.swift=e.languages.extend("clike",{string:{pattern:/("|')(?:\\(?:\((?:[^()]|\([^)]+\))+\)|\r\n|[^(])|(?!\1)[^\\\r\n])*\1/,greedy:!0,inside:{interpolation:{pattern:/\\\((?:[^()]|\([^)]+\))+\)/,inside:{delimiter:{pattern:/^\\\(|\)$/,alias:"variable"}}}}},keyword:/\b(?:as|associativity|break|case|catch|class|continue|convenience|default|defer|deinit|didSet|do|dynamic(?:Type)?|else|enum|extension|fallthrough|final|for|func|get|guard|if|import|in|infix|init|inout|internal|is|lazy|left|let|mutating|new|none|nonmutating|operator|optional|override|postfix|precedence|prefix|private|protocol|public|repeat|required|rethrows|return|right|safe|self|Self|set|some|static|struct|subscript|super|switch|throws?|try|Type|typealias|unowned|unsafe|var|weak|where|while|willSet|__(?:COLUMN__|FILE__|FUNCTION__|LINE__))\b/,number:/\b(?:[\d_]+(?:\.[\de_]+)?|0x[a-f0-9_]+(?:\.[a-f0-9p_]+)?|0b[01_]+|0o[0-7_]+)\b/i,constant:/\b(?:nil|[A-Z_]{2,}|k[A-Z][A-Za-z_]+)\b/,atrule:/@\b(?:IB(?:Outlet|Designable|Action|Inspectable)|class_protocol|exported|noreturn|NS(?:Copying|Managed)|objc|UIApplicationMain|auto_closure)\b/,builtin:/\b(?:[A-Z]\S+|abs|advance|alignof(?:Value)?|assert|contains|count(?:Elements)?|debugPrint(?:ln)?|distance|drop(?:First|Last)|dump|enumerate|equal|filter|find|first|getVaList|indices|isEmpty|join|last|lexicographicalCompare|map|max(?:Element)?|min(?:Element)?|numericCast|overlaps|partition|print(?:ln)?|reduce|reflect|reverse|sizeof(?:Value)?|sort(?:ed)?|split|startsWith|stride(?:of(?:Value)?)?|suffix|swap|toDebugString|toString|transcode|underestimateCount|unsafeBitCast|with(?:ExtendedLifetime|Unsafe(?:MutablePointers?|Pointers?)|VaList))\b/}),e.languages.swift.string.inside.interpolation.inside.rest=e.languages.swift}e.exports=t,t.displayName="swift",t.aliases=[]},32268(e,t,n){"use strict";var r=n(2329),i=n(61958);function a(e){e.register(r),e.register(i),e.languages.t4=e.languages["t4-cs"]=e.languages["t4-templating"].createT4("csharp")}e.exports=a,a.displayName="t4Cs",a.aliases=[]},2329(e){"use strict";function t(e){!function(e){function t(e,t,n){return{pattern:RegExp("<#"+e+"[\\s\\S]*?#>"),alias:"block",inside:{delimiter:{pattern:RegExp("^<#"+e+"|#>$"),alias:"important"},content:{pattern:/[\s\S]+/,inside:t,alias:n}}}}function n(n){var r=e.languages[n],i="language-"+n;return{block:{pattern:/<#[\s\S]+?#>/,inside:{directive:t("@",{"attr-value":{pattern:/=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+)/,inside:{punctuation:/^=|^["']|["']$/}},keyword:/\b\w+(?=\s)/,"attr-name":/\b\w+/}),expression:t("=",r,i),"class-feature":t("\\+",r,i),standard:t("",r,i)}}}}e.languages["t4-templating"]=Object.defineProperty({},"createT4",{value:n})}(e)}e.exports=t,t.displayName="t4Templating",t.aliases=[]},82996(e,t,n){"use strict";var r=n(2329),i=n(53813);function a(e){e.register(r),e.register(i),e.languages["t4-vb"]=e.languages["t4-templating"].createT4("vbnet")}e.exports=a,a.displayName="t4Vb",a.aliases=[]},17290(e,t,n){"use strict";var r=n(65039);function i(e){e.register(r),e.languages.tap={fail:/not ok[^#{\n\r]*/,pass:/ok[^#{\n\r]*/,pragma:/pragma [+-][a-z]+/,bailout:/bail out!.*/i,version:/TAP version \d+/i,plan:/\b\d+\.\.\d+(?: +#.*)?/,subtest:{pattern:/# Subtest(?:: .*)?/,greedy:!0},punctuation:/[{}]/,directive:/#.*/,yamlish:{pattern:/(^[ \t]*)---[\s\S]*?[\r\n][ \t]*\.\.\.$/m,lookbehind:!0,inside:e.languages.yaml,alias:"language-yaml"}}}e.exports=i,i.displayName="tap",i.aliases=[]},67989(e){"use strict";function t(e){e.languages.tcl={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0},string:{pattern:/"(?:[^"\\\r\n]|\\(?:\r\n|[\s\S]))*"/,greedy:!0},variable:[{pattern:/(\$)(?:::)?(?:[a-zA-Z0-9]+::)*\w+/,lookbehind:!0},{pattern:/(\$)\{[^}]+\}/,lookbehind:!0},{pattern:/(^[\t ]*set[ \t]+)(?:::)?(?:[a-zA-Z0-9]+::)*\w+/m,lookbehind:!0}],function:{pattern:/(^[\t ]*proc[ \t]+)\S+/m,lookbehind:!0},builtin:[{pattern:/(^[\t ]*)(?:proc|return|class|error|eval|exit|for|foreach|if|switch|while|break|continue)\b/m,lookbehind:!0},/\b(?:elseif|else)\b/],scope:{pattern:/(^[\t ]*)(?:global|upvar|variable)\b/m,lookbehind:!0,alias:"constant"},keyword:{pattern:/(^[\t ]*|\[)(?:after|append|apply|array|auto_(?:execok|import|load|mkindex|qualify|reset)|automkindex_old|bgerror|binary|catch|cd|chan|clock|close|concat|dde|dict|encoding|eof|exec|expr|fblocked|fconfigure|fcopy|file(?:event|name)?|flush|gets|glob|history|http|incr|info|interp|join|lappend|lassign|lindex|linsert|list|llength|load|lrange|lrepeat|lreplace|lreverse|lsearch|lset|lsort|math(?:func|op)|memory|msgcat|namespace|open|package|parray|pid|pkg_mkIndex|platform|puts|pwd|re_syntax|read|refchan|regexp|registry|regsub|rename|Safe_Base|scan|seek|set|socket|source|split|string|subst|Tcl|tcl(?:_endOfWord|_findLibrary|startOf(?:Next|Previous)Word|wordBreak(?:After|Before)|test|vars)|tell|time|tm|trace|unknown|unload|unset|update|uplevel|vwait)\b/m,lookbehind:!0},operator:/!=?|\*\*?|==|&&?|\|\|?|<[=<]?|>[=>]?|[-+~\/%?^]|\b(?:eq|ne|in|ni)\b/,punctuation:/[{}()\[\]]/}}e.exports=t,t.displayName="tcl",t.aliases=[]},31065(e){"use strict";function t(e){!function(e){var t=/\([^|()\n]+\)|\[[^\]\n]+\]|\{[^}\n]+\}/.source,n=/\)|\((?![^|()\n]+\))/.source;function r(e,r){return RegExp(e.replace(//g,function(){return"(?:"+t+")"}).replace(//g,function(){return"(?:"+n+")"}),r||"")}var i={css:{pattern:/\{[^{}]+\}/,inside:{rest:e.languages.css}},"class-id":{pattern:/(\()[^()]+(?=\))/,lookbehind:!0,alias:"attr-value"},lang:{pattern:/(\[)[^\[\]]+(?=\])/,lookbehind:!0,alias:"attr-value"},punctuation:/[\\\/]\d+|\S/},a=e.languages.textile=e.languages.extend("markup",{phrase:{pattern:/(^|\r|\n)\S[\s\S]*?(?=$|\r?\n\r?\n|\r\r)/,lookbehind:!0,inside:{"block-tag":{pattern:r(/^[a-z]\w*(?:||[<>=])*\./.source),inside:{modifier:{pattern:r(/(^[a-z]\w*)(?:||[<>=])+(?=\.)/.source),lookbehind:!0,inside:i},tag:/^[a-z]\w*/,punctuation:/\.$/}},list:{pattern:r(/^[*#]+*\s+\S.*/.source,"m"),inside:{modifier:{pattern:r(/(^[*#]+)+/.source),lookbehind:!0,inside:i},punctuation:/^[*#]+/}},table:{pattern:r(/^(?:(?:||[<>=^~])+\.\s*)?(?:\|(?:(?:||[<>=^~_]|[\\/]\d+)+\.|(?!(?:||[<>=^~_]|[\\/]\d+)+\.))[^|]*)+\|/.source,"m"),inside:{modifier:{pattern:r(/(^|\|(?:\r?\n|\r)?)(?:||[<>=^~_]|[\\/]\d+)+(?=\.)/.source),lookbehind:!0,inside:i},punctuation:/\||^\./}},inline:{pattern:r(/(^|[^a-zA-Z\d])(\*\*|__|\?\?|[*_%@+\-^~])*.+?\2(?![a-zA-Z\d])/.source),lookbehind:!0,inside:{bold:{pattern:r(/(^(\*\*?)*).+?(?=\2)/.source),lookbehind:!0},italic:{pattern:r(/(^(__?)*).+?(?=\2)/.source),lookbehind:!0},cite:{pattern:r(/(^\?\?*).+?(?=\?\?)/.source),lookbehind:!0,alias:"string"},code:{pattern:r(/(^@*).+?(?=@)/.source),lookbehind:!0,alias:"keyword"},inserted:{pattern:r(/(^\+*).+?(?=\+)/.source),lookbehind:!0},deleted:{pattern:r(/(^-*).+?(?=-)/.source),lookbehind:!0},span:{pattern:r(/(^%*).+?(?=%)/.source),lookbehind:!0},modifier:{pattern:r(/(^\*\*|__|\?\?|[*_%@+\-^~])+/.source),lookbehind:!0,inside:i},punctuation:/[*_%?@+\-^~]+/}},"link-ref":{pattern:/^\[[^\]]+\]\S+$/m,inside:{string:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0},url:{pattern:/(^\])\S+$/,lookbehind:!0},punctuation:/[\[\]]/}},link:{pattern:r(/"*[^"]+":.+?(?=[^\w/]?(?:\s|$))/.source),inside:{text:{pattern:r(/(^"*)[^"]+(?=")/.source),lookbehind:!0},modifier:{pattern:r(/(^")+/.source),lookbehind:!0,inside:i},url:{pattern:/(:).+/,lookbehind:!0},punctuation:/[":]/}},image:{pattern:r(/!(?:||[<>=])*(?![<>=])[^!\s()]+(?:\([^)]+\))?!(?::.+?(?=[^\w/]?(?:\s|$)))?/.source),inside:{source:{pattern:r(/(^!(?:||[<>=])*)(?![<>=])[^!\s()]+(?:\([^)]+\))?(?=!)/.source),lookbehind:!0,alias:"url"},modifier:{pattern:r(/(^!)(?:||[<>=])+/.source),lookbehind:!0,inside:i},url:{pattern:/(:).+/,lookbehind:!0},punctuation:/[!:]/}},footnote:{pattern:/\b\[\d+\]/,alias:"comment",inside:{punctuation:/\[|\]/}},acronym:{pattern:/\b[A-Z\d]+\([^)]+\)/,inside:{comment:{pattern:/(\()[^()]+(?=\))/,lookbehind:!0},punctuation:/[()]/}},mark:{pattern:/\b\((?:TM|R|C)\)/,alias:"comment",inside:{punctuation:/[()]/}}}}}),o=a.phrase.inside,s={inline:o.inline,link:o.link,image:o.image,footnote:o.footnote,acronym:o.acronym,mark:o.mark};a.tag.pattern=/<\/?(?!\d)[a-z0-9]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+))?)*\s*\/?>/i;var u=o.inline.inside;u.bold.inside=s,u.italic.inside=s,u.inserted.inside=s,u.deleted.inside=s,u.span.inside=s;var c=o.table.inside;c.inline=s.inline,c.link=s.link,c.image=s.image,c.footnote=s.footnote,c.acronym=s.acronym,c.mark=s.mark}(e)}e.exports=t,t.displayName="textile",t.aliases=[]},85572(e){"use strict";function t(e){!function(e){var t=/(?:[\w-]+|'[^'\n\r]*'|"(?:\\.|[^\\"\r\n])*")/.source;function n(e){return e.replace(/__/g,function(){return t})}e.languages.toml={comment:{pattern:/#.*/,greedy:!0},table:{pattern:RegExp(n(/(^[\t ]*\[\s*(?:\[\s*)?)__(?:\s*\.\s*__)*(?=\s*\])/.source),"m"),lookbehind:!0,greedy:!0,alias:"class-name"},key:{pattern:RegExp(n(/(^[\t ]*|[{,]\s*)__(?:\s*\.\s*__)*(?=\s*=)/.source),"m"),lookbehind:!0,greedy:!0,alias:"property"},string:{pattern:/"""(?:\\[\s\S]|[^\\])*?"""|'''[\s\S]*?'''|'[^'\n\r]*'|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},date:[{pattern:/\b\d{4}-\d{2}-\d{2}(?:[T\s]\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})?)?\b/i,alias:"number"},{pattern:/\b\d{2}:\d{2}:\d{2}(?:\.\d+)?\b/,alias:"number"}],number:/(?:\b0(?:x[\da-zA-Z]+(?:_[\da-zA-Z]+)*|o[0-7]+(?:_[0-7]+)*|b[10]+(?:_[10]+)*))\b|[-+]?\b\d+(?:_\d+)*(?:\.\d+(?:_\d+)*)?(?:[eE][+-]?\d+(?:_\d+)*)?\b|[-+]?\b(?:inf|nan)\b/,boolean:/\b(?:true|false)\b/,punctuation:/[.,=[\]{}]/}}(e)}e.exports=t,t.displayName="toml",t.aliases=[]},87041(e,t,n){"use strict";var r=n(96412),i=n(4979);function a(e){var t,n,a;e.register(r),e.register(i),n=(t=e).util.clone(t.languages.typescript),t.languages.tsx=t.languages.extend("jsx",n),(a=t.languages.tsx.tag).pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+a.pattern.source+")",a.pattern.flags),a.lookbehind=!0}e.exports=a,a.displayName="tsx",a.aliases=[]},61028(e,t,n){"use strict";var r=n(93205);function i(e){var t;e.register(r),(t=e).languages.tt2=t.languages.extend("clike",{comment:/#.*|\[%#[\s\S]*?%\]/,keyword:/\b(?:BLOCK|CALL|CASE|CATCH|CLEAR|DEBUG|DEFAULT|ELSE|ELSIF|END|FILTER|FINAL|FOREACH|GET|IF|IN|INCLUDE|INSERT|LAST|MACRO|META|NEXT|PERL|PROCESS|RAWPERL|RETURN|SET|STOP|TAGS|THROW|TRY|SWITCH|UNLESS|USE|WHILE|WRAPPER)\b/,punctuation:/[[\]{},()]/}),t.languages.insertBefore("tt2","number",{operator:/=[>=]?|!=?|<=?|>=?|&&|\|\|?|\b(?:and|or|not)\b/,variable:{pattern:/\b[a-z]\w*(?:\s*\.\s*(?:\d+|\$?[a-z]\w*))*\b/i}}),t.languages.insertBefore("tt2","keyword",{delimiter:{pattern:/^(?:\[%|%%)-?|-?%\]$/,alias:"punctuation"}}),t.languages.insertBefore("tt2","string",{"single-quoted-string":{pattern:/'[^\\']*(?:\\[\s\S][^\\']*)*'/,greedy:!0,alias:"string"},"double-quoted-string":{pattern:/"[^\\"]*(?:\\[\s\S][^\\"]*)*"/,greedy:!0,alias:"string",inside:{variable:{pattern:/\$(?:[a-z]\w*(?:\.(?:\d+|\$?[a-z]\w*))*)/i}}}}),delete t.languages.tt2.string,t.hooks.add("before-tokenize",function(e){var n=/\[%[\s\S]+?%\]/g;t.languages["markup-templating"].buildPlaceholders(e,"tt2",n)}),t.hooks.add("after-tokenize",function(e){t.languages["markup-templating"].tokenizePlaceholders(e,"tt2")})}e.exports=i,i.displayName="tt2",i.aliases=[]},24691(e){"use strict";function t(e){e.languages.turtle={comment:{pattern:/#.*/,greedy:!0},"multiline-string":{pattern:/"""(?:(?:""?)?(?:[^"\\]|\\.))*"""|'''(?:(?:''?)?(?:[^'\\]|\\.))*'''/,greedy:!0,alias:"string",inside:{comment:/#.*/}},string:{pattern:/"(?:[^\\"\r\n]|\\.)*"|'(?:[^\\'\r\n]|\\.)*'/,greedy:!0},url:{pattern:/<(?:[^\x00-\x20<>"{}|^`\\]|\\(?:u[\da-fA-F]{4}|U[\da-fA-F]{8}))*>/,greedy:!0,inside:{punctuation:/[<>]/}},function:{pattern:/(?:(?![-.\d\xB7])[-.\w\xB7\xC0-\uFFFD]+)?:(?:(?![-.])(?:[-.:\w\xC0-\uFFFD]|%[\da-f]{2}|\\.)+)?/i,inside:{"local-name":{pattern:/([^:]*:)[\s\S]+/,lookbehind:!0},prefix:{pattern:/[\s\S]+/,inside:{punctuation:/:/}}}},number:/[+-]?\b\d+(?:\.\d*)?(?:e[+-]?\d+)?/i,punctuation:/[{}.,;()[\]]|\^\^/,boolean:/\b(?:true|false)\b/,keyword:[/(?:\ba|@prefix|@base)\b|=/,/\b(?:graph|base|prefix)\b/i],tag:{pattern:/@[a-z]+(?:-[a-z\d]+)*/i,inside:{punctuation:/@/}}},e.languages.trig=e.languages.turtle}e.exports=t,t.displayName="turtle",t.aliases=[]},19892(e){"use strict";function t(e){e.languages.twig={comment:/\{#[\s\S]*?#\}/,tag:{pattern:/\{\{[\s\S]*?\}\}|\{%[\s\S]*?%\}/,inside:{ld:{pattern:/^(?:\{\{-?|\{%-?\s*\w+)/,inside:{punctuation:/^(?:\{\{|\{%)-?/,keyword:/\w+/}},rd:{pattern:/-?(?:%\}|\}\})$/,inside:{punctuation:/.+/}},string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,inside:{punctuation:/^['"]|['"]$/}},keyword:/\b(?:even|if|odd)\b/,boolean:/\b(?:true|false|null)\b/,number:/\b0x[\dA-Fa-f]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][-+]?\d+)?/,operator:[{pattern:/(\s)(?:and|b-and|b-xor|b-or|ends with|in|is|matches|not|or|same as|starts with)(?=\s)/,lookbehind:!0},/[=<>]=?|!=|\*\*?|\/\/?|\?:?|[-+~%|]/],property:/\b[a-zA-Z_]\w*\b/,punctuation:/[()\[\]{}:.,]/}},other:{pattern:/\S(?:[\s\S]*\S)?/,inside:e.languages.markup}}}e.exports=t,t.displayName="twig",t.aliases=[]},4979(e){"use strict";function t(e){var t,n;(t=e).languages.typescript=t.languages.extend("javascript",{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:string|Function|any|number|boolean|Array|symbol|console|Promise|unknown|never)\b/}),t.languages.typescript.keyword.push(/\b(?:abstract|as|declare|implements|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)(?!\s*[^\s_${}*a-zA-Z\xA0-\uFFFF])/),delete t.languages.typescript.parameter,delete(n=t.languages.extend("typescript",{}))["class-name"],t.languages.typescript["class-name"].inside=n,t.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:n}}}}),t.languages.ts=t.languages.typescript}e.exports=t,t.displayName="typescript",t.aliases=["ts"]},23159(e){"use strict";function t(e){var t,n;n=/\b(?:ACT|ACTIFSUB|CARRAY|CASE|CLEARGIF|COA|COA_INT|CONSTANTS|CONTENT|CUR|EDITPANEL|EFFECT|EXT|FILE|FLUIDTEMPLATE|FORM|FRAME|FRAMESET|GIFBUILDER|GMENU|GMENU_FOLDOUT|GMENU_LAYERS|GP|HMENU|HRULER|HTML|IENV|IFSUB|IMAGE|IMGMENU|IMGMENUITEM|IMGTEXT|IMG_RESOURCE|INCLUDE_TYPOSCRIPT|JSMENU|JSMENUITEM|LLL|LOAD_REGISTER|NO|PAGE|RECORDS|RESTORE_REGISTER|TEMPLATE|TEXT|TMENU|TMENUITEM|TMENU_LAYERS|USER|USER_INT|_GIFBUILDER|global|globalString|globalVar)\b/,(t=e).languages.typoscript={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0},{pattern:/(^|[^\\:= \t]|(?:^|[^= \t])[ \t]+)\/\/.*/,lookbehind:!0,greedy:!0},{pattern:/(^|[^"'])#.*/,lookbehind:!0,greedy:!0}],function:[{pattern://,inside:{string:{pattern:/"[^"\r\n]*"|'[^'\r\n]*'/,inside:{keyword:n}},keyword:{pattern:/INCLUDE_TYPOSCRIPT/}}},{pattern:/@import\s*(?:"[^"\r\n]*"|'[^'\r\n]*')/,inside:{string:/"[^"\r\n]*"|'[^'\r\n]*'/}}],string:{pattern:/^([^=]*=[< ]?)(?:(?!\]\n).)*/,lookbehind:!0,inside:{function:/\{\$.*\}/,keyword:n,number:/^[0-9]+$/,punctuation:/[,|:]/}},keyword:n,number:{pattern:/\b[0-9]+\s*[.{=]/,inside:{operator:/[.{=]/}},tag:{pattern:/\.?[-\w\\]+\.?/,inside:{punctuation:/\./}},punctuation:/[{}[\];(),.:|]/,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/},t.languages.tsconfig=t.languages.typoscript}e.exports=t,t.displayName="typoscript",t.aliases=["tsconfig"]},34966(e){"use strict";function t(e){e.languages.unrealscript={comment:/\/\/.*|\/\*[\s\S]*?\*\//,string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},category:{pattern:/(\b(?:(?:autoexpand|hide|show)categories|var)\s*\()[^()]+(?=\))/,lookbehind:!0,greedy:!0,alias:"property"},metadata:{pattern:/(\w\s*)<\s*\w+\s*=[^<>|=\r\n]+(?:\|\s*\w+\s*=[^<>|=\r\n]+)*>/,lookbehind:!0,greedy:!0,inside:{property:/\b\w+(?=\s*=)/,operator:/=/,punctuation:/[<>|]/}},macro:{pattern:/`\w+/,alias:"property"},"class-name":{pattern:/(\b(?:class|enum|extends|interface|state(?:\(\))?|struct|within)\s+)\w+/,lookbehind:!0},keyword:/\b(?:abstract|actor|array|auto|autoexpandcategories|bool|break|byte|case|class|classgroup|client|coerce|collapsecategories|config|const|continue|default|defaultproperties|delegate|dependson|deprecated|do|dontcollapsecategories|editconst|editinlinenew|else|enum|event|exec|export|extends|final|float|for|forcescriptorder|foreach|function|goto|guid|hidecategories|hidedropdown|if|ignores|implements|inherits|input|int|interface|iterator|latent|local|material|name|native|nativereplication|noexport|nontransient|noteditinlinenew|notplaceable|operator|optional|out|pawn|perobjectconfig|perobjectlocalized|placeable|postoperator|preoperator|private|protected|reliable|replication|return|server|showcategories|simulated|singular|state|static|string|struct|structdefault|structdefaultproperties|switch|texture|transient|travel|unreliable|until|var|vector|while|within)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,boolean:/\b(?:false|true)\b/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/>>|<<|--|\+\+|\*\*|[-+*/~!=<>$@]=?|&&?|\|\|?|\^\^?|[?:%]|\b(?:Cross|Dot|ClockwiseFrom)\b/,punctuation:/[()[\]{};,.]/},e.languages.uc=e.languages.uscript=e.languages.unrealscript}e.exports=t,t.displayName="unrealscript",t.aliases=["uc","uscript"]},38521(e){"use strict";function t(e){e.languages.uri={scheme:{pattern:/^[a-z][a-z0-9+.-]*:/im,greedy:!0,inside:{"scheme-delimiter":/:$/}},fragment:{pattern:/#[\w\-.~!$&'()*+,;=%:@/?]*/,inside:{"fragment-delimiter":/^#/}},query:{pattern:/\?[\w\-.~!$&'()*+,;=%:@/?]*/,inside:{"query-delimiter":{pattern:/^\?/,greedy:!0},"pair-delimiter":/[&;]/,pair:{pattern:/^[^=][\s\S]*/,inside:{key:/^[^=]+/,value:{pattern:/(^=)[\s\S]+/,lookbehind:!0}}}}},authority:{pattern:RegExp(/^\/\//.source+/(?:[\w\-.~!$&'()*+,;=%:]*@)?/.source+("(?:"+/\[(?:[0-9a-fA-F:.]{2,48}|v[0-9a-fA-F]+\.[\w\-.~!$&'()*+,;=]+)\]/.source+"|")+/[\w\-.~!$&'()*+,;=%]*/.source+")"+/(?::\d*)?/.source,"m"),inside:{"authority-delimiter":/^\/\//,"user-info-segment":{pattern:/^[\w\-.~!$&'()*+,;=%:]*@/,inside:{"user-info-delimiter":/@$/,"user-info":/^[\w\-.~!$&'()*+,;=%:]+/}},"port-segment":{pattern:/:\d*$/,inside:{"port-delimiter":/^:/,port:/^\d+/}},host:{pattern:/[\s\S]+/,inside:{"ip-literal":{pattern:/^\[[\s\S]+\]$/,inside:{"ip-literal-delimiter":/^\[|\]$/,"ipv-future":/^v[\s\S]+/,"ipv6-address":/^[\s\S]+/}},"ipv4-address":/^(?:(?:[03-9]\d?|[12]\d{0,2})\.){3}(?:[03-9]\d?|[12]{0,2})$/}}}},path:{pattern:/^[\w\-.~!$&'()*+,;=%:@/]+/m,inside:{"path-separator":/\//}}},e.languages.url=e.languages.uri}e.exports=t,t.displayName="uri",t.aliases=["url"]},7255(e){"use strict";function t(e){var t,n;n={pattern:/[\s\S]+/,inside:null},(t=e).languages.v=t.languages.extend("clike",{string:[{pattern:/`(?:\\`|\\?[^`]{1,2})`/,alias:"rune"},{pattern:/r?(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,alias:"quoted-string",greedy:!0,inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$(?:\{[^{}]*\}|\w+(?:\.\w+(?:\([^\(\)]*\))?|\[[^\[\]]+\])*)/,lookbehind:!0,inside:{"interpolation-variable":{pattern:/^\$\w[\s\S]*$/,alias:"variable"},"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},"interpolation-expression":n}}}}],"class-name":{pattern:/(\b(?:enum|interface|struct|type)\s+)(?:C\.)?\w+/,lookbehind:!0},keyword:/(?:\b(?:as|asm|assert|atomic|break|chan|const|continue|defer|else|embed|enum|fn|for|__global|go(?:to)?|if|import|in|interface|is|lock|match|module|mut|none|or|pub|return|rlock|select|shared|sizeof|static|struct|type(?:of)?|union|unsafe)|\$(?:if|else|for)|#(?:include|flag))\b/,number:/\b(?:0x[a-f\d]+(?:_[a-f\d]+)*|0b[01]+(?:_[01]+)*|0o[0-7]+(?:_[0-7]+)*|\d+(?:_\d+)*(?:\.\d+(?:_\d+)*)?)\b/i,operator:/~|\?|[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\.?/,builtin:/\b(?:any(?:_int|_float)?|bool|byte(?:ptr)?|charptr|f(?:32|64)|i(?:8|16|nt|64|128)|rune|size_t|string|u(?:16|32|64|128)|voidptr)\b/}),n.inside=t.languages.v,t.languages.insertBefore("v","operator",{attribute:{pattern:/(^[\t ]*)\[(?:deprecated|unsafe_fn|typedef|live|inline|flag|ref_only|windows_stdcall|direct_array_access)\]/m,lookbehind:!0,alias:"annotation",inside:{punctuation:/[\[\]]/,keyword:/\w+/}},generic:{pattern:/<\w+>(?=\s*[\)\{])/,inside:{punctuation:/[<>]/,"class-name":/\w+/}}}),t.languages.insertBefore("v","function",{"generic-function":{pattern:/\b\w+\s*<\w+>(?=\()/,inside:{function:/^\w+/,generic:{pattern:/<\w+>/,inside:t.languages.v.generic.inside}}}})}e.exports=t,t.displayName="v",t.aliases=[]},28173(e){"use strict";function t(e){e.languages.vala=e.languages.extend("clike",{"class-name":[{pattern:/\b[A-Z]\w*(?:\.\w+)*\b(?=(?:\?\s+|\*?\s+\*?)\w)/,inside:{punctuation:/\./}},{pattern:/(\[)[A-Z]\w*(?:\.\w+)*\b/,lookbehind:!0,inside:{punctuation:/\./}},{pattern:/(\b(?:class|interface)\s+[A-Z]\w*(?:\.\w+)*\s*:\s*)[A-Z]\w*(?:\.\w+)*\b/,lookbehind:!0,inside:{punctuation:/\./}},{pattern:/((?:\b(?:class|interface|new|struct|enum)\s+)|(?:catch\s+\())[A-Z]\w*(?:\.\w+)*\b/,lookbehind:!0,inside:{punctuation:/\./}}],keyword:/\b(?:bool|char|double|float|null|size_t|ssize_t|string|unichar|void|int|int8|int16|int32|int64|long|short|uchar|uint|uint8|uint16|uint32|uint64|ulong|ushort|class|delegate|enum|errordomain|interface|namespace|struct|break|continue|do|for|foreach|return|while|else|if|switch|assert|case|default|abstract|const|dynamic|ensures|extern|inline|internal|override|private|protected|public|requires|signal|static|virtual|volatile|weak|async|owned|unowned|try|catch|finally|throw|as|base|construct|delete|get|in|is|lock|new|out|params|ref|sizeof|set|this|throws|typeof|using|value|var|yield)\b/i,function:/\b\w+(?=\s*\()/,number:/(?:\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)(?:f|u?l?)?/i,operator:/\+\+|--|&&|\|\||<<=?|>>=?|=>|->|~|[+\-*\/%&^|=!<>]=?|\?\??|\.\.\./,punctuation:/[{}[\];(),.:]/,constant:/\b[A-Z0-9_]+\b/}),e.languages.insertBefore("vala","string",{"raw-string":{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string"},"template-string":{pattern:/@"[\s\S]*?"/,greedy:!0,inside:{interpolation:{pattern:/\$(?:\([^)]*\)|[a-zA-Z]\w*)/,inside:{delimiter:{pattern:/^\$\(?|\)$/,alias:"punctuation"},rest:e.languages.vala}},string:/[\s\S]+/}}}),e.languages.insertBefore("vala","keyword",{regex:{pattern:/\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[imsx]{0,4}(?=\s*(?:$|[\r\n,.;})\]]))/,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:e.languages.regex},"regex-delimiter":/^\//,"regex-flags":/^[a-z]+$/}}})}e.exports=t,t.displayName="vala",t.aliases=[]},53813(e,t,n){"use strict";var r=n(46241);function i(e){e.register(r),e.languages.vbnet=e.languages.extend("basic",{comment:[{pattern:/(?:!|REM\b).+/i,inside:{keyword:/^REM/i}},{pattern:/(^|[^\\:])'.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(^|[^"])"(?:""|[^"])*"(?!")/i,lookbehind:!0,greedy:!0},keyword:/(?:\b(?:ADDHANDLER|ADDRESSOF|ALIAS|AND|ANDALSO|AS|BEEP|BLOAD|BOOLEAN|BSAVE|BYREF|BYTE|BYVAL|CALL(?: ABSOLUTE)?|CASE|CATCH|CBOOL|CBYTE|CCHAR|CDATE|CDEC|CDBL|CHAIN|CHAR|CHDIR|CINT|CLASS|CLEAR|CLNG|CLOSE|CLS|COBJ|COM|COMMON|CONST|CONTINUE|CSBYTE|CSHORT|CSNG|CSTR|CTYPE|CUINT|CULNG|CUSHORT|DATA|DATE|DECIMAL|DECLARE|DEFAULT|DEF(?: FN| SEG|DBL|INT|LNG|SNG|STR)|DELEGATE|DIM|DIRECTCAST|DO|DOUBLE|ELSE|ELSEIF|END|ENUM|ENVIRON|ERASE|ERROR|EVENT|EXIT|FALSE|FIELD|FILES|FINALLY|FOR(?: EACH)?|FRIEND|FUNCTION|GET|GETTYPE|GETXMLNAMESPACE|GLOBAL|GOSUB|GOTO|HANDLES|IF|IMPLEMENTS|IMPORTS|IN|INHERITS|INPUT|INTEGER|INTERFACE|IOCTL|IS|ISNOT|KEY|KILL|LINE INPUT|LET|LIB|LIKE|LOCATE|LOCK|LONG|LOOP|LSET|ME|MKDIR|MOD|MODULE|MUSTINHERIT|MUSTOVERRIDE|MYBASE|MYCLASS|NAME|NAMESPACE|NARROWING|NEW|NEXT|NOT|NOTHING|NOTINHERITABLE|NOTOVERRIDABLE|OBJECT|OF|OFF|ON(?: COM| ERROR| KEY| TIMER)?|OPERATOR|OPEN|OPTION(?: BASE)?|OPTIONAL|OR|ORELSE|OUT|OVERLOADS|OVERRIDABLE|OVERRIDES|PARAMARRAY|PARTIAL|POKE|PRIVATE|PROPERTY|PROTECTED|PUBLIC|PUT|RAISEEVENT|READ|READONLY|REDIM|REM|REMOVEHANDLER|RESTORE|RESUME|RETURN|RMDIR|RSET|RUN|SBYTE|SELECT(?: CASE)?|SET|SHADOWS|SHARED|SHORT|SINGLE|SHELL|SLEEP|STATIC|STEP|STOP|STRING|STRUCTURE|SUB|SYNCLOCK|SWAP|SYSTEM|THEN|THROW|TIMER|TO|TROFF|TRON|TRUE|TRY|TRYCAST|TYPE|TYPEOF|UINTEGER|ULONG|UNLOCK|UNTIL|USHORT|USING|VIEW PRINT|WAIT|WEND|WHEN|WHILE|WIDENING|WITH|WITHEVENTS|WRITE|WRITEONLY|XOR)|\B(?:#CONST|#ELSE|#ELSEIF|#END|#IF))(?:\$|\b)/i,punctuation:/[,;:(){}]/})}e.exports=i,i.displayName="vbnet",i.aliases=[]},46891(e){"use strict";function t(e){var t,n;(t=e).languages.velocity=t.languages.extend("markup",{}),(n={variable:{pattern:/(^|[^\\](?:\\\\)*)\$!?(?:[a-z][\w-]*(?:\([^)]*\))?(?:\.[a-z][\w-]*(?:\([^)]*\))?|\[[^\]]+\])*|\{[^}]+\})/i,lookbehind:!0,inside:{}},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},number:/\b\d+\b/,boolean:/\b(?:true|false)\b/,operator:/[=!<>]=?|[+*/%-]|&&|\|\||\.\.|\b(?:eq|g[et]|l[et]|n(?:e|ot))\b/,punctuation:/[(){}[\]:,.]/}).variable.inside={string:n.string,function:{pattern:/([^\w-])[a-z][\w-]*(?=\()/,lookbehind:!0},number:n.number,boolean:n.boolean,punctuation:n.punctuation},t.languages.insertBefore("velocity","comment",{unparsed:{pattern:/(^|[^\\])#\[\[[\s\S]*?\]\]#/,lookbehind:!0,greedy:!0,inside:{punctuation:/^#\[\[|\]\]#$/}},"velocity-comment":[{pattern:/(^|[^\\])#\*[\s\S]*?\*#/,lookbehind:!0,greedy:!0,alias:"comment"},{pattern:/(^|[^\\])##.*/,lookbehind:!0,greedy:!0,alias:"comment"}],directive:{pattern:/(^|[^\\](?:\\\\)*)#@?(?:[a-z][\w-]*|\{[a-z][\w-]*\})(?:\s*\((?:[^()]|\([^()]*\))*\))?/i,lookbehind:!0,inside:{keyword:{pattern:/^#@?(?:[a-z][\w-]*|\{[a-z][\w-]*\})|\bin\b/,inside:{punctuation:/[{}]/}},rest:n}},variable:n.variable}),t.languages.velocity.tag.inside["attr-value"].inside.rest=t.languages.velocity}e.exports=t,t.displayName="velocity",t.aliases=[]},91824(e){"use strict";function t(e){e.languages.verilog={comment:/\/\/.*|\/\*[\s\S]*?\*\//,string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},property:/\B\$\w+\b/,constant:/\B`\w+\b/,function:/\b\w+(?=\()/,keyword:/\b(?:alias|and|assert|assign|assume|automatic|before|begin|bind|bins|binsof|bit|break|buf|bufif0|bufif1|byte|class|case|casex|casez|cell|chandle|clocking|cmos|config|const|constraint|context|continue|cover|covergroup|coverpoint|cross|deassign|default|defparam|design|disable|dist|do|edge|else|end|endcase|endclass|endclocking|endconfig|endfunction|endgenerate|endgroup|endinterface|endmodule|endpackage|endprimitive|endprogram|endproperty|endspecify|endsequence|endtable|endtask|enum|event|expect|export|extends|extern|final|first_match|for|force|foreach|forever|fork|forkjoin|function|generate|genvar|highz0|highz1|if|iff|ifnone|ignore_bins|illegal_bins|import|incdir|include|initial|inout|input|inside|instance|int|integer|interface|intersect|join|join_any|join_none|large|liblist|library|local|localparam|logic|longint|macromodule|matches|medium|modport|module|nand|negedge|new|nmos|nor|noshowcancelled|not|notif0|notif1|null|or|output|package|packed|parameter|pmos|posedge|primitive|priority|program|property|protected|pull0|pull1|pulldown|pullup|pulsestyle_onevent|pulsestyle_ondetect|pure|rand|randc|randcase|randsequence|rcmos|real|realtime|ref|reg|release|repeat|return|rnmos|rpmos|rtran|rtranif0|rtranif1|scalared|sequence|shortint|shortreal|showcancelled|signed|small|solve|specify|specparam|static|string|strong0|strong1|struct|super|supply0|supply1|table|tagged|task|this|throughout|time|timeprecision|timeunit|tran|tranif0|tranif1|tri|tri0|tri1|triand|trior|trireg|type|typedef|union|unique|unsigned|use|uwire|var|vectored|virtual|void|wait|wait_order|wand|weak0|weak1|while|wildcard|wire|with|within|wor|xnor|xor)\b/,important:/\b(?:always_latch|always_comb|always_ff|always)\b ?@?/,number:/\B##?\d+|(?:\b\d+)?'[odbh] ?[\da-fzx_?]+|\b(?:\d*[._])?\d+(?:e[-+]?\d+)?/i,operator:/[-+{}^~%*\/?=!<>&|]+/,punctuation:/[[\];(),.:]/}}e.exports=t,t.displayName="verilog",t.aliases=[]},9447(e){"use strict";function t(e){e.languages.vhdl={comment:/--.+/,"vhdl-vectors":{pattern:/\b[oxb]"[\da-f_]+"|"[01uxzwlh-]+"/i,alias:"number"},"quoted-function":{pattern:/"\S+?"(?=\()/,alias:"function"},string:/"(?:[^\\"\r\n]|\\(?:\r\n|[\s\S]))*"/,constant:/\b(?:use|library)\b/i,keyword:/\b(?:'active|'ascending|'base|'delayed|'driving|'driving_value|'event|'high|'image|'instance_name|'last_active|'last_event|'last_value|'left|'leftof|'length|'low|'path_name|'pos|'pred|'quiet|'range|'reverse_range|'right|'rightof|'simple_name|'stable|'succ|'transaction|'val|'value|access|after|alias|all|architecture|array|assert|attribute|begin|block|body|buffer|bus|case|component|configuration|constant|disconnect|downto|else|elsif|end|entity|exit|file|for|function|generate|generic|group|guarded|if|impure|in|inertial|inout|is|label|library|linkage|literal|loop|map|new|next|null|of|on|open|others|out|package|port|postponed|procedure|process|pure|range|record|register|reject|report|return|select|severity|shared|signal|subtype|then|to|transport|type|unaffected|units|until|use|variable|wait|when|while|with)\b/i,boolean:/\b(?:true|false)\b/i,function:/\w+(?=\()/,number:/'[01uxzwlh-]'|\b(?:\d+#[\da-f_.]+#|\d[\d_.]*)(?:e[-+]?\d+)?/i,operator:/[<>]=?|:=|[-+*/&=]|\b(?:abs|not|mod|rem|sll|srl|sla|sra|rol|ror|and|or|nand|xnor|xor|nor)\b/i,punctuation:/[{}[\];(),.:]/}}e.exports=t,t.displayName="vhdl",t.aliases=[]},53062(e){"use strict";function t(e){e.languages.vim={string:/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\r\n]|'')*'/,comment:/".*/,function:/\b\w+(?=\()/,keyword:/\b(?:ab|abbreviate|abc|abclear|abo|aboveleft|al|all|arga|argadd|argd|argdelete|argdo|arge|argedit|argg|argglobal|argl|arglocal|ar|args|argu|argument|as|ascii|bad|badd|ba|ball|bd|bdelete|be|bel|belowright|bf|bfirst|bl|blast|bm|bmodified|bn|bnext|bN|bNext|bo|botright|bp|bprevious|brea|break|breaka|breakadd|breakd|breakdel|breakl|breaklist|br|brewind|bro|browse|bufdo|b|buffer|buffers|bun|bunload|bw|bwipeout|ca|cabbrev|cabc|cabclear|caddb|caddbuffer|cad|caddexpr|caddf|caddfile|cal|call|cat|catch|cb|cbuffer|cc|ccl|cclose|cd|ce|center|cex|cexpr|cf|cfile|cfir|cfirst|cgetb|cgetbuffer|cgete|cgetexpr|cg|cgetfile|c|change|changes|chd|chdir|che|checkpath|checkt|checktime|cla|clast|cl|clist|clo|close|cmapc|cmapclear|cnew|cnewer|cn|cnext|cN|cNext|cnf|cnfile|cNfcNfile|cnorea|cnoreabbrev|col|colder|colo|colorscheme|comc|comclear|comp|compiler|conf|confirm|con|continue|cope|copen|co|copy|cpf|cpfile|cp|cprevious|cq|cquit|cr|crewind|cuna|cunabbrev|cu|cunmap|cw|cwindow|debugg|debuggreedy|delc|delcommand|d|delete|delf|delfunction|delm|delmarks|diffg|diffget|diffoff|diffpatch|diffpu|diffput|diffsplit|diffthis|diffu|diffupdate|dig|digraphs|di|display|dj|djump|dl|dlist|dr|drop|ds|dsearch|dsp|dsplit|earlier|echoe|echoerr|echom|echomsg|echon|e|edit|el|else|elsei|elseif|em|emenu|endfo|endfor|endf|endfunction|endfun|en|endif|endt|endtry|endw|endwhile|ene|enew|ex|exi|exit|exu|exusage|f|file|files|filetype|fina|finally|fin|find|fini|finish|fir|first|fix|fixdel|fo|fold|foldc|foldclose|folddoc|folddoclosed|foldd|folddoopen|foldo|foldopen|for|fu|fun|function|go|goto|gr|grep|grepa|grepadd|ha|hardcopy|h|help|helpf|helpfind|helpg|helpgrep|helpt|helptags|hid|hide|his|history|ia|iabbrev|iabc|iabclear|if|ij|ijump|il|ilist|imapc|imapclear|in|inorea|inoreabbrev|isearch|isp|isplit|iuna|iunabbrev|iu|iunmap|j|join|ju|jumps|k|keepalt|keepj|keepjumps|kee|keepmarks|laddb|laddbuffer|lad|laddexpr|laddf|laddfile|lan|language|la|last|later|lb|lbuffer|lc|lcd|lch|lchdir|lcl|lclose|let|left|lefta|leftabove|lex|lexpr|lf|lfile|lfir|lfirst|lgetb|lgetbuffer|lgete|lgetexpr|lg|lgetfile|lgr|lgrep|lgrepa|lgrepadd|lh|lhelpgrep|l|list|ll|lla|llast|lli|llist|lmak|lmake|lm|lmap|lmapc|lmapclear|lnew|lnewer|lne|lnext|lN|lNext|lnf|lnfile|lNf|lNfile|ln|lnoremap|lo|loadview|loc|lockmarks|lockv|lockvar|lol|lolder|lop|lopen|lpf|lpfile|lp|lprevious|lr|lrewind|ls|lt|ltag|lu|lunmap|lv|lvimgrep|lvimgrepa|lvimgrepadd|lw|lwindow|mak|make|ma|mark|marks|mat|match|menut|menutranslate|mk|mkexrc|mks|mksession|mksp|mkspell|mkvie|mkview|mkv|mkvimrc|mod|mode|m|move|mzf|mzfile|mz|mzscheme|nbkey|new|n|next|N|Next|nmapc|nmapclear|noh|nohlsearch|norea|noreabbrev|nu|number|nun|nunmap|omapc|omapclear|on|only|o|open|opt|options|ou|ounmap|pc|pclose|ped|pedit|pe|perl|perld|perldo|po|pop|popu|popup|pp|ppop|pre|preserve|prev|previous|p|print|P|Print|profd|profdel|prof|profile|promptf|promptfind|promptr|promptrepl|ps|psearch|pta|ptag|ptf|ptfirst|ptj|ptjump|ptl|ptlast|ptn|ptnext|ptN|ptNext|ptp|ptprevious|ptr|ptrewind|pts|ptselect|pu|put|pw|pwd|pyf|pyfile|py|python|qa|qall|q|quit|quita|quitall|r|read|rec|recover|redi|redir|red|redo|redr|redraw|redraws|redrawstatus|reg|registers|res|resize|ret|retab|retu|return|rew|rewind|ri|right|rightb|rightbelow|rub|ruby|rubyd|rubydo|rubyf|rubyfile|ru|runtime|rv|rviminfo|sal|sall|san|sandbox|sa|sargument|sav|saveas|sba|sball|sbf|sbfirst|sbl|sblast|sbm|sbmodified|sbn|sbnext|sbN|sbNext|sbp|sbprevious|sbr|sbrewind|sb|sbuffer|scripte|scriptencoding|scrip|scriptnames|se|set|setf|setfiletype|setg|setglobal|setl|setlocal|sf|sfind|sfir|sfirst|sh|shell|sign|sil|silent|sim|simalt|sla|slast|sl|sleep|sm|smagic|smap|smapc|smapclear|sme|smenu|sn|snext|sN|sNext|sni|sniff|sno|snomagic|snor|snoremap|snoreme|snoremenu|sor|sort|so|source|spelld|spelldump|spe|spellgood|spelli|spellinfo|spellr|spellrepall|spellu|spellundo|spellw|spellwrong|sp|split|spr|sprevious|sre|srewind|sta|stag|startg|startgreplace|star|startinsert|startr|startreplace|stj|stjump|st|stop|stopi|stopinsert|sts|stselect|sun|sunhide|sunm|sunmap|sus|suspend|sv|sview|syncbind|t|tab|tabc|tabclose|tabd|tabdo|tabe|tabedit|tabf|tabfind|tabfir|tabfirst|tabl|tablast|tabm|tabmove|tabnew|tabn|tabnext|tabN|tabNext|tabo|tabonly|tabp|tabprevious|tabr|tabrewind|tabs|ta|tag|tags|tc|tcl|tcld|tcldo|tclf|tclfile|te|tearoff|tf|tfirst|th|throw|tj|tjump|tl|tlast|tm|tmenu|tn|tnext|tN|tNext|to|topleft|tp|tprevious|tr|trewind|try|ts|tselect|tu|tunmenu|una|unabbreviate|u|undo|undoj|undojoin|undol|undolist|unh|unhide|unlet|unlo|unlockvar|unm|unmap|up|update|verb|verbose|ve|version|vert|vertical|vie|view|vim|vimgrep|vimgrepa|vimgrepadd|vi|visual|viu|viusage|vmapc|vmapclear|vne|vnew|vs|vsplit|vu|vunmap|wa|wall|wh|while|winc|wincmd|windo|winp|winpos|win|winsize|wn|wnext|wN|wNext|wp|wprevious|wq|wqa|wqall|w|write|ws|wsverb|wv|wviminfo|X|xa|xall|x|xit|xm|xmap|xmapc|xmapclear|xme|xmenu|XMLent|XMLns|xn|xnoremap|xnoreme|xnoremenu|xu|xunmap|y|yank)\b/,builtin:/\b(?:autocmd|acd|ai|akm|aleph|allowrevins|altkeymap|ambiwidth|ambw|anti|antialias|arab|arabic|arabicshape|ari|arshape|autochdir|autoindent|autoread|autowrite|autowriteall|aw|awa|background|backspace|backup|backupcopy|backupdir|backupext|backupskip|balloondelay|ballooneval|balloonexpr|bdir|bdlay|beval|bex|bexpr|bg|bh|bin|binary|biosk|bioskey|bk|bkc|bomb|breakat|brk|browsedir|bs|bsdir|bsk|bt|bufhidden|buflisted|buftype|casemap|ccv|cdpath|cedit|cfu|ch|charconvert|ci|cin|cindent|cink|cinkeys|cino|cinoptions|cinw|cinwords|clipboard|cmdheight|cmdwinheight|cmp|cms|columns|com|comments|commentstring|compatible|complete|completefunc|completeopt|consk|conskey|copyindent|cot|cpo|cpoptions|cpt|cscopepathcomp|cscopeprg|cscopequickfix|cscopetag|cscopetagorder|cscopeverbose|cspc|csprg|csqf|cst|csto|csverb|cuc|cul|cursorcolumn|cursorline|cwh|debug|deco|def|define|delcombine|dex|dg|dict|dictionary|diff|diffexpr|diffopt|digraph|dip|dir|directory|dy|ea|ead|eadirection|eb|ed|edcompatible|ef|efm|ei|ek|enc|encoding|endofline|eol|ep|equalalways|equalprg|errorbells|errorfile|errorformat|esckeys|et|eventignore|expandtab|exrc|fcl|fcs|fdc|fde|fdi|fdl|fdls|fdm|fdn|fdo|fdt|fen|fenc|fencs|fex|ff|ffs|fileencoding|fileencodings|fileformat|fileformats|fillchars|fk|fkmap|flp|fml|fmr|foldcolumn|foldenable|foldexpr|foldignore|foldlevel|foldlevelstart|foldmarker|foldmethod|foldminlines|foldnestmax|foldtext|formatexpr|formatlistpat|formatoptions|formatprg|fp|fs|fsync|ft|gcr|gd|gdefault|gfm|gfn|gfs|gfw|ghr|gp|grepformat|grepprg|gtl|gtt|guicursor|guifont|guifontset|guifontwide|guiheadroom|guioptions|guipty|guitablabel|guitabtooltip|helpfile|helpheight|helplang|hf|hh|hi|hidden|highlight|hk|hkmap|hkmapp|hkp|hl|hlg|hls|hlsearch|ic|icon|iconstring|ignorecase|im|imactivatekey|imak|imc|imcmdline|imd|imdisable|imi|iminsert|ims|imsearch|inc|include|includeexpr|incsearch|inde|indentexpr|indentkeys|indk|inex|inf|infercase|insertmode|isf|isfname|isi|isident|isk|iskeyword|isprint|joinspaces|js|key|keymap|keymodel|keywordprg|km|kmp|kp|langmap|langmenu|laststatus|lazyredraw|lbr|lcs|linebreak|lines|linespace|lisp|lispwords|listchars|loadplugins|lpl|lsp|lz|macatsui|magic|makeef|makeprg|matchpairs|matchtime|maxcombine|maxfuncdepth|maxmapdepth|maxmem|maxmempattern|maxmemtot|mco|mef|menuitems|mfd|mh|mis|mkspellmem|ml|mls|mm|mmd|mmp|mmt|modeline|modelines|modifiable|modified|more|mouse|mousef|mousefocus|mousehide|mousem|mousemodel|mouses|mouseshape|mouset|mousetime|mp|mps|msm|mzq|mzquantum|nf|nrformats|numberwidth|nuw|odev|oft|ofu|omnifunc|opendevice|operatorfunc|opfunc|osfiletype|pa|para|paragraphs|paste|pastetoggle|patchexpr|patchmode|path|pdev|penc|pex|pexpr|pfn|ph|pheader|pi|pm|pmbcs|pmbfn|popt|preserveindent|previewheight|previewwindow|printdevice|printencoding|printexpr|printfont|printheader|printmbcharset|printmbfont|printoptions|prompt|pt|pumheight|pvh|pvw|qe|quoteescape|readonly|remap|report|restorescreen|revins|rightleft|rightleftcmd|rl|rlc|ro|rs|rtp|ruf|ruler|rulerformat|runtimepath|sbo|sc|scb|scr|scroll|scrollbind|scrolljump|scrolloff|scrollopt|scs|sect|sections|secure|sel|selection|selectmode|sessionoptions|sft|shcf|shellcmdflag|shellpipe|shellquote|shellredir|shellslash|shelltemp|shelltype|shellxquote|shiftround|shiftwidth|shm|shortmess|shortname|showbreak|showcmd|showfulltag|showmatch|showmode|showtabline|shq|si|sidescroll|sidescrolloff|siso|sj|slm|smartcase|smartindent|smarttab|smc|smd|softtabstop|sol|spc|spell|spellcapcheck|spellfile|spelllang|spellsuggest|spf|spl|splitbelow|splitright|sps|sr|srr|ss|ssl|ssop|stal|startofline|statusline|stl|stmp|su|sua|suffixes|suffixesadd|sw|swapfile|swapsync|swb|swf|switchbuf|sws|sxq|syn|synmaxcol|syntax|tabline|tabpagemax|tabstop|tagbsearch|taglength|tagrelative|tagstack|tal|tb|tbi|tbidi|tbis|tbs|tenc|term|termbidi|termencoding|terse|textauto|textmode|textwidth|tgst|thesaurus|tildeop|timeout|timeoutlen|title|titlelen|titleold|titlestring|toolbar|toolbariconsize|top|tpm|tsl|tsr|ttimeout|ttimeoutlen|ttm|tty|ttybuiltin|ttyfast|ttym|ttymouse|ttyscroll|ttytype|tw|tx|uc|ul|undolevels|updatecount|updatetime|ut|vb|vbs|vdir|verbosefile|vfile|viewdir|viewoptions|viminfo|virtualedit|visualbell|vop|wak|warn|wb|wc|wcm|wd|weirdinvert|wfh|wfw|whichwrap|wi|wig|wildchar|wildcharm|wildignore|wildmenu|wildmode|wildoptions|wim|winaltkeys|window|winfixheight|winfixwidth|winheight|winminheight|winminwidth|winwidth|wiv|wiw|wm|wmh|wmnu|wmw|wop|wrap|wrapmargin|wrapscan|writeany|writebackup|writedelay|ww|noacd|noai|noakm|noallowrevins|noaltkeymap|noanti|noantialias|noar|noarab|noarabic|noarabicshape|noari|noarshape|noautochdir|noautoindent|noautoread|noautowrite|noautowriteall|noaw|noawa|nobackup|noballooneval|nobeval|nobin|nobinary|nobiosk|nobioskey|nobk|nobl|nobomb|nobuflisted|nocf|noci|nocin|nocindent|nocompatible|noconfirm|noconsk|noconskey|nocopyindent|nocp|nocscopetag|nocscopeverbose|nocst|nocsverb|nocuc|nocul|nocursorcolumn|nocursorline|nodeco|nodelcombine|nodg|nodiff|nodigraph|nodisable|noea|noeb|noed|noedcompatible|noek|noendofline|noeol|noequalalways|noerrorbells|noesckeys|noet|noex|noexpandtab|noexrc|nofen|nofk|nofkmap|nofoldenable|nogd|nogdefault|noguipty|nohid|nohidden|nohk|nohkmap|nohkmapp|nohkp|nohls|noic|noicon|noignorecase|noim|noimc|noimcmdline|noimd|noincsearch|noinf|noinfercase|noinsertmode|nois|nojoinspaces|nojs|nolazyredraw|nolbr|nolinebreak|nolisp|nolist|noloadplugins|nolpl|nolz|noma|nomacatsui|nomagic|nomh|noml|nomod|nomodeline|nomodifiable|nomodified|nomore|nomousef|nomousefocus|nomousehide|nonu|nonumber|noodev|noopendevice|nopaste|nopi|nopreserveindent|nopreviewwindow|noprompt|nopvw|noreadonly|noremap|norestorescreen|norevins|nori|norightleft|norightleftcmd|norl|norlc|noro|nors|noru|noruler|nosb|nosc|noscb|noscrollbind|noscs|nosecure|nosft|noshellslash|noshelltemp|noshiftround|noshortname|noshowcmd|noshowfulltag|noshowmatch|noshowmode|nosi|nosm|nosmartcase|nosmartindent|nosmarttab|nosmd|nosn|nosol|nospell|nosplitbelow|nosplitright|nospr|nosr|nossl|nosta|nostartofline|nostmp|noswapfile|noswf|nota|notagbsearch|notagrelative|notagstack|notbi|notbidi|notbs|notermbidi|noterse|notextauto|notextmode|notf|notgst|notildeop|notimeout|notitle|noto|notop|notr|nottimeout|nottybuiltin|nottyfast|notx|novb|novisualbell|nowa|nowarn|nowb|noweirdinvert|nowfh|nowfw|nowildmenu|nowinfixheight|nowinfixwidth|nowiv|nowmnu|nowrap|nowrapscan|nowrite|nowriteany|nowritebackup|nows|invacd|invai|invakm|invallowrevins|invaltkeymap|invanti|invantialias|invar|invarab|invarabic|invarabicshape|invari|invarshape|invautochdir|invautoindent|invautoread|invautowrite|invautowriteall|invaw|invawa|invbackup|invballooneval|invbeval|invbin|invbinary|invbiosk|invbioskey|invbk|invbl|invbomb|invbuflisted|invcf|invci|invcin|invcindent|invcompatible|invconfirm|invconsk|invconskey|invcopyindent|invcp|invcscopetag|invcscopeverbose|invcst|invcsverb|invcuc|invcul|invcursorcolumn|invcursorline|invdeco|invdelcombine|invdg|invdiff|invdigraph|invdisable|invea|inveb|inved|invedcompatible|invek|invendofline|inveol|invequalalways|inverrorbells|invesckeys|invet|invex|invexpandtab|invexrc|invfen|invfk|invfkmap|invfoldenable|invgd|invgdefault|invguipty|invhid|invhidden|invhk|invhkmap|invhkmapp|invhkp|invhls|invhlsearch|invic|invicon|invignorecase|invim|invimc|invimcmdline|invimd|invincsearch|invinf|invinfercase|invinsertmode|invis|invjoinspaces|invjs|invlazyredraw|invlbr|invlinebreak|invlisp|invlist|invloadplugins|invlpl|invlz|invma|invmacatsui|invmagic|invmh|invml|invmod|invmodeline|invmodifiable|invmodified|invmore|invmousef|invmousefocus|invmousehide|invnu|invnumber|invodev|invopendevice|invpaste|invpi|invpreserveindent|invpreviewwindow|invprompt|invpvw|invreadonly|invremap|invrestorescreen|invrevins|invri|invrightleft|invrightleftcmd|invrl|invrlc|invro|invrs|invru|invruler|invsb|invsc|invscb|invscrollbind|invscs|invsecure|invsft|invshellslash|invshelltemp|invshiftround|invshortname|invshowcmd|invshowfulltag|invshowmatch|invshowmode|invsi|invsm|invsmartcase|invsmartindent|invsmarttab|invsmd|invsn|invsol|invspell|invsplitbelow|invsplitright|invspr|invsr|invssl|invsta|invstartofline|invstmp|invswapfile|invswf|invta|invtagbsearch|invtagrelative|invtagstack|invtbi|invtbidi|invtbs|invtermbidi|invterse|invtextauto|invtextmode|invtf|invtgst|invtildeop|invtimeout|invtitle|invto|invtop|invtr|invttimeout|invttybuiltin|invttyfast|invtx|invvb|invvisualbell|invwa|invwarn|invwb|invweirdinvert|invwfh|invwfw|invwildmenu|invwinfixheight|invwinfixwidth|invwiv|invwmnu|invwrap|invwrapscan|invwrite|invwriteany|invwritebackup|invws|t_AB|t_AF|t_al|t_AL|t_bc|t_cd|t_ce|t_Ce|t_cl|t_cm|t_Co|t_cs|t_Cs|t_CS|t_CV|t_da|t_db|t_dl|t_DL|t_EI|t_F1|t_F2|t_F3|t_F4|t_F5|t_F6|t_F7|t_F8|t_F9|t_fs|t_IE|t_IS|t_k1|t_K1|t_k2|t_k3|t_K3|t_k4|t_K4|t_k5|t_K5|t_k6|t_K6|t_k7|t_K7|t_k8|t_K8|t_k9|t_K9|t_KA|t_kb|t_kB|t_KB|t_KC|t_kd|t_kD|t_KD|t_ke|t_KE|t_KF|t_KG|t_kh|t_KH|t_kI|t_KI|t_KJ|t_KK|t_kl|t_KL|t_kN|t_kP|t_kr|t_ks|t_ku|t_le|t_mb|t_md|t_me|t_mr|t_ms|t_nd|t_op|t_RI|t_RV|t_Sb|t_se|t_Sf|t_SI|t_so|t_sr|t_te|t_ti|t_ts|t_ue|t_us|t_ut|t_vb|t_ve|t_vi|t_vs|t_WP|t_WS|t_xs|t_ZH|t_ZR)\b/,number:/\b(?:0x[\da-f]+|\d+(?:\.\d+)?)\b/i,operator:/\|\||&&|[-+.]=?|[=!](?:[=~][#?]?)?|[<>]=?[#?]?|[*\/%?]|\b(?:is(?:not)?)\b/,punctuation:/[{}[\](),;:]/}}e.exports=t,t.displayName="vim",t.aliases=[]},46215(e){"use strict";function t(e){e.languages["visual-basic"]={comment:{pattern:/(?:['‘’]|REM\b)(?:[^\r\n_]|_(?:\r\n?|\n)?)*/i,inside:{keyword:/^REM/i}},directive:{pattern:/#(?:Const|Else|ElseIf|End|ExternalChecksum|ExternalSource|If|Region)(?:[^\S\r\n]_[^\S\r\n]*(?:\r\n?|\n)|.)+/i,alias:"comment",greedy:!0},string:{pattern:/\$?["“”](?:["“”]{2}|[^"“”])*["“”]C?/i,greedy:!0},date:{pattern:/#[^\S\r\n]*(?:\d+([/-])\d+\1\d+(?:[^\S\r\n]+(?:\d+[^\S\r\n]*(?:AM|PM)|\d+:\d+(?::\d+)?(?:[^\S\r\n]*(?:AM|PM))?))?|\d+[^\S\r\n]*(?:AM|PM)|\d+:\d+(?::\d+)?(?:[^\S\r\n]*(?:AM|PM))?)[^\S\r\n]*#/i,alias:"builtin"},number:/(?:(?:\b\d+(?:\.\d+)?|\.\d+)(?:E[+-]?\d+)?|&[HO][\dA-F]+)(?:U?[ILS]|[FRD])?/i,boolean:/\b(?:True|False|Nothing)\b/i,keyword:/\b(?:AddHandler|AddressOf|Alias|And(?:Also)?|As|Boolean|ByRef|Byte|ByVal|Call|Case|Catch|C(?:Bool|Byte|Char|Date|Dbl|Dec|Int|Lng|Obj|SByte|Short|Sng|Str|Type|UInt|ULng|UShort)|Char|Class|Const|Continue|Currency|Date|Decimal|Declare|Default|Delegate|Dim|DirectCast|Do|Double|Each|Else(?:If)?|End(?:If)?|Enum|Erase|Error|Event|Exit|Finally|For|Friend|Function|Get(?:Type|XMLNamespace)?|Global|GoSub|GoTo|Handles|If|Implements|Imports|In|Inherits|Integer|Interface|Is|IsNot|Let|Lib|Like|Long|Loop|Me|Mod|Module|Must(?:Inherit|Override)|My(?:Base|Class)|Namespace|Narrowing|New|Next|Not(?:Inheritable|Overridable)?|Object|Of|On|Operator|Option(?:al)?|Or(?:Else)?|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|Try|TryCast|Type|TypeOf|U(?:Integer|Long|Short)|Using|Variant|Wend|When|While|Widening|With(?:Events)?|WriteOnly|Until|Xor)\b/i,operator:[/[+\-*/\\^<=>&#@$%!]/,{pattern:/([^\S\r\n])_(?=[^\S\r\n]*[\r\n])/,lookbehind:!0}],punctuation:/[{}().,:?]/},e.languages.vb=e.languages["visual-basic"],e.languages.vba=e.languages["visual-basic"]}e.exports=t,t.displayName="visualBasic",t.aliases=[]},10784(e){"use strict";function t(e){e.languages.warpscript={comment:/#.*|\/\/.*|\/\*[\s\S]*?\*\//,string:{pattern:/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'|<'(?:[^\\']|'(?!>)|\\.)*'>/,greedy:!0},variable:/\$\S+/,macro:{pattern:/@\S+/,alias:"property"},keyword:/\b(?:BREAK|CHECKMACRO|CONTINUE|CUDF|DEFINED|DEFINEDMACRO|EVAL|FAIL|FOR|FOREACH|FORSTEP|IFT|IFTE|MSGFAIL|NRETURN|RETHROW|RETURN|SWITCH|TRY|UDF|UNTIL|WHILE)\b/,number:/[+-]?\b(?:NaN|Infinity|\d+(?:\.\d*)?(?:[Ee][+-]?\d+)?|0x[\da-fA-F]+|0b[01]+)\b/,boolean:/\b(?:false|true|F|T)\b/,punctuation:/<%|%>|[{}[\]()]/,operator:/==|&&?|\|\|?|\*\*?|>>>?|<<|[<>!~]=?|[-/%^]|\+!?|\b(?:AND|NOT|OR)\b/}}e.exports=t,t.displayName="warpscript",t.aliases=[]},17684(e){"use strict";function t(e){e.languages.wasm={comment:[/\(;[\s\S]*?;\)/,{pattern:/;;.*/,greedy:!0}],string:{pattern:/"(?:\\[\s\S]|[^"\\])*"/,greedy:!0},keyword:[{pattern:/\b(?:align|offset)=/,inside:{operator:/=/}},{pattern:/\b(?:(?:f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|nearest|neg?|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|store(?:8|16|32)?|sqrt|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))?|memory\.(?:grow|size))\b/,inside:{punctuation:/\./}},/\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\b/],variable:/\$[\w!#$%&'*+\-./:<=>?@\\^`|~]+/i,number:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/,punctuation:/[()]/}}e.exports=t,t.displayName="wasm",t.aliases=[]},18191(e){"use strict";function t(e){e.languages.wiki=e.languages.extend("markup",{"block-comment":{pattern:/(^|[^\\])\/\*[\s\S]*?\*\//,lookbehind:!0,alias:"comment"},heading:{pattern:/^(=+)[^=\r\n].*?\1/m,inside:{punctuation:/^=+|=+$/,important:/.+/}},emphasis:{pattern:/('{2,5}).+?\1/,inside:{"bold-italic":{pattern:/(''''').+?(?=\1)/,lookbehind:!0,alias:["bold","italic"]},bold:{pattern:/(''')[^'](?:.*?[^'])?(?=\1)/,lookbehind:!0},italic:{pattern:/('')[^'](?:.*?[^'])?(?=\1)/,lookbehind:!0},punctuation:/^''+|''+$/}},hr:{pattern:/^-{4,}/m,alias:"punctuation"},url:[/ISBN +(?:97[89][ -]?)?(?:\d[ -]?){9}[\dx]\b|(?:RFC|PMID) +\d+/i,/\[\[.+?\]\]|\[.+?\]/],variable:[/__[A-Z]+__/,/\{{3}.+?\}{3}/,/\{\{.+?\}\}/],symbol:[/^#redirect/im,/~{3,5}/],"table-tag":{pattern:/((?:^|[|!])[|!])[^|\r\n]+\|(?!\|)/m,lookbehind:!0,inside:{"table-bar":{pattern:/\|$/,alias:"punctuation"},rest:e.languages.markup.tag.inside}},punctuation:/^(?:\{\||\|\}|\|-|[*#:;!|])|\|\||!!/m}),e.languages.insertBefore("wiki","tag",{nowiki:{pattern:/<(nowiki|pre|source)\b[^>]*>[\s\S]*?<\/\1>/i,inside:{tag:{pattern:/<(?:nowiki|pre|source)\b[^>]*>|<\/(?:nowiki|pre|source)>/i,inside:e.languages.markup.tag.inside}}}})}e.exports=t,t.displayName="wiki",t.aliases=[]},75242(e){"use strict";function t(e){e.languages.wolfram={comment:/\(\*(?:\(\*(?:[^*]|\*(?!\)))*\*\)|(?!\(\*)[\s\S])*?\*\)/,string:{pattern:/"(?:\\.|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:Abs|AbsArg|Accuracy|Block|Do|For|Function|If|Manipulate|Module|Nest|NestList|None|Return|Switch|Table|Which|While)\b/,context:{pattern:/\w+`+\w*/,alias:"class-name"},blank:{pattern:/\b\w+_\b/,alias:"regex"},"global-variable":{pattern:/\$\w+/,alias:"variable"},boolean:/\b(?:True|False)\b/,number:/(?:\b(?=\d)|\B(?=\.))(?:0[bo])?(?:(?:\d|0x[\da-f])[\da-f]*(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?j?\b/i,operator:/\/\.|;|=\.|\^=|\^:=|:=|<<|>>|<\||\|>|:>|\|->|->|<-|@@@|@@|@|\/@|=!=|===|==|=|\+|-|\^|\[\/-+%=\]=?|!=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[\|{}[\];(),.:]/},e.languages.mathematica=e.languages.wolfram,e.languages.wl=e.languages.wolfram,e.languages.nb=e.languages.wolfram}e.exports=t,t.displayName="wolfram",t.aliases=["mathematica","wl","nb"]},97202(e){"use strict";function t(e){var t;(t=e).languages.xeora=t.languages.extend("markup",{constant:{pattern:/\$(?:DomainContents|PageRenderDuration)\$/,inside:{punctuation:{pattern:/\$/}}},variable:{pattern:/\$@?(?:#+|[-+*~=^])?[\w.]+\$/,inside:{punctuation:{pattern:/[$.]/},operator:{pattern:/#+|[-+*~=^@]/}}},"function-inline":{pattern:/\$F:[-\w.]+\?[-\w.]+(?:,(?:(?:@[-#]*\w+\.[\w+.]\.*)*\|)*(?:(?:[\w+]|[-#*.~^]+[\w+]|=\S)(?:[^$=]|=+[^=])*=*|(?:@[-#]*\w+\.[\w+.]\.*)+(?:(?:[\w+]|[-#*~^][-#*.~^]*[\w+]|=\S)(?:[^$=]|=+[^=])*=*)?)?)?\$/,inside:{variable:{pattern:/(?:[,|])@?(?:#+|[-+*~=^])?[\w.]+/,inside:{punctuation:{pattern:/[,.|]/},operator:{pattern:/#+|[-+*~=^@]/}}},punctuation:{pattern:/\$\w:|[$:?.,|]/}},alias:"function"},"function-block":{pattern:/\$XF:\{[-\w.]+\?[-\w.]+(?:,(?:(?:@[-#]*\w+\.[\w+.]\.*)*\|)*(?:(?:[\w+]|[-#*.~^]+[\w+]|=\S)(?:[^$=]|=+[^=])*=*|(?:@[-#]*\w+\.[\w+.]\.*)+(?:(?:[\w+]|[-#*~^][-#*.~^]*[\w+]|=\S)(?:[^$=]|=+[^=])*=*)?)?)?\}:XF\$/,inside:{punctuation:{pattern:/[$:{}?.,|]/}},alias:"function"},"directive-inline":{pattern:/\$\w(?:#\d+\+?)?(?:\[[-\w.]+\])?:[-\/\w.]+\$/,inside:{punctuation:{pattern:/\$(?:\w:|C(?:\[|#\d))?|[:{[\]]/,inside:{tag:{pattern:/#\d/}}}},alias:"function"},"directive-block-open":{pattern:/\$\w+:\{|\$\w(?:#\d+\+?)?(?:\[[-\w.]+\])?:[-\w.]+:\{(?:![A-Z]+)?/,inside:{punctuation:{pattern:/\$(?:\w:|C(?:\[|#\d))?|[:{[\]]/,inside:{tag:{pattern:/#\d/}}},attribute:{pattern:/![A-Z]+$/,inside:{punctuation:{pattern:/!/}},alias:"keyword"}},alias:"function"},"directive-block-separator":{pattern:/\}:[-\w.]+:\{/,inside:{punctuation:{pattern:/[:{}]/}},alias:"function"},"directive-block-close":{pattern:/\}:[-\w.]+\$/,inside:{punctuation:{pattern:/[:{}$]/}},alias:"function"}}),t.languages.insertBefore("inside","punctuation",{variable:t.languages.xeora["function-inline"].inside.variable},t.languages.xeora["function-block"]),t.languages.xeoracube=t.languages.xeora}e.exports=t,t.displayName="xeora",t.aliases=["xeoracube"]},13808(e){"use strict";function t(e){!function(e){function t(t,n){e.languages[t]&&e.languages.insertBefore(t,"comment",{"doc-comment":n})}var n=e.languages.markup.tag,r={pattern:/\/\/\/.*/,greedy:!0,alias:"comment",inside:{tag:n}},i={pattern:/'''.*/,greedy:!0,alias:"comment",inside:{tag:n}};t("csharp",r),t("fsharp",r),t("vbnet",i)}(e)}e.exports=t,t.displayName="xmlDoc",t.aliases=[]},21301(e){"use strict";function t(e){e.languages.xojo={comment:{pattern:/(?:'|\/\/|Rem\b).+/i},string:{pattern:/"(?:""|[^"])*"/,greedy:!0},number:[/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:E[+-]?\d+)?/i,/&[bchou][a-z\d]+/i],symbol:/#(?:If|Else|ElseIf|Endif|Pragma)\b/i,keyword:/\b(?:AddHandler|App|Array|As(?:signs)?|Auto|By(?:Ref|Val)|Boolean|Break|Byte|Call|Case|Catch|CFStringRef|CGFloat|Class|Color|Const|Continue|CString|Currency|CurrentMethodName|Declare|Delegate|Dim|Do(?:uble|wnTo)?|Each|Else(?:If)?|End|Enumeration|Event|Exception|Exit|Extends|False|Finally|For|Function|Get|GetTypeInfo|Global|GOTO|If|Implements|In|Inherits|Int(?:erface|eger|8|16|32|64)?|Lib|Loop|Me|Module|Next|Nil|Object|Optional|OSType|ParamArray|Private|Property|Protected|PString|Ptr|Raise(?:Event)?|ReDim|RemoveHandler|Return|Select(?:or)?|Self|Set|Single|Shared|Short|Soft|Static|Step|String|Sub|Super|Text|Then|To|True|Try|Ubound|UInt(?:eger|8|16|32|64)?|Until|Using|Var(?:iant)?|Wend|While|WindowPtr|WString)\b/i,operator:/<[=>]?|>=?|[+\-*\/\\^=]|\b(?:AddressOf|And|Ctype|IsA?|Mod|New|Not|Or|Xor|WeakAddressOf)\b/i,punctuation:/[.,;:()]/}}e.exports=t,t.displayName="xojo",t.aliases=[]},20349(e){"use strict";function t(e){var t,n,r;(t=e).languages.xquery=t.languages.extend("markup",{"xquery-comment":{pattern:/\(:[\s\S]*?:\)/,greedy:!0,alias:"comment"},string:{pattern:/(["'])(?:\1\1|(?!\1)[\s\S])*\1/,greedy:!0},extension:{pattern:/\(#.+?#\)/,alias:"symbol"},variable:/\$[-\w:]+/,axis:{pattern:/(^|[^-])(?:ancestor(?:-or-self)?|attribute|child|descendant(?:-or-self)?|following(?:-sibling)?|parent|preceding(?:-sibling)?|self)(?=::)/,lookbehind:!0,alias:"operator"},"keyword-operator":{pattern:/(^|[^:-])\b(?:and|castable as|div|eq|except|ge|gt|idiv|instance of|intersect|is|le|lt|mod|ne|or|union)\b(?=$|[^:-])/,lookbehind:!0,alias:"operator"},keyword:{pattern:/(^|[^:-])\b(?:as|ascending|at|base-uri|boundary-space|case|cast as|collation|construction|copy-namespaces|declare|default|descending|else|empty (?:greatest|least)|encoding|every|external|for|function|if|import|in|inherit|lax|let|map|module|namespace|no-inherit|no-preserve|option|order(?: by|ed|ing)?|preserve|return|satisfies|schema|some|stable|strict|strip|then|to|treat as|typeswitch|unordered|validate|variable|version|where|xquery)\b(?=$|[^:-])/,lookbehind:!0},function:/[\w-]+(?::[\w-]+)*(?=\s*\()/,"xquery-element":{pattern:/(element\s+)[\w-]+(?::[\w-]+)*/,lookbehind:!0,alias:"tag"},"xquery-attribute":{pattern:/(attribute\s+)[\w-]+(?::[\w-]+)*/,lookbehind:!0,alias:"attr-name"},builtin:{pattern:/(^|[^:-])\b(?:attribute|comment|document|element|processing-instruction|text|xs:(?:anyAtomicType|anyType|anyURI|base64Binary|boolean|byte|date|dateTime|dayTimeDuration|decimal|double|duration|ENTITIES|ENTITY|float|gDay|gMonth|gMonthDay|gYear|gYearMonth|hexBinary|ID|IDREFS?|int|integer|language|long|Name|NCName|negativeInteger|NMTOKENS?|nonNegativeInteger|nonPositiveInteger|normalizedString|NOTATION|positiveInteger|QName|short|string|time|token|unsigned(?:Byte|Int|Long|Short)|untyped(?:Atomic)?|yearMonthDuration))\b(?=$|[^:-])/,lookbehind:!0},number:/\b\d+(?:\.\d+)?(?:E[+-]?\d+)?/,operator:[/[+*=?|@]|\.\.?|:=|!=|<[=<]?|>[=>]?/,{pattern:/(\s)-(?=\s)/,lookbehind:!0}],punctuation:/[[\](){},;:/]/}),t.languages.xquery.tag.pattern=/<\/?(?!\d)[^\s>\/=$<%]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|\{(?!\{)(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])+\}|(?!\1)[^\\])*\1|[^\s'">=]+))?)*\s*\/?>/i,t.languages.xquery.tag.inside["attr-value"].pattern=/=(?:("|')(?:\\[\s\S]|\{(?!\{)(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])+\}|(?!\1)[^\\])*\1|[^\s'">=]+)/i,t.languages.xquery.tag.inside["attr-value"].inside.punctuation=/^="|"$/,t.languages.xquery.tag.inside["attr-value"].inside.expression={pattern:/\{(?!\{)(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])+\}/,inside:t.languages.xquery,alias:"language-xquery"},n=function(e){return"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(n).join("")},r=function(e){for(var i=[],a=0;a0&&i[i.length-1].tagName===n(o.content[0].content[1])&&i.pop():"/>"===o.content[o.content.length-1].content||i.push({tagName:n(o.content[0].content[1]),openedBraces:0}):!(i.length>0)||"punctuation"!==o.type||"{"!==o.content||e[a+1]&&"punctuation"===e[a+1].type&&"{"===e[a+1].content||e[a-1]&&"plain-text"===e[a-1].type&&"{"===e[a-1].content?i.length>0&&i[i.length-1].openedBraces>0&&"punctuation"===o.type&&"}"===o.content?i[i.length-1].openedBraces--:"comment"!==o.type&&(s=!0):i[i.length-1].openedBraces++),(s||"string"==typeof o)&&i.length>0&&0===i[i.length-1].openedBraces){var u=n(o);a0&&("string"==typeof e[a-1]||"plain-text"===e[a-1].type)&&(u=n(e[a-1])+u,e.splice(a-1,1),a--),/^\s+$/.test(u)?e[a]=u:e[a]=new t.Token("plain-text",u,null,u)}o.content&&"string"!=typeof o.content&&r(o.content)}},t.hooks.add("after-tokenize",function(e){"xquery"===e.language&&r(e.tokens)})}e.exports=t,t.displayName="xquery",t.aliases=[]},65039(e){"use strict";function t(e){!function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ ]+"+t.source+")?|"+t.source+"(?:[ ]+"+n.source+")?)",i=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-])(?:[ \t]*(?:(?![#:])|:))*/.source.replace(//g,function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source}),a=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function o(e,t){return t=(t||"").replace(/m/g,"")+"m",RegExp(/([:\-,[{]\s*(?:\s<>[ \t]+)?)(?:<>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<>/g,function(){return r}).replace(/<>/g,function(){return e}),t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<>/g,function(){return r})),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<>[ \t]+)?)<>(?=\s*:\s)/.source.replace(/<>/g,function(){return r}).replace(/<>/g,function(){return"(?:"+i+"|"+a+")"})),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:o(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:o(/true|false/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:o(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:o(a),lookbehind:!0,greedy:!0},number:{pattern:o(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(e)}e.exports=t,t.displayName="yaml",t.aliases=["yml"]},80741(e){"use strict";function t(e){e.languages.yang={comment:/\/\*[\s\S]*?\*\/|\/\/.*/,string:{pattern:/"(?:[^\\"]|\\.)*"|'[^']*'/,greedy:!0},keyword:{pattern:/(^|[{};\r\n][ \t]*)[a-z_][\w.-]*/i,lookbehind:!0},namespace:{pattern:/(\s)[a-z_][\w.-]*(?=:)/i,lookbehind:!0},boolean:/\b(?:false|true)\b/,operator:/\+/,punctuation:/[{};:]/}}e.exports=t,t.displayName="yang",t.aliases=[]},86528(e){"use strict";function t(e){!function(e){function t(e){return function(){return e}}var n=/\b(?:align|allowzero|and|asm|async|await|break|cancel|catch|comptime|const|continue|defer|else|enum|errdefer|error|export|extern|fn|for|if|inline|linksection|nakedcc|noalias|null|or|orelse|packed|promise|pub|resume|return|stdcallcc|struct|suspend|switch|test|threadlocal|try|undefined|union|unreachable|usingnamespace|var|volatile|while)\b/,r="\\b(?!"+n.source+")(?!\\d)\\w+\\b",i=/align\s*\((?:[^()]|\([^()]*\))*\)/.source,a=/(?:\?|\bpromise->|(?:\[[^[\]]*\]|\*(?!\*)|\*\*)(?:\s*|\s*const\b|\s*volatile\b|\s*allowzero\b)*)/.source.replace(//g,t(i)),o=/(?:\bpromise\b|(?:\berror\.)?(?:\.)*(?!\s+))/.source.replace(//g,t(r)),s="(?!\\s)(?:!?\\s*(?:"+a+"\\s*)*"+o+")+";e.languages.zig={comment:[{pattern:/\/{3}.*/,alias:"doc-comment"},/\/{2}.*/],string:[{pattern:/(^|[^\\@])c?"(?:[^"\\\r\n]|\\.)*"/,lookbehind:!0,greedy:!0},{pattern:/([\r\n])([ \t]+c?\\{2}).*(?:(?:\r\n?|\n)\2.*)*/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\])'(?:[^'\\\r\n]|\\(?:.|x[a-fA-F\d]{2}|u\{[a-fA-F\d]{1,6}\}))'/,lookbehind:!0,greedy:!0}],builtin:/\B@(?!\d)\w+(?=\s*\()/,label:{pattern:/(\b(?:break|continue)\s*:\s*)\w+\b|\b(?!\d)\w+\b(?=\s*:\s*(?:\{|while\b))/,lookbehind:!0},"class-name":[/\b(?!\d)\w+(?=\s*=\s*(?:(?:extern|packed)\s+)?(?:enum|struct|union)\s*[({])/,{pattern:RegExp(/(:\s*)(?=\s*(?:\s*)?[=;,)])|(?=\s*(?:\s*)?\{)/.source.replace(//g,t(s)).replace(//g,t(i))),lookbehind:!0,inside:null},{pattern:RegExp(/(\)\s*)(?=\s*(?:\s*)?;)/.source.replace(//g,t(s)).replace(//g,t(i))),lookbehind:!0,inside:null}],"builtin-types":{pattern:/\b(?:anyerror|bool|c_u?(?:short|int|long|longlong)|c_longdouble|c_void|comptime_(?:float|int)|[iu](?:8|16|32|64|128|size)|f(?:16|32|64|128)|noreturn|type|void)\b/,alias:"keyword"},keyword:n,function:/\b(?!\d)\w+(?=\s*\()/,number:/\b(?:0b[01]+|0o[0-7]+|0x[a-fA-F\d]+(?:\.[a-fA-F\d]*)?(?:[pP][+-]?[a-fA-F\d]+)?|\d+(?:\.\d*)?(?:[eE][+-]?\d+)?)\b/,boolean:/\b(?:false|true)\b/,operator:/\.[*?]|\.{2,3}|[-=]>|\*\*|\+\+|\|\||(?:<<|>>|[-+*]%|[-+*/%^&|<>!=])=?|[?~]/,punctuation:/[.:,;(){}[\]]/},e.languages.zig["class-name"].forEach(function(t){null===t.inside&&(t.inside=e.languages.zig)})}(e)}e.exports=t,t.displayName="zig",t.aliases=[]},59216(e,t,n){var r=function(e){var t=/\blang(?:uage)?-([\w-]+)\b/i,n=0,r={},i={manual:e.Prism&&e.Prism.manual,disableWorkerMessageHandler:e.Prism&&e.Prism.disableWorkerMessageHandler,util:{encode:function e(t){return t instanceof a?new a(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&").replace(/=f.reach));S+=E.value.length,E=E.next){var k,x=E.value;if(t.length>e.length)return;if(!(x instanceof a)){var T=1;if(v){if(!(k=o(_,S,e,g)))break;var M=k.index,O=k.index+k[0].length,A=S;for(A+=E.value.length;M>=A;)A+=(E=E.next).value.length;if(A-=E.value.length,S=A,E.value instanceof a)continue;for(var L=E;L!==t.tail&&(Af.reach&&(f.reach=N);var P=E.prev;I&&(P=c(t,P,I),S+=I.length),l(t,P,T);var R=new a(d,m?i.tokenize(C,m):C,y,C);if(E=c(t,P,R),D&&c(t,E,D),T>1){var j={cause:d+","+p,reach:N};s(e,t,n,E.prev,S,j),f&&j.reach>f.reach&&(f.reach=j.reach)}}}}}}function u(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function c(e,t,n){var r=t.next,i={value:n,prev:t,next:r};return t.next=i,r.prev=i,e.length++,i}function l(e,t,n){for(var r=t.next,i=0;i"+a.content+""},!e.document)return e.addEventListener&&(i.disableWorkerMessageHandler||e.addEventListener("message",function(t){var n=JSON.parse(t.data),r=n.language,a=n.code,o=n.immediateClose;e.postMessage(i.highlight(a,i.languages[r],r)),o&&e.close()},!1)),i;var d=i.util.currentScript();function h(){i.manual||i.highlightAll()}if(d&&(i.filename=d.src,d.hasAttribute("data-manual")&&(i.manual=!0)),!i.manual){var p=document.readyState;"loading"===p||"interactive"===p&&d&&d.defer?document.addEventListener("DOMContentLoaded",h):window.requestAnimationFrame?window.requestAnimationFrame(h):window.setTimeout(h,16)}return i}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:{});e.exports&&(e.exports=r),void 0!==n.g&&(n.g.Prism=r)},89509(e,t,n){/*! safe-buffer. MIT License. Feross Aboukhadijeh */ var r=n(48764),i=r.Buffer;function a(e,t){for(var n in e)t[n]=e[n]}function o(e,t,n){return i(e,t,n)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?e.exports=r:(a(r,t),t.Buffer=o),o.prototype=Object.create(i.prototype),a(i,o),o.from=function(e,t,n){if("number"==typeof e)throw TypeError("Argument must not be a number");return i(e,t,n)},o.alloc=function(e,t,n){if("number"!=typeof e)throw TypeError("Argument must be a number");var r=i(e);return void 0!==t?"string"==typeof n?r.fill(t,n):r.fill(t):r.fill(0),r},o.allocUnsafe=function(e){if("number"!=typeof e)throw TypeError("Argument must be a number");return i(e)},o.allocUnsafeSlow=function(e){if("number"!=typeof e)throw TypeError("Argument must be a number");return r.SlowBuffer(e)}},60053(e,t){"use strict";if(/** @license React v0.18.0 + */ var r=n(27418),i="function"==typeof Symbol&&Symbol.for,a=i?Symbol.for("react.element"):60103,o=i?Symbol.for("react.portal"):60106,s=i?Symbol.for("react.fragment"):60107,u=i?Symbol.for("react.strict_mode"):60108,c=i?Symbol.for("react.profiler"):60114,l=i?Symbol.for("react.provider"):60109,f=i?Symbol.for("react.context"):60110,d=i?Symbol.for("react.forward_ref"):60112,h=i?Symbol.for("react.suspense"):60113,p=i?Symbol.for("react.memo"):60115,b=i?Symbol.for("react.lazy"):60116,m="function"==typeof Symbol&&Symbol.iterator;function g(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;nI.length&&I.push(e)}function P(e,t,n,r){var i=typeof e;("undefined"===i||"boolean"===i)&&(e=null);var s=!1;if(null===e)s=!0;else switch(i){case"string":case"number":s=!0;break;case"object":switch(e.$$typeof){case a:case o:s=!0}}if(s)return n(r,e,""===t?"."+j(e,0):t),1;if(s=0,t=""===t?".":t+":",Array.isArray(e))for(var u=0;u2)?"one of ".concat(t," ").concat(e.slice(0,n-1).join(", "),", or ")+e[n-1]:2===n?"one of ".concat(t," ").concat(e[0]," or ").concat(e[1]):"of ".concat(t," ").concat(e[0])}function a(e,t,n){return e.substr(!n||n<0?0:+n,t.length)===t}function o(e,t,n){return(void 0===n||n>e.length)&&(n=e.length),e.substring(n-t.length,n)===t}function s(e,t,n){return"number"!=typeof n&&(n=0),!(n+t.length>e.length)&&-1!==e.indexOf(t,n)}r("ERR_INVALID_OPT_VALUE",function(e,t){return'The value "'+t+'" is invalid for option "'+e+'"'},TypeError),r("ERR_INVALID_ARG_TYPE",function(e,t,n){if("string"==typeof t&&a(t,"not ")?(r="must not be",t=t.replace(/^not /,"")):r="must be",o(e," argument"))u="The ".concat(e," ").concat(r," ").concat(i(t,"type"));else{var r,u,c=s(e,".")?"property":"argument";u='The "'.concat(e,'" ').concat(c," ").concat(r," ").concat(i(t,"type"))}return u+". Received type ".concat(typeof n)},TypeError),r("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),r("ERR_METHOD_NOT_IMPLEMENTED",function(e){return"The "+e+" method is not implemented"}),r("ERR_STREAM_PREMATURE_CLOSE","Premature close"),r("ERR_STREAM_DESTROYED",function(e){return"Cannot call "+e+" after a stream was destroyed"}),r("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),r("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),r("ERR_STREAM_WRITE_AFTER_END","write after end"),r("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),r("ERR_UNKNOWN_ENCODING",function(e){return"Unknown encoding: "+e},TypeError),r("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),e.exports.q=n},56753(e,t,n){"use strict";var r=Object.keys||function(e){var t=[];for(var n in e)t.push(n);return t};e.exports=c;var i=n(79481),a=n(64229);n(35717)(c,i);for(var o=r(a.prototype),s=0;s0){if("string"==typeof t||u.objectMode||Object.getPrototypeOf(t)===a.prototype||(t=s(t)),r)u.endEmitted?S(e,new E):A(e,u,t,!0);else if(u.ended)S(e,new w);else{if(u.destroyed)return!1;u.reading=!1,u.decoder&&!n?(t=u.decoder.write(t),u.objectMode||0!==t.length?A(e,u,t,!1):j(e,u)):A(e,u,t,!1)}}else r||(u.reading=!1,j(e,u));return!u.ended&&(u.length=C?e=C:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}function D(e,t){return e<=0||0===t.length&&t.ended?0:t.objectMode?1:e!=e?t.flowing&&t.length?t.buffer.head.data.length:t.length:(e>t.highWaterMark&&(t.highWaterMark=I(e)),e<=t.length)?e:t.ended?t.length:(t.needReadable=!0,0)}function N(e,t){if(f("onEofChunk"),!t.ended){if(t.decoder){var n=t.decoder.end();n&&n.length&&(t.buffer.push(n),t.length+=t.objectMode?1:n.length)}t.ended=!0,t.sync?P(e):(t.needReadable=!1,t.emittedReadable||(t.emittedReadable=!0,R(e)))}}function P(e){var t=e._readableState;f("emitReadable",t.needReadable,t.emittedReadable),t.needReadable=!1,t.emittedReadable||(f("emitReadable",t.flowing),t.emittedReadable=!0,process.nextTick(R,e))}function R(e){var t=e._readableState;f("emitReadable_",t.destroyed,t.length,t.ended),!t.destroyed&&(t.length||t.ended)&&(e.emit("readable"),t.emittedReadable=!1),t.needReadable=!t.flowing&&!t.ended&&t.length<=t.highWaterMark,z(e)}function j(e,t){t.readingMore||(t.readingMore=!0,process.nextTick(F,e,t))}function F(e,t){for(;!t.reading&&!t.ended&&(t.length0,t.resumeScheduled&&!t.paused?t.flowing=!0:e.listenerCount("data")>0&&e.resume()}function U(e){f("readable nexttick read 0"),e.read(0)}function H(e,t){t.resumeScheduled||(t.resumeScheduled=!0,process.nextTick($,e,t))}function $(e,t){f("resume",t.reading),t.reading||e.read(0),t.resumeScheduled=!1,e.emit("resume"),z(e),t.flowing&&!t.reading&&e.read(0)}function z(e){var t=e._readableState;for(f("flow",t.flowing);t.flowing&&null!==e.read(););}function G(e,t){var n;return 0===t.length?null:(t.objectMode?n=t.buffer.shift():!e||e>=t.length?(n=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.first():t.buffer.concat(t.length),t.buffer.clear()):n=t.buffer.consume(e,t.decoder),n)}function W(e){var t=e._readableState;f("endReadable",t.endEmitted),t.endEmitted||(t.ended=!0,process.nextTick(K,t,e))}function K(e,t){if(f("endReadableNT",e.endEmitted,e.length),!e.endEmitted&&0===e.length&&(e.endEmitted=!0,t.readable=!1,t.emit("end"),e.autoDestroy)){var n=t._writableState;(!n||n.autoDestroy&&n.finished)&&t.destroy()}}function V(e,t){for(var n=0,r=e.length;n=n.highWaterMark:n.length>0)||n.ended))return f("read: emitReadable",n.length,n.ended),0===n.length&&n.ended?W(this):P(this),null;if(0===(e=D(e,n))&&n.ended)return 0===n.length&&W(this),null;var i=n.needReadable;return f("need readable",i),(0===n.length||n.length-e0?G(e,n):null)?(n.needReadable=n.length<=n.highWaterMark,e=0):(n.length-=e,n.awaitDrain=0),0===n.length&&(n.ended||(n.needReadable=!0),r!==e&&n.ended&&W(this)),null!==t&&this.emit("data",t),t},M.prototype._read=function(e){S(this,new _("_read()"))},M.prototype.pipe=function(e,t){var n=this,i=this._readableState;switch(i.pipesCount){case 0:i.pipes=e;break;case 1:i.pipes=[i.pipes,e];break;default:i.pipes.push(e)}i.pipesCount+=1,f("pipe count=%d opts=%j",i.pipesCount,t);var a=t&&!1===t.end||e===process.stdout||e===process.stderr?m:s;function o(e,t){f("onunpipe"),e===n&&t&&!1===t.hasUnpiped&&(t.hasUnpiped=!0,l())}function s(){f("onend"),e.end()}i.endEmitted?process.nextTick(a):n.once("end",a),e.on("unpipe",o);var u=Y(n);e.on("drain",u);var c=!1;function l(){f("cleanup"),e.removeListener("close",p),e.removeListener("finish",b),e.removeListener("drain",u),e.removeListener("error",h),e.removeListener("unpipe",o),n.removeListener("end",s),n.removeListener("end",m),n.removeListener("data",d),c=!0,i.awaitDrain&&(!e._writableState||e._writableState.needDrain)&&u()}function d(t){f("ondata");var r=e.write(t);f("dest.write",r),!1===r&&((1===i.pipesCount&&i.pipes===e||i.pipesCount>1&&-1!==V(i.pipes,e))&&!c&&(f("false write response, pause",i.awaitDrain),i.awaitDrain++),n.pause())}function h(t){f("onerror",t),m(),e.removeListener("error",h),0===r(e,"error")&&S(e,t)}function p(){e.removeListener("finish",b),m()}function b(){f("onfinish"),e.removeListener("close",p),m()}function m(){f("unpipe"),n.unpipe(e)}return n.on("data",d),x(e,"error",h),e.once("close",p),e.once("finish",b),e.emit("pipe",n),i.flowing||(f("pipe resume"),n.resume()),e},M.prototype.unpipe=function(e){var t=this._readableState,n={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes||(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,n)),this;if(!e){var r=t.pipes,i=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var a=0;a0,!1!==r.flowing&&this.resume()):"readable"!==e||r.endEmitted||r.readableListening||(r.readableListening=r.needReadable=!0,r.flowing=!1,r.emittedReadable=!1,f("on readable",r.length,r.reading),r.length?P(this):r.reading||process.nextTick(U,this)),n},M.prototype.addListener=M.prototype.on,M.prototype.removeListener=function(e,t){var n=i.prototype.removeListener.call(this,e,t);return"readable"===e&&process.nextTick(B,this),n},M.prototype.removeAllListeners=function(e){var t=i.prototype.removeAllListeners.apply(this,arguments);return("readable"===e||void 0===e)&&process.nextTick(B,this),t},M.prototype.resume=function(){var e=this._readableState;return e.flowing||(f("resume"),e.flowing=!e.readableListening,H(this,e)),e.paused=!1,this},M.prototype.pause=function(){return f("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(f("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},M.prototype.wrap=function(e){var t=this,n=this._readableState,r=!1;for(var i in e.on("end",function(){if(f("wrapped end"),n.decoder&&!n.ended){var e=n.decoder.end();e&&e.length&&t.push(e)}t.push(null)}),e.on("data",function(i){if(f("wrapped data"),n.decoder&&(i=n.decoder.write(i)),!n.objectMode||null!=i)(n.objectMode||i&&i.length)&&(t.push(i)||(r=!0,e.pause()))}),e)void 0===this[i]&&"function"==typeof e[i]&&(this[i]=function(t){return function(){return e[t].apply(e,arguments)}}(i));for(var a=0;a-1))throw new E(e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(T.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(T.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),T.prototype._write=function(e,t,n){n(new m("_write()"))},T.prototype._writev=null,T.prototype.end=function(e,t,n){var r=this._writableState;return"function"==typeof e?(n=e,e=null,t=null):"function"==typeof t&&(n=t,t=null),null!=e&&this.write(e,t),r.corked&&(r.corked=1,this.uncork()),r.ending||H(this,r,n),this},Object.defineProperty(T.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(T.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),T.prototype.destroy=d.destroy,T.prototype._undestroy=d.undestroy,T.prototype._destroy=function(e,t){t(e)}},45850(e,t,n){"use strict";function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var i,a=n(8610),o=Symbol("lastResolve"),s=Symbol("lastReject"),u=Symbol("error"),c=Symbol("ended"),l=Symbol("lastPromise"),f=Symbol("handlePromise"),d=Symbol("stream");function h(e,t){return{value:e,done:t}}function p(e){var t=e[o];if(null!==t){var n=e[d].read();null!==n&&(e[l]=null,e[o]=null,e[s]=null,t(h(n,!1)))}}function b(e){process.nextTick(p,e)}function m(e,t){return function(n,r){e.then(function(){if(t[c]){n(h(void 0,!0));return}t[f](n,r)},r)}}var g=Object.getPrototypeOf(function(){}),v=Object.setPrototypeOf((i={get stream(){return this[d]},next:function(){var e,t=this,n=this[u];if(null!==n)return Promise.reject(n);if(this[c])return Promise.resolve(h(void 0,!0));if(this[d].destroyed)return new Promise(function(e,n){process.nextTick(function(){t[u]?n(t[u]):e(h(void 0,!0))})});var r=this[l];if(r)e=new Promise(m(r,this));else{var i=this[d].read();if(null!==i)return Promise.resolve(h(i,!1));e=new Promise(this[f])}return this[l]=e,e}},r(i,Symbol.asyncIterator,function(){return this}),r(i,"return",function(){var e=this;return new Promise(function(t,n){e[d].destroy(null,function(e){if(e){n(e);return}t(h(void 0,!0))})})}),i),g),y=function(e){var t,n=Object.create(v,(r(t={},d,{value:e,writable:!0}),r(t,o,{value:null,writable:!0}),r(t,s,{value:null,writable:!0}),r(t,u,{value:null,writable:!0}),r(t,c,{value:e._readableState.endEmitted,writable:!0}),r(t,f,{value:function(e,t){var r=n[d].read();r?(n[l]=null,n[o]=null,n[s]=null,e(h(r,!1))):(n[o]=e,n[s]=t)},writable:!0}),t));return n[l]=null,a(e,function(e){if(e&&"ERR_STREAM_PREMATURE_CLOSE"!==e.code){var t=n[s];null!==t&&(n[l]=null,n[o]=null,n[s]=null,t(e)),n[u]=e;return}var r=n[o];null!==r&&(n[l]=null,n[o]=null,n[s]=null,r(h(void 0,!0))),n[c]=!0}),e.on("readable",b.bind(null,n)),n};e.exports=y},77086(e,t,n){"use strict";function r(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 i(e){for(var t=1;t0?this.tail.next=t:this.head=t,this.tail=t,++this.length}},{key:"unshift",value:function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length}},{key:"shift",value:function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(e){if(0===this.length)return"";for(var t=this.head,n=""+t.data;t=t.next;)n+=e+t.data;return n}},{key:"concat",value:function(e){if(0===this.length)return c.alloc(0);for(var t=c.allocUnsafe(e>>>0),n=this.head,r=0;n;)d(n.data,t,r),r+=n.data.length,n=n.next;return t}},{key:"consume",value:function(e,t){var n;return ei.length?i.length:e;if(a===i.length?r+=i:r+=i.slice(0,e),0==(e-=a)){a===i.length?(++n,t.next?this.head=t.next:this.head=this.tail=null):(this.head=t,t.data=i.slice(a));break}++n}return this.length-=n,r}},{key:"_getBuffer",value:function(e){var t=c.allocUnsafe(e),n=this.head,r=1;for(n.data.copy(t),e-=n.data.length;n=n.next;){var i=n.data,a=e>i.length?i.length:e;if(i.copy(t,t.length-e,0,a),0==(e-=a)){a===i.length?(++r,n.next?this.head=n.next:this.head=this.tail=null):(this.head=n,n.data=i.slice(a));break}++r}return this.length-=r,t}},{key:f,value:function(e,t){return l(this,i({},t,{depth:0,customInspect:!1}))}}]),e}()},61195(e){"use strict";function t(e,t){var i=this,o=this._readableState&&this._readableState.destroyed,s=this._writableState&&this._writableState.destroyed;return o||s?(t?t(e):e&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(a,this,e)):process.nextTick(a,this,e)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,function(e){!t&&e?i._writableState?i._writableState.errorEmitted?process.nextTick(r,i):(i._writableState.errorEmitted=!0,process.nextTick(n,i,e)):process.nextTick(n,i,e):t?(process.nextTick(r,i),t(e)):process.nextTick(r,i)}),this)}function n(e,t){a(e,t),r(e)}function r(e){(!e._writableState||e._writableState.emitClose)&&(!e._readableState||e._readableState.emitClose)&&e.emit("close")}function i(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function a(e,t){e.emit("error",t)}function o(e,t){var n=e._readableState,r=e._writableState;n&&n.autoDestroy||r&&r.autoDestroy?e.destroy(t):e.emit("error",t)}e.exports={destroy:t,undestroy:i,errorOrDestroy:o}},8610(e,t,n){"use strict";var r=n(94281).q.ERR_STREAM_PREMATURE_CLOSE;function i(e){var t=!1;return function(){if(!t){t=!0;for(var n=arguments.length,r=Array(n),i=0;i0,function(t){e||(e=t),t&&a.forEach(f),o||(a.forEach(f),i(e))})});return n.reduce(d)}e.exports=p},82457(e,t,n){"use strict";var r=n(94281).q.ERR_INVALID_OPT_VALUE;function i(e,t,n){return null!=e.highWaterMark?e.highWaterMark:t?e[n]:null}function a(e,t,n,a){var o=i(t,a,n);if(null!=o){if(!(isFinite(o)&&Math.floor(o)===o)||o<0){var s=a?n:"highWaterMark";throw new r(s,o)}return Math.floor(o)}return e.objectMode?16:16384}e.exports={getHighWaterMark:a}},22503(e,t,n){e.exports=n(17187).EventEmitter},61566(e,t){"use strict";t.__esModule=!0,t.default=void 0;var n=function(e){return"string"==typeof e?e:e?e.displayName||e.name||"Component":void 0};t.default=n},60375(e){"use strict";var t=Object.prototype.hasOwnProperty;function n(e,t){return e===t?0!==e||0!==t||1/e==1/t:e!=e&&t!=t}function r(e,r){if(n(e,r))return!0;if("object"!=typeof e||null===e||"object"!=typeof r||null===r)return!1;var i=Object.keys(e),a=Object.keys(r);if(i.length!==a.length)return!1;for(var o=0;og,DE:()=>b,UY:()=>h,qC:()=>m,MT:()=>f});var r=n(4942);function i(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 a(e){for(var t=1;t]?|>=?|\?=|[-+\/=])(?=\s)/,lookbehind:!0},"string-operator":{pattern:/(\s)&&?(?=\s)/,lookbehind:!0,alias:"keyword"},"token-operator":[{pattern:/(\w)(?:->?|=>|[~|{}])(?=\w)/,lookbehind:!0,alias:"punctuation"},{pattern:/[|{}]/,alias:"punctuation"}],punctuation:/[,.:()]/}}e.exports=t,t.displayName="abap",t.aliases=[]},68313(e){"use strict";function t(e){var t,n;n="(?:ALPHA|BIT|CHAR|CR|CRLF|CTL|DIGIT|DQUOTE|HEXDIG|HTAB|LF|LWSP|OCTET|SP|VCHAR|WSP)",(t=e).languages.abnf={comment:/;.*/,string:{pattern:/(?:%[is])?"[^"\n\r]*"/,greedy:!0,inside:{punctuation:/^%[is]/}},range:{pattern:/%(?:b[01]+-[01]+|d\d+-\d+|x[A-F\d]+-[A-F\d]+)/i,alias:"number"},terminal:{pattern:/%(?:b[01]+(?:\.[01]+)*|d\d+(?:\.\d+)*|x[A-F\d]+(?:\.[A-F\d]+)*)/i,alias:"number"},repetition:{pattern:/(^|[^\w-])(?:\d*\*\d*|\d+)/,lookbehind:!0,alias:"operator"},definition:{pattern:/(^[ \t]*)(?:[a-z][\w-]*|<[^<>\r\n]*>)(?=\s*=)/m,lookbehind:!0,alias:"keyword",inside:{punctuation:/<|>/}},"core-rule":{pattern:RegExp("(?:(^|[^<\\w-])"+n+"|<"+n+">)(?![\\w-])","i"),lookbehind:!0,alias:["rule","constant"],inside:{punctuation:/<|>/}},rule:{pattern:/(^|[^<\w-])[a-z][\w-]*|<[^<>\r\n]*>/i,lookbehind:!0,inside:{punctuation:/<|>/}},operator:/=\/?|\//,punctuation:/[()\[\]]/}}e.exports=t,t.displayName="abnf",t.aliases=[]},5199(e){"use strict";function t(e){e.languages.actionscript=e.languages.extend("javascript",{keyword:/\b(?:as|break|case|catch|class|const|default|delete|do|else|extends|finally|for|function|if|implements|import|in|instanceof|interface|internal|is|native|new|null|package|private|protected|public|return|super|switch|this|throw|try|typeof|use|var|void|while|with|dynamic|each|final|get|include|namespace|override|set|static)\b/,operator:/\+\+|--|(?:[+\-*\/%^]|&&?|\|\|?|<>?>?|[!=]=?)=?|[~?@]/}),e.languages.actionscript["class-name"].alias="function",e.languages.markup&&e.languages.insertBefore("actionscript","string",{xml:{pattern:/(^|[^.])<\/?\w+(?:\s+[^\s>\/=]+=("|')(?:\\[\s\S]|(?!\2)[^\\])*\2)*\s*\/?>/,lookbehind:!0,inside:e.languages.markup}})}e.exports=t,t.displayName="actionscript",t.aliases=[]},89693(e){"use strict";function t(e){e.languages.ada={comment:/--.*/,string:/"(?:""|[^"\r\f\n])*"/i,number:[{pattern:/\b\d(?:_?\d)*#[\dA-F](?:_?[\dA-F])*(?:\.[\dA-F](?:_?[\dA-F])*)?#(?:E[+-]?\d(?:_?\d)*)?/i},{pattern:/\b\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:E[+-]?\d(?:_?\d)*)?\b/i}],"attr-name":/\b'\w+/i,keyword:/\b(?:abort|abs|abstract|accept|access|aliased|all|and|array|at|begin|body|case|constant|declare|delay|delta|digits|do|else|new|return|elsif|end|entry|exception|exit|for|function|generic|goto|if|in|interface|is|limited|loop|mod|not|null|of|others|out|overriding|package|pragma|private|procedure|protected|raise|range|record|rem|renames|requeue|reverse|select|separate|some|subtype|synchronized|tagged|task|terminate|then|type|until|use|when|while|with|xor)\b/i,boolean:/\b(?:true|false)\b/i,operator:/<[=>]?|>=?|=>?|:=|\/=?|\*\*?|[&+-]/,punctuation:/\.\.?|[,;():]/,char:/'.'/,variable:/\b[a-z](?:\w)*\b/i}}e.exports=t,t.displayName="ada",t.aliases=[]},24001(e){"use strict";function t(e){var t;(t=e).languages.agda={comment:/\{-[\s\S]*?(?:-\}|$)|--.*/,string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},punctuation:/[(){}⦃⦄.;@]/,"class-name":{pattern:/((?:data|record) +)\S+/,lookbehind:!0},function:{pattern:/(^[ \t]*)(?!\s)[^:\r\n]+(?=:)/m,lookbehind:!0},operator:{pattern:/(^\s*|\s)(?:[=|:∀→λ\\?_]|->)(?=\s)/,lookbehind:!0},keyword:/\b(?:Set|abstract|constructor|data|eta-equality|field|forall|hiding|import|in|inductive|infix|infixl|infixr|instance|let|macro|module|mutual|no-eta-equality|open|overlap|pattern|postulate|primitive|private|public|quote|quoteContext|quoteGoal|quoteTerm|record|renaming|rewrite|syntax|tactic|unquote|unquoteDecl|unquoteDef|using|variable|where|with)\b/}}e.exports=t,t.displayName="agda",t.aliases=[]},18018(e){"use strict";function t(e){e.languages.al={comment:/\/\/.*|\/\*[\s\S]*?\*\//,string:{pattern:/'(?:''|[^'\r\n])*'(?!')|"(?:""|[^"\r\n])*"(?!")/,greedy:!0},function:{pattern:/(\b(?:event|procedure|trigger)\s+|(?:^|[^.])\.\s*)[a-z_]\w*(?=\s*\()/i,lookbehind:!0},keyword:[/\b(?:array|asserterror|begin|break|case|do|downto|else|end|event|exit|for|foreach|function|if|implements|in|indataset|interface|internal|local|of|procedure|program|protected|repeat|runonclient|securityfiltering|suppressdispose|temporary|then|to|trigger|until|var|while|with|withevents)\b/i,/\b(?:action|actions|addafter|addbefore|addfirst|addlast|area|assembly|chartpart|codeunit|column|controladdin|cuegroup|customizes|dataitem|dataset|dotnet|elements|enum|enumextension|extends|field|fieldattribute|fieldelement|fieldgroup|fieldgroups|fields|filter|fixed|grid|group|key|keys|label|labels|layout|modify|moveafter|movebefore|movefirst|movelast|page|pagecustomization|pageextension|part|profile|query|repeater|report|requestpage|schema|separator|systempart|table|tableelement|tableextension|textattribute|textelement|type|usercontrol|value|xmlport)\b/i],number:/\b(?:0x[\da-f]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?)(?:F|U(?:LL?)?|LL?)?\b/i,boolean:/\b(?:false|true)\b/i,variable:/\b(?:Curr(?:FieldNo|Page|Report)|RequestOptionsPage|x?Rec)\b/,"class-name":/\b(?:automation|biginteger|bigtext|blob|boolean|byte|char|clienttype|code|completiontriggererrorlevel|connectiontype|database|dataclassification|datascope|date|dateformula|datetime|decimal|defaultlayout|dialog|dictionary|dotnetassembly|dotnettypedeclaration|duration|errorinfo|errortype|executioncontext|executionmode|fieldclass|fieldref|fieldtype|file|filterpagebuilder|guid|httpclient|httpcontent|httpheaders|httprequestmessage|httpresponsemessage|instream|integer|joker|jsonarray|jsonobject|jsontoken|jsonvalue|keyref|list|moduledependencyinfo|moduleinfo|none|notification|notificationscope|objecttype|option|outstream|pageresult|record|recordid|recordref|reportformat|securityfilter|sessionsettings|tableconnectiontype|tablefilter|testaction|testfield|testfilterfield|testpage|testpermissions|testrequestpage|text|textbuilder|textconst|textencoding|time|transactionmodel|transactiontype|variant|verbosity|version|view|views|webserviceactioncontext|webserviceactionresultcode|xmlattribute|xmlattributecollection|xmlcdata|xmlcomment|xmldeclaration|xmldocument|xmldocumenttype|xmlelement|xmlnamespacemanager|xmlnametable|xmlnode|xmlnodelist|xmlprocessinginstruction|xmlreadoptions|xmltext|xmlwriteoptions)\b/i,operator:/\.\.|:[=:]|[-+*/]=?|<>|[<>]=?|=|\b(?:and|div|mod|not|or|xor)\b/i,punctuation:/[()\[\]{}:.;,]/}}e.exports=t,t.displayName="al",t.aliases=[]},36363(e){"use strict";function t(e){e.languages.antlr4={comment:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,string:{pattern:/'(?:\\.|[^\\'\r\n])*'/,greedy:!0},"character-class":{pattern:/\[(?:\\.|[^\\\]\r\n])*\]/,greedy:!0,alias:"regex",inside:{range:{pattern:/([^[]|(?:^|[^\\])(?:\\\\)*\\\[)-(?!\])/,lookbehind:!0,alias:"punctuation"},escape:/\\(?:u(?:[a-fA-F\d]{4}|\{[a-fA-F\d]+\})|[pP]\{[=\w-]+\}|[^\r\nupP])/,punctuation:/[\[\]]/}},action:{pattern:/\{(?:[^{}]|\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})*\})*\}/,greedy:!0,inside:{content:{pattern:/(\{)[\s\S]+(?=\})/,lookbehind:!0},punctuation:/[{}]/}},command:{pattern:/(->\s*(?!\s))(?:\s*(?:,\s*)?\b[a-z]\w*(?:\s*\([^()\r\n]*\))?)+(?=\s*;)/i,lookbehind:!0,inside:{function:/\b\w+(?=\s*(?:[,(]|$))/,punctuation:/[,()]/}},annotation:{pattern:/@\w+(?:::\w+)*/,alias:"keyword"},label:{pattern:/#[ \t]*\w+/,alias:"punctuation"},keyword:/\b(?:catch|channels|finally|fragment|grammar|import|lexer|locals|mode|options|parser|returns|throws|tokens)\b/,definition:[{pattern:/\b[a-z]\w*(?=\s*:)/,alias:["rule","class-name"]},{pattern:/\b[A-Z]\w*(?=\s*:)/,alias:["token","constant"]}],constant:/\b[A-Z][A-Z_]*\b/,operator:/\.\.|->|[|~]|[*+?]\??/,punctuation:/[;:()=]/},e.languages.g4=e.languages.antlr4}e.exports=t,t.displayName="antlr4",t.aliases=["g4"]},35281(e){"use strict";function t(e){e.languages.apacheconf={comment:/#.*/,"directive-inline":{pattern:/(^[\t ]*)\b(?:AcceptFilter|AcceptPathInfo|AccessFileName|Action|Add(?:Alt|AltByEncoding|AltByType|Charset|DefaultCharset|Description|Encoding|Handler|Icon|IconByEncoding|IconByType|InputFilter|Language|ModuleInfo|OutputFilter|OutputFilterByType|Type)|Alias|AliasMatch|Allow(?:CONNECT|EncodedSlashes|Methods|Override|OverrideList)?|Anonymous(?:_LogEmail|_MustGiveEmail|_NoUserID|_VerifyEmail)?|AsyncRequestWorkerFactor|Auth(?:BasicAuthoritative|BasicFake|BasicProvider|BasicUseDigestAlgorithm|DBDUserPWQuery|DBDUserRealmQuery|DBMGroupFile|DBMType|DBMUserFile|Digest(?:Algorithm|Domain|NonceLifetime|Provider|Qop|ShmemSize)|Form(?:Authoritative|Body|DisableNoStore|FakeBasicAuth|Location|LoginRequiredLocation|LoginSuccessLocation|LogoutLocation|Method|Mimetype|Password|Provider|SitePassphrase|Size|Username)|GroupFile|LDAP(?:AuthorizePrefix|BindAuthoritative|BindDN|BindPassword|CharsetConfig|CompareAsUser|CompareDNOnServer|DereferenceAliases|GroupAttribute|GroupAttributeIsDN|InitialBindAsUser|InitialBindPattern|MaxSubGroupDepth|RemoteUserAttribute|RemoteUserIsDN|SearchAsUser|SubGroupAttribute|SubGroupClass|Url)|Merging|Name|Type|UserFile|nCache(?:Context|Enable|ProvideFor|SOCache|Timeout)|nzFcgiCheckAuthnProvider|nzFcgiDefineProvider|zDBDLoginToReferer|zDBDQuery|zDBDRedirectQuery|zDBMType|zSendForbiddenOnFailure)|BalancerGrowth|BalancerInherit|BalancerMember|BalancerPersist|BrowserMatch|BrowserMatchNoCase|BufferSize|BufferedLogs|CGIDScriptTimeout|CGIMapExtension|Cache(?:DefaultExpire|DetailHeader|DirLength|DirLevels|Disable|Enable|File|Header|IgnoreCacheControl|IgnoreHeaders|IgnoreNoLastMod|IgnoreQueryString|IgnoreURLSessionIdentifiers|KeyBaseURL|LastModifiedFactor|Lock|LockMaxAge|LockPath|MaxExpire|MaxFileSize|MinExpire|MinFileSize|NegotiatedDocs|QuickHandler|ReadSize|ReadTime|Root|Socache(?:MaxSize|MaxTime|MinTime|ReadSize|ReadTime)?|StaleOnError|StoreExpired|StoreNoStore|StorePrivate)|CharsetDefault|CharsetOptions|CharsetSourceEnc|CheckCaseOnly|CheckSpelling|ChrootDir|ContentDigest|CookieDomain|CookieExpires|CookieName|CookieStyle|CookieTracking|CoreDumpDirectory|CustomLog|DBDExptime|DBDInitSQL|DBDKeep|DBDMax|DBDMin|DBDParams|DBDPersist|DBDPrepareSQL|DBDriver|DTracePrivileges|Dav|DavDepthInfinity|DavGenericLockDB|DavLockDB|DavMinTimeout|DefaultIcon|DefaultLanguage|DefaultRuntimeDir|DefaultType|Define|Deflate(?:BufferSize|CompressionLevel|FilterNote|InflateLimitRequestBody|InflateRatio(?:Burst|Limit)|MemLevel|WindowSize)|Deny|DirectoryCheckHandler|DirectoryIndex|DirectoryIndexRedirect|DirectorySlash|DocumentRoot|DumpIOInput|DumpIOOutput|EnableExceptionHook|EnableMMAP|EnableSendfile|Error|ErrorDocument|ErrorLog|ErrorLogFormat|Example|ExpiresActive|ExpiresByType|ExpiresDefault|ExtFilterDefine|ExtFilterOptions|ExtendedStatus|FallbackResource|FileETag|FilterChain|FilterDeclare|FilterProtocol|FilterProvider|FilterTrace|ForceLanguagePriority|ForceType|ForensicLog|GprofDir|GracefulShutdownTimeout|Group|Header|HeaderName|Heartbeat(?:Address|Listen|MaxServers|Storage)|HostnameLookups|ISAPI(?:AppendLogToErrors|AppendLogToQuery|CacheFile|FakeAsync|LogNotSupported|ReadAheadBuffer)|IdentityCheck|IdentityCheckTimeout|ImapBase|ImapDefault|ImapMenu|Include|IncludeOptional|Index(?:HeadInsert|Ignore|IgnoreReset|Options|OrderDefault|StyleSheet)|InputSed|KeepAlive|KeepAliveTimeout|KeptBodySize|LDAP(?:CacheEntries|CacheTTL|ConnectionPoolTTL|ConnectionTimeout|LibraryDebug|OpCacheEntries|OpCacheTTL|ReferralHopLimit|Referrals|Retries|RetryDelay|SharedCacheFile|SharedCacheSize|Timeout|TrustedClientCert|TrustedGlobalCert|TrustedMode|VerifyServerCert)|LanguagePriority|Limit(?:InternalRecursion|Request(?:Body|FieldSize|Fields|Line)|XMLRequestBody)|Listen|ListenBackLog|LoadFile|LoadModule|LogFormat|LogLevel|LogMessage|LuaAuthzProvider|LuaCodeCache|Lua(?:Hook(?:AccessChecker|AuthChecker|CheckUserID|Fixups|InsertFilter|Log|MapToStorage|TranslateName|TypeChecker)|Inherit|InputFilter|MapHandler|OutputFilter|PackageCPath|PackagePath|QuickHandler|Root|Scope)|MMapFile|Max(?:ConnectionsPerChild|KeepAliveRequests|MemFree|RangeOverlaps|RangeReversals|Ranges|RequestWorkers|SpareServers|SpareThreads|Threads)|MergeTrailers|MetaDir|MetaFiles|MetaSuffix|MimeMagicFile|MinSpareServers|MinSpareThreads|ModMimeUsePathInfo|ModemStandard|MultiviewsMatch|Mutex|NWSSLTrustedCerts|NWSSLUpgradeable|NameVirtualHost|NoProxy|Options|Order|OutputSed|PassEnv|PidFile|PrivilegesMode|Protocol|ProtocolEcho|Proxy(?:AddHeaders|BadHeader|Block|Domain|ErrorOverride|ExpressDBMFile|ExpressDBMType|ExpressEnable|FtpDirCharset|FtpEscapeWildcards|FtpListOnWildcard|HTML(?:BufSize|CharsetOut|DocType|Enable|Events|Extended|Fixups|Interp|Links|Meta|StripComments|URLMap)|IOBufferSize|MaxForwards|Pass(?:Inherit|InterpolateEnv|Match|Reverse|ReverseCookieDomain|ReverseCookiePath)?|PreserveHost|ReceiveBufferSize|Remote|RemoteMatch|Requests|SCGIInternalRedirect|SCGISendfile|Set|SourceAddress|Status|Timeout|Via)|RLimitCPU|RLimitMEM|RLimitNPROC|ReadmeName|ReceiveBufferSize|Redirect|RedirectMatch|RedirectPermanent|RedirectTemp|ReflectorHeader|RemoteIP(?:Header|InternalProxy|InternalProxyList|ProxiesHeader|TrustedProxy|TrustedProxyList)|RemoveCharset|RemoveEncoding|RemoveHandler|RemoveInputFilter|RemoveLanguage|RemoveOutputFilter|RemoveType|RequestHeader|RequestReadTimeout|Require|Rewrite(?:Base|Cond|Engine|Map|Options|Rule)|SSIETag|SSIEndTag|SSIErrorMsg|SSILastModified|SSILegacyExprParser|SSIStartTag|SSITimeFormat|SSIUndefinedEcho|SSL(?:CACertificateFile|CACertificatePath|CADNRequestFile|CADNRequestPath|CARevocationCheck|CARevocationFile|CARevocationPath|CertificateChainFile|CertificateFile|CertificateKeyFile|CipherSuite|Compression|CryptoDevice|Engine|FIPS|HonorCipherOrder|InsecureRenegotiation|OCSP(?:DefaultResponder|Enable|OverrideResponder|ResponderTimeout|ResponseMaxAge|ResponseTimeSkew|UseRequestNonce)|OpenSSLConfCmd|Options|PassPhraseDialog|Protocol|Proxy(?:CACertificateFile|CACertificatePath|CARevocation(?:Check|File|Path)|CheckPeer(?:CN|Expire|Name)|CipherSuite|Engine|MachineCertificate(?:ChainFile|File|Path)|Protocol|Verify|VerifyDepth)|RandomSeed|RenegBufferSize|Require|RequireSSL|SRPUnknownUserSeed|SRPVerifierFile|Session(?:Cache|CacheTimeout|TicketKeyFile|Tickets)|Stapling(?:Cache|ErrorCacheTimeout|FakeTryLater|ForceURL|ResponderTimeout|ResponseMaxAge|ResponseTimeSkew|ReturnResponderErrors|StandardCacheTimeout)|StrictSNIVHostCheck|UseStapling|UserName|VerifyClient|VerifyDepth)|Satisfy|ScoreBoardFile|Script(?:Alias|AliasMatch|InterpreterSource|Log|LogBuffer|LogLength|Sock)?|SecureListen|SeeRequestTail|SendBufferSize|Server(?:Admin|Alias|Limit|Name|Path|Root|Signature|Tokens)|Session(?:Cookie(?:Name|Name2|Remove)|Crypto(?:Cipher|Driver|Passphrase|PassphraseFile)|DBD(?:CookieName|CookieName2|CookieRemove|DeleteLabel|InsertLabel|PerUser|SelectLabel|UpdateLabel)|Env|Exclude|Header|Include|MaxAge)?|SetEnv|SetEnvIf|SetEnvIfExpr|SetEnvIfNoCase|SetHandler|SetInputFilter|SetOutputFilter|StartServers|StartThreads|Substitute|Suexec|SuexecUserGroup|ThreadLimit|ThreadStackSize|ThreadsPerChild|TimeOut|TraceEnable|TransferLog|TypesConfig|UnDefine|UndefMacro|UnsetEnv|Use|UseCanonicalName|UseCanonicalPhysicalPort|User|UserDir|VHostCGIMode|VHostCGIPrivs|VHostGroup|VHostPrivs|VHostSecure|VHostUser|Virtual(?:DocumentRoot|ScriptAlias)(?:IP)?|WatchdogInterval|XBitHack|xml2EncAlias|xml2EncDefault|xml2StartParse)\b/im,lookbehind:!0,alias:"property"},"directive-block":{pattern:/<\/?\b(?:Auth[nz]ProviderAlias|Directory|DirectoryMatch|Else|ElseIf|Files|FilesMatch|If|IfDefine|IfModule|IfVersion|Limit|LimitExcept|Location|LocationMatch|Macro|Proxy|Require(?:All|Any|None)|VirtualHost)\b.*>/i,inside:{"directive-block":{pattern:/^<\/?\w+/,inside:{punctuation:/^<\/?/},alias:"tag"},"directive-block-parameter":{pattern:/.*[^>]/,inside:{punctuation:/:/,string:{pattern:/("|').*\1/,inside:{variable:/[$%]\{?(?:\w\.?[-+:]?)+\}?/}}},alias:"attr-value"},punctuation:/>/},alias:"tag"},"directive-flags":{pattern:/\[(?:[\w=],?)+\]/,alias:"keyword"},string:{pattern:/("|').*\1/,inside:{variable:/[$%]\{?(?:\w\.?[-+:]?)+\}?/}},variable:/[$%]\{?(?:\w\.?[-+:]?)+\}?/,regex:/\^?.*\$|\^.*\$?/}}e.exports=t,t.displayName="apacheconf",t.aliases=[]},10433(e,t,n){"use strict";var r=n(11114);function i(e){e.register(r),function(e){var t=/\b(?:abstract|activate|and|any|array|as|asc|autonomous|begin|bigdecimal|blob|boolean|break|bulk|by|byte|case|cast|catch|char|class|collect|commit|const|continue|currency|date|datetime|decimal|default|delete|desc|do|double|else|end|enum|exception|exit|export|extends|final|finally|float|for|from|global|goto|group|having|hint|if|implements|import|in|inner|insert|instanceof|int|integer|interface|into|join|like|limit|list|long|loop|map|merge|new|not|null|nulls|number|object|of|on|or|outer|override|package|parallel|pragma|private|protected|public|retrieve|return|rollback|select|set|short|sObject|sort|static|string|super|switch|synchronized|system|testmethod|then|this|throw|time|transaction|transient|trigger|try|undelete|update|upsert|using|virtual|void|webservice|when|where|while|get(?=\s*[{};])|(?:after|before)(?=\s+[a-z])|(?:inherited|with|without)\s+sharing)\b/i,n=/\b(?:(?=[a-z_]\w*\s*[<\[])|(?!))[A-Z_]\w*(?:\s*\.\s*[A-Z_]\w*)*\b(?:\s*(?:\[\s*\]|<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>))*/.source.replace(//g,function(){return t.source});function r(e){return RegExp(e.replace(//g,function(){return n}),"i")}var i={keyword:t,punctuation:/[()\[\]{};,:.<>]/};e.languages.apex={comment:e.languages.clike.comment,string:e.languages.clike.string,sql:{pattern:/((?:[=,({:]|\breturn)\s*)\[[^\[\]]*\]/i,lookbehind:!0,greedy:!0,alias:"language-sql",inside:e.languages.sql},annotation:{pattern:/@\w+\b/,alias:"punctuation"},"class-name":[{pattern:r(/(\b(?:class|enum|extends|implements|instanceof|interface|new|trigger\s+\w+\s+on)\s+)/.source),lookbehind:!0,inside:i},{pattern:r(/(\(\s*)(?=\s*\)\s*[\w(])/.source),lookbehind:!0,inside:i},{pattern:r(/(?=\s*\w+\s*[;=,(){:])/.source),inside:i}],trigger:{pattern:/(\btrigger\s+)\w+\b/i,lookbehind:!0,alias:"class-name"},keyword:t,function:/\b[a-z_]\w*(?=\s*\()/i,boolean:/\b(?:false|true)\b/i,number:/(?:\B\.\d+|\b\d+(?:\.\d+|L)?)\b/i,operator:/[!=](?:==?)?|\?\.?|&&|\|\||--|\+\+|[-+*/^&|]=?|:|<{1,3}=?/,punctuation:/[()\[\]{};,.]/}}(e)}e.exports=i,i.displayName="apex",i.aliases=[]},84039(e){"use strict";function t(e){e.languages.apl={comment:/(?:⍝|#[! ]).*$/m,string:{pattern:/'(?:[^'\r\n]|'')*'/,greedy:!0},number:/¯?(?:\d*\.?\b\d+(?:e[+¯]?\d+)?|¯|∞)(?:j¯?(?:(?:\d+(?:\.\d+)?|\.\d+)(?:e[+¯]?\d+)?|¯|∞))?/i,statement:/:[A-Z][a-z][A-Za-z]*\b/,"system-function":{pattern:/⎕[A-Z]+/i,alias:"function"},constant:/[⍬⌾#⎕⍞]/,function:/[-+×÷⌈⌊∣|⍳⍸?*⍟○!⌹<≤=>≥≠≡≢∊⍷∪∩~∨∧⍱⍲⍴,⍪⌽⊖⍉↑↓⊂⊃⊆⊇⌷⍋⍒⊤⊥⍕⍎⊣⊢⍁⍂≈⍯↗¤→]/,"monadic-operator":{pattern:/[\\\/⌿⍀¨⍨⌶&∥]/,alias:"operator"},"dyadic-operator":{pattern:/[.⍣⍠⍤∘⌸@⌺⍥]/,alias:"operator"},assignment:{pattern:/←/,alias:"keyword"},punctuation:/[\[;\]()◇⋄]/,dfn:{pattern:/[{}⍺⍵⍶⍹∇⍫:]/,alias:"builtin"}}}e.exports=t,t.displayName="apl",t.aliases=[]},71336(e){"use strict";function t(e){e.languages.applescript={comment:[/\(\*(?:\(\*(?:[^*]|\*(?!\)))*\*\)|(?!\(\*)[\s\S])*?\*\)/,/--.+/,/#.+/],string:/"(?:\\.|[^"\\\r\n])*"/,number:/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e-?\d+)?\b/i,operator:[/[&=≠≤≥*+\-\/÷^]|[<>]=?/,/\b(?:(?:start|begin|end)s? with|(?:(?:does not|doesn't) contain|contains?)|(?:is|isn't|is not) (?:in|contained by)|(?:(?:is|isn't|is not) )?(?:greater|less) than(?: or equal)?(?: to)?|(?:(?:does not|doesn't) come|comes) (?:before|after)|(?:is|isn't|is not) equal(?: to)?|(?:(?:does not|doesn't) equal|equals|equal to|isn't|is not)|(?:a )?(?:ref(?: to)?|reference to)|(?:and|or|div|mod|as|not))\b/],keyword:/\b(?:about|above|after|against|apart from|around|aside from|at|back|before|beginning|behind|below|beneath|beside|between|but|by|considering|continue|copy|does|eighth|else|end|equal|error|every|exit|false|fifth|first|for|fourth|from|front|get|given|global|if|ignoring|in|instead of|into|is|it|its|last|local|me|middle|my|ninth|of|on|onto|out of|over|prop|property|put|repeat|return|returning|second|set|seventh|since|sixth|some|tell|tenth|that|the|then|third|through|thru|timeout|times|to|transaction|true|try|until|where|while|whose|with|without)\b/,class:{pattern:/\b(?:alias|application|boolean|class|constant|date|file|integer|list|number|POSIX file|real|record|reference|RGB color|script|text|centimetres|centimeters|feet|inches|kilometres|kilometers|metres|meters|miles|yards|square feet|square kilometres|square kilometers|square metres|square meters|square miles|square yards|cubic centimetres|cubic centimeters|cubic feet|cubic inches|cubic metres|cubic meters|cubic yards|gallons|litres|liters|quarts|grams|kilograms|ounces|pounds|degrees Celsius|degrees Fahrenheit|degrees Kelvin)\b/,alias:"builtin"},punctuation:/[{}():,¬«»《》]/}}e.exports=t,t.displayName="applescript",t.aliases=[]},4481(e){"use strict";function t(e){e.languages.aql={comment:/\/\/.*|\/\*[\s\S]*?\*\//,property:{pattern:/([{,]\s*)(?:(?!\d)\w+|(["'´`])(?:(?!\2)[^\\\r\n]|\\.)*\2)(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(["'´`])(?:(?!\1)[^\\\r\n]|\\.)*\1/,greedy:!0},variable:/@@?\w+/,keyword:[{pattern:/(\bWITH\s+)COUNT(?=\s+INTO\b)/i,lookbehind:!0},/\b(?:AGGREGATE|ALL|AND|ANY|ASC|COLLECT|DESC|DISTINCT|FILTER|FOR|GRAPH|IN|INBOUND|INSERT|INTO|K_PATHS|K_SHORTEST_PATHS|LET|LIKE|LIMIT|NONE|NOT|NULL|OR|OUTBOUND|REMOVE|REPLACE|RETURN|SHORTEST_PATH|SORT|UPDATE|UPSERT|WINDOW|WITH)\b/i,{pattern:/(^|[^\w.[])(?:KEEP|PRUNE|SEARCH|TO)\b/i,lookbehind:!0},{pattern:/(^|[^\w.[])(?:CURRENT|NEW|OLD)\b/,lookbehind:!0},{pattern:/\bOPTIONS(?=\s*\{)/i}],function:/\b(?!\d)\w+(?=\s*\()/,boolean:/\b(?:true|false)\b/i,range:{pattern:/\.\./,alias:"operator"},number:[/\b0b[01]+/i,/\b0x[0-9a-f]+/i,/(?:\B\.\d+|\b(?:0|[1-9]\d*)(?:\.\d+)?)(?:e[+-]?\d+)?/i],operator:/\*{2,}|[=!]~|[!=<>]=?|&&|\|\||[-+*/%]/,punctuation:/::|[?.:,;()[\]{}]/}}e.exports=t,t.displayName="aql",t.aliases=[]},2159(e,t,n){"use strict";var r=n(80096);function i(e){e.register(r),e.languages.arduino=e.languages.extend("cpp",{constant:/\b(?:DIGITAL_MESSAGE|FIRMATA_STRING|ANALOG_MESSAGE|REPORT_DIGITAL|REPORT_ANALOG|INPUT_PULLUP|SET_PIN_MODE|INTERNAL2V56|SYSTEM_RESET|LED_BUILTIN|INTERNAL1V1|SYSEX_START|INTERNAL|EXTERNAL|DEFAULT|OUTPUT|INPUT|HIGH|LOW)\b/,keyword:/\b(?:setup|if|else|while|do|for|return|in|instanceof|default|function|loop|goto|switch|case|new|try|throw|catch|finally|null|break|continue|boolean|bool|void|byte|word|string|String|array|int|long|integer|double)\b/,builtin:/\b(?:KeyboardController|MouseController|SoftwareSerial|EthernetServer|EthernetClient|LiquidCrystal|LiquidCrystal_I2C|RobotControl|GSMVoiceCall|EthernetUDP|EsploraTFT|HttpClient|RobotMotor|WiFiClient|GSMScanner|FileSystem|Scheduler|GSMServer|YunClient|YunServer|IPAddress|GSMClient|GSMModem|Keyboard|Ethernet|Console|GSMBand|Esplora|Stepper|Process|WiFiUDP|GSM_SMS|Mailbox|USBHost|Firmata|PImage|Client|Server|GSMPIN|FileIO|Bridge|Serial|EEPROM|Stream|Mouse|Audio|Servo|File|Task|GPRS|WiFi|Wire|TFT|GSM|SPI|SD|runShellCommandAsynchronously|analogWriteResolution|retrieveCallingNumber|printFirmwareVersion|analogReadResolution|sendDigitalPortPair|noListenOnLocalhost|readJoystickButton|setFirmwareVersion|readJoystickSwitch|scrollDisplayRight|getVoiceCallStatus|scrollDisplayLeft|writeMicroseconds|delayMicroseconds|beginTransmission|getSignalStrength|runAsynchronously|getAsynchronously|listenOnLocalhost|getCurrentCarrier|readAccelerometer|messageAvailable|sendDigitalPorts|lineFollowConfig|countryNameWrite|runShellCommand|readStringUntil|rewindDirectory|readTemperature|setClockDivider|readLightSensor|endTransmission|analogReference|detachInterrupt|countryNameRead|attachInterrupt|encryptionType|readBytesUntil|robotNameWrite|readMicrophone|robotNameRead|cityNameWrite|userNameWrite|readJoystickY|readJoystickX|mouseReleased|openNextFile|scanNetworks|noInterrupts|digitalWrite|beginSpeaker|mousePressed|isActionDone|mouseDragged|displayLogos|noAutoscroll|addParameter|remoteNumber|getModifiers|keyboardRead|userNameRead|waitContinue|processInput|parseCommand|printVersion|readNetworks|writeMessage|blinkVersion|cityNameRead|readMessage|setDataMode|parsePacket|isListening|setBitOrder|beginPacket|isDirectory|motorsWrite|drawCompass|digitalRead|clearScreen|serialEvent|rightToLeft|setTextSize|leftToRight|requestFrom|keyReleased|compassRead|analogWrite|interrupts|WiFiServer|disconnect|playMelody|parseFloat|autoscroll|getPINUsed|setPINUsed|setTimeout|sendAnalog|readSlider|analogRead|beginWrite|createChar|motorsStop|keyPressed|tempoWrite|readButton|subnetMask|debugPrint|macAddress|writeGreen|randomSeed|attachGPRS|readString|sendString|remotePort|releaseAll|mouseMoved|background|getXChange|getYChange|answerCall|getResult|voiceCall|endPacket|constrain|getSocket|writeJSON|getButton|available|connected|findUntil|readBytes|exitValue|readGreen|writeBlue|startLoop|isPressed|sendSysex|pauseMode|gatewayIP|setCursor|getOemKey|tuneWrite|noDisplay|loadImage|switchPIN|onRequest|onReceive|changePIN|playFile|noBuffer|parseInt|overflow|checkPIN|knobRead|beginTFT|bitClear|updateIR|bitWrite|position|writeRGB|highByte|writeRed|setSpeed|readBlue|noStroke|remoteIP|transfer|shutdown|hangCall|beginSMS|endWrite|attached|maintain|noCursor|checkReg|checkPUK|shiftOut|isValid|shiftIn|pulseIn|connect|println|localIP|pinMode|getIMEI|display|noBlink|process|getBand|running|beginSD|drawBMP|lowByte|setBand|release|bitRead|prepare|pointTo|readRed|setMode|noFill|remove|listen|stroke|detach|attach|noTone|exists|buffer|height|bitSet|circle|config|cursor|random|IRread|setDNS|endSMS|getKey|micros|millis|begin|print|write|ready|flush|width|isPIN|blink|clear|press|mkdir|rmdir|close|point|yield|image|BSSID|click|delay|read|text|move|peek|beep|rect|line|open|seek|fill|size|turn|stop|home|find|step|tone|sqrt|RSSI|SSID|end|bit|tan|cos|sin|pow|map|abs|max|min|get|run|put)\b/})}e.exports=i,i.displayName="arduino",i.aliases=[]},60274(e){"use strict";function t(e){e.languages.arff={comment:/%.*/,string:{pattern:/(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},keyword:/@(?:attribute|data|end|relation)\b/i,number:/\b\d+(?:\.\d+)?\b/,punctuation:/[{},]/}}e.exports=t,t.displayName="arff",t.aliases=[]},18738(e){"use strict";function t(e){!function(e){var t={pattern:/(^[ \t]*)\[(?!\[)(?:(["'$`])(?:(?!\2)[^\\]|\\.)*\2|\[(?:[^\[\]\\]|\\.)*\]|[^\[\]\\"'$`]|\\.)*\]/m,lookbehind:!0,inside:{quoted:{pattern:/([$`])(?:(?!\1)[^\\]|\\.)*\1/,inside:{punctuation:/^[$`]|[$`]$/}},interpreted:{pattern:/'(?:[^'\\]|\\.)*'/,inside:{punctuation:/^'|'$/}},string:/"(?:[^"\\]|\\.)*"/,variable:/\w+(?==)/,punctuation:/^\[|\]$|,/,operator:/=/,"attr-value":/(?!^\s+$).+/}},n=e.languages.asciidoc={"comment-block":{pattern:/^(\/{4,})(?:\r?\n|\r)(?:[\s\S]*(?:\r?\n|\r))??\1/m,alias:"comment"},table:{pattern:/^\|={3,}(?:(?:\r?\n|\r(?!\n)).*)*?(?:\r?\n|\r)\|={3,}$/m,inside:{specifiers:{pattern:/(?!\|)(?:(?:(?:\d+(?:\.\d+)?|\.\d+)[+*])?(?:[<^>](?:\.[<^>])?|\.[<^>])?[a-z]*)(?=\|)/,alias:"attr-value"},punctuation:{pattern:/(^|[^\\])[|!]=*/,lookbehind:!0}}},"passthrough-block":{pattern:/^(\+{4,})(?:\r?\n|\r)(?:[\s\S]*(?:\r?\n|\r))??\1$/m,inside:{punctuation:/^\++|\++$/}},"literal-block":{pattern:/^(-{4,}|\.{4,})(?:\r?\n|\r)(?:[\s\S]*(?:\r?\n|\r))??\1$/m,inside:{punctuation:/^(?:-+|\.+)|(?:-+|\.+)$/}},"other-block":{pattern:/^(--|\*{4,}|_{4,}|={4,})(?:\r?\n|\r)(?:[\s\S]*(?:\r?\n|\r))??\1$/m,inside:{punctuation:/^(?:-+|\*+|_+|=+)|(?:-+|\*+|_+|=+)$/}},"list-punctuation":{pattern:/(^[ \t]*)(?:-|\*{1,5}|\.{1,5}|(?:[a-z]|\d+)\.|[xvi]+\))(?= )/im,lookbehind:!0,alias:"punctuation"},"list-label":{pattern:/(^[ \t]*)[a-z\d].+(?::{2,4}|;;)(?=\s)/im,lookbehind:!0,alias:"symbol"},"indented-block":{pattern:/((\r?\n|\r)\2)([ \t]+)\S.*(?:(?:\r?\n|\r)\3.+)*(?=\2{2}|$)/,lookbehind:!0},comment:/^\/\/.*/m,title:{pattern:/^.+(?:\r?\n|\r)(?:={3,}|-{3,}|~{3,}|\^{3,}|\+{3,})$|^={1,5} .+|^\.(?![\s.]).*/m,alias:"important",inside:{punctuation:/^(?:\.|=+)|(?:=+|-+|~+|\^+|\++)$/}},"attribute-entry":{pattern:/^:[^:\r\n]+:(?: .*?(?: \+(?:\r?\n|\r).*?)*)?$/m,alias:"tag"},attributes:t,hr:{pattern:/^'{3,}$/m,alias:"punctuation"},"page-break":{pattern:/^<{3,}$/m,alias:"punctuation"},admonition:{pattern:/^(?:TIP|NOTE|IMPORTANT|WARNING|CAUTION):/m,alias:"keyword"},callout:[{pattern:/(^[ \t]*)/m,lookbehind:!0,alias:"symbol"},{pattern:/<\d+>/,alias:"symbol"}],macro:{pattern:/\b[a-z\d][a-z\d-]*::?(?:[^\s\[\]]*\[(?:[^\]\\"']|(["'])(?:(?!\1)[^\\]|\\.)*\1|\\.)*\])/,inside:{function:/^[a-z\d-]+(?=:)/,punctuation:/^::?/,attributes:{pattern:/(?:\[(?:[^\]\\"']|(["'])(?:(?!\1)[^\\]|\\.)*\1|\\.)*\])/,inside:t.inside}}},inline:{pattern:/(^|[^\\])(?:(?:\B\[(?:[^\]\\"']|(["'])(?:(?!\2)[^\\]|\\.)*\2|\\.)*\])?(?:\b_(?!\s)(?: _|[^_\\\r\n]|\\.)+(?:(?:\r?\n|\r)(?: _|[^_\\\r\n]|\\.)+)*_\b|\B``(?!\s).+?(?:(?:\r?\n|\r).+?)*''\B|\B`(?!\s)(?:[^`'\s]|\s+\S)+['`]\B|\B(['*+#])(?!\s)(?: \3|(?!\3)[^\\\r\n]|\\.)+(?:(?:\r?\n|\r)(?: \3|(?!\3)[^\\\r\n]|\\.)+)*\3\B)|(?:\[(?:[^\]\\"']|(["'])(?:(?!\4)[^\\]|\\.)*\4|\\.)*\])?(?:(__|\*\*|\+\+\+?|##|\$\$|[~^]).+?(?:(?:\r?\n|\r).+?)*\5|\{[^}\r\n]+\}|\[\[\[?.+?(?:(?:\r?\n|\r).+?)*\]?\]\]|<<.+?(?:(?:\r?\n|\r).+?)*>>|\(\(\(?.+?(?:(?:\r?\n|\r).+?)*\)?\)\)))/m,lookbehind:!0,inside:{attributes:t,url:{pattern:/^(?:\[\[\[?.+?\]?\]\]|<<.+?>>)$/,inside:{punctuation:/^(?:\[\[\[?|<<)|(?:\]\]\]?|>>)$/}},"attribute-ref":{pattern:/^\{.+\}$/,inside:{variable:{pattern:/(^\{)[a-z\d,+_-]+/,lookbehind:!0},operator:/^[=?!#%@$]|!(?=[:}])/,punctuation:/^\{|\}$|::?/}},italic:{pattern:/^(['_])[\s\S]+\1$/,inside:{punctuation:/^(?:''?|__?)|(?:''?|__?)$/}},bold:{pattern:/^\*[\s\S]+\*$/,inside:{punctuation:/^\*\*?|\*\*?$/}},punctuation:/^(?:``?|\+{1,3}|##?|\$\$|[~^]|\(\(\(?)|(?:''?|\+{1,3}|##?|\$\$|[~^`]|\)?\)\))$/}},replacement:{pattern:/\((?:C|TM|R)\)/,alias:"builtin"},entity:/&#?[\da-z]{1,8};/i,"line-continuation":{pattern:/(^| )\+$/m,lookbehind:!0,alias:"punctuation"}};function r(e){e=e.split(" ");for(var t={},r=0,i=e.length;r/i,alias:"tag",inside:{"page-directive":{pattern:/<%\s*@\s*(?:Assembly|Control|Implements|Import|Master(?:Type)?|OutputCache|Page|PreviousPageType|Reference|Register)?|%>/i,alias:"tag"},rest:e.languages.markup.tag.inside}},directive:{pattern:/<%.*%>/i,alias:"tag",inside:{directive:{pattern:/<%\s*?[$=%#:]{0,2}|%>/i,alias:"tag"},rest:e.languages.csharp}}}),e.languages.aspnet.tag.pattern=/<(?!%)\/?[^\s>\/]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+))?)*\s*\/?>/i,e.languages.insertBefore("inside","punctuation",{directive:e.languages.aspnet.directive},e.languages.aspnet.tag.inside["attr-value"]),e.languages.insertBefore("aspnet","comment",{"asp-comment":{pattern:/<%--[\s\S]*?--%>/,alias:["asp","comment"]}}),e.languages.insertBefore("aspnet",e.languages.javascript?"script":"tag",{"asp-script":{pattern:/(]*>)[\s\S]*?(?=<\/script>)/i,lookbehind:!0,alias:["asp","script"],inside:e.languages.csharp||{}}})}e.exports=i,i.displayName="aspnet",i.aliases=[]},6681(e){"use strict";function t(e){e.languages.autohotkey={comment:[{pattern:/(^|\s);.*/,lookbehind:!0},{pattern:/(^[\t ]*)\/\*(?:[\r\n](?![ \t]*\*\/)|[^\r\n])*(?:[\r\n][ \t]*\*\/)?/m,lookbehind:!0,greedy:!0}],tag:{pattern:/^([ \t]*)[^\s,`":]+(?=:[ \t]*$)/m,lookbehind:!0},string:/"(?:[^"\n\r]|"")*"/m,variable:/%\w+%/,number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/\?|\/\/?=?|:=|\|[=|]?|&[=&]?|\+[=+]?|-[=-]?|\*[=*]?|<(?:<=?|>|=)?|>>?=?|[.^!=~]=?|\b(?:AND|NOT|OR)\b/,boolean:/\b(?:true|false)\b/,selector:/\b(?:AutoTrim|BlockInput|Break|Click|ClipWait|Continue|Control|ControlClick|ControlFocus|ControlGet|ControlGetFocus|ControlGetPos|ControlGetText|ControlMove|ControlSend|ControlSendRaw|ControlSetText|CoordMode|Critical|DetectHiddenText|DetectHiddenWindows|Drive|DriveGet|DriveSpaceFree|EnvAdd|EnvDiv|EnvGet|EnvMult|EnvSet|EnvSub|EnvUpdate|Exit|ExitApp|FileAppend|FileCopy|FileCopyDir|FileCreateDir|FileCreateShortcut|FileDelete|FileEncoding|FileGetAttrib|FileGetShortcut|FileGetSize|FileGetTime|FileGetVersion|FileInstall|FileMove|FileMoveDir|FileRead|FileReadLine|FileRecycle|FileRecycleEmpty|FileRemoveDir|FileSelectFile|FileSelectFolder|FileSetAttrib|FileSetTime|FormatTime|GetKeyState|Gosub|Goto|GroupActivate|GroupAdd|GroupClose|GroupDeactivate|Gui|GuiControl|GuiControlGet|Hotkey|ImageSearch|IniDelete|IniRead|IniWrite|Input|InputBox|KeyWait|ListHotkeys|ListLines|ListVars|Loop|Menu|MouseClick|MouseClickDrag|MouseGetPos|MouseMove|MsgBox|OnExit|OutputDebug|Pause|PixelGetColor|PixelSearch|PostMessage|Process|Progress|Random|RegDelete|RegRead|RegWrite|Reload|Repeat|Return|Run|RunAs|RunWait|Send|SendEvent|SendInput|SendMessage|SendMode|SendPlay|SendRaw|SetBatchLines|SetCapslockState|SetControlDelay|SetDefaultMouseSpeed|SetEnv|SetFormat|SetKeyDelay|SetMouseDelay|SetNumlockState|SetRegView|SetScrollLockState|SetStoreCapslockMode|SetTimer|SetTitleMatchMode|SetWinDelay|SetWorkingDir|Shutdown|Sleep|Sort|SoundBeep|SoundGet|SoundGetWaveVolume|SoundPlay|SoundSet|SoundSetWaveVolume|SplashImage|SplashTextOff|SplashTextOn|SplitPath|StatusBarGetText|StatusBarWait|StringCaseSense|StringGetPos|StringLeft|StringLen|StringLower|StringMid|StringReplace|StringRight|StringSplit|StringTrimLeft|StringTrimRight|StringUpper|Suspend|SysGet|Thread|ToolTip|Transform|TrayTip|URLDownloadToFile|WinActivate|WinActivateBottom|WinClose|WinGet|WinGetActiveStats|WinGetActiveTitle|WinGetClass|WinGetPos|WinGetText|WinGetTitle|WinHide|WinKill|WinMaximize|WinMenuSelectItem|WinMinimize|WinMinimizeAll|WinMinimizeAllUndo|WinMove|WinRestore|WinSet|WinSetTitle|WinShow|WinWait|WinWaitActive|WinWaitClose|WinWaitNotActive)\b/i,constant:/\b(?:a_ahkpath|a_ahkversion|a_appdata|a_appdatacommon|a_autotrim|a_batchlines|a_caretx|a_carety|a_computername|a_controldelay|a_cursor|a_dd|a_ddd|a_dddd|a_defaultmousespeed|a_desktop|a_desktopcommon|a_detecthiddentext|a_detecthiddenwindows|a_endchar|a_eventinfo|a_exitreason|a_fileencoding|a_formatfloat|a_formatinteger|a_gui|a_guievent|a_guicontrol|a_guicontrolevent|a_guiheight|a_guiwidth|a_guix|a_guiy|a_hour|a_iconfile|a_iconhidden|a_iconnumber|a_icontip|a_index|a_ipaddress1|a_ipaddress2|a_ipaddress3|a_ipaddress4|a_is64bitos|a_isadmin|a_iscompiled|a_iscritical|a_ispaused|a_issuspended|a_isunicode|a_keydelay|a_language|a_lasterror|a_linefile|a_linenumber|a_loopfield|a_loopfileattrib|a_loopfiledir|a_loopfileext|a_loopfilefullpath|a_loopfilelongpath|a_loopfilename|a_loopfileshortname|a_loopfileshortpath|a_loopfilesize|a_loopfilesizekb|a_loopfilesizemb|a_loopfiletimeaccessed|a_loopfiletimecreated|a_loopfiletimemodified|a_loopreadline|a_loopregkey|a_loopregname|a_loopregsubkey|a_loopregtimemodified|a_loopregtype|a_mday|a_min|a_mm|a_mmm|a_mmmm|a_mon|a_mousedelay|a_msec|a_mydocuments|a_now|a_nowutc|a_numbatchlines|a_ostype|a_osversion|a_priorhotkey|a_priorkey|programfiles|a_programfiles|a_programs|a_programscommon|a_ptrsize|a_regview|a_screendpi|a_screenheight|a_screenwidth|a_scriptdir|a_scriptfullpath|a_scripthwnd|a_scriptname|a_sec|a_space|a_startmenu|a_startmenucommon|a_startup|a_startupcommon|a_stringcasesense|a_tab|a_temp|a_thisfunc|a_thishotkey|a_thislabel|a_thismenu|a_thismenuitem|a_thismenuitempos|a_tickcount|a_timeidle|a_timeidlephysical|a_timesincepriorhotkey|a_timesincethishotkey|a_titlematchmode|a_titlematchmodespeed|a_username|a_wday|a_windelay|a_windir|a_workingdir|a_yday|a_year|a_yweek|a_yyyy|clipboard|clipboardall|comspec|errorlevel)\b/i,builtin:/\b(?:abs|acos|asc|asin|atan|ceil|chr|class|comobjactive|comobjarray|comobjconnect|comobjcreate|comobjerror|comobjflags|comobjget|comobjquery|comobjtype|comobjvalue|cos|dllcall|exp|fileexist|Fileopen|floor|format|il_add|il_create|il_destroy|instr|substr|isfunc|islabel|IsObject|ln|log|lv_add|lv_delete|lv_deletecol|lv_getcount|lv_getnext|lv_gettext|lv_insert|lv_insertcol|lv_modify|lv_modifycol|lv_setimagelist|ltrim|rtrim|mod|onmessage|numget|numput|registercallback|regexmatch|regexreplace|round|sin|tan|sqrt|strlen|strreplace|sb_seticon|sb_setparts|sb_settext|strsplit|tv_add|tv_delete|tv_getchild|tv_getcount|tv_getnext|tv_get|tv_getparent|tv_getprev|tv_getselection|tv_gettext|tv_modify|varsetcapacity|winactive|winexist|__New|__Call|__Get|__Set)\b/i,symbol:/\b(?:alt|altdown|altup|appskey|backspace|browser_back|browser_favorites|browser_forward|browser_home|browser_refresh|browser_search|browser_stop|bs|capslock|ctrl|ctrlbreak|ctrldown|ctrlup|del|delete|down|end|enter|esc|escape|f1|f10|f11|f12|f13|f14|f15|f16|f17|f18|f19|f2|f20|f21|f22|f23|f24|f3|f4|f5|f6|f7|f8|f9|home|ins|insert|joy1|joy10|joy11|joy12|joy13|joy14|joy15|joy16|joy17|joy18|joy19|joy2|joy20|joy21|joy22|joy23|joy24|joy25|joy26|joy27|joy28|joy29|joy3|joy30|joy31|joy32|joy4|joy5|joy6|joy7|joy8|joy9|joyaxes|joybuttons|joyinfo|joyname|joypov|joyr|joyu|joyv|joyx|joyy|joyz|lalt|launch_app1|launch_app2|launch_mail|launch_media|lbutton|lcontrol|lctrl|left|lshift|lwin|lwindown|lwinup|mbutton|media_next|media_play_pause|media_prev|media_stop|numlock|numpad0|numpad1|numpad2|numpad3|numpad4|numpad5|numpad6|numpad7|numpad8|numpad9|numpadadd|numpadclear|numpaddel|numpaddiv|numpaddot|numpaddown|numpadend|numpadenter|numpadhome|numpadins|numpadleft|numpadmult|numpadpgdn|numpadpgup|numpadright|numpadsub|numpadup|pgdn|pgup|printscreen|ralt|rbutton|rcontrol|rctrl|right|rshift|rwin|rwindown|rwinup|scrolllock|shift|shiftdown|shiftup|space|tab|up|volume_down|volume_mute|volume_up|wheeldown|wheelleft|wheelright|wheelup|xbutton1|xbutton2)\b/i,important:/#\b(?:AllowSameLineComments|ClipboardTimeout|CommentFlag|DerefChar|ErrorStdOut|EscapeChar|HotkeyInterval|HotkeyModifierTimeout|Hotstring|If|IfTimeout|IfWinActive|IfWinExist|IfWinNotActive|IfWinNotExist|Include|IncludeAgain|InputLevel|InstallKeybdHook|InstallMouseHook|KeyHistory|MaxHotkeysPerInterval|MaxMem|MaxThreads|MaxThreadsBuffer|MaxThreadsPerHotkey|MenuMaskKey|NoEnv|NoTrayIcon|Persistent|SingleInstance|UseHook|Warn|WinActivateForce)\b/i,keyword:/\b(?:Abort|AboveNormal|Add|ahk_class|ahk_exe|ahk_group|ahk_id|ahk_pid|All|Alnum|Alpha|AltSubmit|AltTab|AltTabAndMenu|AltTabMenu|AltTabMenuDismiss|AlwaysOnTop|AutoSize|Background|BackgroundTrans|BelowNormal|between|BitAnd|BitNot|BitOr|BitShiftLeft|BitShiftRight|BitXOr|Bold|Border|Button|ByRef|Checkbox|Checked|CheckedGray|Choose|ChooseString|Close|Color|ComboBox|Contains|ControlList|Count|Date|DateTime|Days|DDL|Default|DeleteAll|Delimiter|Deref|Destroy|Digit|Disable|Disabled|DropDownList|Edit|Eject|Else|Enable|Enabled|Error|Exist|Expand|ExStyle|FileSystem|First|Flash|Float|FloatFast|Focus|Font|for|global|Grid|Group|GroupBox|GuiClose|GuiContextMenu|GuiDropFiles|GuiEscape|GuiSize|Hdr|Hidden|Hide|High|HKCC|HKCR|HKCU|HKEY_CLASSES_ROOT|HKEY_CURRENT_CONFIG|HKEY_CURRENT_USER|HKEY_LOCAL_MACHINE|HKEY_USERS|HKLM|HKU|Hours|HScroll|Icon|IconSmall|ID|IDLast|If|IfEqual|IfExist|IfGreater|IfGreaterOrEqual|IfInString|IfLess|IfLessOrEqual|IfMsgBox|IfNotEqual|IfNotExist|IfNotInString|IfWinActive|IfWinExist|IfWinNotActive|IfWinNotExist|Ignore|ImageList|in|Integer|IntegerFast|Interrupt|is|italic|Join|Label|LastFound|LastFoundExist|Limit|Lines|List|ListBox|ListView|local|Lock|Logoff|Low|Lower|Lowercase|MainWindow|Margin|Maximize|MaximizeBox|MaxSize|Minimize|MinimizeBox|MinMax|MinSize|Minutes|MonthCal|Mouse|Move|Multi|NA|No|NoActivate|NoDefault|NoHide|NoIcon|NoMainWindow|norm|Normal|NoSort|NoSortHdr|NoStandard|Not|NoTab|NoTimers|Number|Off|Ok|On|OwnDialogs|Owner|Parse|Password|Picture|Pixel|Pos|Pow|Priority|ProcessName|Radio|Range|Read|ReadOnly|Realtime|Redraw|REG_BINARY|REG_DWORD|REG_EXPAND_SZ|REG_MULTI_SZ|REG_SZ|Region|Relative|Rename|Report|Resize|Restore|Retry|RGB|Screen|Seconds|Section|Serial|SetLabel|ShiftAltTab|Show|Single|Slider|SortDesc|Standard|static|Status|StatusBar|StatusCD|strike|Style|Submit|SysMenu|Tab2|TabStop|Text|Theme|Tile|ToggleCheck|ToggleEnable|ToolWindow|Top|Topmost|TransColor|Transparent|Tray|TreeView|TryAgain|Throw|Try|Catch|Finally|Type|UnCheck|underline|Unicode|Unlock|Until|UpDown|Upper|Uppercase|UseErrorLevel|Vis|VisFirst|Visible|VScroll|Wait|WaitClose|WantCtrlA|WantF2|WantReturn|While|Wrap|Xdigit|xm|xp|xs|Yes|ym|yp|ys)\b/i,function:/[^(); \t,\n+*\-=?>:\\\/<&%\[\]]+(?=\()/m,punctuation:/[{}[\]():,]/}}e.exports=t,t.displayName="autohotkey",t.aliases=[]},53358(e){"use strict";function t(e){e.languages.autoit={comment:[/;.*/,{pattern:/(^[\t ]*)#(?:comments-start|cs)[\s\S]*?^[ \t]*#(?:comments-end|ce)/m,lookbehind:!0}],url:{pattern:/(^[\t ]*#include\s+)(?:<[^\r\n>]+>|"[^\r\n"]+")/m,lookbehind:!0},string:{pattern:/(["'])(?:\1\1|(?!\1)[^\r\n])*\1/,greedy:!0,inside:{variable:/([%$@])\w+\1/}},directive:{pattern:/(^[\t ]*)#\w+/m,lookbehind:!0,alias:"keyword"},function:/\b\w+(?=\()/,variable:/[$@]\w+/,keyword:/\b(?:Case|Const|Continue(?:Case|Loop)|Default|Dim|Do|Else(?:If)?|End(?:Func|If|Select|Switch|With)|Enum|Exit(?:Loop)?|For|Func|Global|If|In|Local|Next|Null|ReDim|Select|Static|Step|Switch|Then|To|Until|Volatile|WEnd|While|With)\b/i,number:/\b(?:0x[\da-f]+|\d+(?:\.\d+)?(?:e[+-]?\d+)?)\b/i,boolean:/\b(?:True|False)\b/i,operator:/<[=>]?|[-+*\/=&>]=?|[?^]|\b(?:And|Or|Not)\b/i,punctuation:/[\[\]().,:]/}}e.exports=t,t.displayName="autoit",t.aliases=[]},6979(e){"use strict";function t(e){!function(e){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",n={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},r={bash:n,environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|x[0-9a-fA-F]{1,2}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:r},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:n}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:r},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:r.entity}}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:r.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|aptitude|apt-cache|apt-get|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:if|then|else|elif|fi|for|while|in|case|esac|function|select|do|done|until)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|break|cd|continue|eval|exec|exit|export|getopts|hash|pwd|readonly|return|shift|test|times|trap|umask|unset|alias|bind|builtin|caller|command|declare|echo|enable|help|let|local|logout|mapfile|printf|read|readarray|source|type|typeset|ulimit|unalias|set|shopt)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:true|false)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},n.inside=e.languages.bash;for(var i=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],a=r.variable[1].inside,o=0;o?^\w +\-.])*"/i,greedy:!0},number:/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:E[+-]?\d+)?/i,keyword:/\b(?:AS|BEEP|BLOAD|BSAVE|CALL(?: ABSOLUTE)?|CASE|CHAIN|CHDIR|CLEAR|CLOSE|CLS|COM|COMMON|CONST|DATA|DECLARE|DEF(?: FN| SEG|DBL|INT|LNG|SNG|STR)|DIM|DO|DOUBLE|ELSE|ELSEIF|END|ENVIRON|ERASE|ERROR|EXIT|FIELD|FILES|FOR|FUNCTION|GET|GOSUB|GOTO|IF|INPUT|INTEGER|IOCTL|KEY|KILL|LINE INPUT|LOCATE|LOCK|LONG|LOOP|LSET|MKDIR|NAME|NEXT|OFF|ON(?: COM| ERROR| KEY| TIMER)?|OPEN|OPTION BASE|OUT|POKE|PUT|READ|REDIM|REM|RESTORE|RESUME|RETURN|RMDIR|RSET|RUN|SHARED|SINGLE|SELECT CASE|SHELL|SLEEP|STATIC|STEP|STOP|STRING|SUB|SWAP|SYSTEM|THEN|TIMER|TO|TROFF|TRON|TYPE|UNLOCK|UNTIL|USING|VIEW PRINT|WAIT|WEND|WHILE|WRITE)(?:\$|\b)/i,function:/\b(?:ABS|ACCESS|ACOS|ANGLE|AREA|ARITHMETIC|ARRAY|ASIN|ASK|AT|ATN|BASE|BEGIN|BREAK|CAUSE|CEIL|CHR|CLIP|COLLATE|COLOR|CON|COS|COSH|COT|CSC|DATE|DATUM|DEBUG|DECIMAL|DEF|DEG|DEGREES|DELETE|DET|DEVICE|DISPLAY|DOT|ELAPSED|EPS|ERASABLE|EXLINE|EXP|EXTERNAL|EXTYPE|FILETYPE|FIXED|FP|GO|GRAPH|HANDLER|IDN|IMAGE|IN|INT|INTERNAL|IP|IS|KEYED|LBOUND|LCASE|LEFT|LEN|LENGTH|LET|LINE|LINES|LOG|LOG10|LOG2|LTRIM|MARGIN|MAT|MAX|MAXNUM|MID|MIN|MISSING|MOD|NATIVE|NUL|NUMERIC|OF|OPTION|ORD|ORGANIZATION|OUTIN|OUTPUT|PI|POINT|POINTER|POINTS|POS|PRINT|PROGRAM|PROMPT|RAD|RADIANS|RANDOMIZE|RECORD|RECSIZE|RECTYPE|RELATIVE|REMAINDER|REPEAT|REST|RETRY|REWRITE|RIGHT|RND|ROUND|RTRIM|SAME|SEC|SELECT|SEQUENTIAL|SET|SETTER|SGN|SIN|SINH|SIZE|SKIP|SQR|STANDARD|STATUS|STR|STREAM|STYLE|TAB|TAN|TANH|TEMPLATE|TEXT|THERE|TIME|TIMEOUT|TRACE|TRANSFORM|TRUNCATE|UBOUND|UCASE|USE|VAL|VARIABLE|VIEWPORT|WHEN|WINDOW|WITH|ZER|ZONEWIDTH)(?:\$|\b)/i,operator:/<[=>]?|>=?|[+\-*\/^=&]|\b(?:AND|EQV|IMP|NOT|OR|XOR)\b/i,punctuation:/[,;:()]/}}e.exports=t,t.displayName="basic",t.aliases=[]},94781(e){"use strict";function t(e){var t,n,r,i,a;n=/%%?[~:\w]+%?|!\S+!/,r={pattern:/\/[a-z?]+(?=[ :]|$):?|-[a-z]\b|--[a-z-]+\b/im,alias:"attr-name",inside:{punctuation:/:/}},i=/"(?:[\\"]"|[^"])*"(?!")/,a=/(?:\b|-)\d+\b/,(t=e).languages.batch={comment:[/^::.*/m,{pattern:/((?:^|[&(])[ \t]*)rem\b(?:[^^&)\r\n]|\^(?:\r\n|[\s\S]))*/im,lookbehind:!0}],label:{pattern:/^:.*/m,alias:"property"},command:[{pattern:/((?:^|[&(])[ \t]*)for(?: \/[a-z?](?:[ :](?:"[^"]*"|[^\s"/]\S*))?)* \S+ in \([^)]+\) do/im,lookbehind:!0,inside:{keyword:/^for\b|\b(?:in|do)\b/i,string:i,parameter:r,variable:n,number:a,punctuation:/[()',]/}},{pattern:/((?:^|[&(])[ \t]*)if(?: \/[a-z?](?:[ :](?:"[^"]*"|[^\s"/]\S*))?)* (?:not )?(?:cmdextversion \d+|defined \w+|errorlevel \d+|exist \S+|(?:"[^"]*"|(?!")(?:(?!==)\S)+)?(?:==| (?:equ|neq|lss|leq|gtr|geq) )(?:"[^"]*"|[^\s"]\S*))/im,lookbehind:!0,inside:{keyword:/^if\b|\b(?:not|cmdextversion|defined|errorlevel|exist)\b/i,string:i,parameter:r,variable:n,number:a,operator:/\^|==|\b(?:equ|neq|lss|leq|gtr|geq)\b/i}},{pattern:/((?:^|[&()])[ \t]*)else\b/im,lookbehind:!0,inside:{keyword:/^else\b/i}},{pattern:/((?:^|[&(])[ \t]*)set(?: \/[a-z](?:[ :](?:"[^"]*"|[^\s"/]\S*))?)* (?:[^^&)\r\n]|\^(?:\r\n|[\s\S]))*/im,lookbehind:!0,inside:{keyword:/^set\b/i,string:i,parameter:r,variable:[n,/\w+(?=(?:[*\/%+\-&^|]|<<|>>)?=)/],number:a,operator:/[*\/%+\-&^|]=?|<<=?|>>=?|[!~_=]/,punctuation:/[()',]/}},{pattern:/((?:^|[&(])[ \t]*@?)\w+\b(?:"(?:[\\"]"|[^"])*"(?!")|[^"^&)\r\n]|\^(?:\r\n|[\s\S]))*/im,lookbehind:!0,inside:{keyword:/^\w+\b/i,string:i,parameter:r,label:{pattern:/(^\s*):\S+/m,lookbehind:!0,alias:"property"},variable:n,number:a,operator:/\^/}}],operator:/[&@]/,punctuation:/[()']/}}e.exports=t,t.displayName="batch",t.aliases=[]},62260(e){"use strict";function t(e){e.languages.bbcode={tag:{pattern:/\[\/?[^\s=\]]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'"\]=]+))?(?:\s+[^\s=\]]+\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'"\]=]+))*\s*\]/,inside:{tag:{pattern:/^\[\/?[^\s=\]]+/,inside:{punctuation:/^\[\/?/}},"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'"\]=]+)/i,inside:{punctuation:[/^=/,{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\]/,"attr-name":/[^\s=\]]+/}}},e.languages.shortcode=e.languages.bbcode}e.exports=t,t.displayName="bbcode",t.aliases=["shortcode"]},59258(e){"use strict";function t(e){e.languages.birb=e.languages.extend("clike",{string:{pattern:/r?("|')(?:\\.|(?!\1)[^\\])*\1/,greedy:!0},"class-name":[/\b[A-Z](?:[\d_]*[a-zA-Z]\w*)?\b/,/\b[A-Z]\w*(?=\s+\w+\s*[;,=()])/],keyword:/\b(?:assert|break|case|class|const|default|else|enum|final|follows|for|grab|if|nest|next|new|noSeeb|return|static|switch|throw|var|void|while)\b/,operator:/\+\+|--|&&|\|\||<<=?|>>=?|~(?:\/=?)?|[+\-*\/%&^|=!<>]=?|\?|:/,variable:/\b[a-z_]\w*\b/}),e.languages.insertBefore("birb","function",{metadata:{pattern:/<\w+>/,greedy:!0,alias:"symbol"}})}e.exports=t,t.displayName="birb",t.aliases=[]},62890(e,t,n){"use strict";var r=n(65806);function i(e){e.register(r),e.languages.bison=e.languages.extend("c",{}),e.languages.insertBefore("bison","comment",{bison:{pattern:/^(?:[^%]|%(?!%))*%%[\s\S]*?%%/,inside:{c:{pattern:/%\{[\s\S]*?%\}|\{(?:\{[^}]*\}|[^{}])*\}/,inside:{delimiter:{pattern:/^%?\{|%?\}$/,alias:"punctuation"},"bison-variable":{pattern:/[$@](?:<[^\s>]+>)?[\w$]+/,alias:"variable",inside:{punctuation:/<|>/}},rest:e.languages.c}},comment:e.languages.c.comment,string:e.languages.c.string,property:/\S+(?=:)/,keyword:/%\w+/,number:{pattern:/(^|[^@])\b(?:0x[\da-f]+|\d+)/i,lookbehind:!0},punctuation:/%[%?]|[|:;\[\]<>]/}}})}e.exports=i,i.displayName="bison",i.aliases=[]},15958(e){"use strict";function t(e){e.languages.bnf={string:{pattern:/"[^\r\n"]*"|'[^\r\n']*'/},definition:{pattern:/<[^<>\r\n\t]+>(?=\s*::=)/,alias:["rule","keyword"],inside:{punctuation:/^<|>$/}},rule:{pattern:/<[^<>\r\n\t]+>/,inside:{punctuation:/^<|>$/}},operator:/::=|[|()[\]{}*+?]|\.{3}/},e.languages.rbnf=e.languages.bnf}e.exports=t,t.displayName="bnf",t.aliases=["rbnf"]},61321(e){"use strict";function t(e){e.languages.brainfuck={pointer:{pattern:/<|>/,alias:"keyword"},increment:{pattern:/\+/,alias:"inserted"},decrement:{pattern:/-/,alias:"deleted"},branching:{pattern:/\[|\]/,alias:"important"},operator:/[.,]/,comment:/\S+/}}e.exports=t,t.displayName="brainfuck",t.aliases=[]},77856(e){"use strict";function t(e){e.languages.brightscript={comment:/(?:\brem|').*/i,"directive-statement":{pattern:/(^[\t ]*)#(?:const|else(?:[\t ]+if)?|end[\t ]+if|error|if).*/im,lookbehind:!0,alias:"property",inside:{"error-message":{pattern:/(^#error).+/,lookbehind:!0},directive:{pattern:/^#(?:const|else(?:[\t ]+if)?|end[\t ]+if|error|if)/,alias:"keyword"},expression:{pattern:/[\s\S]+/,inside:null}}},property:{pattern:/([\r\n{,][\t ]*)(?:(?!\d)\w+|"(?:[^"\r\n]|"")*"(?!"))(?=[ \t]*:)/,lookbehind:!0,greedy:!0},string:{pattern:/"(?:[^"\r\n]|"")*"(?!")/,greedy:!0},"class-name":{pattern:/(\bAs[\t ]+)\w+/i,lookbehind:!0},keyword:/\b(?:As|Dim|Each|Else|Elseif|End|Exit|For|Function|Goto|If|In|Print|Return|Step|Stop|Sub|Then|To|While)\b/i,boolean:/\b(?:true|false)\b/i,function:/\b(?!\d)\w+(?=[\t ]*\()/i,number:/(?:\b\d+(?:\.\d+)?(?:[ed][+-]\d+)?|&h[a-f\d]+)\b[%&!#]?/i,operator:/--|\+\+|>>=?|<<=?|<>|[-+*/\\<>]=?|[:^=?]|\b(?:and|mod|not|or)\b/i,punctuation:/[.,;()[\]{}]/,constant:/\b(?:LINE_NUM)\b/i},e.languages.brightscript["directive-statement"].inside.expression.inside=e.languages.brightscript}e.exports=t,t.displayName="brightscript",t.aliases=[]},90741(e){"use strict";function t(e){e.languages.bro={comment:{pattern:/(^|[^\\$])#.*/,lookbehind:!0,inside:{italic:/\b(?:TODO|FIXME|XXX)\b/}},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},boolean:/\b[TF]\b/,function:{pattern:/(?:function|hook|event) \w+(?:::\w+)?/,inside:{keyword:/^(?:function|hook|event)/}},variable:{pattern:/(?:global|local) \w+/i,inside:{keyword:/(?:global|local)/}},builtin:/(?:@(?:load(?:-(?:sigs|plugin))?|unload|prefixes|ifn?def|else|(?:end)?if|DIR|FILENAME))|(?:&?(?:redef|priority|log|optional|default|add_func|delete_func|expire_func|read_expire|write_expire|create_expire|synchronized|persistent|rotate_interval|rotate_size|encrypt|raw_output|mergeable|group|error_handler|type_column))/,constant:{pattern:/const \w+/i,inside:{keyword:/const/}},keyword:/\b(?:break|next|continue|alarm|using|of|add|delete|export|print|return|schedule|when|timeout|addr|any|bool|count|double|enum|file|int|interval|pattern|opaque|port|record|set|string|subnet|table|time|vector|for|if|else|in|module|function)\b/,operator:/--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&|\|\|?|\?|\*|\/|~|\^|%/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,punctuation:/[{}[\];(),.:]/}}e.exports=t,t.displayName="bro",t.aliases=[]},83410(e){"use strict";function t(e){e.languages.bsl={comment:/\/\/.*/,string:[{pattern:/"(?:[^"]|"")*"(?!")/,greedy:!0},{pattern:/'(?:[^'\r\n\\]|\\.)*'/}],keyword:[{pattern:/(^|[^\w\u0400-\u0484\u0487-\u052f\u1d2b\u1d78\u2de0-\u2dff\ua640-\ua69f\ufe2e\ufe2f])(?:пока|для|новый|прервать|попытка|исключение|вызватьисключение|иначе|конецпопытки|неопределено|функция|перем|возврат|конецфункции|если|иначеесли|процедура|конецпроцедуры|тогда|знач|экспорт|конецесли|из|каждого|истина|ложь|по|цикл|конеццикла|выполнить)(?![\w\u0400-\u0484\u0487-\u052f\u1d2b\u1d78\u2de0-\u2dff\ua640-\ua69f\ufe2e\ufe2f])/i,lookbehind:!0},{pattern:/\b(?:while|for|new|break|try|except|raise|else|endtry|undefined|function|var|return|endfunction|null|if|elseif|procedure|endprocedure|then|val|export|endif|in|each|true|false|to|do|enddo|execute)\b/i}],number:{pattern:/(^(?=\d)|[^\w\u0400-\u0484\u0487-\u052f\u1d2b\u1d78\u2de0-\u2dff\ua640-\ua69f\ufe2e\ufe2f])(?:\d+(?:\.\d*)?|\.\d+)(?:E[+-]?\d+)?/i,lookbehind:!0},operator:[/[<>+\-*/]=?|[%=]/,{pattern:/(^|[^\w\u0400-\u0484\u0487-\u052f\u1d2b\u1d78\u2de0-\u2dff\ua640-\ua69f\ufe2e\ufe2f])(?:и|или|не)(?![\w\u0400-\u0484\u0487-\u052f\u1d2b\u1d78\u2de0-\u2dff\ua640-\ua69f\ufe2e\ufe2f])/i,lookbehind:!0},{pattern:/\b(?:and|or|not)\b/i}],punctuation:/\(\.|\.\)|[()\[\]:;,.]/,directive:[{pattern:/^(\s*)&.*/m,lookbehind:!0,alias:"important"},{pattern:/^\s*#.*/gm,alias:"important"}]},e.languages.oscript=e.languages.bsl}e.exports=t,t.displayName="bsl",t.aliases=[]},65806(e){"use strict";function t(e){e.languages.c=e.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:__attribute__|_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|asm|typeof|inline|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),e.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},e.languages.c.string],comment:e.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:e.languages.c}}},constant:/\b(?:__FILE__|__LINE__|__DATE__|__TIME__|__TIMESTAMP__|__func__|EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|stdin|stdout|stderr)\b/}),delete e.languages.c.boolean}e.exports=t,t.displayName="c",t.aliases=[]},33039(e){"use strict";function t(e){e.languages.cfscript=e.languages.extend("clike",{comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,inside:{annotation:{pattern:/(?:^|[^.])@[\w\.]+/,alias:"punctuation"}}},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],keyword:/\b(?:abstract|break|catch|component|continue|default|do|else|extends|final|finally|for|function|if|in|include|package|private|property|public|remote|required|rethrow|return|static|switch|throw|try|var|while|xml)\b(?!\s*=)/,operator:[/\+\+|--|&&|\|\||::|=>|[!=]==|<=?|>=?|[-+*/%&|^!=<>]=?|\?(?:\.|:)?|[?:]/,/\b(?:and|contains|eq|equal|eqv|gt|gte|imp|is|lt|lte|mod|not|or|xor)\b/],scope:{pattern:/\b(?:application|arguments|cgi|client|cookie|local|session|super|this|variables)\b/,alias:"global"},type:{pattern:/\b(?:any|array|binary|boolean|date|guid|numeric|query|string|struct|uuid|void|xml)\b/,alias:"builtin"}}),e.languages.insertBefore("cfscript","keyword",{"function-variable":{pattern:/[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"}}),delete e.languages.cfscript["class-name"],e.languages.cfc=e.languages.cfscript}e.exports=t,t.displayName="cfscript",t.aliases=[]},85082(e,t,n){"use strict";var r=n(80096);function i(e){e.register(r),e.languages.chaiscript=e.languages.extend("clike",{string:{pattern:/(^|[^\\])'(?:[^'\\]|\\[\s\S])*'/,lookbehind:!0,greedy:!0},"class-name":[{pattern:/(\bclass\s+)\w+/,lookbehind:!0},{pattern:/(\b(?:attr|def)\s+)\w+(?=\s*::)/,lookbehind:!0}],keyword:/\b(?:attr|auto|break|case|catch|class|continue|def|default|else|finally|for|fun|global|if|return|switch|this|try|var|while)\b/,number:[e.languages.cpp.number,/\b(?:Infinity|NaN)\b/],operator:/>>=?|<<=?|\|\||&&|:[:=]?|--|\+\+|[=!<>+\-*/%|&^]=?|[?~]|`[^`\r\n]{1,4}`/}),e.languages.insertBefore("chaiscript","operator",{"parameter-type":{pattern:/([,(]\s*)\w+(?=\s+\w)/,lookbehind:!0,alias:"class-name"}}),e.languages.insertBefore("chaiscript","string",{"string-interpolation":{pattern:/(^|[^\\])"(?:[^"$\\]|\\[\s\S]|\$(?!\{)|\$\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})*\})*"/,lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})*\}/,lookbehind:!0,inside:{"interpolation-expression":{pattern:/(^\$\{)[\s\S]+(?=\}$)/,lookbehind:!0,inside:e.languages.chaiscript},"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"}}},string:/[\s\S]+/}}})}e.exports=i,i.displayName="chaiscript",i.aliases=[]},79415(e){"use strict";function t(e){e.languages.cil={comment:/\/\/.*/,string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},directive:{pattern:/(^|\W)\.[a-z]+(?=\s)/,lookbehind:!0,alias:"class-name"},variable:/\[[\w\.]+\]/,keyword:/\b(?:abstract|ansi|assembly|auto|autochar|beforefieldinit|bool|bstr|byvalstr|catch|char|cil|class|currency|date|decimal|default|enum|error|explicit|extends|extern|famandassem|family|famorassem|final(?:ly)?|float32|float64|hidebysig|iant|idispatch|implements|import|initonly|instance|u?int(?:8|16|32|64)?|interface|iunknown|literal|lpstr|lpstruct|lptstr|lpwstr|managed|method|native(?:Type)?|nested|newslot|object(?:ref)?|pinvokeimpl|private|privatescope|public|reqsecobj|rtspecialname|runtime|sealed|sequential|serializable|specialname|static|string|struct|syschar|tbstr|unicode|unmanagedexp|unsigned|value(?:type)?|variant|virtual|void)\b/,function:/\b(?:(?:constrained|unaligned|volatile|readonly|tail|no)\.)?(?:conv\.(?:[iu][1248]?|ovf\.[iu][1248]?(?:\.un)?|r\.un|r4|r8)|ldc\.(?:i4(?:\.[0-9]+|\.[mM]1|\.s)?|i8|r4|r8)|ldelem(?:\.[iu][1248]?|\.r[48]|\.ref|a)?|ldind\.(?:[iu][1248]?|r[48]|ref)|stelem\.?(?:i[1248]?|r[48]|ref)?|stind\.(?:i[1248]?|r[48]|ref)?|end(?:fault|filter|finally)|ldarg(?:\.[0-3s]|a(?:\.s)?)?|ldloc(?:\.[0-9]+|\.s)?|sub(?:\.ovf(?:\.un)?)?|mul(?:\.ovf(?:\.un)?)?|add(?:\.ovf(?:\.un)?)?|stloc(?:\.[0-3s])?|refany(?:type|val)|blt(?:\.un)?(?:\.s)?|ble(?:\.un)?(?:\.s)?|bgt(?:\.un)?(?:\.s)?|bge(?:\.un)?(?:\.s)?|unbox(?:\.any)?|init(?:blk|obj)|call(?:i|virt)?|brfalse(?:\.s)?|bne\.un(?:\.s)?|ldloca(?:\.s)?|brzero(?:\.s)?|brtrue(?:\.s)?|brnull(?:\.s)?|brinst(?:\.s)?|starg(?:\.s)?|leave(?:\.s)?|shr(?:\.un)?|rem(?:\.un)?|div(?:\.un)?|clt(?:\.un)?|alignment|ldvirtftn|castclass|beq(?:\.s)?|mkrefany|localloc|ckfinite|rethrow|ldtoken|ldsflda|cgt\.un|arglist|switch|stsfld|sizeof|newobj|newarr|ldsfld|ldnull|ldflda|isinst|throw|stobj|stfld|ldstr|ldobj|ldlen|ldftn|ldfld|cpobj|cpblk|break|br\.s|xor|shl|ret|pop|not|nop|neg|jmp|dup|cgt|ceq|box|and|or|br)\b/,boolean:/\b(?:true|false)\b/,number:/\b-?(?:0x[0-9a-f]+|[0-9]+)(?:\.[0-9a-f]+)?\b/i,punctuation:/[{}[\];(),:=]|IL_[0-9A-Za-z]+/}}e.exports=t,t.displayName="cil",t.aliases=[]},29726(e){"use strict";function t(e){e.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|interface|extends|implements|trait|instanceof|new)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/,boolean:/\b(?:true|false)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/}}e.exports=t,t.displayName="clike",t.aliases=[]},62849(e){"use strict";function t(e){e.languages.clojure={comment:/;.*/,string:{pattern:/"(?:[^"\\]|\\.)*"/,greedy:!0},operator:/(?:::|[:|'])\b[a-z][\w*+!?-]*\b/i,keyword:{pattern:/([^\w+*'?-])(?:def|if|do|let|\.\.|quote|var|->>|->|fn|loop|recur|throw|try|monitor-enter|\.|new|set!|def-|defn|defn-|defmacro|defmulti|defmethod|defstruct|defonce|declare|definline|definterface|defprotocol|==|defrecord|>=|deftype|<=|defproject|ns|\*|\+|-|\/|<|=|>|accessor|agent|agent-errors|aget|alength|all-ns|alter|and|append-child|apply|array-map|aset|aset-boolean|aset-byte|aset-char|aset-double|aset-float|aset-int|aset-long|aset-short|assert|assoc|await|await-for|bean|binding|bit-and|bit-not|bit-or|bit-shift-left|bit-shift-right|bit-xor|boolean|branch\?|butlast|byte|cast|char|children|class|clear-agent-errors|comment|commute|comp|comparator|complement|concat|conj|cons|constantly|cond|if-not|construct-proxy|contains\?|count|create-ns|create-struct|cycle|dec|deref|difference|disj|dissoc|distinct|doall|doc|dorun|doseq|dosync|dotimes|doto|double|down|drop|drop-while|edit|end\?|ensure|eval|every\?|false\?|ffirst|file-seq|filter|find|find-doc|find-ns|find-var|first|float|flush|for|fnseq|frest|gensym|get-proxy-class|get|hash-map|hash-set|identical\?|identity|if-let|import|in-ns|inc|index|insert-child|insert-left|insert-right|inspect-table|inspect-tree|instance\?|int|interleave|intersection|into|into-array|iterate|join|key|keys|keyword|keyword\?|last|lazy-cat|lazy-cons|left|lefts|line-seq|list\*|list|load|load-file|locking|long|macroexpand|macroexpand-1|make-array|make-node|map|map-invert|map\?|mapcat|max|max-key|memfn|merge|merge-with|meta|min|min-key|name|namespace|neg\?|newline|next|nil\?|node|not|not-any\?|not-every\?|not=|ns-imports|ns-interns|ns-map|ns-name|ns-publics|ns-refers|ns-resolve|ns-unmap|nth|nthrest|or|parse|partial|path|peek|pop|pos\?|pr|pr-str|print|print-str|println|println-str|prn|prn-str|project|proxy|proxy-mappings|quot|rand|rand-int|range|re-find|re-groups|re-matcher|re-matches|re-pattern|re-seq|read|read-line|reduce|ref|ref-set|refer|rem|remove|remove-method|remove-ns|rename|rename-keys|repeat|replace|replicate|resolve|rest|resultset-seq|reverse|rfirst|right|rights|root|rrest|rseq|second|select|select-keys|send|send-off|seq|seq-zip|seq\?|set|short|slurp|some|sort|sort-by|sorted-map|sorted-map-by|sorted-set|special-symbol\?|split-at|split-with|str|string\?|struct|struct-map|subs|subvec|symbol|symbol\?|sync|take|take-nth|take-while|test|time|to-array|to-array-2d|tree-seq|true\?|union|up|update-proxy|val|vals|var-get|var-set|var\?|vector|vector-zip|vector\?|when|when-first|when-let|when-not|with-local-vars|with-meta|with-open|with-out-str|xml-seq|xml-zip|zero\?|zipmap|zipper)(?=[^\w+*'?-])/,lookbehind:!0},boolean:/\b(?:true|false|nil)\b/,number:/\b[\da-f]+\b/i,punctuation:/[{}\[\](),]/}}e.exports=t,t.displayName="clojure",t.aliases=[]},55773(e){"use strict";function t(e){e.languages.cmake={comment:/#.*/,string:{pattern:/"(?:[^\\"]|\\.)*"/,greedy:!0,inside:{interpolation:{pattern:/\$\{(?:[^{}$]|\$\{[^{}$]*\})*\}/,inside:{punctuation:/\$\{|\}/,variable:/\w+/}}}},variable:/\b(?:CMAKE_\w+|\w+_(?:VERSION(?:_MAJOR|_MINOR|_PATCH|_TWEAK)?|(?:BINARY|SOURCE)_DIR|DESCRIPTION|HOMEPAGE_URL|ROOT)|(?:ANDROID|APPLE|BORLAND|BUILD_SHARED_LIBS|CACHE|CPACK_(?:ABSOLUTE_DESTINATION_FILES|COMPONENT_INCLUDE_TOPLEVEL_DIRECTORY|ERROR_ON_ABSOLUTE_INSTALL_DESTINATION|INCLUDE_TOPLEVEL_DIRECTORY|INSTALL_DEFAULT_DIRECTORY_PERMISSIONS|INSTALL_SCRIPT|PACKAGING_INSTALL_PREFIX|SET_DESTDIR|WARN_ON_ABSOLUTE_INSTALL_DESTINATION)|CTEST_(?:BINARY_DIRECTORY|BUILD_COMMAND|BUILD_NAME|BZR_COMMAND|BZR_UPDATE_OPTIONS|CHANGE_ID|CHECKOUT_COMMAND|CONFIGURATION_TYPE|CONFIGURE_COMMAND|COVERAGE_COMMAND|COVERAGE_EXTRA_FLAGS|CURL_OPTIONS|CUSTOM_(?:COVERAGE_EXCLUDE|ERROR_EXCEPTION|ERROR_MATCH|ERROR_POST_CONTEXT|ERROR_PRE_CONTEXT|MAXIMUM_FAILED_TEST_OUTPUT_SIZE|MAXIMUM_NUMBER_OF_(?:ERRORS|WARNINGS)|MAXIMUM_PASSED_TEST_OUTPUT_SIZE|MEMCHECK_IGNORE|POST_MEMCHECK|POST_TEST|PRE_MEMCHECK|PRE_TEST|TESTS_IGNORE|WARNING_EXCEPTION|WARNING_MATCH)|CVS_CHECKOUT|CVS_COMMAND|CVS_UPDATE_OPTIONS|DROP_LOCATION|DROP_METHOD|DROP_SITE|DROP_SITE_CDASH|DROP_SITE_PASSWORD|DROP_SITE_USER|EXTRA_COVERAGE_GLOB|GIT_COMMAND|GIT_INIT_SUBMODULES|GIT_UPDATE_CUSTOM|GIT_UPDATE_OPTIONS|HG_COMMAND|HG_UPDATE_OPTIONS|LABELS_FOR_SUBPROJECTS|MEMORYCHECK_(?:COMMAND|COMMAND_OPTIONS|SANITIZER_OPTIONS|SUPPRESSIONS_FILE|TYPE)|NIGHTLY_START_TIME|P4_CLIENT|P4_COMMAND|P4_OPTIONS|P4_UPDATE_OPTIONS|RUN_CURRENT_SCRIPT|SCP_COMMAND|SITE|SOURCE_DIRECTORY|SUBMIT_URL|SVN_COMMAND|SVN_OPTIONS|SVN_UPDATE_OPTIONS|TEST_LOAD|TEST_TIMEOUT|TRIGGER_SITE|UPDATE_COMMAND|UPDATE_OPTIONS|UPDATE_VERSION_ONLY|USE_LAUNCHERS)|CYGWIN|ENV|EXECUTABLE_OUTPUT_PATH|GHS-MULTI|IOS|LIBRARY_OUTPUT_PATH|MINGW|MSVC(?:10|11|12|14|60|70|71|80|90|_IDE|_TOOLSET_VERSION|_VERSION)?|MSYS|PROJECT_(?:BINARY_DIR|DESCRIPTION|HOMEPAGE_URL|NAME|SOURCE_DIR|VERSION|VERSION_(?:MAJOR|MINOR|PATCH|TWEAK))|UNIX|WIN32|WINCE|WINDOWS_PHONE|WINDOWS_STORE|XCODE|XCODE_VERSION))\b/,property:/\b(?:cxx_\w+|(?:ARCHIVE_OUTPUT_(?:DIRECTORY|NAME)|COMPILE_DEFINITIONS|COMPILE_PDB_NAME|COMPILE_PDB_OUTPUT_DIRECTORY|EXCLUDE_FROM_DEFAULT_BUILD|IMPORTED_(?:IMPLIB|LIBNAME|LINK_DEPENDENT_LIBRARIES|LINK_INTERFACE_LANGUAGES|LINK_INTERFACE_LIBRARIES|LINK_INTERFACE_MULTIPLICITY|LOCATION|NO_SONAME|OBJECTS|SONAME)|INTERPROCEDURAL_OPTIMIZATION|LIBRARY_OUTPUT_DIRECTORY|LIBRARY_OUTPUT_NAME|LINK_FLAGS|LINK_INTERFACE_LIBRARIES|LINK_INTERFACE_MULTIPLICITY|LOCATION|MAP_IMPORTED_CONFIG|OSX_ARCHITECTURES|OUTPUT_NAME|PDB_NAME|PDB_OUTPUT_DIRECTORY|RUNTIME_OUTPUT_DIRECTORY|RUNTIME_OUTPUT_NAME|STATIC_LIBRARY_FLAGS|VS_CSHARP|VS_DOTNET_REFERENCEPROP|VS_DOTNET_REFERENCE|VS_GLOBAL_SECTION_POST|VS_GLOBAL_SECTION_PRE|VS_GLOBAL|XCODE_ATTRIBUTE)_\w+|\w+_(?:CLANG_TIDY|COMPILER_LAUNCHER|CPPCHECK|CPPLINT|INCLUDE_WHAT_YOU_USE|OUTPUT_NAME|POSTFIX|VISIBILITY_PRESET)|ABSTRACT|ADDITIONAL_MAKE_CLEAN_FILES|ADVANCED|ALIASED_TARGET|ALLOW_DUPLICATE_CUSTOM_TARGETS|ANDROID_(?:ANT_ADDITIONAL_OPTIONS|API|API_MIN|ARCH|ASSETS_DIRECTORIES|GUI|JAR_DEPENDENCIES|NATIVE_LIB_DEPENDENCIES|NATIVE_LIB_DIRECTORIES|PROCESS_MAX|PROGUARD|PROGUARD_CONFIG_PATH|SECURE_PROPS_PATH|SKIP_ANT_STEP|STL_TYPE)|ARCHIVE_OUTPUT_DIRECTORY|ATTACHED_FILES|ATTACHED_FILES_ON_FAIL|AUTOGEN_(?:BUILD_DIR|ORIGIN_DEPENDS|PARALLEL|SOURCE_GROUP|TARGETS_FOLDER|TARGET_DEPENDS)|AUTOMOC|AUTOMOC_(?:COMPILER_PREDEFINES|DEPEND_FILTERS|EXECUTABLE|MACRO_NAMES|MOC_OPTIONS|SOURCE_GROUP|TARGETS_FOLDER)|AUTORCC|AUTORCC_EXECUTABLE|AUTORCC_OPTIONS|AUTORCC_SOURCE_GROUP|AUTOUIC|AUTOUIC_EXECUTABLE|AUTOUIC_OPTIONS|AUTOUIC_SEARCH_PATHS|BINARY_DIR|BUILDSYSTEM_TARGETS|BUILD_RPATH|BUILD_RPATH_USE_ORIGIN|BUILD_WITH_INSTALL_NAME_DIR|BUILD_WITH_INSTALL_RPATH|BUNDLE|BUNDLE_EXTENSION|CACHE_VARIABLES|CLEAN_NO_CUSTOM|COMMON_LANGUAGE_RUNTIME|COMPATIBLE_INTERFACE_(?:BOOL|NUMBER_MAX|NUMBER_MIN|STRING)|COMPILE_(?:DEFINITIONS|FEATURES|FLAGS|OPTIONS|PDB_NAME|PDB_OUTPUT_DIRECTORY)|COST|CPACK_DESKTOP_SHORTCUTS|CPACK_NEVER_OVERWRITE|CPACK_PERMANENT|CPACK_STARTUP_SHORTCUTS|CPACK_START_MENU_SHORTCUTS|CPACK_WIX_ACL|CROSSCOMPILING_EMULATOR|CUDA_EXTENSIONS|CUDA_PTX_COMPILATION|CUDA_RESOLVE_DEVICE_SYMBOLS|CUDA_SEPARABLE_COMPILATION|CUDA_STANDARD|CUDA_STANDARD_REQUIRED|CXX_EXTENSIONS|CXX_STANDARD|CXX_STANDARD_REQUIRED|C_EXTENSIONS|C_STANDARD|C_STANDARD_REQUIRED|DEBUG_CONFIGURATIONS|DEFINE_SYMBOL|DEFINITIONS|DEPENDS|DEPLOYMENT_ADDITIONAL_FILES|DEPLOYMENT_REMOTE_DIRECTORY|DISABLED|DISABLED_FEATURES|ECLIPSE_EXTRA_CPROJECT_CONTENTS|ECLIPSE_EXTRA_NATURES|ENABLED_FEATURES|ENABLED_LANGUAGES|ENABLE_EXPORTS|ENVIRONMENT|EXCLUDE_FROM_ALL|EXCLUDE_FROM_DEFAULT_BUILD|EXPORT_NAME|EXPORT_PROPERTIES|EXTERNAL_OBJECT|EchoString|FAIL_REGULAR_EXPRESSION|FIND_LIBRARY_USE_LIB32_PATHS|FIND_LIBRARY_USE_LIB64_PATHS|FIND_LIBRARY_USE_LIBX32_PATHS|FIND_LIBRARY_USE_OPENBSD_VERSIONING|FIXTURES_CLEANUP|FIXTURES_REQUIRED|FIXTURES_SETUP|FOLDER|FRAMEWORK|Fortran_FORMAT|Fortran_MODULE_DIRECTORY|GENERATED|GENERATOR_FILE_NAME|GENERATOR_IS_MULTI_CONFIG|GHS_INTEGRITY_APP|GHS_NO_SOURCE_GROUP_FILE|GLOBAL_DEPENDS_DEBUG_MODE|GLOBAL_DEPENDS_NO_CYCLES|GNUtoMS|HAS_CXX|HEADER_FILE_ONLY|HELPSTRING|IMPLICIT_DEPENDS_INCLUDE_TRANSFORM|IMPORTED|IMPORTED_(?:COMMON_LANGUAGE_RUNTIME|CONFIGURATIONS|GLOBAL|IMPLIB|LIBNAME|LINK_DEPENDENT_LIBRARIES|LINK_INTERFACE_(?:LANGUAGES|LIBRARIES|MULTIPLICITY)|LOCATION|NO_SONAME|OBJECTS|SONAME)|IMPORT_PREFIX|IMPORT_SUFFIX|INCLUDE_DIRECTORIES|INCLUDE_REGULAR_EXPRESSION|INSTALL_NAME_DIR|INSTALL_RPATH|INSTALL_RPATH_USE_LINK_PATH|INTERFACE_(?:AUTOUIC_OPTIONS|COMPILE_DEFINITIONS|COMPILE_FEATURES|COMPILE_OPTIONS|INCLUDE_DIRECTORIES|LINK_DEPENDS|LINK_DIRECTORIES|LINK_LIBRARIES|LINK_OPTIONS|POSITION_INDEPENDENT_CODE|SOURCES|SYSTEM_INCLUDE_DIRECTORIES)|INTERPROCEDURAL_OPTIMIZATION|IN_TRY_COMPILE|IOS_INSTALL_COMBINED|JOB_POOLS|JOB_POOL_COMPILE|JOB_POOL_LINK|KEEP_EXTENSION|LABELS|LANGUAGE|LIBRARY_OUTPUT_DIRECTORY|LINKER_LANGUAGE|LINK_(?:DEPENDS|DEPENDS_NO_SHARED|DIRECTORIES|FLAGS|INTERFACE_LIBRARIES|INTERFACE_MULTIPLICITY|LIBRARIES|OPTIONS|SEARCH_END_STATIC|SEARCH_START_STATIC|WHAT_YOU_USE)|LISTFILE_STACK|LOCATION|MACOSX_BUNDLE|MACOSX_BUNDLE_INFO_PLIST|MACOSX_FRAMEWORK_INFO_PLIST|MACOSX_PACKAGE_LOCATION|MACOSX_RPATH|MACROS|MANUALLY_ADDED_DEPENDENCIES|MEASUREMENT|MODIFIED|NAME|NO_SONAME|NO_SYSTEM_FROM_IMPORTED|OBJECT_DEPENDS|OBJECT_OUTPUTS|OSX_ARCHITECTURES|OUTPUT_NAME|PACKAGES_FOUND|PACKAGES_NOT_FOUND|PARENT_DIRECTORY|PASS_REGULAR_EXPRESSION|PDB_NAME|PDB_OUTPUT_DIRECTORY|POSITION_INDEPENDENT_CODE|POST_INSTALL_SCRIPT|PREDEFINED_TARGETS_FOLDER|PREFIX|PRE_INSTALL_SCRIPT|PRIVATE_HEADER|PROCESSORS|PROCESSOR_AFFINITY|PROJECT_LABEL|PUBLIC_HEADER|REPORT_UNDEFINED_PROPERTIES|REQUIRED_FILES|RESOURCE|RESOURCE_LOCK|RULE_LAUNCH_COMPILE|RULE_LAUNCH_CUSTOM|RULE_LAUNCH_LINK|RULE_MESSAGES|RUNTIME_OUTPUT_DIRECTORY|RUN_SERIAL|SKIP_AUTOGEN|SKIP_AUTOMOC|SKIP_AUTORCC|SKIP_AUTOUIC|SKIP_BUILD_RPATH|SKIP_RETURN_CODE|SOURCES|SOURCE_DIR|SOVERSION|STATIC_LIBRARY_FLAGS|STATIC_LIBRARY_OPTIONS|STRINGS|SUBDIRECTORIES|SUFFIX|SYMBOLIC|TARGET_ARCHIVES_MAY_BE_SHARED_LIBS|TARGET_MESSAGES|TARGET_SUPPORTS_SHARED_LIBS|TESTS|TEST_INCLUDE_FILE|TEST_INCLUDE_FILES|TIMEOUT|TIMEOUT_AFTER_MATCH|TYPE|USE_FOLDERS|VALUE|VARIABLES|VERSION|VISIBILITY_INLINES_HIDDEN|VS_(?:CONFIGURATION_TYPE|COPY_TO_OUT_DIR|DEBUGGER_(?:COMMAND|COMMAND_ARGUMENTS|ENVIRONMENT|WORKING_DIRECTORY)|DEPLOYMENT_CONTENT|DEPLOYMENT_LOCATION|DOTNET_REFERENCES|DOTNET_REFERENCES_COPY_LOCAL|GLOBAL_KEYWORD|GLOBAL_PROJECT_TYPES|GLOBAL_ROOTNAMESPACE|INCLUDE_IN_VSIX|IOT_STARTUP_TASK|KEYWORD|RESOURCE_GENERATOR|SCC_AUXPATH|SCC_LOCALPATH|SCC_PROJECTNAME|SCC_PROVIDER|SDK_REFERENCES|SHADER_(?:DISABLE_OPTIMIZATIONS|ENABLE_DEBUG|ENTRYPOINT|FLAGS|MODEL|OBJECT_FILE_NAME|OUTPUT_HEADER_FILE|TYPE|VARIABLE_NAME)|STARTUP_PROJECT|TOOL_OVERRIDE|USER_PROPS|WINRT_COMPONENT|WINRT_EXTENSIONS|WINRT_REFERENCES|XAML_TYPE)|WILL_FAIL|WIN32_EXECUTABLE|WINDOWS_EXPORT_ALL_SYMBOLS|WORKING_DIRECTORY|WRAP_EXCLUDE|XCODE_(?:EMIT_EFFECTIVE_PLATFORM_NAME|EXPLICIT_FILE_TYPE|FILE_ATTRIBUTES|LAST_KNOWN_FILE_TYPE|PRODUCT_TYPE|SCHEME_(?:ADDRESS_SANITIZER|ADDRESS_SANITIZER_USE_AFTER_RETURN|ARGUMENTS|DISABLE_MAIN_THREAD_CHECKER|DYNAMIC_LIBRARY_LOADS|DYNAMIC_LINKER_API_USAGE|ENVIRONMENT|EXECUTABLE|GUARD_MALLOC|MAIN_THREAD_CHECKER_STOP|MALLOC_GUARD_EDGES|MALLOC_SCRIBBLE|MALLOC_STACK|THREAD_SANITIZER(?:_STOP)?|UNDEFINED_BEHAVIOUR_SANITIZER(?:_STOP)?|ZOMBIE_OBJECTS))|XCTEST)\b/,keyword:/\b(?:add_compile_definitions|add_compile_options|add_custom_command|add_custom_target|add_definitions|add_dependencies|add_executable|add_library|add_link_options|add_subdirectory|add_test|aux_source_directory|break|build_command|build_name|cmake_host_system_information|cmake_minimum_required|cmake_parse_arguments|cmake_policy|configure_file|continue|create_test_sourcelist|ctest_build|ctest_configure|ctest_coverage|ctest_empty_binary_directory|ctest_memcheck|ctest_read_custom_files|ctest_run_script|ctest_sleep|ctest_start|ctest_submit|ctest_test|ctest_update|ctest_upload|define_property|else|elseif|enable_language|enable_testing|endforeach|endfunction|endif|endmacro|endwhile|exec_program|execute_process|export|export_library_dependencies|file|find_file|find_library|find_package|find_path|find_program|fltk_wrap_ui|foreach|function|get_cmake_property|get_directory_property|get_filename_component|get_property|get_source_file_property|get_target_property|get_test_property|if|include|include_directories|include_external_msproject|include_guard|include_regular_expression|install|install_files|install_programs|install_targets|link_directories|link_libraries|list|load_cache|load_command|macro|make_directory|mark_as_advanced|math|message|option|output_required_files|project|qt_wrap_cpp|qt_wrap_ui|remove|remove_definitions|return|separate_arguments|set|set_directory_properties|set_property|set_source_files_properties|set_target_properties|set_tests_properties|site_name|source_group|string|subdir_depends|subdirs|target_compile_definitions|target_compile_features|target_compile_options|target_include_directories|target_link_directories|target_link_libraries|target_link_options|target_sources|try_compile|try_run|unset|use_mangled_mesa|utility_source|variable_requires|variable_watch|while|write_file)(?=\s*\()\b/,boolean:/\b(?:ON|OFF|TRUE|FALSE)\b/,namespace:/\b(?:PROPERTIES|SHARED|PRIVATE|STATIC|PUBLIC|INTERFACE|TARGET_OBJECTS)\b/,operator:/\b(?:NOT|AND|OR|MATCHES|LESS|GREATER|EQUAL|STRLESS|STRGREATER|STREQUAL|VERSION_LESS|VERSION_EQUAL|VERSION_GREATER|DEFINED)\b/,inserted:{pattern:/\b\w+::\w+\b/,alias:"class-name"},number:/\b\d+(?:\.\d+)*\b/,function:/\b[a-z_]\w*(?=\s*\()\b/i,punctuation:/[()>}]|\$[<{]/}}e.exports=t,t.displayName="cmake",t.aliases=[]},32762(e){"use strict";function t(e){e.languages.cobol={comment:{pattern:/\*>.*|(^[ \t]*)\*.*/m,lookbehind:!0,greedy:!0},string:{pattern:/[xzgn]?(?:"(?:[^\r\n"]|"")*"(?!")|'(?:[^\r\n']|'')*'(?!'))/i,greedy:!0},level:{pattern:/(^[ \t]*)\d+\b/m,lookbehind:!0,greedy:!0,alias:"number"},"class-name":{pattern:/(\bpic(?:ture)?\s+)(?:(?:[-\w$/,:*+<>]|\.(?!\s|$))(?:\(\d+\))?)+/i,lookbehind:!0,inside:{number:{pattern:/(\()\d+/,lookbehind:!0},punctuation:/[()]/}},keyword:{pattern:/(^|[^\w-])(?:ABORT|ACCEPT|ACCESS|ADD|ADDRESS|ADVANCING|AFTER|ALIGNED|ALL|ALPHABET|ALPHABETIC|ALPHABETIC-LOWER|ALPHABETIC-UPPER|ALPHANUMERIC|ALPHANUMERIC-EDITED|ALSO|ALTER|ALTERNATE|ANY|ARE|AREA|AREAS|AS|ASCENDING|ASCII|ASSIGN|ASSOCIATED-DATA|ASSOCIATED-DATA-LENGTH|AT|ATTRIBUTE|AUTHOR|AUTO|AUTO-SKIP|BACKGROUND-COLOR|BACKGROUND-COLOUR|BASIS|BEEP|BEFORE|BEGINNING|BELL|BINARY|BIT|BLANK|BLINK|BLOCK|BOUNDS|BOTTOM|BY|BYFUNCTION|BYTITLE|CALL|CANCEL|CAPABLE|CCSVERSION|CD|CF|CH|CHAINING|CHANGED|CHANNEL|CHARACTER|CHARACTERS|CLASS|CLASS-ID|CLOCK-UNITS|CLOSE|CLOSE-DISPOSITION|COBOL|CODE|CODE-SET|COLLATING|COL|COLUMN|COM-REG|COMMA|COMMITMENT|COMMON|COMMUNICATION|COMP|COMP-1|COMP-2|COMP-3|COMP-4|COMP-5|COMPUTATIONAL|COMPUTATIONAL-1|COMPUTATIONAL-2|COMPUTATIONAL-3|COMPUTATIONAL-4|COMPUTATIONAL-5|COMPUTE|CONFIGURATION|CONTAINS|CONTENT|CONTINUE|CONTROL|CONTROL-POINT|CONTROLS|CONVENTION|CONVERTING|COPY|CORR|CORRESPONDING|COUNT|CRUNCH|CURRENCY|CURSOR|DATA|DATA-BASE|DATE|DATE-COMPILED|DATE-WRITTEN|DAY|DAY-OF-WEEK|DBCS|DE|DEBUG-CONTENTS|DEBUG-ITEM|DEBUG-LINE|DEBUG-NAME|DEBUG-SUB-1|DEBUG-SUB-2|DEBUG-SUB-3|DEBUGGING|DECIMAL-POINT|DECLARATIVES|DEFAULT|DEFAULT-DISPLAY|DEFINITION|DELETE|DELIMITED|DELIMITER|DEPENDING|DESCENDING|DESTINATION|DETAIL|DFHRESP|DFHVALUE|DISABLE|DISK|DISPLAY|DISPLAY-1|DIVIDE|DIVISION|DONTCARE|DOUBLE|DOWN|DUPLICATES|DYNAMIC|EBCDIC|EGCS|EGI|ELSE|EMI|EMPTY-CHECK|ENABLE|END|END-ACCEPT|END-ADD|END-CALL|END-COMPUTE|END-DELETE|END-DIVIDE|END-EVALUATE|END-IF|END-MULTIPLY|END-OF-PAGE|END-PERFORM|END-READ|END-RECEIVE|END-RETURN|END-REWRITE|END-SEARCH|END-START|END-STRING|END-SUBTRACT|END-UNSTRING|END-WRITE|ENDING|ENTER|ENTRY|ENTRY-PROCEDURE|ENVIRONMENT|EOP|ERASE|ERROR|EOL|EOS|ESCAPE|ESI|EVALUATE|EVENT|EVERY|EXCEPTION|EXCLUSIVE|EXHIBIT|EXIT|EXPORT|EXTEND|EXTENDED|EXTERNAL|FD|FILE|FILE-CONTROL|FILLER|FINAL|FIRST|FOOTING|FOR|FOREGROUND-COLOR|FOREGROUND-COLOUR|FROM|FULL|FUNCTION|FUNCTIONNAME|FUNCTION-POINTER|GENERATE|GOBACK|GIVING|GLOBAL|GO|GRID|GROUP|HEADING|HIGHLIGHT|HIGH-VALUE|HIGH-VALUES|I-O|I-O-CONTROL|ID|IDENTIFICATION|IF|IMPLICIT|IMPORT|IN|INDEX|INDEXED|INDICATE|INITIAL|INITIALIZE|INITIATE|INPUT|INPUT-OUTPUT|INSPECT|INSTALLATION|INTEGER|INTO|INVALID|INVOKE|IS|JUST|JUSTIFIED|KANJI|KEPT|KEY|KEYBOARD|LABEL|LANGUAGE|LAST|LB|LD|LEADING|LEFT|LEFTLINE|LENGTH|LENGTH-CHECK|LIBACCESS|LIBPARAMETER|LIBRARY|LIMIT|LIMITS|LINAGE|LINAGE-COUNTER|LINE|LINES|LINE-COUNTER|LINKAGE|LIST|LOCAL|LOCAL-STORAGE|LOCK|LONG-DATE|LONG-TIME|LOWER|LOWLIGHT|LOW-VALUE|LOW-VALUES|MEMORY|MERGE|MESSAGE|MMDDYYYY|MODE|MODULES|MORE-LABELS|MOVE|MULTIPLE|MULTIPLY|NAMED|NATIONAL|NATIONAL-EDITED|NATIVE|NEGATIVE|NETWORK|NEXT|NO|NO-ECHO|NULL|NULLS|NUMBER|NUMERIC|NUMERIC-DATE|NUMERIC-EDITED|NUMERIC-TIME|OBJECT-COMPUTER|OCCURS|ODT|OF|OFF|OMITTED|ON|OPEN|OPTIONAL|ORDER|ORDERLY|ORGANIZATION|OTHER|OUTPUT|OVERFLOW|OVERLINE|OWN|PACKED-DECIMAL|PADDING|PAGE|PAGE-COUNTER|PASSWORD|PERFORM|PF|PH|PIC|PICTURE|PLUS|POINTER|POSITION|POSITIVE|PORT|PRINTER|PRINTING|PRIVATE|PROCEDURE|PROCEDURE-POINTER|PROCEDURES|PROCEED|PROCESS|PROGRAM|PROGRAM-ID|PROGRAM-LIBRARY|PROMPT|PURGE|QUEUE|QUOTE|QUOTES|RANDOM|READER|REMOTE|RD|REAL|READ|RECEIVE|RECEIVED|RECORD|RECORDING|RECORDS|RECURSIVE|REDEFINES|REEL|REF|REFERENCE|REFERENCES|RELATIVE|RELEASE|REMAINDER|REMARKS|REMOVAL|REMOVE|RENAMES|REPLACE|REPLACING|REPORT|REPORTING|REPORTS|REQUIRED|RERUN|RESERVE|REVERSE-VIDEO|RESET|RETURN|RETURN-CODE|RETURNING|REVERSED|REWIND|REWRITE|RF|RH|RIGHT|ROUNDED|RUN|SAME|SAVE|SCREEN|SD|SEARCH|SECTION|SECURE|SECURITY|SEGMENT|SEGMENT-LIMIT|SELECT|SEND|SENTENCE|SEPARATE|SEQUENCE|SEQUENTIAL|SET|SHARED|SHAREDBYALL|SHAREDBYRUNUNIT|SHARING|SHIFT-IN|SHIFT-OUT|SHORT-DATE|SIGN|SIZE|SORT|SORT-CONTROL|SORT-CORE-SIZE|SORT-FILE-SIZE|SORT-MERGE|SORT-MESSAGE|SORT-MODE-SIZE|SORT-RETURN|SOURCE|SOURCE-COMPUTER|SPACE|SPACES|SPECIAL-NAMES|STANDARD|STANDARD-1|STANDARD-2|START|STATUS|STOP|STRING|SUB-QUEUE-1|SUB-QUEUE-2|SUB-QUEUE-3|SUBTRACT|SUM|SUPPRESS|SYMBOL|SYMBOLIC|SYNC|SYNCHRONIZED|TABLE|TALLY|TALLYING|TASK|TAPE|TERMINAL|TERMINATE|TEST|TEXT|THEN|THREAD|THREAD-LOCAL|THROUGH|THRU|TIME|TIMER|TIMES|TITLE|TO|TODAYS-DATE|TODAYS-NAME|TOP|TRAILING|TRUNCATED|TYPE|TYPEDEF|UNDERLINE|UNIT|UNSTRING|UNTIL|UP|UPON|USAGE|USE|USING|VALUE|VALUES|VARYING|VIRTUAL|WAIT|WHEN|WHEN-COMPILED|WITH|WORDS|WORKING-STORAGE|WRITE|YEAR|YYYYMMDD|YYYYDDD|ZERO-FILL|ZEROS|ZEROES)(?![\w-])/i,lookbehind:!0},boolean:{pattern:/(^|[^\w-])(?:false|true)(?![\w-])/i,lookbehind:!0},number:{pattern:/(^|[^\w-])(?:[+-]?(?:(?:\d+(?:[.,]\d+)?|[.,]\d+)(?:e[+-]?\d+)?|zero))(?![\w-])/i,lookbehind:!0},operator:[/<>|[<>]=?|[=+*/&]/,{pattern:/(^|[^\w-])(?:-|and|equal|greater|less|not|or|than)(?![\w-])/i,lookbehind:!0}],punctuation:/[.:,()]/}}e.exports=t,t.displayName="cobol",t.aliases=[]},43576(e){"use strict";function t(e){var t,n,r;n=/#(?!\{).+/,r={pattern:/#\{[^}]+\}/,alias:"variable"},(t=e).languages.coffeescript=t.languages.extend("javascript",{comment:n,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:r}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),t.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:n,interpolation:r}}}),t.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:t.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:r}}]}),t.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete t.languages.coffeescript["template-string"],t.languages.coffee=t.languages.coffeescript}e.exports=t,t.displayName="coffeescript",t.aliases=["coffee"]},71794(e){"use strict";function t(e){e.languages.concurnas={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],langext:{pattern:/\b\w+\s*\|\|[\s\S]+?\|\|/,greedy:!0,alias:"string"},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/,lookbehind:!0},keyword:/\b(?:abstract|actor|also|annotation|assert|async|await|bool|boolean|break|byte|case|catch|changed|char|class|closed|constant|continue|def|default|del|double|elif|else|enum|every|extends|false|finally|float|for|from|global|gpudef|gpukernel|if|import|in|init|inject|int|lambda|local|long|loop|match|new|nodefault|null|of|onchange|open|out|override|package|parfor|parforsync|post|pre|private|protected|provide|provider|public|return|shared|short|single|size_t|sizeof|super|sync|this|throw|trait|trans|transient|true|try|typedef|unchecked|using|val|var|void|while|with)\b/,boolean:/\b(?:false|true)\b/,number:/\b0b[01][01_]*L?\b|\b0x(?:[\da-f_]*\.)?[\da-f_p+-]+\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfls]?/i,punctuation:/[{}[\];(),.:]/,operator:/<==|>==|=>|->|<-|<>|\^|&==|&<>|!|\?:?|\.\?|\+\+|--|[-+*/=<>]=?|\b(?:and|as|band|bor|bxor|comp|is|isnot|mod|or)\b=?/,annotation:{pattern:/@(?:\w+:)?(?:\w+|\[[^\]]+\])?/,alias:"builtin"}},e.languages.insertBefore("concurnas","langext",{string:{pattern:/[rs]?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:e.languages.concurnas},string:/[\s\S]+/}}}),e.languages.conc=e.languages.concurnas}e.exports=t,t.displayName="concurnas",t.aliases=["conc"]},1315(e){"use strict";function t(e){!function(e){for(var t=/\(\*(?:[^(*]|\((?!\*)|\*(?!\))|)*\*\)/.source,n=0;n<2;n++)t=t.replace(//g,function(){return t});t=t.replace(//g,"[]"),e.languages.coq={comment:RegExp(t),string:{pattern:/"(?:[^"]|"")*"(?!")/,greedy:!0},attribute:[{pattern:RegExp(/#\[(?:[^\]("]|"(?:[^"]|"")*"(?!")|\((?!\*)|)*\]/.source.replace(//g,function(){return t})),greedy:!0,alias:"attr-name",inside:{comment:RegExp(t),string:{pattern:/"(?:[^"]|"")*"(?!")/,greedy:!0},operator:/=/,punctuation:/^#\[|\]$|[,()]/}},{pattern:/\b(?:Cumulative|Global|Local|Monomorphic|NonCumulative|Polymorphic|Private|Program)\b/,alias:"attr-name"}],keyword:/\b(?:_|Abort|About|Add|Admit|Admitted|All|apply|Arguments|as|As|Assumptions|at|Axiom|Axioms|Back|BackTo|Backtrace|Bind|BinOp|BinOpSpec|BinRel|Blacklist|by|Canonical|Case|Cd|Check|Class|Classes|Close|Coercion|Coercions|cofix|CoFixpoint|CoInductive|Collection|Combined|Compute|Conjecture|Conjectures|Constant|Constants|Constraint|Constructors|Context|Corollary|Create|CstOp|Custom|Cut|Debug|Declare|Defined|Definition|Delimit|Dependencies|Dependent|Derive|Diffs|Drop|Elimination|else|end|End|Entry|Equality|Eval|Example|Existential|Existentials|Existing|exists|exists2|Export|Extern|Extraction|Fact|Fail|Field|File|Firstorder|fix|Fixpoint|Flags|Focus|for|forall|From|fun|Funclass|Function|Functional|GC|Generalizable|Goal|Grab|Grammar|Graph|Guarded|Haskell|Heap|Hide|Hint|HintDb|Hints|Hypotheses|Hypothesis|Identity|if|IF|Immediate|Implicit|Implicits|Import|in|Include|Induction|Inductive|Infix|Info|Initial|InjTyp|Inline|Inspect|Instance|Instances|Intro|Intros|Inversion|Inversion_clear|JSON|Language|Left|Lemma|let|Let|Lia|Libraries|Library|Load|LoadPath|Locate|Ltac|Ltac2|match|Match|measure|Method|Minimality|ML|Module|Modules|Morphism|move|Next|NoInline|Notation|Number|Obligation|Obligations|OCaml|Opaque|Open|Optimize|Parameter|Parameters|Parametric|Path|Paths|Prenex|Preterm|Primitive|Print|Profile|Projections|Proof|Prop|PropBinOp|Property|PropOp|Proposition|PropUOp|Pwd|Qed|Quit|Rec|Record|Recursive|Redirect|Reduction|Register|Relation|Remark|Remove|removed|Require|Reserved|Reset|Resolve|Restart|return|Rewrite|Right|Ring|Rings|Saturate|Save|Scheme|Scope|Scopes|Search|SearchHead|SearchPattern|SearchRewrite|Section|Separate|Set|Setoid|Show|Signatures|Solve|Solver|Sort|Sortclass|Sorted|Spec|SProp|Step|Strategies|Strategy|String|struct|Structure|SubClass|Subgraph|SuchThat|Tactic|Term|TestCompile|then|Theorem|Time|Timeout|To|Transparent|Type|Typeclasses|Types|Typing|Undelimit|Undo|Unfocus|Unfocused|Unfold|Universe|Universes|UnOp|UnOpSpec|Unshelve|using|Variable|Variables|Variant|Verbose|View|Visibility|wf|where|with|Zify)\b/,number:/\b(?:0x[a-f0-9][a-f0-9_]*(?:\.[a-f0-9_]+)?(?:p[+-]?\d[\d_]*)?|\d[\d_]*(?:\.[\d_]+)?(?:e[+-]?\d[\d_]*)?)\b/i,punct:{pattern:/@\{|\{\||\[=|:>/,alias:"punctuation"},operator:/\/\\|\\\/|\.{2,3}|:{1,2}=|\*\*|[-=]>|<(?:->?|[+:=>]|<:)|>(?:=|->)|\|[-|]?|[-!%&*+/<=>?@^~']/,punctuation:/\.\(|`\(|@\{|`\{|\{\||\[=|:>|[:.,;(){}\[\]]/}}(e)}e.exports=t,t.displayName="coq",t.aliases=[]},80096(e,t,n){"use strict";var r=n(65806);function i(e){var t,n,i;e.register(r),t=e,n=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char8_t|char16_t|char32_t|class|compl|concept|const|consteval|constexpr|constinit|const_cast|continue|co_await|co_return|co_yield|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,i=/\b(?!)\w+(?:\s*\.\s*\w+)*\b/.source.replace(//g,function(){return n.source}),t.languages.cpp=t.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!)\w+/.source.replace(//g,function(){return n.source})),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:n,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:true|false)\b/}),t.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:module|import)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/(?:\s*:\s*)?|:\s*/.source.replace(//g,function(){return i})+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),t.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b[a-z_]\w*\s*<(?:[^<>]|<(?:[^<>])*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:t.languages.cpp}}}}),t.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),t.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:t.languages.extend("cpp",{})}}),t.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},t.languages.cpp["base-clause"])}e.exports=i,i.displayName="cpp",i.aliases=[]},99176(e,t,n){"use strict";var r=n(56939);function i(e){var t;e.register(r),(t=e).languages.crystal=t.languages.extend("ruby",{keyword:[/\b(?:abstract|alias|as|asm|begin|break|case|class|def|do|else|elsif|end|ensure|enum|extend|for|fun|if|include|instance_sizeof|lib|macro|module|next|of|out|pointerof|private|protected|rescue|return|require|select|self|sizeof|struct|super|then|type|typeof|uninitialized|union|unless|until|when|while|with|yield|__DIR__|__END_LINE__|__FILE__|__LINE__)\b/,{pattern:/(\.\s*)(?:is_a|responds_to)\?/,lookbehind:!0}],number:/\b(?:0b[01_]*[01]|0o[0-7_]*[0-7]|0x[\da-fA-F_]*[\da-fA-F]|(?:\d(?:[\d_]*\d)?)(?:\.[\d_]*\d)?(?:[eE][+-]?[\d_]*\d)?)(?:_(?:[uif](?:8|16|32|64))?)?\b/}),t.languages.insertBefore("crystal","string",{attribute:{pattern:/@\[.+?\]/,alias:"attr-name",inside:{delimiter:{pattern:/^@\[|\]$/,alias:"tag"},rest:t.languages.crystal}},expansion:[{pattern:/\{\{.+?\}\}/,inside:{delimiter:{pattern:/^\{\{|\}\}$/,alias:"tag"},rest:t.languages.crystal}},{pattern:/\{%.+?%\}/,inside:{delimiter:{pattern:/^\{%|%\}$/,alias:"tag"},rest:t.languages.crystal}}]})}e.exports=i,i.displayName="crystal",i.aliases=[]},61958(e){"use strict";function t(e){!function(e){function t(e,t){return e.replace(/<<(\d+)>>/g,function(e,n){return"(?:"+t[+n]+")"})}function n(e,n,r){return RegExp(t(e,n),r||"")}function r(e,t){for(var n=0;n>/g,function(){return"(?:"+e+")"});return e.replace(/<>/g,"[^\\s\\S]")}var i={type:"bool byte char decimal double dynamic float int long object sbyte short string uint ulong ushort var void",typeDeclaration:"class enum interface struct",contextual:"add alias and ascending async await by descending from get global group into join let nameof not notnull on or orderby partial remove select set unmanaged value when where",other:"abstract as base break case catch checked const continue default delegate do else event explicit extern finally fixed for foreach goto if implicit in internal is lock namespace new null operator out override params private protected public readonly ref return sealed sizeof stackalloc static switch this throw try typeof unchecked unsafe using virtual volatile while yield"};function a(e){return"\\b(?:"+e.trim().replace(/ /g,"|")+")\\b"}var o=a(i.typeDeclaration),s=RegExp(a(i.type+" "+i.typeDeclaration+" "+i.contextual+" "+i.other)),u=a(i.typeDeclaration+" "+i.contextual+" "+i.other),c=a(i.type+" "+i.typeDeclaration+" "+i.other),l=r(/<(?:[^<>;=+\-*/%&|^]|<>)*>/.source,2),f=r(/\((?:[^()]|<>)*\)/.source,2),d=/@?\b[A-Za-z_]\w*\b/.source,h=t(/<<0>>(?:\s*<<1>>)?/.source,[d,l]),p=t(/(?!<<0>>)<<1>>(?:\s*\.\s*<<1>>)*/.source,[u,h]),b=/\[\s*(?:,\s*)*\]/.source,m=t(/<<0>>(?:\s*(?:\?\s*)?<<1>>)*(?:\s*\?)?/.source,[p,b]),g=t(/[^,()<>[\];=+\-*/%&|^]|<<0>>|<<1>>|<<2>>/.source,[l,f,b]),v=t(/\(<<0>>+(?:,<<0>>+)+\)/.source,[g]),y=t(/(?:<<0>>|<<1>>)(?:\s*(?:\?\s*)?<<2>>)*(?:\s*\?)?/.source,[v,p,b]),w={keyword:s,punctuation:/[<>()?,.:[\]]/},_=/'(?:[^\r\n'\\]|\\.|\\[Uux][\da-fA-F]{1,8})'/.source,E=/"(?:\\.|[^\\"\r\n])*"/.source,S=/@"(?:""|\\[\s\S]|[^\\"])*"(?!")/.source;e.languages.csharp=e.languages.extend("clike",{string:[{pattern:n(/(^|[^$\\])<<0>>/.source,[S]),lookbehind:!0,greedy:!0},{pattern:n(/(^|[^@$\\])<<0>>/.source,[E]),lookbehind:!0,greedy:!0},{pattern:RegExp(_),greedy:!0,alias:"character"}],"class-name":[{pattern:n(/(\busing\s+static\s+)<<0>>(?=\s*;)/.source,[p]),lookbehind:!0,inside:w},{pattern:n(/(\busing\s+<<0>>\s*=\s*)<<1>>(?=\s*;)/.source,[d,y]),lookbehind:!0,inside:w},{pattern:n(/(\busing\s+)<<0>>(?=\s*=)/.source,[d]),lookbehind:!0},{pattern:n(/(\b<<0>>\s+)<<1>>/.source,[o,h]),lookbehind:!0,inside:w},{pattern:n(/(\bcatch\s*\(\s*)<<0>>/.source,[p]),lookbehind:!0,inside:w},{pattern:n(/(\bwhere\s+)<<0>>/.source,[d]),lookbehind:!0},{pattern:n(/(\b(?:is(?:\s+not)?|as)\s+)<<0>>/.source,[m]),lookbehind:!0,inside:w},{pattern:n(/\b<<0>>(?=\s+(?!<<1>>)<<2>>(?:\s*[=,;:{)\]]|\s+(?:in|when)\b))/.source,[y,c,d]),inside:w}],keyword:s,number:/(?:\b0(?:x[\da-f_]*[\da-f]|b[01_]*[01])|(?:\B\.\d+(?:_+\d+)*|\b\d+(?:_+\d+)*(?:\.\d+(?:_+\d+)*)?)(?:e[-+]?\d+(?:_+\d+)*)?)(?:ul|lu|[dflmu])?\b/i,operator:/>>=?|<<=?|[-=]>|([-+&|])\1|~|\?\?=?|[-+*/%&|^!=<>]=?/,punctuation:/\?\.?|::|[{}[\];(),.:]/}),e.languages.insertBefore("csharp","number",{range:{pattern:/\.\./,alias:"operator"}}),e.languages.insertBefore("csharp","punctuation",{"named-parameter":{pattern:n(/([(,]\s*)<<0>>(?=\s*:)/.source,[d]),lookbehind:!0,alias:"punctuation"}}),e.languages.insertBefore("csharp","class-name",{namespace:{pattern:n(/(\b(?:namespace|using)\s+)<<0>>(?:\s*\.\s*<<0>>)*(?=\s*[;{])/.source,[d]),lookbehind:!0,inside:{punctuation:/\./}},"type-expression":{pattern:n(/(\b(?:default|typeof|sizeof)\s*\(\s*(?!\s))(?:[^()\s]|\s(?!\s)|<<0>>)*(?=\s*\))/.source,[f]),lookbehind:!0,alias:"class-name",inside:w},"return-type":{pattern:n(/<<0>>(?=\s+(?:<<1>>\s*(?:=>|[({]|\.\s*this\s*\[)|this\s*\[))/.source,[y,p]),inside:w,alias:"class-name"},"constructor-invocation":{pattern:n(/(\bnew\s+)<<0>>(?=\s*[[({])/.source,[y]),lookbehind:!0,inside:w,alias:"class-name"},"generic-method":{pattern:n(/<<0>>\s*<<1>>(?=\s*\()/.source,[d,l]),inside:{function:n(/^<<0>>/.source,[d]),generic:{pattern:RegExp(l),alias:"class-name",inside:w}}},"type-list":{pattern:n(/\b((?:<<0>>\s+<<1>>|where\s+<<2>>)\s*:\s*)(?:<<3>>|<<4>>)(?:\s*,\s*(?:<<3>>|<<4>>))*(?=\s*(?:where|[{;]|=>|$))/.source,[o,h,d,y,s.source]),lookbehind:!0,inside:{keyword:s,"class-name":{pattern:RegExp(y),greedy:!0,inside:w},punctuation:/,/}},preprocessor:{pattern:/(^[\t ]*)#.*/m,lookbehind:!0,alias:"property",inside:{directive:{pattern:/(#)\b(?:define|elif|else|endif|endregion|error|if|line|pragma|region|undef|warning)\b/,lookbehind:!0,alias:"keyword"}}}});var k=E+"|"+_,x=t(/\/(?![*/])|\/\/[^\r\n]*[\r\n]|\/\*(?:[^*]|\*(?!\/))*\*\/|<<0>>/.source,[k]),T=r(t(/[^"'/()]|<<0>>|\(<>*\)/.source,[x]),2),M=/\b(?:assembly|event|field|method|module|param|property|return|type)\b/.source,O=t(/<<0>>(?:\s*\(<<1>>*\))?/.source,[p,T]);e.languages.insertBefore("csharp","class-name",{attribute:{pattern:n(/((?:^|[^\s\w>)?])\s*\[\s*)(?:<<0>>\s*:\s*)?<<1>>(?:\s*,\s*<<1>>)*(?=\s*\])/.source,[M,O]),lookbehind:!0,greedy:!0,inside:{target:{pattern:n(/^<<0>>(?=\s*:)/.source,[M]),alias:"keyword"},"attribute-arguments":{pattern:n(/\(<<0>>*\)/.source,[T]),inside:e.languages.csharp},"class-name":{pattern:RegExp(p),inside:{punctuation:/\./}},punctuation:/[:,]/}}});var A=/:[^}\r\n]+/.source,L=r(t(/[^"'/()]|<<0>>|\(<>*\)/.source,[x]),2),C=t(/\{(?!\{)(?:(?![}:])<<0>>)*<<1>>?\}/.source,[L,A]),I=r(t(/[^"'/()]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|<<0>>|\(<>*\)/.source,[k]),2),D=t(/\{(?!\{)(?:(?![}:])<<0>>)*<<1>>?\}/.source,[I,A]);function N(t,r){return{interpolation:{pattern:n(/((?:^|[^{])(?:\{\{)*)<<0>>/.source,[t]),lookbehind:!0,inside:{"format-string":{pattern:n(/(^\{(?:(?![}:])<<0>>)*)<<1>>(?=\}$)/.source,[r,A]),lookbehind:!0,inside:{punctuation:/^:/}},punctuation:/^\{|\}$/,expression:{pattern:/[\s\S]+/,alias:"language-csharp",inside:e.languages.csharp}}},string:/[\s\S]+/}}e.languages.insertBefore("csharp","string",{"interpolation-string":[{pattern:n(/(^|[^\\])(?:\$@|@\$)"(?:""|\\[\s\S]|\{\{|<<0>>|[^\\{"])*"/.source,[C]),lookbehind:!0,greedy:!0,inside:N(C,L)},{pattern:n(/(^|[^@\\])\$"(?:\\.|\{\{|<<0>>|[^\\"{])*"/.source,[D]),lookbehind:!0,greedy:!0,inside:N(D,I)}]})}(e),e.languages.dotnet=e.languages.cs=e.languages.csharp}e.exports=t,t.displayName="csharp",t.aliases=["dotnet","cs"]},65447(e){"use strict";function t(e){e.languages.csp={directive:{pattern:/(^|[^-\da-z])(?:base-uri|block-all-mixed-content|(?:child|connect|default|font|frame|img|manifest|media|object|prefetch|script|style|worker)-src|disown-opener|form-action|frame-(?:ancestors|options)|input-protection(?:-(?:clip|selectors))?|navigate-to|plugin-types|policy-uri|referrer|reflected-xss|report-(?:to|uri)|require-sri-for|sandbox|(?:script|style)-src-(?:attr|elem)|upgrade-insecure-requests)(?=[^-\da-z]|$)/i,lookbehind:!0,alias:"keyword"},safe:{pattern:/'(?:deny|none|report-sample|self|strict-dynamic|top-only|(?:nonce|sha(?:256|384|512))-[-+/\w=]+)'/i,alias:"selector"},unsafe:{pattern:/(?:'unsafe-(?:allow-redirects|dynamic|eval|hash-attributes|hashed-attributes|hashes|inline)'|\*)/i,alias:"function"}}}e.exports=t,t.displayName="csp",t.aliases=[]},4762(e){"use strict";function t(e){var t,n,r,i,a;r=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,(t=e).languages.css.selector={pattern:t.languages.css.selector.pattern,lookbehind:!0,inside:n={"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+/,class:/\.[-\w]+/,id:/#[-\w]+/,attribute:{pattern:RegExp("\\[(?:[^[\\]\"']|"+r.source+")*\\]"),greedy:!0,inside:{punctuation:/^\[|\]$/,"case-sensitivity":{pattern:/(\s)[si]$/i,lookbehind:!0,alias:"keyword"},namespace:{pattern:/^(\s*)(?:(?!\s)[-*\w\xA0-\uFFFF])*\|(?!=)/,lookbehind:!0,inside:{punctuation:/\|$/}},"attr-name":{pattern:/^(\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+/,lookbehind:!0},"attr-value":[r,{pattern:/(=\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+(?=\s*$)/,lookbehind:!0}],operator:/[|~*^$]?=/}},"n-th":[{pattern:/(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/,lookbehind:!0,inside:{number:/[\dn]+/,operator:/[+-]/}},{pattern:/(\(\s*)(?:even|odd)(?=\s*\))/i,lookbehind:!0}],combinator:/>|\+|~|\|\|/,punctuation:/[(),]/}},t.languages.css.atrule.inside["selector-function-argument"].inside=n,t.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}}),i={pattern:/(\b\d+)(?:%|[a-z]+\b)/,lookbehind:!0},a={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0},t.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[/\b(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\b/i,{pattern:/\b(?:rgb|hsl)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:rgb|hsl)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:i,number:a,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:i,number:a})}e.exports=t,t.displayName="cssExtras",t.aliases=[]},12049(e){"use strict";function t(e){var t,n,r;n=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/,(t=e).languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/,inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+n.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+n.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+n.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:n,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},t.languages.css.atrule.inside.rest=t.languages.css,(r=t.languages.markup)&&(r.tag.addInlined("style","css"),r.tag.addAttribute("style","css"))}e.exports=t,t.displayName="css",t.aliases=[]},78090(e){"use strict";function t(e){e.languages.csv={value:/[^\r\n,"]+|"(?:[^"]|"")*"(?!")/,punctuation:/,/}}e.exports=t,t.displayName="csv",t.aliases=[]},40315(e){"use strict";function t(e){e.languages.cypher={comment:/\/\/.*/,string:{pattern:/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/,greedy:!0},"class-name":{pattern:/(:\s*)(?:\w+|`(?:[^`\\\r\n])*`)(?=\s*[{):])/,lookbehind:!0,greedy:!0},relationship:{pattern:/(-\[\s*(?:\w+\s*|`(?:[^`\\\r\n])*`\s*)?:\s*|\|\s*:\s*)(?:\w+|`(?:[^`\\\r\n])*`)/,lookbehind:!0,greedy:!0,alias:"property"},identifier:{pattern:/`(?:[^`\\\r\n])*`/,greedy:!0,alias:"symbol"},variable:/\$\w+/,keyword:/\b(?:ADD|ALL|AND|AS|ASC|ASCENDING|ASSERT|BY|CALL|CASE|COMMIT|CONSTRAINT|CONTAINS|CREATE|CSV|DELETE|DESC|DESCENDING|DETACH|DISTINCT|DO|DROP|ELSE|END|ENDS|EXISTS|FOR|FOREACH|IN|INDEX|IS|JOIN|KEY|LIMIT|LOAD|MANDATORY|MATCH|MERGE|NODE|NOT|OF|ON|OPTIONAL|OR|ORDER(?=\s+BY)|PERIODIC|REMOVE|REQUIRE|RETURN|SCALAR|SCAN|SET|SKIP|START|STARTS|THEN|UNION|UNIQUE|UNWIND|USING|WHEN|WHERE|WITH|XOR|YIELD)\b/i,function:/\b\w+\b(?=\s*\()/,boolean:/\b(?:true|false|null)\b/i,number:/\b(?:0x[\da-fA-F]+|\d+(?:\.\d+)?(?:[eE][+-]?\d+)?)\b/,operator:/:|<--?|--?>?|<>|=~?|[<>]=?|[+*/%^|]|\.\.\.?/,punctuation:/[()[\]{},;.]/}}e.exports=t,t.displayName="cypher",t.aliases=[]},7902(e){"use strict";function t(e){e.languages.d=e.languages.extend("clike",{comment:[{pattern:/^\s*#!.+/,greedy:!0},{pattern:RegExp(/(^|[^\\])/.source+"(?:"+[/\/\+(?:\/\+(?:[^+]|\+(?!\/))*\+\/|(?!\/\+)[\s\S])*?\+\//.source,/\/\/.*/.source,/\/\*[\s\S]*?\*\//.source].join("|")+")"),lookbehind:!0,greedy:!0}],string:[{pattern:RegExp([/\b[rx]"(?:\\[\s\S]|[^\\"])*"[cwd]?/.source,/\bq"(?:\[[\s\S]*?\]|\([\s\S]*?\)|<[\s\S]*?>|\{[\s\S]*?\})"/.source,/\bq"((?!\d)\w+)$[\s\S]*?^\1"/.source,/\bq"(.)[\s\S]*?\2"/.source,/'(?:\\(?:\W|\w+)|[^\\])'/.source,/(["`])(?:\\[\s\S]|(?!\3)[^\\])*\3[cwd]?/.source].join("|"),"m"),greedy:!0},{pattern:/\bq\{(?:\{[^{}]*\}|[^{}])*\}/,greedy:!0,alias:"token-string"}],keyword:/\$|\b(?:abstract|alias|align|asm|assert|auto|body|bool|break|byte|case|cast|catch|cdouble|cent|cfloat|char|class|const|continue|creal|dchar|debug|default|delegate|delete|deprecated|do|double|else|enum|export|extern|false|final|finally|float|for|foreach|foreach_reverse|function|goto|idouble|if|ifloat|immutable|import|inout|int|interface|invariant|ireal|lazy|long|macro|mixin|module|new|nothrow|null|out|override|package|pragma|private|protected|public|pure|real|ref|return|scope|shared|short|static|struct|super|switch|synchronized|template|this|throw|true|try|typedef|typeid|typeof|ubyte|ucent|uint|ulong|union|unittest|ushort|version|void|volatile|wchar|while|with|__(?:(?:FILE|MODULE|LINE|FUNCTION|PRETTY_FUNCTION|DATE|EOF|TIME|TIMESTAMP|VENDOR|VERSION)__|gshared|traits|vector|parameters)|string|wstring|dstring|size_t|ptrdiff_t)\b/,number:[/\b0x\.?[a-f\d_]+(?:(?!\.\.)\.[a-f\d_]*)?(?:p[+-]?[a-f\d_]+)?[ulfi]{0,4}/i,{pattern:/((?:\.\.)?)(?:\b0b\.?|\b|\.)\d[\d_]*(?:(?!\.\.)\.[\d_]*)?(?:e[+-]?\d[\d_]*)?[ulfi]{0,4}/i,lookbehind:!0}],operator:/\|[|=]?|&[&=]?|\+[+=]?|-[-=]?|\.?\.\.|=[>=]?|!(?:i[ns]\b|<>?=?|>=?|=)?|\bi[ns]\b|(?:<[<>]?|>>?>?|\^\^|[*\/%^~])=?/}),e.languages.insertBefore("d","keyword",{property:/\B@\w*/}),e.languages.insertBefore("d","function",{register:{pattern:/\b(?:[ABCD][LHX]|E[ABCD]X|E?(?:BP|SP|DI|SI)|[ECSDGF]S|CR[0234]|DR[012367]|TR[3-7]|X?MM[0-7]|R[ABCD]X|[BS]PL|R[BS]P|[DS]IL|R[DS]I|R(?:[89]|1[0-5])[BWD]?|XMM(?:[89]|1[0-5])|YMM(?:1[0-5]|\d))\b|\bST(?:\([0-7]\)|\b)/,alias:"variable"}})}e.exports=t,t.displayName="d",t.aliases=[]},28651(e){"use strict";function t(e){var t,n,r,i;t=e,n=[/\b(?:async|sync|yield)\*/,/\b(?:abstract|assert|async|await|break|case|catch|class|const|continue|covariant|default|deferred|do|dynamic|else|enum|export|extension|external|extends|factory|final|finally|for|get|hide|if|implements|interface|import|in|library|mixin|new|null|on|operator|part|rethrow|return|set|show|static|super|switch|sync|this|throw|try|typedef|var|void|while|with|yield)\b/],i={pattern:RegExp((r=/(^|[^\w.])(?:[a-z]\w*\s*\.\s*)*(?:[A-Z]\w*\s*\.\s*)*/.source)+/[A-Z](?:[\d_A-Z]*[a-z]\w*)?\b/.source),lookbehind:!0,inside:{namespace:{pattern:/^[a-z]\w*(?:\s*\.\s*[a-z]\w*)*(?:\s*\.)?/,inside:{punctuation:/\./}}}},t.languages.dart=t.languages.extend("clike",{string:[{pattern:/r?("""|''')[\s\S]*?\1/,greedy:!0},{pattern:/r?(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0}],"class-name":[i,{pattern:RegExp(r+/[A-Z]\w*(?=\s+\w+\s*[;,=()])/.source),lookbehind:!0,inside:i.inside}],keyword:n,operator:/\bis!|\b(?:as|is)\b|\+\+|--|&&|\|\||<<=?|>>=?|~(?:\/=?)?|[+\-*\/%&^|=!<>]=?|\?/}),t.languages.insertBefore("dart","function",{metadata:{pattern:/@\w+/,alias:"symbol"}}),t.languages.insertBefore("dart","class-name",{generics:{pattern:/<(?:[\w\s,.&?]|<(?:[\w\s,.&?]|<(?:[\w\s,.&?]|<[\w\s,.&?]*>)*>)*>)*>/,inside:{"class-name":i,keyword:n,punctuation:/[<>(),.:]/,operator:/[?&|]/}}})}e.exports=t,t.displayName="dart",t.aliases=[]},55579(e){"use strict";function t(e){var t;(t=e).languages.dataweave={url:/\b[A-Za-z]+:\/\/[\w/:.?=&-]+|\burn:[\w:.?=&-]+/,property:{pattern:/(?:\b\w+#)?(?:"(?:\\.|[^\\"\r\n])*"|\b\w+)(?=\s*[:@])/,greedy:!0},string:{pattern:/(["'`])(?:\\[\s\S]|(?!\1)[^\\])*\1/,greedy:!0},"mime-type":/\b(?:text|audio|video|application|multipart|image)\/[\w+-]+/,date:{pattern:/\|[\w:+-]+\|/,greedy:!0},comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],regex:{pattern:/\/(?:[^\\\/\r\n]|\\[^\r\n])+\//,greedy:!0},function:/\b[A-Z_]\w*(?=\s*\()/i,number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\];(),.:@]/,operator:/<<|>>|->|[<>~=]=?|!=|--?-?|\+\+?|!|\?/,boolean:/\b(?:true|false)\b/,keyword:/\b(?:match|input|output|ns|type|update|null|if|else|using|unless|at|is|as|case|do|fun|var|not|and|or)\b/}}e.exports=t,t.displayName="dataweave",t.aliases=[]},93685(e){"use strict";function t(e){e.languages.dax={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/).*)/,lookbehind:!0},"data-field":{pattern:/'(?:[^']|'')*'(?!')(?:\[[ \w\xA0-\uFFFF]+\])?|\w+\[[ \w\xA0-\uFFFF]+\]/,alias:"symbol"},measure:{pattern:/\[[ \w\xA0-\uFFFF]+\]/,alias:"constant"},string:{pattern:/"(?:[^"]|"")*"(?!")/,greedy:!0},function:/\b(?:ABS|ACOS|ACOSH|ACOT|ACOTH|ADDCOLUMNS|ADDMISSINGITEMS|ALL|ALLCROSSFILTERED|ALLEXCEPT|ALLNOBLANKROW|ALLSELECTED|AND|APPROXIMATEDISTINCTCOUNT|ASIN|ASINH|ATAN|ATANH|AVERAGE|AVERAGEA|AVERAGEX|BETA\.DIST|BETA\.INV|BLANK|CALCULATE|CALCULATETABLE|CALENDAR|CALENDARAUTO|CEILING|CHISQ\.DIST|CHISQ\.DIST\.RT|CHISQ\.INV|CHISQ\.INV\.RT|CLOSINGBALANCEMONTH|CLOSINGBALANCEQUARTER|CLOSINGBALANCEYEAR|COALESCE|COMBIN|COMBINA|COMBINEVALUES|CONCATENATE|CONCATENATEX|CONFIDENCE\.NORM|CONFIDENCE\.T|CONTAINS|CONTAINSROW|CONTAINSSTRING|CONTAINSSTRINGEXACT|CONVERT|COS|COSH|COT|COTH|COUNT|COUNTA|COUNTAX|COUNTBLANK|COUNTROWS|COUNTX|CROSSFILTER|CROSSJOIN|CURRENCY|CURRENTGROUP|CUSTOMDATA|DATATABLE|DATE|DATEADD|DATEDIFF|DATESBETWEEN|DATESINPERIOD|DATESMTD|DATESQTD|DATESYTD|DATEVALUE|DAY|DEGREES|DETAILROWS|DISTINCT|DISTINCTCOUNT|DISTINCTCOUNTNOBLANK|DIVIDE|EARLIER|EARLIEST|EDATE|ENDOFMONTH|ENDOFQUARTER|ENDOFYEAR|EOMONTH|ERROR|EVEN|EXACT|EXCEPT|EXP|EXPON\.DIST|FACT|FALSE|FILTER|FILTERS|FIND|FIRSTDATE|FIRSTNONBLANK|FIRSTNONBLANKVALUE|FIXED|FLOOR|FORMAT|GCD|GENERATE|GENERATEALL|GENERATESERIES|GEOMEAN|GEOMEANX|GROUPBY|HASONEFILTER|HASONEVALUE|HOUR|IF|IF\.EAGER|IFERROR|IGNORE|INT|INTERSECT|ISBLANK|ISCROSSFILTERED|ISEMPTY|ISERROR|ISEVEN|ISFILTERED|ISINSCOPE|ISLOGICAL|ISNONTEXT|ISNUMBER|ISO\.CEILING|ISODD|ISONORAFTER|ISSELECTEDMEASURE|ISSUBTOTAL|ISTEXT|KEEPFILTERS|KEYWORDMATCH|LASTDATE|LASTNONBLANK|LASTNONBLANKVALUE|LCM|LEFT|LEN|LN|LOG|LOG10|LOOKUPVALUE|LOWER|MAX|MAXA|MAXX|MEDIAN|MEDIANX|MID|MIN|MINA|MINUTE|MINX|MOD|MONTH|MROUND|NATURALINNERJOIN|NATURALLEFTOUTERJOIN|NEXTDAY|NEXTMONTH|NEXTQUARTER|NEXTYEAR|NONVISUAL|NORM\.DIST|NORM\.INV|NORM\.S\.DIST|NORM\.S\.INV|NOT|NOW|ODD|OPENINGBALANCEMONTH|OPENINGBALANCEQUARTER|OPENINGBALANCEYEAR|OR|PARALLELPERIOD|PATH|PATHCONTAINS|PATHITEM|PATHITEMREVERSE|PATHLENGTH|PERCENTILE\.EXC|PERCENTILE\.INC|PERCENTILEX\.EXC|PERCENTILEX\.INC|PERMUT|PI|POISSON\.DIST|POWER|PREVIOUSDAY|PREVIOUSMONTH|PREVIOUSQUARTER|PREVIOUSYEAR|PRODUCT|PRODUCTX|QUARTER|QUOTIENT|RADIANS|RAND|RANDBETWEEN|RANK\.EQ|RANKX|RELATED|RELATEDTABLE|REMOVEFILTERS|REPLACE|REPT|RIGHT|ROLLUP|ROLLUPADDISSUBTOTAL|ROLLUPGROUP|ROLLUPISSUBTOTAL|ROUND|ROUNDDOWN|ROUNDUP|ROW|SAMEPERIODLASTYEAR|SAMPLE|SEARCH|SECOND|SELECTCOLUMNS|SELECTEDMEASURE|SELECTEDMEASUREFORMATSTRING|SELECTEDMEASURENAME|SELECTEDVALUE|SIGN|SIN|SINH|SQRT|SQRTPI|STARTOFMONTH|STARTOFQUARTER|STARTOFYEAR|STDEV\.P|STDEV\.S|STDEVX\.P|STDEVX\.S|SUBSTITUTE|SUBSTITUTEWITHINDEX|SUM|SUMMARIZE|SUMMARIZECOLUMNS|SUMX|SWITCH|T\.DIST|T\.DIST\.2T|T\.DIST\.RT|T\.INV|T\.INV\.2T|TAN|TANH|TIME|TIMEVALUE|TODAY|TOPN|TOPNPERLEVEL|TOPNSKIP|TOTALMTD|TOTALQTD|TOTALYTD|TREATAS|TRIM|TRUE|TRUNC|UNICHAR|UNICODE|UNION|UPPER|USERELATIONSHIP|USERNAME|USEROBJECTID|USERPRINCIPALNAME|UTCNOW|UTCTODAY|VALUE|VALUES|VAR\.P|VAR\.S|VARX\.P|VARX\.S|WEEKDAY|WEEKNUM|XIRR|XNPV|YEAR|YEARFRAC)(?=\s*\()/i,keyword:/\b(?:DEFINE|MEASURE|EVALUATE|ORDER\s+BY|RETURN|VAR|START\s+AT|ASC|DESC)\b/i,boolean:{pattern:/\b(?:TRUE|FALSE|NULL)\b/i,alias:"constant"},number:/\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/:=|[-+*\/=^]|&&?|\|\||<(?:=>?|<|>)?|>[>=]?|\b(?:IN|NOT)\b/i,punctuation:/[;\[\](){}`,.]/}}e.exports=t,t.displayName="dax",t.aliases=[]},13934(e){"use strict";function t(e){e.languages.dhall={comment:/--.*|\{-(?:[^-{]|-(?!\})|\{(?!-)|\{-(?:[^-{]|-(?!\})|\{(?!-))*-\})*-\}/,string:{pattern:/"(?:[^"\\]|\\.)*"|''(?:[^']|'(?!')|'''|''\$\{)*''(?!'|\$)/,greedy:!0,inside:{interpolation:{pattern:/\$\{[^{}]*\}/,inside:{expression:{pattern:/(^\$\{)[\s\S]+(?=\}$)/,lookbehind:!0,alias:"language-dhall",inside:null},punctuation:/\$\{|\}/}}}},label:{pattern:/`[^`]*`/,greedy:!0},url:{pattern:/\bhttps?:\/\/[\w.:%!$&'*+;=@~-]+(?:\/[\w.:%!$&'*+;=@~-]*)*(?:\?[/?\w.:%!$&'*+;=@~-]*)?/,greedy:!0},env:{pattern:/\benv:(?:(?!\d)\w+|"(?:[^"\\=]|\\.)*")/,greedy:!0,inside:{function:/^env/,operator:/^:/,variable:/[\s\S]+/}},hash:{pattern:/\bsha256:[\da-fA-F]{64}\b/,inside:{function:/sha256/,operator:/:/,number:/[\da-fA-F]{64}/}},keyword:/\b(?:as|assert|else|forall|if|in|let|merge|missing|then|toMap|using|with)\b|\u2200/,builtin:/\b(?:Some|None)\b/,boolean:/\b(?:False|True)\b/,number:/\bNaN\b|-?\bInfinity\b|[+-]?\b(?:0x[\da-fA-F]+|\d+(?:\.\d+)?(?:e[+-]?\d+)?)\b/,operator:/\/\\|\/\/\\\\|&&|\|\||===|[!=]=|\/\/|->|\+\+|::|[+*#@=:?<>|\\\u2227\u2a53\u2261\u2afd\u03bb\u2192]/,punctuation:/\.\.|[{}\[\](),./]/,"class-name":/\b[A-Z]\w*\b/},e.languages.dhall.string.inside.interpolation.inside.expression.inside=e.languages.dhall}e.exports=t,t.displayName="dhall",t.aliases=[]},93336(e){"use strict";function t(e){var t,n;(t=e).languages.diff={coord:[/^(?:\*{3}|-{3}|\+{3}).*$/m,/^@@.*@@$/m,/^\d.*$/m]},Object.keys(n={"deleted-sign":"-","deleted-arrow":"<","inserted-sign":"+","inserted-arrow":">",unchanged:" ",diff:"!"}).forEach(function(e){var r=n[e],i=[];/^\w+$/.test(e)||i.push(/\w+/.exec(e)[0]),"diff"===e&&i.push("bold"),t.languages.diff[e]={pattern:RegExp("^(?:["+r+"].*(?:\r\n?|\n|(?![\\s\\S])))+","m"),alias:i,inside:{line:{pattern:/(.)(?=[\s\S]).*(?:\r\n?|\n)?/,lookbehind:!0},prefix:{pattern:/[\s\S]/,alias:/\w+/.exec(e)[0]}}}}),Object.defineProperty(t.languages.diff,"PREFIXES",{value:n})}e.exports=t,t.displayName="diff",t.aliases=[]},13294(e,t,n){"use strict";var r=n(93205);function i(e){var t,n,i;e.register(r),(t=e).languages.django={comment:/^\{#[\s\S]*?#\}$/,tag:{pattern:/(^\{%[+-]?\s*)\w+/,lookbehind:!0,alias:"keyword"},delimiter:{pattern:/^\{[{%][+-]?|[+-]?[}%]\}$/,alias:"punctuation"},string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},filter:{pattern:/(\|)\w+/,lookbehind:!0,alias:"function"},test:{pattern:/(\bis\s+(?:not\s+)?)(?!not\b)\w+/,lookbehind:!0,alias:"function"},function:/\b[a-z_]\w+(?=\s*\()/i,keyword:/\b(?:and|as|by|else|for|if|import|in|is|loop|not|or|recursive|with|without)\b/,operator:/[-+%=]=?|!=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,number:/\b\d+(?:\.\d+)?\b/,boolean:/[Tt]rue|[Ff]alse|[Nn]one/,variable:/\b\w+?\b/,punctuation:/[{}[\](),.:;]/},n=/\{\{[\s\S]*?\}\}|\{%[\s\S]*?%\}|\{#[\s\S]*?#\}/g,i=t.languages["markup-templating"],t.hooks.add("before-tokenize",function(e){i.buildPlaceholders(e,"django",n)}),t.hooks.add("after-tokenize",function(e){i.tokenizePlaceholders(e,"django")}),t.languages.jinja2=t.languages.django,t.hooks.add("before-tokenize",function(e){i.buildPlaceholders(e,"jinja2",n)}),t.hooks.add("after-tokenize",function(e){i.tokenizePlaceholders(e,"jinja2")})}e.exports=i,i.displayName="django",i.aliases=["jinja2"]},38223(e){"use strict";function t(e){e.languages["dns-zone-file"]={comment:/;.*/,string:{pattern:/"(?:\\.|[^"\\\r\n])*"/,greedy:!0},variable:[{pattern:/(^\$ORIGIN[ \t]+)\S+/m,lookbehind:!0},{pattern:/(^|\s)@(?=\s|$)/,lookbehind:!0}],keyword:/^\$(?:ORIGIN|INCLUDE|TTL)(?=\s|$)/m,class:{pattern:/(^|\s)(?:IN|CH|CS|HS)(?=\s|$)/,lookbehind:!0,alias:"keyword"},type:{pattern:/(^|\s)(?:A|A6|AAAA|AFSDB|APL|ATMA|CAA|CDNSKEY|CDS|CERT|CNAME|DHCID|DLV|DNAME|DNSKEY|DS|EID|GID|GPOS|HINFO|HIP|IPSECKEY|ISDN|KEY|KX|LOC|MAILA|MAILB|MB|MD|MF|MG|MINFO|MR|MX|NAPTR|NB|NBSTAT|NIMLOC|NINFO|NS|NSAP|NSAP-PTR|NSEC|NSEC3|NSEC3PARAM|NULL|NXT|OPENPGPKEY|PTR|PX|RKEY|RP|RRSIG|RT|SIG|SINK|SMIMEA|SOA|SPF|SRV|SSHFP|TA|TKEY|TLSA|TSIG|TXT|UID|UINFO|UNSPEC|URI|WKS|X25)(?=\s|$)/,lookbehind:!0,alias:"keyword"},punctuation:/[()]/},e.languages["dns-zone"]=e.languages["dns-zone-file"]}e.exports=t,t.displayName="dnsZoneFile",t.aliases=[]},97266(e){"use strict";function t(e){!function(e){var t=/\\[\r\n](?:\s|\\[\r\n]|#.*(?!.))*(?![\s#]|\\[\r\n])/.source,n=/(?:[ \t]+(?![ \t])(?:)?|)/.source.replace(//g,function(){return t}),r=/"(?:[^"\\\r\n]|\\(?:\r\n|[\s\S]))*"|'(?:[^'\\\r\n]|\\(?:\r\n|[\s\S]))*'/.source,i=/--[\w-]+=(?:|(?!["'])(?:[^\s\\]|\\.)+)/.source.replace(//g,function(){return r}),a={pattern:RegExp(r),greedy:!0},o={pattern:/(^[ \t]*)#.*/m,lookbehind:!0,greedy:!0};function s(e,t){return e=e.replace(//g,function(){return i}).replace(//g,function(){return n}),RegExp(e,t)}e.languages.docker={instruction:{pattern:/(^[ \t]*)(?:ADD|ARG|CMD|COPY|ENTRYPOINT|ENV|EXPOSE|FROM|HEALTHCHECK|LABEL|MAINTAINER|ONBUILD|RUN|SHELL|STOPSIGNAL|USER|VOLUME|WORKDIR)(?=\s)(?:\\.|[^\r\n\\])*(?:\\$(?:\s|#.*$)*(?![\s#])(?:\\.|[^\r\n\\])*)*/im,lookbehind:!0,greedy:!0,inside:{options:{pattern:s(/(^(?:ONBUILD)?\w+)(?:)*/.source,"i"),lookbehind:!0,greedy:!0,inside:{property:{pattern:/(^|\s)--[\w-]+/,lookbehind:!0},string:[a,{pattern:/(=)(?!["'])(?:[^\s\\]|\\.)+/,lookbehind:!0}],operator:/\\$/m,punctuation:/=/}},keyword:[{pattern:s(/(^(?:ONBUILD)?HEALTHCHECK(?:)*)(?:CMD|NONE)\b/.source,"i"),lookbehind:!0,greedy:!0},{pattern:s(/(^(?:ONBUILD)?FROM(?:)*(?!--)[^ \t\\]+)AS/.source,"i"),lookbehind:!0,greedy:!0},{pattern:s(/(^ONBUILD)\w+/.source,"i"),lookbehind:!0,greedy:!0},{pattern:/^\w+/,greedy:!0}],comment:o,string:a,variable:/\$(?:\w+|\{[^{}"'\\]*\})/,operator:/\\$/m}},comment:o},e.languages.dockerfile=e.languages.docker}(e)}e.exports=t,t.displayName="docker",t.aliases=["dockerfile"]},80636(e){"use strict";function t(e){!function(e){var t="(?:"+[/[a-zA-Z_\x80-\uFFFF][\w\x80-\uFFFF]*/.source,/-?(?:\.\d+|\d+(?:\.\d*)?)/.source,/"[^"\\]*(?:\\[\s\S][^"\\]*)*"/.source,/<(?:[^<>]|(?!)*>/.source].join("|")+")",n={markup:{pattern:/(^<)[\s\S]+(?=>$)/,lookbehind:!0,alias:["language-markup","language-html","language-xml"],inside:e.languages.markup}};function r(e,n){return RegExp(e.replace(//g,function(){return t}),n)}e.languages.dot={comment:{pattern:/\/\/.*|\/\*[\s\S]*?\*\/|^#.*/m,greedy:!0},"graph-name":{pattern:r(/(\b(?:digraph|graph|subgraph)[ \t\r\n]+)/.source,"i"),lookbehind:!0,greedy:!0,alias:"class-name",inside:n},"attr-value":{pattern:r(/(=[ \t\r\n]*)/.source),lookbehind:!0,greedy:!0,inside:n},"attr-name":{pattern:r(/([\[;, \t\r\n])(?=[ \t\r\n]*=)/.source),lookbehind:!0,greedy:!0,inside:n},keyword:/\b(?:digraph|edge|graph|node|strict|subgraph)\b/i,"compass-point":{pattern:/(:[ \t\r\n]*)(?:[ns][ew]?|[ewc_])(?![\w\x80-\uFFFF])/,lookbehind:!0,alias:"builtin"},node:{pattern:r(/(^|[^-.\w\x80-\uFFFF\\])/.source),lookbehind:!0,greedy:!0,inside:n},operator:/[=:]|-[->]/,punctuation:/[\[\]{};,]/},e.languages.gv=e.languages.dot}(e)}e.exports=t,t.displayName="dot",t.aliases=["gv"]},36500(e){"use strict";function t(e){e.languages.ebnf={comment:/\(\*[\s\S]*?\*\)/,string:{pattern:/"[^"\r\n]*"|'[^'\r\n]*'/,greedy:!0},special:{pattern:/\?[^?\r\n]*\?/,greedy:!0,alias:"class-name"},definition:{pattern:/^([\t ]*)[a-z]\w*(?:[ \t]+[a-z]\w*)*(?=\s*=)/im,lookbehind:!0,alias:["rule","keyword"]},rule:/\b[a-z]\w*(?:[ \t]+[a-z]\w*)*\b/i,punctuation:/\([:/]|[:/]\)|[.,;()[\]{}]/,operator:/[-=|*/!]/}}e.exports=t,t.displayName="ebnf",t.aliases=[]},30296(e){"use strict";function t(e){e.languages.editorconfig={comment:/[;#].*/,section:{pattern:/(^[ \t]*)\[.+\]/m,lookbehind:!0,alias:"keyword",inside:{regex:/\\\\[\[\]{},!?.*]/,operator:/[!?]|\.\.|\*{1,2}/,punctuation:/[\[\]{},]/}},property:{pattern:/(^[ \t]*)[^\s=]+(?=[ \t]*=)/m,lookbehind:!0},value:{pattern:/=.*/,alias:"string",inside:{punctuation:/^=/}}}}e.exports=t,t.displayName="editorconfig",t.aliases=[]},50115(e){"use strict";function t(e){e.languages.eiffel={comment:/--.*/,string:[{pattern:/"([^[]*)\[[\s\S]*?\]\1"/,greedy:!0},{pattern:/"([^{]*)\{[\s\S]*?\}\1"/,greedy:!0},{pattern:/"(?:%(?:(?!\n)\s)*\n\s*%|%\S|[^%"\r\n])*"/,greedy:!0}],char:/'(?:%.|[^%'\r\n])+'/,keyword:/\b(?:across|agent|alias|all|and|attached|as|assign|attribute|check|class|convert|create|Current|debug|deferred|detachable|do|else|elseif|end|ensure|expanded|export|external|feature|from|frozen|if|implies|inherit|inspect|invariant|like|local|loop|not|note|obsolete|old|once|or|Precursor|redefine|rename|require|rescue|Result|retry|select|separate|some|then|undefine|until|variant|Void|when|xor)\b/i,boolean:/\b(?:True|False)\b/i,"class-name":{pattern:/\b[A-Z][\dA-Z_]*\b/,alias:"builtin"},number:[/\b0[xcb][\da-f](?:_*[\da-f])*\b/i,/(?:\b\d(?:_*\d)*)?\.(?:(?:\d(?:_*\d)*)?e[+-]?)?\d(?:_*\d)*\b|\b\d(?:_*\d)*\b\.?/i],punctuation:/:=|<<|>>|\(\||\|\)|->|\.(?=\w)|[{}[\];(),:?]/,operator:/\\\\|\|\.\.\||\.\.|\/[~\/=]?|[><]=?|[-+*^=~]/}}e.exports=t,t.displayName="eiffel",t.aliases=[]},20791(e,t,n){"use strict";var r=n(93205);function i(e){var t;e.register(r),(t=e).languages.ejs={delimiter:{pattern:/^<%[-_=]?|[-_]?%>$/,alias:"punctuation"},comment:/^#[\s\S]*/,"language-javascript":{pattern:/[\s\S]+/,inside:t.languages.javascript}},t.hooks.add("before-tokenize",function(e){var n=/<%(?!%)[\s\S]+?%>/g;t.languages["markup-templating"].buildPlaceholders(e,"ejs",n)}),t.hooks.add("after-tokenize",function(e){t.languages["markup-templating"].tokenizePlaceholders(e,"ejs")}),t.languages.eta=t.languages.ejs}e.exports=i,i.displayName="ejs",i.aliases=["eta"]},11974(e){"use strict";function t(e){e.languages.elixir={doc:{pattern:/@(?:doc|moduledoc)\s+(?:("""|''')[\s\S]*?\1|("|')(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2)/,inside:{attribute:/^@\w+/,string:/['"][\s\S]+/}},comment:{pattern:/#.*/m,greedy:!0},regex:{pattern:/~[rR](?:("""|''')(?:\\[\s\S]|(?!\1)[^\\])+\1|([\/|"'])(?:\\.|(?!\2)[^\\\r\n])+\2|\((?:\\.|[^\\)\r\n])+\)|\[(?:\\.|[^\\\]\r\n])+\]|\{(?:\\.|[^\\}\r\n])+\}|<(?:\\.|[^\\>\r\n])+>)[uismxfr]*/,greedy:!0},string:[{pattern:/~[cCsSwW](?:("""|''')(?:\\[\s\S]|(?!\1)[^\\])+\1|([\/|"'])(?:\\.|(?!\2)[^\\\r\n])+\2|\((?:\\.|[^\\)\r\n])+\)|\[(?:\\.|[^\\\]\r\n])+\]|\{(?:\\.|#\{[^}]+\}|#(?!\{)|[^#\\}\r\n])+\}|<(?:\\.|[^\\>\r\n])+>)[csa]?/,greedy:!0,inside:{}},{pattern:/("""|''')[\s\S]*?\1/,greedy:!0,inside:{}},{pattern:/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0,inside:{}}],atom:{pattern:/(^|[^:]):\w+/,lookbehind:!0,alias:"symbol"},module:{pattern:/\b[A-Z]\w*\b/,alias:"class-name"},"attr-name":/\b\w+\??:(?!:)/,argument:{pattern:/(^|[^&])&\d+/,lookbehind:!0,alias:"variable"},attribute:{pattern:/@\w+/,alias:"variable"},function:/\b[_a-zA-Z]\w*[?!]?(?:(?=\s*(?:\.\s*)?\()|(?=\/\d))/,number:/\b(?:0[box][a-f\d_]+|\d[\d_]*)(?:\.[\d_]+)?(?:e[+-]?[\d_]+)?\b/i,keyword:/\b(?:after|alias|and|case|catch|cond|def(?:callback|delegate|exception|impl|macro|module|n|np|p|protocol|struct)?|do|else|end|fn|for|if|import|not|or|quote|raise|require|rescue|try|unless|unquote|use|when)\b/,boolean:/\b(?:true|false|nil)\b/,operator:[/\bin\b|&&?|\|[|>]?|\\\\|::|\.\.\.?|\+\+?|-[->]?|<[-=>]|>=|!==?|\B!|=(?:==?|[>~])?|[*\/^]/,{pattern:/([^<])<(?!<)/,lookbehind:!0},{pattern:/([^>])>(?!>)/,lookbehind:!0}],punctuation:/<<|>>|[.,%\[\]{}()]/},e.languages.elixir.string.forEach(function(t){t.inside={interpolation:{pattern:/#\{[^}]+\}/,inside:{delimiter:{pattern:/^#\{|\}$/,alias:"punctuation"},rest:e.languages.elixir}}}})}e.exports=t,t.displayName="elixir",t.aliases=[]},8645(e){"use strict";function t(e){e.languages.elm={comment:/--.*|\{-[\s\S]*?-\}/,char:{pattern:/'(?:[^\\'\r\n]|\\(?:[abfnrtv\\']|\d+|x[0-9a-fA-F]+))'/,greedy:!0},string:[{pattern:/"""[\s\S]*?"""/,greedy:!0},{pattern:/"(?:[^\\"\r\n]|\\.)*"/,greedy:!0}],"import-statement":{pattern:/(^[\t ]*)import\s+[A-Z]\w*(?:\.[A-Z]\w*)*(?:\s+as\s+(?:[A-Z]\w*)(?:\.[A-Z]\w*)*)?(?:\s+exposing\s+)?/m,lookbehind:!0,inside:{keyword:/\b(?:import|as|exposing)\b/}},keyword:/\b(?:alias|as|case|else|exposing|if|in|infixl|infixr|let|module|of|then|type)\b/,builtin:/\b(?:abs|acos|always|asin|atan|atan2|ceiling|clamp|compare|cos|curry|degrees|e|flip|floor|fromPolar|identity|isInfinite|isNaN|logBase|max|min|negate|never|not|pi|radians|rem|round|sin|sqrt|tan|toFloat|toPolar|toString|truncate|turns|uncurry|xor)\b/,number:/\b(?:\d+(?:\.\d+)?(?:e[+-]?\d+)?|0x[0-9a-f]+)\b/i,operator:/\s\.\s|[+\-/*=.$<>:&|^?%#@~!]{2,}|[+\-/*=$<>:&|^?%#@~!]/,hvariable:/\b(?:[A-Z]\w*\.)*[a-z]\w*\b/,constant:/\b(?:[A-Z]\w*\.)*[A-Z]\w*\b/,punctuation:/[{}[\]|(),.:]/}}e.exports=t,t.displayName="elm",t.aliases=[]},84790(e,t,n){"use strict";var r=n(56939),i=n(93205);function a(e){var t;e.register(r),e.register(i),(t=e).languages.erb=t.languages.extend("ruby",{}),t.languages.insertBefore("erb","comment",{delimiter:{pattern:/^<%=?|%>$/,alias:"punctuation"}}),t.hooks.add("before-tokenize",function(e){var n=/<%=?(?:[^\r\n]|[\r\n](?!=begin)|[\r\n]=begin\s(?:[^\r\n]|[\r\n](?!=end))*[\r\n]=end)+?%>/gm;t.languages["markup-templating"].buildPlaceholders(e,"erb",n)}),t.hooks.add("after-tokenize",function(e){t.languages["markup-templating"].tokenizePlaceholders(e,"erb")})}e.exports=a,a.displayName="erb",a.aliases=[]},4502(e){"use strict";function t(e){e.languages.erlang={comment:/%.+/,string:{pattern:/"(?:\\.|[^\\"\r\n])*"/,greedy:!0},"quoted-function":{pattern:/'(?:\\.|[^\\'\r\n])+'(?=\()/,alias:"function"},"quoted-atom":{pattern:/'(?:\\.|[^\\'\r\n])+'/,alias:"atom"},boolean:/\b(?:true|false)\b/,keyword:/\b(?:fun|when|case|of|end|if|receive|after|try|catch)\b/,number:[/\$\\?./,/\b\d+#[a-z0-9]+/i,/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i],function:/\b[a-z][\w@]*(?=\()/,variable:{pattern:/(^|[^@])(?:\b|\?)[A-Z_][\w@]*/,lookbehind:!0},operator:[/[=\/<>:]=|=[:\/]=|\+\+?|--?|[=*\/!]|\b(?:bnot|div|rem|band|bor|bxor|bsl|bsr|not|and|or|xor|orelse|andalso)\b/,{pattern:/(^|[^<])<(?!<)/,lookbehind:!0},{pattern:/(^|[^>])>(?!>)/,lookbehind:!0}],atom:/\b[a-z][\w@]*/,punctuation:/[()[\]{}:;,.#|]|<<|>>/}}e.exports=t,t.displayName="erlang",t.aliases=[]},66055(e,t,n){"use strict";var r=n(59803),i=n(93205);function a(e){var t;e.register(r),e.register(i),(t=e).languages.etlua={delimiter:{pattern:/^<%[-=]?|-?%>$/,alias:"punctuation"},"language-lua":{pattern:/[\s\S]+/,inside:t.languages.lua}},t.hooks.add("before-tokenize",function(e){var n=/<%[\s\S]+?%>/g;t.languages["markup-templating"].buildPlaceholders(e,"etlua",n)}),t.hooks.add("after-tokenize",function(e){t.languages["markup-templating"].tokenizePlaceholders(e,"etlua")})}e.exports=a,a.displayName="etlua",a.aliases=[]},68876(e){"use strict";function t(e){e.languages["excel-formula"]={comment:{pattern:/(\bN\(\s*)"(?:[^"]|"")*"(?=\s*\))/i,lookbehind:!0,greedy:!0},string:{pattern:/"(?:[^"]|"")*"(?!")/,greedy:!0},reference:{pattern:/(?:'[^']*'|(?:[^\s()[\]{}<>*?"';,$&]*\[[^^\s()[\]{}<>*?"']+\])?\w+)!/,greedy:!0,alias:"string",inside:{operator:/!$/,punctuation:/'/,sheet:{pattern:/[^[\]]+$/,alias:"function"},file:{pattern:/\[[^[\]]+\]$/,inside:{punctuation:/[[\]]/}},path:/[\s\S]+/}},"function-name":{pattern:/\b[A-Z]\w*(?=\()/i,alias:"keyword"},range:{pattern:/\$?\b(?:[A-Z]+\$?\d+:\$?[A-Z]+\$?\d+|[A-Z]+:\$?[A-Z]+|\d+:\$?\d+)\b/i,alias:"property",inside:{operator:/:/,cell:/\$?[A-Z]+\$?\d+/i,column:/\$?[A-Z]+/i,row:/\$?\d+/}},cell:{pattern:/\b[A-Z]+\d+\b|\$[A-Za-z]+\$?\d+\b|\b[A-Za-z]+\$\d+\b/,alias:"property"},number:/(?:\b\d+(?:\.\d+)?|\B\.\d+)(?:e[+-]?\d+)?\b/i,boolean:/\b(?:TRUE|FALSE)\b/i,operator:/[-+*/^%=&,]|<[=>]?|>=?/,punctuation:/[[\]();{}|]/},e.languages.xlsx=e.languages.xls=e.languages["excel-formula"]}e.exports=t,t.displayName="excelFormula",t.aliases=[]},95126(e){"use strict";function t(e){var t,n,r,i,a,o,s,u;t=e,i={comment:[{pattern:/(^|\s)(?:! .*|!$)/,lookbehind:!0,inside:n={function:/\b(?:TODOS?|FIX(?:MES?)?|NOTES?|BUGS?|XX+|HACKS?|WARN(?:ING)?|\?{2,}|!{2,})\b/}},{pattern:/(^|\s)\/\*\s[\s\S]*?\*\/(?=\s|$)/,lookbehind:!0,greedy:!0,inside:n},{pattern:/(^|\s)!\[(={0,6})\[\s[\s\S]*?\]\2\](?=\s|$)/,lookbehind:!0,greedy:!0,inside:n}],number:[{pattern:/(^|\s)[+-]?\d+(?=\s|$)/,lookbehind:!0},{pattern:/(^|\s)[+-]?0(?:b[01]+|o[0-7]+|d\d+|x[\dA-F]+)(?=\s|$)/i,lookbehind:!0},{pattern:/(^|\s)[+-]?\d+\/\d+\.?(?=\s|$)/,lookbehind:!0},{pattern:/(^|\s)\+?\d+\+\d+\/\d+(?=\s|$)/,lookbehind:!0},{pattern:/(^|\s)-\d+-\d+\/\d+(?=\s|$)/,lookbehind:!0},{pattern:/(^|\s)[+-]?(?:\d*\.\d+|\d+\.\d*|\d+)(?:e[+-]?\d+)?(?=\s|$)/i,lookbehind:!0},{pattern:/(^|\s)NAN:\s+[\da-fA-F]+(?=\s|$)/,lookbehind:!0},{pattern:/(^|\s)[+-]?0(?:b1\.[01]*|o1\.[0-7]*|d1\.\d*|x1\.[\dA-F]*)p\d+(?=\s|$)/i,lookbehind:!0}],regexp:{pattern:/(^|\s)R\/\s(?:\\\S|[^\\/])*\/(?:[idmsr]*|[idmsr]+-[idmsr]+)(?=\s|$)/,lookbehind:!0,alias:"number",inside:{variable:/\\\S/,keyword:/[+?*\[\]^$(){}.|]/,operator:{pattern:/(\/)[idmsr]+(?:-[idmsr]+)?/,lookbehind:!0}}},boolean:{pattern:/(^|\s)[tf](?=\s|$)/,lookbehind:!0},"custom-string":{pattern:/(^|\s)[A-Z0-9\-]+"\s(?:\\\S|[^"\\])*"/,lookbehind:!0,greedy:!0,alias:"string",inside:{number:/\\\S|%\w|\//}},"multiline-string":[{pattern:/(^|\s)STRING:\s+\S+(?:\n|\r\n).*(?:\n|\r\n)\s*;(?=\s|$)/,lookbehind:!0,greedy:!0,alias:"string",inside:{number:(r={number:/\\[^\s']|%\w/}).number,"semicolon-or-setlocal":{pattern:/([\r\n][ \t]*);(?=\s|$)/,lookbehind:!0,alias:"function"}}},{pattern:/(^|\s)HEREDOC:\s+\S+(?:\n|\r\n).*(?:\n|\r\n)\s*\S+(?=\s|$)/,lookbehind:!0,greedy:!0,alias:"string",inside:r},{pattern:/(^|\s)\[(={0,6})\[\s[\s\S]*?\]\2\](?=\s|$)/,lookbehind:!0,greedy:!0,alias:"string",inside:r}],"special-using":{pattern:/(^|\s)USING:(?:\s\S+)*(?=\s+;(?:\s|$))/,lookbehind:!0,alias:"function",inside:{string:{pattern:/(\s)[^:\s]+/,lookbehind:!0}}},"stack-effect-delimiter":[{pattern:/(^|\s)(?:call|execute|eval)?\((?=\s)/,lookbehind:!0,alias:"operator"},{pattern:/(\s)--(?=\s)/,lookbehind:!0,alias:"operator"},{pattern:/(\s)\)(?=\s|$)/,lookbehind:!0,alias:"operator"}],combinators:{pattern:null,lookbehind:!0,alias:"keyword"},"kernel-builtin":{pattern:null,lookbehind:!0,alias:"variable"},"sequences-builtin":{pattern:null,lookbehind:!0,alias:"variable"},"math-builtin":{pattern:null,lookbehind:!0,alias:"variable"},"constructor-word":{pattern:/(^|\s)<(?!=+>|-+>)\S+>(?=\s|$)/,lookbehind:!0,alias:"keyword"},"other-builtin-syntax":{pattern:null,lookbehind:!0,alias:"operator"},"conventionally-named-word":{pattern:/(^|\s)(?!")(?:(?:set|change|with|new)-\S+|\$\S+|>[^>\s]+|[^:>\s]+>|[^>\s]+>[^>\s]+|\+[^+\s]+\+|[^?\s]+\?|\?[^?\s]+|[^>\s]+>>|>>[^>\s]+|[^<\s]+<<|\([^()\s]+\)|[^!\s]+!|[^*\s]\S*\*|[^.\s]\S*\.)(?=\s|$)/,lookbehind:!0,alias:"keyword"},"colon-syntax":{pattern:/(^|\s)(?:[A-Z0-9\-]+#?)?:{1,2}\s+(?:;\S+|(?!;)\S+)(?=\s|$)/,lookbehind:!0,greedy:!0,alias:"function"},"semicolon-or-setlocal":{pattern:/(\s)(?:;|:>)(?=\s|$)/,lookbehind:!0,alias:"function"},"curly-brace-literal-delimiter":[{pattern:/(^|\s)[a-z]*\{(?=\s)/i,lookbehind:!0,alias:"operator"},{pattern:/(\s)\}(?=\s|$)/,lookbehind:!0,alias:"operator"}],"quotation-delimiter":[{pattern:/(^|\s)\[(?=\s)/,lookbehind:!0,alias:"operator"},{pattern:/(\s)\](?=\s|$)/,lookbehind:!0,alias:"operator"}],"normal-word":{pattern:/(^|\s)[^"\s]\S*(?=\s|$)/,lookbehind:!0},string:{pattern:/"(?:\\\S|[^"\\])*"/,greedy:!0,inside:r}},a=function(e){return(e+"").replace(/([.?*+\^$\[\]\\(){}|\-])/g,"\\$1")},o=function(e){return RegExp("(^|\\s)(?:"+e.map(a).join("|")+")(?=\\s|$)")},Object.keys(s={"kernel-builtin":["or","2nipd","4drop","tuck","wrapper","nip","wrapper?","callstack>array","die","dupd","callstack","callstack?","3dup","hashcode","pick","4nip","build",">boolean","nipd","clone","5nip","eq?","?","=","swapd","2over","clear","2dup","get-retainstack","not","tuple?","dup","3nipd","call","-rotd","object","drop","assert=","assert?","-rot","execute","boa","get-callstack","curried?","3drop","pickd","overd","over","roll","3nip","swap","and","2nip","rotd","throw","(clone)","hashcode*","spin","reach","4dup","equal?","get-datastack","assert","2drop","","boolean?","identity-hashcode","identity-tuple?","null","composed?","new","5drop","rot","-roll","xor","identity-tuple","boolean"],"other-builtin-syntax":["=======","recursive","flushable",">>","<<<<<<","M\\","B","PRIVATE>","\\","======","final","inline","delimiter","deprecated",">>>>>","<<<<<<<","parse-complex","malformed-complex","read-only",">>>>>>>","call-next-method","<<","foldable","$","$[","${"],"sequences-builtin":["member-eq?","mismatch","append","assert-sequence=","longer","repetition","clone-like","3sequence","assert-sequence?","last-index-from","reversed","index-from","cut*","pad-tail","join-as","remove-eq!","concat-as","but-last","snip","nths","nth","sequence","longest","slice?","","remove-nth","tail-slice","empty?","tail*","member?","virtual-sequence?","set-length","drop-prefix","iota","unclip","bounds-error?","unclip-last-slice","non-negative-integer-expected","non-negative-integer-expected?","midpoint@","longer?","?set-nth","?first","rest-slice","prepend-as","prepend","fourth","sift","subseq-start","new-sequence","?last","like","first4","1sequence","reverse","slice","virtual@","repetition?","set-last","index","4sequence","max-length","set-second","immutable-sequence","first2","first3","supremum","unclip-slice","suffix!","insert-nth","tail","3append","short","suffix","concat","flip","immutable?","reverse!","2sequence","sum","delete-all","indices","snip-slice","","check-slice","sequence?","head","append-as","halves","sequence=","collapse-slice","?second","slice-error?","product","bounds-check?","bounds-check","immutable","virtual-exemplar","harvest","remove","pad-head","last","set-fourth","cartesian-product","remove-eq","shorten","shorter","reversed?","shorter?","shortest","head-slice","pop*","tail-slice*","but-last-slice","iota?","append!","cut-slice","new-resizable","head-slice*","sequence-hashcode","pop","set-nth","?nth","second","join","immutable-sequence?","","3append-as","virtual-sequence","subseq?","remove-nth!","length","last-index","lengthen","assert-sequence","copy","move","third","first","tail?","set-first","prefix","bounds-error","","exchange","surround","cut","min-length","set-third","push-all","head?","subseq-start-from","delete-slice","rest","sum-lengths","head*","infimum","remove!","glue","slice-error","subseq","push","replace-slice","subseq-as","unclip-last"],"math-builtin":["number=","next-power-of-2","?1+","fp-special?","imaginary-part","float>bits","number?","fp-infinity?","bignum?","fp-snan?","denominator","gcd","*","+","fp-bitwise=","-","u>=","/",">=","bitand","power-of-2?","log2-expects-positive","neg?","<","log2",">","integer?","number","bits>double","2/","zero?","bits>float","float?","shift","ratio?","rect>","even?","ratio","fp-sign","bitnot",">fixnum","complex?","/i","integer>fixnum","/f","sgn",">bignum","next-float","u<","u>","mod","recip","rational",">float","2^","integer","fixnum?","neg","fixnum","sq","bignum",">rect","bit?","fp-qnan?","simple-gcd","complex","","real",">fraction","double>bits","bitor","rem","fp-nan-payload","real-part","log2-expects-positive?","prev-float","align","unordered?","float","fp-nan?","abs","bitxor","integer>fixnum-strict","u<=","odd?","<=","/mod",">integer","real?","rational?","numerator"]}).forEach(function(e){i[e].pattern=o(s[e])}),u=["2bi","while","2tri","bi*","4dip","both?","same?","tri@","curry","prepose","3bi","?if","tri*","2keep","3keep","curried","2keepd","when","2bi*","2tri*","4keep","bi@","keepdd","do","unless*","tri-curry","if*","loop","bi-curry*","when*","2bi@","2tri@","with","2with","either?","bi","until","3dip","3curry","tri-curry*","tri-curry@","bi-curry","keepd","compose","2dip","if","3tri","unless","tuple","keep","2curry","tri","most","while*","dip","composed","bi-curry@","find-last-from","trim-head-slice","map-as","each-from","none?","trim-tail","partition","if-empty","accumulate*","reject!","find-from","accumulate-as","collector-for-as","reject","map","map-sum","accumulate!","2each-from","follow","supremum-by","map!","unless-empty","collector","padding","reduce-index","replicate-as","infimum-by","trim-tail-slice","count","find-index","filter","accumulate*!","reject-as","map-integers","map-find","reduce","selector","interleave","2map","filter-as","binary-reduce","map-index-as","find","produce","filter!","replicate","cartesian-map","cartesian-each","find-index-from","map-find-last","3map-as","3map","find-last","selector-as","2map-as","2map-reduce","accumulate","each","each-index","accumulate*-as","when-empty","all?","collector-as","push-either","new-like","collector-for","2selector","push-if","2all?","map-reduce","3each","any?","trim-slice","2reduce","change-nth","produce-as","2each","trim","trim-head","cartesian-find","map-index","if-zero","each-integer","unless-zero","(find-integer)","when-zero","find-last-integer","(all-integers?)","times","(each-integer)","find-integer","all-integers?","unless-negative","if-positive","when-positive","when-negative","unless-positive","if-negative","case","2cleave","cond>quot","case>quot","3cleave","wrong-values","to-fixed-point","alist>quot","cond","cleave","call-effect","recursive-hashcode","spread","deep-spread>quot","2||","0||","n||","0&&","2&&","3||","1||","1&&","n&&","3&&","smart-unless*","keep-inputs","reduce-outputs","smart-when*","cleave>array","smart-with","smart-apply","smart-if","inputs/outputs","output>sequence-n","map-outputs","map-reduce-outputs","dropping","output>array","smart-map-reduce","smart-2map-reduce","output>array-n","nullary","inputsequence"],i.combinators.pattern=o(u),t.languages.factor=i}e.exports=t,t.displayName="factor",t.aliases=[]},74644(e){"use strict";function t(e){var t;(t=e).languages.false={comment:{pattern:/\{[^}]*\}/},string:{pattern:/"[^"]*"/,greedy:!0},"character-code":{pattern:/'(?:[^\r]|\r\n?)/,alias:"number"},"assembler-code":{pattern:/\d+`/,alias:"important"},number:/\d+/,operator:/[-!#$%&'*+,./:;=>?@\\^_`|~ßø]/,punctuation:/\[|\]/,variable:/[a-z]/,"non-standard":{pattern:/[()!=]=?|[-+*/%]|\b(?:in|is)\b/}),delete e.languages["firestore-security-rules"]["class-name"],e.languages.insertBefore("firestore-security-rules","keyword",{path:{pattern:/(^|[\s(),])(?:\/(?:[\w\xA0-\uFFFF]+|\{[\w\xA0-\uFFFF]+(?:=\*\*)?\}|\$\([\w\xA0-\uFFFF.]+\)))+/,lookbehind:!0,greedy:!0,inside:{variable:{pattern:/\{[\w\xA0-\uFFFF]+(?:=\*\*)?\}|\$\([\w\xA0-\uFFFF.]+\)/,inside:{operator:/=/,keyword:/\*\*/,punctuation:/[.$(){}]/}},punctuation:/\//}},method:{pattern:/(\ballow\s+)[a-z]+(?:\s*,\s*[a-z]+)*(?=\s*[:;])/,lookbehind:!0,alias:"builtin",inside:{punctuation:/,/}}})}e.exports=t,t.displayName="firestoreSecurityRules",t.aliases=[]},37225(e){"use strict";function t(e){var t;(t=e).languages.flow=t.languages.extend("javascript",{}),t.languages.insertBefore("flow","keyword",{type:[{pattern:/\b(?:[Nn]umber|[Ss]tring|[Bb]oolean|Function|any|mixed|null|void)\b/,alias:"tag"}]}),t.languages.flow["function-variable"].pattern=/(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=\s*(?:function\b|(?:\([^()]*\)(?:\s*:\s*\w+)?|(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/i,delete t.languages.flow.parameter,t.languages.insertBefore("flow","operator",{"flow-punctuation":{pattern:/\{\||\|\}/,alias:"punctuation"}}),Array.isArray(t.languages.flow.keyword)||(t.languages.flow.keyword=[t.languages.flow.keyword]),t.languages.flow.keyword.unshift({pattern:/(^|[^$]\b)(?:type|opaque|declare|Class)\b(?!\$)/,lookbehind:!0},{pattern:/(^|[^$]\B)\$(?:await|Diff|Exact|Keys|ObjMap|PropertyType|Shape|Record|Supertype|Subtype|Enum)\b(?!\$)/,lookbehind:!0})}e.exports=t,t.displayName="flow",t.aliases=[]},16725(e){"use strict";function t(e){e.languages.fortran={"quoted-number":{pattern:/[BOZ](['"])[A-F0-9]+\1/i,alias:"number"},string:{pattern:/(?:\b\w+_)?(['"])(?:\1\1|&(?:\r\n?|\n)(?:[ \t]*!.*(?:\r\n?|\n)|(?![ \t]*!))|(?!\1).)*(?:\1|&)/,inside:{comment:{pattern:/(&(?:\r\n?|\n)\s*)!.*/,lookbehind:!0}}},comment:{pattern:/!.*/,greedy:!0},boolean:/\.(?:TRUE|FALSE)\.(?:_\w+)?/i,number:/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[ED][+-]?\d+)?(?:_\w+)?/i,keyword:[/\b(?:INTEGER|REAL|DOUBLE ?PRECISION|COMPLEX|CHARACTER|LOGICAL)\b/i,/\b(?:END ?)?(?:BLOCK ?DATA|DO|FILE|FORALL|FUNCTION|IF|INTERFACE|MODULE(?! PROCEDURE)|PROGRAM|SELECT|SUBROUTINE|TYPE|WHERE)\b/i,/\b(?:ALLOCATABLE|ALLOCATE|BACKSPACE|CALL|CASE|CLOSE|COMMON|CONTAINS|CONTINUE|CYCLE|DATA|DEALLOCATE|DIMENSION|DO|END|EQUIVALENCE|EXIT|EXTERNAL|FORMAT|GO ?TO|IMPLICIT(?: NONE)?|INQUIRE|INTENT|INTRINSIC|MODULE PROCEDURE|NAMELIST|NULLIFY|OPEN|OPTIONAL|PARAMETER|POINTER|PRINT|PRIVATE|PUBLIC|READ|RETURN|REWIND|SAVE|SELECT|STOP|TARGET|WHILE|WRITE)\b/i,/\b(?:ASSIGNMENT|DEFAULT|ELEMENTAL|ELSE|ELSEWHERE|ELSEIF|ENTRY|IN|INCLUDE|INOUT|KIND|NULL|ONLY|OPERATOR|OUT|PURE|RECURSIVE|RESULT|SEQUENCE|STAT|THEN|USE)\b/i],operator:[/\*\*|\/\/|=>|[=\/]=|[<>]=?|::|[+\-*=%]|\.[A-Z]+\./i,{pattern:/(^|(?!\().)\/(?!\))/,lookbehind:!0}],punctuation:/\(\/|\/\)|[(),;:&]/}}e.exports=t,t.displayName="fortran",t.aliases=[]},95559(e){"use strict";function t(e){e.languages.fsharp=e.languages.extend("clike",{comment:[{pattern:/(^|[^\\])\(\*(?!\))[\s\S]*?\*\)/,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0}],string:{pattern:/(?:"""[\s\S]*?"""|@"(?:""|[^"])*"|"(?:\\[\s\S]|[^\\"])*")B?|'(?:[^\\']|\\(?:.|\d{3}|x[a-fA-F\d]{2}|u[a-fA-F\d]{4}|U[a-fA-F\d]{8}))'B?/,greedy:!0},"class-name":{pattern:/(\b(?:exception|inherit|interface|new|of|type)\s+|\w\s*:\s*|\s:\??>\s*)[.\w]+\b(?:\s*(?:->|\*)\s*[.\w]+\b)*(?!\s*[:.])/,lookbehind:!0,inside:{operator:/->|\*/,punctuation:/\./}},keyword:/\b(?:let|return|use|yield)(?:!\B|\b)|\b(?:abstract|and|as|assert|base|begin|class|default|delegate|do|done|downcast|downto|elif|else|end|exception|extern|false|finally|for|fun|function|global|if|in|inherit|inline|interface|internal|lazy|match|member|module|mutable|namespace|new|not|null|of|open|or|override|private|public|rec|select|static|struct|then|to|true|try|type|upcast|val|void|when|while|with|asr|land|lor|lsl|lsr|lxor|mod|sig|atomic|break|checked|component|const|constraint|constructor|continue|eager|event|external|fixed|functor|include|method|mixin|object|parallel|process|protected|pure|sealed|tailcall|trait|virtual|volatile)\b/,number:[/\b0x[\da-fA-F]+(?:un|lf|LF)?\b/,/\b0b[01]+(?:y|uy)?\b/,/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[fm]|e[+-]?\d+)?\b/i,/\b\d+(?:[IlLsy]|u[lsy]?|UL)?\b/],operator:/([<>~&^])\1\1|([*.:<>&])\2|<-|->|[!=:]=|?|\??(?:<=|>=|<>|[-+*/%=<>])\??|[!?^&]|~[+~-]|:>|:\?>?/}),e.languages.insertBefore("fsharp","keyword",{preprocessor:{pattern:/(^[\t ]*)#.*/m,lookbehind:!0,alias:"property",inside:{directive:{pattern:/(^#)\b(?:else|endif|if|light|line|nowarn)\b/,lookbehind:!0,alias:"keyword"}}}}),e.languages.insertBefore("fsharp","punctuation",{"computation-expression":{pattern:/\b[_a-z]\w*(?=\s*\{)/i,alias:"keyword"}}),e.languages.insertBefore("fsharp","string",{annotation:{pattern:/\[<.+?>\]/,inside:{punctuation:/^\[<|>\]$/,"class-name":{pattern:/^\w+$|(^|;\s*)[A-Z]\w*(?=\()/,lookbehind:!0},"annotation-content":{pattern:/[\s\S]+/,inside:e.languages.fsharp}}}})}e.exports=t,t.displayName="fsharp",t.aliases=[]},82114(e,t,n){"use strict";var r=n(93205);function i(e){e.register(r),function(e){for(var t=/[^<()"']|\((?:)*\)|<(?!#--)|<#--(?:[^-]|-(?!->))*-->|"(?:[^\\"]|\\.)*"|'(?:[^\\']|\\.)*'/.source,n=0;n<2;n++)t=t.replace(//g,function(){return t});t=t.replace(//g,/[^\s\S]/.source);var r={comment:/<#--[\s\S]*?-->/,string:[{pattern:/\br("|')(?:(?!\1)[^\\]|\\.)*\1/,greedy:!0},{pattern:RegExp(/("|')(?:(?!\1|\$\{)[^\\]|\\.|\$\{(?:(?!\})(?:))*\})*\1/.source.replace(//g,function(){return t})),greedy:!0,inside:{interpolation:{pattern:RegExp(/((?:^|[^\\])(?:\\\\)*)\$\{(?:(?!\})(?:))*\}/.source.replace(//g,function(){return t})),lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:null}}}}],keyword:/\b(?:as)\b/,boolean:/\b(?:true|false)\b/,"builtin-function":{pattern:/((?:^|[^?])\?\s*)\w+/,lookbehind:!0,alias:"function"},function:/\b\w+(?=\s*\()/,number:/\b\d+(?:\.\d+)?\b/,operator:/\.\.[<*!]?|->|--|\+\+|&&|\|\||\?{1,2}|[-+*/%!=<>]=?|\b(?:gt|gte|lt|lte)\b/,punctuation:/[,;.:()[\]{}]/};r.string[1].inside.interpolation.inside.rest=r,e.languages.ftl={"ftl-comment":{pattern:/^<#--[\s\S]*/,alias:"comment"},"ftl-directive":{pattern:/^<[\s\S]+>$/,inside:{directive:{pattern:/(^<\/?)[#@][a-z]\w*/i,lookbehind:!0,alias:"keyword"},punctuation:/^<\/?|\/?>$/,content:{pattern:/\s*\S[\s\S]*/,alias:"ftl",inside:r}}},"ftl-interpolation":{pattern:/^\$\{[\s\S]*\}$/,inside:{punctuation:/^\$\{|\}$/,content:{pattern:/\s*\S[\s\S]*/,alias:"ftl",inside:r}}}},e.hooks.add("before-tokenize",function(n){var r=RegExp(/<#--[\s\S]*?-->|<\/?[#@][a-zA-Z](?:)*?>|\$\{(?:)*?\}/.source.replace(//g,function(){return t}),"gi");e.languages["markup-templating"].buildPlaceholders(n,"ftl",r)}),e.hooks.add("after-tokenize",function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"ftl")})}(e)}e.exports=i,i.displayName="ftl",i.aliases=[]},12208(e){"use strict";function t(e){e.languages.gcode={comment:/;.*|\B\(.*?\)\B/,string:{pattern:/"(?:""|[^"])*"/,greedy:!0},keyword:/\b[GM]\d+(?:\.\d+)?\b/,property:/\b[A-Z]/,checksum:{pattern:/\*\d+/,alias:"punctuation"},punctuation:/:/}}e.exports=t,t.displayName="gcode",t.aliases=[]},62728(e){"use strict";function t(e){e.languages.gdscript={comment:/#.*/,string:{pattern:/@?(?:("|')(?:(?!\1)[^\n\\]|\\[\s\S])*\1(?!"|')|"""(?:[^\\]|\\[\s\S])*?""")/,greedy:!0},"class-name":{pattern:/(^(?:class_name|class|extends)[ \t]+|^export\([ \t]*|\bas[ \t]+|(?:\b(?:const|var)[ \t]|[,(])[ \t]*\w+[ \t]*:[ \t]*|->[ \t]*)[a-zA-Z_]\w*/m,lookbehind:!0},keyword:/\b(?:and|as|assert|break|breakpoint|class|class_name|const|continue|elif|else|enum|export|extends|for|func|if|in|is|master|mastersync|match|not|null|onready|or|pass|preload|puppet|puppetsync|remote|remotesync|return|self|setget|signal|static|tool|var|while|yield)\b/,function:/\b[a-z_]\w*(?=[ \t]*\()/i,variable:/\$\w+/,number:[/\b0b[01_]+\b|\b0x[\da-fA-F_]+\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.[\d_]+)(?:e[+-]?[\d_]+)?\b/,/\b(?:INF|NAN|PI|TAU)\b/],constant:/\b[A-Z][A-Z_\d]*\b/,boolean:/\b(?:false|true)\b/,operator:/->|:=|&&|\|\||<<|>>|[-+*/%&|!<>=]=?|[~^]/,punctuation:/[.:,;()[\]{}]/}}e.exports=t,t.displayName="gdscript",t.aliases=[]},81549(e){"use strict";function t(e){e.languages.gedcom={"line-value":{pattern:/(^[\t ]*\d+ +(?:@\w[\w!"$%&'()*+,\-./:;<=>?[\\\]^`{|}~\x80-\xfe #]*@ +)?\w+ ).+/m,lookbehind:!0,inside:{pointer:{pattern:/^@\w[\w!"$%&'()*+,\-./:;<=>?[\\\]^`{|}~\x80-\xfe #]*@$/,alias:"variable"}}},tag:{pattern:/(^[\t ]*\d+ +(?:@\w[\w!"$%&'()*+,\-./:;<=>?[\\\]^`{|}~\x80-\xfe #]*@ +)?)\w+/m,lookbehind:!0,alias:"string"},level:{pattern:/(^[\t ]*)\d+/m,lookbehind:!0,alias:"number"},pointer:{pattern:/@\w[\w!"$%&'()*+,\-./:;<=>?[\\\]^`{|}~\x80-\xfe #]*@/,alias:"variable"}}}e.exports=t,t.displayName="gedcom",t.aliases=[]},6024(e){"use strict";function t(e){var t,n;n=/(?:\r?\n|\r)[ \t]*\|.+\|(?:(?!\|).)*/.source,(t=e).languages.gherkin={pystring:{pattern:/("""|''')[\s\S]+?\1/,alias:"string"},comment:{pattern:/(^[ \t]*)#.*/m,lookbehind:!0},tag:{pattern:/(^[ \t]*)@\S*/m,lookbehind:!0},feature:{pattern:/((?:^|\r?\n|\r)[ \t]*)(?:Ability|Ahoy matey!|Arwedd|Aspekt|Besigheid Behoefte|Business Need|Caracteristica|Característica|Egenskab|Egenskap|Eiginleiki|Feature|Fīča|Fitur|Fonctionnalité|Fonksyonalite|Funcionalidade|Funcionalitat|Functionalitate|Funcţionalitate|Funcționalitate|Functionaliteit|Fungsi|Funkcia|Funkcija|Funkcionalitāte|Funkcionalnost|Funkcja|Funksie|Funktionalität|Funktionalitéit|Funzionalità|Hwaet|Hwæt|Jellemző|Karakteristik|laH|Lastnost|Mak|Mogucnost|Mogućnost|Moznosti|Možnosti|OH HAI|Omadus|Ominaisuus|Osobina|Özellik|perbogh|poQbogh malja'|Potrzeba biznesowa|Požadavek|Požiadavka|Pretty much|Qap|Qu'meH 'ut|Savybė|Tính năng|Trajto|Vermoë|Vlastnosť|Właściwość|Značilnost|Δυνατότητα|Λειτουργία|Могућност|Мөмкинлек|Особина|Свойство|Үзенчәлеклелек|Функционал|Функционалност|Функция|Функціонал|תכונה|خاصية|خصوصیت|صلاحیت|کاروبار کی ضرورت|وِیژگی|रूप लेख|ਖਾਸੀਅਤ|ਨਕਸ਼ ਨੁਹਾਰ|ਮੁਹਾਂਦਰਾ|గుణము|ಹೆಚ್ಚಳ|ความต้องการทางธุรกิจ|ความสามารถ|โครงหลัก|기능|フィーチャ|功能|機能):(?:[^:\r\n]+(?:\r?\n|\r|$))*/,lookbehind:!0,inside:{important:{pattern:/(:)[^\r\n]+/,lookbehind:!0},keyword:/[^:\r\n]+:/}},scenario:{pattern:/(^[ \t]*)(?:Abstract Scenario|Abstrakt Scenario|Achtergrond|Aer|Ær|Agtergrond|All y'all|Antecedentes|Antecedents|Atburðarás|Atburðarásir|Awww, look mate|B4|Background|Baggrund|Bakgrund|Bakgrunn|Bakgrunnur|Beispiele|Beispiller|Bối cảnh|Cefndir|Cenario|Cenário|Cenario de Fundo|Cenário de Fundo|Cenarios|Cenários|Contesto|Context|Contexte|Contexto|Conto|Contoh|Contone|Dæmi|Dasar|Dead men tell no tales|Delineacao do Cenario|Delineação do Cenário|Dis is what went down|Dữ liệu|Dyagram senaryo|Dyagram Senaryo|Egzanp|Ejemplos|Eksempler|Ekzemploj|Enghreifftiau|Esbozo do escenario|Escenari|Escenario|Esempi|Esquema de l'escenari|Esquema del escenario|Esquema do Cenario|Esquema do Cenário|Examples|EXAMPLZ|Exempel|Exemple|Exemples|Exemplos|First off|Fono|Forgatókönyv|Forgatókönyv vázlat|Fundo|Geçmiş|ghantoH|Grundlage|Hannergrond|Háttér|Heave to|Istorik|Juhtumid|Keadaan|Khung kịch bản|Khung tình huống|Kịch bản|Koncept|Konsep skenario|Kontèks|Kontekst|Kontekstas|Konteksts|Kontext|Konturo de la scenaro|Latar Belakang|lut|lut chovnatlh|lutmey|Lýsing Atburðarásar|Lýsing Dæma|Menggariskan Senario|MISHUN|MISHUN SRSLY|mo'|Náčrt Scenára|Náčrt Scénáře|Náčrt Scenáru|Oris scenarija|Örnekler|Osnova|Osnova Scenára|Osnova scénáře|Osnutek|Ozadje|Paraugs|Pavyzdžiai|Példák|Piemēri|Plan du scénario|Plan du Scénario|Plan senaryo|Plan Senaryo|Plang vum Szenario|Pozadí|Pozadie|Pozadina|Príklady|Příklady|Primer|Primeri|Primjeri|Przykłady|Raamstsenaarium|Reckon it's like|Rerefons|Scenár|Scénář|Scenarie|Scenarij|Scenarijai|Scenarijaus šablonas|Scenariji|Scenārijs|Scenārijs pēc parauga|Scenarijus|Scenario|Scénario|Scenario Amlinellol|Scenario Outline|Scenario Template|Scenariomal|Scenariomall|Scenarios|Scenariu|Scenariusz|Scenaro|Schema dello scenario|Se ðe|Se the|Se þe|Senario|Senaryo|Senaryo deskripsyon|Senaryo Deskripsyon|Senaryo taslağı|Shiver me timbers|Situācija|Situai|Situasie|Situasie Uiteensetting|Skenario|Skenario konsep|Skica|Structura scenariu|Structură scenariu|Struktura scenarija|Stsenaarium|Swa|Swa hwaer swa|Swa hwær swa|Szablon scenariusza|Szenario|Szenariogrundriss|Tapaukset|Tapaus|Tapausaihio|Taust|Tausta|Template Keadaan|Template Senario|Template Situai|The thing of it is|Tình huống|Variantai|Voorbeelde|Voorbeelden|Wharrimean is|Yo-ho-ho|You'll wanna|Założenia|Παραδείγματα|Περιγραφή Σεναρίου|Σενάρια|Σενάριο|Υπόβαθρο|Кереш|Контекст|Концепт|Мисаллар|Мисоллар|Основа|Передумова|Позадина|Предистория|Предыстория|Приклади|Пример|Примери|Примеры|Рамка на сценарий|Скица|Структура сценарија|Структура сценария|Структура сценарію|Сценарий|Сценарий структураси|Сценарийның төзелеше|Сценарији|Сценарио|Сценарій|Тарих|Үрнәкләр|דוגמאות|רקע|תבנית תרחיש|תרחיש|الخلفية|الگوی سناریو|امثلة|پس منظر|زمینه|سناریو|سيناريو|سيناريو مخطط|مثالیں|منظر نامے کا خاکہ|منظرنامہ|نمونه ها|उदाहरण|परिदृश्य|परिदृश्य रूपरेखा|पृष्ठभूमि|ਉਦਾਹਰਨਾਂ|ਪਟਕਥਾ|ਪਟਕਥਾ ਢਾਂਚਾ|ਪਟਕਥਾ ਰੂਪ ਰੇਖਾ|ਪਿਛੋਕੜ|ఉదాహరణలు|కథనం|నేపథ్యం|సన్నివేశం|ಉದಾಹರಣೆಗಳು|ಕಥಾಸಾರಾಂಶ|ವಿವರಣೆ|ಹಿನ್ನೆಲೆ|โครงสร้างของเหตุการณ์|ชุดของตัวอย่าง|ชุดของเหตุการณ์|แนวคิด|สรุปเหตุการณ์|เหตุการณ์|배경|시나리오|시나리오 개요|예|サンプル|シナリオ|シナリオアウトライン|シナリオテンプレ|シナリオテンプレート|テンプレ|例|例子|剧本|剧本大纲|劇本|劇本大綱|场景|场景大纲|場景|場景大綱|背景):[^:\r\n]*/m,lookbehind:!0,inside:{important:{pattern:/(:)[^\r\n]*/,lookbehind:!0},keyword:/[^:\r\n]+:/}},"table-body":{pattern:RegExp("("+n+")(?:"+n+")+"),lookbehind:!0,inside:{outline:{pattern:/<[^>]+>/,alias:"variable"},td:{pattern:/\s*[^\s|][^|]*/,alias:"string"},punctuation:/\|/}},"table-head":{pattern:RegExp(n),inside:{th:{pattern:/\s*[^\s|][^|]*/,alias:"variable"},punctuation:/\|/}},atrule:{pattern:/(^[ \t]+)(?:'ach|'a|'ej|7|a|A také|A taktiež|A tiež|A zároveň|Aber|Ac|Adott|Akkor|Ak|Aleshores|Ale|Ali|Allora|Alors|Als|Ama|Amennyiben|Amikor|Ampak|an|AN|Ananging|And y'all|And|Angenommen|Anrhegedig a|An|Apabila|Atès|Atesa|Atunci|Avast!|Aye|A|awer|Bagi|Banjur|Bet|Biết|Blimey!|Buh|But at the end of the day I reckon|But y'all|But|BUT|Cal|Când|Cando|Cand|Ce|Cuando|Če|Ða ðe|Ða|Dadas|Dada|Dados|Dado|DaH ghu' bejlu'|dann|Dann|Dano|Dan|Dar|Dat fiind|Data|Date fiind|Date|Dati fiind|Dati|Daţi fiind|Dați fiind|Dato|DEN|Den youse gotta|Dengan|De|Diberi|Diyelim ki|Donada|Donat|Donitaĵo|Do|Dun|Duota|Ðurh|Eeldades|Ef|Eğer ki|Entao|Então|Entón|Entonces|En|Epi|E|És|Etant donnée|Etant donné|Et|Étant données|Étant donnée|Étant donné|Etant données|Etant donnés|Étant donnés|Fakat|Gangway!|Gdy|Gegeben seien|Gegeben sei|Gegeven|Gegewe|ghu' noblu'|Gitt|Given y'all|Given|Givet|Givun|Ha|Cho|I CAN HAZ|In|Ir|It's just unbelievable|I|Ja|Jeśli|Jeżeli|Kadar|Kada|Kad|Kai|Kaj|Když|Keď|Kemudian|Ketika|Khi|Kiedy|Ko|Kuid|Kui|Kun|Lan|latlh|Le sa a|Let go and haul|Le|Lè sa a|Lè|Logo|Lorsqu'<|Lorsque|mä|Maar|Mais|Mając|Majd|Maka|Manawa|Mas|Ma|Menawa|Men|Mutta|Nalikaning|Nalika|Nanging|Når|När|Nato|Nhưng|Niin|Njuk|O zaman|Og|Och|Oletetaan|Onda|Ond|Oraz|Pak|Pero|Però|Podano|Pokiaľ|Pokud|Potem|Potom|Privzeto|Pryd|qaSDI'|Quando|Quand|Quan|Så|Sed|Se|Siis|Sipoze ke|Sipoze Ke|Sipoze|Si|Şi|Și|Soit|Stel|Tada|Tad|Takrat|Tak|Tapi|Ter|Tetapi|Tha the|Tha|Then y'all|Then|Thì|Thurh|Toda|Too right|ugeholl|Und|Un|Và|vaj|Vendar|Ve|wann|Wanneer|WEN|Wenn|When y'all|When|Wtedy|Wun|Y'know|Yeah nah|Yna|Youse know like when|Youse know when youse got|Y|Za predpokladu|Za předpokladu|Zadani|Zadano|Zadan|Zadate|Zadato|Zakładając|Zaradi|Zatati|Þa þe|Þa|Þá|Þegar|Þurh|Αλλά|Δεδομένου|Και|Όταν|Τότε|А також|Агар|Але|Али|Аммо|А|Әгәр|Әйтик|Әмма|Бирок|Ва|Вә|Дадено|Дано|Допустим|Если|Задате|Задати|Задато|И|І|К тому же|Када|Кад|Когато|Когда|Коли|Ләкин|Лекин|Нәтиҗәдә|Нехай|Но|Онда|Припустимо, що|Припустимо|Пусть|Также|Та|Тогда|Тоді|То|Унда|Һәм|Якщо|אבל|אזי|אז|בהינתן|וגם|כאשר|آنگاه|اذاً|اگر|اما|اور|با فرض|بالفرض|بفرض|پھر|تب|ثم|جب|عندما|فرض کیا|لكن|لیکن|متى|هنگامی|و|अगर|और|कदा|किन्तु|चूंकि|जब|तथा|तदा|तब|परन्तु|पर|यदि|ਅਤੇ|ਜਦੋਂ|ਜਿਵੇਂ ਕਿ|ਜੇਕਰ|ਤਦ|ਪਰ|అప్పుడు|ఈ పరిస్థితిలో|కాని|చెప్పబడినది|మరియు|ಆದರೆ|ನಂತರ|ನೀಡಿದ|ಮತ್ತು|ಸ್ಥಿತಿಯನ್ನು|กำหนดให้|ดังนั้น|แต่|เมื่อ|และ|그러면<|그리고<|단<|만약<|만일<|먼저<|조건<|하지만<|かつ<|しかし<|ただし<|ならば<|もし<|並且<|但し<|但是<|假如<|假定<|假設<|假设<|前提<|同时<|同時<|并且<|当<|當<|而且<|那么<|那麼<)(?=[ \t])/m,lookbehind:!0},string:{pattern:/"(?:\\.|[^"\\\r\n])*"|'(?:\\.|[^'\\\r\n])*'/,inside:{outline:{pattern:/<[^>]+>/,alias:"variable"}}},outline:{pattern:/<[^>]+>/,alias:"variable"}}}e.exports=t,t.displayName="gherkin",t.aliases=[]},13600(e){"use strict";function t(e){e.languages.git={comment:/^#.*/m,deleted:/^[-–].*/m,inserted:/^\+.*/m,string:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/m,command:{pattern:/^.*\$ git .*$/m,inside:{parameter:/\s--?\w+/m}},coord:/^@@.*@@$/m,"commit-sha1":/^commit \w{40}$/m}}e.exports=t,t.displayName="git",t.aliases=[]},3322(e,t,n){"use strict";var r=n(65806);function i(e){e.register(r),e.languages.glsl=e.languages.extend("c",{keyword:/\b(?:attribute|const|uniform|varying|buffer|shared|coherent|volatile|restrict|readonly|writeonly|atomic_uint|layout|centroid|flat|smooth|noperspective|patch|sample|break|continue|do|for|while|switch|case|default|if|else|subroutine|in|out|inout|float|double|int|void|bool|true|false|invariant|precise|discard|return|d?mat[234](?:x[234])?|[ibdu]?vec[234]|uint|lowp|mediump|highp|precision|[iu]?sampler[123]D|[iu]?samplerCube|sampler[12]DShadow|samplerCubeShadow|[iu]?sampler[12]DArray|sampler[12]DArrayShadow|[iu]?sampler2DRect|sampler2DRectShadow|[iu]?samplerBuffer|[iu]?sampler2DMS(?:Array)?|[iu]?samplerCubeArray|samplerCubeArrayShadow|[iu]?image[123]D|[iu]?image2DRect|[iu]?imageCube|[iu]?imageBuffer|[iu]?image[12]DArray|[iu]?imageCubeArray|[iu]?image2DMS(?:Array)?|struct|common|partition|active|asm|class|union|enum|typedef|template|this|resource|goto|inline|noinline|public|static|extern|external|interface|long|short|half|fixed|unsigned|superp|input|output|hvec[234]|fvec[234]|sampler3DRect|filter|sizeof|cast|namespace|using)\b/})}e.exports=i,i.displayName="glsl",i.aliases=[]},53877(e){"use strict";function t(e){e.languages.gamemakerlanguage=e.languages.gml=e.languages.extend("clike",{keyword:/\b(?:if|else|switch|case|default|break|for|repeat|while|do|until|continue|exit|return|globalvar|var|enum)\b/,number:/(?:\b0x[\da-f]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ulf]{0,4}/i,operator:/[-+%=]=?|!=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]|\b(?:or|and|not|with|at|xor)\b/,constant:/\b(?:self|other|all|noone|global|local|undefined|pointer_(?:invalid|null)|action_(?:stop|restart|continue|reverse)|pi|GM_build_date|GM_version|timezone_(?:local|utc)|gamespeed_(?:fps|microseconds)|ev_(?:create|destroy|step|alarm|keyboard|mouse|collision|other|draw|draw_(?:begin|end|pre|post)|keypress|keyrelease|trigger|(?:left|right|middle|no)_button|(?:left|right|middle)_press|(?:left|right|middle)_release|mouse_(?:enter|leave|wheel_up|wheel_down)|global_(?:left|right|middle)_button|global_(?:left|right|middle)_press|global_(?:left|right|middle)_release|joystick(?:1|2)_(?:left|right|up|down|button1|button2|button3|button4|button5|button6|button7|button8)|outside|boundary|game_start|game_end|room_start|room_end|no_more_lives|animation_end|end_of_path|no_more_health|user\d|step_(?:normal|begin|end)|gui|gui_begin|gui_end)|vk_(?:nokey|anykey|enter|return|shift|control|alt|escape|space|backspace|tab|pause|printscreen|left|right|up|down|home|end|delete|insert|pageup|pagedown|f\d|numpad\d|divide|multiply|subtract|add|decimal|lshift|lcontrol|lalt|rshift|rcontrol|ralt)|mb_(?:any|none|left|right|middle)|c_(?:aqua|black|blue|dkgray|fuchsia|gray|green|lime|ltgray|maroon|navy|olive|purple|red|silver|teal|white|yellow|orange)|fa_(?:left|center|right|top|middle|bottom|readonly|hidden|sysfile|volumeid|directory|archive)|pr_(?:pointlist|linelist|linestrip|trianglelist|trianglestrip|trianglefan)|bm_(?:complex|normal|add|max|subtract|zero|one|src_colour|inv_src_colour|src_color|inv_src_color|src_alpha|inv_src_alpha|dest_alpha|inv_dest_alpha|dest_colour|inv_dest_colour|dest_color|inv_dest_color|src_alpha_sat)|audio_(?:falloff_(?:none|inverse_distance|inverse_distance_clamped|linear_distance|linear_distance_clamped|exponent_distance|exponent_distance_clamped)|old_system|new_system|mono|stereo|3d)|cr_(?:default|none|arrow|cross|beam|size_nesw|size_ns|size_nwse|size_we|uparrow|hourglass|drag|appstart|handpoint|size_all)|asset_(?:object|unknown|sprite|sound|room|path|script|font|timeline|tiles|shader)|ds_type_(?:map|list|stack|queue|grid|priority)|ef_(?:explosion|ring|ellipse|firework|smoke|smokeup|star|spark|flare|cloud|rain|snow)|pt_shape_(?:pixel|disk|square|line|star|circle|ring|sphere|flare|spark|explosion|cloud|smoke|snow)|ps_(?:distr|shape)_(?:linear|gaussian|invgaussian|rectangle|ellipse|diamond|line)|ty_(?:real|string)|dll_(?:cdel|cdecl|stdcall)|matrix_(?:view|projection|world)|os_(?:win32|windows|macosx|ios|android|linux|unknown|winphone|win8native|psvita|ps4|xboxone|ps3|uwp)|browser_(?:not_a_browser|unknown|ie|firefox|chrome|safari|safari_mobile|opera|tizen|windows_store|ie_mobile)|device_ios_(?:unknown|iphone|iphone_retina|ipad|ipad_retina|iphone5|iphone6|iphone6plus)|device_(?:emulator|tablet)|display_(?:landscape|landscape_flipped|portrait|portrait_flipped)|of_challenge_(?:win|lose|tie)|leaderboard_type_(?:number|time_mins_secs)|cmpfunc_(?:never|less|equal|lessequal|greater|notequal|greaterequal|always)|cull_(?:noculling|clockwise|counterclockwise)|lighttype_(?:dir|point)|iap_(?:ev_storeload|ev_product|ev_purchase|ev_consume|ev_restore|storeload_ok|storeload_failed|status_uninitialised|status_unavailable|status_loading|status_available|status_processing|status_restoring|failed|unavailable|available|purchased|canceled|refunded)|fb_login_(?:default|fallback_to_webview|no_fallback_to_webview|forcing_webview|use_system_account|forcing_safari)|phy_joint_(?:anchor_1_x|anchor_1_y|anchor_2_x|anchor_2_y|reaction_force_x|reaction_force_y|reaction_torque|motor_speed|angle|motor_torque|max_motor_torque|translation|speed|motor_force|max_motor_force|length_1|length_2|damping_ratio|frequency|lower_angle_limit|upper_angle_limit|angle_limits|max_length|max_torque|max_force)|phy_debug_render_(?:aabb|collision_pairs|coms|core_shapes|joints|obb|shapes)|phy_particle_flag_(?:water|zombie|wall|spring|elastic|viscous|powder|tensile|colourmixing|colormixing)|phy_particle_group_flag_(?:solid|rigid)|phy_particle_data_flag_(?:typeflags|position|velocity|colour|color|category)|achievement_(?:our_info|friends_info|leaderboard_info|info|filter_(?:all_players|friends_only|favorites_only)|type_challenge|type_score_challenge|pic_loaded|show_(?:ui|profile|leaderboard|achievement|bank|friend_picker|purchase_prompt))|network_(?:socket_(?:tcp|udp|bluetooth)|type_(?:connect|disconnect|data|non_blocking_connect)|config_(?:connect_timeout|use_non_blocking_socket|enable_reliable_udp|disable_reliable_udp))|buffer_(?:fixed|grow|wrap|fast|vbuffer|network|u8|s8|u16|s16|u32|s32|u64|f16|f32|f64|bool|text|string|seek_start|seek_relative|seek_end|generalerror|outofspace|outofbounds|invalidtype)|gp_(?:face\d|shoulderl|shoulderr|shoulderlb|shoulderrb|select|start|stickl|stickr|padu|padd|padl|padr|axislh|axislv|axisrh|axisrv)|ov_(?:friends|community|players|settings|gamegroup|achievements)|lb_sort_(?:none|ascending|descending)|lb_disp_(?:none|numeric|time_sec|time_ms)|ugc_(?:result_success|filetype_(?:community|microtrans)|visibility_(?:public|friends_only|private)|query_RankedBy(?:Vote|PublicationDate|Trend|NumTimesReported|TotalVotesAsc|VotesUp|TextSearch)|query_(?:AcceptedForGameRankedByAcceptanceDate|FavoritedByFriendsRankedByPublicationDate|CreatedByFriendsRankedByPublicationDate|NotYetRated)|sortorder_CreationOrder(?:Desc|Asc)|sortorder_(?:TitleAsc|LastUpdatedDesc|SubscriptionDateDesc|VoteScoreDesc|ForModeration)|list_(?:Published|VotedOn|VotedUp|VotedDown|WillVoteLater|Favorited|Subscribed|UsedOrPlayed|Followed)|match_(?:Items|Items_Mtx|Items_ReadyToUse|Collections|Artwork|Videos|Screenshots|AllGuides|WebGuides|IntegratedGuides|UsableInGame|ControllerBindings))|vertex_usage_(?:position|colour|color|normal|texcoord|textcoord|blendweight|blendindices|psize|tangent|binormal|fog|depth|sample)|vertex_type_(?:float\d|colour|color|ubyte4)|layerelementtype_(?:undefined|background|instance|oldtilemap|sprite|tilemap|particlesystem|tile)|tile_(?:rotate|flip|mirror|index_mask)|input_type|se_(?:chorus|compressor|echo|equalizer|flanger|gargle|none|reverb)|text_type|(?:obj|scr|spr|rm)\w+)\b/,variable:/\b(?:x|y|(?:x|y)(?:previous|start)|(?:h|v)speed|direction|speed|friction|gravity|gravity_direction|path_(?:index|position|positionprevious|speed|scale|orientation|endaction)|object_index|id|solid|persistent|mask_index|instance_(?:count|id)|alarm|timeline_(?:index|position|speed|running|loop)|visible|sprite_(?:index|width|height|xoffset|yoffset)|image_(?:number|index|speed|depth|xscale|yscale|angle|alpha|blend)|bbox_(?:left|right|top|bottom)|layer|phy_(?:rotation|(?:position|linear_velocity|speed|com|collision|col_normal)_(?:x|y)|angular_(?:velocity|damping)|position_(?:x|y)previous|speed|linear_damping|bullet|fixed_rotation|active|mass|inertia|dynamic|kinematic|sleeping|collision_points)|working_directory|webgl_enabled|view_(?:(?:y|x|w|h)view|(?:y|x|w|h)port|(?:v|h)(?:speed|border)|visible|surface_id|object|enabled|current|angle)|undefined|transition_(?:steps|kind|color)|temp_directory|show_(?:score|lives|health)|secure_mode|score|room_(?:width|speed|persistent|last|height|first|caption)|room|pointer_(?:null|invalid)|os_(?:version|type|device|browser)|mouse_(?:y|x|lastbutton|button)|lives|keyboard_(?:string|lastkey|lastchar|key)|iap_data|health|gamemaker_(?:version|registered|pro)|game_(?:save|project|display)_(?:id|name)|fps_real|fps|event_(?:type|object|number|action)|error_(?:occurred|last)|display_aa|delta_time|debug_mode|cursor_sprite|current_(?:year|weekday|time|second|month|minute|hour|day)|caption_(?:score|lives|health)|browser_(?:width|height)|background_(?:yscale|y|xscale|x|width|vtiled|vspeed|visible|showcolour|showcolor|index|htiled|hspeed|height|foreground|colour|color|blend|alpha)|async_load|application_surface|argument(?:_relitive|_count|\d)|argument|global|local|self|other)\b/})}e.exports=t,t.displayName="gml",t.aliases=[]},51519(e){"use strict";function t(e){e.languages.go=e.languages.extend("clike",{string:{pattern:/(["'`])(?:\\[\s\S]|(?!\1)[^\\])*\1/,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|iota|nil|true|false)\b/,number:/(?:\b0x[a-f\d]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[-+]?\d+)?)i?/i,operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:bool|byte|complex(?:64|128)|error|float(?:32|64)|rune|string|u?int(?:8|16|32|64)?|uintptr|append|cap|close|complex|copy|delete|imag|len|make|new|panic|print(?:ln)?|real|recover)\b/}),delete e.languages.go["class-name"]}e.exports=t,t.displayName="go",t.aliases=[]},94055(e){"use strict";function t(e){e.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:e.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:true|false)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/[A-Z]\w*Input(?=!?.*$)/m,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},e.hooks.add("after-tokenize",function(e){if("graphql"===e.language){for(var t=e.tokens.filter(function(e){return"string"!=typeof e&&"comment"!==e.type&&"scalar"!==e.type}),n=0;n0)){var s=d(/^\{$/,/^\}$/);if(-1===s)continue;for(var u=n;u=0&&h(c,"variable-input")}}}}}function l(e){return t[n+e]}function f(e,t){t=t||0;for(var n=0;n]?|\+[+=]?|!=?|<(?:<=?|=>?)?|>(?:>>?=?|=)?|&[&=]?|\|[|=]?|\/=?|\^=?|%=?)/,lookbehind:!0},punctuation:/\.+|[{}[\];(),:$]/}),e.languages.insertBefore("groovy","string",{shebang:{pattern:/#!.+/,alias:"comment"}}),e.languages.insertBefore("groovy","punctuation",{"spock-block":/\b(?:setup|given|when|then|and|cleanup|expect|where):/}),e.languages.insertBefore("groovy","function",{annotation:{pattern:/(^|[^.])@\w+/,lookbehind:!0,alias:"punctuation"}}),e.hooks.add("wrap",function(t){if("groovy"===t.language&&"string"===t.type){var n=t.content.value[0];if("'"!=n){var r=/([^\\])(?:\$(?:\{.*?\}|[\w.]+))/;"$"===n&&(r=/([^\$])(?:\$(?:\{.*?\}|[\w.]+))/),t.content.value=t.content.value.replace(/</g,"<").replace(/&/g,"&"),t.content=e.highlight(t.content.value,{expression:{pattern:r,lookbehind:!0,inside:e.languages.groovy}}),t.classes.push("/"===n?"regex":"gstring")}}})}e.exports=t,t.displayName="groovy",t.aliases=[]},29536(e,t,n){"use strict";var r=n(56939);function i(e){e.register(r),function(e){e.languages.haml={"multiline-comment":{pattern:/((?:^|\r?\n|\r)([\t ]*))(?:\/|-#).*(?:(?:\r?\n|\r)\2[\t ].+)*/,lookbehind:!0,alias:"comment"},"multiline-code":[{pattern:/((?:^|\r?\n|\r)([\t ]*)(?:[~-]|[&!]?=)).*,[\t ]*(?:(?:\r?\n|\r)\2[\t ].*,[\t ]*)*(?:(?:\r?\n|\r)\2[\t ].+)/,lookbehind:!0,inside:e.languages.ruby},{pattern:/((?:^|\r?\n|\r)([\t ]*)(?:[~-]|[&!]?=)).*\|[\t ]*(?:(?:\r?\n|\r)\2[\t ].*\|[\t ]*)*/,lookbehind:!0,inside:e.languages.ruby}],filter:{pattern:/((?:^|\r?\n|\r)([\t ]*)):[\w-]+(?:(?:\r?\n|\r)(?:\2[\t ].+|\s*?(?=\r?\n|\r)))+/,lookbehind:!0,inside:{"filter-name":{pattern:/^:[\w-]+/,alias:"variable"}}},markup:{pattern:/((?:^|\r?\n|\r)[\t ]*)<.+/,lookbehind:!0,inside:e.languages.markup},doctype:{pattern:/((?:^|\r?\n|\r)[\t ]*)!!!(?: .+)?/,lookbehind:!0},tag:{pattern:/((?:^|\r?\n|\r)[\t ]*)[%.#][\w\-#.]*[\w\-](?:\([^)]+\)|\{(?:\{[^}]+\}|[^{}])+\}|\[[^\]]+\])*[\/<>]*/,lookbehind:!0,inside:{attributes:[{pattern:/(^|[^#])\{(?:\{[^}]+\}|[^{}])+\}/,lookbehind:!0,inside:e.languages.ruby},{pattern:/\([^)]+\)/,inside:{"attr-value":{pattern:/(=\s*)(?:"(?:\\.|[^\\"\r\n])*"|[^)\s]+)/,lookbehind:!0},"attr-name":/[\w:-]+(?=\s*!?=|\s*[,)])/,punctuation:/[=(),]/}},{pattern:/\[[^\]]+\]/,inside:e.languages.ruby}],punctuation:/[<>]/}},code:{pattern:/((?:^|\r?\n|\r)[\t ]*(?:[~-]|[&!]?=)).+/,lookbehind:!0,inside:e.languages.ruby},interpolation:{pattern:/#\{[^}]+\}/,inside:{delimiter:{pattern:/^#\{|\}$/,alias:"punctuation"},rest:e.languages.ruby}},punctuation:{pattern:/((?:^|\r?\n|\r)[\t ]*)[~=\-&!]+/,lookbehind:!0}};for(var t="((?:^|\\r?\\n|\\r)([\\t ]*)):{{filter_name}}(?:(?:\\r?\\n|\\r)(?:\\2[\\t ].+|\\s*?(?=\\r?\\n|\\r)))+",n=["css",{filter:"coffee",language:"coffeescript"},"erb","javascript","less","markdown","ruby","scss","textile"],r={},i=0,a=n.length;i@\[\\\]^`{|}~]/,variable:/[^!"#%&'()*+,\/;<=>@\[\\\]^`{|}~\s]+/},t.hooks.add("before-tokenize",function(e){var n=/\{\{\{[\s\S]+?\}\}\}|\{\{[\s\S]+?\}\}/g;t.languages["markup-templating"].buildPlaceholders(e,"handlebars",n)}),t.hooks.add("after-tokenize",function(e){t.languages["markup-templating"].tokenizePlaceholders(e,"handlebars")}),t.languages.hbs=t.languages.handlebars}e.exports=i,i.displayName="handlebars",i.aliases=["hbs"]},58090(e){"use strict";function t(e){e.languages.haskell={comment:{pattern:/(^|[^-!#$%*+=?&@|~.:<>^\\\/])(?:--(?:(?=.)[^-!#$%*+=?&@|~.:<>^\\\/].*|$)|\{-[\s\S]*?-\})/m,lookbehind:!0},char:{pattern:/'(?:[^\\']|\\(?:[abfnrtv\\"'&]|\^[A-Z@[\]^_]|NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|\d+|o[0-7]+|x[0-9a-fA-F]+))'/,alias:"string"},string:{pattern:/"(?:[^\\"]|\\(?:\S|\s+\\))*"/,greedy:!0},keyword:/\b(?:case|class|data|deriving|do|else|if|in|infixl|infixr|instance|let|module|newtype|of|primitive|then|type|where)\b/,"import-statement":{pattern:/(^[\t ]*)import\s+(?:qualified\s+)?(?:[A-Z][\w']*)(?:\.[A-Z][\w']*)*(?:\s+as\s+(?:[A-Z][\w']*)(?:\.[A-Z][\w']*)*)?(?:\s+hiding\b)?/m,lookbehind:!0,inside:{keyword:/\b(?:import|qualified|as|hiding)\b/}},builtin:/\b(?:abs|acos|acosh|all|and|any|appendFile|approxRational|asTypeOf|asin|asinh|atan|atan2|atanh|basicIORun|break|catch|ceiling|chr|compare|concat|concatMap|const|cos|cosh|curry|cycle|decodeFloat|denominator|digitToInt|div|divMod|drop|dropWhile|either|elem|encodeFloat|enumFrom|enumFromThen|enumFromThenTo|enumFromTo|error|even|exp|exponent|fail|filter|flip|floatDigits|floatRadix|floatRange|floor|fmap|foldl|foldl1|foldr|foldr1|fromDouble|fromEnum|fromInt|fromInteger|fromIntegral|fromRational|fst|gcd|getChar|getContents|getLine|group|head|id|inRange|index|init|intToDigit|interact|ioError|isAlpha|isAlphaNum|isAscii|isControl|isDenormalized|isDigit|isHexDigit|isIEEE|isInfinite|isLower|isNaN|isNegativeZero|isOctDigit|isPrint|isSpace|isUpper|iterate|last|lcm|length|lex|lexDigits|lexLitChar|lines|log|logBase|lookup|map|mapM|mapM_|max|maxBound|maximum|maybe|min|minBound|minimum|mod|negate|not|notElem|null|numerator|odd|or|ord|otherwise|pack|pi|pred|primExitWith|print|product|properFraction|putChar|putStr|putStrLn|quot|quotRem|range|rangeSize|read|readDec|readFile|readFloat|readHex|readIO|readInt|readList|readLitChar|readLn|readOct|readParen|readSigned|reads|readsPrec|realToFrac|recip|rem|repeat|replicate|return|reverse|round|scaleFloat|scanl|scanl1|scanr|scanr1|seq|sequence|sequence_|show|showChar|showInt|showList|showLitChar|showParen|showSigned|showString|shows|showsPrec|significand|signum|sin|sinh|snd|sort|span|splitAt|sqrt|subtract|succ|sum|tail|take|takeWhile|tan|tanh|threadToIOResult|toEnum|toInt|toInteger|toLower|toRational|toUpper|truncate|uncurry|undefined|unlines|until|unwords|unzip|unzip3|userError|words|writeFile|zip|zip3|zipWith|zipWith3)\b/,number:/\b(?:\d+(?:\.\d+)?(?:e[+-]?\d+)?|0o[0-7]+|0x[0-9a-f]+)\b/i,operator:/\s\.\s|[-!#$%*+=?&@|~:<>^\\\/]*\.[-!#$%*+=?&@|~.:<>^\\\/]+|[-!#$%*+=?&@|~.:<>^\\\/]+\.[-!#$%*+=?&@|~:<>^\\\/]*|[-!#$%*+=?&@|~:<>^\\\/]+|`(?:[A-Z][\w']*\.)*[_a-z][\w']*`/,hvariable:/\b(?:[A-Z][\w']*\.)*[_a-z][\w']*\b/,constant:/\b(?:[A-Z][\w']*\.)*[A-Z][\w']*\b/,punctuation:/[{}[\];(),.:]/},e.languages.hs=e.languages.haskell}e.exports=t,t.displayName="haskell",t.aliases=["hs"]},95121(e){"use strict";function t(e){e.languages.haxe=e.languages.extend("clike",{string:{pattern:/(["'])(?:(?!\1)[^\\]|\\[\s\S])*\1/,greedy:!0,inside:{interpolation:{pattern:/(^|[^\\])\$(?:\w+|\{[^}]+\})/,lookbehind:!0,inside:{interpolation:{pattern:/^\$\w*/,alias:"variable"}}}}},keyword:/\bthis\b|\b(?:abstract|as|break|case|cast|catch|class|continue|default|do|dynamic|else|enum|extends|extern|from|for|function|if|implements|import|in|inline|interface|macro|new|null|override|public|private|return|static|super|switch|throw|to|try|typedef|using|var|while)(?!\.)\b/,operator:/\.{3}|\+\+?|-[->]?|[=!]=?|&&?|\|\|?|<[<=]?|>[>=]?|[*\/%~^]/}),e.languages.insertBefore("haxe","class-name",{regex:{pattern:/~\/(?:[^\/\\\r\n]|\\.)+\/[igmsu]*/,greedy:!0}}),e.languages.insertBefore("haxe","keyword",{preprocessor:{pattern:/#\w+/,alias:"builtin"},metadata:{pattern:/@:?\w+/,alias:"symbol"},reification:{pattern:/\$(?:\w+|(?=\{))/,alias:"variable"}}),e.languages.haxe.string.inside.interpolation.inside.rest=e.languages.haxe,delete e.languages.haxe["class-name"]}e.exports=t,t.displayName="haxe",t.aliases=[]},59904(e){"use strict";function t(e){e.languages.hcl={comment:/(?:\/\/|#).*|\/\*[\s\S]*?(?:\*\/|$)/,heredoc:{pattern:/<<-?(\w+\b)[\s\S]*?^[ \t]*\1/m,greedy:!0,alias:"string"},keyword:[{pattern:/(?:resource|data)\s+(?:"(?:\\[\s\S]|[^\\"])*")(?=\s+"[\w-]+"\s+\{)/i,inside:{type:{pattern:/(resource|data|\s+)(?:"(?:\\[\s\S]|[^\\"])*")/i,lookbehind:!0,alias:"variable"}}},{pattern:/(?:provider|provisioner|variable|output|module|backend)\s+(?:[\w-]+|"(?:\\[\s\S]|[^\\"])*")\s+(?=\{)/i,inside:{type:{pattern:/(provider|provisioner|variable|output|module|backend)\s+(?:[\w-]+|"(?:\\[\s\S]|[^\\"])*")\s+/i,lookbehind:!0,alias:"variable"}}},/[\w-]+(?=\s+\{)/],property:[/[-\w\.]+(?=\s*=(?!=))/,/"(?:\\[\s\S]|[^\\"])+"(?=\s*[:=])/],string:{pattern:/"(?:[^\\$"]|\\[\s\S]|\$(?:(?=")|\$+(?!\$)|[^"${])|\$\{(?:[^{}"]|"(?:[^\\"]|\\[\s\S])*")*\})*"/,greedy:!0,inside:{interpolation:{pattern:/(^|[^$])\$\{(?:[^{}"]|"(?:[^\\"]|\\[\s\S])*")*\}/,lookbehind:!0,inside:{type:{pattern:/(\b(?:terraform|var|self|count|module|path|data|local)\b\.)[\w\*]+/i,lookbehind:!0,alias:"variable"},keyword:/\b(?:terraform|var|self|count|module|path|data|local)\b/i,function:/\w+(?=\()/,string:{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0},number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?(?:e[+-]?\d+)?/i,punctuation:/[!\$#%&'()*+,.\/;<=>@\[\\\]^`{|}~?:]/}}}},number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?(?:e[+-]?\d+)?/i,boolean:/\b(?:true|false)\b/i,punctuation:/[=\[\]{}]/}}e.exports=t,t.displayName="hcl",t.aliases=[]},9436(e,t,n){"use strict";var r=n(65806);function i(e){e.register(r),e.languages.hlsl=e.languages.extend("c",{"class-name":[e.languages.c["class-name"],/\b(?:AppendStructuredBuffer|BlendState|Buffer|ByteAddressBuffer|CompileShader|ComputeShader|ConsumeStructuredBuffer|DepthStencilState|DepthStencilView|DomainShader|GeometryShader|Hullshader|InputPatch|LineStream|OutputPatch|PixelShader|PointStream|RasterizerState|RenderTargetView|RWBuffer|RWByteAddressBuffer|RWStructuredBuffer|RWTexture(?:1D|1DArray|2D|2DArray|3D)|SamplerComparisonState|SamplerState|StructuredBuffer|Texture(?:1D|1DArray|2D|2DArray|2DMS|2DMSArray|3D|Cube|CubeArray)|TriangleStream|VertexShader)\b/],keyword:[/\b(?:asm|asm_fragment|auto|break|case|catch|cbuffer|centroid|char|class|column_major|compile|compile_fragment|const|const_cast|continue|default|delete|discard|do|dynamic_cast|else|enum|explicit|export|extern|for|friend|fxgroup|goto|groupshared|if|in|inline|inout|interface|line|lineadj|linear|long|matrix|mutable|namespace|new|nointerpolation|noperspective|operator|out|packoffset|pass|pixelfragment|point|precise|private|protected|public|register|reinterpret_cast|return|row_major|sample|sampler|shared|short|signed|sizeof|snorm|stateblock|stateblock_state|static|static_cast|string|struct|switch|tbuffer|technique|technique10|technique11|template|texture|this|throw|triangle|triangleadj|try|typedef|typename|uniform|union|unorm|unsigned|using|vector|vertexfragment|virtual|void|volatile|while)\b/,/\b(?:bool|double|dword|float|half|int|min(?:10float|12int|16(?:float|int|uint))|uint)(?:[1-4](?:x[1-4])?)?\b/],number:/(?:(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[eE][+-]?\d+)?|\b0x[\da-fA-F]+)[fFhHlLuU]?\b/,boolean:/\b(?:false|true)\b/})}e.exports=i,i.displayName="hlsl",i.aliases=[]},76942(e){"use strict";function t(e){e.languages.hpkp={directive:{pattern:/\b(?:(?:includeSubDomains|preload|strict)(?: |;)|pin-sha256="[a-zA-Z\d+=/]+"|(?:max-age|report-uri)=|report-to )/,alias:"keyword"},safe:{pattern:/\b\d{7,}\b/,alias:"selector"},unsafe:{pattern:/\b\d{1,6}\b/,alias:"function"}}}e.exports=t,t.displayName="hpkp",t.aliases=[]},60561(e){"use strict";function t(e){e.languages.hsts={directive:{pattern:/\b(?:max-age=|includeSubDomains|preload)/,alias:"keyword"},safe:{pattern:/\b\d{8,}\b/,alias:"selector"},unsafe:{pattern:/\b\d{1,7}\b/,alias:"function"}}}e.exports=t,t.displayName="hsts",t.aliases=[]},49660(e){"use strict";function t(e){!function(e){e.languages.http={"request-line":{pattern:/^(?:GET|HEAD|POST|PUT|DELETE|CONNECT|OPTIONS|TRACE|PATCH|PRI|SEARCH)\s(?:https?:\/\/|\/)\S*\sHTTP\/[0-9.]+/m,inside:{method:{pattern:/^[A-Z]+\b/,alias:"property"},"request-target":{pattern:/^(\s)(?:https?:\/\/|\/)\S*(?=\s)/,lookbehind:!0,alias:"url",inside:e.languages.uri},"http-version":{pattern:/^(\s)HTTP\/[0-9.]+/,lookbehind:!0,alias:"property"}}},"response-status":{pattern:/^HTTP\/[0-9.]+ \d+ .+/m,inside:{"http-version":{pattern:/^HTTP\/[0-9.]+/,alias:"property"},"status-code":{pattern:/^(\s)\d+(?=\s)/,lookbehind:!0,alias:"number"},"reason-phrase":{pattern:/^(\s).+/,lookbehind:!0,alias:"string"}}},"header-name":{pattern:/^[\w-]+:(?=.)/m,alias:"keyword"}};var t,n=e.languages,r={"application/javascript":n.javascript,"application/json":n.json||n.javascript,"application/xml":n.xml,"text/xml":n.xml,"text/html":n.html,"text/css":n.css},i={"application/json":!0,"application/xml":!0};function a(e){var t="\\w+/(?:[\\w.-]+\\+)+"+e.replace(/^[a-z]+\//,"")+"(?![+\\w.-])";return"(?:"+e+"|"+t+")"}for(var o in r)if(r[o]){t=t||{};var s=i[o]?a(o):o;t[o.replace(/\//g,"-")]={pattern:RegExp("(content-type:\\s*"+s+"(?:(?:\\r\\n?|\\n).+)*)(?:\\r?\\n|\\r){2}[\\s\\S]*","i"),lookbehind:!0,inside:r[o]}}t&&e.languages.insertBefore("http","header-name",t)}(e)}e.exports=t,t.displayName="http",t.aliases=[]},30615(e){"use strict";function t(e){e.languages.ichigojam={comment:/(?:\B'|REM)(?:[^\n\r]*)/i,string:{pattern:/"(?:""|[!#$%&'()*,\/:;<=>?^\w +\-.])*"/i,greedy:!0},number:/\B#[0-9A-F]+|\B`[01]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:E[+-]?\d+)?/i,keyword:/\b(?:BEEP|BPS|CASE|CLEAR|CLK|CLO|CLP|CLS|CLT|CLV|CONT|COPY|ELSE|END|FILE|FILES|FOR|GOSUB|GSB|GOTO|IF|INPUT|KBD|LED|LET|LIST|LOAD|LOCATE|LRUN|NEW|NEXT|OUT|RIGHT|PLAY|POKE|PRINT|PWM|REM|RENUM|RESET|RETURN|RTN|RUN|SAVE|SCROLL|SLEEP|SRND|STEP|STOP|SUB|TEMPO|THEN|TO|UART|VIDEO|WAIT)(?:\$|\b)/i,function:/\b(?:ABS|ANA|ASC|BIN|BTN|DEC|END|FREE|HELP|HEX|I2CR|I2CW|IN|INKEY|LEN|LINE|PEEK|RND|SCR|SOUND|STR|TICK|USR|VER|VPEEK|ZER)(?:\$|\b)/i,label:/(?:\B@\S+)/i,operator:/<[=>]?|>=?|\|\||&&|[+\-*\/=|&^~!]|\b(?:AND|NOT|OR)\b/i,punctuation:/[\[,;:()\]]/}}e.exports=t,t.displayName="ichigojam",t.aliases=[]},93865(e){"use strict";function t(e){e.languages.icon={comment:/#.*/,string:{pattern:/(["'])(?:(?!\1)[^\\\r\n_]|\\.|_(?!\1)(?:\r\n|[\s\S]))*\1/,greedy:!0},number:/\b(?:\d+r[a-z\d]+|\d+(?:\.\d+)?(?:e[+-]?\d+)?)\b|\.\d+\b/i,"builtin-keyword":{pattern:/&(?:allocated|ascii|clock|collections|cset|current|date|dateline|digits|dump|e|error(?:number|text|value)?|errout|fail|features|file|host|input|lcase|letters|level|line|main|null|output|phi|pi|pos|progname|random|regions|source|storage|subject|time|trace|ucase|version)\b/,alias:"variable"},directive:{pattern:/\$\w+/,alias:"builtin"},keyword:/\b(?:break|by|case|create|default|do|else|end|every|fail|global|if|initial|invocable|link|local|next|not|of|procedure|record|repeat|return|static|suspend|then|to|until|while)\b/,function:/\b(?!\d)\w+(?=\s*[({]|\s*!\s*\[)/,operator:/[+-]:(?!=)|(?:[\/?@^%&]|\+\+?|--?|==?=?|~==?=?|\*\*?|\|\|\|?|<(?:->?|>?=?)(?::=)?|:(?:=:?)?|[!.\\|~]/,punctuation:/[\[\](){},;]/}}e.exports=t,t.displayName="icon",t.aliases=[]},51078(e){"use strict";function t(e){!function(e){function t(e,n){return n<=0?/[]/.source:e.replace(//g,function(){return t(e,n-1)})}var n=/'[{}:=,](?:[^']|'')*'(?!')/,r={pattern:/''/,greedy:!0,alias:"operator"},i={pattern:n,greedy:!0,inside:{escape:r}},a=t(/\{(?:[^{}']|'(?![{},'])|''||)*\}/.source.replace(//g,function(){return n.source}),8),o={pattern:RegExp(a),inside:{message:{pattern:/^(\{)[\s\S]+(?=\}$)/,lookbehind:!0,inside:null},"message-delimiter":{pattern:/./,alias:"punctuation"}}};e.languages["icu-message-format"]={argument:{pattern:RegExp(a),greedy:!0,inside:{content:{pattern:/^(\{)[\s\S]+(?=\}$)/,lookbehind:!0,inside:{"argument-name":{pattern:/^(\s*)[^{}:=,\s]+/,lookbehind:!0},"choice-style":{pattern:/^(\s*,\s*choice\s*,\s*)\S(?:[\s\S]*\S)?/,lookbehind:!0,inside:{punctuation:/\|/,range:{pattern:/^(\s*)[+-]?(?:\d+(?:\.\d*)?|\u221e)\s*[<#\u2264]/,lookbehind:!0,inside:{operator:/[<#\u2264]/,number:/\S+/}},rest:null}},"plural-style":{pattern:/^(\s*,\s*(?:plural|selectordinal)\s*,\s*)\S(?:[\s\S]*\S)?/,lookbehind:!0,inside:{offset:/^offset:\s*\d+/,"nested-message":o,selector:{pattern:/=\d+|[^{}:=,\s]+/,inside:{keyword:/^(?:zero|one|two|few|many|other)$/}}}},"select-style":{pattern:/^(\s*,\s*select\s*,\s*)\S(?:[\s\S]*\S)?/,lookbehind:!0,inside:{"nested-message":o,selector:{pattern:/[^{}:=,\s]+/,inside:{keyword:/^other$/}}}},keyword:/\b(?:choice|plural|select|selectordinal)\b/,"arg-type":{pattern:/\b(?:number|date|time|spellout|ordinal|duration)\b/,alias:"keyword"},"arg-skeleton":{pattern:/(,\s*)::[^{}:=,\s]+/,lookbehind:!0},"arg-style":{pattern:/(,\s*)(?:short|medium|long|full|integer|currency|percent)(?=\s*$)/,lookbehind:!0},"arg-style-text":{pattern:RegExp(/(^\s*,\s*(?=\S))/.source+t(/(?:[^{}']|'[^']*'|\{(?:)?\})+/.source,8)+"$"),lookbehind:!0,alias:"string"},punctuation:/,/}},"argument-delimiter":{pattern:/./,alias:"operator"}}},escape:r,string:i},o.inside.message.inside=e.languages["icu-message-format"],e.languages["icu-message-format"].argument.inside.content.inside["choice-style"].inside.rest=e.languages["icu-message-format"]}(e)}e.exports=t,t.displayName="icuMessageFormat",t.aliases=[]},91178(e,t,n){"use strict";var r=n(58090);function i(e){e.register(r),e.languages.idris=e.languages.extend("haskell",{comment:{pattern:/(?:(?:--|\|\|\|).*$|\{-[\s\S]*?-\})/m},keyword:/\b(?:Type|case|class|codata|constructor|corecord|data|do|dsl|else|export|if|implementation|implicit|import|impossible|in|infix|infixl|infixr|instance|interface|let|module|mutual|namespace|of|parameters|partial|postulate|private|proof|public|quoteGoal|record|rewrite|syntax|then|total|using|where|with)\b/,"import-statement":{pattern:/(^\s*)import\s+(?:[A-Z][\w']*)(?:\.[A-Z][\w']*)*/m,lookbehind:!0},builtin:void 0}),e.languages.idr=e.languages.idris}e.exports=i,i.displayName="idris",i.aliases=["idr"]},40011(e){"use strict";function t(e){e.languages.iecst={comment:[{pattern:/(^|[^\\])(?:\/\*[\s\S]*?(?:\*\/|$)|\(\*[\s\S]*?(?:\*\)|$)|\{[\s\S]*?(?:\}|$))/,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":/\b(?:END_)?(?:PROGRAM|CONFIGURATION|INTERFACE|FUNCTION_BLOCK|FUNCTION|ACTION|TRANSITION|TYPE|STRUCT|(?:INITIAL_)?STEP|NAMESPACE|LIBRARY|CHANNEL|FOLDER|RESOURCE|VAR_(?:GLOBAL|INPUT|PUTPUT|IN_OUT|ACCESS|TEMP|EXTERNAL|CONFIG)|VAR|METHOD|PROPERTY)\b/i,keyword:/\b(?:(?:END_)?(?:IF|WHILE|REPEAT|CASE|FOR)|ELSE|FROM|THEN|ELSIF|DO|TO|BY|PRIVATE|PUBLIC|PROTECTED|CONSTANT|RETURN|EXIT|CONTINUE|GOTO|JMP|AT|RETAIN|NON_RETAIN|TASK|WITH|UNTIL|USING|EXTENDS|IMPLEMENTS|GET|SET|__TRY|__CATCH|__FINALLY|__ENDTRY)\b/,variable:/\b(?:AT|BOOL|BYTE|(?:D|L)?WORD|U?(?:S|D|L)?INT|L?REAL|TIME(?:_OF_DAY)?|TOD|DT|DATE(?:_AND_TIME)?|STRING|ARRAY|ANY|POINTER)\b/,symbol:/%[IQM][XBWDL][\d.]*|%[IQ][\d.]*/,number:/\b(?:16#[\da-f]+|2#[01_]+|0x[\da-f]+)\b|\b(?:T|D|DT|TOD)#[\d_shmd:]*|\b[A-Z]*#[\d.,_]*|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,boolean:/\b(?:TRUE|FALSE|NULL)\b/,function:/\w+(?=\()/,operator:/(?:S?R?:?=>?|&&?|\*\*?|<=?|>=?|[-:^/+])|\b(?:OR|AND|MOD|NOT|XOR|LE|GE|EQ|NE|GT|LT)\b/,punctuation:/[();]/,type:{pattern:/#/,alias:"selector"}}}e.exports=t,t.displayName="iecst",t.aliases=[]},12017(e){"use strict";function t(e){var t;(t=e).languages.ignore={comment:/^#.*/m,entry:{pattern:/\S(?:.*(?:(?:\\ )|\S))?/,alias:"string",inside:{operator:/^!|\*\*?|\?/,regex:{pattern:/(^|[^\\])\[[^\[\]]*\]/,lookbehind:!0},punctuation:/\//}}},t.languages.gitignore=t.languages.ignore,t.languages.hgignore=t.languages.ignore,t.languages.npmignore=t.languages.ignore}e.exports=t,t.displayName="ignore",t.aliases=["gitignore","hgignore","npmignore"]},65175(e){"use strict";function t(e){e.languages.inform7={string:{pattern:/"[^"]*"/,inside:{substitution:{pattern:/\[[^\[\]]+\]/,inside:{delimiter:{pattern:/\[|\]/,alias:"punctuation"}}}}},comment:{pattern:/\[[^\[\]]+\]/,greedy:!0},title:{pattern:/^[ \t]*(?:volume|book|part(?! of)|chapter|section|table)\b.+/im,alias:"important"},number:{pattern:/(^|[^-])(?:\b\d+(?:\.\d+)?(?:\^\d+)?(?:(?!\d)\w+)?|\b(?:one|two|three|four|five|six|seven|eight|nine|ten|eleven|twelve))\b(?!-)/i,lookbehind:!0},verb:{pattern:/(^|[^-])\b(?:applying to|are|attacking|answering|asking|be(?:ing)?|burning|buying|called|carries|carry(?! out)|carrying|climbing|closing|conceal(?:s|ing)?|consulting|contain(?:s|ing)?|cutting|drinking|dropping|eating|enclos(?:es?|ing)|entering|examining|exiting|getting|giving|going|ha(?:ve|s|ving)|hold(?:s|ing)?|impl(?:y|ies)|incorporat(?:es?|ing)|inserting|is|jumping|kissing|listening|locking|looking|mean(?:s|ing)?|opening|provid(?:es?|ing)|pulling|pushing|putting|relat(?:es?|ing)|removing|searching|see(?:s|ing)?|setting|showing|singing|sleeping|smelling|squeezing|switching|support(?:s|ing)?|swearing|taking|tasting|telling|thinking|throwing|touching|turning|tying|unlock(?:s|ing)?|var(?:y|ies|ying)|waiting|waking|waving|wear(?:s|ing)?)\b(?!-)/i,lookbehind:!0,alias:"operator"},keyword:{pattern:/(^|[^-])\b(?:after|before|carry out|check|continue the action|definition(?= *:)|do nothing|else|end (?:if|unless|the story)|every turn|if|include|instead(?: of)?|let|move|no|now|otherwise|repeat|report|resume the story|rule for|running through|say(?:ing)?|stop the action|test|try(?:ing)?|understand|unless|use|when|while|yes)\b(?!-)/i,lookbehind:!0},property:{pattern:/(^|[^-])\b(?:adjacent(?! to)|carried|closed|concealed|contained|dark|described|edible|empty|enclosed|enterable|even|female|fixed in place|full|handled|held|improper-named|incorporated|inedible|invisible|lighted|lit|lock(?:able|ed)|male|marked for listing|mentioned|negative|neuter|non-(?:empty|full|recurring)|odd|opaque|open(?:able)?|plural-named|portable|positive|privately-named|proper-named|provided|publically-named|pushable between rooms|recurring|related|rubbing|scenery|seen|singular-named|supported|swinging|switch(?:able|ed(?: on| off)?)|touch(?:able|ed)|transparent|unconcealed|undescribed|unlit|unlocked|unmarked for listing|unmentioned|unopenable|untouchable|unvisited|variable|visible|visited|wearable|worn)\b(?!-)/i,lookbehind:!0,alias:"symbol"},position:{pattern:/(^|[^-])\b(?:above|adjacent to|back side of|below|between|down|east|everywhere|front side|here|in|inside(?: from)?|north(?:east|west)?|nowhere|on(?: top of)?|other side|outside(?: from)?|parts? of|regionally in|south(?:east|west)?|through|up|west|within)\b(?!-)/i,lookbehind:!0,alias:"keyword"},type:{pattern:/(^|[^-])\b(?:actions?|activit(?:y|ies)|actors?|animals?|backdrops?|containers?|devices?|directions?|doors?|holders?|kinds?|lists?|m[ae]n|nobody|nothing|nouns?|numbers?|objects?|people|persons?|player(?:'s holdall)?|regions?|relations?|rooms?|rule(?:book)?s?|scenes?|someone|something|supporters?|tables?|texts?|things?|time|vehicles?|wom[ae]n)\b(?!-)/i,lookbehind:!0,alias:"variable"},punctuation:/[.,:;(){}]/},e.languages.inform7.string.inside.substitution.inside.rest=e.languages.inform7,e.languages.inform7.string.inside.substitution.inside.rest.text={pattern:/\S(?:\s*\S)*/,alias:"comment"}}e.exports=t,t.displayName="inform7",t.aliases=[]},14970(e){"use strict";function t(e){e.languages.ini={comment:{pattern:/(^[ \f\t\v]*)[#;][^\n\r]*/m,lookbehind:!0},header:{pattern:/(^[ \f\t\v]*)\[[^\n\r\]]*\]?/m,lookbehind:!0,inside:{"section-name":{pattern:/(^\[[ \f\t\v]*)[^ \f\t\v\]]+(?:[ \f\t\v]+[^ \f\t\v\]]+)*/,lookbehind:!0,alias:"selector"},punctuation:/\[|\]/}},key:{pattern:/(^[ \f\t\v]*)[^ \f\n\r\t\v=]+(?:[ \f\t\v]+[^ \f\n\r\t\v=]+)*(?=[ \f\t\v]*=)/m,lookbehind:!0,alias:"attr-name"},value:{pattern:/(=[ \f\t\v]*)[^ \f\n\r\t\v]+(?:[ \f\t\v]+[^ \f\n\r\t\v]+)*/,lookbehind:!0,alias:"attr-value",inside:{"inner-value":{pattern:/^("|').+(?=\1$)/,lookbehind:!0}}},punctuation:/=/}}e.exports=t,t.displayName="ini",t.aliases=[]},30764(e){"use strict";function t(e){e.languages.io={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0},{pattern:/(^|[^\\])\/\/.*/,lookbehind:!0},{pattern:/(^|[^\\])#.*/,lookbehind:!0}],"triple-quoted-string":{pattern:/"""(?:\\[\s\S]|(?!""")[^\\])*"""/,greedy:!0,alias:"string"},string:{pattern:/"(?:\\.|[^\\\r\n"])*"/,greedy:!0},keyword:/\b(?:activate|activeCoroCount|asString|block|break|catch|clone|collectGarbage|compileString|continue|do|doFile|doMessage|doString|else|elseif|exit|for|foreach|forward|getSlot|getEnvironmentVariable|hasSlot|if|ifFalse|ifNil|ifNilEval|ifTrue|isActive|isNil|isResumable|list|message|method|parent|pass|pause|perform|performWithArgList|print|println|proto|raise|raiseResumable|removeSlot|resend|resume|schedulerSleepSeconds|self|sender|setSchedulerSleepSeconds|setSlot|shallowCopy|slotNames|super|system|then|thisBlock|thisContext|call|try|type|uniqueId|updateSlot|wait|while|write|yield)\b/,builtin:/\b(?:Array|AudioDevice|AudioMixer|Block|Box|Buffer|CFunction|CGI|Color|Curses|DBM|DNSResolver|DOConnection|DOProxy|DOServer|Date|Directory|Duration|DynLib|Error|Exception|FFT|File|Fnmatch|Font|Future|GL|GLE|GLScissor|GLU|GLUCylinder|GLUQuadric|GLUSphere|GLUT|Host|Image|Importer|LinkList|List|Lobby|Locals|MD5|MP3Decoder|MP3Encoder|Map|Message|Movie|Notification|Number|Object|OpenGL|Point|Protos|Regex|SGML|SGMLElement|SGMLParser|SQLite|Server|Sequence|ShowMessage|SleepyCat|SleepyCatCursor|Socket|SocketManager|Sound|Soup|Store|String|Tree|UDPSender|UPDReceiver|URL|User|Warning|WeakLink|Random|BigNum)\b/,boolean:/\b(?:true|false|nil)\b/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e-?\d+)?/i,operator:/[=!*/%+\-^&|]=|>>?=?|<+*\-%$|,#][.:]?|[?^]\.?|[;\[]:?|[~}"i][.:]|[ACeEIjLor]\.|(?:[_\/\\qsux]|_?\d):)/,alias:"keyword"},number:/\b_?(?:(?!\d:)\d+(?:\.\d+)?(?:(?:[ejpx]|ad|ar)_?\d+(?:\.\d+)?)*(?:b_?[\da-z]+(?:\.[\da-z]+)?)?|_\b(?!\.))/,adverb:{pattern:/[~}]|[\/\\]\.?|[bfM]\.|t[.:]/,alias:"builtin"},operator:/[=a][.:]|_\./,conjunction:{pattern:/&(?:\.:?|:)?|[.:@][.:]?|[!D][.:]|[;dHT]\.|`:?|[\^LS]:|"/,alias:"variable"},punctuation:/[()]/}}e.exports=t,t.displayName="j",t.aliases=[]},15909(e){"use strict";function t(e){var t,n,r,i;t=e,n=/\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|non-sealed|null|open|opens|package|permits|private|protected|provides|public|record|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\b/,i={pattern:RegExp((r=/(^|[^\w.])(?:[a-z]\w*\s*\.\s*)*(?:[A-Z]\w*\s*\.\s*)*/.source)+/[A-Z](?:[\d_A-Z]*[a-z]\w*)?\b/.source),lookbehind:!0,inside:{namespace:{pattern:/^[a-z]\w*(?:\s*\.\s*[a-z]\w*)*(?:\s*\.)?/,inside:{punctuation:/\./}},punctuation:/\./}},t.languages.java=t.languages.extend("clike",{"class-name":[i,{pattern:RegExp(r+/[A-Z]\w*(?=\s+\w+\s*[;,=()])/.source),lookbehind:!0,inside:i.inside}],keyword:n,function:[t.languages.clike.function,{pattern:/(::\s*)[a-z_]\w*/,lookbehind:!0}],number:/\b0b[01][01_]*L?\b|\b0x(?:\.[\da-f_p+-]+|[\da-f_]+(?:\.[\da-f_p+-]+)?)\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfl]?/i,operator:{pattern:/(^|[^.])(?:<<=?|>>>?=?|->|--|\+\+|&&|\|\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,lookbehind:!0}}),t.languages.insertBefore("java","string",{"triple-quoted-string":{pattern:/"""[ \t]*[\r\n](?:(?:"|"")?(?:\\.|[^"\\]))*"""/,greedy:!0,alias:"string"}}),t.languages.insertBefore("java","class-name",{annotation:{pattern:/(^|[^.])@\w+(?:\s*\.\s*\w+)*/,lookbehind:!0,alias:"punctuation"},generics:{pattern:/<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&))*>)*>)*>)*>/,inside:{"class-name":i,keyword:n,punctuation:/[<>(),.:]/,operator:/[?&|]/}},namespace:{pattern:RegExp(/(\b(?:exports|import(?:\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\s+)(?!)[a-z]\w*(?:\.[a-z]\w*)*\.?/.source.replace(//g,function(){return n.source})),lookbehind:!0,inside:{punctuation:/\./}}})}e.exports=t,t.displayName="java",t.aliases=[]},36553(e,t,n){"use strict";var r=n(15909),i=n(9858);function a(e){var t,n,a,o;e.register(r),e.register(i),t=e,n=/(^(?:[\t ]*(?:\*\s*)*))[^*\s].*$/m,a=/#\s*\w+(?:\s*\([^()]*\))?/.source,o=/(?:\b[a-zA-Z]\w+\s*\.\s*)*\b[A-Z]\w*(?:\s*)?|/.source.replace(//g,function(){return a}),t.languages.javadoc=t.languages.extend("javadoclike",{}),t.languages.insertBefore("javadoc","keyword",{reference:{pattern:RegExp(/(@(?:exception|throws|see|link|linkplain|value)\s+(?:\*\s*)?)/.source+"(?:"+o+")"),lookbehind:!0,inside:{function:{pattern:/(#\s*)\w+(?=\s*\()/,lookbehind:!0},field:{pattern:/(#\s*)\w+/,lookbehind:!0},namespace:{pattern:/\b(?:[a-z]\w*\s*\.\s*)+/,inside:{punctuation:/\./}},"class-name":/\b[A-Z]\w*/,keyword:t.languages.java.keyword,punctuation:/[#()[\],.]/}},"class-name":{pattern:/(@param\s+)<[A-Z]\w*>/,lookbehind:!0,inside:{punctuation:/[.<>]/}},"code-section":[{pattern:/(\{@code\s+(?!\s))(?:[^\s{}]|\s+(?![\s}])|\{(?:[^{}]|\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})*\})*\})+(?=\s*\})/,lookbehind:!0,inside:{code:{pattern:n,lookbehind:!0,inside:t.languages.java,alias:"language-java"}}},{pattern:/(<(code|pre|tt)>(?!)\s*)\S(?:\S|\s+\S)*?(?=\s*<\/\2>)/,lookbehind:!0,inside:{line:{pattern:n,lookbehind:!0,inside:{tag:t.languages.markup.tag,entity:t.languages.markup.entity,code:{pattern:/.+/,inside:t.languages.java,alias:"language-java"}}}}}],tag:t.languages.markup.tag,entity:t.languages.markup.entity}),t.languages.javadoclike.addSupport("java",t.languages.javadoc)}e.exports=a,a.displayName="javadoc",a.aliases=[]},9858(e){"use strict";function t(e){!function(e){var t=e.languages.javadoclike={parameter:{pattern:/(^[\t ]*(?:\/{3}|\*|\/\*\*)\s*@(?:param|arg|arguments)\s+)\w+/m,lookbehind:!0},keyword:{pattern:/(^[\t ]*(?:\/{3}|\*|\/\*\*)\s*|\{)@[a-z][a-zA-Z-]+\b/m,lookbehind:!0},punctuation:/[{}]/};function n(t,n){var r="doc-comment",i=e.languages[t];if(i){var a=i[r];if(!a){var o={};o[r]={pattern:/(^|[^\\])\/\*\*[^/][\s\S]*?(?:\*\/|$)/,lookbehind:!0,alias:"comment"},a=(i=e.languages.insertBefore(t,"comment",o))[r]}if(a instanceof RegExp&&(a=i[r]={pattern:a}),Array.isArray(a))for(var s=0,u=a.length;s|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),e.languages.javascript["class-name"][0].pattern=/(\b(?:class|interface|extends|implements|instanceof|new)\s+)[\w.\\]+/,e.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:e.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:e.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:e.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:e.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:e.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),e.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:e.languages.javascript}},string:/[\s\S]+/}}}),e.languages.markup&&(e.languages.markup.tag.addInlined("script","javascript"),e.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),e.languages.js=e.languages.javascript}e.exports=t,t.displayName="javascript",t.aliases=["js"]},11223(e){"use strict";function t(e){e.languages.javastacktrace={summary:{pattern:/^[\t ]*(?:(?:Caused by:|Suppressed:|Exception in thread "[^"]*")[\t ]+)?[\w$.]+(?::.*)?$/m,inside:{keyword:{pattern:/^(\s*)(?:(?:Caused by|Suppressed)(?=:)|Exception in thread)/m,lookbehind:!0},string:{pattern:/^(\s*)"[^"]*"/,lookbehind:!0},exceptions:{pattern:/^(:?\s*)[\w$.]+(?=:|$)/,lookbehind:!0,inside:{"class-name":/[\w$]+(?=$|:)/,namespace:/[a-z]\w*/,punctuation:/[.:]/}},message:{pattern:/(:\s*)\S.*/,lookbehind:!0,alias:"string"},punctuation:/:/}},"stack-frame":{pattern:/^[\t ]*at (?:[\w$./]|@[\w$.+-]*\/)+(?:)?\([^()]*\)/m,inside:{keyword:{pattern:/^(\s*)at(?= )/,lookbehind:!0},source:[{pattern:/(\()\w+\.\w+:\d+(?=\))/,lookbehind:!0,inside:{file:/^\w+\.\w+/,punctuation:/:/,"line-number":{pattern:/\d+/,alias:"number"}}},{pattern:/(\()[^()]*(?=\))/,lookbehind:!0,inside:{keyword:/^(?:Unknown Source|Native Method)$/}}],"class-name":/[\w$]+(?=\.(?:|[\w$]+)\()/,function:/(?:|[\w$]+)(?=\()/,"class-loader":{pattern:/(\s)[a-z]\w*(?:\.[a-z]\w*)*(?=\/[\w@$.]*\/)/,lookbehind:!0,alias:"namespace",inside:{punctuation:/\./}},module:{pattern:/([\s/])[a-z]\w*(?:\.[a-z]\w*)*(?:@[\w$.+-]*)?(?=\/)/,lookbehind:!0,inside:{version:{pattern:/(@)[\s\S]+/,lookbehind:!0,alias:"number"},punctuation:/[@.]/}},namespace:{pattern:/(?:[a-z]\w*\.)+/,inside:{punctuation:/\./}},punctuation:/[()/.]/}},more:{pattern:/^[\t ]*\.{3} \d+ [a-z]+(?: [a-z]+)*/m,inside:{punctuation:/\.{3}/,number:/\d+/,keyword:/\b[a-z]+(?: [a-z]+)*\b/}}}}e.exports=t,t.displayName="javastacktrace",t.aliases=[]},57957(e){"use strict";function t(e){e.languages.jexl={string:/(["'])(?:\\[\s\S]|(?!\1)[^\\])*\1/,transform:{pattern:/(\|\s*)[a-zA-Zа-яА-Я_\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF$][\wа-яА-Я\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF$]*/,alias:"function",lookbehind:!0},function:/[a-zA-Zа-яА-Я_\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF$][\wа-яА-Я\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF$]*\s*(?=\()/,number:/\b\d+(?:\.\d+)?\b|\B\.\d+\b/,operator:/[<>!]=?|-|\+|&&|==|\|\|?|\/\/?|[?:*^%]/,boolean:/\b(?:true|false)\b/,keyword:/\bin\b/,punctuation:/[{}[\](),.]/}}e.exports=t,t.displayName="jexl",t.aliases=[]},75807(e){"use strict";function t(e){e.languages.jolie=e.languages.extend("clike",{string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},keyword:/\b(?:include|define|is_defined|undef|main|init|outputPort|inputPort|Location|Protocol|Interfaces|RequestResponse|OneWay|type|interface|extender|throws|cset|csets|forward|Aggregates|Redirects|embedded|courier|execution|sequential|concurrent|single|scope|install|throw|comp|cH|default|global|linkIn|linkOut|synchronized|this|new|for|if|else|while|in|Jolie|Java|Javascript|nullProcess|spawn|constants|with|provide|until|exit|foreach|instanceof|over|service)\b/,number:/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?l?/i,operator:/-[-=>]?|\+[+=]?|<[<=]?|[>=*!]=?|&&|\|\||[:?\/%^]/,punctuation:/[,.]/,builtin:/\b(?:undefined|string|int|void|long|Byte|bool|double|float|char|any)\b/,symbol:/[|;@]/}),delete e.languages.jolie["class-name"],e.languages.insertBefore("jolie","keyword",{function:{pattern:/((?:\b(?:outputPort|inputPort|in|service|courier)\b|@)\s*)\w+/,lookbehind:!0},aggregates:{pattern:/(\bAggregates\s*:\s*)(?:\w+(?:\s+with\s+\w+)?\s*,\s*)*\w+(?:\s+with\s+\w+)?/,lookbehind:!0,inside:{"with-extension":{pattern:/\bwith\s+\w+/,inside:{keyword:/\bwith\b/}},function:{pattern:/\w+/},punctuation:{pattern:/,/}}},redirects:{pattern:/(\bRedirects\s*:\s*)(?:\w+\s*=>\s*\w+\s*,\s*)*(?:\w+\s*=>\s*\w+)/,lookbehind:!0,inside:{punctuation:{pattern:/,/},function:{pattern:/\w+/},symbol:{pattern:/=>/}}}})}e.exports=t,t.displayName="jolie",t.aliases=[]},77935(e){"use strict";function t(e){var t,n,r,i,a;t=e,n=/\\\((?:[^()]|\([^()]*\))*\)/.source,r=RegExp(/"(?:[^"\r\n\\]|\\[^\r\n(]|__)*"/.source.replace(/__/g,function(){return n})),i={interpolation:{pattern:RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+n),lookbehind:!0,inside:{content:{pattern:/^(\\\()[\s\S]+(?=\)$)/,lookbehind:!0,inside:null},punctuation:/^\\\(|\)$/}}},a=t.languages.jq={comment:/#.*/,property:{pattern:RegExp(r.source+/(?=\s*:(?!:))/.source),greedy:!0,inside:i},string:{pattern:r,greedy:!0,inside:i},function:{pattern:/(\bdef\s+)[a-z_]\w+/i,lookbehind:!0},variable:/\B\$\w+/,"property-literal":{pattern:/\b[a-z_]\w*(?=\s*:(?!:))/i,alias:"property"},keyword:/\b(?:as|break|catch|def|elif|else|end|foreach|if|import|include|label|module|modulemeta|null|reduce|then|try|while)\b/,boolean:/\b(?:true|false)\b/,number:/(?:\b\d+\.|\B\.)?\b\d+(?:[eE][+-]?\d+)?\b/,operator:[{pattern:/\|=?/,alias:"pipe"},/\.\.|[!=<>]?=|\?\/\/|\/\/=?|[-+*/%]=?|[<>?]|\b(?:and|or|not)\b/],"c-style-function":{pattern:/\b[a-z_]\w*(?=\s*\()/i,alias:"function"},punctuation:/::|[()\[\]{},:;]|\.(?=\s*[\[\w$])/,dot:{pattern:/\./,alias:"important"}},i.interpolation.inside.content.inside=a}e.exports=t,t.displayName="jq",t.aliases=[]},46155(e){"use strict";function t(e){!function(e){function t(e,t){return RegExp(e.replace(//g,function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source}),t)}e.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+e.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),e.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+e.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),e.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:(?:Uint|Int)(?:8|16|32)|Uint8Clamped|Float(?:32|64))?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|(?:Weak)?(?:Set|Map)|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),e.languages.insertBefore("javascript","keyword",{imports:{pattern:t(/(\bimport\b\s*)(?:(?:\s*,\s*(?:\*\s*as\s+|\{[^{}]*\}))?|\*\s*as\s+|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:t(/(\bexport\b\s*)(?:\*(?:\s*as\s+)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:e.languages.javascript}}),e.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|for|finally|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),e.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),e.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:t(/(\.\s*)#?/.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|location|navigator|performance|(?:local|session)Storage|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var n=["function","function-variable","method","method-variable","property-access"],r=0;r=h.length)return;var n=e[t];if("string"==typeof n||"string"==typeof n.content){var r=h[o],i="string"==typeof n?n:n.content,a=i.indexOf(r);if(-1!==a){++o;var s=i.substring(0,a),u=c(l[r]),f=i.substring(a+r.length),d=[];if(s&&d.push(s),d.push(u),f){var b=[f];p(b),d.push.apply(d,b)}"string"==typeof n?(e.splice.apply(e,[t,1].concat(d)),t+=d.length-1):n.content=d}}else{var m=n.content;Array.isArray(m)?p(m):p([m])}}}return o=0,p(d),new e.Token(r,d,"language-"+r,t)}e.languages.javascript["template-string"]=[o("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),o("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),o("svg",/\bsvg/.source),o("markdown",/\b(?:md|markdown)/.source),o("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),o("sql",/\bsql/.source),t].filter(Boolean);var f={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function d(e){return"string"==typeof e?e:Array.isArray(e)?e.map(d).join(""):d(e.content)}e.hooks.add("after-tokenize",function(t){t.language in f&&n(t.tokens);function n(t){for(var r=0,i=t.length;r\s+)?)[A-Z]\w*(?:\.[A-Z]\w*)*/.source.replace(//g,function(){return a})),lookbehind:!0,inside:{punctuation:/\./}},{pattern:RegExp("(@[a-z]+\\s+)"+a),lookbehind:!0,inside:{string:n.string,number:n.number,boolean:n.boolean,keyword:t.languages.typescript.keyword,operator:/=>|\.\.\.|[&|?:*]/,punctuation:/[.,;=<>{}()[\]]/}}],example:{pattern:/(@example\s+(?!\s))(?:[^@\s]|\s+(?!\s))+?(?=\s*(?:\*\s*)?(?:@\w|\*\/))/,lookbehind:!0,inside:{code:{pattern:/^([\t ]*(?:\*\s*)?)\S.*$/m,lookbehind:!0,inside:n,alias:"language-javascript"}}}}),t.languages.javadoclike.addSupport("javascript",t.languages.jsdoc)}e.exports=a,a.displayName="jsdoc",a.aliases=[]},45950(e){"use strict";function t(e){e.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:true|false)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},e.languages.webmanifest=e.languages.json}e.exports=t,t.displayName="json",t.aliases=["webmanifest"]},50235(e,t,n){"use strict";var r=n(45950);function i(e){var t,n;e.register(r),n=/("|')(?:\\(?:\r\n?|\n|.)|(?!\1)[^\\\r\n])*\1/,(t=e).languages.json5=t.languages.extend("json",{property:[{pattern:RegExp(n.source+"(?=\\s*:)"),greedy:!0},{pattern:/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/,alias:"unquoted"}],string:{pattern:n,greedy:!0},number:/[+-]?\b(?:NaN|Infinity|0x[a-fA-F\d]+)\b|[+-]?(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[eE][+-]?\d+\b)?/})}e.exports=i,i.displayName="json5",i.aliases=[]},80963(e,t,n){"use strict";var r=n(45950);function i(e){e.register(r),e.languages.jsonp=e.languages.extend("json",{punctuation:/[{}[\]();,.]/}),e.languages.insertBefore("jsonp","punctuation",{function:/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*\()/})}e.exports=i,i.displayName="jsonp",i.aliases=[]},79358(e){"use strict";function t(e){e.languages.jsstacktrace={"error-message":{pattern:/^\S.*/m,alias:"string"},"stack-frame":{pattern:/(^[ \t]+)at[ \t].*/m,lookbehind:!0,inside:{"not-my-code":{pattern:/^at[ \t]+(?!\s)(?:node\.js||.*(?:node_modules|\(\)|\(|$|\(internal\/|\(node\.js)).*/m,alias:"comment"},filename:{pattern:/(\bat\s+(?!\s)|\()(?:[a-zA-Z]:)?[^():]+(?=:)/,lookbehind:!0,alias:"url"},function:{pattern:/(at\s+(?:new\s+)?)(?!\s)[_$a-zA-Z\xA0-\uFFFF<][.$\w\xA0-\uFFFF<>]*/,lookbehind:!0,inside:{punctuation:/\./}},punctuation:/[()]/,keyword:/\b(?:at|new)\b/,alias:{pattern:/\[(?:as\s+)?(?!\s)[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*\]/,alias:"variable"},"line-number":{pattern:/:[0-9]+(?::[0-9]+)?\b/,alias:"number",inside:{punctuation:/:/}}}}}}e.exports=t,t.displayName="jsstacktrace",t.aliases=[]},96412(e){"use strict";function t(e){!function(e){var t=e.util.clone(e.languages.javascript),n=/(?:\s|\/\/.*(?!.)|\/\*(?:[^*]|\*(?!\/))\*\/)/.source,r=/(?:\{(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])*\})/.source,i=/(?:\{*\.{3}(?:[^{}]|)*\})/.source;function a(e,t){return RegExp(e=e.replace(//g,function(){return n}).replace(//g,function(){return r}).replace(//g,function(){return i}),t)}i=a(i).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=a(/<\/?(?:[\w.:-]+(?:+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|))?|))**\/?)?>/.source),e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/i,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/i,e.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.jsx.tag.inside.comment=t.comment,e.languages.insertBefore("inside","attr-name",{spread:{pattern:a(//.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:a(/=/.source),inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:e.languages.jsx},alias:"language-javascript"}},e.languages.jsx.tag);var o=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(o).join(""):""},s=function(t){for(var n=[],r=0;r0&&n[n.length-1].tagName===o(i.content[0].content[1])&&n.pop():"/>"===i.content[i.content.length-1].content||n.push({tagName:o(i.content[0].content[1]),openedBraces:0}):n.length>0&&"punctuation"===i.type&&"{"===i.content?n[n.length-1].openedBraces++:n.length>0&&n[n.length-1].openedBraces>0&&"punctuation"===i.type&&"}"===i.content?n[n.length-1].openedBraces--:a=!0),(a||"string"==typeof i)&&n.length>0&&0===n[n.length-1].openedBraces){var u=o(i);r0&&("string"==typeof t[r-1]||"plain-text"===t[r-1].type)&&(u=o(t[r-1])+u,t.splice(r-1,1),r--),t[r]=new e.Token("plain-text",u,null,u)}i.content&&"string"!=typeof i.content&&s(i.content)}};e.hooks.add("after-tokenize",function(e){("jsx"===e.language||"tsx"===e.language)&&s(e.tokens)})}(e)}e.exports=t,t.displayName="jsx",t.aliases=[]},39259(e){"use strict";function t(e){e.languages.julia={comment:{pattern:/(^|[^\\])(?:#=(?:[^#=]|=(?!#)|#(?!=)|#=(?:[^#=]|=(?!#)|#(?!=))*=#)*=#|#.*)/,lookbehind:!0},regex:{pattern:/r"(?:\\.|[^"\\\r\n])*"[imsx]{0,4}/,greedy:!0},string:{pattern:/"""[\s\S]+?"""|(?:\b\w+)?"(?:\\.|[^"\\\r\n])*"|(^|[^\w'])'(?:\\[^\r\n][^'\r\n]*|[^\\\r\n])'|`(?:[^\\`\r\n]|\\.)*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:abstract|baremodule|begin|bitstype|break|catch|ccall|const|continue|do|else|elseif|end|export|finally|for|function|global|if|immutable|import|importall|in|let|local|macro|module|print|println|quote|return|struct|try|type|typealias|using|while)\b/,boolean:/\b(?:true|false)\b/,number:/(?:\b(?=\d)|\B(?=\.))(?:0[box])?(?:[\da-f]+(?:_[\da-f]+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[efp][+-]?\d+(?:_\d+)*)?j?/i,operator:/&&|\|\||[-+*^%÷⊻&$\\]=?|\/[\/=]?|!=?=?|\|[=>]?|<(?:<=?|[=:|])?|>(?:=|>>?=?)?|==?=?|[~≠≤≥'√∛]/,punctuation:/::?|[{}[\]();,.?]/,constant:/\b(?:(?:NaN|Inf)(?:16|32|64)?|im|pi)\b|[πℯ]/}}e.exports=t,t.displayName="julia",t.aliases=[]},35760(e){"use strict";function t(e){e.languages.keyman={comment:/\bc\s.*/i,function:/\[\s*(?:(?:CTRL|SHIFT|ALT|LCTRL|RCTRL|LALT|RALT|CAPS|NCAPS)\s+)*(?:[TKU]_[\w?]+|".+?"|'.+?')\s*\]/i,string:/("|').*?\1/,bold:[/&(?:baselayout|bitmap|capsononly|capsalwaysoff|shiftfreescaps|copyright|ethnologuecode|hotkey|includecodes|keyboardversion|kmw_embedcss|kmw_embedjs|kmw_helpfile|kmw_helptext|kmw_rtl|language|layer|layoutfile|message|mnemoniclayout|name|oldcharposmatching|platform|targets|version|visualkeyboard|windowslanguages)\b/i,/\b(?:bitmap|bitmaps|caps on only|caps always off|shift frees caps|copyright|hotkey|language|layout|message|name|version)\b/i],keyword:/\b(?:any|baselayout|beep|call|context|deadkey|dk|if|index|layer|notany|nul|outs|platform|return|reset|save|set|store|use)\b/i,atrule:/\b(?:ansi|begin|unicode|group|using keys|match|nomatch)\b/i,number:/\b(?:U\+[\dA-F]+|d\d+|x[\da-f]+|\d+)\b/i,operator:/[+>\\,()]/,tag:/\$(?:keyman|kmfl|weaver|keymanweb|keymanonly):/i}}e.exports=t,t.displayName="keyman",t.aliases=[]},19715(e){"use strict";function t(e){var t,n;(t=e).languages.kotlin=t.languages.extend("clike",{keyword:{pattern:/(^|[^.])\b(?:abstract|actual|annotation|as|break|by|catch|class|companion|const|constructor|continue|crossinline|data|do|dynamic|else|enum|expect|external|final|finally|for|fun|get|if|import|in|infix|init|inline|inner|interface|internal|is|lateinit|noinline|null|object|open|operator|out|override|package|private|protected|public|reified|return|sealed|set|super|suspend|tailrec|this|throw|to|try|typealias|val|var|vararg|when|where|while)\b/,lookbehind:!0},function:[{pattern:/(?:`[^\r\n`]+`|\b\w+)(?=\s*\()/,greedy:!0},{pattern:/(\.)(?:`[^\r\n`]+`|\w+)(?=\s*\{)/,lookbehind:!0,greedy:!0}],number:/\b(?:0[xX][\da-fA-F]+(?:_[\da-fA-F]+)*|0[bB][01]+(?:_[01]+)*|\d+(?:_\d+)*(?:\.\d+(?:_\d+)*)?(?:[eE][+-]?\d+(?:_\d+)*)?[fFL]?)\b/,operator:/\+[+=]?|-[-=>]?|==?=?|!(?:!|==?)?|[\/*%<>]=?|[?:]:?|\.\.|&&|\|\||\b(?:and|inv|or|shl|shr|ushr|xor)\b/}),delete t.languages.kotlin["class-name"],t.languages.insertBefore("kotlin","string",{"raw-string":{pattern:/("""|''')[\s\S]*?\1/,alias:"string"}}),t.languages.insertBefore("kotlin","keyword",{annotation:{pattern:/\B@(?:\w+:)?(?:[A-Z]\w*|\[[^\]]+\])/,alias:"builtin"}}),t.languages.insertBefore("kotlin","function",{label:{pattern:/\b\w+@|@\w+\b/,alias:"symbol"}}),n=[{pattern:/\$\{[^}]+\}/,inside:{delimiter:{pattern:/^\$\{|\}$/,alias:"variable"},rest:t.languages.kotlin}},{pattern:/\$\w+/,alias:"variable"}],t.languages.kotlin.string.inside=t.languages.kotlin["raw-string"].inside={interpolation:n},t.languages.kt=t.languages.kotlin,t.languages.kts=t.languages.kotlin}e.exports=t,t.displayName="kotlin",t.aliases=["kt","kts"]},27614(e){"use strict";function t(e){!function(e){var t=/\s\x00-\x1f\x22-\x2f\x3a-\x3f\x5b-\x5e\x60\x7b-\x7e/.source;function n(e,n){return RegExp(e.replace(//g,t),n)}e.languages.kumir={comment:{pattern:/\|.*/},prolog:{pattern:/#.*/,greedy:!0},string:{pattern:/"[^\n\r"]*"|'[^\n\r']*'/,greedy:!0},boolean:{pattern:n(/(^|[])(?:да|нет)(?=[]|$)/.source),lookbehind:!0},"operator-word":{pattern:n(/(^|[])(?:и|или|не)(?=[]|$)/.source),lookbehind:!0,alias:"keyword"},"system-variable":{pattern:n(/(^|[])знач(?=[]|$)/.source),lookbehind:!0,alias:"keyword"},type:[{pattern:n(/(^|[])(?:вещ|лит|лог|сим|цел)(?:\x20*таб)?(?=[]|$)/.source),lookbehind:!0,alias:"builtin"},{pattern:n(/(^|[])(?:компл|сканкод|файл|цвет)(?=[]|$)/.source),lookbehind:!0,alias:"important"}],keyword:{pattern:n(/(^|[])(?:алг|арг(?:\x20*рез)?|ввод|ВКЛЮЧИТЬ|вс[её]|выбор|вывод|выход|дано|для|до|дс|если|иначе|исп|использовать|кон(?:(?:\x20+|_)исп)?|кц(?:(?:\x20+|_)при)?|надо|нач|нс|нц|от|пауза|пока|при|раза?|рез|стоп|таб|то|утв|шаг)(?=[]|$)/.source),lookbehind:!0},name:{pattern:n(/(^|[])[^\d][^]*(?:\x20+[^]+)*(?=[]|$)/.source),lookbehind:!0},number:{pattern:n(/(^|[])(?:\B\$[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)(?=[]|$)/.source,"i"),lookbehind:!0},punctuation:/:=|[(),:;\[\]]/,"operator-char":{pattern:/\*\*?|<[=>]?|>=?|[-+/=]/,alias:"operator"}},e.languages.kum=e.languages.kumir}(e)}e.exports=t,t.displayName="kumir",t.aliases=["kum"]},42876(e){"use strict";function t(e){var t,n,r;t=e,r={"equation-command":{pattern:n=/\\(?:[^a-z()[\]]|[a-z*]+)/i,alias:"regex"}},t.languages.latex={comment:/%.*/m,cdata:{pattern:/(\\begin\{((?:verbatim|lstlisting)\*?)\})[\s\S]*?(?=\\end\{\2\})/,lookbehind:!0},equation:[{pattern:/\$\$(?:\\[\s\S]|[^\\$])+\$\$|\$(?:\\[\s\S]|[^\\$])+\$|\\\([\s\S]*?\\\)|\\\[[\s\S]*?\\\]/,inside:r,alias:"string"},{pattern:/(\\begin\{((?:equation|math|eqnarray|align|multline|gather)\*?)\})[\s\S]*?(?=\\end\{\2\})/,lookbehind:!0,inside:r,alias:"string"}],keyword:{pattern:/(\\(?:begin|end|ref|cite|label|usepackage|documentclass)(?:\[[^\]]+\])?\{)[^}]+(?=\})/,lookbehind:!0},url:{pattern:/(\\url\{)[^}]+(?=\})/,lookbehind:!0},headline:{pattern:/(\\(?:part|chapter|section|subsection|frametitle|subsubsection|paragraph|subparagraph|subsubparagraph|subsubsubparagraph)\*?(?:\[[^\]]+\])?\{)[^}]+(?=\})/,lookbehind:!0,alias:"class-name"},function:{pattern:n,alias:"selector"},punctuation:/[[\]{}&]/},t.languages.tex=t.languages.latex,t.languages.context=t.languages.latex}e.exports=t,t.displayName="latex",t.aliases=["tex","context"]},2980(e,t,n){"use strict";var r=n(93205),i=n(88262);function a(e){var t,n;e.register(r),e.register(i),(t=e).languages.latte={comment:/^\{\*[\s\S]*/,ld:{pattern:/^\{(?:[=_]|\/?(?!\d|\w+\()\w+)?/,inside:{punctuation:/^\{\/?/,tag:{pattern:/.+/,alias:"important"}}},rd:{pattern:/\}$/,inside:{punctuation:/.+/}},php:{pattern:/\S(?:[\s\S]*\S)?/,alias:"language-php",inside:t.languages.php}},n=t.languages.extend("markup",{}),t.languages.insertBefore("inside","attr-value",{"n-attr":{pattern:/n:[\w-]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+))?/,inside:{"attr-name":{pattern:/^[^\s=]+/,alias:"important"},"attr-value":{pattern:/=[\s\S]+/,inside:{punctuation:[/^=/,{pattern:/^(\s*)["']|["']$/,lookbehind:!0}],php:{pattern:/\S(?:[\s\S]*\S)?/,inside:t.languages.php}}}}}},n.tag),t.hooks.add("before-tokenize",function(e){if("latte"===e.language){var r=/\{\*[\s\S]*?\*\}|\{[^'"\s{}*](?:[^"'/{}]|\/(?![*/])|("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|\/\*(?:[^*]|\*(?!\/))*\*\/)*?\}/g;t.languages["markup-templating"].buildPlaceholders(e,"latte",r),e.grammar=n}}),t.hooks.add("after-tokenize",function(e){t.languages["markup-templating"].tokenizePlaceholders(e,"latte")})}e.exports=a,a.displayName="latte",a.aliases=[]},41701(e){"use strict";function t(e){e.languages.less=e.languages.extend("css",{comment:[/\/\*[\s\S]*?\*\//,{pattern:/(^|[^\\])\/\/.*/,lookbehind:!0}],atrule:{pattern:/@[\w-](?:\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{punctuation:/[:()]/}},selector:{pattern:/(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};@\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{variable:/@+[\w-]+/}},property:/(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/i,operator:/[+\-*\/]/}),e.languages.insertBefore("less","property",{variable:[{pattern:/@[\w-]+\s*:/,inside:{punctuation:/:/}},/@@?[\w-]+/],"mixin-usage":{pattern:/([{;]\s*)[.#](?!\d)[\w-].*?(?=[(;])/,lookbehind:!0,alias:"function"}})}e.exports=t,t.displayName="less",t.aliases=[]},42491(e,t,n){"use strict";var r=n(9997);function i(e){e.register(r),function(e){for(var t=/\((?:[^();"#\\]|\\[\s\S]|;.*(?!.)|"(?:[^"\\]|\\.)*"|#(?:\{(?:(?!#\})[\s\S])*#\}|[^{])|)*\)/.source,n=5,r=0;r/g,function(){return t});t=t.replace(//g,/[^\s\S]/.source);var i=e.languages.lilypond={comment:/%(?:(?!\{).*|\{[\s\S]*?%\})/,"embedded-scheme":{pattern:RegExp(/(^|[=\s])#(?:"(?:[^"\\]|\\.)*"|[^\s()"]*(?:[^\s()]|))/.source.replace(//g,function(){return t}),"m"),lookbehind:!0,greedy:!0,inside:{scheme:{pattern:/^(#)[\s\S]+$/,lookbehind:!0,alias:"language-scheme",inside:{"embedded-lilypond":{pattern:/#\{[\s\S]*?#\}/,greedy:!0,inside:{punctuation:/^#\{|#\}$/,lilypond:{pattern:/[\s\S]+/,alias:"language-lilypond",inside:null}}},rest:e.languages.scheme}},punctuation:/#/}},string:{pattern:/"(?:[^"\\]|\\.)*"/,greedy:!0},"class-name":{pattern:/(\\new\s+)[\w-]+/,lookbehind:!0},keyword:{pattern:/\\[a-z][-\w]*/i,inside:{punctuation:/^\\/}},operator:/[=|]|<<|>>/,punctuation:{pattern:/(^|[a-z\d])(?:'+|,+|[_^]?-[_^]?(?:[-+^!>._]|(?=\d))|[_^]\.?|[.!])|[{}()[\]<>^~]|\\[()[\]<>\\!]|--|__/,lookbehind:!0},number:/\b\d+(?:\/\d+)?\b/};i["embedded-scheme"].inside.scheme.inside["embedded-lilypond"].inside.lilypond.inside=i,e.languages.ly=i}(e)}e.exports=i,i.displayName="lilypond",i.aliases=[]},34927(e,t,n){"use strict";var r=n(93205);function i(e){e.register(r),e.languages.liquid={comment:{pattern:/(^\{%\s*comment\s*%\})[\s\S]+(?=\{%\s*endcomment\s*%\}$)/,lookbehind:!0},delimiter:{pattern:/^\{(?:\{\{|[%\{])-?|-?(?:\}\}|[%\}])\}$/,alias:"punctuation"},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},keyword:/\b(?:as|assign|break|continue|cycle|decrement|echo|else|elsif|(?:end)?(?:capture|case|comment|for|form|if|paginate|style|raw|tablerow|unless)|in|include|increment|limit|liquid|offset|range|render|reversed|section|when|with)\b/,function:[{pattern:/(\|\s*)\w+/,lookbehind:!0,alias:"filter"},{pattern:/(\.\s*)(?:first|last|size)/,lookbehind:!0}],boolean:/\b(?:true|false|nil)\b/,range:{pattern:/\.\./,alias:"operator"},number:/\b\d+(?:\.\d+)?\b/,operator:/[!=]=|<>|[<>]=?|[|?:=-]|\b(?:and|or|contains(?=\s))\b/,punctuation:/[.,\[\]()]/},e.hooks.add("before-tokenize",function(t){var n=/\{%\s*comment\s*%\}[\s\S]*?\{%\s*endcomment\s*%\}|\{(?:%[\s\S]*?%|\{\{[\s\S]*?\}\}|\{[\s\S]*?\})\}/g,r=!1;e.languages["markup-templating"].buildPlaceholders(t,"liquid",n,function(e){var t=/^\{%-?\s*(\w+)/.exec(e);if(t){var n=t[1];if("raw"===n&&!r)return r=!0,!0;if("endraw"===n)return r=!1,!0}return!r})}),e.hooks.add("after-tokenize",function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"liquid")})}e.exports=i,i.displayName="liquid",i.aliases=[]},3848(e){"use strict";function t(e){!function(e){function t(e){return RegExp("(\\()"+e+"(?=[\\s\\)])")}function n(e){return RegExp("([\\s([])"+e+"(?=[\\s)])")}var r="[-+*/_~!@$%^=<>{}\\w]+",i="&"+r,a="(\\()",o="(?=\\))",s="(?=\\s)",u={heading:{pattern:/;;;.*/,alias:["comment","title"]},comment:/;.*/,string:{pattern:/"(?:[^"\\]|\\.)*"/,greedy:!0,inside:{argument:/[-A-Z]+(?=[.,\s])/,symbol:RegExp("`"+r+"'")}},"quoted-symbol":{pattern:RegExp("#?'"+r),alias:["variable","symbol"]},"lisp-property":{pattern:RegExp(":"+r),alias:"property"},splice:{pattern:RegExp(",@?"+r),alias:["symbol","variable"]},keyword:[{pattern:RegExp(a+"(?:(?:lexical-)?let\\*?|(?:cl-)?letf|if|when|while|unless|cons|cl-loop|and|or|not|cond|setq|error|message|null|require|provide|use-package)"+s),lookbehind:!0},{pattern:RegExp(a+"(?:for|do|collect|return|finally|append|concat|in|by)"+s),lookbehind:!0}],declare:{pattern:t("declare"),lookbehind:!0,alias:"keyword"},interactive:{pattern:t("interactive"),lookbehind:!0,alias:"keyword"},boolean:{pattern:n("(?:t|nil)"),lookbehind:!0},number:{pattern:n("[-+]?\\d+(?:\\.\\d*)?"),lookbehind:!0},defvar:{pattern:RegExp(a+"def(?:var|const|custom|group)\\s+"+r),lookbehind:!0,inside:{keyword:/^def[a-z]+/,variable:RegExp(r)}},defun:{pattern:RegExp(a+"(?:cl-)?(?:defun\\*?|defmacro)\\s+"+r+"\\s+\\([\\s\\S]*?\\)"),lookbehind:!0,inside:{keyword:/^(?:cl-)?def\S+/,arguments:null,function:{pattern:RegExp("(^\\s)"+r),lookbehind:!0},punctuation:/[()]/}},lambda:{pattern:RegExp(a+"lambda\\s+\\(\\s*(?:&?"+r+"(?:\\s+&?"+r+")*\\s*)?\\)"),lookbehind:!0,inside:{keyword:/^lambda/,arguments:null,punctuation:/[()]/}},car:{pattern:RegExp(a+r),lookbehind:!0},punctuation:[/(?:['`,]?\(|[)\[\]])/,{pattern:/(\s)\.(?=\s)/,lookbehind:!0}]},c={"lisp-marker":RegExp(i),rest:{argument:{pattern:RegExp(r),alias:"variable"},varform:{pattern:RegExp(a+r+"\\s+\\S[\\s\\S]*"+o),lookbehind:!0,inside:{string:u.string,boolean:u.boolean,number:u.number,symbol:u.symbol,punctuation:/[()]/}}}},l="\\S+(?:\\s+\\S+)*",f={pattern:RegExp(a+"[\\s\\S]*"+o),lookbehind:!0,inside:{"rest-vars":{pattern:RegExp("&(?:rest|body)\\s+"+l),inside:c},"other-marker-vars":{pattern:RegExp("&(?:optional|aux)\\s+"+l),inside:c},keys:{pattern:RegExp("&key\\s+"+l+"(?:\\s+&allow-other-keys)?"),inside:c},argument:{pattern:RegExp(r),alias:"variable"},punctuation:/[()]/}};u.lambda.inside.arguments=f,u.defun.inside.arguments=e.util.clone(f),u.defun.inside.arguments.inside.sublist=f,e.languages.lisp=u,e.languages.elisp=u,e.languages.emacs=u,e.languages["emacs-lisp"]=u}(e)}e.exports=t,t.displayName="lisp",t.aliases=[]},41469(e){"use strict";function t(e){e.languages.livescript={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?\*\//,lookbehind:!0},{pattern:/(^|[^\\])#.*/,lookbehind:!0}],"interpolated-string":{pattern:/(^|[^"])("""|")(?:\\[\s\S]|(?!\2)[^\\])*\2(?!")/,lookbehind:!0,greedy:!0,inside:{variable:{pattern:/(^|[^\\])#[a-z_](?:-?[a-z]|[\d_])*/m,lookbehind:!0},interpolation:{pattern:/(^|[^\\])#\{[^}]+\}/m,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^#\{|\}$/,alias:"variable"}}},string:/[\s\S]+/}},string:[{pattern:/('''|')(?:\\[\s\S]|(?!\1)[^\\])*\1/,greedy:!0},{pattern:/<\[[\s\S]*?\]>/,greedy:!0},/\\[^\s,;\])}]+/],regex:[{pattern:/\/\/(?:\[[^\r\n\]]*\]|\\.|(?!\/\/)[^\\\[])+\/\/[gimyu]{0,5}/,greedy:!0,inside:{comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0}}},{pattern:/\/(?:\[[^\r\n\]]*\]|\\.|[^/\\\r\n\[])+\/[gimyu]{0,5}/,greedy:!0}],keyword:{pattern:/(^|(?!-).)\b(?:break|case|catch|class|const|continue|default|do|else|extends|fallthrough|finally|for(?: ever)?|function|if|implements|it|let|loop|new|null|otherwise|own|return|super|switch|that|then|this|throw|try|unless|until|var|void|when|while|yield)(?!-)\b/m,lookbehind:!0},"keyword-operator":{pattern:/(^|[^-])\b(?:(?:delete|require|typeof)!|(?:and|by|delete|export|from|import(?: all)?|in|instanceof|is(?:nt| not)?|not|of|or|til|to|typeof|with|xor)(?!-)\b)/m,lookbehind:!0,alias:"operator"},boolean:{pattern:/(^|[^-])\b(?:false|no|off|on|true|yes)(?!-)\b/m,lookbehind:!0},argument:{pattern:/(^|(?!\.&\.)[^&])&(?!&)\d*/m,lookbehind:!0,alias:"variable"},number:/\b(?:\d+~[\da-z]+|\d[\d_]*(?:\.\d[\d_]*)?(?:[a-z]\w*)?)/i,identifier:/[a-z_](?:-?[a-z]|[\d_])*/i,operator:[{pattern:/( )\.(?= )/,lookbehind:!0},/\.(?:[=~]|\.\.?)|\.(?:[&|^]|<<|>>>?)\.|:(?:=|:=?)|&&|\|[|>]|<(?:<[>=?]?|-(?:->?|>)?|\+\+?|@@?|%%?|\*\*?|!(?:~?=|--?>|~?~>)?|~(?:~?>|=)?|==?|\^\^?|[\/?]/],punctuation:/[(){}\[\]|.,:;`]/},e.languages.livescript["interpolated-string"].inside.interpolation.inside.rest=e.languages.livescript}e.exports=t,t.displayName="livescript",t.aliases=[]},73070(e){"use strict";function t(e){var t;(t=e).languages.llvm={comment:/;.*/,string:{pattern:/"[^"]*"/,greedy:!0},boolean:/\b(?:true|false)\b/,variable:/[%@!#](?:(?!\d)(?:[-$.\w]|\\[a-f\d]{2})+|\d+)/i,label:/(?!\d)(?:[-$.\w]|\\[a-f\d]{2})+:/i,type:{pattern:/\b(?:double|float|fp128|half|i[1-9]\d*|label|metadata|ppc_fp128|token|void|x86_fp80|x86_mmx)\b/,alias:"class-name"},keyword:/\b[a-z_][a-z_0-9]*\b/,number:/[+-]?\b\d+(?:\.\d+)?(?:[eE][+-]?\d+)?\b|\b0x[\dA-Fa-f]+\b|\b0xK[\dA-Fa-f]{20}\b|\b0x[ML][\dA-Fa-f]{32}\b|\b0xH[\dA-Fa-f]{4}\b/,punctuation:/[{}[\];(),.!*=<>]/}}e.exports=t,t.displayName="llvm",t.aliases=[]},35049(e){"use strict";function t(e){e.languages.log={string:{pattern:/"(?:[^"\\\r\n]|\\.)*"|'(?![st] | \w)(?:[^'\\\r\n]|\\.)*'/,greedy:!0},level:[{pattern:/\b(?:ALERT|CRIT|CRITICAL|EMERG|EMERGENCY|ERR|ERROR|FAILURE|FATAL|SEVERE)\b/,alias:["error","important"]},{pattern:/\b(?:WARN|WARNING|WRN)\b/,alias:["warning","important"]},{pattern:/\b(?:DISPLAY|INF|INFO|NOTICE|STATUS)\b/,alias:["info","keyword"]},{pattern:/\b(?:DBG|DEBUG|FINE)\b/,alias:["debug","keyword"]},{pattern:/\b(?:FINER|FINEST|TRACE|TRC|VERBOSE|VRB)\b/,alias:["trace","comment"]}],property:{pattern:/((?:^|[\]|])[ \t]*)[a-z_](?:[\w-]|\b\/\b)*(?:[. ]\(?\w(?:[\w-]|\b\/\b)*\)?)*:(?=\s)/im,lookbehind:!0},separator:{pattern:/(^|[^-+])-{3,}|={3,}|\*{3,}|- - /m,lookbehind:!0,alias:"comment"},url:/\b(?:https?|ftp|file):\/\/[^\s|,;'"]*[^\s|,;'">.]/,email:{pattern:/(^|\s)[-\w+.]+@[a-z][a-z0-9-]*(?:\.[a-z][a-z0-9-]*)+(?=\s)/,lookbehind:!0,alias:"url"},"ip-address":{pattern:/\b(?:\d{1,3}(?:\.\d{1,3}){3})\b/i,alias:"constant"},"mac-address":{pattern:/\b[a-f0-9]{2}(?::[a-f0-9]{2}){5}\b/i,alias:"constant"},domain:{pattern:/(^|\s)[a-z][a-z0-9-]*(?:\.[a-z][a-z0-9-]*)*\.[a-z][a-z0-9-]+(?=\s)/,lookbehind:!0,alias:"constant"},uuid:{pattern:/\b[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\b/i,alias:"constant"},hash:{pattern:/\b(?:[a-f0-9]{32}){1,2}\b/i,alias:"constant"},"file-path":{pattern:/\b[a-z]:[\\/][^\s|,;:(){}\[\]"']+|(^|[\s:\[\](>|])\.{0,2}\/\w[^\s|,;:(){}\[\]"']*/i,lookbehind:!0,greedy:!0,alias:"string"},date:{pattern:RegExp(/\b\d{4}[-/]\d{2}[-/]\d{2}(?:T(?=\d{1,2}:)|(?=\s\d{1,2}:))/.source+"|"+/\b\d{1,4}[-/ ](?:\d{1,2}|Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)[-/ ]\d{2,4}T?\b/.source+"|"+/\b(?:(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun)(?:\s{1,2}(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec))?|Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s{1,2}\d{1,2}\b/.source,"i"),alias:"number"},time:{pattern:/\b\d{1,2}:\d{1,2}:\d{1,2}(?:[.,:]\d+)?(?:\s?[+-]\d{2}:?\d{2}|Z)?\b/,alias:"number"},boolean:/\b(?:true|false|null)\b/i,number:{pattern:/(^|[^.\w])(?:0x[a-f0-9]+|0o[0-7]+|0b[01]+|v?\d[\da-f]*(?:\.\d+)*(?:e[+-]?\d+)?[a-z]{0,3}\b)\b(?!\.\w)/i,lookbehind:!0},operator:/[;:?<=>~/@!$%&+\-|^(){}*#]/,punctuation:/[\[\].,]/}}e.exports=t,t.displayName="log",t.aliases=[]},8789(e){"use strict";function t(e){e.languages.lolcode={comment:[/\bOBTW\s[\s\S]*?\sTLDR\b/,/\bBTW.+/],string:{pattern:/"(?::.|[^":])*"/,inside:{variable:/:\{[^}]+\}/,symbol:[/:\([a-f\d]+\)/i,/:\[[^\]]+\]/,/:[)>o":]/]},greedy:!0},number:/(?:\B-)?(?:\b\d+(?:\.\d*)?|\B\.\d+)/,symbol:{pattern:/(^|\s)(?:A )?(?:YARN|NUMBR|NUMBAR|TROOF|BUKKIT|NOOB)(?=\s|,|$)/,lookbehind:!0,inside:{keyword:/A(?=\s)/}},label:{pattern:/((?:^|\s)(?:IM IN YR|IM OUTTA YR) )[a-zA-Z]\w*/,lookbehind:!0,alias:"string"},function:{pattern:/((?:^|\s)(?:I IZ|HOW IZ I|IZ) )[a-zA-Z]\w*/,lookbehind:!0},keyword:[{pattern:/(^|\s)(?:O HAI IM|KTHX|HAI|KTHXBYE|I HAS A|ITZ(?: A)?|R|AN|MKAY|SMOOSH|MAEK|IS NOW(?: A)?|VISIBLE|GIMMEH|O RLY\?|YA RLY|NO WAI|OIC|MEBBE|WTF\?|OMG|OMGWTF|GTFO|IM IN YR|IM OUTTA YR|FOUND YR|YR|TIL|WILE|UPPIN|NERFIN|I IZ|HOW IZ I|IF U SAY SO|SRS|HAS A|LIEK(?: A)?|IZ)(?=\s|,|$)/,lookbehind:!0},/'Z(?=\s|,|$)/],boolean:{pattern:/(^|\s)(?:WIN|FAIL)(?=\s|,|$)/,lookbehind:!0},variable:{pattern:/(^|\s)IT(?=\s|,|$)/,lookbehind:!0},operator:{pattern:/(^|\s)(?:NOT|BOTH SAEM|DIFFRINT|(?:SUM|DIFF|PRODUKT|QUOSHUNT|MOD|BIGGR|SMALLR|BOTH|EITHER|WON|ALL|ANY) OF)(?=\s|,|$)/,lookbehind:!0},punctuation:/\.{3}|…|,|!/}}e.exports=t,t.displayName="lolcode",t.aliases=[]},59803(e){"use strict";function t(e){e.languages.lua={comment:/^#!.+|--(?:\[(=*)\[[\s\S]*?\]\1\]|.*)/m,string:{pattern:/(["'])(?:(?!\1)[^\\\r\n]|\\z(?:\r\n|\s)|\\(?:\r\n|[^z]))*\1|\[(=*)\[[\s\S]*?\]\2\]/,greedy:!0},number:/\b0x[a-f\d]+(?:\.[a-f\d]*)?(?:p[+-]?\d+)?\b|\b\d+(?:\.\B|(?:\.\d*)?(?:e[+-]?\d+)?\b)|\B\.\d+(?:e[+-]?\d+)?\b/i,keyword:/\b(?:and|break|do|else|elseif|end|false|for|function|goto|if|in|local|nil|not|or|repeat|return|then|true|until|while)\b/,function:/(?!\d)\w+(?=\s*(?:[({]))/,operator:[/[-+*%^&|#]|\/\/?|<[<=]?|>[>=]?|[=~]=?/,{pattern:/(^|[^.])\.\.(?!\.)/,lookbehind:!0}],punctuation:/[\[\](){},;]|\.+|:+/}}e.exports=t,t.displayName="lua",t.aliases=[]},33055(e){"use strict";function t(e){e.languages.makefile={comment:{pattern:/(^|[^\\])#(?:\\(?:\r\n|[\s\S])|[^\\\r\n])*/,lookbehind:!0},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},builtin:/\.[A-Z][^:#=\s]+(?=\s*:(?!=))/,symbol:{pattern:/^(?:[^:=\s]|[ \t]+(?![\s:]))+(?=\s*:(?!=))/m,inside:{variable:/\$+(?:(?!\$)[^(){}:#=\s]+|(?=[({]))/}},variable:/\$+(?:(?!\$)[^(){}:#=\s]+|\([@*%<^+?][DF]\)|(?=[({]))/,keyword:[/-include\b|\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\b/,{pattern:/(\()(?:addsuffix|abspath|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:s|list)?)(?=[ \t])/,lookbehind:!0}],operator:/(?:::|[?:+!])?=|[|@]/,punctuation:/[:;(){}]/}}e.exports=t,t.displayName="makefile",t.aliases=[]},90542(e){"use strict";function t(e){!function(e){var t=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function n(e){return e=e.replace(//g,function(){return t}),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+e+")")}var r=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,i=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,function(){return r}),a=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source;e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"font-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+i+a+"(?:"+i+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+i+a+")(?:"+i+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+i+")"+a+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+i+"$"),inside:{"table-header":{pattern:RegExp(r),alias:"important",inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:n(/\b__(?:(?!_)|_(?:(?!_))+_)+__\b|\*\*(?:(?!\*)|\*(?:(?!\*))+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/\b_(?:(?!_)|__(?:(?!_))+__)+_\b|\*(?:(?!\*)|\*\*(?:(?!\*))+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~))+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:n(/!?\[(?:(?!\]))+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\]))+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach(function(t){["url","bold","italic","strike","code-snippet"].forEach(function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])})}),e.hooks.add("after-tokenize",function(e){("markdown"===e.language||"md"===e.language)&&t(e.tokens);function t(e){if(e&&"string"!=typeof e)for(var n=0,r=e.length;n=a.length);u++){var c=s[u];if("string"==typeof c||c.content&&"string"==typeof c.content){var l=a[i],f=n.tokenStack[l],d="string"==typeof c?c:c.content,h=t(r,l),p=d.indexOf(h);if(p>-1){++i;var b=d.substring(0,p),m=new e.Token(r,e.tokenize(f,n.grammar),"language-"+r,f),g=d.substring(p+h.length),v=[];b&&v.push.apply(v,o([b])),v.push(m),g&&v.push.apply(v,o([g])),"string"==typeof c?s.splice.apply(s,[u,1].concat(v)):c.content=v}}else c.content&&o(c.content)}return s}}}})}(e)}e.exports=t,t.displayName="markupTemplating",t.aliases=[]},2717(e){"use strict";function t(e){e.languages.markup={comment://,prolog:/<\?[\s\S]+?\?>/,doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^$|[[\]]/,"doctype-tag":/^DOCTYPE/,name:/[^\s<>'"]+/}},cdata://i,tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},e.languages.markup.tag.inside["attr-value"].inside.entity=e.languages.markup.entity,e.languages.markup.doctype.inside["internal-subset"].inside=e.languages.markup,e.hooks.add("wrap",function(e){"entity"===e.type&&(e.attributes.title=e.content.value.replace(/&/,"&"))}),Object.defineProperty(e.languages.markup.tag,"addInlined",{value:function(t,n){var r={};r["language-"+n]={pattern:/(^$)/i,lookbehind:!0,inside:e.languages[n]},r.cdata=/^$/i;var i={"included-cdata":{pattern://i,inside:r}};i["language-"+n]={pattern:/[\s\S]+/,inside:e.languages[n]};var a={};a[t]={pattern:RegExp(/(<__[^>]*>)(?:))*\]\]>|(?!)/.source.replace(/__/g,function(){return t}),"i"),lookbehind:!0,greedy:!0,inside:i},e.languages.insertBefore("markup","cdata",a)}}),Object.defineProperty(e.languages.markup.tag,"addAttribute",{value:function(t,n){e.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+t+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[n,"language-"+n],inside:e.languages[n]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),e.languages.html=e.languages.markup,e.languages.mathml=e.languages.markup,e.languages.svg=e.languages.markup,e.languages.xml=e.languages.extend("markup",{}),e.languages.ssml=e.languages.xml,e.languages.atom=e.languages.xml,e.languages.rss=e.languages.xml}e.exports=t,t.displayName="markup",t.aliases=["html","mathml","svg","xml","ssml","atom","rss"]},27992(e){"use strict";function t(e){e.languages.matlab={comment:[/%\{[\s\S]*?\}%/,/%.+/],string:{pattern:/\B'(?:''|[^'\r\n])*'/,greedy:!0},number:/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[eE][+-]?\d+)?(?:[ij])?|\b[ij]\b/,keyword:/\b(?:break|case|catch|continue|else|elseif|end|for|function|if|inf|NaN|otherwise|parfor|pause|pi|return|switch|try|while)\b/,function:/\b(?!\d)\w+(?=\s*\()/,operator:/\.?[*^\/\\']|[+\-:@]|[<>=~]=?|&&?|\|\|?/,punctuation:/\.{3}|[.,;\[\](){}!]/}}e.exports=t,t.displayName="matlab",t.aliases=[]},606(e){"use strict";function t(e){e.languages.mel={comment:/\/\/.*/,code:{pattern:/`(?:\\.|[^\\`\r\n])*`/,greedy:!0,alias:"italic",inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"}}},string:{pattern:/"(?:\\.|[^\\"\r\n])*"/,greedy:!0},variable:/\$\w+/,number:/\b0x[\da-fA-F]+\b|\b\d+(?:\.\d*)?|\B\.\d+/,flag:{pattern:/-[^\d\W]\w*/,alias:"operator"},keyword:/\b(?:break|case|continue|default|do|else|float|for|global|if|in|int|matrix|proc|return|string|switch|vector|while)\b/,function:/\b\w+(?=\()|\b(?:about|abs|addAttr|addAttributeEditorNodeHelp|addDynamic|addNewShelfTab|addPP|addPanelCategory|addPrefixToName|advanceToNextDrivenKey|affectedNet|affects|aimConstraint|air|alias|aliasAttr|align|alignCtx|alignCurve|alignSurface|allViewFit|ambientLight|angle|angleBetween|animCone|animCurveEditor|animDisplay|animView|annotate|appendStringArray|applicationName|applyAttrPreset|applyTake|arcLenDimContext|arcLengthDimension|arclen|arrayMapper|art3dPaintCtx|artAttrCtx|artAttrPaintVertexCtx|artAttrSkinPaintCtx|artAttrTool|artBuildPaintMenu|artFluidAttrCtx|artPuttyCtx|artSelectCtx|artSetPaintCtx|artUserPaintCtx|assignCommand|assignInputDevice|assignViewportFactories|attachCurve|attachDeviceAttr|attachSurface|attrColorSliderGrp|attrCompatibility|attrControlGrp|attrEnumOptionMenu|attrEnumOptionMenuGrp|attrFieldGrp|attrFieldSliderGrp|attrNavigationControlGrp|attrPresetEditWin|attributeExists|attributeInfo|attributeMenu|attributeQuery|autoKeyframe|autoPlace|bakeClip|bakeFluidShading|bakePartialHistory|bakeResults|bakeSimulation|basename|basenameEx|batchRender|bessel|bevel|bevelPlus|binMembership|bindSkin|blend2|blendShape|blendShapeEditor|blendShapePanel|blendTwoAttr|blindDataType|boneLattice|boundary|boxDollyCtx|boxZoomCtx|bufferCurve|buildBookmarkMenu|buildKeyframeMenu|button|buttonManip|CBG|cacheFile|cacheFileCombine|cacheFileMerge|cacheFileTrack|camera|cameraView|canCreateManip|canvas|capitalizeString|catch|catchQuiet|ceil|changeSubdivComponentDisplayLevel|changeSubdivRegion|channelBox|character|characterMap|characterOutlineEditor|characterize|chdir|checkBox|checkBoxGrp|checkDefaultRenderGlobals|choice|circle|circularFillet|clamp|clear|clearCache|clip|clipEditor|clipEditorCurrentTimeCtx|clipSchedule|clipSchedulerOutliner|clipTrimBefore|closeCurve|closeSurface|cluster|cmdFileOutput|cmdScrollFieldExecuter|cmdScrollFieldReporter|cmdShell|coarsenSubdivSelectionList|collision|color|colorAtPoint|colorEditor|colorIndex|colorIndexSliderGrp|colorSliderButtonGrp|colorSliderGrp|columnLayout|commandEcho|commandLine|commandPort|compactHairSystem|componentEditor|compositingInterop|computePolysetVolume|condition|cone|confirmDialog|connectAttr|connectControl|connectDynamic|connectJoint|connectionInfo|constrain|constrainValue|constructionHistory|container|containsMultibyte|contextInfo|control|convertFromOldLayers|convertIffToPsd|convertLightmap|convertSolidTx|convertTessellation|convertUnit|copyArray|copyFlexor|copyKey|copySkinWeights|cos|cpButton|cpCache|cpClothSet|cpCollision|cpConstraint|cpConvClothToMesh|cpForces|cpGetSolverAttr|cpPanel|cpProperty|cpRigidCollisionFilter|cpSeam|cpSetEdit|cpSetSolverAttr|cpSolver|cpSolverTypes|cpTool|cpUpdateClothUVs|createDisplayLayer|createDrawCtx|createEditor|createLayeredPsdFile|createMotionField|createNewShelf|createNode|createRenderLayer|createSubdivRegion|cross|crossProduct|ctxAbort|ctxCompletion|ctxEditMode|ctxTraverse|currentCtx|currentTime|currentTimeCtx|currentUnit|curve|curveAddPtCtx|curveCVCtx|curveEPCtx|curveEditorCtx|curveIntersect|curveMoveEPCtx|curveOnSurface|curveSketchCtx|cutKey|cycleCheck|cylinder|dagPose|date|defaultLightListCheckBox|defaultNavigation|defineDataServer|defineVirtualDevice|deformer|deg_to_rad|delete|deleteAttr|deleteShadingGroupsAndMaterials|deleteShelfTab|deleteUI|deleteUnusedBrushes|delrandstr|detachCurve|detachDeviceAttr|detachSurface|deviceEditor|devicePanel|dgInfo|dgdirty|dgeval|dgtimer|dimWhen|directKeyCtx|directionalLight|dirmap|dirname|disable|disconnectAttr|disconnectJoint|diskCache|displacementToPoly|displayAffected|displayColor|displayCull|displayLevelOfDetail|displayPref|displayRGBColor|displaySmoothness|displayStats|displayString|displaySurface|distanceDimContext|distanceDimension|doBlur|dolly|dollyCtx|dopeSheetEditor|dot|dotProduct|doubleProfileBirailSurface|drag|dragAttrContext|draggerContext|dropoffLocator|duplicate|duplicateCurve|duplicateSurface|dynCache|dynControl|dynExport|dynExpression|dynGlobals|dynPaintEditor|dynParticleCtx|dynPref|dynRelEdPanel|dynRelEditor|dynamicLoad|editAttrLimits|editDisplayLayerGlobals|editDisplayLayerMembers|editRenderLayerAdjustment|editRenderLayerGlobals|editRenderLayerMembers|editor|editorTemplate|effector|emit|emitter|enableDevice|encodeString|endString|endsWith|env|equivalent|equivalentTol|erf|error|eval|evalDeferred|evalEcho|event|exactWorldBoundingBox|exclusiveLightCheckBox|exec|executeForEachObject|exists|exp|expression|expressionEditorListen|extendCurve|extendSurface|extrude|fcheck|fclose|feof|fflush|fgetline|fgetword|file|fileBrowserDialog|fileDialog|fileExtension|fileInfo|filetest|filletCurve|filter|filterCurve|filterExpand|filterStudioImport|findAllIntersections|findAnimCurves|findKeyframe|findMenuItem|findRelatedSkinCluster|finder|firstParentOf|fitBspline|flexor|floatEq|floatField|floatFieldGrp|floatScrollBar|floatSlider|floatSlider2|floatSliderButtonGrp|floatSliderGrp|floor|flow|fluidCacheInfo|fluidEmitter|fluidVoxelInfo|flushUndo|fmod|fontDialog|fopen|formLayout|format|fprint|frameLayout|fread|freeFormFillet|frewind|fromNativePath|fwrite|gamma|gauss|geometryConstraint|getApplicationVersionAsFloat|getAttr|getClassification|getDefaultBrush|getFileList|getFluidAttr|getInputDeviceRange|getMayaPanelTypes|getModifiers|getPanel|getParticleAttr|getPluginResource|getenv|getpid|glRender|glRenderEditor|globalStitch|gmatch|goal|gotoBindPose|grabColor|gradientControl|gradientControlNoAttr|graphDollyCtx|graphSelectContext|graphTrackCtx|gravity|grid|gridLayout|group|groupObjectsByName|HfAddAttractorToAS|HfAssignAS|HfBuildEqualMap|HfBuildFurFiles|HfBuildFurImages|HfCancelAFR|HfConnectASToHF|HfCreateAttractor|HfDeleteAS|HfEditAS|HfPerformCreateAS|HfRemoveAttractorFromAS|HfSelectAttached|HfSelectAttractors|HfUnAssignAS|hardenPointCurve|hardware|hardwareRenderPanel|headsUpDisplay|headsUpMessage|help|helpLine|hermite|hide|hilite|hitTest|hotBox|hotkey|hotkeyCheck|hsv_to_rgb|hudButton|hudSlider|hudSliderButton|hwReflectionMap|hwRender|hwRenderLoad|hyperGraph|hyperPanel|hyperShade|hypot|iconTextButton|iconTextCheckBox|iconTextRadioButton|iconTextRadioCollection|iconTextScrollList|iconTextStaticLabel|ikHandle|ikHandleCtx|ikHandleDisplayScale|ikSolver|ikSplineHandleCtx|ikSystem|ikSystemInfo|ikfkDisplayMethod|illustratorCurves|image|imfPlugins|inheritTransform|insertJoint|insertJointCtx|insertKeyCtx|insertKnotCurve|insertKnotSurface|instance|instanceable|instancer|intField|intFieldGrp|intScrollBar|intSlider|intSliderGrp|interToUI|internalVar|intersect|iprEngine|isAnimCurve|isConnected|isDirty|isParentOf|isSameObject|isTrue|isValidObjectName|isValidString|isValidUiName|isolateSelect|itemFilter|itemFilterAttr|itemFilterRender|itemFilterType|joint|jointCluster|jointCtx|jointDisplayScale|jointLattice|keyTangent|keyframe|keyframeOutliner|keyframeRegionCurrentTimeCtx|keyframeRegionDirectKeyCtx|keyframeRegionDollyCtx|keyframeRegionInsertKeyCtx|keyframeRegionMoveKeyCtx|keyframeRegionScaleKeyCtx|keyframeRegionSelectKeyCtx|keyframeRegionSetKeyCtx|keyframeRegionTrackCtx|keyframeStats|lassoContext|lattice|latticeDeformKeyCtx|launch|launchImageEditor|layerButton|layeredShaderPort|layeredTexturePort|layout|layoutDialog|lightList|lightListEditor|lightListPanel|lightlink|lineIntersection|linearPrecision|linstep|listAnimatable|listAttr|listCameras|listConnections|listDeviceAttachments|listHistory|listInputDeviceAxes|listInputDeviceButtons|listInputDevices|listMenuAnnotation|listNodeTypes|listPanelCategories|listRelatives|listSets|listTransforms|listUnselected|listerEditor|loadFluid|loadNewShelf|loadPlugin|loadPluginLanguageResources|loadPrefObjects|localizedPanelLabel|lockNode|loft|log|longNameOf|lookThru|ls|lsThroughFilter|lsType|lsUI|Mayatomr|mag|makeIdentity|makeLive|makePaintable|makeRoll|makeSingleSurface|makeTubeOn|makebot|manipMoveContext|manipMoveLimitsCtx|manipOptions|manipRotateContext|manipRotateLimitsCtx|manipScaleContext|manipScaleLimitsCtx|marker|match|max|memory|menu|menuBarLayout|menuEditor|menuItem|menuItemToShelf|menuSet|menuSetPref|messageLine|min|minimizeApp|mirrorJoint|modelCurrentTimeCtx|modelEditor|modelPanel|mouse|movIn|movOut|move|moveIKtoFK|moveKeyCtx|moveVertexAlongDirection|multiProfileBirailSurface|mute|nParticle|nameCommand|nameField|namespace|namespaceInfo|newPanelItems|newton|nodeCast|nodeIconButton|nodeOutliner|nodePreset|nodeType|noise|nonLinear|normalConstraint|normalize|nurbsBoolean|nurbsCopyUVSet|nurbsCube|nurbsEditUV|nurbsPlane|nurbsSelect|nurbsSquare|nurbsToPoly|nurbsToPolygonsPref|nurbsToSubdiv|nurbsToSubdivPref|nurbsUVSet|nurbsViewDirectionVector|objExists|objectCenter|objectLayer|objectType|objectTypeUI|obsoleteProc|oceanNurbsPreviewPlane|offsetCurve|offsetCurveOnSurface|offsetSurface|openGLExtension|openMayaPref|optionMenu|optionMenuGrp|optionVar|orbit|orbitCtx|orientConstraint|outlinerEditor|outlinerPanel|overrideModifier|paintEffectsDisplay|pairBlend|palettePort|paneLayout|panel|panelConfiguration|panelHistory|paramDimContext|paramDimension|paramLocator|parent|parentConstraint|particle|particleExists|particleInstancer|particleRenderInfo|partition|pasteKey|pathAnimation|pause|pclose|percent|performanceOptions|pfxstrokes|pickWalk|picture|pixelMove|planarSrf|plane|play|playbackOptions|playblast|plugAttr|plugNode|pluginInfo|pluginResourceUtil|pointConstraint|pointCurveConstraint|pointLight|pointMatrixMult|pointOnCurve|pointOnSurface|pointPosition|poleVectorConstraint|polyAppend|polyAppendFacetCtx|polyAppendVertex|polyAutoProjection|polyAverageNormal|polyAverageVertex|polyBevel|polyBlendColor|polyBlindData|polyBoolOp|polyBridgeEdge|polyCacheMonitor|polyCheck|polyChipOff|polyClipboard|polyCloseBorder|polyCollapseEdge|polyCollapseFacet|polyColorBlindData|polyColorDel|polyColorPerVertex|polyColorSet|polyCompare|polyCone|polyCopyUV|polyCrease|polyCreaseCtx|polyCreateFacet|polyCreateFacetCtx|polyCube|polyCut|polyCutCtx|polyCylinder|polyCylindricalProjection|polyDelEdge|polyDelFacet|polyDelVertex|polyDuplicateAndConnect|polyDuplicateEdge|polyEditUV|polyEditUVShell|polyEvaluate|polyExtrudeEdge|polyExtrudeFacet|polyExtrudeVertex|polyFlipEdge|polyFlipUV|polyForceUV|polyGeoSampler|polyHelix|polyInfo|polyInstallAction|polyLayoutUV|polyListComponentConversion|polyMapCut|polyMapDel|polyMapSew|polyMapSewMove|polyMergeEdge|polyMergeEdgeCtx|polyMergeFacet|polyMergeFacetCtx|polyMergeUV|polyMergeVertex|polyMirrorFace|polyMoveEdge|polyMoveFacet|polyMoveFacetUV|polyMoveUV|polyMoveVertex|polyNormal|polyNormalPerVertex|polyNormalizeUV|polyOptUvs|polyOptions|polyOutput|polyPipe|polyPlanarProjection|polyPlane|polyPlatonicSolid|polyPoke|polyPrimitive|polyPrism|polyProjection|polyPyramid|polyQuad|polyQueryBlindData|polyReduce|polySelect|polySelectConstraint|polySelectConstraintMonitor|polySelectCtx|polySelectEditCtx|polySeparate|polySetToFaceNormal|polySewEdge|polyShortestPathCtx|polySmooth|polySoftEdge|polySphere|polySphericalProjection|polySplit|polySplitCtx|polySplitEdge|polySplitRing|polySplitVertex|polyStraightenUVBorder|polySubdivideEdge|polySubdivideFacet|polyToSubdiv|polyTorus|polyTransfer|polyTriangulate|polyUVSet|polyUnite|polyWedgeFace|popen|popupMenu|pose|pow|preloadRefEd|print|progressBar|progressWindow|projFileViewer|projectCurve|projectTangent|projectionContext|projectionManip|promptDialog|propModCtx|propMove|psdChannelOutliner|psdEditTextureFile|psdExport|psdTextureFile|putenv|pwd|python|querySubdiv|quit|rad_to_deg|radial|radioButton|radioButtonGrp|radioCollection|radioMenuItemCollection|rampColorPort|rand|randomizeFollicles|randstate|rangeControl|readTake|rebuildCurve|rebuildSurface|recordAttr|recordDevice|redo|reference|referenceEdit|referenceQuery|refineSubdivSelectionList|refresh|refreshAE|registerPluginResource|rehash|reloadImage|removeJoint|removeMultiInstance|removePanelCategory|rename|renameAttr|renameSelectionList|renameUI|render|renderGlobalsNode|renderInfo|renderLayerButton|renderLayerParent|renderLayerPostProcess|renderLayerUnparent|renderManip|renderPartition|renderQualityNode|renderSettings|renderThumbnailUpdate|renderWindowEditor|renderWindowSelectContext|renderer|reorder|reorderDeformers|requires|reroot|resampleFluid|resetAE|resetPfxToPolyCamera|resetTool|resolutionNode|retarget|reverseCurve|reverseSurface|revolve|rgb_to_hsv|rigidBody|rigidSolver|roll|rollCtx|rootOf|rot|rotate|rotationInterpolation|roundConstantRadius|rowColumnLayout|rowLayout|runTimeCommand|runup|sampleImage|saveAllShelves|saveAttrPreset|saveFluid|saveImage|saveInitialState|saveMenu|savePrefObjects|savePrefs|saveShelf|saveToolSettings|scale|scaleBrushBrightness|scaleComponents|scaleConstraint|scaleKey|scaleKeyCtx|sceneEditor|sceneUIReplacement|scmh|scriptCtx|scriptEditorInfo|scriptJob|scriptNode|scriptTable|scriptToShelf|scriptedPanel|scriptedPanelType|scrollField|scrollLayout|sculpt|searchPathArray|seed|selLoadSettings|select|selectContext|selectCurveCV|selectKey|selectKeyCtx|selectKeyframeRegionCtx|selectMode|selectPref|selectPriority|selectType|selectedNodes|selectionConnection|separator|setAttr|setAttrEnumResource|setAttrMapping|setAttrNiceNameResource|setConstraintRestPosition|setDefaultShadingGroup|setDrivenKeyframe|setDynamic|setEditCtx|setEditor|setFluidAttr|setFocus|setInfinity|setInputDeviceMapping|setKeyCtx|setKeyPath|setKeyframe|setKeyframeBlendshapeTargetWts|setMenuMode|setNodeNiceNameResource|setNodeTypeFlag|setParent|setParticleAttr|setPfxToPolyCamera|setPluginResource|setProject|setStampDensity|setStartupMessage|setState|setToolTo|setUITemplate|setXformManip|sets|shadingConnection|shadingGeometryRelCtx|shadingLightRelCtx|shadingNetworkCompare|shadingNode|shapeCompare|shelfButton|shelfLayout|shelfTabLayout|shellField|shortNameOf|showHelp|showHidden|showManipCtx|showSelectionInTitle|showShadingGroupAttrEditor|showWindow|sign|simplify|sin|singleProfileBirailSurface|size|sizeBytes|skinCluster|skinPercent|smoothCurve|smoothTangentSurface|smoothstep|snap2to2|snapKey|snapMode|snapTogetherCtx|snapshot|soft|softMod|softModCtx|sort|sound|soundControl|source|spaceLocator|sphere|sphrand|spotLight|spotLightPreviewPort|spreadSheetEditor|spring|sqrt|squareSurface|srtContext|stackTrace|startString|startsWith|stitchAndExplodeShell|stitchSurface|stitchSurfacePoints|strcmp|stringArrayCatenate|stringArrayContains|stringArrayCount|stringArrayInsertAtIndex|stringArrayIntersector|stringArrayRemove|stringArrayRemoveAtIndex|stringArrayRemoveDuplicates|stringArrayRemoveExact|stringArrayToString|stringToStringArray|strip|stripPrefixFromName|stroke|subdAutoProjection|subdCleanTopology|subdCollapse|subdDuplicateAndConnect|subdEditUV|subdListComponentConversion|subdMapCut|subdMapSewMove|subdMatchTopology|subdMirror|subdToBlind|subdToPoly|subdTransferUVsToCache|subdiv|subdivCrease|subdivDisplaySmoothness|substitute|substituteAllString|substituteGeometry|substring|surface|surfaceSampler|surfaceShaderList|swatchDisplayPort|switchTable|symbolButton|symbolCheckBox|sysFile|system|tabLayout|tan|tangentConstraint|texLatticeDeformContext|texManipContext|texMoveContext|texMoveUVShellContext|texRotateContext|texScaleContext|texSelectContext|texSelectShortestPathCtx|texSmudgeUVContext|texWinToolCtx|text|textCurves|textField|textFieldButtonGrp|textFieldGrp|textManip|textScrollList|textToShelf|textureDisplacePlane|textureHairColor|texturePlacementContext|textureWindow|threadCount|threePointArcCtx|timeControl|timePort|timerX|toNativePath|toggle|toggleAxis|toggleWindowVisibility|tokenize|tokenizeList|tolerance|tolower|toolButton|toolCollection|toolDropped|toolHasOptions|toolPropertyWindow|torus|toupper|trace|track|trackCtx|transferAttributes|transformCompare|transformLimits|translator|trim|trunc|truncateFluidCache|truncateHairCache|tumble|tumbleCtx|turbulence|twoPointArcCtx|uiRes|uiTemplate|unassignInputDevice|undo|undoInfo|ungroup|uniform|unit|unloadPlugin|untangleUV|untitledFileName|untrim|upAxis|updateAE|userCtx|uvLink|uvSnapshot|validateShelfName|vectorize|view2dToolCtx|viewCamera|viewClipPlane|viewFit|viewHeadOn|viewLookAt|viewManip|viewPlace|viewSet|visor|volumeAxis|vortex|waitCursor|warning|webBrowser|webBrowserPrefs|whatIs|window|windowPref|wire|wireContext|workspace|wrinkle|wrinkleContext|writeTake|xbmLangPathList|xform)\b/,operator:[/\+[+=]?|-[-=]?|&&|\|\||[<>]=|[*\/!=]=?|[%^]/,{pattern:/(^|[^<])<(?!<)/,lookbehind:!0},{pattern:/(^|[^>])>(?!>)/,lookbehind:!0}],punctuation:/<<|>>|[.,:;?\[\](){}]/},e.languages.mel.code.inside.rest=e.languages.mel}e.exports=t,t.displayName="mel",t.aliases=[]},23388(e){"use strict";function t(e){e.languages.mizar={comment:/::.+/,keyword:/@proof\b|\b(?:according|aggregate|all|and|antonym|are|as|associativity|assume|asymmetry|attr|be|begin|being|by|canceled|case|cases|clusters?|coherence|commutativity|compatibility|connectedness|consider|consistency|constructors|contradiction|correctness|def|deffunc|define|definitions?|defpred|do|does|equals|end|environ|ex|exactly|existence|for|from|func|given|hence|hereby|holds|idempotence|identity|iff?|implies|involutiveness|irreflexivity|is|it|let|means|mode|non|not|notations?|now|of|or|otherwise|over|per|pred|prefix|projectivity|proof|provided|qua|reconsider|redefine|reduce|reducibility|reflexivity|registrations?|requirements|reserve|sch|schemes?|section|selector|set|sethood|st|struct|such|suppose|symmetry|synonym|take|that|the|then|theorems?|thesis|thus|to|transitivity|uniqueness|vocabular(?:y|ies)|when|where|with|wrt)\b/,parameter:{pattern:/\$(?:10|\d)/,alias:"variable"},variable:/\b\w+(?=:)/,number:/(?:\b|-)\d+\b/,operator:/\.\.\.|->|&|\.?=/,punctuation:/\(#|#\)|[,:;\[\](){}]/}}e.exports=t,t.displayName="mizar",t.aliases=[]},90596(e){"use strict";function t(e){var t,n,r,i;t=e,r=["ObjectId","Code","BinData","DBRef","Timestamp","NumberLong","NumberDecimal","MaxKey","MinKey","RegExp","ISODate","UUID"],i="(?:"+(n=(n=["$eq","$gt","$gte","$in","$lt","$lte","$ne","$nin","$and","$not","$nor","$or","$exists","$type","$expr","$jsonSchema","$mod","$regex","$text","$where","$geoIntersects","$geoWithin","$near","$nearSphere","$all","$elemMatch","$size","$bitsAllClear","$bitsAllSet","$bitsAnyClear","$bitsAnySet","$comment","$elemMatch","$meta","$slice","$currentDate","$inc","$min","$max","$mul","$rename","$set","$setOnInsert","$unset","$addToSet","$pop","$pull","$push","$pullAll","$each","$position","$slice","$sort","$bit","$addFields","$bucket","$bucketAuto","$collStats","$count","$currentOp","$facet","$geoNear","$graphLookup","$group","$indexStats","$limit","$listLocalSessions","$listSessions","$lookup","$match","$merge","$out","$planCacheStats","$project","$redact","$replaceRoot","$replaceWith","$sample","$set","$skip","$sort","$sortByCount","$unionWith","$unset","$unwind","$abs","$accumulator","$acos","$acosh","$add","$addToSet","$allElementsTrue","$and","$anyElementTrue","$arrayElemAt","$arrayToObject","$asin","$asinh","$atan","$atan2","$atanh","$avg","$binarySize","$bsonSize","$ceil","$cmp","$concat","$concatArrays","$cond","$convert","$cos","$dateFromParts","$dateToParts","$dateFromString","$dateToString","$dayOfMonth","$dayOfWeek","$dayOfYear","$degreesToRadians","$divide","$eq","$exp","$filter","$first","$floor","$function","$gt","$gte","$hour","$ifNull","$in","$indexOfArray","$indexOfBytes","$indexOfCP","$isArray","$isNumber","$isoDayOfWeek","$isoWeek","$isoWeekYear","$last","$last","$let","$literal","$ln","$log","$log10","$lt","$lte","$ltrim","$map","$max","$mergeObjects","$meta","$min","$millisecond","$minute","$mod","$month","$multiply","$ne","$not","$objectToArray","$or","$pow","$push","$radiansToDegrees","$range","$reduce","$regexFind","$regexFindAll","$regexMatch","$replaceOne","$replaceAll","$reverseArray","$round","$rtrim","$second","$setDifference","$setEquals","$setIntersection","$setIsSubset","$setUnion","$size","$sin","$slice","$split","$sqrt","$stdDevPop","$stdDevSamp","$strcasecmp","$strLenBytes","$strLenCP","$substr","$substrBytes","$substrCP","$subtract","$sum","$switch","$tan","$toBool","$toDate","$toDecimal","$toDouble","$toInt","$toLong","$toObjectId","$toString","$toLower","$toUpper","$trim","$trunc","$type","$week","$year","$zip","$comment","$explain","$hint","$max","$maxTimeMS","$min","$orderby","$query","$returnKey","$showDiskLoc","$natural"]).map(function(e){return e.replace("$","\\$")})).join("|")+")\\b",t.languages.mongodb=t.languages.extend("javascript",{}),t.languages.insertBefore("mongodb","string",{property:{pattern:/(?:(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)(?=\s*:)/,greedy:!0,inside:{keyword:RegExp("^(['\"])?"+i+"(?:\\1)?$")}}}),t.languages.mongodb.string.inside={url:{pattern:/https?:\/\/[-\w@:%.+~#=]{1,256}\.[a-z0-9()]{1,6}\b[-\w()@:%+.~#?&/=]*/i,greedy:!0},entity:{pattern:/\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b/,greedy:!0}},t.languages.insertBefore("mongodb","constant",{builtin:{pattern:RegExp("\\b(?:"+r.join("|")+")\\b"),alias:"keyword"}})}e.exports=t,t.displayName="mongodb",t.aliases=[]},95721(e){"use strict";function t(e){e.languages.monkey={string:/"[^"\r\n]*"/,comment:[{pattern:/^#Rem\s[\s\S]*?^#End/im,greedy:!0},{pattern:/'.+/,greedy:!0}],preprocessor:{pattern:/(^[ \t]*)#.+/m,lookbehind:!0,alias:"comment"},function:/\b\w+(?=\()/,"type-char":{pattern:/(\w)[?%#$]/,lookbehind:!0,alias:"variable"},number:{pattern:/((?:\.\.)?)(?:(?:\b|\B-\.?|\B\.)\d+(?:(?!\.\.)\.\d*)?|\$[\da-f]+)/i,lookbehind:!0},keyword:/\b(?:Void|Strict|Public|Private|Property|Bool|Int|Float|String|Array|Object|Continue|Exit|Import|Extern|New|Self|Super|Try|Catch|Eachin|True|False|Extends|Abstract|Final|Select|Case|Default|Const|Local|Global|Field|Method|Function|Class|End|If|Then|Else|ElseIf|EndIf|While|Wend|Repeat|Until|Forever|For|To|Step|Next|Return|Module|Interface|Implements|Inline|Throw|Null)\b/i,operator:/\.\.|<[=>]?|>=?|:?=|(?:[+\-*\/&~|]|\b(?:Mod|Shl|Shr)\b)=?|\b(?:And|Not|Or)\b/i,punctuation:/[.,:;()\[\]]/}}e.exports=t,t.displayName="monkey",t.aliases=[]},64262(e){"use strict";function t(e){e.languages.moonscript={comment:/--.*/,string:[{pattern:/'[^']*'|\[(=*)\[[\s\S]*?\]\1\]/,greedy:!0},{pattern:/"[^"]*"/,greedy:!0,inside:{interpolation:{pattern:/#\{[^{}]*\}/,inside:{moonscript:{pattern:/(^#\{)[\s\S]+(?=\})/,lookbehind:!0,inside:null},"interpolation-punctuation":{pattern:/#\{|\}/,alias:"punctuation"}}}}}],"class-name":[{pattern:/(\b(?:class|extends)[ \t]+)\w+/,lookbehind:!0},/\b[A-Z]\w*/],keyword:/\b(?:class|continue|do|else|elseif|export|extends|for|from|if|import|in|local|nil|return|self|super|switch|then|unless|using|when|while|with)\b/,variable:/@@?\w*/,property:{pattern:/\b(?!\d)\w+(?=:)|(:)(?!\d)\w+/,lookbehind:!0},function:{pattern:/\b(?:_G|_VERSION|assert|collectgarbage|coroutine\.(?:running|create|resume|status|wrap|yield)|debug\.(?:debug|gethook|getinfo|getlocal|getupvalue|setlocal|setupvalue|sethook|traceback|getfenv|getmetatable|getregistry|setfenv|setmetatable)|dofile|error|getfenv|getmetatable|io\.(?:stdin|stdout|stderr|close|flush|input|lines|open|output|popen|read|tmpfile|type|write)|ipairs|load|loadfile|loadstring|math\.(?:abs|acos|asin|atan|atan2|ceil|sin|cos|tan|deg|exp|floor|log|log10|max|min|fmod|modf|cosh|sinh|tanh|pow|rad|sqrt|frexp|ldexp|random|randomseed|pi)|module|next|os\.(?:clock|date|difftime|execute|exit|getenv|remove|rename|setlocale|time|tmpname)|package\.(?:cpath|loaded|loadlib|path|preload|seeall)|pairs|pcall|print|rawequal|rawget|rawset|require|select|setfenv|setmetatable|string\.(?:byte|char|dump|find|len|lower|rep|sub|upper|format|gsub|gmatch|match|reverse)|table\.(?:maxn|concat|sort|insert|remove)|tonumber|tostring|type|unpack|xpcall)\b/,inside:{punctuation:/\./}},boolean:/\b(?:false|true)\b/,number:/(?:\B\.\d+|\b\d+\.\d+|\b\d+(?=[eE]))(?:[eE][-+]?\d+)?\b|\b(?:0x[a-fA-F\d]+|\d+)(?:U?LL)?\b/,operator:/\.{3}|[-=]>|~=|(?:[-+*/%<>!=]|\.\.)=?|[:#^]|\b(?:and|or)\b=?|\b(?:not)\b/,punctuation:/[.,()[\]{}\\]/},e.languages.moonscript.string[1].inside.interpolation.inside.moonscript.inside=e.languages.moonscript,e.languages.moon=e.languages.moonscript}e.exports=t,t.displayName="moonscript",t.aliases=["moon"]},18190(e){"use strict";function t(e){e.languages.n1ql={comment:/\/\*[\s\S]*?(?:$|\*\/)/,parameter:/\$[\w.]+/,string:{pattern:/(["'])(?:\\[\s\S]|(?!\1)[^\\]|\1\1)*\1/,greedy:!0},identifier:{pattern:/`(?:\\[\s\S]|[^\\`]|``)*`/,greedy:!0},function:/\b(?:ABS|ACOS|ARRAY_AGG|ARRAY_APPEND|ARRAY_AVG|ARRAY_CONCAT|ARRAY_CONTAINS|ARRAY_COUNT|ARRAY_DISTINCT|ARRAY_FLATTEN|ARRAY_IFNULL|ARRAY_INSERT|ARRAY_INTERSECT|ARRAY_LENGTH|ARRAY_MAX|ARRAY_MIN|ARRAY_POSITION|ARRAY_PREPEND|ARRAY_PUT|ARRAY_RANGE|ARRAY_REMOVE|ARRAY_REPEAT|ARRAY_REPLACE|ARRAY_REVERSE|ARRAY_SORT|ARRAY_STAR|ARRAY_SUM|ARRAY_SYMDIFF|ARRAY_SYMDIFFN|ARRAY_UNION|ASIN|ATAN|ATAN2|AVG|BASE64|BASE64_DECODE|BASE64_ENCODE|BITAND|BITCLEAR|BITNOT|BITOR|BITSET|BITSHIFT|BITTEST|BITXOR|CEIL|CLOCK_LOCAL|CLOCK_MILLIS|CLOCK_STR|CLOCK_TZ|CLOCK_UTC|CONTAINS|CONTAINS_TOKEN|CONTAINS_TOKEN_LIKE|CONTAINS_TOKEN_REGEXP|COS|COUNT|CURL|DATE_ADD_MILLIS|DATE_ADD_STR|DATE_DIFF_MILLIS|DATE_DIFF_STR|DATE_FORMAT_STR|DATE_PART_MILLIS|DATE_PART_STR|DATE_RANGE_MILLIS|DATE_RANGE_STR|DATE_TRUNC_MILLIS|DATE_TRUNC_STR|DECODE_JSON|DEGREES|DURATION_TO_STR|E|ENCODED_SIZE|ENCODE_JSON|EXP|FLOOR|GREATEST|HAS_TOKEN|IFINF|IFMISSING|IFMISSINGORNULL|IFNAN|IFNANORINF|IFNULL|INITCAP|ISARRAY|ISATOM|ISBOOLEAN|ISNUMBER|ISOBJECT|ISSTRING|IsBitSET|LEAST|LENGTH|LN|LOG|LOWER|LTRIM|MAX|META|MILLIS|MILLIS_TO_LOCAL|MILLIS_TO_STR|MILLIS_TO_TZ|MILLIS_TO_UTC|MILLIS_TO_ZONE_NAME|MIN|MISSINGIF|NANIF|NEGINFIF|NOW_LOCAL|NOW_MILLIS|NOW_STR|NOW_TZ|NOW_UTC|NULLIF|OBJECT_ADD|OBJECT_CONCAT|OBJECT_INNER_PAIRS|OBJECT_INNER_VALUES|OBJECT_LENGTH|OBJECT_NAMES|OBJECT_PAIRS|OBJECT_PUT|OBJECT_REMOVE|OBJECT_RENAME|OBJECT_REPLACE|OBJECT_UNWRAP|OBJECT_VALUES|PAIRS|PI|POLY_LENGTH|POSINFIF|POSITION|POWER|RADIANS|RANDOM|REGEXP_CONTAINS|REGEXP_LIKE|REGEXP_POSITION|REGEXP_REPLACE|REPEAT|REPLACE|REVERSE|ROUND|RTRIM|SIGN|SIN|SPLIT|SQRT|STR_TO_DURATION|STR_TO_MILLIS|STR_TO_TZ|STR_TO_UTC|STR_TO_ZONE_NAME|SUBSTR|SUFFIXES|SUM|TAN|TITLE|TOARRAY|TOATOM|TOBOOLEAN|TOKENS|TONUMBER|TOOBJECT|TOSTRING|TRIM|TRUNC|TYPE|UPPER|WEEKDAY_MILLIS|WEEKDAY_STR)(?=\s*\()/i,keyword:/\b(?:ALL|ALTER|ANALYZE|AS|ASC|BEGIN|BINARY|BOOLEAN|BREAK|BUCKET|BUILD|BY|CALL|CAST|CLUSTER|COLLATE|COLLECTION|COMMIT|CONNECT|CONTINUE|CORRELATE|COVER|CREATE|DATABASE|DATASET|DATASTORE|DECLARE|DECREMENT|DELETE|DERIVED|DESC|DESCRIBE|DISTINCT|DO|DROP|EACH|ELEMENT|EXCEPT|EXCLUDE|EXECUTE|EXPLAIN|FETCH|FLATTEN|FOR|FORCE|FROM|FUNCTION|GRANT|GROUP|GSI|HAVING|IF|IGNORE|ILIKE|INCLUDE|INCREMENT|INDEX|INFER|INLINE|INNER|INSERT|INTERSECT|INTO|IS|JOIN|KEY|KEYS|KEYSPACE|KNOWN|LAST|LEFT|LET|LETTING|LIMIT|LSM|MAP|MAPPING|MATCHED|MATERIALIZED|MERGE|MINUS|MISSING|NAMESPACE|NEST|NULL|NUMBER|OBJECT|OFFSET|ON|OPTION|ORDER|OUTER|OVER|PARSE|PARTITION|PASSWORD|PATH|POOL|PREPARE|PRIMARY|PRIVATE|PRIVILEGE|PROCEDURE|PUBLIC|RAW|REALM|REDUCE|RENAME|RETURN|RETURNING|REVOKE|RIGHT|ROLE|ROLLBACK|SATISFIES|SCHEMA|SELECT|SELF|SEMI|SET|SHOW|SOME|START|STATISTICS|STRING|SYSTEM|TO|TRANSACTION|TRIGGER|TRUNCATE|UNDER|UNION|UNIQUE|UNKNOWN|UNNEST|UNSET|UPDATE|UPSERT|USE|USER|USING|VALIDATE|VALUE|VALUES|VIA|VIEW|WHERE|WHILE|WITH|WORK|XOR)\b/i,boolean:/\b(?:TRUE|FALSE)\b/i,number:/(?:\b\d+\.|\B\.)\d+e[+\-]?\d+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/%]|!=|==?|\|\||<[>=]?|>=?|\b(?:AND|ANY|ARRAY|BETWEEN|CASE|ELSE|END|EVERY|EXISTS|FIRST|IN|LIKE|NOT|OR|THEN|VALUED|WHEN|WITHIN)\b/i,punctuation:/[;[\](),.{}:]/}}e.exports=t,t.displayName="n1ql",t.aliases=[]},70896(e){"use strict";function t(e){e.languages.n4js=e.languages.extend("javascript",{keyword:/\b(?:any|Array|boolean|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|false|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|module|new|null|number|package|private|protected|public|return|set|static|string|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)\b/}),e.languages.insertBefore("n4js","constant",{annotation:{pattern:/@+\w+/,alias:"operator"}}),e.languages.n4jsd=e.languages.n4js}e.exports=t,t.displayName="n4js",t.aliases=["n4jsd"]},42242(e){"use strict";function t(e){e.languages["nand2tetris-hdl"]={comment:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,keyword:/\b(?:CHIP|IN|OUT|PARTS|BUILTIN|CLOCKED)\b/,boolean:/\b(?:true|false)\b/,function:/\b[A-Za-z][A-Za-z0-9]*(?=\()/,number:/\b\d+\b/,operator:/=|\.\./,punctuation:/[{}[\];(),:]/}}e.exports=t,t.displayName="nand2tetrisHdl",t.aliases=[]},37943(e){"use strict";function t(e){!function(e){var t=/\{[^\r\n\[\]{}]*\}/,n={"quoted-string":{pattern:/"(?:[^"\\]|\\.)*"/,alias:"operator"},"command-param-id":{pattern:/(\s)\w+:/,lookbehind:!0,alias:"property"},"command-param-value":[{pattern:t,alias:"selector"},{pattern:/([\t ])\S+/,lookbehind:!0,greedy:!0,alias:"operator"},{pattern:/\S(?:.*\S)?/,alias:"operator"}]};function r(e){for(var t="[]{}",n=[],r=0;r.+/m,alias:"tag",inside:{value:{pattern:/(^>\w+[\t ]+)(?!\s)[^{}\r\n]+/,lookbehind:!0,alias:"operator"},key:{pattern:/(^>)\w+/,lookbehind:!0}}},label:{pattern:/^([\t ]*)#[\t ]*\w+[\t ]*$/m,lookbehind:!0,alias:"regex"},command:{pattern:/^([\t ]*)@\w+(?=[\t ]|$).*/m,lookbehind:!0,alias:"function",inside:{"command-name":/^@\w+/,expression:{pattern:t,greedy:!0,alias:"selector"},"command-params":{pattern:/\s*\S[\s\S]*/,inside:n}}},"generic-text":{pattern:/(^[ \t]*)[^#@>;\s].*/m,lookbehind:!0,alias:"punctuation",inside:{"escaped-char":/\\[{}\[\]"]/,expression:{pattern:t,greedy:!0,alias:"selector"},"inline-command":{pattern:/\[[\t ]*\w[^\r\n\[\]]*\]/,greedy:!0,alias:"function",inside:{"command-params":{pattern:/(^\[[\t ]*\w+\b)[\s\S]+(?=\]$)/,lookbehind:!0,inside:n},"command-param-name":{pattern:/^(\[[\t ]*)\w+/,lookbehind:!0,alias:"name"},"start-stop-char":/[\[\]]/}}}}},e.languages.nani=e.languages.naniscript,e.hooks.add("after-tokenize",function(e){e.tokens.forEach(function(e){if("string"!=typeof e&&"generic-text"===e.type){var t=i(e);r(t)||(e.type="bad-line",e.content=t)}})})}(e)}e.exports=t,t.displayName="naniscript",t.aliases=[]},293(e){"use strict";function t(e){e.languages.nasm={comment:/;.*$/m,string:/(["'`])(?:\\.|(?!\1)[^\\\r\n])*\1/,label:{pattern:/(^\s*)[A-Za-z._?$][\w.?$@~#]*:/m,lookbehind:!0,alias:"function"},keyword:[/\[?BITS (?:16|32|64)\]?/,{pattern:/(^\s*)section\s*[a-z.]+:?/im,lookbehind:!0},/(?:extern|global)[^;\r\n]*/i,/(?:CPU|FLOAT|DEFAULT).*$/m],register:{pattern:/\b(?:st\d|[xyz]mm\d\d?|[cdt]r\d|r\d\d?[bwd]?|[er]?[abcd]x|[abcd][hl]|[er]?(?:bp|sp|si|di)|[cdefgs]s)\b/i,alias:"variable"},number:/(?:\b|(?=\$))(?:0[hx](?:\.[\da-f]+|[\da-f]+(?:\.[\da-f]+)?)(?:p[+-]?\d+)?|\d[\da-f]+[hx]|\$\d[\da-f]*|0[oq][0-7]+|[0-7]+[oq]|0[by][01]+|[01]+[by]|0[dt]\d+|(?:\d+(?:\.\d+)?|\.\d+)(?:\.?e[+-]?\d+)?[dt]?)\b/i,operator:/[\[\]*+\-\/%<>=&|$!]/}}e.exports=t,t.displayName="nasm",t.aliases=[]},83873(e){"use strict";function t(e){e.languages.neon={comment:{pattern:/#.*/,greedy:!0},datetime:{pattern:/(^|[[{(=:,\s])\d\d\d\d-\d\d?-\d\d?(?:(?:[Tt]| +)\d\d?:\d\d:\d\d(?:\.\d*)? *(?:Z|[-+]\d\d?(?::?\d\d)?)?)?(?=$|[\]}),\s])/,lookbehind:!0,alias:"number"},key:{pattern:/(^|[[{(,\s])[^,:=[\]{}()'"\s]+(?=\s*:(?:$|[\]}),\s])|\s*=)/,lookbehind:!0,alias:"atrule"},number:{pattern:/(^|[[{(=:,\s])[+-]?(?:0x[\da-fA-F]+|0o[0-7]+|0b[01]+|(?:\d+(?:\.\d*)?|\.?\d+)(?:[eE][+-]?\d+)?)(?=$|[\]}),:=\s])/,lookbehind:!0},boolean:{pattern:/(^|[[{(=:,\s])(?:true|false|yes|no)(?=$|[\]}),:=\s])/i,lookbehind:!0},null:{pattern:/(^|[[{(=:,\s])(?:null)(?=$|[\]}),:=\s])/i,lookbehind:!0,alias:"keyword"},string:{pattern:/(^|[[{(=:,\s])(?:('''|""")\r?\n(?:(?:[^\r\n]|\r?\n(?![\t ]*\2))*\r?\n)?[\t ]*\2|'[^'\r\n]*'|"(?:\\.|[^\\"\r\n])*")/,lookbehind:!0,greedy:!0},literal:{pattern:/(^|[[{(=:,\s])(?:[^#"',:=[\]{}()\s`-]|[:-][^"',=[\]{}()\s])(?:[^,:=\]})(\s]|:(?![\s,\]})]|$)|[ \t]+[^#,:=\]})(\s])*/,lookbehind:!0,alias:"string"},punctuation:/[,:=[\]{}()-]/}}e.exports=t,t.displayName="neon",t.aliases=[]},75932(e){"use strict";function t(e){e.languages.nevod={comment:/\/\/.*|(?:\/\*[\s\S]*?(?:\*\/|$))/,string:{pattern:/(?:"(?:""|[^"])*"(?!")|'(?:''|[^'])*'(?!'))!?\*?/,greedy:!0,inside:{"string-attrs":/!$|!\*$|\*$/}},namespace:{pattern:/(@namespace\s+)[a-zA-Z0-9\-.]+(?=\s*\{)/,lookbehind:!0},pattern:{pattern:/(@pattern\s+)?#?[a-zA-Z0-9\-.]+(?:\s*\(\s*(?:~\s*)?[a-zA-Z0-9\-.]+\s*(?:,\s*(?:~\s*)?[a-zA-Z0-9\-.]*)*\))?(?=\s*=)/,lookbehind:!0,inside:{"pattern-name":{pattern:/^#?[a-zA-Z0-9\-.]+/,alias:"class-name"},fields:{pattern:/\(.*\)/,inside:{"field-name":{pattern:/[a-zA-Z0-9\-.]+/,alias:"variable"},punctuation:/[,()]/,operator:{pattern:/~/,alias:"field-hidden-mark"}}}}},search:{pattern:/(@search\s+|#)[a-zA-Z0-9\-.]+(?:\.\*)?(?=\s*;)/,alias:"function",lookbehind:!0},keyword:/@(?:require|namespace|pattern|search|inside|outside|having|where)\b/,"standard-pattern":{pattern:/\b(?:Word|Punct|Symbol|Space|LineBreak|Start|End|Alpha|AlphaNum|Num|NumAlpha|Blank|WordBreak|Any)(?:\([a-zA-Z0-9\-.,\s+]*\))?/,inside:{"standard-pattern-name":{pattern:/^[a-zA-Z0-9\-.]+/,alias:"builtin"},quantifier:{pattern:/\b\d+(?:\s*\+|\s*-\s*\d+)?(?!\w)/,alias:"number"},"standard-pattern-attr":{pattern:/[a-zA-Z0-9\-.]+/,alias:"builtin"},punctuation:/[,()]/}},quantifier:{pattern:/\b\d+(?:\s*\+|\s*-\s*\d+)?(?!\w)/,alias:"number"},operator:[{pattern:/=/,alias:"pattern-def"},{pattern:/&/,alias:"conjunction"},{pattern:/~/,alias:"exception"},{pattern:/\?/,alias:"optionality"},{pattern:/[[\]]/,alias:"repetition"},{pattern:/[{}]/,alias:"variation"},{pattern:/[+_]/,alias:"sequence"},{pattern:/\.{2,3}/,alias:"span"}],"field-capture":[{pattern:/([a-zA-Z0-9\-.]+\s*\()\s*[a-zA-Z0-9\-.]+\s*:\s*[a-zA-Z0-9\-.]+(?:\s*,\s*[a-zA-Z0-9\-.]+\s*:\s*[a-zA-Z0-9\-.]+)*(?=\s*\))/,lookbehind:!0,inside:{"field-name":{pattern:/[a-zA-Z0-9\-.]+/,alias:"variable"},colon:/:/}},{pattern:/[a-zA-Z0-9\-.]+\s*:/,inside:{"field-name":{pattern:/[a-zA-Z0-9\-.]+/,alias:"variable"},colon:/:/}}],punctuation:/[:;,()]/,name:/[a-zA-Z0-9\-.]+/}}e.exports=t,t.displayName="nevod",t.aliases=[]},60221(e){"use strict";function t(e){var t,n;n=/\$(?:\w[a-z\d]*(?:_[^\x00-\x1F\s"'\\()$]*)?|\{[^}\s"'\\]+\})/i,(t=e).languages.nginx={comment:{pattern:/(^|[\s{};])#.*/,lookbehind:!0},directive:{pattern:/(^|\s)\w(?:[^;{}"'\\\s]|\\.|"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*'|\s+(?:#.*(?!.)|(?![#\s])))*?(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:{string:{pattern:/((?:^|[^\\])(?:\\\\)*)(?:"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*')/,lookbehind:!0,inside:{escape:{pattern:/\\["'\\nrt]/,alias:"entity"},variable:n}},comment:{pattern:/(\s)#.*/,lookbehind:!0,greedy:!0},keyword:{pattern:/^\S+/,greedy:!0},boolean:{pattern:/(\s)(?:off|on)(?!\S)/,lookbehind:!0},number:{pattern:/(\s)\d+[a-z]*(?!\S)/i,lookbehind:!0},variable:n}},punctuation:/[{};]/}}e.exports=t,t.displayName="nginx",t.aliases=[]},44188(e){"use strict";function t(e){e.languages.nim={comment:/#.*/,string:{pattern:/(?:(?:\b(?!\d)(?:\w|\\x[8-9a-fA-F][0-9a-fA-F])+)?(?:"""[\s\S]*?"""(?!")|"(?:\\[\s\S]|""|[^"\\])*")|'(?:\\(?:\d+|x[\da-fA-F]{2}|.)|[^'])')/,greedy:!0},number:/\b(?:0[xXoObB][\da-fA-F_]+|\d[\d_]*(?:(?!\.\.)\.[\d_]*)?(?:[eE][+-]?\d[\d_]*)?)(?:'?[iuf]\d*)?/,keyword:/\b(?:addr|as|asm|atomic|bind|block|break|case|cast|concept|const|continue|converter|defer|discard|distinct|do|elif|else|end|enum|except|export|finally|for|from|func|generic|if|import|include|interface|iterator|let|macro|method|mixin|nil|object|out|proc|ptr|raise|ref|return|static|template|try|tuple|type|using|var|when|while|with|without|yield)\b/,function:{pattern:/(?:(?!\d)(?:\w|\\x[8-9a-fA-F][0-9a-fA-F])+|`[^`\r\n]+`)\*?(?:\[[^\]]+\])?(?=\s*\()/,inside:{operator:/\*$/}},ignore:{pattern:/`[^`\r\n]+`/,inside:{punctuation:/`/}},operator:{pattern:/(^|[({\[](?=\.\.)|(?![({\[]\.).)(?:(?:[=+\-*\/<>@$~&%|!?^:\\]|\.\.|\.(?![)}\]]))+|\b(?:and|div|of|or|in|is|isnot|mod|not|notin|shl|shr|xor)\b)/m,lookbehind:!0},punctuation:/[({\[]\.|\.[)}\]]|[`(){}\[\],:]/}}e.exports=t,t.displayName="nim",t.aliases=[]},74426(e){"use strict";function t(e){e.languages.nix={comment:/\/\*[\s\S]*?\*\/|#.*/,string:{pattern:/"(?:[^"\\]|\\[\s\S])*"|''(?:(?!'')[\s\S]|''(?:'|\\|\$\{))*''/,greedy:!0,inside:{interpolation:{pattern:/(^|(?:^|(?!'').)[^\\])\$\{(?:[^{}]|\{[^}]*\})*\}/,lookbehind:!0,inside:{antiquotation:{pattern:/^\$(?=\{)/,alias:"variable"}}}}},url:[/\b(?:[a-z]{3,7}:\/\/)[\w\-+%~\/.:#=?&]+/,{pattern:/([^\/])(?:[\w\-+%~.:#=?&]*(?!\/\/)[\w\-+%~\/.:#=?&])?(?!\/\/)\/[\w\-+%~\/.:#=?&]*/,lookbehind:!0}],antiquotation:{pattern:/\$(?=\{)/,alias:"variable"},number:/\b\d+\b/,keyword:/\b(?:assert|builtins|else|if|in|inherit|let|null|or|then|with)\b/,function:/\b(?:abort|add|all|any|attrNames|attrValues|baseNameOf|compareVersions|concatLists|currentSystem|deepSeq|derivation|dirOf|div|elem(?:At)?|fetch(?:url|Tarball)|filter(?:Source)?|fromJSON|genList|getAttr|getEnv|hasAttr|hashString|head|import|intersectAttrs|is(?:Attrs|Bool|Function|Int|List|Null|String)|length|lessThan|listToAttrs|map|mul|parseDrvName|pathExists|read(?:Dir|File)|removeAttrs|replaceStrings|seq|sort|stringLength|sub(?:string)?|tail|throw|to(?:File|JSON|Path|String|XML)|trace|typeOf)\b|\bfoldl'\B/,boolean:/\b(?:true|false)\b/,operator:/[=!<>]=?|\+\+?|\|\||&&|\/\/|->?|[?@]/,punctuation:/[{}()[\].,:;]/},e.languages.nix.string.inside.interpolation.inside.rest=e.languages.nix}e.exports=t,t.displayName="nix",t.aliases=[]},88447(e){"use strict";function t(e){e.languages.nsis={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|[#;].*)/,lookbehind:!0},string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},keyword:{pattern:/(^[\t ]*)(?:Abort|Add(?:BrandingImage|Size)|AdvSplash|Allow(?:RootDirInstall|SkipFiles)|AutoCloseWindow|Banner|BG(?:Font|Gradient|Image)|BrandingText|BringToFront|Call(?:InstDLL)?|Caption|ChangeUI|CheckBitmap|ClearErrors|CompletedText|ComponentText|CopyFiles|CRCCheck|Create(?:Directory|Font|ShortCut)|Delete(?:INISec|INIStr|RegKey|RegValue)?|Detail(?:Print|sButtonText)|Dialer|Dir(?:Text|Var|Verify)|EnableWindow|Enum(?:RegKey|RegValue)|Exch|Exec(?:Shell(?:Wait)?|Wait)?|ExpandEnvStrings|File(?:BufSize|Close|ErrorText|Open|Read|ReadByte|ReadUTF16LE|ReadWord|WriteUTF16LE|Seek|Write|WriteByte|WriteWord)?|Find(?:Close|First|Next|Window)|FlushINI|Get(?:CurInstType|CurrentAddress|DlgItem|DLLVersion(?:Local)?|ErrorLevel|FileTime(?:Local)?|FullPathName|Function(?:Address|End)?|InstDirError|LabelAddress|TempFileName)|Goto|HideWindow|Icon|If(?:Abort|Errors|FileExists|RebootFlag|Silent)|InitPluginsDir|Install(?:ButtonText|Colors|Dir(?:RegKey)?)|InstProgressFlags|Inst(?:Type(?:GetText|SetText)?)|Int(?:64|Ptr)?CmpU?|Int(?:64)?Fmt|Int(?:Ptr)?Op|IsWindow|Lang(?:DLL|String)|License(?:BkColor|Data|ForceSelection|LangString|Text)|LoadLanguageFile|LockWindow|Log(?:Set|Text)|Manifest(?:DPIAware|SupportedOS)|Math|MessageBox|MiscButtonText|Name|Nop|ns(?:Dialogs|Exec)|NSISdl|OutFile|Page(?:Callbacks)?|PE(?:DllCharacteristics|SubsysVer)|Pop|Push|Quit|Read(?:EnvStr|INIStr|RegDWORD|RegStr)|Reboot|RegDLL|Rename|RequestExecutionLevel|ReserveFile|Return|RMDir|SearchPath|Section(?:End|GetFlags|GetInstTypes|GetSize|GetText|Group|In|SetFlags|SetInstTypes|SetSize|SetText)?|SendMessage|Set(?:AutoClose|BrandingImage|Compress|Compressor(?:DictSize)?|CtlColors|CurInstType|DatablockOptimize|DateSave|Details(?:Print|View)|ErrorLevel|Errors|FileAttributes|Font|OutPath|Overwrite|PluginUnload|RebootFlag|RegView|ShellVarContext|Silent)|Show(?:InstDetails|UninstDetails|Window)|Silent(?:Install|UnInstall)|Sleep|SpaceTexts|Splash|StartMenu|Str(?:CmpS?|Cpy|Len)|SubCaption|System|Unicode|Uninstall(?:ButtonText|Caption|Icon|SubCaption|Text)|UninstPage|UnRegDLL|UserInfo|Var|VI(?:AddVersionKey|FileVersion|ProductVersion)|VPatch|WindowIcon|Write(?:INIStr|Reg(?:Bin|DWORD|ExpandStr|MultiStr|None|Str)|Uninstaller)|XPStyle)\b/m,lookbehind:!0},property:/\b(?:admin|all|auto|both|colored|false|force|hide|highest|lastused|leave|listonly|none|normal|notset|off|on|open|print|show|silent|silentlog|smooth|textonly|true|user|ARCHIVE|FILE_(?:ATTRIBUTE_ARCHIVE|ATTRIBUTE_NORMAL|ATTRIBUTE_OFFLINE|ATTRIBUTE_READONLY|ATTRIBUTE_SYSTEM|ATTRIBUTE_TEMPORARY)|HK(?:(?:CR|CU|LM)(?:32|64)?|DD|PD|U)|HKEY_(?:CLASSES_ROOT|CURRENT_CONFIG|CURRENT_USER|DYN_DATA|LOCAL_MACHINE|PERFORMANCE_DATA|USERS)|ID(?:ABORT|CANCEL|IGNORE|NO|OK|RETRY|YES)|MB_(?:ABORTRETRYIGNORE|DEFBUTTON1|DEFBUTTON2|DEFBUTTON3|DEFBUTTON4|ICONEXCLAMATION|ICONINFORMATION|ICONQUESTION|ICONSTOP|OK|OKCANCEL|RETRYCANCEL|RIGHT|RTLREADING|SETFOREGROUND|TOPMOST|USERICON|YESNO)|NORMAL|OFFLINE|READONLY|SHCTX|SHELL_CONTEXT|SYSTEM|TEMPORARY)\b/,constant:/\$\{[\w\.:\^-]+\}|\$\([\w\.:\^-]+\)/i,variable:/\$\w+/i,number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--?|\+\+?|<=?|>=?|==?=?|&&?|\|\|?|[?*\/~^%]/,punctuation:/[{}[\];(),.:]/,important:{pattern:/(^[\t ]*)!(?:addincludedir|addplugindir|appendfile|cd|define|delfile|echo|else|endif|error|execute|finalize|getdllversion|gettlbversion|ifdef|ifmacrodef|ifmacrondef|ifndef|if|include|insertmacro|macroend|macro|makensis|packhdr|pragma|searchparse|searchreplace|system|tempfile|undef|verbose|warning)\b/im,lookbehind:!0}}}e.exports=t,t.displayName="nsis",t.aliases=[]},16032(e,t,n){"use strict";var r=n(65806);function i(e){e.register(r),e.languages.objectivec=e.languages.extend("c",{string:/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1|@"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,keyword:/\b(?:asm|typeof|inline|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|union|unsigned|void|volatile|while|in|self|super)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete e.languages.objectivec["class-name"],e.languages.objc=e.languages.objectivec}e.exports=i,i.displayName="objectivec",i.aliases=["objc"]},33607(e){"use strict";function t(e){e.languages.ocaml={comment:/\(\*[\s\S]*?\*\)/,string:[{pattern:/"(?:\\.|[^\\\r\n"])*"/,greedy:!0},{pattern:/(['`])(?:\\(?:\d+|x[\da-f]+|.)|(?!\1)[^\\\r\n])\1/i,greedy:!0}],number:/\b(?:0x[\da-f][\da-f_]+|(?:0[bo])?\d[\d_]*(?:\.[\d_]*)?(?:e[+-]?[\d_]+)?)/i,directive:{pattern:/\B#\w+/,alias:"important"},label:{pattern:/\B~\w+/,alias:"function"},"type-variable":{pattern:/\B'\w+/,alias:"function"},variant:{pattern:/`\w+/,alias:"variable"},module:{pattern:/\b[A-Z]\w+/,alias:"variable"},keyword:/\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|nonrec|object|of|open|private|rec|sig|struct|then|to|try|type|val|value|virtual|when|where|while|with)\b/,boolean:/\b(?:false|true)\b/,operator:/:=|[=<>@^|&+\-*\/$%!?~][!$%&*+\-.\/:<=>?@^|~]*|\b(?:and|asr|land|lor|lsl|lsr|lxor|mod|or)\b/,punctuation:/[(){}\[\]|.,:;]|\b_\b/}}e.exports=t,t.displayName="ocaml",t.aliases=[]},22001(e,t,n){"use strict";var r=n(65806);function i(e){var t,n;e.register(r),(t=e).languages.opencl=t.languages.extend("c",{keyword:/\b(?:__attribute__|(?:__)?(?:constant|global|kernel|local|private|read_only|read_write|write_only)|auto|break|case|complex|const|continue|default|do|(?:float|double)(?:16(?:x(?:1|16|2|4|8))?|1x(?:1|16|2|4|8)|2(?:x(?:1|16|2|4|8))?|3|4(?:x(?:1|16|2|4|8))?|8(?:x(?:1|16|2|4|8))?)?|else|enum|extern|for|goto|(?:u?(?:char|short|int|long)|half|quad|bool)(?:2|3|4|8|16)?|if|imaginary|inline|packed|pipe|register|restrict|return|signed|sizeof|static|struct|switch|typedef|uniform|union|unsigned|void|volatile|while)\b/,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[fuhl]{0,4}/i,boolean:/\b(?:false|true)\b/,"constant-opencl-kernel":{pattern:/\b(?:CHAR_(?:BIT|MAX|MIN)|CLK_(?:ADDRESS_(?:CLAMP(?:_TO_EDGE)?|NONE|REPEAT)|FILTER_(?:LINEAR|NEAREST)|(?:LOCAL|GLOBAL)_MEM_FENCE|NORMALIZED_COORDS_(?:FALSE|TRUE))|CL_(?:BGRA|(?:HALF_)?FLOAT|INTENSITY|LUMINANCE|A?R?G?B?[Ax]?|(?:(?:UN)?SIGNED|[US]NORM)_(?:INT(?:8|16|32))|UNORM_(?:INT_101010|SHORT_(?:555|565)))|(?:DBL|FLT|HALF)_(?:DIG|EPSILON|MANT_DIG|(?:MIN|MAX)(?:(?:_10)?_EXP)?)|FLT_RADIX|HUGE_VALF?|INFINITY|(?:INT|LONG|SCHAR|SHRT)_(?:MAX|MIN)|(?:UCHAR|USHRT|UINT|ULONG)_MAX|MAXFLOAT|M_(?:[12]_PI|2_SQRTPI|E|LN(?:2|10)|LOG(?:10|2)E?|PI(?:_[24])?|SQRT(?:1_2|2))(?:_F|_H)?|NAN)\b/,alias:"constant"}}),t.languages.insertBefore("opencl","class-name",{"builtin-type":{pattern:/\b(?:_cl_(?:command_queue|context|device_id|event|kernel|mem|platform_id|program|sampler)|cl_(?:image_format|mem_fence_flags)|clk_event_t|event_t|image(?:1d_(?:array_|buffer_)?t|2d_(?:array_(?:depth_|msaa_depth_|msaa_)?|depth_|msaa_depth_|msaa_)?t|3d_t)|intptr_t|ndrange_t|ptrdiff_t|queue_t|reserve_id_t|sampler_t|size_t|uintptr_t)\b/,alias:"keyword"}}),n={"type-opencl-host":{pattern:/\b(?:cl_(?:GLenum|GLint|GLuin|addressing_mode|bitfield|bool|buffer_create_type|build_status|channel_(?:order|type)|(?:u?(?:char|short|int|long)|float|double)(?:2|3|4|8|16)?|command_(?:queue(?:_info|_properties)?|type)|context(?:_info|_properties)?|device_(?:exec_capabilities|fp_config|id|info|local_mem_type|mem_cache_type|type)|(?:event|sampler)(?:_info)?|filter_mode|half|image_info|kernel(?:_info|_work_group_info)?|map_flags|mem(?:_flags|_info|_object_type)?|platform_(?:id|info)|profiling_info|program(?:_build_info|_info)?))\b/,alias:"keyword"},"boolean-opencl-host":{pattern:/\bCL_(?:TRUE|FALSE)\b/,alias:"boolean"},"constant-opencl-host":{pattern:/\bCL_(?:A|ABGR|ADDRESS_(?:CLAMP(?:_TO_EDGE)?|MIRRORED_REPEAT|NONE|REPEAT)|ARGB|BGRA|BLOCKING|BUFFER_CREATE_TYPE_REGION|BUILD_(?:ERROR|IN_PROGRESS|NONE|PROGRAM_FAILURE|SUCCESS)|COMMAND_(?:ACQUIRE_GL_OBJECTS|BARRIER|COPY_(?:BUFFER(?:_RECT|_TO_IMAGE)?|IMAGE(?:_TO_BUFFER)?)|FILL_(?:BUFFER|IMAGE)|MAP(?:_BUFFER|_IMAGE)|MARKER|MIGRATE(?:_SVM)?_MEM_OBJECTS|NATIVE_KERNEL|NDRANGE_KERNEL|READ_(?:BUFFER(?:_RECT)?|IMAGE)|RELEASE_GL_OBJECTS|SVM_(?:FREE|MAP|MEMCPY|MEMFILL|UNMAP)|TASK|UNMAP_MEM_OBJECT|USER|WRITE_(?:BUFFER(?:_RECT)?|IMAGE))|COMPILER_NOT_AVAILABLE|COMPILE_PROGRAM_FAILURE|COMPLETE|CONTEXT_(?:DEVICES|INTEROP_USER_SYNC|NUM_DEVICES|PLATFORM|PROPERTIES|REFERENCE_COUNT)|DEPTH(?:_STENCIL)?|DEVICE_(?:ADDRESS_BITS|AFFINITY_DOMAIN_(?:L[1-4]_CACHE|NEXT_PARTITIONABLE|NUMA)|AVAILABLE|BUILT_IN_KERNELS|COMPILER_AVAILABLE|DOUBLE_FP_CONFIG|ENDIAN_LITTLE|ERROR_CORRECTION_SUPPORT|EXECUTION_CAPABILITIES|EXTENSIONS|GLOBAL_(?:MEM_(?:CACHELINE_SIZE|CACHE_SIZE|CACHE_TYPE|SIZE)|VARIABLE_PREFERRED_TOTAL_SIZE)|HOST_UNIFIED_MEMORY|IL_VERSION|IMAGE(?:2D_MAX_(?:HEIGHT|WIDTH)|3D_MAX_(?:DEPTH|HEIGHT|WIDTH)|_BASE_ADDRESS_ALIGNMENT|_MAX_ARRAY_SIZE|_MAX_BUFFER_SIZE|_PITCH_ALIGNMENT|_SUPPORT)|LINKER_AVAILABLE|LOCAL_MEM_SIZE|LOCAL_MEM_TYPE|MAX_(?:CLOCK_FREQUENCY|COMPUTE_UNITS|CONSTANT_ARGS|CONSTANT_BUFFER_SIZE|GLOBAL_VARIABLE_SIZE|MEM_ALLOC_SIZE|NUM_SUB_GROUPS|ON_DEVICE_(?:EVENTS|QUEUES)|PARAMETER_SIZE|PIPE_ARGS|READ_IMAGE_ARGS|READ_WRITE_IMAGE_ARGS|SAMPLERS|WORK_GROUP_SIZE|WORK_ITEM_DIMENSIONS|WORK_ITEM_SIZES|WRITE_IMAGE_ARGS)|MEM_BASE_ADDR_ALIGN|MIN_DATA_TYPE_ALIGN_SIZE|NAME|NATIVE_VECTOR_WIDTH_(?:CHAR|DOUBLE|FLOAT|HALF|INT|LONG|SHORT)|NOT_(?:AVAILABLE|FOUND)|OPENCL_C_VERSION|PARENT_DEVICE|PARTITION_(?:AFFINITY_DOMAIN|BY_AFFINITY_DOMAIN|BY_COUNTS|BY_COUNTS_LIST_END|EQUALLY|FAILED|MAX_SUB_DEVICES|PROPERTIES|TYPE)|PIPE_MAX_(?:ACTIVE_RESERVATIONS|PACKET_SIZE)|PLATFORM|PREFERRED_(?:GLOBAL_ATOMIC_ALIGNMENT|INTEROP_USER_SYNC|LOCAL_ATOMIC_ALIGNMENT|PLATFORM_ATOMIC_ALIGNMENT|VECTOR_WIDTH_(?:CHAR|DOUBLE|FLOAT|HALF|INT|LONG|SHORT))|PRINTF_BUFFER_SIZE|PROFILE|PROFILING_TIMER_RESOLUTION|QUEUE_(?:ON_(?:DEVICE_(?:MAX_SIZE|PREFERRED_SIZE|PROPERTIES)|HOST_PROPERTIES)|PROPERTIES)|REFERENCE_COUNT|SINGLE_FP_CONFIG|SUB_GROUP_INDEPENDENT_FORWARD_PROGRESS|SVM_(?:ATOMICS|CAPABILITIES|COARSE_GRAIN_BUFFER|FINE_GRAIN_BUFFER|FINE_GRAIN_SYSTEM)|TYPE(?:_ACCELERATOR|_ALL|_CPU|_CUSTOM|_DEFAULT|_GPU)?|VENDOR(?:_ID)?|VERSION)|DRIVER_VERSION|EVENT_(?:COMMAND_(?:EXECUTION_STATUS|QUEUE|TYPE)|CONTEXT|REFERENCE_COUNT)|EXEC_(?:KERNEL|NATIVE_KERNEL|STATUS_ERROR_FOR_EVENTS_IN_WAIT_LIST)|FILTER_(?:LINEAR|NEAREST)|FLOAT|FP_(?:CORRECTLY_ROUNDED_DIVIDE_SQRT|DENORM|FMA|INF_NAN|ROUND_TO_INF|ROUND_TO_NEAREST|ROUND_TO_ZERO|SOFT_FLOAT)|GLOBAL|HALF_FLOAT|IMAGE_(?:ARRAY_SIZE|BUFFER|DEPTH|ELEMENT_SIZE|FORMAT|FORMAT_MISMATCH|FORMAT_NOT_SUPPORTED|HEIGHT|NUM_MIP_LEVELS|NUM_SAMPLES|ROW_PITCH|SLICE_PITCH|WIDTH)|INTENSITY|INVALID_(?:ARG_INDEX|ARG_SIZE|ARG_VALUE|BINARY|BUFFER_SIZE|BUILD_OPTIONS|COMMAND_QUEUE|COMPILER_OPTIONS|CONTEXT|DEVICE|DEVICE_PARTITION_COUNT|DEVICE_QUEUE|DEVICE_TYPE|EVENT|EVENT_WAIT_LIST|GLOBAL_OFFSET|GLOBAL_WORK_SIZE|GL_OBJECT|HOST_PTR|IMAGE_DESCRIPTOR|IMAGE_FORMAT_DESCRIPTOR|IMAGE_SIZE|KERNEL|KERNEL_ARGS|KERNEL_DEFINITION|KERNEL_NAME|LINKER_OPTIONS|MEM_OBJECT|MIP_LEVEL|OPERATION|PIPE_SIZE|PLATFORM|PROGRAM|PROGRAM_EXECUTABLE|PROPERTY|QUEUE_PROPERTIES|SAMPLER|VALUE|WORK_DIMENSION|WORK_GROUP_SIZE|WORK_ITEM_SIZE)|KERNEL_(?:ARG_(?:ACCESS_(?:NONE|QUALIFIER|READ_ONLY|READ_WRITE|WRITE_ONLY)|ADDRESS_(?:CONSTANT|GLOBAL|LOCAL|PRIVATE|QUALIFIER)|INFO_NOT_AVAILABLE|NAME|TYPE_(?:CONST|NAME|NONE|PIPE|QUALIFIER|RESTRICT|VOLATILE))|ATTRIBUTES|COMPILE_NUM_SUB_GROUPS|COMPILE_WORK_GROUP_SIZE|CONTEXT|EXEC_INFO_SVM_FINE_GRAIN_SYSTEM|EXEC_INFO_SVM_PTRS|FUNCTION_NAME|GLOBAL_WORK_SIZE|LOCAL_MEM_SIZE|LOCAL_SIZE_FOR_SUB_GROUP_COUNT|MAX_NUM_SUB_GROUPS|MAX_SUB_GROUP_SIZE_FOR_NDRANGE|NUM_ARGS|PREFERRED_WORK_GROUP_SIZE_MULTIPLE|PRIVATE_MEM_SIZE|PROGRAM|REFERENCE_COUNT|SUB_GROUP_COUNT_FOR_NDRANGE|WORK_GROUP_SIZE)|LINKER_NOT_AVAILABLE|LINK_PROGRAM_FAILURE|LOCAL|LUMINANCE|MAP_(?:FAILURE|READ|WRITE|WRITE_INVALIDATE_REGION)|MEM_(?:ALLOC_HOST_PTR|ASSOCIATED_MEMOBJECT|CONTEXT|COPY_HOST_PTR|COPY_OVERLAP|FLAGS|HOST_NO_ACCESS|HOST_PTR|HOST_READ_ONLY|HOST_WRITE_ONLY|KERNEL_READ_AND_WRITE|MAP_COUNT|OBJECT_(?:ALLOCATION_FAILURE|BUFFER|IMAGE1D|IMAGE1D_ARRAY|IMAGE1D_BUFFER|IMAGE2D|IMAGE2D_ARRAY|IMAGE3D|PIPE)|OFFSET|READ_ONLY|READ_WRITE|REFERENCE_COUNT|SIZE|SVM_ATOMICS|SVM_FINE_GRAIN_BUFFER|TYPE|USES_SVM_POINTER|USE_HOST_PTR|WRITE_ONLY)|MIGRATE_MEM_OBJECT_(?:CONTENT_UNDEFINED|HOST)|MISALIGNED_SUB_BUFFER_OFFSET|NONE|NON_BLOCKING|OUT_OF_(?:HOST_MEMORY|RESOURCES)|PIPE_(?:MAX_PACKETS|PACKET_SIZE)|PLATFORM_(?:EXTENSIONS|HOST_TIMER_RESOLUTION|NAME|PROFILE|VENDOR|VERSION)|PROFILING_(?:COMMAND_(?:COMPLETE|END|QUEUED|START|SUBMIT)|INFO_NOT_AVAILABLE)|PROGRAM_(?:BINARIES|BINARY_SIZES|BINARY_TYPE(?:_COMPILED_OBJECT|_EXECUTABLE|_LIBRARY|_NONE)?|BUILD_(?:GLOBAL_VARIABLE_TOTAL_SIZE|LOG|OPTIONS|STATUS)|CONTEXT|DEVICES|IL|KERNEL_NAMES|NUM_DEVICES|NUM_KERNELS|REFERENCE_COUNT|SOURCE)|QUEUED|QUEUE_(?:CONTEXT|DEVICE|DEVICE_DEFAULT|ON_DEVICE|ON_DEVICE_DEFAULT|OUT_OF_ORDER_EXEC_MODE_ENABLE|PROFILING_ENABLE|PROPERTIES|REFERENCE_COUNT|SIZE)|R|RA|READ_(?:ONLY|WRITE)_CACHE|RG|RGB|RGBA|RGBx|RGx|RUNNING|Rx|SAMPLER_(?:ADDRESSING_MODE|CONTEXT|FILTER_MODE|LOD_MAX|LOD_MIN|MIP_FILTER_MODE|NORMALIZED_COORDS|REFERENCE_COUNT)|(?:UN)?SIGNED_INT(?:8|16|32)|SNORM_INT(?:8|16)|SUBMITTED|SUCCESS|UNORM_INT(?:16|24|8|_101010|_101010_2)|UNORM_SHORT_(?:555|565)|VERSION_(?:1_0|1_1|1_2|2_0|2_1)|sBGRA|sRGB|sRGBA|sRGBx)\b/,alias:"constant"},"function-opencl-host":{pattern:/\bcl(?:BuildProgram|CloneKernel|CompileProgram|Create(?:Buffer|CommandQueue(?:WithProperties)?|Context|ContextFromType|Image|Image2D|Image3D|Kernel|KernelsInProgram|Pipe|ProgramWith(?:Binary|BuiltInKernels|IL|Source)|Sampler|SamplerWithProperties|SubBuffer|SubDevices|UserEvent)|Enqueue(?:(?:Barrier|Marker)(?:WithWaitList)?|Copy(?:Buffer(?:Rect|ToImage)?|Image(?:ToBuffer)?)|(?:Fill|Map)(?:Buffer|Image)|MigrateMemObjects|NDRangeKernel|NativeKernel|(?:Read|Write)(?:Buffer(?:Rect)?|Image)|SVM(?:Free|Map|MemFill|Memcpy|MigrateMem|Unmap)|Task|UnmapMemObject|WaitForEvents)|Finish|Flush|Get(?:CommandQueueInfo|ContextInfo|Device(?:AndHostTimer|IDs|Info)|Event(?:Profiling)?Info|ExtensionFunctionAddress(?:ForPlatform)?|HostTimer|ImageInfo|Kernel(?:ArgInfo|Info|SubGroupInfo|WorkGroupInfo)|MemObjectInfo|PipeInfo|Platform(?:IDs|Info)|Program(?:Build)?Info|SamplerInfo|SupportedImageFormats)|LinkProgram|(?:Release|Retain)(?:CommandQueue|Context|Device|Event|Kernel|MemObject|Program|Sampler)|SVM(?:Alloc|Free)|Set(?:CommandQueueProperty|DefaultDeviceCommandQueue|EventCallback|Kernel(?:Arg(?:SVMPointer)?|ExecInfo)|Kernel|MemObjectDestructorCallback|UserEventStatus)|Unload(?:Platform)?Compiler|WaitForEvents)\b/,alias:"function"}},t.languages.insertBefore("c","keyword",n),t.languages.cpp&&(n["type-opencl-host-cpp"]={pattern:/\b(?:Buffer|BufferGL|BufferRenderGL|CommandQueue|Context|Device|DeviceCommandQueue|EnqueueArgs|Event|Image|Image1D|Image1DArray|Image1DBuffer|Image2D|Image2DArray|Image2DGL|Image3D|Image3DGL|ImageFormat|ImageGL|Kernel|KernelFunctor|LocalSpaceArg|Memory|NDRange|Pipe|Platform|Program|Sampler|SVMAllocator|SVMTraitAtomic|SVMTraitCoarse|SVMTraitFine|SVMTraitReadOnly|SVMTraitReadWrite|SVMTraitWriteOnly|UserEvent)\b/,alias:"keyword"},t.languages.insertBefore("cpp","keyword",n))}e.exports=i,i.displayName="opencl",i.aliases=[]},22950(e){"use strict";function t(e){e.languages.openqasm={comment:/\/\*[\s\S]*?\*\/|\/\/.*/,string:{pattern:/"[^"\r\n\t]*"|'[^'\r\n\t]*'/,greedy:!0},keyword:/\b(?:barrier|boxas|boxto|break|const|continue|ctrl|def|defcal|defcalgrammar|delay|else|end|for|gate|gphase|if|in|include|inv|kernel|lengthof|let|measure|pow|reset|return|rotary|stretchinf|while|CX|OPENQASM|U)\b|#pragma\b/,"class-name":/\b(?:angle|bit|bool|creg|fixed|float|int|length|qreg|qubit|stretch|uint)\b/,function:/\b(?:sin|cos|tan|exp|ln|sqrt|rotl|rotr|popcount)\b(?=\s*\()/,constant:/\b(?:pi|tau|euler)\b|π|𝜏|ℇ/,number:{pattern:/(^|[^.\w$])(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?(?:dt|ns|us|µs|ms|s)?/i,lookbehind:!0},operator:/->|>>=?|<<=?|&&|\|\||\+\+|--|[!=<>&|~^+\-*/%]=?|@/,punctuation:/[(){}\[\];,:.]/},e.languages.qasm=e.languages.openqasm}e.exports=t,t.displayName="openqasm",t.aliases=["qasm"]},23254(e){"use strict";function t(e){e.languages.oz={comment:/\/\*[\s\S]*?\*\/|%.*/,string:{pattern:/"(?:[^"\\]|\\[\s\S])*"/,greedy:!0},atom:{pattern:/'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,alias:"builtin"},keyword:/\$|\[\]|\b(?:_|at|attr|case|catch|choice|class|cond|declare|define|dis|else(?:case|if)?|end|export|fail|false|feat|finally|from|fun|functor|if|import|in|local|lock|meth|nil|not|of|or|prepare|proc|prop|raise|require|self|skip|then|thread|true|try|unit)\b/,function:[/\b[a-z][A-Za-z\d]*(?=\()/,{pattern:/(\{)[A-Z][A-Za-z\d]*\b/,lookbehind:!0}],number:/\b(?:0[bx][\da-f]+|\d+(?:\.\d*)?(?:e~?\d+)?)\b|&(?:[^\\]|\\(?:\d{3}|.))/i,variable:/\b[A-Z][A-Za-z\d]*|`(?:[^`\\]|\\.)+`/,"attr-name":/\b\w+(?=:)/,operator:/:(?:=|::?)|<[-:=]?|=(?:=|=?:?|\\=:?|!!?|[|#+\-*\/,~^@]|\b(?:andthen|div|mod|orelse)\b/,punctuation:/[\[\](){}.:;?]/}}e.exports=t,t.displayName="oz",t.aliases=[]},92694(e){"use strict";function t(e){var t;e.languages.parigp={comment:/\/\*[\s\S]*?\*\/|\\\\.*/,string:{pattern:/"(?:[^"\\\r\n]|\\.)*"/,greedy:!0},keyword:RegExp("\\b(?:"+(t=(t=["breakpoint","break","dbg_down","dbg_err","dbg_up","dbg_x","forcomposite","fordiv","forell","forpart","forprime","forstep","forsubgroup","forvec","for","iferr","if","local","my","next","return","until","while"]).map(function(e){return e.split("").join(" *")}).join("|"))+")\\b"),function:/\b\w(?:[\w ]*\w)?(?= *\()/,number:{pattern:/((?:\. *\. *)?)(?:\b\d(?: *\d)*(?: *(?!\. *\.)\.(?: *\d)*)?|\. *\d(?: *\d)*)(?: *e *(?:[+-] *)?\d(?: *\d)*)?/i,lookbehind:!0},operator:/\. *\.|[*\/!](?: *=)?|%(?: *=|(?: *#)?(?: *')*)?|\+(?: *[+=])?|-(?: *[-=>])?|<(?: *>|(?: *<)?(?: *=)?)?|>(?: *>)?(?: *=)?|=(?: *=){0,2}|\\(?: *\/)?(?: *=)?|&(?: *&)?|\| *\||['#~^]/,punctuation:/[\[\]{}().,:;|]/}}e.exports=t,t.displayName="parigp",t.aliases=[]},43273(e){"use strict";function t(e){var t,n;n=(t=e).languages.parser=t.languages.extend("markup",{keyword:{pattern:/(^|[^^])(?:\^(?:case|eval|for|if|switch|throw)\b|@(?:BASE|CLASS|GET(?:_DEFAULT)?|OPTIONS|SET_DEFAULT|USE)\b)/,lookbehind:!0},variable:{pattern:/(^|[^^])\B\$(?:\w+|(?=[.{]))(?:(?:\.|::?)\w+)*(?:\.|::?)?/,lookbehind:!0,inside:{punctuation:/\.|:+/}},function:{pattern:/(^|[^^])\B[@^]\w+(?:(?:\.|::?)\w+)*(?:\.|::?)?/,lookbehind:!0,inside:{keyword:{pattern:/(^@)(?:GET_|SET_)/,lookbehind:!0},punctuation:/\.|:+/}},escape:{pattern:/\^(?:[$^;@()\[\]{}"':]|#[a-f\d]*)/i,alias:"builtin"},punctuation:/[\[\](){};]/}),n=t.languages.insertBefore("parser","keyword",{"parser-comment":{pattern:/(\s)#.*/,lookbehind:!0,alias:"comment"},expression:{pattern:/(^|[^^])\((?:[^()]|\((?:[^()]|\((?:[^()])*\))*\))*\)/,greedy:!0,lookbehind:!0,inside:{string:{pattern:/(^|[^^])(["'])(?:(?!\2)[^^]|\^[\s\S])*\2/,lookbehind:!0},keyword:n.keyword,variable:n.variable,function:n.function,boolean:/\b(?:true|false)\b/,number:/\b(?:0x[a-f\d]+|\d+(?:\.\d*)?(?:e[+-]?\d+)?)\b/i,escape:n.escape,operator:/[~+*\/\\%]|!(?:\|\|?|=)?|&&?|\|\|?|==|<[<=]?|>[>=]?|-[fd]?|\b(?:def|eq|ge|gt|in|is|le|lt|ne)\b/,punctuation:n.punctuation}}}),t.languages.insertBefore("inside","punctuation",{expression:n.expression,keyword:n.keyword,variable:n.variable,function:n.function,escape:n.escape,"parser-punctuation":{pattern:n.punctuation,alias:"punctuation"}},n.tag.inside["attr-value"])}e.exports=t,t.displayName="parser",t.aliases=[]},60718(e){"use strict";function t(e){e.languages.pascal={comment:[/\(\*[\s\S]+?\*\)/,/\{[\s\S]+?\}/,/\/\/.*/],string:{pattern:/(?:'(?:''|[^'\r\n])*'(?!')|#[&$%]?[a-f\d]+)+|\^[a-z]/i,greedy:!0},keyword:[{pattern:/(^|[^&])\b(?:absolute|array|asm|begin|case|const|constructor|destructor|do|downto|else|end|file|for|function|goto|if|implementation|inherited|inline|interface|label|nil|object|of|operator|packed|procedure|program|record|reintroduce|repeat|self|set|string|then|to|type|unit|until|uses|var|while|with)\b/i,lookbehind:!0},{pattern:/(^|[^&])\b(?:dispose|exit|false|new|true)\b/i,lookbehind:!0},{pattern:/(^|[^&])\b(?:class|dispinterface|except|exports|finalization|finally|initialization|inline|library|on|out|packed|property|raise|resourcestring|threadvar|try)\b/i,lookbehind:!0},{pattern:/(^|[^&])\b(?:absolute|abstract|alias|assembler|bitpacked|break|cdecl|continue|cppdecl|cvar|default|deprecated|dynamic|enumerator|experimental|export|external|far|far16|forward|generic|helper|implements|index|interrupt|iochecks|local|message|name|near|nodefault|noreturn|nostackframe|oldfpccall|otherwise|overload|override|pascal|platform|private|protected|public|published|read|register|reintroduce|result|safecall|saveregisters|softfloat|specialize|static|stdcall|stored|strict|unaligned|unimplemented|varargs|virtual|write)\b/i,lookbehind:!0}],number:[/(?:[&%]\d+|\$[a-f\d]+)/i,/\b\d+(?:\.\d+)?(?:e[+-]?\d+)?/i],operator:[/\.\.|\*\*|:=|<[<=>]?|>[>=]?|[+\-*\/]=?|[@^=]/i,{pattern:/(^|[^&])\b(?:and|as|div|exclude|in|include|is|mod|not|or|shl|shr|xor)\b/,lookbehind:!0}],punctuation:/\(\.|\.\)|[()\[\]:;,.]/},e.languages.objectpascal=e.languages.pascal}e.exports=t,t.displayName="pascal",t.aliases=["objectpascal"]},39303(e){"use strict";function t(e){var t,n,r,i,a;t=e,n=/\((?:[^()]|\((?:[^()]|\([^()]*\))*\))*\)/.source,r=/(?:\b\w+(?:)?|)/.source.replace(//g,function(){return n}),i=t.languages.pascaligo={comment:/\(\*[\s\S]+?\*\)|\/\/.*/,string:{pattern:/(["'`])(?:\\[\s\S]|(?!\1)[^\\])*\1|\^[a-z]/i,greedy:!0},"class-name":[{pattern:RegExp(/(\btype\s+\w+\s+is\s+)/.source.replace(//g,function(){return r}),"i"),lookbehind:!0,inside:null},{pattern:RegExp(/(?=\s+is\b)/.source.replace(//g,function(){return r}),"i"),inside:null},{pattern:RegExp(/(:\s*)/.source.replace(//g,function(){return r})),lookbehind:!0,inside:null}],keyword:{pattern:/(^|[^&])\b(?:begin|block|case|const|else|end|fail|for|from|function|if|is|nil|of|remove|return|skip|then|type|var|while|with)\b/i,lookbehind:!0},boolean:{pattern:/(^|[^&])\b(?:True|False)\b/i,lookbehind:!0},builtin:{pattern:/(^|[^&])\b(?:bool|int|list|map|nat|record|string|unit)\b/i,lookbehind:!0},function:/\b\w+(?=\s*\()/i,number:[/%[01]+|&[0-7]+|\$[a-f\d]+/i,/\b\d+(?:\.\d+)?(?:e[+-]?\d+)?(?:mtz|n)?/i],operator:/->|=\/=|\.\.|\*\*|:=|<[<=>]?|>[>=]?|[+\-*\/]=?|[@^=|]|\b(?:and|mod|or)\b/,punctuation:/\(\.|\.\)|[()\[\]:;,.{}]/},a=["comment","keyword","builtin","operator","punctuation"].reduce(function(e,t){return e[t]=i[t],e},{}),i["class-name"].forEach(function(e){e.inside=a})}e.exports=t,t.displayName="pascaligo",t.aliases=[]},77393(e){"use strict";function t(e){e.languages.pcaxis={string:/"[^"]*"/,keyword:{pattern:/((?:^|;)\s*)[-A-Z\d]+(?:\s*\[[-\w]+\])?(?:\s*\("[^"]*"(?:,\s*"[^"]*")*\))?(?=\s*=)/,lookbehind:!0,greedy:!0,inside:{keyword:/^[-A-Z\d]+/,language:{pattern:/^(\s*)\[[-\w]+\]/,lookbehind:!0,inside:{punctuation:/^\[|\]$/,property:/[-\w]+/}},"sub-key":{pattern:/^(\s*)\S[\s\S]*/,lookbehind:!0,inside:{parameter:{pattern:/"[^"]*"/,alias:"property"},punctuation:/^\(|\)$|,/}}}},operator:/=/,tlist:{pattern:/TLIST\s*\(\s*\w+(?:(?:\s*,\s*"[^"]*")+|\s*,\s*"[^"]*"-"[^"]*")?\s*\)/,greedy:!0,inside:{function:/^TLIST/,property:{pattern:/^(\s*\(\s*)\w+/,lookbehind:!0},string:/"[^"]*"/,punctuation:/[(),]/,operator:/-/}},punctuation:/[;,]/,number:{pattern:/(^|\s)\d+(?:\.\d+)?(?!\S)/,lookbehind:!0},boolean:/YES|NO/},e.languages.px=e.languages.pcaxis}e.exports=t,t.displayName="pcaxis",t.aliases=["px"]},19023(e){"use strict";function t(e){e.languages.peoplecode={comment:RegExp([/\/\*[\s\S]*?\*\//.source,/\bREM[^;]*;/.source,/<\*(?:[^<*]|\*(?!>)|<(?!\*)|<\*(?:(?!\*>)[\s\S])*\*>)*\*>/.source,/\/\+[\s\S]*?\+\//.source].join("|")),string:{pattern:/'(?:''|[^'\r\n])*'(?!')|"(?:""|[^"\r\n])*"(?!")/,greedy:!0},variable:/%\w+/,"function-definition":{pattern:/((?:^|[^\w-])(?:function|method)\s+)\w+/i,lookbehind:!0,alias:"function"},"class-name":{pattern:/((?:^|[^-\w])(?:as|catch|class|component|create|extends|global|implements|instance|local|of|property|returns)\s+)\w+(?::\w+)*/i,lookbehind:!0,inside:{punctuation:/:/}},keyword:/\b(?:abstract|alias|as|catch|class|component|constant|create|declare|else|end-(?:class|evaluate|for|function|get|if|method|set|try|while)|evaluate|extends|for|function|get|global|implements|import|instance|if|library|local|method|null|of|out|peopleCode|private|program|property|protected|readonly|ref|repeat|returns?|set|step|then|throw|to|try|until|value|when(?:-other)?|while)\b/i,"operator-keyword":{pattern:/\b(?:and|not|or)\b/i,alias:"operator"},function:/[_a-z]\w*(?=\s*\()/i,boolean:/\b(?:false|true)\b/i,number:/\b\d+(?:\.\d+)?\b/,operator:/<>|[<>]=?|!=|\*\*|[-+*/|=@]/,punctuation:/[:.;,()[\]]/},e.languages.pcode=e.languages.peoplecode}e.exports=t,t.displayName="peoplecode",t.aliases=["pcode"]},74212(e){"use strict";function t(e){e.languages.perl={comment:[{pattern:/(^\s*)=\w[\s\S]*?=cut.*/m,lookbehind:!0},{pattern:/(^|[^\\$])#.*/,lookbehind:!0}],string:[{pattern:/\b(?:q|qq|qx|qw)\s*([^a-zA-Z0-9\s{(\[<])(?:(?!\1)[^\\]|\\[\s\S])*\1/,greedy:!0},{pattern:/\b(?:q|qq|qx|qw)\s+([a-zA-Z0-9])(?:(?!\1)[^\\]|\\[\s\S])*\1/,greedy:!0},{pattern:/\b(?:q|qq|qx|qw)\s*\((?:[^()\\]|\\[\s\S])*\)/,greedy:!0},{pattern:/\b(?:q|qq|qx|qw)\s*\{(?:[^{}\\]|\\[\s\S])*\}/,greedy:!0},{pattern:/\b(?:q|qq|qx|qw)\s*\[(?:[^[\]\\]|\\[\s\S])*\]/,greedy:!0},{pattern:/\b(?:q|qq|qx|qw)\s*<(?:[^<>\\]|\\[\s\S])*>/,greedy:!0},{pattern:/("|`)(?:(?!\1)[^\\]|\\[\s\S])*\1/,greedy:!0},{pattern:/'(?:[^'\\\r\n]|\\.)*'/,greedy:!0}],regex:[{pattern:/\b(?:m|qr)\s*([^a-zA-Z0-9\s{(\[<])(?:(?!\1)[^\\]|\\[\s\S])*\1[msixpodualngc]*/,greedy:!0},{pattern:/\b(?:m|qr)\s+([a-zA-Z0-9])(?:(?!\1)[^\\]|\\[\s\S])*\1[msixpodualngc]*/,greedy:!0},{pattern:/\b(?:m|qr)\s*\((?:[^()\\]|\\[\s\S])*\)[msixpodualngc]*/,greedy:!0},{pattern:/\b(?:m|qr)\s*\{(?:[^{}\\]|\\[\s\S])*\}[msixpodualngc]*/,greedy:!0},{pattern:/\b(?:m|qr)\s*\[(?:[^[\]\\]|\\[\s\S])*\][msixpodualngc]*/,greedy:!0},{pattern:/\b(?:m|qr)\s*<(?:[^<>\\]|\\[\s\S])*>[msixpodualngc]*/,greedy:!0},{pattern:/(^|[^-]\b)(?:s|tr|y)\s*([^a-zA-Z0-9\s{(\[<])(?:(?!\2)[^\\]|\\[\s\S])*\2(?:(?!\2)[^\\]|\\[\s\S])*\2[msixpodualngcer]*/,lookbehind:!0,greedy:!0},{pattern:/(^|[^-]\b)(?:s|tr|y)\s+([a-zA-Z0-9])(?:(?!\2)[^\\]|\\[\s\S])*\2(?:(?!\2)[^\\]|\\[\s\S])*\2[msixpodualngcer]*/,lookbehind:!0,greedy:!0},{pattern:/(^|[^-]\b)(?:s|tr|y)\s*\((?:[^()\\]|\\[\s\S])*\)\s*\((?:[^()\\]|\\[\s\S])*\)[msixpodualngcer]*/,lookbehind:!0,greedy:!0},{pattern:/(^|[^-]\b)(?:s|tr|y)\s*\{(?:[^{}\\]|\\[\s\S])*\}\s*\{(?:[^{}\\]|\\[\s\S])*\}[msixpodualngcer]*/,lookbehind:!0,greedy:!0},{pattern:/(^|[^-]\b)(?:s|tr|y)\s*\[(?:[^[\]\\]|\\[\s\S])*\]\s*\[(?:[^[\]\\]|\\[\s\S])*\][msixpodualngcer]*/,lookbehind:!0,greedy:!0},{pattern:/(^|[^-]\b)(?:s|tr|y)\s*<(?:[^<>\\]|\\[\s\S])*>\s*<(?:[^<>\\]|\\[\s\S])*>[msixpodualngcer]*/,lookbehind:!0,greedy:!0},{pattern:/\/(?:[^\/\\\r\n]|\\.)*\/[msixpodualngc]*(?=\s*(?:$|[\r\n,.;})&|\-+*~<>!?^]|(?:lt|gt|le|ge|eq|ne|cmp|not|and|or|xor|x)\b))/,greedy:!0}],variable:[/[&*$@%]\{\^[A-Z]+\}/,/[&*$@%]\^[A-Z_]/,/[&*$@%]#?(?=\{)/,/[&*$@%]#?(?:(?:::)*'?(?!\d)[\w$]+(?![\w$]))+(?:::)*/i,/[&*$@%]\d+/,/(?!%=)[$@%][!"#$%&'()*+,\-.\/:;<=>?@[\\\]^_`{|}~]/],filehandle:{pattern:/<(?![<=])\S*>|\b_\b/,alias:"symbol"},vstring:{pattern:/v\d+(?:\.\d+)*|\d+(?:\.\d+){2,}/,alias:"string"},function:{pattern:/sub \w+/i,inside:{keyword:/sub/}},keyword:/\b(?:any|break|continue|default|delete|die|do|else|elsif|eval|for|foreach|given|goto|if|last|local|my|next|our|package|print|redo|require|return|say|state|sub|switch|undef|unless|until|use|when|while)\b/,number:/\b(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0b[01](?:_?[01])*|(?:(?:\d(?:_?\d)*)?\.)?\d(?:_?\d)*(?:[Ee][+-]?\d+)?)\b/,operator:/-[rwxoRWXOezsfdlpSbctugkTBMAC]\b|\+[+=]?|-[-=>]?|\*\*?=?|\/\/?=?|=[=~>]?|~[~=]?|\|\|?=?|&&?=?|<(?:=>?|<=?)?|>>?=?|![~=]?|[%^]=?|\.(?:=|\.\.?)?|[\\?]|\bx(?:=|\b)|\b(?:lt|gt|le|ge|eq|ne|cmp|not|and|or|xor)\b/,punctuation:/[{}[\];(),:]/}}e.exports=t,t.displayName="perl",t.aliases=[]},5137(e,t,n){"use strict";var r=n(88262);function i(e){e.register(r),e.languages.insertBefore("php","variable",{this:/\$this\b/,global:/\$(?:_(?:SERVER|GET|POST|FILES|REQUEST|SESSION|ENV|COOKIE)|GLOBALS|HTTP_RAW_POST_DATA|argc|argv|php_errormsg|http_response_header)\b/,scope:{pattern:/\b[\w\\]+::/,inside:{keyword:/static|self|parent/,punctuation:/::|\\/}}})}e.exports=i,i.displayName="phpExtras",i.aliases=[]},88262(e,t,n){"use strict";var r=n(93205);function i(e){var t,n,i,a,o,s,u,c;e.register(r),n=/\/\*[\s\S]*?\*\/|\/\/.*|#(?!\[).*/,i=[{pattern:/\b(?:false|true)\b/i,alias:"boolean"},{pattern:/(::\s*)\b[a-z_]\w*\b(?!\s*\()/i,greedy:!0,lookbehind:!0},{pattern:/(\b(?:case|const)\s+)\b[a-z_]\w*(?=\s*[;=])/i,greedy:!0,lookbehind:!0},/\b(?:null)\b/i,/\b[A-Z_][A-Z0-9_]*\b(?!\s*\()/],a=/\b0b[01]+(?:_[01]+)*\b|\b0o[0-7]+(?:_[0-7]+)*\b|\b0x[\da-f]+(?:_[\da-f]+)*\b|(?:\b\d+(?:_\d+)*\.?(?:\d+(?:_\d+)*)?|\B\.\d+)(?:e[+-]?\d+)?/i,o=/|\?\?=?|\.{3}|\??->|[!=]=?=?|::|\*\*=?|--|\+\+|&&|\|\||<<|>>|[?~]|[/^|%*&<>.+-]=?/,s=/[{}\[\](),:;]/,(t=e).languages.php={delimiter:{pattern:/\?>$|^<\?(?:php(?=\s)|=)?/i,alias:"important"},comment:n,variable:/\$+(?:\w+\b|(?=\{))/i,package:{pattern:/(namespace\s+|use\s+(?:function\s+)?)(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,lookbehind:!0,inside:{punctuation:/\\/}},"class-name-definition":{pattern:/(\b(?:class|enum|interface|trait)\s+)\b[a-z_]\w*(?!\\)\b/i,lookbehind:!0,alias:"class-name"},"function-definition":{pattern:/(\bfunction\s+)[a-z_]\w*(?=\s*\()/i,lookbehind:!0,alias:"function"},keyword:[{pattern:/(\(\s*)\b(?:bool|boolean|int|integer|float|string|object|array)\b(?=\s*\))/i,alias:"type-casting",greedy:!0,lookbehind:!0},{pattern:/([(,?]\s*)\b(?:bool|int|float|string|object|array(?!\s*\()|mixed|self|static|callable|iterable|(?:null|false)(?=\s*\|))\b(?=\s*\$)/i,alias:"type-hint",greedy:!0,lookbehind:!0},{pattern:/([(,?]\s*[\w|]\|\s*)(?:null|false)\b(?=\s*\$)/i,alias:"type-hint",greedy:!0,lookbehind:!0},{pattern:/(\)\s*:\s*(?:\?\s*)?)\b(?:bool|int|float|string|object|void|array(?!\s*\()|mixed|self|static|callable|iterable|(?:null|false)(?=\s*\|))\b/i,alias:"return-type",greedy:!0,lookbehind:!0},{pattern:/(\)\s*:\s*(?:\?\s*)?[\w|]\|\s*)(?:null|false)\b/i,alias:"return-type",greedy:!0,lookbehind:!0},{pattern:/\b(?:bool|int|float|string|object|void|array(?!\s*\()|mixed|iterable|(?:null|false)(?=\s*\|))\b/i,alias:"type-declaration",greedy:!0},{pattern:/(\|\s*)(?:null|false)\b/i,alias:"type-declaration",greedy:!0,lookbehind:!0},{pattern:/\b(?:parent|self|static)(?=\s*::)/i,alias:"static-context",greedy:!0},{pattern:/(\byield\s+)from\b/i,lookbehind:!0},/\bclass\b/i,{pattern:/((?:^|[^\s>:]|(?:^|[^-])>|(?:^|[^:]):)\s*)\b(?:__halt_compiler|abstract|and|array|as|break|callable|case|catch|clone|const|continue|declare|default|die|do|echo|else|elseif|empty|enddeclare|endfor|endforeach|endif|endswitch|endwhile|enum|eval|exit|extends|final|finally|fn|for|foreach|function|global|goto|if|implements|include|include_once|instanceof|insteadof|interface|isset|list|namespace|match|new|or|parent|print|private|protected|public|require|require_once|return|self|static|switch|throw|trait|try|unset|use|var|while|xor|yield)\b/i,lookbehind:!0}],"argument-name":{pattern:/([(,]\s+)\b[a-z_]\w*(?=\s*:(?!:))/i,lookbehind:!0},"class-name":[{pattern:/(\b(?:extends|implements|instanceof|new(?!\s+self|\s+static))\s+|\bcatch\s*\()\b[a-z_]\w*(?!\\)\b/i,greedy:!0,lookbehind:!0},{pattern:/(\|\s*)\b[a-z_]\w*(?!\\)\b/i,greedy:!0,lookbehind:!0},{pattern:/\b[a-z_]\w*(?!\\)\b(?=\s*\|)/i,greedy:!0},{pattern:/(\|\s*)(?:\\?\b[a-z_]\w*)+\b/i,alias:"class-name-fully-qualified",greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/(?:\\?\b[a-z_]\w*)+\b(?=\s*\|)/i,alias:"class-name-fully-qualified",greedy:!0,inside:{punctuation:/\\/}},{pattern:/(\b(?:extends|implements|instanceof|new(?!\s+self\b|\s+static\b))\s+|\bcatch\s*\()(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,alias:"class-name-fully-qualified",greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/\b[a-z_]\w*(?=\s*\$)/i,alias:"type-declaration",greedy:!0},{pattern:/(?:\\?\b[a-z_]\w*)+(?=\s*\$)/i,alias:["class-name-fully-qualified","type-declaration"],greedy:!0,inside:{punctuation:/\\/}},{pattern:/\b[a-z_]\w*(?=\s*::)/i,alias:"static-context",greedy:!0},{pattern:/(?:\\?\b[a-z_]\w*)+(?=\s*::)/i,alias:["class-name-fully-qualified","static-context"],greedy:!0,inside:{punctuation:/\\/}},{pattern:/([(,?]\s*)[a-z_]\w*(?=\s*\$)/i,alias:"type-hint",greedy:!0,lookbehind:!0},{pattern:/([(,?]\s*)(?:\\?\b[a-z_]\w*)+(?=\s*\$)/i,alias:["class-name-fully-qualified","type-hint"],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/(\)\s*:\s*(?:\?\s*)?)\b[a-z_]\w*(?!\\)\b/i,alias:"return-type",greedy:!0,lookbehind:!0},{pattern:/(\)\s*:\s*(?:\?\s*)?)(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,alias:["class-name-fully-qualified","return-type"],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}}],constant:i,function:{pattern:/(^|[^\\\w])\\?[a-z_](?:[\w\\]*\w)?(?=\s*\()/i,lookbehind:!0,inside:{punctuation:/\\/}},property:{pattern:/(->\s*)\w+/,lookbehind:!0},number:a,operator:o,punctuation:s},c=[{pattern:/<<<'([^']+)'[\r\n](?:.*[\r\n])*?\1;/,alias:"nowdoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<<'[^']+'|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<'?|[';]$/}}}},{pattern:/<<<(?:"([^"]+)"[\r\n](?:.*[\r\n])*?\1;|([a-z_]\w*)[\r\n](?:.*[\r\n])*?\2;)/i,alias:"heredoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<<(?:"[^"]+"|[a-z_]\w*)|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<"?|[";]$/}},interpolation:u={pattern:/\{\$(?:\{(?:\{[^{}]+\}|[^{}]+)\}|[^{}])+\}|(^|[^\\{])\$+(?:\w+(?:\[[^\r\n\[\]]+\]|->\w+)?)/,lookbehind:!0,inside:t.languages.php}}},{pattern:/`(?:\\[\s\S]|[^\\`])*`/,alias:"backtick-quoted-string",greedy:!0},{pattern:/'(?:\\[\s\S]|[^\\'])*'/,alias:"single-quoted-string",greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,alias:"double-quoted-string",greedy:!0,inside:{interpolation:u}}],t.languages.insertBefore("php","variable",{string:c,attribute:{pattern:/#\[(?:[^"'\/#]|\/(?![*/])|\/\/.*$|#(?!\[).*$|\/\*(?:[^*]|\*(?!\/))*\*\/|"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*')+\](?=\s*[a-z$#])/im,greedy:!0,inside:{"attribute-content":{pattern:/^(#\[)[\s\S]+(?=\]$)/,lookbehind:!0,inside:{comment:n,string:c,"attribute-class-name":[{pattern:/([^:]|^)\b[a-z_]\w*(?!\\)\b/i,alias:"class-name",greedy:!0,lookbehind:!0},{pattern:/([^:]|^)(?:\\?\b[a-z_]\w*)+/i,alias:["class-name","class-name-fully-qualified"],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}}],constant:i,number:a,operator:o,punctuation:s}},delimiter:{pattern:/^#\[|\]$/,alias:"punctuation"}}}}),t.hooks.add("before-tokenize",function(e){if(/<\?/.test(e.code)){var n=/<\?(?:[^"'/#]|\/(?![*/])|("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|(?:\/\/|#(?!\[))(?:[^?\n\r]|\?(?!>))*(?=$|\?>|[\r\n])|#\[|\/\*(?:[^*]|\*(?!\/))*(?:\*\/|$))*?(?:\?>|$)/gi;t.languages["markup-templating"].buildPlaceholders(e,"php",n)}}),t.hooks.add("after-tokenize",function(e){t.languages["markup-templating"].tokenizePlaceholders(e,"php")})}e.exports=i,i.displayName="php",i.aliases=[]},63632(e,t,n){"use strict";var r=n(88262),i=n(9858);function a(e){var t,n;e.register(r),e.register(i),n=/(?:\b[a-zA-Z]\w*|[|\\[\]])+/.source,(t=e).languages.phpdoc=t.languages.extend("javadoclike",{parameter:{pattern:RegExp("(@(?:global|param|property(?:-read|-write)?|var)\\s+(?:"+n+"\\s+)?)\\$\\w+"),lookbehind:!0}}),t.languages.insertBefore("phpdoc","keyword",{"class-name":[{pattern:RegExp("(@(?:global|package|param|property(?:-read|-write)?|return|subpackage|throws|var)\\s+)"+n),lookbehind:!0,inside:{keyword:/\b(?:callback|resource|boolean|integer|double|object|string|array|false|float|mixed|bool|null|self|true|void|int)\b/,punctuation:/[|\\[\]()]/}}]}),t.languages.javadoclike.addSupport("php",t.languages.phpdoc)}e.exports=a,a.displayName="phpdoc",a.aliases=[]},59149(e,t,n){"use strict";var r=n(11114);function i(e){var t,n,i,a;e.register(r),Array.isArray(i=(n=(t=e).languages.plsql=t.languages.extend("sql",{comment:[/\/\*[\s\S]*?\*\//,/--.*/]})).keyword)||(i=n.keyword=[i]),i.unshift(/\b(?:ACCESS|AGENT|AGGREGATE|ARRAY|ARROW|AT|ATTRIBUTE|AUDIT|AUTHID|BFILE_BASE|BLOB_BASE|BLOCK|BODY|BOTH|BOUND|BYTE|CALLING|CHAR_BASE|CHARSET(?:FORM|ID)|CLOB_BASE|COLAUTH|COLLECT|CLUSTERS?|COMPILED|COMPRESS|CONSTANT|CONSTRUCTOR|CONTEXT|CRASH|CUSTOMDATUM|DANGLING|DATE_BASE|DEFINE|DETERMINISTIC|DURATION|ELEMENT|EMPTY|EXCEPTIONS?|EXCLUSIVE|EXTERNAL|FINAL|FORALL|FORM|FOUND|GENERAL|HEAP|HIDDEN|IDENTIFIED|IMMEDIATE|INCLUDING|INCREMENT|INDICATOR|INDEXES|INDICES|INFINITE|INITIAL|ISOPEN|INSTANTIABLE|INTERFACE|INVALIDATE|JAVA|LARGE|LEADING|LENGTH|LIBRARY|LIKE[24C]|LIMITED|LONG|LOOP|MAP|MAXEXTENTS|MAXLEN|MEMBER|MINUS|MLSLABEL|MULTISET|NAME|NAN|NATIVE|NEW|NOAUDIT|NOCOMPRESS|NOCOPY|NOTFOUND|NOWAIT|NUMBER(?:_BASE)?|OBJECT|OCI(?:COLL|DATE|DATETIME|DURATION|INTERVAL|LOBLOCATOR|NUMBER|RAW|REF|REFCURSOR|ROWID|STRING|TYPE)|OFFLINE|ONLINE|ONLY|OPAQUE|OPERATOR|ORACLE|ORADATA|ORGANIZATION|ORL(?:ANY|VARY)|OTHERS|OVERLAPS|OVERRIDING|PACKAGE|PARALLEL_ENABLE|PARAMETERS?|PASCAL|PCTFREE|PIPE(?:LINED)?|PRAGMA|PRIOR|PRIVATE|RAISE|RANGE|RAW|RECORD|REF|REFERENCE|REM|REMAINDER|RESULT|RESOURCE|RETURNING|REVERSE|ROW(?:ID|NUM|TYPE)|SAMPLE|SB[124]|SEGMENT|SELF|SEPARATE|SEQUENCE|SHORT|SIZE(?:_T)?|SPARSE|SQL(?:CODE|DATA|NAME|STATE)|STANDARD|STATIC|STDDEV|STORED|STRING|STRUCT|STYLE|SUBMULTISET|SUBPARTITION|SUBSTITUTABLE|SUBTYPE|SUCCESSFUL|SYNONYM|SYSDATE|TABAUTH|TDO|THE|TIMEZONE_(?:ABBR|HOUR|MINUTE|REGION)|TRAILING|TRANSAC(?:TIONAL)?|TRUSTED|UB[124]|UID|UNDER|UNTRUSTED|VALIDATE|VALIST|VARCHAR2|VARIABLE|VARIANCE|VARRAY|VIEWS|VOID|WHENEVER|WRAPPED|ZONE)\b/i),Array.isArray(a=n.operator)||(a=n.operator=[a]),a.unshift(/:=/)}e.exports=i,i.displayName="plsql",i.aliases=[]},50256(e){"use strict";function t(e){e.languages.powerquery={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:\/\/).*)/,lookbehind:!0},"quoted-identifier":{pattern:/#"(?:[^"\r\n]|"")*"(?!")/,greedy:!0,alias:"variable"},string:{pattern:/"(?:[^"\r\n]|"")*"(?!")/,greedy:!0},constant:[/\bDay\.(?:Sunday|Monday|Tuesday|Wednesday|Thursday|Friday|Saturday)\b/,/\bTraceLevel\.(?:Critical|Error|Information|Verbose|Warning)\b/,/\bOccurrence\.(?:First|Last|All)\b/,/\bOrder\.(?:Ascending|Descending)\b/,/\bRoundingMode\.(?:AwayFromZero|Down|ToEven|TowardZero|Up)\b/,/\bMissingField\.(?:Error|Ignore|UseNull)\b/,/\bQuoteStyle\.(?:Csv|None)\b/,/\bJoinKind\.(?:Inner|LeftOuter|RightOuter|FullOuter|LeftAnti|RightAnti)\b/,/\bGroupKind\.(?:Global|Local)\b/,/\bExtraValues\.(?:List|Ignore|Error)\b/,/\bJoinAlgorithm\.(?:Dynamic|PairwiseHash|SortMerge|LeftHash|RightHash|LeftIndex|RightIndex)\b/,/\bJoinSide\.(?:Left|Right)\b/,/\bPrecision\.(?:Double|Decimal)\b/,/\bRelativePosition\.From(?:End|Start)\b/,/\bTextEncoding\.(?:Ascii|BigEndianUnicode|Unicode|Utf8|Utf16|Windows)\b/,/\b(?:Any|Binary|Date|DateTime|DateTimeZone|Duration|Int8|Int16|Int32|Int64|Function|List|Logical|None|Number|Record|Table|Text|Time)\.Type\b/,/\bnull\b/],boolean:/\b(?:true|false)\b/,keyword:/\b(?:and|as|each|else|error|if|in|is|let|meta|not|nullable|optional|or|otherwise|section|shared|then|try|type)\b|#(?:binary|date|datetime|datetimezone|duration|infinity|nan|sections|shared|table|time)\b/,function:{pattern:/(^|[^#\w.])(?!\d)[\w.]+(?=\s*\()/,lookbehind:!0},"data-type":{pattern:/\b(?:any|anynonnull|binary|date|datetime|datetimezone|duration|function|list|logical|none|number|record|table|text|time|type)\b/,alias:"variable"},number:{pattern:/\b0x[\da-f]+\b|(?:[+-]?(?:\b\d+\.)?\b\d+|[+-]\.\d+|(^|[^.])\B\.\d+)(?:e[+-]?\d+)?\b/i,lookbehind:!0},operator:/[-+*\/&?@^]|<(?:=>?|>)?|>=?|=>?|\.\.\.?/,punctuation:/[,;\[\](){}]/},e.languages.pq=e.languages.powerquery,e.languages.mscript=e.languages.powerquery}e.exports=t,t.displayName="powerquery",t.aliases=[]},61777(e){"use strict";function t(e){var t,n,r;(r=(n=(t=e).languages.powershell={comment:[{pattern:/(^|[^`])<#[\s\S]*?#>/,lookbehind:!0},{pattern:/(^|[^`])#.*/,lookbehind:!0}],string:[{pattern:/"(?:`[\s\S]|[^`"])*"/,greedy:!0,inside:{function:{pattern:/(^|[^`])\$\((?:\$\([^\r\n()]*\)|(?!\$\()[^\r\n)])*\)/,lookbehind:!0,inside:{}}}},{pattern:/'(?:[^']|'')*'/,greedy:!0}],namespace:/\[[a-z](?:\[(?:\[[^\]]*\]|[^\[\]])*\]|[^\[\]])*\]/i,boolean:/\$(?:true|false)\b/i,variable:/\$\w+\b/,function:[/\b(?:Add|Approve|Assert|Backup|Block|Checkpoint|Clear|Close|Compare|Complete|Compress|Confirm|Connect|Convert|ConvertFrom|ConvertTo|Copy|Debug|Deny|Disable|Disconnect|Dismount|Edit|Enable|Enter|Exit|Expand|Export|Find|ForEach|Format|Get|Grant|Group|Hide|Import|Initialize|Install|Invoke|Join|Limit|Lock|Measure|Merge|Move|New|Open|Optimize|Out|Ping|Pop|Protect|Publish|Push|Read|Receive|Redo|Register|Remove|Rename|Repair|Request|Reset|Resize|Resolve|Restart|Restore|Resume|Revoke|Save|Search|Select|Send|Set|Show|Skip|Sort|Split|Start|Step|Stop|Submit|Suspend|Switch|Sync|Tee|Test|Trace|Unblock|Undo|Uninstall|Unlock|Unprotect|Unpublish|Unregister|Update|Use|Wait|Watch|Where|Write)-[a-z]+\b/i,/\b(?:ac|cat|chdir|clc|cli|clp|clv|compare|copy|cp|cpi|cpp|cvpa|dbp|del|diff|dir|ebp|echo|epal|epcsv|epsn|erase|fc|fl|ft|fw|gal|gbp|gc|gci|gcs|gdr|gi|gl|gm|gp|gps|group|gsv|gu|gv|gwmi|iex|ii|ipal|ipcsv|ipsn|irm|iwmi|iwr|kill|lp|ls|measure|mi|mount|move|mp|mv|nal|ndr|ni|nv|ogv|popd|ps|pushd|pwd|rbp|rd|rdr|ren|ri|rm|rmdir|rni|rnp|rp|rv|rvpa|rwmi|sal|saps|sasv|sbp|sc|select|set|shcm|si|sl|sleep|sls|sort|sp|spps|spsv|start|sv|swmi|tee|trcm|type|write)\b/i],keyword:/\b(?:Begin|Break|Catch|Class|Continue|Data|Define|Do|DynamicParam|Else|ElseIf|End|Exit|Filter|Finally|For|ForEach|From|Function|If|InlineScript|Parallel|Param|Process|Return|Sequence|Switch|Throw|Trap|Try|Until|Using|Var|While|Workflow)\b/i,operator:{pattern:/(\W?)(?:!|-(?:eq|ne|gt|ge|lt|le|sh[lr]|not|b?(?:and|x?or)|(?:Not)?(?:Like|Match|Contains|In)|Replace|Join|is(?:Not)?|as)\b|-[-=]?|\+[+=]?|[*\/%]=?)/i,lookbehind:!0},punctuation:/[|{}[\];(),.]/}).string[0].inside).boolean=n.boolean,r.variable=n.variable,r.function.inside=n}e.exports=t,t.displayName="powershell",t.aliases=[]},3623(e){"use strict";function t(e){e.languages.processing=e.languages.extend("clike",{keyword:/\b(?:break|catch|case|class|continue|default|else|extends|final|for|if|implements|import|new|null|private|public|return|static|super|switch|this|try|void|while)\b/,operator:/<[<=]?|>[>=]?|&&?|\|\|?|[%?]|[!=+\-*\/]=?/}),e.languages.insertBefore("processing","number",{constant:/\b(?!XML\b)[A-Z][A-Z\d_]+\b/,type:{pattern:/\b(?:boolean|byte|char|color|double|float|int|[A-Z]\w*)\b/,alias:"variable"}}),e.languages.processing.function=/\b\w+(?=\s*\()/,e.languages.processing["class-name"].alias="variable"}e.exports=t,t.displayName="processing",t.aliases=[]},82707(e){"use strict";function t(e){e.languages.prolog={comment:[/%.+/,/\/\*[\s\S]*?\*\//],string:{pattern:/(["'])(?:\1\1|\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},builtin:/\b(?:fx|fy|xf[xy]?|yfx?)\b/,variable:/\b[A-Z_]\w*/,function:/\b[a-z]\w*(?:(?=\()|\/\d+)/,number:/\b\d+(?:\.\d*)?/,operator:/[:\\=><\-?*@\/;+^|!$.]+|\b(?:is|mod|not|xor)\b/,punctuation:/[(){}\[\],]/}}e.exports=t,t.displayName="prolog",t.aliases=[]},59338(e){"use strict";function t(e){var t,n,r;t=e,r=["sum","min","max","avg","group","stddev","stdvar","count","count_values","bottomk","topk","quantile"].concat(n=["on","ignoring","group_right","group_left","by","without"],["offset"]),t.languages.promql={comment:{pattern:/(^[ \t]*)#.*/m,lookbehind:!0},"vector-match":{pattern:RegExp("((?:"+n.join("|")+")\\s*)\\([^)]*\\)"),lookbehind:!0,inside:{"label-key":{pattern:/\b[^,]*\b/,alias:"attr-name"},punctuation:/[(),]/}},"context-labels":{pattern:/\{[^{}]*\}/,inside:{"label-key":{pattern:/\b[a-z_]\w*(?=\s*(?:=|![=~]))/,alias:"attr-name"},"label-value":{pattern:/(["'`])(?:\\[\s\S]|(?!\1)[^\\])*\1/,greedy:!0,alias:"attr-value"},punctuation:/\{|\}|=~?|![=~]|,/}},"context-range":[{pattern:/\[[\w\s:]+\]/,inside:{punctuation:/\[|\]|:/,"range-duration":{pattern:/\b(?:\d+(?:[smhdwy]|ms))+\b/i,alias:"number"}}},{pattern:/(\boffset\s+)\w+/,lookbehind:!0,inside:{"range-duration":{pattern:/\b(?:\d+(?:[smhdwy]|ms))+\b/i,alias:"number"}}}],keyword:RegExp("\\b(?:"+r.join("|")+")\\b","i"),function:/\b[a-z_]\w*(?=\s*\()/i,number:/[-+]?(?:(?:\b\d+(?:\.\d+)?|\B\.\d+)(?:e[-+]?\d+)?\b|\b(?:0x[0-9a-f]+|nan|inf)\b)/i,operator:/[\^*/%+-]|==|!=|<=|<|>=|>|\b(?:and|unless|or)\b/i,punctuation:/[{};()`,.[\]]/}}e.exports=t,t.displayName="promql",t.aliases=[]},56267(e){"use strict";function t(e){e.languages.properties={comment:/^[ \t]*[#!].*$/m,"attr-value":{pattern:/(^[ \t]*(?:\\(?:\r\n|[\s\S])|[^\\\s:=])+(?: *[=:] *(?! )| ))(?:\\(?:\r\n|[\s\S])|[^\\\r\n])+/m,lookbehind:!0},"attr-name":/^[ \t]*(?:\\(?:\r\n|[\s\S])|[^\\\s:=])+(?= *[=:]| )/m,punctuation:/[=:]/}}e.exports=t,t.displayName="properties",t.aliases=[]},98809(e){"use strict";function t(e){var t,n;n=/\b(?:double|float|[su]?int(?:32|64)|s?fixed(?:32|64)|bool|string|bytes)\b/,(t=e).languages.protobuf=t.languages.extend("clike",{"class-name":[{pattern:/(\b(?:enum|extend|message|service)\s+)[A-Za-z_]\w*(?=\s*\{)/,lookbehind:!0},{pattern:/(\b(?:rpc\s+\w+|returns)\s*\(\s*(?:stream\s+)?)\.?[A-Za-z_]\w*(?:\.[A-Za-z_]\w*)*(?=\s*\))/,lookbehind:!0}],keyword:/\b(?:enum|extend|extensions|import|message|oneof|option|optional|package|public|repeated|required|reserved|returns|rpc(?=\s+\w)|service|stream|syntax|to)\b(?!\s*=\s*\d)/,function:/\b[a-z_]\w*(?=\s*\()/i}),t.languages.insertBefore("protobuf","operator",{map:{pattern:/\bmap<\s*[\w.]+\s*,\s*[\w.]+\s*>(?=\s+[a-z_]\w*\s*[=;])/i,alias:"class-name",inside:{punctuation:/[<>.,]/,builtin:n}},builtin:n,"positional-class-name":{pattern:/(?:\b|\B\.)[a-z_]\w*(?:\.[a-z_]\w*)*(?=\s+[a-z_]\w*\s*[=;])/i,alias:"class-name",inside:{punctuation:/\./}},annotation:{pattern:/(\[\s*)[a-z_]\w*(?=\s*=)/i,lookbehind:!0}})}e.exports=t,t.displayName="protobuf",t.aliases=[]},37548(e){"use strict";function t(e){e.languages.psl={comment:{pattern:/#.*/,greedy:!0},string:{pattern:/"(?:\\.|[^\\"])*"/,greedy:!0,inside:{symbol:/\\[ntrbA-Z"\\]/}},"heredoc-string":{pattern:/<<<([a-zA-Z_]\w*)[\r\n](?:.*[\r\n])*?\1\b/,alias:"string",greedy:!0},keyword:/\b(?:__multi|__single|case|default|do|else|elsif|exit|export|for|foreach|function|if|last|line|local|next|requires|return|switch|until|while|word)\b/,constant:/\b(?:ALARM|CHART_ADD_GRAPH|CHART_DELETE_GRAPH|CHART_DESTROY|CHART_LOAD|CHART_PRINT|EOF|FALSE|False|false|NO|No|no|OFFLINE|OK|PSL_PROF_LOG|R_CHECK_HORIZ|R_CHECK_VERT|R_CLICKER|R_COLUMN|R_FRAME|R_ICON|R_LABEL|R_LABEL_CENTER|R_LIST_MULTIPLE|R_LIST_MULTIPLE_ND|R_LIST_SINGLE|R_LIST_SINGLE_ND|R_MENU|R_POPUP|R_POPUP_SCROLLED|R_RADIO_HORIZ|R_RADIO_VERT|R_ROW|R_SCALE_HORIZ|R_SCALE_VERT|R_SPINNER|R_TEXT_FIELD|R_TEXT_FIELD_LABEL|R_TOGGLE|TRIM_LEADING|TRIM_LEADING_AND_TRAILING|TRIM_REDUNDANT|TRIM_TRAILING|TRUE|True|true|VOID|WARN)\b/,variable:/\b(?:errno|exit_status|PslDebug)\b/,builtin:{pattern:/\b(?:acos|add_diary|annotate|annotate_get|asctime|asin|atan|atexit|ascii_to_ebcdic|batch_set|blackout|cat|ceil|chan_exists|change_state|close|code_cvt|cond_signal|cond_wait|console_type|convert_base|convert_date|convert_locale_date|cos|cosh|create|destroy_lock|dump_hist|date|destroy|difference|dget_text|dcget_text|ebcdic_to_ascii|encrypt|event_archive|event_catalog_get|event_check|event_query|event_range_manage|event_range_query|event_report|event_schedule|event_trigger|event_trigger2|execute|exists|exp|fabs|floor|fmod|full_discovery|file|fopen|ftell|fseek|grep|get_vars|getenv|get|get_chan_info|get_ranges|get_text|gethostinfo|getpid|getpname|history_get_retention|history|index|int|is_var|intersection|isnumber|internal|in_transition|join|kill|length|lines|lock|lock_info|log|loge|log10|matchline|msg_check|msg_get_format|msg_get_severity|msg_printf|msg_sprintf|ntharg|num_consoles|nthargf|nthline|nthlinef|num_bytes|print|proc_exists|process|popen|printf|pconfig|poplines|pow|PslExecute|PslFunctionCall|PslFunctionExists|PslSetOptions|random|read|readln|refresh_parameters|remote_check|remote_close|remote_event_query|remote_event_trigger|remote_file_send|remote_open|remove|replace|rindex|sec_check_priv|sec_store_get|sec_store_set|set_alarm_ranges|set_locale|share|sin|sinh|sleep|sopen|sqrt|srandom|subset|set|substr|system|sprintf|sort|snmp_agent_config|_snmp_debug|snmp_agent_stop|snmp_agent_start|snmp_h_set|snmp_h_get_next|snmp_h_get|snmp_set|snmp_walk|snmp_get_next|snmp_get|snmp_config|snmp_close|snmp_open|snmp_trap_receive|snmp_trap_ignore|snmp_trap_listen|snmp_trap_send|snmp_trap_raise_std_trap|snmp_trap_register_im|splitline|strcasecmp|str_repeat|trim|tail|tan|tanh|time|tmpnam|tolower|toupper|trace_psl_process|text_domain|unlock|unique|union|unset|va_arg|va_start|write)\b/,alias:"builtin-function"},"foreach-variable":{pattern:/(\bforeach\s+(?:(?:\w+\b|"(?:\\.|[^\\"])*")\s+){0,2})[_a-zA-Z]\w*(?=\s*\()/,lookbehind:!0,greedy:!0},function:{pattern:/\b[_a-z]\w*\b(?=\s*\()/i},number:/\b(?:0x[0-9a-f]+|[0-9]+(?:\.[0-9]+)?)\b/i,operator:/--|\+\+|&&=?|\|\|=?|<<=?|>>=?|[=!]~|[-+*/%&|^!=<>]=?|\.|[:?]/,punctuation:/[(){}\[\];,]/}}e.exports=t,t.displayName="psl",t.aliases=[]},82161(e){"use strict";function t(e){!function(e){e.languages.pug={comment:{pattern:/(^([\t ]*))\/\/.*(?:(?:\r?\n|\r)\2[\t ].+)*/m,lookbehind:!0},"multiline-script":{pattern:/(^([\t ]*)script\b.*\.[\t ]*)(?:(?:\r?\n|\r(?!\n))(?:\2[\t ].+|\s*?(?=\r?\n|\r)))+/m,lookbehind:!0,inside:e.languages.javascript},filter:{pattern:/(^([\t ]*)):.+(?:(?:\r?\n|\r(?!\n))(?:\2[\t ].+|\s*?(?=\r?\n|\r)))+/m,lookbehind:!0,inside:{"filter-name":{pattern:/^:[\w-]+/,alias:"variable"}}},"multiline-plain-text":{pattern:/(^([\t ]*)[\w\-#.]+\.[\t ]*)(?:(?:\r?\n|\r(?!\n))(?:\2[\t ].+|\s*?(?=\r?\n|\r)))+/m,lookbehind:!0},markup:{pattern:/(^[\t ]*)<.+/m,lookbehind:!0,inside:e.languages.markup},doctype:{pattern:/((?:^|\n)[\t ]*)doctype(?: .+)?/,lookbehind:!0},"flow-control":{pattern:/(^[\t ]*)(?:if|unless|else|case|when|default|each|while)\b(?: .+)?/m,lookbehind:!0,inside:{each:{pattern:/^each .+? in\b/,inside:{keyword:/\b(?:each|in)\b/,punctuation:/,/}},branch:{pattern:/^(?:if|unless|else|case|when|default|while)\b/,alias:"keyword"},rest:e.languages.javascript}},keyword:{pattern:/(^[\t ]*)(?:block|extends|include|append|prepend)\b.+/m,lookbehind:!0},mixin:[{pattern:/(^[\t ]*)mixin .+/m,lookbehind:!0,inside:{keyword:/^mixin/,function:/\w+(?=\s*\(|\s*$)/,punctuation:/[(),.]/}},{pattern:/(^[\t ]*)\+.+/m,lookbehind:!0,inside:{name:{pattern:/^\+\w+/,alias:"function"},rest:e.languages.javascript}}],script:{pattern:/(^[\t ]*script(?:(?:&[^(]+)?\([^)]+\))*[\t ]).+/m,lookbehind:!0,inside:e.languages.javascript},"plain-text":{pattern:/(^[\t ]*(?!-)[\w\-#.]*[\w\-](?:(?:&[^(]+)?\([^)]+\))*\/?[\t ]).+/m,lookbehind:!0},tag:{pattern:/(^[\t ]*)(?!-)[\w\-#.]*[\w\-](?:(?:&[^(]+)?\([^)]+\))*\/?:?/m,lookbehind:!0,inside:{attributes:[{pattern:/&[^(]+\([^)]+\)/,inside:e.languages.javascript},{pattern:/\([^)]+\)/,inside:{"attr-value":{pattern:/(=\s*(?!\s))(?:\{[^}]*\}|[^,)\r\n]+)/,lookbehind:!0,inside:e.languages.javascript},"attr-name":/[\w-]+(?=\s*!?=|\s*[,)])/,punctuation:/[!=(),]+/}}],punctuation:/:/,"attr-id":/#[\w\-]+/,"attr-class":/\.[\w\-]+/}},code:[{pattern:/(^[\t ]*(?:-|!?=)).+/m,lookbehind:!0,inside:e.languages.javascript}],punctuation:/[.\-!=|]+/};for(var t=/(^([\t ]*)):(?:(?:\r?\n|\r(?!\n))(?:\2[\t ].+|\s*?(?=\r?\n|\r)))+/.source,n=[{filter:"atpl",language:"twig"},{filter:"coffee",language:"coffeescript"},"ejs","handlebars","less","livescript","markdown",{filter:"sass",language:"scss"},"stylus"],r={},i=0,a=n.length;i",function(){return o.filter}),"m"),lookbehind:!0,inside:{"filter-name":{pattern:/^:[\w-]+/,alias:"variable"},rest:e.languages[o.language]}})}e.languages.insertBefore("pug","filter",r)}(e)}e.exports=t,t.displayName="pug",t.aliases=[]},80625(e){"use strict";function t(e){var t,n;(t=e).languages.puppet={heredoc:[{pattern:/(@\("([^"\r\n\/):]+)"(?:\/[nrts$uL]*)?\).*(?:\r?\n|\r))(?:.*(?:\r?\n|\r(?!\n)))*?[ \t]*(?:\|[ \t]*)?(?:-[ \t]*)?\2/,lookbehind:!0,alias:"string",inside:{punctuation:/(?=\S).*\S(?= *$)/}},{pattern:/(@\(([^"\r\n\/):]+)(?:\/[nrts$uL]*)?\).*(?:\r?\n|\r))(?:.*(?:\r?\n|\r(?!\n)))*?[ \t]*(?:\|[ \t]*)?(?:-[ \t]*)?\2/,lookbehind:!0,greedy:!0,alias:"string",inside:{punctuation:/(?=\S).*\S(?= *$)/}},{pattern:/@\("?(?:[^"\r\n\/):]+)"?(?:\/[nrts$uL]*)?\)/,alias:"string",inside:{punctuation:{pattern:/(\().+?(?=\))/,lookbehind:!0}}}],"multiline-comment":{pattern:/(^|[^\\])\/\*[\s\S]*?\*\//,lookbehind:!0,greedy:!0,alias:"comment"},regex:{pattern:/((?:\bnode\s+|[~=\(\[\{,]\s*|[=+]>\s*|^\s*))\/(?:[^\/\\]|\\[\s\S])+\/(?:[imx]+\b|\B)/,lookbehind:!0,greedy:!0,inside:{"extended-regex":{pattern:/^\/(?:[^\/\\]|\\[\s\S])+\/[im]*x[im]*$/,inside:{comment:/#.*/}}}},comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},string:{pattern:/(["'])(?:\$\{(?:[^'"}]|(["'])(?:(?!\2)[^\\]|\\[\s\S])*\2)+\}|\$(?!\{)|(?!\1)[^\\$]|\\[\s\S])*\1/,greedy:!0,inside:{"double-quoted":{pattern:/^"[\s\S]*"$/,inside:{}}}},variable:{pattern:/\$(?:::)?\w+(?:::\w+)*/,inside:{punctuation:/::/}},"attr-name":/(?:\b\w+|\*)(?=\s*=>)/,function:[{pattern:/(\.)(?!\d)\w+/,lookbehind:!0},/\b(?:contain|debug|err|fail|include|info|notice|realize|require|tag|warning)\b|\b(?!\d)\w+(?=\()/],number:/\b(?:0x[a-f\d]+|\d+(?:\.\d+)?(?:e-?\d+)?)\b/i,boolean:/\b(?:true|false)\b/,keyword:/\b(?:application|attr|case|class|consumes|default|define|else|elsif|function|if|import|inherits|node|private|produces|type|undef|unless)\b/,datatype:{pattern:/\b(?:Any|Array|Boolean|Callable|Catalogentry|Class|Collection|Data|Default|Enum|Float|Hash|Integer|NotUndef|Numeric|Optional|Pattern|Regexp|Resource|Runtime|Scalar|String|Struct|Tuple|Type|Undef|Variant)\b/,alias:"symbol"},operator:/=[=~>]?|![=~]?|<(?:<\|?|[=~|-])?|>[>=]?|->?|~>|\|>?>?|[*\/%+?]|\b(?:and|in|or)\b/,punctuation:/[\[\]{}().,;]|:+/},n=[{pattern:/(^|[^\\])\$\{(?:[^'"{}]|\{[^}]*\}|(["'])(?:(?!\2)[^\\]|\\[\s\S])*\2)+\}/,lookbehind:!0,inside:{"short-variable":{pattern:/(^\$\{)(?!\w+\()(?:::)?\w+(?:::\w+)*/,lookbehind:!0,alias:"variable",inside:{punctuation:/::/}},delimiter:{pattern:/^\$/,alias:"variable"},rest:t.languages.puppet}},{pattern:/(^|[^\\])\$(?:::)?\w+(?:::\w+)*/,lookbehind:!0,alias:"variable",inside:{punctuation:/::/}}],t.languages.puppet.heredoc[0].inside.interpolation=n,t.languages.puppet.string.inside["double-quoted"].inside.interpolation=n}e.exports=t,t.displayName="puppet",t.aliases=[]},88393(e){"use strict";function t(e){var t,n,r;(t=e).languages.pure={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?\*\//,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0},/#!.+/],"inline-lang":{pattern:/%<[\s\S]+?%>/,greedy:!0,inside:{lang:{pattern:/(^%< *)-\*-.+?-\*-/,lookbehind:!0,alias:"comment"},delimiter:{pattern:/^%<.*|%>$/,alias:"punctuation"}}},string:{pattern:/"(?:\\.|[^"\\\r\n])*"/,greedy:!0},number:{pattern:/((?:\.\.)?)(?:\b(?:inf|nan)\b|\b0x[\da-f]+|(?:\b(?:0b)?\d+(?:\.\d+)?|\B\.\d+)(?:e[+-]?\d+)?L?)/i,lookbehind:!0},keyword:/\b(?:ans|break|bt|case|catch|cd|clear|const|def|del|dump|else|end|exit|extern|false|force|help|if|infix[lr]?|interface|let|ls|mem|namespace|nonfix|NULL|of|otherwise|outfix|override|postfix|prefix|private|public|pwd|quit|run|save|show|stats|then|throw|trace|true|type|underride|using|when|with)\b/,function:/\b(?:abs|add_(?:(?:fundef|interface|macdef|typedef)(?:_at)?|addr|constdef|vardef)|all|any|applp?|arity|bigintp?|blob(?:_crc|_size|p)?|boolp?|byte_(?:matrix|pointer)|byte_c?string(?:_pointer)?|calloc|cat|catmap|ceil|char[ps]?|check_ptrtag|chr|clear_sentry|clearsym|closurep?|cmatrixp?|cols?|colcat(?:map)?|colmap|colrev|colvector(?:p|seq)?|complex(?:_float_(?:matrix|pointer)|_matrix(?:_view)?|_pointer|p)?|conj|cookedp?|cst|cstring(?:_(?:dup|list|vector))?|curry3?|cyclen?|del_(?:constdef|fundef|interface|macdef|typedef|vardef)|delete|diag(?:mat)?|dim|dmatrixp?|do|double(?:_matrix(?:_view)?|_pointer|p)?|dowith3?|drop|dropwhile|eval(?:cmd)?|exactp|filter|fix|fixity|flip|float(?:_matrix|_pointer)|floor|fold[lr]1?|frac|free|funp?|functionp?|gcd|get(?:_(?:byte|constdef|double|float|fundef|int(?:64)?|interface(?:_typedef)?|long|macdef|pointer|ptrtag|short|sentry|string|typedef|vardef))?|globsym|hash|head|id|im|imatrixp?|index|inexactp|infp|init|insert|int(?:_matrix(?:_view)?|_pointer|p)?|int64_(?:matrix|pointer)|integerp?|iteraten?|iterwhile|join|keys?|lambdap?|last(?:err(?:pos)?)?|lcd|list[2p]?|listmap|make_ptrtag|malloc|map|matcat|matrixp?|max|member|min|nanp|nargs|nmatrixp?|null|numberp?|ord|pack(?:ed)?|pointer(?:_cast|_tag|_type|p)?|pow|pred|ptrtag|put(?:_(?:byte|double|float|int(?:64)?|long|pointer|short|string))?|rationalp?|re|realp?|realloc|recordp?|redim|reduce(?:_with)?|refp?|repeatn?|reverse|rlistp?|round|rows?|rowcat(?:map)?|rowmap|rowrev|rowvector(?:p|seq)?|same|scan[lr]1?|sentry|sgn|short_(?:matrix|pointer)|slice|smatrixp?|sort|split|str|strcat|stream|stride|string(?:_(?:dup|list|vector)|p)?|subdiag(?:mat)?|submat|subseq2?|substr|succ|supdiag(?:mat)?|symbolp?|tail|take|takewhile|thunkp?|transpose|trunc|tuplep?|typep|ubyte|uint(?:64)?|ulong|uncurry3?|unref|unzip3?|update|ushort|vals?|varp?|vector(?:p|seq)?|void|zip3?|zipwith3?)\b/,special:{pattern:/\b__[a-z]+__\b/i,alias:"builtin"},operator:/(?:[!"#$%&'*+,\-.\/:<=>?@\\^`|~\u00a1-\u00bf\u00d7-\u00f7\u20d0-\u2bff]|\b_+\b)+|\b(?:and|div|mod|not|or)\b/,punctuation:/[(){}\[\];,|]/},r=/%< *-\*- *\d* *-\*-[\s\S]+?%>/.source,(n=["c",{lang:"c++",alias:"cpp"},"fortran"]).forEach(function(e){var n=e;if("string"!=typeof e&&(n=e.alias,e=e.lang),t.languages[n]){var i={};i["inline-lang-"+n]={pattern:RegExp(r.replace("",e.replace(/([.+*?\/\\(){}\[\]])/g,"\\$1")),"i"),inside:t.util.clone(t.languages.pure["inline-lang"].inside)},i["inline-lang-"+n].inside.rest=t.util.clone(t.languages[n]),t.languages.insertBefore("pure","inline-lang",i)}}),t.languages.c&&(t.languages.pure["inline-lang"].inside.rest=t.util.clone(t.languages.c))}e.exports=t,t.displayName="pure",t.aliases=[]},78404(e){"use strict";function t(e){e.languages.purebasic=e.languages.extend("clike",{comment:/;.*/,keyword:/\b(?:declarecdll|declaredll|compilerselect|compilercase|compilerdefault|compilerendselect|compilererror|enableexplicit|disableexplicit|not|and|or|xor|calldebugger|debuglevel|enabledebugger|disabledebugger|restore|read|includepath|includebinary|threaded|runtime|with|endwith|structureunion|endstructureunion|align|newlist|newmap|interface|endinterface|extends|enumeration|endenumeration|swap|foreach|continue|fakereturn|goto|gosub|return|break|module|endmodule|declaremodule|enddeclaremodule|declare|declarec|prototype|prototypec|enableasm|disableasm|dim|redim|data|datasection|enddatasection|to|procedurereturn|debug|default|case|select|endselect|as|import|endimport|importc|compilerif|compilerelse|compilerendif|compilerelseif|end|structure|endstructure|while|wend|for|next|step|if|else|elseif|endif|repeat|until|procedure|proceduredll|procedurec|procedurecdll|endprocedure|protected|shared|static|global|define|includefile|xincludefile|macro|endmacro)\b/i,function:/\b\w+(?:\.\w+)?\s*(?=\()/,number:/(?:\$[\da-f]+|\b-?(?:\d+(?:\.\d+)?|\.\d+)(?:e[+-]?\d+)?)\b/i,operator:/(?:@\*?|\?|\*)\w+|-[>-]?|\+\+?|!=?|<>?=?|==?|&&?|\|?\||[~^%?*/@]/}),e.languages.insertBefore("purebasic","keyword",{tag:/#\w+/,asm:{pattern:/(^[\t ]*)!.*/m,lookbehind:!0,alias:"tag",inside:{comment:/;.*/,string:{pattern:/(["'`])(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},"label-reference-anonymous":{pattern:/(!\s*j[a-z]+\s+)@[fb]/i,lookbehind:!0,alias:"fasm-label"},"label-reference-addressed":{pattern:/(!\s*j[a-z]+\s+)[A-Z._?$@][\w.?$@~#]*/i,lookbehind:!0,alias:"fasm-label"},function:{pattern:/^([\t ]*!\s*)[\da-z]+(?=\s|$)/im,lookbehind:!0},"function-inline":{pattern:/(:\s*)[\da-z]+(?=\s)/i,lookbehind:!0,alias:"function"},label:{pattern:/^([\t ]*!\s*)[A-Za-z._?$@][\w.?$@~#]*(?=:)/m,lookbehind:!0,alias:"fasm-label"},keyword:[/\b(?:extern|global)\b[^;\r\n]*/i,/\b(?:CPU|FLOAT|DEFAULT)\b.*/],register:/\b(?:st\d|[xyz]mm\d\d?|[cdt]r\d|r\d\d?[bwd]?|[er]?[abcd]x|[abcd][hl]|[er]?(?:bp|sp|si|di)|[cdefgs]s|mm\d+)\b/i,number:/(?:\b|-|(?=\$))(?:0[hx](?:[\da-f]*\.)?[\da-f]+(?:p[+-]?\d+)?|\d[\da-f]+[hx]|\$\d[\da-f]*|0[oq][0-7]+|[0-7]+[oq]|0[by][01]+|[01]+[by]|0[dt]\d+|(?:\d+(?:\.\d+)?|\.\d+)(?:\.?e[+-]?\d+)?[dt]?)\b/i,operator:/[\[\]*+\-/%<>=&|$!,.:]/}}}),delete e.languages.purebasic["class-name"],delete e.languages.purebasic.boolean,e.languages.pbfasm=e.languages.purebasic}e.exports=t,t.displayName="purebasic",t.aliases=[]},92923(e,t,n){"use strict";var r=n(58090);function i(e){e.register(r),e.languages.purescript=e.languages.extend("haskell",{keyword:/\b(?:ado|case|class|data|derive|do|else|forall|if|in|infixl|infixr|instance|let|module|newtype|of|primitive|then|type|where)\b/,"import-statement":{pattern:/(^[\t ]*)import\s+[A-Z][\w']*(?:\.[A-Z][\w']*)*(?:\s+as\s+[A-Z][\w']*(?:\.[A-Z][\w']*)*)?(?:\s+hiding\b)?/m,lookbehind:!0,inside:{keyword:/\b(?:import|as|hiding)\b/}},builtin:/\b(?:absurd|add|ap|append|apply|between|bind|bottom|clamp|compare|comparing|compose|conj|const|degree|discard|disj|div|eq|flap|flip|gcd|identity|ifM|join|lcm|liftA1|liftM1|map|max|mempty|min|mod|mul|negate|not|notEq|one|otherwise|recip|show|sub|top|unit|unless|unlessM|void|when|whenM|zero)\b/}),e.languages.purs=e.languages.purescript}e.exports=i,i.displayName="purescript",i.aliases=["purs"]},52992(e){"use strict";function t(e){e.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0},"string-interpolation":{pattern:/(?:f|rf|fr)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|rb|br)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|rb|br)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/im,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?: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)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:True|False|None)\b/,number:/(?:\b(?=\d)|\B(?=\.))(?:0[bo])?(?:(?:\d|0x[\da-f])[\da-f]*(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?j?\b/i,operator:/[-+%=]=?|!=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},e.languages.python["string-interpolation"].inside.interpolation.inside.rest=e.languages.python,e.languages.py=e.languages.python}e.exports=t,t.displayName="python",t.aliases=["py"]},55762(e){"use strict";function t(e){e.languages.q={string:/"(?:\\.|[^"\\\r\n])*"/,comment:[{pattern:/([\t )\]}])\/.*/,lookbehind:!0,greedy:!0},{pattern:/(^|\r?\n|\r)\/[\t ]*(?:(?:\r?\n|\r)(?:.*(?:\r?\n|\r(?!\n)))*?(?:\\(?=[\t ]*(?:\r?\n|\r))|$)|\S.*)/,lookbehind:!0,greedy:!0},{pattern:/^\\[\t ]*(?:\r?\n|\r)[\s\S]+/m,greedy:!0},{pattern:/^#!.+/m,greedy:!0}],symbol:/`(?::\S+|[\w.]*)/,datetime:{pattern:/0N[mdzuvt]|0W[dtz]|\d{4}\.\d\d(?:m|\.\d\d(?:T(?:\d\d(?::\d\d(?::\d\d(?:[.:]\d\d\d)?)?)?)?)?[dz]?)|\d\d:\d\d(?::\d\d(?:[.:]\d\d\d)?)?[uvt]?/,alias:"number"},number:/\b(?![01]:)(?:0[wn]|0W[hj]?|0N[hje]?|0x[\da-fA-F]+|\d+(?:\.\d*)?(?:e[+-]?\d+)?[hjfeb]?)/,keyword:/\\\w+\b|\b(?:abs|acos|aj0?|all|and|any|asc|asin|asof|atan|attr|avgs?|binr?|by|ceiling|cols|cor|cos|count|cov|cross|csv|cut|delete|deltas|desc|dev|differ|distinct|div|do|dsave|ej|enlist|eval|except|exec|exit|exp|fby|fills|first|fkeys|flip|floor|from|get|getenv|group|gtime|hclose|hcount|hdel|hopen|hsym|iasc|identity|idesc|if|ij|in|insert|inter|inv|keys?|last|like|list|ljf?|load|log|lower|lsq|ltime|ltrim|mavg|maxs?|mcount|md5|mdev|med|meta|mins?|mmax|mmin|mmu|mod|msum|neg|next|not|null|or|over|parse|peach|pj|plist|prds?|prev|prior|rand|rank|ratios|raze|read0|read1|reciprocal|reval|reverse|rload|rotate|rsave|rtrim|save|scan|scov|sdev|select|set|setenv|show|signum|sin|sqrt|ssr?|string|sublist|sums?|sv|svar|system|tables|tan|til|trim|txf|type|uj|ungroup|union|update|upper|upsert|value|var|views?|vs|wavg|where|while|within|wj1?|wsum|ww|xasc|xbar|xcols?|xdesc|xexp|xgroup|xkey|xlog|xprev|xrank)\b/,adverb:{pattern:/['\/\\]:?|\beach\b/,alias:"function"},verb:{pattern:/(?:\B\.\B|\b[01]:|<[=>]?|>=?|[:+\-*%,!?~=|$&#@^]):?|\b_\b:?/,alias:"operator"},punctuation:/[(){}\[\];.]/}}e.exports=t,t.displayName="q",t.aliases=[]},4137(e){"use strict";function t(e){!function(e){for(var t=/"(?:\\.|[^\\"\r\n])*"|'(?:\\.|[^\\'\r\n])*'/.source,n=/\/\/.*(?!.)|\/\*(?:[^*]|\*(?!\/))*\*\//.source,r=/(?:[^\\()[\]{}"'/]||\/(?![*/])||\(*\)|\[*\]|\{*\}|\\[\s\S])/.source.replace(//g,function(){return t}).replace(//g,function(){return n}),i=0;i<2;i++)r=r.replace(//g,function(){return r});r=r.replace(//g,"[^\\s\\S]"),e.languages.qml={comment:{pattern:/\/\/.*|\/\*[\s\S]*?\*\//,greedy:!0},"javascript-function":{pattern:RegExp(/((?:^|;)[ \t]*)function\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*\(*\)\s*\{*\}/.source.replace(//g,function(){return r}),"m"),lookbehind:!0,greedy:!0,alias:"language-javascript",inside:e.languages.javascript},"class-name":{pattern:/((?:^|[:;])[ \t]*)(?!\d)\w+(?=[ \t]*\{|[ \t]+on\b)/m,lookbehind:!0},property:[{pattern:/((?:^|[;{])[ \t]*)(?!\d)\w+(?:\.\w+)*(?=[ \t]*:)/m,lookbehind:!0},{pattern:/((?:^|[;{])[ \t]*)property[ \t]+(?!\d)\w+(?:\.\w+)*[ \t]+(?!\d)\w+(?:\.\w+)*(?=[ \t]*:)/m,lookbehind:!0,inside:{keyword:/^property/,property:/\w+(?:\.\w+)*/}}],"javascript-expression":{pattern:RegExp(/(:[ \t]*)(?![\s;}[])(?:(?!$|[;}]))+/.source.replace(//g,function(){return r}),"m"),lookbehind:!0,greedy:!0,alias:"language-javascript",inside:e.languages.javascript},string:/"(?:\\.|[^\\"\r\n])*"/,keyword:/\b(?:as|import|on)\b/,punctuation:/[{}[\]:;,]/}}(e)}e.exports=t,t.displayName="qml",t.aliases=[]},28260(e){"use strict";function t(e){e.languages.qore=e.languages.extend("clike",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:\/\/|#).*)/,lookbehind:!0},string:{pattern:/("|')(?:\\[\s\S]|(?!\1)[^\\])*\1/,greedy:!0},keyword:/\b(?:abstract|any|assert|binary|bool|boolean|break|byte|case|catch|char|class|code|const|continue|data|default|do|double|else|enum|extends|final|finally|float|for|goto|hash|if|implements|import|inherits|instanceof|int|interface|long|my|native|new|nothing|null|object|our|own|private|reference|rethrow|return|short|soft(?:int|float|number|bool|string|date|list)|static|strictfp|string|sub|super|switch|synchronized|this|throw|throws|transient|try|void|volatile|while)\b/,boolean:/\b(?:true|false)\b/i,function:/\$?\b(?!\d)\w+(?=\()/,number:/\b(?:0b[01]+|0x(?:[\da-f]*\.)?[\da-fp\-]+|(?:\d+(?:\.\d+)?|\.\d+)(?:e\d+)?[df]|(?:\d+(?:\.\d+)?|\.\d+))\b/i,operator:{pattern:/(^|[^.])(?:\+[+=]?|-[-=]?|[!=](?:==?|~)?|>>?=?|<(?:=>?|<=?)?|&[&=]?|\|[|=]?|[*\/%^]=?|[~?])/,lookbehind:!0},variable:/\$(?!\d)\w+\b/})}e.exports=t,t.displayName="qore",t.aliases=[]},71360(e){"use strict";function t(e){!function(e){function t(e,t){return e.replace(/<<(\d+)>>/g,function(e,n){return"(?:"+t[+n]+")"})}function n(e,n,r){return RegExp(t(e,n),r||"")}function r(e,t){for(var n=0;n>/g,function(){return"(?:"+e+")"});return e.replace(/<>/g,"[^\\s\\S]")}var i={type:"Adj BigInt Bool Ctl Double false Int One Pauli PauliI PauliX PauliY PauliZ Qubit Range Result String true Unit Zero",other:"Adjoint adjoint apply as auto body borrow borrowing Controlled controlled distribute elif else fail fixup for function if in internal intrinsic invert is let mutable namespace new newtype open operation repeat return self set until use using while within"};function a(e){return"\\b(?:"+e.trim().replace(/ /g,"|")+")\\b"}var o=RegExp(a(i.type+" "+i.other)),s=/\b[A-Za-z_]\w*\b/.source,u=t(/<<0>>(?:\s*\.\s*<<0>>)*/.source,[s]),c={keyword:o,punctuation:/[<>()?,.:[\]]/},l=/"(?:\\.|[^\\"])*"/.source;e.languages.qsharp=e.languages.extend("clike",{comment:/\/\/.*/,string:[{pattern:n(/(^|[^$\\])<<0>>/.source,[l]),lookbehind:!0,greedy:!0}],"class-name":[{pattern:n(/(\b(?:as|open)\s+)<<0>>(?=\s*(?:;|as\b))/.source,[u]),lookbehind:!0,inside:c},{pattern:n(/(\bnamespace\s+)<<0>>(?=\s*\{)/.source,[u]),lookbehind:!0,inside:c}],keyword:o,number:/(?:\b0(?:x[\da-f]+|b[01]+|o[0-7]+)|(?:\B\.\d+|\b\d+(?:\.\d*)?)(?:e[-+]?\d+)?)l?\b/i,operator:/\band=|\bor=|\band\b|\bor\b|\bnot\b|<[-=]|[-=]>|>>>=?|<<<=?|\^\^\^=?|\|\|\|=?|&&&=?|w\/=?|~~~|[*\/+\-^=!%]=?/,punctuation:/::|[{}[\];(),.:]/}),e.languages.insertBefore("qsharp","number",{range:{pattern:/\.\./,alias:"operator"}});var f=r(t(/\{(?:[^"{}]|<<0>>|<>)*\}/.source,[l]),2);e.languages.insertBefore("qsharp","string",{"interpolation-string":{pattern:n(/\$"(?:\\.|<<0>>|[^\\"{])*"/.source,[f]),greedy:!0,inside:{interpolation:{pattern:n(/((?:^|[^\\])(?:\\\\)*)<<0>>/.source,[f]),lookbehind:!0,inside:{punctuation:/^\{|\}$/,expression:{pattern:/[\s\S]+/,alias:"language-qsharp",inside:e.languages.qsharp}}},string:/[\s\S]+/}}})}(e),e.languages.qs=e.languages.qsharp}e.exports=t,t.displayName="qsharp",t.aliases=["qs"]},29308(e){"use strict";function t(e){e.languages.r={comment:/#.*/,string:{pattern:/(['"])(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},"percent-operator":{pattern:/%[^%\s]*%/,alias:"operator"},boolean:/\b(?:TRUE|FALSE)\b/,ellipsis:/\.\.(?:\.|\d+)/,number:[/\b(?:NaN|Inf)\b/,/(?:\b0x[\dA-Fa-f]+(?:\.\d*)?|\b\d+(?:\.\d*)?|\B\.\d+)(?:[EePp][+-]?\d+)?[iL]?/],keyword:/\b(?:if|else|repeat|while|function|for|in|next|break|NULL|NA|NA_integer_|NA_real_|NA_complex_|NA_character_)\b/,operator:/->?>?|<(?:=|=!]=?|::?|&&?|\|\|?|[+*\/^$@~]/,punctuation:/[(){}\[\],;]/}}e.exports=t,t.displayName="r",t.aliases=[]},32168(e,t,n){"use strict";var r=n(9997);function i(e){e.register(r),e.languages.racket=e.languages.extend("scheme",{"lambda-parameter":{pattern:/([(\[]lambda\s+[(\[])[^()\[\]'\s]+/,lookbehind:!0}}),e.languages.insertBefore("racket","string",{lang:{pattern:/^#lang.+/m,greedy:!0,alias:"keyword"}}),e.languages.rkt=e.languages.racket}e.exports=i,i.displayName="racket",i.aliases=["rkt"]},5755(e){"use strict";function t(e){e.languages.reason=e.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:mod|land|lor|lxor|lsl|lsr|asr)\b/}),e.languages.insertBefore("reason","class-name",{character:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,alias:"string"},constructor:{pattern:/\b[A-Z]\w*\b(?!\s*\.)/,alias:"variable"},label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete e.languages.reason.function}e.exports=t,t.displayName="reason",t.aliases=[]},54105(e){"use strict";function t(e){var t,n,r,i,a,o,s,u;t=e,n={pattern:/\\[\\(){}[\]^$+*?|.]/,alias:"escape"},i={pattern:/\.|\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},a={pattern:/\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},s=RegExp((o="(?:[^\\\\-]|"+(r=/\\(?:x[\da-fA-F]{2}|u[\da-fA-F]{4}|u\{[\da-fA-F]+\}|c[a-zA-Z]|0[0-7]{0,2}|[123][0-7]{2}|.)/).source+")")+"-"+o),u={pattern:/(<|')[^<>']+(?=[>']$)/,lookbehind:!0,alias:"variable"},t.languages.regex={charset:{pattern:/((?:^|[^\\])(?:\\\\)*)\[(?:[^\\\]]|\\[\s\S])*\]/,lookbehind:!0,inside:{"charset-negation":{pattern:/(^\[)\^/,lookbehind:!0,alias:"operator"},"charset-punctuation":{pattern:/^\[|\]$/,alias:"punctuation"},range:{pattern:s,inside:{escape:r,"range-punctuation":{pattern:/-/,alias:"operator"}}},"special-escape":n,charclass:a,escape:r}},"special-escape":n,charclass:i,backreference:[{pattern:/\\(?![123][0-7]{2})[1-9]/,alias:"keyword"},{pattern:/\\k<[^<>']+>/,alias:"keyword",inside:{"group-name":u}}],anchor:{pattern:/[$^]|\\[ABbGZz]/,alias:"function"},escape:r,group:[{pattern:/\((?:\?(?:<[^<>']+>|'[^<>']+'|[>:]|:=]=?|!=|\b_\b/,punctuation:/[,;.\[\]{}()]/}}e.exports=t,t.displayName="rego",t.aliases=[]},35108(e){"use strict";function t(e){e.languages.renpy={comment:{pattern:/(^|[^\\])#.+/,lookbehind:!0},string:{pattern:/("""|''')[\s\S]+?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2|(?:^#?(?:[0-9a-fA-F]{6}|(?:[0-9a-fA-F]){3})$)/m,greedy:!0},function:/\b[a-z_]\w*(?=\()/i,property:/\b(?:insensitive|idle|hover|selected_idle|selected_hover|background|position|alt|xpos|ypos|pos|xanchor|yanchor|anchor|xalign|yalign|align|xcenter|ycenter|xofsset|yoffset|ymaximum|maximum|xmaximum|xminimum|yminimum|minimum|xsize|ysizexysize|xfill|yfill|area|antialias|black_color|bold|caret|color|first_indent|font|size|italic|justify|kerning|language|layout|line_leading|line_overlap_split|line_spacing|min_width|newline_indent|outlines|rest_indent|ruby_style|slow_cps|slow_cps_multiplier|strikethrough|text_align|underline|hyperlink_functions|vertical|hinting|foreground|left_margin|xmargin|top_margin|bottom_margin|ymargin|left_padding|right_padding|xpadding|top_padding|bottom_padding|ypadding|size_group|child|hover_sound|activate_sound|mouse|focus_mask|keyboard_focus|bar_vertical|bar_invert|bar_resizing|left_gutter|right_gutter|top_gutter|bottom_gutter|left_bar|right_bar|top_bar|bottom_bar|thumb|thumb_shadow|thumb_offset|unscrollable|spacing|first_spacing|box_reverse|box_wrap|order_reverse|fit_first|ysize|thumbnail_width|thumbnail_height|help|text_ypos|text_xpos|idle_color|hover_color|selected_idle_color|selected_hover_color|insensitive_color|alpha|insensitive_background|hover_background|zorder|value|width|xadjustment|xanchoraround|xaround|xinitial|xoffset|xzoom|yadjustment|yanchoraround|yaround|yinitial|yzoom|zoom|ground|height|text_style|text_y_fudge|selected_insensitive|has_sound|has_music|has_voice|focus|hovered|image_style|length|minwidth|mousewheel|offset|prefix|radius|range|right_margin|rotate|rotate_pad|developer|screen_width|screen_height|window_title|name|version|windows_icon|default_fullscreen|default_text_cps|default_afm_time|main_menu_music|sample_sound|enter_sound|exit_sound|save_directory|enter_transition|exit_transition|intra_transition|main_game_transition|game_main_transition|end_splash_transition|end_game_transition|after_load_transition|window_show_transition|window_hide_transition|adv_nvl_transition|nvl_adv_transition|enter_yesno_transition|exit_yesno_transition|enter_replay_transition|exit_replay_transition|say_attribute_transition|directory_name|executable_name|include_update|window_icon|modal|google_play_key|google_play_salt|drag_name|drag_handle|draggable|dragged|droppable|dropped|narrator_menu|action|default_afm_enable|version_name|version_tuple|inside|fadeout|fadein|layers|layer_clipping|linear|scrollbars|side_xpos|side_ypos|side_spacing|edgescroll|drag_joined|drag_raise|drop_shadow|drop_shadow_color|subpixel|easein|easeout|time|crop|auto|update|get_installed_packages|can_update|UpdateVersion|Update|overlay_functions|translations|window_left_padding|show_side_image|show_two_window)\b/,tag:/\b(?:label|image|menu|[hv]box|frame|text|imagemap|imagebutton|bar|vbar|screen|textbutton|buttoscreenn|fixed|grid|input|key|mousearea|side|timer|viewport|window|hotspot|hotbar|self|button|drag|draggroup|tag|mm_menu_frame|nvl|block|parallel)\b|\$/,keyword:/\b(?:as|assert|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|pass|print|raise|return|try|while|yield|adjustment|alignaround|allow|angle|around|box_layout|cache|changed|child_size|clicked|clipping|corner1|corner2|default|delay|exclude|scope|slow|slow_abortable|slow_done|sound|style_group|substitute|suffix|transform_anchor|transpose|unhovered|config|theme|mm_root|gm_root|rounded_window|build|disabled_text|disabled|widget_selected|widget_text|widget_hover|widget|updater|behind|call|expression|hide|init|jump|onlayer|python|renpy|scene|set|show|transform|play|queue|stop|pause|define|window|repeat|contains|choice|on|function|event|animation|clockwise|counterclockwise|circles|knot|null|None|random|has|add|use|fade|dissolve|style|store|id|voice|center|left|right|less_rounded|music|movie|clear|persistent|ui)\b/,boolean:/\b(?:[Tt]rue|[Ff]alse)\b/,number:/(?:\b(?:0[bo])?(?:(?:\d|0x[\da-f])[\da-f]*(?:\.\d*)?)|\B\.\d+)(?:e[+-]?\d+)?j?/i,operator:/[-+%=]=?|!=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]|\b(?:or|and|not|with|at)\b/,punctuation:/[{}[\];(),.:]/},e.languages.rpy=e.languages.renpy}e.exports=t,t.displayName="renpy",t.aliases=["rpy"]},46678(e){"use strict";function t(e){e.languages.rest={table:[{pattern:/(^[\t ]*)(?:\+[=-]+)+\+(?:\r?\n|\r)(?:\1[+|].+[+|](?:\r?\n|\r))+\1(?:\+[=-]+)+\+/m,lookbehind:!0,inside:{punctuation:/\||(?:\+[=-]+)+\+/}},{pattern:/(^[\t ]*)=+ [ =]*=(?:(?:\r?\n|\r)\1.+)+(?:\r?\n|\r)\1=+ [ =]*=(?=(?:\r?\n|\r){2}|\s*$)/m,lookbehind:!0,inside:{punctuation:/[=-]+/}}],"substitution-def":{pattern:/(^[\t ]*\.\. )\|(?:[^|\s](?:[^|]*[^|\s])?)\| [^:]+::/m,lookbehind:!0,inside:{substitution:{pattern:/^\|(?:[^|\s]|[^|\s][^|]*[^|\s])\|/,alias:"attr-value",inside:{punctuation:/^\||\|$/}},directive:{pattern:/( )(?! )[^:]+::/,lookbehind:!0,alias:"function",inside:{punctuation:/::$/}}}},"link-target":[{pattern:/(^[\t ]*\.\. )\[[^\]]+\]/m,lookbehind:!0,alias:"string",inside:{punctuation:/^\[|\]$/}},{pattern:/(^[\t ]*\.\. )_(?:`[^`]+`|(?:[^:\\]|\\.)+):/m,lookbehind:!0,alias:"string",inside:{punctuation:/^_|:$/}}],directive:{pattern:/(^[\t ]*\.\. )[^:]+::/m,lookbehind:!0,alias:"function",inside:{punctuation:/::$/}},comment:{pattern:/(^[\t ]*\.\.)(?:(?: .+)?(?:(?:\r?\n|\r).+)+| .+)(?=(?:\r?\n|\r){2}|$)/m,lookbehind:!0},title:[{pattern:/^(([!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~])\2+)(?:\r?\n|\r).+(?:\r?\n|\r)\1$/m,inside:{punctuation:/^[!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~]+|[!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~]+$/,important:/.+/}},{pattern:/(^|(?:\r?\n|\r){2}).+(?:\r?\n|\r)([!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~])\2+(?=\r?\n|\r|$)/,lookbehind:!0,inside:{punctuation:/[!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~]+$/,important:/.+/}}],hr:{pattern:/((?:\r?\n|\r){2})([!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~])\2{3,}(?=(?:\r?\n|\r){2})/,lookbehind:!0,alias:"punctuation"},field:{pattern:/(^[\t ]*):[^:\r\n]+:(?= )/m,lookbehind:!0,alias:"attr-name"},"command-line-option":{pattern:/(^[\t ]*)(?:[+-][a-z\d]|(?:--|\/)[a-z\d-]+)(?:[ =](?:[a-z][\w-]*|<[^<>]+>))?(?:, (?:[+-][a-z\d]|(?:--|\/)[a-z\d-]+)(?:[ =](?:[a-z][\w-]*|<[^<>]+>))?)*(?=(?:\r?\n|\r)? {2,}\S)/im,lookbehind:!0,alias:"symbol"},"literal-block":{pattern:/::(?:\r?\n|\r){2}([ \t]+)(?![ \t]).+(?:(?:\r?\n|\r)\1.+)*/,inside:{"literal-block-punctuation":{pattern:/^::/,alias:"punctuation"}}},"quoted-literal-block":{pattern:/::(?:\r?\n|\r){2}([!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~]).*(?:(?:\r?\n|\r)\1.*)*/,inside:{"literal-block-punctuation":{pattern:/^(?:::|([!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~])\1*)/m,alias:"punctuation"}}},"list-bullet":{pattern:/(^[\t ]*)(?:[*+\-•‣⁃]|\(?(?:\d+|[a-z]|[ivxdclm]+)\)|(?:\d+|[a-z]|[ivxdclm]+)\.)(?= )/im,lookbehind:!0,alias:"punctuation"},"doctest-block":{pattern:/(^[\t ]*)>>> .+(?:(?:\r?\n|\r).+)*/m,lookbehind:!0,inside:{punctuation:/^>>>/}},inline:[{pattern:/(^|[\s\-:\/'"<(\[{])(?::[^:]+:`.*?`|`.*?`:[^:]+:|(\*\*?|``?|\|)(?!\s)(?:(?!\2).)*\S\2(?=[\s\-.,:;!?\\\/'")\]}]|$))/m,lookbehind:!0,inside:{bold:{pattern:/(^\*\*).+(?=\*\*$)/,lookbehind:!0},italic:{pattern:/(^\*).+(?=\*$)/,lookbehind:!0},"inline-literal":{pattern:/(^``).+(?=``$)/,lookbehind:!0,alias:"symbol"},role:{pattern:/^:[^:]+:|:[^:]+:$/,alias:"function",inside:{punctuation:/^:|:$/}},"interpreted-text":{pattern:/(^`).+(?=`$)/,lookbehind:!0,alias:"attr-value"},substitution:{pattern:/(^\|).+(?=\|$)/,lookbehind:!0,alias:"attr-value"},punctuation:/\*\*?|``?|\|/}}],link:[{pattern:/\[[^\[\]]+\]_(?=[\s\-.,:;!?\\\/'")\]}]|$)/,alias:"string",inside:{punctuation:/^\[|\]_$/}},{pattern:/(?:\b[a-z\d]+(?:[_.:+][a-z\d]+)*_?_|`[^`]+`_?_|_`[^`]+`)(?=[\s\-.,:;!?\\\/'")\]}]|$)/i,alias:"string",inside:{punctuation:/^_?`|`$|`?_?_$/}}],punctuation:{pattern:/(^[\t ]*)(?:\|(?= |$)|(?:---?|—|\.\.|__)(?= )|\.\.$)/m,lookbehind:!0}}}e.exports=t,t.displayName="rest",t.aliases=[]},47496(e){"use strict";function t(e){e.languages.rip={comment:/#.*/,keyword:/(?:=>|->)|\b(?:class|if|else|switch|case|return|exit|try|catch|finally|raise)\b/,builtin:/@|\bSystem\b/,boolean:/\b(?:true|false)\b/,date:/\b\d{4}-\d{2}-\d{2}\b/,time:/\b\d{2}:\d{2}:\d{2}\b/,datetime:/\b\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\b/,character:/\B`[^\s`'",.:;#\/\\()<>\[\]{}]\b/,regex:{pattern:/(^|[^/])\/(?!\/)(?:\[[^\n\r\]]*\]|\\.|[^/\\\r\n\[])+\/(?=\s*(?:$|[\r\n,.;})]))/,lookbehind:!0,greedy:!0},symbol:/:[^\d\s`'",.:;#\/\\()<>\[\]{}][^\s`'",.:;#\/\\()<>\[\]{}]*/,string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},number:/[+-]?\b(?:\d+\.\d+|\d+)\b/,punctuation:/(?:\.{2,3})|[`,.:;=\/\\()<>\[\]{}]/,reference:/[^\d\s`'",.:;#\/\\()<>\[\]{}][^\s`'",.:;#\/\\()<>\[\]{}]*/}}e.exports=t,t.displayName="rip",t.aliases=[]},30527(e){"use strict";function t(e){e.languages.roboconf={comment:/#.*/,keyword:{pattern:/(^|\s)(?:(?:facet|instance of)(?=[ \t]+[\w-]+[ \t]*\{)|(?:external|import)\b)/,lookbehind:!0},component:{pattern:/[\w-]+(?=[ \t]*\{)/,alias:"variable"},property:/[\w.-]+(?=[ \t]*:)/,value:{pattern:/(=[ \t]*(?![ \t]))[^,;]+/,lookbehind:!0,alias:"attr-value"},optional:{pattern:/\(optional\)/,alias:"builtin"},wildcard:{pattern:/(\.)\*/,lookbehind:!0,alias:"operator"},punctuation:/[{},.;:=]/}}e.exports=t,t.displayName="roboconf",t.aliases=[]},5261(e){"use strict";function t(e){!function(e){var t={pattern:/(^[ \t]*| {2}|\t)#.*/m,lookbehind:!0,greedy:!0},n={pattern:/((?:^|[^\\])(?:\\{2})*)[$@&%]\{(?:[^{}\r\n]|\{[^{}\r\n]*\})*\}/,lookbehind:!0,inside:{punctuation:/^[$@&%]\{|\}$/}};function r(e,r){var i={};for(var a in i["section-header"]={pattern:/^ ?\*{3}.+?\*{3}/,alias:"keyword"},r)i[a]=r[a];return i.tag={pattern:/([\r\n](?: {2}|\t)[ \t]*)\[[-\w]+\]/,lookbehind:!0,inside:{punctuation:/\[|\]/}},i.variable=n,i.comment=t,{pattern:RegExp(/^ ?\*{3}[ \t]*[ \t]*\*{3}(?:.|[\r\n](?!\*{3}))*/.source.replace(//g,function(){return e}),"im"),alias:"section",inside:i}}var i={pattern:/(\[Documentation\](?: {2}|\t)[ \t]*)(?![ \t]|#)(?:.|(?:\r\n?|\n)[ \t]*\.{3})+/,lookbehind:!0,alias:"string"},a={pattern:/([\r\n] ?)(?!#)(?:\S(?:[ \t]\S)*)+/,lookbehind:!0,alias:"function",inside:{variable:n}},o={pattern:/([\r\n](?: {2}|\t)[ \t]*)(?!\[|\.{3}|#)(?:\S(?:[ \t]\S)*)+/,lookbehind:!0,inside:{variable:n}};e.languages.robotframework={settings:r("Settings",{documentation:{pattern:/([\r\n] ?Documentation(?: {2}|\t)[ \t]*)(?![ \t]|#)(?:.|(?:\r\n?|\n)[ \t]*\.{3})+/,lookbehind:!0,alias:"string"},property:{pattern:/([\r\n] ?)(?!\.{3}|#)(?:\S(?:[ \t]\S)*)+/,lookbehind:!0}}),variables:r("Variables"),"test-cases":r("Test Cases",{"test-name":a,documentation:i,property:o}),keywords:r("Keywords",{"keyword-name":a,documentation:i,property:o}),tasks:r("Tasks",{"task-name":a,documentation:i,property:o}),comment:t},e.languages.robot=e.languages.robotframework}(e)}e.exports=t,t.displayName="robotframework",t.aliases=[]},56939(e){"use strict";function t(e){var t,n;(t=e).languages.ruby=t.languages.extend("clike",{comment:[/#.*/,{pattern:/^=begin\s[\s\S]*?^=end/m,greedy:!0}],"class-name":{pattern:/(\b(?:class)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:alias|and|BEGIN|begin|break|case|class|def|define_method|defined|do|each|else|elsif|END|end|ensure|extend|for|if|in|include|module|new|next|nil|not|or|prepend|protected|private|public|raise|redo|require|rescue|retry|return|self|super|then|throw|undef|unless|until|when|while|yield)\b/}),n={pattern:/#\{[^}]+\}/,inside:{delimiter:{pattern:/^#\{|\}$/,alias:"tag"},rest:t.languages.ruby}},delete t.languages.ruby.function,t.languages.insertBefore("ruby","keyword",{regex:[{pattern:RegExp(/%r/.source+"(?:"+[/([^a-zA-Z0-9\s{(\[<])(?:(?!\1)[^\\]|\\[\s\S])*\1/.source,/\((?:[^()\\]|\\[\s\S])*\)/.source,/\{(?:[^#{}\\]|#(?:\{[^}]+\})?|\\[\s\S])*\}/.source,/\[(?:[^\[\]\\]|\\[\s\S])*\]/.source,/<(?:[^<>\\]|\\[\s\S])*>/.source].join("|")+")"+/[egimnosux]{0,6}/.source),greedy:!0,inside:{interpolation:n}},{pattern:/(^|[^/])\/(?!\/)(?:\[[^\r\n\]]+\]|\\.|[^[/\\\r\n])+\/[egimnosux]{0,6}(?=\s*(?:$|[\r\n,.;})#]))/,lookbehind:!0,greedy:!0,inside:{interpolation:n}}],variable:/[@$]+[a-zA-Z_]\w*(?:[?!]|\b)/,symbol:{pattern:/(^|[^:]):[a-zA-Z_]\w*(?:[?!]|\b)/,lookbehind:!0},"method-definition":{pattern:/(\bdef\s+)[\w.]+/,lookbehind:!0,inside:{function:/\w+$/,rest:t.languages.ruby}}}),t.languages.insertBefore("ruby","number",{builtin:/\b(?:Array|Bignum|Binding|Class|Continuation|Dir|Exception|FalseClass|File|Stat|Fixnum|Float|Hash|Integer|IO|MatchData|Method|Module|NilClass|Numeric|Object|Proc|Range|Regexp|String|Struct|TMS|Symbol|ThreadGroup|Thread|Time|TrueClass)\b/,constant:/\b[A-Z]\w*(?:[?!]|\b)/}),t.languages.ruby.string=[{pattern:RegExp(/%[qQiIwWxs]?/.source+"(?:"+[/([^a-zA-Z0-9\s{(\[<])(?:(?!\1)[^\\]|\\[\s\S])*\1/.source,/\((?:[^()\\]|\\[\s\S])*\)/.source,/\{(?:[^#{}\\]|#(?:\{[^}]+\})?|\\[\s\S])*\}/.source,/\[(?:[^\[\]\\]|\\[\s\S])*\]/.source,/<(?:[^<>\\]|\\[\s\S])*>/.source].join("|")+")"),greedy:!0,inside:{interpolation:n}},{pattern:/("|')(?:#\{[^}]+\}|#(?!\{)|\\(?:\r\n|[\s\S])|(?!\1)[^\\#\r\n])*\1/,greedy:!0,inside:{interpolation:n}},{pattern:/<<[-~]?([a-z_]\w*)[\r\n](?:.*[\r\n])*?[\t ]*\1/i,alias:"heredoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<[-~]?[a-z_]\w*|[a-z_]\w*$/i,alias:"symbol",inside:{punctuation:/^<<[-~]?/}},interpolation:n}},{pattern:/<<[-~]?'([a-z_]\w*)'[\r\n](?:.*[\r\n])*?[\t ]*\1/i,alias:"heredoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<[-~]?'[a-z_]\w*'|[a-z_]\w*$/i,alias:"symbol",inside:{punctuation:/^<<[-~]?'|'$/}}}}],t.languages.rb=t.languages.ruby}e.exports=t,t.displayName="ruby",t.aliases=["rb"]},83648(e){"use strict";function t(e){!function(e){for(var t=/\/\*(?:[^*/]|\*(?!\/)|\/(?!\*)|)*\*\//.source,n=0;n<2;n++)t=t.replace(//g,function(){return t});t=t.replace(//g,function(){return/[^\s\S]/.source}),e.languages.rust={comment:[{pattern:RegExp(/(^|[^\\])/.source+t),lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/b?"(?:\\[\s\S]|[^\\"])*"|b?r(#*)"(?:[^"]|"(?!\1))*"\1/,greedy:!0},char:{pattern:/b?'(?:\\(?:x[0-7][\da-fA-F]|u\{(?:[\da-fA-F]_*){1,6}\}|.)|[^\\\r\n\t'])'/,greedy:!0,alias:"string"},attribute:{pattern:/#!?\[(?:[^\[\]"]|"(?:\\[\s\S]|[^\\"])*")*\]/,greedy:!0,alias:"attr-name",inside:{string:null}},"closure-params":{pattern:/([=(,:]\s*|\bmove\s*)\|[^|]*\||\|[^|]*\|(?=\s*(?:\{|->))/,lookbehind:!0,greedy:!0,inside:{"closure-punctuation":{pattern:/^\||\|$/,alias:"punctuation"},rest:null}},"lifetime-annotation":{pattern:/'\w+/,alias:"symbol"},"fragment-specifier":{pattern:/(\$\w+:)[a-z]+/,lookbehind:!0,alias:"punctuation"},variable:/\$\w+/,"function-definition":{pattern:/(\bfn\s+)\w+/,lookbehind:!0,alias:"function"},"type-definition":{pattern:/(\b(?:enum|struct|union)\s+)\w+/,lookbehind:!0,alias:"class-name"},"module-declaration":[{pattern:/(\b(?:crate|mod)\s+)[a-z][a-z_\d]*/,lookbehind:!0,alias:"namespace"},{pattern:/(\b(?:crate|self|super)\s*)::\s*[a-z][a-z_\d]*\b(?:\s*::(?:\s*[a-z][a-z_\d]*\s*::)*)?/,lookbehind:!0,alias:"namespace",inside:{punctuation:/::/}}],keyword:[/\b(?:abstract|as|async|await|become|box|break|const|continue|crate|do|dyn|else|enum|extern|final|fn|for|if|impl|in|let|loop|macro|match|mod|move|mut|override|priv|pub|ref|return|self|Self|static|struct|super|trait|try|type|typeof|union|unsafe|unsized|use|virtual|where|while|yield)\b/,/\b(?:[ui](?:8|16|32|64|128|size)|f(?:32|64)|bool|char|str)\b/],function:/\b[a-z_]\w*(?=\s*(?:::\s*<|\())/,macro:{pattern:/\b\w+!/,alias:"property"},constant:/\b[A-Z_][A-Z_\d]+\b/,"class-name":/\b[A-Z]\w*\b/,namespace:{pattern:/(?:\b[a-z][a-z_\d]*\s*::\s*)*\b[a-z][a-z_\d]*\s*::(?!\s*<)/,inside:{punctuation:/::/}},number:/\b(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0o[0-7](?:_?[0-7])*|0b[01](?:_?[01])*|(?:(?:\d(?:_?\d)*)?\.)?\d(?:_?\d)*(?:[Ee][+-]?\d+)?)(?:_?(?:[iu](?:8|16|32|64|size)?|f32|f64))?\b/,boolean:/\b(?:false|true)\b/,punctuation:/->|\.\.=|\.{1,3}|::|[{}[\];(),:]/,operator:/[-+*\/%!^]=?|=[=>]?|&[&=]?|\|[|=]?|<>?=?|[@?]/},e.languages.rust["closure-params"].inside.rest=e.languages.rust,e.languages.rust.attribute.inside.string=e.languages.rust.string}(e)}e.exports=t,t.displayName="rust",t.aliases=[]},16009(e){"use strict";function t(e){var t,n,r,i,a,o,s,u,c,l,f,d,h,p,b,m,g,v,y;t=e,n=/(?:"(?:""|[^"])*"(?!")|'(?:''|[^'])*'(?!'))/.source,r=/\b(?:\d[\da-f]*x|\d+(?:\.\d+)?(?:e[+-]?\d+)?)\b/i,i={pattern:RegExp(n+"[bx]"),alias:"number"},a={pattern:/&[a-z_]\w*/i},o={pattern:/((?:^|\s|=|\())%(?:ABORT|BY|CMS|COPY|DISPLAY|DO|ELSE|END|EVAL|GLOBAL|GO|GOTO|IF|INC|INCLUDE|INDEX|INPUT|KTRIM|LENGTH|LET|LIST|LOCAL|PUT|QKTRIM|QSCAN|QSUBSTR|QSYSFUNC|QUPCASE|RETURN|RUN|SCAN|SUBSTR|SUPERQ|SYMDEL|SYMGLOBL|SYMLOCAL|SYMEXIST|SYSCALL|SYSEVALF|SYSEXEC|SYSFUNC|SYSGET|SYSRPUT|THEN|TO|TSO|UNQUOTE|UNTIL|UPCASE|WHILE|WINDOW)\b/i,lookbehind:!0,alias:"keyword"},s={pattern:/(^|\s)(?:proc\s+\w+|quit|run|data(?!=))\b/i,alias:"keyword",lookbehind:!0},u=[/\/\*[\s\S]*?\*\//,{pattern:/(^[ \t]*|;\s*)\*[^;]*;/m,lookbehind:!0}],c={pattern:RegExp(n),greedy:!0},d={function:f={pattern:/%?\b\w+(?=\()/,alias:"keyword"},"arg-value":{pattern:/(=\s*)[A-Z\.]+/i,lookbehind:!0},operator:/=/,"macro-variable":a,arg:{pattern:/[A-Z]+/i,alias:"keyword"},number:r,"numeric-constant":i,punctuation:l=/[$%@.(){}\[\];,\\]/,string:c},h={pattern:/\b(?:format|put)\b=?[\w'$.]+/im,inside:{keyword:/^(?:format|put)(?==)/i,equals:/=/,format:{pattern:/(?:\w|\$\d)+\.\d?/i,alias:"number"}}},p={pattern:/\b(?:format|put)\s+[\w']+(?:\s+[$.\w]+)+(?=;)/i,inside:{keyword:/^(?:format|put)/i,format:{pattern:/[\w$]+\.\d?/,alias:"number"}}},b={pattern:/((?:^|\s)=?)(?:catname|checkpoint execute_always|dm|endsas|filename|footnote|%include|libname|%list|lock|missing|options|page|resetline|%run|sasfile|skip|sysecho|title\d?)\b/i,lookbehind:!0,alias:"keyword"},m={pattern:/(^|\s)(?:submit(?:\s+(?:load|parseonly|norun))?|endsubmit)\b/i,lookbehind:!0,alias:"keyword"},g=/accessControl|cdm|aggregation|aStore|ruleMining|audio|autotune|bayesianNetClassifier|bioMedImage|boolRule|builtins|cardinality|sccasl|clustering|copula|countreg|dataDiscovery|dataPreprocess|dataSciencePilot|dataStep|decisionTree|deepLearn|deepNeural|varReduce|simSystem|ds2|deduplication|ecm|entityRes|espCluster|explainModel|factmac|fastKnn|fcmpact|fedSql|freqTab|gam|gleam|graphSemiSupLearn|gVarCluster|hiddenMarkovModel|hyperGroup|image|iml|ica|kernalPca|langModel|ldaTopic|sparseML|mlTools|mixed|modelPublishing|mbc|network|optNetwork|neuralNet|nonlinear|nmf|nonParametricBayes|optimization|panel|pls|percentile|pca|phreg|qkb|qlim|quantreg|recommend|tsReconcile|deepRnn|regression|reinforcementLearn|robustPca|sampling|sparkEmbeddedProcess|search(?:Analytics)?|sentimentAnalysis|sequence|configuration|session(?:Prop)?|severity|simple|smartData|sandwich|spatialreg|stabilityMonitoring|spc|loadStreams|svDataDescription|svm|table|conditionalRandomFields|text(?:Rule(?:Develop|Score)|Mining|Parse|Topic|Util|Filters|Frequency)|tsInfo|timeData|transpose|uniTimeSeries/.source,v={pattern:RegExp(/(^|\s)(?:action\s+)?(?:)\.[a-z]+\b[^;]+/.source.replace(//g,function(){return g}),"i"),lookbehind:!0,inside:{keyword:RegExp(/(?:)\.[a-z]+\b/.source.replace(//g,function(){return g}),"i"),action:{pattern:/(?:action)/i,alias:"keyword"},comment:u,function:f,"arg-value":d["arg-value"],operator:d.operator,argument:d.arg,number:r,"numeric-constant":i,punctuation:l,string:c}},y={pattern:/((?:^|\s)=?)(?:after|analysis|and|array|barchart|barwidth|begingraph|by|call|cas|cbarline|cfill|class(?:lev)?|close|column|computed?|contains|continue|data(?==)|define|delete|describe|document|do\s+over|do|dol|drop|dul|end(?:source|comp)?|entryTitle|else|eval(?:uate)?|exec(?:ute)?|exit|fill(?:attrs)?|file(?:name)?|flist|fnc|function(?:list)?|goto|global|group(?:by)?|headline|headskip|histogram|if|infile|keep|keylabel|keyword|label|layout|leave|legendlabel|length|libname|loadactionset|merge|midpoints|name|noobs|nowd|_?null_|ods|options|or|otherwise|out(?:put)?|over(?:lay)?|plot|put|print|raise|ranexp|rannor|rbreak|retain|return|select|set|session|sessref|source|statgraph|sum|summarize|table|temp|terminate|then\s+do|then|title\d?|to|var|when|where|xaxisopts|yaxisopts|y2axisopts)\b/i,lookbehind:!0},t.languages.sas={datalines:{pattern:/^([ \t]*)(?:(?:data)?lines|cards);[\s\S]+?^[ \t]*;/im,lookbehind:!0,alias:"string",inside:{keyword:{pattern:/^(?:(?:data)?lines|cards)/i},punctuation:/;/}},"proc-sql":{pattern:/(^proc\s+(?:fed)?sql(?:\s+[\w|=]+)?;)[\s\S]+?(?=^(?:proc\s+\w+|quit|run|data);|(?![\s\S]))/im,lookbehind:!0,inside:{sql:{pattern:RegExp(/^[ \t]*(?:select|alter\s+table|(?:create|describe|drop)\s+(?:index|table(?:\s+constraints)?|view)|create\s+unique\s+index|insert\s+into|update)(?:|[^;"'])+;/.source.replace(//g,function(){return n}),"im"),alias:"language-sql",inside:t.languages.sql},"global-statements":b,"sql-statements":{pattern:/(^|\s)(?:disconnect\s+from|exec(?:ute)?|begin|commit|rollback|reset|validate)\b/i,lookbehind:!0,alias:"keyword"},number:r,"numeric-constant":i,punctuation:l,string:c}},"proc-groovy":{pattern:/(^proc\s+groovy(?:\s+[\w|=]+)?;)[\s\S]+?(?=^(?:proc\s+\w+|quit|run|data);|(?![\s\S]))/im,lookbehind:!0,inside:{comment:u,groovy:{pattern:RegExp(/(^[ \t]*submit(?:\s+(?:load|parseonly|norun))?)(?:|[^"'])+?(?=endsubmit;)/.source.replace(//g,function(){return n}),"im"),lookbehind:!0,alias:"language-groovy",inside:t.languages.groovy},keyword:y,"submit-statement":m,"global-statements":b,number:r,"numeric-constant":i,punctuation:l,string:c}},"proc-lua":{pattern:/(^proc\s+lua(?:\s+[\w|=]+)?;)[\s\S]+?(?=^(?:proc\s+\w+|quit|run|data);|(?![\s\S]))/im,lookbehind:!0,inside:{comment:u,lua:{pattern:RegExp(/(^[ \t]*submit(?:\s+(?:load|parseonly|norun))?)(?:|[^"'])+?(?=endsubmit;)/.source.replace(//g,function(){return n}),"im"),lookbehind:!0,alias:"language-lua",inside:t.languages.lua},keyword:y,"submit-statement":m,"global-statements":b,number:r,"numeric-constant":i,punctuation:l,string:c}},"proc-cas":{pattern:/(^proc\s+cas(?:\s+[\w|=]+)?;)[\s\S]+?(?=^(?:proc\s+\w+|quit|data);|(?![\s\S]))/im,lookbehind:!0,inside:{comment:u,"statement-var":{pattern:/((?:^|\s)=?)saveresult\s[^;]+/im,lookbehind:!0,inside:{statement:{pattern:/^saveresult\s+\S+/i,inside:{keyword:/^(?:saveresult)/i}},rest:d}},"cas-actions":v,statement:{pattern:/((?:^|\s)=?)(?:default|(?:un)?set|on|output|upload)[^;]+/im,lookbehind:!0,inside:d},step:s,keyword:y,function:f,format:h,altformat:p,"global-statements":b,number:r,"numeric-constant":i,punctuation:l,string:c}},"proc-args":{pattern:RegExp(/(^proc\s+\w+\s+)(?!\s)(?:[^;"']|)+;/.source.replace(//g,function(){return n}),"im"),lookbehind:!0,inside:d},"macro-keyword":o,"macro-variable":a,"macro-string-functions":{pattern:/((?:^|\s|=))%(?:NRBQUOTE|NRQUOTE|NRSTR|BQUOTE|QUOTE|STR)\(.*?(?:[^%]\))/i,lookbehind:!0,inside:{function:{pattern:/%(?:NRBQUOTE|NRQUOTE|NRSTR|BQUOTE|QUOTE|STR)/i,alias:"keyword"},"macro-keyword":o,"macro-variable":a,"escaped-char":{pattern:/%['"()<>=¬^~;,#]/i},punctuation:l}},"macro-declaration":{pattern:/^%macro[^;]+(?=;)/im,inside:{keyword:/%macro/i}},"macro-end":{pattern:/^%mend[^;]+(?=;)/im,inside:{keyword:/%mend/i}},macro:{pattern:/%_\w+(?=\()/,alias:"keyword"},input:{pattern:/\binput\s[-\w\s/*.$&]+;/i,inside:{input:{alias:"keyword",pattern:/^input/i},comment:u,number:r,"numeric-constant":i}},"options-args":{pattern:/(^options)[-'"|/\\<>*+=:()\w\s]*(?=;)/im,lookbehind:!0,inside:d},"cas-actions":v,comment:u,function:f,format:h,altformat:p,"numeric-constant":i,datetime:{pattern:RegExp(n+"(?:dt?|t)"),alias:"number"},string:c,step:s,keyword:y,"operator-keyword":{pattern:/\b(?:eq|ne|gt|lt|ge|le|in|not)\b/i,alias:"operator"},number:r,operator:/\*\*?|\|\|?|!!?|¦¦?|<[>=]?|>[<=]?|[-+\/=&]|[~¬^]=?/i,punctuation:l}}e.exports=t,t.displayName="sas",t.aliases=[]},41720(e){"use strict";function t(e){var t,n,r;(t=e).languages.sass=t.languages.extend("css",{comment:{pattern:/^([ \t]*)\/[\/*].*(?:(?:\r?\n|\r)\1[ \t].+)*/m,lookbehind:!0}}),t.languages.insertBefore("sass","atrule",{"atrule-line":{pattern:/^(?:[ \t]*)[@+=].+/m,inside:{atrule:/(?:@[\w-]+|[+=])/m}}}),delete t.languages.sass.atrule,n=/\$[-\w]+|#\{\$[-\w]+\}/,r=[/[+*\/%]|[=!]=|<=?|>=?|\b(?:and|or|not)\b/,{pattern:/(\s)-(?=\s)/,lookbehind:!0}],t.languages.insertBefore("sass","property",{"variable-line":{pattern:/^[ \t]*\$.+/m,inside:{punctuation:/:/,variable:n,operator:r}},"property-line":{pattern:/^[ \t]*(?:[^:\s]+ *:.*|:[^:\s].*)/m,inside:{property:[/[^:\s]+(?=\s*:)/,{pattern:/(:)[^:\s]+/,lookbehind:!0}],punctuation:/:/,variable:n,operator:r,important:t.languages.sass.important}}}),delete t.languages.sass.property,delete t.languages.sass.important,t.languages.insertBefore("sass","punctuation",{selector:{pattern:/([ \t]*)\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*)*/,lookbehind:!0}})}e.exports=t,t.displayName="sass",t.aliases=[]},6054(e,t,n){"use strict";var r=n(15909);function i(e){e.register(r),e.languages.scala=e.languages.extend("java",{"triple-quoted-string":{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string"},string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},keyword:/<-|=>|\b(?:abstract|case|catch|class|def|do|else|extends|final|finally|for|forSome|if|implicit|import|lazy|match|new|null|object|override|package|private|protected|return|sealed|self|super|this|throw|trait|try|type|val|var|while|with|yield)\b/,number:/\b0x(?:[\da-f]*\.)?[\da-f]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e\d+)?[dfl]?/i,builtin:/\b(?:String|Int|Long|Short|Byte|Boolean|Double|Float|Char|Any|AnyRef|AnyVal|Unit|Nothing)\b/,symbol:/'[^\d\s\\]\w*/}),delete e.languages.scala["class-name"],delete e.languages.scala.function}e.exports=i,i.displayName="scala",i.aliases=[]},9997(e){"use strict";function t(e){!function(e){e.languages.scheme={comment:/;.*|#;\s*(?:\((?:[^()]|\([^()]*\))*\)|\[(?:[^\[\]]|\[[^\[\]]*\])*\])|#\|(?:[^#|]|#(?!\|)|\|(?!#)|#\|(?:[^#|]|#(?!\|)|\|(?!#))*\|#)*\|#/,string:{pattern:/"(?:[^"\\]|\\.)*"/,greedy:!0},symbol:{pattern:/'[^()\[\]#'\s]+/,greedy:!0},character:{pattern:/#\\(?:[ux][a-fA-F\d]+\b|[-a-zA-Z]+\b|[\uD800-\uDBFF][\uDC00-\uDFFF]|\S)/,greedy:!0,alias:"string"},"lambda-parameter":[{pattern:/((?:^|[^'`#])[(\[]lambda\s+)(?:[^|()\[\]'\s]+|\|(?:[^\\|]|\\.)*\|)/,lookbehind:!0},{pattern:/((?:^|[^'`#])[(\[]lambda\s+[(\[])[^()\[\]']+/,lookbehind:!0}],keyword:{pattern:/((?:^|[^'`#])[(\[])(?:begin|case(?:-lambda)?|cond(?:-expand)?|define(?:-library|-macro|-record-type|-syntax|-values)?|defmacro|delay(?:-force)?|do|else|export|except|guard|if|import|include(?:-ci|-library-declarations)?|lambda|let(?:rec)?(?:-syntax|-values|\*)?|let\*-values|only|parameterize|prefix|(?:quasi-?)?quote|rename|set!|syntax-(?:case|rules)|unless|unquote(?:-splicing)?|when)(?=[()\[\]\s]|$)/,lookbehind:!0},builtin:{pattern:/((?:^|[^'`#])[(\[])(?:abs|and|append|apply|assoc|ass[qv]|binary-port\?|boolean=?\?|bytevector(?:-append|-copy|-copy!|-length|-u8-ref|-u8-set!|\?)?|caar|cadr|call-with-(?:current-continuation|port|values)|call\/cc|car|cdar|cddr|cdr|ceiling|char(?:->integer|-ready\?|\?|<\?|<=\?|=\?|>\?|>=\?)|close-(?:input-port|output-port|port)|complex\?|cons|current-(?:error|input|output)-port|denominator|dynamic-wind|eof-object\??|eq\?|equal\?|eqv\?|error|error-object(?:-irritants|-message|\?)|eval|even\?|exact(?:-integer-sqrt|-integer\?|\?)?|expt|features|file-error\?|floor(?:-quotient|-remainder|\/)?|flush-output-port|for-each|gcd|get-output-(?:bytevector|string)|inexact\??|input-port(?:-open\?|\?)|integer(?:->char|\?)|lcm|length|list(?:->string|->vector|-copy|-ref|-set!|-tail|\?)?|make-(?:bytevector|list|parameter|string|vector)|map|max|member|memq|memv|min|modulo|negative\?|newline|not|null\?|number(?:->string|\?)|numerator|odd\?|open-(?:input|output)-(?:bytevector|string)|or|output-port(?:-open\?|\?)|pair\?|peek-char|peek-u8|port\?|positive\?|procedure\?|quotient|raise|raise-continuable|rational\?|rationalize|read-(?:bytevector|bytevector!|char|error\?|line|string|u8)|real\?|remainder|reverse|round|set-c[ad]r!|square|string(?:->list|->number|->symbol|->utf8|->vector|-append|-copy|-copy!|-fill!|-for-each|-length|-map|-ref|-set!|\?|<\?|<=\?|=\?|>\?|>=\?)?|substring|symbol(?:->string|\?|=\?)|syntax-error|textual-port\?|truncate(?:-quotient|-remainder|\/)?|u8-ready\?|utf8->string|values|vector(?:->list|->string|-append|-copy|-copy!|-fill!|-for-each|-length|-map|-ref|-set!|\?)?|with-exception-handler|write-(?:bytevector|char|string|u8)|zero\?)(?=[()\[\]\s]|$)/,lookbehind:!0},operator:{pattern:/((?:^|[^'`#])[(\[])(?:[-+*%/]|[<>]=?|=>?)(?=[()\[\]\s]|$)/,lookbehind:!0},number:{pattern:RegExp(t({"":/\d+(?:\/\d+)|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?/.source,"":/[+-]?|[+-](?:inf|nan)\.0/.source,"":/[+-](?:|(?:inf|nan)\.0)?i/.source,"":/(?:@|)?|/.source,"":/(?:#d(?:#[ei])?|#[ei](?:#d)?)?/.source,"":/[0-9a-f]+(?:\/[0-9a-f]+)?/.source,"":/[+-]?|[+-](?:inf|nan)\.0/.source,"":/[+-](?:|(?:inf|nan)\.0)?i/.source,"":/(?:@|)?|/.source,"":/#[box](?:#[ei])?|(?:#[ei])?#[box]/.source,"":/(^|[()\[\]\s])(?:|)(?=[()\[\]\s]|$)/.source}),"i"),lookbehind:!0},boolean:{pattern:/(^|[()\[\]\s])#(?:[ft]|false|true)(?=[()\[\]\s]|$)/,lookbehind:!0},function:{pattern:/((?:^|[^'`#])[(\[])(?:[^|()\[\]'\s]+|\|(?:[^\\|]|\\.)*\|)(?=[()\[\]\s]|$)/,lookbehind:!0},identifier:{pattern:/(^|[()\[\]\s])\|(?:[^\\|]|\\.)*\|(?=[()\[\]\s]|$)/,lookbehind:!0,greedy:!0},punctuation:/[()\[\]']/};function t(e){for(var t in e)e[t]=e[t].replace(/<[\w\s]+>/g,function(t){return"(?:"+e[t].trim()+")"});return e[t]}}(e)}e.exports=t,t.displayName="scheme",t.aliases=[]},24296(e){"use strict";function t(e){e.languages.scss=e.languages.extend("css",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},atrule:{pattern:/@[\w-](?:\([^()]+\)|[^()\s]|\s+(?!\s))*?(?=\s+[{;])/,inside:{rule:/@[\w-]+/}},url:/(?:[-a-z]+-)?url(?=\()/i,selector:{pattern:/(?=\S)[^@;{}()]?(?:[^@;{}()\s]|\s+(?!\s)|#\{\$[-\w]+\})+(?=\s*\{(?:\}|\s|[^}][^:{}]*[:{][^}]))/m,inside:{parent:{pattern:/&/,alias:"important"},placeholder:/%[-\w]+/,variable:/\$[-\w]+|#\{\$[-\w]+\}/}},property:{pattern:/(?:[-\w]|\$[-\w]|#\{\$[-\w]+\})+(?=\s*:)/,inside:{variable:/\$[-\w]+|#\{\$[-\w]+\}/}}}),e.languages.insertBefore("scss","atrule",{keyword:[/@(?:if|else(?: if)?|forward|for|each|while|import|use|extend|debug|warn|mixin|include|function|return|content)\b/i,{pattern:/( )(?:from|through)(?= )/,lookbehind:!0}]}),e.languages.insertBefore("scss","important",{variable:/\$[-\w]+|#\{\$[-\w]+\}/}),e.languages.insertBefore("scss","function",{"module-modifier":{pattern:/\b(?:as|with|show|hide)\b/i,alias:"keyword"},placeholder:{pattern:/%[-\w]+/,alias:"selector"},statement:{pattern:/\B!(?:default|optional)\b/i,alias:"keyword"},boolean:/\b(?:true|false)\b/,null:{pattern:/\bnull\b/,alias:"keyword"},operator:{pattern:/(\s)(?:[-+*\/%]|[=!]=|<=?|>=?|and|or|not)(?=\s)/,lookbehind:!0}}),e.languages.scss.atrule.inside.rest=e.languages.scss}e.exports=t,t.displayName="scss",t.aliases=[]},49246(e,t,n){"use strict";var r=n(6979);function i(e){var t,n;e.register(r),n=[/"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/.source,/'[^']*'/.source,/\$'(?:[^'\\]|\\[\s\S])*'/.source,/<<-?\s*(["']?)(\w+)\1\s[\s\S]*?[\r\n]\2/.source].join("|"),(t=e).languages["shell-session"]={command:{pattern:RegExp(/^(?:[^\s@:$#*!/\\]+@[^\r\n@:$#*!/\\]+(?::[^\0-\x1F$#*?"<>:;|]+)?|[^\0-\x1F$#*?"<>@:;|]+)?/.source+/[$#]/.source+/(?:[^\\\r\n'"<$]|\\(?:[^\r]|\r\n?)|\$(?!')|<>)+/.source.replace(/<>/g,function(){return n}),"m"),greedy:!0,inside:{info:{pattern:/^[^#$]+/,alias:"punctuation",inside:{user:/^[^\s@:$#*!/\\]+@[^\r\n@:$#*!/\\]+/,punctuation:/:/,path:/[\s\S]+/}},bash:{pattern:/(^[$#]\s*)\S[\s\S]*/,lookbehind:!0,alias:"language-bash",inside:t.languages.bash},"shell-symbol":{pattern:/^[$#]/,alias:"important"}}},output:/.(?:.*(?:[\r\n]|.$))*/},t.languages["sh-session"]=t.languages.shellsession=t.languages["shell-session"]}e.exports=i,i.displayName="shellSession",i.aliases=[]},18890(e){"use strict";function t(e){e.languages.smali={comment:/#.*/,string:{pattern:/"(?:[^\r\n\\"]|\\.)*"|'(?:[^\r\n\\']|\\(?:.|u[\da-fA-F]{4}))'/,greedy:!0},"class-name":{pattern:/(^|[^L])L(?:(?:\w+|`[^`\r\n]*`)\/)*(?:[\w$]+|`[^`\r\n]*`)(?=\s*;)/,lookbehind:!0,inside:{"class-name":{pattern:/(^L|\/)(?:[\w$]+|`[^`\r\n]*`)$/,lookbehind:!0},namespace:{pattern:/^(L)(?:(?:\w+|`[^`\r\n]*`)\/)+/,lookbehind:!0,inside:{punctuation:/\//}},builtin:/^L/}},builtin:[{pattern:/([();\[])[BCDFIJSVZ]+/,lookbehind:!0},{pattern:/([\w$>]:)[BCDFIJSVZ]/,lookbehind:!0}],keyword:[{pattern:/(\.end\s+)[\w-]+/,lookbehind:!0},{pattern:/(^|[^\w.-])\.(?!\d)[\w-]+/,lookbehind:!0},{pattern:/(^|[^\w.-])(?:abstract|annotation|bridge|constructor|enum|final|interface|private|protected|public|runtime|static|synthetic|system|transient)(?![\w.-])/,lookbehind:!0}],function:{pattern:/(^|[^\w.-])(?:\w+|<[\w$-]+>)(?=\()/,lookbehind:!0},field:{pattern:/[\w$]+(?=:)/,alias:"variable"},register:{pattern:/(^|[^\w.-])[vp]\d(?![\w.-])/,lookbehind:!0,alias:"variable"},boolean:{pattern:/(^|[^\w.-])(?:true|false)(?![\w.-])/,lookbehind:!0},number:{pattern:/(^|[^/\w.-])-?(?:NAN|INFINITY|0x(?:[\dA-F]+(?:\.[\dA-F]*)?|\.[\dA-F]+)(?:p[+-]?[\dA-F]+)?|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?)[dflst]?(?![\w.-])/i,lookbehind:!0},label:{pattern:/(:)\w+/,lookbehind:!0,alias:"property"},operator:/->|\.\.|[\[=]/,punctuation:/[{}(),;:]/}}e.exports=t,t.displayName="smali",t.aliases=[]},11037(e){"use strict";function t(e){e.languages.smalltalk={comment:/"(?:""|[^"])*"/,character:{pattern:/\$./,alias:"string"},string:/'(?:''|[^'])*'/,symbol:/#[\da-z]+|#(?:-|([+\/\\*~<>=@%|&?!])\1?)|#(?=\()/i,"block-arguments":{pattern:/(\[\s*):[^\[|]*\|/,lookbehind:!0,inside:{variable:/:[\da-z]+/i,punctuation:/\|/}},"temporary-variables":{pattern:/\|[^|]+\|/,inside:{variable:/[\da-z]+/i,punctuation:/\|/}},keyword:/\b(?:nil|true|false|self|super|new)\b/,number:[/\d+r-?[\dA-Z]+(?:\.[\dA-Z]+)?(?:e-?\d+)?/,/\b\d+(?:\.\d+)?(?:e-?\d+)?/],operator:/[<=]=?|:=|~[~=]|\/\/?|\\\\|>[>=]?|[!^+\-*&|,@]/,punctuation:/[.;:?\[\](){}]/}}e.exports=t,t.displayName="smalltalk",t.aliases=[]},64020(e,t,n){"use strict";var r=n(93205);function i(e){var t;e.register(r),(t=e).languages.smarty={comment:/\{\*[\s\S]*?\*\}/,delimiter:{pattern:/^\{|\}$/i,alias:"punctuation"},string:/(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,number:/\b0x[\dA-Fa-f]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][-+]?\d+)?/,variable:[/\$(?!\d)\w+/,/#(?!\d)\w+#/,{pattern:/(\.|->)(?!\d)\w+/,lookbehind:!0},{pattern:/(\[)(?!\d)\w+(?=\])/,lookbehind:!0}],function:[{pattern:/(\|\s*)@?(?!\d)\w+/,lookbehind:!0},/^\/?(?!\d)\w+/,/(?!\d)\w+(?=\()/],"attr-name":{pattern:/\w+\s*=\s*(?:(?!\d)\w+)?/,inside:{variable:{pattern:/(=\s*)(?!\d)\w+/,lookbehind:!0},operator:/=/}},punctuation:[/[\[\]().,:`]|->/],operator:[/[+\-*\/%]|==?=?|[!<>]=?|&&|\|\|?/,/\bis\s+(?:not\s+)?(?:div|even|odd)(?:\s+by)?\b/,/\b(?:eq|neq?|gt|lt|gt?e|lt?e|not|mod|or|and)\b/],keyword:/\b(?:false|off|on|no|true|yes)\b/},t.hooks.add("before-tokenize",function(e){var n=/\{\*[\s\S]*?\*\}|\{[\s\S]+?\}/g,r="{literal}",i="{/literal}",a=!1;t.languages["markup-templating"].buildPlaceholders(e,"smarty",n,function(e){return e===i&&(a=!1),!a&&(e===r&&(a=!0),!0)})}),t.hooks.add("after-tokenize",function(e){t.languages["markup-templating"].tokenizePlaceholders(e,"smarty")})}e.exports=i,i.displayName="smarty",i.aliases=[]},49760(e){"use strict";function t(e){var t,n;n=/\b(?:abstype|and|andalso|as|case|datatype|do|else|end|eqtype|exception|fn|fun|functor|handle|if|in|include|infix|infixr|let|local|nonfix|of|op|open|orelse|raise|rec|sharing|sig|signature|struct|structure|then|type|val|where|while|with|withtype)\b/i,(t=e).languages.sml={comment:/\(\*(?:[^*(]|\*(?!\))|\((?!\*)|\(\*(?:[^*(]|\*(?!\))|\((?!\*))*\*\))*\*\)/,string:{pattern:/#?"(?:[^"\\]|\\.)*"/,greedy:!0},"class-name":[{pattern:RegExp(/((?:^|[^:]):\s*)(?:\s*(?:(?:\*|->)\s*|,\s*(?:(?=)|(?!)\s+)))*/.source.replace(//g,function(){return/\s*(?:[*,]|->)/.source}).replace(//g,function(){return/(?:'[\w']*||\((?:[^()]|\([^()]*\))*\)|\{(?:[^{}]|\{[^{}]*\})*\})(?:\s+)*/.source}).replace(//g,function(){return/(?!)[a-z\d_][\w'.]*/.source}).replace(//g,function(){return n.source}),"i"),lookbehind:!0,greedy:!0,inside:null},{pattern:/((?:^|[^\w'])(?:datatype|exception|functor|signature|structure|type)\s+)[a-z_][\w'.]*/i,lookbehind:!0}],function:{pattern:/((?:^|[^\w'])fun\s+)[a-z_][\w'.]*/i,lookbehind:!0},keyword:n,variable:{pattern:/(^|[^\w'])'[\w']*/,lookbehind:!0},number:/~?\b(?:\d+(?:\.\d+)?(?:e~?\d+)?|0x[\da-f]+)\b/i,word:{pattern:/\b0w(?:\d+|x[\da-f]+)\b/i,alias:"constant"},boolean:/\b(?:false|true)\b/i,operator:/\.\.\.|:[>=:]|=>?|->|[<>]=?|[!+\-*/^#|@~]/,punctuation:/[(){}\[\].:,;]/},t.languages.sml["class-name"][0].inside=t.languages.sml,t.languages.smlnj=t.languages.sml}e.exports=t,t.displayName="sml",t.aliases=["smlnj"]},33351(e){"use strict";function t(e){e.languages.solidity=e.languages.extend("clike",{"class-name":{pattern:/(\b(?:contract|enum|interface|library|new|struct|using)\s+)(?!\d)[\w$]+/,lookbehind:!0},keyword:/\b(?:_|anonymous|as|assembly|assert|break|calldata|case|constant|constructor|continue|contract|default|delete|do|else|emit|enum|event|external|for|from|function|if|import|indexed|inherited|interface|internal|is|let|library|mapping|memory|modifier|new|payable|pragma|private|public|pure|require|returns?|revert|selfdestruct|solidity|storage|struct|suicide|switch|this|throw|using|var|view|while)\b/,operator:/=>|->|:=|=:|\*\*|\+\+|--|\|\||&&|<<=?|>>=?|[-+*/%^&|<>!=]=?|[~?]/}),e.languages.insertBefore("solidity","keyword",{builtin:/\b(?:address|bool|string|u?int(?:8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?|byte|bytes(?:[1-9]|[12]\d|3[0-2])?)\b/}),e.languages.insertBefore("solidity","number",{version:{pattern:/([<>]=?|\^)\d+\.\d+\.\d+\b/,lookbehind:!0,alias:"number"}}),e.languages.sol=e.languages.solidity}e.exports=t,t.displayName="solidity",t.aliases=["sol"]},13570(e){"use strict";function t(e){var t,n;n={pattern:/\{[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}\}/i,alias:"constant",inside:{punctuation:/[{}]/}},(t=e).languages["solution-file"]={comment:{pattern:/#.*/,greedy:!0},string:{pattern:/"[^"\r\n]*"|'[^'\r\n]*'/,greedy:!0,inside:{guid:n}},object:{pattern:/^([ \t]*)(?:([A-Z]\w*)\b(?=.*(?:\r\n?|\n)(?:\1[ \t].*(?:\r\n?|\n))*\1End\2(?=[ \t]*$))|End[A-Z]\w*(?=[ \t]*$))/m,lookbehind:!0,greedy:!0,alias:"keyword"},property:{pattern:/^([ \t]*)(?!\s)[^\r\n"#=()]*[^\s"#=()](?=\s*=)/m,lookbehind:!0,inside:{guid:n}},guid:n,number:/\b\d+(?:\.\d+)*\b/,boolean:/\b(?:FALSE|TRUE)\b/,operator:/=/,punctuation:/[(),]/},t.languages.sln=t.languages["solution-file"]}e.exports=t,t.displayName="solutionFile",t.aliases=[]},38181(e,t,n){"use strict";var r=n(93205);function i(e){var t,n,i;e.register(r),n=/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,i=/\b\d+(?:\.\d+)?(?:[eE][+-]?\d+)?\b|\b0x[\dA-F]+\b/,(t=e).languages.soy={comment:[/\/\*[\s\S]*?\*\//,{pattern:/(\s)\/\/.*/,lookbehind:!0,greedy:!0}],"command-arg":{pattern:/(\{+\/?\s*(?:alias|call|delcall|delpackage|deltemplate|namespace|template)\s+)\.?[\w.]+/,lookbehind:!0,alias:"string",inside:{punctuation:/\./}},parameter:{pattern:/(\{+\/?\s*@?param\??\s+)\.?[\w.]+/,lookbehind:!0,alias:"variable"},keyword:[{pattern:/(\{+\/?[^\S\r\n]*)(?:\\[nrt]|alias|call|case|css|default|delcall|delpackage|deltemplate|else(?:if)?|fallbackmsg|for(?:each)?|if(?:empty)?|lb|let|literal|msg|namespace|nil|@?param\??|rb|sp|switch|template|xid)/,lookbehind:!0},/\b(?:any|as|attributes|bool|css|float|in|int|js|html|list|map|null|number|string|uri)\b/],delimiter:{pattern:/^\{+\/?|\/?\}+$/,alias:"punctuation"},property:/\w+(?==)/,variable:{pattern:/\$[^\W\d]\w*(?:\??(?:\.\w+|\[[^\]]+\]))*/,inside:{string:{pattern:n,greedy:!0},number:i,punctuation:/[\[\].?]/}},string:{pattern:n,greedy:!0},function:[/\w+(?=\()/,{pattern:/(\|[^\S\r\n]*)\w+/,lookbehind:!0}],boolean:/\b(?:true|false)\b/,number:i,operator:/\?:?|<=?|>=?|==?|!=|[+*/%-]|\b(?:and|not|or)\b/,punctuation:/[{}()\[\]|.,:]/},t.hooks.add("before-tokenize",function(e){var n=/\{\{.+?\}\}|\{.+?\}|\s\/\/.*|\/\*[\s\S]*?\*\//g,r="{literal}",i="{/literal}",a=!1;t.languages["markup-templating"].buildPlaceholders(e,"soy",n,function(e){return e===i&&(a=!1),!a&&(e===r&&(a=!0),!0)})}),t.hooks.add("after-tokenize",function(e){t.languages["markup-templating"].tokenizePlaceholders(e,"soy")})}e.exports=i,i.displayName="soy",i.aliases=[]},98774(e,t,n){"use strict";var r=n(24691);function i(e){e.register(r),e.languages.sparql=e.languages.extend("turtle",{boolean:/\b(?:true|false)\b/i,variable:{pattern:/[?$]\w+/,greedy:!0}}),e.languages.insertBefore("sparql","punctuation",{keyword:[/\b(?:A|ADD|ALL|AS|ASC|ASK|BNODE|BY|CLEAR|CONSTRUCT|COPY|CREATE|DATA|DEFAULT|DELETE|DESC|DESCRIBE|DISTINCT|DROP|EXISTS|FILTER|FROM|GROUP|HAVING|INSERT|INTO|LIMIT|LOAD|MINUS|MOVE|NAMED|NOT|NOW|OFFSET|OPTIONAL|ORDER|RAND|REDUCED|SELECT|SEPARATOR|SERVICE|SILENT|STRUUID|UNION|USING|UUID|VALUES|WHERE)\b/i,/\b(?:ABS|AVG|BIND|BOUND|CEIL|COALESCE|CONCAT|CONTAINS|COUNT|DATATYPE|DAY|ENCODE_FOR_URI|FLOOR|GROUP_CONCAT|HOURS|IF|IRI|isBLANK|isIRI|isLITERAL|isNUMERIC|isURI|LANG|LANGMATCHES|LCASE|MAX|MD5|MIN|MINUTES|MONTH|ROUND|REGEX|REPLACE|sameTerm|SAMPLE|SECONDS|SHA1|SHA256|SHA384|SHA512|STR|STRAFTER|STRBEFORE|STRDT|STRENDS|STRLANG|STRLEN|STRSTARTS|SUBSTR|SUM|TIMEZONE|TZ|UCASE|URI|YEAR)\b(?=\s*\()/i,/\b(?:GRAPH|BASE|PREFIX)\b/i]}),e.languages.rq=e.languages.sparql}e.exports=i,i.displayName="sparql",i.aliases=["rq"]},22855(e){"use strict";function t(e){e.languages["splunk-spl"]={comment:/`comment\("(?:\\.|[^\\"])*"\)`/,string:{pattern:/"(?:\\.|[^\\"])*"/,greedy:!0},keyword:/\b(?:abstract|accum|addcoltotals|addinfo|addtotals|analyzefields|anomalies|anomalousvalue|anomalydetection|append|appendcols|appendcsv|appendlookup|appendpipe|arules|associate|audit|autoregress|bin|bucket|bucketdir|chart|cluster|cofilter|collect|concurrency|contingency|convert|correlate|datamodel|dbinspect|dedup|delete|delta|diff|erex|eval|eventcount|eventstats|extract|fieldformat|fields|fieldsummary|filldown|fillnull|findtypes|folderize|foreach|format|from|gauge|gentimes|geom|geomfilter|geostats|head|highlight|history|iconify|input|inputcsv|inputlookup|iplocation|join|kmeans|kv|kvform|loadjob|localize|localop|lookup|makecontinuous|makemv|makeresults|map|mcollect|metadata|metasearch|meventcollect|mstats|multikv|multisearch|mvcombine|mvexpand|nomv|outlier|outputcsv|outputlookup|outputtext|overlap|pivot|predict|rangemap|rare|regex|relevancy|reltime|rename|replace|rest|return|reverse|rex|rtorder|run|savedsearch|script|scrub|search|searchtxn|selfjoin|sendemail|set|setfields|sichart|sirare|sistats|sitimechart|sitop|sort|spath|stats|strcat|streamstats|table|tags|tail|timechart|timewrap|top|transaction|transpose|trendline|tscollect|tstats|typeahead|typelearner|typer|union|uniq|untable|where|x11|xmlkv|xmlunescape|xpath|xyseries)\b/i,"operator-word":{pattern:/\b(?:and|as|by|not|or|xor)\b/i,alias:"operator"},function:/\b\w+(?=\s*\()/,property:/\b\w+(?=\s*=(?!=))/,date:{pattern:/\b\d{1,2}\/\d{1,2}\/\d{1,4}(?:(?::\d{1,2}){3})?\b/,alias:"number"},number:/\b\d+(?:\.\d+)?\b/,boolean:/\b(?:f|false|t|true)\b/i,operator:/[<>=]=?|[-+*/%|]/,punctuation:/[()[\],]/}}e.exports=t,t.displayName="splunkSpl",t.aliases=[]},29611(e){"use strict";function t(e){e.languages.sqf=e.languages.extend("clike",{string:{pattern:/"(?:(?:"")?[^"])*"(?!")|'(?:[^'])*'/,greedy:!0},keyword:/\b(?:breakOut|breakTo|call|case|catch|default|do|echo|else|execVM|execFSM|exitWith|for|forEach|forEachMember|forEachMemberAgent|forEachMemberTeam|from|goto|if|nil|preprocessFile|preprocessFileLineNumbers|private|scopeName|spawn|step|switch|then|throw|to|try|while|with)\b/i,boolean:/\b(?:true|false)\b/i,function:/\b(?:abs|accTime|acos|action|actionIDs|actionKeys|actionKeysImages|actionKeysNames|actionKeysNamesArray|actionName|actionParams|activateAddons|activatedAddons|activateKey|add3DENConnection|add3DENEventHandler|add3DENLayer|addAction|addBackpack|addBackpackCargo|addBackpackCargoGlobal|addBackpackGlobal|addCamShake|addCuratorAddons|addCuratorCameraArea|addCuratorEditableObjects|addCuratorEditingArea|addCuratorPoints|addEditorObject|addEventHandler|addForce|addForceGeneratorRTD|addGoggles|addGroupIcon|addHandgunItem|addHeadgear|addItem|addItemCargo|addItemCargoGlobal|addItemPool|addItemToBackpack|addItemToUniform|addItemToVest|addLiveStats|addMagazine|addMagazineAmmoCargo|addMagazineCargo|addMagazineCargoGlobal|addMagazineGlobal|addMagazinePool|addMagazines|addMagazineTurret|addMenu|addMenuItem|addMissionEventHandler|addMPEventHandler|addMusicEventHandler|addOwnedMine|addPlayerScores|addPrimaryWeaponItem|addPublicVariableEventHandler|addRating|addResources|addScore|addScoreSide|addSecondaryWeaponItem|addSwitchableUnit|addTeamMember|addToRemainsCollector|addTorque|addUniform|addVehicle|addVest|addWaypoint|addWeapon|addWeaponCargo|addWeaponCargoGlobal|addWeaponGlobal|addWeaponItem|addWeaponPool|addWeaponTurret|admin|agent|agents|AGLToASL|aimedAtTarget|aimPos|airDensityCurveRTD|airDensityRTD|airplaneThrottle|airportSide|AISFinishHeal|alive|all3DENEntities|allAirports|allControls|allCurators|allCutLayers|allDead|allDeadMen|allDisplays|allGroups|allMapMarkers|allMines|allMissionObjects|allow3DMode|allowCrewInImmobile|allowCuratorLogicIgnoreAreas|allowDamage|allowDammage|allowFileOperations|allowFleeing|allowGetIn|allowSprint|allPlayers|allSimpleObjects|allSites|allTurrets|allUnits|allUnitsUAV|allVariables|ammo|ammoOnPylon|animate|animateBay|animateDoor|animatePylon|animateSource|animationNames|animationPhase|animationSourcePhase|animationState|append|apply|armoryPoints|arrayIntersect|asin|ASLToAGL|ASLToATL|assert|assignAsCargo|assignAsCargoIndex|assignAsCommander|assignAsDriver|assignAsGunner|assignAsTurret|assignCurator|assignedCargo|assignedCommander|assignedDriver|assignedGunner|assignedItems|assignedTarget|assignedTeam|assignedVehicle|assignedVehicleRole|assignItem|assignTeam|assignToAirport|atan|atan2|atg|ATLToASL|attachedObject|attachedObjects|attachedTo|attachObject|attachTo|attackEnabled|backpack|backpackCargo|backpackContainer|backpackItems|backpackMagazines|backpackSpaceFor|behaviour|benchmark|binocular|blufor|boundingBox|boundingBoxReal|boundingCenter|briefingName|buildingExit|buildingPos|buldozer_EnableRoadDiag|buldozer_IsEnabledRoadDiag|buldozer_LoadNewRoads|buldozer_reloadOperMap|buttonAction|buttonSetAction|cadetMode|callExtension|camCommand|camCommit|camCommitPrepared|camCommitted|camConstuctionSetParams|camCreate|camDestroy|cameraEffect|cameraEffectEnableHUD|cameraInterest|cameraOn|cameraView|campaignConfigFile|camPreload|camPreloaded|camPrepareBank|camPrepareDir|camPrepareDive|camPrepareFocus|camPrepareFov|camPrepareFovRange|camPreparePos|camPrepareRelPos|camPrepareTarget|camSetBank|camSetDir|camSetDive|camSetFocus|camSetFov|camSetFovRange|camSetPos|camSetRelPos|camSetTarget|camTarget|camUseNVG|canAdd|canAddItemToBackpack|canAddItemToUniform|canAddItemToVest|cancelSimpleTaskDestination|canFire|canMove|canSlingLoad|canStand|canSuspend|canTriggerDynamicSimulation|canUnloadInCombat|canVehicleCargo|captive|captiveNum|cbChecked|cbSetChecked|ceil|channelEnabled|cheatsEnabled|checkAIFeature|checkVisibility|civilian|className|clear3DENAttribute|clear3DENInventory|clearAllItemsFromBackpack|clearBackpackCargo|clearBackpackCargoGlobal|clearForcesRTD|clearGroupIcons|clearItemCargo|clearItemCargoGlobal|clearItemPool|clearMagazineCargo|clearMagazineCargoGlobal|clearMagazinePool|clearOverlay|clearRadio|clearVehicleInit|clearWeaponCargo|clearWeaponCargoGlobal|clearWeaponPool|clientOwner|closeDialog|closeDisplay|closeOverlay|collapseObjectTree|collect3DENHistory|collectiveRTD|combatMode|commandArtilleryFire|commandChat|commander|commandFire|commandFollow|commandFSM|commandGetOut|commandingMenu|commandMove|commandRadio|commandStop|commandSuppressiveFire|commandTarget|commandWatch|comment|commitOverlay|compile|compileFinal|completedFSM|composeText|configClasses|configFile|configHierarchy|configName|configNull|configProperties|configSourceAddonList|configSourceMod|configSourceModList|confirmSensorTarget|connectTerminalToUAV|controlNull|controlsGroupCtrl|copyFromClipboard|copyToClipboard|copyWaypoints|cos|count|countEnemy|countFriendly|countSide|countType|countUnknown|create3DENComposition|create3DENEntity|createAgent|createCenter|createDialog|createDiaryLink|createDiaryRecord|createDiarySubject|createDisplay|createGearDialog|createGroup|createGuardedPoint|createLocation|createMarker|createMarkerLocal|createMenu|createMine|createMissionDisplay|createMPCampaignDisplay|createSimpleObject|createSimpleTask|createSite|createSoundSource|createTask|createTeam|createTrigger|createUnit|createVehicle|createVehicleCrew|createVehicleLocal|crew|ctAddHeader|ctAddRow|ctClear|ctCurSel|ctData|ctFindHeaderRows|ctFindRowHeader|ctHeaderControls|ctHeaderCount|ctRemoveHeaders|ctRemoveRows|ctrlActivate|ctrlAddEventHandler|ctrlAngle|ctrlAutoScrollDelay|ctrlAutoScrollRewind|ctrlAutoScrollSpeed|ctrlChecked|ctrlClassName|ctrlCommit|ctrlCommitted|ctrlCreate|ctrlDelete|ctrlEnable|ctrlEnabled|ctrlFade|ctrlHTMLLoaded|ctrlIDC|ctrlIDD|ctrlMapAnimAdd|ctrlMapAnimClear|ctrlMapAnimCommit|ctrlMapAnimDone|ctrlMapCursor|ctrlMapMouseOver|ctrlMapScale|ctrlMapScreenToWorld|ctrlMapWorldToScreen|ctrlModel|ctrlModelDirAndUp|ctrlModelScale|ctrlParent|ctrlParentControlsGroup|ctrlPosition|ctrlRemoveAllEventHandlers|ctrlRemoveEventHandler|ctrlScale|ctrlSetActiveColor|ctrlSetAngle|ctrlSetAutoScrollDelay|ctrlSetAutoScrollRewind|ctrlSetAutoScrollSpeed|ctrlSetBackgroundColor|ctrlSetChecked|ctrlSetDisabledColor|ctrlSetEventHandler|ctrlSetFade|ctrlSetFocus|ctrlSetFont|ctrlSetFontH1|ctrlSetFontH1B|ctrlSetFontH2|ctrlSetFontH2B|ctrlSetFontH3|ctrlSetFontH3B|ctrlSetFontH4|ctrlSetFontH4B|ctrlSetFontH5|ctrlSetFontH5B|ctrlSetFontH6|ctrlSetFontH6B|ctrlSetFontHeight|ctrlSetFontHeightH1|ctrlSetFontHeightH2|ctrlSetFontHeightH3|ctrlSetFontHeightH4|ctrlSetFontHeightH5|ctrlSetFontHeightH6|ctrlSetFontHeightSecondary|ctrlSetFontP|ctrlSetFontPB|ctrlSetFontSecondary|ctrlSetForegroundColor|ctrlSetModel|ctrlSetModelDirAndUp|ctrlSetModelScale|ctrlSetPixelPrecision|ctrlSetPosition|ctrlSetScale|ctrlSetStructuredText|ctrlSetText|ctrlSetTextColor|ctrlSetTextColorSecondary|ctrlSetTextSecondary|ctrlSetTooltip|ctrlSetTooltipColorBox|ctrlSetTooltipColorShade|ctrlSetTooltipColorText|ctrlShow|ctrlShown|ctrlText|ctrlTextHeight|ctrlTextSecondary|ctrlTextWidth|ctrlType|ctrlVisible|ctRowControls|ctRowCount|ctSetCurSel|ctSetData|ctSetHeaderTemplate|ctSetRowTemplate|ctSetValue|ctValue|curatorAddons|curatorCamera|curatorCameraArea|curatorCameraAreaCeiling|curatorCoef|curatorEditableObjects|curatorEditingArea|curatorEditingAreaType|curatorMouseOver|curatorPoints|curatorRegisteredObjects|curatorSelected|curatorWaypointCost|current3DENOperation|currentChannel|currentCommand|currentMagazine|currentMagazineDetail|currentMagazineDetailTurret|currentMagazineTurret|currentMuzzle|currentNamespace|currentTask|currentTasks|currentThrowable|currentVisionMode|currentWaypoint|currentWeapon|currentWeaponMode|currentWeaponTurret|currentZeroing|cursorObject|cursorTarget|customChat|customRadio|cutFadeOut|cutObj|cutRsc|cutText|damage|date|dateToNumber|daytime|deActivateKey|debriefingText|debugFSM|debugLog|deg|delete3DENEntities|deleteAt|deleteCenter|deleteCollection|deleteEditorObject|deleteGroup|deleteGroupWhenEmpty|deleteIdentity|deleteLocation|deleteMarker|deleteMarkerLocal|deleteRange|deleteResources|deleteSite|deleteStatus|deleteTeam|deleteVehicle|deleteVehicleCrew|deleteWaypoint|detach|detectedMines|diag_activeMissionFSMs|diag_activeScripts|diag_activeSQFScripts|diag_activeSQSScripts|diag_captureFrame|diag_captureFrameToFile|diag_captureSlowFrame|diag_codePerformance|diag_drawMode|diag_dynamicSimulationEnd|diag_enable|diag_enabled|diag_fps|diag_fpsMin|diag_frameNo|diag_lightNewLoad|diag_list|diag_log|diag_logSlowFrame|diag_mergeConfigFile|diag_recordTurretLimits|diag_setLightNew|diag_tickTime|diag_toggle|dialog|diarySubjectExists|didJIP|didJIPOwner|difficulty|difficultyEnabled|difficultyEnabledRTD|difficultyOption|direction|directSay|disableAI|disableCollisionWith|disableConversation|disableDebriefingStats|disableMapIndicators|disableNVGEquipment|disableRemoteSensors|disableSerialization|disableTIEquipment|disableUAVConnectability|disableUserInput|displayAddEventHandler|displayCtrl|displayNull|displayParent|displayRemoveAllEventHandlers|displayRemoveEventHandler|displaySetEventHandler|dissolveTeam|distance|distance2D|distanceSqr|distributionRegion|do3DENAction|doArtilleryFire|doFire|doFollow|doFSM|doGetOut|doMove|doorPhase|doStop|doSuppressiveFire|doTarget|doWatch|drawArrow|drawEllipse|drawIcon|drawIcon3D|drawLine|drawLine3D|drawLink|drawLocation|drawPolygon|drawRectangle|drawTriangle|driver|drop|dynamicSimulationDistance|dynamicSimulationDistanceCoef|dynamicSimulationEnabled|dynamicSimulationSystemEnabled|east|edit3DENMissionAttributes|editObject|editorSetEventHandler|effectiveCommander|emptyPositions|enableAI|enableAIFeature|enableAimPrecision|enableAttack|enableAudioFeature|enableAutoStartUpRTD|enableAutoTrimRTD|enableCamShake|enableCaustics|enableChannel|enableCollisionWith|enableCopilot|enableDebriefingStats|enableDiagLegend|enableDynamicSimulation|enableDynamicSimulationSystem|enableEndDialog|enableEngineArtillery|enableEnvironment|enableFatigue|enableGunLights|enableInfoPanelComponent|enableIRLasers|enableMimics|enablePersonTurret|enableRadio|enableReload|enableRopeAttach|enableSatNormalOnDetail|enableSaving|enableSentences|enableSimulation|enableSimulationGlobal|enableStamina|enableStressDamage|enableTeamSwitch|enableTraffic|enableUAVConnectability|enableUAVWaypoints|enableVehicleCargo|enableVehicleSensor|enableWeaponDisassembly|endl|endLoadingScreen|endMission|engineOn|enginesIsOnRTD|enginesPowerRTD|enginesRpmRTD|enginesTorqueRTD|entities|environmentEnabled|estimatedEndServerTime|estimatedTimeLeft|evalObjectArgument|everyBackpack|everyContainer|exec|execEditorScript|exp|expectedDestination|exportJIPMessages|eyeDirection|eyePos|face|faction|fadeMusic|fadeRadio|fadeSound|fadeSpeech|failMission|fillWeaponsFromPool|find|findCover|findDisplay|findEditorObject|findEmptyPosition|findEmptyPositionReady|findIf|findNearestEnemy|finishMissionInit|finite|fire|fireAtTarget|firstBackpack|flag|flagAnimationPhase|flagOwner|flagSide|flagTexture|fleeing|floor|flyInHeight|flyInHeightASL|fog|fogForecast|fogParams|forceAddUniform|forceAtPositionRTD|forcedMap|forceEnd|forceFlagTexture|forceFollowRoad|forceGeneratorRTD|forceMap|forceRespawn|forceSpeed|forceWalk|forceWeaponFire|forceWeatherChange|forgetTarget|format|formation|formationDirection|formationLeader|formationMembers|formationPosition|formationTask|formatText|formLeader|freeLook|fromEditor|fuel|fullCrew|gearIDCAmmoCount|gearSlotAmmoCount|gearSlotData|get3DENActionState|get3DENAttribute|get3DENCamera|get3DENConnections|get3DENEntity|get3DENEntityID|get3DENGrid|get3DENIconsVisible|get3DENLayerEntities|get3DENLinesVisible|get3DENMissionAttribute|get3DENMouseOver|get3DENSelected|getAimingCoef|getAllEnvSoundControllers|getAllHitPointsDamage|getAllOwnedMines|getAllSoundControllers|getAmmoCargo|getAnimAimPrecision|getAnimSpeedCoef|getArray|getArtilleryAmmo|getArtilleryComputerSettings|getArtilleryETA|getAssignedCuratorLogic|getAssignedCuratorUnit|getBackpackCargo|getBleedingRemaining|getBurningValue|getCameraViewDirection|getCargoIndex|getCenterOfMass|getClientState|getClientStateNumber|getCompatiblePylonMagazines|getConnectedUAV|getContainerMaxLoad|getCursorObjectParams|getCustomAimCoef|getDammage|getDescription|getDir|getDirVisual|getDLCAssetsUsage|getDLCAssetsUsageByName|getDLCs|getDLCUsageTime|getEditorCamera|getEditorMode|getEditorObjectScope|getElevationOffset|getEngineTargetRpmRTD|getEnvSoundController|getFatigue|getFieldManualStartPage|getForcedFlagTexture|getFriend|getFSMVariable|getFuelCargo|getGroupIcon|getGroupIconParams|getGroupIcons|getHideFrom|getHit|getHitIndex|getHitPointDamage|getItemCargo|getMagazineCargo|getMarkerColor|getMarkerPos|getMarkerSize|getMarkerType|getMass|getMissionConfig|getMissionConfigValue|getMissionDLCs|getMissionLayerEntities|getMissionLayers|getModelInfo|getMousePosition|getMusicPlayedTime|getNumber|getObjectArgument|getObjectChildren|getObjectDLC|getObjectMaterials|getObjectProxy|getObjectTextures|getObjectType|getObjectViewDistance|getOxygenRemaining|getPersonUsedDLCs|getPilotCameraDirection|getPilotCameraPosition|getPilotCameraRotation|getPilotCameraTarget|getPlateNumber|getPlayerChannel|getPlayerScores|getPlayerUID|getPlayerUIDOld|getPos|getPosASL|getPosASLVisual|getPosASLW|getPosATL|getPosATLVisual|getPosVisual|getPosWorld|getPylonMagazines|getRelDir|getRelPos|getRemoteSensorsDisabled|getRepairCargo|getResolution|getRotorBrakeRTD|getShadowDistance|getShotParents|getSlingLoad|getSoundController|getSoundControllerResult|getSpeed|getStamina|getStatValue|getSuppression|getTerrainGrid|getTerrainHeightASL|getText|getTotalDLCUsageTime|getTrimOffsetRTD|getUnitLoadout|getUnitTrait|getUserMFDText|getUserMFDValue|getVariable|getVehicleCargo|getWeaponCargo|getWeaponSway|getWingsOrientationRTD|getWingsPositionRTD|getWPPos|glanceAt|globalChat|globalRadio|goggles|group|groupChat|groupFromNetId|groupIconSelectable|groupIconsVisible|groupId|groupOwner|groupRadio|groupSelectedUnits|groupSelectUnit|grpNull|gunner|gusts|halt|handgunItems|handgunMagazine|handgunWeapon|handsHit|hasInterface|hasPilotCamera|hasWeapon|hcAllGroups|hcGroupParams|hcLeader|hcRemoveAllGroups|hcRemoveGroup|hcSelected|hcSelectGroup|hcSetGroup|hcShowBar|hcShownBar|headgear|hideBody|hideObject|hideObjectGlobal|hideSelection|hint|hintC|hintCadet|hintSilent|hmd|hostMission|htmlLoad|HUDMovementLevels|humidity|image|importAllGroups|importance|in|inArea|inAreaArray|incapacitatedState|independent|inflame|inflamed|infoPanel|infoPanelComponentEnabled|infoPanelComponents|infoPanels|inGameUISetEventHandler|inheritsFrom|initAmbientLife|inPolygon|inputAction|inRangeOfArtillery|insertEditorObject|intersect|is3DEN|is3DENMultiplayer|isAbleToBreathe|isAgent|isAimPrecisionEnabled|isArray|isAutoHoverOn|isAutonomous|isAutoStartUpEnabledRTD|isAutotest|isAutoTrimOnRTD|isBleeding|isBurning|isClass|isCollisionLightOn|isCopilotEnabled|isDamageAllowed|isDedicated|isDLCAvailable|isEngineOn|isEqualTo|isEqualType|isEqualTypeAll|isEqualTypeAny|isEqualTypeArray|isEqualTypeParams|isFilePatchingEnabled|isFlashlightOn|isFlatEmpty|isForcedWalk|isFormationLeader|isGroupDeletedWhenEmpty|isHidden|isInRemainsCollector|isInstructorFigureEnabled|isIRLaserOn|isKeyActive|isKindOf|isLaserOn|isLightOn|isLocalized|isManualFire|isMarkedForCollection|isMultiplayer|isMultiplayerSolo|isNil|isNull|isNumber|isObjectHidden|isObjectRTD|isOnRoad|isPipEnabled|isPlayer|isRealTime|isRemoteExecuted|isRemoteExecutedJIP|isServer|isShowing3DIcons|isSimpleObject|isSprintAllowed|isStaminaEnabled|isSteamMission|isStreamFriendlyUIEnabled|isStressDamageEnabled|isText|isTouchingGround|isTurnedOut|isTutHintsEnabled|isUAVConnectable|isUAVConnected|isUIContext|isUniformAllowed|isVehicleCargo|isVehicleRadarOn|isVehicleSensorEnabled|isWalking|isWeaponDeployed|isWeaponRested|itemCargo|items|itemsWithMagazines|join|joinAs|joinAsSilent|joinSilent|joinString|kbAddDatabase|kbAddDatabaseTargets|kbAddTopic|kbHasTopic|kbReact|kbRemoveTopic|kbTell|kbWasSaid|keyImage|keyName|knowsAbout|land|landAt|landResult|language|laserTarget|lbAdd|lbClear|lbColor|lbColorRight|lbCurSel|lbData|lbDelete|lbIsSelected|lbPicture|lbPictureRight|lbSelection|lbSetColor|lbSetColorRight|lbSetCurSel|lbSetData|lbSetPicture|lbSetPictureColor|lbSetPictureColorDisabled|lbSetPictureColorSelected|lbSetPictureRight|lbSetPictureRightColor|lbSetPictureRightColorDisabled|lbSetPictureRightColorSelected|lbSetSelectColor|lbSetSelectColorRight|lbSetSelected|lbSetText|lbSetTextRight|lbSetTooltip|lbSetValue|lbSize|lbSort|lbSortByValue|lbText|lbTextRight|lbValue|leader|leaderboardDeInit|leaderboardGetRows|leaderboardInit|leaderboardRequestRowsFriends|leaderboardRequestRowsGlobal|leaderboardRequestRowsGlobalAroundUser|leaderboardsRequestUploadScore|leaderboardsRequestUploadScoreKeepBest|leaderboardState|leaveVehicle|libraryCredits|libraryDisclaimers|lifeState|lightAttachObject|lightDetachObject|lightIsOn|lightnings|limitSpeed|linearConversion|lineBreak|lineIntersects|lineIntersectsObjs|lineIntersectsSurfaces|lineIntersectsWith|linkItem|list|listObjects|listRemoteTargets|listVehicleSensors|ln|lnbAddArray|lnbAddColumn|lnbAddRow|lnbClear|lnbColor|lnbColorRight|lnbCurSelRow|lnbData|lnbDeleteColumn|lnbDeleteRow|lnbGetColumnsPosition|lnbPicture|lnbPictureRight|lnbSetColor|lnbSetColorRight|lnbSetColumnsPos|lnbSetCurSelRow|lnbSetData|lnbSetPicture|lnbSetPictureColor|lnbSetPictureColorRight|lnbSetPictureColorSelected|lnbSetPictureColorSelectedRight|lnbSetPictureRight|lnbSetText|lnbSetTextRight|lnbSetValue|lnbSize|lnbSort|lnbSortByValue|lnbText|lnbTextRight|lnbValue|load|loadAbs|loadBackpack|loadFile|loadGame|loadIdentity|loadMagazine|loadOverlay|loadStatus|loadUniform|loadVest|local|localize|locationNull|locationPosition|lock|lockCameraTo|lockCargo|lockDriver|locked|lockedCargo|lockedDriver|lockedTurret|lockIdentity|lockTurret|lockWP|log|logEntities|logNetwork|logNetworkTerminate|lookAt|lookAtPos|magazineCargo|magazines|magazinesAllTurrets|magazinesAmmo|magazinesAmmoCargo|magazinesAmmoFull|magazinesDetail|magazinesDetailBackpack|magazinesDetailUniform|magazinesDetailVest|magazinesTurret|magazineTurretAmmo|mapAnimAdd|mapAnimClear|mapAnimCommit|mapAnimDone|mapCenterOnCamera|mapGridPosition|markAsFinishedOnSteam|markerAlpha|markerBrush|markerColor|markerDir|markerPos|markerShape|markerSize|markerText|markerType|max|members|menuAction|menuAdd|menuChecked|menuClear|menuCollapse|menuData|menuDelete|menuEnable|menuEnabled|menuExpand|menuHover|menuPicture|menuSetAction|menuSetCheck|menuSetData|menuSetPicture|menuSetValue|menuShortcut|menuShortcutText|menuSize|menuSort|menuText|menuURL|menuValue|min|mineActive|mineDetectedBy|missionConfigFile|missionDifficulty|missionName|missionNamespace|missionStart|missionVersion|modelToWorld|modelToWorldVisual|modelToWorldVisualWorld|modelToWorldWorld|modParams|moonIntensity|moonPhase|morale|move|move3DENCamera|moveInAny|moveInCargo|moveInCommander|moveInDriver|moveInGunner|moveInTurret|moveObjectToEnd|moveOut|moveTime|moveTo|moveToCompleted|moveToFailed|musicVolume|name|nameSound|nearEntities|nearestBuilding|nearestLocation|nearestLocations|nearestLocationWithDubbing|nearestObject|nearestObjects|nearestTerrainObjects|nearObjects|nearObjectsReady|nearRoads|nearSupplies|nearTargets|needReload|netId|netObjNull|newOverlay|nextMenuItemIndex|nextWeatherChange|nMenuItems|numberOfEnginesRTD|numberToDate|objectCurators|objectFromNetId|objectParent|objNull|objStatus|onBriefingGear|onBriefingGroup|onBriefingNotes|onBriefingPlan|onBriefingTeamSwitch|onCommandModeChanged|onDoubleClick|onEachFrame|onGroupIconClick|onGroupIconOverEnter|onGroupIconOverLeave|onHCGroupSelectionChanged|onMapSingleClick|onPlayerConnected|onPlayerDisconnected|onPreloadFinished|onPreloadStarted|onShowNewObject|onTeamSwitch|openCuratorInterface|openDLCPage|openDSInterface|openMap|openSteamApp|openYoutubeVideo|opfor|orderGetIn|overcast|overcastForecast|owner|param|params|parseNumber|parseSimpleArray|parseText|parsingNamespace|particlesQuality|pi|pickWeaponPool|pitch|pixelGrid|pixelGridBase|pixelGridNoUIScale|pixelH|pixelW|playableSlotsNumber|playableUnits|playAction|playActionNow|player|playerRespawnTime|playerSide|playersNumber|playGesture|playMission|playMove|playMoveNow|playMusic|playScriptedMission|playSound|playSound3D|position|positionCameraToWorld|posScreenToWorld|posWorldToScreen|ppEffectAdjust|ppEffectCommit|ppEffectCommitted|ppEffectCreate|ppEffectDestroy|ppEffectEnable|ppEffectEnabled|ppEffectForceInNVG|precision|preloadCamera|preloadObject|preloadSound|preloadTitleObj|preloadTitleRsc|primaryWeapon|primaryWeaponItems|primaryWeaponMagazine|priority|processDiaryLink|processInitCommands|productVersion|profileName|profileNamespace|profileNameSteam|progressLoadingScreen|progressPosition|progressSetPosition|publicVariable|publicVariableClient|publicVariableServer|pushBack|pushBackUnique|putWeaponPool|queryItemsPool|queryMagazinePool|queryWeaponPool|rad|radioChannelAdd|radioChannelCreate|radioChannelRemove|radioChannelSetCallSign|radioChannelSetLabel|radioVolume|rain|rainbow|random|rank|rankId|rating|rectangular|registeredTasks|registerTask|reload|reloadEnabled|remoteControl|remoteExec|remoteExecCall|remoteExecutedOwner|remove3DENConnection|remove3DENEventHandler|remove3DENLayer|removeAction|removeAll3DENEventHandlers|removeAllActions|removeAllAssignedItems|removeAllContainers|removeAllCuratorAddons|removeAllCuratorCameraAreas|removeAllCuratorEditingAreas|removeAllEventHandlers|removeAllHandgunItems|removeAllItems|removeAllItemsWithMagazines|removeAllMissionEventHandlers|removeAllMPEventHandlers|removeAllMusicEventHandlers|removeAllOwnedMines|removeAllPrimaryWeaponItems|removeAllWeapons|removeBackpack|removeBackpackGlobal|removeCuratorAddons|removeCuratorCameraArea|removeCuratorEditableObjects|removeCuratorEditingArea|removeDrawIcon|removeDrawLinks|removeEventHandler|removeFromRemainsCollector|removeGoggles|removeGroupIcon|removeHandgunItem|removeHeadgear|removeItem|removeItemFromBackpack|removeItemFromUniform|removeItemFromVest|removeItems|removeMagazine|removeMagazineGlobal|removeMagazines|removeMagazinesTurret|removeMagazineTurret|removeMenuItem|removeMissionEventHandler|removeMPEventHandler|removeMusicEventHandler|removeOwnedMine|removePrimaryWeaponItem|removeSecondaryWeaponItem|removeSimpleTask|removeSwitchableUnit|removeTeamMember|removeUniform|removeVest|removeWeapon|removeWeaponAttachmentCargo|removeWeaponCargo|removeWeaponGlobal|removeWeaponTurret|reportRemoteTarget|requiredVersion|resetCamShake|resetSubgroupDirection|resistance|resize|resources|respawnVehicle|restartEditorCamera|reveal|revealMine|reverse|reversedMouseY|roadAt|roadsConnectedTo|roleDescription|ropeAttachedObjects|ropeAttachedTo|ropeAttachEnabled|ropeAttachTo|ropeCreate|ropeCut|ropeDestroy|ropeDetach|ropeEndPosition|ropeLength|ropes|ropeUnwind|ropeUnwound|rotorsForcesRTD|rotorsRpmRTD|round|runInitScript|safeZoneH|safeZoneW|safeZoneWAbs|safeZoneX|safeZoneXAbs|safeZoneY|save3DENInventory|saveGame|saveIdentity|saveJoysticks|saveOverlay|saveProfileNamespace|saveStatus|saveVar|savingEnabled|say|say2D|say3D|score|scoreSide|screenshot|screenToWorld|scriptDone|scriptName|scriptNull|scudState|secondaryWeapon|secondaryWeaponItems|secondaryWeaponMagazine|select|selectBestPlaces|selectDiarySubject|selectedEditorObjects|selectEditorObject|selectionNames|selectionPosition|selectLeader|selectMax|selectMin|selectNoPlayer|selectPlayer|selectRandom|selectRandomWeighted|selectWeapon|selectWeaponTurret|sendAUMessage|sendSimpleCommand|sendTask|sendTaskResult|sendUDPMessage|serverCommand|serverCommandAvailable|serverCommandExecutable|serverName|serverTime|set|set3DENAttribute|set3DENAttributes|set3DENGrid|set3DENIconsVisible|set3DENLayer|set3DENLinesVisible|set3DENLogicType|set3DENMissionAttribute|set3DENMissionAttributes|set3DENModelsVisible|set3DENObjectType|set3DENSelected|setAccTime|setActualCollectiveRTD|setAirplaneThrottle|setAirportSide|setAmmo|setAmmoCargo|setAmmoOnPylon|setAnimSpeedCoef|setAperture|setApertureNew|setArmoryPoints|setAttributes|setAutonomous|setBehaviour|setBleedingRemaining|setBrakesRTD|setCameraInterest|setCamShakeDefParams|setCamShakeParams|setCamUseTI|setCaptive|setCenterOfMass|setCollisionLight|setCombatMode|setCompassOscillation|setConvoySeparation|setCuratorCameraAreaCeiling|setCuratorCoef|setCuratorEditingAreaType|setCuratorWaypointCost|setCurrentChannel|setCurrentTask|setCurrentWaypoint|setCustomAimCoef|setCustomWeightRTD|setDamage|setDammage|setDate|setDebriefingText|setDefaultCamera|setDestination|setDetailMapBlendPars|setDir|setDirection|setDrawIcon|setDriveOnPath|setDropInterval|setDynamicSimulationDistance|setDynamicSimulationDistanceCoef|setEditorMode|setEditorObjectScope|setEffectCondition|setEngineRpmRTD|setFace|setFaceAnimation|setFatigue|setFeatureType|setFlagAnimationPhase|setFlagOwner|setFlagSide|setFlagTexture|setFog|setForceGeneratorRTD|setFormation|setFormationTask|setFormDir|setFriend|setFromEditor|setFSMVariable|setFuel|setFuelCargo|setGroupIcon|setGroupIconParams|setGroupIconsSelectable|setGroupIconsVisible|setGroupId|setGroupIdGlobal|setGroupOwner|setGusts|setHideBehind|setHit|setHitIndex|setHitPointDamage|setHorizonParallaxCoef|setHUDMovementLevels|setIdentity|setImportance|setInfoPanel|setLeader|setLightAmbient|setLightAttenuation|setLightBrightness|setLightColor|setLightDayLight|setLightFlareMaxDistance|setLightFlareSize|setLightIntensity|setLightnings|setLightUseFlare|setLocalWindParams|setMagazineTurretAmmo|setMarkerAlpha|setMarkerAlphaLocal|setMarkerBrush|setMarkerBrushLocal|setMarkerColor|setMarkerColorLocal|setMarkerDir|setMarkerDirLocal|setMarkerPos|setMarkerPosLocal|setMarkerShape|setMarkerShapeLocal|setMarkerSize|setMarkerSizeLocal|setMarkerText|setMarkerTextLocal|setMarkerType|setMarkerTypeLocal|setMass|setMimic|setMousePosition|setMusicEffect|setMusicEventHandler|setName|setNameSound|setObjectArguments|setObjectMaterial|setObjectMaterialGlobal|setObjectProxy|setObjectTexture|setObjectTextureGlobal|setObjectViewDistance|setOvercast|setOwner|setOxygenRemaining|setParticleCircle|setParticleClass|setParticleFire|setParticleParams|setParticleRandom|setPilotCameraDirection|setPilotCameraRotation|setPilotCameraTarget|setPilotLight|setPiPEffect|setPitch|setPlateNumber|setPlayable|setPlayerRespawnTime|setPos|setPosASL|setPosASL2|setPosASLW|setPosATL|setPosition|setPosWorld|setPylonLoadOut|setPylonsPriority|setRadioMsg|setRain|setRainbow|setRandomLip|setRank|setRectangular|setRepairCargo|setRotorBrakeRTD|setShadowDistance|setShotParents|setSide|setSimpleTaskAlwaysVisible|setSimpleTaskCustomData|setSimpleTaskDescription|setSimpleTaskDestination|setSimpleTaskTarget|setSimpleTaskType|setSimulWeatherLayers|setSize|setSkill|setSlingLoad|setSoundEffect|setSpeaker|setSpeech|setSpeedMode|setStamina|setStaminaScheme|setStatValue|setSuppression|setSystemOfUnits|setTargetAge|setTaskMarkerOffset|setTaskResult|setTaskState|setTerrainGrid|setText|setTimeMultiplier|setTitleEffect|setToneMapping|setToneMappingParams|setTrafficDensity|setTrafficDistance|setTrafficGap|setTrafficSpeed|setTriggerActivation|setTriggerArea|setTriggerStatements|setTriggerText|setTriggerTimeout|setTriggerType|setType|setUnconscious|setUnitAbility|setUnitLoadout|setUnitPos|setUnitPosWeak|setUnitRank|setUnitRecoilCoefficient|setUnitTrait|setUnloadInCombat|setUserActionText|setUserMFDText|setUserMFDValue|setVariable|setVectorDir|setVectorDirAndUp|setVectorUp|setVehicleAmmo|setVehicleAmmoDef|setVehicleArmor|setVehicleCargo|setVehicleId|setVehicleInit|setVehicleLock|setVehiclePosition|setVehicleRadar|setVehicleReceiveRemoteTargets|setVehicleReportOwnPosition|setVehicleReportRemoteTargets|setVehicleTIPars|setVehicleVarName|setVelocity|setVelocityModelSpace|setVelocityTransformation|setViewDistance|setVisibleIfTreeCollapsed|setWantedRpmRTD|setWaves|setWaypointBehaviour|setWaypointCombatMode|setWaypointCompletionRadius|setWaypointDescription|setWaypointForceBehaviour|setWaypointFormation|setWaypointHousePosition|setWaypointLoiterRadius|setWaypointLoiterType|setWaypointName|setWaypointPosition|setWaypointScript|setWaypointSpeed|setWaypointStatements|setWaypointTimeout|setWaypointType|setWaypointVisible|setWeaponReloadingTime|setWind|setWindDir|setWindForce|setWindStr|setWingForceScaleRTD|setWPPos|show3DIcons|showChat|showCinemaBorder|showCommandingMenu|showCompass|showCuratorCompass|showGPS|showHUD|showLegend|showMap|shownArtilleryComputer|shownChat|shownCompass|shownCuratorCompass|showNewEditorObject|shownGPS|shownHUD|shownMap|shownPad|shownRadio|shownScoretable|shownUAVFeed|shownWarrant|shownWatch|showPad|showRadio|showScoretable|showSubtitles|showUAVFeed|showWarrant|showWatch|showWaypoint|showWaypoints|side|sideAmbientLife|sideChat|sideEmpty|sideEnemy|sideFriendly|sideLogic|sideRadio|sideUnknown|simpleTasks|simulationEnabled|simulCloudDensity|simulCloudOcclusion|simulInClouds|simulWeatherSync|sin|size|sizeOf|skill|skillFinal|skipTime|sleep|sliderPosition|sliderRange|sliderSetPosition|sliderSetRange|sliderSetSpeed|sliderSpeed|slingLoadAssistantShown|soldierMagazines|someAmmo|sort|soundVolume|speaker|speed|speedMode|splitString|sqrt|squadParams|stance|startLoadingScreen|stop|stopEngineRTD|stopped|str|sunOrMoon|supportInfo|suppressFor|surfaceIsWater|surfaceNormal|surfaceType|swimInDepth|switchableUnits|switchAction|switchCamera|switchGesture|switchLight|switchMove|synchronizedObjects|synchronizedTriggers|synchronizedWaypoints|synchronizeObjectsAdd|synchronizeObjectsRemove|synchronizeTrigger|synchronizeWaypoint|systemChat|systemOfUnits|tan|targetKnowledge|targets|targetsAggregate|targetsQuery|taskAlwaysVisible|taskChildren|taskCompleted|taskCustomData|taskDescription|taskDestination|taskHint|taskMarkerOffset|taskNull|taskParent|taskResult|taskState|taskType|teamMember|teamMemberNull|teamName|teams|teamSwitch|teamSwitchEnabled|teamType|terminate|terrainIntersect|terrainIntersectASL|terrainIntersectAtASL|text|textLog|textLogFormat|tg|time|timeMultiplier|titleCut|titleFadeOut|titleObj|titleRsc|titleText|toArray|toFixed|toLower|toString|toUpper|triggerActivated|triggerActivation|triggerArea|triggerAttachedVehicle|triggerAttachObject|triggerAttachVehicle|triggerDynamicSimulation|triggerStatements|triggerText|triggerTimeout|triggerTimeoutCurrent|triggerType|turretLocal|turretOwner|turretUnit|tvAdd|tvClear|tvCollapse|tvCollapseAll|tvCount|tvCurSel|tvData|tvDelete|tvExpand|tvExpandAll|tvPicture|tvPictureRight|tvSetColor|tvSetCurSel|tvSetData|tvSetPicture|tvSetPictureColor|tvSetPictureColorDisabled|tvSetPictureColorSelected|tvSetPictureRight|tvSetPictureRightColor|tvSetPictureRightColorDisabled|tvSetPictureRightColorSelected|tvSetSelectColor|tvSetText|tvSetTooltip|tvSetValue|tvSort|tvSortByValue|tvText|tvTooltip|tvValue|type|typeName|typeOf|UAVControl|uiNamespace|uiSleep|unassignCurator|unassignItem|unassignTeam|unassignVehicle|underwater|uniform|uniformContainer|uniformItems|uniformMagazines|unitAddons|unitAimPosition|unitAimPositionVisual|unitBackpack|unitIsUAV|unitPos|unitReady|unitRecoilCoefficient|units|unitsBelowHeight|unlinkItem|unlockAchievement|unregisterTask|updateDrawIcon|updateMenuItem|updateObjectTree|useAIOperMapObstructionTest|useAISteeringComponent|useAudioTimeForMoves|userInputDisabled|vectorAdd|vectorCos|vectorCrossProduct|vectorDiff|vectorDir|vectorDirVisual|vectorDistance|vectorDistanceSqr|vectorDotProduct|vectorFromTo|vectorMagnitude|vectorMagnitudeSqr|vectorModelToWorld|vectorModelToWorldVisual|vectorMultiply|vectorNormalized|vectorUp|vectorUpVisual|vectorWorldToModel|vectorWorldToModelVisual|vehicle|vehicleCargoEnabled|vehicleChat|vehicleRadio|vehicleReceiveRemoteTargets|vehicleReportOwnPosition|vehicleReportRemoteTargets|vehicles|vehicleVarName|velocity|velocityModelSpace|verifySignature|vest|vestContainer|vestItems|vestMagazines|viewDistance|visibleCompass|visibleGPS|visibleMap|visiblePosition|visiblePositionASL|visibleScoretable|visibleWatch|waitUntil|waves|waypointAttachedObject|waypointAttachedVehicle|waypointAttachObject|waypointAttachVehicle|waypointBehaviour|waypointCombatMode|waypointCompletionRadius|waypointDescription|waypointForceBehaviour|waypointFormation|waypointHousePosition|waypointLoiterRadius|waypointLoiterType|waypointName|waypointPosition|waypoints|waypointScript|waypointsEnabledUAV|waypointShow|waypointSpeed|waypointStatements|waypointTimeout|waypointTimeoutCurrent|waypointType|waypointVisible|weaponAccessories|weaponAccessoriesCargo|weaponCargo|weaponDirection|weaponInertia|weaponLowered|weapons|weaponsItems|weaponsItemsCargo|weaponState|weaponsTurret|weightRTD|west|WFSideText|wind|windDir|windRTD|windStr|wingsForcesRTD|worldName|worldSize|worldToModel|worldToModelVisual|worldToScreen)\b/i,number:/(?:\$|\b0x)[\da-f]+\b|(?:\B\.\d+|\b\d+(?:\.\d+)?)(?:e[+-]?\d+)?\b/i,operator:/##|>>|&&|\|\||[!=<>]=?|[-+*/%#^]|\b(?:and|mod|not|or)\b/i,"magic-variable":{pattern:/\b(?:_exception|_fnc_scriptName|_fnc_scriptNameParent|_forEachIndex|_this|_thisEventHandler|_thisFSM|_thisScript|_x|this|thisList|thisTrigger)\b/i,alias:"keyword"},constant:/\bDIK(?:_[a-z\d]+)+\b/i}),e.languages.insertBefore("sqf","string",{macro:{pattern:/(^[ \t]*)#[a-z](?:[^\r\n\\]|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{directive:{pattern:/#[a-z]+\b/i,alias:"keyword"},comment:e.languages.sqf.comment}}}),delete e.languages.sqf["class-name"]}e.exports=t,t.displayName="sqf",t.aliases=[]},11114(e){"use strict";function t(e){e.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},variable:[{pattern:/@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,greedy:!0},/@[\w.$]+/],string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/,greedy:!0,lookbehind:!0},function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:_INSERT|COL)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:S|ING)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:TRUE|FALSE|NULL)\b/i,number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|IN|ILIKE|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/}}e.exports=t,t.displayName="sql",t.aliases=[]},67386(e){"use strict";function t(e){e.languages.squirrel=e.languages.extend("clike",{comment:[e.languages.clike.comment[0],{pattern:/(^|[^\\:])(?:\/\/|#).*/,lookbehind:!0,greedy:!0}],string:[{pattern:/(^|[^\\"'@])(?:@"(?:[^"]|"")*"(?!")|"(?:[^\\\r\n"]|\\.)*")/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\"'])'(?:[^\\']|\\(?:[xuU][0-9a-fA-F]{0,8}|[\s\S]))'/,lookbehind:!0,greedy:!0}],"class-name":{pattern:/(\b(?:class|enum|extends|instanceof)\s+)\w+(?:\.\w+)*/,lookbehind:!0,inside:{punctuation:/\./}},keyword:/\b(?:base|break|case|catch|class|clone|const|constructor|continue|default|delete|else|enum|extends|for|foreach|function|if|in|instanceof|local|null|resume|return|static|switch|this|throw|try|typeof|while|yield|__LINE__|__FILE__)\b/,number:/\b(?:0x[0-9a-fA-F]+|\d+(?:\.(?:\d+|[eE][+-]?\d+))?)\b/,operator:/\+\+|--|<=>|<[-<]|>>>?|&&?|\|\|?|[-+*/%!=<>]=?|[~^]|::?/,punctuation:/[(){}\[\],;.]/}),e.languages.insertBefore("squirrel","operator",{"attribute-punctuation":{pattern:/<\/|\/>/,alias:"important"},lambda:{pattern:/@(?=\()/,alias:"operator"}})}e.exports=t,t.displayName="squirrel",t.aliases=[]},28067(e){"use strict";function t(e){e.languages.stan={comment:/\/\/.*|\/\*[\s\S]*?\*\/|#(?!include).*/,string:{pattern:/"[\x20\x21\x23-\x5B\x5D-\x7E]*"/,greedy:!0},directive:{pattern:/^([ \t]*)#include\b.*/m,lookbehind:!0,alias:"property"},"function-arg":{pattern:/(\b(?:algebra_solver|integrate_1d|integrate_ode|integrate_ode_bdf|integrate_ode_rk45|map_rect)\s*\(\s*)[a-zA-Z]\w*/,lookbehind:!0,alias:"function"},constraint:{pattern:/(\b(?:int|matrix|real|row_vector|vector)\s*)<[^<>]*>/,lookbehind:!0,inside:{expression:{pattern:/(=\s*)\S(?:\S|\s+(?!\s))*?(?=\s*(?:>$|,\s*\w+\s*=))/,lookbehind:!0,inside:null},property:/\b[a-z]\w*(?=\s*=)/i,operator:/=/,punctuation:/^<|>$|,/}},keyword:[/\b(?:break|cholesky_factor_corr|cholesky_factor_cov|continue|corr_matrix|cov_matrix|data|else|for|functions|generated|if|in|increment_log_prob|int|matrix|model|ordered|parameters|positive_ordered|print|quantities|real|reject|return|row_vector|simplex|target|transformed|unit_vector|vector|void|while)\b/,/\b(?:algebra_solver|integrate_1d|integrate_ode|integrate_ode_bdf|integrate_ode_rk45|map_rect)\b/],function:/\b[a-z]\w*(?=\s*\()/i,number:/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:E[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,operator:/<-|\.[*/]=?|\|\|?|&&|[!=<>+\-*/]=?|['^%~?:]/,punctuation:/[()\[\]{},;]/},e.languages.stan.constraint.inside.expression.inside=e.languages.stan}e.exports=t,t.displayName="stan",t.aliases=[]},49168(e){"use strict";function t(e){var t,n,r,i;t=e,(i={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},url:{pattern:/\burl\((["']?).*?\1\)/i,greedy:!0},string:{pattern:/("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*\1/,greedy:!0},interpolation:null,func:null,important:/\B!(?:important|optional)\b/i,keyword:{pattern:/(^|\s+)(?:(?:if|else|for|return|unless)(?=\s|$)|@[\w-]+)/,lookbehind:!0},hexcode:/#[\da-f]{3,6}/i,color:[/\b(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\b/i,{pattern:/\b(?:rgb|hsl)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:rgb|hsl)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:n={pattern:/(\b\d+)(?:%|[a-z]+)/,lookbehind:!0},number:r={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0},function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:n,boolean:/\b(?:true|false)\b/,operator:[/~|[+!\/%<>?=]=?|[-:]=|\*[*=]?|\.{2,3}|&&|\|\||\B-\B|\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\b/],number:r,punctuation:/[{}()\[\];:,]/}).interpolation={pattern:/\{[^\r\n}:]+\}/,alias:"variable",inside:{delimiter:{pattern:/^\{|\}$/,alias:"punctuation"},rest:i}},i.func={pattern:/[\w-]+\([^)]*\).*/,inside:{function:/^[^(]+/,rest:i}},t.languages.stylus={"atrule-declaration":{pattern:/(^[ \t]*)@.+/m,lookbehind:!0,inside:{atrule:/^@[\w-]+/,rest:i}},"variable-declaration":{pattern:/(^[ \t]*)[\w$-]+\s*.?=[ \t]*(?:\{[^{}]*\}|\S.*|$)/m,lookbehind:!0,inside:{variable:/^\S+/,rest:i}},statement:{pattern:/(^[ \t]*)(?:if|else|for|return|unless)[ \t].+/m,lookbehind:!0,inside:{keyword:/^\S+/,rest:i}},"property-declaration":{pattern:/((?:^|\{)([ \t]*))(?:[\w-]|\{[^}\r\n]+\})+(?:\s*:\s*|[ \t]+)(?!\s)[^{\r\n]*(?:;|[^{\r\n,]$(?!(?:\r?\n|\r)(?:\{|\2[ \t])))/m,lookbehind:!0,inside:{property:{pattern:/^[^\s:]+/,inside:{interpolation:i.interpolation}},rest:i}},selector:{pattern:/(^[ \t]*)(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)(?:(?:\r?\n|\r)(?:\1(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)))*(?:,$|\{|(?=(?:\r?\n|\r)(?:\{|\1[ \t])))/m,lookbehind:!0,inside:{interpolation:i.interpolation,comment:i.comment,punctuation:/[{},]/}},func:i.func,string:i.string,comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0,greedy:!0},interpolation:i.interpolation,punctuation:/[{}()\[\];:.]/}}e.exports=t,t.displayName="stylus",t.aliases=[]},23651(e){"use strict";function t(e){e.languages.swift=e.languages.extend("clike",{string:{pattern:/("|')(?:\\(?:\((?:[^()]|\([^)]+\))+\)|\r\n|[^(])|(?!\1)[^\\\r\n])*\1/,greedy:!0,inside:{interpolation:{pattern:/\\\((?:[^()]|\([^)]+\))+\)/,inside:{delimiter:{pattern:/^\\\(|\)$/,alias:"variable"}}}}},keyword:/\b(?:as|associativity|break|case|catch|class|continue|convenience|default|defer|deinit|didSet|do|dynamic(?:Type)?|else|enum|extension|fallthrough|final|for|func|get|guard|if|import|in|infix|init|inout|internal|is|lazy|left|let|mutating|new|none|nonmutating|operator|optional|override|postfix|precedence|prefix|private|protocol|public|repeat|required|rethrows|return|right|safe|self|Self|set|some|static|struct|subscript|super|switch|throws?|try|Type|typealias|unowned|unsafe|var|weak|where|while|willSet|__(?:COLUMN__|FILE__|FUNCTION__|LINE__))\b/,number:/\b(?:[\d_]+(?:\.[\de_]+)?|0x[a-f0-9_]+(?:\.[a-f0-9p_]+)?|0b[01_]+|0o[0-7_]+)\b/i,constant:/\b(?:nil|[A-Z_]{2,}|k[A-Z][A-Za-z_]+)\b/,atrule:/@\b(?:IB(?:Outlet|Designable|Action|Inspectable)|class_protocol|exported|noreturn|NS(?:Copying|Managed)|objc|UIApplicationMain|auto_closure)\b/,builtin:/\b(?:[A-Z]\S+|abs|advance|alignof(?:Value)?|assert|contains|count(?:Elements)?|debugPrint(?:ln)?|distance|drop(?:First|Last)|dump|enumerate|equal|filter|find|first|getVaList|indices|isEmpty|join|last|lexicographicalCompare|map|max(?:Element)?|min(?:Element)?|numericCast|overlaps|partition|print(?:ln)?|reduce|reflect|reverse|sizeof(?:Value)?|sort(?:ed)?|split|startsWith|stride(?:of(?:Value)?)?|suffix|swap|toDebugString|toString|transcode|underestimateCount|unsafeBitCast|with(?:ExtendedLifetime|Unsafe(?:MutablePointers?|Pointers?)|VaList))\b/}),e.languages.swift.string.inside.interpolation.inside.rest=e.languages.swift}e.exports=t,t.displayName="swift",t.aliases=[]},32268(e,t,n){"use strict";var r=n(2329),i=n(61958);function a(e){e.register(r),e.register(i),e.languages.t4=e.languages["t4-cs"]=e.languages["t4-templating"].createT4("csharp")}e.exports=a,a.displayName="t4Cs",a.aliases=[]},2329(e){"use strict";function t(e){!function(e){function t(e,t,n){return{pattern:RegExp("<#"+e+"[\\s\\S]*?#>"),alias:"block",inside:{delimiter:{pattern:RegExp("^<#"+e+"|#>$"),alias:"important"},content:{pattern:/[\s\S]+/,inside:t,alias:n}}}}function n(n){var r=e.languages[n],i="language-"+n;return{block:{pattern:/<#[\s\S]+?#>/,inside:{directive:t("@",{"attr-value":{pattern:/=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+)/,inside:{punctuation:/^=|^["']|["']$/}},keyword:/\b\w+(?=\s)/,"attr-name":/\b\w+/}),expression:t("=",r,i),"class-feature":t("\\+",r,i),standard:t("",r,i)}}}}e.languages["t4-templating"]=Object.defineProperty({},"createT4",{value:n})}(e)}e.exports=t,t.displayName="t4Templating",t.aliases=[]},82996(e,t,n){"use strict";var r=n(2329),i=n(53813);function a(e){e.register(r),e.register(i),e.languages["t4-vb"]=e.languages["t4-templating"].createT4("vbnet")}e.exports=a,a.displayName="t4Vb",a.aliases=[]},17290(e,t,n){"use strict";var r=n(65039);function i(e){e.register(r),e.languages.tap={fail:/not ok[^#{\n\r]*/,pass:/ok[^#{\n\r]*/,pragma:/pragma [+-][a-z]+/,bailout:/bail out!.*/i,version:/TAP version \d+/i,plan:/\b\d+\.\.\d+(?: +#.*)?/,subtest:{pattern:/# Subtest(?:: .*)?/,greedy:!0},punctuation:/[{}]/,directive:/#.*/,yamlish:{pattern:/(^[ \t]*)---[\s\S]*?[\r\n][ \t]*\.\.\.$/m,lookbehind:!0,inside:e.languages.yaml,alias:"language-yaml"}}}e.exports=i,i.displayName="tap",i.aliases=[]},67989(e){"use strict";function t(e){e.languages.tcl={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0},string:{pattern:/"(?:[^"\\\r\n]|\\(?:\r\n|[\s\S]))*"/,greedy:!0},variable:[{pattern:/(\$)(?:::)?(?:[a-zA-Z0-9]+::)*\w+/,lookbehind:!0},{pattern:/(\$)\{[^}]+\}/,lookbehind:!0},{pattern:/(^[\t ]*set[ \t]+)(?:::)?(?:[a-zA-Z0-9]+::)*\w+/m,lookbehind:!0}],function:{pattern:/(^[\t ]*proc[ \t]+)\S+/m,lookbehind:!0},builtin:[{pattern:/(^[\t ]*)(?:proc|return|class|error|eval|exit|for|foreach|if|switch|while|break|continue)\b/m,lookbehind:!0},/\b(?:elseif|else)\b/],scope:{pattern:/(^[\t ]*)(?:global|upvar|variable)\b/m,lookbehind:!0,alias:"constant"},keyword:{pattern:/(^[\t ]*|\[)(?:after|append|apply|array|auto_(?:execok|import|load|mkindex|qualify|reset)|automkindex_old|bgerror|binary|catch|cd|chan|clock|close|concat|dde|dict|encoding|eof|exec|expr|fblocked|fconfigure|fcopy|file(?:event|name)?|flush|gets|glob|history|http|incr|info|interp|join|lappend|lassign|lindex|linsert|list|llength|load|lrange|lrepeat|lreplace|lreverse|lsearch|lset|lsort|math(?:func|op)|memory|msgcat|namespace|open|package|parray|pid|pkg_mkIndex|platform|puts|pwd|re_syntax|read|refchan|regexp|registry|regsub|rename|Safe_Base|scan|seek|set|socket|source|split|string|subst|Tcl|tcl(?:_endOfWord|_findLibrary|startOf(?:Next|Previous)Word|wordBreak(?:After|Before)|test|vars)|tell|time|tm|trace|unknown|unload|unset|update|uplevel|vwait)\b/m,lookbehind:!0},operator:/!=?|\*\*?|==|&&?|\|\|?|<[=<]?|>[=>]?|[-+~\/%?^]|\b(?:eq|ne|in|ni)\b/,punctuation:/[{}()\[\]]/}}e.exports=t,t.displayName="tcl",t.aliases=[]},31065(e){"use strict";function t(e){!function(e){var t=/\([^|()\n]+\)|\[[^\]\n]+\]|\{[^}\n]+\}/.source,n=/\)|\((?![^|()\n]+\))/.source;function r(e,r){return RegExp(e.replace(//g,function(){return"(?:"+t+")"}).replace(//g,function(){return"(?:"+n+")"}),r||"")}var i={css:{pattern:/\{[^{}]+\}/,inside:{rest:e.languages.css}},"class-id":{pattern:/(\()[^()]+(?=\))/,lookbehind:!0,alias:"attr-value"},lang:{pattern:/(\[)[^\[\]]+(?=\])/,lookbehind:!0,alias:"attr-value"},punctuation:/[\\\/]\d+|\S/},a=e.languages.textile=e.languages.extend("markup",{phrase:{pattern:/(^|\r|\n)\S[\s\S]*?(?=$|\r?\n\r?\n|\r\r)/,lookbehind:!0,inside:{"block-tag":{pattern:r(/^[a-z]\w*(?:||[<>=])*\./.source),inside:{modifier:{pattern:r(/(^[a-z]\w*)(?:||[<>=])+(?=\.)/.source),lookbehind:!0,inside:i},tag:/^[a-z]\w*/,punctuation:/\.$/}},list:{pattern:r(/^[*#]+*\s+\S.*/.source,"m"),inside:{modifier:{pattern:r(/(^[*#]+)+/.source),lookbehind:!0,inside:i},punctuation:/^[*#]+/}},table:{pattern:r(/^(?:(?:||[<>=^~])+\.\s*)?(?:\|(?:(?:||[<>=^~_]|[\\/]\d+)+\.|(?!(?:||[<>=^~_]|[\\/]\d+)+\.))[^|]*)+\|/.source,"m"),inside:{modifier:{pattern:r(/(^|\|(?:\r?\n|\r)?)(?:||[<>=^~_]|[\\/]\d+)+(?=\.)/.source),lookbehind:!0,inside:i},punctuation:/\||^\./}},inline:{pattern:r(/(^|[^a-zA-Z\d])(\*\*|__|\?\?|[*_%@+\-^~])*.+?\2(?![a-zA-Z\d])/.source),lookbehind:!0,inside:{bold:{pattern:r(/(^(\*\*?)*).+?(?=\2)/.source),lookbehind:!0},italic:{pattern:r(/(^(__?)*).+?(?=\2)/.source),lookbehind:!0},cite:{pattern:r(/(^\?\?*).+?(?=\?\?)/.source),lookbehind:!0,alias:"string"},code:{pattern:r(/(^@*).+?(?=@)/.source),lookbehind:!0,alias:"keyword"},inserted:{pattern:r(/(^\+*).+?(?=\+)/.source),lookbehind:!0},deleted:{pattern:r(/(^-*).+?(?=-)/.source),lookbehind:!0},span:{pattern:r(/(^%*).+?(?=%)/.source),lookbehind:!0},modifier:{pattern:r(/(^\*\*|__|\?\?|[*_%@+\-^~])+/.source),lookbehind:!0,inside:i},punctuation:/[*_%?@+\-^~]+/}},"link-ref":{pattern:/^\[[^\]]+\]\S+$/m,inside:{string:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0},url:{pattern:/(^\])\S+$/,lookbehind:!0},punctuation:/[\[\]]/}},link:{pattern:r(/"*[^"]+":.+?(?=[^\w/]?(?:\s|$))/.source),inside:{text:{pattern:r(/(^"*)[^"]+(?=")/.source),lookbehind:!0},modifier:{pattern:r(/(^")+/.source),lookbehind:!0,inside:i},url:{pattern:/(:).+/,lookbehind:!0},punctuation:/[":]/}},image:{pattern:r(/!(?:||[<>=])*(?![<>=])[^!\s()]+(?:\([^)]+\))?!(?::.+?(?=[^\w/]?(?:\s|$)))?/.source),inside:{source:{pattern:r(/(^!(?:||[<>=])*)(?![<>=])[^!\s()]+(?:\([^)]+\))?(?=!)/.source),lookbehind:!0,alias:"url"},modifier:{pattern:r(/(^!)(?:||[<>=])+/.source),lookbehind:!0,inside:i},url:{pattern:/(:).+/,lookbehind:!0},punctuation:/[!:]/}},footnote:{pattern:/\b\[\d+\]/,alias:"comment",inside:{punctuation:/\[|\]/}},acronym:{pattern:/\b[A-Z\d]+\([^)]+\)/,inside:{comment:{pattern:/(\()[^()]+(?=\))/,lookbehind:!0},punctuation:/[()]/}},mark:{pattern:/\b\((?:TM|R|C)\)/,alias:"comment",inside:{punctuation:/[()]/}}}}}),o=a.phrase.inside,s={inline:o.inline,link:o.link,image:o.image,footnote:o.footnote,acronym:o.acronym,mark:o.mark};a.tag.pattern=/<\/?(?!\d)[a-z0-9]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+))?)*\s*\/?>/i;var u=o.inline.inside;u.bold.inside=s,u.italic.inside=s,u.inserted.inside=s,u.deleted.inside=s,u.span.inside=s;var c=o.table.inside;c.inline=s.inline,c.link=s.link,c.image=s.image,c.footnote=s.footnote,c.acronym=s.acronym,c.mark=s.mark}(e)}e.exports=t,t.displayName="textile",t.aliases=[]},85572(e){"use strict";function t(e){!function(e){var t=/(?:[\w-]+|'[^'\n\r]*'|"(?:\\.|[^\\"\r\n])*")/.source;function n(e){return e.replace(/__/g,function(){return t})}e.languages.toml={comment:{pattern:/#.*/,greedy:!0},table:{pattern:RegExp(n(/(^[\t ]*\[\s*(?:\[\s*)?)__(?:\s*\.\s*__)*(?=\s*\])/.source),"m"),lookbehind:!0,greedy:!0,alias:"class-name"},key:{pattern:RegExp(n(/(^[\t ]*|[{,]\s*)__(?:\s*\.\s*__)*(?=\s*=)/.source),"m"),lookbehind:!0,greedy:!0,alias:"property"},string:{pattern:/"""(?:\\[\s\S]|[^\\])*?"""|'''[\s\S]*?'''|'[^'\n\r]*'|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},date:[{pattern:/\b\d{4}-\d{2}-\d{2}(?:[T\s]\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})?)?\b/i,alias:"number"},{pattern:/\b\d{2}:\d{2}:\d{2}(?:\.\d+)?\b/,alias:"number"}],number:/(?:\b0(?:x[\da-zA-Z]+(?:_[\da-zA-Z]+)*|o[0-7]+(?:_[0-7]+)*|b[10]+(?:_[10]+)*))\b|[-+]?\b\d+(?:_\d+)*(?:\.\d+(?:_\d+)*)?(?:[eE][+-]?\d+(?:_\d+)*)?\b|[-+]?\b(?:inf|nan)\b/,boolean:/\b(?:true|false)\b/,punctuation:/[.,=[\]{}]/}}(e)}e.exports=t,t.displayName="toml",t.aliases=[]},87041(e,t,n){"use strict";var r=n(96412),i=n(4979);function a(e){var t,n,a;e.register(r),e.register(i),n=(t=e).util.clone(t.languages.typescript),t.languages.tsx=t.languages.extend("jsx",n),(a=t.languages.tsx.tag).pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+a.pattern.source+")",a.pattern.flags),a.lookbehind=!0}e.exports=a,a.displayName="tsx",a.aliases=[]},61028(e,t,n){"use strict";var r=n(93205);function i(e){var t;e.register(r),(t=e).languages.tt2=t.languages.extend("clike",{comment:/#.*|\[%#[\s\S]*?%\]/,keyword:/\b(?:BLOCK|CALL|CASE|CATCH|CLEAR|DEBUG|DEFAULT|ELSE|ELSIF|END|FILTER|FINAL|FOREACH|GET|IF|IN|INCLUDE|INSERT|LAST|MACRO|META|NEXT|PERL|PROCESS|RAWPERL|RETURN|SET|STOP|TAGS|THROW|TRY|SWITCH|UNLESS|USE|WHILE|WRAPPER)\b/,punctuation:/[[\]{},()]/}),t.languages.insertBefore("tt2","number",{operator:/=[>=]?|!=?|<=?|>=?|&&|\|\|?|\b(?:and|or|not)\b/,variable:{pattern:/\b[a-z]\w*(?:\s*\.\s*(?:\d+|\$?[a-z]\w*))*\b/i}}),t.languages.insertBefore("tt2","keyword",{delimiter:{pattern:/^(?:\[%|%%)-?|-?%\]$/,alias:"punctuation"}}),t.languages.insertBefore("tt2","string",{"single-quoted-string":{pattern:/'[^\\']*(?:\\[\s\S][^\\']*)*'/,greedy:!0,alias:"string"},"double-quoted-string":{pattern:/"[^\\"]*(?:\\[\s\S][^\\"]*)*"/,greedy:!0,alias:"string",inside:{variable:{pattern:/\$(?:[a-z]\w*(?:\.(?:\d+|\$?[a-z]\w*))*)/i}}}}),delete t.languages.tt2.string,t.hooks.add("before-tokenize",function(e){var n=/\[%[\s\S]+?%\]/g;t.languages["markup-templating"].buildPlaceholders(e,"tt2",n)}),t.hooks.add("after-tokenize",function(e){t.languages["markup-templating"].tokenizePlaceholders(e,"tt2")})}e.exports=i,i.displayName="tt2",i.aliases=[]},24691(e){"use strict";function t(e){e.languages.turtle={comment:{pattern:/#.*/,greedy:!0},"multiline-string":{pattern:/"""(?:(?:""?)?(?:[^"\\]|\\.))*"""|'''(?:(?:''?)?(?:[^'\\]|\\.))*'''/,greedy:!0,alias:"string",inside:{comment:/#.*/}},string:{pattern:/"(?:[^\\"\r\n]|\\.)*"|'(?:[^\\'\r\n]|\\.)*'/,greedy:!0},url:{pattern:/<(?:[^\x00-\x20<>"{}|^`\\]|\\(?:u[\da-fA-F]{4}|U[\da-fA-F]{8}))*>/,greedy:!0,inside:{punctuation:/[<>]/}},function:{pattern:/(?:(?![-.\d\xB7])[-.\w\xB7\xC0-\uFFFD]+)?:(?:(?![-.])(?:[-.:\w\xC0-\uFFFD]|%[\da-f]{2}|\\.)+)?/i,inside:{"local-name":{pattern:/([^:]*:)[\s\S]+/,lookbehind:!0},prefix:{pattern:/[\s\S]+/,inside:{punctuation:/:/}}}},number:/[+-]?\b\d+(?:\.\d*)?(?:e[+-]?\d+)?/i,punctuation:/[{}.,;()[\]]|\^\^/,boolean:/\b(?:true|false)\b/,keyword:[/(?:\ba|@prefix|@base)\b|=/,/\b(?:graph|base|prefix)\b/i],tag:{pattern:/@[a-z]+(?:-[a-z\d]+)*/i,inside:{punctuation:/@/}}},e.languages.trig=e.languages.turtle}e.exports=t,t.displayName="turtle",t.aliases=[]},19892(e){"use strict";function t(e){e.languages.twig={comment:/\{#[\s\S]*?#\}/,tag:{pattern:/\{\{[\s\S]*?\}\}|\{%[\s\S]*?%\}/,inside:{ld:{pattern:/^(?:\{\{-?|\{%-?\s*\w+)/,inside:{punctuation:/^(?:\{\{|\{%)-?/,keyword:/\w+/}},rd:{pattern:/-?(?:%\}|\}\})$/,inside:{punctuation:/.+/}},string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,inside:{punctuation:/^['"]|['"]$/}},keyword:/\b(?:even|if|odd)\b/,boolean:/\b(?:true|false|null)\b/,number:/\b0x[\dA-Fa-f]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][-+]?\d+)?/,operator:[{pattern:/(\s)(?:and|b-and|b-xor|b-or|ends with|in|is|matches|not|or|same as|starts with)(?=\s)/,lookbehind:!0},/[=<>]=?|!=|\*\*?|\/\/?|\?:?|[-+~%|]/],property:/\b[a-zA-Z_]\w*\b/,punctuation:/[()\[\]{}:.,]/}},other:{pattern:/\S(?:[\s\S]*\S)?/,inside:e.languages.markup}}}e.exports=t,t.displayName="twig",t.aliases=[]},4979(e){"use strict";function t(e){var t,n;(t=e).languages.typescript=t.languages.extend("javascript",{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:string|Function|any|number|boolean|Array|symbol|console|Promise|unknown|never)\b/}),t.languages.typescript.keyword.push(/\b(?:abstract|as|declare|implements|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)(?!\s*[^\s_${}*a-zA-Z\xA0-\uFFFF])/),delete t.languages.typescript.parameter,delete(n=t.languages.extend("typescript",{}))["class-name"],t.languages.typescript["class-name"].inside=n,t.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:n}}}}),t.languages.ts=t.languages.typescript}e.exports=t,t.displayName="typescript",t.aliases=["ts"]},23159(e){"use strict";function t(e){var t,n;n=/\b(?:ACT|ACTIFSUB|CARRAY|CASE|CLEARGIF|COA|COA_INT|CONSTANTS|CONTENT|CUR|EDITPANEL|EFFECT|EXT|FILE|FLUIDTEMPLATE|FORM|FRAME|FRAMESET|GIFBUILDER|GMENU|GMENU_FOLDOUT|GMENU_LAYERS|GP|HMENU|HRULER|HTML|IENV|IFSUB|IMAGE|IMGMENU|IMGMENUITEM|IMGTEXT|IMG_RESOURCE|INCLUDE_TYPOSCRIPT|JSMENU|JSMENUITEM|LLL|LOAD_REGISTER|NO|PAGE|RECORDS|RESTORE_REGISTER|TEMPLATE|TEXT|TMENU|TMENUITEM|TMENU_LAYERS|USER|USER_INT|_GIFBUILDER|global|globalString|globalVar)\b/,(t=e).languages.typoscript={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0},{pattern:/(^|[^\\:= \t]|(?:^|[^= \t])[ \t]+)\/\/.*/,lookbehind:!0,greedy:!0},{pattern:/(^|[^"'])#.*/,lookbehind:!0,greedy:!0}],function:[{pattern://,inside:{string:{pattern:/"[^"\r\n]*"|'[^'\r\n]*'/,inside:{keyword:n}},keyword:{pattern:/INCLUDE_TYPOSCRIPT/}}},{pattern:/@import\s*(?:"[^"\r\n]*"|'[^'\r\n]*')/,inside:{string:/"[^"\r\n]*"|'[^'\r\n]*'/}}],string:{pattern:/^([^=]*=[< ]?)(?:(?!\]\n).)*/,lookbehind:!0,inside:{function:/\{\$.*\}/,keyword:n,number:/^[0-9]+$/,punctuation:/[,|:]/}},keyword:n,number:{pattern:/\b[0-9]+\s*[.{=]/,inside:{operator:/[.{=]/}},tag:{pattern:/\.?[-\w\\]+\.?/,inside:{punctuation:/\./}},punctuation:/[{}[\];(),.:|]/,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/},t.languages.tsconfig=t.languages.typoscript}e.exports=t,t.displayName="typoscript",t.aliases=["tsconfig"]},34966(e){"use strict";function t(e){e.languages.unrealscript={comment:/\/\/.*|\/\*[\s\S]*?\*\//,string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},category:{pattern:/(\b(?:(?:autoexpand|hide|show)categories|var)\s*\()[^()]+(?=\))/,lookbehind:!0,greedy:!0,alias:"property"},metadata:{pattern:/(\w\s*)<\s*\w+\s*=[^<>|=\r\n]+(?:\|\s*\w+\s*=[^<>|=\r\n]+)*>/,lookbehind:!0,greedy:!0,inside:{property:/\b\w+(?=\s*=)/,operator:/=/,punctuation:/[<>|]/}},macro:{pattern:/`\w+/,alias:"property"},"class-name":{pattern:/(\b(?:class|enum|extends|interface|state(?:\(\))?|struct|within)\s+)\w+/,lookbehind:!0},keyword:/\b(?:abstract|actor|array|auto|autoexpandcategories|bool|break|byte|case|class|classgroup|client|coerce|collapsecategories|config|const|continue|default|defaultproperties|delegate|dependson|deprecated|do|dontcollapsecategories|editconst|editinlinenew|else|enum|event|exec|export|extends|final|float|for|forcescriptorder|foreach|function|goto|guid|hidecategories|hidedropdown|if|ignores|implements|inherits|input|int|interface|iterator|latent|local|material|name|native|nativereplication|noexport|nontransient|noteditinlinenew|notplaceable|operator|optional|out|pawn|perobjectconfig|perobjectlocalized|placeable|postoperator|preoperator|private|protected|reliable|replication|return|server|showcategories|simulated|singular|state|static|string|struct|structdefault|structdefaultproperties|switch|texture|transient|travel|unreliable|until|var|vector|while|within)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,boolean:/\b(?:false|true)\b/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/>>|<<|--|\+\+|\*\*|[-+*/~!=<>$@]=?|&&?|\|\|?|\^\^?|[?:%]|\b(?:Cross|Dot|ClockwiseFrom)\b/,punctuation:/[()[\]{};,.]/},e.languages.uc=e.languages.uscript=e.languages.unrealscript}e.exports=t,t.displayName="unrealscript",t.aliases=["uc","uscript"]},38521(e){"use strict";function t(e){e.languages.uri={scheme:{pattern:/^[a-z][a-z0-9+.-]*:/im,greedy:!0,inside:{"scheme-delimiter":/:$/}},fragment:{pattern:/#[\w\-.~!$&'()*+,;=%:@/?]*/,inside:{"fragment-delimiter":/^#/}},query:{pattern:/\?[\w\-.~!$&'()*+,;=%:@/?]*/,inside:{"query-delimiter":{pattern:/^\?/,greedy:!0},"pair-delimiter":/[&;]/,pair:{pattern:/^[^=][\s\S]*/,inside:{key:/^[^=]+/,value:{pattern:/(^=)[\s\S]+/,lookbehind:!0}}}}},authority:{pattern:RegExp(/^\/\//.source+/(?:[\w\-.~!$&'()*+,;=%:]*@)?/.source+("(?:"+/\[(?:[0-9a-fA-F:.]{2,48}|v[0-9a-fA-F]+\.[\w\-.~!$&'()*+,;=]+)\]/.source+"|")+/[\w\-.~!$&'()*+,;=%]*/.source+")"+/(?::\d*)?/.source,"m"),inside:{"authority-delimiter":/^\/\//,"user-info-segment":{pattern:/^[\w\-.~!$&'()*+,;=%:]*@/,inside:{"user-info-delimiter":/@$/,"user-info":/^[\w\-.~!$&'()*+,;=%:]+/}},"port-segment":{pattern:/:\d*$/,inside:{"port-delimiter":/^:/,port:/^\d+/}},host:{pattern:/[\s\S]+/,inside:{"ip-literal":{pattern:/^\[[\s\S]+\]$/,inside:{"ip-literal-delimiter":/^\[|\]$/,"ipv-future":/^v[\s\S]+/,"ipv6-address":/^[\s\S]+/}},"ipv4-address":/^(?:(?:[03-9]\d?|[12]\d{0,2})\.){3}(?:[03-9]\d?|[12]{0,2})$/}}}},path:{pattern:/^[\w\-.~!$&'()*+,;=%:@/]+/m,inside:{"path-separator":/\//}}},e.languages.url=e.languages.uri}e.exports=t,t.displayName="uri",t.aliases=["url"]},7255(e){"use strict";function t(e){var t,n;n={pattern:/[\s\S]+/,inside:null},(t=e).languages.v=t.languages.extend("clike",{string:[{pattern:/`(?:\\`|\\?[^`]{1,2})`/,alias:"rune"},{pattern:/r?(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,alias:"quoted-string",greedy:!0,inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$(?:\{[^{}]*\}|\w+(?:\.\w+(?:\([^\(\)]*\))?|\[[^\[\]]+\])*)/,lookbehind:!0,inside:{"interpolation-variable":{pattern:/^\$\w[\s\S]*$/,alias:"variable"},"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},"interpolation-expression":n}}}}],"class-name":{pattern:/(\b(?:enum|interface|struct|type)\s+)(?:C\.)?\w+/,lookbehind:!0},keyword:/(?:\b(?:as|asm|assert|atomic|break|chan|const|continue|defer|else|embed|enum|fn|for|__global|go(?:to)?|if|import|in|interface|is|lock|match|module|mut|none|or|pub|return|rlock|select|shared|sizeof|static|struct|type(?:of)?|union|unsafe)|\$(?:if|else|for)|#(?:include|flag))\b/,number:/\b(?:0x[a-f\d]+(?:_[a-f\d]+)*|0b[01]+(?:_[01]+)*|0o[0-7]+(?:_[0-7]+)*|\d+(?:_\d+)*(?:\.\d+(?:_\d+)*)?)\b/i,operator:/~|\?|[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\.?/,builtin:/\b(?:any(?:_int|_float)?|bool|byte(?:ptr)?|charptr|f(?:32|64)|i(?:8|16|nt|64|128)|rune|size_t|string|u(?:16|32|64|128)|voidptr)\b/}),n.inside=t.languages.v,t.languages.insertBefore("v","operator",{attribute:{pattern:/(^[\t ]*)\[(?:deprecated|unsafe_fn|typedef|live|inline|flag|ref_only|windows_stdcall|direct_array_access)\]/m,lookbehind:!0,alias:"annotation",inside:{punctuation:/[\[\]]/,keyword:/\w+/}},generic:{pattern:/<\w+>(?=\s*[\)\{])/,inside:{punctuation:/[<>]/,"class-name":/\w+/}}}),t.languages.insertBefore("v","function",{"generic-function":{pattern:/\b\w+\s*<\w+>(?=\()/,inside:{function:/^\w+/,generic:{pattern:/<\w+>/,inside:t.languages.v.generic.inside}}}})}e.exports=t,t.displayName="v",t.aliases=[]},28173(e){"use strict";function t(e){e.languages.vala=e.languages.extend("clike",{"class-name":[{pattern:/\b[A-Z]\w*(?:\.\w+)*\b(?=(?:\?\s+|\*?\s+\*?)\w)/,inside:{punctuation:/\./}},{pattern:/(\[)[A-Z]\w*(?:\.\w+)*\b/,lookbehind:!0,inside:{punctuation:/\./}},{pattern:/(\b(?:class|interface)\s+[A-Z]\w*(?:\.\w+)*\s*:\s*)[A-Z]\w*(?:\.\w+)*\b/,lookbehind:!0,inside:{punctuation:/\./}},{pattern:/((?:\b(?:class|interface|new|struct|enum)\s+)|(?:catch\s+\())[A-Z]\w*(?:\.\w+)*\b/,lookbehind:!0,inside:{punctuation:/\./}}],keyword:/\b(?:bool|char|double|float|null|size_t|ssize_t|string|unichar|void|int|int8|int16|int32|int64|long|short|uchar|uint|uint8|uint16|uint32|uint64|ulong|ushort|class|delegate|enum|errordomain|interface|namespace|struct|break|continue|do|for|foreach|return|while|else|if|switch|assert|case|default|abstract|const|dynamic|ensures|extern|inline|internal|override|private|protected|public|requires|signal|static|virtual|volatile|weak|async|owned|unowned|try|catch|finally|throw|as|base|construct|delete|get|in|is|lock|new|out|params|ref|sizeof|set|this|throws|typeof|using|value|var|yield)\b/i,function:/\b\w+(?=\s*\()/,number:/(?:\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)(?:f|u?l?)?/i,operator:/\+\+|--|&&|\|\||<<=?|>>=?|=>|->|~|[+\-*\/%&^|=!<>]=?|\?\??|\.\.\./,punctuation:/[{}[\];(),.:]/,constant:/\b[A-Z0-9_]+\b/}),e.languages.insertBefore("vala","string",{"raw-string":{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string"},"template-string":{pattern:/@"[\s\S]*?"/,greedy:!0,inside:{interpolation:{pattern:/\$(?:\([^)]*\)|[a-zA-Z]\w*)/,inside:{delimiter:{pattern:/^\$\(?|\)$/,alias:"punctuation"},rest:e.languages.vala}},string:/[\s\S]+/}}}),e.languages.insertBefore("vala","keyword",{regex:{pattern:/\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[imsx]{0,4}(?=\s*(?:$|[\r\n,.;})\]]))/,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:e.languages.regex},"regex-delimiter":/^\//,"regex-flags":/^[a-z]+$/}}})}e.exports=t,t.displayName="vala",t.aliases=[]},53813(e,t,n){"use strict";var r=n(46241);function i(e){e.register(r),e.languages.vbnet=e.languages.extend("basic",{comment:[{pattern:/(?:!|REM\b).+/i,inside:{keyword:/^REM/i}},{pattern:/(^|[^\\:])'.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(^|[^"])"(?:""|[^"])*"(?!")/i,lookbehind:!0,greedy:!0},keyword:/(?:\b(?:ADDHANDLER|ADDRESSOF|ALIAS|AND|ANDALSO|AS|BEEP|BLOAD|BOOLEAN|BSAVE|BYREF|BYTE|BYVAL|CALL(?: ABSOLUTE)?|CASE|CATCH|CBOOL|CBYTE|CCHAR|CDATE|CDEC|CDBL|CHAIN|CHAR|CHDIR|CINT|CLASS|CLEAR|CLNG|CLOSE|CLS|COBJ|COM|COMMON|CONST|CONTINUE|CSBYTE|CSHORT|CSNG|CSTR|CTYPE|CUINT|CULNG|CUSHORT|DATA|DATE|DECIMAL|DECLARE|DEFAULT|DEF(?: FN| SEG|DBL|INT|LNG|SNG|STR)|DELEGATE|DIM|DIRECTCAST|DO|DOUBLE|ELSE|ELSEIF|END|ENUM|ENVIRON|ERASE|ERROR|EVENT|EXIT|FALSE|FIELD|FILES|FINALLY|FOR(?: EACH)?|FRIEND|FUNCTION|GET|GETTYPE|GETXMLNAMESPACE|GLOBAL|GOSUB|GOTO|HANDLES|IF|IMPLEMENTS|IMPORTS|IN|INHERITS|INPUT|INTEGER|INTERFACE|IOCTL|IS|ISNOT|KEY|KILL|LINE INPUT|LET|LIB|LIKE|LOCATE|LOCK|LONG|LOOP|LSET|ME|MKDIR|MOD|MODULE|MUSTINHERIT|MUSTOVERRIDE|MYBASE|MYCLASS|NAME|NAMESPACE|NARROWING|NEW|NEXT|NOT|NOTHING|NOTINHERITABLE|NOTOVERRIDABLE|OBJECT|OF|OFF|ON(?: COM| ERROR| KEY| TIMER)?|OPERATOR|OPEN|OPTION(?: BASE)?|OPTIONAL|OR|ORELSE|OUT|OVERLOADS|OVERRIDABLE|OVERRIDES|PARAMARRAY|PARTIAL|POKE|PRIVATE|PROPERTY|PROTECTED|PUBLIC|PUT|RAISEEVENT|READ|READONLY|REDIM|REM|REMOVEHANDLER|RESTORE|RESUME|RETURN|RMDIR|RSET|RUN|SBYTE|SELECT(?: CASE)?|SET|SHADOWS|SHARED|SHORT|SINGLE|SHELL|SLEEP|STATIC|STEP|STOP|STRING|STRUCTURE|SUB|SYNCLOCK|SWAP|SYSTEM|THEN|THROW|TIMER|TO|TROFF|TRON|TRUE|TRY|TRYCAST|TYPE|TYPEOF|UINTEGER|ULONG|UNLOCK|UNTIL|USHORT|USING|VIEW PRINT|WAIT|WEND|WHEN|WHILE|WIDENING|WITH|WITHEVENTS|WRITE|WRITEONLY|XOR)|\B(?:#CONST|#ELSE|#ELSEIF|#END|#IF))(?:\$|\b)/i,punctuation:/[,;:(){}]/})}e.exports=i,i.displayName="vbnet",i.aliases=[]},46891(e){"use strict";function t(e){var t,n;(t=e).languages.velocity=t.languages.extend("markup",{}),(n={variable:{pattern:/(^|[^\\](?:\\\\)*)\$!?(?:[a-z][\w-]*(?:\([^)]*\))?(?:\.[a-z][\w-]*(?:\([^)]*\))?|\[[^\]]+\])*|\{[^}]+\})/i,lookbehind:!0,inside:{}},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},number:/\b\d+\b/,boolean:/\b(?:true|false)\b/,operator:/[=!<>]=?|[+*/%-]|&&|\|\||\.\.|\b(?:eq|g[et]|l[et]|n(?:e|ot))\b/,punctuation:/[(){}[\]:,.]/}).variable.inside={string:n.string,function:{pattern:/([^\w-])[a-z][\w-]*(?=\()/,lookbehind:!0},number:n.number,boolean:n.boolean,punctuation:n.punctuation},t.languages.insertBefore("velocity","comment",{unparsed:{pattern:/(^|[^\\])#\[\[[\s\S]*?\]\]#/,lookbehind:!0,greedy:!0,inside:{punctuation:/^#\[\[|\]\]#$/}},"velocity-comment":[{pattern:/(^|[^\\])#\*[\s\S]*?\*#/,lookbehind:!0,greedy:!0,alias:"comment"},{pattern:/(^|[^\\])##.*/,lookbehind:!0,greedy:!0,alias:"comment"}],directive:{pattern:/(^|[^\\](?:\\\\)*)#@?(?:[a-z][\w-]*|\{[a-z][\w-]*\})(?:\s*\((?:[^()]|\([^()]*\))*\))?/i,lookbehind:!0,inside:{keyword:{pattern:/^#@?(?:[a-z][\w-]*|\{[a-z][\w-]*\})|\bin\b/,inside:{punctuation:/[{}]/}},rest:n}},variable:n.variable}),t.languages.velocity.tag.inside["attr-value"].inside.rest=t.languages.velocity}e.exports=t,t.displayName="velocity",t.aliases=[]},91824(e){"use strict";function t(e){e.languages.verilog={comment:/\/\/.*|\/\*[\s\S]*?\*\//,string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},property:/\B\$\w+\b/,constant:/\B`\w+\b/,function:/\b\w+(?=\()/,keyword:/\b(?:alias|and|assert|assign|assume|automatic|before|begin|bind|bins|binsof|bit|break|buf|bufif0|bufif1|byte|class|case|casex|casez|cell|chandle|clocking|cmos|config|const|constraint|context|continue|cover|covergroup|coverpoint|cross|deassign|default|defparam|design|disable|dist|do|edge|else|end|endcase|endclass|endclocking|endconfig|endfunction|endgenerate|endgroup|endinterface|endmodule|endpackage|endprimitive|endprogram|endproperty|endspecify|endsequence|endtable|endtask|enum|event|expect|export|extends|extern|final|first_match|for|force|foreach|forever|fork|forkjoin|function|generate|genvar|highz0|highz1|if|iff|ifnone|ignore_bins|illegal_bins|import|incdir|include|initial|inout|input|inside|instance|int|integer|interface|intersect|join|join_any|join_none|large|liblist|library|local|localparam|logic|longint|macromodule|matches|medium|modport|module|nand|negedge|new|nmos|nor|noshowcancelled|not|notif0|notif1|null|or|output|package|packed|parameter|pmos|posedge|primitive|priority|program|property|protected|pull0|pull1|pulldown|pullup|pulsestyle_onevent|pulsestyle_ondetect|pure|rand|randc|randcase|randsequence|rcmos|real|realtime|ref|reg|release|repeat|return|rnmos|rpmos|rtran|rtranif0|rtranif1|scalared|sequence|shortint|shortreal|showcancelled|signed|small|solve|specify|specparam|static|string|strong0|strong1|struct|super|supply0|supply1|table|tagged|task|this|throughout|time|timeprecision|timeunit|tran|tranif0|tranif1|tri|tri0|tri1|triand|trior|trireg|type|typedef|union|unique|unsigned|use|uwire|var|vectored|virtual|void|wait|wait_order|wand|weak0|weak1|while|wildcard|wire|with|within|wor|xnor|xor)\b/,important:/\b(?:always_latch|always_comb|always_ff|always)\b ?@?/,number:/\B##?\d+|(?:\b\d+)?'[odbh] ?[\da-fzx_?]+|\b(?:\d*[._])?\d+(?:e[-+]?\d+)?/i,operator:/[-+{}^~%*\/?=!<>&|]+/,punctuation:/[[\];(),.:]/}}e.exports=t,t.displayName="verilog",t.aliases=[]},9447(e){"use strict";function t(e){e.languages.vhdl={comment:/--.+/,"vhdl-vectors":{pattern:/\b[oxb]"[\da-f_]+"|"[01uxzwlh-]+"/i,alias:"number"},"quoted-function":{pattern:/"\S+?"(?=\()/,alias:"function"},string:/"(?:[^\\"\r\n]|\\(?:\r\n|[\s\S]))*"/,constant:/\b(?:use|library)\b/i,keyword:/\b(?:'active|'ascending|'base|'delayed|'driving|'driving_value|'event|'high|'image|'instance_name|'last_active|'last_event|'last_value|'left|'leftof|'length|'low|'path_name|'pos|'pred|'quiet|'range|'reverse_range|'right|'rightof|'simple_name|'stable|'succ|'transaction|'val|'value|access|after|alias|all|architecture|array|assert|attribute|begin|block|body|buffer|bus|case|component|configuration|constant|disconnect|downto|else|elsif|end|entity|exit|file|for|function|generate|generic|group|guarded|if|impure|in|inertial|inout|is|label|library|linkage|literal|loop|map|new|next|null|of|on|open|others|out|package|port|postponed|procedure|process|pure|range|record|register|reject|report|return|select|severity|shared|signal|subtype|then|to|transport|type|unaffected|units|until|use|variable|wait|when|while|with)\b/i,boolean:/\b(?:true|false)\b/i,function:/\w+(?=\()/,number:/'[01uxzwlh-]'|\b(?:\d+#[\da-f_.]+#|\d[\d_.]*)(?:e[-+]?\d+)?/i,operator:/[<>]=?|:=|[-+*/&=]|\b(?:abs|not|mod|rem|sll|srl|sla|sra|rol|ror|and|or|nand|xnor|xor|nor)\b/i,punctuation:/[{}[\];(),.:]/}}e.exports=t,t.displayName="vhdl",t.aliases=[]},53062(e){"use strict";function t(e){e.languages.vim={string:/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\r\n]|'')*'/,comment:/".*/,function:/\b\w+(?=\()/,keyword:/\b(?:ab|abbreviate|abc|abclear|abo|aboveleft|al|all|arga|argadd|argd|argdelete|argdo|arge|argedit|argg|argglobal|argl|arglocal|ar|args|argu|argument|as|ascii|bad|badd|ba|ball|bd|bdelete|be|bel|belowright|bf|bfirst|bl|blast|bm|bmodified|bn|bnext|bN|bNext|bo|botright|bp|bprevious|brea|break|breaka|breakadd|breakd|breakdel|breakl|breaklist|br|brewind|bro|browse|bufdo|b|buffer|buffers|bun|bunload|bw|bwipeout|ca|cabbrev|cabc|cabclear|caddb|caddbuffer|cad|caddexpr|caddf|caddfile|cal|call|cat|catch|cb|cbuffer|cc|ccl|cclose|cd|ce|center|cex|cexpr|cf|cfile|cfir|cfirst|cgetb|cgetbuffer|cgete|cgetexpr|cg|cgetfile|c|change|changes|chd|chdir|che|checkpath|checkt|checktime|cla|clast|cl|clist|clo|close|cmapc|cmapclear|cnew|cnewer|cn|cnext|cN|cNext|cnf|cnfile|cNfcNfile|cnorea|cnoreabbrev|col|colder|colo|colorscheme|comc|comclear|comp|compiler|conf|confirm|con|continue|cope|copen|co|copy|cpf|cpfile|cp|cprevious|cq|cquit|cr|crewind|cuna|cunabbrev|cu|cunmap|cw|cwindow|debugg|debuggreedy|delc|delcommand|d|delete|delf|delfunction|delm|delmarks|diffg|diffget|diffoff|diffpatch|diffpu|diffput|diffsplit|diffthis|diffu|diffupdate|dig|digraphs|di|display|dj|djump|dl|dlist|dr|drop|ds|dsearch|dsp|dsplit|earlier|echoe|echoerr|echom|echomsg|echon|e|edit|el|else|elsei|elseif|em|emenu|endfo|endfor|endf|endfunction|endfun|en|endif|endt|endtry|endw|endwhile|ene|enew|ex|exi|exit|exu|exusage|f|file|files|filetype|fina|finally|fin|find|fini|finish|fir|first|fix|fixdel|fo|fold|foldc|foldclose|folddoc|folddoclosed|foldd|folddoopen|foldo|foldopen|for|fu|fun|function|go|goto|gr|grep|grepa|grepadd|ha|hardcopy|h|help|helpf|helpfind|helpg|helpgrep|helpt|helptags|hid|hide|his|history|ia|iabbrev|iabc|iabclear|if|ij|ijump|il|ilist|imapc|imapclear|in|inorea|inoreabbrev|isearch|isp|isplit|iuna|iunabbrev|iu|iunmap|j|join|ju|jumps|k|keepalt|keepj|keepjumps|kee|keepmarks|laddb|laddbuffer|lad|laddexpr|laddf|laddfile|lan|language|la|last|later|lb|lbuffer|lc|lcd|lch|lchdir|lcl|lclose|let|left|lefta|leftabove|lex|lexpr|lf|lfile|lfir|lfirst|lgetb|lgetbuffer|lgete|lgetexpr|lg|lgetfile|lgr|lgrep|lgrepa|lgrepadd|lh|lhelpgrep|l|list|ll|lla|llast|lli|llist|lmak|lmake|lm|lmap|lmapc|lmapclear|lnew|lnewer|lne|lnext|lN|lNext|lnf|lnfile|lNf|lNfile|ln|lnoremap|lo|loadview|loc|lockmarks|lockv|lockvar|lol|lolder|lop|lopen|lpf|lpfile|lp|lprevious|lr|lrewind|ls|lt|ltag|lu|lunmap|lv|lvimgrep|lvimgrepa|lvimgrepadd|lw|lwindow|mak|make|ma|mark|marks|mat|match|menut|menutranslate|mk|mkexrc|mks|mksession|mksp|mkspell|mkvie|mkview|mkv|mkvimrc|mod|mode|m|move|mzf|mzfile|mz|mzscheme|nbkey|new|n|next|N|Next|nmapc|nmapclear|noh|nohlsearch|norea|noreabbrev|nu|number|nun|nunmap|omapc|omapclear|on|only|o|open|opt|options|ou|ounmap|pc|pclose|ped|pedit|pe|perl|perld|perldo|po|pop|popu|popup|pp|ppop|pre|preserve|prev|previous|p|print|P|Print|profd|profdel|prof|profile|promptf|promptfind|promptr|promptrepl|ps|psearch|pta|ptag|ptf|ptfirst|ptj|ptjump|ptl|ptlast|ptn|ptnext|ptN|ptNext|ptp|ptprevious|ptr|ptrewind|pts|ptselect|pu|put|pw|pwd|pyf|pyfile|py|python|qa|qall|q|quit|quita|quitall|r|read|rec|recover|redi|redir|red|redo|redr|redraw|redraws|redrawstatus|reg|registers|res|resize|ret|retab|retu|return|rew|rewind|ri|right|rightb|rightbelow|rub|ruby|rubyd|rubydo|rubyf|rubyfile|ru|runtime|rv|rviminfo|sal|sall|san|sandbox|sa|sargument|sav|saveas|sba|sball|sbf|sbfirst|sbl|sblast|sbm|sbmodified|sbn|sbnext|sbN|sbNext|sbp|sbprevious|sbr|sbrewind|sb|sbuffer|scripte|scriptencoding|scrip|scriptnames|se|set|setf|setfiletype|setg|setglobal|setl|setlocal|sf|sfind|sfir|sfirst|sh|shell|sign|sil|silent|sim|simalt|sla|slast|sl|sleep|sm|smagic|smap|smapc|smapclear|sme|smenu|sn|snext|sN|sNext|sni|sniff|sno|snomagic|snor|snoremap|snoreme|snoremenu|sor|sort|so|source|spelld|spelldump|spe|spellgood|spelli|spellinfo|spellr|spellrepall|spellu|spellundo|spellw|spellwrong|sp|split|spr|sprevious|sre|srewind|sta|stag|startg|startgreplace|star|startinsert|startr|startreplace|stj|stjump|st|stop|stopi|stopinsert|sts|stselect|sun|sunhide|sunm|sunmap|sus|suspend|sv|sview|syncbind|t|tab|tabc|tabclose|tabd|tabdo|tabe|tabedit|tabf|tabfind|tabfir|tabfirst|tabl|tablast|tabm|tabmove|tabnew|tabn|tabnext|tabN|tabNext|tabo|tabonly|tabp|tabprevious|tabr|tabrewind|tabs|ta|tag|tags|tc|tcl|tcld|tcldo|tclf|tclfile|te|tearoff|tf|tfirst|th|throw|tj|tjump|tl|tlast|tm|tmenu|tn|tnext|tN|tNext|to|topleft|tp|tprevious|tr|trewind|try|ts|tselect|tu|tunmenu|una|unabbreviate|u|undo|undoj|undojoin|undol|undolist|unh|unhide|unlet|unlo|unlockvar|unm|unmap|up|update|verb|verbose|ve|version|vert|vertical|vie|view|vim|vimgrep|vimgrepa|vimgrepadd|vi|visual|viu|viusage|vmapc|vmapclear|vne|vnew|vs|vsplit|vu|vunmap|wa|wall|wh|while|winc|wincmd|windo|winp|winpos|win|winsize|wn|wnext|wN|wNext|wp|wprevious|wq|wqa|wqall|w|write|ws|wsverb|wv|wviminfo|X|xa|xall|x|xit|xm|xmap|xmapc|xmapclear|xme|xmenu|XMLent|XMLns|xn|xnoremap|xnoreme|xnoremenu|xu|xunmap|y|yank)\b/,builtin:/\b(?:autocmd|acd|ai|akm|aleph|allowrevins|altkeymap|ambiwidth|ambw|anti|antialias|arab|arabic|arabicshape|ari|arshape|autochdir|autoindent|autoread|autowrite|autowriteall|aw|awa|background|backspace|backup|backupcopy|backupdir|backupext|backupskip|balloondelay|ballooneval|balloonexpr|bdir|bdlay|beval|bex|bexpr|bg|bh|bin|binary|biosk|bioskey|bk|bkc|bomb|breakat|brk|browsedir|bs|bsdir|bsk|bt|bufhidden|buflisted|buftype|casemap|ccv|cdpath|cedit|cfu|ch|charconvert|ci|cin|cindent|cink|cinkeys|cino|cinoptions|cinw|cinwords|clipboard|cmdheight|cmdwinheight|cmp|cms|columns|com|comments|commentstring|compatible|complete|completefunc|completeopt|consk|conskey|copyindent|cot|cpo|cpoptions|cpt|cscopepathcomp|cscopeprg|cscopequickfix|cscopetag|cscopetagorder|cscopeverbose|cspc|csprg|csqf|cst|csto|csverb|cuc|cul|cursorcolumn|cursorline|cwh|debug|deco|def|define|delcombine|dex|dg|dict|dictionary|diff|diffexpr|diffopt|digraph|dip|dir|directory|dy|ea|ead|eadirection|eb|ed|edcompatible|ef|efm|ei|ek|enc|encoding|endofline|eol|ep|equalalways|equalprg|errorbells|errorfile|errorformat|esckeys|et|eventignore|expandtab|exrc|fcl|fcs|fdc|fde|fdi|fdl|fdls|fdm|fdn|fdo|fdt|fen|fenc|fencs|fex|ff|ffs|fileencoding|fileencodings|fileformat|fileformats|fillchars|fk|fkmap|flp|fml|fmr|foldcolumn|foldenable|foldexpr|foldignore|foldlevel|foldlevelstart|foldmarker|foldmethod|foldminlines|foldnestmax|foldtext|formatexpr|formatlistpat|formatoptions|formatprg|fp|fs|fsync|ft|gcr|gd|gdefault|gfm|gfn|gfs|gfw|ghr|gp|grepformat|grepprg|gtl|gtt|guicursor|guifont|guifontset|guifontwide|guiheadroom|guioptions|guipty|guitablabel|guitabtooltip|helpfile|helpheight|helplang|hf|hh|hi|hidden|highlight|hk|hkmap|hkmapp|hkp|hl|hlg|hls|hlsearch|ic|icon|iconstring|ignorecase|im|imactivatekey|imak|imc|imcmdline|imd|imdisable|imi|iminsert|ims|imsearch|inc|include|includeexpr|incsearch|inde|indentexpr|indentkeys|indk|inex|inf|infercase|insertmode|isf|isfname|isi|isident|isk|iskeyword|isprint|joinspaces|js|key|keymap|keymodel|keywordprg|km|kmp|kp|langmap|langmenu|laststatus|lazyredraw|lbr|lcs|linebreak|lines|linespace|lisp|lispwords|listchars|loadplugins|lpl|lsp|lz|macatsui|magic|makeef|makeprg|matchpairs|matchtime|maxcombine|maxfuncdepth|maxmapdepth|maxmem|maxmempattern|maxmemtot|mco|mef|menuitems|mfd|mh|mis|mkspellmem|ml|mls|mm|mmd|mmp|mmt|modeline|modelines|modifiable|modified|more|mouse|mousef|mousefocus|mousehide|mousem|mousemodel|mouses|mouseshape|mouset|mousetime|mp|mps|msm|mzq|mzquantum|nf|nrformats|numberwidth|nuw|odev|oft|ofu|omnifunc|opendevice|operatorfunc|opfunc|osfiletype|pa|para|paragraphs|paste|pastetoggle|patchexpr|patchmode|path|pdev|penc|pex|pexpr|pfn|ph|pheader|pi|pm|pmbcs|pmbfn|popt|preserveindent|previewheight|previewwindow|printdevice|printencoding|printexpr|printfont|printheader|printmbcharset|printmbfont|printoptions|prompt|pt|pumheight|pvh|pvw|qe|quoteescape|readonly|remap|report|restorescreen|revins|rightleft|rightleftcmd|rl|rlc|ro|rs|rtp|ruf|ruler|rulerformat|runtimepath|sbo|sc|scb|scr|scroll|scrollbind|scrolljump|scrolloff|scrollopt|scs|sect|sections|secure|sel|selection|selectmode|sessionoptions|sft|shcf|shellcmdflag|shellpipe|shellquote|shellredir|shellslash|shelltemp|shelltype|shellxquote|shiftround|shiftwidth|shm|shortmess|shortname|showbreak|showcmd|showfulltag|showmatch|showmode|showtabline|shq|si|sidescroll|sidescrolloff|siso|sj|slm|smartcase|smartindent|smarttab|smc|smd|softtabstop|sol|spc|spell|spellcapcheck|spellfile|spelllang|spellsuggest|spf|spl|splitbelow|splitright|sps|sr|srr|ss|ssl|ssop|stal|startofline|statusline|stl|stmp|su|sua|suffixes|suffixesadd|sw|swapfile|swapsync|swb|swf|switchbuf|sws|sxq|syn|synmaxcol|syntax|tabline|tabpagemax|tabstop|tagbsearch|taglength|tagrelative|tagstack|tal|tb|tbi|tbidi|tbis|tbs|tenc|term|termbidi|termencoding|terse|textauto|textmode|textwidth|tgst|thesaurus|tildeop|timeout|timeoutlen|title|titlelen|titleold|titlestring|toolbar|toolbariconsize|top|tpm|tsl|tsr|ttimeout|ttimeoutlen|ttm|tty|ttybuiltin|ttyfast|ttym|ttymouse|ttyscroll|ttytype|tw|tx|uc|ul|undolevels|updatecount|updatetime|ut|vb|vbs|vdir|verbosefile|vfile|viewdir|viewoptions|viminfo|virtualedit|visualbell|vop|wak|warn|wb|wc|wcm|wd|weirdinvert|wfh|wfw|whichwrap|wi|wig|wildchar|wildcharm|wildignore|wildmenu|wildmode|wildoptions|wim|winaltkeys|window|winfixheight|winfixwidth|winheight|winminheight|winminwidth|winwidth|wiv|wiw|wm|wmh|wmnu|wmw|wop|wrap|wrapmargin|wrapscan|writeany|writebackup|writedelay|ww|noacd|noai|noakm|noallowrevins|noaltkeymap|noanti|noantialias|noar|noarab|noarabic|noarabicshape|noari|noarshape|noautochdir|noautoindent|noautoread|noautowrite|noautowriteall|noaw|noawa|nobackup|noballooneval|nobeval|nobin|nobinary|nobiosk|nobioskey|nobk|nobl|nobomb|nobuflisted|nocf|noci|nocin|nocindent|nocompatible|noconfirm|noconsk|noconskey|nocopyindent|nocp|nocscopetag|nocscopeverbose|nocst|nocsverb|nocuc|nocul|nocursorcolumn|nocursorline|nodeco|nodelcombine|nodg|nodiff|nodigraph|nodisable|noea|noeb|noed|noedcompatible|noek|noendofline|noeol|noequalalways|noerrorbells|noesckeys|noet|noex|noexpandtab|noexrc|nofen|nofk|nofkmap|nofoldenable|nogd|nogdefault|noguipty|nohid|nohidden|nohk|nohkmap|nohkmapp|nohkp|nohls|noic|noicon|noignorecase|noim|noimc|noimcmdline|noimd|noincsearch|noinf|noinfercase|noinsertmode|nois|nojoinspaces|nojs|nolazyredraw|nolbr|nolinebreak|nolisp|nolist|noloadplugins|nolpl|nolz|noma|nomacatsui|nomagic|nomh|noml|nomod|nomodeline|nomodifiable|nomodified|nomore|nomousef|nomousefocus|nomousehide|nonu|nonumber|noodev|noopendevice|nopaste|nopi|nopreserveindent|nopreviewwindow|noprompt|nopvw|noreadonly|noremap|norestorescreen|norevins|nori|norightleft|norightleftcmd|norl|norlc|noro|nors|noru|noruler|nosb|nosc|noscb|noscrollbind|noscs|nosecure|nosft|noshellslash|noshelltemp|noshiftround|noshortname|noshowcmd|noshowfulltag|noshowmatch|noshowmode|nosi|nosm|nosmartcase|nosmartindent|nosmarttab|nosmd|nosn|nosol|nospell|nosplitbelow|nosplitright|nospr|nosr|nossl|nosta|nostartofline|nostmp|noswapfile|noswf|nota|notagbsearch|notagrelative|notagstack|notbi|notbidi|notbs|notermbidi|noterse|notextauto|notextmode|notf|notgst|notildeop|notimeout|notitle|noto|notop|notr|nottimeout|nottybuiltin|nottyfast|notx|novb|novisualbell|nowa|nowarn|nowb|noweirdinvert|nowfh|nowfw|nowildmenu|nowinfixheight|nowinfixwidth|nowiv|nowmnu|nowrap|nowrapscan|nowrite|nowriteany|nowritebackup|nows|invacd|invai|invakm|invallowrevins|invaltkeymap|invanti|invantialias|invar|invarab|invarabic|invarabicshape|invari|invarshape|invautochdir|invautoindent|invautoread|invautowrite|invautowriteall|invaw|invawa|invbackup|invballooneval|invbeval|invbin|invbinary|invbiosk|invbioskey|invbk|invbl|invbomb|invbuflisted|invcf|invci|invcin|invcindent|invcompatible|invconfirm|invconsk|invconskey|invcopyindent|invcp|invcscopetag|invcscopeverbose|invcst|invcsverb|invcuc|invcul|invcursorcolumn|invcursorline|invdeco|invdelcombine|invdg|invdiff|invdigraph|invdisable|invea|inveb|inved|invedcompatible|invek|invendofline|inveol|invequalalways|inverrorbells|invesckeys|invet|invex|invexpandtab|invexrc|invfen|invfk|invfkmap|invfoldenable|invgd|invgdefault|invguipty|invhid|invhidden|invhk|invhkmap|invhkmapp|invhkp|invhls|invhlsearch|invic|invicon|invignorecase|invim|invimc|invimcmdline|invimd|invincsearch|invinf|invinfercase|invinsertmode|invis|invjoinspaces|invjs|invlazyredraw|invlbr|invlinebreak|invlisp|invlist|invloadplugins|invlpl|invlz|invma|invmacatsui|invmagic|invmh|invml|invmod|invmodeline|invmodifiable|invmodified|invmore|invmousef|invmousefocus|invmousehide|invnu|invnumber|invodev|invopendevice|invpaste|invpi|invpreserveindent|invpreviewwindow|invprompt|invpvw|invreadonly|invremap|invrestorescreen|invrevins|invri|invrightleft|invrightleftcmd|invrl|invrlc|invro|invrs|invru|invruler|invsb|invsc|invscb|invscrollbind|invscs|invsecure|invsft|invshellslash|invshelltemp|invshiftround|invshortname|invshowcmd|invshowfulltag|invshowmatch|invshowmode|invsi|invsm|invsmartcase|invsmartindent|invsmarttab|invsmd|invsn|invsol|invspell|invsplitbelow|invsplitright|invspr|invsr|invssl|invsta|invstartofline|invstmp|invswapfile|invswf|invta|invtagbsearch|invtagrelative|invtagstack|invtbi|invtbidi|invtbs|invtermbidi|invterse|invtextauto|invtextmode|invtf|invtgst|invtildeop|invtimeout|invtitle|invto|invtop|invtr|invttimeout|invttybuiltin|invttyfast|invtx|invvb|invvisualbell|invwa|invwarn|invwb|invweirdinvert|invwfh|invwfw|invwildmenu|invwinfixheight|invwinfixwidth|invwiv|invwmnu|invwrap|invwrapscan|invwrite|invwriteany|invwritebackup|invws|t_AB|t_AF|t_al|t_AL|t_bc|t_cd|t_ce|t_Ce|t_cl|t_cm|t_Co|t_cs|t_Cs|t_CS|t_CV|t_da|t_db|t_dl|t_DL|t_EI|t_F1|t_F2|t_F3|t_F4|t_F5|t_F6|t_F7|t_F8|t_F9|t_fs|t_IE|t_IS|t_k1|t_K1|t_k2|t_k3|t_K3|t_k4|t_K4|t_k5|t_K5|t_k6|t_K6|t_k7|t_K7|t_k8|t_K8|t_k9|t_K9|t_KA|t_kb|t_kB|t_KB|t_KC|t_kd|t_kD|t_KD|t_ke|t_KE|t_KF|t_KG|t_kh|t_KH|t_kI|t_KI|t_KJ|t_KK|t_kl|t_KL|t_kN|t_kP|t_kr|t_ks|t_ku|t_le|t_mb|t_md|t_me|t_mr|t_ms|t_nd|t_op|t_RI|t_RV|t_Sb|t_se|t_Sf|t_SI|t_so|t_sr|t_te|t_ti|t_ts|t_ue|t_us|t_ut|t_vb|t_ve|t_vi|t_vs|t_WP|t_WS|t_xs|t_ZH|t_ZR)\b/,number:/\b(?:0x[\da-f]+|\d+(?:\.\d+)?)\b/i,operator:/\|\||&&|[-+.]=?|[=!](?:[=~][#?]?)?|[<>]=?[#?]?|[*\/%?]|\b(?:is(?:not)?)\b/,punctuation:/[{}[\](),;:]/}}e.exports=t,t.displayName="vim",t.aliases=[]},46215(e){"use strict";function t(e){e.languages["visual-basic"]={comment:{pattern:/(?:['‘’]|REM\b)(?:[^\r\n_]|_(?:\r\n?|\n)?)*/i,inside:{keyword:/^REM/i}},directive:{pattern:/#(?:Const|Else|ElseIf|End|ExternalChecksum|ExternalSource|If|Region)(?:[^\S\r\n]_[^\S\r\n]*(?:\r\n?|\n)|.)+/i,alias:"comment",greedy:!0},string:{pattern:/\$?["“”](?:["“”]{2}|[^"“”])*["“”]C?/i,greedy:!0},date:{pattern:/#[^\S\r\n]*(?:\d+([/-])\d+\1\d+(?:[^\S\r\n]+(?:\d+[^\S\r\n]*(?:AM|PM)|\d+:\d+(?::\d+)?(?:[^\S\r\n]*(?:AM|PM))?))?|\d+[^\S\r\n]*(?:AM|PM)|\d+:\d+(?::\d+)?(?:[^\S\r\n]*(?:AM|PM))?)[^\S\r\n]*#/i,alias:"builtin"},number:/(?:(?:\b\d+(?:\.\d+)?|\.\d+)(?:E[+-]?\d+)?|&[HO][\dA-F]+)(?:U?[ILS]|[FRD])?/i,boolean:/\b(?:True|False|Nothing)\b/i,keyword:/\b(?:AddHandler|AddressOf|Alias|And(?:Also)?|As|Boolean|ByRef|Byte|ByVal|Call|Case|Catch|C(?:Bool|Byte|Char|Date|Dbl|Dec|Int|Lng|Obj|SByte|Short|Sng|Str|Type|UInt|ULng|UShort)|Char|Class|Const|Continue|Currency|Date|Decimal|Declare|Default|Delegate|Dim|DirectCast|Do|Double|Each|Else(?:If)?|End(?:If)?|Enum|Erase|Error|Event|Exit|Finally|For|Friend|Function|Get(?:Type|XMLNamespace)?|Global|GoSub|GoTo|Handles|If|Implements|Imports|In|Inherits|Integer|Interface|Is|IsNot|Let|Lib|Like|Long|Loop|Me|Mod|Module|Must(?:Inherit|Override)|My(?:Base|Class)|Namespace|Narrowing|New|Next|Not(?:Inheritable|Overridable)?|Object|Of|On|Operator|Option(?:al)?|Or(?:Else)?|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|Try|TryCast|Type|TypeOf|U(?:Integer|Long|Short)|Using|Variant|Wend|When|While|Widening|With(?:Events)?|WriteOnly|Until|Xor)\b/i,operator:[/[+\-*/\\^<=>&#@$%!]/,{pattern:/([^\S\r\n])_(?=[^\S\r\n]*[\r\n])/,lookbehind:!0}],punctuation:/[{}().,:?]/},e.languages.vb=e.languages["visual-basic"],e.languages.vba=e.languages["visual-basic"]}e.exports=t,t.displayName="visualBasic",t.aliases=[]},10784(e){"use strict";function t(e){e.languages.warpscript={comment:/#.*|\/\/.*|\/\*[\s\S]*?\*\//,string:{pattern:/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'|<'(?:[^\\']|'(?!>)|\\.)*'>/,greedy:!0},variable:/\$\S+/,macro:{pattern:/@\S+/,alias:"property"},keyword:/\b(?:BREAK|CHECKMACRO|CONTINUE|CUDF|DEFINED|DEFINEDMACRO|EVAL|FAIL|FOR|FOREACH|FORSTEP|IFT|IFTE|MSGFAIL|NRETURN|RETHROW|RETURN|SWITCH|TRY|UDF|UNTIL|WHILE)\b/,number:/[+-]?\b(?:NaN|Infinity|\d+(?:\.\d*)?(?:[Ee][+-]?\d+)?|0x[\da-fA-F]+|0b[01]+)\b/,boolean:/\b(?:false|true|F|T)\b/,punctuation:/<%|%>|[{}[\]()]/,operator:/==|&&?|\|\|?|\*\*?|>>>?|<<|[<>!~]=?|[-/%^]|\+!?|\b(?:AND|NOT|OR)\b/}}e.exports=t,t.displayName="warpscript",t.aliases=[]},17684(e){"use strict";function t(e){e.languages.wasm={comment:[/\(;[\s\S]*?;\)/,{pattern:/;;.*/,greedy:!0}],string:{pattern:/"(?:\\[\s\S]|[^"\\])*"/,greedy:!0},keyword:[{pattern:/\b(?:align|offset)=/,inside:{operator:/=/}},{pattern:/\b(?:(?:f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|nearest|neg?|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|store(?:8|16|32)?|sqrt|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))?|memory\.(?:grow|size))\b/,inside:{punctuation:/\./}},/\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\b/],variable:/\$[\w!#$%&'*+\-./:<=>?@\\^`|~]+/i,number:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/,punctuation:/[()]/}}e.exports=t,t.displayName="wasm",t.aliases=[]},18191(e){"use strict";function t(e){e.languages.wiki=e.languages.extend("markup",{"block-comment":{pattern:/(^|[^\\])\/\*[\s\S]*?\*\//,lookbehind:!0,alias:"comment"},heading:{pattern:/^(=+)[^=\r\n].*?\1/m,inside:{punctuation:/^=+|=+$/,important:/.+/}},emphasis:{pattern:/('{2,5}).+?\1/,inside:{"bold-italic":{pattern:/(''''').+?(?=\1)/,lookbehind:!0,alias:["bold","italic"]},bold:{pattern:/(''')[^'](?:.*?[^'])?(?=\1)/,lookbehind:!0},italic:{pattern:/('')[^'](?:.*?[^'])?(?=\1)/,lookbehind:!0},punctuation:/^''+|''+$/}},hr:{pattern:/^-{4,}/m,alias:"punctuation"},url:[/ISBN +(?:97[89][ -]?)?(?:\d[ -]?){9}[\dx]\b|(?:RFC|PMID) +\d+/i,/\[\[.+?\]\]|\[.+?\]/],variable:[/__[A-Z]+__/,/\{{3}.+?\}{3}/,/\{\{.+?\}\}/],symbol:[/^#redirect/im,/~{3,5}/],"table-tag":{pattern:/((?:^|[|!])[|!])[^|\r\n]+\|(?!\|)/m,lookbehind:!0,inside:{"table-bar":{pattern:/\|$/,alias:"punctuation"},rest:e.languages.markup.tag.inside}},punctuation:/^(?:\{\||\|\}|\|-|[*#:;!|])|\|\||!!/m}),e.languages.insertBefore("wiki","tag",{nowiki:{pattern:/<(nowiki|pre|source)\b[^>]*>[\s\S]*?<\/\1>/i,inside:{tag:{pattern:/<(?:nowiki|pre|source)\b[^>]*>|<\/(?:nowiki|pre|source)>/i,inside:e.languages.markup.tag.inside}}}})}e.exports=t,t.displayName="wiki",t.aliases=[]},75242(e){"use strict";function t(e){e.languages.wolfram={comment:/\(\*(?:\(\*(?:[^*]|\*(?!\)))*\*\)|(?!\(\*)[\s\S])*?\*\)/,string:{pattern:/"(?:\\.|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:Abs|AbsArg|Accuracy|Block|Do|For|Function|If|Manipulate|Module|Nest|NestList|None|Return|Switch|Table|Which|While)\b/,context:{pattern:/\w+`+\w*/,alias:"class-name"},blank:{pattern:/\b\w+_\b/,alias:"regex"},"global-variable":{pattern:/\$\w+/,alias:"variable"},boolean:/\b(?:True|False)\b/,number:/(?:\b(?=\d)|\B(?=\.))(?:0[bo])?(?:(?:\d|0x[\da-f])[\da-f]*(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?j?\b/i,operator:/\/\.|;|=\.|\^=|\^:=|:=|<<|>>|<\||\|>|:>|\|->|->|<-|@@@|@@|@|\/@|=!=|===|==|=|\+|-|\^|\[\/-+%=\]=?|!=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[\|{}[\];(),.:]/},e.languages.mathematica=e.languages.wolfram,e.languages.wl=e.languages.wolfram,e.languages.nb=e.languages.wolfram}e.exports=t,t.displayName="wolfram",t.aliases=["mathematica","wl","nb"]},97202(e){"use strict";function t(e){var t;(t=e).languages.xeora=t.languages.extend("markup",{constant:{pattern:/\$(?:DomainContents|PageRenderDuration)\$/,inside:{punctuation:{pattern:/\$/}}},variable:{pattern:/\$@?(?:#+|[-+*~=^])?[\w.]+\$/,inside:{punctuation:{pattern:/[$.]/},operator:{pattern:/#+|[-+*~=^@]/}}},"function-inline":{pattern:/\$F:[-\w.]+\?[-\w.]+(?:,(?:(?:@[-#]*\w+\.[\w+.]\.*)*\|)*(?:(?:[\w+]|[-#*.~^]+[\w+]|=\S)(?:[^$=]|=+[^=])*=*|(?:@[-#]*\w+\.[\w+.]\.*)+(?:(?:[\w+]|[-#*~^][-#*.~^]*[\w+]|=\S)(?:[^$=]|=+[^=])*=*)?)?)?\$/,inside:{variable:{pattern:/(?:[,|])@?(?:#+|[-+*~=^])?[\w.]+/,inside:{punctuation:{pattern:/[,.|]/},operator:{pattern:/#+|[-+*~=^@]/}}},punctuation:{pattern:/\$\w:|[$:?.,|]/}},alias:"function"},"function-block":{pattern:/\$XF:\{[-\w.]+\?[-\w.]+(?:,(?:(?:@[-#]*\w+\.[\w+.]\.*)*\|)*(?:(?:[\w+]|[-#*.~^]+[\w+]|=\S)(?:[^$=]|=+[^=])*=*|(?:@[-#]*\w+\.[\w+.]\.*)+(?:(?:[\w+]|[-#*~^][-#*.~^]*[\w+]|=\S)(?:[^$=]|=+[^=])*=*)?)?)?\}:XF\$/,inside:{punctuation:{pattern:/[$:{}?.,|]/}},alias:"function"},"directive-inline":{pattern:/\$\w(?:#\d+\+?)?(?:\[[-\w.]+\])?:[-\/\w.]+\$/,inside:{punctuation:{pattern:/\$(?:\w:|C(?:\[|#\d))?|[:{[\]]/,inside:{tag:{pattern:/#\d/}}}},alias:"function"},"directive-block-open":{pattern:/\$\w+:\{|\$\w(?:#\d+\+?)?(?:\[[-\w.]+\])?:[-\w.]+:\{(?:![A-Z]+)?/,inside:{punctuation:{pattern:/\$(?:\w:|C(?:\[|#\d))?|[:{[\]]/,inside:{tag:{pattern:/#\d/}}},attribute:{pattern:/![A-Z]+$/,inside:{punctuation:{pattern:/!/}},alias:"keyword"}},alias:"function"},"directive-block-separator":{pattern:/\}:[-\w.]+:\{/,inside:{punctuation:{pattern:/[:{}]/}},alias:"function"},"directive-block-close":{pattern:/\}:[-\w.]+\$/,inside:{punctuation:{pattern:/[:{}$]/}},alias:"function"}}),t.languages.insertBefore("inside","punctuation",{variable:t.languages.xeora["function-inline"].inside.variable},t.languages.xeora["function-block"]),t.languages.xeoracube=t.languages.xeora}e.exports=t,t.displayName="xeora",t.aliases=["xeoracube"]},13808(e){"use strict";function t(e){!function(e){function t(t,n){e.languages[t]&&e.languages.insertBefore(t,"comment",{"doc-comment":n})}var n=e.languages.markup.tag,r={pattern:/\/\/\/.*/,greedy:!0,alias:"comment",inside:{tag:n}},i={pattern:/'''.*/,greedy:!0,alias:"comment",inside:{tag:n}};t("csharp",r),t("fsharp",r),t("vbnet",i)}(e)}e.exports=t,t.displayName="xmlDoc",t.aliases=[]},21301(e){"use strict";function t(e){e.languages.xojo={comment:{pattern:/(?:'|\/\/|Rem\b).+/i},string:{pattern:/"(?:""|[^"])*"/,greedy:!0},number:[/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:E[+-]?\d+)?/i,/&[bchou][a-z\d]+/i],symbol:/#(?:If|Else|ElseIf|Endif|Pragma)\b/i,keyword:/\b(?:AddHandler|App|Array|As(?:signs)?|Auto|By(?:Ref|Val)|Boolean|Break|Byte|Call|Case|Catch|CFStringRef|CGFloat|Class|Color|Const|Continue|CString|Currency|CurrentMethodName|Declare|Delegate|Dim|Do(?:uble|wnTo)?|Each|Else(?:If)?|End|Enumeration|Event|Exception|Exit|Extends|False|Finally|For|Function|Get|GetTypeInfo|Global|GOTO|If|Implements|In|Inherits|Int(?:erface|eger|8|16|32|64)?|Lib|Loop|Me|Module|Next|Nil|Object|Optional|OSType|ParamArray|Private|Property|Protected|PString|Ptr|Raise(?:Event)?|ReDim|RemoveHandler|Return|Select(?:or)?|Self|Set|Single|Shared|Short|Soft|Static|Step|String|Sub|Super|Text|Then|To|True|Try|Ubound|UInt(?:eger|8|16|32|64)?|Until|Using|Var(?:iant)?|Wend|While|WindowPtr|WString)\b/i,operator:/<[=>]?|>=?|[+\-*\/\\^=]|\b(?:AddressOf|And|Ctype|IsA?|Mod|New|Not|Or|Xor|WeakAddressOf)\b/i,punctuation:/[.,;:()]/}}e.exports=t,t.displayName="xojo",t.aliases=[]},20349(e){"use strict";function t(e){var t,n,r;(t=e).languages.xquery=t.languages.extend("markup",{"xquery-comment":{pattern:/\(:[\s\S]*?:\)/,greedy:!0,alias:"comment"},string:{pattern:/(["'])(?:\1\1|(?!\1)[\s\S])*\1/,greedy:!0},extension:{pattern:/\(#.+?#\)/,alias:"symbol"},variable:/\$[-\w:]+/,axis:{pattern:/(^|[^-])(?:ancestor(?:-or-self)?|attribute|child|descendant(?:-or-self)?|following(?:-sibling)?|parent|preceding(?:-sibling)?|self)(?=::)/,lookbehind:!0,alias:"operator"},"keyword-operator":{pattern:/(^|[^:-])\b(?:and|castable as|div|eq|except|ge|gt|idiv|instance of|intersect|is|le|lt|mod|ne|or|union)\b(?=$|[^:-])/,lookbehind:!0,alias:"operator"},keyword:{pattern:/(^|[^:-])\b(?:as|ascending|at|base-uri|boundary-space|case|cast as|collation|construction|copy-namespaces|declare|default|descending|else|empty (?:greatest|least)|encoding|every|external|for|function|if|import|in|inherit|lax|let|map|module|namespace|no-inherit|no-preserve|option|order(?: by|ed|ing)?|preserve|return|satisfies|schema|some|stable|strict|strip|then|to|treat as|typeswitch|unordered|validate|variable|version|where|xquery)\b(?=$|[^:-])/,lookbehind:!0},function:/[\w-]+(?::[\w-]+)*(?=\s*\()/,"xquery-element":{pattern:/(element\s+)[\w-]+(?::[\w-]+)*/,lookbehind:!0,alias:"tag"},"xquery-attribute":{pattern:/(attribute\s+)[\w-]+(?::[\w-]+)*/,lookbehind:!0,alias:"attr-name"},builtin:{pattern:/(^|[^:-])\b(?:attribute|comment|document|element|processing-instruction|text|xs:(?:anyAtomicType|anyType|anyURI|base64Binary|boolean|byte|date|dateTime|dayTimeDuration|decimal|double|duration|ENTITIES|ENTITY|float|gDay|gMonth|gMonthDay|gYear|gYearMonth|hexBinary|ID|IDREFS?|int|integer|language|long|Name|NCName|negativeInteger|NMTOKENS?|nonNegativeInteger|nonPositiveInteger|normalizedString|NOTATION|positiveInteger|QName|short|string|time|token|unsigned(?:Byte|Int|Long|Short)|untyped(?:Atomic)?|yearMonthDuration))\b(?=$|[^:-])/,lookbehind:!0},number:/\b\d+(?:\.\d+)?(?:E[+-]?\d+)?/,operator:[/[+*=?|@]|\.\.?|:=|!=|<[=<]?|>[=>]?/,{pattern:/(\s)-(?=\s)/,lookbehind:!0}],punctuation:/[[\](){},;:/]/}),t.languages.xquery.tag.pattern=/<\/?(?!\d)[^\s>\/=$<%]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|\{(?!\{)(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])+\}|(?!\1)[^\\])*\1|[^\s'">=]+))?)*\s*\/?>/i,t.languages.xquery.tag.inside["attr-value"].pattern=/=(?:("|')(?:\\[\s\S]|\{(?!\{)(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])+\}|(?!\1)[^\\])*\1|[^\s'">=]+)/i,t.languages.xquery.tag.inside["attr-value"].inside.punctuation=/^="|"$/,t.languages.xquery.tag.inside["attr-value"].inside.expression={pattern:/\{(?!\{)(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])+\}/,inside:t.languages.xquery,alias:"language-xquery"},n=function(e){return"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(n).join("")},r=function(e){for(var i=[],a=0;a0&&i[i.length-1].tagName===n(o.content[0].content[1])&&i.pop():"/>"===o.content[o.content.length-1].content||i.push({tagName:n(o.content[0].content[1]),openedBraces:0}):!(i.length>0)||"punctuation"!==o.type||"{"!==o.content||e[a+1]&&"punctuation"===e[a+1].type&&"{"===e[a+1].content||e[a-1]&&"plain-text"===e[a-1].type&&"{"===e[a-1].content?i.length>0&&i[i.length-1].openedBraces>0&&"punctuation"===o.type&&"}"===o.content?i[i.length-1].openedBraces--:"comment"!==o.type&&(s=!0):i[i.length-1].openedBraces++),(s||"string"==typeof o)&&i.length>0&&0===i[i.length-1].openedBraces){var u=n(o);a0&&("string"==typeof e[a-1]||"plain-text"===e[a-1].type)&&(u=n(e[a-1])+u,e.splice(a-1,1),a--),/^\s+$/.test(u)?e[a]=u:e[a]=new t.Token("plain-text",u,null,u)}o.content&&"string"!=typeof o.content&&r(o.content)}},t.hooks.add("after-tokenize",function(e){"xquery"===e.language&&r(e.tokens)})}e.exports=t,t.displayName="xquery",t.aliases=[]},65039(e){"use strict";function t(e){!function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ ]+"+t.source+")?|"+t.source+"(?:[ ]+"+n.source+")?)",i=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-])(?:[ \t]*(?:(?![#:])|:))*/.source.replace(//g,function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source}),a=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function o(e,t){return t=(t||"").replace(/m/g,"")+"m",RegExp(/([:\-,[{]\s*(?:\s<>[ \t]+)?)(?:<>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<>/g,function(){return r}).replace(/<>/g,function(){return e}),t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<>/g,function(){return r})),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<>[ \t]+)?)<>(?=\s*:\s)/.source.replace(/<>/g,function(){return r}).replace(/<>/g,function(){return"(?:"+i+"|"+a+")"})),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:o(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:o(/true|false/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:o(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:o(a),lookbehind:!0,greedy:!0},number:{pattern:o(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(e)}e.exports=t,t.displayName="yaml",t.aliases=["yml"]},80741(e){"use strict";function t(e){e.languages.yang={comment:/\/\*[\s\S]*?\*\/|\/\/.*/,string:{pattern:/"(?:[^\\"]|\\.)*"|'[^']*'/,greedy:!0},keyword:{pattern:/(^|[{};\r\n][ \t]*)[a-z_][\w.-]*/i,lookbehind:!0},namespace:{pattern:/(\s)[a-z_][\w.-]*(?=:)/i,lookbehind:!0},boolean:/\b(?:false|true)\b/,operator:/\+/,punctuation:/[{};:]/}}e.exports=t,t.displayName="yang",t.aliases=[]},86528(e){"use strict";function t(e){!function(e){function t(e){return function(){return e}}var n=/\b(?:align|allowzero|and|asm|async|await|break|cancel|catch|comptime|const|continue|defer|else|enum|errdefer|error|export|extern|fn|for|if|inline|linksection|nakedcc|noalias|null|or|orelse|packed|promise|pub|resume|return|stdcallcc|struct|suspend|switch|test|threadlocal|try|undefined|union|unreachable|usingnamespace|var|volatile|while)\b/,r="\\b(?!"+n.source+")(?!\\d)\\w+\\b",i=/align\s*\((?:[^()]|\([^()]*\))*\)/.source,a=/(?:\?|\bpromise->|(?:\[[^[\]]*\]|\*(?!\*)|\*\*)(?:\s*|\s*const\b|\s*volatile\b|\s*allowzero\b)*)/.source.replace(//g,t(i)),o=/(?:\bpromise\b|(?:\berror\.)?(?:\.)*(?!\s+))/.source.replace(//g,t(r)),s="(?!\\s)(?:!?\\s*(?:"+a+"\\s*)*"+o+")+";e.languages.zig={comment:[{pattern:/\/{3}.*/,alias:"doc-comment"},/\/{2}.*/],string:[{pattern:/(^|[^\\@])c?"(?:[^"\\\r\n]|\\.)*"/,lookbehind:!0,greedy:!0},{pattern:/([\r\n])([ \t]+c?\\{2}).*(?:(?:\r\n?|\n)\2.*)*/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\])'(?:[^'\\\r\n]|\\(?:.|x[a-fA-F\d]{2}|u\{[a-fA-F\d]{1,6}\}))'/,lookbehind:!0,greedy:!0}],builtin:/\B@(?!\d)\w+(?=\s*\()/,label:{pattern:/(\b(?:break|continue)\s*:\s*)\w+\b|\b(?!\d)\w+\b(?=\s*:\s*(?:\{|while\b))/,lookbehind:!0},"class-name":[/\b(?!\d)\w+(?=\s*=\s*(?:(?:extern|packed)\s+)?(?:enum|struct|union)\s*[({])/,{pattern:RegExp(/(:\s*)(?=\s*(?:\s*)?[=;,)])|(?=\s*(?:\s*)?\{)/.source.replace(//g,t(s)).replace(//g,t(i))),lookbehind:!0,inside:null},{pattern:RegExp(/(\)\s*)(?=\s*(?:\s*)?;)/.source.replace(//g,t(s)).replace(//g,t(i))),lookbehind:!0,inside:null}],"builtin-types":{pattern:/\b(?:anyerror|bool|c_u?(?:short|int|long|longlong)|c_longdouble|c_void|comptime_(?:float|int)|[iu](?:8|16|32|64|128|size)|f(?:16|32|64|128)|noreturn|type|void)\b/,alias:"keyword"},keyword:n,function:/\b(?!\d)\w+(?=\s*\()/,number:/\b(?:0b[01]+|0o[0-7]+|0x[a-fA-F\d]+(?:\.[a-fA-F\d]*)?(?:[pP][+-]?[a-fA-F\d]+)?|\d+(?:\.\d*)?(?:[eE][+-]?\d+)?)\b/,boolean:/\b(?:false|true)\b/,operator:/\.[*?]|\.{2,3}|[-=]>|\*\*|\+\+|\|\||(?:<<|>>|[-+*]%|[-+*/%^&|<>!=])=?|[?~]/,punctuation:/[.:,;(){}[\]]/},e.languages.zig["class-name"].forEach(function(t){null===t.inside&&(t.inside=e.languages.zig)})}(e)}e.exports=t,t.displayName="zig",t.aliases=[]},59216(e,t,n){var r=function(e){var t=/\blang(?:uage)?-([\w-]+)\b/i,n=0,r={},i={manual:e.Prism&&e.Prism.manual,disableWorkerMessageHandler:e.Prism&&e.Prism.disableWorkerMessageHandler,util:{encode:function e(t){return t instanceof a?new a(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&").replace(/=f.reach));S+=E.value.length,E=E.next){var k,x=E.value;if(t.length>e.length)return;if(!(x instanceof a)){var T=1;if(v){if(!(k=o(_,S,e,g)))break;var M=k.index,O=k.index+k[0].length,A=S;for(A+=E.value.length;M>=A;)A+=(E=E.next).value.length;if(A-=E.value.length,S=A,E.value instanceof a)continue;for(var L=E;L!==t.tail&&(Af.reach&&(f.reach=N);var P=E.prev;I&&(P=c(t,P,I),S+=I.length),l(t,P,T);var R=new a(d,m?i.tokenize(C,m):C,y,C);if(E=c(t,P,R),D&&c(t,E,D),T>1){var j={cause:d+","+p,reach:N};s(e,t,n,E.prev,S,j),f&&j.reach>f.reach&&(f.reach=j.reach)}}}}}}function u(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function c(e,t,n){var r=t.next,i={value:n,prev:t,next:r};return t.next=i,r.prev=i,e.length++,i}function l(e,t,n){for(var r=t.next,i=0;i"+a.content+""},!e.document)return e.addEventListener&&(i.disableWorkerMessageHandler||e.addEventListener("message",function(t){var n=JSON.parse(t.data),r=n.language,a=n.code,o=n.immediateClose;e.postMessage(i.highlight(a,i.languages[r],r)),o&&e.close()},!1)),i;var d=i.util.currentScript();function h(){i.manual||i.highlightAll()}if(d&&(i.filename=d.src,d.hasAttribute("data-manual")&&(i.manual=!0)),!i.manual){var p=document.readyState;"loading"===p||"interactive"===p&&d&&d.defer?document.addEventListener("DOMContentLoaded",h):window.requestAnimationFrame?window.requestAnimationFrame(h):window.setTimeout(h,16)}return i}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:{});e.exports&&(e.exports=r),void 0!==n.g&&(n.g.Prism=r)},60053(e,t){"use strict";if(/** @license React v0.18.0 * 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. - */ Object.defineProperty(t,"__esModule",{value:!0}),"undefined"==typeof window||"function"!=typeof MessageChannel){var n,r,i,a,o,s=null,u=null,c=function(){if(null!==s)try{var e=t.unstable_now();s(!0,e),s=null}catch(n){throw setTimeout(c,0),n}},l=Date.now();t.unstable_now=function(){return Date.now()-l},n=function(e){null!==s?setTimeout(n,0,e):(s=e,setTimeout(c,0))},r=function(e,t){u=setTimeout(e,t)},i=function(){clearTimeout(u)},a=function(){return!1},o=t.unstable_forceFrameRate=function(){}}else{var f=window.performance,d=window.Date,h=window.setTimeout,p=window.clearTimeout;if("undefined"!=typeof console){var b=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://fb.me/react-polyfills"),"function"!=typeof b&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills")}if("object"==typeof f&&"function"==typeof f.now)t.unstable_now=function(){return f.now()};else{var m=d.now();t.unstable_now=function(){return d.now()-m}}var g=!1,v=null,y=-1,w=5,_=0;a=function(){return t.unstable_now()>=_},o=function(){},t.unstable_forceFrameRate=function(e){0>e||125M(o,n))void 0!==u&&0>M(u,o)?(e[r]=u,e[s]=n,r=s):(e[r]=o,e[a]=n,r=a);else if(void 0!==u&&0>M(u,n))e[r]=u,e[s]=n,r=s;else break a}}return t}return null}function M(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}var O=[],A=[],L=1,C=null,I=3,D=!1,N=!1,P=!1;function R(e){for(var t=x(A);null!==t;){if(null===t.callback)T(A);else if(t.startTime<=e)T(A),t.sortIndex=t.expirationTime,k(O,t);else break;t=x(A)}}function j(e){if(P=!1,R(e),!N){if(null!==x(O))N=!0,n(F);else{var t=x(A);null!==t&&r(j,t.startTime-e)}}}function F(e,n){N=!1,P&&(P=!1,i()),D=!0;var o=I;try{for(R(n),C=x(O);null!==C&&(!(C.expirationTime>n)||e&&!a());){var s=C.callback;if(null!==s){C.callback=null,I=C.priorityLevel;var u=s(C.expirationTime<=n);n=t.unstable_now(),"function"==typeof u?C.callback=u:C===x(O)&&T(O),R(n)}else T(O);C=x(O)}if(null!==C)var c=!0;else{var l=x(A);null!==l&&r(j,l.startTime-n),c=!1}return c}finally{C=null,I=o,D=!1}}function Y(e){switch(e){case 1:return -1;case 2:return 250;case 5:return 1073741823;case 4:return 1e4;default:return 5e3}}var B=o;t.unstable_ImmediatePriority=1,t.unstable_UserBlockingPriority=2,t.unstable_NormalPriority=3,t.unstable_IdlePriority=5,t.unstable_LowPriority=4,t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=I;I=e;try{return t()}finally{I=n}},t.unstable_next=function(e){switch(I){case 1:case 2:case 3:var t=3;break;default:t=I}var n=I;I=t;try{return e()}finally{I=n}},t.unstable_scheduleCallback=function(e,a,o){var s=t.unstable_now();if("object"==typeof o&&null!==o){var u=o.delay;u="number"==typeof u&&0s?(e.sortIndex=u,k(A,e),null===x(O)&&e===x(A)&&(P?i():P=!0,r(j,u-s))):(e.sortIndex=o,k(O,e),N||D||(N=!0,n(F))),e},t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_wrapCallback=function(e){var t=I;return function(){var n=I;I=t;try{return e.apply(this,arguments)}finally{I=n}}},t.unstable_getCurrentPriorityLevel=function(){return I},t.unstable_shouldYield=function(){var e=t.unstable_now();R(e);var n=x(O);return n!==C&&null!==C&&null!==n&&null!==n.callback&&n.startTime<=e&&n.expirationTime>5==6?2:e>>4==14?3:e>>3==30?4:e>>6==2?-1:-2}function c(e,t,n){var r=t.length-1;if(r=0?(i>0&&(e.lastNeed=i-1),i):--r=0?(i>0&&(e.lastNeed=i-2),i):--r=0?(i>0&&(2===i?i=0:e.lastNeed=i-3),i):0}function l(e,t,n){if((192&t[0])!=128)return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if((192&t[1])!=128)return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&(192&t[2])!=128)return e.lastNeed=2,"�"}}function f(e){var t=this.lastTotal-this.lastNeed,n=l(this,e,t);return void 0!==n?n:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):void(e.copy(this.lastChar,t,0,e.length),this.lastNeed-=e.length)}function d(e,t){var n=c(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=n;var r=e.length-(n-this.lastNeed);return e.copy(this.lastChar,0,r),e.toString("utf8",t,r)}function h(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"�":t}function p(e,t){if((e.length-t)%2==0){var n=e.toString("utf16le",t);if(n){var r=n.charCodeAt(n.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],n.slice(0,-1)}return n}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function b(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var n=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,n)}return t}function m(e,t){var n=(e.length-t)%3;return 0===n?e.toString("base64",t):(this.lastNeed=3-n,this.lastTotal=3,1===n?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-n))}function g(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function v(e){return e.toString(this.encoding)}function y(e){return e&&e.length?this.write(e):""}t.s=s,s.prototype.write=function(e){var t,n;if(0===e.length)return"";if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";n=this.lastNeed,this.lastNeed=0}else n=0;return nOF});var r,i,a,o,s,u,c,l=n(67294),f=n.t(l,2),d=n(97779),h=n(47886),p=n(57209),b=n(32316),m=n(95880),g=n(17051),v=n(71381),y=n(81701),w=n(3022),_=n(60323),E=n(87591),S=n(25649),k=n(28902),x=n(71426),T=n(48884),M=n(94184),O=n.n(M),A=n(55977),L=n(73935),C=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__;n0},e.prototype.connect_=function(){I&&!this.connected_&&(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),Y?(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(){I&&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;F.some(function(e){return!!~n.indexOf(e)})&&this.refresh()},e.getInstance=function(){return this.instance_||(this.instance_=new e),this.instance_},e.instance_=null,e}(),U=function(e,t){for(var n=0,r=Object.keys(t);n0},e}(),er="undefined"!=typeof WeakMap?new WeakMap:new C,ei=function(){function e(t){if(!(this instanceof e))throw TypeError("Cannot call a class as a function.");if(!arguments.length)throw TypeError("1 argument required, but only 0 present.");var n=B.getInstance(),r=new en(t,n,this);er.set(this,r)}return e}();["observe","unobserve","disconnect"].forEach(function(e){ei.prototype[e]=function(){var t;return(t=er.get(this))[e].apply(t,arguments)}});var ea=void 0!==D.ResizeObserver?D.ResizeObserver:ei;let eo=ea;var es=function(e){var t=[],n=null,r=function(){for(var r=arguments.length,i=Array(r),a=0;a=t||n<0||f&&r>=a}function g(){var e=eb();if(m(e))return v(e);s=setTimeout(g,b(e))}function v(e){return(s=void 0,d&&r)?h(e):(r=i=void 0,o)}function y(){void 0!==s&&clearTimeout(s),c=0,r=u=i=s=void 0}function w(){return void 0===s?o:v(eb())}function _(){var e=eb(),n=m(e);if(r=arguments,i=this,u=e,n){if(void 0===s)return p(u);if(f)return clearTimeout(s),s=setTimeout(g,t),h(u)}return void 0===s&&(s=setTimeout(g,t)),o}return t=ez(t)||0,ed(n)&&(l=!!n.leading,a=(f="maxWait"in n)?eW(ez(n.maxWait)||0,t):a,d="trailing"in n?!!n.trailing:d),_.cancel=y,_.flush=w,_}let eq=eV;var eZ="Expected a function";function eX(e,t,n){var r=!0,i=!0;if("function"!=typeof e)throw TypeError(eZ);return ed(n)&&(r="leading"in n?!!n.leading:r,i="trailing"in n?!!n.trailing:i),eq(e,t,{leading:r,maxWait:t,trailing:i})}let eJ=eX;var eQ={debounce:eq,throttle:eJ},e1=function(e){return eQ[e]},e0=function(e){return"function"==typeof e},e2=function(){return"undefined"==typeof window},e3=function(e){return e instanceof Element||e instanceof HTMLDocument};function e4(e){return(e4="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function e5(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}function e6(e,t){for(var n=0;ne.length)&&(t=e.length);for(var n=0,r=Array(t);ne.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&l.createElement(tG.Z,{variant:"indeterminate",classes:r}))};tK.propTypes={fetchCount:el().number.isRequired};let tV=(0,b.withStyles)(tW)(tK);var tq=n(5536);let tZ=n.p+"ba8bbf16ebf8e1d05bef.svg";function tX(){return(tX=Object.assign||function(e){for(var t=1;t120){for(var d=Math.floor(u/80),h=u%80,p=[],b=0;b0},name:{enumerable:!1},nodes:{enumerable:!1},source:{enumerable:!1},positions:{enumerable:!1},originalError:{enumerable:!1}}),null!=s&&s.stack)?(Object.defineProperty(nf(b),"stack",{value:s.stack,writable:!0,configurable:!0}),nl(b)):(Error.captureStackTrace?Error.captureStackTrace(nf(b),n):Object.defineProperty(nf(b),"stack",{value:Error().stack,writable:!0,configurable:!0}),b)}return ns(n,[{key:"toString",value:function(){return nw(this)}},{key:t4.YF,get:function(){return"Object"}}]),n}(nd(Error));function ny(e){return void 0===e||0===e.length?void 0:e}function nw(e){var t=e.message;if(e.nodes)for(var n=0,r=e.nodes;n",EOF:"",BANG:"!",DOLLAR:"$",AMP:"&",PAREN_L:"(",PAREN_R:")",SPREAD:"...",COLON:":",EQUALS:"=",AT:"@",BRACKET_L:"[",BRACKET_R:"]",BRACE_L:"{",PIPE:"|",BRACE_R:"}",NAME:"Name",INT:"Int",FLOAT:"Float",STRING:"String",BLOCK_STRING:"BlockString",COMMENT:"Comment"}),nx=n(10143),nT=Object.freeze({QUERY:"QUERY",MUTATION:"MUTATION",SUBSCRIPTION:"SUBSCRIPTION",FIELD:"FIELD",FRAGMENT_DEFINITION:"FRAGMENT_DEFINITION",FRAGMENT_SPREAD:"FRAGMENT_SPREAD",INLINE_FRAGMENT:"INLINE_FRAGMENT",VARIABLE_DEFINITION:"VARIABLE_DEFINITION",SCHEMA:"SCHEMA",SCALAR:"SCALAR",OBJECT:"OBJECT",FIELD_DEFINITION:"FIELD_DEFINITION",ARGUMENT_DEFINITION:"ARGUMENT_DEFINITION",INTERFACE:"INTERFACE",UNION:"UNION",ENUM:"ENUM",ENUM_VALUE:"ENUM_VALUE",INPUT_OBJECT:"INPUT_OBJECT",INPUT_FIELD_DEFINITION:"INPUT_FIELD_DEFINITION"}),nM=n(87392),nO=function(){function e(e){var t=new nS.WU(nk.SOF,0,0,0,0,null);this.source=e,this.lastToken=t,this.token=t,this.line=1,this.lineStart=0}var t=e.prototype;return t.advance=function(){return this.lastToken=this.token,this.token=this.lookahead()},t.lookahead=function(){var e,t=this.token;if(t.kind!==nk.EOF)do t=null!==(e=t.next)&&void 0!==e?e:t.next=nC(this,t);while(t.kind===nk.COMMENT)return t},e}();function nA(e){return e===nk.BANG||e===nk.DOLLAR||e===nk.AMP||e===nk.PAREN_L||e===nk.PAREN_R||e===nk.SPREAD||e===nk.COLON||e===nk.EQUALS||e===nk.AT||e===nk.BRACKET_L||e===nk.BRACKET_R||e===nk.BRACE_L||e===nk.PIPE||e===nk.BRACE_R}function nL(e){return isNaN(e)?nk.EOF:e<127?JSON.stringify(String.fromCharCode(e)):'"\\u'.concat(("00"+e.toString(16).toUpperCase()).slice(-4),'"')}function nC(e,t){for(var n=e.source,r=n.body,i=r.length,a=t.end;a31||9===a))return new nS.WU(nk.COMMENT,t,s,n,r,i,o.slice(t+1,s))}function nN(e,t,n,r,i,a){var o=e.body,s=n,u=t,c=!1;if(45===s&&(s=o.charCodeAt(++u)),48===s){if((s=o.charCodeAt(++u))>=48&&s<=57)throw n_(e,u,"Invalid number, unexpected digit after 0: ".concat(nL(s),"."))}else u=nP(e,u,s),s=o.charCodeAt(u);if(46===s&&(c=!0,s=o.charCodeAt(++u),u=nP(e,u,s),s=o.charCodeAt(u)),(69===s||101===s)&&(c=!0,(43===(s=o.charCodeAt(++u))||45===s)&&(s=o.charCodeAt(++u)),u=nP(e,u,s),s=o.charCodeAt(u)),46===s||nU(s))throw n_(e,u,"Invalid number, expected digit but got: ".concat(nL(s),"."));return new nS.WU(c?nk.FLOAT:nk.INT,t,u,r,i,a,o.slice(t,u))}function nP(e,t,n){var r=e.body,i=t,a=n;if(a>=48&&a<=57){do a=r.charCodeAt(++i);while(a>=48&&a<=57)return i}throw n_(e,i,"Invalid number, expected digit but got: ".concat(nL(a),"."))}function nR(e,t,n,r,i){for(var a=e.body,o=t+1,s=o,u=0,c="";o=48&&e<=57?e-48:e>=65&&e<=70?e-55:e>=97&&e<=102?e-87:-1}function nB(e,t,n,r,i){for(var a=e.body,o=a.length,s=t+1,u=0;s!==o&&!isNaN(u=a.charCodeAt(s))&&(95===u||u>=48&&u<=57||u>=65&&u<=90||u>=97&&u<=122);)++s;return new nS.WU(nk.NAME,t,s,n,r,i,a.slice(t,s))}function nU(e){return 95===e||e>=65&&e<=90||e>=97&&e<=122}function nH(e,t){return new n$(e,t).parseDocument()}var n$=function(){function e(e,t){var n=(0,nx.T)(e)?e:new nx.H(e);this._lexer=new nO(n),this._options=t}var t=e.prototype;return t.parseName=function(){var e=this.expectToken(nk.NAME);return{kind:nE.h.NAME,value:e.value,loc:this.loc(e)}},t.parseDocument=function(){var e=this._lexer.token;return{kind:nE.h.DOCUMENT,definitions:this.many(nk.SOF,this.parseDefinition,nk.EOF),loc:this.loc(e)}},t.parseDefinition=function(){if(this.peek(nk.NAME))switch(this._lexer.token.value){case"query":case"mutation":case"subscription":return this.parseOperationDefinition();case"fragment":return this.parseFragmentDefinition();case"schema":case"scalar":case"type":case"interface":case"union":case"enum":case"input":case"directive":return this.parseTypeSystemDefinition();case"extend":return this.parseTypeSystemExtension()}else if(this.peek(nk.BRACE_L))return this.parseOperationDefinition();else if(this.peekDescription())return this.parseTypeSystemDefinition();throw this.unexpected()},t.parseOperationDefinition=function(){var e,t=this._lexer.token;if(this.peek(nk.BRACE_L))return{kind:nE.h.OPERATION_DEFINITION,operation:"query",name:void 0,variableDefinitions:[],directives:[],selectionSet:this.parseSelectionSet(),loc:this.loc(t)};var n=this.parseOperationType();return this.peek(nk.NAME)&&(e=this.parseName()),{kind:nE.h.OPERATION_DEFINITION,operation:n,name:e,variableDefinitions:this.parseVariableDefinitions(),directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet(),loc:this.loc(t)}},t.parseOperationType=function(){var e=this.expectToken(nk.NAME);switch(e.value){case"query":return"query";case"mutation":return"mutation";case"subscription":return"subscription"}throw this.unexpected(e)},t.parseVariableDefinitions=function(){return this.optionalMany(nk.PAREN_L,this.parseVariableDefinition,nk.PAREN_R)},t.parseVariableDefinition=function(){var e=this._lexer.token;return{kind:nE.h.VARIABLE_DEFINITION,variable:this.parseVariable(),type:(this.expectToken(nk.COLON),this.parseTypeReference()),defaultValue:this.expectOptionalToken(nk.EQUALS)?this.parseValueLiteral(!0):void 0,directives:this.parseDirectives(!0),loc:this.loc(e)}},t.parseVariable=function(){var e=this._lexer.token;return this.expectToken(nk.DOLLAR),{kind:nE.h.VARIABLE,name:this.parseName(),loc:this.loc(e)}},t.parseSelectionSet=function(){var e=this._lexer.token;return{kind:nE.h.SELECTION_SET,selections:this.many(nk.BRACE_L,this.parseSelection,nk.BRACE_R),loc:this.loc(e)}},t.parseSelection=function(){return this.peek(nk.SPREAD)?this.parseFragment():this.parseField()},t.parseField=function(){var e,t,n=this._lexer.token,r=this.parseName();return this.expectOptionalToken(nk.COLON)?(e=r,t=this.parseName()):t=r,{kind:nE.h.FIELD,alias:e,name:t,arguments:this.parseArguments(!1),directives:this.parseDirectives(!1),selectionSet:this.peek(nk.BRACE_L)?this.parseSelectionSet():void 0,loc:this.loc(n)}},t.parseArguments=function(e){var t=e?this.parseConstArgument:this.parseArgument;return this.optionalMany(nk.PAREN_L,t,nk.PAREN_R)},t.parseArgument=function(){var e=this._lexer.token,t=this.parseName();return this.expectToken(nk.COLON),{kind:nE.h.ARGUMENT,name:t,value:this.parseValueLiteral(!1),loc:this.loc(e)}},t.parseConstArgument=function(){var e=this._lexer.token;return{kind:nE.h.ARGUMENT,name:this.parseName(),value:(this.expectToken(nk.COLON),this.parseValueLiteral(!0)),loc:this.loc(e)}},t.parseFragment=function(){var e=this._lexer.token;this.expectToken(nk.SPREAD);var t=this.expectOptionalKeyword("on");return!t&&this.peek(nk.NAME)?{kind:nE.h.FRAGMENT_SPREAD,name:this.parseFragmentName(),directives:this.parseDirectives(!1),loc:this.loc(e)}:{kind:nE.h.INLINE_FRAGMENT,typeCondition:t?this.parseNamedType():void 0,directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet(),loc:this.loc(e)}},t.parseFragmentDefinition=function(){var e,t=this._lexer.token;return(this.expectKeyword("fragment"),(null===(e=this._options)||void 0===e?void 0:e.experimentalFragmentVariables)===!0)?{kind:nE.h.FRAGMENT_DEFINITION,name:this.parseFragmentName(),variableDefinitions:this.parseVariableDefinitions(),typeCondition:(this.expectKeyword("on"),this.parseNamedType()),directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet(),loc:this.loc(t)}:{kind:nE.h.FRAGMENT_DEFINITION,name:this.parseFragmentName(),typeCondition:(this.expectKeyword("on"),this.parseNamedType()),directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet(),loc:this.loc(t)}},t.parseFragmentName=function(){if("on"===this._lexer.token.value)throw this.unexpected();return this.parseName()},t.parseValueLiteral=function(e){var t=this._lexer.token;switch(t.kind){case nk.BRACKET_L:return this.parseList(e);case nk.BRACE_L:return this.parseObject(e);case nk.INT:return this._lexer.advance(),{kind:nE.h.INT,value:t.value,loc:this.loc(t)};case nk.FLOAT:return this._lexer.advance(),{kind:nE.h.FLOAT,value:t.value,loc:this.loc(t)};case nk.STRING:case nk.BLOCK_STRING:return this.parseStringLiteral();case nk.NAME:switch(this._lexer.advance(),t.value){case"true":return{kind:nE.h.BOOLEAN,value:!0,loc:this.loc(t)};case"false":return{kind:nE.h.BOOLEAN,value:!1,loc:this.loc(t)};case"null":return{kind:nE.h.NULL,loc:this.loc(t)};default:return{kind:nE.h.ENUM,value:t.value,loc:this.loc(t)}}case nk.DOLLAR:if(!e)return this.parseVariable()}throw this.unexpected()},t.parseStringLiteral=function(){var e=this._lexer.token;return this._lexer.advance(),{kind:nE.h.STRING,value:e.value,block:e.kind===nk.BLOCK_STRING,loc:this.loc(e)}},t.parseList=function(e){var t=this,n=this._lexer.token,r=function(){return t.parseValueLiteral(e)};return{kind:nE.h.LIST,values:this.any(nk.BRACKET_L,r,nk.BRACKET_R),loc:this.loc(n)}},t.parseObject=function(e){var t=this,n=this._lexer.token,r=function(){return t.parseObjectField(e)};return{kind:nE.h.OBJECT,fields:this.any(nk.BRACE_L,r,nk.BRACE_R),loc:this.loc(n)}},t.parseObjectField=function(e){var t=this._lexer.token,n=this.parseName();return this.expectToken(nk.COLON),{kind:nE.h.OBJECT_FIELD,name:n,value:this.parseValueLiteral(e),loc:this.loc(t)}},t.parseDirectives=function(e){for(var t=[];this.peek(nk.AT);)t.push(this.parseDirective(e));return t},t.parseDirective=function(e){var t=this._lexer.token;return this.expectToken(nk.AT),{kind:nE.h.DIRECTIVE,name:this.parseName(),arguments:this.parseArguments(e),loc:this.loc(t)}},t.parseTypeReference=function(){var e,t=this._lexer.token;return(this.expectOptionalToken(nk.BRACKET_L)?(e=this.parseTypeReference(),this.expectToken(nk.BRACKET_R),e={kind:nE.h.LIST_TYPE,type:e,loc:this.loc(t)}):e=this.parseNamedType(),this.expectOptionalToken(nk.BANG))?{kind:nE.h.NON_NULL_TYPE,type:e,loc:this.loc(t)}:e},t.parseNamedType=function(){var e=this._lexer.token;return{kind:nE.h.NAMED_TYPE,name:this.parseName(),loc:this.loc(e)}},t.parseTypeSystemDefinition=function(){var e=this.peekDescription()?this._lexer.lookahead():this._lexer.token;if(e.kind===nk.NAME)switch(e.value){case"schema":return this.parseSchemaDefinition();case"scalar":return this.parseScalarTypeDefinition();case"type":return this.parseObjectTypeDefinition();case"interface":return this.parseInterfaceTypeDefinition();case"union":return this.parseUnionTypeDefinition();case"enum":return this.parseEnumTypeDefinition();case"input":return this.parseInputObjectTypeDefinition();case"directive":return this.parseDirectiveDefinition()}throw this.unexpected(e)},t.peekDescription=function(){return this.peek(nk.STRING)||this.peek(nk.BLOCK_STRING)},t.parseDescription=function(){if(this.peekDescription())return this.parseStringLiteral()},t.parseSchemaDefinition=function(){var e=this._lexer.token,t=this.parseDescription();this.expectKeyword("schema");var n=this.parseDirectives(!0),r=this.many(nk.BRACE_L,this.parseOperationTypeDefinition,nk.BRACE_R);return{kind:nE.h.SCHEMA_DEFINITION,description:t,directives:n,operationTypes:r,loc:this.loc(e)}},t.parseOperationTypeDefinition=function(){var e=this._lexer.token,t=this.parseOperationType();this.expectToken(nk.COLON);var n=this.parseNamedType();return{kind:nE.h.OPERATION_TYPE_DEFINITION,operation:t,type:n,loc:this.loc(e)}},t.parseScalarTypeDefinition=function(){var e=this._lexer.token,t=this.parseDescription();this.expectKeyword("scalar");var n=this.parseName(),r=this.parseDirectives(!0);return{kind:nE.h.SCALAR_TYPE_DEFINITION,description:t,name:n,directives:r,loc:this.loc(e)}},t.parseObjectTypeDefinition=function(){var e=this._lexer.token,t=this.parseDescription();this.expectKeyword("type");var n=this.parseName(),r=this.parseImplementsInterfaces(),i=this.parseDirectives(!0),a=this.parseFieldsDefinition();return{kind:nE.h.OBJECT_TYPE_DEFINITION,description:t,name:n,interfaces:r,directives:i,fields:a,loc:this.loc(e)}},t.parseImplementsInterfaces=function(){var e;if(!this.expectOptionalKeyword("implements"))return[];if((null===(e=this._options)||void 0===e?void 0:e.allowLegacySDLImplementsInterfaces)===!0){var t=[];this.expectOptionalToken(nk.AMP);do t.push(this.parseNamedType());while(this.expectOptionalToken(nk.AMP)||this.peek(nk.NAME))return t}return this.delimitedMany(nk.AMP,this.parseNamedType)},t.parseFieldsDefinition=function(){var e;return(null===(e=this._options)||void 0===e?void 0:e.allowLegacySDLEmptyFields)===!0&&this.peek(nk.BRACE_L)&&this._lexer.lookahead().kind===nk.BRACE_R?(this._lexer.advance(),this._lexer.advance(),[]):this.optionalMany(nk.BRACE_L,this.parseFieldDefinition,nk.BRACE_R)},t.parseFieldDefinition=function(){var e=this._lexer.token,t=this.parseDescription(),n=this.parseName(),r=this.parseArgumentDefs();this.expectToken(nk.COLON);var i=this.parseTypeReference(),a=this.parseDirectives(!0);return{kind:nE.h.FIELD_DEFINITION,description:t,name:n,arguments:r,type:i,directives:a,loc:this.loc(e)}},t.parseArgumentDefs=function(){return this.optionalMany(nk.PAREN_L,this.parseInputValueDef,nk.PAREN_R)},t.parseInputValueDef=function(){var e,t=this._lexer.token,n=this.parseDescription(),r=this.parseName();this.expectToken(nk.COLON);var i=this.parseTypeReference();this.expectOptionalToken(nk.EQUALS)&&(e=this.parseValueLiteral(!0));var a=this.parseDirectives(!0);return{kind:nE.h.INPUT_VALUE_DEFINITION,description:n,name:r,type:i,defaultValue:e,directives:a,loc:this.loc(t)}},t.parseInterfaceTypeDefinition=function(){var e=this._lexer.token,t=this.parseDescription();this.expectKeyword("interface");var n=this.parseName(),r=this.parseImplementsInterfaces(),i=this.parseDirectives(!0),a=this.parseFieldsDefinition();return{kind:nE.h.INTERFACE_TYPE_DEFINITION,description:t,name:n,interfaces:r,directives:i,fields:a,loc:this.loc(e)}},t.parseUnionTypeDefinition=function(){var e=this._lexer.token,t=this.parseDescription();this.expectKeyword("union");var n=this.parseName(),r=this.parseDirectives(!0),i=this.parseUnionMemberTypes();return{kind:nE.h.UNION_TYPE_DEFINITION,description:t,name:n,directives:r,types:i,loc:this.loc(e)}},t.parseUnionMemberTypes=function(){return this.expectOptionalToken(nk.EQUALS)?this.delimitedMany(nk.PIPE,this.parseNamedType):[]},t.parseEnumTypeDefinition=function(){var e=this._lexer.token,t=this.parseDescription();this.expectKeyword("enum");var n=this.parseName(),r=this.parseDirectives(!0),i=this.parseEnumValuesDefinition();return{kind:nE.h.ENUM_TYPE_DEFINITION,description:t,name:n,directives:r,values:i,loc:this.loc(e)}},t.parseEnumValuesDefinition=function(){return this.optionalMany(nk.BRACE_L,this.parseEnumValueDefinition,nk.BRACE_R)},t.parseEnumValueDefinition=function(){var e=this._lexer.token,t=this.parseDescription(),n=this.parseName(),r=this.parseDirectives(!0);return{kind:nE.h.ENUM_VALUE_DEFINITION,description:t,name:n,directives:r,loc:this.loc(e)}},t.parseInputObjectTypeDefinition=function(){var e=this._lexer.token,t=this.parseDescription();this.expectKeyword("input");var n=this.parseName(),r=this.parseDirectives(!0),i=this.parseInputFieldsDefinition();return{kind:nE.h.INPUT_OBJECT_TYPE_DEFINITION,description:t,name:n,directives:r,fields:i,loc:this.loc(e)}},t.parseInputFieldsDefinition=function(){return this.optionalMany(nk.BRACE_L,this.parseInputValueDef,nk.BRACE_R)},t.parseTypeSystemExtension=function(){var e=this._lexer.lookahead();if(e.kind===nk.NAME)switch(e.value){case"schema":return this.parseSchemaExtension();case"scalar":return this.parseScalarTypeExtension();case"type":return this.parseObjectTypeExtension();case"interface":return this.parseInterfaceTypeExtension();case"union":return this.parseUnionTypeExtension();case"enum":return this.parseEnumTypeExtension();case"input":return this.parseInputObjectTypeExtension()}throw this.unexpected(e)},t.parseSchemaExtension=function(){var e=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("schema");var t=this.parseDirectives(!0),n=this.optionalMany(nk.BRACE_L,this.parseOperationTypeDefinition,nk.BRACE_R);if(0===t.length&&0===n.length)throw this.unexpected();return{kind:nE.h.SCHEMA_EXTENSION,directives:t,operationTypes:n,loc:this.loc(e)}},t.parseScalarTypeExtension=function(){var e=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("scalar");var t=this.parseName(),n=this.parseDirectives(!0);if(0===n.length)throw this.unexpected();return{kind:nE.h.SCALAR_TYPE_EXTENSION,name:t,directives:n,loc:this.loc(e)}},t.parseObjectTypeExtension=function(){var e=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("type");var t=this.parseName(),n=this.parseImplementsInterfaces(),r=this.parseDirectives(!0),i=this.parseFieldsDefinition();if(0===n.length&&0===r.length&&0===i.length)throw this.unexpected();return{kind:nE.h.OBJECT_TYPE_EXTENSION,name:t,interfaces:n,directives:r,fields:i,loc:this.loc(e)}},t.parseInterfaceTypeExtension=function(){var e=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("interface");var t=this.parseName(),n=this.parseImplementsInterfaces(),r=this.parseDirectives(!0),i=this.parseFieldsDefinition();if(0===n.length&&0===r.length&&0===i.length)throw this.unexpected();return{kind:nE.h.INTERFACE_TYPE_EXTENSION,name:t,interfaces:n,directives:r,fields:i,loc:this.loc(e)}},t.parseUnionTypeExtension=function(){var e=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("union");var t=this.parseName(),n=this.parseDirectives(!0),r=this.parseUnionMemberTypes();if(0===n.length&&0===r.length)throw this.unexpected();return{kind:nE.h.UNION_TYPE_EXTENSION,name:t,directives:n,types:r,loc:this.loc(e)}},t.parseEnumTypeExtension=function(){var e=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("enum");var t=this.parseName(),n=this.parseDirectives(!0),r=this.parseEnumValuesDefinition();if(0===n.length&&0===r.length)throw this.unexpected();return{kind:nE.h.ENUM_TYPE_EXTENSION,name:t,directives:n,values:r,loc:this.loc(e)}},t.parseInputObjectTypeExtension=function(){var e=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("input");var t=this.parseName(),n=this.parseDirectives(!0),r=this.parseInputFieldsDefinition();if(0===n.length&&0===r.length)throw this.unexpected();return{kind:nE.h.INPUT_OBJECT_TYPE_EXTENSION,name:t,directives:n,fields:r,loc:this.loc(e)}},t.parseDirectiveDefinition=function(){var e=this._lexer.token,t=this.parseDescription();this.expectKeyword("directive"),this.expectToken(nk.AT);var n=this.parseName(),r=this.parseArgumentDefs(),i=this.expectOptionalKeyword("repeatable");this.expectKeyword("on");var a=this.parseDirectiveLocations();return{kind:nE.h.DIRECTIVE_DEFINITION,description:t,name:n,arguments:r,repeatable:i,locations:a,loc:this.loc(e)}},t.parseDirectiveLocations=function(){return this.delimitedMany(nk.PIPE,this.parseDirectiveLocation)},t.parseDirectiveLocation=function(){var e=this._lexer.token,t=this.parseName();if(void 0!==nT[t.value])return t;throw this.unexpected(e)},t.loc=function(e){var t;if((null===(t=this._options)||void 0===t?void 0:t.noLocation)!==!0)return new nS.Ye(e,this._lexer.lastToken,this._lexer.source)},t.peek=function(e){return this._lexer.token.kind===e},t.expectToken=function(e){var t=this._lexer.token;if(t.kind===e)return this._lexer.advance(),t;throw n_(this._lexer.source,t.start,"Expected ".concat(nG(e),", found ").concat(nz(t),"."))},t.expectOptionalToken=function(e){var t=this._lexer.token;if(t.kind===e)return this._lexer.advance(),t},t.expectKeyword=function(e){var t=this._lexer.token;if(t.kind===nk.NAME&&t.value===e)this._lexer.advance();else throw n_(this._lexer.source,t.start,'Expected "'.concat(e,'", found ').concat(nz(t),"."))},t.expectOptionalKeyword=function(e){var t=this._lexer.token;return t.kind===nk.NAME&&t.value===e&&(this._lexer.advance(),!0)},t.unexpected=function(e){var t=null!=e?e:this._lexer.token;return n_(this._lexer.source,t.start,"Unexpected ".concat(nz(t),"."))},t.any=function(e,t,n){this.expectToken(e);for(var r=[];!this.expectOptionalToken(n);)r.push(t.call(this));return r},t.optionalMany=function(e,t,n){if(this.expectOptionalToken(e)){var r=[];do r.push(t.call(this));while(!this.expectOptionalToken(n))return r}return[]},t.many=function(e,t,n){this.expectToken(e);var r=[];do r.push(t.call(this));while(!this.expectOptionalToken(n))return r},t.delimitedMany=function(e,t){this.expectOptionalToken(e);var n=[];do n.push(t.call(this));while(this.expectOptionalToken(e))return n},e}();function nz(e){var t=e.value;return nG(e.kind)+(null!=t?' "'.concat(t,'"'):"")}function nG(e){return nA(e)?'"'.concat(e,'"'):e}var nW=new Map,nK=new Map,nV=!0,nq=!1;function nZ(e){return e.replace(/[\s,]+/g," ").trim()}function nX(e){return nZ(e.source.body.substring(e.start,e.end))}function nJ(e){var t=new Set,n=[];return e.definitions.forEach(function(e){if("FragmentDefinition"===e.kind){var r=e.name.value,i=nX(e.loc),a=nK.get(r);a&&!a.has(i)?nV&&console.warn("Warning: fragment with name "+r+" already exists.\ngraphql-tag enforces all fragment names across your application to be unique; read more about\nthis in the docs: http://dev.apollodata.com/core/fragments.html#unique-names"):a||nK.set(r,a=new Set),a.add(i),t.has(i)||(t.add(i),n.push(e))}else n.push(e)}),(0,t0.pi)((0,t0.pi)({},e),{definitions:n})}function nQ(e){var t=new Set(e.definitions);t.forEach(function(e){e.loc&&delete e.loc,Object.keys(e).forEach(function(n){var r=e[n];r&&"object"==typeof r&&t.add(r)})});var n=e.loc;return n&&(delete n.startToken,delete n.endToken),e}function n1(e){var t=nZ(e);if(!nW.has(t)){var n=nH(e,{experimentalFragmentVariables:nq,allowLegacyFragmentVariables:nq});if(!n||"Document"!==n.kind)throw Error("Not a valid GraphQL document.");nW.set(t,nQ(nJ(n)))}return nW.get(t)}function n0(e){for(var t=[],n=1;n, or pass an ApolloClient instance in via options.'):(0,n7.kG)(!!n,32),n}var rb=n(10542),rm=n(53712),rg=n(21436),rv=Object.prototype.hasOwnProperty;function ry(e,t){return void 0===t&&(t=Object.create(null)),rw(rp(t.client),e).useQuery(t)}function rw(e,t){var n=(0,l.useRef)();n.current&&e===n.current.client&&t===n.current.query||(n.current=new r_(e,t,n.current));var r=n.current,i=(0,l.useState)(0),a=(i[0],i[1]);return r.forceUpdate=function(){a(function(e){return e+1})},r}var r_=function(){function e(e,t,n){this.client=e,this.query=t,this.ssrDisabledResult=(0,rb.J)({loading:!0,data:void 0,error:void 0,networkStatus:rc.I.loading}),this.skipStandbyResult=(0,rb.J)({loading:!1,data:void 0,error:void 0,networkStatus:rc.I.ready}),this.toQueryResultCache=new(re.mr?WeakMap:Map),rh(t,r.Query);var i=n&&n.result,a=i&&i.data;a&&(this.previousData=a)}return e.prototype.forceUpdate=function(){__DEV__&&n7.kG.warn("Calling default no-op implementation of InternalState#forceUpdate")},e.prototype.executeQuery=function(e){var t,n=this;e.query&&Object.assign(this,{query:e.query}),this.watchQueryOptions=this.createWatchQueryOptions(this.queryHookOptions=e);var r=this.observable.reobserveAsConcast(this.getObsQueryOptions());return this.previousData=(null===(t=this.result)||void 0===t?void 0:t.data)||this.previousData,this.result=void 0,this.forceUpdate(),new Promise(function(e){var t;r.subscribe({next:function(e){t=e},error:function(){e(n.toQueryResult(n.observable.getCurrentResult()))},complete:function(){e(n.toQueryResult(t))}})})},e.prototype.useQuery=function(e){var t=this;this.renderPromises=(0,l.useContext)((0,rs.K)()).renderPromises,this.useOptions(e);var n=this.useObservableQuery(),r=rn((0,l.useCallback)(function(){if(t.renderPromises)return function(){};var e=function(){var e=t.result,r=n.getCurrentResult();!(e&&e.loading===r.loading&&e.networkStatus===r.networkStatus&&(0,ra.D)(e.data,r.data))&&t.setResult(r)},r=function(a){var o=n.last;i.unsubscribe();try{n.resetLastResults(),i=n.subscribe(e,r)}finally{n.last=o}if(!rv.call(a,"graphQLErrors"))throw a;var s=t.result;(!s||s&&s.loading||!(0,ra.D)(a,s.error))&&t.setResult({data:s&&s.data,error:a,loading:!1,networkStatus:rc.I.error})},i=n.subscribe(e,r);return function(){return setTimeout(function(){return i.unsubscribe()})}},[n,this.renderPromises,this.client.disableNetworkFetches,]),function(){return t.getCurrentResult()},function(){return t.getCurrentResult()});return this.unsafeHandlePartialRefetch(r),this.toQueryResult(r)},e.prototype.useOptions=function(t){var n,r=this.createWatchQueryOptions(this.queryHookOptions=t),i=this.watchQueryOptions;!(0,ra.D)(r,i)&&(this.watchQueryOptions=r,i&&this.observable&&(this.observable.reobserve(this.getObsQueryOptions()),this.previousData=(null===(n=this.result)||void 0===n?void 0:n.data)||this.previousData,this.result=void 0)),this.onCompleted=t.onCompleted||e.prototype.onCompleted,this.onError=t.onError||e.prototype.onError,(this.renderPromises||this.client.disableNetworkFetches)&&!1===this.queryHookOptions.ssr&&!this.queryHookOptions.skip?this.result=this.ssrDisabledResult:this.queryHookOptions.skip||"standby"===this.watchQueryOptions.fetchPolicy?this.result=this.skipStandbyResult:(this.result===this.ssrDisabledResult||this.result===this.skipStandbyResult)&&(this.result=void 0)},e.prototype.getObsQueryOptions=function(){var e=[],t=this.client.defaultOptions.watchQuery;return t&&e.push(t),this.queryHookOptions.defaultOptions&&e.push(this.queryHookOptions.defaultOptions),e.push((0,rm.o)(this.observable&&this.observable.options,this.watchQueryOptions)),e.reduce(ro.J)},e.prototype.createWatchQueryOptions=function(e){void 0===e&&(e={});var t,n=e.skip,r=Object.assign((e.ssr,e.onCompleted,e.onError,e.defaultOptions,(0,n8._T)(e,["skip","ssr","onCompleted","onError","defaultOptions"])),{query:this.query});if(this.renderPromises&&("network-only"===r.fetchPolicy||"cache-and-network"===r.fetchPolicy)&&(r.fetchPolicy="cache-first"),r.variables||(r.variables={}),n){var i=r.fetchPolicy,a=void 0===i?this.getDefaultFetchPolicy():i,o=r.initialFetchPolicy;Object.assign(r,{initialFetchPolicy:void 0===o?a:o,fetchPolicy:"standby"})}else r.fetchPolicy||(r.fetchPolicy=(null===(t=this.observable)||void 0===t?void 0:t.options.initialFetchPolicy)||this.getDefaultFetchPolicy());return r},e.prototype.getDefaultFetchPolicy=function(){var e,t;return(null===(e=this.queryHookOptions.defaultOptions)||void 0===e?void 0:e.fetchPolicy)||(null===(t=this.client.defaultOptions.watchQuery)||void 0===t?void 0:t.fetchPolicy)||"cache-first"},e.prototype.onCompleted=function(e){},e.prototype.onError=function(e){},e.prototype.useObservableQuery=function(){var e=this.observable=this.renderPromises&&this.renderPromises.getSSRObservable(this.watchQueryOptions)||this.observable||this.client.watchQuery(this.getObsQueryOptions());this.obsQueryFields=(0,l.useMemo)(function(){return{refetch:e.refetch.bind(e),reobserve:e.reobserve.bind(e),fetchMore:e.fetchMore.bind(e),updateQuery:e.updateQuery.bind(e),startPolling:e.startPolling.bind(e),stopPolling:e.stopPolling.bind(e),subscribeToMore:e.subscribeToMore.bind(e)}},[e]);var t=!(!1===this.queryHookOptions.ssr||this.queryHookOptions.skip);return this.renderPromises&&t&&(this.renderPromises.registerSSRObservable(e),e.getCurrentResult().loading&&this.renderPromises.addObservableQueryPromise(e)),e},e.prototype.setResult=function(e){var t=this.result;t&&t.data&&(this.previousData=t.data),this.result=e,this.forceUpdate(),this.handleErrorOrCompleted(e)},e.prototype.handleErrorOrCompleted=function(e){var t=this;if(!e.loading){var n=this.toApolloError(e);Promise.resolve().then(function(){n?t.onError(n):e.data&&t.onCompleted(e.data)}).catch(function(e){__DEV__&&n7.kG.warn(e)})}},e.prototype.toApolloError=function(e){return(0,rg.O)(e.errors)?new ru.cA({graphQLErrors:e.errors}):e.error},e.prototype.getCurrentResult=function(){return this.result||this.handleErrorOrCompleted(this.result=this.observable.getCurrentResult()),this.result},e.prototype.toQueryResult=function(e){var t=this.toQueryResultCache.get(e);if(t)return t;var n=e.data,r=(e.partial,(0,n8._T)(e,["data","partial"]));return this.toQueryResultCache.set(e,t=(0,n8.pi)((0,n8.pi)((0,n8.pi)({data:n},r),this.obsQueryFields),{client:this.client,observable:this.observable,variables:this.observable.variables,called:!this.queryHookOptions.skip,previousData:this.previousData})),!t.error&&(0,rg.O)(e.errors)&&(t.error=new ru.cA({graphQLErrors:e.errors})),t},e.prototype.unsafeHandlePartialRefetch=function(e){e.partial&&this.queryHookOptions.partialRefetch&&!e.loading&&(!e.data||0===Object.keys(e.data).length)&&"cache-only"!==this.observable.options.fetchPolicy&&(Object.assign(e,{loading:!0,networkStatus:rc.I.refetch}),this.observable.refetch())},e}();function rE(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);ne.length)&&(t=e.length);for(var n=0,r=Array(t);ne.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&void 0!==arguments[0]?arguments[0]:{};return ry(i$,e)},iG=function(){var e=iF(),t=parseInt(e.get("page")||"1",10),n=parseInt(e.get("per")||"50",10),r=iz({variables:{offset:(t-1)*n,limit:n},fetchPolicy:"network-only"}),i=r.data,a=r.loading,o=r.error;return a?l.createElement(ij,null):o?l.createElement(iN,{error:o}):i?l.createElement(iD,{chains:i.chains.results,page:t,pageSize:n,total:i.chains.metadata.total}):null},iW=n(67932),iK=n(8126),iV="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};function iq(e){if(iZ())return Intl.DateTimeFormat.supportedLocalesOf(e)[0]}function iZ(){return("undefined"==typeof Intl?"undefined":iV(Intl))==="object"&&"function"==typeof Intl.DateTimeFormat}var iX="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},iJ=function(){function e(e,t){for(var n=0;n=i.length)break;s=i[o++]}else{if((o=i.next()).done)break;s=o.value}var s,u=s;if((void 0===e?"undefined":iX(e))!=="object")return;e=e[u]}return e}},{key:"put",value:function(){for(var e=arguments.length,t=Array(e),n=0;n=o.length)break;c=o[u++]}else{if((u=o.next()).done)break;c=u.value}var c,l=c;"object"!==iX(a[l])&&(a[l]={}),a=a[l]}return a[i]=r}}]),e}();let i0=i1;var i2=new i0;function i3(e,t){if(!iZ())return function(e){return e.toString()};var n=i5(e),r=JSON.stringify(t),i=i2.get(String(n),r)||i2.put(String(n),r,new Intl.DateTimeFormat(n,t));return function(e){return i.format(e)}}var i4={};function i5(e){var t=e.toString();return i4[t]?i4[t]:i4[t]=iq(e)}var i6="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};function i9(e){return i8(e)?e:new Date(e)}function i8(e){return e instanceof Date||i7(e)}function i7(e){return(void 0===e?"undefined":i6(e))==="object"&&"function"==typeof e.getTime}var ae=n(54087),at=n.n(ae);function an(e,t){if(0===e.length)return 0;for(var n=0,r=e.length-1,i=void 0;n<=r;){var a=t(e[i=Math.floor((r+n)/2)]);if(0===a)return i;if(a<0){if((n=i+1)>r)return n}else if((r=i-1)=t.nextUpdateTime)ao(t,this.instances);else break}},scheduleNextTick:function(){var e=this;this.scheduledTick=at()(function(){e.tick(),e.scheduleNextTick()})},start:function(){this.scheduleNextTick()},stop:function(){at().cancel(this.scheduledTick)}};function aa(e){var t=ar(e.getNextValue(),2),n=t[0],r=t[1];e.setValue(n),e.nextUpdateTime=r}function ao(e,t){aa(e),au(t,e),as(t,e)}function as(e,t){var n=ac(e,t);e.splice(n,0,t)}function au(e,t){var n=e.indexOf(t);e.splice(n,1)}function ac(e,t){var n=t.nextUpdateTime;return an(e,function(e){return e.nextUpdateTime===n?0:e.nextUpdateTime>n?1:-1})}var al=(0,ec.oneOfType)([(0,ec.shape)({minTime:ec.number,formatAs:ec.string.isRequired}),(0,ec.shape)({test:ec.func,formatAs:ec.string.isRequired}),(0,ec.shape)({minTime:ec.number,format:ec.func.isRequired}),(0,ec.shape)({test:ec.func,format:ec.func.isRequired})]),af=(0,ec.oneOfType)([ec.string,(0,ec.shape)({steps:(0,ec.arrayOf)(al).isRequired,labels:(0,ec.oneOfType)([ec.string,(0,ec.arrayOf)(ec.string)]).isRequired,round:ec.string})]),ad=Object.assign||function(e){for(var t=1;t=0)&&Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function ab(e){var t=e.date,n=e.future,r=e.timeStyle,i=e.round,a=e.minTimeLeft,o=e.tooltip,s=e.component,u=e.container,c=e.wrapperComponent,f=e.wrapperProps,d=e.locale,h=e.locales,p=e.formatVerboseDate,b=e.verboseDateFormat,m=e.updateInterval,g=e.tick,v=ap(e,["date","future","timeStyle","round","minTimeLeft","tooltip","component","container","wrapperComponent","wrapperProps","locale","locales","formatVerboseDate","verboseDateFormat","updateInterval","tick"]),y=(0,l.useMemo)(function(){return d&&(h=[d]),h.concat(iK.Z.getDefaultLocale())},[d,h]),w=(0,l.useMemo)(function(){return new iK.Z(y)},[y]);t=(0,l.useMemo)(function(){return i9(t)},[t]);var _=(0,l.useCallback)(function(){var e=Date.now(),o=void 0;if(n&&e>=t.getTime()&&(e=t.getTime(),o=!0),void 0!==a){var s=t.getTime()-1e3*a;e>s&&(e=s,o=!0)}var u=w.format(t,r,{getTimeToNextUpdate:!0,now:e,future:n,round:i}),c=ah(u,2),l=c[0],f=c[1];return f=o?av:m||f||6e4,[l,e+f]},[t,n,r,m,i,a,w]),E=(0,l.useRef)();E.current=_;var S=(0,l.useMemo)(_,[]),k=ah(S,2),x=k[0],T=k[1],M=(0,l.useState)(x),O=ah(M,2),A=O[0],L=O[1],C=ah((0,l.useState)(),2),I=C[0],D=C[1],N=(0,l.useRef)();(0,l.useEffect)(function(){if(g)return N.current=ai.add({getNextValue:function(){return E.current()},setValue:L,nextUpdateTime:T}),function(){return N.current.stop()}},[g]),(0,l.useEffect)(function(){if(N.current)N.current.forceUpdate();else{var e=_(),t=ah(e,1)[0];L(t)}},[_]),(0,l.useEffect)(function(){D(!0)},[]);var P=(0,l.useMemo)(function(){if("undefined"!=typeof window)return i3(y,b)},[y,b]),R=(0,l.useMemo)(function(){if("undefined"!=typeof window)return p?p(t):P(t)},[t,p,P]),j=l.createElement(s,ad({date:t,verboseDate:I?R:void 0,tooltip:o},v),A),F=c||u;return F?l.createElement(F,ad({},f,{verboseDate:I?R:void 0}),j):j}ab.propTypes={date:el().oneOfType([el().instanceOf(Date),el().number]).isRequired,locale:el().string,locales:el().arrayOf(el().string),future:el().bool,timeStyle:af,round:el().string,minTimeLeft:el().number,component:el().elementType.isRequired,tooltip:el().bool.isRequired,formatVerboseDate:el().func,verboseDateFormat:el().object,updateInterval:el().oneOfType([el().number,el().arrayOf(el().shape({threshold:el().number,interval:el().number.isRequired}))]),tick:el().bool,wrapperComponent:el().func,wrapperProps:el().object},ab.defaultProps={locales:[],component:ay,tooltip:!0,verboseDateFormat:{weekday:"long",day:"numeric",month:"long",year:"numeric",hour:"numeric",minute:"2-digit",second:"2-digit"},tick:!0},ab=l.memo(ab);let am=ab;var ag,av=31536e9;function ay(e){var t=e.date,n=e.verboseDate,r=e.tooltip,i=e.children,a=ap(e,["date","verboseDate","tooltip","children"]),o=(0,l.useMemo)(function(){return t.toISOString()},[t]);return l.createElement("time",ad({},a,{dateTime:o,title:r?n:void 0}),i)}ay.propTypes={date:el().instanceOf(Date).isRequired,verboseDate:el().string,tooltip:el().bool.isRequired,children:el().string.isRequired};var aw=n(30381),a_=n.n(aw),aE=n(31657);function aS(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ak(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=Array(t);ne.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0?new ru.cA({graphQLErrors:i}):void 0;if(u===s.current.mutationId&&!c.ignoreResults){var f={called:!0,loading:!1,data:r,error:l,client:a};s.current.isMounted&&!(0,ra.D)(s.current.result,f)&&o(s.current.result=f)}var d=e.onCompleted||(null===(n=s.current.options)||void 0===n?void 0:n.onCompleted);return null==d||d(t.data,c),t}).catch(function(t){if(u===s.current.mutationId&&s.current.isMounted){var n,r={loading:!1,error:t,data:void 0,called:!0,client:a};(0,ra.D)(s.current.result,r)||o(s.current.result=r)}var i=e.onError||(null===(n=s.current.options)||void 0===n?void 0:n.onError);if(i)return i(t,c),{data:void 0,errors:t};throw t})},[]),c=(0,l.useCallback)(function(){s.current.isMounted&&o({called:!1,loading:!1,client:n})},[]);return(0,l.useEffect)(function(){return s.current.isMounted=!0,function(){s.current.isMounted=!1}},[]),[u,(0,n8.pi)({reset:c},a)]}var ou=n(59067),oc=n(28428),ol=n(11186),of=n(78513);function od(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var oh=function(e){return(0,b.createStyles)({paper:{display:"flex",margin:"".concat(2.5*e.spacing.unit,"px 0"),padding:"".concat(3*e.spacing.unit,"px ").concat(3.5*e.spacing.unit,"px")},content:{flex:1,width:"100%"},actions:od({marginTop:-(1.5*e.spacing.unit),marginLeft:-(4*e.spacing.unit)},e.breakpoints.up("sm"),{marginLeft:0,marginRight:-(1.5*e.spacing.unit)}),itemBlock:{border:"1px solid rgba(224, 224, 224, 1)",borderRadius:e.shape.borderRadius,padding:2*e.spacing.unit,marginTop:e.spacing.unit},itemBlockText:{overflowWrap:"anywhere"}})},op=(0,b.withStyles)(oh)(function(e){var t=e.actions,n=e.children,r=e.classes;return l.createElement(ia.default,{className:r.paper},l.createElement("div",{className:r.content},n),t&&l.createElement("div",{className:r.actions},t))}),ob=function(e){var t=e.title;return l.createElement(x.default,{variant:"subtitle2",gutterBottom:!0},t)},om=function(e){var t=e.children,n=e.value;return l.createElement(x.default,{variant:"body1",noWrap:!0},t||n)},og=(0,b.withStyles)(oh)(function(e){var t=e.children,n=e.classes,r=e.value;return l.createElement("div",{className:n.itemBlock},l.createElement(x.default,{variant:"body1",className:n.itemBlockText},t||r))});function ov(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);ne.length)&&(t=e.length);for(var n=0,r=Array(t);ne.length)&&(t=e.length);for(var n=0,r=Array(t);ne.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]-1}let sZ=sq;function sX(e,t){var n=this.__data__,r=s$(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}let sJ=sX;function sQ(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t-1&&e%1==0&&e-1&&e%1==0&&e<=cI}let cN=cD;var cP="[object Arguments]",cR="[object Array]",cj="[object Boolean]",cF="[object Date]",cY="[object Error]",cB="[object Function]",cU="[object Map]",cH="[object Number]",c$="[object Object]",cz="[object RegExp]",cG="[object Set]",cW="[object String]",cK="[object WeakMap]",cV="[object ArrayBuffer]",cq="[object DataView]",cZ="[object Float64Array]",cX="[object Int8Array]",cJ="[object Int16Array]",cQ="[object Int32Array]",c1="[object Uint8Array]",c0="[object Uint8ClampedArray]",c2="[object Uint16Array]",c3="[object Uint32Array]",c4={};function c5(e){return eD(e)&&cN(e.length)&&!!c4[eC(e)]}c4["[object Float32Array]"]=c4[cZ]=c4[cX]=c4[cJ]=c4[cQ]=c4[c1]=c4[c0]=c4[c2]=c4[c3]=!0,c4[cP]=c4[cR]=c4[cV]=c4[cj]=c4[cq]=c4[cF]=c4[cY]=c4[cB]=c4[cU]=c4[cH]=c4[c$]=c4[cz]=c4[cG]=c4[cW]=c4[cK]=!1;let c6=c5;function c9(e){return function(t){return e(t)}}let c8=c9;var c7=n(79730),le=c7.Z&&c7.Z.isTypedArray,lt=le?c8(le):c6;let ln=lt;var lr=Object.prototype.hasOwnProperty;function li(e,t){var n=cT(e),r=!n&&ck(e),i=!n&&!r&&(0,cM.Z)(e),a=!n&&!r&&!i&&ln(e),o=n||r||i||a,s=o?cm(e.length,String):[],u=s.length;for(var c in e)(t||lr.call(e,c))&&!(o&&("length"==c||i&&("offset"==c||"parent"==c)||a&&("buffer"==c||"byteLength"==c||"byteOffset"==c)||cC(c,u)))&&s.push(c);return s}let la=li;var lo=Object.prototype;function ls(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||lo)}let lu=ls;var lc=sM(Object.keys,Object);let ll=lc;var lf=Object.prototype.hasOwnProperty;function ld(e){if(!lu(e))return ll(e);var t=[];for(var n in Object(e))lf.call(e,n)&&"constructor"!=n&&t.push(n);return t}let lh=ld;function lp(e){return null!=e&&cN(e.length)&&!ui(e)}let lb=lp;function lm(e){return lb(e)?la(e):lh(e)}let lg=lm;function lv(e,t){return e&&cp(t,lg(t),e)}let ly=lv;function lw(e){var t=[];if(null!=e)for(var n in Object(e))t.push(n);return t}let l_=lw;var lE=Object.prototype.hasOwnProperty;function lS(e){if(!ed(e))return l_(e);var t=lu(e),n=[];for(var r in e)"constructor"==r&&(t||!lE.call(e,r))||n.push(r);return n}let lk=lS;function lx(e){return lb(e)?la(e,!0):lk(e)}let lT=lx;function lM(e,t){return e&&cp(t,lT(t),e)}let lO=lM;var lA=n(42896);function lL(e,t){var n=-1,r=e.length;for(t||(t=Array(r));++n=0||(i[n]=e[n]);return i}function hc(e){if(void 0===e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return e}var hl=function(e){return Array.isArray(e)&&0===e.length},hf=function(e){return"function"==typeof e},hd=function(e){return null!==e&&"object"==typeof e},hh=function(e){return String(Math.floor(Number(e)))===e},hp=function(e){return"[object String]"===Object.prototype.toString.call(e)},hb=function(e){return 0===l.Children.count(e)},hm=function(e){return hd(e)&&hf(e.then)};function hg(e,t,n,r){void 0===r&&(r=0);for(var i=d8(t);e&&r=0?[]:{}}}return(0===a?e:i)[o[a]]===n?e:(void 0===n?delete i[o[a]]:i[o[a]]=n,0===a&&void 0===n&&delete r[o[a]],r)}function hy(e,t,n,r){void 0===n&&(n=new WeakMap),void 0===r&&(r={});for(var i=0,a=Object.keys(e);i0?t.map(function(t){return x(t,hg(e,t))}):[Promise.resolve("DO_NOT_DELETE_YOU_WILL_BE_FIRED")]).then(function(e){return e.reduce(function(e,n,r){return"DO_NOT_DELETE_YOU_WILL_BE_FIRED"===n||n&&(e=hv(e,t[r],n)),e},{})})},[x]),M=(0,l.useCallback)(function(e){return Promise.all([T(e),h.validationSchema?k(e):{},h.validate?S(e):{}]).then(function(e){var t=e[0],n=e[1],r=e[2];return sx.all([t,n,r],{arrayMerge:hC})})},[h.validate,h.validationSchema,T,S,k]),O=hP(function(e){return void 0===e&&(e=_.values),E({type:"SET_ISVALIDATING",payload:!0}),M(e).then(function(e){return v.current&&(E({type:"SET_ISVALIDATING",payload:!1}),sh()(_.errors,e)||E({type:"SET_ERRORS",payload:e})),e})});(0,l.useEffect)(function(){o&&!0===v.current&&sh()(p.current,h.initialValues)&&O(p.current)},[o,O]);var A=(0,l.useCallback)(function(e){var t=e&&e.values?e.values:p.current,n=e&&e.errors?e.errors:b.current?b.current:h.initialErrors||{},r=e&&e.touched?e.touched:m.current?m.current:h.initialTouched||{},i=e&&e.status?e.status:g.current?g.current:h.initialStatus;p.current=t,b.current=n,m.current=r,g.current=i;var a=function(){E({type:"RESET_FORM",payload:{isSubmitting:!!e&&!!e.isSubmitting,errors:n,touched:r,status:i,values:t,isValidating:!!e&&!!e.isValidating,submitCount:e&&e.submitCount&&"number"==typeof e.submitCount?e.submitCount:0}})};if(h.onReset){var o=h.onReset(_.values,V);hm(o)?o.then(a):a()}else a()},[h.initialErrors,h.initialStatus,h.initialTouched]);(0,l.useEffect)(function(){!0===v.current&&!sh()(p.current,h.initialValues)&&(c&&(p.current=h.initialValues,A()),o&&O(p.current))},[c,h.initialValues,A,o,O]),(0,l.useEffect)(function(){c&&!0===v.current&&!sh()(b.current,h.initialErrors)&&(b.current=h.initialErrors||hk,E({type:"SET_ERRORS",payload:h.initialErrors||hk}))},[c,h.initialErrors]),(0,l.useEffect)(function(){c&&!0===v.current&&!sh()(m.current,h.initialTouched)&&(m.current=h.initialTouched||hx,E({type:"SET_TOUCHED",payload:h.initialTouched||hx}))},[c,h.initialTouched]),(0,l.useEffect)(function(){c&&!0===v.current&&!sh()(g.current,h.initialStatus)&&(g.current=h.initialStatus,E({type:"SET_STATUS",payload:h.initialStatus}))},[c,h.initialStatus,h.initialTouched]);var L=hP(function(e){if(y.current[e]&&hf(y.current[e].validate)){var t=hg(_.values,e),n=y.current[e].validate(t);return hm(n)?(E({type:"SET_ISVALIDATING",payload:!0}),n.then(function(e){return e}).then(function(t){E({type:"SET_FIELD_ERROR",payload:{field:e,value:t}}),E({type:"SET_ISVALIDATING",payload:!1})})):(E({type:"SET_FIELD_ERROR",payload:{field:e,value:n}}),Promise.resolve(n))}return h.validationSchema?(E({type:"SET_ISVALIDATING",payload:!0}),k(_.values,e).then(function(e){return e}).then(function(t){E({type:"SET_FIELD_ERROR",payload:{field:e,value:t[e]}}),E({type:"SET_ISVALIDATING",payload:!1})})):Promise.resolve()}),C=(0,l.useCallback)(function(e,t){var n=t.validate;y.current[e]={validate:n}},[]),I=(0,l.useCallback)(function(e){delete y.current[e]},[]),D=hP(function(e,t){return E({type:"SET_TOUCHED",payload:e}),(void 0===t?i:t)?O(_.values):Promise.resolve()}),N=(0,l.useCallback)(function(e){E({type:"SET_ERRORS",payload:e})},[]),P=hP(function(e,t){var r=hf(e)?e(_.values):e;return E({type:"SET_VALUES",payload:r}),(void 0===t?n:t)?O(r):Promise.resolve()}),R=(0,l.useCallback)(function(e,t){E({type:"SET_FIELD_ERROR",payload:{field:e,value:t}})},[]),j=hP(function(e,t,r){return E({type:"SET_FIELD_VALUE",payload:{field:e,value:t}}),(void 0===r?n:r)?O(hv(_.values,e,t)):Promise.resolve()}),F=(0,l.useCallback)(function(e,t){var n,r=t,i=e;if(!hp(e)){e.persist&&e.persist();var a=e.target?e.target:e.currentTarget,o=a.type,s=a.name,u=a.id,c=a.value,l=a.checked,f=(a.outerHTML,a.options),d=a.multiple;r=t||s||u,i=/number|range/.test(o)?(n=parseFloat(c),isNaN(n)?"":n):/checkbox/.test(o)?hD(hg(_.values,r),l,c):d?hI(f):c}r&&j(r,i)},[j,_.values]),Y=hP(function(e){if(hp(e))return function(t){return F(t,e)};F(e)}),B=hP(function(e,t,n){return void 0===t&&(t=!0),E({type:"SET_FIELD_TOUCHED",payload:{field:e,value:t}}),(void 0===n?i:n)?O(_.values):Promise.resolve()}),U=(0,l.useCallback)(function(e,t){e.persist&&e.persist();var n,r=e.target,i=r.name,a=r.id;r.outerHTML,B(t||i||a,!0)},[B]),H=hP(function(e){if(hp(e))return function(t){return U(t,e)};U(e)}),$=(0,l.useCallback)(function(e){hf(e)?E({type:"SET_FORMIK_STATE",payload:e}):E({type:"SET_FORMIK_STATE",payload:function(){return e}})},[]),z=(0,l.useCallback)(function(e){E({type:"SET_STATUS",payload:e})},[]),G=(0,l.useCallback)(function(e){E({type:"SET_ISSUBMITTING",payload:e})},[]),W=hP(function(){return E({type:"SUBMIT_ATTEMPT"}),O().then(function(e){var t,n=e instanceof Error;if(!n&&0===Object.keys(e).length){try{if(void 0===(t=q()))return}catch(r){throw r}return Promise.resolve(t).then(function(e){return v.current&&E({type:"SUBMIT_SUCCESS"}),e}).catch(function(e){if(v.current)throw E({type:"SUBMIT_FAILURE"}),e})}if(v.current&&(E({type:"SUBMIT_FAILURE"}),n))throw e})}),K=hP(function(e){e&&e.preventDefault&&hf(e.preventDefault)&&e.preventDefault(),e&&e.stopPropagation&&hf(e.stopPropagation)&&e.stopPropagation(),W().catch(function(e){console.warn("Warning: An unhandled error was caught from submitForm()",e)})}),V={resetForm:A,validateForm:O,validateField:L,setErrors:N,setFieldError:R,setFieldTouched:B,setFieldValue:j,setStatus:z,setSubmitting:G,setTouched:D,setValues:P,setFormikState:$,submitForm:W},q=hP(function(){return f(_.values,V)}),Z=hP(function(e){e&&e.preventDefault&&hf(e.preventDefault)&&e.preventDefault(),e&&e.stopPropagation&&hf(e.stopPropagation)&&e.stopPropagation(),A()}),X=(0,l.useCallback)(function(e){return{value:hg(_.values,e),error:hg(_.errors,e),touched:!!hg(_.touched,e),initialValue:hg(p.current,e),initialTouched:!!hg(m.current,e),initialError:hg(b.current,e)}},[_.errors,_.touched,_.values]),J=(0,l.useCallback)(function(e){return{setValue:function(t,n){return j(e,t,n)},setTouched:function(t,n){return B(e,t,n)},setError:function(t){return R(e,t)}}},[j,B,R]),Q=(0,l.useCallback)(function(e){var t=hd(e),n=t?e.name:e,r=hg(_.values,n),i={name:n,value:r,onChange:Y,onBlur:H};if(t){var a=e.type,o=e.value,s=e.as,u=e.multiple;"checkbox"===a?void 0===o?i.checked=!!r:(i.checked=!!(Array.isArray(r)&&~r.indexOf(o)),i.value=o):"radio"===a?(i.checked=r===o,i.value=o):"select"===s&&u&&(i.value=i.value||[],i.multiple=!0)}return i},[H,Y,_.values]),ee=(0,l.useMemo)(function(){return!sh()(p.current,_.values)},[p.current,_.values]),et=(0,l.useMemo)(function(){return void 0!==s?ee?_.errors&&0===Object.keys(_.errors).length:!1!==s&&hf(s)?s(h):s:_.errors&&0===Object.keys(_.errors).length},[s,ee,_.errors,h]);return ho({},_,{initialValues:p.current,initialErrors:b.current,initialTouched:m.current,initialStatus:g.current,handleBlur:H,handleChange:Y,handleReset:Z,handleSubmit:K,resetForm:A,setErrors:N,setFormikState:$,setFieldTouched:B,setFieldValue:j,setFieldError:R,setStatus:z,setSubmitting:G,setTouched:D,setValues:P,submitForm:W,validateForm:O,validateField:L,isValid:et,dirty:ee,unregisterField:I,registerField:C,getFieldProps:Q,getFieldMeta:X,getFieldHelpers:J,validateOnBlur:i,validateOnChange:n,validateOnMount:o})}function hM(e){var t=hT(e),n=e.component,r=e.children,i=e.render,a=e.innerRef;return(0,l.useImperativeHandle)(a,function(){return t}),(0,l.createElement)(h_,{value:t},n?(0,l.createElement)(n,t):i?i(t):r?hf(r)?r(t):hb(r)?null:l.Children.only(r):null)}function hO(e){var t={};if(e.inner){if(0===e.inner.length)return hv(t,e.path,e.message);for(var n=e.inner,r=Array.isArray(n),i=0,n=r?n:n[Symbol.iterator]();;){if(r){if(i>=n.length)break;a=n[i++]}else{if((i=n.next()).done)break;a=i.value}var a,o=a;hg(t,o.path)||(t=hv(t,o.path,o.message))}}return t}function hA(e,t,n,r){void 0===n&&(n=!1),void 0===r&&(r={});var i=hL(e);return t[n?"validateSync":"validate"](i,{abortEarly:!1,context:r})}function hL(e){var t=Array.isArray(e)?[]:{};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){var r=String(n);!0===Array.isArray(e[r])?t[r]=e[r].map(function(e){return!0===Array.isArray(e)||sj(e)?hL(e):""!==e?e:void 0}):sj(e[r])?t[r]=hL(e[r]):t[r]=""!==e[r]?e[r]:void 0}return t}function hC(e,t,n){var r=e.slice();return t.forEach(function(t,i){if(void 0===r[i]){var a=!1!==n.clone&&n.isMergeableObject(t);r[i]=a?sx(Array.isArray(t)?[]:{},t,n):t}else n.isMergeableObject(t)?r[i]=sx(e[i],t,n):-1===e.indexOf(t)&&r.push(t)}),r}function hI(e){return Array.from(e).filter(function(e){return e.selected}).map(function(e){return e.value})}function hD(e,t,n){if("boolean"==typeof e)return Boolean(t);var r=[],i=!1,a=-1;if(Array.isArray(e))r=e,i=(a=e.indexOf(n))>=0;else if(!n||"true"==n||"false"==n)return Boolean(t);return t&&n&&!i?r.concat(n):i?r.slice(0,a).concat(r.slice(a+1)):r}var hN="undefined"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement?l.useLayoutEffect:l.useEffect;function hP(e){var t=(0,l.useRef)(e);return hN(function(){t.current=e}),(0,l.useCallback)(function(){for(var e=arguments.length,n=Array(e),r=0;re?t:e},0);return Array.from(ho({},e,{length:t+1}))};(function(e){function t(t){var n;return(n=e.call(this,t)||this).updateArrayField=function(e,t,r){var i=n.props,a=i.name;(0,i.formik.setFormikState)(function(n){var i="function"==typeof r?r:e,o="function"==typeof t?t:e,s=hv(n.values,a,e(hg(n.values,a))),u=r?i(hg(n.errors,a)):void 0,c=t?o(hg(n.touched,a)):void 0;return hl(u)&&(u=void 0),hl(c)&&(c=void 0),ho({},n,{values:s,errors:r?hv(n.errors,a,u):n.errors,touched:t?hv(n.touched,a,c):n.touched})})},n.push=function(e){return n.updateArrayField(function(t){return[].concat(hH(t),[ha(e)])},!1,!1)},n.handlePush=function(e){return function(){return n.push(e)}},n.swap=function(e,t){return n.updateArrayField(function(n){return hY(n,e,t)},!0,!0)},n.handleSwap=function(e,t){return function(){return n.swap(e,t)}},n.move=function(e,t){return n.updateArrayField(function(n){return hF(n,e,t)},!0,!0)},n.handleMove=function(e,t){return function(){return n.move(e,t)}},n.insert=function(e,t){return n.updateArrayField(function(n){return hB(n,e,t)},function(t){return hB(t,e,null)},function(t){return hB(t,e,null)})},n.handleInsert=function(e,t){return function(){return n.insert(e,t)}},n.replace=function(e,t){return n.updateArrayField(function(n){return hU(n,e,t)},!1,!1)},n.handleReplace=function(e,t){return function(){return n.replace(e,t)}},n.unshift=function(e){var t=-1;return n.updateArrayField(function(n){var r=n?[e].concat(n):[e];return t<0&&(t=r.length),r},function(e){var n=e?[null].concat(e):[null];return t<0&&(t=n.length),n},function(e){var n=e?[null].concat(e):[null];return t<0&&(t=n.length),n}),t},n.handleUnshift=function(e){return function(){return n.unshift(e)}},n.handleRemove=function(e){return function(){return n.remove(e)}},n.handlePop=function(){return function(){return n.pop()}},n.remove=n.remove.bind(hc(n)),n.pop=n.pop.bind(hc(n)),n}hs(t,e);var n=t.prototype;return n.componentDidUpdate=function(e){this.props.validateOnChange&&this.props.formik.validateOnChange&&!sh()(hg(e.formik.values,e.name),hg(this.props.formik.values,this.props.name))&&this.props.formik.validateForm(this.props.formik.values)},n.remove=function(e){var t;return this.updateArrayField(function(n){var r=n?hH(n):[];return t||(t=r[e]),hf(r.splice)&&r.splice(e,1),r},!0,!0),t},n.pop=function(){var e;return this.updateArrayField(function(t){var n=t;return e||(e=n&&n.pop&&n.pop()),n},!0,!0),e},n.render=function(){var e={push:this.push,pop:this.pop,swap:this.swap,move:this.move,insert:this.insert,replace:this.replace,unshift:this.unshift,remove:this.remove,handlePush:this.handlePush,handlePop:this.handlePop,handleSwap:this.handleSwap,handleMove:this.handleMove,handleInsert:this.handleInsert,handleReplace:this.handleReplace,handleUnshift:this.handleUnshift,handleRemove:this.handleRemove},t=this.props,n=t.component,r=t.render,i=t.children,a=t.name,o=hu(t.formik,["validate","validationSchema"]),s=ho({},e,{form:o,name:a});return n?(0,l.createElement)(n,s):r?r(s):i?"function"==typeof i?i(s):hb(i)?null:l.Children.only(i):null},t})(l.Component).defaultProps={validateOnChange:!0},l.Component,l.Component;var h$=n(24802),hz=n(71209),hG=n(91750),hW=n(11970),hK=n(4689),hV=n(67598),hq=function(){return(hq=Object.assign||function(e){for(var t,n=1,r=arguments.length;nt.indexOf(r)&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var i=0,r=Object.getOwnPropertySymbols(e);it.indexOf(r[i])&&(n[r[i]]=e[r[i]]);return n}function hX(e){var t=e.disabled,n=e.field,r=n.onBlur,i=hZ(n,["onBlur"]),a=e.form,o=a.isSubmitting,s=a.touched,u=a.errors,c=e.onBlur,l=e.helperText,f=hZ(e,["disabled","field","form","onBlur","helperText"]),d=hg(u,i.name),h=hg(s,i.name)&&!!d;return hq(hq({variant:f.variant,error:h,helperText:h?d:l,disabled:null!=t?t:o,onBlur:null!=c?c:function(e){r(null!=e?e:i.name)}},i),f)}function hJ(e){var t=e.children,n=hZ(e,["children"]);return(0,l.createElement)(i_.Z,hq({},hX(n)),t)}function hQ(e){var t=e.disabled,n=e.field,r=n.onBlur,i=hZ(n,["onBlur"]),a=e.form.isSubmitting,o=(e.type,e.onBlur),s=hZ(e,["disabled","field","form","type","onBlur"]);return hq(hq({disabled:null!=t?t:a,onBlur:null!=o?o:function(e){r(null!=e?e:i.name)}},i),s)}function h1(e){return(0,l.createElement)(h$.Z,hq({},hQ(e)))}function h0(e){var t,n=e.disabled,r=e.field,i=r.onBlur,a=hZ(r,["onBlur"]),o=e.form.isSubmitting,s=(e.type,e.onBlur),u=hZ(e,["disabled","field","form","type","onBlur"]);return hq(hq({disabled:null!=n?n:o,indeterminate:!Array.isArray(a.value)&&null==a.value,onBlur:null!=s?s:function(e){i(null!=e?e:a.name)}},a),u)}function h2(e){return(0,l.createElement)(hz.Z,hq({},h0(e)))}function h3(e){var t=e.Label,n=hZ(e,["Label"]);return(0,l.createElement)(hG.Z,hq({control:(0,l.createElement)(hz.Z,hq({},h0(n)))},t))}function h4(e){var t=e.disabled,n=e.field,r=n.onBlur,i=hZ(n,["onBlur"]),a=e.form.isSubmitting,o=e.onBlur,s=hZ(e,["disabled","field","form","onBlur"]);return hq(hq({disabled:null!=t?t:a,onBlur:null!=o?o:function(e){r(null!=e?e:i.name)}},i),s)}function h5(e){return(0,l.createElement)(hW.default,hq({},h4(e)))}function h6(e){var t=e.field,n=t.onBlur,r=hZ(t,["onBlur"]),i=(e.form,e.onBlur),a=hZ(e,["field","form","onBlur"]);return hq(hq({onBlur:null!=i?i:function(e){n(null!=e?e:r.name)}},r),a)}function h9(e){return(0,l.createElement)(hK.Z,hq({},h6(e)))}function h8(e){var t=e.disabled,n=e.field,r=n.onBlur,i=hZ(n,["onBlur"]),a=e.form.isSubmitting,o=e.onBlur,s=hZ(e,["disabled","field","form","onBlur"]);return hq(hq({disabled:null!=t?t:a,onBlur:null!=o?o:function(e){r(null!=e?e:i.name)}},i),s)}function h7(e){return(0,l.createElement)(hV.default,hq({},h8(e)))}hJ.displayName="FormikMaterialUITextField",h1.displayName="FormikMaterialUISwitch",h2.displayName="FormikMaterialUICheckbox",h3.displayName="FormikMaterialUICheckboxWithLabel",h5.displayName="FormikMaterialUISelect",h9.displayName="FormikMaterialUIRadioGroup",h7.displayName="FormikMaterialUIInputBase";try{a=Map}catch(pe){}try{o=Set}catch(pt){}function pn(e,t,n){if(!e||"object"!=typeof e||"function"==typeof e)return e;if(e.nodeType&&"cloneNode"in e)return e.cloneNode(!0);if(e instanceof Date)return new Date(e.getTime());if(e instanceof RegExp)return RegExp(e);if(Array.isArray(e))return e.map(pr);if(a&&e instanceof a)return new Map(Array.from(e.entries()));if(o&&e instanceof o)return new Set(Array.from(e.values()));if(e instanceof Object){t.push(e);var r=Object.create(e);for(var i in n.push(r),e){var s=t.findIndex(function(t){return t===e[i]});r[i]=s>-1?n[s]:pn(e[i],t,n)}return r}return e}function pr(e){return pn(e,[],[])}let pi=Object.prototype.toString,pa=Error.prototype.toString,po=RegExp.prototype.toString,ps="undefined"!=typeof Symbol?Symbol.prototype.toString:()=>"",pu=/^Symbol\((.*)\)(.*)$/;function pc(e){if(e!=+e)return"NaN";let t=0===e&&1/e<0;return t?"-0":""+e}function pl(e,t=!1){if(null==e||!0===e||!1===e)return""+e;let n=typeof e;if("number"===n)return pc(e);if("string"===n)return t?`"${e}"`:e;if("function"===n)return"[Function "+(e.name||"anonymous")+"]";if("symbol"===n)return ps.call(e).replace(pu,"Symbol($1)");let r=pi.call(e).slice(8,-1);return"Date"===r?isNaN(e.getTime())?""+e:e.toISOString(e):"Error"===r||e instanceof Error?"["+pa.call(e)+"]":"RegExp"===r?po.call(e):null}function pf(e,t){let n=pl(e,t);return null!==n?n:JSON.stringify(e,function(e,n){let r=pl(this[e],t);return null!==r?r:n},2)}let pd={default:"${path} is invalid",required:"${path} is a required field",oneOf:"${path} must be one of the following values: ${values}",notOneOf:"${path} must not be one of the following values: ${values}",notType({path:e,type:t,value:n,originalValue:r}){let i=null!=r&&r!==n,a=`${e} must be a \`${t}\` type, but the final value was: \`${pf(n,!0)}\``+(i?` (cast from the value \`${pf(r,!0)}\`).`:".");return null===n&&(a+='\n If "null" is intended as an empty value be sure to mark the schema as `.nullable()`'),a},defined:"${path} must be defined"},ph={length:"${path} must be exactly ${length} characters",min:"${path} must be at least ${min} characters",max:"${path} must be at most ${max} characters",matches:'${path} must match the following: "${regex}"',email:"${path} must be a valid email",url:"${path} must be a valid URL",uuid:"${path} must be a valid UUID",trim:"${path} must be a trimmed string",lowercase:"${path} must be a lowercase string",uppercase:"${path} must be a upper case string"},pp={min:"${path} must be greater than or equal to ${min}",max:"${path} must be less than or equal to ${max}",lessThan:"${path} must be less than ${less}",moreThan:"${path} must be greater than ${more}",positive:"${path} must be a positive number",negative:"${path} must be a negative number",integer:"${path} must be an integer"},pb={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"},pm={isValue:"${path} field must be ${value}"},pg={noUnknown:"${path} field has unspecified keys: ${unknown}"},pv={min:"${path} field must have at least ${min} items",max:"${path} field must have less than or equal to ${max} items",length:"${path} must be have ${length} items"};Object.assign(Object.create(null),{mixed:pd,string:ph,number:pp,date:pb,object:pg,array:pv,boolean:pm});var py=n(18721),pw=n.n(py);let p_=e=>e&&e.__isYupSchema__;class pE{constructor(e,t){if(this.refs=e,this.refs=e,"function"==typeof t){this.fn=t;return}if(!pw()(t,"is"))throw TypeError("`is:` is required for `when()` conditions");if(!t.then&&!t.otherwise)throw TypeError("either `then:` or `otherwise:` is required for `when()` conditions");let{is:n,then:r,otherwise:i}=t,a="function"==typeof n?n:(...e)=>e.every(e=>e===n);this.fn=function(...e){let t=e.pop(),n=e.pop(),o=a(...e)?r:i;if(o)return"function"==typeof o?o(n):n.concat(o.resolve(t))}}resolve(e,t){let n=this.refs.map(e=>e.getValue(null==t?void 0:t.value,null==t?void 0:t.parent,null==t?void 0:t.context)),r=this.fn.apply(e,n.concat(e,t));if(void 0===r||r===e)return e;if(!p_(r))throw TypeError("conditions must return a schema object");return r.resolve(t)}}let pS=pE;function pk(e){return null==e?[]:[].concat(e)}function px(){return(px=Object.assign||function(e){for(var t=1;tpf(t[n])):"function"==typeof e?e(t):e}static isError(e){return e&&"ValidationError"===e.name}constructor(e,t,n,r){super(),this.name="ValidationError",this.value=t,this.path=n,this.type=r,this.errors=[],this.inner=[],pk(e).forEach(e=>{pM.isError(e)?(this.errors.push(...e.errors),this.inner=this.inner.concat(e.inner.length?e.inner:e)):this.errors.push(e)}),this.message=this.errors.length>1?`${this.errors.length} errors occurred`:this.errors[0],Error.captureStackTrace&&Error.captureStackTrace(this,pM)}}let pO=e=>{let t=!1;return(...n)=>{t||(t=!0,e(...n))}};function pA(e,t){let{endEarly:n,tests:r,args:i,value:a,errors:o,sort:s,path:u}=e,c=pO(t),l=r.length,f=[];if(o=o||[],!l)return o.length?c(new pM(o,a,u)):c(null,a);for(let d=0;d=0||(i[n]=e[n]);return i}function pj(e){function t(t,n){let{value:r,path:i="",label:a,options:o,originalValue:s,sync:u}=t,c=pR(t,["value","path","label","options","originalValue","sync"]),{name:l,test:f,params:d,message:h}=e,{parent:p,context:b}=o;function m(e){return pN.isRef(e)?e.getValue(r,p,b):e}function g(e={}){let t=pC()(pP({value:r,originalValue:s,label:a,path:e.path||i},d,e.params),m),n=new pM(pM.formatError(e.message||h,t),r,t.path,e.type||l);return n.params=t,n}let v=pP({path:i,parent:p,type:l,createError:g,resolve:m,options:o,originalValue:s},c);if(!u){try{Promise.resolve(f.call(v,r,v)).then(e=>{pM.isError(e)?n(e):e?n(null,e):n(g())})}catch(y){n(y)}return}let w;try{var _;if(w=f.call(v,r,v),"function"==typeof(null==(_=w)?void 0:_.then))throw Error(`Validation test of type: "${v.type}" returned a Promise during a synchronous validate. This test will finish after the validate call has returned`)}catch(E){n(E);return}pM.isError(w)?n(w):w?n(null,w):n(g())}return t.OPTIONS=e,t}pN.prototype.__isYupRef=!0;let pF=e=>e.substr(0,e.length-1).substr(1);function pY(e,t,n,r=n){let i,a,o;return t?((0,pI.forEach)(t,(s,u,c)=>{let l=u?pF(s):s;if((e=e.resolve({context:r,parent:i,value:n})).innerType){let f=c?parseInt(l,10):0;if(n&&f>=n.length)throw Error(`Yup.reach cannot resolve an array item at index: ${s}, in the path: ${t}. because there is no value at that index. `);i=n,n=n&&n[f],e=e.innerType}if(!c){if(!e.fields||!e.fields[l])throw Error(`The schema does not contain the path: ${t}. (failed at: ${o} which is a type: "${e._type}")`);i=n,n=n&&n[l],e=e.fields[l]}a=l,o=u?"["+s+"]":"."+s}),{schema:e,parent:i,parentPath:a}):{parent:i,parentPath:t,schema:e}}class pB{constructor(){this.list=new Set,this.refs=new Map}get size(){return this.list.size+this.refs.size}describe(){let e=[];for(let t of this.list)e.push(t);for(let[,n]of this.refs)e.push(n.describe());return e}toArray(){return Array.from(this.list).concat(Array.from(this.refs.values()))}add(e){pN.isRef(e)?this.refs.set(e.key,e):this.list.add(e)}delete(e){pN.isRef(e)?this.refs.delete(e.key):this.list.delete(e)}has(e,t){if(this.list.has(e))return!0;let n,r=this.refs.values();for(;!(n=r.next()).done;)if(t(n.value)===e)return!0;return!1}clone(){let e=new pB;return e.list=new Set(this.list),e.refs=new Map(this.refs),e}merge(e,t){let n=this.clone();return e.list.forEach(e=>n.add(e)),e.refs.forEach(e=>n.add(e)),t.list.forEach(e=>n.delete(e)),t.refs.forEach(e=>n.delete(e)),n}}function pU(){return(pU=Object.assign||function(e){for(var t=1;t{this.typeError(pd.notType)}),this.type=(null==e?void 0:e.type)||"mixed",this.spec=pU({strip:!1,strict:!1,abortEarly:!0,recursive:!0,nullable:!1,presence:"optional"},null==e?void 0:e.spec)}get _type(){return this.type}_typeCheck(e){return!0}clone(e){if(this._mutate)return e&&Object.assign(this.spec,e),this;let t=Object.create(Object.getPrototypeOf(this));return t.type=this.type,t._typeError=this._typeError,t._whitelistError=this._whitelistError,t._blacklistError=this._blacklistError,t._whitelist=this._whitelist.clone(),t._blacklist=this._blacklist.clone(),t.exclusiveTests=pU({},this.exclusiveTests),t.deps=[...this.deps],t.conditions=[...this.conditions],t.tests=[...this.tests],t.transforms=[...this.transforms],t.spec=pr(pU({},this.spec,e)),t}label(e){var t=this.clone();return t.spec.label=e,t}meta(...e){if(0===e.length)return this.spec.meta;let t=this.clone();return t.spec.meta=Object.assign(t.spec.meta||{},e[0]),t}withMutation(e){let t=this._mutate;this._mutate=!0;let n=e(this);return this._mutate=t,n}concat(e){if(!e||e===this)return this;if(e.type!==this.type&&"mixed"!==this.type)throw TypeError(`You cannot \`concat()\` schema's of different types: ${this.type} and ${e.type}`);let t=this,n=e.clone(),r=pU({},t.spec,n.spec);return n.spec=r,n._typeError||(n._typeError=t._typeError),n._whitelistError||(n._whitelistError=t._whitelistError),n._blacklistError||(n._blacklistError=t._blacklistError),n._whitelist=t._whitelist.merge(e._whitelist,e._blacklist),n._blacklist=t._blacklist.merge(e._blacklist,e._whitelist),n.tests=t.tests,n.exclusiveTests=t.exclusiveTests,n.withMutation(t=>{e.tests.forEach(e=>{t.test(e.OPTIONS)})}),n}isType(e){return!!this.spec.nullable&&null===e||this._typeCheck(e)}resolve(e){let t=this;if(t.conditions.length){let n=t.conditions;(t=t.clone()).conditions=[],t=(t=n.reduce((t,n)=>n.resolve(t,e),t)).resolve(e)}return t}cast(e,t={}){let n=this.resolve(pU({value:e},t)),r=n._cast(e,t);if(void 0!==e&&!1!==t.assert&&!0!==n.isType(r)){let i=pf(e),a=pf(r);throw TypeError(`The value of ${t.path||"field"} could not be cast to a value that satisfies the schema type: "${n._type}". + */ Object.defineProperty(t,"__esModule",{value:!0}),"undefined"==typeof window||"function"!=typeof MessageChannel){var n,r,i,a,o,s=null,u=null,c=function(){if(null!==s)try{var e=t.unstable_now();s(!0,e),s=null}catch(n){throw setTimeout(c,0),n}},l=Date.now();t.unstable_now=function(){return Date.now()-l},n=function(e){null!==s?setTimeout(n,0,e):(s=e,setTimeout(c,0))},r=function(e,t){u=setTimeout(e,t)},i=function(){clearTimeout(u)},a=function(){return!1},o=t.unstable_forceFrameRate=function(){}}else{var f=window.performance,d=window.Date,h=window.setTimeout,p=window.clearTimeout;if("undefined"!=typeof console){var b=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://fb.me/react-polyfills"),"function"!=typeof b&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills")}if("object"==typeof f&&"function"==typeof f.now)t.unstable_now=function(){return f.now()};else{var m=d.now();t.unstable_now=function(){return d.now()-m}}var g=!1,v=null,y=-1,w=5,_=0;a=function(){return t.unstable_now()>=_},o=function(){},t.unstable_forceFrameRate=function(e){0>e||125M(o,n))void 0!==u&&0>M(u,o)?(e[r]=u,e[s]=n,r=s):(e[r]=o,e[a]=n,r=a);else if(void 0!==u&&0>M(u,n))e[r]=u,e[s]=n,r=s;else break a}}return t}return null}function M(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}var O=[],A=[],L=1,C=null,I=3,D=!1,N=!1,P=!1;function R(e){for(var t=x(A);null!==t;){if(null===t.callback)T(A);else if(t.startTime<=e)T(A),t.sortIndex=t.expirationTime,k(O,t);else break;t=x(A)}}function j(e){if(P=!1,R(e),!N){if(null!==x(O))N=!0,n(F);else{var t=x(A);null!==t&&r(j,t.startTime-e)}}}function F(e,n){N=!1,P&&(P=!1,i()),D=!0;var o=I;try{for(R(n),C=x(O);null!==C&&(!(C.expirationTime>n)||e&&!a());){var s=C.callback;if(null!==s){C.callback=null,I=C.priorityLevel;var u=s(C.expirationTime<=n);n=t.unstable_now(),"function"==typeof u?C.callback=u:C===x(O)&&T(O),R(n)}else T(O);C=x(O)}if(null!==C)var c=!0;else{var l=x(A);null!==l&&r(j,l.startTime-n),c=!1}return c}finally{C=null,I=o,D=!1}}function Y(e){switch(e){case 1:return -1;case 2:return 250;case 5:return 1073741823;case 4:return 1e4;default:return 5e3}}var B=o;t.unstable_ImmediatePriority=1,t.unstable_UserBlockingPriority=2,t.unstable_NormalPriority=3,t.unstable_IdlePriority=5,t.unstable_LowPriority=4,t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=I;I=e;try{return t()}finally{I=n}},t.unstable_next=function(e){switch(I){case 1:case 2:case 3:var t=3;break;default:t=I}var n=I;I=t;try{return e()}finally{I=n}},t.unstable_scheduleCallback=function(e,a,o){var s=t.unstable_now();if("object"==typeof o&&null!==o){var u=o.delay;u="number"==typeof u&&0s?(e.sortIndex=u,k(A,e),null===x(O)&&e===x(A)&&(P?i():P=!0,r(j,u-s))):(e.sortIndex=o,k(O,e),N||D||(N=!0,n(F))),e},t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_wrapCallback=function(e){var t=I;return function(){var n=I;I=t;try{return e.apply(this,arguments)}finally{I=n}}},t.unstable_getCurrentPriorityLevel=function(){return I},t.unstable_shouldYield=function(){var e=t.unstable_now();R(e);var n=x(O);return n!==C&&null!==C&&null!==n&&null!==n.callback&&n.startTime<=e&&n.expirationTime>5==6?2:e>>4==14?3:e>>3==30?4:e>>6==2?-1:-2}function c(e,t,n){var r=t.length-1;if(r=0?(i>0&&(e.lastNeed=i-1),i):--r=0?(i>0&&(e.lastNeed=i-2),i):--r=0?(i>0&&(2===i?i=0:e.lastNeed=i-3),i):0}function l(e,t,n){if((192&t[0])!=128)return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if((192&t[1])!=128)return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&(192&t[2])!=128)return e.lastNeed=2,"�"}}function f(e){var t=this.lastTotal-this.lastNeed,n=l(this,e,t);return void 0!==n?n:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):void(e.copy(this.lastChar,t,0,e.length),this.lastNeed-=e.length)}function d(e,t){var n=c(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=n;var r=e.length-(n-this.lastNeed);return e.copy(this.lastChar,0,r),e.toString("utf8",t,r)}function h(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"�":t}function p(e,t){if((e.length-t)%2==0){var n=e.toString("utf16le",t);if(n){var r=n.charCodeAt(n.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],n.slice(0,-1)}return n}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function b(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var n=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,n)}return t}function m(e,t){var n=(e.length-t)%3;return 0===n?e.toString("base64",t):(this.lastNeed=3-n,this.lastTotal=3,1===n?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-n))}function g(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function v(e){return e.toString(this.encoding)}function y(e){return e&&e.length?this.write(e):""}t.s=s,s.prototype.write=function(e){var t,n;if(0===e.length)return"";if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";n=this.lastNeed,this.lastNeed=0}else n=0;return n */ var r=n(48764),i=r.Buffer;function a(e,t){for(var n in e)t[n]=e[n]}function o(e,t,n){return i(e,t,n)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?e.exports=r:(a(r,t),t.Buffer=o),o.prototype=Object.create(i.prototype),a(i,o),o.from=function(e,t,n){if("number"==typeof e)throw TypeError("Argument must not be a number");return i(e,t,n)},o.alloc=function(e,t,n){if("number"!=typeof e)throw TypeError("Argument must be a number");var r=i(e);return void 0!==t?"string"==typeof n?r.fill(t,n):r.fill(t):r.fill(0),r},o.allocUnsafe=function(e){if("number"!=typeof e)throw TypeError("Argument must be a number");return i(e)},o.allocUnsafeSlow=function(e){if("number"!=typeof e)throw TypeError("Argument must be a number");return r.SlowBuffer(e)}},93379(e,t,n){"use strict";var r,i,a=function(){return void 0===r&&(r=Boolean(window&&document&&document.all&&!window.atob)),r},o=(i={},function(e){if(void 0===i[e]){var t=document.querySelector(e);if(window.HTMLIFrameElement&&t instanceof window.HTMLIFrameElement)try{t=t.contentDocument.head}catch(n){t=null}i[e]=t}return i[e]}),s=[];function u(e){for(var t=-1,n=0;nOj});var r,i,a,o,s,u,c,l=n(67294),f=n.t(l,2),d=n(39814),h=n(5977),p=n(57209),b=n(32316),m=n(95880),g=n(17051),v=n(71381),y=n(81701),w=n(3022),_=n(60323),E=n(87591),S=n(25649),k=n(28902),x=n(71426),T=n(48884),M=n(94184),O=n.n(M),A=n(37703),L=n(73935),C=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__;n0},e.prototype.connect_=function(){I&&!this.connected_&&(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),Y?(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(){I&&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;F.some(function(e){return!!~n.indexOf(e)})&&this.refresh()},e.getInstance=function(){return this.instance_||(this.instance_=new e),this.instance_},e.instance_=null,e}(),U=function(e,t){for(var n=0,r=Object.keys(t);n0},e}(),er="undefined"!=typeof WeakMap?new WeakMap:new C,ei=function(){function e(t){if(!(this instanceof e))throw TypeError("Cannot call a class as a function.");if(!arguments.length)throw TypeError("1 argument required, but only 0 present.");var n=B.getInstance(),r=new en(t,n,this);er.set(this,r)}return e}();["observe","unobserve","disconnect"].forEach(function(e){ei.prototype[e]=function(){var t;return(t=er.get(this))[e].apply(t,arguments)}});var ea=void 0!==D.ResizeObserver?D.ResizeObserver:ei;let eo=ea;var es=function(e){var t=[],n=null,r=function(){for(var r=arguments.length,i=Array(r),a=0;a=t||n<0||f&&r>=a}function g(){var e=eb();if(m(e))return v(e);s=setTimeout(g,b(e))}function v(e){return(s=void 0,d&&r)?h(e):(r=i=void 0,o)}function y(){void 0!==s&&clearTimeout(s),c=0,r=u=i=s=void 0}function w(){return void 0===s?o:v(eb())}function _(){var e=eb(),n=m(e);if(r=arguments,i=this,u=e,n){if(void 0===s)return p(u);if(f)return clearTimeout(s),s=setTimeout(g,t),h(u)}return void 0===s&&(s=setTimeout(g,t)),o}return t=ez(t)||0,ed(n)&&(l=!!n.leading,a=(f="maxWait"in n)?eW(ez(n.maxWait)||0,t):a,d="trailing"in n?!!n.trailing:d),_.cancel=y,_.flush=w,_}let eq=eV;var eZ="Expected a function";function eX(e,t,n){var r=!0,i=!0;if("function"!=typeof e)throw TypeError(eZ);return ed(n)&&(r="leading"in n?!!n.leading:r,i="trailing"in n?!!n.trailing:i),eq(e,t,{leading:r,maxWait:t,trailing:i})}let eJ=eX;var eQ={debounce:eq,throttle:eJ},e1=function(e){return eQ[e]},e0=function(e){return"function"==typeof e},e2=function(){return"undefined"==typeof window},e3=function(e){return e instanceof Element||e instanceof HTMLDocument};function e4(e){return(e4="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function e6(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}function e5(e,t){for(var n=0;ne.length)&&(t=e.length);for(var n=0,r=Array(t);ne.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&l.createElement(tG.Z,{variant:"indeterminate",classes:r}))};tK.propTypes={fetchCount:el().number.isRequired};let tV=(0,b.withStyles)(tW)(tK);var tq=n(5536);let tZ=n.p+"ba8bbf16ebf8e1d05bef.svg";function tX(){return(tX=Object.assign||function(e){for(var t=1;t120){for(var d=Math.floor(u/80),h=u%80,p=[],b=0;b0},name:{enumerable:!1},nodes:{enumerable:!1},source:{enumerable:!1},positions:{enumerable:!1},originalError:{enumerable:!1}}),null!=s&&s.stack)?(Object.defineProperty(nf(b),"stack",{value:s.stack,writable:!0,configurable:!0}),nl(b)):(Error.captureStackTrace?Error.captureStackTrace(nf(b),n):Object.defineProperty(nf(b),"stack",{value:Error().stack,writable:!0,configurable:!0}),b)}return ns(n,[{key:"toString",value:function(){return nw(this)}},{key:t4.YF,get:function(){return"Object"}}]),n}(nd(Error));function ny(e){return void 0===e||0===e.length?void 0:e}function nw(e){var t=e.message;if(e.nodes)for(var n=0,r=e.nodes;n",EOF:"",BANG:"!",DOLLAR:"$",AMP:"&",PAREN_L:"(",PAREN_R:")",SPREAD:"...",COLON:":",EQUALS:"=",AT:"@",BRACKET_L:"[",BRACKET_R:"]",BRACE_L:"{",PIPE:"|",BRACE_R:"}",NAME:"Name",INT:"Int",FLOAT:"Float",STRING:"String",BLOCK_STRING:"BlockString",COMMENT:"Comment"}),nx=n(10143),nT=Object.freeze({QUERY:"QUERY",MUTATION:"MUTATION",SUBSCRIPTION:"SUBSCRIPTION",FIELD:"FIELD",FRAGMENT_DEFINITION:"FRAGMENT_DEFINITION",FRAGMENT_SPREAD:"FRAGMENT_SPREAD",INLINE_FRAGMENT:"INLINE_FRAGMENT",VARIABLE_DEFINITION:"VARIABLE_DEFINITION",SCHEMA:"SCHEMA",SCALAR:"SCALAR",OBJECT:"OBJECT",FIELD_DEFINITION:"FIELD_DEFINITION",ARGUMENT_DEFINITION:"ARGUMENT_DEFINITION",INTERFACE:"INTERFACE",UNION:"UNION",ENUM:"ENUM",ENUM_VALUE:"ENUM_VALUE",INPUT_OBJECT:"INPUT_OBJECT",INPUT_FIELD_DEFINITION:"INPUT_FIELD_DEFINITION"}),nM=n(87392),nO=function(){function e(e){var t=new nS.WU(nk.SOF,0,0,0,0,null);this.source=e,this.lastToken=t,this.token=t,this.line=1,this.lineStart=0}var t=e.prototype;return t.advance=function(){return this.lastToken=this.token,this.token=this.lookahead()},t.lookahead=function(){var e,t=this.token;if(t.kind!==nk.EOF)do t=null!==(e=t.next)&&void 0!==e?e:t.next=nC(this,t);while(t.kind===nk.COMMENT)return t},e}();function nA(e){return e===nk.BANG||e===nk.DOLLAR||e===nk.AMP||e===nk.PAREN_L||e===nk.PAREN_R||e===nk.SPREAD||e===nk.COLON||e===nk.EQUALS||e===nk.AT||e===nk.BRACKET_L||e===nk.BRACKET_R||e===nk.BRACE_L||e===nk.PIPE||e===nk.BRACE_R}function nL(e){return isNaN(e)?nk.EOF:e<127?JSON.stringify(String.fromCharCode(e)):'"\\u'.concat(("00"+e.toString(16).toUpperCase()).slice(-4),'"')}function nC(e,t){for(var n=e.source,r=n.body,i=r.length,a=t.end;a31||9===a))return new nS.WU(nk.COMMENT,t,s,n,r,i,o.slice(t+1,s))}function nN(e,t,n,r,i,a){var o=e.body,s=n,u=t,c=!1;if(45===s&&(s=o.charCodeAt(++u)),48===s){if((s=o.charCodeAt(++u))>=48&&s<=57)throw n_(e,u,"Invalid number, unexpected digit after 0: ".concat(nL(s),"."))}else u=nP(e,u,s),s=o.charCodeAt(u);if(46===s&&(c=!0,s=o.charCodeAt(++u),u=nP(e,u,s),s=o.charCodeAt(u)),(69===s||101===s)&&(c=!0,(43===(s=o.charCodeAt(++u))||45===s)&&(s=o.charCodeAt(++u)),u=nP(e,u,s),s=o.charCodeAt(u)),46===s||nU(s))throw n_(e,u,"Invalid number, expected digit but got: ".concat(nL(s),"."));return new nS.WU(c?nk.FLOAT:nk.INT,t,u,r,i,a,o.slice(t,u))}function nP(e,t,n){var r=e.body,i=t,a=n;if(a>=48&&a<=57){do a=r.charCodeAt(++i);while(a>=48&&a<=57)return i}throw n_(e,i,"Invalid number, expected digit but got: ".concat(nL(a),"."))}function nR(e,t,n,r,i){for(var a=e.body,o=t+1,s=o,u=0,c="";o=48&&e<=57?e-48:e>=65&&e<=70?e-55:e>=97&&e<=102?e-87:-1}function nB(e,t,n,r,i){for(var a=e.body,o=a.length,s=t+1,u=0;s!==o&&!isNaN(u=a.charCodeAt(s))&&(95===u||u>=48&&u<=57||u>=65&&u<=90||u>=97&&u<=122);)++s;return new nS.WU(nk.NAME,t,s,n,r,i,a.slice(t,s))}function nU(e){return 95===e||e>=65&&e<=90||e>=97&&e<=122}function nH(e,t){return new n$(e,t).parseDocument()}var n$=function(){function e(e,t){var n=(0,nx.T)(e)?e:new nx.H(e);this._lexer=new nO(n),this._options=t}var t=e.prototype;return t.parseName=function(){var e=this.expectToken(nk.NAME);return{kind:nE.h.NAME,value:e.value,loc:this.loc(e)}},t.parseDocument=function(){var e=this._lexer.token;return{kind:nE.h.DOCUMENT,definitions:this.many(nk.SOF,this.parseDefinition,nk.EOF),loc:this.loc(e)}},t.parseDefinition=function(){if(this.peek(nk.NAME))switch(this._lexer.token.value){case"query":case"mutation":case"subscription":return this.parseOperationDefinition();case"fragment":return this.parseFragmentDefinition();case"schema":case"scalar":case"type":case"interface":case"union":case"enum":case"input":case"directive":return this.parseTypeSystemDefinition();case"extend":return this.parseTypeSystemExtension()}else if(this.peek(nk.BRACE_L))return this.parseOperationDefinition();else if(this.peekDescription())return this.parseTypeSystemDefinition();throw this.unexpected()},t.parseOperationDefinition=function(){var e,t=this._lexer.token;if(this.peek(nk.BRACE_L))return{kind:nE.h.OPERATION_DEFINITION,operation:"query",name:void 0,variableDefinitions:[],directives:[],selectionSet:this.parseSelectionSet(),loc:this.loc(t)};var n=this.parseOperationType();return this.peek(nk.NAME)&&(e=this.parseName()),{kind:nE.h.OPERATION_DEFINITION,operation:n,name:e,variableDefinitions:this.parseVariableDefinitions(),directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet(),loc:this.loc(t)}},t.parseOperationType=function(){var e=this.expectToken(nk.NAME);switch(e.value){case"query":return"query";case"mutation":return"mutation";case"subscription":return"subscription"}throw this.unexpected(e)},t.parseVariableDefinitions=function(){return this.optionalMany(nk.PAREN_L,this.parseVariableDefinition,nk.PAREN_R)},t.parseVariableDefinition=function(){var e=this._lexer.token;return{kind:nE.h.VARIABLE_DEFINITION,variable:this.parseVariable(),type:(this.expectToken(nk.COLON),this.parseTypeReference()),defaultValue:this.expectOptionalToken(nk.EQUALS)?this.parseValueLiteral(!0):void 0,directives:this.parseDirectives(!0),loc:this.loc(e)}},t.parseVariable=function(){var e=this._lexer.token;return this.expectToken(nk.DOLLAR),{kind:nE.h.VARIABLE,name:this.parseName(),loc:this.loc(e)}},t.parseSelectionSet=function(){var e=this._lexer.token;return{kind:nE.h.SELECTION_SET,selections:this.many(nk.BRACE_L,this.parseSelection,nk.BRACE_R),loc:this.loc(e)}},t.parseSelection=function(){return this.peek(nk.SPREAD)?this.parseFragment():this.parseField()},t.parseField=function(){var e,t,n=this._lexer.token,r=this.parseName();return this.expectOptionalToken(nk.COLON)?(e=r,t=this.parseName()):t=r,{kind:nE.h.FIELD,alias:e,name:t,arguments:this.parseArguments(!1),directives:this.parseDirectives(!1),selectionSet:this.peek(nk.BRACE_L)?this.parseSelectionSet():void 0,loc:this.loc(n)}},t.parseArguments=function(e){var t=e?this.parseConstArgument:this.parseArgument;return this.optionalMany(nk.PAREN_L,t,nk.PAREN_R)},t.parseArgument=function(){var e=this._lexer.token,t=this.parseName();return this.expectToken(nk.COLON),{kind:nE.h.ARGUMENT,name:t,value:this.parseValueLiteral(!1),loc:this.loc(e)}},t.parseConstArgument=function(){var e=this._lexer.token;return{kind:nE.h.ARGUMENT,name:this.parseName(),value:(this.expectToken(nk.COLON),this.parseValueLiteral(!0)),loc:this.loc(e)}},t.parseFragment=function(){var e=this._lexer.token;this.expectToken(nk.SPREAD);var t=this.expectOptionalKeyword("on");return!t&&this.peek(nk.NAME)?{kind:nE.h.FRAGMENT_SPREAD,name:this.parseFragmentName(),directives:this.parseDirectives(!1),loc:this.loc(e)}:{kind:nE.h.INLINE_FRAGMENT,typeCondition:t?this.parseNamedType():void 0,directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet(),loc:this.loc(e)}},t.parseFragmentDefinition=function(){var e,t=this._lexer.token;return(this.expectKeyword("fragment"),(null===(e=this._options)||void 0===e?void 0:e.experimentalFragmentVariables)===!0)?{kind:nE.h.FRAGMENT_DEFINITION,name:this.parseFragmentName(),variableDefinitions:this.parseVariableDefinitions(),typeCondition:(this.expectKeyword("on"),this.parseNamedType()),directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet(),loc:this.loc(t)}:{kind:nE.h.FRAGMENT_DEFINITION,name:this.parseFragmentName(),typeCondition:(this.expectKeyword("on"),this.parseNamedType()),directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet(),loc:this.loc(t)}},t.parseFragmentName=function(){if("on"===this._lexer.token.value)throw this.unexpected();return this.parseName()},t.parseValueLiteral=function(e){var t=this._lexer.token;switch(t.kind){case nk.BRACKET_L:return this.parseList(e);case nk.BRACE_L:return this.parseObject(e);case nk.INT:return this._lexer.advance(),{kind:nE.h.INT,value:t.value,loc:this.loc(t)};case nk.FLOAT:return this._lexer.advance(),{kind:nE.h.FLOAT,value:t.value,loc:this.loc(t)};case nk.STRING:case nk.BLOCK_STRING:return this.parseStringLiteral();case nk.NAME:switch(this._lexer.advance(),t.value){case"true":return{kind:nE.h.BOOLEAN,value:!0,loc:this.loc(t)};case"false":return{kind:nE.h.BOOLEAN,value:!1,loc:this.loc(t)};case"null":return{kind:nE.h.NULL,loc:this.loc(t)};default:return{kind:nE.h.ENUM,value:t.value,loc:this.loc(t)}}case nk.DOLLAR:if(!e)return this.parseVariable()}throw this.unexpected()},t.parseStringLiteral=function(){var e=this._lexer.token;return this._lexer.advance(),{kind:nE.h.STRING,value:e.value,block:e.kind===nk.BLOCK_STRING,loc:this.loc(e)}},t.parseList=function(e){var t=this,n=this._lexer.token,r=function(){return t.parseValueLiteral(e)};return{kind:nE.h.LIST,values:this.any(nk.BRACKET_L,r,nk.BRACKET_R),loc:this.loc(n)}},t.parseObject=function(e){var t=this,n=this._lexer.token,r=function(){return t.parseObjectField(e)};return{kind:nE.h.OBJECT,fields:this.any(nk.BRACE_L,r,nk.BRACE_R),loc:this.loc(n)}},t.parseObjectField=function(e){var t=this._lexer.token,n=this.parseName();return this.expectToken(nk.COLON),{kind:nE.h.OBJECT_FIELD,name:n,value:this.parseValueLiteral(e),loc:this.loc(t)}},t.parseDirectives=function(e){for(var t=[];this.peek(nk.AT);)t.push(this.parseDirective(e));return t},t.parseDirective=function(e){var t=this._lexer.token;return this.expectToken(nk.AT),{kind:nE.h.DIRECTIVE,name:this.parseName(),arguments:this.parseArguments(e),loc:this.loc(t)}},t.parseTypeReference=function(){var e,t=this._lexer.token;return(this.expectOptionalToken(nk.BRACKET_L)?(e=this.parseTypeReference(),this.expectToken(nk.BRACKET_R),e={kind:nE.h.LIST_TYPE,type:e,loc:this.loc(t)}):e=this.parseNamedType(),this.expectOptionalToken(nk.BANG))?{kind:nE.h.NON_NULL_TYPE,type:e,loc:this.loc(t)}:e},t.parseNamedType=function(){var e=this._lexer.token;return{kind:nE.h.NAMED_TYPE,name:this.parseName(),loc:this.loc(e)}},t.parseTypeSystemDefinition=function(){var e=this.peekDescription()?this._lexer.lookahead():this._lexer.token;if(e.kind===nk.NAME)switch(e.value){case"schema":return this.parseSchemaDefinition();case"scalar":return this.parseScalarTypeDefinition();case"type":return this.parseObjectTypeDefinition();case"interface":return this.parseInterfaceTypeDefinition();case"union":return this.parseUnionTypeDefinition();case"enum":return this.parseEnumTypeDefinition();case"input":return this.parseInputObjectTypeDefinition();case"directive":return this.parseDirectiveDefinition()}throw this.unexpected(e)},t.peekDescription=function(){return this.peek(nk.STRING)||this.peek(nk.BLOCK_STRING)},t.parseDescription=function(){if(this.peekDescription())return this.parseStringLiteral()},t.parseSchemaDefinition=function(){var e=this._lexer.token,t=this.parseDescription();this.expectKeyword("schema");var n=this.parseDirectives(!0),r=this.many(nk.BRACE_L,this.parseOperationTypeDefinition,nk.BRACE_R);return{kind:nE.h.SCHEMA_DEFINITION,description:t,directives:n,operationTypes:r,loc:this.loc(e)}},t.parseOperationTypeDefinition=function(){var e=this._lexer.token,t=this.parseOperationType();this.expectToken(nk.COLON);var n=this.parseNamedType();return{kind:nE.h.OPERATION_TYPE_DEFINITION,operation:t,type:n,loc:this.loc(e)}},t.parseScalarTypeDefinition=function(){var e=this._lexer.token,t=this.parseDescription();this.expectKeyword("scalar");var n=this.parseName(),r=this.parseDirectives(!0);return{kind:nE.h.SCALAR_TYPE_DEFINITION,description:t,name:n,directives:r,loc:this.loc(e)}},t.parseObjectTypeDefinition=function(){var e=this._lexer.token,t=this.parseDescription();this.expectKeyword("type");var n=this.parseName(),r=this.parseImplementsInterfaces(),i=this.parseDirectives(!0),a=this.parseFieldsDefinition();return{kind:nE.h.OBJECT_TYPE_DEFINITION,description:t,name:n,interfaces:r,directives:i,fields:a,loc:this.loc(e)}},t.parseImplementsInterfaces=function(){var e;if(!this.expectOptionalKeyword("implements"))return[];if((null===(e=this._options)||void 0===e?void 0:e.allowLegacySDLImplementsInterfaces)===!0){var t=[];this.expectOptionalToken(nk.AMP);do t.push(this.parseNamedType());while(this.expectOptionalToken(nk.AMP)||this.peek(nk.NAME))return t}return this.delimitedMany(nk.AMP,this.parseNamedType)},t.parseFieldsDefinition=function(){var e;return(null===(e=this._options)||void 0===e?void 0:e.allowLegacySDLEmptyFields)===!0&&this.peek(nk.BRACE_L)&&this._lexer.lookahead().kind===nk.BRACE_R?(this._lexer.advance(),this._lexer.advance(),[]):this.optionalMany(nk.BRACE_L,this.parseFieldDefinition,nk.BRACE_R)},t.parseFieldDefinition=function(){var e=this._lexer.token,t=this.parseDescription(),n=this.parseName(),r=this.parseArgumentDefs();this.expectToken(nk.COLON);var i=this.parseTypeReference(),a=this.parseDirectives(!0);return{kind:nE.h.FIELD_DEFINITION,description:t,name:n,arguments:r,type:i,directives:a,loc:this.loc(e)}},t.parseArgumentDefs=function(){return this.optionalMany(nk.PAREN_L,this.parseInputValueDef,nk.PAREN_R)},t.parseInputValueDef=function(){var e,t=this._lexer.token,n=this.parseDescription(),r=this.parseName();this.expectToken(nk.COLON);var i=this.parseTypeReference();this.expectOptionalToken(nk.EQUALS)&&(e=this.parseValueLiteral(!0));var a=this.parseDirectives(!0);return{kind:nE.h.INPUT_VALUE_DEFINITION,description:n,name:r,type:i,defaultValue:e,directives:a,loc:this.loc(t)}},t.parseInterfaceTypeDefinition=function(){var e=this._lexer.token,t=this.parseDescription();this.expectKeyword("interface");var n=this.parseName(),r=this.parseImplementsInterfaces(),i=this.parseDirectives(!0),a=this.parseFieldsDefinition();return{kind:nE.h.INTERFACE_TYPE_DEFINITION,description:t,name:n,interfaces:r,directives:i,fields:a,loc:this.loc(e)}},t.parseUnionTypeDefinition=function(){var e=this._lexer.token,t=this.parseDescription();this.expectKeyword("union");var n=this.parseName(),r=this.parseDirectives(!0),i=this.parseUnionMemberTypes();return{kind:nE.h.UNION_TYPE_DEFINITION,description:t,name:n,directives:r,types:i,loc:this.loc(e)}},t.parseUnionMemberTypes=function(){return this.expectOptionalToken(nk.EQUALS)?this.delimitedMany(nk.PIPE,this.parseNamedType):[]},t.parseEnumTypeDefinition=function(){var e=this._lexer.token,t=this.parseDescription();this.expectKeyword("enum");var n=this.parseName(),r=this.parseDirectives(!0),i=this.parseEnumValuesDefinition();return{kind:nE.h.ENUM_TYPE_DEFINITION,description:t,name:n,directives:r,values:i,loc:this.loc(e)}},t.parseEnumValuesDefinition=function(){return this.optionalMany(nk.BRACE_L,this.parseEnumValueDefinition,nk.BRACE_R)},t.parseEnumValueDefinition=function(){var e=this._lexer.token,t=this.parseDescription(),n=this.parseName(),r=this.parseDirectives(!0);return{kind:nE.h.ENUM_VALUE_DEFINITION,description:t,name:n,directives:r,loc:this.loc(e)}},t.parseInputObjectTypeDefinition=function(){var e=this._lexer.token,t=this.parseDescription();this.expectKeyword("input");var n=this.parseName(),r=this.parseDirectives(!0),i=this.parseInputFieldsDefinition();return{kind:nE.h.INPUT_OBJECT_TYPE_DEFINITION,description:t,name:n,directives:r,fields:i,loc:this.loc(e)}},t.parseInputFieldsDefinition=function(){return this.optionalMany(nk.BRACE_L,this.parseInputValueDef,nk.BRACE_R)},t.parseTypeSystemExtension=function(){var e=this._lexer.lookahead();if(e.kind===nk.NAME)switch(e.value){case"schema":return this.parseSchemaExtension();case"scalar":return this.parseScalarTypeExtension();case"type":return this.parseObjectTypeExtension();case"interface":return this.parseInterfaceTypeExtension();case"union":return this.parseUnionTypeExtension();case"enum":return this.parseEnumTypeExtension();case"input":return this.parseInputObjectTypeExtension()}throw this.unexpected(e)},t.parseSchemaExtension=function(){var e=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("schema");var t=this.parseDirectives(!0),n=this.optionalMany(nk.BRACE_L,this.parseOperationTypeDefinition,nk.BRACE_R);if(0===t.length&&0===n.length)throw this.unexpected();return{kind:nE.h.SCHEMA_EXTENSION,directives:t,operationTypes:n,loc:this.loc(e)}},t.parseScalarTypeExtension=function(){var e=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("scalar");var t=this.parseName(),n=this.parseDirectives(!0);if(0===n.length)throw this.unexpected();return{kind:nE.h.SCALAR_TYPE_EXTENSION,name:t,directives:n,loc:this.loc(e)}},t.parseObjectTypeExtension=function(){var e=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("type");var t=this.parseName(),n=this.parseImplementsInterfaces(),r=this.parseDirectives(!0),i=this.parseFieldsDefinition();if(0===n.length&&0===r.length&&0===i.length)throw this.unexpected();return{kind:nE.h.OBJECT_TYPE_EXTENSION,name:t,interfaces:n,directives:r,fields:i,loc:this.loc(e)}},t.parseInterfaceTypeExtension=function(){var e=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("interface");var t=this.parseName(),n=this.parseImplementsInterfaces(),r=this.parseDirectives(!0),i=this.parseFieldsDefinition();if(0===n.length&&0===r.length&&0===i.length)throw this.unexpected();return{kind:nE.h.INTERFACE_TYPE_EXTENSION,name:t,interfaces:n,directives:r,fields:i,loc:this.loc(e)}},t.parseUnionTypeExtension=function(){var e=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("union");var t=this.parseName(),n=this.parseDirectives(!0),r=this.parseUnionMemberTypes();if(0===n.length&&0===r.length)throw this.unexpected();return{kind:nE.h.UNION_TYPE_EXTENSION,name:t,directives:n,types:r,loc:this.loc(e)}},t.parseEnumTypeExtension=function(){var e=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("enum");var t=this.parseName(),n=this.parseDirectives(!0),r=this.parseEnumValuesDefinition();if(0===n.length&&0===r.length)throw this.unexpected();return{kind:nE.h.ENUM_TYPE_EXTENSION,name:t,directives:n,values:r,loc:this.loc(e)}},t.parseInputObjectTypeExtension=function(){var e=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("input");var t=this.parseName(),n=this.parseDirectives(!0),r=this.parseInputFieldsDefinition();if(0===n.length&&0===r.length)throw this.unexpected();return{kind:nE.h.INPUT_OBJECT_TYPE_EXTENSION,name:t,directives:n,fields:r,loc:this.loc(e)}},t.parseDirectiveDefinition=function(){var e=this._lexer.token,t=this.parseDescription();this.expectKeyword("directive"),this.expectToken(nk.AT);var n=this.parseName(),r=this.parseArgumentDefs(),i=this.expectOptionalKeyword("repeatable");this.expectKeyword("on");var a=this.parseDirectiveLocations();return{kind:nE.h.DIRECTIVE_DEFINITION,description:t,name:n,arguments:r,repeatable:i,locations:a,loc:this.loc(e)}},t.parseDirectiveLocations=function(){return this.delimitedMany(nk.PIPE,this.parseDirectiveLocation)},t.parseDirectiveLocation=function(){var e=this._lexer.token,t=this.parseName();if(void 0!==nT[t.value])return t;throw this.unexpected(e)},t.loc=function(e){var t;if((null===(t=this._options)||void 0===t?void 0:t.noLocation)!==!0)return new nS.Ye(e,this._lexer.lastToken,this._lexer.source)},t.peek=function(e){return this._lexer.token.kind===e},t.expectToken=function(e){var t=this._lexer.token;if(t.kind===e)return this._lexer.advance(),t;throw n_(this._lexer.source,t.start,"Expected ".concat(nG(e),", found ").concat(nz(t),"."))},t.expectOptionalToken=function(e){var t=this._lexer.token;if(t.kind===e)return this._lexer.advance(),t},t.expectKeyword=function(e){var t=this._lexer.token;if(t.kind===nk.NAME&&t.value===e)this._lexer.advance();else throw n_(this._lexer.source,t.start,'Expected "'.concat(e,'", found ').concat(nz(t),"."))},t.expectOptionalKeyword=function(e){var t=this._lexer.token;return t.kind===nk.NAME&&t.value===e&&(this._lexer.advance(),!0)},t.unexpected=function(e){var t=null!=e?e:this._lexer.token;return n_(this._lexer.source,t.start,"Unexpected ".concat(nz(t),"."))},t.any=function(e,t,n){this.expectToken(e);for(var r=[];!this.expectOptionalToken(n);)r.push(t.call(this));return r},t.optionalMany=function(e,t,n){if(this.expectOptionalToken(e)){var r=[];do r.push(t.call(this));while(!this.expectOptionalToken(n))return r}return[]},t.many=function(e,t,n){this.expectToken(e);var r=[];do r.push(t.call(this));while(!this.expectOptionalToken(n))return r},t.delimitedMany=function(e,t){this.expectOptionalToken(e);var n=[];do n.push(t.call(this));while(this.expectOptionalToken(e))return n},e}();function nz(e){var t=e.value;return nG(e.kind)+(null!=t?' "'.concat(t,'"'):"")}function nG(e){return nA(e)?'"'.concat(e,'"'):e}var nW=new Map,nK=new Map,nV=!0,nq=!1;function nZ(e){return e.replace(/[\s,]+/g," ").trim()}function nX(e){return nZ(e.source.body.substring(e.start,e.end))}function nJ(e){var t=new Set,n=[];return e.definitions.forEach(function(e){if("FragmentDefinition"===e.kind){var r=e.name.value,i=nX(e.loc),a=nK.get(r);a&&!a.has(i)?nV&&console.warn("Warning: fragment with name "+r+" already exists.\ngraphql-tag enforces all fragment names across your application to be unique; read more about\nthis in the docs: http://dev.apollodata.com/core/fragments.html#unique-names"):a||nK.set(r,a=new Set),a.add(i),t.has(i)||(t.add(i),n.push(e))}else n.push(e)}),(0,t0.pi)((0,t0.pi)({},e),{definitions:n})}function nQ(e){var t=new Set(e.definitions);t.forEach(function(e){e.loc&&delete e.loc,Object.keys(e).forEach(function(n){var r=e[n];r&&"object"==typeof r&&t.add(r)})});var n=e.loc;return n&&(delete n.startToken,delete n.endToken),e}function n1(e){var t=nZ(e);if(!nW.has(t)){var n=nH(e,{experimentalFragmentVariables:nq,allowLegacyFragmentVariables:nq});if(!n||"Document"!==n.kind)throw Error("Not a valid GraphQL document.");nW.set(t,nQ(nJ(n)))}return nW.get(t)}function n0(e){for(var t=[],n=1;n, or pass an ApolloClient instance in via options.'):(0,n9.kG)(!!n,32),n}var rp=n(10542),rb=n(53712),rm=n(21436),rg=Object.prototype.hasOwnProperty;function rv(e,t){return void 0===t&&(t=Object.create(null)),ry(rh(t.client),e).useQuery(t)}function ry(e,t){var n=(0,l.useRef)();n.current&&e===n.current.client&&t===n.current.query||(n.current=new rw(e,t,n.current));var r=n.current,i=(0,l.useState)(0),a=(i[0],i[1]);return r.forceUpdate=function(){a(function(e){return e+1})},r}var rw=function(){function e(e,t,n){this.client=e,this.query=t,this.ssrDisabledResult=(0,rp.J)({loading:!0,data:void 0,error:void 0,networkStatus:ru.I.loading}),this.skipStandbyResult=(0,rp.J)({loading:!1,data:void 0,error:void 0,networkStatus:ru.I.ready}),this.toQueryResultCache=new(n7.mr?WeakMap:Map),rd(t,r.Query);var i=n&&n.result,a=i&&i.data;a&&(this.previousData=a)}return e.prototype.forceUpdate=function(){__DEV__&&n9.kG.warn("Calling default no-op implementation of InternalState#forceUpdate")},e.prototype.executeQuery=function(e){var t,n=this;e.query&&Object.assign(this,{query:e.query}),this.watchQueryOptions=this.createWatchQueryOptions(this.queryHookOptions=e);var r=this.observable.reobserveAsConcast(this.getObsQueryOptions());return this.previousData=(null===(t=this.result)||void 0===t?void 0:t.data)||this.previousData,this.result=void 0,this.forceUpdate(),new Promise(function(e){var t;r.subscribe({next:function(e){t=e},error:function(){e(n.toQueryResult(n.observable.getCurrentResult()))},complete:function(){e(n.toQueryResult(t))}})})},e.prototype.useQuery=function(e){var t=this;this.renderPromises=(0,l.useContext)((0,ro.K)()).renderPromises,this.useOptions(e);var n=this.useObservableQuery(),r=rt((0,l.useCallback)(function(){if(t.renderPromises)return function(){};var e=function(){var e=t.result,r=n.getCurrentResult();!(e&&e.loading===r.loading&&e.networkStatus===r.networkStatus&&(0,ri.D)(e.data,r.data))&&t.setResult(r)},r=function(a){var o=n.last;i.unsubscribe();try{n.resetLastResults(),i=n.subscribe(e,r)}finally{n.last=o}if(!rg.call(a,"graphQLErrors"))throw a;var s=t.result;(!s||s&&s.loading||!(0,ri.D)(a,s.error))&&t.setResult({data:s&&s.data,error:a,loading:!1,networkStatus:ru.I.error})},i=n.subscribe(e,r);return function(){return setTimeout(function(){return i.unsubscribe()})}},[n,this.renderPromises,this.client.disableNetworkFetches,]),function(){return t.getCurrentResult()},function(){return t.getCurrentResult()});return this.unsafeHandlePartialRefetch(r),this.toQueryResult(r)},e.prototype.useOptions=function(t){var n,r=this.createWatchQueryOptions(this.queryHookOptions=t),i=this.watchQueryOptions;!(0,ri.D)(r,i)&&(this.watchQueryOptions=r,i&&this.observable&&(this.observable.reobserve(this.getObsQueryOptions()),this.previousData=(null===(n=this.result)||void 0===n?void 0:n.data)||this.previousData,this.result=void 0)),this.onCompleted=t.onCompleted||e.prototype.onCompleted,this.onError=t.onError||e.prototype.onError,(this.renderPromises||this.client.disableNetworkFetches)&&!1===this.queryHookOptions.ssr&&!this.queryHookOptions.skip?this.result=this.ssrDisabledResult:this.queryHookOptions.skip||"standby"===this.watchQueryOptions.fetchPolicy?this.result=this.skipStandbyResult:(this.result===this.ssrDisabledResult||this.result===this.skipStandbyResult)&&(this.result=void 0)},e.prototype.getObsQueryOptions=function(){var e=[],t=this.client.defaultOptions.watchQuery;return t&&e.push(t),this.queryHookOptions.defaultOptions&&e.push(this.queryHookOptions.defaultOptions),e.push((0,rb.o)(this.observable&&this.observable.options,this.watchQueryOptions)),e.reduce(ra.J)},e.prototype.createWatchQueryOptions=function(e){void 0===e&&(e={});var t,n=e.skip,r=Object.assign((e.ssr,e.onCompleted,e.onError,e.defaultOptions,(0,t0._T)(e,["skip","ssr","onCompleted","onError","defaultOptions"])),{query:this.query});if(this.renderPromises&&("network-only"===r.fetchPolicy||"cache-and-network"===r.fetchPolicy)&&(r.fetchPolicy="cache-first"),r.variables||(r.variables={}),n){var i=r.fetchPolicy,a=void 0===i?this.getDefaultFetchPolicy():i,o=r.initialFetchPolicy;Object.assign(r,{initialFetchPolicy:void 0===o?a:o,fetchPolicy:"standby"})}else r.fetchPolicy||(r.fetchPolicy=(null===(t=this.observable)||void 0===t?void 0:t.options.initialFetchPolicy)||this.getDefaultFetchPolicy());return r},e.prototype.getDefaultFetchPolicy=function(){var e,t;return(null===(e=this.queryHookOptions.defaultOptions)||void 0===e?void 0:e.fetchPolicy)||(null===(t=this.client.defaultOptions.watchQuery)||void 0===t?void 0:t.fetchPolicy)||"cache-first"},e.prototype.onCompleted=function(e){},e.prototype.onError=function(e){},e.prototype.useObservableQuery=function(){var e=this.observable=this.renderPromises&&this.renderPromises.getSSRObservable(this.watchQueryOptions)||this.observable||this.client.watchQuery(this.getObsQueryOptions());this.obsQueryFields=(0,l.useMemo)(function(){return{refetch:e.refetch.bind(e),reobserve:e.reobserve.bind(e),fetchMore:e.fetchMore.bind(e),updateQuery:e.updateQuery.bind(e),startPolling:e.startPolling.bind(e),stopPolling:e.stopPolling.bind(e),subscribeToMore:e.subscribeToMore.bind(e)}},[e]);var t=!(!1===this.queryHookOptions.ssr||this.queryHookOptions.skip);return this.renderPromises&&t&&(this.renderPromises.registerSSRObservable(e),e.getCurrentResult().loading&&this.renderPromises.addObservableQueryPromise(e)),e},e.prototype.setResult=function(e){var t=this.result;t&&t.data&&(this.previousData=t.data),this.result=e,this.forceUpdate(),this.handleErrorOrCompleted(e)},e.prototype.handleErrorOrCompleted=function(e){var t=this;if(!e.loading){var n=this.toApolloError(e);Promise.resolve().then(function(){n?t.onError(n):e.data&&t.onCompleted(e.data)}).catch(function(e){__DEV__&&n9.kG.warn(e)})}},e.prototype.toApolloError=function(e){return(0,rm.O)(e.errors)?new rs.cA({graphQLErrors:e.errors}):e.error},e.prototype.getCurrentResult=function(){return this.result||this.handleErrorOrCompleted(this.result=this.observable.getCurrentResult()),this.result},e.prototype.toQueryResult=function(e){var t=this.toQueryResultCache.get(e);if(t)return t;var n=e.data,r=(e.partial,(0,t0._T)(e,["data","partial"]));return this.toQueryResultCache.set(e,t=(0,t0.pi)((0,t0.pi)((0,t0.pi)({data:n},r),this.obsQueryFields),{client:this.client,observable:this.observable,variables:this.observable.variables,called:!this.queryHookOptions.skip,previousData:this.previousData})),!t.error&&(0,rm.O)(e.errors)&&(t.error=new rs.cA({graphQLErrors:e.errors})),t},e.prototype.unsafeHandlePartialRefetch=function(e){e.partial&&this.queryHookOptions.partialRefetch&&!e.loading&&(!e.data||0===Object.keys(e.data).length)&&"cache-only"!==this.observable.options.fetchPolicy&&(Object.assign(e,{loading:!0,networkStatus:ru.I.refetch}),this.observable.refetch())},e}();function r_(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);ne.length)&&(t=e.length);for(var n=0,r=Array(t);ne.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&void 0!==arguments[0]?arguments[0]:{};return rv(iH,e)},iz=function(){var e=ij(),t=parseInt(e.get("page")||"1",10),n=parseInt(e.get("per")||"50",10),r=i$({variables:{offset:(t-1)*n,limit:n},fetchPolicy:"network-only"}),i=r.data,a=r.loading,o=r.error;return a?l.createElement(iR,null):o?l.createElement(iD,{error:o}):i?l.createElement(iI,{chains:i.chains.results,page:t,pageSize:n,total:i.chains.metadata.total}):null},iG=n(67932),iW=n(8126),iK="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};function iV(e){if(iq())return Intl.DateTimeFormat.supportedLocalesOf(e)[0]}function iq(){return("undefined"==typeof Intl?"undefined":iK(Intl))==="object"&&"function"==typeof Intl.DateTimeFormat}var iZ="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},iX=function(){function e(e,t){for(var n=0;n=i.length)break;s=i[o++]}else{if((o=i.next()).done)break;s=o.value}var s,u=s;if((void 0===e?"undefined":iZ(e))!=="object")return;e=e[u]}return e}},{key:"put",value:function(){for(var e=arguments.length,t=Array(e),n=0;n=o.length)break;c=o[u++]}else{if((u=o.next()).done)break;c=u.value}var c,l=c;"object"!==iZ(a[l])&&(a[l]={}),a=a[l]}return a[i]=r}}]),e}();let i1=iQ;var i0=new i1;function i2(e,t){if(!iq())return function(e){return e.toString()};var n=i4(e),r=JSON.stringify(t),i=i0.get(String(n),r)||i0.put(String(n),r,new Intl.DateTimeFormat(n,t));return function(e){return i.format(e)}}var i3={};function i4(e){var t=e.toString();return i3[t]?i3[t]:i3[t]=iV(e)}var i6="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};function i5(e){return i8(e)?e:new Date(e)}function i8(e){return e instanceof Date||i9(e)}function i9(e){return(void 0===e?"undefined":i6(e))==="object"&&"function"==typeof e.getTime}var i7=n(54087),ae=n.n(i7);function at(e,t){if(0===e.length)return 0;for(var n=0,r=e.length-1,i=void 0;n<=r;){var a=t(e[i=Math.floor((r+n)/2)]);if(0===a)return i;if(a<0){if((n=i+1)>r)return n}else if((r=i-1)=t.nextUpdateTime)aa(t,this.instances);else break}},scheduleNextTick:function(){var e=this;this.scheduledTick=ae()(function(){e.tick(),e.scheduleNextTick()})},start:function(){this.scheduleNextTick()},stop:function(){ae().cancel(this.scheduledTick)}};function ai(e){var t=an(e.getNextValue(),2),n=t[0],r=t[1];e.setValue(n),e.nextUpdateTime=r}function aa(e,t){ai(e),as(t,e),ao(t,e)}function ao(e,t){var n=au(e,t);e.splice(n,0,t)}function as(e,t){var n=e.indexOf(t);e.splice(n,1)}function au(e,t){var n=t.nextUpdateTime;return at(e,function(e){return e.nextUpdateTime===n?0:e.nextUpdateTime>n?1:-1})}var ac=(0,ec.oneOfType)([(0,ec.shape)({minTime:ec.number,formatAs:ec.string.isRequired}),(0,ec.shape)({test:ec.func,formatAs:ec.string.isRequired}),(0,ec.shape)({minTime:ec.number,format:ec.func.isRequired}),(0,ec.shape)({test:ec.func,format:ec.func.isRequired})]),al=(0,ec.oneOfType)([ec.string,(0,ec.shape)({steps:(0,ec.arrayOf)(ac).isRequired,labels:(0,ec.oneOfType)([ec.string,(0,ec.arrayOf)(ec.string)]).isRequired,round:ec.string})]),af=Object.assign||function(e){for(var t=1;t=0)&&Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function ap(e){var t=e.date,n=e.future,r=e.timeStyle,i=e.round,a=e.minTimeLeft,o=e.tooltip,s=e.component,u=e.container,c=e.wrapperComponent,f=e.wrapperProps,d=e.locale,h=e.locales,p=e.formatVerboseDate,b=e.verboseDateFormat,m=e.updateInterval,g=e.tick,v=ah(e,["date","future","timeStyle","round","minTimeLeft","tooltip","component","container","wrapperComponent","wrapperProps","locale","locales","formatVerboseDate","verboseDateFormat","updateInterval","tick"]),y=(0,l.useMemo)(function(){return d&&(h=[d]),h.concat(iW.Z.getDefaultLocale())},[d,h]),w=(0,l.useMemo)(function(){return new iW.Z(y)},[y]);t=(0,l.useMemo)(function(){return i5(t)},[t]);var _=(0,l.useCallback)(function(){var e=Date.now(),o=void 0;if(n&&e>=t.getTime()&&(e=t.getTime(),o=!0),void 0!==a){var s=t.getTime()-1e3*a;e>s&&(e=s,o=!0)}var u=w.format(t,r,{getTimeToNextUpdate:!0,now:e,future:n,round:i}),c=ad(u,2),l=c[0],f=c[1];return f=o?ag:m||f||6e4,[l,e+f]},[t,n,r,m,i,a,w]),E=(0,l.useRef)();E.current=_;var S=(0,l.useMemo)(_,[]),k=ad(S,2),x=k[0],T=k[1],M=(0,l.useState)(x),O=ad(M,2),A=O[0],L=O[1],C=ad((0,l.useState)(),2),I=C[0],D=C[1],N=(0,l.useRef)();(0,l.useEffect)(function(){if(g)return N.current=ar.add({getNextValue:function(){return E.current()},setValue:L,nextUpdateTime:T}),function(){return N.current.stop()}},[g]),(0,l.useEffect)(function(){if(N.current)N.current.forceUpdate();else{var e=_(),t=ad(e,1)[0];L(t)}},[_]),(0,l.useEffect)(function(){D(!0)},[]);var P=(0,l.useMemo)(function(){if("undefined"!=typeof window)return i2(y,b)},[y,b]),R=(0,l.useMemo)(function(){if("undefined"!=typeof window)return p?p(t):P(t)},[t,p,P]),j=l.createElement(s,af({date:t,verboseDate:I?R:void 0,tooltip:o},v),A),F=c||u;return F?l.createElement(F,af({},f,{verboseDate:I?R:void 0}),j):j}ap.propTypes={date:el().oneOfType([el().instanceOf(Date),el().number]).isRequired,locale:el().string,locales:el().arrayOf(el().string),future:el().bool,timeStyle:al,round:el().string,minTimeLeft:el().number,component:el().elementType.isRequired,tooltip:el().bool.isRequired,formatVerboseDate:el().func,verboseDateFormat:el().object,updateInterval:el().oneOfType([el().number,el().arrayOf(el().shape({threshold:el().number,interval:el().number.isRequired}))]),tick:el().bool,wrapperComponent:el().func,wrapperProps:el().object},ap.defaultProps={locales:[],component:av,tooltip:!0,verboseDateFormat:{weekday:"long",day:"numeric",month:"long",year:"numeric",hour:"numeric",minute:"2-digit",second:"2-digit"},tick:!0},ap=l.memo(ap);let ab=ap;var am,ag=31536e9;function av(e){var t=e.date,n=e.verboseDate,r=e.tooltip,i=e.children,a=ah(e,["date","verboseDate","tooltip","children"]),o=(0,l.useMemo)(function(){return t.toISOString()},[t]);return l.createElement("time",af({},a,{dateTime:o,title:r?n:void 0}),i)}av.propTypes={date:el().instanceOf(Date).isRequired,verboseDate:el().string,tooltip:el().bool.isRequired,children:el().string.isRequired};var ay=n(30381),aw=n.n(ay),a_=n(31657);function aE(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function aS(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=Array(t);ne.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0?new rs.cA({graphQLErrors:i}):void 0;if(u===s.current.mutationId&&!c.ignoreResults){var f={called:!0,loading:!1,data:r,error:l,client:a};s.current.isMounted&&!(0,ri.D)(s.current.result,f)&&o(s.current.result=f)}var d=e.onCompleted||(null===(n=s.current.options)||void 0===n?void 0:n.onCompleted);return null==d||d(t.data,c),t}).catch(function(t){if(u===s.current.mutationId&&s.current.isMounted){var n,r={loading:!1,error:t,data:void 0,called:!0,client:a};(0,ri.D)(s.current.result,r)||o(s.current.result=r)}var i=e.onError||(null===(n=s.current.options)||void 0===n?void 0:n.onError);if(i)return i(t,c),{data:void 0,errors:t};throw t})},[]),c=(0,l.useCallback)(function(){s.current.isMounted&&o({called:!1,loading:!1,client:n})},[]);return(0,l.useEffect)(function(){return s.current.isMounted=!0,function(){s.current.isMounted=!1}},[]),[u,(0,t0.pi)({reset:c},a)]}var os=n(59067),ou=n(28428),oc=n(11186),ol=n(78513);function of(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var od=function(e){return(0,b.createStyles)({paper:{display:"flex",margin:"".concat(2.5*e.spacing.unit,"px 0"),padding:"".concat(3*e.spacing.unit,"px ").concat(3.5*e.spacing.unit,"px")},content:{flex:1,width:"100%"},actions:of({marginTop:-(1.5*e.spacing.unit),marginLeft:-(4*e.spacing.unit)},e.breakpoints.up("sm"),{marginLeft:0,marginRight:-(1.5*e.spacing.unit)}),itemBlock:{border:"1px solid rgba(224, 224, 224, 1)",borderRadius:e.shape.borderRadius,padding:2*e.spacing.unit,marginTop:e.spacing.unit},itemBlockText:{overflowWrap:"anywhere"}})},oh=(0,b.withStyles)(od)(function(e){var t=e.actions,n=e.children,r=e.classes;return l.createElement(ii.default,{className:r.paper},l.createElement("div",{className:r.content},n),t&&l.createElement("div",{className:r.actions},t))}),op=function(e){var t=e.title;return l.createElement(x.default,{variant:"subtitle2",gutterBottom:!0},t)},ob=function(e){var t=e.children,n=e.value;return l.createElement(x.default,{variant:"body1",noWrap:!0},t||n)},om=(0,b.withStyles)(od)(function(e){var t=e.children,n=e.classes,r=e.value;return l.createElement("div",{className:n.itemBlock},l.createElement(x.default,{variant:"body1",className:n.itemBlockText},t||r))});function og(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);ne.length)&&(t=e.length);for(var n=0,r=Array(t);ne.length)&&(t=e.length);for(var n=0,r=Array(t);ne.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]-1}let sq=sV;function sZ(e,t){var n=this.__data__,r=sH(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}let sX=sZ;function sJ(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t-1&&e%1==0&&e-1&&e%1==0&&e<=cC}let cD=cI;var cN="[object Arguments]",cP="[object Array]",cR="[object Boolean]",cj="[object Date]",cF="[object Error]",cY="[object Function]",cB="[object Map]",cU="[object Number]",cH="[object Object]",c$="[object RegExp]",cz="[object Set]",cG="[object String]",cW="[object WeakMap]",cK="[object ArrayBuffer]",cV="[object DataView]",cq="[object Float64Array]",cZ="[object Int8Array]",cX="[object Int16Array]",cJ="[object Int32Array]",cQ="[object Uint8Array]",c1="[object Uint8ClampedArray]",c0="[object Uint16Array]",c2="[object Uint32Array]",c3={};function c4(e){return eD(e)&&cD(e.length)&&!!c3[eC(e)]}c3["[object Float32Array]"]=c3[cq]=c3[cZ]=c3[cX]=c3[cJ]=c3[cQ]=c3[c1]=c3[c0]=c3[c2]=!0,c3[cN]=c3[cP]=c3[cK]=c3[cR]=c3[cV]=c3[cj]=c3[cF]=c3[cY]=c3[cB]=c3[cU]=c3[cH]=c3[c$]=c3[cz]=c3[cG]=c3[cW]=!1;let c6=c4;function c5(e){return function(t){return e(t)}}let c8=c5;var c9=n(79730),c7=c9.Z&&c9.Z.isTypedArray,le=c7?c8(c7):c6;let lt=le;var ln=Object.prototype.hasOwnProperty;function lr(e,t){var n=cx(e),r=!n&&cS(e),i=!n&&!r&&(0,cT.Z)(e),a=!n&&!r&&!i&<(e),o=n||r||i||a,s=o?cb(e.length,String):[],u=s.length;for(var c in e)(t||ln.call(e,c))&&!(o&&("length"==c||i&&("offset"==c||"parent"==c)||a&&("buffer"==c||"byteLength"==c||"byteOffset"==c)||cL(c,u)))&&s.push(c);return s}let li=lr;var la=Object.prototype;function lo(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||la)}let ls=lo;var lu=sT(Object.keys,Object);let lc=lu;var ll=Object.prototype.hasOwnProperty;function lf(e){if(!ls(e))return lc(e);var t=[];for(var n in Object(e))ll.call(e,n)&&"constructor"!=n&&t.push(n);return t}let ld=lf;function lh(e){return null!=e&&cD(e.length)&&!ur(e)}let lp=lh;function lb(e){return lp(e)?li(e):ld(e)}let lm=lb;function lg(e,t){return e&&ch(t,lm(t),e)}let lv=lg;function ly(e){var t=[];if(null!=e)for(var n in Object(e))t.push(n);return t}let lw=ly;var l_=Object.prototype.hasOwnProperty;function lE(e){if(!ed(e))return lw(e);var t=ls(e),n=[];for(var r in e)"constructor"==r&&(t||!l_.call(e,r))||n.push(r);return n}let lS=lE;function lk(e){return lp(e)?li(e,!0):lS(e)}let lx=lk;function lT(e,t){return e&&ch(t,lx(t),e)}let lM=lT;var lO=n(42896);function lA(e,t){var n=-1,r=e.length;for(t||(t=Array(r));++n=0||(i[n]=e[n]);return i}function hu(e){if(void 0===e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return e}var hc=function(e){return Array.isArray(e)&&0===e.length},hl=function(e){return"function"==typeof e},hf=function(e){return null!==e&&"object"==typeof e},hd=function(e){return String(Math.floor(Number(e)))===e},hh=function(e){return"[object String]"===Object.prototype.toString.call(e)},hp=function(e){return 0===l.Children.count(e)},hb=function(e){return hf(e)&&hl(e.then)};function hm(e,t,n,r){void 0===r&&(r=0);for(var i=d8(t);e&&r=0?[]:{}}}return(0===a?e:i)[o[a]]===n?e:(void 0===n?delete i[o[a]]:i[o[a]]=n,0===a&&void 0===n&&delete r[o[a]],r)}function hv(e,t,n,r){void 0===n&&(n=new WeakMap),void 0===r&&(r={});for(var i=0,a=Object.keys(e);i0?t.map(function(t){return x(t,hm(e,t))}):[Promise.resolve("DO_NOT_DELETE_YOU_WILL_BE_FIRED")]).then(function(e){return e.reduce(function(e,n,r){return"DO_NOT_DELETE_YOU_WILL_BE_FIRED"===n||n&&(e=hg(e,t[r],n)),e},{})})},[x]),M=(0,l.useCallback)(function(e){return Promise.all([T(e),h.validationSchema?k(e):{},h.validate?S(e):{}]).then(function(e){var t=e[0],n=e[1],r=e[2];return sk.all([t,n,r],{arrayMerge:hL})})},[h.validate,h.validationSchema,T,S,k]),O=hN(function(e){return void 0===e&&(e=_.values),E({type:"SET_ISVALIDATING",payload:!0}),M(e).then(function(e){return v.current&&(E({type:"SET_ISVALIDATING",payload:!1}),sd()(_.errors,e)||E({type:"SET_ERRORS",payload:e})),e})});(0,l.useEffect)(function(){o&&!0===v.current&&sd()(p.current,h.initialValues)&&O(p.current)},[o,O]);var A=(0,l.useCallback)(function(e){var t=e&&e.values?e.values:p.current,n=e&&e.errors?e.errors:b.current?b.current:h.initialErrors||{},r=e&&e.touched?e.touched:m.current?m.current:h.initialTouched||{},i=e&&e.status?e.status:g.current?g.current:h.initialStatus;p.current=t,b.current=n,m.current=r,g.current=i;var a=function(){E({type:"RESET_FORM",payload:{isSubmitting:!!e&&!!e.isSubmitting,errors:n,touched:r,status:i,values:t,isValidating:!!e&&!!e.isValidating,submitCount:e&&e.submitCount&&"number"==typeof e.submitCount?e.submitCount:0}})};if(h.onReset){var o=h.onReset(_.values,V);hb(o)?o.then(a):a()}else a()},[h.initialErrors,h.initialStatus,h.initialTouched]);(0,l.useEffect)(function(){!0===v.current&&!sd()(p.current,h.initialValues)&&(c&&(p.current=h.initialValues,A()),o&&O(p.current))},[c,h.initialValues,A,o,O]),(0,l.useEffect)(function(){c&&!0===v.current&&!sd()(b.current,h.initialErrors)&&(b.current=h.initialErrors||hS,E({type:"SET_ERRORS",payload:h.initialErrors||hS}))},[c,h.initialErrors]),(0,l.useEffect)(function(){c&&!0===v.current&&!sd()(m.current,h.initialTouched)&&(m.current=h.initialTouched||hk,E({type:"SET_TOUCHED",payload:h.initialTouched||hk}))},[c,h.initialTouched]),(0,l.useEffect)(function(){c&&!0===v.current&&!sd()(g.current,h.initialStatus)&&(g.current=h.initialStatus,E({type:"SET_STATUS",payload:h.initialStatus}))},[c,h.initialStatus,h.initialTouched]);var L=hN(function(e){if(y.current[e]&&hl(y.current[e].validate)){var t=hm(_.values,e),n=y.current[e].validate(t);return hb(n)?(E({type:"SET_ISVALIDATING",payload:!0}),n.then(function(e){return e}).then(function(t){E({type:"SET_FIELD_ERROR",payload:{field:e,value:t}}),E({type:"SET_ISVALIDATING",payload:!1})})):(E({type:"SET_FIELD_ERROR",payload:{field:e,value:n}}),Promise.resolve(n))}return h.validationSchema?(E({type:"SET_ISVALIDATING",payload:!0}),k(_.values,e).then(function(e){return e}).then(function(t){E({type:"SET_FIELD_ERROR",payload:{field:e,value:t[e]}}),E({type:"SET_ISVALIDATING",payload:!1})})):Promise.resolve()}),C=(0,l.useCallback)(function(e,t){var n=t.validate;y.current[e]={validate:n}},[]),I=(0,l.useCallback)(function(e){delete y.current[e]},[]),D=hN(function(e,t){return E({type:"SET_TOUCHED",payload:e}),(void 0===t?i:t)?O(_.values):Promise.resolve()}),N=(0,l.useCallback)(function(e){E({type:"SET_ERRORS",payload:e})},[]),P=hN(function(e,t){var r=hl(e)?e(_.values):e;return E({type:"SET_VALUES",payload:r}),(void 0===t?n:t)?O(r):Promise.resolve()}),R=(0,l.useCallback)(function(e,t){E({type:"SET_FIELD_ERROR",payload:{field:e,value:t}})},[]),j=hN(function(e,t,r){return E({type:"SET_FIELD_VALUE",payload:{field:e,value:t}}),(void 0===r?n:r)?O(hg(_.values,e,t)):Promise.resolve()}),F=(0,l.useCallback)(function(e,t){var n,r=t,i=e;if(!hh(e)){e.persist&&e.persist();var a=e.target?e.target:e.currentTarget,o=a.type,s=a.name,u=a.id,c=a.value,l=a.checked,f=(a.outerHTML,a.options),d=a.multiple;r=t||s||u,i=/number|range/.test(o)?(n=parseFloat(c),isNaN(n)?"":n):/checkbox/.test(o)?hI(hm(_.values,r),l,c):d?hC(f):c}r&&j(r,i)},[j,_.values]),Y=hN(function(e){if(hh(e))return function(t){return F(t,e)};F(e)}),B=hN(function(e,t,n){return void 0===t&&(t=!0),E({type:"SET_FIELD_TOUCHED",payload:{field:e,value:t}}),(void 0===n?i:n)?O(_.values):Promise.resolve()}),U=(0,l.useCallback)(function(e,t){e.persist&&e.persist();var n,r=e.target,i=r.name,a=r.id;r.outerHTML,B(t||i||a,!0)},[B]),H=hN(function(e){if(hh(e))return function(t){return U(t,e)};U(e)}),$=(0,l.useCallback)(function(e){hl(e)?E({type:"SET_FORMIK_STATE",payload:e}):E({type:"SET_FORMIK_STATE",payload:function(){return e}})},[]),z=(0,l.useCallback)(function(e){E({type:"SET_STATUS",payload:e})},[]),G=(0,l.useCallback)(function(e){E({type:"SET_ISSUBMITTING",payload:e})},[]),W=hN(function(){return E({type:"SUBMIT_ATTEMPT"}),O().then(function(e){var t,n=e instanceof Error;if(!n&&0===Object.keys(e).length){try{if(void 0===(t=q()))return}catch(r){throw r}return Promise.resolve(t).then(function(e){return v.current&&E({type:"SUBMIT_SUCCESS"}),e}).catch(function(e){if(v.current)throw E({type:"SUBMIT_FAILURE"}),e})}if(v.current&&(E({type:"SUBMIT_FAILURE"}),n))throw e})}),K=hN(function(e){e&&e.preventDefault&&hl(e.preventDefault)&&e.preventDefault(),e&&e.stopPropagation&&hl(e.stopPropagation)&&e.stopPropagation(),W().catch(function(e){console.warn("Warning: An unhandled error was caught from submitForm()",e)})}),V={resetForm:A,validateForm:O,validateField:L,setErrors:N,setFieldError:R,setFieldTouched:B,setFieldValue:j,setStatus:z,setSubmitting:G,setTouched:D,setValues:P,setFormikState:$,submitForm:W},q=hN(function(){return f(_.values,V)}),Z=hN(function(e){e&&e.preventDefault&&hl(e.preventDefault)&&e.preventDefault(),e&&e.stopPropagation&&hl(e.stopPropagation)&&e.stopPropagation(),A()}),X=(0,l.useCallback)(function(e){return{value:hm(_.values,e),error:hm(_.errors,e),touched:!!hm(_.touched,e),initialValue:hm(p.current,e),initialTouched:!!hm(m.current,e),initialError:hm(b.current,e)}},[_.errors,_.touched,_.values]),J=(0,l.useCallback)(function(e){return{setValue:function(t,n){return j(e,t,n)},setTouched:function(t,n){return B(e,t,n)},setError:function(t){return R(e,t)}}},[j,B,R]),Q=(0,l.useCallback)(function(e){var t=hf(e),n=t?e.name:e,r=hm(_.values,n),i={name:n,value:r,onChange:Y,onBlur:H};if(t){var a=e.type,o=e.value,s=e.as,u=e.multiple;"checkbox"===a?void 0===o?i.checked=!!r:(i.checked=!!(Array.isArray(r)&&~r.indexOf(o)),i.value=o):"radio"===a?(i.checked=r===o,i.value=o):"select"===s&&u&&(i.value=i.value||[],i.multiple=!0)}return i},[H,Y,_.values]),ee=(0,l.useMemo)(function(){return!sd()(p.current,_.values)},[p.current,_.values]),et=(0,l.useMemo)(function(){return void 0!==s?ee?_.errors&&0===Object.keys(_.errors).length:!1!==s&&hl(s)?s(h):s:_.errors&&0===Object.keys(_.errors).length},[s,ee,_.errors,h]);return ha({},_,{initialValues:p.current,initialErrors:b.current,initialTouched:m.current,initialStatus:g.current,handleBlur:H,handleChange:Y,handleReset:Z,handleSubmit:K,resetForm:A,setErrors:N,setFormikState:$,setFieldTouched:B,setFieldValue:j,setFieldError:R,setStatus:z,setSubmitting:G,setTouched:D,setValues:P,submitForm:W,validateForm:O,validateField:L,isValid:et,dirty:ee,unregisterField:I,registerField:C,getFieldProps:Q,getFieldMeta:X,getFieldHelpers:J,validateOnBlur:i,validateOnChange:n,validateOnMount:o})}function hT(e){var t=hx(e),n=e.component,r=e.children,i=e.render,a=e.innerRef;return(0,l.useImperativeHandle)(a,function(){return t}),(0,l.createElement)(hw,{value:t},n?(0,l.createElement)(n,t):i?i(t):r?hl(r)?r(t):hp(r)?null:l.Children.only(r):null)}function hM(e){var t={};if(e.inner){if(0===e.inner.length)return hg(t,e.path,e.message);for(var n=e.inner,r=Array.isArray(n),i=0,n=r?n:n[Symbol.iterator]();;){if(r){if(i>=n.length)break;a=n[i++]}else{if((i=n.next()).done)break;a=i.value}var a,o=a;hm(t,o.path)||(t=hg(t,o.path,o.message))}}return t}function hO(e,t,n,r){void 0===n&&(n=!1),void 0===r&&(r={});var i=hA(e);return t[n?"validateSync":"validate"](i,{abortEarly:!1,context:r})}function hA(e){var t=Array.isArray(e)?[]:{};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){var r=String(n);!0===Array.isArray(e[r])?t[r]=e[r].map(function(e){return!0===Array.isArray(e)||sR(e)?hA(e):""!==e?e:void 0}):sR(e[r])?t[r]=hA(e[r]):t[r]=""!==e[r]?e[r]:void 0}return t}function hL(e,t,n){var r=e.slice();return t.forEach(function(t,i){if(void 0===r[i]){var a=!1!==n.clone&&n.isMergeableObject(t);r[i]=a?sk(Array.isArray(t)?[]:{},t,n):t}else n.isMergeableObject(t)?r[i]=sk(e[i],t,n):-1===e.indexOf(t)&&r.push(t)}),r}function hC(e){return Array.from(e).filter(function(e){return e.selected}).map(function(e){return e.value})}function hI(e,t,n){if("boolean"==typeof e)return Boolean(t);var r=[],i=!1,a=-1;if(Array.isArray(e))r=e,i=(a=e.indexOf(n))>=0;else if(!n||"true"==n||"false"==n)return Boolean(t);return t&&n&&!i?r.concat(n):i?r.slice(0,a).concat(r.slice(a+1)):r}var hD="undefined"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement?l.useLayoutEffect:l.useEffect;function hN(e){var t=(0,l.useRef)(e);return hD(function(){t.current=e}),(0,l.useCallback)(function(){for(var e=arguments.length,n=Array(e),r=0;re?t:e},0);return Array.from(ha({},e,{length:t+1}))};(function(e){function t(t){var n;return(n=e.call(this,t)||this).updateArrayField=function(e,t,r){var i=n.props,a=i.name;(0,i.formik.setFormikState)(function(n){var i="function"==typeof r?r:e,o="function"==typeof t?t:e,s=hg(n.values,a,e(hm(n.values,a))),u=r?i(hm(n.errors,a)):void 0,c=t?o(hm(n.touched,a)):void 0;return hc(u)&&(u=void 0),hc(c)&&(c=void 0),ha({},n,{values:s,errors:r?hg(n.errors,a,u):n.errors,touched:t?hg(n.touched,a,c):n.touched})})},n.push=function(e){return n.updateArrayField(function(t){return[].concat(hU(t),[hi(e)])},!1,!1)},n.handlePush=function(e){return function(){return n.push(e)}},n.swap=function(e,t){return n.updateArrayField(function(n){return hF(n,e,t)},!0,!0)},n.handleSwap=function(e,t){return function(){return n.swap(e,t)}},n.move=function(e,t){return n.updateArrayField(function(n){return hj(n,e,t)},!0,!0)},n.handleMove=function(e,t){return function(){return n.move(e,t)}},n.insert=function(e,t){return n.updateArrayField(function(n){return hY(n,e,t)},function(t){return hY(t,e,null)},function(t){return hY(t,e,null)})},n.handleInsert=function(e,t){return function(){return n.insert(e,t)}},n.replace=function(e,t){return n.updateArrayField(function(n){return hB(n,e,t)},!1,!1)},n.handleReplace=function(e,t){return function(){return n.replace(e,t)}},n.unshift=function(e){var t=-1;return n.updateArrayField(function(n){var r=n?[e].concat(n):[e];return t<0&&(t=r.length),r},function(e){var n=e?[null].concat(e):[null];return t<0&&(t=n.length),n},function(e){var n=e?[null].concat(e):[null];return t<0&&(t=n.length),n}),t},n.handleUnshift=function(e){return function(){return n.unshift(e)}},n.handleRemove=function(e){return function(){return n.remove(e)}},n.handlePop=function(){return function(){return n.pop()}},n.remove=n.remove.bind(hu(n)),n.pop=n.pop.bind(hu(n)),n}ho(t,e);var n=t.prototype;return n.componentDidUpdate=function(e){this.props.validateOnChange&&this.props.formik.validateOnChange&&!sd()(hm(e.formik.values,e.name),hm(this.props.formik.values,this.props.name))&&this.props.formik.validateForm(this.props.formik.values)},n.remove=function(e){var t;return this.updateArrayField(function(n){var r=n?hU(n):[];return t||(t=r[e]),hl(r.splice)&&r.splice(e,1),r},!0,!0),t},n.pop=function(){var e;return this.updateArrayField(function(t){var n=t;return e||(e=n&&n.pop&&n.pop()),n},!0,!0),e},n.render=function(){var e={push:this.push,pop:this.pop,swap:this.swap,move:this.move,insert:this.insert,replace:this.replace,unshift:this.unshift,remove:this.remove,handlePush:this.handlePush,handlePop:this.handlePop,handleSwap:this.handleSwap,handleMove:this.handleMove,handleInsert:this.handleInsert,handleReplace:this.handleReplace,handleUnshift:this.handleUnshift,handleRemove:this.handleRemove},t=this.props,n=t.component,r=t.render,i=t.children,a=t.name,o=hs(t.formik,["validate","validationSchema"]),s=ha({},e,{form:o,name:a});return n?(0,l.createElement)(n,s):r?r(s):i?"function"==typeof i?i(s):hp(i)?null:l.Children.only(i):null},t})(l.Component).defaultProps={validateOnChange:!0},l.Component,l.Component;var hH=n(24802),h$=n(71209),hz=n(91750),hG=n(11970),hW=n(4689),hK=n(67598),hV=function(){return(hV=Object.assign||function(e){for(var t,n=1,r=arguments.length;nt.indexOf(r)&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var i=0,r=Object.getOwnPropertySymbols(e);it.indexOf(r[i])&&(n[r[i]]=e[r[i]]);return n}function hZ(e){var t=e.disabled,n=e.field,r=n.onBlur,i=hq(n,["onBlur"]),a=e.form,o=a.isSubmitting,s=a.touched,u=a.errors,c=e.onBlur,l=e.helperText,f=hq(e,["disabled","field","form","onBlur","helperText"]),d=hm(u,i.name),h=hm(s,i.name)&&!!d;return hV(hV({variant:f.variant,error:h,helperText:h?d:l,disabled:null!=t?t:o,onBlur:null!=c?c:function(e){r(null!=e?e:i.name)}},i),f)}function hX(e){var t=e.children,n=hq(e,["children"]);return(0,l.createElement)(iw.Z,hV({},hZ(n)),t)}function hJ(e){var t=e.disabled,n=e.field,r=n.onBlur,i=hq(n,["onBlur"]),a=e.form.isSubmitting,o=(e.type,e.onBlur),s=hq(e,["disabled","field","form","type","onBlur"]);return hV(hV({disabled:null!=t?t:a,onBlur:null!=o?o:function(e){r(null!=e?e:i.name)}},i),s)}function hQ(e){return(0,l.createElement)(hH.Z,hV({},hJ(e)))}function h1(e){var t,n=e.disabled,r=e.field,i=r.onBlur,a=hq(r,["onBlur"]),o=e.form.isSubmitting,s=(e.type,e.onBlur),u=hq(e,["disabled","field","form","type","onBlur"]);return hV(hV({disabled:null!=n?n:o,indeterminate:!Array.isArray(a.value)&&null==a.value,onBlur:null!=s?s:function(e){i(null!=e?e:a.name)}},a),u)}function h0(e){return(0,l.createElement)(h$.Z,hV({},h1(e)))}function h2(e){var t=e.Label,n=hq(e,["Label"]);return(0,l.createElement)(hz.Z,hV({control:(0,l.createElement)(h$.Z,hV({},h1(n)))},t))}function h3(e){var t=e.disabled,n=e.field,r=n.onBlur,i=hq(n,["onBlur"]),a=e.form.isSubmitting,o=e.onBlur,s=hq(e,["disabled","field","form","onBlur"]);return hV(hV({disabled:null!=t?t:a,onBlur:null!=o?o:function(e){r(null!=e?e:i.name)}},i),s)}function h4(e){return(0,l.createElement)(hG.default,hV({},h3(e)))}function h6(e){var t=e.field,n=t.onBlur,r=hq(t,["onBlur"]),i=(e.form,e.onBlur),a=hq(e,["field","form","onBlur"]);return hV(hV({onBlur:null!=i?i:function(e){n(null!=e?e:r.name)}},r),a)}function h5(e){return(0,l.createElement)(hW.Z,hV({},h6(e)))}function h8(e){var t=e.disabled,n=e.field,r=n.onBlur,i=hq(n,["onBlur"]),a=e.form.isSubmitting,o=e.onBlur,s=hq(e,["disabled","field","form","onBlur"]);return hV(hV({disabled:null!=t?t:a,onBlur:null!=o?o:function(e){r(null!=e?e:i.name)}},i),s)}function h9(e){return(0,l.createElement)(hK.default,hV({},h8(e)))}hX.displayName="FormikMaterialUITextField",hQ.displayName="FormikMaterialUISwitch",h0.displayName="FormikMaterialUICheckbox",h2.displayName="FormikMaterialUICheckboxWithLabel",h4.displayName="FormikMaterialUISelect",h5.displayName="FormikMaterialUIRadioGroup",h9.displayName="FormikMaterialUIInputBase";try{a=Map}catch(h7){}try{o=Set}catch(pe){}function pt(e,t,n){if(!e||"object"!=typeof e||"function"==typeof e)return e;if(e.nodeType&&"cloneNode"in e)return e.cloneNode(!0);if(e instanceof Date)return new Date(e.getTime());if(e instanceof RegExp)return RegExp(e);if(Array.isArray(e))return e.map(pn);if(a&&e instanceof a)return new Map(Array.from(e.entries()));if(o&&e instanceof o)return new Set(Array.from(e.values()));if(e instanceof Object){t.push(e);var r=Object.create(e);for(var i in n.push(r),e){var s=t.findIndex(function(t){return t===e[i]});r[i]=s>-1?n[s]:pt(e[i],t,n)}return r}return e}function pn(e){return pt(e,[],[])}let pr=Object.prototype.toString,pi=Error.prototype.toString,pa=RegExp.prototype.toString,po="undefined"!=typeof Symbol?Symbol.prototype.toString:()=>"",ps=/^Symbol\((.*)\)(.*)$/;function pu(e){if(e!=+e)return"NaN";let t=0===e&&1/e<0;return t?"-0":""+e}function pc(e,t=!1){if(null==e||!0===e||!1===e)return""+e;let n=typeof e;if("number"===n)return pu(e);if("string"===n)return t?`"${e}"`:e;if("function"===n)return"[Function "+(e.name||"anonymous")+"]";if("symbol"===n)return po.call(e).replace(ps,"Symbol($1)");let r=pr.call(e).slice(8,-1);return"Date"===r?isNaN(e.getTime())?""+e:e.toISOString(e):"Error"===r||e instanceof Error?"["+pi.call(e)+"]":"RegExp"===r?pa.call(e):null}function pl(e,t){let n=pc(e,t);return null!==n?n:JSON.stringify(e,function(e,n){let r=pc(this[e],t);return null!==r?r:n},2)}let pf={default:"${path} is invalid",required:"${path} is a required field",oneOf:"${path} must be one of the following values: ${values}",notOneOf:"${path} must not be one of the following values: ${values}",notType({path:e,type:t,value:n,originalValue:r}){let i=null!=r&&r!==n,a=`${e} must be a \`${t}\` type, but the final value was: \`${pl(n,!0)}\``+(i?` (cast from the value \`${pl(r,!0)}\`).`:".");return null===n&&(a+='\n If "null" is intended as an empty value be sure to mark the schema as `.nullable()`'),a},defined:"${path} must be defined"},pd={length:"${path} must be exactly ${length} characters",min:"${path} must be at least ${min} characters",max:"${path} must be at most ${max} characters",matches:'${path} must match the following: "${regex}"',email:"${path} must be a valid email",url:"${path} must be a valid URL",uuid:"${path} must be a valid UUID",trim:"${path} must be a trimmed string",lowercase:"${path} must be a lowercase string",uppercase:"${path} must be a upper case string"},ph={min:"${path} must be greater than or equal to ${min}",max:"${path} must be less than or equal to ${max}",lessThan:"${path} must be less than ${less}",moreThan:"${path} must be greater than ${more}",positive:"${path} must be a positive number",negative:"${path} must be a negative number",integer:"${path} must be an integer"},pp={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"},pb={isValue:"${path} field must be ${value}"},pm={noUnknown:"${path} field has unspecified keys: ${unknown}"},pg={min:"${path} field must have at least ${min} items",max:"${path} field must have less than or equal to ${max} items",length:"${path} must be have ${length} items"};Object.assign(Object.create(null),{mixed:pf,string:pd,number:ph,date:pp,object:pm,array:pg,boolean:pb});var pv=n(18721),py=n.n(pv);let pw=e=>e&&e.__isYupSchema__;class p_{constructor(e,t){if(this.refs=e,this.refs=e,"function"==typeof t){this.fn=t;return}if(!py()(t,"is"))throw TypeError("`is:` is required for `when()` conditions");if(!t.then&&!t.otherwise)throw TypeError("either `then:` or `otherwise:` is required for `when()` conditions");let{is:n,then:r,otherwise:i}=t,a="function"==typeof n?n:(...e)=>e.every(e=>e===n);this.fn=function(...e){let t=e.pop(),n=e.pop(),o=a(...e)?r:i;if(o)return"function"==typeof o?o(n):n.concat(o.resolve(t))}}resolve(e,t){let n=this.refs.map(e=>e.getValue(null==t?void 0:t.value,null==t?void 0:t.parent,null==t?void 0:t.context)),r=this.fn.apply(e,n.concat(e,t));if(void 0===r||r===e)return e;if(!pw(r))throw TypeError("conditions must return a schema object");return r.resolve(t)}}let pE=p_;function pS(e){return null==e?[]:[].concat(e)}function pk(){return(pk=Object.assign||function(e){for(var t=1;tpl(t[n])):"function"==typeof e?e(t):e}static isError(e){return e&&"ValidationError"===e.name}constructor(e,t,n,r){super(),this.name="ValidationError",this.value=t,this.path=n,this.type=r,this.errors=[],this.inner=[],pS(e).forEach(e=>{pT.isError(e)?(this.errors.push(...e.errors),this.inner=this.inner.concat(e.inner.length?e.inner:e)):this.errors.push(e)}),this.message=this.errors.length>1?`${this.errors.length} errors occurred`:this.errors[0],Error.captureStackTrace&&Error.captureStackTrace(this,pT)}}let pM=e=>{let t=!1;return(...n)=>{t||(t=!0,e(...n))}};function pO(e,t){let{endEarly:n,tests:r,args:i,value:a,errors:o,sort:s,path:u}=e,c=pM(t),l=r.length,f=[];if(o=o||[],!l)return o.length?c(new pT(o,a,u)):c(null,a);for(let d=0;d=0||(i[n]=e[n]);return i}function pR(e){function t(t,n){let{value:r,path:i="",label:a,options:o,originalValue:s,sync:u}=t,c=pP(t,["value","path","label","options","originalValue","sync"]),{name:l,test:f,params:d,message:h}=e,{parent:p,context:b}=o;function m(e){return pD.isRef(e)?e.getValue(r,p,b):e}function g(e={}){let t=pL()(pN({value:r,originalValue:s,label:a,path:e.path||i},d,e.params),m),n=new pT(pT.formatError(e.message||h,t),r,t.path,e.type||l);return n.params=t,n}let v=pN({path:i,parent:p,type:l,createError:g,resolve:m,options:o,originalValue:s},c);if(!u){try{Promise.resolve(f.call(v,r,v)).then(e=>{pT.isError(e)?n(e):e?n(null,e):n(g())})}catch(y){n(y)}return}let w;try{var _;if(w=f.call(v,r,v),"function"==typeof(null==(_=w)?void 0:_.then))throw Error(`Validation test of type: "${v.type}" returned a Promise during a synchronous validate. This test will finish after the validate call has returned`)}catch(E){n(E);return}pT.isError(w)?n(w):w?n(null,w):n(g())}return t.OPTIONS=e,t}pD.prototype.__isYupRef=!0;let pj=e=>e.substr(0,e.length-1).substr(1);function pF(e,t,n,r=n){let i,a,o;return t?((0,pC.forEach)(t,(s,u,c)=>{let l=u?pj(s):s;if((e=e.resolve({context:r,parent:i,value:n})).innerType){let f=c?parseInt(l,10):0;if(n&&f>=n.length)throw Error(`Yup.reach cannot resolve an array item at index: ${s}, in the path: ${t}. because there is no value at that index. `);i=n,n=n&&n[f],e=e.innerType}if(!c){if(!e.fields||!e.fields[l])throw Error(`The schema does not contain the path: ${t}. (failed at: ${o} which is a type: "${e._type}")`);i=n,n=n&&n[l],e=e.fields[l]}a=l,o=u?"["+s+"]":"."+s}),{schema:e,parent:i,parentPath:a}):{parent:i,parentPath:t,schema:e}}class pY{constructor(){this.list=new Set,this.refs=new Map}get size(){return this.list.size+this.refs.size}describe(){let e=[];for(let t of this.list)e.push(t);for(let[,n]of this.refs)e.push(n.describe());return e}toArray(){return Array.from(this.list).concat(Array.from(this.refs.values()))}add(e){pD.isRef(e)?this.refs.set(e.key,e):this.list.add(e)}delete(e){pD.isRef(e)?this.refs.delete(e.key):this.list.delete(e)}has(e,t){if(this.list.has(e))return!0;let n,r=this.refs.values();for(;!(n=r.next()).done;)if(t(n.value)===e)return!0;return!1}clone(){let e=new pY;return e.list=new Set(this.list),e.refs=new Map(this.refs),e}merge(e,t){let n=this.clone();return e.list.forEach(e=>n.add(e)),e.refs.forEach(e=>n.add(e)),t.list.forEach(e=>n.delete(e)),t.refs.forEach(e=>n.delete(e)),n}}function pB(){return(pB=Object.assign||function(e){for(var t=1;t{this.typeError(pf.notType)}),this.type=(null==e?void 0:e.type)||"mixed",this.spec=pB({strip:!1,strict:!1,abortEarly:!0,recursive:!0,nullable:!1,presence:"optional"},null==e?void 0:e.spec)}get _type(){return this.type}_typeCheck(e){return!0}clone(e){if(this._mutate)return e&&Object.assign(this.spec,e),this;let t=Object.create(Object.getPrototypeOf(this));return t.type=this.type,t._typeError=this._typeError,t._whitelistError=this._whitelistError,t._blacklistError=this._blacklistError,t._whitelist=this._whitelist.clone(),t._blacklist=this._blacklist.clone(),t.exclusiveTests=pB({},this.exclusiveTests),t.deps=[...this.deps],t.conditions=[...this.conditions],t.tests=[...this.tests],t.transforms=[...this.transforms],t.spec=pn(pB({},this.spec,e)),t}label(e){var t=this.clone();return t.spec.label=e,t}meta(...e){if(0===e.length)return this.spec.meta;let t=this.clone();return t.spec.meta=Object.assign(t.spec.meta||{},e[0]),t}withMutation(e){let t=this._mutate;this._mutate=!0;let n=e(this);return this._mutate=t,n}concat(e){if(!e||e===this)return this;if(e.type!==this.type&&"mixed"!==this.type)throw TypeError(`You cannot \`concat()\` schema's of different types: ${this.type} and ${e.type}`);let t=this,n=e.clone(),r=pB({},t.spec,n.spec);return n.spec=r,n._typeError||(n._typeError=t._typeError),n._whitelistError||(n._whitelistError=t._whitelistError),n._blacklistError||(n._blacklistError=t._blacklistError),n._whitelist=t._whitelist.merge(e._whitelist,e._blacklist),n._blacklist=t._blacklist.merge(e._blacklist,e._whitelist),n.tests=t.tests,n.exclusiveTests=t.exclusiveTests,n.withMutation(t=>{e.tests.forEach(e=>{t.test(e.OPTIONS)})}),n}isType(e){return!!this.spec.nullable&&null===e||this._typeCheck(e)}resolve(e){let t=this;if(t.conditions.length){let n=t.conditions;(t=t.clone()).conditions=[],t=(t=n.reduce((t,n)=>n.resolve(t,e),t)).resolve(e)}return t}cast(e,t={}){let n=this.resolve(pB({value:e},t)),r=n._cast(e,t);if(void 0!==e&&!1!==t.assert&&!0!==n.isType(r)){let i=pl(e),a=pl(r);throw TypeError(`The value of ${t.path||"field"} could not be cast to a value that satisfies the schema type: "${n._type}". attempted value: ${i} -`+(a!==i?`result of cast: ${a}`:""))}return r}_cast(e,t){let n=void 0===e?e:this.transforms.reduce((t,n)=>n.call(this,t,e,this),e);return void 0===n&&(n=this.getDefault()),n}_validate(e,t={},n){let{sync:r,path:i,from:a=[],originalValue:o=e,strict:s=this.spec.strict,abortEarly:u=this.spec.abortEarly}=t,c=e;s||(c=this._cast(c,pU({assert:!1},t)));let l={value:c,path:i,options:t,originalValue:o,schema:this,label:this.spec.label,sync:r,from:a},f=[];this._typeError&&f.push(this._typeError),this._whitelistError&&f.push(this._whitelistError),this._blacklistError&&f.push(this._blacklistError),pA({args:l,value:c,path:i,sync:r,tests:f,endEarly:u},e=>{if(e)return void n(e,c);pA({tests:this.tests,args:l,path:i,sync:r,value:c,endEarly:u},n)})}validate(e,t,n){let r=this.resolve(pU({},t,{value:e}));return"function"==typeof n?r._validate(e,t,n):new Promise((n,i)=>r._validate(e,t,(e,t)=>{e?i(e):n(t)}))}validateSync(e,t){let n;return this.resolve(pU({},t,{value:e}))._validate(e,pU({},t,{sync:!0}),(e,t)=>{if(e)throw e;n=t}),n}isValid(e,t){return this.validate(e,t).then(()=>!0,e=>{if(pM.isError(e))return!1;throw e})}isValidSync(e,t){try{return this.validateSync(e,t),!0}catch(n){if(pM.isError(n))return!1;throw n}}_getDefault(){let e=this.spec.default;return null==e?e:"function"==typeof e?e.call(this):pr(e)}getDefault(e){return this.resolve(e||{})._getDefault()}default(e){return 0===arguments.length?this._getDefault():this.clone({default:e})}strict(e=!0){var t=this.clone();return t.spec.strict=e,t}_isPresent(e){return null!=e}defined(e=pd.defined){return this.test({message:e,name:"defined",exclusive:!0,test:e=>void 0!==e})}required(e=pd.required){return this.clone({presence:"required"}).withMutation(t=>t.test({message:e,name:"required",exclusive:!0,test(e){return this.schema._isPresent(e)}}))}notRequired(){var e=this.clone({presence:"optional"});return e.tests=e.tests.filter(e=>"required"!==e.OPTIONS.name),e}nullable(e=!0){return this.clone({nullable:!1!==e})}transform(e){var t=this.clone();return t.transforms.push(e),t}test(...e){let t;if(void 0===(t=1===e.length?"function"==typeof e[0]?{test:e[0]}:e[0]:2===e.length?{name:e[0],test:e[1]}:{name:e[0],message:e[1],test:e[2]}).message&&(t.message=pd.default),"function"!=typeof t.test)throw TypeError("`test` is a required parameters");let n=this.clone(),r=pj(t),i=t.exclusive||t.name&&!0===n.exclusiveTests[t.name];if(t.exclusive&&!t.name)throw TypeError("Exclusive tests must provide a unique `name` identifying the test");return t.name&&(n.exclusiveTests[t.name]=!!t.exclusive),n.tests=n.tests.filter(e=>e.OPTIONS.name!==t.name||!i&&e.OPTIONS.test!==r.OPTIONS.test),n.tests.push(r),n}when(e,t){Array.isArray(e)||"string"==typeof e||(t=e,e=".");let n=this.clone(),r=pk(e).map(e=>new pN(e));return r.forEach(e=>{e.isSibling&&n.deps.push(e.key)}),n.conditions.push(new pS(r,t)),n}typeError(e){var t=this.clone();return t._typeError=pj({message:e,name:"typeError",test(e){return!!(void 0===e||this.schema.isType(e))||this.createError({params:{type:this.schema._type}})}}),t}oneOf(e,t=pd.oneOf){var n=this.clone();return e.forEach(e=>{n._whitelist.add(e),n._blacklist.delete(e)}),n._whitelistError=pj({message:t,name:"oneOf",test(e){if(void 0===e)return!0;let t=this.schema._whitelist;return!!t.has(e,this.resolve)||this.createError({params:{values:t.toArray().join(", ")}})}}),n}notOneOf(e,t=pd.notOneOf){var n=this.clone();return e.forEach(e=>{n._blacklist.add(e),n._whitelist.delete(e)}),n._blacklistError=pj({message:t,name:"notOneOf",test(e){let t=this.schema._blacklist;return!t.has(e,this.resolve)||this.createError({params:{values:t.toArray().join(", ")}})}}),n}strip(e=!0){let t=this.clone();return t.spec.strip=e,t}describe(){let e=this.clone(),{label:t,meta:n}=e.spec,r={meta:n,label:t,type:e.type,oneOf:e._whitelist.describe(),notOneOf:e._blacklist.describe(),tests:e.tests.map(e=>({name:e.OPTIONS.name,params:e.OPTIONS.params})).filter((e,t,n)=>n.findIndex(t=>t.name===e.name)===t)};return r}}for(let p$ of(pH.prototype.__isYupSchema__=!0,["validate","validateSync"]))pH.prototype[`${p$}At`]=function(e,t,n={}){let{parent:r,parentPath:i,schema:a}=pY(this,e,t,n.context);return a[p$](r&&r[i],pU({},n,{parent:r,path:e}))};for(let pz of["equals","is"])pH.prototype[pz]=pH.prototype.oneOf;for(let pG of["not","nope"])pH.prototype[pG]=pH.prototype.notOneOf;pH.prototype.optional=pH.prototype.notRequired;let pW=pH;function pK(){return new pW}pK.prototype=pW.prototype;let pV=e=>null==e;function pq(){return new pZ}class pZ extends pH{constructor(){super({type:"boolean"}),this.withMutation(()=>{this.transform(function(e){if(!this.isType(e)){if(/^(true|1)$/i.test(String(e)))return!0;if(/^(false|0)$/i.test(String(e)))return!1}return e})})}_typeCheck(e){return e instanceof Boolean&&(e=e.valueOf()),"boolean"==typeof e}isTrue(e=pm.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"true"},test:e=>pV(e)||!0===e})}isFalse(e=pm.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"false"},test:e=>pV(e)||!1===e})}}pq.prototype=pZ.prototype;let pX=/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i,pJ=/^((https?|ftp):)?\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i,pQ=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i,p1=e=>pV(e)||e===e.trim(),p0=({}).toString();function p2(){return new p3}class p3 extends pH{constructor(){super({type:"string"}),this.withMutation(()=>{this.transform(function(e){if(this.isType(e)||Array.isArray(e))return e;let t=null!=e&&e.toString?e.toString():e;return t===p0?e:t})})}_typeCheck(e){return e instanceof String&&(e=e.valueOf()),"string"==typeof e}_isPresent(e){return super._isPresent(e)&&!!e.length}length(e,t=ph.length){return this.test({message:t,name:"length",exclusive:!0,params:{length:e},test(t){return pV(t)||t.length===this.resolve(e)}})}min(e,t=ph.min){return this.test({message:t,name:"min",exclusive:!0,params:{min:e},test(t){return pV(t)||t.length>=this.resolve(e)}})}max(e,t=ph.max){return this.test({name:"max",exclusive:!0,message:t,params:{max:e},test(t){return pV(t)||t.length<=this.resolve(e)}})}matches(e,t){let n=!1,r,i;return t&&("object"==typeof t?{excludeEmptyString:n=!1,message:r,name:i}=t:r=t),this.test({name:i||"matches",message:r||ph.matches,params:{regex:e},test:t=>pV(t)||""===t&&n||-1!==t.search(e)})}email(e=ph.email){return this.matches(pX,{name:"email",message:e,excludeEmptyString:!0})}url(e=ph.url){return this.matches(pJ,{name:"url",message:e,excludeEmptyString:!0})}uuid(e=ph.uuid){return this.matches(pQ,{name:"uuid",message:e,excludeEmptyString:!1})}ensure(){return this.default("").transform(e=>null===e?"":e)}trim(e=ph.trim){return this.transform(e=>null!=e?e.trim():e).test({message:e,name:"trim",test:p1})}lowercase(e=ph.lowercase){return this.transform(e=>pV(e)?e:e.toLowerCase()).test({message:e,name:"string_case",exclusive:!0,test:e=>pV(e)||e===e.toLowerCase()})}uppercase(e=ph.uppercase){return this.transform(e=>pV(e)?e:e.toUpperCase()).test({message:e,name:"string_case",exclusive:!0,test:e=>pV(e)||e===e.toUpperCase()})}}p2.prototype=p3.prototype;let p4=e=>e!=+e;function p5(){return new p6}class p6 extends pH{constructor(){super({type:"number"}),this.withMutation(()=>{this.transform(function(e){let t=e;if("string"==typeof t){if(""===(t=t.replace(/\s/g,"")))return NaN;t=+t}return this.isType(t)?t:parseFloat(t)})})}_typeCheck(e){return e instanceof Number&&(e=e.valueOf()),"number"==typeof e&&!p4(e)}min(e,t=pp.min){return this.test({message:t,name:"min",exclusive:!0,params:{min:e},test(t){return pV(t)||t>=this.resolve(e)}})}max(e,t=pp.max){return this.test({message:t,name:"max",exclusive:!0,params:{max:e},test(t){return pV(t)||t<=this.resolve(e)}})}lessThan(e,t=pp.lessThan){return this.test({message:t,name:"max",exclusive:!0,params:{less:e},test(t){return pV(t)||tthis.resolve(e)}})}positive(e=pp.positive){return this.moreThan(0,e)}negative(e=pp.negative){return this.lessThan(0,e)}integer(e=pp.integer){return this.test({name:"integer",message:e,test:e=>pV(e)||Number.isInteger(e)})}truncate(){return this.transform(e=>pV(e)?e:0|e)}round(e){var t,n=["ceil","floor","round","trunc"];if("trunc"===(e=(null==(t=e)?void 0:t.toLowerCase())||"round"))return this.truncate();if(-1===n.indexOf(e.toLowerCase()))throw TypeError("Only valid options for round() are: "+n.join(", "));return this.transform(t=>pV(t)?t:Math[e](t))}}p5.prototype=p6.prototype;var p9=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;function p8(e){var t,n,r=[1,4,5,6,7,10,11],i=0;if(n=p9.exec(e)){for(var a,o=0;a=r[o];++o)n[a]=+n[a]||0;n[2]=(+n[2]||1)-1,n[3]=+n[3]||1,n[7]=n[7]?String(n[7]).substr(0,3):0,(void 0===n[8]||""===n[8])&&(void 0===n[9]||""===n[9])?t=+new Date(n[1],n[2],n[3],n[4],n[5],n[6],n[7]):("Z"!==n[8]&&void 0!==n[9]&&(i=60*n[10]+n[11],"+"===n[9]&&(i=0-i)),t=Date.UTC(n[1],n[2],n[3],n[4],n[5]+i,n[6],n[7]))}else t=Date.parse?Date.parse(e):NaN;return t}let p7=new Date(""),be=e=>"[object Date]"===Object.prototype.toString.call(e);function bt(){return new bn}class bn extends pH{constructor(){super({type:"date"}),this.withMutation(()=>{this.transform(function(e){return this.isType(e)?e:(e=p8(e),isNaN(e)?p7:new Date(e))})})}_typeCheck(e){return be(e)&&!isNaN(e.getTime())}prepareParam(e,t){let n;if(pN.isRef(e))n=e;else{let r=this.cast(e);if(!this._typeCheck(r))throw TypeError(`\`${t}\` must be a Date or a value that can be \`cast()\` to a Date`);n=r}return n}min(e,t=pb.min){let n=this.prepareParam(e,"min");return this.test({message:t,name:"min",exclusive:!0,params:{min:e},test(e){return pV(e)||e>=this.resolve(n)}})}max(e,t=pb.max){var n=this.prepareParam(e,"max");return this.test({message:t,name:"max",exclusive:!0,params:{max:e},test(e){return pV(e)||e<=this.resolve(n)}})}}bn.INVALID_DATE=p7,bt.prototype=bn.prototype,bt.INVALID_DATE=p7;var br=n(11865),bi=n.n(br),ba=n(68929),bo=n.n(ba),bs=n(67523),bu=n.n(bs),bc=n(94633),bl=n.n(bc);function bf(e,t=[]){let n=[],r=[];function i(e,i){var a=(0,pI.split)(e)[0];~r.indexOf(a)||r.push(a),~t.indexOf(`${i}-${a}`)||n.push([i,a])}for(let a in e)if(pw()(e,a)){let o=e[a];~r.indexOf(a)||r.push(a),pN.isRef(o)&&o.isSibling?i(o.path,a):p_(o)&&"deps"in o&&o.deps.forEach(e=>i(e,a))}return bl().array(r,n).reverse()}function bd(e,t){let n=1/0;return e.some((e,r)=>{var i;if((null==(i=t.path)?void 0:i.indexOf(e))!==-1)return n=r,!0}),n}function bh(e){return(t,n)=>bd(e,t)-bd(e,n)}function bp(){return(bp=Object.assign||function(e){for(var t=1;t"[object Object]"===Object.prototype.toString.call(e);function bm(e,t){let n=Object.keys(e.fields);return Object.keys(t).filter(e=>-1===n.indexOf(e))}let bg=bh([]);class bv extends pH{constructor(e){super({type:"object"}),this.fields=Object.create(null),this._sortErrors=bg,this._nodes=[],this._excludedEdges=[],this.withMutation(()=>{this.transform(function(e){if("string"==typeof e)try{e=JSON.parse(e)}catch(t){e=null}return this.isType(e)?e:null}),e&&this.shape(e)})}_typeCheck(e){return bb(e)||"function"==typeof e}_cast(e,t={}){var n;let r=super._cast(e,t);if(void 0===r)return this.getDefault();if(!this._typeCheck(r))return r;let i=this.fields,a=null!=(n=t.stripUnknown)?n:this.spec.noUnknown,o=this._nodes.concat(Object.keys(r).filter(e=>-1===this._nodes.indexOf(e))),s={},u=bp({},t,{parent:s,__validating:t.__validating||!1}),c=!1;for(let l of o){let f=i[l],d=pw()(r,l);if(f){let h,p=r[l];u.path=(t.path?`${t.path}.`:"")+l;let b="spec"in(f=f.resolve({value:p,context:t.context,parent:s}))?f.spec:void 0,m=null==b?void 0:b.strict;if(null==b?void 0:b.strip){c=c||l in r;continue}void 0!==(h=t.__validating&&m?r[l]:f.cast(r[l],u))&&(s[l]=h)}else d&&!a&&(s[l]=r[l]);s[l]!==r[l]&&(c=!0)}return c?s:r}_validate(e,t={},n){let r=[],{sync:i,from:a=[],originalValue:o=e,abortEarly:s=this.spec.abortEarly,recursive:u=this.spec.recursive}=t;a=[{schema:this,value:o},...a],t.__validating=!0,t.originalValue=o,t.from=a,super._validate(e,t,(e,c)=>{if(e){if(!pM.isError(e)||s)return void n(e,c);r.push(e)}if(!u||!bb(c)){n(r[0]||null,c);return}o=o||c;let l=this._nodes.map(e=>(n,r)=>{let i=-1===e.indexOf(".")?(t.path?`${t.path}.`:"")+e:`${t.path||""}["${e}"]`,s=this.fields[e];if(s&&"validate"in s){s.validate(c[e],bp({},t,{path:i,from:a,strict:!0,parent:c,originalValue:o[e]}),r);return}r(null)});pA({sync:i,tests:l,value:c,errors:r,endEarly:s,sort:this._sortErrors,path:t.path},n)})}clone(e){let t=super.clone(e);return t.fields=bp({},this.fields),t._nodes=this._nodes,t._excludedEdges=this._excludedEdges,t._sortErrors=this._sortErrors,t}concat(e){let t=super.concat(e),n=t.fields;for(let[r,i]of Object.entries(this.fields)){let a=n[r];void 0===a?n[r]=i:a instanceof pH&&i instanceof pH&&(n[r]=i.concat(a))}return t.withMutation(()=>t.shape(n))}getDefaultFromShape(){let e={};return this._nodes.forEach(t=>{let n=this.fields[t];e[t]="default"in n?n.getDefault():void 0}),e}_getDefault(){return"default"in this.spec?super._getDefault():this._nodes.length?this.getDefaultFromShape():void 0}shape(e,t=[]){let n=this.clone(),r=Object.assign(n.fields,e);if(n.fields=r,n._sortErrors=bh(Object.keys(r)),t.length){Array.isArray(t[0])||(t=[t]);let i=t.map(([e,t])=>`${e}-${t}`);n._excludedEdges=n._excludedEdges.concat(i)}return n._nodes=bf(r,n._excludedEdges),n}pick(e){let t={};for(let n of e)this.fields[n]&&(t[n]=this.fields[n]);return this.clone().withMutation(e=>(e.fields={},e.shape(t)))}omit(e){let t=this.clone(),n=t.fields;for(let r of(t.fields={},e))delete n[r];return t.withMutation(()=>t.shape(n))}from(e,t,n){let r=(0,pI.getter)(e,!0);return this.transform(i=>{if(null==i)return i;let a=i;return pw()(i,e)&&(a=bp({},i),n||delete a[e],a[t]=r(i)),a})}noUnknown(e=!0,t=pg.noUnknown){"string"==typeof e&&(t=e,e=!0);let n=this.test({name:"noUnknown",exclusive:!0,message:t,test(t){if(null==t)return!0;let n=bm(this.schema,t);return!e||0===n.length||this.createError({params:{unknown:n.join(", ")}})}});return n.spec.noUnknown=e,n}unknown(e=!0,t=pg.noUnknown){return this.noUnknown(!e,t)}transformKeys(e){return this.transform(t=>t&&bu()(t,(t,n)=>e(n)))}camelCase(){return this.transformKeys(bo())}snakeCase(){return this.transformKeys(bi())}constantCase(){return this.transformKeys(e=>bi()(e).toUpperCase())}describe(){let e=super.describe();return e.fields=pC()(this.fields,e=>e.describe()),e}}function by(e){return new bv(e)}function bw(){return(bw=Object.assign||function(e){for(var t=1;t{this.transform(function(e){if("string"==typeof e)try{e=JSON.parse(e)}catch(t){e=null}return this.isType(e)?e:null})})}_typeCheck(e){return Array.isArray(e)}get _subType(){return this.innerType}_cast(e,t){let n=super._cast(e,t);if(!this._typeCheck(n)||!this.innerType)return n;let r=!1,i=n.map((e,n)=>{let i=this.innerType.cast(e,bw({},t,{path:`${t.path||""}[${n}]`}));return i!==e&&(r=!0),i});return r?i:n}_validate(e,t={},n){var r,i;let a=[],o=t.sync,s=t.path,u=this.innerType,c=null!=(r=t.abortEarly)?r:this.spec.abortEarly,l=null!=(i=t.recursive)?i:this.spec.recursive,f=null!=t.originalValue?t.originalValue:e;super._validate(e,t,(e,r)=>{if(e){if(!pM.isError(e)||c)return void n(e,r);a.push(e)}if(!l||!u||!this._typeCheck(r)){n(a[0]||null,r);return}f=f||r;let i=Array(r.length);for(let d=0;du.validate(h,b,t)}pA({sync:o,path:s,value:r,errors:a,endEarly:c,tests:i},n)})}clone(e){let t=super.clone(e);return t.innerType=this.innerType,t}concat(e){let t=super.concat(e);return t.innerType=this.innerType,e.innerType&&(t.innerType=t.innerType?t.innerType.concat(e.innerType):e.innerType),t}of(e){let t=this.clone();if(!p_(e))throw TypeError("`array.of()` sub-schema must be a valid yup schema not: "+pf(e));return t.innerType=e,t}length(e,t=pv.length){return this.test({message:t,name:"length",exclusive:!0,params:{length:e},test(t){return pV(t)||t.length===this.resolve(e)}})}min(e,t){return t=t||pv.min,this.test({message:t,name:"min",exclusive:!0,params:{min:e},test(t){return pV(t)||t.length>=this.resolve(e)}})}max(e,t){return t=t||pv.max,this.test({message:t,name:"max",exclusive:!0,params:{max:e},test(t){return pV(t)||t.length<=this.resolve(e)}})}ensure(){return this.default(()=>[]).transform((e,t)=>this._typeCheck(e)?e:null==t?[]:[].concat(t))}compact(e){let t=e?(t,n,r)=>!e(t,n,r):e=>!!e;return this.transform(e=>null!=e?e.filter(t):e)}describe(){let e=super.describe();return this.innerType&&(e.innerType=this.innerType.describe()),e}nullable(e=!0){return super.nullable(e)}defined(){return super.defined()}required(e){return super.required(e)}}b_.prototype=bE.prototype;var bS=by().shape({name:p2().required("Required"),url:p2().required("Required")}),bk=function(e){var t=e.initialValues,n=e.onSubmit,r=e.submitButtonText,i=e.nameDisabled,a=void 0!==i&&i;return l.createElement(hM,{initialValues:t,validationSchema:bS,onSubmit:n},function(e){var t=e.isSubmitting;return l.createElement(l.Fragment,null,l.createElement(hj,{"data-testid":"bridge-form",noValidate:!0},l.createElement(d.Z,{container:!0,spacing:16},l.createElement(d.Z,{item:!0,xs:12,md:7},l.createElement(hR,{component:hJ,id:"name",name:"name",label:"Name",disabled:a,required:!0,fullWidth:!0,FormHelperTextProps:{"data-testid":"name-helper-text"}})),l.createElement(d.Z,{item:!0,xs:12,md:7},l.createElement(hR,{component:hJ,id:"url",name:"url",label:"Bridge URL",placeholder:"https://",required:!0,fullWidth:!0,FormHelperTextProps:{"data-testid":"url-helper-text"}})),l.createElement(d.Z,{item:!0,xs:12,md:7},l.createElement(d.Z,{container:!0,spacing:16},l.createElement(d.Z,{item:!0,xs:7},l.createElement(hR,{component:hJ,id:"minimumContractPayment",name:"minimumContractPayment",label:"Minimum Contract Payment",placeholder:"0",fullWidth:!0,inputProps:{min:0},FormHelperTextProps:{"data-testid":"minimumContractPayment-helper-text"}})),l.createElement(d.Z,{item:!0,xs:7},l.createElement(hR,{component:hJ,id:"confirmations",name:"confirmations",label:"Confirmations",placeholder:"0",type:"number",fullWidth:!0,inputProps:{min:0},FormHelperTextProps:{"data-testid":"confirmations-helper-text"}})))),l.createElement(d.Z,{item:!0,xs:12,md:7},l.createElement(ox.default,{variant:"contained",color:"primary",type:"submit",disabled:t,size:"large"},r)))))})},bx=function(e){var t=e.bridge,n=e.onSubmit,r={name:t.name,url:t.url,minimumContractPayment:t.minimumContractPayment,confirmations:t.confirmations};return l.createElement(iv,null,l.createElement(d.Z,{container:!0,spacing:40},l.createElement(d.Z,{item:!0,xs:12,md:11,lg:9},l.createElement(r9.Z,null,l.createElement(sf.Z,{title:"Edit Bridge",action:l.createElement(aL.Z,{component:tz,href:"/bridges/".concat(t.id)},"Cancel")}),l.createElement(aK.Z,null,l.createElement(bk,{nameDisabled:!0,initialValues:r,onSubmit:n,submitButtonText:"Save Bridge"}))))))};function bT(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&void 0!==arguments[0]&&arguments[0],t=e?function(){return l.createElement(x.default,{variant:"body1"},"Loading...")}:function(){return null};return{isLoading:e,LoadingPlaceholder:t}},ml=n(76023);function mf(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]=0||(i[n]=e[n]);return i}function mB(e,t){if(null==e)return{};var n,r,i=mY(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function mU(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n=4?[e[0],e[1],e[2],e[3],"".concat(e[0],".").concat(e[1]),"".concat(e[0],".").concat(e[2]),"".concat(e[0],".").concat(e[3]),"".concat(e[1],".").concat(e[0]),"".concat(e[1],".").concat(e[2]),"".concat(e[1],".").concat(e[3]),"".concat(e[2],".").concat(e[0]),"".concat(e[2],".").concat(e[1]),"".concat(e[2],".").concat(e[3]),"".concat(e[3],".").concat(e[0]),"".concat(e[3],".").concat(e[1]),"".concat(e[3],".").concat(e[2]),"".concat(e[0],".").concat(e[1],".").concat(e[2]),"".concat(e[0],".").concat(e[1],".").concat(e[3]),"".concat(e[0],".").concat(e[2],".").concat(e[1]),"".concat(e[0],".").concat(e[2],".").concat(e[3]),"".concat(e[0],".").concat(e[3],".").concat(e[1]),"".concat(e[0],".").concat(e[3],".").concat(e[2]),"".concat(e[1],".").concat(e[0],".").concat(e[2]),"".concat(e[1],".").concat(e[0],".").concat(e[3]),"".concat(e[1],".").concat(e[2],".").concat(e[0]),"".concat(e[1],".").concat(e[2],".").concat(e[3]),"".concat(e[1],".").concat(e[3],".").concat(e[0]),"".concat(e[1],".").concat(e[3],".").concat(e[2]),"".concat(e[2],".").concat(e[0],".").concat(e[1]),"".concat(e[2],".").concat(e[0],".").concat(e[3]),"".concat(e[2],".").concat(e[1],".").concat(e[0]),"".concat(e[2],".").concat(e[1],".").concat(e[3]),"".concat(e[2],".").concat(e[3],".").concat(e[0]),"".concat(e[2],".").concat(e[3],".").concat(e[1]),"".concat(e[3],".").concat(e[0],".").concat(e[1]),"".concat(e[3],".").concat(e[0],".").concat(e[2]),"".concat(e[3],".").concat(e[1],".").concat(e[0]),"".concat(e[3],".").concat(e[1],".").concat(e[2]),"".concat(e[3],".").concat(e[2],".").concat(e[0]),"".concat(e[3],".").concat(e[2],".").concat(e[1]),"".concat(e[0],".").concat(e[1],".").concat(e[2],".").concat(e[3]),"".concat(e[0],".").concat(e[1],".").concat(e[3],".").concat(e[2]),"".concat(e[0],".").concat(e[2],".").concat(e[1],".").concat(e[3]),"".concat(e[0],".").concat(e[2],".").concat(e[3],".").concat(e[1]),"".concat(e[0],".").concat(e[3],".").concat(e[1],".").concat(e[2]),"".concat(e[0],".").concat(e[3],".").concat(e[2],".").concat(e[1]),"".concat(e[1],".").concat(e[0],".").concat(e[2],".").concat(e[3]),"".concat(e[1],".").concat(e[0],".").concat(e[3],".").concat(e[2]),"".concat(e[1],".").concat(e[2],".").concat(e[0],".").concat(e[3]),"".concat(e[1],".").concat(e[2],".").concat(e[3],".").concat(e[0]),"".concat(e[1],".").concat(e[3],".").concat(e[0],".").concat(e[2]),"".concat(e[1],".").concat(e[3],".").concat(e[2],".").concat(e[0]),"".concat(e[2],".").concat(e[0],".").concat(e[1],".").concat(e[3]),"".concat(e[2],".").concat(e[0],".").concat(e[3],".").concat(e[1]),"".concat(e[2],".").concat(e[1],".").concat(e[0],".").concat(e[3]),"".concat(e[2],".").concat(e[1],".").concat(e[3],".").concat(e[0]),"".concat(e[2],".").concat(e[3],".").concat(e[0],".").concat(e[1]),"".concat(e[2],".").concat(e[3],".").concat(e[1],".").concat(e[0]),"".concat(e[3],".").concat(e[0],".").concat(e[1],".").concat(e[2]),"".concat(e[3],".").concat(e[0],".").concat(e[2],".").concat(e[1]),"".concat(e[3],".").concat(e[1],".").concat(e[0],".").concat(e[2]),"".concat(e[3],".").concat(e[1],".").concat(e[2],".").concat(e[0]),"".concat(e[3],".").concat(e[2],".").concat(e[0],".").concat(e[1]),"".concat(e[3],".").concat(e[2],".").concat(e[1],".").concat(e[0])]:void 0}var mX={};function mJ(e){if(0===e.length||1===e.length)return e;var t=e.join(".");return mX[t]||(mX[t]=mZ(e)),mX[t]}function mQ(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0;return mJ(e.filter(function(e){return"token"!==e})).reduce(function(e,t){return mV({},e,n[t])},t)}function m1(e){return e.join(" ")}function m0(e,t){var n=0;return function(r){return n+=1,r.map(function(r,i){return m2({node:r,stylesheet:e,useInlineStyles:t,key:"code-segment-".concat(n,"-").concat(i)})})}}function m2(e){var t=e.node,n=e.stylesheet,r=e.style,i=void 0===r?{}:r,a=e.useInlineStyles,o=e.key,s=t.properties,u=t.type,c=t.tagName,f=t.value;if("text"===u)return f;if(c){var d,h=m0(n,a);if(a){var p=Object.keys(n).reduce(function(e,t){return t.split(".").forEach(function(t){e.includes(t)||e.push(t)}),e},[]),b=s.className&&s.className.includes("token")?["token"]:[],m=s.className&&b.concat(s.className.filter(function(e){return!p.includes(e)}));d=mV({},s,{className:m1(m)||void 0,style:mQ(s.className,Object.assign({},s.style,i),n)})}else d=mV({},s,{className:m1(s.className)});var g=h(t.children);return l.createElement(c,mq({key:o},d),g)}}let m3=function(e,t){return -1!==e.listLanguages().indexOf(t)};var m4=/\n/g;function m5(e){return e.match(m4)}function m6(e){var t=e.lines,n=e.startingLineNumber,r=e.style;return t.map(function(e,t){var i=t+n;return l.createElement("span",{key:"line-".concat(t),className:"react-syntax-highlighter-line-number",style:"function"==typeof r?r(i):r},"".concat(i,"\n"))})}function m9(e){var t=e.codeString,n=e.codeStyle,r=e.containerStyle,i=void 0===r?{float:"left",paddingRight:"10px"}:r,a=e.numberStyle,o=void 0===a?{}:a,s=e.startingLineNumber;return l.createElement("code",{style:Object.assign({},n,i)},m6({lines:t.replace(/\n$/,"").split("\n"),style:o,startingLineNumber:s}))}function m8(e){return"".concat(e.toString().length,".25em")}function m7(e,t){return{type:"element",tagName:"span",properties:{key:"line-number--".concat(e),className:["comment","linenumber","react-syntax-highlighter-line-number"],style:t},children:[{type:"text",value:e}]}}function ge(e,t,n){var r,i={display:"inline-block",minWidth:m8(n),paddingRight:"1em",textAlign:"right",userSelect:"none"};return mV({},i,"function"==typeof e?e(t):e)}function gt(e){var t=e.children,n=e.lineNumber,r=e.lineNumberStyle,i=e.largestLineNumber,a=e.showInlineLineNumbers,o=e.lineProps,s=void 0===o?{}:o,u=e.className,c=void 0===u?[]:u,l=e.showLineNumbers,f=e.wrapLongLines,d="function"==typeof s?s(n):s;if(d.className=c,n&&a){var h=ge(r,n,i);t.unshift(m7(n,h))}return f&l&&(d.style=mV({},d.style,{display:"flex"})),{type:"element",tagName:"span",properties:d,children:t}}function gn(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],r=0;r2&&void 0!==arguments[2]?arguments[2]:[];return gt({children:e,lineNumber:t,lineNumberStyle:s,largestLineNumber:o,showInlineLineNumbers:i,lineProps:n,className:a,showLineNumbers:r,wrapLongLines:u})}function b(e,t){if(r&&t&&i){var n=ge(s,t,o);e.unshift(m7(t,n))}return e}function m(e,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];return t||r.length>0?p(e,n,r):b(e,n)}for(var g=function(){var e=l[h],t=e.children[0].value;if(m5(t)){var n=t.split("\n");n.forEach(function(t,i){var o=r&&f.length+a,s={type:"text",value:"".concat(t,"\n")};if(0===i){var u=l.slice(d+1,h).concat(gt({children:[s],className:e.properties.className})),c=m(u,o);f.push(c)}else if(i===n.length-1){if(l[h+1]&&l[h+1].children&&l[h+1].children[0]){var p={type:"text",value:"".concat(t)},b=gt({children:[p],className:e.properties.className});l.splice(h+1,0,b)}else{var g=[s],v=m(g,o,e.properties.className);f.push(v)}}else{var y=[s],w=m(y,o,e.properties.className);f.push(w)}}),d=h}h++};h code[class*="language-"]':{background:"#f5f2f0",padding:".1em",borderRadius:".3em",whiteSpace:"normal"},comment:{color:"slategray"},prolog:{color:"slategray"},doctype:{color:"slategray"},cdata:{color:"slategray"},punctuation:{color:"#999"},namespace:{Opacity:".7"},property:{color:"#905"},tag:{color:"#905"},boolean:{color:"#905"},number:{color:"#905"},constant:{color:"#905"},symbol:{color:"#905"},deleted:{color:"#905"},selector:{color:"#690"},"attr-name":{color:"#690"},string:{color:"#690"},char:{color:"#690"},builtin:{color:"#690"},inserted:{color:"#690"},operator:{color:"#9a6e3a",background:"hsla(0, 0%, 100%, .5)"},entity:{color:"#9a6e3a",background:"hsla(0, 0%, 100%, .5)",cursor:"help"},url:{color:"#9a6e3a",background:"hsla(0, 0%, 100%, .5)"},".language-css .token.string":{color:"#9a6e3a",background:"hsla(0, 0%, 100%, .5)"},".style .token.string":{color:"#9a6e3a",background:"hsla(0, 0%, 100%, .5)"},atrule:{color:"#07a"},"attr-value":{color:"#07a"},keyword:{color:"#07a"},function:{color:"#DD4A68"},"class-name":{color:"#DD4A68"},regex:{color:"#e90"},important:{color:"#e90",fontWeight:"bold"},variable:{color:"#e90"},bold:{fontWeight:"bold"},italic:{fontStyle:"italic"}};var gc=n(98695),gl=n.n(gc);let gf=["abap","abnf","actionscript","ada","agda","al","antlr4","apacheconf","apl","applescript","aql","arduino","arff","asciidoc","asm6502","aspnet","autohotkey","autoit","bash","basic","batch","bbcode","birb","bison","bnf","brainfuck","brightscript","bro","bsl","c","cil","clike","clojure","cmake","coffeescript","concurnas","cpp","crystal","csharp","csp","css-extras","css","cypher","d","dart","dax","dhall","diff","django","dns-zone-file","docker","ebnf","editorconfig","eiffel","ejs","elixir","elm","erb","erlang","etlua","excel-formula","factor","firestore-security-rules","flow","fortran","fsharp","ftl","gcode","gdscript","gedcom","gherkin","git","glsl","gml","go","graphql","groovy","haml","handlebars","haskell","haxe","hcl","hlsl","hpkp","hsts","http","ichigojam","icon","iecst","ignore","inform7","ini","io","j","java","javadoc","javadoclike","javascript","javastacktrace","jolie","jq","js-extras","js-templates","jsdoc","json","json5","jsonp","jsstacktrace","jsx","julia","keyman","kotlin","latex","latte","less","lilypond","liquid","lisp","livescript","llvm","lolcode","lua","makefile","markdown","markup-templating","markup","matlab","mel","mizar","mongodb","monkey","moonscript","n1ql","n4js","nand2tetris-hdl","naniscript","nasm","neon","nginx","nim","nix","nsis","objectivec","ocaml","opencl","oz","parigp","parser","pascal","pascaligo","pcaxis","peoplecode","perl","php-extras","php","phpdoc","plsql","powerquery","powershell","processing","prolog","properties","protobuf","pug","puppet","pure","purebasic","purescript","python","q","qml","qore","r","racket","reason","regex","renpy","rest","rip","roboconf","robotframework","ruby","rust","sas","sass","scala","scheme","scss","shell-session","smali","smalltalk","smarty","sml","solidity","solution-file","soy","sparql","splunk-spl","sqf","sql","stan","stylus","swift","t4-cs","t4-templating","t4-vb","tap","tcl","textile","toml","tsx","tt2","turtle","twig","typescript","typoscript","unrealscript","vala","vbnet","velocity","verilog","vhdl","vim","visual-basic","warpscript","wasm","wiki","xeora","xml-doc","xojo","xquery","yaml","yang","zig"];var gd=gs(gl(),gu);gd.supportedLanguages=gf;let gh=gd;var gp=n(64566);function gb(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function gm(){var e=gb(["\n query FetchConfigV2 {\n configv2 {\n user\n effective\n }\n }\n"]);return gm=function(){return e},e}var gg=n0(gm()),gv=function(e){var t=e.children;return l.createElement(ii.Z,null,l.createElement(ie.default,{component:"th",scope:"row",colSpan:3},t))},gy=function(){return l.createElement(gv,null,"...")},gw=function(e){var t=e.children;return l.createElement(gv,null,t)},g_=function(e){var t=e.loading,n=e.toml,r=e.error,i=void 0===r?"":r,a=e.title,o=e.expanded;if(i)return l.createElement(gw,null,i);if(t)return l.createElement(gy,null);a||(a="TOML");var s={display:"block"};return l.createElement(x.default,null,l.createElement(mR.Z,{defaultExpanded:o},l.createElement(mj.Z,{expandIcon:l.createElement(gp.Z,null)},a),l.createElement(mF.Z,{style:s},l.createElement(gh,{language:"toml",style:gu},n))))},gE=function(){var e=ry(gg,{fetchPolicy:"cache-and-network"}),t=e.data,n=e.loading,r=e.error;return(null==t?void 0:t.configv2.effective)=="N/A"?l.createElement(l.Fragment,null,l.createElement(d.Z,{item:!0,xs:12},l.createElement(r9.Z,null,l.createElement(sf.Z,{title:"TOML Configuration"}),l.createElement(g_,{title:"V2 config dump:",error:null==r?void 0:r.message,loading:n,toml:null==t?void 0:t.configv2.user,showHead:!0})))):l.createElement(l.Fragment,null,l.createElement(d.Z,{container:!0},l.createElement(d.Z,{item:!0,xs:12},l.createElement(r9.Z,null,l.createElement(sf.Z,{title:"TOML Configuration"}),l.createElement(g_,{title:"User specified:",error:null==r?void 0:r.message,loading:n,toml:null==t?void 0:t.configv2.user,showHead:!0,expanded:!0}),l.createElement(g_,{title:"Effective (with defaults):",error:null==r?void 0:r.message,loading:n,toml:null==t?void 0:t.configv2.effective,showHead:!0})))))},gS=n(34823),gk=function(e){return(0,b.createStyles)({cell:{paddingTop:1.5*e.spacing.unit,paddingBottom:1.5*e.spacing.unit}})},gx=(0,b.withStyles)(gk)(function(e){var t=e.classes,n=(0,A.I0)();(0,l.useEffect)(function(){n((0,ty.DQ)())});var r=(0,A.v9)(gS.N,A.wU);return l.createElement(r9.Z,null,l.createElement(sf.Z,{title:"Node"}),l.createElement(r8.Z,null,l.createElement(r7.Z,null,l.createElement(ii.Z,null,l.createElement(ie.default,{className:t.cell},l.createElement(x.default,null,"Version"),l.createElement(x.default,{variant:"subtitle1",color:"textSecondary"},r.version))),l.createElement(ii.Z,null,l.createElement(ie.default,{className:t.cell},l.createElement(x.default,null,"SHA"),l.createElement(x.default,{variant:"subtitle1",color:"textSecondary"},r.commitSHA))))))}),gT=function(){return l.createElement(iv,null,l.createElement(d.Z,{container:!0},l.createElement(d.Z,{item:!0,sm:12,md:8},l.createElement(d.Z,{container:!0},l.createElement(gE,null))),l.createElement(d.Z,{item:!0,sm:12,md:4},l.createElement(d.Z,{container:!0},l.createElement(d.Z,{item:!0,xs:12},l.createElement(gx,null)),l.createElement(d.Z,{item:!0,xs:12},l.createElement(mP,null)),l.createElement(d.Z,{item:!0,xs:12},l.createElement(mS,null))))))},gM=function(){return l.createElement(gT,null)},gO=function(){return l.createElement(gM,null)},gA=n(44431),gL=1e18,gC=function(e){return new gA.BigNumber(e).dividedBy(gL).toFixed(8)},gI=function(e){var t=e.keys,n=e.chainID,r=e.hideHeaderTitle;return l.createElement(l.Fragment,null,l.createElement(sf.Z,{title:!r&&"Account Balances",subheader:"Chain ID "+n}),l.createElement(aK.Z,null,l.createElement(w.default,{dense:!1,disablePadding:!0},t&&t.map(function(e,r){return l.createElement(l.Fragment,null,l.createElement(_.default,{disableGutters:!0,key:["acc-balance",n.toString(),r.toString()].join("-")},l.createElement(E.Z,{primary:l.createElement(l.Fragment,null,l.createElement(d.Z,{container:!0,spacing:16},l.createElement(d.Z,{item:!0,xs:12},l.createElement(ob,{title:"Address"}),l.createElement(om,{value:e.address})),l.createElement(d.Z,{item:!0,xs:6},l.createElement(ob,{title:"Native Token Balance"}),l.createElement(om,{value:e.ethBalance||"--"})),l.createElement(d.Z,{item:!0,xs:6},l.createElement(ob,{title:"LINK Balance"}),l.createElement(om,{value:e.linkBalance?gC(e.linkBalance):"--"}))))})),r+1s&&l.createElement(gU.Z,null,l.createElement(ii.Z,null,l.createElement(ie.default,{className:r.footer},l.createElement(aL.Z,{href:"/runs",component:tz},"View More"))))))});function vn(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function vr(){var e=vn(["\n ","\n query FetchRecentJobRuns($offset: Int, $limit: Int) {\n jobRuns(offset: $offset, limit: $limit) {\n results {\n ...RecentJobRunsPayload_ResultsFields\n }\n metadata {\n total\n }\n }\n }\n"]);return vr=function(){return e},e}var vi=5,va=n0(vr(),g7),vo=function(){var e=ry(va,{variables:{offset:0,limit:vi},fetchPolicy:"cache-and-network"}),t=e.data,n=e.loading,r=e.error;return l.createElement(vt,{data:t,errorMsg:null==r?void 0:r.message,loading:n,maxRunsSize:vi})},vs=function(e){return(0,b.createStyles)({style:{textAlign:"center",padding:2.5*e.spacing.unit,position:"fixed",left:"0",bottom:"0",width:"100%",borderRadius:0},bareAnchor:{color:e.palette.common.black,textDecoration:"none"}})},vu=(0,b.withStyles)(vs)(function(e){var t=e.classes,n=(0,A.v9)(gS.N,A.wU),r=(0,A.I0)();return(0,l.useEffect)(function(){r((0,ty.DQ)())}),l.createElement(ia.default,{className:t.style},l.createElement(x.default,null,"Chainlink Node ",n.version," at commit"," ",l.createElement("a",{target:"_blank",rel:"noopener noreferrer",href:"https://github.com/smartcontractkit/chainlink/commit/".concat(n.commitSHA),className:t.bareAnchor},n.commitSHA)))}),vc=function(e){return(0,b.createStyles)({cell:{borderColor:e.palette.divider,borderTop:"1px solid",borderBottom:"none",paddingTop:2*e.spacing.unit,paddingBottom:2*e.spacing.unit,paddingLeft:2*e.spacing.unit},block:{display:"block"},overflowEllipsis:{textOverflow:"ellipsis",overflow:"hidden"}})},vl=(0,b.withStyles)(vc)(function(e){var t=e.classes,n=e.job;return l.createElement(ii.Z,null,l.createElement(ie.default,{scope:"row",className:t.cell},l.createElement(d.Z,{container:!0,spacing:0},l.createElement(d.Z,{item:!0,xs:12},l.createElement(ip,{href:"/jobs/".concat(n.id),classes:{linkContent:t.block}},l.createElement(x.default,{className:t.overflowEllipsis,variant:"body1",component:"span",color:"primary"},n.name||n.id))),l.createElement(d.Z,{item:!0,xs:12},l.createElement(x.default,{variant:"body1",color:"textSecondary"},"Created ",l.createElement(aA,{tooltip:!0},n.createdAt))))))});function vf(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function vd(){var e=vf(["\n fragment RecentJobsPayload_ResultsFields on Job {\n id\n name\n createdAt\n }\n"]);return vd=function(){return e},e}var vh=n0(vd()),vp=function(){return(0,b.createStyles)({cardHeader:{borderBottom:0},table:{tableLayout:"fixed"}})},vb=(0,b.withStyles)(vp)(function(e){var t,n,r=e.classes,i=e.data,a=e.errorMsg,o=e.loading;return l.createElement(r9.Z,null,l.createElement(sf.Z,{title:"Recent Jobs",className:r.cardHeader}),l.createElement(r8.Z,{className:r.table},l.createElement(r7.Z,null,l.createElement(gz,{visible:o}),l.createElement(gG,{visible:(null===(t=null==i?void 0:i.jobs.results)||void 0===t?void 0:t.length)===0},"No recently created jobs"),l.createElement(gH,{msg:a}),null===(n=null==i?void 0:i.jobs.results)||void 0===n?void 0:n.map(function(e,t){return l.createElement(vl,{job:e,key:t})}))))});function vm(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function vg(){var e=vm(["\n ","\n query FetchRecentJobs($offset: Int, $limit: Int) {\n jobs(offset: $offset, limit: $limit) {\n results {\n ...RecentJobsPayload_ResultsFields\n }\n }\n }\n"]);return vg=function(){return e},e}var vv=5,vy=n0(vg(),vh),vw=function(){var e=ry(vy,{variables:{offset:0,limit:vv},fetchPolicy:"cache-and-network"}),t=e.data,n=e.loading,r=e.error;return l.createElement(vb,{data:t,errorMsg:null==r?void 0:r.message,loading:n})},v_=function(){return l.createElement(iv,null,l.createElement(d.Z,{container:!0},l.createElement(d.Z,{item:!0,xs:8},l.createElement(vo,null)),l.createElement(d.Z,{item:!0,xs:4},l.createElement(d.Z,{container:!0},l.createElement(d.Z,{item:!0,xs:12},l.createElement(gB,null)),l.createElement(d.Z,{item:!0,xs:12},l.createElement(vw,null))))),l.createElement(vu,null))},vE=function(){return l.createElement(v_,null)},vS=function(){return l.createElement(vE,null)},vk=n(87239),vx=function(e){switch(e){case"DirectRequestSpec":return"Direct Request";case"FluxMonitorSpec":return"Flux Monitor";default:return e.replace(/Spec$/,"")}},vT=n(5022),vM=n(78718),vO=n.n(vM);function vA(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n1?t-1:0),r=1;r1?t-1:0),r=1;re.length)&&(t=e.length);for(var n=0,r=Array(t);ne.length)&&(t=e.length);for(var n=0,r=Array(t);ne.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&n.map(function(e){return l.createElement(ii.Z,{key:e.id,style:{cursor:"pointer"},onClick:function(){return r.push("/runs/".concat(e.id))}},l.createElement(ie.default,{className:t.idCell,scope:"row"},l.createElement("div",{className:t.runDetails},l.createElement(x.default,{variant:"h5",color:"primary",component:"span"},e.id))),l.createElement(ie.default,{className:t.stampCell},l.createElement(x.default,{variant:"body1",color:"textSecondary",className:t.stamp},"Created ",l.createElement(aA,{tooltip:!0},e.createdAt))),l.createElement(ie.default,{className:t.statusCell,scope:"row"},l.createElement(x.default,{variant:"body1",className:O()(t.status,yp(t,e.status))},e.status.toLowerCase())))})))}),ym=n(16839),yg=n.n(ym);function yv(e){var t=e.replace(/\w+\s*=\s*<([^>]|[\r\n])*>/g,""),n=yg().read(t),r=n.edges();return n.nodes().map(function(e){var t={id:e,parentIds:r.filter(function(t){return t.w===e}).map(function(e){return e.v})};return Object.keys(n.node(e)).length>0&&(t.attributes=n.node(e)),t})}var yy=n(94164),yw=function(e){var t=e.data,n=[];return(null==t?void 0:t.attributes)&&Object.keys(t.attributes).forEach(function(e){var r;n.push(l.createElement("div",{key:e},l.createElement(x.default,{variant:"body1",color:"textSecondary",component:"div"},l.createElement("b",null,e,":")," ",null===(r=t.attributes)||void 0===r?void 0:r[e])))}),l.createElement("div",null,t&&l.createElement(x.default,{variant:"body1",color:"textPrimary"},l.createElement("b",null,t.id)),n)},y_=n(73343),yE=n(3379),yS=n.n(yE);function yk(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);nwindow.innerWidth?u-r.getBoundingClientRect().width-a:u+a,n=c+r.getBoundingClientRect().height+i>window.innerHeight?c-r.getBoundingClientRect().height-a:c+a,r.style.opacity=String(1),r.style.top="".concat(n,"px"),r.style.left="".concat(t,"px"),r.style.zIndex=String(1)}},h=function(e){var t=document.getElementById("tooltip-d3-chart-".concat(e));t&&(t.style.opacity=String(0),t.style.zIndex=String(-1))};return l.createElement("div",{style:{fontFamily:"sans-serif",fontWeight:"normal"}},l.createElement(yy.kJ,{id:"task-list-graph-d3",data:i,config:s,onMouseOverNode:d,onMouseOutNode:h},"D3 chart"),n.map(function(e){return l.createElement("div",{key:"d3-tooltip-key-".concat(e.id),id:"tooltip-d3-chart-".concat(e.id),style:{position:"absolute",opacity:"0",border:"1px solid rgba(0, 0, 0, 0.1)",padding:y_.r.spacing.unit,background:"white",borderRadius:5,zIndex:-1,inlineSize:"min-content"}},l.createElement(yw,{data:e}))}))};function yC(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);nyB&&l.createElement("div",{className:t.runDetails},l.createElement(aL.Z,{href:"/jobs/".concat(n.id,"/runs"),component:tz},"View more")))),l.createElement(d.Z,{item:!0,xs:12,sm:6},l.createElement(yY,{observationSource:n.observationSource})))});function y$(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);ne.length)&&(t=e.length);for(var n=0,r=Array(t);ne.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&void 0!==arguments[0]?arguments[0]:"";try{return vT.parse(e),!0}catch(t){return!1}})}),wK=function(e){var t=e.initialValues,n=e.onSubmit,r=e.onTOMLChange;return l.createElement(hM,{initialValues:t,validationSchema:wW,onSubmit:n},function(e){var t=e.isSubmitting,n=e.values;return r&&r(n.toml),l.createElement(hj,{"data-testid":"job-form",noValidate:!0},l.createElement(d.Z,{container:!0,spacing:16},l.createElement(d.Z,{item:!0,xs:12},l.createElement(hR,{component:hJ,id:"toml",name:"toml",label:"Job Spec (TOML)",required:!0,fullWidth:!0,multiline:!0,rows:10,rowsMax:25,variant:"outlined",autoComplete:"off",FormHelperTextProps:{"data-testid":"toml-helper-text"}})),l.createElement(d.Z,{item:!0,xs:12,md:7},l.createElement(ox.default,{variant:"contained",color:"primary",type:"submit",disabled:t,size:"large"},"Create Job"))))})},wV=n(50109),wq="persistSpec";function wZ(e){var t=e.query,n=new URLSearchParams(t).get("definition");return n?(wV.t8(wq,n),{toml:n}):{toml:wV.U2(wq)||""}}var wX=function(e){var t=e.onSubmit,n=e.onTOMLChange,r=wZ({query:(0,h.TH)().search}),i=function(e){var t=e.replace(/[\u200B-\u200D\uFEFF]/g,"");wV.t8("".concat(wq),t),n&&n(t)};return l.createElement(r9.Z,null,l.createElement(sf.Z,{title:"New Job"}),l.createElement(aK.Z,null,l.createElement(wK,{initialValues:r,onSubmit:t,onTOMLChange:i})))};function wJ(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);ne.length)&&(t=e.length);for(var n=0,r=Array(t);ne.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]e.length)&&(t=e.length);for(var n=0,r=Array(t);n1&&void 0!==arguments[1]?arguments[1]:{},n=t.start,r=void 0===n?6:n,i=t.end,a=void 0===i?4:i;return e.substring(0,r)+"..."+e.substring(e.length-a)}function _O(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&void 0!==arguments[0]?arguments[0]:{};return ry(_K,e)},_q=function(){var e=_V({fetchPolicy:"cache-and-network"}),t=e.data,n=e.loading,r=e.error,i=e.refetch;return l.createElement(_H,{loading:n,data:t,errorMsg:null==r?void 0:r.message,refetch:i})},_Z=function(e){var t=e.csaKey;return l.createElement(ii.Z,{hover:!0},l.createElement(ie.default,null,l.createElement(x.default,{variant:"body1"},t.publicKey," ",l.createElement(_T,{data:t.publicKey}))))};function _X(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function _J(){var e=_X(["\n fragment CSAKeysPayload_ResultsFields on CSAKey {\n id\n publicKey\n }\n"]);return _J=function(){return e},e}var _Q=n0(_J()),_1=function(e){var t,n,r,i=e.data,a=e.errorMsg,o=e.loading,s=e.onCreate;return l.createElement(r9.Z,null,l.createElement(sf.Z,{action:(null===(t=null==i?void 0:i.csaKeys.results)||void 0===t?void 0:t.length)===0&&l.createElement(ox.default,{variant:"outlined",color:"primary",onClick:s},"New CSA Key"),title:"CSA Key",subheader:"Manage your CSA Key"}),l.createElement(r8.Z,null,l.createElement(it.Z,null,l.createElement(ii.Z,null,l.createElement(ie.default,null,"Public Key"))),l.createElement(r7.Z,null,l.createElement(gz,{visible:o}),l.createElement(gG,{visible:(null===(n=null==i?void 0:i.csaKeys.results)||void 0===n?void 0:n.length)===0}),l.createElement(gH,{msg:a}),null===(r=null==i?void 0:i.csaKeys.results)||void 0===r?void 0:r.map(function(e,t){return l.createElement(_Z,{csaKey:e,key:t})}))))};function _0(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&void 0!==arguments[0]?arguments[0]:{};return ry(EO,e)};function EL(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&void 0!==arguments[0]?arguments[0]:{};return ry(EQ,e)},E4=function(){return os(E1)},E5=function(){return os(E0)},E6=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return ry(E2,e)};function E9(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);ne.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]e.length)&&(t=e.length);for(var n=0,r=Array(t);ne.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&void 0!==arguments[0]?arguments[0]:{};return ry(SV,e)};function SZ(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]e.length)&&(t=e.length);for(var n=0,r=Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function kq(e,t){if(null==e)return{};var n,r,i={},a=Object.keys(e);for(r=0;r=0||(i[n]=e[n]);return i}var kZ=function(e){var t=e.run,n=l.useMemo(function(){var e=t.inputs,n=t.outputs,r=t.taskRuns,i=kV(t,["inputs","outputs","taskRuns"]),a={};try{a=JSON.parse(e)}catch(o){a={}}return kK(kG({},i),{inputs:a,outputs:n,taskRuns:r})},[t]);return l.createElement(r9.Z,null,l.createElement(aK.Z,null,l.createElement(k$,{object:n})))};function kX(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function kJ(e){for(var t=1;t0&&l.createElement(ki,{errors:t.allErrors})),l.createElement(d.Z,{item:!0,xs:12},l.createElement(h.rs,null,l.createElement(h.AW,{path:"".concat(n,"/json")},l.createElement(kZ,{run:t})),l.createElement(h.AW,{path:n},t.taskRuns.length>0&&l.createElement(kP,{taskRuns:t.taskRuns,observationSource:t.job.observationSource}))))))))};function k9(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function k8(){var e=k9(["\n ","\n query FetchJobRun($id: ID!) {\n jobRun(id: $id) {\n __typename\n ... on JobRun {\n ...JobRunPayload_Fields\n }\n ... on NotFoundError {\n message\n }\n }\n }\n"]);return k8=function(){return e},e}var k7=n0(k8(),k5),xe=function(){var e=ry(k7,{variables:{id:(0,h.UO)().id}}),t=e.data,n=e.loading,r=e.error;if(n)return l.createElement(ij,null);if(r)return l.createElement(iN,{error:r});var i=null==t?void 0:t.jobRun;switch(null==i?void 0:i.__typename){case"JobRun":return l.createElement(k6,{run:i});case"NotFoundError":return l.createElement(oo,null);default:return null}};function xt(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function xn(){var e=xt(["\n fragment JobRunsPayload_ResultsFields on JobRun {\n id\n allErrors\n createdAt\n finishedAt\n status\n job {\n id\n }\n }\n"]);return xn=function(){return e},e}var xr=n0(xn()),xi=function(e){var t=e.loading,n=e.data,r=e.page,i=e.pageSize,a=(0,h.k6)(),o=l.useMemo(function(){return null==n?void 0:n.jobRuns.results.map(function(e){var t,n=e.allErrors,r=e.id,i=e.createdAt;return{id:r,createdAt:i,errors:n,finishedAt:e.finishedAt,status:e.status}})},[n]);return l.createElement(iv,null,l.createElement(d.Z,{container:!0,spacing:32},l.createElement(d.Z,{item:!0,xs:12},l.createElement(iw,null,"Job Runs")),t&&l.createElement(ij,null),n&&o&&l.createElement(d.Z,{item:!0,xs:12},l.createElement(r9.Z,null,l.createElement(yb,{runs:o}),l.createElement(ir.Z,{component:"div",count:n.jobRuns.metadata.total,rowsPerPage:i,rowsPerPageOptions:[i],page:r-1,onChangePage:function(e,t){a.push("/runs?page=".concat(t+1,"&per=").concat(i))},onChangeRowsPerPage:function(){},backIconButtonProps:{"aria-label":"prev-page"},nextIconButtonProps:{"aria-label":"next-page"}})))))};function xa(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function xo(){var e=xa(["\n ","\n query FetchJobRuns($offset: Int, $limit: Int) {\n jobRuns(offset: $offset, limit: $limit) {\n results {\n ...JobRunsPayload_ResultsFields\n }\n metadata {\n total\n }\n }\n }\n"]);return xo=function(){return e},e}var xs=n0(xo(),xr),xu=function(){var e=iF(),t=parseInt(e.get("page")||"1",10),n=parseInt(e.get("per")||"25",10),r=ry(xs,{variables:{offset:(t-1)*n,limit:n},fetchPolicy:"cache-and-network"}),i=r.data,a=r.loading,o=r.error;return o?l.createElement(iN,{error:o}):l.createElement(xi,{loading:a,data:i,page:t,pageSize:n})},xc=function(){var e=(0,h.$B)().path;return l.createElement(h.rs,null,l.createElement(h.AW,{exact:!0,path:e},l.createElement(xu,null)),l.createElement(h.AW,{path:"".concat(e,"/:id")},l.createElement(xe,null)))},xl=by().shape({name:p2().required("Required"),uri:p2().required("Required"),publicKey:p2().required("Required")}),xf=function(e){var t=e.initialValues,n=e.onSubmit;return l.createElement(hM,{initialValues:t,validationSchema:xl,onSubmit:n},function(e){var t=e.isSubmitting,n=e.submitForm;return l.createElement(hj,{"data-testid":"feeds-manager-form"},l.createElement(d.Z,{container:!0,spacing:16},l.createElement(d.Z,{item:!0,xs:12,md:6},l.createElement(hR,{component:hJ,id:"name",name:"name",label:"Name",required:!0,fullWidth:!0,FormHelperTextProps:{"data-testid":"name-helper-text"}})),l.createElement(d.Z,{item:!0,xs:!1,md:6}),l.createElement(d.Z,{item:!0,xs:12,md:6},l.createElement(hR,{component:hJ,id:"uri",name:"uri",label:"URI",required:!0,fullWidth:!0,helperText:"Provided by the Feeds Manager operator",FormHelperTextProps:{"data-testid":"uri-helper-text"}})),l.createElement(d.Z,{item:!0,xs:12,md:6},l.createElement(hR,{component:hJ,id:"publicKey",name:"publicKey",label:"Public Key",required:!0,fullWidth:!0,helperText:"Provided by the Feeds Manager operator",FormHelperTextProps:{"data-testid":"publicKey-helper-text"}})),l.createElement(d.Z,{item:!0,xs:12},l.createElement(ox.default,{variant:"contained",color:"primary",disabled:t,onClick:n},"Submit"))))})},xd=function(e){var t=e.data,n=e.onSubmit,r={name:t.name,uri:t.uri,publicKey:t.publicKey};return l.createElement(d.Z,{container:!0},l.createElement(d.Z,{item:!0,xs:12,md:11,lg:9},l.createElement(r9.Z,null,l.createElement(sf.Z,{title:"Edit Feeds Manager"}),l.createElement(aK.Z,null,l.createElement(xf,{initialValues:r,onSubmit:n})))))};function xh(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function xp(){var e=xh(["\n query FetchFeedsManagers {\n feedsManagers {\n results {\n __typename\n id\n name\n uri\n publicKey\n isConnectionActive\n createdAt\n }\n }\n }\n"]);return xp=function(){return e},e}var xb=n0(xp()),xm=function(){return ry(xb)};function xg(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&void 0!==arguments[0]?arguments[0]:{};return ry(xZ,e)};function xJ(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]e.length)&&(t=e.length);for(var n=0,r=Array(t);ne.length)&&(t=e.length);for(var n=0,r=Array(t);n0?n.feedsManagers.results[0]:void 0;return n&&a?l.createElement(TH,{manager:a}):l.createElement(h.l_,{to:{pathname:"/feeds_manager/new",state:{from:e}}})},Tz={name:"Chainlink Feeds Manager",uri:"",publicKey:""},TG=function(e){var t=e.onSubmit;return l.createElement(d.Z,{container:!0},l.createElement(d.Z,{item:!0,xs:12,md:11,lg:9},l.createElement(r9.Z,null,l.createElement(sf.Z,{title:"Register Feeds Manager"}),l.createElement(aK.Z,null,l.createElement(xf,{initialValues:Tz,onSubmit:t})))))};function TW(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]e.length)&&(t=e.length);for(var n=0,r=Array(t);nt.version?e:t})},[o]),g=l.useMemo(function(){return Mp(o).sort(function(e,t){return t.version-e.version})},[o]),v=function(e,t,n){switch(e){case"PENDING":return l.createElement(l.Fragment,null,l.createElement(ox.default,{variant:"text",color:"secondary",onClick:function(){return b("reject",t)}},"Reject"),m.id===t&&"DELETED"!==n.status&&"REVOKED"!==n.status&&l.createElement(ox.default,{variant:"contained",color:"primary",onClick:function(){return b("approve",t)}},"Approve"),m.id===t&&"DELETED"===n.status&&n.pendingUpdate&&l.createElement(l.Fragment,null,l.createElement(ox.default,{variant:"contained",color:"primary",onClick:function(){return b("cancel",t)}},"Cancel"),l.createElement(x.default,{color:"error"},"This proposal was deleted. Cancel the spec to delete any running jobs")));case"APPROVED":return l.createElement(l.Fragment,null,l.createElement(ox.default,{variant:"contained",onClick:function(){return b("cancel",t)}},"Cancel"),"DELETED"===n.status&&n.pendingUpdate&&l.createElement(x.default,{color:"error"},"This proposal was deleted. Cancel the spec to delete any running jobs"));case"CANCELLED":if(m.id===t&&"DELETED"!==n.status&&"REVOKED"!==n.status)return l.createElement(ox.default,{variant:"contained",color:"primary",onClick:function(){return b("approve",t)}},"Approve");return null;default:return null}};return l.createElement("div",null,g.map(function(e,n){return l.createElement(mR.Z,{defaultExpanded:0===n,key:n},l.createElement(mj.Z,{expandIcon:l.createElement(gp.Z,null)},l.createElement(x.default,{className:t.versionText},"Version ",e.version),l.createElement(Eu.Z,{label:e.status,color:"APPROVED"===e.status?"primary":"default",variant:"REJECTED"===e.status||"CANCELLED"===e.status?"outlined":"default"}),l.createElement("div",{className:t.proposedAtContainer},l.createElement(x.default,null,"Proposed ",l.createElement(aA,{tooltip:!0},e.createdAt)))),l.createElement(mF.Z,{className:t.expansionPanelDetails},l.createElement("div",{className:t.actions},l.createElement("div",{className:t.editContainer},0===n&&("PENDING"===e.status||"CANCELLED"===e.status)&&"DELETED"!==s.status&&"REVOKED"!==s.status&&l.createElement(ox.default,{variant:"contained",onClick:function(){return p(!0)}},"Edit")),l.createElement("div",{className:t.actionsContainer},v(e.status,e.id,s))),l.createElement(gh,{language:"toml",style:gu,"data-testid":"codeblock"},e.definition)))}),l.createElement(oI,{open:null!=c,title:c?My[c.action].title:"",body:c?My[c.action].body:"",onConfirm:function(){if(c){switch(c.action){case"approve":n(c.id);break;case"cancel":r(c.id);break;case"reject":i(c.id)}f(null)}},cancelButtonText:"Cancel",onCancel:function(){return f(null)}}),l.createElement(Mi,{open:h,onClose:function(){return p(!1)},initialValues:{definition:m.definition,id:m.id},onSubmit:a}))});function M_(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function ME(){var e=M_(["\n ","\n fragment JobProposalPayloadFields on JobProposal {\n id\n externalJobID\n remoteUUID\n jobID\n specs {\n ...JobProposal_SpecsFields\n }\n status\n pendingUpdate\n }\n"]);return ME=function(){return e},e}var MS=n0(ME(),Mg),Mk=function(e){var t=e.onApprove,n=e.onCancel,r=e.onReject,i=e.onUpdateSpec,a=e.proposal;return l.createElement(iv,null,l.createElement(d.Z,{container:!0,spacing:32},l.createElement(d.Z,{item:!0,xs:9},l.createElement(iw,null,"Job Proposal #",a.id))),l.createElement(T8,{proposal:a}),l.createElement(d.Z,{container:!0,spacing:32},l.createElement(d.Z,{item:!0,xs:9},l.createElement(TU,null,"Specs"))),l.createElement(d.Z,{container:!0,spacing:32},l.createElement(d.Z,{item:!0,xs:12},l.createElement(Mw,{proposal:a,specs:a.specs,onReject:r,onApprove:t,onCancel:n,onUpdateSpec:i}))))};function Mx(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]e.length)&&(t=e.length);for(var n=0,r=Array(t);ne.length)&&(t=e.length);for(var n=0,r=Array(t);nU,tA:()=>$,KL:()=>H,Iw:()=>V,DQ:()=>W,cB:()=>T,LO:()=>M,t5:()=>k,qt:()=>x,Jc:()=>C,L7:()=>Y,EO:()=>B});var r,i,a=n(66289),o=n(41800),s=n.n(o),u=n(67932);(i=r||(r={})).IN_PROGRESS="in_progress",i.PENDING_INCOMING_CONFIRMATIONS="pending_incoming_confirmations",i.PENDING_CONNECTION="pending_connection",i.PENDING_BRIDGE="pending_bridge",i.PENDING_SLEEP="pending_sleep",i.ERRORED="errored",i.COMPLETED="completed";var c=n(87013),l=n(19084),f=n(34823);function d(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]j,v2:()=>F});var r=n(66289);function i(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}var a="/sessions",o="/sessions",s=function e(t){var n=this;i(this,e),this.api=t,this.createSession=function(e){return n.create(e)},this.destroySession=function(){return n.destroy()},this.create=this.api.createResource(a),this.destroy=this.api.deleteResource(o)};function u(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}var c="/v2/bulk_delete_runs",l=function e(t){var n=this;u(this,e),this.api=t,this.bulkDeleteJobRuns=function(e){return n.destroy(e)},this.destroy=this.api.deleteResource(c)};function f(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}var d="/v2/chains/evm",h="".concat(d,"/:id"),p=function e(t){var n=this;f(this,e),this.api=t,this.getChains=function(){return n.index()},this.createChain=function(e){return n.create(e)},this.destroyChain=function(e){return n.destroy(void 0,{id:e})},this.updateChain=function(e,t){return n.update(t,{id:e})},this.index=this.api.fetchResource(d),this.create=this.api.createResource(d),this.destroy=this.api.deleteResource(h),this.update=this.api.updateResource(h)};function b(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}var m="/v2/keys/evm/chain",g=function e(t){var n=this;b(this,e),this.api=t,this.chain=function(e){var t=new URLSearchParams;t.append("address",e.address),t.append("evmChainID",e.evmChainID),null!==e.nextNonce&&t.append("nextNonce",e.nextNonce),null!==e.abandon&&t.append("abandon",String(e.abandon)),null!==e.enabled&&t.append("enabled",String(e.enabled));var r=m+"?"+t.toString();return n.api.createResource(r)()}};function v(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}var y="/v2/jobs",w="".concat(y,"/:specId/runs"),_=function e(t){var n=this;v(this,e),this.api=t,this.createJobRunV2=function(e,t){return n.post(t,{specId:e})},this.post=this.api.createResource(w,!0)};function E(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}var S="/v2/log",k=function e(t){var n=this;E(this,e),this.api=t,this.getLogConfig=function(){return n.show()},this.updateLogConfig=function(e){return n.update(e)},this.show=this.api.fetchResource(S),this.update=this.api.updateResource(S)};function x(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}var T="/v2/nodes",M=function e(t){var n=this;x(this,e),this.api=t,this.getNodes=function(){return n.index()},this.createNode=function(e){return n.create(e)},this.index=this.api.fetchResource(T),this.create=this.api.createResource(T)};function O(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}var A="/v2/enroll_webauthn",L=function e(t){var n=this;O(this,e),this.api=t,this.beginKeyRegistration=function(e){return n.create(e)},this.finishKeyRegistration=function(e){return n.put(e)},this.create=this.api.fetchResource(A),this.put=this.api.createResource(A)};function C(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}var I="/v2/build_info",D=function e(t){var n=this;C(this,e),this.api=t,this.show=function(){return n.api.GET(I)()}};function N(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}var P=function e(t){N(this,e),this.api=t,this.buildInfo=new D(this.api),this.bulkDeleteRuns=new l(this.api),this.chains=new p(this.api),this.logConfig=new k(this.api),this.nodes=new M(this.api),this.jobs=new _(this.api),this.webauthn=new L(this.api),this.evmKeys=new g(this.api)},R=new r.V0({base:void 0}),j=new s(R),F=new P(R)},1398(e,t,n){"use strict";n.d(t,{Z:()=>d});var r=n(67294),i=n(32316),a=n(83638),o=n(94184),s=n.n(o);function u(){return(u=Object.assign||function(e){for(var t=1;tc});var r=n(67294),i=n(32316);function a(){return(a=Object.assign||function(e){for(var t=1;tx,jK:()=>v});var r=n(67294),i=n(55977),a=n(45697),o=n.n(a),s=n(82204),u=n(71426),c=n(94184),l=n.n(c),f=n(32316),d=function(e){var t=e.palette.success||{},n=e.palette.warning||{};return{base:{paddingLeft:5*e.spacing.unit,paddingRight:5*e.spacing.unit},success:{backgroundColor:t.main,color:t.contrastText},error:{backgroundColor:e.palette.error.dark,color:e.palette.error.contrastText},warning:{backgroundColor:n.contrastText,color:n.main}}},h=function(e){var t,n=e.success,r=e.error,i=e.warning,a=e.classes,o=e.className;return n?t=a.success:r?t=a.error:i&&(t=a.warning),l()(a.base,o,t)},p=function(e){return r.createElement(s.Z,{className:h(e),square:!0},r.createElement(u.default,{variant:"body2",color:"inherit",component:"div"},e.children))};p.defaultProps={success:!1,error:!1,warning:!1},p.propTypes={success:o().bool,error:o().bool,warning:o().bool};let b=(0,f.withStyles)(d)(p);var m=function(){return r.createElement(r.Fragment,null,"Unhandled error. Please help us by opening a"," ",r.createElement("a",{href:"https://github.com/smartcontractkit/chainlink/issues/new"},"bug report"))};let g=m;function v(e){return"string"==typeof e?e:e.component?e.component(e.props):r.createElement(g,null)}function y(e,t){var n;return n="string"==typeof e?e:e.component?e.component(e.props):r.createElement(g,null),r.createElement("p",{key:t},n)}var w=function(e){var t=e.notifications;return r.createElement(b,{error:!0},t.map(y))},_=function(e){var t=e.notifications;return r.createElement(b,{success:!0},t.map(y))},E=function(e){var t=e.errors,n=e.successes;return r.createElement("div",null,(null==t?void 0:t.length)>0&&r.createElement(w,{notifications:t}),n.length>0&&r.createElement(_,{notifications:n}))},S=function(e){return{errors:e.notifications.errors,successes:e.notifications.successes}},k=(0,i.$j)(S)(E);let x=k},9409(e,t,n){"use strict";n.d(t,{ZP:()=>j});var r=n(67294),i=n(55977),a=n(47886),o=n(32316),s=n(1398),u=n(82204),c=n(30060),l=n(71426),f=n(60520),d=n(97779),h=n(57209),p=n(26842),b=n(3950),m=n(5536),g=n(45697),v=n.n(g);let y=n.p+"9f6d832ef97e8493764e.svg";function w(){return(w=Object.assign||function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&_.map(function(e,t){return r.createElement(d.Z,{item:!0,xs:12,key:t},r.createElement(u.Z,{raised:!1,className:v.error},r.createElement(c.Z,null,r.createElement(l.default,{variant:"body1",className:v.errorText},(0,b.jK)(e)))))}),r.createElement(d.Z,{item:!0,xs:12},r.createElement(f.Z,{id:"email",label:"Email",margin:"normal",value:n,onChange:m("email"),error:_.length>0,variant:"outlined",fullWidth:!0})),r.createElement(d.Z,{item:!0,xs:12},r.createElement(f.Z,{id:"password",label:"Password",type:"password",autoComplete:"password",margin:"normal",value:h,onChange:m("password"),error:_.length>0,variant:"outlined",fullWidth:!0})),r.createElement(d.Z,{item:!0,xs:12},r.createElement(d.Z,{container:!0,spacing:0,justify:"center"},r.createElement(d.Z,{item:!0},r.createElement(s.Z,{type:"submit",variant:"primary"},"Access Account")))),y&&r.createElement(l.default,{variant:"body1",color:"textSecondary"},"Signing in...")))))))},P=function(e){return{fetching:e.authentication.fetching,authenticated:e.authentication.allowed,errors:e.notifications.errors}},R=(0,i.$j)(P,x({submitSignIn:p.L7}))(N);let j=(0,h.wU)(e)((0,o.withStyles)(D)(R))},16353(e,t,n){"use strict";n.d(t,{ZP:()=>H,rH:()=>U});var r,i=n(55977),a=n(15857),o=n(9541),s=n(19084);function u(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function c(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:h,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case s.Mk.RECEIVE_SIGNOUT_SUCCESS:case s.Mk.RECEIVE_SIGNIN_SUCCESS:var n={allowed:t.authenticated};return o.Ks(n),f(c({},e,n),{errors:[]});case s.Mk.RECEIVE_SIGNIN_FAIL:var r={allowed:!1};return o.Ks(r),f(c({},e,r),{errors:[]});case s.Mk.RECEIVE_SIGNIN_ERROR:case s.Mk.RECEIVE_SIGNOUT_ERROR:var i={allowed:!1};return o.Ks(i),f(c({},e,i),{errors:t.errors||[]});default:return e}};let b=p;function m(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function g(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:_,t=arguments.length>1?arguments[1]:void 0;return t.type?t.type.startsWith(r.REQUEST)?y(g({},e),{count:e.count+1}):t.type.startsWith(r.RECEIVE)?y(g({},e),{count:Math.max(e.count-1,0)}):t.type.startsWith(r.RESPONSE)?y(g({},e),{count:Math.max(e.count-1,0)}):t.type===s.di.REDIRECT?y(g({},e),{count:0}):e:e};let S=E;function k(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function x(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:O,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case s.di.MATCH_ROUTE:return M(x({},O),{currentUrl:t.pathname});case s.Ih.NOTIFY_SUCCESS:var n={component:t.component,props:t.props};return M(x({},e),{successes:[n],errors:[]});case s.Ih.NOTIFY_SUCCESS_MSG:return M(x({},e),{successes:[t.msg],errors:[]});case s.Ih.NOTIFY_ERROR:var r=t.error.errors,i=null==r?void 0:r.map(function(e){return L(t,e)});return M(x({},e),{successes:[],errors:i});case s.Ih.NOTIFY_ERROR_MSG:return M(x({},e),{successes:[],errors:[t.msg]});case s.Mk.RECEIVE_SIGNIN_FAIL:return M(x({},e),{successes:[],errors:["Your email or password is incorrect. Please try again"]});default:return e}};function L(e,t){return{component:e.component,props:{msg:t.detail}}}let C=A;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}function D(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:R,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case s.di.REDIRECT:return P(D({},e),{to:t.to});case s.di.MATCH_ROUTE:return P(D({},e),{to:void 0});default:return e}};let F=j;var Y=n(87013),B=(0,a.UY)({authentication:b,fetching:S,notifications:C,redirect:F,buildInfo:Y.Z});B(void 0,{type:"INITIAL_STATE"});var U=i.v9;let H=B},19084(e,t,n){"use strict";var r,i,a,o,s,u,c,l,f,d;n.d(t,{Ih:()=>i,Mk:()=>a,Y0:()=>s,di:()=>r,jp:()=>o}),n(67294),(u=r||(r={})).REDIRECT="REDIRECT",u.MATCH_ROUTE="MATCH_ROUTE",(c=i||(i={})).NOTIFY_SUCCESS="NOTIFY_SUCCESS",c.NOTIFY_SUCCESS_MSG="NOTIFY_SUCCESS_MSG",c.NOTIFY_ERROR="NOTIFY_ERROR",c.NOTIFY_ERROR_MSG="NOTIFY_ERROR_MSG",(l=a||(a={})).REQUEST_SIGNIN="REQUEST_SIGNIN",l.RECEIVE_SIGNIN_SUCCESS="RECEIVE_SIGNIN_SUCCESS",l.RECEIVE_SIGNIN_FAIL="RECEIVE_SIGNIN_FAIL",l.RECEIVE_SIGNIN_ERROR="RECEIVE_SIGNIN_ERROR",l.RECEIVE_SIGNOUT_SUCCESS="RECEIVE_SIGNOUT_SUCCESS",l.RECEIVE_SIGNOUT_ERROR="RECEIVE_SIGNOUT_ERROR",(f=o||(o={})).RECEIVE_CREATE_ERROR="RECEIVE_CREATE_ERROR",f.RECEIVE_CREATE_SUCCESS="RECEIVE_CREATE_SUCCESS",f.RECEIVE_DELETE_ERROR="RECEIVE_DELETE_ERROR",f.RECEIVE_DELETE_SUCCESS="RECEIVE_DELETE_SUCCESS",f.RECEIVE_UPDATE_ERROR="RECEIVE_UPDATE_ERROR",f.RECEIVE_UPDATE_SUCCESS="RECEIVE_UPDATE_SUCCESS",f.REQUEST_CREATE="REQUEST_CREATE",f.REQUEST_DELETE="REQUEST_DELETE",f.REQUEST_UPDATE="REQUEST_UPDATE",f.UPSERT_CONFIGURATION="UPSERT_CONFIGURATION",f.UPSERT_JOB_RUN="UPSERT_JOB_RUN",f.UPSERT_JOB_RUNS="UPSERT_JOB_RUNS",f.UPSERT_TRANSACTION="UPSERT_TRANSACTION",f.UPSERT_TRANSACTIONS="UPSERT_TRANSACTIONS",f.UPSERT_BUILD_INFO="UPSERT_BUILD_INFO",(d=s||(s={})).FETCH_BUILD_INFO_REQUESTED="FETCH_BUILD_INFO_REQUESTED",d.FETCH_BUILD_INFO_SUCCEEDED="FETCH_BUILD_INFO_SUCCEEDED",d.FETCH_BUILD_INFO_FAILED="FETCH_BUILD_INFO_FAILED"},87013(e,t,n){"use strict";n.d(t,{Y:()=>o,Z:()=>u});var r=n(19084);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}function a(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:o,t=arguments.length>1?arguments[1]:void 0;return t.type===r.Y0.FETCH_BUILD_INFO_SUCCEEDED?a({},t.buildInfo):e};let u=s},34823(e,t,n){"use strict";n.d(t,{N:()=>r});var r=function(e){return e.buildInfo}},73343(e,t,n){"use strict";n.d(t,{r:()=>u});var r=n(19350),i=n(32316),a=n(59114),o=n(5324),s={props:{MuiGrid:{spacing:3*o.default.unit},MuiCardHeader:{titleTypographyProps:{color:"secondary"}}},palette:{action:{hoverOpacity:.3},primary:{light:"#E5F1FF",main:"#3c40c6",contrastText:"#fff"},secondary:{main:"#3d5170"},success:{light:"#e8faf1",main:r.ek.A700,dark:r.ek[700],contrastText:r.y0.white},warning:{light:"#FFFBF1",main:"#fff6b6",contrastText:"#fad27a"},error:{light:"#ffdada",main:"#f44336",dark:"#d32f2f",contrastText:"#fff"},background:{default:"#f5f6f8",appBar:"#3c40c6"},text:{primary:(0,a.darken)(r.BA.A700,.7),secondary:"#818ea3"},listPendingStatus:{background:"#fef7e5",color:"#fecb4c"},listCompletedStatus:{background:"#e9faf2",color:"#4ed495"}},shape:{borderRadius:o.default.unit},overrides:{MuiButton:{root:{borderRadius:o.default.unit/2,textTransform:"none"},sizeLarge:{padding:void 0,fontSize:void 0,paddingTop:o.default.unit,paddingBottom:o.default.unit,paddingLeft:5*o.default.unit,paddingRight:5*o.default.unit}},MuiTableCell:{body:{fontSize:"1rem"},head:{fontSize:"1rem",fontWeight:400}},MuiCardHeader:{root:{borderBottom:"1px solid rgba(0, 0, 0, 0.12)"},action:{marginTop:-2,marginRight:0,"& >*":{marginLeft:2*o.default.unit}},subheader:{marginTop:.5*o.default.unit}}},typography:{useNextVariants:!0,fontFamily:"-apple-system,BlinkMacSystemFont,Roboto,Helvetica,Arial,sans-serif",button:{textTransform:"none",fontSize:"1.2em"},body1:{fontSize:"1.0rem",fontWeight:400,lineHeight:"1.46429em",color:"rgba(0, 0, 0, 0.87)",letterSpacing:-.4},body2:{fontSize:"1.0rem",fontWeight:500,lineHeight:"1.71429em",color:"rgba(0, 0, 0, 0.87)",letterSpacing:-.4},body1Next:{color:"rgb(29, 29, 29)",fontWeight:400,fontSize:"1rem",lineHeight:1.5,letterSpacing:-.4},body2Next:{color:"rgb(29, 29, 29)",fontWeight:400,fontSize:"0.875rem",lineHeight:1.5,letterSpacing:-.4},display1:{color:"#818ea3",fontSize:"2.125rem",fontWeight:400,lineHeight:"1.20588em",letterSpacing:-.4},display2:{color:"#818ea3",fontSize:"2.8125rem",fontWeight:400,lineHeight:"1.13333em",marginLeft:"-.02em",letterSpacing:-.4},display3:{color:"#818ea3",fontSize:"3.5rem",fontWeight:400,lineHeight:"1.30357em",marginLeft:"-.02em",letterSpacing:-.4},display4:{fontSize:14,fontWeightLight:300,fontWeightMedium:500,fontWeightRegular:400,letterSpacing:-.4},h1:{color:"rgb(29, 29, 29)",fontSize:"6rem",fontWeight:300,lineHeight:1},h2:{color:"rgb(29, 29, 29)",fontSize:"3.75rem",fontWeight:300,lineHeight:1},h3:{color:"rgb(29, 29, 29)",fontSize:"3rem",fontWeight:400,lineHeight:1.04},h4:{color:"rgb(29, 29, 29)",fontSize:"2.125rem",fontWeight:400,lineHeight:1.17},h5:{color:"rgb(29, 29, 29)",fontSize:"1.5rem",fontWeight:400,lineHeight:1.33,letterSpacing:-.4},h6:{fontSize:"0.8rem",fontWeight:450,lineHeight:"1.71429em",color:"rgba(0, 0, 0, 0.87)",letterSpacing:-.4},subheading:{color:"rgb(29, 29, 29)",fontSize:"1rem",fontWeight:400,lineHeight:"1.5em",letterSpacing:-.4},subtitle1:{color:"rgb(29, 29, 29)",fontSize:"1rem",fontWeight:400,lineHeight:1.75,letterSpacing:-.4},subtitle2:{color:"rgb(29, 29, 29)",fontSize:"0.875rem",fontWeight:500,lineHeight:1.57,letterSpacing:-.4}},shadows:["none","0px 1px 3px 0px rgba(0, 0, 0, 0.1),0px 1px 1px 0px rgba(0, 0, 0, 0.04),0px 2px 1px -1px rgba(0, 0, 0, 0.02)","0px 1px 5px 0px rgba(0, 0, 0, 0.1),0px 2px 2px 0px rgba(0, 0, 0, 0.04),0px 3px 1px -2px rgba(0, 0, 0, 0.02)","0px 1px 8px 0px rgba(0, 0, 0, 0.1),0px 3px 4px 0px rgba(0, 0, 0, 0.04),0px 3px 3px -2px rgba(0, 0, 0, 0.02)","0px 2px 4px -1px rgba(0, 0, 0, 0.1),0px 4px 5px 0px rgba(0, 0, 0, 0.04),0px 1px 10px 0px rgba(0, 0, 0, 0.02)","0px 3px 5px -1px rgba(0, 0, 0, 0.1),0px 5px 8px 0px rgba(0, 0, 0, 0.04),0px 1px 14px 0px rgba(0, 0, 0, 0.02)","0px 3px 5px -1px rgba(0, 0, 0, 0.1),0px 6px 10px 0px rgba(0, 0, 0, 0.04),0px 1px 18px 0px rgba(0, 0, 0, 0.02)","0px 4px 5px -2px rgba(0, 0, 0, 0.1),0px 7px 10px 1px rgba(0, 0, 0, 0.04),0px 2px 16px 1px rgba(0, 0, 0, 0.02)","0px 5px 5px -3px rgba(0, 0, 0, 0.1),0px 8px 10px 1px rgba(0, 0, 0, 0.04),0px 3px 14px 2px rgba(0, 0, 0, 0.02)","0px 5px 6px -3px rgba(0, 0, 0, 0.1),0px 9px 12px 1px rgba(0, 0, 0, 0.04),0px 3px 16px 2px rgba(0, 0, 0, 0.02)","0px 6px 6px -3px rgba(0, 0, 0, 0.1),0px 10px 14px 1px rgba(0, 0, 0, 0.04),0px 4px 18px 3px rgba(0, 0, 0, 0.02)","0px 6px 7px -4px rgba(0, 0, 0, 0.1),0px 11px 15px 1px rgba(0, 0, 0, 0.04),0px 4px 20px 3px rgba(0, 0, 0, 0.02)","0px 7px 8px -4px rgba(0, 0, 0, 0.1),0px 12px 17px 2px rgba(0, 0, 0, 0.04),0px 5px 22px 4px rgba(0, 0, 0, 0.02)","0px 7px 8px -4px rgba(0, 0, 0, 0.1),0px 13px 19px 2px rgba(0, 0, 0, 0.04),0px 5px 24px 4px rgba(0, 0, 0, 0.02)","0px 7px 9px -4px rgba(0, 0, 0, 0.1),0px 14px 21px 2px rgba(0, 0, 0, 0.04),0px 5px 26px 4px rgba(0, 0, 0, 0.02)","0px 8px 9px -5px rgba(0, 0, 0, 0.1),0px 15px 22px 2px rgba(0, 0, 0, 0.04),0px 6px 28px 5px rgba(0, 0, 0, 0.02)","0px 8px 10px -5px rgba(0, 0, 0, 0.1),0px 16px 24px 2px rgba(0, 0, 0, 0.04),0px 6px 30px 5px rgba(0, 0, 0, 0.02)","0px 8px 11px -5px rgba(0, 0, 0, 0.1),0px 17px 26px 2px rgba(0, 0, 0, 0.04),0px 6px 32px 5px rgba(0, 0, 0, 0.02)","0px 9px 11px -5px rgba(0, 0, 0, 0.1),0px 18px 28px 2px rgba(0, 0, 0, 0.04),0px 7px 34px 6px rgba(0, 0, 0, 0.02)","0px 9px 12px -6px rgba(0, 0, 0, 0.1),0px 19px 29px 2px rgba(0, 0, 0, 0.04),0px 7px 36px 6px rgba(0, 0, 0, 0.02)","0px 10px 13px -6px rgba(0, 0, 0, 0.1),0px 20px 31px 3px rgba(0, 0, 0, 0.04),0px 8px 38px 7px rgba(0, 0, 0, 0.02)","0px 10px 13px -6px rgba(0, 0, 0, 0.1),0px 21px 33px 3px rgba(0, 0, 0, 0.04),0px 8px 40px 7px rgba(0, 0, 0, 0.02)","0px 10px 14px -6px rgba(0, 0, 0, 0.1),0px 22px 35px 3px rgba(0, 0, 0, 0.04),0px 8px 42px 7px rgba(0, 0, 0, 0.02)","0px 11px 14px -7px rgba(0, 0, 0, 0.1),0px 23px 36px 3px rgba(0, 0, 0, 0.04),0px 9px 44px 8px rgba(0, 0, 0, 0.02)","0px 11px 15px -7px rgba(0, 0, 0, 0.1),0px 24px 38px 3px rgba(0, 0, 0, 0.04),0px 9px 46px 8px rgba(0, 0, 0, 0.02)",]},u=(0,i.createMuiTheme)(s)},66289(e,t,n){"use strict";function r(e){if(void 0===e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function i(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}function a(){if("undefined"==typeof Reflect||!Reflect.construct||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 o(e,t,n){return(o=a()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var i=new(Function.bind.apply(e,r));return n&&f(i,n.prototype),i}).apply(null,arguments)}function s(e){return(s=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function u(e,t){if("function"!=typeof t&&null!==t)throw 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 c(e){return -1!==Function.toString.call(e).indexOf("[native code]")}function l(e,t){return t&&("object"===p(t)||"function"==typeof t)?t:r(e)}function f(e,t){return(f=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}n.d(t,{V0:()=>B,_7:()=>v});var d,h,p=function(e){return e&&"undefined"!=typeof Symbol&&e.constructor===Symbol?"symbol":typeof e};function b(e){var t="function"==typeof Map?new Map:void 0;return(b=function(e){if(null===e||!c(e))return e;if("function"!=typeof e)throw TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return o(e,arguments,s(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),f(n,e)})(e)}function m(){if("undefined"==typeof Reflect||!Reflect.construct||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}}function g(e){var t=m();return function(){var n,r=s(e);if(t){var i=s(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return l(this,n)}}var v=function(e){u(n,e);var t=g(n);function n(e){var r;return i(this,n),(r=t.call(this,"AuthenticationError(".concat(e.statusText,")"))).errors=[{status:e.status,detail:e},],r}return n}(b(Error)),y=function(e){u(n,e);var t=g(n);function n(e){var r,a=e.errors;return i(this,n),(r=t.call(this,"BadRequestError")).errors=a,r}return n}(b(Error)),w=function(e){u(n,e);var t=g(n);function n(e){var r;return i(this,n),(r=t.call(this,"UnprocessableEntityError")).errors=e,r}return n}(b(Error)),_=function(e){u(n,e);var t=g(n);function n(e){var r;return i(this,n),(r=t.call(this,"ServerError")).errors=e,r}return n}(b(Error)),E=function(e){u(n,e);var t=g(n);function n(e){var r,a=e.errors;return i(this,n),(r=t.call(this,"ConflictError")).errors=a,r}return n}(b(Error)),S=function(e){u(n,e);var t=g(n);function n(e){var r;return i(this,n),(r=t.call(this,"UnknownResponseError(".concat(e.statusText,")"))).errors=[{status:e.status,detail:e.statusText},],r}return n}(b(Error));function k(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:2e4;return Promise.race([fetch(e,t),new Promise(function(e,t){return setTimeout(function(){return t(Error("timeout"))},n)}),])}function x(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]=200&&e.status<300))return[3,2];return[2,e.json()];case 2:if(400!==e.status)return[3,3];return[2,e.json().then(function(e){throw new y(e)})];case 3:if(401!==e.status)return[3,4];throw new v(e);case 4:if(422!==e.status)return[3,6];return[4,$(e)];case 5:throw n=i.sent(),new w(n);case 6:if(409!==e.status)return[3,7];return[2,e.json().then(function(e){throw new E(e)})];case 7:if(!(e.status>=500))return[3,9];return[4,$(e)];case 8:throw r=i.sent(),new _(r);case 9:throw new S(e);case 10:return[2]}})})).apply(this,arguments)}function $(e){return z.apply(this,arguments)}function z(){return(z=j(function(e){return Y(this,function(t){return[2,e.json().then(function(t){return t.errors?t.errors.map(function(t){return{status:e.status,detail:t.detail}}):G(e)}).catch(function(){return G(e)})]})})).apply(this,arguments)}function G(e){return[{status:e.status,detail:e.statusText},]}},50109(e,t,n){"use strict";n.d(t,{LK:()=>o,U2:()=>i,eT:()=>s,t8:()=>a});var r=n(12795);function i(e){return r.ZP.getItem("chainlink.".concat(e))}function a(e,t){r.ZP.setItem("chainlink.".concat(e),t)}function o(e){var t=i(e),n={};if(t)try{return JSON.parse(t)}catch(r){}return n}function s(e,t){a(e,JSON.stringify(t))}},9541(e,t,n){"use strict";n.d(t,{Ks:()=>u,Tp:()=>a,iR:()=>o,pm:()=>s});var r=n(50109),i="persistURL";function a(){return r.U2(i)||""}function o(e){r.t8(i,e)}function s(){return r.LK("authentication")}function u(e){r.eT("authentication",e)}},67121(e,t,n){"use strict";function r(e){var t,n=e.Symbol;return"function"==typeof n?n.observable?t=n.observable:(t=n("observable"),n.observable=t):t="@@observable",t}n.r(t),n.d(t,{default:()=>o}),e=n.hmd(e),i="undefined"!=typeof self?self:"undefined"!=typeof window?window:void 0!==n.g?n.g:e;var i,a=r(i);let o=a},2177(e,t,n){"use strict";n.d(t,{Z:()=>o});var r=!0,i="Invariant failed";function a(e,t){if(!e){if(r)throw Error(i);throw Error(i+": "+(t||""))}}let o=a},11742(e){e.exports=function(){var e=document.getSelection();if(!e.rangeCount)return function(){};for(var t=document.activeElement,n=[],r=0;ri,pi:()=>a});var r=function(e,t){return(r=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 i(e,t){if("function"!=typeof t&&null!==t)throw TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var a=function(){return(a=Object.assign||function(e){for(var t,n=1,r=arguments.length;nr})},94927(e,t,n){function r(e,t){if(i("noDeprecation"))return e;var n=!1;function r(){if(!n){if(i("throwDeprecation"))throw Error(t);i("traceDeprecation")?console.trace(t):console.warn(t),n=!0}return e.apply(this,arguments)}return r}function i(e){try{if(!n.g.localStorage)return!1}catch(t){return!1}var r=n.g.localStorage[e];return null!=r&&"true"===String(r).toLowerCase()}e.exports=r},42473(e){"use strict";var t=function(){};e.exports=t},84763(e){e.exports=Worker},47529(e){e.exports=n;var t=Object.prototype.hasOwnProperty;function n(){for(var e={},n=0;nr,O:()=>a}),(i=r||(r={}))[i.loading=1]="loading",i[i.setVariables=2]="setVariables",i[i.fetchMore=3]="fetchMore",i[i.refetch=4]="refetch",i[i.poll=6]="poll",i[i.ready=7]="ready",i[i.error=8]="error"},30990(e,t,n){"use strict";n.d(t,{MS:()=>s,YG:()=>a,cA:()=>c,ls:()=>o});var r=n(23564);n(83952);var i=n(13154),a=Symbol();function o(e){return!!e.extensions&&Array.isArray(e.extensions[a])}function s(e){return e.hasOwnProperty("graphQLErrors")}var u=function(e){var t=(0,r.ev)((0,r.ev)((0,r.ev)([],e.graphQLErrors,!0),e.clientErrors,!0),e.protocolErrors,!0);return e.networkError&&t.push(e.networkError),t.map(function(e){return(0,i.s)(e)&&e.message||"Error message not found."}).join("\n")},c=function(e){function t(n){var r=n.graphQLErrors,i=n.protocolErrors,a=n.clientErrors,o=n.networkError,s=n.errorMessage,c=n.extraInfo,l=e.call(this,s)||this;return l.name="ApolloError",l.graphQLErrors=r||[],l.protocolErrors=i||[],l.clientErrors=a||[],l.networkError=o||null,l.message=s||u(l),l.extraInfo=c,l.__proto__=t.prototype,l}return(0,r.ZT)(t,e),t}(Error)},85317(e,t,n){"use strict";n.d(t,{K:()=>a});var r=n(67294),i=n(30320).aS?Symbol.for("__APOLLO_CONTEXT__"):"__APOLLO_CONTEXT__";function a(){var e=r.createContext[i];return e||(Object.defineProperty(r.createContext,i,{value:e=r.createContext({}),enumerable:!1,writable:!1,configurable:!0}),e.displayName="ApolloContext"),e}},21436(e,t,n){"use strict";n.d(t,{O:()=>i,k:()=>r});var r=Array.isArray;function i(e){return Array.isArray(e)&&e.length>0}},30320(e,t,n){"use strict";n.d(t,{DN:()=>s,JC:()=>l,aS:()=>o,mr:()=>i,sy:()=>a});var r=n(83952),i="function"==typeof WeakMap&&"ReactNative"!==(0,r.wY)(function(){return navigator.product}),a="function"==typeof WeakSet,o="function"==typeof Symbol&&"function"==typeof Symbol.for,s=o&&Symbol.asyncIterator,u="function"==typeof(0,r.wY)(function(){return window.document.createElement}),c=(0,r.wY)(function(){return navigator.userAgent.indexOf("jsdom")>=0})||!1,l=u&&!c},53712(e,t,n){"use strict";function r(){for(var e=[],t=0;tr})},10542(e,t,n){"use strict";n.d(t,{J:()=>o}),n(83952);var r=n(13154);function i(e){var t=new Set([e]);return t.forEach(function(e){(0,r.s)(e)&&a(e)===e&&Object.getOwnPropertyNames(e).forEach(function(n){(0,r.s)(e[n])&&t.add(e[n])})}),e}function a(e){if(__DEV__&&!Object.isFrozen(e))try{Object.freeze(e)}catch(t){if(t instanceof TypeError)return null;throw t}return e}function o(e){return __DEV__&&i(e),e}},14012(e,t,n){"use strict";n.d(t,{J:()=>a});var r=n(23564),i=n(53712);function a(e,t){return(0,i.o)(e,t,t.variables&&{variables:(0,r.pi)((0,r.pi)({},e&&e.variables),t.variables)})}},13154(e,t,n){"use strict";function r(e){return null!==e&&"object"==typeof e}n.d(t,{s:()=>r})},83952(e,t,n){"use strict";n.d(t,{ej:()=>u,kG:()=>c,wY:()=>h});var r,i=n(70655),a="Invariant Violation",o=Object.setPrototypeOf,s=void 0===o?function(e,t){return e.__proto__=t,e}:o,u=function(e){function t(n){void 0===n&&(n=a);var r=e.call(this,"number"==typeof n?a+": "+n+" (see https://github.com/apollographql/invariant-packages)":n)||this;return r.framesToPop=1,r.name=a,s(r,t.prototype),r}return(0,i.ZT)(t,e),t}(Error);function c(e,t){if(!e)throw new u(t)}var l=["debug","log","warn","error","silent"],f=l.indexOf("log");function d(e){return function(){if(l.indexOf(e)>=f)return(console[e]||console.log).apply(console,arguments)}}function h(e){try{return e()}catch(t){}}(r=c||(c={})).debug=d("debug"),r.log=d("log"),r.warn=d("warn"),r.error=d("error");let p=h(function(){return globalThis})||h(function(){return window})||h(function(){return self})||h(function(){return global})||h(function(){return h.constructor("return this")()});var b="__",m=[b,b].join("DEV");function g(){try{return Boolean(__DEV__)}catch(e){return Object.defineProperty(p,m,{value:"production"!==h(function(){return"production"}),enumerable:!1,configurable:!0,writable:!0}),p[m]}}let v=g();function y(e){try{return e()}catch(t){}}var w=y(function(){return globalThis})||y(function(){return window})||y(function(){return self})||y(function(){return global})||y(function(){return y.constructor("return this")()}),_=!1;function E(){!w||y(function(){return"production"})||y(function(){return process})||(Object.defineProperty(w,"process",{value:{env:{NODE_ENV:"production"}},configurable:!0,enumerable:!1,writable:!0}),_=!0)}function S(){_&&(delete w.process,_=!1)}E();var k=n(10143);function x(){return k.H,S()}function T(){__DEV__?c("boolean"==typeof v,v):c("boolean"==typeof v,39)}x(),T()},87462(e,t,n){"use strict";function r(){return(r=Object.assign||function(e){for(var t=1;tr})},25821(e,t,n){"use strict";n.d(t,{Z:()=>s});var r=n(45695);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})(e)}var a=10,o=2;function s(e){return u(e,[])}function u(e,t){switch(i(e)){case"string":return JSON.stringify(e);case"function":return e.name?"[function ".concat(e.name,"]"):"[function]";case"object":if(null===e)return"null";return c(e,t);default:return String(e)}}function c(e,t){if(-1!==t.indexOf(e))return"[Circular]";var n=[].concat(t,[e]),r=d(e);if(void 0!==r){var i=r.call(e);if(i!==e)return"string"==typeof i?i:u(i,n)}else if(Array.isArray(e))return f(e,n);return l(e,n)}function l(e,t){var n=Object.keys(e);return 0===n.length?"{}":t.length>o?"["+h(e)+"]":"{ "+n.map(function(n){var r=u(e[n],t);return n+": "+r}).join(", ")+" }"}function f(e,t){if(0===e.length)return"[]";if(t.length>o)return"[Array]";for(var n=Math.min(a,e.length),r=e.length-n,i=[],s=0;s1&&i.push("... ".concat(r," more items")),"["+i.join(", ")+"]"}function d(e){var t=e[String(r.Z)];return"function"==typeof t?t:"function"==typeof e.inspect?e.inspect:void 0}function h(e){var t=Object.prototype.toString.call(e).replace(/^\[object /,"").replace(/]$/,"");if("Object"===t&&"function"==typeof e.constructor){var n=e.constructor.name;if("string"==typeof n&&""!==n)return n}return t}},45695(e,t,n){"use strict";n.d(t,{Z:()=>i});var r="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):void 0;let i=r},25217(e,t,n){"use strict";function r(e,t){if(!Boolean(e))throw Error(null!=t?t:"Unexpected invariant triggered.")}n.d(t,{Ye:()=>o,WU:()=>s,UG:()=>u});var i=n(45695);function a(e){var t=e.prototype.toJSON;"function"==typeof t||r(0),e.prototype.inspect=t,i.Z&&(e.prototype[i.Z]=t)}var o=function(){function e(e,t,n){this.start=e.start,this.end=t.end,this.startToken=e,this.endToken=t,this.source=n}return e.prototype.toJSON=function(){return{start:this.start,end:this.end}},e}();a(o);var s=function(){function e(e,t,n,r,i,a,o){this.kind=e,this.start=t,this.end=n,this.line=r,this.column=i,this.value=o,this.prev=a,this.next=null}return e.prototype.toJSON=function(){return{kind:this.kind,value:this.value,line:this.line,column:this.column}},e}();function u(e){return null!=e&&"string"==typeof e.kind}a(s)},87392(e,t,n){"use strict";function r(e){var t=e.split(/\r\n|[\n\r]/g),n=a(e);if(0!==n)for(var r=1;ro&&i(t[s-1]);)--s;return t.slice(o,s).join("\n")}function i(e){for(var t=0;t1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=-1===e.indexOf("\n"),i=" "===e[0]||" "===e[0],a='"'===e[e.length-1],o="\\"===e[e.length-1],s=!r||a||o||n,u="";return s&&!(r&&i)&&(u+="\n"+t),u+=t?e.replace(/\n/g,"\n"+t):e,s&&(u+="\n"),'"""'+u.replace(/"""/g,'\\"""')+'"""'}n.d(t,{LZ:()=>o,W7:()=>r})},97359(e,t,n){"use strict";n.d(t,{h:()=>r});var r=Object.freeze({NAME:"Name",DOCUMENT:"Document",OPERATION_DEFINITION:"OperationDefinition",VARIABLE_DEFINITION:"VariableDefinition",SELECTION_SET:"SelectionSet",FIELD:"Field",ARGUMENT:"Argument",FRAGMENT_SPREAD:"FragmentSpread",INLINE_FRAGMENT:"InlineFragment",FRAGMENT_DEFINITION:"FragmentDefinition",VARIABLE:"Variable",INT:"IntValue",FLOAT:"FloatValue",STRING:"StringValue",BOOLEAN:"BooleanValue",NULL:"NullValue",ENUM:"EnumValue",LIST:"ListValue",OBJECT:"ObjectValue",OBJECT_FIELD:"ObjectField",DIRECTIVE:"Directive",NAMED_TYPE:"NamedType",LIST_TYPE:"ListType",NON_NULL_TYPE:"NonNullType",SCHEMA_DEFINITION:"SchemaDefinition",OPERATION_TYPE_DEFINITION:"OperationTypeDefinition",SCALAR_TYPE_DEFINITION:"ScalarTypeDefinition",OBJECT_TYPE_DEFINITION:"ObjectTypeDefinition",FIELD_DEFINITION:"FieldDefinition",INPUT_VALUE_DEFINITION:"InputValueDefinition",INTERFACE_TYPE_DEFINITION:"InterfaceTypeDefinition",UNION_TYPE_DEFINITION:"UnionTypeDefinition",ENUM_TYPE_DEFINITION:"EnumTypeDefinition",ENUM_VALUE_DEFINITION:"EnumValueDefinition",INPUT_OBJECT_TYPE_DEFINITION:"InputObjectTypeDefinition",DIRECTIVE_DEFINITION:"DirectiveDefinition",SCHEMA_EXTENSION:"SchemaExtension",SCALAR_TYPE_EXTENSION:"ScalarTypeExtension",OBJECT_TYPE_EXTENSION:"ObjectTypeExtension",INTERFACE_TYPE_EXTENSION:"InterfaceTypeExtension",UNION_TYPE_EXTENSION:"UnionTypeExtension",ENUM_TYPE_EXTENSION:"EnumTypeExtension",INPUT_OBJECT_TYPE_EXTENSION:"InputObjectTypeExtension"})},10143(e,t,n){"use strict";n.d(t,{H:()=>c,T:()=>l});var r=n(99763),i=n(25821);function a(e,t){if(!Boolean(e))throw Error(t)}let o=function(e,t){return e instanceof t};function s(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:"GraphQL request",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{line:1,column:1};"string"==typeof e||a(0,"Body must be a string. Received: ".concat((0,i.Z)(e),".")),this.body=e,this.name=t,this.locationOffset=n,this.locationOffset.line>0||a(0,"line in locationOffset is 1-indexed and must be positive."),this.locationOffset.column>0||a(0,"column in locationOffset is 1-indexed and must be positive.")}return u(e,[{key:r.YF,get:function(){return"Source"}}]),e}();function l(e){return o(e,c)}},99763(e,t,n){"use strict";n.d(t,{YF:()=>r});var r="function"==typeof Symbol&&null!=Symbol.toStringTag?Symbol.toStringTag:"@@toStringTag"},37452(e){"use strict";e.exports=JSON.parse('{"AElig":"\xc6","AMP":"&","Aacute":"\xc1","Acirc":"\xc2","Agrave":"\xc0","Aring":"\xc5","Atilde":"\xc3","Auml":"\xc4","COPY":"\xa9","Ccedil":"\xc7","ETH":"\xd0","Eacute":"\xc9","Ecirc":"\xca","Egrave":"\xc8","Euml":"\xcb","GT":">","Iacute":"\xcd","Icirc":"\xce","Igrave":"\xcc","Iuml":"\xcf","LT":"<","Ntilde":"\xd1","Oacute":"\xd3","Ocirc":"\xd4","Ograve":"\xd2","Oslash":"\xd8","Otilde":"\xd5","Ouml":"\xd6","QUOT":"\\"","REG":"\xae","THORN":"\xde","Uacute":"\xda","Ucirc":"\xdb","Ugrave":"\xd9","Uuml":"\xdc","Yacute":"\xdd","aacute":"\xe1","acirc":"\xe2","acute":"\xb4","aelig":"\xe6","agrave":"\xe0","amp":"&","aring":"\xe5","atilde":"\xe3","auml":"\xe4","brvbar":"\xa6","ccedil":"\xe7","cedil":"\xb8","cent":"\xa2","copy":"\xa9","curren":"\xa4","deg":"\xb0","divide":"\xf7","eacute":"\xe9","ecirc":"\xea","egrave":"\xe8","eth":"\xf0","euml":"\xeb","frac12":"\xbd","frac14":"\xbc","frac34":"\xbe","gt":">","iacute":"\xed","icirc":"\xee","iexcl":"\xa1","igrave":"\xec","iquest":"\xbf","iuml":"\xef","laquo":"\xab","lt":"<","macr":"\xaf","micro":"\xb5","middot":"\xb7","nbsp":"\xa0","not":"\xac","ntilde":"\xf1","oacute":"\xf3","ocirc":"\xf4","ograve":"\xf2","ordf":"\xaa","ordm":"\xba","oslash":"\xf8","otilde":"\xf5","ouml":"\xf6","para":"\xb6","plusmn":"\xb1","pound":"\xa3","quot":"\\"","raquo":"\xbb","reg":"\xae","sect":"\xa7","shy":"\xad","sup1":"\xb9","sup2":"\xb2","sup3":"\xb3","szlig":"\xdf","thorn":"\xfe","times":"\xd7","uacute":"\xfa","ucirc":"\xfb","ugrave":"\xf9","uml":"\xa8","uuml":"\xfc","yacute":"\xfd","yen":"\xa5","yuml":"\xff"}')},93580(e){"use strict";e.exports=JSON.parse('{"0":"�","128":"€","130":"‚","131":"ƒ","132":"„","133":"…","134":"†","135":"‡","136":"ˆ","137":"‰","138":"Š","139":"‹","140":"Œ","142":"Ž","145":"‘","146":"’","147":"“","148":"”","149":"•","150":"–","151":"—","152":"˜","153":"™","154":"š","155":"›","156":"œ","158":"ž","159":"Ÿ"}')},67946(e){"use strict";e.exports=JSON.parse('{"locale":"en","long":{"year":{"previous":"last year","current":"this year","next":"next year","past":{"one":"{0} year ago","other":"{0} years ago"},"future":{"one":"in {0} year","other":"in {0} years"}},"quarter":{"previous":"last quarter","current":"this quarter","next":"next quarter","past":{"one":"{0} quarter ago","other":"{0} quarters ago"},"future":{"one":"in {0} quarter","other":"in {0} quarters"}},"month":{"previous":"last month","current":"this month","next":"next month","past":{"one":"{0} month ago","other":"{0} months ago"},"future":{"one":"in {0} month","other":"in {0} months"}},"week":{"previous":"last week","current":"this week","next":"next week","past":{"one":"{0} week ago","other":"{0} weeks ago"},"future":{"one":"in {0} week","other":"in {0} weeks"}},"day":{"previous":"yesterday","current":"today","next":"tomorrow","past":{"one":"{0} day ago","other":"{0} days ago"},"future":{"one":"in {0} day","other":"in {0} days"}},"hour":{"current":"this hour","past":{"one":"{0} hour ago","other":"{0} hours ago"},"future":{"one":"in {0} hour","other":"in {0} hours"}},"minute":{"current":"this minute","past":{"one":"{0} minute ago","other":"{0} minutes ago"},"future":{"one":"in {0} minute","other":"in {0} minutes"}},"second":{"current":"now","past":{"one":"{0} second ago","other":"{0} seconds ago"},"future":{"one":"in {0} second","other":"in {0} seconds"}}},"short":{"year":{"previous":"last yr.","current":"this yr.","next":"next yr.","past":"{0} yr. ago","future":"in {0} yr."},"quarter":{"previous":"last qtr.","current":"this qtr.","next":"next qtr.","past":{"one":"{0} qtr. ago","other":"{0} qtrs. ago"},"future":{"one":"in {0} qtr.","other":"in {0} qtrs."}},"month":{"previous":"last mo.","current":"this mo.","next":"next mo.","past":"{0} mo. ago","future":"in {0} mo."},"week":{"previous":"last wk.","current":"this wk.","next":"next wk.","past":"{0} wk. ago","future":"in {0} wk."},"day":{"previous":"yesterday","current":"today","next":"tomorrow","past":{"one":"{0} day ago","other":"{0} days ago"},"future":{"one":"in {0} day","other":"in {0} days"}},"hour":{"current":"this hour","past":"{0} hr. ago","future":"in {0} hr."},"minute":{"current":"this minute","past":"{0} min. ago","future":"in {0} min."},"second":{"current":"now","past":"{0} sec. ago","future":"in {0} sec."}},"narrow":{"year":{"previous":"last yr.","current":"this yr.","next":"next yr.","past":"{0} yr. ago","future":"in {0} yr."},"quarter":{"previous":"last qtr.","current":"this qtr.","next":"next qtr.","past":{"one":"{0} qtr. ago","other":"{0} qtrs. ago"},"future":{"one":"in {0} qtr.","other":"in {0} qtrs."}},"month":{"previous":"last mo.","current":"this mo.","next":"next mo.","past":"{0} mo. ago","future":"in {0} mo."},"week":{"previous":"last wk.","current":"this wk.","next":"next wk.","past":"{0} wk. ago","future":"in {0} wk."},"day":{"previous":"yesterday","current":"today","next":"tomorrow","past":{"one":"{0} day ago","other":"{0} days ago"},"future":{"one":"in {0} day","other":"in {0} days"}},"hour":{"current":"this hour","past":"{0} hr. ago","future":"in {0} hr."},"minute":{"current":"this minute","past":"{0} min. ago","future":"in {0} min."},"second":{"current":"now","past":"{0} sec. ago","future":"in {0} sec."}},"now":{"now":{"current":"now","future":"in a moment","past":"just now"}},"mini":{"year":"{0}yr","month":"{0}mo","week":"{0}wk","day":"{0}d","hour":"{0}h","minute":"{0}m","second":"{0}s","now":"now"},"short-time":{"year":"{0} yr.","month":"{0} mo.","week":"{0} wk.","day":{"one":"{0} day","other":"{0} days"},"hour":"{0} hr.","minute":"{0} min.","second":"{0} sec."},"long-time":{"year":{"one":"{0} year","other":"{0} years"},"month":{"one":"{0} month","other":"{0} months"},"week":{"one":"{0} week","other":"{0} weeks"},"day":{"one":"{0} day","other":"{0} days"},"hour":{"one":"{0} hour","other":"{0} hours"},"minute":{"one":"{0} minute","other":"{0} minutes"},"second":{"one":"{0} second","other":"{0} seconds"}}}')}},__webpack_module_cache__={};function __webpack_require__(e){var t=__webpack_module_cache__[e];if(void 0!==t)return t.exports;var n=__webpack_module_cache__[e]={id:e,loaded:!1,exports:{}};return __webpack_modules__[e].call(n.exports,n,n.exports,__webpack_require__),n.loaded=!0,n.exports}__webpack_require__.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return __webpack_require__.d(t,{a:t}),t},(()=>{var e,t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__;__webpack_require__.t=function(n,r){if(1&r&&(n=this(n)),8&r||"object"==typeof n&&n&&(4&r&&n.__esModule||16&r&&"function"==typeof n.then))return n;var i=Object.create(null);__webpack_require__.r(i);var a={};e=e||[null,t({}),t([]),t(t)];for(var o=2&r&&n;"object"==typeof o&&!~e.indexOf(o);o=t(o))Object.getOwnPropertyNames(o).forEach(e=>a[e]=()=>n[e]);return a.default=()=>n,__webpack_require__.d(i,a),i}})(),__webpack_require__.d=(e,t)=>{for(var n in t)__webpack_require__.o(t,n)&&!__webpack_require__.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},__webpack_require__.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),__webpack_require__.hmd=e=>((e=Object.create(e)).children||(e.children=[]),Object.defineProperty(e,"exports",{enumerable:!0,set(){throw Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: "+e.id)}}),e),__webpack_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},__webpack_require__.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),__webpack_require__.p="/assets/",__webpack_require__.nc=void 0;var __webpack_exports__={};(()=>{"use strict";var e,t,n,r,i=__webpack_require__(32316),a=__webpack_require__(8126),o=__webpack_require__(5690),s=__webpack_require__(30381),u=__webpack_require__.n(s),c=__webpack_require__(67294),l=__webpack_require__(73935),f=__webpack_require__.n(l),d=__webpack_require__(57209),h=__webpack_require__(55977),p=__webpack_require__(15857),b=__webpack_require__(28500);function m(e){return function(t){var n=t.dispatch,r=t.getState;return function(t){return function(i){return"function"==typeof i?i(n,r,e):t(i)}}}}var g=m();g.withExtraArgument=m;let v=g;var y=__webpack_require__(76489);function w(e){return function(t){return function(n){return function(r){n(r);var i=e||document&&document.cookie||"",a=t.getState();if("MATCH_ROUTE"===r.type&&"/signin"!==a.notifications.currentUrl){var o=(0,y.Q)(i);if(o.explorer)try{var s=JSON.parse(o.explorer);if("error"===s.status){var u=_(s.url);n({type:"NOTIFY_ERROR_MSG",msg:u})}}catch(c){n({type:"NOTIFY_ERROR_MSG",msg:"Invalid explorer status"})}}}}}}function _(e){var t="Can't connect to explorer: ".concat(e);return e.match(/^wss?:.+/)?t:"".concat(t,". You must use a websocket.")}var E=__webpack_require__(16353);function S(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function ei(e,t){if(e){if("string"==typeof e)return ea(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ea(e,t)}}function ea(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n1,i=!1,a=arguments[1],o=a;return new n(function(n){return t.subscribe({next:function(t){var a=!i;if(i=!0,!a||r)try{o=e(o,t)}catch(s){return n.error(s)}else o=t},error:function(e){n.error(e)},complete:function(){if(!i&&!r)return n.error(TypeError("Cannot reduce an empty sequence"));n.next(o),n.complete()}})})},t.concat=function(){for(var e=this,t=arguments.length,n=Array(t),r=0;r=0&&i.splice(e,1),o()}});i.push(s)},error:function(e){r.error(e)},complete:function(){o()}});function o(){a.closed&&0===i.length&&r.complete()}return function(){i.forEach(function(e){return e.unsubscribe()}),a.unsubscribe()}})},t[ed]=function(){return this},e.from=function(t){var n="function"==typeof this?this:e;if(null==t)throw TypeError(t+" is not an object");var r=ep(t,ed);if(r){var i=r.call(t);if(Object(i)!==i)throw TypeError(i+" is not an object");return em(i)&&i.constructor===n?i:new n(function(e){return i.subscribe(e)})}if(ec("iterator")&&(r=ep(t,ef)))return new n(function(e){ev(function(){if(!e.closed){for(var n,i=er(r.call(t));!(n=i()).done;){var a=n.value;if(e.next(a),e.closed)return}e.complete()}})});if(Array.isArray(t))return new n(function(e){ev(function(){if(!e.closed){for(var n=0;n0))return n.connection.key;var r=n.connection.filter?n.connection.filter:[];r.sort();var i={};return r.forEach(function(e){i[e]=t[e]}),"".concat(n.connection.key,"(").concat(eV(i),")")}var a=e;if(t){var o=eV(t);a+="(".concat(o,")")}return n&&Object.keys(n).forEach(function(e){-1===eW.indexOf(e)&&(n[e]&&Object.keys(n[e]).length?a+="@".concat(e,"(").concat(eV(n[e]),")"):a+="@".concat(e))}),a},{setStringify:function(e){var t=eV;return eV=e,t}}),eV=function(e){return JSON.stringify(e,eq)};function eq(e,t){return(0,eO.s)(t)&&!Array.isArray(t)&&(t=Object.keys(t).sort().reduce(function(e,n){return e[n]=t[n],e},{})),t}function eZ(e,t){if(e.arguments&&e.arguments.length){var n={};return e.arguments.forEach(function(e){var r;return ez(n,e.name,e.value,t)}),n}return null}function eX(e){return e.alias?e.alias.value:e.name.value}function eJ(e,t,n){for(var r,i=0,a=t.selections;it.indexOf(i))throw __DEV__?new Q.ej("illegal argument: ".concat(i)):new Q.ej(27)}return e}function tt(e,t){return t?t(e):eT.of()}function tn(e){return"function"==typeof e?new ta(e):e}function tr(e){return e.request.length<=1}var ti=function(e){function t(t,n){var r=e.call(this,t)||this;return r.link=n,r}return(0,en.ZT)(t,e),t}(Error),ta=function(){function e(e){e&&(this.request=e)}return e.empty=function(){return new e(function(){return eT.of()})},e.from=function(t){return 0===t.length?e.empty():t.map(tn).reduce(function(e,t){return e.concat(t)})},e.split=function(t,n,r){var i=tn(n),a=tn(r||new e(tt));return new e(tr(i)&&tr(a)?function(e){return t(e)?i.request(e)||eT.of():a.request(e)||eT.of()}:function(e,n){return t(e)?i.request(e,n)||eT.of():a.request(e,n)||eT.of()})},e.execute=function(e,t){return e.request(eM(t.context,e7(te(t))))||eT.of()},e.concat=function(t,n){var r=tn(t);if(tr(r))return __DEV__&&Q.kG.warn(new ti("You are calling concat on a terminating link, which will have no effect",r)),r;var i=tn(n);return new e(tr(i)?function(e){return r.request(e,function(e){return i.request(e)||eT.of()})||eT.of()}:function(e,t){return r.request(e,function(e){return i.request(e,t)||eT.of()})||eT.of()})},e.prototype.split=function(t,n,r){return this.concat(e.split(t,n,r||new e(tt)))},e.prototype.concat=function(t){return e.concat(this,t)},e.prototype.request=function(e,t){throw __DEV__?new Q.ej("request is not implemented"):new Q.ej(22)},e.prototype.onError=function(e,t){if(t&&t.error)return t.error(e),!1;throw e},e.prototype.setOnError=function(e){return this.onError=e,this},e}(),to=__webpack_require__(25821),ts=__webpack_require__(25217),tu={Name:[],Document:["definitions"],OperationDefinition:["name","variableDefinitions","directives","selectionSet"],VariableDefinition:["variable","type","defaultValue","directives"],Variable:["name"],SelectionSet:["selections"],Field:["alias","name","arguments","directives","selectionSet"],Argument:["name","value"],FragmentSpread:["name","directives"],InlineFragment:["typeCondition","directives","selectionSet"],FragmentDefinition:["name","variableDefinitions","typeCondition","directives","selectionSet"],IntValue:[],FloatValue:[],StringValue:[],BooleanValue:[],NullValue:[],EnumValue:[],ListValue:["values"],ObjectValue:["fields"],ObjectField:["name","value"],Directive:["name","arguments"],NamedType:["name"],ListType:["type"],NonNullType:["type"],SchemaDefinition:["description","directives","operationTypes"],OperationTypeDefinition:["type"],ScalarTypeDefinition:["description","name","directives"],ObjectTypeDefinition:["description","name","interfaces","directives","fields"],FieldDefinition:["description","name","arguments","type","directives"],InputValueDefinition:["description","name","type","defaultValue","directives"],InterfaceTypeDefinition:["description","name","interfaces","directives","fields"],UnionTypeDefinition:["description","name","directives","types"],EnumTypeDefinition:["description","name","directives","values"],EnumValueDefinition:["description","name","directives"],InputObjectTypeDefinition:["description","name","directives","fields"],DirectiveDefinition:["description","name","arguments","locations"],SchemaExtension:["directives","operationTypes"],ScalarTypeExtension:["name","directives"],ObjectTypeExtension:["name","interfaces","directives","fields"],InterfaceTypeExtension:["name","interfaces","directives","fields"],UnionTypeExtension:["name","directives","types"],EnumTypeExtension:["name","directives","values"],InputObjectTypeExtension:["name","directives","fields"]},tc=Object.freeze({});function tl(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:tu,r=void 0,i=Array.isArray(e),a=[e],o=-1,s=[],u=void 0,c=void 0,l=void 0,f=[],d=[],h=e;do{var p,b=++o===a.length,m=b&&0!==s.length;if(b){if(c=0===d.length?void 0:f[f.length-1],u=l,l=d.pop(),m){if(i)u=u.slice();else{for(var g={},v=0,y=Object.keys(u);v1)for(var r=new tB,i=1;i=0;--a){var o=i[a],s=isNaN(+o)?{}:[];s[o]=t,t=s}n=r.merge(n,t)}),n}var tW=Object.prototype.hasOwnProperty;function tK(e,t){var n,r,i,a,o;return(0,en.mG)(this,void 0,void 0,function(){var s,u,c,l,f,d,h,p,b,m,g,v,y,w,_,E,S,k,x,T,M,O,A;return(0,en.Jh)(this,function(L){switch(L.label){case 0:if(void 0===TextDecoder)throw Error("TextDecoder must be defined in the environment: please import a polyfill.");s=new TextDecoder("utf-8"),u=null===(n=e.headers)||void 0===n?void 0:n.get("content-type"),c="boundary=",l=(null==u?void 0:u.includes(c))?null==u?void 0:u.substring((null==u?void 0:u.indexOf(c))+c.length).replace(/['"]/g,"").replace(/\;(.*)/gm,"").trim():"-",f="\r\n--".concat(l),d="",h=tI(e),p=!0,L.label=1;case 1:if(!p)return[3,3];return[4,h.next()];case 2:for(m=(b=L.sent()).value,g=b.done,v="string"==typeof m?m:s.decode(m),y=d.length-f.length+1,p=!g,d+=v,w=d.indexOf(f,y);w>-1;){if(_=void 0,_=(O=[d.slice(0,w),d.slice(w+f.length),])[0],d=O[1],E=_.indexOf("\r\n\r\n"),(k=(S=tV(_.slice(0,E)))["content-type"])&&-1===k.toLowerCase().indexOf("application/json"))throw Error("Unsupported patch content type: application/json is required.");if(x=_.slice(E))try{T=tq(e,x),Object.keys(T).length>1||"data"in T||"incremental"in T||"errors"in T||"payload"in T?tz(T)?(M={},"payload"in T&&(M=(0,en.pi)({},T.payload)),"errors"in T&&(M=(0,en.pi)((0,en.pi)({},M),{extensions:(0,en.pi)((0,en.pi)({},"extensions"in M?M.extensions:null),((A={})[tN.YG]=T.errors,A))})),null===(r=t.next)||void 0===r||r.call(t,M)):null===(i=t.next)||void 0===i||i.call(t,T):1===Object.keys(T).length&&"hasNext"in T&&!T.hasNext&&(null===(a=t.complete)||void 0===a||a.call(t))}catch(C){tZ(C,t)}w=d.indexOf(f)}return[3,1];case 3:return null===(o=t.complete)||void 0===o||o.call(t),[2]}})})}function tV(e){var t={};return e.split("\n").forEach(function(e){var n=e.indexOf(":");if(n>-1){var r=e.slice(0,n).trim().toLowerCase(),i=e.slice(n+1).trim();t[r]=i}}),t}function tq(e,t){e.status>=300&&tD(e,function(){try{return JSON.parse(t)}catch(e){return t}}(),"Response not successful: Received status code ".concat(e.status));try{return JSON.parse(t)}catch(n){var r=n;throw r.name="ServerParseError",r.response=e,r.statusCode=e.status,r.bodyText=t,r}}function tZ(e,t){var n,r;"AbortError"!==e.name&&(e.result&&e.result.errors&&e.result.data&&(null===(n=t.next)||void 0===n||n.call(t,e.result)),null===(r=t.error)||void 0===r||r.call(t,e))}function tX(e,t,n){tJ(t)(e).then(function(e){var t,r;null===(t=n.next)||void 0===t||t.call(n,e),null===(r=n.complete)||void 0===r||r.call(n)}).catch(function(e){return tZ(e,n)})}function tJ(e){return function(t){return t.text().then(function(e){return tq(t,e)}).then(function(n){return t.status>=300&&tD(t,n,"Response not successful: Received status code ".concat(t.status)),Array.isArray(n)||tW.call(n,"data")||tW.call(n,"errors")||tD(t,n,"Server response was missing for query '".concat(Array.isArray(e)?e.map(function(e){return e.operationName}):e.operationName,"'.")),n})}}var tQ=function(e){if(!e&&"undefined"==typeof fetch)throw __DEV__?new Q.ej("\n\"fetch\" has not been found globally and no fetcher has been configured. To fix this, install a fetch package (like https://www.npmjs.com/package/cross-fetch), instantiate the fetcher, and pass it into your HttpLink constructor. For example:\n\nimport fetch from 'cross-fetch';\nimport { ApolloClient, HttpLink } from '@apollo/client';\nconst client = new ApolloClient({\n link: new HttpLink({ uri: '/graphql', fetch })\n});\n "):new Q.ej(23)},t1=__webpack_require__(87392);function t0(e){return tl(e,{leave:t3})}var t2=80,t3={Name:function(e){return e.value},Variable:function(e){return"$"+e.name},Document:function(e){return t5(e.definitions,"\n\n")+"\n"},OperationDefinition:function(e){var t=e.operation,n=e.name,r=t9("(",t5(e.variableDefinitions,", "),")"),i=t5(e.directives," "),a=e.selectionSet;return n||i||r||"query"!==t?t5([t,t5([n,r]),i,a]," "):a},VariableDefinition:function(e){var t=e.variable,n=e.type,r=e.defaultValue,i=e.directives;return t+": "+n+t9(" = ",r)+t9(" ",t5(i," "))},SelectionSet:function(e){return t6(e.selections)},Field:function(e){var t=e.alias,n=e.name,r=e.arguments,i=e.directives,a=e.selectionSet,o=t9("",t,": ")+n,s=o+t9("(",t5(r,", "),")");return s.length>t2&&(s=o+t9("(\n",t8(t5(r,"\n")),"\n)")),t5([s,t5(i," "),a]," ")},Argument:function(e){var t;return e.name+": "+e.value},FragmentSpread:function(e){var t;return"..."+e.name+t9(" ",t5(e.directives," "))},InlineFragment:function(e){var t=e.typeCondition,n=e.directives,r=e.selectionSet;return t5(["...",t9("on ",t),t5(n," "),r]," ")},FragmentDefinition:function(e){var t=e.name,n=e.typeCondition,r=e.variableDefinitions,i=e.directives,a=e.selectionSet;return"fragment ".concat(t).concat(t9("(",t5(r,", "),")")," ")+"on ".concat(n," ").concat(t9("",t5(i," ")," "))+a},IntValue:function(e){return e.value},FloatValue:function(e){return e.value},StringValue:function(e,t){var n=e.value;return e.block?(0,t1.LZ)(n,"description"===t?"":" "):JSON.stringify(n)},BooleanValue:function(e){return e.value?"true":"false"},NullValue:function(){return"null"},EnumValue:function(e){return e.value},ListValue:function(e){return"["+t5(e.values,", ")+"]"},ObjectValue:function(e){return"{"+t5(e.fields,", ")+"}"},ObjectField:function(e){var t;return e.name+": "+e.value},Directive:function(e){var t;return"@"+e.name+t9("(",t5(e.arguments,", "),")")},NamedType:function(e){return e.name},ListType:function(e){return"["+e.type+"]"},NonNullType:function(e){return e.type+"!"},SchemaDefinition:t4(function(e){var t=e.directives,n=e.operationTypes;return t5(["schema",t5(t," "),t6(n)]," ")}),OperationTypeDefinition:function(e){var t;return e.operation+": "+e.type},ScalarTypeDefinition:t4(function(e){var t;return t5(["scalar",e.name,t5(e.directives," ")]," ")}),ObjectTypeDefinition:t4(function(e){var t=e.name,n=e.interfaces,r=e.directives,i=e.fields;return t5(["type",t,t9("implements ",t5(n," & ")),t5(r," "),t6(i)]," ")}),FieldDefinition:t4(function(e){var t=e.name,n=e.arguments,r=e.type,i=e.directives;return t+(ne(n)?t9("(\n",t8(t5(n,"\n")),"\n)"):t9("(",t5(n,", "),")"))+": "+r+t9(" ",t5(i," "))}),InputValueDefinition:t4(function(e){var t=e.name,n=e.type,r=e.defaultValue,i=e.directives;return t5([t+": "+n,t9("= ",r),t5(i," ")]," ")}),InterfaceTypeDefinition:t4(function(e){var t=e.name,n=e.interfaces,r=e.directives,i=e.fields;return t5(["interface",t,t9("implements ",t5(n," & ")),t5(r," "),t6(i)]," ")}),UnionTypeDefinition:t4(function(e){var t=e.name,n=e.directives,r=e.types;return t5(["union",t,t5(n," "),r&&0!==r.length?"= "+t5(r," | "):""]," ")}),EnumTypeDefinition:t4(function(e){var t=e.name,n=e.directives,r=e.values;return t5(["enum",t,t5(n," "),t6(r)]," ")}),EnumValueDefinition:t4(function(e){var t;return t5([e.name,t5(e.directives," ")]," ")}),InputObjectTypeDefinition:t4(function(e){var t=e.name,n=e.directives,r=e.fields;return t5(["input",t,t5(n," "),t6(r)]," ")}),DirectiveDefinition:t4(function(e){var t=e.name,n=e.arguments,r=e.repeatable,i=e.locations;return"directive @"+t+(ne(n)?t9("(\n",t8(t5(n,"\n")),"\n)"):t9("(",t5(n,", "),")"))+(r?" repeatable":"")+" on "+t5(i," | ")}),SchemaExtension:function(e){var t=e.directives,n=e.operationTypes;return t5(["extend schema",t5(t," "),t6(n)]," ")},ScalarTypeExtension:function(e){var t;return t5(["extend scalar",e.name,t5(e.directives," ")]," ")},ObjectTypeExtension:function(e){var t=e.name,n=e.interfaces,r=e.directives,i=e.fields;return t5(["extend type",t,t9("implements ",t5(n," & ")),t5(r," "),t6(i)]," ")},InterfaceTypeExtension:function(e){var t=e.name,n=e.interfaces,r=e.directives,i=e.fields;return t5(["extend interface",t,t9("implements ",t5(n," & ")),t5(r," "),t6(i)]," ")},UnionTypeExtension:function(e){var t=e.name,n=e.directives,r=e.types;return t5(["extend union",t,t5(n," "),r&&0!==r.length?"= "+t5(r," | "):""]," ")},EnumTypeExtension:function(e){var t=e.name,n=e.directives,r=e.values;return t5(["extend enum",t,t5(n," "),t6(r)]," ")},InputObjectTypeExtension:function(e){var t=e.name,n=e.directives,r=e.fields;return t5(["extend input",t,t5(n," "),t6(r)]," ")}};function t4(e){return function(t){return t5([t.description,e(t)],"\n")}}function t5(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return null!==(t=null==e?void 0:e.filter(function(e){return e}).join(n))&&void 0!==t?t:""}function t6(e){return t9("{\n",t8(t5(e,"\n")),"\n}")}function t9(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";return null!=t&&""!==t?e+t+n:""}function t8(e){return t9(" ",e.replace(/\n/g,"\n "))}function t7(e){return -1!==e.indexOf("\n")}function ne(e){return null!=e&&e.some(t7)}var nt,nn,nr,ni={http:{includeQuery:!0,includeExtensions:!1,preserveHeaderCase:!1},headers:{accept:"*/*","content-type":"application/json"},options:{method:"POST"}},na=function(e,t){return t(e)};function no(e,t){for(var n=[],r=2;rObject.create(null),{forEach:nv,slice:ny}=Array.prototype,{hasOwnProperty:nw}=Object.prototype;class n_{constructor(e=!0,t=ng){this.weakness=e,this.makeData=t}lookup(...e){return this.lookupArray(e)}lookupArray(e){let t=this;return nv.call(e,e=>t=t.getChildTrie(e)),nw.call(t,"data")?t.data:t.data=this.makeData(ny.call(e))}peek(...e){return this.peekArray(e)}peekArray(e){let t=this;for(let n=0,r=e.length;t&&n=0;--o)t.definitions[o].kind===nL.h.OPERATION_DEFINITION&&++a;var s=nN(e),u=e.some(function(e){return e.remove}),c=function(e){return u&&e&&e.some(s)},l=new Map,f=!1,d={enter:function(e){if(c(e.directives))return f=!0,null}},h=tl(t,{Field:d,InlineFragment:d,VariableDefinition:{enter:function(){return!1}},Variable:{enter:function(e,t,n,r,a){var o=i(a);o&&o.variables.add(e.name.value)}},FragmentSpread:{enter:function(e,t,n,r,a){if(c(e.directives))return f=!0,null;var o=i(a);o&&o.fragmentSpreads.add(e.name.value)}},FragmentDefinition:{enter:function(e,t,n,r){l.set(JSON.stringify(r),e)},leave:function(e,t,n,i){return e===l.get(JSON.stringify(i))?e:a>0&&e.selectionSet.selections.every(function(e){return e.kind===nL.h.FIELD&&"__typename"===e.name.value})?(r(e.name.value).removed=!0,f=!0,null):void 0}},Directive:{leave:function(e){if(s(e))return f=!0,null}}});if(!f)return t;var p=function(e){return e.transitiveVars||(e.transitiveVars=new Set(e.variables),e.removed||e.fragmentSpreads.forEach(function(t){p(r(t)).transitiveVars.forEach(function(t){e.transitiveVars.add(t)})})),e},b=new Set;h.definitions.forEach(function(e){e.kind===nL.h.OPERATION_DEFINITION?p(n(e.name&&e.name.value)).fragmentSpreads.forEach(function(e){b.add(e)}):e.kind!==nL.h.FRAGMENT_DEFINITION||0!==a||r(e.name.value).removed||b.add(e.name.value)}),b.forEach(function(e){p(r(e)).fragmentSpreads.forEach(function(e){b.add(e)})});var m=function(e){return!!(!b.has(e)||r(e).removed)},g={enter:function(e){if(m(e.name.value))return null}};return nD(tl(h,{FragmentSpread:g,FragmentDefinition:g,OperationDefinition:{leave:function(e){if(e.variableDefinitions){var t=p(n(e.name&&e.name.value)).transitiveVars;if(t.size0},t.prototype.tearDownQuery=function(){this.isTornDown||(this.concast&&this.observer&&(this.concast.removeObserver(this.observer),delete this.concast,delete this.observer),this.stopPolling(),this.subscriptions.forEach(function(e){return e.unsubscribe()}),this.subscriptions.clear(),this.queryManager.stopQuery(this.queryId),this.observers.clear(),this.isTornDown=!0)},t}(eT);function n4(e){var t=e.options,n=t.fetchPolicy,r=t.nextFetchPolicy;return"cache-and-network"===n||"network-only"===n?e.reobserve({fetchPolicy:"cache-first",nextFetchPolicy:function(){return(this.nextFetchPolicy=r,"function"==typeof r)?r.apply(this,arguments):n}}):e.reobserve()}function n5(e){__DEV__&&Q.kG.error("Unhandled error",e.message,e.stack)}function n6(e){__DEV__&&e&&__DEV__&&Q.kG.debug("Missing cache result fields: ".concat(JSON.stringify(e)),e)}function n9(e){return"network-only"===e||"no-cache"===e||"standby"===e}nK(n3);function n8(e){return e.kind===nL.h.FIELD||e.kind===nL.h.FRAGMENT_SPREAD||e.kind===nL.h.INLINE_FRAGMENT}function n7(e){return e.kind===Kind.SCALAR_TYPE_DEFINITION||e.kind===Kind.OBJECT_TYPE_DEFINITION||e.kind===Kind.INTERFACE_TYPE_DEFINITION||e.kind===Kind.UNION_TYPE_DEFINITION||e.kind===Kind.ENUM_TYPE_DEFINITION||e.kind===Kind.INPUT_OBJECT_TYPE_DEFINITION}function re(e){return e.kind===Kind.SCALAR_TYPE_EXTENSION||e.kind===Kind.OBJECT_TYPE_EXTENSION||e.kind===Kind.INTERFACE_TYPE_EXTENSION||e.kind===Kind.UNION_TYPE_EXTENSION||e.kind===Kind.ENUM_TYPE_EXTENSION||e.kind===Kind.INPUT_OBJECT_TYPE_EXTENSION}var rt=function(){return Object.create(null)},rn=Array.prototype,rr=rn.forEach,ri=rn.slice,ra=function(){function e(e,t){void 0===e&&(e=!0),void 0===t&&(t=rt),this.weakness=e,this.makeData=t}return e.prototype.lookup=function(){for(var e=[],t=0;tclass{constructor(){this.id=["slot",rc++,Date.now(),Math.random().toString(36).slice(2),].join(":")}hasValue(){for(let e=rs;e;e=e.parent)if(this.id in e.slots){let t=e.slots[this.id];if(t===ru)break;return e!==rs&&(rs.slots[this.id]=t),!0}return rs&&(rs.slots[this.id]=ru),!1}getValue(){if(this.hasValue())return rs.slots[this.id]}withValue(e,t,n,r){let i={__proto__:null,[this.id]:e},a=rs;rs={parent:a,slots:i};try{return t.apply(r,n)}finally{rs=a}}static bind(e){let t=rs;return function(){let n=rs;try{return rs=t,e.apply(this,arguments)}finally{rs=n}}}static noContext(e,t,n){if(!rs)return e.apply(n,t);{let r=rs;try{return rs=null,e.apply(n,t)}finally{rs=r}}}};function rf(e){try{return e()}catch(t){}}let rd="@wry/context:Slot",rh=rf(()=>globalThis)||rf(()=>global)||Object.create(null),rp=rh,rb=rp[rd]||Array[rd]||function(e){try{Object.defineProperty(rp,rd,{value:e,enumerable:!1,writable:!1,configurable:!0})}finally{return e}}(rl()),{bind:rm,noContext:rg}=rb;function rv(){}var ry=function(){function e(e,t){void 0===e&&(e=1/0),void 0===t&&(t=rv),this.max=e,this.dispose=t,this.map=new Map,this.newest=null,this.oldest=null}return e.prototype.has=function(e){return this.map.has(e)},e.prototype.get=function(e){var t=this.getNode(e);return t&&t.value},e.prototype.getNode=function(e){var t=this.map.get(e);if(t&&t!==this.newest){var n=t.older,r=t.newer;r&&(r.older=n),n&&(n.newer=r),t.older=this.newest,t.older.newer=t,t.newer=null,this.newest=t,t===this.oldest&&(this.oldest=r)}return t},e.prototype.set=function(e,t){var n=this.getNode(e);return n?n.value=t:(n={key:e,value:t,newer:null,older:this.newest},this.newest&&(this.newest.newer=n),this.newest=n,this.oldest=this.oldest||n,this.map.set(e,n),n.value)},e.prototype.clean=function(){for(;this.oldest&&this.map.size>this.max;)this.delete(this.oldest.key)},e.prototype.delete=function(e){var t=this.map.get(e);return!!t&&(t===this.newest&&(this.newest=t.older),t===this.oldest&&(this.oldest=t.newer),t.newer&&(t.newer.older=t.older),t.older&&(t.older.newer=t.newer),this.map.delete(e),this.dispose(t.value,e),!0)},e}(),rw=new rb,r_=Object.prototype.hasOwnProperty,rE=void 0===(n=Array.from)?function(e){var t=[];return e.forEach(function(e){return t.push(e)}),t}:n;function rS(e){var t=e.unsubscribe;"function"==typeof t&&(e.unsubscribe=void 0,t())}var rk=[],rx=100;function rT(e,t){if(!e)throw Error(t||"assertion failure")}function rM(e,t){var n=e.length;return n>0&&n===t.length&&e[n-1]===t[n-1]}function rO(e){switch(e.length){case 0:throw Error("unknown value");case 1:return e[0];case 2:throw e[1]}}function rA(e){return e.slice(0)}var rL=function(){function e(t){this.fn=t,this.parents=new Set,this.childValues=new Map,this.dirtyChildren=null,this.dirty=!0,this.recomputing=!1,this.value=[],this.deps=null,++e.count}return e.prototype.peek=function(){if(1===this.value.length&&!rN(this))return rC(this),this.value[0]},e.prototype.recompute=function(e){return rT(!this.recomputing,"already recomputing"),rC(this),rN(this)?rI(this,e):rO(this.value)},e.prototype.setDirty=function(){this.dirty||(this.dirty=!0,this.value.length=0,rR(this),rS(this))},e.prototype.dispose=function(){var e=this;this.setDirty(),rH(this),rF(this,function(t,n){t.setDirty(),r$(t,e)})},e.prototype.forget=function(){this.dispose()},e.prototype.dependOn=function(e){e.add(this),this.deps||(this.deps=rk.pop()||new Set),this.deps.add(e)},e.prototype.forgetDeps=function(){var e=this;this.deps&&(rE(this.deps).forEach(function(t){return t.delete(e)}),this.deps.clear(),rk.push(this.deps),this.deps=null)},e.count=0,e}();function rC(e){var t=rw.getValue();if(t)return e.parents.add(t),t.childValues.has(e)||t.childValues.set(e,[]),rN(e)?rY(t,e):rB(t,e),t}function rI(e,t){return rH(e),rw.withValue(e,rD,[e,t]),rz(e,t)&&rP(e),rO(e.value)}function rD(e,t){e.recomputing=!0,e.value.length=0;try{e.value[0]=e.fn.apply(null,t)}catch(n){e.value[1]=n}e.recomputing=!1}function rN(e){return e.dirty||!!(e.dirtyChildren&&e.dirtyChildren.size)}function rP(e){e.dirty=!1,!rN(e)&&rj(e)}function rR(e){rF(e,rY)}function rj(e){rF(e,rB)}function rF(e,t){var n=e.parents.size;if(n)for(var r=rE(e.parents),i=0;i0&&e.childValues.forEach(function(t,n){r$(e,n)}),e.forgetDeps(),rT(null===e.dirtyChildren)}function r$(e,t){t.parents.delete(e),e.childValues.delete(t),rU(e,t)}function rz(e,t){if("function"==typeof e.subscribe)try{rS(e),e.unsubscribe=e.subscribe.apply(null,t)}catch(n){return e.setDirty(),!1}return!0}var rG={setDirty:!0,dispose:!0,forget:!0};function rW(e){var t=new Map,n=e&&e.subscribe;function r(e){var r=rw.getValue();if(r){var i=t.get(e);i||t.set(e,i=new Set),r.dependOn(i),"function"==typeof n&&(rS(i),i.unsubscribe=n(e))}}return r.dirty=function(e,n){var r=t.get(e);if(r){var i=n&&r_.call(rG,n)?n:"setDirty";rE(r).forEach(function(e){return e[i]()}),t.delete(e),rS(r)}},r}function rK(){var e=new ra("function"==typeof WeakMap);return function(){return e.lookupArray(arguments)}}var rV=rK(),rq=new Set;function rZ(e,t){void 0===t&&(t=Object.create(null));var n=new ry(t.max||65536,function(e){return e.dispose()}),r=t.keyArgs,i=t.makeCacheKey||rK(),a=function(){var a=i.apply(null,r?r.apply(null,arguments):arguments);if(void 0===a)return e.apply(null,arguments);var o=n.get(a);o||(n.set(a,o=new rL(e)),o.subscribe=t.subscribe,o.forget=function(){return n.delete(a)});var s=o.recompute(Array.prototype.slice.call(arguments));return n.set(a,o),rq.add(n),rw.hasValue()||(rq.forEach(function(e){return e.clean()}),rq.clear()),s};function o(e){var t=n.get(e);t&&t.setDirty()}function s(e){var t=n.get(e);if(t)return t.peek()}function u(e){return n.delete(e)}return Object.defineProperty(a,"size",{get:function(){return n.map.size},configurable:!1,enumerable:!1}),a.dirtyKey=o,a.dirty=function(){o(i.apply(null,arguments))},a.peekKey=s,a.peek=function(){return s(i.apply(null,arguments))},a.forgetKey=u,a.forget=function(){return u(i.apply(null,arguments))},a.makeCacheKey=i,a.getKey=r?function(){return i.apply(null,r.apply(null,arguments))}:i,Object.freeze(a)}var rX=new rb,rJ=new WeakMap;function rQ(e){var t=rJ.get(e);return t||rJ.set(e,t={vars:new Set,dep:rW()}),t}function r1(e){rQ(e).vars.forEach(function(t){return t.forgetCache(e)})}function r0(e){rQ(e).vars.forEach(function(t){return t.attachCache(e)})}function r2(e){var t=new Set,n=new Set,r=function(a){if(arguments.length>0){if(e!==a){e=a,t.forEach(function(e){rQ(e).dep.dirty(r),r3(e)});var o=Array.from(n);n.clear(),o.forEach(function(t){return t(e)})}}else{var s=rX.getValue();s&&(i(s),rQ(s).dep(r))}return e};r.onNextChange=function(e){return n.add(e),function(){n.delete(e)}};var i=r.attachCache=function(e){return t.add(e),rQ(e).vars.add(r),r};return r.forgetCache=function(e){return t.delete(e)},r}function r3(e){e.broadcastWatches&&e.broadcastWatches()}var r4=function(){function e(e){var t=e.cache,n=e.client,r=e.resolvers,i=e.fragmentMatcher;this.selectionsToResolveCache=new WeakMap,this.cache=t,n&&(this.client=n),r&&this.addResolvers(r),i&&this.setFragmentMatcher(i)}return e.prototype.addResolvers=function(e){var t=this;this.resolvers=this.resolvers||{},Array.isArray(e)?e.forEach(function(e){t.resolvers=tj(t.resolvers,e)}):this.resolvers=tj(this.resolvers,e)},e.prototype.setResolvers=function(e){this.resolvers={},this.addResolvers(e)},e.prototype.getResolvers=function(){return this.resolvers||{}},e.prototype.runResolvers=function(e){var t=e.document,n=e.remoteResult,r=e.context,i=e.variables,a=e.onlyRunForcedResolvers,o=void 0!==a&&a;return(0,en.mG)(this,void 0,void 0,function(){return(0,en.Jh)(this,function(e){return t?[2,this.resolveDocument(t,n.data,r,i,this.fragmentMatcher,o).then(function(e){return(0,en.pi)((0,en.pi)({},n),{data:e.result})})]:[2,n]})})},e.prototype.setFragmentMatcher=function(e){this.fragmentMatcher=e},e.prototype.getFragmentMatcher=function(){return this.fragmentMatcher},e.prototype.clientQuery=function(e){return tb(["client"],e)&&this.resolvers?e:null},e.prototype.serverQuery=function(e){return n$(e)},e.prototype.prepareContext=function(e){var t=this.cache;return(0,en.pi)((0,en.pi)({},e),{cache:t,getCacheKey:function(e){return t.identify(e)}})},e.prototype.addExportedVariables=function(e,t,n){return void 0===t&&(t={}),void 0===n&&(n={}),(0,en.mG)(this,void 0,void 0,function(){return(0,en.Jh)(this,function(r){return e?[2,this.resolveDocument(e,this.buildRootValueFromCache(e,t)||{},this.prepareContext(n),t).then(function(e){return(0,en.pi)((0,en.pi)({},t),e.exportedVariables)})]:[2,(0,en.pi)({},t)]})})},e.prototype.shouldForceResolvers=function(e){var t=!1;return tl(e,{Directive:{enter:function(e){if("client"===e.name.value&&e.arguments&&(t=e.arguments.some(function(e){return"always"===e.name.value&&"BooleanValue"===e.value.kind&&!0===e.value.value})))return tc}}}),t},e.prototype.buildRootValueFromCache=function(e,t){return this.cache.diff({query:nH(e),variables:t,returnPartialData:!0,optimistic:!1}).result},e.prototype.resolveDocument=function(e,t,n,r,i,a){return void 0===n&&(n={}),void 0===r&&(r={}),void 0===i&&(i=function(){return!0}),void 0===a&&(a=!1),(0,en.mG)(this,void 0,void 0,function(){var o,s,u,c,l,f,d,h,p,b,m;return(0,en.Jh)(this,function(g){return o=e9(e),s=e4(e),u=eL(s),c=this.collectSelectionsToResolve(o,u),f=(l=o.operation)?l.charAt(0).toUpperCase()+l.slice(1):"Query",d=this,h=d.cache,p=d.client,b={fragmentMap:u,context:(0,en.pi)((0,en.pi)({},n),{cache:h,client:p}),variables:r,fragmentMatcher:i,defaultOperationType:f,exportedVariables:{},selectionsToResolve:c,onlyRunForcedResolvers:a},m=!1,[2,this.resolveSelectionSet(o.selectionSet,m,t,b).then(function(e){return{result:e,exportedVariables:b.exportedVariables}})]})})},e.prototype.resolveSelectionSet=function(e,t,n,r){return(0,en.mG)(this,void 0,void 0,function(){var i,a,o,s,u,c=this;return(0,en.Jh)(this,function(l){return i=r.fragmentMap,a=r.context,o=r.variables,s=[n],u=function(e){return(0,en.mG)(c,void 0,void 0,function(){var u,c;return(0,en.Jh)(this,function(l){return(t||r.selectionsToResolve.has(e))&&td(e,o)?eQ(e)?[2,this.resolveField(e,t,n,r).then(function(t){var n;void 0!==t&&s.push(((n={})[eX(e)]=t,n))})]:(e1(e)?u=e:(u=i[e.name.value],__DEV__?(0,Q.kG)(u,"No fragment named ".concat(e.name.value)):(0,Q.kG)(u,11)),u&&u.typeCondition&&(c=u.typeCondition.name.value,r.fragmentMatcher(n,c,a)))?[2,this.resolveSelectionSet(u.selectionSet,t,n,r).then(function(e){s.push(e)})]:[2]:[2]})})},[2,Promise.all(e.selections.map(u)).then(function(){return tF(s)})]})})},e.prototype.resolveField=function(e,t,n,r){return(0,en.mG)(this,void 0,void 0,function(){var i,a,o,s,u,c,l,f,d,h=this;return(0,en.Jh)(this,function(p){return n?(i=r.variables,a=e.name.value,o=eX(e),s=a!==o,c=Promise.resolve(u=n[o]||n[a]),(!r.onlyRunForcedResolvers||this.shouldForceResolvers(e))&&(l=n.__typename||r.defaultOperationType,(f=this.resolvers&&this.resolvers[l])&&(d=f[s?a:o])&&(c=Promise.resolve(rX.withValue(this.cache,d,[n,eZ(e,i),r.context,{field:e,fragmentMap:r.fragmentMap},])))),[2,c.then(function(n){if(void 0===n&&(n=u),e.directives&&e.directives.forEach(function(e){"export"===e.name.value&&e.arguments&&e.arguments.forEach(function(e){"as"===e.name.value&&"StringValue"===e.value.kind&&(r.exportedVariables[e.value.value]=n)})}),!e.selectionSet||null==n)return n;var i,a,o=null!==(a=null===(i=e.directives)||void 0===i?void 0:i.some(function(e){return"client"===e.name.value}))&&void 0!==a&&a;return Array.isArray(n)?h.resolveSubSelectedArray(e,t||o,n,r):e.selectionSet?h.resolveSelectionSet(e.selectionSet,t||o,n,r):void 0})]):[2,null]})})},e.prototype.resolveSubSelectedArray=function(e,t,n,r){var i=this;return Promise.all(n.map(function(n){return null===n?null:Array.isArray(n)?i.resolveSubSelectedArray(e,t,n,r):e.selectionSet?i.resolveSelectionSet(e.selectionSet,t,n,r):void 0}))},e.prototype.collectSelectionsToResolve=function(e,t){var n=function(e){return!Array.isArray(e)},r=this.selectionsToResolveCache;function i(e){if(!r.has(e)){var a=new Set;r.set(e,a),tl(e,{Directive:function(e,t,r,i,o){"client"===e.name.value&&o.forEach(function(e){n(e)&&n8(e)&&a.add(e)})},FragmentSpread:function(e,r,o,s,u){var c=t[e.name.value];__DEV__?(0,Q.kG)(c,"No fragment named ".concat(e.name.value)):(0,Q.kG)(c,12);var l=i(c);l.size>0&&(u.forEach(function(e){n(e)&&n8(e)&&a.add(e)}),a.add(e),l.forEach(function(e){a.add(e)}))}})}return r.get(e)}return i(e)},e}(),r5=new(t_.mr?WeakMap:Map);function r6(e,t){var n=e[t];"function"==typeof n&&(e[t]=function(){return r5.set(e,(r5.get(e)+1)%1e15),n.apply(this,arguments)})}function r9(e){e.notifyTimeout&&(clearTimeout(e.notifyTimeout),e.notifyTimeout=void 0)}var r8=function(){function e(e,t){void 0===t&&(t=e.generateQueryId()),this.queryId=t,this.listeners=new Set,this.document=null,this.lastRequestId=1,this.subscriptions=new Set,this.stopped=!1,this.dirty=!1,this.observableQuery=null;var n=this.cache=e.cache;r5.has(n)||(r5.set(n,0),r6(n,"evict"),r6(n,"modify"),r6(n,"reset"))}return e.prototype.init=function(e){var t=e.networkStatus||nZ.I.loading;return this.variables&&this.networkStatus!==nZ.I.loading&&!(0,nm.D)(this.variables,e.variables)&&(t=nZ.I.setVariables),(0,nm.D)(e.variables,this.variables)||(this.lastDiff=void 0),Object.assign(this,{document:e.document,variables:e.variables,networkError:null,graphQLErrors:this.graphQLErrors||[],networkStatus:t}),e.observableQuery&&this.setObservableQuery(e.observableQuery),e.lastRequestId&&(this.lastRequestId=e.lastRequestId),this},e.prototype.reset=function(){r9(this),this.dirty=!1},e.prototype.getDiff=function(e){void 0===e&&(e=this.variables);var t=this.getDiffOptions(e);if(this.lastDiff&&(0,nm.D)(t,this.lastDiff.options))return this.lastDiff.diff;this.updateWatch(this.variables=e);var n=this.observableQuery;if(n&&"no-cache"===n.options.fetchPolicy)return{complete:!1};var r=this.cache.diff(t);return this.updateLastDiff(r,t),r},e.prototype.updateLastDiff=function(e,t){this.lastDiff=e?{diff:e,options:t||this.getDiffOptions()}:void 0},e.prototype.getDiffOptions=function(e){var t;return void 0===e&&(e=this.variables),{query:this.document,variables:e,returnPartialData:!0,optimistic:!0,canonizeResults:null===(t=this.observableQuery)||void 0===t?void 0:t.options.canonizeResults}},e.prototype.setDiff=function(e){var t=this,n=this.lastDiff&&this.lastDiff.diff;this.updateLastDiff(e),this.dirty||(0,nm.D)(n&&n.result,e&&e.result)||(this.dirty=!0,this.notifyTimeout||(this.notifyTimeout=setTimeout(function(){return t.notify()},0)))},e.prototype.setObservableQuery=function(e){var t=this;e!==this.observableQuery&&(this.oqListener&&this.listeners.delete(this.oqListener),this.observableQuery=e,e?(e.queryInfo=this,this.listeners.add(this.oqListener=function(){t.getDiff().fromOptimisticTransaction?e.observe():n4(e)})):delete this.oqListener)},e.prototype.notify=function(){var e=this;r9(this),this.shouldNotify()&&this.listeners.forEach(function(t){return t(e)}),this.dirty=!1},e.prototype.shouldNotify=function(){if(!this.dirty||!this.listeners.size)return!1;if((0,nZ.O)(this.networkStatus)&&this.observableQuery){var e=this.observableQuery.options.fetchPolicy;if("cache-only"!==e&&"cache-and-network"!==e)return!1}return!0},e.prototype.stop=function(){if(!this.stopped){this.stopped=!0,this.reset(),this.cancel(),this.cancel=e.prototype.cancel,this.subscriptions.forEach(function(e){return e.unsubscribe()});var t=this.observableQuery;t&&t.stopPolling()}},e.prototype.cancel=function(){},e.prototype.updateWatch=function(e){var t=this;void 0===e&&(e=this.variables);var n=this.observableQuery;if(!n||"no-cache"!==n.options.fetchPolicy){var r=(0,en.pi)((0,en.pi)({},this.getDiffOptions(e)),{watcher:this,callback:function(e){return t.setDiff(e)}});this.lastWatch&&(0,nm.D)(r,this.lastWatch)||(this.cancel(),this.cancel=this.cache.watch(this.lastWatch=r))}},e.prototype.resetLastWrite=function(){this.lastWrite=void 0},e.prototype.shouldWrite=function(e,t){var n=this.lastWrite;return!(n&&n.dmCount===r5.get(this.cache)&&(0,nm.D)(t,n.variables)&&(0,nm.D)(e.data,n.result.data))},e.prototype.markResult=function(e,t,n,r){var i=this,a=new tB,o=(0,tP.O)(e.errors)?e.errors.slice(0):[];if(this.reset(),"incremental"in e&&(0,tP.O)(e.incremental)){var s=tG(this.getDiff().result,e);e.data=s}else if("hasNext"in e&&e.hasNext){var u=this.getDiff();e.data=a.merge(u.result,e.data)}this.graphQLErrors=o,"no-cache"===n.fetchPolicy?this.updateLastDiff({result:e.data,complete:!0},this.getDiffOptions(n.variables)):0!==r&&(r7(e,n.errorPolicy)?this.cache.performTransaction(function(a){if(i.shouldWrite(e,n.variables))a.writeQuery({query:t,data:e.data,variables:n.variables,overwrite:1===r}),i.lastWrite={result:e,variables:n.variables,dmCount:r5.get(i.cache)};else if(i.lastDiff&&i.lastDiff.diff.complete){e.data=i.lastDiff.diff.result;return}var o=i.getDiffOptions(n.variables),s=a.diff(o);i.stopped||i.updateWatch(n.variables),i.updateLastDiff(s,o),s.complete&&(e.data=s.result)}):this.lastWrite=void 0)},e.prototype.markReady=function(){return this.networkError=null,this.networkStatus=nZ.I.ready},e.prototype.markError=function(e){return this.networkStatus=nZ.I.error,this.lastWrite=void 0,this.reset(),e.graphQLErrors&&(this.graphQLErrors=e.graphQLErrors),e.networkError&&(this.networkError=e.networkError),e},e}();function r7(e,t){void 0===t&&(t="none");var n="ignore"===t||"all"===t,r=!nO(e);return!r&&n&&e.data&&(r=!0),r}var ie=Object.prototype.hasOwnProperty,it=function(){function e(e){var t=e.cache,n=e.link,r=e.defaultOptions,i=e.queryDeduplication,a=void 0!==i&&i,o=e.onBroadcast,s=e.ssrMode,u=void 0!==s&&s,c=e.clientAwareness,l=void 0===c?{}:c,f=e.localState,d=e.assumeImmutableResults;this.clientAwareness={},this.queries=new Map,this.fetchCancelFns=new Map,this.transformCache=new(t_.mr?WeakMap:Map),this.queryIdCounter=1,this.requestIdCounter=1,this.mutationIdCounter=1,this.inFlightLinkObservables=new Map,this.cache=t,this.link=n,this.defaultOptions=r||Object.create(null),this.queryDeduplication=a,this.clientAwareness=l,this.localState=f||new r4({cache:t}),this.ssrMode=u,this.assumeImmutableResults=!!d,(this.onBroadcast=o)&&(this.mutationStore=Object.create(null))}return e.prototype.stop=function(){var e=this;this.queries.forEach(function(t,n){e.stopQueryNoBroadcast(n)}),this.cancelPendingFetches(__DEV__?new Q.ej("QueryManager stopped while query was in flight"):new Q.ej(14))},e.prototype.cancelPendingFetches=function(e){this.fetchCancelFns.forEach(function(t){return t(e)}),this.fetchCancelFns.clear()},e.prototype.mutate=function(e){var t,n,r=e.mutation,i=e.variables,a=e.optimisticResponse,o=e.updateQueries,s=e.refetchQueries,u=void 0===s?[]:s,c=e.awaitRefetchQueries,l=void 0!==c&&c,f=e.update,d=e.onQueryUpdated,h=e.fetchPolicy,p=void 0===h?(null===(t=this.defaultOptions.mutate)||void 0===t?void 0:t.fetchPolicy)||"network-only":h,b=e.errorPolicy,m=void 0===b?(null===(n=this.defaultOptions.mutate)||void 0===n?void 0:n.errorPolicy)||"none":b,g=e.keepRootFields,v=e.context;return(0,en.mG)(this,void 0,void 0,function(){var e,t,n,s,c,h;return(0,en.Jh)(this,function(b){switch(b.label){case 0:if(__DEV__?(0,Q.kG)(r,"mutation option is required. You must specify your GraphQL document in the mutation option."):(0,Q.kG)(r,15),__DEV__?(0,Q.kG)("network-only"===p||"no-cache"===p,"Mutations support only 'network-only' or 'no-cache' fetchPolicy strings. The default `network-only` behavior automatically writes mutation results to the cache. Passing `no-cache` skips the cache write."):(0,Q.kG)("network-only"===p||"no-cache"===p,16),e=this.generateMutationId(),n=(t=this.transform(r)).document,s=t.hasClientExports,r=this.cache.transformForLink(n),i=this.getVariables(r,i),!s)return[3,2];return[4,this.localState.addExportedVariables(r,i,v)];case 1:i=b.sent(),b.label=2;case 2:return c=this.mutationStore&&(this.mutationStore[e]={mutation:r,variables:i,loading:!0,error:null}),a&&this.markMutationOptimistic(a,{mutationId:e,document:r,variables:i,fetchPolicy:p,errorPolicy:m,context:v,updateQueries:o,update:f,keepRootFields:g}),this.broadcastQueries(),h=this,[2,new Promise(function(t,n){return nM(h.getObservableFromLink(r,(0,en.pi)((0,en.pi)({},v),{optimisticResponse:a}),i,!1),function(t){if(nO(t)&&"none"===m)throw new tN.cA({graphQLErrors:nA(t)});c&&(c.loading=!1,c.error=null);var n=(0,en.pi)({},t);return"function"==typeof u&&(u=u(n)),"ignore"===m&&nO(n)&&delete n.errors,h.markMutationResult({mutationId:e,result:n,document:r,variables:i,fetchPolicy:p,errorPolicy:m,context:v,update:f,updateQueries:o,awaitRefetchQueries:l,refetchQueries:u,removeOptimistic:a?e:void 0,onQueryUpdated:d,keepRootFields:g})}).subscribe({next:function(e){h.broadcastQueries(),"hasNext"in e&&!1!==e.hasNext||t(e)},error:function(t){c&&(c.loading=!1,c.error=t),a&&h.cache.removeOptimistic(e),h.broadcastQueries(),n(t instanceof tN.cA?t:new tN.cA({networkError:t}))}})})]}})})},e.prototype.markMutationResult=function(e,t){var n=this;void 0===t&&(t=this.cache);var r=e.result,i=[],a="no-cache"===e.fetchPolicy;if(!a&&r7(r,e.errorPolicy)){if(tU(r)||i.push({result:r.data,dataId:"ROOT_MUTATION",query:e.document,variables:e.variables}),tU(r)&&(0,tP.O)(r.incremental)){var o=t.diff({id:"ROOT_MUTATION",query:this.transform(e.document).asQuery,variables:e.variables,optimistic:!1,returnPartialData:!0}),s=void 0;o.result&&(s=tG(o.result,r)),void 0!==s&&(r.data=s,i.push({result:s,dataId:"ROOT_MUTATION",query:e.document,variables:e.variables}))}var u=e.updateQueries;u&&this.queries.forEach(function(e,a){var o=e.observableQuery,s=o&&o.queryName;if(s&&ie.call(u,s)){var c,l=u[s],f=n.queries.get(a),d=f.document,h=f.variables,p=t.diff({query:d,variables:h,returnPartialData:!0,optimistic:!1}),b=p.result;if(p.complete&&b){var m=l(b,{mutationResult:r,queryName:d&&e3(d)||void 0,queryVariables:h});m&&i.push({result:m,dataId:"ROOT_QUERY",query:d,variables:h})}}})}if(i.length>0||e.refetchQueries||e.update||e.onQueryUpdated||e.removeOptimistic){var c=[];if(this.refetchQueries({updateCache:function(t){a||i.forEach(function(e){return t.write(e)});var o=e.update,s=!t$(r)||tU(r)&&!r.hasNext;if(o){if(!a){var u=t.diff({id:"ROOT_MUTATION",query:n.transform(e.document).asQuery,variables:e.variables,optimistic:!1,returnPartialData:!0});u.complete&&("incremental"in(r=(0,en.pi)((0,en.pi)({},r),{data:u.result}))&&delete r.incremental,"hasNext"in r&&delete r.hasNext)}s&&o(t,r,{context:e.context,variables:e.variables})}a||e.keepRootFields||!s||t.modify({id:"ROOT_MUTATION",fields:function(e,t){var n=t.fieldName,r=t.DELETE;return"__typename"===n?e:r}})},include:e.refetchQueries,optimistic:!1,removeOptimistic:e.removeOptimistic,onQueryUpdated:e.onQueryUpdated||null}).forEach(function(e){return c.push(e)}),e.awaitRefetchQueries||e.onQueryUpdated)return Promise.all(c).then(function(){return r})}return Promise.resolve(r)},e.prototype.markMutationOptimistic=function(e,t){var n=this,r="function"==typeof e?e(t.variables):e;return this.cache.recordOptimisticTransaction(function(e){try{n.markMutationResult((0,en.pi)((0,en.pi)({},t),{result:{data:r}}),e)}catch(i){__DEV__&&Q.kG.error(i)}},t.mutationId)},e.prototype.fetchQuery=function(e,t,n){return this.fetchQueryObservable(e,t,n).promise},e.prototype.getQueryStore=function(){var e=Object.create(null);return this.queries.forEach(function(t,n){e[n]={variables:t.variables,networkStatus:t.networkStatus,networkError:t.networkError,graphQLErrors:t.graphQLErrors}}),e},e.prototype.resetErrors=function(e){var t=this.queries.get(e);t&&(t.networkError=void 0,t.graphQLErrors=[])},e.prototype.transform=function(e){var t=this.transformCache;if(!t.has(e)){var n=this.cache.transformDocument(e),r=nY(n),i=this.localState.clientQuery(n),a=r&&this.localState.serverQuery(r),o={document:n,hasClientExports:tm(n),hasForcedResolvers:this.localState.shouldForceResolvers(n),clientQuery:i,serverQuery:a,defaultVars:e8(e2(n)),asQuery:(0,en.pi)((0,en.pi)({},n),{definitions:n.definitions.map(function(e){return"OperationDefinition"===e.kind&&"query"!==e.operation?(0,en.pi)((0,en.pi)({},e),{operation:"query"}):e})})},s=function(e){e&&!t.has(e)&&t.set(e,o)};s(e),s(n),s(i),s(a)}return t.get(e)},e.prototype.getVariables=function(e,t){return(0,en.pi)((0,en.pi)({},this.transform(e).defaultVars),t)},e.prototype.watchQuery=function(e){void 0===(e=(0,en.pi)((0,en.pi)({},e),{variables:this.getVariables(e.query,e.variables)})).notifyOnNetworkStatusChange&&(e.notifyOnNetworkStatusChange=!1);var t=new r8(this),n=new n3({queryManager:this,queryInfo:t,options:e});return this.queries.set(n.queryId,t),t.init({document:n.query,observableQuery:n,variables:n.variables}),n},e.prototype.query=function(e,t){var n=this;return void 0===t&&(t=this.generateQueryId()),__DEV__?(0,Q.kG)(e.query,"query option is required. You must specify your GraphQL document in the query option."):(0,Q.kG)(e.query,17),__DEV__?(0,Q.kG)("Document"===e.query.kind,'You must wrap the query string in a "gql" tag.'):(0,Q.kG)("Document"===e.query.kind,18),__DEV__?(0,Q.kG)(!e.returnPartialData,"returnPartialData option only supported on watchQuery."):(0,Q.kG)(!e.returnPartialData,19),__DEV__?(0,Q.kG)(!e.pollInterval,"pollInterval option only supported on watchQuery."):(0,Q.kG)(!e.pollInterval,20),this.fetchQuery(t,e).finally(function(){return n.stopQuery(t)})},e.prototype.generateQueryId=function(){return String(this.queryIdCounter++)},e.prototype.generateRequestId=function(){return this.requestIdCounter++},e.prototype.generateMutationId=function(){return String(this.mutationIdCounter++)},e.prototype.stopQueryInStore=function(e){this.stopQueryInStoreNoBroadcast(e),this.broadcastQueries()},e.prototype.stopQueryInStoreNoBroadcast=function(e){var t=this.queries.get(e);t&&t.stop()},e.prototype.clearStore=function(e){return void 0===e&&(e={discardWatches:!0}),this.cancelPendingFetches(__DEV__?new Q.ej("Store reset while query was in flight (not completed in link chain)"):new Q.ej(21)),this.queries.forEach(function(e){e.observableQuery?e.networkStatus=nZ.I.loading:e.stop()}),this.mutationStore&&(this.mutationStore=Object.create(null)),this.cache.reset(e)},e.prototype.getObservableQueries=function(e){var t=this;void 0===e&&(e="active");var n=new Map,r=new Map,i=new Set;return Array.isArray(e)&&e.forEach(function(e){"string"==typeof e?r.set(e,!1):eN(e)?r.set(t.transform(e).document,!1):(0,eO.s)(e)&&e.query&&i.add(e)}),this.queries.forEach(function(t,i){var a=t.observableQuery,o=t.document;if(a){if("all"===e){n.set(i,a);return}var s=a.queryName;if("standby"===a.options.fetchPolicy||"active"===e&&!a.hasObservers())return;("active"===e||s&&r.has(s)||o&&r.has(o))&&(n.set(i,a),s&&r.set(s,!0),o&&r.set(o,!0))}}),i.size&&i.forEach(function(e){var r=nG("legacyOneTimeQuery"),i=t.getQuery(r).init({document:e.query,variables:e.variables}),a=new n3({queryManager:t,queryInfo:i,options:(0,en.pi)((0,en.pi)({},e),{fetchPolicy:"network-only"})});(0,Q.kG)(a.queryId===r),i.setObservableQuery(a),n.set(r,a)}),__DEV__&&r.size&&r.forEach(function(e,t){!e&&__DEV__&&Q.kG.warn("Unknown query ".concat("string"==typeof t?"named ":"").concat(JSON.stringify(t,null,2)," requested in refetchQueries options.include array"))}),n},e.prototype.reFetchObservableQueries=function(e){var t=this;void 0===e&&(e=!1);var n=[];return this.getObservableQueries(e?"all":"active").forEach(function(r,i){var a=r.options.fetchPolicy;r.resetLastResults(),(e||"standby"!==a&&"cache-only"!==a)&&n.push(r.refetch()),t.getQuery(i).setDiff(null)}),this.broadcastQueries(),Promise.all(n)},e.prototype.setObservableQuery=function(e){this.getQuery(e.queryId).setObservableQuery(e)},e.prototype.startGraphQLSubscription=function(e){var t=this,n=e.query,r=e.fetchPolicy,i=e.errorPolicy,a=e.variables,o=e.context,s=void 0===o?{}:o;n=this.transform(n).document,a=this.getVariables(n,a);var u=function(e){return t.getObservableFromLink(n,s,e).map(function(a){"no-cache"!==r&&(r7(a,i)&&t.cache.write({query:n,result:a.data,dataId:"ROOT_SUBSCRIPTION",variables:e}),t.broadcastQueries());var o=nO(a),s=(0,tN.ls)(a);if(o||s){var u={};throw o&&(u.graphQLErrors=a.errors),s&&(u.protocolErrors=a.extensions[tN.YG]),new tN.cA(u)}return a})};if(this.transform(n).hasClientExports){var c=this.localState.addExportedVariables(n,a,s).then(u);return new eT(function(e){var t=null;return c.then(function(n){return t=n.subscribe(e)},e.error),function(){return t&&t.unsubscribe()}})}return u(a)},e.prototype.stopQuery=function(e){this.stopQueryNoBroadcast(e),this.broadcastQueries()},e.prototype.stopQueryNoBroadcast=function(e){this.stopQueryInStoreNoBroadcast(e),this.removeQuery(e)},e.prototype.removeQuery=function(e){this.fetchCancelFns.delete(e),this.queries.has(e)&&(this.getQuery(e).stop(),this.queries.delete(e))},e.prototype.broadcastQueries=function(){this.onBroadcast&&this.onBroadcast(),this.queries.forEach(function(e){return e.notify()})},e.prototype.getLocalState=function(){return this.localState},e.prototype.getObservableFromLink=function(e,t,n,r){var i,a,o=this;void 0===r&&(r=null!==(i=null==t?void 0:t.queryDeduplication)&&void 0!==i?i:this.queryDeduplication);var s=this.transform(e).serverQuery;if(s){var u=this,c=u.inFlightLinkObservables,l=u.link,f={query:s,variables:n,operationName:e3(s)||void 0,context:this.prepareContext((0,en.pi)((0,en.pi)({},t),{forceFetch:!r}))};if(t=f.context,r){var d=c.get(s)||new Map;c.set(s,d);var h=nx(n);if(!(a=d.get(h))){var p=new nq([np(l,f)]);d.set(h,a=p),p.beforeNext(function(){d.delete(h)&&d.size<1&&c.delete(s)})}}else a=new nq([np(l,f)])}else a=new nq([eT.of({data:{}})]),t=this.prepareContext(t);var b=this.transform(e).clientQuery;return b&&(a=nM(a,function(e){return o.localState.runResolvers({document:b,remoteResult:e,context:t,variables:n})})),a},e.prototype.getResultsFromLink=function(e,t,n){var r=e.lastRequestId=this.generateRequestId(),i=this.cache.transformForLink(this.transform(e.document).document);return nM(this.getObservableFromLink(i,n.context,n.variables),function(a){var o=nA(a),s=o.length>0;if(r>=e.lastRequestId){if(s&&"none"===n.errorPolicy)throw e.markError(new tN.cA({graphQLErrors:o}));e.markResult(a,i,n,t),e.markReady()}var u={data:a.data,loading:!1,networkStatus:nZ.I.ready};return s&&"ignore"!==n.errorPolicy&&(u.errors=o,u.networkStatus=nZ.I.error),u},function(t){var n=(0,tN.MS)(t)?t:new tN.cA({networkError:t});throw r>=e.lastRequestId&&e.markError(n),n})},e.prototype.fetchQueryObservable=function(e,t,n){return this.fetchConcastWithInfo(e,t,n).concast},e.prototype.fetchConcastWithInfo=function(e,t,n){var r,i,a=this;void 0===n&&(n=nZ.I.loading);var o=this.transform(t.query).document,s=this.getVariables(o,t.variables),u=this.getQuery(e),c=this.defaultOptions.watchQuery,l=t.fetchPolicy,f=void 0===l?c&&c.fetchPolicy||"cache-first":l,d=t.errorPolicy,h=void 0===d?c&&c.errorPolicy||"none":d,p=t.returnPartialData,b=void 0!==p&&p,m=t.notifyOnNetworkStatusChange,g=void 0!==m&&m,v=t.context,y=void 0===v?{}:v,w=Object.assign({},t,{query:o,variables:s,fetchPolicy:f,errorPolicy:h,returnPartialData:b,notifyOnNetworkStatusChange:g,context:y}),_=function(e){w.variables=e;var r=a.fetchQueryByPolicy(u,w,n);return"standby"!==w.fetchPolicy&&r.sources.length>0&&u.observableQuery&&u.observableQuery.applyNextFetchPolicy("after-fetch",t),r},E=function(){return a.fetchCancelFns.delete(e)};if(this.fetchCancelFns.set(e,function(e){E(),setTimeout(function(){return r.cancel(e)})}),this.transform(w.query).hasClientExports)r=new nq(this.localState.addExportedVariables(w.query,w.variables,w.context).then(_).then(function(e){return e.sources})),i=!0;else{var S=_(w.variables);i=S.fromLink,r=new nq(S.sources)}return r.promise.then(E,E),{concast:r,fromLink:i}},e.prototype.refetchQueries=function(e){var t=this,n=e.updateCache,r=e.include,i=e.optimistic,a=void 0!==i&&i,o=e.removeOptimistic,s=void 0===o?a?nG("refetchQueries"):void 0:o,u=e.onQueryUpdated,c=new Map;r&&this.getObservableQueries(r).forEach(function(e,n){c.set(n,{oq:e,lastDiff:t.getQuery(n).getDiff()})});var l=new Map;return n&&this.cache.batch({update:n,optimistic:a&&s||!1,removeOptimistic:s,onWatchUpdated:function(e,t,n){var r=e.watcher instanceof r8&&e.watcher.observableQuery;if(r){if(u){c.delete(r.queryId);var i=u(r,t,n);return!0===i&&(i=r.refetch()),!1!==i&&l.set(r,i),i}null!==u&&c.set(r.queryId,{oq:r,lastDiff:n,diff:t})}}}),c.size&&c.forEach(function(e,n){var r,i=e.oq,a=e.lastDiff,o=e.diff;if(u){if(!o){var s=i.queryInfo;s.reset(),o=s.getDiff()}r=u(i,o,a)}u&&!0!==r||(r=i.refetch()),!1!==r&&l.set(i,r),n.indexOf("legacyOneTimeQuery")>=0&&t.stopQueryNoBroadcast(n)}),s&&this.cache.removeOptimistic(s),l},e.prototype.fetchQueryByPolicy=function(e,t,n){var r=this,i=t.query,a=t.variables,o=t.fetchPolicy,s=t.refetchWritePolicy,u=t.errorPolicy,c=t.returnPartialData,l=t.context,f=t.notifyOnNetworkStatusChange,d=e.networkStatus;e.init({document:this.transform(i).document,variables:a,networkStatus:n});var h=function(){return e.getDiff(a)},p=function(t,n){void 0===n&&(n=e.networkStatus||nZ.I.loading);var o=t.result;!__DEV__||c||(0,nm.D)(o,{})||n6(t.missing);var s=function(e){return eT.of((0,en.pi)({data:e,loading:(0,nZ.O)(n),networkStatus:n},t.complete?null:{partial:!0}))};return o&&r.transform(i).hasForcedResolvers?r.localState.runResolvers({document:i,remoteResult:{data:o},context:l,variables:a,onlyRunForcedResolvers:!0}).then(function(e){return s(e.data||void 0)}):"none"===u&&n===nZ.I.refetch&&Array.isArray(t.missing)?s(void 0):s(o)},b="no-cache"===o?0:n===nZ.I.refetch&&"merge"!==s?1:2,m=function(){return r.getResultsFromLink(e,b,{variables:a,context:l,fetchPolicy:o,errorPolicy:u})},g=f&&"number"==typeof d&&d!==n&&(0,nZ.O)(n);switch(o){default:case"cache-first":var v=h();if(v.complete)return{fromLink:!1,sources:[p(v,e.markReady())]};if(c||g)return{fromLink:!0,sources:[p(v),m()]};return{fromLink:!0,sources:[m()]};case"cache-and-network":var v=h();if(v.complete||c||g)return{fromLink:!0,sources:[p(v),m()]};return{fromLink:!0,sources:[m()]};case"cache-only":return{fromLink:!1,sources:[p(h(),e.markReady())]};case"network-only":if(g)return{fromLink:!0,sources:[p(h()),m()]};return{fromLink:!0,sources:[m()]};case"no-cache":if(g)return{fromLink:!0,sources:[p(e.getDiff()),m(),]};return{fromLink:!0,sources:[m()]};case"standby":return{fromLink:!1,sources:[]}}},e.prototype.getQuery=function(e){return e&&!this.queries.has(e)&&this.queries.set(e,new r8(this,e)),this.queries.get(e)},e.prototype.prepareContext=function(e){void 0===e&&(e={});var t=this.localState.prepareContext(e);return(0,en.pi)((0,en.pi)({},t),{clientAwareness:this.clientAwareness})},e}(),ir=__webpack_require__(14012),ii=!1,ia=function(){function e(e){var t=this;this.resetStoreCallbacks=[],this.clearStoreCallbacks=[];var n=e.uri,r=e.credentials,i=e.headers,a=e.cache,o=e.ssrMode,s=void 0!==o&&o,u=e.ssrForceFetchDelay,c=void 0===u?0:u,l=e.connectToDevTools,f=void 0===l?"object"==typeof window&&!window.__APOLLO_CLIENT__&&__DEV__:l,d=e.queryDeduplication,h=void 0===d||d,p=e.defaultOptions,b=e.assumeImmutableResults,m=void 0!==b&&b,g=e.resolvers,v=e.typeDefs,y=e.fragmentMatcher,w=e.name,_=e.version,E=e.link;if(E||(E=n?new nh({uri:n,credentials:r,headers:i}):ta.empty()),!a)throw __DEV__?new Q.ej("To initialize Apollo Client, you must specify a 'cache' property in the options object. \nFor more information, please visit: https://go.apollo.dev/c/docs"):new Q.ej(9);if(this.link=E,this.cache=a,this.disableNetworkFetches=s||c>0,this.queryDeduplication=h,this.defaultOptions=p||Object.create(null),this.typeDefs=v,c&&setTimeout(function(){return t.disableNetworkFetches=!1},c),this.watchQuery=this.watchQuery.bind(this),this.query=this.query.bind(this),this.mutate=this.mutate.bind(this),this.resetStore=this.resetStore.bind(this),this.reFetchObservableQueries=this.reFetchObservableQueries.bind(this),f&&"object"==typeof window&&(window.__APOLLO_CLIENT__=this),!ii&&f&&__DEV__&&(ii=!0,"undefined"!=typeof window&&window.document&&window.top===window.self&&!window.__APOLLO_DEVTOOLS_GLOBAL_HOOK__)){var S=window.navigator,k=S&&S.userAgent,x=void 0;"string"==typeof k&&(k.indexOf("Chrome/")>-1?x="https://chrome.google.com/webstore/detail/apollo-client-developer-t/jdkknkkbebbapilgoeccciglkfbmbnfm":k.indexOf("Firefox/")>-1&&(x="https://addons.mozilla.org/en-US/firefox/addon/apollo-developer-tools/")),x&&__DEV__&&Q.kG.log("Download the Apollo DevTools for a better development experience: "+x)}this.version=nb,this.localState=new r4({cache:a,client:this,resolvers:g,fragmentMatcher:y}),this.queryManager=new it({cache:this.cache,link:this.link,defaultOptions:this.defaultOptions,queryDeduplication:h,ssrMode:s,clientAwareness:{name:w,version:_},localState:this.localState,assumeImmutableResults:m,onBroadcast:f?function(){t.devToolsHookCb&&t.devToolsHookCb({action:{},state:{queries:t.queryManager.getQueryStore(),mutations:t.queryManager.mutationStore||{}},dataWithOptimisticResults:t.cache.extract(!0)})}:void 0})}return e.prototype.stop=function(){this.queryManager.stop()},e.prototype.watchQuery=function(e){return this.defaultOptions.watchQuery&&(e=(0,ir.J)(this.defaultOptions.watchQuery,e)),this.disableNetworkFetches&&("network-only"===e.fetchPolicy||"cache-and-network"===e.fetchPolicy)&&(e=(0,en.pi)((0,en.pi)({},e),{fetchPolicy:"cache-first"})),this.queryManager.watchQuery(e)},e.prototype.query=function(e){return this.defaultOptions.query&&(e=(0,ir.J)(this.defaultOptions.query,e)),__DEV__?(0,Q.kG)("cache-and-network"!==e.fetchPolicy,"The cache-and-network fetchPolicy does not work with client.query, because client.query can only return a single result. Please use client.watchQuery to receive multiple results from the cache and the network, or consider using a different fetchPolicy, such as cache-first or network-only."):(0,Q.kG)("cache-and-network"!==e.fetchPolicy,10),this.disableNetworkFetches&&"network-only"===e.fetchPolicy&&(e=(0,en.pi)((0,en.pi)({},e),{fetchPolicy:"cache-first"})),this.queryManager.query(e)},e.prototype.mutate=function(e){return this.defaultOptions.mutate&&(e=(0,ir.J)(this.defaultOptions.mutate,e)),this.queryManager.mutate(e)},e.prototype.subscribe=function(e){return this.queryManager.startGraphQLSubscription(e)},e.prototype.readQuery=function(e,t){return void 0===t&&(t=!1),this.cache.readQuery(e,t)},e.prototype.readFragment=function(e,t){return void 0===t&&(t=!1),this.cache.readFragment(e,t)},e.prototype.writeQuery=function(e){var t=this.cache.writeQuery(e);return!1!==e.broadcast&&this.queryManager.broadcastQueries(),t},e.prototype.writeFragment=function(e){var t=this.cache.writeFragment(e);return!1!==e.broadcast&&this.queryManager.broadcastQueries(),t},e.prototype.__actionHookForDevTools=function(e){this.devToolsHookCb=e},e.prototype.__requestRaw=function(e){return np(this.link,e)},e.prototype.resetStore=function(){var e=this;return Promise.resolve().then(function(){return e.queryManager.clearStore({discardWatches:!1})}).then(function(){return Promise.all(e.resetStoreCallbacks.map(function(e){return e()}))}).then(function(){return e.reFetchObservableQueries()})},e.prototype.clearStore=function(){var e=this;return Promise.resolve().then(function(){return e.queryManager.clearStore({discardWatches:!0})}).then(function(){return Promise.all(e.clearStoreCallbacks.map(function(e){return e()}))})},e.prototype.onResetStore=function(e){var t=this;return this.resetStoreCallbacks.push(e),function(){t.resetStoreCallbacks=t.resetStoreCallbacks.filter(function(t){return t!==e})}},e.prototype.onClearStore=function(e){var t=this;return this.clearStoreCallbacks.push(e),function(){t.clearStoreCallbacks=t.clearStoreCallbacks.filter(function(t){return t!==e})}},e.prototype.reFetchObservableQueries=function(e){return this.queryManager.reFetchObservableQueries(e)},e.prototype.refetchQueries=function(e){var t=this.queryManager.refetchQueries(e),n=[],r=[];t.forEach(function(e,t){n.push(t),r.push(e)});var i=Promise.all(r);return i.queries=n,i.results=r,i.catch(function(e){__DEV__&&Q.kG.debug("In client.refetchQueries, Promise.all promise rejected with error ".concat(e))}),i},e.prototype.getObservableQueries=function(e){return void 0===e&&(e="active"),this.queryManager.getObservableQueries(e)},e.prototype.extract=function(e){return this.cache.extract(e)},e.prototype.restore=function(e){return this.cache.restore(e)},e.prototype.addResolvers=function(e){this.localState.addResolvers(e)},e.prototype.setResolvers=function(e){this.localState.setResolvers(e)},e.prototype.getResolvers=function(){return this.localState.getResolvers()},e.prototype.setLocalStateFragmentMatcher=function(e){this.localState.setFragmentMatcher(e)},e.prototype.setLink=function(e){this.link=this.queryManager.link=e},e}(),io=function(){function e(){this.getFragmentDoc=rZ(eA)}return e.prototype.batch=function(e){var t,n=this,r="string"==typeof e.optimistic?e.optimistic:!1===e.optimistic?null:void 0;return this.performTransaction(function(){return t=e.update(n)},r),t},e.prototype.recordOptimisticTransaction=function(e,t){this.performTransaction(e,t)},e.prototype.transformDocument=function(e){return e},e.prototype.transformForLink=function(e){return e},e.prototype.identify=function(e){},e.prototype.gc=function(){return[]},e.prototype.modify=function(e){return!1},e.prototype.readQuery=function(e,t){return void 0===t&&(t=!!e.optimistic),this.read((0,en.pi)((0,en.pi)({},e),{rootId:e.id||"ROOT_QUERY",optimistic:t}))},e.prototype.readFragment=function(e,t){return void 0===t&&(t=!!e.optimistic),this.read((0,en.pi)((0,en.pi)({},e),{query:this.getFragmentDoc(e.fragment,e.fragmentName),rootId:e.id,optimistic:t}))},e.prototype.writeQuery=function(e){var t=e.id,n=e.data,r=(0,en._T)(e,["id","data"]);return this.write(Object.assign(r,{dataId:t||"ROOT_QUERY",result:n}))},e.prototype.writeFragment=function(e){var t=e.id,n=e.data,r=e.fragment,i=e.fragmentName,a=(0,en._T)(e,["id","data","fragment","fragmentName"]);return this.write(Object.assign(a,{query:this.getFragmentDoc(r,i),dataId:t,result:n}))},e.prototype.updateQuery=function(e,t){return this.batch({update:function(n){var r=n.readQuery(e),i=t(r);return null==i?r:(n.writeQuery((0,en.pi)((0,en.pi)({},e),{data:i})),i)}})},e.prototype.updateFragment=function(e,t){return this.batch({update:function(n){var r=n.readFragment(e),i=t(r);return null==i?r:(n.writeFragment((0,en.pi)((0,en.pi)({},e),{data:i})),i)}})},e}(),is=function(e){function t(n,r,i,a){var o,s=e.call(this,n)||this;if(s.message=n,s.path=r,s.query=i,s.variables=a,Array.isArray(s.path)){s.missing=s.message;for(var u=s.path.length-1;u>=0;--u)s.missing=((o={})[s.path[u]]=s.missing,o)}else s.missing=s.path;return s.__proto__=t.prototype,s}return(0,en.ZT)(t,e),t}(Error),iu=__webpack_require__(10542),ic=Object.prototype.hasOwnProperty;function il(e){return null==e}function id(e,t){var n=e.__typename,r=e.id,i=e._id;if("string"==typeof n&&(t&&(t.keyObject=il(r)?il(i)?void 0:{_id:i}:{id:r}),il(r)&&!il(i)&&(r=i),!il(r)))return"".concat(n,":").concat("number"==typeof r||"string"==typeof r?r:JSON.stringify(r))}var ih={dataIdFromObject:id,addTypename:!0,resultCaching:!0,canonizeResults:!1};function ip(e){return(0,n1.o)(ih,e)}function ib(e){var t=e.canonizeResults;return void 0===t?ih.canonizeResults:t}function im(e,t){return eD(t)?e.get(t.__ref,"__typename"):t&&t.__typename}var ig=/^[_a-z][_0-9a-z]*/i;function iv(e){var t=e.match(ig);return t?t[0]:e}function iy(e,t,n){return!!(0,eO.s)(t)&&((0,tP.k)(t)?t.every(function(t){return iy(e,t,n)}):e.selections.every(function(e){if(eQ(e)&&td(e,n)){var r=eX(e);return ic.call(t,r)&&(!e.selectionSet||iy(e.selectionSet,t[r],n))}return!0}))}function iw(e){return(0,eO.s)(e)&&!eD(e)&&!(0,tP.k)(e)}function i_(){return new tB}function iE(e,t){var n=eL(e4(e));return{fragmentMap:n,lookupFragment:function(e){var r=n[e];return!r&&t&&(r=t.lookup(e)),r||null}}}var iS=Object.create(null),ik=function(){return iS},ix=Object.create(null),iT=function(){function e(e,t){var n=this;this.policies=e,this.group=t,this.data=Object.create(null),this.rootIds=Object.create(null),this.refs=Object.create(null),this.getFieldValue=function(e,t){return(0,iu.J)(eD(e)?n.get(e.__ref,t):e&&e[t])},this.canRead=function(e){return eD(e)?n.has(e.__ref):"object"==typeof e},this.toReference=function(e,t){if("string"==typeof e)return eI(e);if(eD(e))return e;var r=n.policies.identify(e)[0];if(r){var i=eI(r);return t&&n.merge(r,e),i}}}return e.prototype.toObject=function(){return(0,en.pi)({},this.data)},e.prototype.has=function(e){return void 0!==this.lookup(e,!0)},e.prototype.get=function(e,t){if(this.group.depend(e,t),ic.call(this.data,e)){var n=this.data[e];if(n&&ic.call(n,t))return n[t]}return"__typename"===t&&ic.call(this.policies.rootTypenamesById,e)?this.policies.rootTypenamesById[e]:this instanceof iL?this.parent.get(e,t):void 0},e.prototype.lookup=function(e,t){return(t&&this.group.depend(e,"__exists"),ic.call(this.data,e))?this.data[e]:this instanceof iL?this.parent.lookup(e,t):this.policies.rootTypenamesById[e]?Object.create(null):void 0},e.prototype.merge=function(e,t){var n,r=this;eD(e)&&(e=e.__ref),eD(t)&&(t=t.__ref);var i="string"==typeof e?this.lookup(n=e):e,a="string"==typeof t?this.lookup(n=t):t;if(a){__DEV__?(0,Q.kG)("string"==typeof n,"store.merge expects a string ID"):(0,Q.kG)("string"==typeof n,1);var o=new tB(iI).merge(i,a);if(this.data[n]=o,o!==i&&(delete this.refs[n],this.group.caching)){var s=Object.create(null);i||(s.__exists=1),Object.keys(a).forEach(function(e){if(!i||i[e]!==o[e]){s[e]=1;var t=iv(e);t===e||r.policies.hasKeyArgs(o.__typename,t)||(s[t]=1),void 0!==o[e]||r instanceof iL||delete o[e]}}),s.__typename&&!(i&&i.__typename)&&this.policies.rootTypenamesById[n]===o.__typename&&delete s.__typename,Object.keys(s).forEach(function(e){return r.group.dirty(n,e)})}}},e.prototype.modify=function(e,t){var n=this,r=this.lookup(e);if(r){var i=Object.create(null),a=!1,o=!0,s={DELETE:iS,INVALIDATE:ix,isReference:eD,toReference:this.toReference,canRead:this.canRead,readField:function(t,r){return n.policies.readField("string"==typeof t?{fieldName:t,from:r||eI(e)}:t,{store:n})}};if(Object.keys(r).forEach(function(u){var c=iv(u),l=r[u];if(void 0!==l){var f="function"==typeof t?t:t[u]||t[c];if(f){var d=f===ik?iS:f((0,iu.J)(l),(0,en.pi)((0,en.pi)({},s),{fieldName:c,storeFieldName:u,storage:n.getStorage(e,u)}));d===ix?n.group.dirty(e,u):(d===iS&&(d=void 0),d!==l&&(i[u]=d,a=!0,l=d))}void 0!==l&&(o=!1)}}),a)return this.merge(e,i),o&&(this instanceof iL?this.data[e]=void 0:delete this.data[e],this.group.dirty(e,"__exists")),!0}return!1},e.prototype.delete=function(e,t,n){var r,i=this.lookup(e);if(i){var a=this.getFieldValue(i,"__typename"),o=t&&n?this.policies.getStoreFieldName({typename:a,fieldName:t,args:n}):t;return this.modify(e,o?((r={})[o]=ik,r):ik)}return!1},e.prototype.evict=function(e,t){var n=!1;return e.id&&(ic.call(this.data,e.id)&&(n=this.delete(e.id,e.fieldName,e.args)),this instanceof iL&&this!==t&&(n=this.parent.evict(e,t)||n),(e.fieldName||n)&&this.group.dirty(e.id,e.fieldName||"__exists")),n},e.prototype.clear=function(){this.replace(null)},e.prototype.extract=function(){var e=this,t=this.toObject(),n=[];return this.getRootIdSet().forEach(function(t){ic.call(e.policies.rootTypenamesById,t)||n.push(t)}),n.length&&(t.__META={extraRootIds:n.sort()}),t},e.prototype.replace=function(e){var t=this;if(Object.keys(this.data).forEach(function(n){e&&ic.call(e,n)||t.delete(n)}),e){var n=e.__META,r=(0,en._T)(e,["__META"]);Object.keys(r).forEach(function(e){t.merge(e,r[e])}),n&&n.extraRootIds.forEach(this.retain,this)}},e.prototype.retain=function(e){return this.rootIds[e]=(this.rootIds[e]||0)+1},e.prototype.release=function(e){if(this.rootIds[e]>0){var t=--this.rootIds[e];return t||delete this.rootIds[e],t}return 0},e.prototype.getRootIdSet=function(e){return void 0===e&&(e=new Set),Object.keys(this.rootIds).forEach(e.add,e),this instanceof iL?this.parent.getRootIdSet(e):Object.keys(this.policies.rootTypenamesById).forEach(e.add,e),e},e.prototype.gc=function(){var e=this,t=this.getRootIdSet(),n=this.toObject();t.forEach(function(r){ic.call(n,r)&&(Object.keys(e.findChildRefIds(r)).forEach(t.add,t),delete n[r])});var r=Object.keys(n);if(r.length){for(var i=this;i instanceof iL;)i=i.parent;r.forEach(function(e){return i.delete(e)})}return r},e.prototype.findChildRefIds=function(e){if(!ic.call(this.refs,e)){var t=this.refs[e]=Object.create(null),n=this.data[e];if(!n)return t;var r=new Set([n]);r.forEach(function(e){eD(e)&&(t[e.__ref]=!0),(0,eO.s)(e)&&Object.keys(e).forEach(function(t){var n=e[t];(0,eO.s)(n)&&r.add(n)})})}return this.refs[e]},e.prototype.makeCacheKey=function(){return this.group.keyMaker.lookupArray(arguments)},e}(),iM=function(){function e(e,t){void 0===t&&(t=null),this.caching=e,this.parent=t,this.d=null,this.resetCaching()}return e.prototype.resetCaching=function(){this.d=this.caching?rW():null,this.keyMaker=new n_(t_.mr)},e.prototype.depend=function(e,t){if(this.d){this.d(iO(e,t));var n=iv(t);n!==t&&this.d(iO(e,n)),this.parent&&this.parent.depend(e,t)}},e.prototype.dirty=function(e,t){this.d&&this.d.dirty(iO(e,t),"__exists"===t?"forget":"setDirty")},e}();function iO(e,t){return t+"#"+e}function iA(e,t){iD(e)&&e.group.depend(t,"__exists")}!function(e){var t=function(e){function t(t){var n=t.policies,r=t.resultCaching,i=void 0===r||r,a=t.seed,o=e.call(this,n,new iM(i))||this;return o.stump=new iC(o),o.storageTrie=new n_(t_.mr),a&&o.replace(a),o}return(0,en.ZT)(t,e),t.prototype.addLayer=function(e,t){return this.stump.addLayer(e,t)},t.prototype.removeLayer=function(){return this},t.prototype.getStorage=function(){return this.storageTrie.lookupArray(arguments)},t}(e);e.Root=t}(iT||(iT={}));var iL=function(e){function t(t,n,r,i){var a=e.call(this,n.policies,i)||this;return a.id=t,a.parent=n,a.replay=r,a.group=i,r(a),a}return(0,en.ZT)(t,e),t.prototype.addLayer=function(e,n){return new t(e,this,n,this.group)},t.prototype.removeLayer=function(e){var t=this,n=this.parent.removeLayer(e);return e===this.id?(this.group.caching&&Object.keys(this.data).forEach(function(e){var r=t.data[e],i=n.lookup(e);i?r?r!==i&&Object.keys(r).forEach(function(n){(0,nm.D)(r[n],i[n])||t.group.dirty(e,n)}):(t.group.dirty(e,"__exists"),Object.keys(i).forEach(function(n){t.group.dirty(e,n)})):t.delete(e)}),n):n===this.parent?this:n.addLayer(this.id,this.replay)},t.prototype.toObject=function(){return(0,en.pi)((0,en.pi)({},this.parent.toObject()),this.data)},t.prototype.findChildRefIds=function(t){var n=this.parent.findChildRefIds(t);return ic.call(this.data,t)?(0,en.pi)((0,en.pi)({},n),e.prototype.findChildRefIds.call(this,t)):n},t.prototype.getStorage=function(){for(var e=this.parent;e.parent;)e=e.parent;return e.getStorage.apply(e,arguments)},t}(iT),iC=function(e){function t(t){return e.call(this,"EntityStore.Stump",t,function(){},new iM(t.group.caching,t.group))||this}return(0,en.ZT)(t,e),t.prototype.removeLayer=function(){return this},t.prototype.merge=function(){return this.parent.merge.apply(this.parent,arguments)},t}(iL);function iI(e,t,n){var r=e[n],i=t[n];return(0,nm.D)(r,i)?r:i}function iD(e){return!!(e instanceof iT&&e.group.caching)}function iN(e){return[e.selectionSet,e.objectOrReference,e.context,e.context.canonizeResults,]}var iP=function(){function e(e){var t=this;this.knownResults=new(t_.mr?WeakMap:Map),this.config=(0,n1.o)(e,{addTypename:!1!==e.addTypename,canonizeResults:ib(e)}),this.canon=e.canon||new nk,this.executeSelectionSet=rZ(function(e){var n,r=e.context.canonizeResults,i=iN(e);i[3]=!r;var a=(n=t.executeSelectionSet).peek.apply(n,i);return a?r?(0,en.pi)((0,en.pi)({},a),{result:t.canon.admit(a.result)}):a:(iA(e.context.store,e.enclosingRef.__ref),t.execSelectionSetImpl(e))},{max:this.config.resultCacheMaxSize,keyArgs:iN,makeCacheKey:function(e,t,n,r){if(iD(n.store))return n.store.makeCacheKey(e,eD(t)?t.__ref:t,n.varString,r)}}),this.executeSubSelectedArray=rZ(function(e){return iA(e.context.store,e.enclosingRef.__ref),t.execSubSelectedArrayImpl(e)},{max:this.config.resultCacheMaxSize,makeCacheKey:function(e){var t=e.field,n=e.array,r=e.context;if(iD(r.store))return r.store.makeCacheKey(t,n,r.varString)}})}return e.prototype.resetCanon=function(){this.canon=new nk},e.prototype.diffQueryAgainstStore=function(e){var t,n=e.store,r=e.query,i=e.rootId,a=void 0===i?"ROOT_QUERY":i,o=e.variables,s=e.returnPartialData,u=void 0===s||s,c=e.canonizeResults,l=void 0===c?this.config.canonizeResults:c,f=this.config.cache.policies;o=(0,en.pi)((0,en.pi)({},e8(e5(r))),o);var d=eI(a),h=this.executeSelectionSet({selectionSet:e9(r).selectionSet,objectOrReference:d,enclosingRef:d,context:(0,en.pi)({store:n,query:r,policies:f,variables:o,varString:nx(o),canonizeResults:l},iE(r,this.config.fragments))});if(h.missing&&(t=[new is(iR(h.missing),h.missing,r,o)],!u))throw t[0];return{result:h.result,complete:!t,missing:t}},e.prototype.isFresh=function(e,t,n,r){if(iD(r.store)&&this.knownResults.get(e)===n){var i=this.executeSelectionSet.peek(n,t,r,this.canon.isKnown(e));if(i&&e===i.result)return!0}return!1},e.prototype.execSelectionSetImpl=function(e){var t,n=this,r=e.selectionSet,i=e.objectOrReference,a=e.enclosingRef,o=e.context;if(eD(i)&&!o.policies.rootTypenamesById[i.__ref]&&!o.store.has(i.__ref))return{result:this.canon.empty,missing:"Dangling reference to missing ".concat(i.__ref," object")};var s=o.variables,u=o.policies,c=o.store.getFieldValue(i,"__typename"),l=[],f=new tB;function d(e,n){var r;return e.missing&&(t=f.merge(t,((r={})[n]=e.missing,r))),e.result}this.config.addTypename&&"string"==typeof c&&!u.rootIdsByTypename[c]&&l.push({__typename:c});var h=new Set(r.selections);h.forEach(function(e){var r,p;if(td(e,s)){if(eQ(e)){var b=u.readField({fieldName:e.name.value,field:e,variables:o.variables,from:i},o),m=eX(e);void 0===b?nj.added(e)||(t=f.merge(t,((r={})[m]="Can't find field '".concat(e.name.value,"' on ").concat(eD(i)?i.__ref+" object":"object "+JSON.stringify(i,null,2)),r))):(0,tP.k)(b)?b=d(n.executeSubSelectedArray({field:e,array:b,enclosingRef:a,context:o}),m):e.selectionSet?null!=b&&(b=d(n.executeSelectionSet({selectionSet:e.selectionSet,objectOrReference:b,enclosingRef:eD(b)?b:a,context:o}),m)):o.canonizeResults&&(b=n.canon.pass(b)),void 0!==b&&l.push(((p={})[m]=b,p))}else{var g=eC(e,o.lookupFragment);if(!g&&e.kind===nL.h.FRAGMENT_SPREAD)throw __DEV__?new Q.ej("No fragment named ".concat(e.name.value)):new Q.ej(5);g&&u.fragmentMatches(g,c)&&g.selectionSet.selections.forEach(h.add,h)}}});var p={result:tF(l),missing:t},b=o.canonizeResults?this.canon.admit(p):(0,iu.J)(p);return b.result&&this.knownResults.set(b.result,r),b},e.prototype.execSubSelectedArrayImpl=function(e){var t,n=this,r=e.field,i=e.array,a=e.enclosingRef,o=e.context,s=new tB;function u(e,n){var r;return e.missing&&(t=s.merge(t,((r={})[n]=e.missing,r))),e.result}return r.selectionSet&&(i=i.filter(o.store.canRead)),i=i.map(function(e,t){return null===e?null:(0,tP.k)(e)?u(n.executeSubSelectedArray({field:r,array:e,enclosingRef:a,context:o}),t):r.selectionSet?u(n.executeSelectionSet({selectionSet:r.selectionSet,objectOrReference:e,enclosingRef:eD(e)?e:a,context:o}),t):(__DEV__&&ij(o.store,r,e),e)}),{result:o.canonizeResults?this.canon.admit(i):i,missing:t}},e}();function iR(e){try{JSON.stringify(e,function(e,t){if("string"==typeof t)throw t;return t})}catch(t){return t}}function ij(e,t,n){if(!t.selectionSet){var r=new Set([n]);r.forEach(function(n){(0,eO.s)(n)&&(__DEV__?(0,Q.kG)(!eD(n),"Missing selection set for object of type ".concat(im(e,n)," returned for query field ").concat(t.name.value)):(0,Q.kG)(!eD(n),6),Object.values(n).forEach(r.add,r))})}}function iF(e){var t=nG("stringifyForDisplay");return JSON.stringify(e,function(e,n){return void 0===n?t:n}).split(JSON.stringify(t)).join("")}var iY=Object.create(null);function iB(e){var t=JSON.stringify(e);return iY[t]||(iY[t]=Object.create(null))}function iU(e){var t=iB(e);return t.keyFieldsFn||(t.keyFieldsFn=function(t,n){var r=function(e,t){return n.readField(t,e)},i=n.keyObject=i$(e,function(e){var i=iW(n.storeObject,e,r);return void 0===i&&t!==n.storeObject&&ic.call(t,e[0])&&(i=iW(t,e,iG)),__DEV__?(0,Q.kG)(void 0!==i,"Missing field '".concat(e.join("."),"' while extracting keyFields from ").concat(JSON.stringify(t))):(0,Q.kG)(void 0!==i,2),i});return"".concat(n.typename,":").concat(JSON.stringify(i))})}function iH(e){var t=iB(e);return t.keyArgsFn||(t.keyArgsFn=function(t,n){var r=n.field,i=n.variables,a=n.fieldName,o=JSON.stringify(i$(e,function(e){var n=e[0],a=n.charAt(0);if("@"===a){if(r&&(0,tP.O)(r.directives)){var o=n.slice(1),s=r.directives.find(function(e){return e.name.value===o}),u=s&&eZ(s,i);return u&&iW(u,e.slice(1))}return}if("$"===a){var c=n.slice(1);if(i&&ic.call(i,c)){var l=e.slice(0);return l[0]=c,iW(i,l)}return}if(t)return iW(t,e)}));return(t||"{}"!==o)&&(a+=":"+o),a})}function i$(e,t){var n=new tB;return iz(e).reduce(function(e,r){var i,a=t(r);if(void 0!==a){for(var o=r.length-1;o>=0;--o)a=((i={})[r[o]]=a,i);e=n.merge(e,a)}return e},Object.create(null))}function iz(e){var t=iB(e);if(!t.paths){var n=t.paths=[],r=[];e.forEach(function(t,i){(0,tP.k)(t)?(iz(t).forEach(function(e){return n.push(r.concat(e))}),r.length=0):(r.push(t),(0,tP.k)(e[i+1])||(n.push(r.slice(0)),r.length=0))})}return t.paths}function iG(e,t){return e[t]}function iW(e,t,n){return n=n||iG,iK(t.reduce(function e(t,r){return(0,tP.k)(t)?t.map(function(t){return e(t,r)}):t&&n(t,r)},e))}function iK(e){return(0,eO.s)(e)?(0,tP.k)(e)?e.map(iK):i$(Object.keys(e).sort(),function(t){return iW(e,t)}):e}function iV(e){return void 0!==e.args?e.args:e.field?eZ(e.field,e.variables):null}eK.setStringify(nx);var iq=function(){},iZ=function(e,t){return t.fieldName},iX=function(e,t,n){return(0,n.mergeObjects)(e,t)},iJ=function(e,t){return t},iQ=function(){function e(e){this.config=e,this.typePolicies=Object.create(null),this.toBeAdded=Object.create(null),this.supertypeMap=new Map,this.fuzzySubtypes=new Map,this.rootIdsByTypename=Object.create(null),this.rootTypenamesById=Object.create(null),this.usingPossibleTypes=!1,this.config=(0,en.pi)({dataIdFromObject:id},e),this.cache=this.config.cache,this.setRootTypename("Query"),this.setRootTypename("Mutation"),this.setRootTypename("Subscription"),e.possibleTypes&&this.addPossibleTypes(e.possibleTypes),e.typePolicies&&this.addTypePolicies(e.typePolicies)}return e.prototype.identify=function(e,t){var n,r,i=this,a=t&&(t.typename||(null===(n=t.storeObject)||void 0===n?void 0:n.__typename))||e.__typename;if(a===this.rootTypenamesById.ROOT_QUERY)return["ROOT_QUERY"];for(var o=t&&t.storeObject||e,s=(0,en.pi)((0,en.pi)({},t),{typename:a,storeObject:o,readField:t&&t.readField||function(){var e=i0(arguments,o);return i.readField(e,{store:i.cache.data,variables:e.variables})}}),u=a&&this.getTypePolicy(a),c=u&&u.keyFn||this.config.dataIdFromObject;c;){var l=c((0,en.pi)((0,en.pi)({},e),o),s);if((0,tP.k)(l))c=iU(l);else{r=l;break}}return r=r?String(r):void 0,s.keyObject?[r,s.keyObject]:[r]},e.prototype.addTypePolicies=function(e){var t=this;Object.keys(e).forEach(function(n){var r=e[n],i=r.queryType,a=r.mutationType,o=r.subscriptionType,s=(0,en._T)(r,["queryType","mutationType","subscriptionType"]);i&&t.setRootTypename("Query",n),a&&t.setRootTypename("Mutation",n),o&&t.setRootTypename("Subscription",n),ic.call(t.toBeAdded,n)?t.toBeAdded[n].push(s):t.toBeAdded[n]=[s]})},e.prototype.updateTypePolicy=function(e,t){var n=this,r=this.getTypePolicy(e),i=t.keyFields,a=t.fields;function o(e,t){e.merge="function"==typeof t?t:!0===t?iX:!1===t?iJ:e.merge}o(r,t.merge),r.keyFn=!1===i?iq:(0,tP.k)(i)?iU(i):"function"==typeof i?i:r.keyFn,a&&Object.keys(a).forEach(function(t){var r=n.getFieldPolicy(e,t,!0),i=a[t];if("function"==typeof i)r.read=i;else{var s=i.keyArgs,u=i.read,c=i.merge;r.keyFn=!1===s?iZ:(0,tP.k)(s)?iH(s):"function"==typeof s?s:r.keyFn,"function"==typeof u&&(r.read=u),o(r,c)}r.read&&r.merge&&(r.keyFn=r.keyFn||iZ)})},e.prototype.setRootTypename=function(e,t){void 0===t&&(t=e);var n="ROOT_"+e.toUpperCase(),r=this.rootTypenamesById[n];t!==r&&(__DEV__?(0,Q.kG)(!r||r===e,"Cannot change root ".concat(e," __typename more than once")):(0,Q.kG)(!r||r===e,3),r&&delete this.rootIdsByTypename[r],this.rootIdsByTypename[t]=n,this.rootTypenamesById[n]=t)},e.prototype.addPossibleTypes=function(e){var t=this;this.usingPossibleTypes=!0,Object.keys(e).forEach(function(n){t.getSupertypeSet(n,!0),e[n].forEach(function(e){t.getSupertypeSet(e,!0).add(n);var r=e.match(ig);r&&r[0]===e||t.fuzzySubtypes.set(e,RegExp(e))})})},e.prototype.getTypePolicy=function(e){var t=this;if(!ic.call(this.typePolicies,e)){var n=this.typePolicies[e]=Object.create(null);n.fields=Object.create(null);var r=this.supertypeMap.get(e);r&&r.size&&r.forEach(function(e){var r=t.getTypePolicy(e),i=r.fields;Object.assign(n,(0,en._T)(r,["fields"])),Object.assign(n.fields,i)})}var i=this.toBeAdded[e];return i&&i.length&&i.splice(0).forEach(function(n){t.updateTypePolicy(e,n)}),this.typePolicies[e]},e.prototype.getFieldPolicy=function(e,t,n){if(e){var r=this.getTypePolicy(e).fields;return r[t]||n&&(r[t]=Object.create(null))}},e.prototype.getSupertypeSet=function(e,t){var n=this.supertypeMap.get(e);return!n&&t&&this.supertypeMap.set(e,n=new Set),n},e.prototype.fragmentMatches=function(e,t,n,r){var i=this;if(!e.typeCondition)return!0;if(!t)return!1;var a=e.typeCondition.name.value;if(t===a)return!0;if(this.usingPossibleTypes&&this.supertypeMap.has(a))for(var o=this.getSupertypeSet(t,!0),s=[o],u=function(e){var t=i.getSupertypeSet(e,!1);t&&t.size&&0>s.indexOf(t)&&s.push(t)},c=!!(n&&this.fuzzySubtypes.size),l=!1,f=0;f1?a:t}:(r=(0,en.pi)({},i),ic.call(r,"from")||(r.from=t)),__DEV__&&void 0===r.from&&__DEV__&&Q.kG.warn("Undefined 'from' passed to readField with arguments ".concat(iF(Array.from(e)))),void 0===r.variables&&(r.variables=n),r}function i2(e){return function(t,n){if((0,tP.k)(t)||(0,tP.k)(n))throw __DEV__?new Q.ej("Cannot automatically merge arrays"):new Q.ej(4);if((0,eO.s)(t)&&(0,eO.s)(n)){var r=e.getFieldValue(t,"__typename"),i=e.getFieldValue(n,"__typename");if(r&&i&&r!==i)return n;if(eD(t)&&iw(n))return e.merge(t.__ref,n),t;if(iw(t)&&eD(n))return e.merge(t,n.__ref),n;if(iw(t)&&iw(n))return(0,en.pi)((0,en.pi)({},t),n)}return n}}function i3(e,t,n){var r="".concat(t).concat(n),i=e.flavors.get(r);return i||e.flavors.set(r,i=e.clientOnly===t&&e.deferred===n?e:(0,en.pi)((0,en.pi)({},e),{clientOnly:t,deferred:n})),i}var i4=function(){function e(e,t,n){this.cache=e,this.reader=t,this.fragments=n}return e.prototype.writeToStore=function(e,t){var n=this,r=t.query,i=t.result,a=t.dataId,o=t.variables,s=t.overwrite,u=e2(r),c=i_();o=(0,en.pi)((0,en.pi)({},e8(u)),o);var l=(0,en.pi)((0,en.pi)({store:e,written:Object.create(null),merge:function(e,t){return c.merge(e,t)},variables:o,varString:nx(o)},iE(r,this.fragments)),{overwrite:!!s,incomingById:new Map,clientOnly:!1,deferred:!1,flavors:new Map}),f=this.processSelectionSet({result:i||Object.create(null),dataId:a,selectionSet:u.selectionSet,mergeTree:{map:new Map},context:l});if(!eD(f))throw __DEV__?new Q.ej("Could not identify object ".concat(JSON.stringify(i))):new Q.ej(7);return l.incomingById.forEach(function(t,r){var i=t.storeObject,a=t.mergeTree,o=t.fieldNodeSet,s=eI(r);if(a&&a.map.size){var u=n.applyMerges(a,s,i,l);if(eD(u))return;i=u}if(__DEV__&&!l.overwrite){var c=Object.create(null);o.forEach(function(e){e.selectionSet&&(c[e.name.value]=!0)});var f=function(e){return!0===c[iv(e)]},d=function(e){var t=a&&a.map.get(e);return Boolean(t&&t.info&&t.info.merge)};Object.keys(i).forEach(function(e){f(e)&&!d(e)&&at(s,i,e,l.store)})}e.merge(r,i)}),e.retain(f.__ref),f},e.prototype.processSelectionSet=function(e){var t=this,n=e.dataId,r=e.result,i=e.selectionSet,a=e.context,o=e.mergeTree,s=this.cache.policies,u=Object.create(null),c=n&&s.rootTypenamesById[n]||eJ(r,i,a.fragmentMap)||n&&a.store.get(n,"__typename");"string"==typeof c&&(u.__typename=c);var l=function(){var e=i0(arguments,u,a.variables);if(eD(e.from)){var t=a.incomingById.get(e.from.__ref);if(t){var n=s.readField((0,en.pi)((0,en.pi)({},e),{from:t.storeObject}),a);if(void 0!==n)return n}}return s.readField(e,a)},f=new Set;this.flattenFields(i,r,a,c).forEach(function(e,n){var i,a=r[eX(n)];if(f.add(n),void 0!==a){var d=s.getStoreFieldName({typename:c,fieldName:n.name.value,field:n,variables:e.variables}),h=i6(o,d),p=t.processFieldValue(a,n,n.selectionSet?i3(e,!1,!1):e,h),b=void 0;n.selectionSet&&(eD(p)||iw(p))&&(b=l("__typename",p));var m=s.getMergeFunction(c,n.name.value,b);m?h.info={field:n,typename:c,merge:m}:i7(o,d),u=e.merge(u,((i={})[d]=p,i))}else __DEV__&&!e.clientOnly&&!e.deferred&&!nj.added(n)&&!s.getReadFunction(c,n.name.value)&&__DEV__&&Q.kG.error("Missing field '".concat(eX(n),"' while writing result ").concat(JSON.stringify(r,null,2)).substring(0,1e3))});try{var d=s.identify(r,{typename:c,selectionSet:i,fragmentMap:a.fragmentMap,storeObject:u,readField:l}),h=d[0],p=d[1];n=n||h,p&&(u=a.merge(u,p))}catch(b){if(!n)throw b}if("string"==typeof n){var m=eI(n),g=a.written[n]||(a.written[n]=[]);if(g.indexOf(i)>=0||(g.push(i),this.reader&&this.reader.isFresh(r,m,i,a)))return m;var v=a.incomingById.get(n);return v?(v.storeObject=a.merge(v.storeObject,u),v.mergeTree=i9(v.mergeTree,o),f.forEach(function(e){return v.fieldNodeSet.add(e)})):a.incomingById.set(n,{storeObject:u,mergeTree:i8(o)?void 0:o,fieldNodeSet:f}),m}return u},e.prototype.processFieldValue=function(e,t,n,r){var i=this;return t.selectionSet&&null!==e?(0,tP.k)(e)?e.map(function(e,a){var o=i.processFieldValue(e,t,n,i6(r,a));return i7(r,a),o}):this.processSelectionSet({result:e,selectionSet:t.selectionSet,context:n,mergeTree:r}):__DEV__?nJ(e):e},e.prototype.flattenFields=function(e,t,n,r){void 0===r&&(r=eJ(t,e,n.fragmentMap));var i=new Map,a=this.cache.policies,o=new n_(!1);return function e(s,u){var c=o.lookup(s,u.clientOnly,u.deferred);c.visited||(c.visited=!0,s.selections.forEach(function(o){if(td(o,n.variables)){var s=u.clientOnly,c=u.deferred;if(!(s&&c)&&(0,tP.O)(o.directives)&&o.directives.forEach(function(e){var t=e.name.value;if("client"===t&&(s=!0),"defer"===t){var r=eZ(e,n.variables);r&&!1===r.if||(c=!0)}}),eQ(o)){var l=i.get(o);l&&(s=s&&l.clientOnly,c=c&&l.deferred),i.set(o,i3(n,s,c))}else{var f=eC(o,n.lookupFragment);if(!f&&o.kind===nL.h.FRAGMENT_SPREAD)throw __DEV__?new Q.ej("No fragment named ".concat(o.name.value)):new Q.ej(8);f&&a.fragmentMatches(f,r,t,n.variables)&&e(f.selectionSet,i3(n,s,c))}}}))}(e,n),i},e.prototype.applyMerges=function(e,t,n,r,i){var a=this;if(e.map.size&&!eD(n)){var o,s,u=!(0,tP.k)(n)&&(eD(t)||iw(t))?t:void 0,c=n;u&&!i&&(i=[eD(u)?u.__ref:u]);var l=function(e,t){return(0,tP.k)(e)?"number"==typeof t?e[t]:void 0:r.store.getFieldValue(e,String(t))};e.map.forEach(function(e,t){var n=l(u,t),o=l(c,t);if(void 0!==o){i&&i.push(t);var f=a.applyMerges(e,n,o,r,i);f!==o&&(s=s||new Map).set(t,f),i&&(0,Q.kG)(i.pop()===t)}}),s&&(n=(0,tP.k)(c)?c.slice(0):(0,en.pi)({},c),s.forEach(function(e,t){n[t]=e}))}return e.info?this.cache.policies.runMergeFunction(t,n,e.info,r,i&&(o=r.store).getStorage.apply(o,i)):n},e}(),i5=[];function i6(e,t){var n=e.map;return n.has(t)||n.set(t,i5.pop()||{map:new Map}),n.get(t)}function i9(e,t){if(e===t||!t||i8(t))return e;if(!e||i8(e))return t;var n=e.info&&t.info?(0,en.pi)((0,en.pi)({},e.info),t.info):e.info||t.info,r=e.map.size&&t.map.size,i=r?new Map:e.map.size?e.map:t.map,a={info:n,map:i};if(r){var o=new Set(t.map.keys());e.map.forEach(function(e,n){a.map.set(n,i9(e,t.map.get(n))),o.delete(n)}),o.forEach(function(n){a.map.set(n,i9(t.map.get(n),e.map.get(n)))})}return a}function i8(e){return!e||!(e.info||e.map.size)}function i7(e,t){var n=e.map,r=n.get(t);r&&i8(r)&&(i5.push(r),n.delete(t))}var ae=new Set;function at(e,t,n,r){var i=function(e){var t=r.getFieldValue(e,n);return"object"==typeof t&&t},a=i(e);if(a){var o=i(t);if(!(!o||eD(a)||(0,nm.D)(a,o)||Object.keys(a).every(function(e){return void 0!==r.getFieldValue(o,e)}))){var s=r.getFieldValue(e,"__typename")||r.getFieldValue(t,"__typename"),u=iv(n),c="".concat(s,".").concat(u);if(!ae.has(c)){ae.add(c);var l=[];(0,tP.k)(a)||(0,tP.k)(o)||[a,o].forEach(function(e){var t=r.getFieldValue(e,"__typename");"string"!=typeof t||l.includes(t)||l.push(t)}),__DEV__&&Q.kG.warn("Cache data may be lost when replacing the ".concat(u," field of a ").concat(s," object.\n\nThis could cause additional (usually avoidable) network requests to fetch data that were otherwise cached.\n\nTo address this problem (which is not a bug in Apollo Client), ").concat(l.length?"either ensure all objects of type "+l.join(" and ")+" have an ID or a custom merge function, or ":"","define a custom merge function for the ").concat(c," field, so InMemoryCache can safely merge these objects:\n\n existing: ").concat(JSON.stringify(a).slice(0,1e3),"\n incoming: ").concat(JSON.stringify(o).slice(0,1e3),"\n\nFor more information about these options, please refer to the documentation:\n\n * Ensuring entity objects have IDs: https://go.apollo.dev/c/generating-unique-identifiers\n * Defining custom merge functions: https://go.apollo.dev/c/merging-non-normalized-objects\n"))}}}}var an=function(e){function t(t){void 0===t&&(t={});var n=e.call(this)||this;return n.watches=new Set,n.typenameDocumentCache=new Map,n.makeVar=r2,n.txCount=0,n.config=ip(t),n.addTypename=!!n.config.addTypename,n.policies=new iQ({cache:n,dataIdFromObject:n.config.dataIdFromObject,possibleTypes:n.config.possibleTypes,typePolicies:n.config.typePolicies}),n.init(),n}return(0,en.ZT)(t,e),t.prototype.init=function(){var e=this.data=new iT.Root({policies:this.policies,resultCaching:this.config.resultCaching});this.optimisticData=e.stump,this.resetResultCache()},t.prototype.resetResultCache=function(e){var t=this,n=this.storeReader,r=this.config.fragments;this.storeWriter=new i4(this,this.storeReader=new iP({cache:this,addTypename:this.addTypename,resultCacheMaxSize:this.config.resultCacheMaxSize,canonizeResults:ib(this.config),canon:e?void 0:n&&n.canon,fragments:r}),r),this.maybeBroadcastWatch=rZ(function(e,n){return t.broadcastWatch(e,n)},{max:this.config.resultCacheMaxSize,makeCacheKey:function(e){var n=e.optimistic?t.optimisticData:t.data;if(iD(n)){var r=e.optimistic,i=e.id,a=e.variables;return n.makeCacheKey(e.query,e.callback,nx({optimistic:r,id:i,variables:a}))}}}),new Set([this.data.group,this.optimisticData.group,]).forEach(function(e){return e.resetCaching()})},t.prototype.restore=function(e){return this.init(),e&&this.data.replace(e),this},t.prototype.extract=function(e){return void 0===e&&(e=!1),(e?this.optimisticData:this.data).extract()},t.prototype.read=function(e){var t=e.returnPartialData,n=void 0!==t&&t;try{return this.storeReader.diffQueryAgainstStore((0,en.pi)((0,en.pi)({},e),{store:e.optimistic?this.optimisticData:this.data,config:this.config,returnPartialData:n})).result||null}catch(r){if(r instanceof is)return null;throw r}},t.prototype.write=function(e){try{return++this.txCount,this.storeWriter.writeToStore(this.data,e)}finally{--this.txCount||!1===e.broadcast||this.broadcastWatches()}},t.prototype.modify=function(e){if(ic.call(e,"id")&&!e.id)return!1;var t=e.optimistic?this.optimisticData:this.data;try{return++this.txCount,t.modify(e.id||"ROOT_QUERY",e.fields)}finally{--this.txCount||!1===e.broadcast||this.broadcastWatches()}},t.prototype.diff=function(e){return this.storeReader.diffQueryAgainstStore((0,en.pi)((0,en.pi)({},e),{store:e.optimistic?this.optimisticData:this.data,rootId:e.id||"ROOT_QUERY",config:this.config}))},t.prototype.watch=function(e){var t=this;return this.watches.size||r0(this),this.watches.add(e),e.immediate&&this.maybeBroadcastWatch(e),function(){t.watches.delete(e)&&!t.watches.size&&r1(t),t.maybeBroadcastWatch.forget(e)}},t.prototype.gc=function(e){nx.reset();var t=this.optimisticData.gc();return e&&!this.txCount&&(e.resetResultCache?this.resetResultCache(e.resetResultIdentities):e.resetResultIdentities&&this.storeReader.resetCanon()),t},t.prototype.retain=function(e,t){return(t?this.optimisticData:this.data).retain(e)},t.prototype.release=function(e,t){return(t?this.optimisticData:this.data).release(e)},t.prototype.identify=function(e){if(eD(e))return e.__ref;try{return this.policies.identify(e)[0]}catch(t){__DEV__&&Q.kG.warn(t)}},t.prototype.evict=function(e){if(!e.id){if(ic.call(e,"id"))return!1;e=(0,en.pi)((0,en.pi)({},e),{id:"ROOT_QUERY"})}try{return++this.txCount,this.optimisticData.evict(e,this.data)}finally{--this.txCount||!1===e.broadcast||this.broadcastWatches()}},t.prototype.reset=function(e){var t=this;return this.init(),nx.reset(),e&&e.discardWatches?(this.watches.forEach(function(e){return t.maybeBroadcastWatch.forget(e)}),this.watches.clear(),r1(this)):this.broadcastWatches(),Promise.resolve()},t.prototype.removeOptimistic=function(e){var t=this.optimisticData.removeLayer(e);t!==this.optimisticData&&(this.optimisticData=t,this.broadcastWatches())},t.prototype.batch=function(e){var t,n=this,r=e.update,i=e.optimistic,a=void 0===i||i,o=e.removeOptimistic,s=e.onWatchUpdated,u=function(e){var i=n,a=i.data,o=i.optimisticData;++n.txCount,e&&(n.data=n.optimisticData=e);try{return t=r(n)}finally{--n.txCount,n.data=a,n.optimisticData=o}},c=new Set;return s&&!this.txCount&&this.broadcastWatches((0,en.pi)((0,en.pi)({},e),{onWatchUpdated:function(e){return c.add(e),!1}})),"string"==typeof a?this.optimisticData=this.optimisticData.addLayer(a,u):!1===a?u(this.data):u(),"string"==typeof o&&(this.optimisticData=this.optimisticData.removeLayer(o)),s&&c.size?(this.broadcastWatches((0,en.pi)((0,en.pi)({},e),{onWatchUpdated:function(e,t){var n=s.call(this,e,t);return!1!==n&&c.delete(e),n}})),c.size&&c.forEach(function(e){return n.maybeBroadcastWatch.dirty(e)})):this.broadcastWatches(e),t},t.prototype.performTransaction=function(e,t){return this.batch({update:e,optimistic:t||null!==t})},t.prototype.transformDocument=function(e){if(this.addTypename){var t=this.typenameDocumentCache.get(e);return t||(t=nj(e),this.typenameDocumentCache.set(e,t),this.typenameDocumentCache.set(t,t)),t}return e},t.prototype.transformForLink=function(e){var t=this.config.fragments;return t?t.transform(e):e},t.prototype.broadcastWatches=function(e){var t=this;this.txCount||this.watches.forEach(function(n){return t.maybeBroadcastWatch(n,e)})},t.prototype.broadcastWatch=function(e,t){var n=e.lastDiff,r=this.diff(e);(!t||(e.optimistic&&"string"==typeof t.optimistic&&(r.fromOptimisticTransaction=!0),!t.onWatchUpdated||!1!==t.onWatchUpdated.call(this,e,r,n)))&&(n&&(0,nm.D)(n.result,r.result)||e.callback(e.lastDiff=r,n))},t}(io),ar={possibleTypes:{ApproveJobProposalSpecPayload:["ApproveJobProposalSpecSuccess","JobAlreadyExistsError","NotFoundError"],BridgePayload:["Bridge","NotFoundError"],CancelJobProposalSpecPayload:["CancelJobProposalSpecSuccess","NotFoundError"],ChainPayload:["Chain","NotFoundError"],CreateAPITokenPayload:["CreateAPITokenSuccess","InputErrors"],CreateBridgePayload:["CreateBridgeSuccess"],CreateCSAKeyPayload:["CSAKeyExistsError","CreateCSAKeySuccess"],CreateFeedsManagerChainConfigPayload:["CreateFeedsManagerChainConfigSuccess","InputErrors","NotFoundError"],CreateFeedsManagerPayload:["CreateFeedsManagerSuccess","InputErrors","NotFoundError","SingleFeedsManagerError"],CreateJobPayload:["CreateJobSuccess","InputErrors"],CreateOCR2KeyBundlePayload:["CreateOCR2KeyBundleSuccess"],CreateOCRKeyBundlePayload:["CreateOCRKeyBundleSuccess"],CreateP2PKeyPayload:["CreateP2PKeySuccess"],DeleteAPITokenPayload:["DeleteAPITokenSuccess","InputErrors"],DeleteBridgePayload:["DeleteBridgeConflictError","DeleteBridgeInvalidNameError","DeleteBridgeSuccess","NotFoundError"],DeleteCSAKeyPayload:["DeleteCSAKeySuccess","NotFoundError"],DeleteFeedsManagerChainConfigPayload:["DeleteFeedsManagerChainConfigSuccess","NotFoundError"],DeleteJobPayload:["DeleteJobSuccess","NotFoundError"],DeleteOCR2KeyBundlePayload:["DeleteOCR2KeyBundleSuccess","NotFoundError"],DeleteOCRKeyBundlePayload:["DeleteOCRKeyBundleSuccess","NotFoundError"],DeleteP2PKeyPayload:["DeleteP2PKeySuccess","NotFoundError"],DeleteVRFKeyPayload:["DeleteVRFKeySuccess","NotFoundError"],DismissJobErrorPayload:["DismissJobErrorSuccess","NotFoundError"],Error:["CSAKeyExistsError","DeleteBridgeConflictError","DeleteBridgeInvalidNameError","InputError","JobAlreadyExistsError","NotFoundError","RunJobCannotRunError","SingleFeedsManagerError"],EthTransactionPayload:["EthTransaction","NotFoundError"],FeaturesPayload:["Features"],FeedsManagerPayload:["FeedsManager","NotFoundError"],GetSQLLoggingPayload:["SQLLogging"],GlobalLogLevelPayload:["GlobalLogLevel"],JobPayload:["Job","NotFoundError"],JobProposalPayload:["JobProposal","NotFoundError"],JobRunPayload:["JobRun","NotFoundError"],JobSpec:["BlockHeaderFeederSpec","BlockhashStoreSpec","BootstrapSpec","CronSpec","DirectRequestSpec","FluxMonitorSpec","GatewaySpec","KeeperSpec","OCR2Spec","OCRSpec","VRFSpec","WebhookSpec","WorkflowSpec"],NodePayload:["Node","NotFoundError"],PaginatedPayload:["BridgesPayload","ChainsPayload","EthTransactionAttemptsPayload","EthTransactionsPayload","JobRunsPayload","JobsPayload","NodesPayload"],RejectJobProposalSpecPayload:["NotFoundError","RejectJobProposalSpecSuccess"],RunJobPayload:["NotFoundError","RunJobCannotRunError","RunJobSuccess"],SetGlobalLogLevelPayload:["InputErrors","SetGlobalLogLevelSuccess"],SetSQLLoggingPayload:["SetSQLLoggingSuccess"],SetServicesLogLevelsPayload:["InputErrors","SetServicesLogLevelsSuccess"],UpdateBridgePayload:["NotFoundError","UpdateBridgeSuccess"],UpdateFeedsManagerChainConfigPayload:["InputErrors","NotFoundError","UpdateFeedsManagerChainConfigSuccess"],UpdateFeedsManagerPayload:["InputErrors","NotFoundError","UpdateFeedsManagerSuccess"],UpdateJobProposalSpecDefinitionPayload:["NotFoundError","UpdateJobProposalSpecDefinitionSuccess"],UpdatePasswordPayload:["InputErrors","UpdatePasswordSuccess"],VRFKeyPayload:["NotFoundError","VRFKeySuccess"]}};let ai=ar;var aa=(r=void 0,location.origin),ao=new nh({uri:"".concat(aa,"/query"),credentials:"include"}),as=new ia({cache:new an({possibleTypes:ai.possibleTypes}),link:ao});if(a.Z.locale(o),u().defaultFormat="YYYY-MM-DD h:mm:ss A","undefined"!=typeof document){var au,ac,al=f().hydrate;ac=X,al(c.createElement(et,{client:as},c.createElement(d.zj,null,c.createElement(i.MuiThemeProvider,{theme:J.r},c.createElement(ac,null)))),document.getElementById("root"))}})()})(); \ No newline at end of file +`+(a!==i?`result of cast: ${a}`:""))}return r}_cast(e,t){let n=void 0===e?e:this.transforms.reduce((t,n)=>n.call(this,t,e,this),e);return void 0===n&&(n=this.getDefault()),n}_validate(e,t={},n){let{sync:r,path:i,from:a=[],originalValue:o=e,strict:s=this.spec.strict,abortEarly:u=this.spec.abortEarly}=t,c=e;s||(c=this._cast(c,pB({assert:!1},t)));let l={value:c,path:i,options:t,originalValue:o,schema:this,label:this.spec.label,sync:r,from:a},f=[];this._typeError&&f.push(this._typeError),this._whitelistError&&f.push(this._whitelistError),this._blacklistError&&f.push(this._blacklistError),pO({args:l,value:c,path:i,sync:r,tests:f,endEarly:u},e=>{if(e)return void n(e,c);pO({tests:this.tests,args:l,path:i,sync:r,value:c,endEarly:u},n)})}validate(e,t,n){let r=this.resolve(pB({},t,{value:e}));return"function"==typeof n?r._validate(e,t,n):new Promise((n,i)=>r._validate(e,t,(e,t)=>{e?i(e):n(t)}))}validateSync(e,t){let n;return this.resolve(pB({},t,{value:e}))._validate(e,pB({},t,{sync:!0}),(e,t)=>{if(e)throw e;n=t}),n}isValid(e,t){return this.validate(e,t).then(()=>!0,e=>{if(pT.isError(e))return!1;throw e})}isValidSync(e,t){try{return this.validateSync(e,t),!0}catch(n){if(pT.isError(n))return!1;throw n}}_getDefault(){let e=this.spec.default;return null==e?e:"function"==typeof e?e.call(this):pn(e)}getDefault(e){return this.resolve(e||{})._getDefault()}default(e){return 0===arguments.length?this._getDefault():this.clone({default:e})}strict(e=!0){var t=this.clone();return t.spec.strict=e,t}_isPresent(e){return null!=e}defined(e=pf.defined){return this.test({message:e,name:"defined",exclusive:!0,test:e=>void 0!==e})}required(e=pf.required){return this.clone({presence:"required"}).withMutation(t=>t.test({message:e,name:"required",exclusive:!0,test(e){return this.schema._isPresent(e)}}))}notRequired(){var e=this.clone({presence:"optional"});return e.tests=e.tests.filter(e=>"required"!==e.OPTIONS.name),e}nullable(e=!0){return this.clone({nullable:!1!==e})}transform(e){var t=this.clone();return t.transforms.push(e),t}test(...e){let t;if(void 0===(t=1===e.length?"function"==typeof e[0]?{test:e[0]}:e[0]:2===e.length?{name:e[0],test:e[1]}:{name:e[0],message:e[1],test:e[2]}).message&&(t.message=pf.default),"function"!=typeof t.test)throw TypeError("`test` is a required parameters");let n=this.clone(),r=pR(t),i=t.exclusive||t.name&&!0===n.exclusiveTests[t.name];if(t.exclusive&&!t.name)throw TypeError("Exclusive tests must provide a unique `name` identifying the test");return t.name&&(n.exclusiveTests[t.name]=!!t.exclusive),n.tests=n.tests.filter(e=>e.OPTIONS.name!==t.name||!i&&e.OPTIONS.test!==r.OPTIONS.test),n.tests.push(r),n}when(e,t){Array.isArray(e)||"string"==typeof e||(t=e,e=".");let n=this.clone(),r=pS(e).map(e=>new pD(e));return r.forEach(e=>{e.isSibling&&n.deps.push(e.key)}),n.conditions.push(new pE(r,t)),n}typeError(e){var t=this.clone();return t._typeError=pR({message:e,name:"typeError",test(e){return!!(void 0===e||this.schema.isType(e))||this.createError({params:{type:this.schema._type}})}}),t}oneOf(e,t=pf.oneOf){var n=this.clone();return e.forEach(e=>{n._whitelist.add(e),n._blacklist.delete(e)}),n._whitelistError=pR({message:t,name:"oneOf",test(e){if(void 0===e)return!0;let t=this.schema._whitelist;return!!t.has(e,this.resolve)||this.createError({params:{values:t.toArray().join(", ")}})}}),n}notOneOf(e,t=pf.notOneOf){var n=this.clone();return e.forEach(e=>{n._blacklist.add(e),n._whitelist.delete(e)}),n._blacklistError=pR({message:t,name:"notOneOf",test(e){let t=this.schema._blacklist;return!t.has(e,this.resolve)||this.createError({params:{values:t.toArray().join(", ")}})}}),n}strip(e=!0){let t=this.clone();return t.spec.strip=e,t}describe(){let e=this.clone(),{label:t,meta:n}=e.spec,r={meta:n,label:t,type:e.type,oneOf:e._whitelist.describe(),notOneOf:e._blacklist.describe(),tests:e.tests.map(e=>({name:e.OPTIONS.name,params:e.OPTIONS.params})).filter((e,t,n)=>n.findIndex(t=>t.name===e.name)===t)};return r}}for(let pH of(pU.prototype.__isYupSchema__=!0,["validate","validateSync"]))pU.prototype[`${pH}At`]=function(e,t,n={}){let{parent:r,parentPath:i,schema:a}=pF(this,e,t,n.context);return a[pH](r&&r[i],pB({},n,{parent:r,path:e}))};for(let p$ of["equals","is"])pU.prototype[p$]=pU.prototype.oneOf;for(let pz of["not","nope"])pU.prototype[pz]=pU.prototype.notOneOf;pU.prototype.optional=pU.prototype.notRequired;let pG=pU;function pW(){return new pG}pW.prototype=pG.prototype;let pK=e=>null==e;function pV(){return new pq}class pq extends pU{constructor(){super({type:"boolean"}),this.withMutation(()=>{this.transform(function(e){if(!this.isType(e)){if(/^(true|1)$/i.test(String(e)))return!0;if(/^(false|0)$/i.test(String(e)))return!1}return e})})}_typeCheck(e){return e instanceof Boolean&&(e=e.valueOf()),"boolean"==typeof e}isTrue(e=pb.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"true"},test:e=>pK(e)||!0===e})}isFalse(e=pb.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"false"},test:e=>pK(e)||!1===e})}}pV.prototype=pq.prototype;let pZ=/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i,pX=/^((https?|ftp):)?\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i,pJ=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i,pQ=e=>pK(e)||e===e.trim(),p1=({}).toString();function p0(){return new p2}class p2 extends pU{constructor(){super({type:"string"}),this.withMutation(()=>{this.transform(function(e){if(this.isType(e)||Array.isArray(e))return e;let t=null!=e&&e.toString?e.toString():e;return t===p1?e:t})})}_typeCheck(e){return e instanceof String&&(e=e.valueOf()),"string"==typeof e}_isPresent(e){return super._isPresent(e)&&!!e.length}length(e,t=pd.length){return this.test({message:t,name:"length",exclusive:!0,params:{length:e},test(t){return pK(t)||t.length===this.resolve(e)}})}min(e,t=pd.min){return this.test({message:t,name:"min",exclusive:!0,params:{min:e},test(t){return pK(t)||t.length>=this.resolve(e)}})}max(e,t=pd.max){return this.test({name:"max",exclusive:!0,message:t,params:{max:e},test(t){return pK(t)||t.length<=this.resolve(e)}})}matches(e,t){let n=!1,r,i;return t&&("object"==typeof t?{excludeEmptyString:n=!1,message:r,name:i}=t:r=t),this.test({name:i||"matches",message:r||pd.matches,params:{regex:e},test:t=>pK(t)||""===t&&n||-1!==t.search(e)})}email(e=pd.email){return this.matches(pZ,{name:"email",message:e,excludeEmptyString:!0})}url(e=pd.url){return this.matches(pX,{name:"url",message:e,excludeEmptyString:!0})}uuid(e=pd.uuid){return this.matches(pJ,{name:"uuid",message:e,excludeEmptyString:!1})}ensure(){return this.default("").transform(e=>null===e?"":e)}trim(e=pd.trim){return this.transform(e=>null!=e?e.trim():e).test({message:e,name:"trim",test:pQ})}lowercase(e=pd.lowercase){return this.transform(e=>pK(e)?e:e.toLowerCase()).test({message:e,name:"string_case",exclusive:!0,test:e=>pK(e)||e===e.toLowerCase()})}uppercase(e=pd.uppercase){return this.transform(e=>pK(e)?e:e.toUpperCase()).test({message:e,name:"string_case",exclusive:!0,test:e=>pK(e)||e===e.toUpperCase()})}}p0.prototype=p2.prototype;let p3=e=>e!=+e;function p4(){return new p6}class p6 extends pU{constructor(){super({type:"number"}),this.withMutation(()=>{this.transform(function(e){let t=e;if("string"==typeof t){if(""===(t=t.replace(/\s/g,"")))return NaN;t=+t}return this.isType(t)?t:parseFloat(t)})})}_typeCheck(e){return e instanceof Number&&(e=e.valueOf()),"number"==typeof e&&!p3(e)}min(e,t=ph.min){return this.test({message:t,name:"min",exclusive:!0,params:{min:e},test(t){return pK(t)||t>=this.resolve(e)}})}max(e,t=ph.max){return this.test({message:t,name:"max",exclusive:!0,params:{max:e},test(t){return pK(t)||t<=this.resolve(e)}})}lessThan(e,t=ph.lessThan){return this.test({message:t,name:"max",exclusive:!0,params:{less:e},test(t){return pK(t)||tthis.resolve(e)}})}positive(e=ph.positive){return this.moreThan(0,e)}negative(e=ph.negative){return this.lessThan(0,e)}integer(e=ph.integer){return this.test({name:"integer",message:e,test:e=>pK(e)||Number.isInteger(e)})}truncate(){return this.transform(e=>pK(e)?e:0|e)}round(e){var t,n=["ceil","floor","round","trunc"];if("trunc"===(e=(null==(t=e)?void 0:t.toLowerCase())||"round"))return this.truncate();if(-1===n.indexOf(e.toLowerCase()))throw TypeError("Only valid options for round() are: "+n.join(", "));return this.transform(t=>pK(t)?t:Math[e](t))}}p4.prototype=p6.prototype;var p5=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;function p8(e){var t,n,r=[1,4,5,6,7,10,11],i=0;if(n=p5.exec(e)){for(var a,o=0;a=r[o];++o)n[a]=+n[a]||0;n[2]=(+n[2]||1)-1,n[3]=+n[3]||1,n[7]=n[7]?String(n[7]).substr(0,3):0,(void 0===n[8]||""===n[8])&&(void 0===n[9]||""===n[9])?t=+new Date(n[1],n[2],n[3],n[4],n[5],n[6],n[7]):("Z"!==n[8]&&void 0!==n[9]&&(i=60*n[10]+n[11],"+"===n[9]&&(i=0-i)),t=Date.UTC(n[1],n[2],n[3],n[4],n[5]+i,n[6],n[7]))}else t=Date.parse?Date.parse(e):NaN;return t}let p9=new Date(""),p7=e=>"[object Date]"===Object.prototype.toString.call(e);function be(){return new bt}class bt extends pU{constructor(){super({type:"date"}),this.withMutation(()=>{this.transform(function(e){return this.isType(e)?e:(e=p8(e),isNaN(e)?p9:new Date(e))})})}_typeCheck(e){return p7(e)&&!isNaN(e.getTime())}prepareParam(e,t){let n;if(pD.isRef(e))n=e;else{let r=this.cast(e);if(!this._typeCheck(r))throw TypeError(`\`${t}\` must be a Date or a value that can be \`cast()\` to a Date`);n=r}return n}min(e,t=pp.min){let n=this.prepareParam(e,"min");return this.test({message:t,name:"min",exclusive:!0,params:{min:e},test(e){return pK(e)||e>=this.resolve(n)}})}max(e,t=pp.max){var n=this.prepareParam(e,"max");return this.test({message:t,name:"max",exclusive:!0,params:{max:e},test(e){return pK(e)||e<=this.resolve(n)}})}}bt.INVALID_DATE=p9,be.prototype=bt.prototype,be.INVALID_DATE=p9;var bn=n(11865),br=n.n(bn),bi=n(68929),ba=n.n(bi),bo=n(67523),bs=n.n(bo),bu=n(94633),bc=n.n(bu);function bl(e,t=[]){let n=[],r=[];function i(e,i){var a=(0,pC.split)(e)[0];~r.indexOf(a)||r.push(a),~t.indexOf(`${i}-${a}`)||n.push([i,a])}for(let a in e)if(py()(e,a)){let o=e[a];~r.indexOf(a)||r.push(a),pD.isRef(o)&&o.isSibling?i(o.path,a):pw(o)&&"deps"in o&&o.deps.forEach(e=>i(e,a))}return bc().array(r,n).reverse()}function bf(e,t){let n=1/0;return e.some((e,r)=>{var i;if((null==(i=t.path)?void 0:i.indexOf(e))!==-1)return n=r,!0}),n}function bd(e){return(t,n)=>bf(e,t)-bf(e,n)}function bh(){return(bh=Object.assign||function(e){for(var t=1;t"[object Object]"===Object.prototype.toString.call(e);function bb(e,t){let n=Object.keys(e.fields);return Object.keys(t).filter(e=>-1===n.indexOf(e))}let bm=bd([]);class bg extends pU{constructor(e){super({type:"object"}),this.fields=Object.create(null),this._sortErrors=bm,this._nodes=[],this._excludedEdges=[],this.withMutation(()=>{this.transform(function(e){if("string"==typeof e)try{e=JSON.parse(e)}catch(t){e=null}return this.isType(e)?e:null}),e&&this.shape(e)})}_typeCheck(e){return bp(e)||"function"==typeof e}_cast(e,t={}){var n;let r=super._cast(e,t);if(void 0===r)return this.getDefault();if(!this._typeCheck(r))return r;let i=this.fields,a=null!=(n=t.stripUnknown)?n:this.spec.noUnknown,o=this._nodes.concat(Object.keys(r).filter(e=>-1===this._nodes.indexOf(e))),s={},u=bh({},t,{parent:s,__validating:t.__validating||!1}),c=!1;for(let l of o){let f=i[l],d=py()(r,l);if(f){let h,p=r[l];u.path=(t.path?`${t.path}.`:"")+l;let b="spec"in(f=f.resolve({value:p,context:t.context,parent:s}))?f.spec:void 0,m=null==b?void 0:b.strict;if(null==b?void 0:b.strip){c=c||l in r;continue}void 0!==(h=t.__validating&&m?r[l]:f.cast(r[l],u))&&(s[l]=h)}else d&&!a&&(s[l]=r[l]);s[l]!==r[l]&&(c=!0)}return c?s:r}_validate(e,t={},n){let r=[],{sync:i,from:a=[],originalValue:o=e,abortEarly:s=this.spec.abortEarly,recursive:u=this.spec.recursive}=t;a=[{schema:this,value:o},...a],t.__validating=!0,t.originalValue=o,t.from=a,super._validate(e,t,(e,c)=>{if(e){if(!pT.isError(e)||s)return void n(e,c);r.push(e)}if(!u||!bp(c)){n(r[0]||null,c);return}o=o||c;let l=this._nodes.map(e=>(n,r)=>{let i=-1===e.indexOf(".")?(t.path?`${t.path}.`:"")+e:`${t.path||""}["${e}"]`,s=this.fields[e];if(s&&"validate"in s){s.validate(c[e],bh({},t,{path:i,from:a,strict:!0,parent:c,originalValue:o[e]}),r);return}r(null)});pO({sync:i,tests:l,value:c,errors:r,endEarly:s,sort:this._sortErrors,path:t.path},n)})}clone(e){let t=super.clone(e);return t.fields=bh({},this.fields),t._nodes=this._nodes,t._excludedEdges=this._excludedEdges,t._sortErrors=this._sortErrors,t}concat(e){let t=super.concat(e),n=t.fields;for(let[r,i]of Object.entries(this.fields)){let a=n[r];void 0===a?n[r]=i:a instanceof pU&&i instanceof pU&&(n[r]=i.concat(a))}return t.withMutation(()=>t.shape(n))}getDefaultFromShape(){let e={};return this._nodes.forEach(t=>{let n=this.fields[t];e[t]="default"in n?n.getDefault():void 0}),e}_getDefault(){return"default"in this.spec?super._getDefault():this._nodes.length?this.getDefaultFromShape():void 0}shape(e,t=[]){let n=this.clone(),r=Object.assign(n.fields,e);if(n.fields=r,n._sortErrors=bd(Object.keys(r)),t.length){Array.isArray(t[0])||(t=[t]);let i=t.map(([e,t])=>`${e}-${t}`);n._excludedEdges=n._excludedEdges.concat(i)}return n._nodes=bl(r,n._excludedEdges),n}pick(e){let t={};for(let n of e)this.fields[n]&&(t[n]=this.fields[n]);return this.clone().withMutation(e=>(e.fields={},e.shape(t)))}omit(e){let t=this.clone(),n=t.fields;for(let r of(t.fields={},e))delete n[r];return t.withMutation(()=>t.shape(n))}from(e,t,n){let r=(0,pC.getter)(e,!0);return this.transform(i=>{if(null==i)return i;let a=i;return py()(i,e)&&(a=bh({},i),n||delete a[e],a[t]=r(i)),a})}noUnknown(e=!0,t=pm.noUnknown){"string"==typeof e&&(t=e,e=!0);let n=this.test({name:"noUnknown",exclusive:!0,message:t,test(t){if(null==t)return!0;let n=bb(this.schema,t);return!e||0===n.length||this.createError({params:{unknown:n.join(", ")}})}});return n.spec.noUnknown=e,n}unknown(e=!0,t=pm.noUnknown){return this.noUnknown(!e,t)}transformKeys(e){return this.transform(t=>t&&bs()(t,(t,n)=>e(n)))}camelCase(){return this.transformKeys(ba())}snakeCase(){return this.transformKeys(br())}constantCase(){return this.transformKeys(e=>br()(e).toUpperCase())}describe(){let e=super.describe();return e.fields=pL()(this.fields,e=>e.describe()),e}}function bv(e){return new bg(e)}function by(){return(by=Object.assign||function(e){for(var t=1;t{this.transform(function(e){if("string"==typeof e)try{e=JSON.parse(e)}catch(t){e=null}return this.isType(e)?e:null})})}_typeCheck(e){return Array.isArray(e)}get _subType(){return this.innerType}_cast(e,t){let n=super._cast(e,t);if(!this._typeCheck(n)||!this.innerType)return n;let r=!1,i=n.map((e,n)=>{let i=this.innerType.cast(e,by({},t,{path:`${t.path||""}[${n}]`}));return i!==e&&(r=!0),i});return r?i:n}_validate(e,t={},n){var r,i;let a=[],o=t.sync,s=t.path,u=this.innerType,c=null!=(r=t.abortEarly)?r:this.spec.abortEarly,l=null!=(i=t.recursive)?i:this.spec.recursive,f=null!=t.originalValue?t.originalValue:e;super._validate(e,t,(e,r)=>{if(e){if(!pT.isError(e)||c)return void n(e,r);a.push(e)}if(!l||!u||!this._typeCheck(r)){n(a[0]||null,r);return}f=f||r;let i=Array(r.length);for(let d=0;du.validate(h,b,t)}pO({sync:o,path:s,value:r,errors:a,endEarly:c,tests:i},n)})}clone(e){let t=super.clone(e);return t.innerType=this.innerType,t}concat(e){let t=super.concat(e);return t.innerType=this.innerType,e.innerType&&(t.innerType=t.innerType?t.innerType.concat(e.innerType):e.innerType),t}of(e){let t=this.clone();if(!pw(e))throw TypeError("`array.of()` sub-schema must be a valid yup schema not: "+pl(e));return t.innerType=e,t}length(e,t=pg.length){return this.test({message:t,name:"length",exclusive:!0,params:{length:e},test(t){return pK(t)||t.length===this.resolve(e)}})}min(e,t){return t=t||pg.min,this.test({message:t,name:"min",exclusive:!0,params:{min:e},test(t){return pK(t)||t.length>=this.resolve(e)}})}max(e,t){return t=t||pg.max,this.test({message:t,name:"max",exclusive:!0,params:{max:e},test(t){return pK(t)||t.length<=this.resolve(e)}})}ensure(){return this.default(()=>[]).transform((e,t)=>this._typeCheck(e)?e:null==t?[]:[].concat(t))}compact(e){let t=e?(t,n,r)=>!e(t,n,r):e=>!!e;return this.transform(e=>null!=e?e.filter(t):e)}describe(){let e=super.describe();return this.innerType&&(e.innerType=this.innerType.describe()),e}nullable(e=!0){return super.nullable(e)}defined(){return super.defined()}required(e){return super.required(e)}}bw.prototype=b_.prototype;var bE=bv().shape({name:p0().required("Required"),url:p0().required("Required")}),bS=function(e){var t=e.initialValues,n=e.onSubmit,r=e.submitButtonText,i=e.nameDisabled,a=void 0!==i&&i;return l.createElement(hT,{initialValues:t,validationSchema:bE,onSubmit:n},function(e){var t=e.isSubmitting;return l.createElement(l.Fragment,null,l.createElement(hR,{"data-testid":"bridge-form",noValidate:!0},l.createElement(d.Z,{container:!0,spacing:16},l.createElement(d.Z,{item:!0,xs:12,md:7},l.createElement(hP,{component:hX,id:"name",name:"name",label:"Name",disabled:a,required:!0,fullWidth:!0,FormHelperTextProps:{"data-testid":"name-helper-text"}})),l.createElement(d.Z,{item:!0,xs:12,md:7},l.createElement(hP,{component:hX,id:"url",name:"url",label:"Bridge URL",placeholder:"https://",required:!0,fullWidth:!0,FormHelperTextProps:{"data-testid":"url-helper-text"}})),l.createElement(d.Z,{item:!0,xs:12,md:7},l.createElement(d.Z,{container:!0,spacing:16},l.createElement(d.Z,{item:!0,xs:7},l.createElement(hP,{component:hX,id:"minimumContractPayment",name:"minimumContractPayment",label:"Minimum Contract Payment",placeholder:"0",fullWidth:!0,inputProps:{min:0},FormHelperTextProps:{"data-testid":"minimumContractPayment-helper-text"}})),l.createElement(d.Z,{item:!0,xs:7},l.createElement(hP,{component:hX,id:"confirmations",name:"confirmations",label:"Confirmations",placeholder:"0",type:"number",fullWidth:!0,inputProps:{min:0},FormHelperTextProps:{"data-testid":"confirmations-helper-text"}})))),l.createElement(d.Z,{item:!0,xs:12,md:7},l.createElement(ok.default,{variant:"contained",color:"primary",type:"submit",disabled:t,size:"large"},r)))))})},bk=function(e){var t=e.bridge,n=e.onSubmit,r={name:t.name,url:t.url,minimumContractPayment:t.minimumContractPayment,confirmations:t.confirmations};return l.createElement(ig,null,l.createElement(d.Z,{container:!0,spacing:40},l.createElement(d.Z,{item:!0,xs:12,md:11,lg:9},l.createElement(r5.Z,null,l.createElement(sl.Z,{title:"Edit Bridge",action:l.createElement(aA.Z,{component:tz,href:"/bridges/".concat(t.id)},"Cancel")}),l.createElement(aW.Z,null,l.createElement(bS,{nameDisabled:!0,initialValues:r,onSubmit:n,submitButtonText:"Save Bridge"}))))))};function bx(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&void 0!==arguments[0]&&arguments[0],t=e?function(){return l.createElement(x.default,{variant:"body1"},"Loading...")}:function(){return null};return{isLoading:e,LoadingPlaceholder:t}},mc=n(76023);function ml(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function mB(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n=4?[e[0],e[1],e[2],e[3],"".concat(e[0],".").concat(e[1]),"".concat(e[0],".").concat(e[2]),"".concat(e[0],".").concat(e[3]),"".concat(e[1],".").concat(e[0]),"".concat(e[1],".").concat(e[2]),"".concat(e[1],".").concat(e[3]),"".concat(e[2],".").concat(e[0]),"".concat(e[2],".").concat(e[1]),"".concat(e[2],".").concat(e[3]),"".concat(e[3],".").concat(e[0]),"".concat(e[3],".").concat(e[1]),"".concat(e[3],".").concat(e[2]),"".concat(e[0],".").concat(e[1],".").concat(e[2]),"".concat(e[0],".").concat(e[1],".").concat(e[3]),"".concat(e[0],".").concat(e[2],".").concat(e[1]),"".concat(e[0],".").concat(e[2],".").concat(e[3]),"".concat(e[0],".").concat(e[3],".").concat(e[1]),"".concat(e[0],".").concat(e[3],".").concat(e[2]),"".concat(e[1],".").concat(e[0],".").concat(e[2]),"".concat(e[1],".").concat(e[0],".").concat(e[3]),"".concat(e[1],".").concat(e[2],".").concat(e[0]),"".concat(e[1],".").concat(e[2],".").concat(e[3]),"".concat(e[1],".").concat(e[3],".").concat(e[0]),"".concat(e[1],".").concat(e[3],".").concat(e[2]),"".concat(e[2],".").concat(e[0],".").concat(e[1]),"".concat(e[2],".").concat(e[0],".").concat(e[3]),"".concat(e[2],".").concat(e[1],".").concat(e[0]),"".concat(e[2],".").concat(e[1],".").concat(e[3]),"".concat(e[2],".").concat(e[3],".").concat(e[0]),"".concat(e[2],".").concat(e[3],".").concat(e[1]),"".concat(e[3],".").concat(e[0],".").concat(e[1]),"".concat(e[3],".").concat(e[0],".").concat(e[2]),"".concat(e[3],".").concat(e[1],".").concat(e[0]),"".concat(e[3],".").concat(e[1],".").concat(e[2]),"".concat(e[3],".").concat(e[2],".").concat(e[0]),"".concat(e[3],".").concat(e[2],".").concat(e[1]),"".concat(e[0],".").concat(e[1],".").concat(e[2],".").concat(e[3]),"".concat(e[0],".").concat(e[1],".").concat(e[3],".").concat(e[2]),"".concat(e[0],".").concat(e[2],".").concat(e[1],".").concat(e[3]),"".concat(e[0],".").concat(e[2],".").concat(e[3],".").concat(e[1]),"".concat(e[0],".").concat(e[3],".").concat(e[1],".").concat(e[2]),"".concat(e[0],".").concat(e[3],".").concat(e[2],".").concat(e[1]),"".concat(e[1],".").concat(e[0],".").concat(e[2],".").concat(e[3]),"".concat(e[1],".").concat(e[0],".").concat(e[3],".").concat(e[2]),"".concat(e[1],".").concat(e[2],".").concat(e[0],".").concat(e[3]),"".concat(e[1],".").concat(e[2],".").concat(e[3],".").concat(e[0]),"".concat(e[1],".").concat(e[3],".").concat(e[0],".").concat(e[2]),"".concat(e[1],".").concat(e[3],".").concat(e[2],".").concat(e[0]),"".concat(e[2],".").concat(e[0],".").concat(e[1],".").concat(e[3]),"".concat(e[2],".").concat(e[0],".").concat(e[3],".").concat(e[1]),"".concat(e[2],".").concat(e[1],".").concat(e[0],".").concat(e[3]),"".concat(e[2],".").concat(e[1],".").concat(e[3],".").concat(e[0]),"".concat(e[2],".").concat(e[3],".").concat(e[0],".").concat(e[1]),"".concat(e[2],".").concat(e[3],".").concat(e[1],".").concat(e[0]),"".concat(e[3],".").concat(e[0],".").concat(e[1],".").concat(e[2]),"".concat(e[3],".").concat(e[0],".").concat(e[2],".").concat(e[1]),"".concat(e[3],".").concat(e[1],".").concat(e[0],".").concat(e[2]),"".concat(e[3],".").concat(e[1],".").concat(e[2],".").concat(e[0]),"".concat(e[3],".").concat(e[2],".").concat(e[0],".").concat(e[1]),"".concat(e[3],".").concat(e[2],".").concat(e[1],".").concat(e[0])]:void 0}var mZ={};function mX(e){if(0===e.length||1===e.length)return e;var t=e.join(".");return mZ[t]||(mZ[t]=mq(e)),mZ[t]}function mJ(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0;return mX(e.filter(function(e){return"token"!==e})).reduce(function(e,t){return mK({},e,n[t])},t)}function mQ(e){return e.join(" ")}function m1(e,t){var n=0;return function(r){return n+=1,r.map(function(r,i){return m0({node:r,stylesheet:e,useInlineStyles:t,key:"code-segment-".concat(n,"-").concat(i)})})}}function m0(e){var t=e.node,n=e.stylesheet,r=e.style,i=void 0===r?{}:r,a=e.useInlineStyles,o=e.key,s=t.properties,u=t.type,c=t.tagName,f=t.value;if("text"===u)return f;if(c){var d,h=m1(n,a);if(a){var p=Object.keys(n).reduce(function(e,t){return t.split(".").forEach(function(t){e.includes(t)||e.push(t)}),e},[]),b=s.className&&s.className.includes("token")?["token"]:[],m=s.className&&b.concat(s.className.filter(function(e){return!p.includes(e)}));d=mK({},s,{className:mQ(m)||void 0,style:mJ(s.className,Object.assign({},s.style,i),n)})}else d=mK({},s,{className:mQ(s.className)});var g=h(t.children);return l.createElement(c,(0,mV.Z)({key:o},d),g)}}let m2=function(e,t){return -1!==e.listLanguages().indexOf(t)};var m3=/\n/g;function m4(e){return e.match(m3)}function m6(e){var t=e.lines,n=e.startingLineNumber,r=e.style;return t.map(function(e,t){var i=t+n;return l.createElement("span",{key:"line-".concat(t),className:"react-syntax-highlighter-line-number",style:"function"==typeof r?r(i):r},"".concat(i,"\n"))})}function m5(e){var t=e.codeString,n=e.codeStyle,r=e.containerStyle,i=void 0===r?{float:"left",paddingRight:"10px"}:r,a=e.numberStyle,o=void 0===a?{}:a,s=e.startingLineNumber;return l.createElement("code",{style:Object.assign({},n,i)},m6({lines:t.replace(/\n$/,"").split("\n"),style:o,startingLineNumber:s}))}function m8(e){return"".concat(e.toString().length,".25em")}function m9(e,t){return{type:"element",tagName:"span",properties:{key:"line-number--".concat(e),className:["comment","linenumber","react-syntax-highlighter-line-number"],style:t},children:[{type:"text",value:e}]}}function m7(e,t,n){var r,i={display:"inline-block",minWidth:m8(n),paddingRight:"1em",textAlign:"right",userSelect:"none"};return mK({},i,"function"==typeof e?e(t):e)}function ge(e){var t=e.children,n=e.lineNumber,r=e.lineNumberStyle,i=e.largestLineNumber,a=e.showInlineLineNumbers,o=e.lineProps,s=void 0===o?{}:o,u=e.className,c=void 0===u?[]:u,l=e.showLineNumbers,f=e.wrapLongLines,d="function"==typeof s?s(n):s;if(d.className=c,n&&a){var h=m7(r,n,i);t.unshift(m9(n,h))}return f&l&&(d.style=mK({},d.style,{display:"flex"})),{type:"element",tagName:"span",properties:d,children:t}}function gt(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],r=0;r2&&void 0!==arguments[2]?arguments[2]:[];return ge({children:e,lineNumber:t,lineNumberStyle:s,largestLineNumber:o,showInlineLineNumbers:i,lineProps:n,className:a,showLineNumbers:r,wrapLongLines:u})}function b(e,t){if(r&&t&&i){var n=m7(s,t,o);e.unshift(m9(t,n))}return e}function m(e,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];return t||r.length>0?p(e,n,r):b(e,n)}for(var g=function(){var e=l[h],t=e.children[0].value;if(m4(t)){var n=t.split("\n");n.forEach(function(t,i){var o=r&&f.length+a,s={type:"text",value:"".concat(t,"\n")};if(0===i){var u=l.slice(d+1,h).concat(ge({children:[s],className:e.properties.className})),c=m(u,o);f.push(c)}else if(i===n.length-1){if(l[h+1]&&l[h+1].children&&l[h+1].children[0]){var p={type:"text",value:"".concat(t)},b=ge({children:[p],className:e.properties.className});l.splice(h+1,0,b)}else{var g=[s],v=m(g,o,e.properties.className);f.push(v)}}else{var y=[s],w=m(y,o,e.properties.className);f.push(w)}}),d=h}h++};h code[class*="language-"]':{background:"#f5f2f0",padding:".1em",borderRadius:".3em",whiteSpace:"normal"},comment:{color:"slategray"},prolog:{color:"slategray"},doctype:{color:"slategray"},cdata:{color:"slategray"},punctuation:{color:"#999"},namespace:{Opacity:".7"},property:{color:"#905"},tag:{color:"#905"},boolean:{color:"#905"},number:{color:"#905"},constant:{color:"#905"},symbol:{color:"#905"},deleted:{color:"#905"},selector:{color:"#690"},"attr-name":{color:"#690"},string:{color:"#690"},char:{color:"#690"},builtin:{color:"#690"},inserted:{color:"#690"},operator:{color:"#9a6e3a",background:"hsla(0, 0%, 100%, .5)"},entity:{color:"#9a6e3a",background:"hsla(0, 0%, 100%, .5)",cursor:"help"},url:{color:"#9a6e3a",background:"hsla(0, 0%, 100%, .5)"},".language-css .token.string":{color:"#9a6e3a",background:"hsla(0, 0%, 100%, .5)"},".style .token.string":{color:"#9a6e3a",background:"hsla(0, 0%, 100%, .5)"},atrule:{color:"#07a"},"attr-value":{color:"#07a"},keyword:{color:"#07a"},function:{color:"#DD4A68"},"class-name":{color:"#DD4A68"},regex:{color:"#e90"},important:{color:"#e90",fontWeight:"bold"},variable:{color:"#e90"},bold:{fontWeight:"bold"},italic:{fontStyle:"italic"}};var gu=n(98695),gc=n.n(gu);let gl=["abap","abnf","actionscript","ada","agda","al","antlr4","apacheconf","apl","applescript","aql","arduino","arff","asciidoc","asm6502","aspnet","autohotkey","autoit","bash","basic","batch","bbcode","birb","bison","bnf","brainfuck","brightscript","bro","bsl","c","cil","clike","clojure","cmake","coffeescript","concurnas","cpp","crystal","csharp","csp","css-extras","css","cypher","d","dart","dax","dhall","diff","django","dns-zone-file","docker","ebnf","editorconfig","eiffel","ejs","elixir","elm","erb","erlang","etlua","excel-formula","factor","firestore-security-rules","flow","fortran","fsharp","ftl","gcode","gdscript","gedcom","gherkin","git","glsl","gml","go","graphql","groovy","haml","handlebars","haskell","haxe","hcl","hlsl","hpkp","hsts","http","ichigojam","icon","iecst","ignore","inform7","ini","io","j","java","javadoc","javadoclike","javascript","javastacktrace","jolie","jq","js-extras","js-templates","jsdoc","json","json5","jsonp","jsstacktrace","jsx","julia","keyman","kotlin","latex","latte","less","lilypond","liquid","lisp","livescript","llvm","lolcode","lua","makefile","markdown","markup-templating","markup","matlab","mel","mizar","mongodb","monkey","moonscript","n1ql","n4js","nand2tetris-hdl","naniscript","nasm","neon","nginx","nim","nix","nsis","objectivec","ocaml","opencl","oz","parigp","parser","pascal","pascaligo","pcaxis","peoplecode","perl","php-extras","php","phpdoc","plsql","powerquery","powershell","processing","prolog","properties","protobuf","pug","puppet","pure","purebasic","purescript","python","q","qml","qore","r","racket","reason","regex","renpy","rest","rip","roboconf","robotframework","ruby","rust","sas","sass","scala","scheme","scss","shell-session","smali","smalltalk","smarty","sml","solidity","solution-file","soy","sparql","splunk-spl","sqf","sql","stan","stylus","swift","t4-cs","t4-templating","t4-vb","tap","tcl","textile","toml","tsx","tt2","turtle","twig","typescript","typoscript","unrealscript","vala","vbnet","velocity","verilog","vhdl","vim","visual-basic","warpscript","wasm","wiki","xeora","xml-doc","xojo","xquery","yaml","yang","zig"];var gf=go(gc(),gs);gf.supportedLanguages=gl;let gd=gf;var gh=n(64566);function gp(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function gb(){var e=gp(["\n query FetchConfigV2 {\n configv2 {\n user\n effective\n }\n }\n"]);return gb=function(){return e},e}var gm=n0(gb()),gg=function(e){var t=e.children;return l.createElement(ir.Z,null,l.createElement(r7.default,{component:"th",scope:"row",colSpan:3},t))},gv=function(){return l.createElement(gg,null,"...")},gy=function(e){var t=e.children;return l.createElement(gg,null,t)},gw=function(e){var t=e.loading,n=e.toml,r=e.error,i=void 0===r?"":r,a=e.title,o=e.expanded;if(i)return l.createElement(gy,null,i);if(t)return l.createElement(gv,null);a||(a="TOML");var s={display:"block"};return l.createElement(x.default,null,l.createElement(mP.Z,{defaultExpanded:o},l.createElement(mR.Z,{expandIcon:l.createElement(gh.Z,null)},a),l.createElement(mj.Z,{style:s},l.createElement(gd,{language:"toml",style:gs},n))))},g_=function(){var e=rv(gm,{fetchPolicy:"cache-and-network"}),t=e.data,n=e.loading,r=e.error;return(null==t?void 0:t.configv2.effective)=="N/A"?l.createElement(l.Fragment,null,l.createElement(d.Z,{item:!0,xs:12},l.createElement(r5.Z,null,l.createElement(sl.Z,{title:"TOML Configuration"}),l.createElement(gw,{title:"V2 config dump:",error:null==r?void 0:r.message,loading:n,toml:null==t?void 0:t.configv2.user,showHead:!0})))):l.createElement(l.Fragment,null,l.createElement(d.Z,{container:!0},l.createElement(d.Z,{item:!0,xs:12},l.createElement(r5.Z,null,l.createElement(sl.Z,{title:"TOML Configuration"}),l.createElement(gw,{title:"User specified:",error:null==r?void 0:r.message,loading:n,toml:null==t?void 0:t.configv2.user,showHead:!0,expanded:!0}),l.createElement(gw,{title:"Effective (with defaults):",error:null==r?void 0:r.message,loading:n,toml:null==t?void 0:t.configv2.effective,showHead:!0})))))},gE=n(34823),gS=function(e){return(0,b.createStyles)({cell:{paddingTop:1.5*e.spacing.unit,paddingBottom:1.5*e.spacing.unit}})},gk=(0,b.withStyles)(gS)(function(e){var t=e.classes,n=(0,A.I0)();(0,l.useEffect)(function(){n((0,ty.DQ)())});var r=(0,A.v9)(gE.N,A.wU);return l.createElement(r5.Z,null,l.createElement(sl.Z,{title:"Node"}),l.createElement(r8.Z,null,l.createElement(r9.Z,null,l.createElement(ir.Z,null,l.createElement(r7.default,{className:t.cell},l.createElement(x.default,null,"Version"),l.createElement(x.default,{variant:"subtitle1",color:"textSecondary"},r.version))),l.createElement(ir.Z,null,l.createElement(r7.default,{className:t.cell},l.createElement(x.default,null,"SHA"),l.createElement(x.default,{variant:"subtitle1",color:"textSecondary"},r.commitSHA))))))}),gx=function(){return l.createElement(ig,null,l.createElement(d.Z,{container:!0},l.createElement(d.Z,{item:!0,sm:12,md:8},l.createElement(d.Z,{container:!0},l.createElement(g_,null))),l.createElement(d.Z,{item:!0,sm:12,md:4},l.createElement(d.Z,{container:!0},l.createElement(d.Z,{item:!0,xs:12},l.createElement(gk,null)),l.createElement(d.Z,{item:!0,xs:12},l.createElement(mN,null)),l.createElement(d.Z,{item:!0,xs:12},l.createElement(mE,null))))))},gT=function(){return l.createElement(gx,null)},gM=function(){return l.createElement(gT,null)},gO=n(44431),gA=1e18,gL=function(e){return new gO.BigNumber(e).dividedBy(gA).toFixed(8)},gC=function(e){var t=e.keys,n=e.chainID,r=e.hideHeaderTitle;return l.createElement(l.Fragment,null,l.createElement(sl.Z,{title:!r&&"Account Balances",subheader:"Chain ID "+n}),l.createElement(aW.Z,null,l.createElement(w.default,{dense:!1,disablePadding:!0},t&&t.map(function(e,r){return l.createElement(l.Fragment,null,l.createElement(_.default,{disableGutters:!0,key:["acc-balance",n.toString(),r.toString()].join("-")},l.createElement(E.Z,{primary:l.createElement(l.Fragment,null,l.createElement(d.Z,{container:!0,spacing:16},l.createElement(d.Z,{item:!0,xs:12},l.createElement(op,{title:"Address"}),l.createElement(ob,{value:e.address})),l.createElement(d.Z,{item:!0,xs:6},l.createElement(op,{title:"Native Token Balance"}),l.createElement(ob,{value:e.ethBalance||"--"})),l.createElement(d.Z,{item:!0,xs:6},l.createElement(op,{title:"LINK Balance"}),l.createElement(ob,{value:e.linkBalance?gL(e.linkBalance):"--"}))))})),r+1s&&l.createElement(gB.Z,null,l.createElement(ir.Z,null,l.createElement(r7.default,{className:r.footer},l.createElement(aA.Z,{href:"/runs",component:tz},"View More"))))))});function vt(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function vn(){var e=vt(["\n ","\n query FetchRecentJobRuns($offset: Int, $limit: Int) {\n jobRuns(offset: $offset, limit: $limit) {\n results {\n ...RecentJobRunsPayload_ResultsFields\n }\n metadata {\n total\n }\n }\n }\n"]);return vn=function(){return e},e}var vr=5,vi=n0(vn(),g9),va=function(){var e=rv(vi,{variables:{offset:0,limit:vr},fetchPolicy:"cache-and-network"}),t=e.data,n=e.loading,r=e.error;return l.createElement(ve,{data:t,errorMsg:null==r?void 0:r.message,loading:n,maxRunsSize:vr})},vo=function(e){return(0,b.createStyles)({style:{textAlign:"center",padding:2.5*e.spacing.unit,position:"fixed",left:"0",bottom:"0",width:"100%",borderRadius:0},bareAnchor:{color:e.palette.common.black,textDecoration:"none"}})},vs=(0,b.withStyles)(vo)(function(e){var t=e.classes,n=(0,A.v9)(gE.N,A.wU),r=(0,A.I0)();return(0,l.useEffect)(function(){r((0,ty.DQ)())}),l.createElement(ii.default,{className:t.style},l.createElement(x.default,null,"Chainlink Node ",n.version," at commit"," ",l.createElement("a",{target:"_blank",rel:"noopener noreferrer",href:"https://github.com/smartcontractkit/chainlink/commit/".concat(n.commitSHA),className:t.bareAnchor},n.commitSHA)))}),vu=function(e){return(0,b.createStyles)({cell:{borderColor:e.palette.divider,borderTop:"1px solid",borderBottom:"none",paddingTop:2*e.spacing.unit,paddingBottom:2*e.spacing.unit,paddingLeft:2*e.spacing.unit},block:{display:"block"},overflowEllipsis:{textOverflow:"ellipsis",overflow:"hidden"}})},vc=(0,b.withStyles)(vu)(function(e){var t=e.classes,n=e.job;return l.createElement(ir.Z,null,l.createElement(r7.default,{scope:"row",className:t.cell},l.createElement(d.Z,{container:!0,spacing:0},l.createElement(d.Z,{item:!0,xs:12},l.createElement(ih,{href:"/jobs/".concat(n.id),classes:{linkContent:t.block}},l.createElement(x.default,{className:t.overflowEllipsis,variant:"body1",component:"span",color:"primary"},n.name||n.id))),l.createElement(d.Z,{item:!0,xs:12},l.createElement(x.default,{variant:"body1",color:"textSecondary"},"Created ",l.createElement(aO,{tooltip:!0},n.createdAt))))))});function vl(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function vf(){var e=vl(["\n fragment RecentJobsPayload_ResultsFields on Job {\n id\n name\n createdAt\n }\n"]);return vf=function(){return e},e}var vd=n0(vf()),vh=function(){return(0,b.createStyles)({cardHeader:{borderBottom:0},table:{tableLayout:"fixed"}})},vp=(0,b.withStyles)(vh)(function(e){var t,n,r=e.classes,i=e.data,a=e.errorMsg,o=e.loading;return l.createElement(r5.Z,null,l.createElement(sl.Z,{title:"Recent Jobs",className:r.cardHeader}),l.createElement(r8.Z,{className:r.table},l.createElement(r9.Z,null,l.createElement(g$,{visible:o}),l.createElement(gz,{visible:(null===(t=null==i?void 0:i.jobs.results)||void 0===t?void 0:t.length)===0},"No recently created jobs"),l.createElement(gU,{msg:a}),null===(n=null==i?void 0:i.jobs.results)||void 0===n?void 0:n.map(function(e,t){return l.createElement(vc,{job:e,key:t})}))))});function vb(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function vm(){var e=vb(["\n ","\n query FetchRecentJobs($offset: Int, $limit: Int) {\n jobs(offset: $offset, limit: $limit) {\n results {\n ...RecentJobsPayload_ResultsFields\n }\n }\n }\n"]);return vm=function(){return e},e}var vg=5,vv=n0(vm(),vd),vy=function(){var e=rv(vv,{variables:{offset:0,limit:vg},fetchPolicy:"cache-and-network"}),t=e.data,n=e.loading,r=e.error;return l.createElement(vp,{data:t,errorMsg:null==r?void 0:r.message,loading:n})},vw=function(){return l.createElement(ig,null,l.createElement(d.Z,{container:!0},l.createElement(d.Z,{item:!0,xs:8},l.createElement(va,null)),l.createElement(d.Z,{item:!0,xs:4},l.createElement(d.Z,{container:!0},l.createElement(d.Z,{item:!0,xs:12},l.createElement(gY,null)),l.createElement(d.Z,{item:!0,xs:12},l.createElement(vy,null))))),l.createElement(vs,null))},v_=function(){return l.createElement(vw,null)},vE=function(){return l.createElement(v_,null)},vS=n(87239),vk=function(e){switch(e){case"DirectRequestSpec":return"Direct Request";case"FluxMonitorSpec":return"Flux Monitor";default:return e.replace(/Spec$/,"")}},vx=n(5022),vT=n(78718),vM=n.n(vT);function vO(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n1?t-1:0),r=1;r1?t-1:0),r=1;re.length)&&(t=e.length);for(var n=0,r=Array(t);ne.length)&&(t=e.length);for(var n=0,r=Array(t);ne.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&n.map(function(e){return l.createElement(ir.Z,{key:e.id,style:{cursor:"pointer"},onClick:function(){return r.push("/runs/".concat(e.id))}},l.createElement(r7.default,{className:t.idCell,scope:"row"},l.createElement("div",{className:t.runDetails},l.createElement(x.default,{variant:"h5",color:"primary",component:"span"},e.id))),l.createElement(r7.default,{className:t.stampCell},l.createElement(x.default,{variant:"body1",color:"textSecondary",className:t.stamp},"Created ",l.createElement(aO,{tooltip:!0},e.createdAt))),l.createElement(r7.default,{className:t.statusCell,scope:"row"},l.createElement(x.default,{variant:"body1",className:O()(t.status,yh(t,e.status))},e.status.toLowerCase())))})))}),yb=n(16839),ym=n.n(yb);function yg(e){var t=e.replace(/\w+\s*=\s*<([^>]|[\r\n])*>/g,""),n=ym().read(t),r=n.edges();return n.nodes().map(function(e){var t={id:e,parentIds:r.filter(function(t){return t.w===e}).map(function(e){return e.v})};return Object.keys(n.node(e)).length>0&&(t.attributes=n.node(e)),t})}var yv=n(94164),yy=function(e){var t=e.data,n=[];return(null==t?void 0:t.attributes)&&Object.keys(t.attributes).forEach(function(e){var r;n.push(l.createElement("div",{key:e},l.createElement(x.default,{variant:"body1",color:"textSecondary",component:"div"},l.createElement("b",null,e,":")," ",null===(r=t.attributes)||void 0===r?void 0:r[e])))}),l.createElement("div",null,t&&l.createElement(x.default,{variant:"body1",color:"textPrimary"},l.createElement("b",null,t.id)),n)},yw=n(73343),y_=n(3379),yE=n.n(y_);function yS(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);nwindow.innerWidth?u-r.getBoundingClientRect().width-a:u+a,n=c+r.getBoundingClientRect().height+i>window.innerHeight?c-r.getBoundingClientRect().height-a:c+a,r.style.opacity=String(1),r.style.top="".concat(n,"px"),r.style.left="".concat(t,"px"),r.style.zIndex=String(1)}},h=function(e){var t=document.getElementById("tooltip-d3-chart-".concat(e));t&&(t.style.opacity=String(0),t.style.zIndex=String(-1))};return l.createElement("div",{style:{fontFamily:"sans-serif",fontWeight:"normal"}},l.createElement(yv.kJ,{id:"task-list-graph-d3",data:i,config:s,onMouseOverNode:d,onMouseOutNode:h},"D3 chart"),n.map(function(e){return l.createElement("div",{key:"d3-tooltip-key-".concat(e.id),id:"tooltip-d3-chart-".concat(e.id),style:{position:"absolute",opacity:"0",border:"1px solid rgba(0, 0, 0, 0.1)",padding:yw.r.spacing.unit,background:"white",borderRadius:5,zIndex:-1,inlineSize:"min-content"}},l.createElement(yy,{data:e}))}))};function yL(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);nyY&&l.createElement("div",{className:t.runDetails},l.createElement(aA.Z,{href:"/jobs/".concat(n.id,"/runs"),component:tz},"View more")))),l.createElement(d.Z,{item:!0,xs:12,sm:6},l.createElement(yF,{observationSource:n.observationSource})))});function yH(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);ne.length)&&(t=e.length);for(var n=0,r=Array(t);ne.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&void 0!==arguments[0]?arguments[0]:"";try{return vx.parse(e),!0}catch(t){return!1}})}),wW=function(e){var t=e.initialValues,n=e.onSubmit,r=e.onTOMLChange;return l.createElement(hT,{initialValues:t,validationSchema:wG,onSubmit:n},function(e){var t=e.isSubmitting,n=e.values;return r&&r(n.toml),l.createElement(hR,{"data-testid":"job-form",noValidate:!0},l.createElement(d.Z,{container:!0,spacing:16},l.createElement(d.Z,{item:!0,xs:12},l.createElement(hP,{component:hX,id:"toml",name:"toml",label:"Job Spec (TOML)",required:!0,fullWidth:!0,multiline:!0,rows:10,rowsMax:25,variant:"outlined",autoComplete:"off",FormHelperTextProps:{"data-testid":"toml-helper-text"}})),l.createElement(d.Z,{item:!0,xs:12,md:7},l.createElement(ok.default,{variant:"contained",color:"primary",type:"submit",disabled:t,size:"large"},"Create Job"))))})},wK=n(50109),wV="persistSpec";function wq(e){var t=e.query,n=new URLSearchParams(t).get("definition");return n?(wK.t8(wV,n),{toml:n}):{toml:wK.U2(wV)||""}}var wZ=function(e){var t=e.onSubmit,n=e.onTOMLChange,r=wq({query:(0,h.TH)().search}),i=function(e){var t=e.replace(/[\u200B-\u200D\uFEFF]/g,"");wK.t8("".concat(wV),t),n&&n(t)};return l.createElement(r5.Z,null,l.createElement(sl.Z,{title:"New Job"}),l.createElement(aW.Z,null,l.createElement(wW,{initialValues:r,onSubmit:t,onTOMLChange:i})))};function wX(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);ne.length)&&(t=e.length);for(var n=0,r=Array(t);ne.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]e.length)&&(t=e.length);for(var n=0,r=Array(t);n1&&void 0!==arguments[1]?arguments[1]:{},n=t.start,r=void 0===n?6:n,i=t.end,a=void 0===i?4:i;return e.substring(0,r)+"..."+e.substring(e.length-a)}function _M(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&void 0!==arguments[0]?arguments[0]:{};return rv(_W,e)},_V=function(){var e=_K({fetchPolicy:"cache-and-network"}),t=e.data,n=e.loading,r=e.error,i=e.refetch;return l.createElement(_U,{loading:n,data:t,errorMsg:null==r?void 0:r.message,refetch:i})},_q=function(e){var t=e.csaKey;return l.createElement(ir.Z,{hover:!0},l.createElement(r7.default,null,l.createElement(x.default,{variant:"body1"},t.publicKey," ",l.createElement(_x,{data:t.publicKey}))))};function _Z(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function _X(){var e=_Z(["\n fragment CSAKeysPayload_ResultsFields on CSAKey {\n id\n publicKey\n }\n"]);return _X=function(){return e},e}var _J=n0(_X()),_Q=function(e){var t,n,r,i=e.data,a=e.errorMsg,o=e.loading,s=e.onCreate;return l.createElement(r5.Z,null,l.createElement(sl.Z,{action:(null===(t=null==i?void 0:i.csaKeys.results)||void 0===t?void 0:t.length)===0&&l.createElement(ok.default,{variant:"outlined",color:"primary",onClick:s},"New CSA Key"),title:"CSA Key",subheader:"Manage your CSA Key"}),l.createElement(r8.Z,null,l.createElement(ie.Z,null,l.createElement(ir.Z,null,l.createElement(r7.default,null,"Public Key"))),l.createElement(r9.Z,null,l.createElement(g$,{visible:o}),l.createElement(gz,{visible:(null===(n=null==i?void 0:i.csaKeys.results)||void 0===n?void 0:n.length)===0}),l.createElement(gU,{msg:a}),null===(r=null==i?void 0:i.csaKeys.results)||void 0===r?void 0:r.map(function(e,t){return l.createElement(_q,{csaKey:e,key:t})}))))};function _1(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&void 0!==arguments[0]?arguments[0]:{};return rv(EM,e)};function EA(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&void 0!==arguments[0]?arguments[0]:{};return rv(EJ,e)},E3=function(){return oo(EQ)},E4=function(){return oo(E1)},E6=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return rv(E0,e)};function E5(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);ne.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]e.length)&&(t=e.length);for(var n=0,r=Array(t);ne.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&void 0!==arguments[0]?arguments[0]:{};return rv(SK,e)};function Sq(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]e.length)&&(t=e.length);for(var n=0,r=Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function kV(e,t){if(null==e)return{};var n,r,i={},a=Object.keys(e);for(r=0;r=0||(i[n]=e[n]);return i}var kq=function(e){var t=e.run,n=l.useMemo(function(){var e=t.inputs,n=t.outputs,r=t.taskRuns,i=kK(t,["inputs","outputs","taskRuns"]),a={};try{a=JSON.parse(e)}catch(o){a={}}return kW(kz({},i),{inputs:a,outputs:n,taskRuns:r})},[t]);return l.createElement(r5.Z,null,l.createElement(aW.Z,null,l.createElement(kH,{object:n})))};function kZ(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function kX(e){for(var t=1;t0&&l.createElement(kr,{errors:t.allErrors})),l.createElement(d.Z,{item:!0,xs:12},l.createElement(h.rs,null,l.createElement(h.AW,{path:"".concat(n,"/json")},l.createElement(kq,{run:t})),l.createElement(h.AW,{path:n},t.taskRuns.length>0&&l.createElement(kN,{taskRuns:t.taskRuns,observationSource:t.job.observationSource}))))))))};function k5(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function k8(){var e=k5(["\n ","\n query FetchJobRun($id: ID!) {\n jobRun(id: $id) {\n __typename\n ... on JobRun {\n ...JobRunPayload_Fields\n }\n ... on NotFoundError {\n message\n }\n }\n }\n"]);return k8=function(){return e},e}var k9=n0(k8(),k4),k7=function(){var e=rv(k9,{variables:{id:(0,h.UO)().id}}),t=e.data,n=e.loading,r=e.error;if(n)return l.createElement(iR,null);if(r)return l.createElement(iD,{error:r});var i=null==t?void 0:t.jobRun;switch(null==i?void 0:i.__typename){case"JobRun":return l.createElement(k6,{run:i});case"NotFoundError":return l.createElement(oa,null);default:return null}};function xe(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function xt(){var e=xe(["\n fragment JobRunsPayload_ResultsFields on JobRun {\n id\n allErrors\n createdAt\n finishedAt\n status\n job {\n id\n }\n }\n"]);return xt=function(){return e},e}var xn=n0(xt()),xr=function(e){var t=e.loading,n=e.data,r=e.page,i=e.pageSize,a=(0,h.k6)(),o=l.useMemo(function(){return null==n?void 0:n.jobRuns.results.map(function(e){var t,n=e.allErrors,r=e.id,i=e.createdAt;return{id:r,createdAt:i,errors:n,finishedAt:e.finishedAt,status:e.status}})},[n]);return l.createElement(ig,null,l.createElement(d.Z,{container:!0,spacing:32},l.createElement(d.Z,{item:!0,xs:12},l.createElement(iy,null,"Job Runs")),t&&l.createElement(iR,null),n&&o&&l.createElement(d.Z,{item:!0,xs:12},l.createElement(r5.Z,null,l.createElement(yp,{runs:o}),l.createElement(it.Z,{component:"div",count:n.jobRuns.metadata.total,rowsPerPage:i,rowsPerPageOptions:[i],page:r-1,onChangePage:function(e,t){a.push("/runs?page=".concat(t+1,"&per=").concat(i))},onChangeRowsPerPage:function(){},backIconButtonProps:{"aria-label":"prev-page"},nextIconButtonProps:{"aria-label":"next-page"}})))))};function xi(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function xa(){var e=xi(["\n ","\n query FetchJobRuns($offset: Int, $limit: Int) {\n jobRuns(offset: $offset, limit: $limit) {\n results {\n ...JobRunsPayload_ResultsFields\n }\n metadata {\n total\n }\n }\n }\n"]);return xa=function(){return e},e}var xo=n0(xa(),xn),xs=function(){var e=ij(),t=parseInt(e.get("page")||"1",10),n=parseInt(e.get("per")||"25",10),r=rv(xo,{variables:{offset:(t-1)*n,limit:n},fetchPolicy:"cache-and-network"}),i=r.data,a=r.loading,o=r.error;return o?l.createElement(iD,{error:o}):l.createElement(xr,{loading:a,data:i,page:t,pageSize:n})},xu=function(){var e=(0,h.$B)().path;return l.createElement(h.rs,null,l.createElement(h.AW,{exact:!0,path:e},l.createElement(xs,null)),l.createElement(h.AW,{path:"".concat(e,"/:id")},l.createElement(k7,null)))},xc=bv().shape({name:p0().required("Required"),uri:p0().required("Required"),publicKey:p0().required("Required")}),xl=function(e){var t=e.initialValues,n=e.onSubmit;return l.createElement(hT,{initialValues:t,validationSchema:xc,onSubmit:n},function(e){var t=e.isSubmitting,n=e.submitForm;return l.createElement(hR,{"data-testid":"feeds-manager-form"},l.createElement(d.Z,{container:!0,spacing:16},l.createElement(d.Z,{item:!0,xs:12,md:6},l.createElement(hP,{component:hX,id:"name",name:"name",label:"Name",required:!0,fullWidth:!0,FormHelperTextProps:{"data-testid":"name-helper-text"}})),l.createElement(d.Z,{item:!0,xs:!1,md:6}),l.createElement(d.Z,{item:!0,xs:12,md:6},l.createElement(hP,{component:hX,id:"uri",name:"uri",label:"URI",required:!0,fullWidth:!0,helperText:"Provided by the Feeds Manager operator",FormHelperTextProps:{"data-testid":"uri-helper-text"}})),l.createElement(d.Z,{item:!0,xs:12,md:6},l.createElement(hP,{component:hX,id:"publicKey",name:"publicKey",label:"Public Key",required:!0,fullWidth:!0,helperText:"Provided by the Feeds Manager operator",FormHelperTextProps:{"data-testid":"publicKey-helper-text"}})),l.createElement(d.Z,{item:!0,xs:12},l.createElement(ok.default,{variant:"contained",color:"primary",disabled:t,onClick:n},"Submit"))))})},xf=function(e){var t=e.data,n=e.onSubmit,r={name:t.name,uri:t.uri,publicKey:t.publicKey};return l.createElement(d.Z,{container:!0},l.createElement(d.Z,{item:!0,xs:12,md:11,lg:9},l.createElement(r5.Z,null,l.createElement(sl.Z,{title:"Edit Feeds Manager"}),l.createElement(aW.Z,null,l.createElement(xl,{initialValues:r,onSubmit:n})))))};function xd(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function xh(){var e=xd(["\n query FetchFeedsManagers {\n feedsManagers {\n results {\n __typename\n id\n name\n uri\n publicKey\n isConnectionActive\n createdAt\n }\n }\n }\n"]);return xh=function(){return e},e}var xp=n0(xh()),xb=function(){return rv(xp)};function xm(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&void 0!==arguments[0]?arguments[0]:{};return rv(xq,e)};function xX(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]e.length)&&(t=e.length);for(var n=0,r=Array(t);ne.length)&&(t=e.length);for(var n=0,r=Array(t);n0?n.feedsManagers.results[0]:void 0;return n&&a?l.createElement(TU,{manager:a}):l.createElement(h.l_,{to:{pathname:"/feeds_manager/new",state:{from:e}}})},T$={name:"Chainlink Feeds Manager",uri:"",publicKey:""},Tz=function(e){var t=e.onSubmit;return l.createElement(d.Z,{container:!0},l.createElement(d.Z,{item:!0,xs:12,md:11,lg:9},l.createElement(r5.Z,null,l.createElement(sl.Z,{title:"Register Feeds Manager"}),l.createElement(aW.Z,null,l.createElement(xl,{initialValues:T$,onSubmit:t})))))};function TG(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]e.length)&&(t=e.length);for(var n=0,r=Array(t);nt.version?e:t})},[o]),g=l.useMemo(function(){return Mh(o).sort(function(e,t){return t.version-e.version})},[o]),v=function(e,t,n){switch(e){case"PENDING":return l.createElement(l.Fragment,null,l.createElement(ok.default,{variant:"text",color:"secondary",onClick:function(){return b("reject",t)}},"Reject"),m.id===t&&"DELETED"!==n.status&&"REVOKED"!==n.status&&l.createElement(ok.default,{variant:"contained",color:"primary",onClick:function(){return b("approve",t)}},"Approve"),m.id===t&&"DELETED"===n.status&&n.pendingUpdate&&l.createElement(l.Fragment,null,l.createElement(ok.default,{variant:"contained",color:"primary",onClick:function(){return b("cancel",t)}},"Cancel"),l.createElement(x.default,{color:"error"},"This proposal was deleted. Cancel the spec to delete any running jobs")));case"APPROVED":return l.createElement(l.Fragment,null,l.createElement(ok.default,{variant:"contained",onClick:function(){return b("cancel",t)}},"Cancel"),"DELETED"===n.status&&n.pendingUpdate&&l.createElement(x.default,{color:"error"},"This proposal was deleted. Cancel the spec to delete any running jobs"));case"CANCELLED":if(m.id===t&&"DELETED"!==n.status&&"REVOKED"!==n.status)return l.createElement(ok.default,{variant:"contained",color:"primary",onClick:function(){return b("approve",t)}},"Approve");return null;default:return null}};return l.createElement("div",null,g.map(function(e,n){return l.createElement(mP.Z,{defaultExpanded:0===n,key:n},l.createElement(mR.Z,{expandIcon:l.createElement(gh.Z,null)},l.createElement(x.default,{className:t.versionText},"Version ",e.version),l.createElement(Es.Z,{label:e.status,color:"APPROVED"===e.status?"primary":"default",variant:"REJECTED"===e.status||"CANCELLED"===e.status?"outlined":"default"}),l.createElement("div",{className:t.proposedAtContainer},l.createElement(x.default,null,"Proposed ",l.createElement(aO,{tooltip:!0},e.createdAt)))),l.createElement(mj.Z,{className:t.expansionPanelDetails},l.createElement("div",{className:t.actions},l.createElement("div",{className:t.editContainer},0===n&&("PENDING"===e.status||"CANCELLED"===e.status)&&"DELETED"!==s.status&&"REVOKED"!==s.status&&l.createElement(ok.default,{variant:"contained",onClick:function(){return p(!0)}},"Edit")),l.createElement("div",{className:t.actionsContainer},v(e.status,e.id,s))),l.createElement(gd,{language:"toml",style:gs,"data-testid":"codeblock"},e.definition)))}),l.createElement(oC,{open:null!=c,title:c?Mv[c.action].title:"",body:c?Mv[c.action].body:"",onConfirm:function(){if(c){switch(c.action){case"approve":n(c.id);break;case"cancel":r(c.id);break;case"reject":i(c.id)}f(null)}},cancelButtonText:"Cancel",onCancel:function(){return f(null)}}),l.createElement(Mr,{open:h,onClose:function(){return p(!1)},initialValues:{definition:m.definition,id:m.id},onSubmit:a}))});function Mw(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function M_(){var e=Mw(["\n ","\n fragment JobProposalPayloadFields on JobProposal {\n id\n externalJobID\n remoteUUID\n jobID\n specs {\n ...JobProposal_SpecsFields\n }\n status\n pendingUpdate\n }\n"]);return M_=function(){return e},e}var ME=n0(M_(),Mm),MS=function(e){var t=e.onApprove,n=e.onCancel,r=e.onReject,i=e.onUpdateSpec,a=e.proposal;return l.createElement(ig,null,l.createElement(d.Z,{container:!0,spacing:32},l.createElement(d.Z,{item:!0,xs:9},l.createElement(iy,null,"Job Proposal #",a.id))),l.createElement(T8,{proposal:a}),l.createElement(d.Z,{container:!0,spacing:32},l.createElement(d.Z,{item:!0,xs:9},l.createElement(TB,null,"Specs"))),l.createElement(d.Z,{container:!0,spacing:32},l.createElement(d.Z,{item:!0,xs:12},l.createElement(My,{proposal:a,specs:a.specs,onReject:r,onApprove:t,onCancel:n,onUpdateSpec:i}))))};function Mk(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]e.length)&&(t=e.length);for(var n=0,r=Array(t);ne.length)&&(t=e.length);for(var n=0,r=Array(t);nU,tA:()=>$,KL:()=>H,Iw:()=>V,DQ:()=>W,cB:()=>T,LO:()=>M,t5:()=>k,qt:()=>x,Jc:()=>C,L7:()=>Y,EO:()=>B});var r,i,a=n(66289),o=n(41800),s=n.n(o),u=n(67932);(i=r||(r={})).IN_PROGRESS="in_progress",i.PENDING_INCOMING_CONFIRMATIONS="pending_incoming_confirmations",i.PENDING_CONNECTION="pending_connection",i.PENDING_BRIDGE="pending_bridge",i.PENDING_SLEEP="pending_sleep",i.ERRORED="errored",i.COMPLETED="completed";var c=n(87013),l=n(19084),f=n(34823);function d(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]j,v2:()=>F});var r=n(66289);function i(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}var a="/sessions",o="/sessions",s=function e(t){var n=this;i(this,e),this.api=t,this.createSession=function(e){return n.create(e)},this.destroySession=function(){return n.destroy()},this.create=this.api.createResource(a),this.destroy=this.api.deleteResource(o)};function u(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}var c="/v2/bulk_delete_runs",l=function e(t){var n=this;u(this,e),this.api=t,this.bulkDeleteJobRuns=function(e){return n.destroy(e)},this.destroy=this.api.deleteResource(c)};function f(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}var d="/v2/chains/evm",h="".concat(d,"/:id"),p=function e(t){var n=this;f(this,e),this.api=t,this.getChains=function(){return n.index()},this.createChain=function(e){return n.create(e)},this.destroyChain=function(e){return n.destroy(void 0,{id:e})},this.updateChain=function(e,t){return n.update(t,{id:e})},this.index=this.api.fetchResource(d),this.create=this.api.createResource(d),this.destroy=this.api.deleteResource(h),this.update=this.api.updateResource(h)};function b(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}var m="/v2/keys/evm/chain",g=function e(t){var n=this;b(this,e),this.api=t,this.chain=function(e){var t=new URLSearchParams;t.append("address",e.address),t.append("evmChainID",e.evmChainID),null!==e.nextNonce&&t.append("nextNonce",e.nextNonce),null!==e.abandon&&t.append("abandon",String(e.abandon)),null!==e.enabled&&t.append("enabled",String(e.enabled));var r=m+"?"+t.toString();return n.api.createResource(r)()}};function v(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}var y="/v2/jobs",w="".concat(y,"/:specId/runs"),_=function e(t){var n=this;v(this,e),this.api=t,this.createJobRunV2=function(e,t){return n.post(t,{specId:e})},this.post=this.api.createResource(w,!0)};function E(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}var S="/v2/log",k=function e(t){var n=this;E(this,e),this.api=t,this.getLogConfig=function(){return n.show()},this.updateLogConfig=function(e){return n.update(e)},this.show=this.api.fetchResource(S),this.update=this.api.updateResource(S)};function x(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}var T="/v2/nodes",M=function e(t){var n=this;x(this,e),this.api=t,this.getNodes=function(){return n.index()},this.createNode=function(e){return n.create(e)},this.index=this.api.fetchResource(T),this.create=this.api.createResource(T)};function O(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}var A="/v2/enroll_webauthn",L=function e(t){var n=this;O(this,e),this.api=t,this.beginKeyRegistration=function(e){return n.create(e)},this.finishKeyRegistration=function(e){return n.put(e)},this.create=this.api.fetchResource(A),this.put=this.api.createResource(A)};function C(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}var I="/v2/build_info",D=function e(t){var n=this;C(this,e),this.api=t,this.show=function(){return n.api.GET(I)()}};function N(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}var P=function e(t){N(this,e),this.api=t,this.buildInfo=new D(this.api),this.bulkDeleteRuns=new l(this.api),this.chains=new p(this.api),this.logConfig=new k(this.api),this.nodes=new M(this.api),this.jobs=new _(this.api),this.webauthn=new L(this.api),this.evmKeys=new g(this.api)},R=new r.V0({base:void 0}),j=new s(R),F=new P(R)},1398(e,t,n){"use strict";n.d(t,{Z:()=>d});var r=n(67294),i=n(32316),a=n(83638),o=n(94184),s=n.n(o);function u(){return(u=Object.assign||function(e){for(var t=1;tc});var r=n(67294),i=n(32316);function a(){return(a=Object.assign||function(e){for(var t=1;tx,jK:()=>v});var r=n(67294),i=n(37703),a=n(45697),o=n.n(a),s=n(82204),u=n(71426),c=n(94184),l=n.n(c),f=n(32316),d=function(e){var t=e.palette.success||{},n=e.palette.warning||{};return{base:{paddingLeft:5*e.spacing.unit,paddingRight:5*e.spacing.unit},success:{backgroundColor:t.main,color:t.contrastText},error:{backgroundColor:e.palette.error.dark,color:e.palette.error.contrastText},warning:{backgroundColor:n.contrastText,color:n.main}}},h=function(e){var t,n=e.success,r=e.error,i=e.warning,a=e.classes,o=e.className;return n?t=a.success:r?t=a.error:i&&(t=a.warning),l()(a.base,o,t)},p=function(e){return r.createElement(s.Z,{className:h(e),square:!0},r.createElement(u.default,{variant:"body2",color:"inherit",component:"div"},e.children))};p.defaultProps={success:!1,error:!1,warning:!1},p.propTypes={success:o().bool,error:o().bool,warning:o().bool};let b=(0,f.withStyles)(d)(p);var m=function(){return r.createElement(r.Fragment,null,"Unhandled error. Please help us by opening a"," ",r.createElement("a",{href:"https://github.com/smartcontractkit/chainlink/issues/new"},"bug report"))};let g=m;function v(e){return"string"==typeof e?e:e.component?e.component(e.props):r.createElement(g,null)}function y(e,t){var n;return n="string"==typeof e?e:e.component?e.component(e.props):r.createElement(g,null),r.createElement("p",{key:t},n)}var w=function(e){var t=e.notifications;return r.createElement(b,{error:!0},t.map(y))},_=function(e){var t=e.notifications;return r.createElement(b,{success:!0},t.map(y))},E=function(e){var t=e.errors,n=e.successes;return r.createElement("div",null,(null==t?void 0:t.length)>0&&r.createElement(w,{notifications:t}),n.length>0&&r.createElement(_,{notifications:n}))},S=function(e){return{errors:e.notifications.errors,successes:e.notifications.successes}},k=(0,i.$j)(S)(E);let x=k},9409(e,t,n){"use strict";n.d(t,{ZP:()=>j});var r=n(67294),i=n(37703),a=n(5977),o=n(32316),s=n(1398),u=n(82204),c=n(30060),l=n(71426),f=n(60520),d=n(39814),h=n(57209),p=n(26842),b=n(3950),m=n(5536),g=n(45697),v=n.n(g);let y=n.p+"9f6d832ef97e8493764e.svg";function w(){return(w=Object.assign||function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&_.map(function(e,t){return r.createElement(d.Z,{item:!0,xs:12,key:t},r.createElement(u.Z,{raised:!1,className:v.error},r.createElement(c.Z,null,r.createElement(l.default,{variant:"body1",className:v.errorText},(0,b.jK)(e)))))}),r.createElement(d.Z,{item:!0,xs:12},r.createElement(f.Z,{id:"email",label:"Email",margin:"normal",value:n,onChange:m("email"),error:_.length>0,variant:"outlined",fullWidth:!0})),r.createElement(d.Z,{item:!0,xs:12},r.createElement(f.Z,{id:"password",label:"Password",type:"password",autoComplete:"password",margin:"normal",value:h,onChange:m("password"),error:_.length>0,variant:"outlined",fullWidth:!0})),r.createElement(d.Z,{item:!0,xs:12},r.createElement(d.Z,{container:!0,spacing:0,justify:"center"},r.createElement(d.Z,{item:!0},r.createElement(s.Z,{type:"submit",variant:"primary"},"Access Account")))),y&&r.createElement(l.default,{variant:"body1",color:"textSecondary"},"Signing in...")))))))},P=function(e){return{fetching:e.authentication.fetching,authenticated:e.authentication.allowed,errors:e.notifications.errors}},R=(0,i.$j)(P,x({submitSignIn:p.L7}))(N);let j=(0,h.wU)(e)((0,o.withStyles)(D)(R))},16353(e,t,n){"use strict";n.d(t,{ZP:()=>H,rH:()=>U});var r,i=n(37703),a=n(97779),o=n(9541),s=n(19084);function u(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function c(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:h,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case s.Mk.RECEIVE_SIGNOUT_SUCCESS:case s.Mk.RECEIVE_SIGNIN_SUCCESS:var n={allowed:t.authenticated};return o.Ks(n),f(c({},e,n),{errors:[]});case s.Mk.RECEIVE_SIGNIN_FAIL:var r={allowed:!1};return o.Ks(r),f(c({},e,r),{errors:[]});case s.Mk.RECEIVE_SIGNIN_ERROR:case s.Mk.RECEIVE_SIGNOUT_ERROR:var i={allowed:!1};return o.Ks(i),f(c({},e,i),{errors:t.errors||[]});default:return e}};let b=p;function m(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function g(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:_,t=arguments.length>1?arguments[1]:void 0;return t.type?t.type.startsWith(r.REQUEST)?y(g({},e),{count:e.count+1}):t.type.startsWith(r.RECEIVE)?y(g({},e),{count:Math.max(e.count-1,0)}):t.type.startsWith(r.RESPONSE)?y(g({},e),{count:Math.max(e.count-1,0)}):t.type===s.di.REDIRECT?y(g({},e),{count:0}):e:e};let S=E;function k(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function x(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:O,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case s.di.MATCH_ROUTE:return M(x({},O),{currentUrl:t.pathname});case s.Ih.NOTIFY_SUCCESS:var n={component:t.component,props:t.props};return M(x({},e),{successes:[n],errors:[]});case s.Ih.NOTIFY_SUCCESS_MSG:return M(x({},e),{successes:[t.msg],errors:[]});case s.Ih.NOTIFY_ERROR:var r=t.error.errors,i=null==r?void 0:r.map(function(e){return L(t,e)});return M(x({},e),{successes:[],errors:i});case s.Ih.NOTIFY_ERROR_MSG:return M(x({},e),{successes:[],errors:[t.msg]});case s.Mk.RECEIVE_SIGNIN_FAIL:return M(x({},e),{successes:[],errors:["Your email or password is incorrect. Please try again"]});default:return e}};function L(e,t){return{component:e.component,props:{msg:t.detail}}}let C=A;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}function D(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:R,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case s.di.REDIRECT:return P(D({},e),{to:t.to});case s.di.MATCH_ROUTE:return P(D({},e),{to:void 0});default:return e}};let F=j;var Y=n(87013),B=(0,a.UY)({authentication:b,fetching:S,notifications:C,redirect:F,buildInfo:Y.Z});B(void 0,{type:"INITIAL_STATE"});var U=i.v9;let H=B},19084(e,t,n){"use strict";var r,i,a,o,s,u,c,l,f,d;n.d(t,{Ih:()=>i,Mk:()=>a,Y0:()=>s,di:()=>r,jp:()=>o}),n(67294),(u=r||(r={})).REDIRECT="REDIRECT",u.MATCH_ROUTE="MATCH_ROUTE",(c=i||(i={})).NOTIFY_SUCCESS="NOTIFY_SUCCESS",c.NOTIFY_SUCCESS_MSG="NOTIFY_SUCCESS_MSG",c.NOTIFY_ERROR="NOTIFY_ERROR",c.NOTIFY_ERROR_MSG="NOTIFY_ERROR_MSG",(l=a||(a={})).REQUEST_SIGNIN="REQUEST_SIGNIN",l.RECEIVE_SIGNIN_SUCCESS="RECEIVE_SIGNIN_SUCCESS",l.RECEIVE_SIGNIN_FAIL="RECEIVE_SIGNIN_FAIL",l.RECEIVE_SIGNIN_ERROR="RECEIVE_SIGNIN_ERROR",l.RECEIVE_SIGNOUT_SUCCESS="RECEIVE_SIGNOUT_SUCCESS",l.RECEIVE_SIGNOUT_ERROR="RECEIVE_SIGNOUT_ERROR",(f=o||(o={})).RECEIVE_CREATE_ERROR="RECEIVE_CREATE_ERROR",f.RECEIVE_CREATE_SUCCESS="RECEIVE_CREATE_SUCCESS",f.RECEIVE_DELETE_ERROR="RECEIVE_DELETE_ERROR",f.RECEIVE_DELETE_SUCCESS="RECEIVE_DELETE_SUCCESS",f.RECEIVE_UPDATE_ERROR="RECEIVE_UPDATE_ERROR",f.RECEIVE_UPDATE_SUCCESS="RECEIVE_UPDATE_SUCCESS",f.REQUEST_CREATE="REQUEST_CREATE",f.REQUEST_DELETE="REQUEST_DELETE",f.REQUEST_UPDATE="REQUEST_UPDATE",f.UPSERT_CONFIGURATION="UPSERT_CONFIGURATION",f.UPSERT_JOB_RUN="UPSERT_JOB_RUN",f.UPSERT_JOB_RUNS="UPSERT_JOB_RUNS",f.UPSERT_TRANSACTION="UPSERT_TRANSACTION",f.UPSERT_TRANSACTIONS="UPSERT_TRANSACTIONS",f.UPSERT_BUILD_INFO="UPSERT_BUILD_INFO",(d=s||(s={})).FETCH_BUILD_INFO_REQUESTED="FETCH_BUILD_INFO_REQUESTED",d.FETCH_BUILD_INFO_SUCCEEDED="FETCH_BUILD_INFO_SUCCEEDED",d.FETCH_BUILD_INFO_FAILED="FETCH_BUILD_INFO_FAILED"},87013(e,t,n){"use strict";n.d(t,{Y:()=>o,Z:()=>u});var r=n(19084);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}function a(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:o,t=arguments.length>1?arguments[1]:void 0;return t.type===r.Y0.FETCH_BUILD_INFO_SUCCEEDED?a({},t.buildInfo):e};let u=s},34823(e,t,n){"use strict";n.d(t,{N:()=>r});var r=function(e){return e.buildInfo}},73343(e,t,n){"use strict";n.d(t,{r:()=>u});var r=n(19350),i=n(32316),a=n(59114),o=n(5324),s={props:{MuiGrid:{spacing:3*o.default.unit},MuiCardHeader:{titleTypographyProps:{color:"secondary"}}},palette:{action:{hoverOpacity:.3},primary:{light:"#E5F1FF",main:"#3c40c6",contrastText:"#fff"},secondary:{main:"#3d5170"},success:{light:"#e8faf1",main:r.ek.A700,dark:r.ek[700],contrastText:r.y0.white},warning:{light:"#FFFBF1",main:"#fff6b6",contrastText:"#fad27a"},error:{light:"#ffdada",main:"#f44336",dark:"#d32f2f",contrastText:"#fff"},background:{default:"#f5f6f8",appBar:"#3c40c6"},text:{primary:(0,a.darken)(r.BA.A700,.7),secondary:"#818ea3"},listPendingStatus:{background:"#fef7e5",color:"#fecb4c"},listCompletedStatus:{background:"#e9faf2",color:"#4ed495"}},shape:{borderRadius:o.default.unit},overrides:{MuiButton:{root:{borderRadius:o.default.unit/2,textTransform:"none"},sizeLarge:{padding:void 0,fontSize:void 0,paddingTop:o.default.unit,paddingBottom:o.default.unit,paddingLeft:5*o.default.unit,paddingRight:5*o.default.unit}},MuiTableCell:{body:{fontSize:"1rem"},head:{fontSize:"1rem",fontWeight:400}},MuiCardHeader:{root:{borderBottom:"1px solid rgba(0, 0, 0, 0.12)"},action:{marginTop:-2,marginRight:0,"& >*":{marginLeft:2*o.default.unit}},subheader:{marginTop:.5*o.default.unit}}},typography:{useNextVariants:!0,fontFamily:"-apple-system,BlinkMacSystemFont,Roboto,Helvetica,Arial,sans-serif",button:{textTransform:"none",fontSize:"1.2em"},body1:{fontSize:"1.0rem",fontWeight:400,lineHeight:"1.46429em",color:"rgba(0, 0, 0, 0.87)",letterSpacing:-.4},body2:{fontSize:"1.0rem",fontWeight:500,lineHeight:"1.71429em",color:"rgba(0, 0, 0, 0.87)",letterSpacing:-.4},body1Next:{color:"rgb(29, 29, 29)",fontWeight:400,fontSize:"1rem",lineHeight:1.5,letterSpacing:-.4},body2Next:{color:"rgb(29, 29, 29)",fontWeight:400,fontSize:"0.875rem",lineHeight:1.5,letterSpacing:-.4},display1:{color:"#818ea3",fontSize:"2.125rem",fontWeight:400,lineHeight:"1.20588em",letterSpacing:-.4},display2:{color:"#818ea3",fontSize:"2.8125rem",fontWeight:400,lineHeight:"1.13333em",marginLeft:"-.02em",letterSpacing:-.4},display3:{color:"#818ea3",fontSize:"3.5rem",fontWeight:400,lineHeight:"1.30357em",marginLeft:"-.02em",letterSpacing:-.4},display4:{fontSize:14,fontWeightLight:300,fontWeightMedium:500,fontWeightRegular:400,letterSpacing:-.4},h1:{color:"rgb(29, 29, 29)",fontSize:"6rem",fontWeight:300,lineHeight:1},h2:{color:"rgb(29, 29, 29)",fontSize:"3.75rem",fontWeight:300,lineHeight:1},h3:{color:"rgb(29, 29, 29)",fontSize:"3rem",fontWeight:400,lineHeight:1.04},h4:{color:"rgb(29, 29, 29)",fontSize:"2.125rem",fontWeight:400,lineHeight:1.17},h5:{color:"rgb(29, 29, 29)",fontSize:"1.5rem",fontWeight:400,lineHeight:1.33,letterSpacing:-.4},h6:{fontSize:"0.8rem",fontWeight:450,lineHeight:"1.71429em",color:"rgba(0, 0, 0, 0.87)",letterSpacing:-.4},subheading:{color:"rgb(29, 29, 29)",fontSize:"1rem",fontWeight:400,lineHeight:"1.5em",letterSpacing:-.4},subtitle1:{color:"rgb(29, 29, 29)",fontSize:"1rem",fontWeight:400,lineHeight:1.75,letterSpacing:-.4},subtitle2:{color:"rgb(29, 29, 29)",fontSize:"0.875rem",fontWeight:500,lineHeight:1.57,letterSpacing:-.4}},shadows:["none","0px 1px 3px 0px rgba(0, 0, 0, 0.1),0px 1px 1px 0px rgba(0, 0, 0, 0.04),0px 2px 1px -1px rgba(0, 0, 0, 0.02)","0px 1px 5px 0px rgba(0, 0, 0, 0.1),0px 2px 2px 0px rgba(0, 0, 0, 0.04),0px 3px 1px -2px rgba(0, 0, 0, 0.02)","0px 1px 8px 0px rgba(0, 0, 0, 0.1),0px 3px 4px 0px rgba(0, 0, 0, 0.04),0px 3px 3px -2px rgba(0, 0, 0, 0.02)","0px 2px 4px -1px rgba(0, 0, 0, 0.1),0px 4px 5px 0px rgba(0, 0, 0, 0.04),0px 1px 10px 0px rgba(0, 0, 0, 0.02)","0px 3px 5px -1px rgba(0, 0, 0, 0.1),0px 5px 8px 0px rgba(0, 0, 0, 0.04),0px 1px 14px 0px rgba(0, 0, 0, 0.02)","0px 3px 5px -1px rgba(0, 0, 0, 0.1),0px 6px 10px 0px rgba(0, 0, 0, 0.04),0px 1px 18px 0px rgba(0, 0, 0, 0.02)","0px 4px 5px -2px rgba(0, 0, 0, 0.1),0px 7px 10px 1px rgba(0, 0, 0, 0.04),0px 2px 16px 1px rgba(0, 0, 0, 0.02)","0px 5px 5px -3px rgba(0, 0, 0, 0.1),0px 8px 10px 1px rgba(0, 0, 0, 0.04),0px 3px 14px 2px rgba(0, 0, 0, 0.02)","0px 5px 6px -3px rgba(0, 0, 0, 0.1),0px 9px 12px 1px rgba(0, 0, 0, 0.04),0px 3px 16px 2px rgba(0, 0, 0, 0.02)","0px 6px 6px -3px rgba(0, 0, 0, 0.1),0px 10px 14px 1px rgba(0, 0, 0, 0.04),0px 4px 18px 3px rgba(0, 0, 0, 0.02)","0px 6px 7px -4px rgba(0, 0, 0, 0.1),0px 11px 15px 1px rgba(0, 0, 0, 0.04),0px 4px 20px 3px rgba(0, 0, 0, 0.02)","0px 7px 8px -4px rgba(0, 0, 0, 0.1),0px 12px 17px 2px rgba(0, 0, 0, 0.04),0px 5px 22px 4px rgba(0, 0, 0, 0.02)","0px 7px 8px -4px rgba(0, 0, 0, 0.1),0px 13px 19px 2px rgba(0, 0, 0, 0.04),0px 5px 24px 4px rgba(0, 0, 0, 0.02)","0px 7px 9px -4px rgba(0, 0, 0, 0.1),0px 14px 21px 2px rgba(0, 0, 0, 0.04),0px 5px 26px 4px rgba(0, 0, 0, 0.02)","0px 8px 9px -5px rgba(0, 0, 0, 0.1),0px 15px 22px 2px rgba(0, 0, 0, 0.04),0px 6px 28px 5px rgba(0, 0, 0, 0.02)","0px 8px 10px -5px rgba(0, 0, 0, 0.1),0px 16px 24px 2px rgba(0, 0, 0, 0.04),0px 6px 30px 5px rgba(0, 0, 0, 0.02)","0px 8px 11px -5px rgba(0, 0, 0, 0.1),0px 17px 26px 2px rgba(0, 0, 0, 0.04),0px 6px 32px 5px rgba(0, 0, 0, 0.02)","0px 9px 11px -5px rgba(0, 0, 0, 0.1),0px 18px 28px 2px rgba(0, 0, 0, 0.04),0px 7px 34px 6px rgba(0, 0, 0, 0.02)","0px 9px 12px -6px rgba(0, 0, 0, 0.1),0px 19px 29px 2px rgba(0, 0, 0, 0.04),0px 7px 36px 6px rgba(0, 0, 0, 0.02)","0px 10px 13px -6px rgba(0, 0, 0, 0.1),0px 20px 31px 3px rgba(0, 0, 0, 0.04),0px 8px 38px 7px rgba(0, 0, 0, 0.02)","0px 10px 13px -6px rgba(0, 0, 0, 0.1),0px 21px 33px 3px rgba(0, 0, 0, 0.04),0px 8px 40px 7px rgba(0, 0, 0, 0.02)","0px 10px 14px -6px rgba(0, 0, 0, 0.1),0px 22px 35px 3px rgba(0, 0, 0, 0.04),0px 8px 42px 7px rgba(0, 0, 0, 0.02)","0px 11px 14px -7px rgba(0, 0, 0, 0.1),0px 23px 36px 3px rgba(0, 0, 0, 0.04),0px 9px 44px 8px rgba(0, 0, 0, 0.02)","0px 11px 15px -7px rgba(0, 0, 0, 0.1),0px 24px 38px 3px rgba(0, 0, 0, 0.04),0px 9px 46px 8px rgba(0, 0, 0, 0.02)",]},u=(0,i.createMuiTheme)(s)},66289(e,t,n){"use strict";function r(e){if(void 0===e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function i(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}function a(){if("undefined"==typeof Reflect||!Reflect.construct||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 o(e,t,n){return(o=a()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var i=new(Function.bind.apply(e,r));return n&&f(i,n.prototype),i}).apply(null,arguments)}function s(e){return(s=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function u(e,t){if("function"!=typeof t&&null!==t)throw 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 c(e){return -1!==Function.toString.call(e).indexOf("[native code]")}function l(e,t){return t&&("object"===p(t)||"function"==typeof t)?t:r(e)}function f(e,t){return(f=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}n.d(t,{V0:()=>B,_7:()=>v});var d,h,p=function(e){return e&&"undefined"!=typeof Symbol&&e.constructor===Symbol?"symbol":typeof e};function b(e){var t="function"==typeof Map?new Map:void 0;return(b=function(e){if(null===e||!c(e))return e;if("function"!=typeof e)throw TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return o(e,arguments,s(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),f(n,e)})(e)}function m(){if("undefined"==typeof Reflect||!Reflect.construct||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}}function g(e){var t=m();return function(){var n,r=s(e);if(t){var i=s(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return l(this,n)}}var v=function(e){u(n,e);var t=g(n);function n(e){var r;return i(this,n),(r=t.call(this,"AuthenticationError(".concat(e.statusText,")"))).errors=[{status:e.status,detail:e},],r}return n}(b(Error)),y=function(e){u(n,e);var t=g(n);function n(e){var r,a=e.errors;return i(this,n),(r=t.call(this,"BadRequestError")).errors=a,r}return n}(b(Error)),w=function(e){u(n,e);var t=g(n);function n(e){var r;return i(this,n),(r=t.call(this,"UnprocessableEntityError")).errors=e,r}return n}(b(Error)),_=function(e){u(n,e);var t=g(n);function n(e){var r;return i(this,n),(r=t.call(this,"ServerError")).errors=e,r}return n}(b(Error)),E=function(e){u(n,e);var t=g(n);function n(e){var r,a=e.errors;return i(this,n),(r=t.call(this,"ConflictError")).errors=a,r}return n}(b(Error)),S=function(e){u(n,e);var t=g(n);function n(e){var r;return i(this,n),(r=t.call(this,"UnknownResponseError(".concat(e.statusText,")"))).errors=[{status:e.status,detail:e.statusText},],r}return n}(b(Error));function k(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:2e4;return Promise.race([fetch(e,t),new Promise(function(e,t){return setTimeout(function(){return t(Error("timeout"))},n)}),])}function x(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]=200&&e.status<300))return[3,2];return[2,e.json()];case 2:if(400!==e.status)return[3,3];return[2,e.json().then(function(e){throw new y(e)})];case 3:if(401!==e.status)return[3,4];throw new v(e);case 4:if(422!==e.status)return[3,6];return[4,$(e)];case 5:throw n=i.sent(),new w(n);case 6:if(409!==e.status)return[3,7];return[2,e.json().then(function(e){throw new E(e)})];case 7:if(!(e.status>=500))return[3,9];return[4,$(e)];case 8:throw r=i.sent(),new _(r);case 9:throw new S(e);case 10:return[2]}})})).apply(this,arguments)}function $(e){return z.apply(this,arguments)}function z(){return(z=j(function(e){return Y(this,function(t){return[2,e.json().then(function(t){return t.errors?t.errors.map(function(t){return{status:e.status,detail:t.detail}}):G(e)}).catch(function(){return G(e)})]})})).apply(this,arguments)}function G(e){return[{status:e.status,detail:e.statusText},]}},50109(e,t,n){"use strict";n.d(t,{LK:()=>o,U2:()=>i,eT:()=>s,t8:()=>a});var r=n(12795);function i(e){return r.ZP.getItem("chainlink.".concat(e))}function a(e,t){r.ZP.setItem("chainlink.".concat(e),t)}function o(e){var t=i(e),n={};if(t)try{return JSON.parse(t)}catch(r){}return n}function s(e,t){a(e,JSON.stringify(t))}},9541(e,t,n){"use strict";n.d(t,{Ks:()=>u,Tp:()=>a,iR:()=>o,pm:()=>s});var r=n(50109),i="persistURL";function a(){return r.U2(i)||""}function o(e){r.t8(i,e)}function s(){return r.LK("authentication")}function u(e){r.eT("authentication",e)}},67121(e,t,n){"use strict";function r(e){var t,n=e.Symbol;return"function"==typeof n?n.observable?t=n.observable:(t=n("observable"),n.observable=t):t="@@observable",t}n.r(t),n.d(t,{default:()=>o}),e=n.hmd(e),i="undefined"!=typeof self?self:"undefined"!=typeof window?window:void 0!==n.g?n.g:e;var i,a=r(i);let o=a},2177(e,t,n){"use strict";n.d(t,{Z:()=>o});var r=!0,i="Invariant failed";function a(e,t){if(!e){if(r)throw Error(i);throw Error(i+": "+(t||""))}}let o=a},11742(e){e.exports=function(){var e=document.getSelection();if(!e.rangeCount)return function(){};for(var t=document.activeElement,n=[],r=0;ru,ZT:()=>i,_T:()=>o,ev:()=>c,mG:()=>s,pi:()=>a});var r=function(e,t){return(r=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 i(e,t){if("function"!=typeof t&&null!==t)throw TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var a=function(){return(a=Object.assign||function(e){for(var t,n=1,r=arguments.length;nt.indexOf(r)&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var i=0,r=Object.getOwnPropertySymbols(e);it.indexOf(r[i])&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n}function s(e,t,n,r){function i(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||(n=Promise))(function(n,a){function o(e){try{u(r.next(e))}catch(t){a(t)}}function s(e){try{u(r.throw(e))}catch(t){a(t)}}function u(e){e.done?n(e.value):i(e.value).then(o,s)}u((r=r.apply(e,t||[])).next())})}function u(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[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(e){return function(t){return u([e,t])}}function u(a){if(n)throw TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]r})},94927(e,t,n){function r(e,t){if(i("noDeprecation"))return e;var n=!1;function r(){if(!n){if(i("throwDeprecation"))throw Error(t);i("traceDeprecation")?console.trace(t):console.warn(t),n=!0}return e.apply(this,arguments)}return r}function i(e){try{if(!n.g.localStorage)return!1}catch(t){return!1}var r=n.g.localStorage[e];return null!=r&&"true"===String(r).toLowerCase()}e.exports=r},42473(e){"use strict";var t=function(){};e.exports=t},84763(e){e.exports=Worker},47529(e){e.exports=n;var t=Object.prototype.hasOwnProperty;function n(){for(var e={},n=0;ne.length)&&(t=e.length);for(var n=0,r=Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}e.exports=i,e.exports.__esModule=!0,e.exports.default=e.exports},7071(e){function t(e,t){if(null==e)return{};var n,r,i={},a=Object.keys(e);for(r=0;r=0||(i[n]=e[n]);return i}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},94993(e,t,n){var r=n(18698).default,i=n(66115);function a(e,t){if(t&&("object"===r(t)||"function"==typeof t))return t;if(void 0!==t)throw TypeError("Derived constructors may only return object or undefined");return i(e)}e.exports=a,e.exports.__esModule=!0,e.exports.default=e.exports},6015(e){function t(n,r){return e.exports=t=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},e.exports.__esModule=!0,e.exports.default=e.exports,t(n,r)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},861(e,t,n){var r=n(63405),i=n(79498),a=n(86116),o=n(42281);function s(e){return r(e)||i(e)||a(e)||o()}e.exports=s,e.exports.__esModule=!0,e.exports.default=e.exports},18698(e){function t(n){return e.exports=t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports.__esModule=!0,e.exports.default=e.exports,t(n)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},86116(e,t,n){var r=n(73897);function i(e,t){if(e){if("string"==typeof e)return r(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return r(e,t)}}e.exports=i,e.exports.__esModule=!0,e.exports.default=e.exports},1644(e,t,n){"use strict";var r,i;function a(e){return!!e&&e<7}n.d(t,{I:()=>r,O:()=>a}),(i=r||(r={}))[i.loading=1]="loading",i[i.setVariables=2]="setVariables",i[i.fetchMore=3]="fetchMore",i[i.refetch=4]="refetch",i[i.poll=6]="poll",i[i.ready=7]="ready",i[i.error=8]="error"},30990(e,t,n){"use strict";n.d(t,{MS:()=>s,YG:()=>a,cA:()=>c,ls:()=>o});var r=n(70655);n(83952);var i=n(13154),a=Symbol();function o(e){return!!e.extensions&&Array.isArray(e.extensions[a])}function s(e){return e.hasOwnProperty("graphQLErrors")}var u=function(e){var t=(0,r.ev)((0,r.ev)((0,r.ev)([],e.graphQLErrors,!0),e.clientErrors,!0),e.protocolErrors,!0);return e.networkError&&t.push(e.networkError),t.map(function(e){return(0,i.s)(e)&&e.message||"Error message not found."}).join("\n")},c=function(e){function t(n){var r=n.graphQLErrors,i=n.protocolErrors,a=n.clientErrors,o=n.networkError,s=n.errorMessage,c=n.extraInfo,l=e.call(this,s)||this;return l.name="ApolloError",l.graphQLErrors=r||[],l.protocolErrors=i||[],l.clientErrors=a||[],l.networkError=o||null,l.message=s||u(l),l.extraInfo=c,l.__proto__=t.prototype,l}return(0,r.ZT)(t,e),t}(Error)},85317(e,t,n){"use strict";n.d(t,{K:()=>a});var r=n(67294),i=n(30320).aS?Symbol.for("__APOLLO_CONTEXT__"):"__APOLLO_CONTEXT__";function a(){var e=r.createContext[i];return e||(Object.defineProperty(r.createContext,i,{value:e=r.createContext({}),enumerable:!1,writable:!1,configurable:!0}),e.displayName="ApolloContext"),e}},21436(e,t,n){"use strict";n.d(t,{O:()=>i,k:()=>r});var r=Array.isArray;function i(e){return Array.isArray(e)&&e.length>0}},30320(e,t,n){"use strict";n.d(t,{DN:()=>s,JC:()=>l,aS:()=>o,mr:()=>i,sy:()=>a});var r=n(83952),i="function"==typeof WeakMap&&"ReactNative"!==(0,r.wY)(function(){return navigator.product}),a="function"==typeof WeakSet,o="function"==typeof Symbol&&"function"==typeof Symbol.for,s=o&&Symbol.asyncIterator,u="function"==typeof(0,r.wY)(function(){return window.document.createElement}),c=(0,r.wY)(function(){return navigator.userAgent.indexOf("jsdom")>=0})||!1,l=u&&!c},53712(e,t,n){"use strict";function r(){for(var e=[],t=0;tr})},10542(e,t,n){"use strict";n.d(t,{J:()=>o}),n(83952);var r=n(13154);function i(e){var t=new Set([e]);return t.forEach(function(e){(0,r.s)(e)&&a(e)===e&&Object.getOwnPropertyNames(e).forEach(function(n){(0,r.s)(e[n])&&t.add(e[n])})}),e}function a(e){if(__DEV__&&!Object.isFrozen(e))try{Object.freeze(e)}catch(t){if(t instanceof TypeError)return null;throw t}return e}function o(e){return __DEV__&&i(e),e}},14012(e,t,n){"use strict";n.d(t,{J:()=>a});var r=n(70655),i=n(53712);function a(e,t){return(0,i.o)(e,t,t.variables&&{variables:(0,r.pi)((0,r.pi)({},e&&e.variables),t.variables)})}},13154(e,t,n){"use strict";function r(e){return null!==e&&"object"==typeof e}n.d(t,{s:()=>r})},83952(e,t,n){"use strict";n.d(t,{ej:()=>u,kG:()=>c,wY:()=>h});var r,i=n(70655),a="Invariant Violation",o=Object.setPrototypeOf,s=void 0===o?function(e,t){return e.__proto__=t,e}:o,u=function(e){function t(n){void 0===n&&(n=a);var r=e.call(this,"number"==typeof n?a+": "+n+" (see https://github.com/apollographql/invariant-packages)":n)||this;return r.framesToPop=1,r.name=a,s(r,t.prototype),r}return(0,i.ZT)(t,e),t}(Error);function c(e,t){if(!e)throw new u(t)}var l=["debug","log","warn","error","silent"],f=l.indexOf("log");function d(e){return function(){if(l.indexOf(e)>=f)return(console[e]||console.log).apply(console,arguments)}}function h(e){try{return e()}catch(t){}}(r=c||(c={})).debug=d("debug"),r.log=d("log"),r.warn=d("warn"),r.error=d("error");let p=h(function(){return globalThis})||h(function(){return window})||h(function(){return self})||h(function(){return global})||h(function(){return h.constructor("return this")()});var b="__",m=[b,b].join("DEV");function g(){try{return Boolean(__DEV__)}catch(e){return Object.defineProperty(p,m,{value:"production"!==h(function(){return"production"}),enumerable:!1,configurable:!0,writable:!0}),p[m]}}let v=g();function y(e){try{return e()}catch(t){}}var w=y(function(){return globalThis})||y(function(){return window})||y(function(){return self})||y(function(){return global})||y(function(){return y.constructor("return this")()}),_=!1;function E(){!w||y(function(){return"production"})||y(function(){return process})||(Object.defineProperty(w,"process",{value:{env:{NODE_ENV:"production"}},configurable:!0,enumerable:!1,writable:!0}),_=!0)}function S(){_&&(delete w.process,_=!1)}E();var k=n(10143);function x(){return k.H,S()}function T(){__DEV__?c("boolean"==typeof v,v):c("boolean"==typeof v,39)}x(),T()},4942(e,t,n){"use strict";function r(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:()=>r})},87462(e,t,n){"use strict";function r(){return(r=Object.assign?Object.assign.bind():function(e){for(var t=1;tr})},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})(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={},a=Object.keys(e);for(r=0;r=0||(i[n]=e[n]);return i}n.d(t,{Z:()=>r})},25821(e,t,n){"use strict";n.d(t,{Z:()=>s});var r=n(45695);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})(e)}var a=10,o=2;function s(e){return u(e,[])}function u(e,t){switch(i(e)){case"string":return JSON.stringify(e);case"function":return e.name?"[function ".concat(e.name,"]"):"[function]";case"object":if(null===e)return"null";return c(e,t);default:return String(e)}}function c(e,t){if(-1!==t.indexOf(e))return"[Circular]";var n=[].concat(t,[e]),r=d(e);if(void 0!==r){var i=r.call(e);if(i!==e)return"string"==typeof i?i:u(i,n)}else if(Array.isArray(e))return f(e,n);return l(e,n)}function l(e,t){var n=Object.keys(e);return 0===n.length?"{}":t.length>o?"["+h(e)+"]":"{ "+n.map(function(n){var r=u(e[n],t);return n+": "+r}).join(", ")+" }"}function f(e,t){if(0===e.length)return"[]";if(t.length>o)return"[Array]";for(var n=Math.min(a,e.length),r=e.length-n,i=[],s=0;s1&&i.push("... ".concat(r," more items")),"["+i.join(", ")+"]"}function d(e){var t=e[String(r.Z)];return"function"==typeof t?t:"function"==typeof e.inspect?e.inspect:void 0}function h(e){var t=Object.prototype.toString.call(e).replace(/^\[object /,"").replace(/]$/,"");if("Object"===t&&"function"==typeof e.constructor){var n=e.constructor.name;if("string"==typeof n&&""!==n)return n}return t}},45695(e,t,n){"use strict";n.d(t,{Z:()=>i});var r="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):void 0;let i=r},25217(e,t,n){"use strict";function r(e,t){if(!Boolean(e))throw Error(null!=t?t:"Unexpected invariant triggered.")}n.d(t,{Ye:()=>o,WU:()=>s,UG:()=>u});var i=n(45695);function a(e){var t=e.prototype.toJSON;"function"==typeof t||r(0),e.prototype.inspect=t,i.Z&&(e.prototype[i.Z]=t)}var o=function(){function e(e,t,n){this.start=e.start,this.end=t.end,this.startToken=e,this.endToken=t,this.source=n}return e.prototype.toJSON=function(){return{start:this.start,end:this.end}},e}();a(o);var s=function(){function e(e,t,n,r,i,a,o){this.kind=e,this.start=t,this.end=n,this.line=r,this.column=i,this.value=o,this.prev=a,this.next=null}return e.prototype.toJSON=function(){return{kind:this.kind,value:this.value,line:this.line,column:this.column}},e}();function u(e){return null!=e&&"string"==typeof e.kind}a(s)},87392(e,t,n){"use strict";function r(e){var t=e.split(/\r\n|[\n\r]/g),n=a(e);if(0!==n)for(var r=1;ro&&i(t[s-1]);)--s;return t.slice(o,s).join("\n")}function i(e){for(var t=0;t1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=-1===e.indexOf("\n"),i=" "===e[0]||" "===e[0],a='"'===e[e.length-1],o="\\"===e[e.length-1],s=!r||a||o||n,u="";return s&&!(r&&i)&&(u+="\n"+t),u+=t?e.replace(/\n/g,"\n"+t):e,s&&(u+="\n"),'"""'+u.replace(/"""/g,'\\"""')+'"""'}n.d(t,{LZ:()=>o,W7:()=>r})},97359(e,t,n){"use strict";n.d(t,{h:()=>r});var r=Object.freeze({NAME:"Name",DOCUMENT:"Document",OPERATION_DEFINITION:"OperationDefinition",VARIABLE_DEFINITION:"VariableDefinition",SELECTION_SET:"SelectionSet",FIELD:"Field",ARGUMENT:"Argument",FRAGMENT_SPREAD:"FragmentSpread",INLINE_FRAGMENT:"InlineFragment",FRAGMENT_DEFINITION:"FragmentDefinition",VARIABLE:"Variable",INT:"IntValue",FLOAT:"FloatValue",STRING:"StringValue",BOOLEAN:"BooleanValue",NULL:"NullValue",ENUM:"EnumValue",LIST:"ListValue",OBJECT:"ObjectValue",OBJECT_FIELD:"ObjectField",DIRECTIVE:"Directive",NAMED_TYPE:"NamedType",LIST_TYPE:"ListType",NON_NULL_TYPE:"NonNullType",SCHEMA_DEFINITION:"SchemaDefinition",OPERATION_TYPE_DEFINITION:"OperationTypeDefinition",SCALAR_TYPE_DEFINITION:"ScalarTypeDefinition",OBJECT_TYPE_DEFINITION:"ObjectTypeDefinition",FIELD_DEFINITION:"FieldDefinition",INPUT_VALUE_DEFINITION:"InputValueDefinition",INTERFACE_TYPE_DEFINITION:"InterfaceTypeDefinition",UNION_TYPE_DEFINITION:"UnionTypeDefinition",ENUM_TYPE_DEFINITION:"EnumTypeDefinition",ENUM_VALUE_DEFINITION:"EnumValueDefinition",INPUT_OBJECT_TYPE_DEFINITION:"InputObjectTypeDefinition",DIRECTIVE_DEFINITION:"DirectiveDefinition",SCHEMA_EXTENSION:"SchemaExtension",SCALAR_TYPE_EXTENSION:"ScalarTypeExtension",OBJECT_TYPE_EXTENSION:"ObjectTypeExtension",INTERFACE_TYPE_EXTENSION:"InterfaceTypeExtension",UNION_TYPE_EXTENSION:"UnionTypeExtension",ENUM_TYPE_EXTENSION:"EnumTypeExtension",INPUT_OBJECT_TYPE_EXTENSION:"InputObjectTypeExtension"})},10143(e,t,n){"use strict";n.d(t,{H:()=>c,T:()=>l});var r=n(99763),i=n(25821);function a(e,t){if(!Boolean(e))throw Error(t)}let o=function(e,t){return e instanceof t};function s(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:"GraphQL request",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{line:1,column:1};"string"==typeof e||a(0,"Body must be a string. Received: ".concat((0,i.Z)(e),".")),this.body=e,this.name=t,this.locationOffset=n,this.locationOffset.line>0||a(0,"line in locationOffset is 1-indexed and must be positive."),this.locationOffset.column>0||a(0,"column in locationOffset is 1-indexed and must be positive.")}return u(e,[{key:r.YF,get:function(){return"Source"}}]),e}();function l(e){return o(e,c)}},99763(e,t,n){"use strict";n.d(t,{YF:()=>r});var r="function"==typeof Symbol&&null!=Symbol.toStringTag?Symbol.toStringTag:"@@toStringTag"},37452(e){"use strict";e.exports=JSON.parse('{"AElig":"\xc6","AMP":"&","Aacute":"\xc1","Acirc":"\xc2","Agrave":"\xc0","Aring":"\xc5","Atilde":"\xc3","Auml":"\xc4","COPY":"\xa9","Ccedil":"\xc7","ETH":"\xd0","Eacute":"\xc9","Ecirc":"\xca","Egrave":"\xc8","Euml":"\xcb","GT":">","Iacute":"\xcd","Icirc":"\xce","Igrave":"\xcc","Iuml":"\xcf","LT":"<","Ntilde":"\xd1","Oacute":"\xd3","Ocirc":"\xd4","Ograve":"\xd2","Oslash":"\xd8","Otilde":"\xd5","Ouml":"\xd6","QUOT":"\\"","REG":"\xae","THORN":"\xde","Uacute":"\xda","Ucirc":"\xdb","Ugrave":"\xd9","Uuml":"\xdc","Yacute":"\xdd","aacute":"\xe1","acirc":"\xe2","acute":"\xb4","aelig":"\xe6","agrave":"\xe0","amp":"&","aring":"\xe5","atilde":"\xe3","auml":"\xe4","brvbar":"\xa6","ccedil":"\xe7","cedil":"\xb8","cent":"\xa2","copy":"\xa9","curren":"\xa4","deg":"\xb0","divide":"\xf7","eacute":"\xe9","ecirc":"\xea","egrave":"\xe8","eth":"\xf0","euml":"\xeb","frac12":"\xbd","frac14":"\xbc","frac34":"\xbe","gt":">","iacute":"\xed","icirc":"\xee","iexcl":"\xa1","igrave":"\xec","iquest":"\xbf","iuml":"\xef","laquo":"\xab","lt":"<","macr":"\xaf","micro":"\xb5","middot":"\xb7","nbsp":"\xa0","not":"\xac","ntilde":"\xf1","oacute":"\xf3","ocirc":"\xf4","ograve":"\xf2","ordf":"\xaa","ordm":"\xba","oslash":"\xf8","otilde":"\xf5","ouml":"\xf6","para":"\xb6","plusmn":"\xb1","pound":"\xa3","quot":"\\"","raquo":"\xbb","reg":"\xae","sect":"\xa7","shy":"\xad","sup1":"\xb9","sup2":"\xb2","sup3":"\xb3","szlig":"\xdf","thorn":"\xfe","times":"\xd7","uacute":"\xfa","ucirc":"\xfb","ugrave":"\xf9","uml":"\xa8","uuml":"\xfc","yacute":"\xfd","yen":"\xa5","yuml":"\xff"}')},93580(e){"use strict";e.exports=JSON.parse('{"0":"�","128":"€","130":"‚","131":"ƒ","132":"„","133":"…","134":"†","135":"‡","136":"ˆ","137":"‰","138":"Š","139":"‹","140":"Œ","142":"Ž","145":"‘","146":"’","147":"“","148":"”","149":"•","150":"–","151":"—","152":"˜","153":"™","154":"š","155":"›","156":"œ","158":"ž","159":"Ÿ"}')},67946(e){"use strict";e.exports=JSON.parse('{"locale":"en","long":{"year":{"previous":"last year","current":"this year","next":"next year","past":{"one":"{0} year ago","other":"{0} years ago"},"future":{"one":"in {0} year","other":"in {0} years"}},"quarter":{"previous":"last quarter","current":"this quarter","next":"next quarter","past":{"one":"{0} quarter ago","other":"{0} quarters ago"},"future":{"one":"in {0} quarter","other":"in {0} quarters"}},"month":{"previous":"last month","current":"this month","next":"next month","past":{"one":"{0} month ago","other":"{0} months ago"},"future":{"one":"in {0} month","other":"in {0} months"}},"week":{"previous":"last week","current":"this week","next":"next week","past":{"one":"{0} week ago","other":"{0} weeks ago"},"future":{"one":"in {0} week","other":"in {0} weeks"}},"day":{"previous":"yesterday","current":"today","next":"tomorrow","past":{"one":"{0} day ago","other":"{0} days ago"},"future":{"one":"in {0} day","other":"in {0} days"}},"hour":{"current":"this hour","past":{"one":"{0} hour ago","other":"{0} hours ago"},"future":{"one":"in {0} hour","other":"in {0} hours"}},"minute":{"current":"this minute","past":{"one":"{0} minute ago","other":"{0} minutes ago"},"future":{"one":"in {0} minute","other":"in {0} minutes"}},"second":{"current":"now","past":{"one":"{0} second ago","other":"{0} seconds ago"},"future":{"one":"in {0} second","other":"in {0} seconds"}}},"short":{"year":{"previous":"last yr.","current":"this yr.","next":"next yr.","past":"{0} yr. ago","future":"in {0} yr."},"quarter":{"previous":"last qtr.","current":"this qtr.","next":"next qtr.","past":{"one":"{0} qtr. ago","other":"{0} qtrs. ago"},"future":{"one":"in {0} qtr.","other":"in {0} qtrs."}},"month":{"previous":"last mo.","current":"this mo.","next":"next mo.","past":"{0} mo. ago","future":"in {0} mo."},"week":{"previous":"last wk.","current":"this wk.","next":"next wk.","past":"{0} wk. ago","future":"in {0} wk."},"day":{"previous":"yesterday","current":"today","next":"tomorrow","past":{"one":"{0} day ago","other":"{0} days ago"},"future":{"one":"in {0} day","other":"in {0} days"}},"hour":{"current":"this hour","past":"{0} hr. ago","future":"in {0} hr."},"minute":{"current":"this minute","past":"{0} min. ago","future":"in {0} min."},"second":{"current":"now","past":"{0} sec. ago","future":"in {0} sec."}},"narrow":{"year":{"previous":"last yr.","current":"this yr.","next":"next yr.","past":"{0} yr. ago","future":"in {0} yr."},"quarter":{"previous":"last qtr.","current":"this qtr.","next":"next qtr.","past":{"one":"{0} qtr. ago","other":"{0} qtrs. ago"},"future":{"one":"in {0} qtr.","other":"in {0} qtrs."}},"month":{"previous":"last mo.","current":"this mo.","next":"next mo.","past":"{0} mo. ago","future":"in {0} mo."},"week":{"previous":"last wk.","current":"this wk.","next":"next wk.","past":"{0} wk. ago","future":"in {0} wk."},"day":{"previous":"yesterday","current":"today","next":"tomorrow","past":{"one":"{0} day ago","other":"{0} days ago"},"future":{"one":"in {0} day","other":"in {0} days"}},"hour":{"current":"this hour","past":"{0} hr. ago","future":"in {0} hr."},"minute":{"current":"this minute","past":"{0} min. ago","future":"in {0} min."},"second":{"current":"now","past":"{0} sec. ago","future":"in {0} sec."}},"now":{"now":{"current":"now","future":"in a moment","past":"just now"}},"mini":{"year":"{0}yr","month":"{0}mo","week":"{0}wk","day":"{0}d","hour":"{0}h","minute":"{0}m","second":"{0}s","now":"now"},"short-time":{"year":"{0} yr.","month":"{0} mo.","week":"{0} wk.","day":{"one":"{0} day","other":"{0} days"},"hour":"{0} hr.","minute":"{0} min.","second":"{0} sec."},"long-time":{"year":{"one":"{0} year","other":"{0} years"},"month":{"one":"{0} month","other":"{0} months"},"week":{"one":"{0} week","other":"{0} weeks"},"day":{"one":"{0} day","other":"{0} days"},"hour":{"one":"{0} hour","other":"{0} hours"},"minute":{"one":"{0} minute","other":"{0} minutes"},"second":{"one":"{0} second","other":"{0} seconds"}}}')}},__webpack_module_cache__={};function __webpack_require__(e){var t=__webpack_module_cache__[e];if(void 0!==t)return t.exports;var n=__webpack_module_cache__[e]={id:e,loaded:!1,exports:{}};return __webpack_modules__[e].call(n.exports,n,n.exports,__webpack_require__),n.loaded=!0,n.exports}__webpack_require__.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return __webpack_require__.d(t,{a:t}),t},(()=>{var e,t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__;__webpack_require__.t=function(n,r){if(1&r&&(n=this(n)),8&r||"object"==typeof n&&n&&(4&r&&n.__esModule||16&r&&"function"==typeof n.then))return n;var i=Object.create(null);__webpack_require__.r(i);var a={};e=e||[null,t({}),t([]),t(t)];for(var o=2&r&&n;"object"==typeof o&&!~e.indexOf(o);o=t(o))Object.getOwnPropertyNames(o).forEach(e=>a[e]=()=>n[e]);return a.default=()=>n,__webpack_require__.d(i,a),i}})(),__webpack_require__.d=(e,t)=>{for(var n in t)__webpack_require__.o(t,n)&&!__webpack_require__.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},__webpack_require__.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),__webpack_require__.hmd=e=>((e=Object.create(e)).children||(e.children=[]),Object.defineProperty(e,"exports",{enumerable:!0,set(){throw Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: "+e.id)}}),e),__webpack_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},__webpack_require__.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),__webpack_require__.p="/assets/",__webpack_require__.nc=void 0;var __webpack_exports__={};(()=>{"use strict";var e,t,n,r,i=__webpack_require__(32316),a=__webpack_require__(8126),o=__webpack_require__(5690),s=__webpack_require__(30381),u=__webpack_require__.n(s),c=__webpack_require__(67294),l=__webpack_require__(73935),f=__webpack_require__.n(l),d=__webpack_require__(57209),h=__webpack_require__(37703),p=__webpack_require__(97779),b=__webpack_require__(28500);function m(e){return function(t){var n=t.dispatch,r=t.getState;return function(t){return function(i){return"function"==typeof i?i(n,r,e):t(i)}}}}var g=m();g.withExtraArgument=m;let v=g;var y=__webpack_require__(76489);function w(e){return function(t){return function(n){return function(r){n(r);var i=e||document&&document.cookie||"",a=t.getState();if("MATCH_ROUTE"===r.type&&"/signin"!==a.notifications.currentUrl){var o=(0,y.Q)(i);if(o.explorer)try{var s=JSON.parse(o.explorer);if("error"===s.status){var u=_(s.url);n({type:"NOTIFY_ERROR_MSG",msg:u})}}catch(c){n({type:"NOTIFY_ERROR_MSG",msg:"Invalid explorer status"})}}}}}}function _(e){var t="Can't connect to explorer: ".concat(e);return e.match(/^wss?:.+/)?t:"".concat(t,". You must use a websocket.")}var E=__webpack_require__(16353);function S(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function ei(e,t){if(e){if("string"==typeof e)return ea(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ea(e,t)}}function ea(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n1,i=!1,a=arguments[1],o=a;return new n(function(n){return t.subscribe({next:function(t){var a=!i;if(i=!0,!a||r)try{o=e(o,t)}catch(s){return n.error(s)}else o=t},error:function(e){n.error(e)},complete:function(){if(!i&&!r)return n.error(TypeError("Cannot reduce an empty sequence"));n.next(o),n.complete()}})})},t.concat=function(){for(var e=this,t=arguments.length,n=Array(t),r=0;r=0&&i.splice(e,1),o()}});i.push(s)},error:function(e){r.error(e)},complete:function(){o()}});function o(){a.closed&&0===i.length&&r.complete()}return function(){i.forEach(function(e){return e.unsubscribe()}),a.unsubscribe()}})},t[ed]=function(){return this},e.from=function(t){var n="function"==typeof this?this:e;if(null==t)throw TypeError(t+" is not an object");var r=ep(t,ed);if(r){var i=r.call(t);if(Object(i)!==i)throw TypeError(i+" is not an object");return em(i)&&i.constructor===n?i:new n(function(e){return i.subscribe(e)})}if(ec("iterator")&&(r=ep(t,ef)))return new n(function(e){ev(function(){if(!e.closed){for(var n,i=er(r.call(t));!(n=i()).done;){var a=n.value;if(e.next(a),e.closed)return}e.complete()}})});if(Array.isArray(t))return new n(function(e){ev(function(){if(!e.closed){for(var n=0;n0))return n.connection.key;var r=n.connection.filter?n.connection.filter:[];r.sort();var i={};return r.forEach(function(e){i[e]=t[e]}),"".concat(n.connection.key,"(").concat(eV(i),")")}var a=e;if(t){var o=eV(t);a+="(".concat(o,")")}return n&&Object.keys(n).forEach(function(e){-1===eW.indexOf(e)&&(n[e]&&Object.keys(n[e]).length?a+="@".concat(e,"(").concat(eV(n[e]),")"):a+="@".concat(e))}),a},{setStringify:function(e){var t=eV;return eV=e,t}}),eV=function(e){return JSON.stringify(e,eq)};function eq(e,t){return(0,eO.s)(t)&&!Array.isArray(t)&&(t=Object.keys(t).sort().reduce(function(e,n){return e[n]=t[n],e},{})),t}function eZ(e,t){if(e.arguments&&e.arguments.length){var n={};return e.arguments.forEach(function(e){var r;return ez(n,e.name,e.value,t)}),n}return null}function eX(e){return e.alias?e.alias.value:e.name.value}function eJ(e,t,n){for(var r,i=0,a=t.selections;it.indexOf(i))throw __DEV__?new Q.ej("illegal argument: ".concat(i)):new Q.ej(27)}return e}function tt(e,t){return t?t(e):eT.of()}function tn(e){return"function"==typeof e?new ta(e):e}function tr(e){return e.request.length<=1}var ti=function(e){function t(t,n){var r=e.call(this,t)||this;return r.link=n,r}return(0,en.ZT)(t,e),t}(Error),ta=function(){function e(e){e&&(this.request=e)}return e.empty=function(){return new e(function(){return eT.of()})},e.from=function(t){return 0===t.length?e.empty():t.map(tn).reduce(function(e,t){return e.concat(t)})},e.split=function(t,n,r){var i=tn(n),a=tn(r||new e(tt));return new e(tr(i)&&tr(a)?function(e){return t(e)?i.request(e)||eT.of():a.request(e)||eT.of()}:function(e,n){return t(e)?i.request(e,n)||eT.of():a.request(e,n)||eT.of()})},e.execute=function(e,t){return e.request(eM(t.context,e7(te(t))))||eT.of()},e.concat=function(t,n){var r=tn(t);if(tr(r))return __DEV__&&Q.kG.warn(new ti("You are calling concat on a terminating link, which will have no effect",r)),r;var i=tn(n);return new e(tr(i)?function(e){return r.request(e,function(e){return i.request(e)||eT.of()})||eT.of()}:function(e,t){return r.request(e,function(e){return i.request(e,t)||eT.of()})||eT.of()})},e.prototype.split=function(t,n,r){return this.concat(e.split(t,n,r||new e(tt)))},e.prototype.concat=function(t){return e.concat(this,t)},e.prototype.request=function(e,t){throw __DEV__?new Q.ej("request is not implemented"):new Q.ej(22)},e.prototype.onError=function(e,t){if(t&&t.error)return t.error(e),!1;throw e},e.prototype.setOnError=function(e){return this.onError=e,this},e}(),to=__webpack_require__(25821),ts=__webpack_require__(25217),tu={Name:[],Document:["definitions"],OperationDefinition:["name","variableDefinitions","directives","selectionSet"],VariableDefinition:["variable","type","defaultValue","directives"],Variable:["name"],SelectionSet:["selections"],Field:["alias","name","arguments","directives","selectionSet"],Argument:["name","value"],FragmentSpread:["name","directives"],InlineFragment:["typeCondition","directives","selectionSet"],FragmentDefinition:["name","variableDefinitions","typeCondition","directives","selectionSet"],IntValue:[],FloatValue:[],StringValue:[],BooleanValue:[],NullValue:[],EnumValue:[],ListValue:["values"],ObjectValue:["fields"],ObjectField:["name","value"],Directive:["name","arguments"],NamedType:["name"],ListType:["type"],NonNullType:["type"],SchemaDefinition:["description","directives","operationTypes"],OperationTypeDefinition:["type"],ScalarTypeDefinition:["description","name","directives"],ObjectTypeDefinition:["description","name","interfaces","directives","fields"],FieldDefinition:["description","name","arguments","type","directives"],InputValueDefinition:["description","name","type","defaultValue","directives"],InterfaceTypeDefinition:["description","name","interfaces","directives","fields"],UnionTypeDefinition:["description","name","directives","types"],EnumTypeDefinition:["description","name","directives","values"],EnumValueDefinition:["description","name","directives"],InputObjectTypeDefinition:["description","name","directives","fields"],DirectiveDefinition:["description","name","arguments","locations"],SchemaExtension:["directives","operationTypes"],ScalarTypeExtension:["name","directives"],ObjectTypeExtension:["name","interfaces","directives","fields"],InterfaceTypeExtension:["name","interfaces","directives","fields"],UnionTypeExtension:["name","directives","types"],EnumTypeExtension:["name","directives","values"],InputObjectTypeExtension:["name","directives","fields"]},tc=Object.freeze({});function tl(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:tu,r=void 0,i=Array.isArray(e),a=[e],o=-1,s=[],u=void 0,c=void 0,l=void 0,f=[],d=[],h=e;do{var p,b=++o===a.length,m=b&&0!==s.length;if(b){if(c=0===d.length?void 0:f[f.length-1],u=l,l=d.pop(),m){if(i)u=u.slice();else{for(var g={},v=0,y=Object.keys(u);v1)for(var r=new tB,i=1;i=0;--a){var o=i[a],s=isNaN(+o)?{}:[];s[o]=t,t=s}n=r.merge(n,t)}),n}var tW=Object.prototype.hasOwnProperty;function tK(e,t){var n,r,i,a,o;return(0,en.mG)(this,void 0,void 0,function(){var s,u,c,l,f,d,h,p,b,m,g,v,y,w,_,E,S,k,x,T,M,O,A;return(0,en.Jh)(this,function(L){switch(L.label){case 0:if(void 0===TextDecoder)throw Error("TextDecoder must be defined in the environment: please import a polyfill.");s=new TextDecoder("utf-8"),u=null===(n=e.headers)||void 0===n?void 0:n.get("content-type"),c="boundary=",l=(null==u?void 0:u.includes(c))?null==u?void 0:u.substring((null==u?void 0:u.indexOf(c))+c.length).replace(/['"]/g,"").replace(/\;(.*)/gm,"").trim():"-",f="\r\n--".concat(l),d="",h=tI(e),p=!0,L.label=1;case 1:if(!p)return[3,3];return[4,h.next()];case 2:for(m=(b=L.sent()).value,g=b.done,v="string"==typeof m?m:s.decode(m),y=d.length-f.length+1,p=!g,d+=v,w=d.indexOf(f,y);w>-1;){if(_=void 0,_=(O=[d.slice(0,w),d.slice(w+f.length),])[0],d=O[1],E=_.indexOf("\r\n\r\n"),(k=(S=tV(_.slice(0,E)))["content-type"])&&-1===k.toLowerCase().indexOf("application/json"))throw Error("Unsupported patch content type: application/json is required.");if(x=_.slice(E))try{T=tq(e,x),Object.keys(T).length>1||"data"in T||"incremental"in T||"errors"in T||"payload"in T?tz(T)?(M={},"payload"in T&&(M=(0,en.pi)({},T.payload)),"errors"in T&&(M=(0,en.pi)((0,en.pi)({},M),{extensions:(0,en.pi)((0,en.pi)({},"extensions"in M?M.extensions:null),((A={})[tN.YG]=T.errors,A))})),null===(r=t.next)||void 0===r||r.call(t,M)):null===(i=t.next)||void 0===i||i.call(t,T):1===Object.keys(T).length&&"hasNext"in T&&!T.hasNext&&(null===(a=t.complete)||void 0===a||a.call(t))}catch(C){tZ(C,t)}w=d.indexOf(f)}return[3,1];case 3:return null===(o=t.complete)||void 0===o||o.call(t),[2]}})})}function tV(e){var t={};return e.split("\n").forEach(function(e){var n=e.indexOf(":");if(n>-1){var r=e.slice(0,n).trim().toLowerCase(),i=e.slice(n+1).trim();t[r]=i}}),t}function tq(e,t){e.status>=300&&tD(e,function(){try{return JSON.parse(t)}catch(e){return t}}(),"Response not successful: Received status code ".concat(e.status));try{return JSON.parse(t)}catch(n){var r=n;throw r.name="ServerParseError",r.response=e,r.statusCode=e.status,r.bodyText=t,r}}function tZ(e,t){var n,r;"AbortError"!==e.name&&(e.result&&e.result.errors&&e.result.data&&(null===(n=t.next)||void 0===n||n.call(t,e.result)),null===(r=t.error)||void 0===r||r.call(t,e))}function tX(e,t,n){tJ(t)(e).then(function(e){var t,r;null===(t=n.next)||void 0===t||t.call(n,e),null===(r=n.complete)||void 0===r||r.call(n)}).catch(function(e){return tZ(e,n)})}function tJ(e){return function(t){return t.text().then(function(e){return tq(t,e)}).then(function(n){return t.status>=300&&tD(t,n,"Response not successful: Received status code ".concat(t.status)),Array.isArray(n)||tW.call(n,"data")||tW.call(n,"errors")||tD(t,n,"Server response was missing for query '".concat(Array.isArray(e)?e.map(function(e){return e.operationName}):e.operationName,"'.")),n})}}var tQ=function(e){if(!e&&"undefined"==typeof fetch)throw __DEV__?new Q.ej("\n\"fetch\" has not been found globally and no fetcher has been configured. To fix this, install a fetch package (like https://www.npmjs.com/package/cross-fetch), instantiate the fetcher, and pass it into your HttpLink constructor. For example:\n\nimport fetch from 'cross-fetch';\nimport { ApolloClient, HttpLink } from '@apollo/client';\nconst client = new ApolloClient({\n link: new HttpLink({ uri: '/graphql', fetch })\n});\n "):new Q.ej(23)},t1=__webpack_require__(87392);function t0(e){return tl(e,{leave:t3})}var t2=80,t3={Name:function(e){return e.value},Variable:function(e){return"$"+e.name},Document:function(e){return t6(e.definitions,"\n\n")+"\n"},OperationDefinition:function(e){var t=e.operation,n=e.name,r=t8("(",t6(e.variableDefinitions,", "),")"),i=t6(e.directives," "),a=e.selectionSet;return n||i||r||"query"!==t?t6([t,t6([n,r]),i,a]," "):a},VariableDefinition:function(e){var t=e.variable,n=e.type,r=e.defaultValue,i=e.directives;return t+": "+n+t8(" = ",r)+t8(" ",t6(i," "))},SelectionSet:function(e){return t5(e.selections)},Field:function(e){var t=e.alias,n=e.name,r=e.arguments,i=e.directives,a=e.selectionSet,o=t8("",t,": ")+n,s=o+t8("(",t6(r,", "),")");return s.length>t2&&(s=o+t8("(\n",t9(t6(r,"\n")),"\n)")),t6([s,t6(i," "),a]," ")},Argument:function(e){var t;return e.name+": "+e.value},FragmentSpread:function(e){var t;return"..."+e.name+t8(" ",t6(e.directives," "))},InlineFragment:function(e){var t=e.typeCondition,n=e.directives,r=e.selectionSet;return t6(["...",t8("on ",t),t6(n," "),r]," ")},FragmentDefinition:function(e){var t=e.name,n=e.typeCondition,r=e.variableDefinitions,i=e.directives,a=e.selectionSet;return"fragment ".concat(t).concat(t8("(",t6(r,", "),")")," ")+"on ".concat(n," ").concat(t8("",t6(i," ")," "))+a},IntValue:function(e){return e.value},FloatValue:function(e){return e.value},StringValue:function(e,t){var n=e.value;return e.block?(0,t1.LZ)(n,"description"===t?"":" "):JSON.stringify(n)},BooleanValue:function(e){return e.value?"true":"false"},NullValue:function(){return"null"},EnumValue:function(e){return e.value},ListValue:function(e){return"["+t6(e.values,", ")+"]"},ObjectValue:function(e){return"{"+t6(e.fields,", ")+"}"},ObjectField:function(e){var t;return e.name+": "+e.value},Directive:function(e){var t;return"@"+e.name+t8("(",t6(e.arguments,", "),")")},NamedType:function(e){return e.name},ListType:function(e){return"["+e.type+"]"},NonNullType:function(e){return e.type+"!"},SchemaDefinition:t4(function(e){var t=e.directives,n=e.operationTypes;return t6(["schema",t6(t," "),t5(n)]," ")}),OperationTypeDefinition:function(e){var t;return e.operation+": "+e.type},ScalarTypeDefinition:t4(function(e){var t;return t6(["scalar",e.name,t6(e.directives," ")]," ")}),ObjectTypeDefinition:t4(function(e){var t=e.name,n=e.interfaces,r=e.directives,i=e.fields;return t6(["type",t,t8("implements ",t6(n," & ")),t6(r," "),t5(i)]," ")}),FieldDefinition:t4(function(e){var t=e.name,n=e.arguments,r=e.type,i=e.directives;return t+(ne(n)?t8("(\n",t9(t6(n,"\n")),"\n)"):t8("(",t6(n,", "),")"))+": "+r+t8(" ",t6(i," "))}),InputValueDefinition:t4(function(e){var t=e.name,n=e.type,r=e.defaultValue,i=e.directives;return t6([t+": "+n,t8("= ",r),t6(i," ")]," ")}),InterfaceTypeDefinition:t4(function(e){var t=e.name,n=e.interfaces,r=e.directives,i=e.fields;return t6(["interface",t,t8("implements ",t6(n," & ")),t6(r," "),t5(i)]," ")}),UnionTypeDefinition:t4(function(e){var t=e.name,n=e.directives,r=e.types;return t6(["union",t,t6(n," "),r&&0!==r.length?"= "+t6(r," | "):""]," ")}),EnumTypeDefinition:t4(function(e){var t=e.name,n=e.directives,r=e.values;return t6(["enum",t,t6(n," "),t5(r)]," ")}),EnumValueDefinition:t4(function(e){var t;return t6([e.name,t6(e.directives," ")]," ")}),InputObjectTypeDefinition:t4(function(e){var t=e.name,n=e.directives,r=e.fields;return t6(["input",t,t6(n," "),t5(r)]," ")}),DirectiveDefinition:t4(function(e){var t=e.name,n=e.arguments,r=e.repeatable,i=e.locations;return"directive @"+t+(ne(n)?t8("(\n",t9(t6(n,"\n")),"\n)"):t8("(",t6(n,", "),")"))+(r?" repeatable":"")+" on "+t6(i," | ")}),SchemaExtension:function(e){var t=e.directives,n=e.operationTypes;return t6(["extend schema",t6(t," "),t5(n)]," ")},ScalarTypeExtension:function(e){var t;return t6(["extend scalar",e.name,t6(e.directives," ")]," ")},ObjectTypeExtension:function(e){var t=e.name,n=e.interfaces,r=e.directives,i=e.fields;return t6(["extend type",t,t8("implements ",t6(n," & ")),t6(r," "),t5(i)]," ")},InterfaceTypeExtension:function(e){var t=e.name,n=e.interfaces,r=e.directives,i=e.fields;return t6(["extend interface",t,t8("implements ",t6(n," & ")),t6(r," "),t5(i)]," ")},UnionTypeExtension:function(e){var t=e.name,n=e.directives,r=e.types;return t6(["extend union",t,t6(n," "),r&&0!==r.length?"= "+t6(r," | "):""]," ")},EnumTypeExtension:function(e){var t=e.name,n=e.directives,r=e.values;return t6(["extend enum",t,t6(n," "),t5(r)]," ")},InputObjectTypeExtension:function(e){var t=e.name,n=e.directives,r=e.fields;return t6(["extend input",t,t6(n," "),t5(r)]," ")}};function t4(e){return function(t){return t6([t.description,e(t)],"\n")}}function t6(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return null!==(t=null==e?void 0:e.filter(function(e){return e}).join(n))&&void 0!==t?t:""}function t5(e){return t8("{\n",t9(t6(e,"\n")),"\n}")}function t8(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";return null!=t&&""!==t?e+t+n:""}function t9(e){return t8(" ",e.replace(/\n/g,"\n "))}function t7(e){return -1!==e.indexOf("\n")}function ne(e){return null!=e&&e.some(t7)}var nt,nn,nr,ni={http:{includeQuery:!0,includeExtensions:!1,preserveHeaderCase:!1},headers:{accept:"*/*","content-type":"application/json"},options:{method:"POST"}},na=function(e,t){return t(e)};function no(e,t){for(var n=[],r=2;rObject.create(null),{forEach:nv,slice:ny}=Array.prototype,{hasOwnProperty:nw}=Object.prototype;class n_{constructor(e=!0,t=ng){this.weakness=e,this.makeData=t}lookup(...e){return this.lookupArray(e)}lookupArray(e){let t=this;return nv.call(e,e=>t=t.getChildTrie(e)),nw.call(t,"data")?t.data:t.data=this.makeData(ny.call(e))}peek(...e){return this.peekArray(e)}peekArray(e){let t=this;for(let n=0,r=e.length;t&&n=0;--o)t.definitions[o].kind===nL.h.OPERATION_DEFINITION&&++a;var s=nN(e),u=e.some(function(e){return e.remove}),c=function(e){return u&&e&&e.some(s)},l=new Map,f=!1,d={enter:function(e){if(c(e.directives))return f=!0,null}},h=tl(t,{Field:d,InlineFragment:d,VariableDefinition:{enter:function(){return!1}},Variable:{enter:function(e,t,n,r,a){var o=i(a);o&&o.variables.add(e.name.value)}},FragmentSpread:{enter:function(e,t,n,r,a){if(c(e.directives))return f=!0,null;var o=i(a);o&&o.fragmentSpreads.add(e.name.value)}},FragmentDefinition:{enter:function(e,t,n,r){l.set(JSON.stringify(r),e)},leave:function(e,t,n,i){return e===l.get(JSON.stringify(i))?e:a>0&&e.selectionSet.selections.every(function(e){return e.kind===nL.h.FIELD&&"__typename"===e.name.value})?(r(e.name.value).removed=!0,f=!0,null):void 0}},Directive:{leave:function(e){if(s(e))return f=!0,null}}});if(!f)return t;var p=function(e){return e.transitiveVars||(e.transitiveVars=new Set(e.variables),e.removed||e.fragmentSpreads.forEach(function(t){p(r(t)).transitiveVars.forEach(function(t){e.transitiveVars.add(t)})})),e},b=new Set;h.definitions.forEach(function(e){e.kind===nL.h.OPERATION_DEFINITION?p(n(e.name&&e.name.value)).fragmentSpreads.forEach(function(e){b.add(e)}):e.kind!==nL.h.FRAGMENT_DEFINITION||0!==a||r(e.name.value).removed||b.add(e.name.value)}),b.forEach(function(e){p(r(e)).fragmentSpreads.forEach(function(e){b.add(e)})});var m=function(e){return!!(!b.has(e)||r(e).removed)},g={enter:function(e){if(m(e.name.value))return null}};return nD(tl(h,{FragmentSpread:g,FragmentDefinition:g,OperationDefinition:{leave:function(e){if(e.variableDefinitions){var t=p(n(e.name&&e.name.value)).transitiveVars;if(t.size0},t.prototype.tearDownQuery=function(){this.isTornDown||(this.concast&&this.observer&&(this.concast.removeObserver(this.observer),delete this.concast,delete this.observer),this.stopPolling(),this.subscriptions.forEach(function(e){return e.unsubscribe()}),this.subscriptions.clear(),this.queryManager.stopQuery(this.queryId),this.observers.clear(),this.isTornDown=!0)},t}(eT);function n4(e){var t=e.options,n=t.fetchPolicy,r=t.nextFetchPolicy;return"cache-and-network"===n||"network-only"===n?e.reobserve({fetchPolicy:"cache-first",nextFetchPolicy:function(){return(this.nextFetchPolicy=r,"function"==typeof r)?r.apply(this,arguments):n}}):e.reobserve()}function n6(e){__DEV__&&Q.kG.error("Unhandled error",e.message,e.stack)}function n5(e){__DEV__&&e&&__DEV__&&Q.kG.debug("Missing cache result fields: ".concat(JSON.stringify(e)),e)}function n8(e){return"network-only"===e||"no-cache"===e||"standby"===e}nK(n3);function n9(e){return e.kind===nL.h.FIELD||e.kind===nL.h.FRAGMENT_SPREAD||e.kind===nL.h.INLINE_FRAGMENT}function n7(e){return e.kind===Kind.SCALAR_TYPE_DEFINITION||e.kind===Kind.OBJECT_TYPE_DEFINITION||e.kind===Kind.INTERFACE_TYPE_DEFINITION||e.kind===Kind.UNION_TYPE_DEFINITION||e.kind===Kind.ENUM_TYPE_DEFINITION||e.kind===Kind.INPUT_OBJECT_TYPE_DEFINITION}function re(e){return e.kind===Kind.SCALAR_TYPE_EXTENSION||e.kind===Kind.OBJECT_TYPE_EXTENSION||e.kind===Kind.INTERFACE_TYPE_EXTENSION||e.kind===Kind.UNION_TYPE_EXTENSION||e.kind===Kind.ENUM_TYPE_EXTENSION||e.kind===Kind.INPUT_OBJECT_TYPE_EXTENSION}var rt=function(){return Object.create(null)},rn=Array.prototype,rr=rn.forEach,ri=rn.slice,ra=function(){function e(e,t){void 0===e&&(e=!0),void 0===t&&(t=rt),this.weakness=e,this.makeData=t}return e.prototype.lookup=function(){for(var e=[],t=0;tclass{constructor(){this.id=["slot",rc++,Date.now(),Math.random().toString(36).slice(2),].join(":")}hasValue(){for(let e=rs;e;e=e.parent)if(this.id in e.slots){let t=e.slots[this.id];if(t===ru)break;return e!==rs&&(rs.slots[this.id]=t),!0}return rs&&(rs.slots[this.id]=ru),!1}getValue(){if(this.hasValue())return rs.slots[this.id]}withValue(e,t,n,r){let i={__proto__:null,[this.id]:e},a=rs;rs={parent:a,slots:i};try{return t.apply(r,n)}finally{rs=a}}static bind(e){let t=rs;return function(){let n=rs;try{return rs=t,e.apply(this,arguments)}finally{rs=n}}}static noContext(e,t,n){if(!rs)return e.apply(n,t);{let r=rs;try{return rs=null,e.apply(n,t)}finally{rs=r}}}};function rf(e){try{return e()}catch(t){}}let rd="@wry/context:Slot",rh=rf(()=>globalThis)||rf(()=>global)||Object.create(null),rp=rh,rb=rp[rd]||Array[rd]||function(e){try{Object.defineProperty(rp,rd,{value:e,enumerable:!1,writable:!1,configurable:!0})}finally{return e}}(rl()),{bind:rm,noContext:rg}=rb;function rv(){}var ry=function(){function e(e,t){void 0===e&&(e=1/0),void 0===t&&(t=rv),this.max=e,this.dispose=t,this.map=new Map,this.newest=null,this.oldest=null}return e.prototype.has=function(e){return this.map.has(e)},e.prototype.get=function(e){var t=this.getNode(e);return t&&t.value},e.prototype.getNode=function(e){var t=this.map.get(e);if(t&&t!==this.newest){var n=t.older,r=t.newer;r&&(r.older=n),n&&(n.newer=r),t.older=this.newest,t.older.newer=t,t.newer=null,this.newest=t,t===this.oldest&&(this.oldest=r)}return t},e.prototype.set=function(e,t){var n=this.getNode(e);return n?n.value=t:(n={key:e,value:t,newer:null,older:this.newest},this.newest&&(this.newest.newer=n),this.newest=n,this.oldest=this.oldest||n,this.map.set(e,n),n.value)},e.prototype.clean=function(){for(;this.oldest&&this.map.size>this.max;)this.delete(this.oldest.key)},e.prototype.delete=function(e){var t=this.map.get(e);return!!t&&(t===this.newest&&(this.newest=t.older),t===this.oldest&&(this.oldest=t.newer),t.newer&&(t.newer.older=t.older),t.older&&(t.older.newer=t.newer),this.map.delete(e),this.dispose(t.value,e),!0)},e}(),rw=new rb,r_=Object.prototype.hasOwnProperty,rE=void 0===(n=Array.from)?function(e){var t=[];return e.forEach(function(e){return t.push(e)}),t}:n;function rS(e){var t=e.unsubscribe;"function"==typeof t&&(e.unsubscribe=void 0,t())}var rk=[],rx=100;function rT(e,t){if(!e)throw Error(t||"assertion failure")}function rM(e,t){var n=e.length;return n>0&&n===t.length&&e[n-1]===t[n-1]}function rO(e){switch(e.length){case 0:throw Error("unknown value");case 1:return e[0];case 2:throw e[1]}}function rA(e){return e.slice(0)}var rL=function(){function e(t){this.fn=t,this.parents=new Set,this.childValues=new Map,this.dirtyChildren=null,this.dirty=!0,this.recomputing=!1,this.value=[],this.deps=null,++e.count}return e.prototype.peek=function(){if(1===this.value.length&&!rN(this))return rC(this),this.value[0]},e.prototype.recompute=function(e){return rT(!this.recomputing,"already recomputing"),rC(this),rN(this)?rI(this,e):rO(this.value)},e.prototype.setDirty=function(){this.dirty||(this.dirty=!0,this.value.length=0,rR(this),rS(this))},e.prototype.dispose=function(){var e=this;this.setDirty(),rH(this),rF(this,function(t,n){t.setDirty(),r$(t,e)})},e.prototype.forget=function(){this.dispose()},e.prototype.dependOn=function(e){e.add(this),this.deps||(this.deps=rk.pop()||new Set),this.deps.add(e)},e.prototype.forgetDeps=function(){var e=this;this.deps&&(rE(this.deps).forEach(function(t){return t.delete(e)}),this.deps.clear(),rk.push(this.deps),this.deps=null)},e.count=0,e}();function rC(e){var t=rw.getValue();if(t)return e.parents.add(t),t.childValues.has(e)||t.childValues.set(e,[]),rN(e)?rY(t,e):rB(t,e),t}function rI(e,t){return rH(e),rw.withValue(e,rD,[e,t]),rz(e,t)&&rP(e),rO(e.value)}function rD(e,t){e.recomputing=!0,e.value.length=0;try{e.value[0]=e.fn.apply(null,t)}catch(n){e.value[1]=n}e.recomputing=!1}function rN(e){return e.dirty||!!(e.dirtyChildren&&e.dirtyChildren.size)}function rP(e){e.dirty=!1,!rN(e)&&rj(e)}function rR(e){rF(e,rY)}function rj(e){rF(e,rB)}function rF(e,t){var n=e.parents.size;if(n)for(var r=rE(e.parents),i=0;i0&&e.childValues.forEach(function(t,n){r$(e,n)}),e.forgetDeps(),rT(null===e.dirtyChildren)}function r$(e,t){t.parents.delete(e),e.childValues.delete(t),rU(e,t)}function rz(e,t){if("function"==typeof e.subscribe)try{rS(e),e.unsubscribe=e.subscribe.apply(null,t)}catch(n){return e.setDirty(),!1}return!0}var rG={setDirty:!0,dispose:!0,forget:!0};function rW(e){var t=new Map,n=e&&e.subscribe;function r(e){var r=rw.getValue();if(r){var i=t.get(e);i||t.set(e,i=new Set),r.dependOn(i),"function"==typeof n&&(rS(i),i.unsubscribe=n(e))}}return r.dirty=function(e,n){var r=t.get(e);if(r){var i=n&&r_.call(rG,n)?n:"setDirty";rE(r).forEach(function(e){return e[i]()}),t.delete(e),rS(r)}},r}function rK(){var e=new ra("function"==typeof WeakMap);return function(){return e.lookupArray(arguments)}}var rV=rK(),rq=new Set;function rZ(e,t){void 0===t&&(t=Object.create(null));var n=new ry(t.max||65536,function(e){return e.dispose()}),r=t.keyArgs,i=t.makeCacheKey||rK(),a=function(){var a=i.apply(null,r?r.apply(null,arguments):arguments);if(void 0===a)return e.apply(null,arguments);var o=n.get(a);o||(n.set(a,o=new rL(e)),o.subscribe=t.subscribe,o.forget=function(){return n.delete(a)});var s=o.recompute(Array.prototype.slice.call(arguments));return n.set(a,o),rq.add(n),rw.hasValue()||(rq.forEach(function(e){return e.clean()}),rq.clear()),s};function o(e){var t=n.get(e);t&&t.setDirty()}function s(e){var t=n.get(e);if(t)return t.peek()}function u(e){return n.delete(e)}return Object.defineProperty(a,"size",{get:function(){return n.map.size},configurable:!1,enumerable:!1}),a.dirtyKey=o,a.dirty=function(){o(i.apply(null,arguments))},a.peekKey=s,a.peek=function(){return s(i.apply(null,arguments))},a.forgetKey=u,a.forget=function(){return u(i.apply(null,arguments))},a.makeCacheKey=i,a.getKey=r?function(){return i.apply(null,r.apply(null,arguments))}:i,Object.freeze(a)}var rX=new rb,rJ=new WeakMap;function rQ(e){var t=rJ.get(e);return t||rJ.set(e,t={vars:new Set,dep:rW()}),t}function r1(e){rQ(e).vars.forEach(function(t){return t.forgetCache(e)})}function r0(e){rQ(e).vars.forEach(function(t){return t.attachCache(e)})}function r2(e){var t=new Set,n=new Set,r=function(a){if(arguments.length>0){if(e!==a){e=a,t.forEach(function(e){rQ(e).dep.dirty(r),r3(e)});var o=Array.from(n);n.clear(),o.forEach(function(t){return t(e)})}}else{var s=rX.getValue();s&&(i(s),rQ(s).dep(r))}return e};r.onNextChange=function(e){return n.add(e),function(){n.delete(e)}};var i=r.attachCache=function(e){return t.add(e),rQ(e).vars.add(r),r};return r.forgetCache=function(e){return t.delete(e)},r}function r3(e){e.broadcastWatches&&e.broadcastWatches()}var r4=function(){function e(e){var t=e.cache,n=e.client,r=e.resolvers,i=e.fragmentMatcher;this.selectionsToResolveCache=new WeakMap,this.cache=t,n&&(this.client=n),r&&this.addResolvers(r),i&&this.setFragmentMatcher(i)}return e.prototype.addResolvers=function(e){var t=this;this.resolvers=this.resolvers||{},Array.isArray(e)?e.forEach(function(e){t.resolvers=tj(t.resolvers,e)}):this.resolvers=tj(this.resolvers,e)},e.prototype.setResolvers=function(e){this.resolvers={},this.addResolvers(e)},e.prototype.getResolvers=function(){return this.resolvers||{}},e.prototype.runResolvers=function(e){var t=e.document,n=e.remoteResult,r=e.context,i=e.variables,a=e.onlyRunForcedResolvers,o=void 0!==a&&a;return(0,en.mG)(this,void 0,void 0,function(){return(0,en.Jh)(this,function(e){return t?[2,this.resolveDocument(t,n.data,r,i,this.fragmentMatcher,o).then(function(e){return(0,en.pi)((0,en.pi)({},n),{data:e.result})})]:[2,n]})})},e.prototype.setFragmentMatcher=function(e){this.fragmentMatcher=e},e.prototype.getFragmentMatcher=function(){return this.fragmentMatcher},e.prototype.clientQuery=function(e){return tb(["client"],e)&&this.resolvers?e:null},e.prototype.serverQuery=function(e){return n$(e)},e.prototype.prepareContext=function(e){var t=this.cache;return(0,en.pi)((0,en.pi)({},e),{cache:t,getCacheKey:function(e){return t.identify(e)}})},e.prototype.addExportedVariables=function(e,t,n){return void 0===t&&(t={}),void 0===n&&(n={}),(0,en.mG)(this,void 0,void 0,function(){return(0,en.Jh)(this,function(r){return e?[2,this.resolveDocument(e,this.buildRootValueFromCache(e,t)||{},this.prepareContext(n),t).then(function(e){return(0,en.pi)((0,en.pi)({},t),e.exportedVariables)})]:[2,(0,en.pi)({},t)]})})},e.prototype.shouldForceResolvers=function(e){var t=!1;return tl(e,{Directive:{enter:function(e){if("client"===e.name.value&&e.arguments&&(t=e.arguments.some(function(e){return"always"===e.name.value&&"BooleanValue"===e.value.kind&&!0===e.value.value})))return tc}}}),t},e.prototype.buildRootValueFromCache=function(e,t){return this.cache.diff({query:nH(e),variables:t,returnPartialData:!0,optimistic:!1}).result},e.prototype.resolveDocument=function(e,t,n,r,i,a){return void 0===n&&(n={}),void 0===r&&(r={}),void 0===i&&(i=function(){return!0}),void 0===a&&(a=!1),(0,en.mG)(this,void 0,void 0,function(){var o,s,u,c,l,f,d,h,p,b,m;return(0,en.Jh)(this,function(g){return o=e8(e),s=e4(e),u=eL(s),c=this.collectSelectionsToResolve(o,u),f=(l=o.operation)?l.charAt(0).toUpperCase()+l.slice(1):"Query",d=this,h=d.cache,p=d.client,b={fragmentMap:u,context:(0,en.pi)((0,en.pi)({},n),{cache:h,client:p}),variables:r,fragmentMatcher:i,defaultOperationType:f,exportedVariables:{},selectionsToResolve:c,onlyRunForcedResolvers:a},m=!1,[2,this.resolveSelectionSet(o.selectionSet,m,t,b).then(function(e){return{result:e,exportedVariables:b.exportedVariables}})]})})},e.prototype.resolveSelectionSet=function(e,t,n,r){return(0,en.mG)(this,void 0,void 0,function(){var i,a,o,s,u,c=this;return(0,en.Jh)(this,function(l){return i=r.fragmentMap,a=r.context,o=r.variables,s=[n],u=function(e){return(0,en.mG)(c,void 0,void 0,function(){var u,c;return(0,en.Jh)(this,function(l){return(t||r.selectionsToResolve.has(e))&&td(e,o)?eQ(e)?[2,this.resolveField(e,t,n,r).then(function(t){var n;void 0!==t&&s.push(((n={})[eX(e)]=t,n))})]:(e1(e)?u=e:(u=i[e.name.value],__DEV__?(0,Q.kG)(u,"No fragment named ".concat(e.name.value)):(0,Q.kG)(u,11)),u&&u.typeCondition&&(c=u.typeCondition.name.value,r.fragmentMatcher(n,c,a)))?[2,this.resolveSelectionSet(u.selectionSet,t,n,r).then(function(e){s.push(e)})]:[2]:[2]})})},[2,Promise.all(e.selections.map(u)).then(function(){return tF(s)})]})})},e.prototype.resolveField=function(e,t,n,r){return(0,en.mG)(this,void 0,void 0,function(){var i,a,o,s,u,c,l,f,d,h=this;return(0,en.Jh)(this,function(p){return n?(i=r.variables,a=e.name.value,o=eX(e),s=a!==o,c=Promise.resolve(u=n[o]||n[a]),(!r.onlyRunForcedResolvers||this.shouldForceResolvers(e))&&(l=n.__typename||r.defaultOperationType,(f=this.resolvers&&this.resolvers[l])&&(d=f[s?a:o])&&(c=Promise.resolve(rX.withValue(this.cache,d,[n,eZ(e,i),r.context,{field:e,fragmentMap:r.fragmentMap},])))),[2,c.then(function(n){if(void 0===n&&(n=u),e.directives&&e.directives.forEach(function(e){"export"===e.name.value&&e.arguments&&e.arguments.forEach(function(e){"as"===e.name.value&&"StringValue"===e.value.kind&&(r.exportedVariables[e.value.value]=n)})}),!e.selectionSet||null==n)return n;var i,a,o=null!==(a=null===(i=e.directives)||void 0===i?void 0:i.some(function(e){return"client"===e.name.value}))&&void 0!==a&&a;return Array.isArray(n)?h.resolveSubSelectedArray(e,t||o,n,r):e.selectionSet?h.resolveSelectionSet(e.selectionSet,t||o,n,r):void 0})]):[2,null]})})},e.prototype.resolveSubSelectedArray=function(e,t,n,r){var i=this;return Promise.all(n.map(function(n){return null===n?null:Array.isArray(n)?i.resolveSubSelectedArray(e,t,n,r):e.selectionSet?i.resolveSelectionSet(e.selectionSet,t,n,r):void 0}))},e.prototype.collectSelectionsToResolve=function(e,t){var n=function(e){return!Array.isArray(e)},r=this.selectionsToResolveCache;function i(e){if(!r.has(e)){var a=new Set;r.set(e,a),tl(e,{Directive:function(e,t,r,i,o){"client"===e.name.value&&o.forEach(function(e){n(e)&&n9(e)&&a.add(e)})},FragmentSpread:function(e,r,o,s,u){var c=t[e.name.value];__DEV__?(0,Q.kG)(c,"No fragment named ".concat(e.name.value)):(0,Q.kG)(c,12);var l=i(c);l.size>0&&(u.forEach(function(e){n(e)&&n9(e)&&a.add(e)}),a.add(e),l.forEach(function(e){a.add(e)}))}})}return r.get(e)}return i(e)},e}(),r6=new(t_.mr?WeakMap:Map);function r5(e,t){var n=e[t];"function"==typeof n&&(e[t]=function(){return r6.set(e,(r6.get(e)+1)%1e15),n.apply(this,arguments)})}function r8(e){e.notifyTimeout&&(clearTimeout(e.notifyTimeout),e.notifyTimeout=void 0)}var r9=function(){function e(e,t){void 0===t&&(t=e.generateQueryId()),this.queryId=t,this.listeners=new Set,this.document=null,this.lastRequestId=1,this.subscriptions=new Set,this.stopped=!1,this.dirty=!1,this.observableQuery=null;var n=this.cache=e.cache;r6.has(n)||(r6.set(n,0),r5(n,"evict"),r5(n,"modify"),r5(n,"reset"))}return e.prototype.init=function(e){var t=e.networkStatus||nZ.I.loading;return this.variables&&this.networkStatus!==nZ.I.loading&&!(0,nm.D)(this.variables,e.variables)&&(t=nZ.I.setVariables),(0,nm.D)(e.variables,this.variables)||(this.lastDiff=void 0),Object.assign(this,{document:e.document,variables:e.variables,networkError:null,graphQLErrors:this.graphQLErrors||[],networkStatus:t}),e.observableQuery&&this.setObservableQuery(e.observableQuery),e.lastRequestId&&(this.lastRequestId=e.lastRequestId),this},e.prototype.reset=function(){r8(this),this.dirty=!1},e.prototype.getDiff=function(e){void 0===e&&(e=this.variables);var t=this.getDiffOptions(e);if(this.lastDiff&&(0,nm.D)(t,this.lastDiff.options))return this.lastDiff.diff;this.updateWatch(this.variables=e);var n=this.observableQuery;if(n&&"no-cache"===n.options.fetchPolicy)return{complete:!1};var r=this.cache.diff(t);return this.updateLastDiff(r,t),r},e.prototype.updateLastDiff=function(e,t){this.lastDiff=e?{diff:e,options:t||this.getDiffOptions()}:void 0},e.prototype.getDiffOptions=function(e){var t;return void 0===e&&(e=this.variables),{query:this.document,variables:e,returnPartialData:!0,optimistic:!0,canonizeResults:null===(t=this.observableQuery)||void 0===t?void 0:t.options.canonizeResults}},e.prototype.setDiff=function(e){var t=this,n=this.lastDiff&&this.lastDiff.diff;this.updateLastDiff(e),this.dirty||(0,nm.D)(n&&n.result,e&&e.result)||(this.dirty=!0,this.notifyTimeout||(this.notifyTimeout=setTimeout(function(){return t.notify()},0)))},e.prototype.setObservableQuery=function(e){var t=this;e!==this.observableQuery&&(this.oqListener&&this.listeners.delete(this.oqListener),this.observableQuery=e,e?(e.queryInfo=this,this.listeners.add(this.oqListener=function(){t.getDiff().fromOptimisticTransaction?e.observe():n4(e)})):delete this.oqListener)},e.prototype.notify=function(){var e=this;r8(this),this.shouldNotify()&&this.listeners.forEach(function(t){return t(e)}),this.dirty=!1},e.prototype.shouldNotify=function(){if(!this.dirty||!this.listeners.size)return!1;if((0,nZ.O)(this.networkStatus)&&this.observableQuery){var e=this.observableQuery.options.fetchPolicy;if("cache-only"!==e&&"cache-and-network"!==e)return!1}return!0},e.prototype.stop=function(){if(!this.stopped){this.stopped=!0,this.reset(),this.cancel(),this.cancel=e.prototype.cancel,this.subscriptions.forEach(function(e){return e.unsubscribe()});var t=this.observableQuery;t&&t.stopPolling()}},e.prototype.cancel=function(){},e.prototype.updateWatch=function(e){var t=this;void 0===e&&(e=this.variables);var n=this.observableQuery;if(!n||"no-cache"!==n.options.fetchPolicy){var r=(0,en.pi)((0,en.pi)({},this.getDiffOptions(e)),{watcher:this,callback:function(e){return t.setDiff(e)}});this.lastWatch&&(0,nm.D)(r,this.lastWatch)||(this.cancel(),this.cancel=this.cache.watch(this.lastWatch=r))}},e.prototype.resetLastWrite=function(){this.lastWrite=void 0},e.prototype.shouldWrite=function(e,t){var n=this.lastWrite;return!(n&&n.dmCount===r6.get(this.cache)&&(0,nm.D)(t,n.variables)&&(0,nm.D)(e.data,n.result.data))},e.prototype.markResult=function(e,t,n,r){var i=this,a=new tB,o=(0,tP.O)(e.errors)?e.errors.slice(0):[];if(this.reset(),"incremental"in e&&(0,tP.O)(e.incremental)){var s=tG(this.getDiff().result,e);e.data=s}else if("hasNext"in e&&e.hasNext){var u=this.getDiff();e.data=a.merge(u.result,e.data)}this.graphQLErrors=o,"no-cache"===n.fetchPolicy?this.updateLastDiff({result:e.data,complete:!0},this.getDiffOptions(n.variables)):0!==r&&(r7(e,n.errorPolicy)?this.cache.performTransaction(function(a){if(i.shouldWrite(e,n.variables))a.writeQuery({query:t,data:e.data,variables:n.variables,overwrite:1===r}),i.lastWrite={result:e,variables:n.variables,dmCount:r6.get(i.cache)};else if(i.lastDiff&&i.lastDiff.diff.complete){e.data=i.lastDiff.diff.result;return}var o=i.getDiffOptions(n.variables),s=a.diff(o);i.stopped||i.updateWatch(n.variables),i.updateLastDiff(s,o),s.complete&&(e.data=s.result)}):this.lastWrite=void 0)},e.prototype.markReady=function(){return this.networkError=null,this.networkStatus=nZ.I.ready},e.prototype.markError=function(e){return this.networkStatus=nZ.I.error,this.lastWrite=void 0,this.reset(),e.graphQLErrors&&(this.graphQLErrors=e.graphQLErrors),e.networkError&&(this.networkError=e.networkError),e},e}();function r7(e,t){void 0===t&&(t="none");var n="ignore"===t||"all"===t,r=!nO(e);return!r&&n&&e.data&&(r=!0),r}var ie=Object.prototype.hasOwnProperty,it=function(){function e(e){var t=e.cache,n=e.link,r=e.defaultOptions,i=e.queryDeduplication,a=void 0!==i&&i,o=e.onBroadcast,s=e.ssrMode,u=void 0!==s&&s,c=e.clientAwareness,l=void 0===c?{}:c,f=e.localState,d=e.assumeImmutableResults;this.clientAwareness={},this.queries=new Map,this.fetchCancelFns=new Map,this.transformCache=new(t_.mr?WeakMap:Map),this.queryIdCounter=1,this.requestIdCounter=1,this.mutationIdCounter=1,this.inFlightLinkObservables=new Map,this.cache=t,this.link=n,this.defaultOptions=r||Object.create(null),this.queryDeduplication=a,this.clientAwareness=l,this.localState=f||new r4({cache:t}),this.ssrMode=u,this.assumeImmutableResults=!!d,(this.onBroadcast=o)&&(this.mutationStore=Object.create(null))}return e.prototype.stop=function(){var e=this;this.queries.forEach(function(t,n){e.stopQueryNoBroadcast(n)}),this.cancelPendingFetches(__DEV__?new Q.ej("QueryManager stopped while query was in flight"):new Q.ej(14))},e.prototype.cancelPendingFetches=function(e){this.fetchCancelFns.forEach(function(t){return t(e)}),this.fetchCancelFns.clear()},e.prototype.mutate=function(e){var t,n,r=e.mutation,i=e.variables,a=e.optimisticResponse,o=e.updateQueries,s=e.refetchQueries,u=void 0===s?[]:s,c=e.awaitRefetchQueries,l=void 0!==c&&c,f=e.update,d=e.onQueryUpdated,h=e.fetchPolicy,p=void 0===h?(null===(t=this.defaultOptions.mutate)||void 0===t?void 0:t.fetchPolicy)||"network-only":h,b=e.errorPolicy,m=void 0===b?(null===(n=this.defaultOptions.mutate)||void 0===n?void 0:n.errorPolicy)||"none":b,g=e.keepRootFields,v=e.context;return(0,en.mG)(this,void 0,void 0,function(){var e,t,n,s,c,h;return(0,en.Jh)(this,function(b){switch(b.label){case 0:if(__DEV__?(0,Q.kG)(r,"mutation option is required. You must specify your GraphQL document in the mutation option."):(0,Q.kG)(r,15),__DEV__?(0,Q.kG)("network-only"===p||"no-cache"===p,"Mutations support only 'network-only' or 'no-cache' fetchPolicy strings. The default `network-only` behavior automatically writes mutation results to the cache. Passing `no-cache` skips the cache write."):(0,Q.kG)("network-only"===p||"no-cache"===p,16),e=this.generateMutationId(),n=(t=this.transform(r)).document,s=t.hasClientExports,r=this.cache.transformForLink(n),i=this.getVariables(r,i),!s)return[3,2];return[4,this.localState.addExportedVariables(r,i,v)];case 1:i=b.sent(),b.label=2;case 2:return c=this.mutationStore&&(this.mutationStore[e]={mutation:r,variables:i,loading:!0,error:null}),a&&this.markMutationOptimistic(a,{mutationId:e,document:r,variables:i,fetchPolicy:p,errorPolicy:m,context:v,updateQueries:o,update:f,keepRootFields:g}),this.broadcastQueries(),h=this,[2,new Promise(function(t,n){return nM(h.getObservableFromLink(r,(0,en.pi)((0,en.pi)({},v),{optimisticResponse:a}),i,!1),function(t){if(nO(t)&&"none"===m)throw new tN.cA({graphQLErrors:nA(t)});c&&(c.loading=!1,c.error=null);var n=(0,en.pi)({},t);return"function"==typeof u&&(u=u(n)),"ignore"===m&&nO(n)&&delete n.errors,h.markMutationResult({mutationId:e,result:n,document:r,variables:i,fetchPolicy:p,errorPolicy:m,context:v,update:f,updateQueries:o,awaitRefetchQueries:l,refetchQueries:u,removeOptimistic:a?e:void 0,onQueryUpdated:d,keepRootFields:g})}).subscribe({next:function(e){h.broadcastQueries(),"hasNext"in e&&!1!==e.hasNext||t(e)},error:function(t){c&&(c.loading=!1,c.error=t),a&&h.cache.removeOptimistic(e),h.broadcastQueries(),n(t instanceof tN.cA?t:new tN.cA({networkError:t}))}})})]}})})},e.prototype.markMutationResult=function(e,t){var n=this;void 0===t&&(t=this.cache);var r=e.result,i=[],a="no-cache"===e.fetchPolicy;if(!a&&r7(r,e.errorPolicy)){if(tU(r)||i.push({result:r.data,dataId:"ROOT_MUTATION",query:e.document,variables:e.variables}),tU(r)&&(0,tP.O)(r.incremental)){var o=t.diff({id:"ROOT_MUTATION",query:this.transform(e.document).asQuery,variables:e.variables,optimistic:!1,returnPartialData:!0}),s=void 0;o.result&&(s=tG(o.result,r)),void 0!==s&&(r.data=s,i.push({result:s,dataId:"ROOT_MUTATION",query:e.document,variables:e.variables}))}var u=e.updateQueries;u&&this.queries.forEach(function(e,a){var o=e.observableQuery,s=o&&o.queryName;if(s&&ie.call(u,s)){var c,l=u[s],f=n.queries.get(a),d=f.document,h=f.variables,p=t.diff({query:d,variables:h,returnPartialData:!0,optimistic:!1}),b=p.result;if(p.complete&&b){var m=l(b,{mutationResult:r,queryName:d&&e3(d)||void 0,queryVariables:h});m&&i.push({result:m,dataId:"ROOT_QUERY",query:d,variables:h})}}})}if(i.length>0||e.refetchQueries||e.update||e.onQueryUpdated||e.removeOptimistic){var c=[];if(this.refetchQueries({updateCache:function(t){a||i.forEach(function(e){return t.write(e)});var o=e.update,s=!t$(r)||tU(r)&&!r.hasNext;if(o){if(!a){var u=t.diff({id:"ROOT_MUTATION",query:n.transform(e.document).asQuery,variables:e.variables,optimistic:!1,returnPartialData:!0});u.complete&&("incremental"in(r=(0,en.pi)((0,en.pi)({},r),{data:u.result}))&&delete r.incremental,"hasNext"in r&&delete r.hasNext)}s&&o(t,r,{context:e.context,variables:e.variables})}a||e.keepRootFields||!s||t.modify({id:"ROOT_MUTATION",fields:function(e,t){var n=t.fieldName,r=t.DELETE;return"__typename"===n?e:r}})},include:e.refetchQueries,optimistic:!1,removeOptimistic:e.removeOptimistic,onQueryUpdated:e.onQueryUpdated||null}).forEach(function(e){return c.push(e)}),e.awaitRefetchQueries||e.onQueryUpdated)return Promise.all(c).then(function(){return r})}return Promise.resolve(r)},e.prototype.markMutationOptimistic=function(e,t){var n=this,r="function"==typeof e?e(t.variables):e;return this.cache.recordOptimisticTransaction(function(e){try{n.markMutationResult((0,en.pi)((0,en.pi)({},t),{result:{data:r}}),e)}catch(i){__DEV__&&Q.kG.error(i)}},t.mutationId)},e.prototype.fetchQuery=function(e,t,n){return this.fetchQueryObservable(e,t,n).promise},e.prototype.getQueryStore=function(){var e=Object.create(null);return this.queries.forEach(function(t,n){e[n]={variables:t.variables,networkStatus:t.networkStatus,networkError:t.networkError,graphQLErrors:t.graphQLErrors}}),e},e.prototype.resetErrors=function(e){var t=this.queries.get(e);t&&(t.networkError=void 0,t.graphQLErrors=[])},e.prototype.transform=function(e){var t=this.transformCache;if(!t.has(e)){var n=this.cache.transformDocument(e),r=nY(n),i=this.localState.clientQuery(n),a=r&&this.localState.serverQuery(r),o={document:n,hasClientExports:tm(n),hasForcedResolvers:this.localState.shouldForceResolvers(n),clientQuery:i,serverQuery:a,defaultVars:e9(e2(n)),asQuery:(0,en.pi)((0,en.pi)({},n),{definitions:n.definitions.map(function(e){return"OperationDefinition"===e.kind&&"query"!==e.operation?(0,en.pi)((0,en.pi)({},e),{operation:"query"}):e})})},s=function(e){e&&!t.has(e)&&t.set(e,o)};s(e),s(n),s(i),s(a)}return t.get(e)},e.prototype.getVariables=function(e,t){return(0,en.pi)((0,en.pi)({},this.transform(e).defaultVars),t)},e.prototype.watchQuery=function(e){void 0===(e=(0,en.pi)((0,en.pi)({},e),{variables:this.getVariables(e.query,e.variables)})).notifyOnNetworkStatusChange&&(e.notifyOnNetworkStatusChange=!1);var t=new r9(this),n=new n3({queryManager:this,queryInfo:t,options:e});return this.queries.set(n.queryId,t),t.init({document:n.query,observableQuery:n,variables:n.variables}),n},e.prototype.query=function(e,t){var n=this;return void 0===t&&(t=this.generateQueryId()),__DEV__?(0,Q.kG)(e.query,"query option is required. You must specify your GraphQL document in the query option."):(0,Q.kG)(e.query,17),__DEV__?(0,Q.kG)("Document"===e.query.kind,'You must wrap the query string in a "gql" tag.'):(0,Q.kG)("Document"===e.query.kind,18),__DEV__?(0,Q.kG)(!e.returnPartialData,"returnPartialData option only supported on watchQuery."):(0,Q.kG)(!e.returnPartialData,19),__DEV__?(0,Q.kG)(!e.pollInterval,"pollInterval option only supported on watchQuery."):(0,Q.kG)(!e.pollInterval,20),this.fetchQuery(t,e).finally(function(){return n.stopQuery(t)})},e.prototype.generateQueryId=function(){return String(this.queryIdCounter++)},e.prototype.generateRequestId=function(){return this.requestIdCounter++},e.prototype.generateMutationId=function(){return String(this.mutationIdCounter++)},e.prototype.stopQueryInStore=function(e){this.stopQueryInStoreNoBroadcast(e),this.broadcastQueries()},e.prototype.stopQueryInStoreNoBroadcast=function(e){var t=this.queries.get(e);t&&t.stop()},e.prototype.clearStore=function(e){return void 0===e&&(e={discardWatches:!0}),this.cancelPendingFetches(__DEV__?new Q.ej("Store reset while query was in flight (not completed in link chain)"):new Q.ej(21)),this.queries.forEach(function(e){e.observableQuery?e.networkStatus=nZ.I.loading:e.stop()}),this.mutationStore&&(this.mutationStore=Object.create(null)),this.cache.reset(e)},e.prototype.getObservableQueries=function(e){var t=this;void 0===e&&(e="active");var n=new Map,r=new Map,i=new Set;return Array.isArray(e)&&e.forEach(function(e){"string"==typeof e?r.set(e,!1):eN(e)?r.set(t.transform(e).document,!1):(0,eO.s)(e)&&e.query&&i.add(e)}),this.queries.forEach(function(t,i){var a=t.observableQuery,o=t.document;if(a){if("all"===e){n.set(i,a);return}var s=a.queryName;if("standby"===a.options.fetchPolicy||"active"===e&&!a.hasObservers())return;("active"===e||s&&r.has(s)||o&&r.has(o))&&(n.set(i,a),s&&r.set(s,!0),o&&r.set(o,!0))}}),i.size&&i.forEach(function(e){var r=nG("legacyOneTimeQuery"),i=t.getQuery(r).init({document:e.query,variables:e.variables}),a=new n3({queryManager:t,queryInfo:i,options:(0,en.pi)((0,en.pi)({},e),{fetchPolicy:"network-only"})});(0,Q.kG)(a.queryId===r),i.setObservableQuery(a),n.set(r,a)}),__DEV__&&r.size&&r.forEach(function(e,t){!e&&__DEV__&&Q.kG.warn("Unknown query ".concat("string"==typeof t?"named ":"").concat(JSON.stringify(t,null,2)," requested in refetchQueries options.include array"))}),n},e.prototype.reFetchObservableQueries=function(e){var t=this;void 0===e&&(e=!1);var n=[];return this.getObservableQueries(e?"all":"active").forEach(function(r,i){var a=r.options.fetchPolicy;r.resetLastResults(),(e||"standby"!==a&&"cache-only"!==a)&&n.push(r.refetch()),t.getQuery(i).setDiff(null)}),this.broadcastQueries(),Promise.all(n)},e.prototype.setObservableQuery=function(e){this.getQuery(e.queryId).setObservableQuery(e)},e.prototype.startGraphQLSubscription=function(e){var t=this,n=e.query,r=e.fetchPolicy,i=e.errorPolicy,a=e.variables,o=e.context,s=void 0===o?{}:o;n=this.transform(n).document,a=this.getVariables(n,a);var u=function(e){return t.getObservableFromLink(n,s,e).map(function(a){"no-cache"!==r&&(r7(a,i)&&t.cache.write({query:n,result:a.data,dataId:"ROOT_SUBSCRIPTION",variables:e}),t.broadcastQueries());var o=nO(a),s=(0,tN.ls)(a);if(o||s){var u={};throw o&&(u.graphQLErrors=a.errors),s&&(u.protocolErrors=a.extensions[tN.YG]),new tN.cA(u)}return a})};if(this.transform(n).hasClientExports){var c=this.localState.addExportedVariables(n,a,s).then(u);return new eT(function(e){var t=null;return c.then(function(n){return t=n.subscribe(e)},e.error),function(){return t&&t.unsubscribe()}})}return u(a)},e.prototype.stopQuery=function(e){this.stopQueryNoBroadcast(e),this.broadcastQueries()},e.prototype.stopQueryNoBroadcast=function(e){this.stopQueryInStoreNoBroadcast(e),this.removeQuery(e)},e.prototype.removeQuery=function(e){this.fetchCancelFns.delete(e),this.queries.has(e)&&(this.getQuery(e).stop(),this.queries.delete(e))},e.prototype.broadcastQueries=function(){this.onBroadcast&&this.onBroadcast(),this.queries.forEach(function(e){return e.notify()})},e.prototype.getLocalState=function(){return this.localState},e.prototype.getObservableFromLink=function(e,t,n,r){var i,a,o=this;void 0===r&&(r=null!==(i=null==t?void 0:t.queryDeduplication)&&void 0!==i?i:this.queryDeduplication);var s=this.transform(e).serverQuery;if(s){var u=this,c=u.inFlightLinkObservables,l=u.link,f={query:s,variables:n,operationName:e3(s)||void 0,context:this.prepareContext((0,en.pi)((0,en.pi)({},t),{forceFetch:!r}))};if(t=f.context,r){var d=c.get(s)||new Map;c.set(s,d);var h=nx(n);if(!(a=d.get(h))){var p=new nq([np(l,f)]);d.set(h,a=p),p.beforeNext(function(){d.delete(h)&&d.size<1&&c.delete(s)})}}else a=new nq([np(l,f)])}else a=new nq([eT.of({data:{}})]),t=this.prepareContext(t);var b=this.transform(e).clientQuery;return b&&(a=nM(a,function(e){return o.localState.runResolvers({document:b,remoteResult:e,context:t,variables:n})})),a},e.prototype.getResultsFromLink=function(e,t,n){var r=e.lastRequestId=this.generateRequestId(),i=this.cache.transformForLink(this.transform(e.document).document);return nM(this.getObservableFromLink(i,n.context,n.variables),function(a){var o=nA(a),s=o.length>0;if(r>=e.lastRequestId){if(s&&"none"===n.errorPolicy)throw e.markError(new tN.cA({graphQLErrors:o}));e.markResult(a,i,n,t),e.markReady()}var u={data:a.data,loading:!1,networkStatus:nZ.I.ready};return s&&"ignore"!==n.errorPolicy&&(u.errors=o,u.networkStatus=nZ.I.error),u},function(t){var n=(0,tN.MS)(t)?t:new tN.cA({networkError:t});throw r>=e.lastRequestId&&e.markError(n),n})},e.prototype.fetchQueryObservable=function(e,t,n){return this.fetchConcastWithInfo(e,t,n).concast},e.prototype.fetchConcastWithInfo=function(e,t,n){var r,i,a=this;void 0===n&&(n=nZ.I.loading);var o=this.transform(t.query).document,s=this.getVariables(o,t.variables),u=this.getQuery(e),c=this.defaultOptions.watchQuery,l=t.fetchPolicy,f=void 0===l?c&&c.fetchPolicy||"cache-first":l,d=t.errorPolicy,h=void 0===d?c&&c.errorPolicy||"none":d,p=t.returnPartialData,b=void 0!==p&&p,m=t.notifyOnNetworkStatusChange,g=void 0!==m&&m,v=t.context,y=void 0===v?{}:v,w=Object.assign({},t,{query:o,variables:s,fetchPolicy:f,errorPolicy:h,returnPartialData:b,notifyOnNetworkStatusChange:g,context:y}),_=function(e){w.variables=e;var r=a.fetchQueryByPolicy(u,w,n);return"standby"!==w.fetchPolicy&&r.sources.length>0&&u.observableQuery&&u.observableQuery.applyNextFetchPolicy("after-fetch",t),r},E=function(){return a.fetchCancelFns.delete(e)};if(this.fetchCancelFns.set(e,function(e){E(),setTimeout(function(){return r.cancel(e)})}),this.transform(w.query).hasClientExports)r=new nq(this.localState.addExportedVariables(w.query,w.variables,w.context).then(_).then(function(e){return e.sources})),i=!0;else{var S=_(w.variables);i=S.fromLink,r=new nq(S.sources)}return r.promise.then(E,E),{concast:r,fromLink:i}},e.prototype.refetchQueries=function(e){var t=this,n=e.updateCache,r=e.include,i=e.optimistic,a=void 0!==i&&i,o=e.removeOptimistic,s=void 0===o?a?nG("refetchQueries"):void 0:o,u=e.onQueryUpdated,c=new Map;r&&this.getObservableQueries(r).forEach(function(e,n){c.set(n,{oq:e,lastDiff:t.getQuery(n).getDiff()})});var l=new Map;return n&&this.cache.batch({update:n,optimistic:a&&s||!1,removeOptimistic:s,onWatchUpdated:function(e,t,n){var r=e.watcher instanceof r9&&e.watcher.observableQuery;if(r){if(u){c.delete(r.queryId);var i=u(r,t,n);return!0===i&&(i=r.refetch()),!1!==i&&l.set(r,i),i}null!==u&&c.set(r.queryId,{oq:r,lastDiff:n,diff:t})}}}),c.size&&c.forEach(function(e,n){var r,i=e.oq,a=e.lastDiff,o=e.diff;if(u){if(!o){var s=i.queryInfo;s.reset(),o=s.getDiff()}r=u(i,o,a)}u&&!0!==r||(r=i.refetch()),!1!==r&&l.set(i,r),n.indexOf("legacyOneTimeQuery")>=0&&t.stopQueryNoBroadcast(n)}),s&&this.cache.removeOptimistic(s),l},e.prototype.fetchQueryByPolicy=function(e,t,n){var r=this,i=t.query,a=t.variables,o=t.fetchPolicy,s=t.refetchWritePolicy,u=t.errorPolicy,c=t.returnPartialData,l=t.context,f=t.notifyOnNetworkStatusChange,d=e.networkStatus;e.init({document:this.transform(i).document,variables:a,networkStatus:n});var h=function(){return e.getDiff(a)},p=function(t,n){void 0===n&&(n=e.networkStatus||nZ.I.loading);var o=t.result;!__DEV__||c||(0,nm.D)(o,{})||n5(t.missing);var s=function(e){return eT.of((0,en.pi)({data:e,loading:(0,nZ.O)(n),networkStatus:n},t.complete?null:{partial:!0}))};return o&&r.transform(i).hasForcedResolvers?r.localState.runResolvers({document:i,remoteResult:{data:o},context:l,variables:a,onlyRunForcedResolvers:!0}).then(function(e){return s(e.data||void 0)}):"none"===u&&n===nZ.I.refetch&&Array.isArray(t.missing)?s(void 0):s(o)},b="no-cache"===o?0:n===nZ.I.refetch&&"merge"!==s?1:2,m=function(){return r.getResultsFromLink(e,b,{variables:a,context:l,fetchPolicy:o,errorPolicy:u})},g=f&&"number"==typeof d&&d!==n&&(0,nZ.O)(n);switch(o){default:case"cache-first":var v=h();if(v.complete)return{fromLink:!1,sources:[p(v,e.markReady())]};if(c||g)return{fromLink:!0,sources:[p(v),m()]};return{fromLink:!0,sources:[m()]};case"cache-and-network":var v=h();if(v.complete||c||g)return{fromLink:!0,sources:[p(v),m()]};return{fromLink:!0,sources:[m()]};case"cache-only":return{fromLink:!1,sources:[p(h(),e.markReady())]};case"network-only":if(g)return{fromLink:!0,sources:[p(h()),m()]};return{fromLink:!0,sources:[m()]};case"no-cache":if(g)return{fromLink:!0,sources:[p(e.getDiff()),m(),]};return{fromLink:!0,sources:[m()]};case"standby":return{fromLink:!1,sources:[]}}},e.prototype.getQuery=function(e){return e&&!this.queries.has(e)&&this.queries.set(e,new r9(this,e)),this.queries.get(e)},e.prototype.prepareContext=function(e){void 0===e&&(e={});var t=this.localState.prepareContext(e);return(0,en.pi)((0,en.pi)({},t),{clientAwareness:this.clientAwareness})},e}(),ir=__webpack_require__(14012),ii=!1,ia=function(){function e(e){var t=this;this.resetStoreCallbacks=[],this.clearStoreCallbacks=[];var n=e.uri,r=e.credentials,i=e.headers,a=e.cache,o=e.ssrMode,s=void 0!==o&&o,u=e.ssrForceFetchDelay,c=void 0===u?0:u,l=e.connectToDevTools,f=void 0===l?"object"==typeof window&&!window.__APOLLO_CLIENT__&&__DEV__:l,d=e.queryDeduplication,h=void 0===d||d,p=e.defaultOptions,b=e.assumeImmutableResults,m=void 0!==b&&b,g=e.resolvers,v=e.typeDefs,y=e.fragmentMatcher,w=e.name,_=e.version,E=e.link;if(E||(E=n?new nh({uri:n,credentials:r,headers:i}):ta.empty()),!a)throw __DEV__?new Q.ej("To initialize Apollo Client, you must specify a 'cache' property in the options object. \nFor more information, please visit: https://go.apollo.dev/c/docs"):new Q.ej(9);if(this.link=E,this.cache=a,this.disableNetworkFetches=s||c>0,this.queryDeduplication=h,this.defaultOptions=p||Object.create(null),this.typeDefs=v,c&&setTimeout(function(){return t.disableNetworkFetches=!1},c),this.watchQuery=this.watchQuery.bind(this),this.query=this.query.bind(this),this.mutate=this.mutate.bind(this),this.resetStore=this.resetStore.bind(this),this.reFetchObservableQueries=this.reFetchObservableQueries.bind(this),f&&"object"==typeof window&&(window.__APOLLO_CLIENT__=this),!ii&&f&&__DEV__&&(ii=!0,"undefined"!=typeof window&&window.document&&window.top===window.self&&!window.__APOLLO_DEVTOOLS_GLOBAL_HOOK__)){var S=window.navigator,k=S&&S.userAgent,x=void 0;"string"==typeof k&&(k.indexOf("Chrome/")>-1?x="https://chrome.google.com/webstore/detail/apollo-client-developer-t/jdkknkkbebbapilgoeccciglkfbmbnfm":k.indexOf("Firefox/")>-1&&(x="https://addons.mozilla.org/en-US/firefox/addon/apollo-developer-tools/")),x&&__DEV__&&Q.kG.log("Download the Apollo DevTools for a better development experience: "+x)}this.version=nb,this.localState=new r4({cache:a,client:this,resolvers:g,fragmentMatcher:y}),this.queryManager=new it({cache:this.cache,link:this.link,defaultOptions:this.defaultOptions,queryDeduplication:h,ssrMode:s,clientAwareness:{name:w,version:_},localState:this.localState,assumeImmutableResults:m,onBroadcast:f?function(){t.devToolsHookCb&&t.devToolsHookCb({action:{},state:{queries:t.queryManager.getQueryStore(),mutations:t.queryManager.mutationStore||{}},dataWithOptimisticResults:t.cache.extract(!0)})}:void 0})}return e.prototype.stop=function(){this.queryManager.stop()},e.prototype.watchQuery=function(e){return this.defaultOptions.watchQuery&&(e=(0,ir.J)(this.defaultOptions.watchQuery,e)),this.disableNetworkFetches&&("network-only"===e.fetchPolicy||"cache-and-network"===e.fetchPolicy)&&(e=(0,en.pi)((0,en.pi)({},e),{fetchPolicy:"cache-first"})),this.queryManager.watchQuery(e)},e.prototype.query=function(e){return this.defaultOptions.query&&(e=(0,ir.J)(this.defaultOptions.query,e)),__DEV__?(0,Q.kG)("cache-and-network"!==e.fetchPolicy,"The cache-and-network fetchPolicy does not work with client.query, because client.query can only return a single result. Please use client.watchQuery to receive multiple results from the cache and the network, or consider using a different fetchPolicy, such as cache-first or network-only."):(0,Q.kG)("cache-and-network"!==e.fetchPolicy,10),this.disableNetworkFetches&&"network-only"===e.fetchPolicy&&(e=(0,en.pi)((0,en.pi)({},e),{fetchPolicy:"cache-first"})),this.queryManager.query(e)},e.prototype.mutate=function(e){return this.defaultOptions.mutate&&(e=(0,ir.J)(this.defaultOptions.mutate,e)),this.queryManager.mutate(e)},e.prototype.subscribe=function(e){return this.queryManager.startGraphQLSubscription(e)},e.prototype.readQuery=function(e,t){return void 0===t&&(t=!1),this.cache.readQuery(e,t)},e.prototype.readFragment=function(e,t){return void 0===t&&(t=!1),this.cache.readFragment(e,t)},e.prototype.writeQuery=function(e){var t=this.cache.writeQuery(e);return!1!==e.broadcast&&this.queryManager.broadcastQueries(),t},e.prototype.writeFragment=function(e){var t=this.cache.writeFragment(e);return!1!==e.broadcast&&this.queryManager.broadcastQueries(),t},e.prototype.__actionHookForDevTools=function(e){this.devToolsHookCb=e},e.prototype.__requestRaw=function(e){return np(this.link,e)},e.prototype.resetStore=function(){var e=this;return Promise.resolve().then(function(){return e.queryManager.clearStore({discardWatches:!1})}).then(function(){return Promise.all(e.resetStoreCallbacks.map(function(e){return e()}))}).then(function(){return e.reFetchObservableQueries()})},e.prototype.clearStore=function(){var e=this;return Promise.resolve().then(function(){return e.queryManager.clearStore({discardWatches:!0})}).then(function(){return Promise.all(e.clearStoreCallbacks.map(function(e){return e()}))})},e.prototype.onResetStore=function(e){var t=this;return this.resetStoreCallbacks.push(e),function(){t.resetStoreCallbacks=t.resetStoreCallbacks.filter(function(t){return t!==e})}},e.prototype.onClearStore=function(e){var t=this;return this.clearStoreCallbacks.push(e),function(){t.clearStoreCallbacks=t.clearStoreCallbacks.filter(function(t){return t!==e})}},e.prototype.reFetchObservableQueries=function(e){return this.queryManager.reFetchObservableQueries(e)},e.prototype.refetchQueries=function(e){var t=this.queryManager.refetchQueries(e),n=[],r=[];t.forEach(function(e,t){n.push(t),r.push(e)});var i=Promise.all(r);return i.queries=n,i.results=r,i.catch(function(e){__DEV__&&Q.kG.debug("In client.refetchQueries, Promise.all promise rejected with error ".concat(e))}),i},e.prototype.getObservableQueries=function(e){return void 0===e&&(e="active"),this.queryManager.getObservableQueries(e)},e.prototype.extract=function(e){return this.cache.extract(e)},e.prototype.restore=function(e){return this.cache.restore(e)},e.prototype.addResolvers=function(e){this.localState.addResolvers(e)},e.prototype.setResolvers=function(e){this.localState.setResolvers(e)},e.prototype.getResolvers=function(){return this.localState.getResolvers()},e.prototype.setLocalStateFragmentMatcher=function(e){this.localState.setFragmentMatcher(e)},e.prototype.setLink=function(e){this.link=this.queryManager.link=e},e}(),io=function(){function e(){this.getFragmentDoc=rZ(eA)}return e.prototype.batch=function(e){var t,n=this,r="string"==typeof e.optimistic?e.optimistic:!1===e.optimistic?null:void 0;return this.performTransaction(function(){return t=e.update(n)},r),t},e.prototype.recordOptimisticTransaction=function(e,t){this.performTransaction(e,t)},e.prototype.transformDocument=function(e){return e},e.prototype.transformForLink=function(e){return e},e.prototype.identify=function(e){},e.prototype.gc=function(){return[]},e.prototype.modify=function(e){return!1},e.prototype.readQuery=function(e,t){return void 0===t&&(t=!!e.optimistic),this.read((0,en.pi)((0,en.pi)({},e),{rootId:e.id||"ROOT_QUERY",optimistic:t}))},e.prototype.readFragment=function(e,t){return void 0===t&&(t=!!e.optimistic),this.read((0,en.pi)((0,en.pi)({},e),{query:this.getFragmentDoc(e.fragment,e.fragmentName),rootId:e.id,optimistic:t}))},e.prototype.writeQuery=function(e){var t=e.id,n=e.data,r=(0,en._T)(e,["id","data"]);return this.write(Object.assign(r,{dataId:t||"ROOT_QUERY",result:n}))},e.prototype.writeFragment=function(e){var t=e.id,n=e.data,r=e.fragment,i=e.fragmentName,a=(0,en._T)(e,["id","data","fragment","fragmentName"]);return this.write(Object.assign(a,{query:this.getFragmentDoc(r,i),dataId:t,result:n}))},e.prototype.updateQuery=function(e,t){return this.batch({update:function(n){var r=n.readQuery(e),i=t(r);return null==i?r:(n.writeQuery((0,en.pi)((0,en.pi)({},e),{data:i})),i)}})},e.prototype.updateFragment=function(e,t){return this.batch({update:function(n){var r=n.readFragment(e),i=t(r);return null==i?r:(n.writeFragment((0,en.pi)((0,en.pi)({},e),{data:i})),i)}})},e}(),is=function(e){function t(n,r,i,a){var o,s=e.call(this,n)||this;if(s.message=n,s.path=r,s.query=i,s.variables=a,Array.isArray(s.path)){s.missing=s.message;for(var u=s.path.length-1;u>=0;--u)s.missing=((o={})[s.path[u]]=s.missing,o)}else s.missing=s.path;return s.__proto__=t.prototype,s}return(0,en.ZT)(t,e),t}(Error),iu=__webpack_require__(10542),ic=Object.prototype.hasOwnProperty;function il(e){return null==e}function id(e,t){var n=e.__typename,r=e.id,i=e._id;if("string"==typeof n&&(t&&(t.keyObject=il(r)?il(i)?void 0:{_id:i}:{id:r}),il(r)&&!il(i)&&(r=i),!il(r)))return"".concat(n,":").concat("number"==typeof r||"string"==typeof r?r:JSON.stringify(r))}var ih={dataIdFromObject:id,addTypename:!0,resultCaching:!0,canonizeResults:!1};function ip(e){return(0,n1.o)(ih,e)}function ib(e){var t=e.canonizeResults;return void 0===t?ih.canonizeResults:t}function im(e,t){return eD(t)?e.get(t.__ref,"__typename"):t&&t.__typename}var ig=/^[_a-z][_0-9a-z]*/i;function iv(e){var t=e.match(ig);return t?t[0]:e}function iy(e,t,n){return!!(0,eO.s)(t)&&((0,tP.k)(t)?t.every(function(t){return iy(e,t,n)}):e.selections.every(function(e){if(eQ(e)&&td(e,n)){var r=eX(e);return ic.call(t,r)&&(!e.selectionSet||iy(e.selectionSet,t[r],n))}return!0}))}function iw(e){return(0,eO.s)(e)&&!eD(e)&&!(0,tP.k)(e)}function i_(){return new tB}function iE(e,t){var n=eL(e4(e));return{fragmentMap:n,lookupFragment:function(e){var r=n[e];return!r&&t&&(r=t.lookup(e)),r||null}}}var iS=Object.create(null),ik=function(){return iS},ix=Object.create(null),iT=function(){function e(e,t){var n=this;this.policies=e,this.group=t,this.data=Object.create(null),this.rootIds=Object.create(null),this.refs=Object.create(null),this.getFieldValue=function(e,t){return(0,iu.J)(eD(e)?n.get(e.__ref,t):e&&e[t])},this.canRead=function(e){return eD(e)?n.has(e.__ref):"object"==typeof e},this.toReference=function(e,t){if("string"==typeof e)return eI(e);if(eD(e))return e;var r=n.policies.identify(e)[0];if(r){var i=eI(r);return t&&n.merge(r,e),i}}}return e.prototype.toObject=function(){return(0,en.pi)({},this.data)},e.prototype.has=function(e){return void 0!==this.lookup(e,!0)},e.prototype.get=function(e,t){if(this.group.depend(e,t),ic.call(this.data,e)){var n=this.data[e];if(n&&ic.call(n,t))return n[t]}return"__typename"===t&&ic.call(this.policies.rootTypenamesById,e)?this.policies.rootTypenamesById[e]:this instanceof iL?this.parent.get(e,t):void 0},e.prototype.lookup=function(e,t){return(t&&this.group.depend(e,"__exists"),ic.call(this.data,e))?this.data[e]:this instanceof iL?this.parent.lookup(e,t):this.policies.rootTypenamesById[e]?Object.create(null):void 0},e.prototype.merge=function(e,t){var n,r=this;eD(e)&&(e=e.__ref),eD(t)&&(t=t.__ref);var i="string"==typeof e?this.lookup(n=e):e,a="string"==typeof t?this.lookup(n=t):t;if(a){__DEV__?(0,Q.kG)("string"==typeof n,"store.merge expects a string ID"):(0,Q.kG)("string"==typeof n,1);var o=new tB(iI).merge(i,a);if(this.data[n]=o,o!==i&&(delete this.refs[n],this.group.caching)){var s=Object.create(null);i||(s.__exists=1),Object.keys(a).forEach(function(e){if(!i||i[e]!==o[e]){s[e]=1;var t=iv(e);t===e||r.policies.hasKeyArgs(o.__typename,t)||(s[t]=1),void 0!==o[e]||r instanceof iL||delete o[e]}}),s.__typename&&!(i&&i.__typename)&&this.policies.rootTypenamesById[n]===o.__typename&&delete s.__typename,Object.keys(s).forEach(function(e){return r.group.dirty(n,e)})}}},e.prototype.modify=function(e,t){var n=this,r=this.lookup(e);if(r){var i=Object.create(null),a=!1,o=!0,s={DELETE:iS,INVALIDATE:ix,isReference:eD,toReference:this.toReference,canRead:this.canRead,readField:function(t,r){return n.policies.readField("string"==typeof t?{fieldName:t,from:r||eI(e)}:t,{store:n})}};if(Object.keys(r).forEach(function(u){var c=iv(u),l=r[u];if(void 0!==l){var f="function"==typeof t?t:t[u]||t[c];if(f){var d=f===ik?iS:f((0,iu.J)(l),(0,en.pi)((0,en.pi)({},s),{fieldName:c,storeFieldName:u,storage:n.getStorage(e,u)}));d===ix?n.group.dirty(e,u):(d===iS&&(d=void 0),d!==l&&(i[u]=d,a=!0,l=d))}void 0!==l&&(o=!1)}}),a)return this.merge(e,i),o&&(this instanceof iL?this.data[e]=void 0:delete this.data[e],this.group.dirty(e,"__exists")),!0}return!1},e.prototype.delete=function(e,t,n){var r,i=this.lookup(e);if(i){var a=this.getFieldValue(i,"__typename"),o=t&&n?this.policies.getStoreFieldName({typename:a,fieldName:t,args:n}):t;return this.modify(e,o?((r={})[o]=ik,r):ik)}return!1},e.prototype.evict=function(e,t){var n=!1;return e.id&&(ic.call(this.data,e.id)&&(n=this.delete(e.id,e.fieldName,e.args)),this instanceof iL&&this!==t&&(n=this.parent.evict(e,t)||n),(e.fieldName||n)&&this.group.dirty(e.id,e.fieldName||"__exists")),n},e.prototype.clear=function(){this.replace(null)},e.prototype.extract=function(){var e=this,t=this.toObject(),n=[];return this.getRootIdSet().forEach(function(t){ic.call(e.policies.rootTypenamesById,t)||n.push(t)}),n.length&&(t.__META={extraRootIds:n.sort()}),t},e.prototype.replace=function(e){var t=this;if(Object.keys(this.data).forEach(function(n){e&&ic.call(e,n)||t.delete(n)}),e){var n=e.__META,r=(0,en._T)(e,["__META"]);Object.keys(r).forEach(function(e){t.merge(e,r[e])}),n&&n.extraRootIds.forEach(this.retain,this)}},e.prototype.retain=function(e){return this.rootIds[e]=(this.rootIds[e]||0)+1},e.prototype.release=function(e){if(this.rootIds[e]>0){var t=--this.rootIds[e];return t||delete this.rootIds[e],t}return 0},e.prototype.getRootIdSet=function(e){return void 0===e&&(e=new Set),Object.keys(this.rootIds).forEach(e.add,e),this instanceof iL?this.parent.getRootIdSet(e):Object.keys(this.policies.rootTypenamesById).forEach(e.add,e),e},e.prototype.gc=function(){var e=this,t=this.getRootIdSet(),n=this.toObject();t.forEach(function(r){ic.call(n,r)&&(Object.keys(e.findChildRefIds(r)).forEach(t.add,t),delete n[r])});var r=Object.keys(n);if(r.length){for(var i=this;i instanceof iL;)i=i.parent;r.forEach(function(e){return i.delete(e)})}return r},e.prototype.findChildRefIds=function(e){if(!ic.call(this.refs,e)){var t=this.refs[e]=Object.create(null),n=this.data[e];if(!n)return t;var r=new Set([n]);r.forEach(function(e){eD(e)&&(t[e.__ref]=!0),(0,eO.s)(e)&&Object.keys(e).forEach(function(t){var n=e[t];(0,eO.s)(n)&&r.add(n)})})}return this.refs[e]},e.prototype.makeCacheKey=function(){return this.group.keyMaker.lookupArray(arguments)},e}(),iM=function(){function e(e,t){void 0===t&&(t=null),this.caching=e,this.parent=t,this.d=null,this.resetCaching()}return e.prototype.resetCaching=function(){this.d=this.caching?rW():null,this.keyMaker=new n_(t_.mr)},e.prototype.depend=function(e,t){if(this.d){this.d(iO(e,t));var n=iv(t);n!==t&&this.d(iO(e,n)),this.parent&&this.parent.depend(e,t)}},e.prototype.dirty=function(e,t){this.d&&this.d.dirty(iO(e,t),"__exists"===t?"forget":"setDirty")},e}();function iO(e,t){return t+"#"+e}function iA(e,t){iD(e)&&e.group.depend(t,"__exists")}!function(e){var t=function(e){function t(t){var n=t.policies,r=t.resultCaching,i=void 0===r||r,a=t.seed,o=e.call(this,n,new iM(i))||this;return o.stump=new iC(o),o.storageTrie=new n_(t_.mr),a&&o.replace(a),o}return(0,en.ZT)(t,e),t.prototype.addLayer=function(e,t){return this.stump.addLayer(e,t)},t.prototype.removeLayer=function(){return this},t.prototype.getStorage=function(){return this.storageTrie.lookupArray(arguments)},t}(e);e.Root=t}(iT||(iT={}));var iL=function(e){function t(t,n,r,i){var a=e.call(this,n.policies,i)||this;return a.id=t,a.parent=n,a.replay=r,a.group=i,r(a),a}return(0,en.ZT)(t,e),t.prototype.addLayer=function(e,n){return new t(e,this,n,this.group)},t.prototype.removeLayer=function(e){var t=this,n=this.parent.removeLayer(e);return e===this.id?(this.group.caching&&Object.keys(this.data).forEach(function(e){var r=t.data[e],i=n.lookup(e);i?r?r!==i&&Object.keys(r).forEach(function(n){(0,nm.D)(r[n],i[n])||t.group.dirty(e,n)}):(t.group.dirty(e,"__exists"),Object.keys(i).forEach(function(n){t.group.dirty(e,n)})):t.delete(e)}),n):n===this.parent?this:n.addLayer(this.id,this.replay)},t.prototype.toObject=function(){return(0,en.pi)((0,en.pi)({},this.parent.toObject()),this.data)},t.prototype.findChildRefIds=function(t){var n=this.parent.findChildRefIds(t);return ic.call(this.data,t)?(0,en.pi)((0,en.pi)({},n),e.prototype.findChildRefIds.call(this,t)):n},t.prototype.getStorage=function(){for(var e=this.parent;e.parent;)e=e.parent;return e.getStorage.apply(e,arguments)},t}(iT),iC=function(e){function t(t){return e.call(this,"EntityStore.Stump",t,function(){},new iM(t.group.caching,t.group))||this}return(0,en.ZT)(t,e),t.prototype.removeLayer=function(){return this},t.prototype.merge=function(){return this.parent.merge.apply(this.parent,arguments)},t}(iL);function iI(e,t,n){var r=e[n],i=t[n];return(0,nm.D)(r,i)?r:i}function iD(e){return!!(e instanceof iT&&e.group.caching)}function iN(e){return[e.selectionSet,e.objectOrReference,e.context,e.context.canonizeResults,]}var iP=function(){function e(e){var t=this;this.knownResults=new(t_.mr?WeakMap:Map),this.config=(0,n1.o)(e,{addTypename:!1!==e.addTypename,canonizeResults:ib(e)}),this.canon=e.canon||new nk,this.executeSelectionSet=rZ(function(e){var n,r=e.context.canonizeResults,i=iN(e);i[3]=!r;var a=(n=t.executeSelectionSet).peek.apply(n,i);return a?r?(0,en.pi)((0,en.pi)({},a),{result:t.canon.admit(a.result)}):a:(iA(e.context.store,e.enclosingRef.__ref),t.execSelectionSetImpl(e))},{max:this.config.resultCacheMaxSize,keyArgs:iN,makeCacheKey:function(e,t,n,r){if(iD(n.store))return n.store.makeCacheKey(e,eD(t)?t.__ref:t,n.varString,r)}}),this.executeSubSelectedArray=rZ(function(e){return iA(e.context.store,e.enclosingRef.__ref),t.execSubSelectedArrayImpl(e)},{max:this.config.resultCacheMaxSize,makeCacheKey:function(e){var t=e.field,n=e.array,r=e.context;if(iD(r.store))return r.store.makeCacheKey(t,n,r.varString)}})}return e.prototype.resetCanon=function(){this.canon=new nk},e.prototype.diffQueryAgainstStore=function(e){var t,n=e.store,r=e.query,i=e.rootId,a=void 0===i?"ROOT_QUERY":i,o=e.variables,s=e.returnPartialData,u=void 0===s||s,c=e.canonizeResults,l=void 0===c?this.config.canonizeResults:c,f=this.config.cache.policies;o=(0,en.pi)((0,en.pi)({},e9(e6(r))),o);var d=eI(a),h=this.executeSelectionSet({selectionSet:e8(r).selectionSet,objectOrReference:d,enclosingRef:d,context:(0,en.pi)({store:n,query:r,policies:f,variables:o,varString:nx(o),canonizeResults:l},iE(r,this.config.fragments))});if(h.missing&&(t=[new is(iR(h.missing),h.missing,r,o)],!u))throw t[0];return{result:h.result,complete:!t,missing:t}},e.prototype.isFresh=function(e,t,n,r){if(iD(r.store)&&this.knownResults.get(e)===n){var i=this.executeSelectionSet.peek(n,t,r,this.canon.isKnown(e));if(i&&e===i.result)return!0}return!1},e.prototype.execSelectionSetImpl=function(e){var t,n=this,r=e.selectionSet,i=e.objectOrReference,a=e.enclosingRef,o=e.context;if(eD(i)&&!o.policies.rootTypenamesById[i.__ref]&&!o.store.has(i.__ref))return{result:this.canon.empty,missing:"Dangling reference to missing ".concat(i.__ref," object")};var s=o.variables,u=o.policies,c=o.store.getFieldValue(i,"__typename"),l=[],f=new tB;function d(e,n){var r;return e.missing&&(t=f.merge(t,((r={})[n]=e.missing,r))),e.result}this.config.addTypename&&"string"==typeof c&&!u.rootIdsByTypename[c]&&l.push({__typename:c});var h=new Set(r.selections);h.forEach(function(e){var r,p;if(td(e,s)){if(eQ(e)){var b=u.readField({fieldName:e.name.value,field:e,variables:o.variables,from:i},o),m=eX(e);void 0===b?nj.added(e)||(t=f.merge(t,((r={})[m]="Can't find field '".concat(e.name.value,"' on ").concat(eD(i)?i.__ref+" object":"object "+JSON.stringify(i,null,2)),r))):(0,tP.k)(b)?b=d(n.executeSubSelectedArray({field:e,array:b,enclosingRef:a,context:o}),m):e.selectionSet?null!=b&&(b=d(n.executeSelectionSet({selectionSet:e.selectionSet,objectOrReference:b,enclosingRef:eD(b)?b:a,context:o}),m)):o.canonizeResults&&(b=n.canon.pass(b)),void 0!==b&&l.push(((p={})[m]=b,p))}else{var g=eC(e,o.lookupFragment);if(!g&&e.kind===nL.h.FRAGMENT_SPREAD)throw __DEV__?new Q.ej("No fragment named ".concat(e.name.value)):new Q.ej(5);g&&u.fragmentMatches(g,c)&&g.selectionSet.selections.forEach(h.add,h)}}});var p={result:tF(l),missing:t},b=o.canonizeResults?this.canon.admit(p):(0,iu.J)(p);return b.result&&this.knownResults.set(b.result,r),b},e.prototype.execSubSelectedArrayImpl=function(e){var t,n=this,r=e.field,i=e.array,a=e.enclosingRef,o=e.context,s=new tB;function u(e,n){var r;return e.missing&&(t=s.merge(t,((r={})[n]=e.missing,r))),e.result}return r.selectionSet&&(i=i.filter(o.store.canRead)),i=i.map(function(e,t){return null===e?null:(0,tP.k)(e)?u(n.executeSubSelectedArray({field:r,array:e,enclosingRef:a,context:o}),t):r.selectionSet?u(n.executeSelectionSet({selectionSet:r.selectionSet,objectOrReference:e,enclosingRef:eD(e)?e:a,context:o}),t):(__DEV__&&ij(o.store,r,e),e)}),{result:o.canonizeResults?this.canon.admit(i):i,missing:t}},e}();function iR(e){try{JSON.stringify(e,function(e,t){if("string"==typeof t)throw t;return t})}catch(t){return t}}function ij(e,t,n){if(!t.selectionSet){var r=new Set([n]);r.forEach(function(n){(0,eO.s)(n)&&(__DEV__?(0,Q.kG)(!eD(n),"Missing selection set for object of type ".concat(im(e,n)," returned for query field ").concat(t.name.value)):(0,Q.kG)(!eD(n),6),Object.values(n).forEach(r.add,r))})}}function iF(e){var t=nG("stringifyForDisplay");return JSON.stringify(e,function(e,n){return void 0===n?t:n}).split(JSON.stringify(t)).join("")}var iY=Object.create(null);function iB(e){var t=JSON.stringify(e);return iY[t]||(iY[t]=Object.create(null))}function iU(e){var t=iB(e);return t.keyFieldsFn||(t.keyFieldsFn=function(t,n){var r=function(e,t){return n.readField(t,e)},i=n.keyObject=i$(e,function(e){var i=iW(n.storeObject,e,r);return void 0===i&&t!==n.storeObject&&ic.call(t,e[0])&&(i=iW(t,e,iG)),__DEV__?(0,Q.kG)(void 0!==i,"Missing field '".concat(e.join("."),"' while extracting keyFields from ").concat(JSON.stringify(t))):(0,Q.kG)(void 0!==i,2),i});return"".concat(n.typename,":").concat(JSON.stringify(i))})}function iH(e){var t=iB(e);return t.keyArgsFn||(t.keyArgsFn=function(t,n){var r=n.field,i=n.variables,a=n.fieldName,o=JSON.stringify(i$(e,function(e){var n=e[0],a=n.charAt(0);if("@"===a){if(r&&(0,tP.O)(r.directives)){var o=n.slice(1),s=r.directives.find(function(e){return e.name.value===o}),u=s&&eZ(s,i);return u&&iW(u,e.slice(1))}return}if("$"===a){var c=n.slice(1);if(i&&ic.call(i,c)){var l=e.slice(0);return l[0]=c,iW(i,l)}return}if(t)return iW(t,e)}));return(t||"{}"!==o)&&(a+=":"+o),a})}function i$(e,t){var n=new tB;return iz(e).reduce(function(e,r){var i,a=t(r);if(void 0!==a){for(var o=r.length-1;o>=0;--o)a=((i={})[r[o]]=a,i);e=n.merge(e,a)}return e},Object.create(null))}function iz(e){var t=iB(e);if(!t.paths){var n=t.paths=[],r=[];e.forEach(function(t,i){(0,tP.k)(t)?(iz(t).forEach(function(e){return n.push(r.concat(e))}),r.length=0):(r.push(t),(0,tP.k)(e[i+1])||(n.push(r.slice(0)),r.length=0))})}return t.paths}function iG(e,t){return e[t]}function iW(e,t,n){return n=n||iG,iK(t.reduce(function e(t,r){return(0,tP.k)(t)?t.map(function(t){return e(t,r)}):t&&n(t,r)},e))}function iK(e){return(0,eO.s)(e)?(0,tP.k)(e)?e.map(iK):i$(Object.keys(e).sort(),function(t){return iW(e,t)}):e}function iV(e){return void 0!==e.args?e.args:e.field?eZ(e.field,e.variables):null}eK.setStringify(nx);var iq=function(){},iZ=function(e,t){return t.fieldName},iX=function(e,t,n){return(0,n.mergeObjects)(e,t)},iJ=function(e,t){return t},iQ=function(){function e(e){this.config=e,this.typePolicies=Object.create(null),this.toBeAdded=Object.create(null),this.supertypeMap=new Map,this.fuzzySubtypes=new Map,this.rootIdsByTypename=Object.create(null),this.rootTypenamesById=Object.create(null),this.usingPossibleTypes=!1,this.config=(0,en.pi)({dataIdFromObject:id},e),this.cache=this.config.cache,this.setRootTypename("Query"),this.setRootTypename("Mutation"),this.setRootTypename("Subscription"),e.possibleTypes&&this.addPossibleTypes(e.possibleTypes),e.typePolicies&&this.addTypePolicies(e.typePolicies)}return e.prototype.identify=function(e,t){var n,r,i=this,a=t&&(t.typename||(null===(n=t.storeObject)||void 0===n?void 0:n.__typename))||e.__typename;if(a===this.rootTypenamesById.ROOT_QUERY)return["ROOT_QUERY"];for(var o=t&&t.storeObject||e,s=(0,en.pi)((0,en.pi)({},t),{typename:a,storeObject:o,readField:t&&t.readField||function(){var e=i0(arguments,o);return i.readField(e,{store:i.cache.data,variables:e.variables})}}),u=a&&this.getTypePolicy(a),c=u&&u.keyFn||this.config.dataIdFromObject;c;){var l=c((0,en.pi)((0,en.pi)({},e),o),s);if((0,tP.k)(l))c=iU(l);else{r=l;break}}return r=r?String(r):void 0,s.keyObject?[r,s.keyObject]:[r]},e.prototype.addTypePolicies=function(e){var t=this;Object.keys(e).forEach(function(n){var r=e[n],i=r.queryType,a=r.mutationType,o=r.subscriptionType,s=(0,en._T)(r,["queryType","mutationType","subscriptionType"]);i&&t.setRootTypename("Query",n),a&&t.setRootTypename("Mutation",n),o&&t.setRootTypename("Subscription",n),ic.call(t.toBeAdded,n)?t.toBeAdded[n].push(s):t.toBeAdded[n]=[s]})},e.prototype.updateTypePolicy=function(e,t){var n=this,r=this.getTypePolicy(e),i=t.keyFields,a=t.fields;function o(e,t){e.merge="function"==typeof t?t:!0===t?iX:!1===t?iJ:e.merge}o(r,t.merge),r.keyFn=!1===i?iq:(0,tP.k)(i)?iU(i):"function"==typeof i?i:r.keyFn,a&&Object.keys(a).forEach(function(t){var r=n.getFieldPolicy(e,t,!0),i=a[t];if("function"==typeof i)r.read=i;else{var s=i.keyArgs,u=i.read,c=i.merge;r.keyFn=!1===s?iZ:(0,tP.k)(s)?iH(s):"function"==typeof s?s:r.keyFn,"function"==typeof u&&(r.read=u),o(r,c)}r.read&&r.merge&&(r.keyFn=r.keyFn||iZ)})},e.prototype.setRootTypename=function(e,t){void 0===t&&(t=e);var n="ROOT_"+e.toUpperCase(),r=this.rootTypenamesById[n];t!==r&&(__DEV__?(0,Q.kG)(!r||r===e,"Cannot change root ".concat(e," __typename more than once")):(0,Q.kG)(!r||r===e,3),r&&delete this.rootIdsByTypename[r],this.rootIdsByTypename[t]=n,this.rootTypenamesById[n]=t)},e.prototype.addPossibleTypes=function(e){var t=this;this.usingPossibleTypes=!0,Object.keys(e).forEach(function(n){t.getSupertypeSet(n,!0),e[n].forEach(function(e){t.getSupertypeSet(e,!0).add(n);var r=e.match(ig);r&&r[0]===e||t.fuzzySubtypes.set(e,RegExp(e))})})},e.prototype.getTypePolicy=function(e){var t=this;if(!ic.call(this.typePolicies,e)){var n=this.typePolicies[e]=Object.create(null);n.fields=Object.create(null);var r=this.supertypeMap.get(e);r&&r.size&&r.forEach(function(e){var r=t.getTypePolicy(e),i=r.fields;Object.assign(n,(0,en._T)(r,["fields"])),Object.assign(n.fields,i)})}var i=this.toBeAdded[e];return i&&i.length&&i.splice(0).forEach(function(n){t.updateTypePolicy(e,n)}),this.typePolicies[e]},e.prototype.getFieldPolicy=function(e,t,n){if(e){var r=this.getTypePolicy(e).fields;return r[t]||n&&(r[t]=Object.create(null))}},e.prototype.getSupertypeSet=function(e,t){var n=this.supertypeMap.get(e);return!n&&t&&this.supertypeMap.set(e,n=new Set),n},e.prototype.fragmentMatches=function(e,t,n,r){var i=this;if(!e.typeCondition)return!0;if(!t)return!1;var a=e.typeCondition.name.value;if(t===a)return!0;if(this.usingPossibleTypes&&this.supertypeMap.has(a))for(var o=this.getSupertypeSet(t,!0),s=[o],u=function(e){var t=i.getSupertypeSet(e,!1);t&&t.size&&0>s.indexOf(t)&&s.push(t)},c=!!(n&&this.fuzzySubtypes.size),l=!1,f=0;f1?a:t}:(r=(0,en.pi)({},i),ic.call(r,"from")||(r.from=t)),__DEV__&&void 0===r.from&&__DEV__&&Q.kG.warn("Undefined 'from' passed to readField with arguments ".concat(iF(Array.from(e)))),void 0===r.variables&&(r.variables=n),r}function i2(e){return function(t,n){if((0,tP.k)(t)||(0,tP.k)(n))throw __DEV__?new Q.ej("Cannot automatically merge arrays"):new Q.ej(4);if((0,eO.s)(t)&&(0,eO.s)(n)){var r=e.getFieldValue(t,"__typename"),i=e.getFieldValue(n,"__typename");if(r&&i&&r!==i)return n;if(eD(t)&&iw(n))return e.merge(t.__ref,n),t;if(iw(t)&&eD(n))return e.merge(t,n.__ref),n;if(iw(t)&&iw(n))return(0,en.pi)((0,en.pi)({},t),n)}return n}}function i3(e,t,n){var r="".concat(t).concat(n),i=e.flavors.get(r);return i||e.flavors.set(r,i=e.clientOnly===t&&e.deferred===n?e:(0,en.pi)((0,en.pi)({},e),{clientOnly:t,deferred:n})),i}var i4=function(){function e(e,t,n){this.cache=e,this.reader=t,this.fragments=n}return e.prototype.writeToStore=function(e,t){var n=this,r=t.query,i=t.result,a=t.dataId,o=t.variables,s=t.overwrite,u=e2(r),c=i_();o=(0,en.pi)((0,en.pi)({},e9(u)),o);var l=(0,en.pi)((0,en.pi)({store:e,written:Object.create(null),merge:function(e,t){return c.merge(e,t)},variables:o,varString:nx(o)},iE(r,this.fragments)),{overwrite:!!s,incomingById:new Map,clientOnly:!1,deferred:!1,flavors:new Map}),f=this.processSelectionSet({result:i||Object.create(null),dataId:a,selectionSet:u.selectionSet,mergeTree:{map:new Map},context:l});if(!eD(f))throw __DEV__?new Q.ej("Could not identify object ".concat(JSON.stringify(i))):new Q.ej(7);return l.incomingById.forEach(function(t,r){var i=t.storeObject,a=t.mergeTree,o=t.fieldNodeSet,s=eI(r);if(a&&a.map.size){var u=n.applyMerges(a,s,i,l);if(eD(u))return;i=u}if(__DEV__&&!l.overwrite){var c=Object.create(null);o.forEach(function(e){e.selectionSet&&(c[e.name.value]=!0)});var f=function(e){return!0===c[iv(e)]},d=function(e){var t=a&&a.map.get(e);return Boolean(t&&t.info&&t.info.merge)};Object.keys(i).forEach(function(e){f(e)&&!d(e)&&at(s,i,e,l.store)})}e.merge(r,i)}),e.retain(f.__ref),f},e.prototype.processSelectionSet=function(e){var t=this,n=e.dataId,r=e.result,i=e.selectionSet,a=e.context,o=e.mergeTree,s=this.cache.policies,u=Object.create(null),c=n&&s.rootTypenamesById[n]||eJ(r,i,a.fragmentMap)||n&&a.store.get(n,"__typename");"string"==typeof c&&(u.__typename=c);var l=function(){var e=i0(arguments,u,a.variables);if(eD(e.from)){var t=a.incomingById.get(e.from.__ref);if(t){var n=s.readField((0,en.pi)((0,en.pi)({},e),{from:t.storeObject}),a);if(void 0!==n)return n}}return s.readField(e,a)},f=new Set;this.flattenFields(i,r,a,c).forEach(function(e,n){var i,a=r[eX(n)];if(f.add(n),void 0!==a){var d=s.getStoreFieldName({typename:c,fieldName:n.name.value,field:n,variables:e.variables}),h=i5(o,d),p=t.processFieldValue(a,n,n.selectionSet?i3(e,!1,!1):e,h),b=void 0;n.selectionSet&&(eD(p)||iw(p))&&(b=l("__typename",p));var m=s.getMergeFunction(c,n.name.value,b);m?h.info={field:n,typename:c,merge:m}:i7(o,d),u=e.merge(u,((i={})[d]=p,i))}else __DEV__&&!e.clientOnly&&!e.deferred&&!nj.added(n)&&!s.getReadFunction(c,n.name.value)&&__DEV__&&Q.kG.error("Missing field '".concat(eX(n),"' while writing result ").concat(JSON.stringify(r,null,2)).substring(0,1e3))});try{var d=s.identify(r,{typename:c,selectionSet:i,fragmentMap:a.fragmentMap,storeObject:u,readField:l}),h=d[0],p=d[1];n=n||h,p&&(u=a.merge(u,p))}catch(b){if(!n)throw b}if("string"==typeof n){var m=eI(n),g=a.written[n]||(a.written[n]=[]);if(g.indexOf(i)>=0||(g.push(i),this.reader&&this.reader.isFresh(r,m,i,a)))return m;var v=a.incomingById.get(n);return v?(v.storeObject=a.merge(v.storeObject,u),v.mergeTree=i8(v.mergeTree,o),f.forEach(function(e){return v.fieldNodeSet.add(e)})):a.incomingById.set(n,{storeObject:u,mergeTree:i9(o)?void 0:o,fieldNodeSet:f}),m}return u},e.prototype.processFieldValue=function(e,t,n,r){var i=this;return t.selectionSet&&null!==e?(0,tP.k)(e)?e.map(function(e,a){var o=i.processFieldValue(e,t,n,i5(r,a));return i7(r,a),o}):this.processSelectionSet({result:e,selectionSet:t.selectionSet,context:n,mergeTree:r}):__DEV__?nJ(e):e},e.prototype.flattenFields=function(e,t,n,r){void 0===r&&(r=eJ(t,e,n.fragmentMap));var i=new Map,a=this.cache.policies,o=new n_(!1);return function e(s,u){var c=o.lookup(s,u.clientOnly,u.deferred);c.visited||(c.visited=!0,s.selections.forEach(function(o){if(td(o,n.variables)){var s=u.clientOnly,c=u.deferred;if(!(s&&c)&&(0,tP.O)(o.directives)&&o.directives.forEach(function(e){var t=e.name.value;if("client"===t&&(s=!0),"defer"===t){var r=eZ(e,n.variables);r&&!1===r.if||(c=!0)}}),eQ(o)){var l=i.get(o);l&&(s=s&&l.clientOnly,c=c&&l.deferred),i.set(o,i3(n,s,c))}else{var f=eC(o,n.lookupFragment);if(!f&&o.kind===nL.h.FRAGMENT_SPREAD)throw __DEV__?new Q.ej("No fragment named ".concat(o.name.value)):new Q.ej(8);f&&a.fragmentMatches(f,r,t,n.variables)&&e(f.selectionSet,i3(n,s,c))}}}))}(e,n),i},e.prototype.applyMerges=function(e,t,n,r,i){var a=this;if(e.map.size&&!eD(n)){var o,s,u=!(0,tP.k)(n)&&(eD(t)||iw(t))?t:void 0,c=n;u&&!i&&(i=[eD(u)?u.__ref:u]);var l=function(e,t){return(0,tP.k)(e)?"number"==typeof t?e[t]:void 0:r.store.getFieldValue(e,String(t))};e.map.forEach(function(e,t){var n=l(u,t),o=l(c,t);if(void 0!==o){i&&i.push(t);var f=a.applyMerges(e,n,o,r,i);f!==o&&(s=s||new Map).set(t,f),i&&(0,Q.kG)(i.pop()===t)}}),s&&(n=(0,tP.k)(c)?c.slice(0):(0,en.pi)({},c),s.forEach(function(e,t){n[t]=e}))}return e.info?this.cache.policies.runMergeFunction(t,n,e.info,r,i&&(o=r.store).getStorage.apply(o,i)):n},e}(),i6=[];function i5(e,t){var n=e.map;return n.has(t)||n.set(t,i6.pop()||{map:new Map}),n.get(t)}function i8(e,t){if(e===t||!t||i9(t))return e;if(!e||i9(e))return t;var n=e.info&&t.info?(0,en.pi)((0,en.pi)({},e.info),t.info):e.info||t.info,r=e.map.size&&t.map.size,i=r?new Map:e.map.size?e.map:t.map,a={info:n,map:i};if(r){var o=new Set(t.map.keys());e.map.forEach(function(e,n){a.map.set(n,i8(e,t.map.get(n))),o.delete(n)}),o.forEach(function(n){a.map.set(n,i8(t.map.get(n),e.map.get(n)))})}return a}function i9(e){return!e||!(e.info||e.map.size)}function i7(e,t){var n=e.map,r=n.get(t);r&&i9(r)&&(i6.push(r),n.delete(t))}var ae=new Set;function at(e,t,n,r){var i=function(e){var t=r.getFieldValue(e,n);return"object"==typeof t&&t},a=i(e);if(a){var o=i(t);if(!(!o||eD(a)||(0,nm.D)(a,o)||Object.keys(a).every(function(e){return void 0!==r.getFieldValue(o,e)}))){var s=r.getFieldValue(e,"__typename")||r.getFieldValue(t,"__typename"),u=iv(n),c="".concat(s,".").concat(u);if(!ae.has(c)){ae.add(c);var l=[];(0,tP.k)(a)||(0,tP.k)(o)||[a,o].forEach(function(e){var t=r.getFieldValue(e,"__typename");"string"!=typeof t||l.includes(t)||l.push(t)}),__DEV__&&Q.kG.warn("Cache data may be lost when replacing the ".concat(u," field of a ").concat(s," object.\n\nThis could cause additional (usually avoidable) network requests to fetch data that were otherwise cached.\n\nTo address this problem (which is not a bug in Apollo Client), ").concat(l.length?"either ensure all objects of type "+l.join(" and ")+" have an ID or a custom merge function, or ":"","define a custom merge function for the ").concat(c," field, so InMemoryCache can safely merge these objects:\n\n existing: ").concat(JSON.stringify(a).slice(0,1e3),"\n incoming: ").concat(JSON.stringify(o).slice(0,1e3),"\n\nFor more information about these options, please refer to the documentation:\n\n * Ensuring entity objects have IDs: https://go.apollo.dev/c/generating-unique-identifiers\n * Defining custom merge functions: https://go.apollo.dev/c/merging-non-normalized-objects\n"))}}}}var an=function(e){function t(t){void 0===t&&(t={});var n=e.call(this)||this;return n.watches=new Set,n.typenameDocumentCache=new Map,n.makeVar=r2,n.txCount=0,n.config=ip(t),n.addTypename=!!n.config.addTypename,n.policies=new iQ({cache:n,dataIdFromObject:n.config.dataIdFromObject,possibleTypes:n.config.possibleTypes,typePolicies:n.config.typePolicies}),n.init(),n}return(0,en.ZT)(t,e),t.prototype.init=function(){var e=this.data=new iT.Root({policies:this.policies,resultCaching:this.config.resultCaching});this.optimisticData=e.stump,this.resetResultCache()},t.prototype.resetResultCache=function(e){var t=this,n=this.storeReader,r=this.config.fragments;this.storeWriter=new i4(this,this.storeReader=new iP({cache:this,addTypename:this.addTypename,resultCacheMaxSize:this.config.resultCacheMaxSize,canonizeResults:ib(this.config),canon:e?void 0:n&&n.canon,fragments:r}),r),this.maybeBroadcastWatch=rZ(function(e,n){return t.broadcastWatch(e,n)},{max:this.config.resultCacheMaxSize,makeCacheKey:function(e){var n=e.optimistic?t.optimisticData:t.data;if(iD(n)){var r=e.optimistic,i=e.id,a=e.variables;return n.makeCacheKey(e.query,e.callback,nx({optimistic:r,id:i,variables:a}))}}}),new Set([this.data.group,this.optimisticData.group,]).forEach(function(e){return e.resetCaching()})},t.prototype.restore=function(e){return this.init(),e&&this.data.replace(e),this},t.prototype.extract=function(e){return void 0===e&&(e=!1),(e?this.optimisticData:this.data).extract()},t.prototype.read=function(e){var t=e.returnPartialData,n=void 0!==t&&t;try{return this.storeReader.diffQueryAgainstStore((0,en.pi)((0,en.pi)({},e),{store:e.optimistic?this.optimisticData:this.data,config:this.config,returnPartialData:n})).result||null}catch(r){if(r instanceof is)return null;throw r}},t.prototype.write=function(e){try{return++this.txCount,this.storeWriter.writeToStore(this.data,e)}finally{--this.txCount||!1===e.broadcast||this.broadcastWatches()}},t.prototype.modify=function(e){if(ic.call(e,"id")&&!e.id)return!1;var t=e.optimistic?this.optimisticData:this.data;try{return++this.txCount,t.modify(e.id||"ROOT_QUERY",e.fields)}finally{--this.txCount||!1===e.broadcast||this.broadcastWatches()}},t.prototype.diff=function(e){return this.storeReader.diffQueryAgainstStore((0,en.pi)((0,en.pi)({},e),{store:e.optimistic?this.optimisticData:this.data,rootId:e.id||"ROOT_QUERY",config:this.config}))},t.prototype.watch=function(e){var t=this;return this.watches.size||r0(this),this.watches.add(e),e.immediate&&this.maybeBroadcastWatch(e),function(){t.watches.delete(e)&&!t.watches.size&&r1(t),t.maybeBroadcastWatch.forget(e)}},t.prototype.gc=function(e){nx.reset();var t=this.optimisticData.gc();return e&&!this.txCount&&(e.resetResultCache?this.resetResultCache(e.resetResultIdentities):e.resetResultIdentities&&this.storeReader.resetCanon()),t},t.prototype.retain=function(e,t){return(t?this.optimisticData:this.data).retain(e)},t.prototype.release=function(e,t){return(t?this.optimisticData:this.data).release(e)},t.prototype.identify=function(e){if(eD(e))return e.__ref;try{return this.policies.identify(e)[0]}catch(t){__DEV__&&Q.kG.warn(t)}},t.prototype.evict=function(e){if(!e.id){if(ic.call(e,"id"))return!1;e=(0,en.pi)((0,en.pi)({},e),{id:"ROOT_QUERY"})}try{return++this.txCount,this.optimisticData.evict(e,this.data)}finally{--this.txCount||!1===e.broadcast||this.broadcastWatches()}},t.prototype.reset=function(e){var t=this;return this.init(),nx.reset(),e&&e.discardWatches?(this.watches.forEach(function(e){return t.maybeBroadcastWatch.forget(e)}),this.watches.clear(),r1(this)):this.broadcastWatches(),Promise.resolve()},t.prototype.removeOptimistic=function(e){var t=this.optimisticData.removeLayer(e);t!==this.optimisticData&&(this.optimisticData=t,this.broadcastWatches())},t.prototype.batch=function(e){var t,n=this,r=e.update,i=e.optimistic,a=void 0===i||i,o=e.removeOptimistic,s=e.onWatchUpdated,u=function(e){var i=n,a=i.data,o=i.optimisticData;++n.txCount,e&&(n.data=n.optimisticData=e);try{return t=r(n)}finally{--n.txCount,n.data=a,n.optimisticData=o}},c=new Set;return s&&!this.txCount&&this.broadcastWatches((0,en.pi)((0,en.pi)({},e),{onWatchUpdated:function(e){return c.add(e),!1}})),"string"==typeof a?this.optimisticData=this.optimisticData.addLayer(a,u):!1===a?u(this.data):u(),"string"==typeof o&&(this.optimisticData=this.optimisticData.removeLayer(o)),s&&c.size?(this.broadcastWatches((0,en.pi)((0,en.pi)({},e),{onWatchUpdated:function(e,t){var n=s.call(this,e,t);return!1!==n&&c.delete(e),n}})),c.size&&c.forEach(function(e){return n.maybeBroadcastWatch.dirty(e)})):this.broadcastWatches(e),t},t.prototype.performTransaction=function(e,t){return this.batch({update:e,optimistic:t||null!==t})},t.prototype.transformDocument=function(e){if(this.addTypename){var t=this.typenameDocumentCache.get(e);return t||(t=nj(e),this.typenameDocumentCache.set(e,t),this.typenameDocumentCache.set(t,t)),t}return e},t.prototype.transformForLink=function(e){var t=this.config.fragments;return t?t.transform(e):e},t.prototype.broadcastWatches=function(e){var t=this;this.txCount||this.watches.forEach(function(n){return t.maybeBroadcastWatch(n,e)})},t.prototype.broadcastWatch=function(e,t){var n=e.lastDiff,r=this.diff(e);(!t||(e.optimistic&&"string"==typeof t.optimistic&&(r.fromOptimisticTransaction=!0),!t.onWatchUpdated||!1!==t.onWatchUpdated.call(this,e,r,n)))&&(n&&(0,nm.D)(n.result,r.result)||e.callback(e.lastDiff=r,n))},t}(io),ar={possibleTypes:{ApproveJobProposalSpecPayload:["ApproveJobProposalSpecSuccess","JobAlreadyExistsError","NotFoundError"],BridgePayload:["Bridge","NotFoundError"],CancelJobProposalSpecPayload:["CancelJobProposalSpecSuccess","NotFoundError"],ChainPayload:["Chain","NotFoundError"],CreateAPITokenPayload:["CreateAPITokenSuccess","InputErrors"],CreateBridgePayload:["CreateBridgeSuccess"],CreateCSAKeyPayload:["CSAKeyExistsError","CreateCSAKeySuccess"],CreateFeedsManagerChainConfigPayload:["CreateFeedsManagerChainConfigSuccess","InputErrors","NotFoundError"],CreateFeedsManagerPayload:["CreateFeedsManagerSuccess","InputErrors","NotFoundError","SingleFeedsManagerError"],CreateJobPayload:["CreateJobSuccess","InputErrors"],CreateOCR2KeyBundlePayload:["CreateOCR2KeyBundleSuccess"],CreateOCRKeyBundlePayload:["CreateOCRKeyBundleSuccess"],CreateP2PKeyPayload:["CreateP2PKeySuccess"],DeleteAPITokenPayload:["DeleteAPITokenSuccess","InputErrors"],DeleteBridgePayload:["DeleteBridgeConflictError","DeleteBridgeInvalidNameError","DeleteBridgeSuccess","NotFoundError"],DeleteCSAKeyPayload:["DeleteCSAKeySuccess","NotFoundError"],DeleteFeedsManagerChainConfigPayload:["DeleteFeedsManagerChainConfigSuccess","NotFoundError"],DeleteJobPayload:["DeleteJobSuccess","NotFoundError"],DeleteOCR2KeyBundlePayload:["DeleteOCR2KeyBundleSuccess","NotFoundError"],DeleteOCRKeyBundlePayload:["DeleteOCRKeyBundleSuccess","NotFoundError"],DeleteP2PKeyPayload:["DeleteP2PKeySuccess","NotFoundError"],DeleteVRFKeyPayload:["DeleteVRFKeySuccess","NotFoundError"],DismissJobErrorPayload:["DismissJobErrorSuccess","NotFoundError"],Error:["CSAKeyExistsError","DeleteBridgeConflictError","DeleteBridgeInvalidNameError","InputError","JobAlreadyExistsError","NotFoundError","RunJobCannotRunError","SingleFeedsManagerError"],EthTransactionPayload:["EthTransaction","NotFoundError"],FeaturesPayload:["Features"],FeedsManagerPayload:["FeedsManager","NotFoundError"],GetSQLLoggingPayload:["SQLLogging"],GlobalLogLevelPayload:["GlobalLogLevel"],JobPayload:["Job","NotFoundError"],JobProposalPayload:["JobProposal","NotFoundError"],JobRunPayload:["JobRun","NotFoundError"],JobSpec:["BlockHeaderFeederSpec","BlockhashStoreSpec","BootstrapSpec","CronSpec","DirectRequestSpec","FluxMonitorSpec","GatewaySpec","KeeperSpec","OCR2Spec","OCRSpec","StandardCapabilitiesSpec","VRFSpec","WebhookSpec","WorkflowSpec"],NodePayload:["Node","NotFoundError"],PaginatedPayload:["BridgesPayload","ChainsPayload","EthTransactionAttemptsPayload","EthTransactionsPayload","JobRunsPayload","JobsPayload","NodesPayload"],RejectJobProposalSpecPayload:["NotFoundError","RejectJobProposalSpecSuccess"],RunJobPayload:["NotFoundError","RunJobCannotRunError","RunJobSuccess"],SetGlobalLogLevelPayload:["InputErrors","SetGlobalLogLevelSuccess"],SetSQLLoggingPayload:["SetSQLLoggingSuccess"],SetServicesLogLevelsPayload:["InputErrors","SetServicesLogLevelsSuccess"],UpdateBridgePayload:["NotFoundError","UpdateBridgeSuccess"],UpdateFeedsManagerChainConfigPayload:["InputErrors","NotFoundError","UpdateFeedsManagerChainConfigSuccess"],UpdateFeedsManagerPayload:["InputErrors","NotFoundError","UpdateFeedsManagerSuccess"],UpdateJobProposalSpecDefinitionPayload:["NotFoundError","UpdateJobProposalSpecDefinitionSuccess"],UpdatePasswordPayload:["InputErrors","UpdatePasswordSuccess"],VRFKeyPayload:["NotFoundError","VRFKeySuccess"]}};let ai=ar;var aa=(r=void 0,location.origin),ao=new nh({uri:"".concat(aa,"/query"),credentials:"include"}),as=new ia({cache:new an({possibleTypes:ai.possibleTypes}),link:ao});if(a.Z.locale(o),u().defaultFormat="YYYY-MM-DD h:mm:ss A","undefined"!=typeof document){var au,ac,al=f().hydrate;ac=X,al(c.createElement(et,{client:as},c.createElement(d.zj,null,c.createElement(i.MuiThemeProvider,{theme:J.r},c.createElement(ac,null)))),document.getElementById("root"))}})()})(); \ No newline at end of file diff --git a/core/web/assets/main.d14a79e7e016a7c6b5f5.js.gz b/core/web/assets/main.d14a79e7e016a7c6b5f5.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..f16490ab26a21f36e301a689663c3083e199495b GIT binary patch literal 1195737 zcmV(`K-0e;iwFP!000021MIzPcjGp)Hv0LTUm4Er^3q=%9vpUeZAx+yI}2-;(N>nHVL!KyBAT~SKei7K_O`bj68dpx z)Oi`?^r#;NS=I_#^e(6IAZvw-eiCPSI_u|2YEx&C&88H7kbE3woiKy1{0+Crlh>#3 zPxCa4N4B#_X+BHiU%pvjt`W_DI(zYI7DYePAhn%h>zhStcZv4$Z4&2W+u8K$UP2wV z;}pLX1?|wgX_DrdPyHVj(2m@X>1`{psdE$#?Ts*d7re7`$6+M2@}qp5CbzA#`IMfd zX_DI3>-Z*!!a)m)&BF<`oT4BHd%K70FpG02lpKOm8kn?c{mYV!dKD!>9>$|8v!DX% zKRL5V4rP|!{+P_t3|{xDrH1h=rwuPpX+Mbv__6~px6Lo3D9lujUyfw|)8g!#MZT=( z!q4rw{XNgy0j?Xp)>Iv`=QC?OJlxqneA=<{i|e}Xmg{Y~-WhQ1U%$wKa~4jP&9L94 zgTG*RBI}lPC-5D_-Y`k++~@qrouj-H(Rh@Pzo$n|?pv<4nIDO&vDgFepi(TO+w;5~ z&+GE;ie+~pnPz{HoTQ@9tn&{+n$Z-qU9_xC_Lea&4kpyMv1iJHug}t;PuuN=7d8|`Vy7q=!D)F&VMSA{!l$g-tJ%=EI0=j^bl}IcC=yB8EXpeh zXTeoOE2+=Y6w^fg<{BZYPcq*XO^(FRD2%E2om~B|zbJT?{LUANEG2{H`sWwy=~Ab^ zKMqojs4x^IW;rZIFbY#!@!&KM(%dQVH*hB$+OF^Wl#iGDdnigh^YMD5>g8ihu6d!q z!uJ{mjyAd1-V)!vEm=oG^+4zsZsLaZIgTzWJ}TGX!;NKBsIj>Cve z4#_T zK`T#M8O>W*I6TBjyhZQAET=I~?X|4U|2cjCu9M*a3x{)?I(%U0y6+v znJg%f!yqCTdAqIh<&HM3I@4J;*4X4!rw?T%y-RLcVFvd^6{V_K9&L(gHS)Q|_=M>c z*8t8k6mG3qJfP_?N^UL3Il4*0K?^5pyKNg?e>EE#6zdI3rnXZzwtULT!xowCk#v_? znZ(&_0^>Ox+G<4le%{!QpJIA9rTv@^S~MPPCBv;NoIIAj&R2?JR?cKvD1nEQNE?)IXIb7F(0&x8v=y{e#@2-9<75D9Z`e6`_tMWv z*uj;@kBM4#Lr{_T_iVPmAeWc3c$U$D+;{MNMD0XU`tMno(#y-zn#)R%1y6!&%9g_y zu$tI41=zTFI}R~F?UX((7sc1}vt$xsdzP*1<&6znzU8NnU8H3Jyx3uyOwQiFedBNN zCF?c~rc=HY7lq7@=_SodzO-p)LbEIwQAcVxOs}B$hvc$YO7f!2HCc`?f1!-+r!>eZ z=whgG*7XCb+72;u;>M;nJMO9U?0$Xc9(HA}#;Q^0cF2pfk8dtt`-kku|M;HEe!ca* zZT9QMkIz0{K7aqyyO+;C{_Jmi1QSj__}g9f^Z)$x{>yg&7~ z581FJKOBx#rwB!pZPodn;(Dv@Z-rle}{ke;pF4%_b>gOJ@)AOI|uBS=kM^s z_WfO+`Ox3p7iGSA|IXj#c~Ab&PtV?*`g@$*XZ{}l;KbkKg}n0jUH0qDKj5VNS z|MCy{+c)q3@%-6G|B$~3{6k*jm4C=j(d=kkvt-*b81*!MhMasrw% z`4w&1~X$R%H>2l9nTupBZDviG;~hcube zG@twLul|?z^UgF)@&rEbnD5De4#Sw1vzw`8K(l@tPV*%7VO<=Cqge`jzutyRXgr%x z`E;9xx%hn(L^IlBikddm$3gZtI@k5ajSZ71r9$4{+t%eJ5`TGVfo|1qo3z=KXgM@W z9kSs$$ivs~-n@Qya(VXb`I{5Tu`mXWX$y(997Wx0OvjzA+NsoWC8U|XD9GX*yXc~~ zV9nJlD+)&+OM202Ai>hUfoiOkU^SL6HxBJK<;DBHZZC=svzfboXIyE zp5DWy_C2~~s!5mqB!(T(nLg@y+7=)EoDXkapPrR_GYYf3+L>>{Oczc~j5xn&>P)B# z*r5?8v(Va3E>-!^KE?`xA4Vg~t;0$l(=06BB>S-hOG+>Mvn)?0M|nC&rF52u(d#&a z-HuOhg2=YGvSxn^ufBCUA$w~%NBmn~`=-N^ihhvy$M&VOV3qK1eE!A#y(LQF+Whn6 zjt-uOqt|g>F?*$RW;j45)M=5OQHOon39{F5{?6XpA-K~88gfVf8Wr+dVaYUmWDt?V z=f}NaY1C#^PDija)n^kX0WaCMh0lDSVRMFrnVpj@*J-!y+;<(ajMeS- z1}ml$W~afBib`_FIfiYG)}c0adQGDovT|~Ahb)lKVz`S2sK#^S^Ek}Fq+FTwthb0_ zvv>suYQLOw5`opUxcH?a03??lKKohCz};7G-ak`Qe+Zi>y)STAwT4jB_(GkEAizqR z8;X@QG_y>=+Kps&%98SA5`jQfqe^@Q#{{Y@KSw(YpE1H-XTh@tIcY15vpk6V@GWd6 zMUH_uJ%C(DMJtS3)X8o`nAUCW`jv8_kY<^TLiDfo&$Rr= z8IjILrk49U*2xr90kCKz*R-k>FWJhN;#RZF|iHHad}PvXJ*;Xjge zP!b^A;wARV+^#KBaWh^@W4mph$P0cG##%M(sjeCd2B?}k{--AGt!eBkndq=2M;p3F zr3`YP=~PUc>gWLZ^FD>O)2S`s-A`|qeg7hvOlVy5ZC#@b#x3J8w!Yl9`aPHY&Z&?I zhEPT6vn&fo@hMm*8O1cpXsg!Dsq9d{{1jiu$!*+%8iIaK)0Xv(vfUTfFAhI<`NufS zX*Lb|^ej1f|EAhspV|7A9fJn+)g99~0G%3xv2(P7Ke{4oF0;@68H{x)x=l&x|tJT3|2QR|w{(Sq(nG5Fv8 zy^vjcmGNg+A$X~6jlfo`t@>O?yT6x9Bu_cc&*KZ9KXs%&*3*+o-C!(D4x^t}cJJTl z{5DAk)&Au#%--dR0- zJ=Tu38mdUL9O~%F5;mlW;iqCE5k<^#Gtnpio&}L3j2w+sl_c8o>YUH*(lUJw@{}2s zoywtMxs4xE`ga_{s|4D&!egUOnpwW}ttq5Lxl4MqUgRHxT<C9m*C@M+y zr+rZ5;+oDIMlun5f8HLxUf9lJkSsoL&8X|BmnUzu0>1aF2N|`)sN7pGk~mM32;2x> z$6!`rYl-C)+QGPTG~jL1l$?f9Tv3xsGX+cF2b`q=hN_cRPkAU*{66Z6en;<&Lg4vn z$CNSUR7G!-l!w(2DeSJ*`pJ{e>4hWe!6$8@da}jO=owax z{#&lSaz{~GE$aqCWs$3629xg%?7-wYemHdmGX)mEz>&T3gLCaScURc*F4oe6SMasq zWz=w$GxBJOh}LGnXR4b@(rGAgMw^-9@k>uks7ITZ;_r6Qt6 z)StwI$It99%0K;V<|#_&r!mfx%9)1?xX})gwrq{EiZu` zVAmM1z-?xks>n>$r{O5BFF0IA*Xwv#|5d!~t9L=nWdQTQXt0UZ68b(BUQTMFS8C5| z_%K{n_VXl(C{Wc{ji~0molp;6$HRuralB%rbyx3(S4avgjE5F!S)1?|T4HU%FS$vE zN*ah0!^hgPG(TGAIeM(`C%3%sTyEyzDUk4`DSsEl4TJ|PX5tfYH4b8flI~g^%(?R} zc=yB<2$Nc~+6w}^)@JoQ$ihAsv%Oj=eO$lj<}?i=jD&RlKM)5zBp*xhJ)hP3}f{Sew@`%JX?m@pCen=JVDS_&8tFdDem-agw)!C`xX@ zduq8UL|^!pbm*#{c{_{pkd^W_m|xNQJ~F$psHWBSSN#HBu`U@$ZO&?`ozrv@#sLg( zCZe0Pk1u1YVs&Pg>}Gw?EbX!emOoAJ8Il!;VN<0I_2FTazQNV)gKHA;f;lBE9Yi(R zi{ZRGM@bZ8$W5TEEnMcm#OSL@`=6S$x4+FOg}uyYj?R;K&~R( zD!I<^Y8t^`VqIK!L2O(JAF>3l8s$t1RED~i{P6K!*WNF=ygumti#K!Xwj_n_7!q(n*g zb4b~)CFRkyY_FoFx!nx}Hmerv=oBmJT%}WJgK3#WuJdAO=K5J0PHOBH4X1o{#e7IB zC6#)L(ac++XSbj1xUaG0E5$RCeYEBQ5;jCTJ+O=+$D7pDGoR-xsx7pYks$|#&K7i_ zW;Z44bTaQ5Jf-5A-l0GlX=QV{II^*pOzK-CP+tgWwEQ5Pv+Rl zdreAsfNao=TSc{OaS??rKHScm+mv{FtTjLQrR%EgcK*F@URGVXybC|98E>fOfg8rH zG>AvE<=(wKaNX7x{CM^1RV&O|Da~klgLbf^dOI5vig-``g}@Dgs~Y@{Oe|0ZG}6pV z>vrroMN#Qto1gKrORX9U)wmOjJgKz{{^0M_ZV%Qw*sl1k0h>7US{eQKjK*-DCr!L# zdZ*4GwGs6M%{cg-nxRhK%5uh}xGd;kp8#Lc!RvVVK84e?qUp_&1uQ&nI?=1HAn|e2 zIbM^S$h+hxzz!kh^E>Xft3v=)Uo4^8J+{~2kx}Hy-86}5oWD|ocD zivXvsL0uC!;~RKT^P;{JKGUaT03%AbIU5(E)>w`E$z&SQoT}zGtgnv2l^^Nd`+ojB zjJb93aa{W2wO)l#Sv^}ACzeS-y{JYpxYCXbO40hvmEyDdRrwb^krMJe$f)MDv`qC-+1|&|yn!ru z_2hF@C_QV<(grF;;ek#}lNKS7gLdYKq2XA6zeh^Pl1ZgU!>@Q}l`$N(MOKuUdXcdbp+7+r8$ z_Lj4ZFhN$M=xCVqR}UY>WhIB`+dmv2&%*{yIQbH_z3(?HfOlV_wjb%;+FJh79pb}X zSPk+1_<5=t(rEp7@(oy-ufOvqMvWZ70tSfopT~mdq0~R0|7S6vMljYaRjWz|O#iGE zQ2^{12LSTyx~&OdvtH5GuQW|s(_k=Q@WI1mmTHHKfnwp>ACTq5S)3>&`UH&mFcp1!beO`0F@PPfWgr?DT zo|i$BMtxR$%JW(Lei_WaB5tF(Rq9zqy}hA+<|+_byGl`&AmG+#x0A#YgzE5Alund!U?L)TaM(g{;Kh(5) zoPr>li?i+le5>WzpKdORhCOON)w1Y|%%=vb#jIdH!o`!&Z{SfcAxCO<$NZ>V z;l$Uin@11pIwcxvlOJVAHno{@EDW=s9%yL_=OR39)7K@EKJ{^}=D5?82x z8^&LxKOQ?BzHn!8M2IDa!1-E-z-Q@B-Oly*?N4dD;Dpx?3HOxFuJH4O;?(e!L9q zyH^WQWuUfH)|+Q(dVjC8%UK)!RDES2pq7%CA^u|JwKVxUB%8wVN3=T;9{_-mRY-*6 zx?(tNu);*H0T5Q%oZ2f}iV_WT&`kWz2ia#qz{|LD%W;TA1D&I_z|R`Fw*Ks11$qXs zvO&uxs7m*vB%`gXH0WQ`yk%cFrO7WqU!Uf#RvpxCb7X?rr~zL_CP4VQ$OF)?Av3H71``(8yxemDrcZKA;6-@~7$#I619aN)lw4!qVC z6&a`F9{)+^(q{-n zMr|y||6!5Q{Pko)2O+p2WF#g5fj5O#CxrTnNlF4XK7a73G@Yh%p;M-I(hv z)Hnk>v}b_xTfip?>jIm0vM7W=$t2&59fy=?$v0zOFE6j}ETEu17E}}kLGHkMWpGpl zo?^_BF{LnA_WiwhfDRNxgmOm8z{)VF;!XdTR*<(~aD201A8dLBO!5d5`bmV((fle+NCw;U(S%`M5I)V>{(6CA^kx#}O%kZ?!C3 zW{(1KR2m*R!KO@yDiWWS72Me_FJ#Mej*{;itLQpMo0|zEFcSnNn;y=mOxDzH+Zoif znK}GR-}e(|5pVk0ru9S1+Dy-ri%pD_8*lo-rq$BOn)&Y0?0e+Y(dOpNi5b=K=l_0+ zEoM|>MfLQeWBGTBsS57i4c|dw1=5wbMP=cG<+jDQ3(o75DWxfe0rMSxZIT zN|agz(VdI z6kDCMG>Efdl1}Ue3ljG>8DQAiT)sfb#O~Wu-jH0Ox5ScpArI|HCt)th37sOfoq`M_ zhL*14NAm4zxeMaDQou37b|7|ML3a0cx1UJNJBt`1D9(mMnzq~OcPGr)4;$k{K*)F5 zUOxQTs*rQxuL)_<*RaEujpJ<##Kr#54j?3EQILb}U9Y>MHL;CthOQRj<%4V<_x;$$ zHBWz$PyXlh{X5wW@Bo`KzQPzf8tW36vRE1eGX@M)Rh`^q zB(`M{%Od)u)+1A^9Se&f#vqfz;k?BflM&QLtWCXuv>Hni5K?XGbcSJ+gFm(ZLuS+S z{KC=WK(6!IM)kWu3Cw4p7k0u7|AL9={GzuaXtjtBtp$E|ju+?JX1^mQriPn+n>w3T%WqkmSNI{>a2=;`NF?scxiYt9F%kw4$1{=dk8@nNdzOUB z$|PAiEMDyEQ=5_jG?8^S)bPJa7~8Ni8&aJ*3m$zFMm&qWsWqmD&)63BQv|%^FM^o= zVlgt=Z*FwvPaMaLJxDh_9zb)$#ju(d+mY}@CJ1QqkELH!cH0s&+ zM*}(xW>GFG^vdh9DSbGYx8lIjvPh@aRX7S`J-+Jwy$qqNOs(zqh6=|^Asnw$iXV!F z@p}xaFvko)iWPF+Rx^n=(j7o>zM7T4P&vy}$}xiTQs-D75?UBnQ9xO6h>BRZ>KB@L zx9K{N6hC}%lrfCI`@iQ~&$j**Z2jtP9bR5+%2Q+KIPXPvt_|c!3BPZxZ#O{+>!b{e z&Hm2%ZbZKQ^vU|x+5Fb}R(&*7A6eg8n{?CqRwHb{HYKQ(bdR~ z{PBkH|Nij8`HoQk2f*C3HV5_&0o|X&2tCVf*D{vs;9koAiULzzL!X#Qp--*73-({E(Dl-T^u zT)rs_?AEP(Wyy`P?ZqhO8L?R_(+>^QhI2! z;kkY6+n)xD?ZVl#k2gLI92kh!rM?E<@I?T&%Mg)4O6DO8X6^g_mX^LHUg#1XVim~6 z0c3FLy(aOu+>UF(%6^`c_(I7%K9j7DoEEK-ojd3P8Y^n&buCt}Zw(QoiFI4cbP1WL z4~iexcCB*@PYd`Aor-IYosrB_R_xfj_fDwm)FA!1sN*@4l9KwGD)x;Z9``qdL&KM}5Bt{Q&A= zmYS{D~! z!WnM*i5a(ghwL?d*EMs+8o57}afwg9vi5>77LPs|l zY1>Xbi18-{*>$`1`&_z6X_Dl<#URY4Q84dW!-(El1pa>+rWEV!S^XrMO=64OhJ$?Evpm=Ri$$)IyVLO3 zFdp@+t0W!Jbn7a)v&gTn;{mKCvXA*>QrC{;0ua(Y=K1Ijt6@_OaQ+@I3wNXJ)9GO}-j%r-O z`r|Mfq%I<%X)r<1H_^(h>4TjYOdSso7O z94cI;>k9~9h<02urYMN)A78c(lN_v_$xItOz+N;k91;p zU5BuR>|-zpXIanMg=H?eq3JM6ZhO`^91K8?%rcsu(unr+o)sr?RhXAWppu<(?v=&q zx~ut4&1$~qx)%irC!^lNSfDv?_)|{r@@K$r#ZqR$eiZ_jp_!H;m4`~#pq(J9lg<3$ zg_O&EO=3re#2%u==5ht)cQ_fLh(HkzN9h@v!mqSXuGrsGnv+S5NDrbMc_IL1y5mm&FUVD_pvhtWLRB5FJjKpvNFwIn# zIEB-TN#in6ZbVbbeYQ0AJJ~$T>7=}>6r|tLX9wB1aY*D8Wa5yKws1sbSXnsaDl`ah z_&PBttrL;HPTT}JTPKG4Ixzs3knQb*uV|gX;H3X*V;NdvC`*a9}^fR|UR3 z*zzihfKal@Rg&k)r042-xLcK&>F6r3UDD$JI=hZV{z0#k@LHOGqL1VnghKn3P4Mcub}=MrnwpA_rd1 zQq--;piY0Sm1D9@i&#*iMXYLh*2PL~Fly2U!?@QcU^YxD2mV&ezA_BCZmSe7Mh7J~=@QF5@ezuo<_$dctMr)DMb+>&u*eHE0s z6>c$2^oFK+*bgGEAx*-;0M59`RWKOQRpya2xn*hpNP}t5g2)WbdMxU^^{FLIxY@3u zBxS7$W=&Q2A51^2WMS!V=^&gqc3{UD;Y=d>^_0dxewQOfmOGDd251nHW=gj zYZ~LkDqU}k>uao>*S#Jju+k^Ew;zFx&LNlTd6s8~({g%o zv*tA}Yi%nwX+x(VHx5agRk>^$#D*?+TaZg<9Rr_KX0&}9D{T_o^$rh-=;PjoM|k(5 z)f|M%I%dG<(3f>qzWHC( zfZPkFw4*21svTl!U8yX9U=%ChmXLW@$=y~q4hEnka$2nmvRJhUW#c5x;i$Xa8>4Zq zw*XpR!bQSB+qza1DHLPFU_c$ap&2Tf0sM5Zg7?#)ALet1SpS6=Ls~W__gYYmW3Ad3 z6RZ8rAk1LK3|3|?=Pq-d(5B+%3)cp5;yNT3G_u3g!CRXmhWamb%-H#SKo~-CfdB|FL&YdGI$^+BnAHPJ?L4 zdLwU1EvrXf2Nnap;`5q*<*?IQ@8Zb=yv+VDDOVL}@W!$@fruKmJo2EPm z7Y|&VYDof08(UK<;JM6LEEB~hH#*Ne*Im26YdE=T!Cr@4z0X(5EPaPh*0gb~#SZbs zAV{wt!4bVeqeW{;lQmnl{)$`o%_Cc8RtjxPgD`{XDSm0oDoZdH)?siZgn@A+E-e;H z-4;jkyL-aqx4TE`r{KyN=yflOg3!C1#sfNdRUx9gqnjDoGSAgQ=B*{E+BuL80tW@r z1q3ut3~2a`9sHW%GyWSt~Sr%sRv1 zid;H1FOa8~?e?hdrA98P&|dce&`M65-f+o6PTOti`{nz7)RbQe9{fT|uEuYGJN30| z+l94iH}(^2)-L;zoZR1EF3llGu`%Zw^i7)Ie6Gzw4fbPO!FH+6(aNjR<@aZ=Jv>IZ;Y ziKr?lrk=l z$#i|=GP49)sv#R5smgRnRcqgd$JXl&4_DNl=tlzkepRG2Poq3$rs=DaX?m=irrCFe zV^4M4^cCFe-&^K+^woM5py?WH*!w$sp8E%IE7;xJI|Pd}vsoV;?spHQOVZ)a;o-J) zN!s5&;4VpM`}X#BchORfPkSDgIbLcPpYn1Jw;}IUvz2_pis|lo(1?*?Gr!?ay9e-u zS6sUAhTO7`c6Z!8JS)QXZ13$u3r_sH4u68WvITWnI@yLxMS zS@pNty&jg1@@^}PW6j`m3d2^qkeT~w-inhOK-ZF`^CpTpT9~_#(hj9Kk~8B3$J42C zhN8i9I1AfV($_)oEs`_DK=_aXc8edRqZxvI33#HA;YGk*v%q(cg74F#U~|(6&w~q< z`8*JJh3vQ_1F;&L`e?aQsg8q~5^(h=nuC50`7XqY8aj^SFswt+Ut_oc_%gYT0r@62 z_XlIzzXr^3f7dO&dK=uyx0%07;?6jT2N8Xn%rc6l*)F+MG~qJd@C1kvmi!Pjdk8aT z5lvY3BO0V<%p1-&DdDLOi8+3w{u0n+GMd9}A!;v-?%nVTxQ=HK{?qhPWdAfpqLZmr zD(?*qZs?*+Fg`v*fd~LmLXW(y%vD+R>i~3S_OR3nCc<`t~PXIQl z%rt!SHhDPDi?Y7W_H+(;Bw{4A>`+MsIS7(s` z&?vU`451qM>3k;-MxflhFwA+CAW_H3)(^BWNp3_)eVv*upJ!frW z{5+I}(^-_kU}H>F;|M9$2Not6BMOI_(U=X9T`c`b9b?q}z5H437{{R6cFDXmpgCON z(Hgp12#Dg%cGk{6Y;JirRi+W|JB}h~yXqnbY-cHws=I@e^Tjot_mnT#%W&{EnSt)e zb_W_^sJkFIGK)3FIU{$8fUGun`Tp&@WWWN8aK=PomecrEk|KqFqw@?|F)>vaUYvk- zX02kU9Xzz1o>Y=F8kKaZG@@b-;41-NSLMM^Q;ZW|WtRm2!mU_*PsN0WM0ngJTb zbj^#>K(8V3A7K>z6i*s@%2-0M#JW{PmYRZjF>UH`!U3_F#EpGB=Y2qO&diT==rB=? z+Zir>Ge{6t>lr*qt95Qzt#uJT^mApe8K?(d<`in@Nx01ObW`r<^@eQ+?ytcb04p!a z#gtLMgaJigHF6XBy@YK?jTg+x7}8b$I>9$cXVHEc-pj@Bf08*lFC z=mkM8OMag@+`MD3Zp4zk0Je3l3)XW6RZgH)d%P^C%5!0#Uumsp{Kg;1W%cXt>eh_l zxA=`(w8n4sB$Q#vZ~U#Pks80%lTcd)zb&pNYRrbW^C^Y1gA?HPmE!h{+xThKb(MlR z6$5tY)Vwupa}D#p`rWiSD+RM7IrXC>p&9tTf7)(e;=Sl_dl7fMqmy#MudHWlSK&|gUf zjtz{`tDmMs8z=fpHCgqcQ^~<5upCa6_gH}#U;0})$F&hxd5_axAB2@0OcW%sw!zTz zXvrj{!(L3p814;^tu4>$O$u@iXG|Fx+}{t6!9Baz)LS>w8jW{po3hB;87nIy+zZTqPTEKUf7CFFNC;sj!w(gaZU0ODZpk)Y@HuX~WTZOjq+$$z4q#w~W1s2<@oR9_cHO-%Y)}6E&BzUgjnkAvqbpYsd4q;k zY1*_ZB{7a)ec8kWlEg4djr6-PFUXZc25TRW&I#K6;r7k?A6*t~5ybUlP`7?umDUeF zoaEiq$ZI6zaD+{mVNqPu@KH`SRoI4~0?bH4{VH z*Pi~tVu+`IySpyA^$*;m5)*E*mdoZV&hj7-Ba+l#8m>avm`;82uxkl?3`b#L_m6AO zw)nMNw;)Ua2uHJB=@hr?n#Cl{Z5a!!P%Vm)$6+FOXS?p=uSJ45obaPO0LWrrZ=r^y z{Fmp%nq&ZjDgBw3-4u0Hp*X{=Z^|W0GPzjkE#wyhg`sCz^|hH-eP{}#S#TQ|#FT2U zN6LM?q?>BIH7m!pB?m@bZmL?{CVt+9`Ilkm9p1>%Wpq8XpD~2$iR5yv)!lVnpl?0$ zh}G(1{xF7s4LP-z5-ir@f>{4`P3OZjn9!_M86drd<^ILu_n6H~#Fm@^9j_p)2Wv8V zddBUdxjx{as7{U^Rj};Z<|0I!8j1ECXzy-Ai#ms0e7~e65KKrNYhR*xJNeV8z7R<5 zZ*-1O4Zzr}cYXnCEaz`YhsE=mMM2bh%(Y&87#2OGy3k#EOF%&=4la6Syh!9E5ckk6uI}jq{JRpWBXDP32;0 zuB8REegiCV*ngcqe)>;#VO~7`3@32fyP$)uq?yA;){Xk`SpMqCT<7kENF;MrsLc9v zUDltEauzNNS0MXlYt#X{!FaDF&$mXMJei8f@A|7z2OIufxAe)V!x-^h7x9#bjvcbs z*}v1=w!44DhiP&vN+4ZlQ%hrCldj`@x9vE8>H0pv8;6^|=U}vhg3$u)Emo8g;Jtmfv}HovqX%Df`$dBukHNE)U==C50%4mAx>$WiM(!BFQmE0ng6 zueOn*F+vtkxEY{lp!d;CB6BTZ(eKR(vxLqIB3PMAR;H4bq0Y*na4z6HF5}Eh^b>cC za$q`zsP1&c=1&ByWzA!#<~Ug60Xvx&;sk3p;d3ZTvPY z{@l`#vvcQyIS$smfMPb>qR_)~$--{Kc#zy;D3_{3yOttc+EYK)`YJ65dRl)mvsT$B z$A|O&sz-`HBxp_Q?tp8zZs*$bcDB*Z#m80P(W*_5rI}H0QAEl?ZfCQb&KygS-Vgp}mD)1n92L!t-K}6F|Fc@HwZ*Yv$)V8ka zd^WWJ=eHn;1@s5J0)sbS91J<)y4zpL6&Ta%-DH){49oM(h$T`+ZsK<2ijBAt3cMNU zmft<>*Xb0s$65ULtI{cw2AyKos8i?~Lsp|PXpsxj;{z~<^_``#)BK9O&gWJ!kOJ z-5ulZd$isVS8ju|wMV(~cUwKs(+3amg3R;*-B%{dWjN}?GE`z|SPN{&!m%TLbPo%% z?YetkQ_u|<)Ht}^{bjT6k3G8a$=m7f=`wqbXc}rd6eK`={N4g`19FDj;&2&wGw&lq z+=F}!*0_=n%Ri;jkX5+FuSv1b&)_8gz$k0$fPtyN(Bp-9EsqsekUY#83`aJ*Vo_%B z##=-93FiF^^O3c}z@(VfU{WaWUg=zQCZRD98dcWI0#Jx2m5ceq0+t2RitrWqtDI$0 zBMPLaETi`!&akR@xT_=R(tno-05?*gOZ+Xr#y}PfMAi34_xB^_i0S)sUAw;@-rw6J zzez0ho7P`(Q#wAju9CsLYq5|)7!Z@-A#of;FX=R;{UE1}aUO+!0wo}?Y{*Ru>d)sW%WL=EH$tEL5GhunZ1XoBBgSKM>Rj~NS` z5koxbHNp5(K4ajjJ$b-aeC8GeooVui)rf;1>}3y$@Ifl$-_*ip&05%xY>L$AV!PeF z-LDB87FQ|6>+c@?>0*Bz?C!aTD)vX$+dY)tH9Ow!&Y|+I@pcaO(7Q$g#7>PR@2c75 zr52)9;(CA!0qtM23)TANYS?1uG@XPox)zjC*RA$9{6lLw?&5>7ODh=cORFk@c0IH* zeF>cyIxVa5b)T=JV)0BH0G(jr4Eq?Agmw(xaR6~G1q;2x)afkO7R5>|K1st$q^6K% zGU_QmzZQ8!t!qR)XQ9q3Ggdrk{1G8 zW6^3b8a)3KE2qNYVHK_pP{TeqXYqzdDg&aisDW7&TUkahOs9%7SNh5##zNuP6MbD7 z6=dJ*x`$sA=r}AVu&#J}J3Bl7Ie;zec-kLnc6MTHv)Gz*c({)an^(pPG?Ad@M+^~X zZ(o!?lB?E{2c9+C!2kYIg3GcTLu%~!VH(3tr-RbT*W>nwLj)~}PJLL1B zX1K@7>X^1Qpt!N=(wKkOCAZ@+r>E1PkI*YD+Ro=9vx7`6VY8HxY#PwlIaV%vQeZX> zNHz7a^?&dPFo17>LTj-efKUbKN5G+yR=bDi4)sXnlMbCs$3cb*VN5#ifwLOV*SjEV z6y9?*FLXw z)aUk3w_3c()z4>USBH9EfzAD!;n#m7N0J;kdJ?vpw7!v?S;2_Uh(7@Xt@RBzoAnmV zqWA{y26<13k>3Ps|D{>+07U$!hPH3UqW{v3eh`d(p={NLJ$Z-Ue8|fh#k%U%evNvC zsPZecpgl)WWXhW-f;tCyZ=-@QgFJ3j!$BH^Td{X2c|87#f;X0@l($D|A%4afQHm94!sX zs!q*&E?OVV9kz@=lq(E_zp4I*a^+z(R3ZUrcW`cS>pK7Q+`(bDZeOZV2g{hzJcjiJ zHjiKwF!Rchf%4W#V)i{c%smVtP9gb#M>PMQl)${0do;uK;{I~z`gO#y)>0j34IUus zMg~GizRmi0T%)T)qnoJ|O5CmOHN?0%X;TNHTQ^0p+rEebj=(VLSv#{ezX z3&FEgZ&q>~Lb}$p1bnjl<8b;BP-f)M&Q&x^Srec9oC)qAz}j(uMQzvZ_R0#SN(~6=H5Hnh z(G?Zmu2EqzCv}MY4FxnH@}JZo@>2(}8P4!}21uP-HZ|Xp_rCqM+VgKE zkCck>kTKA1D~dL1*ib6pShOEo4`cUR=jhD8YPS_sLzw+Nh{A!qN#Pu8=nqj6t2-9N z^c2u0$(4Rn2qjadOPu!(;S*Jds3_Be3uD1`QT256AZqyda;6#7c#nzAgKHyV2z?$@`mwcvV<=a;LDpPzD$T>^f2EsVVFm&d z+5bul7XM^51`R(Ug}t!PK_Ql$)L9ZW07Xcn+D~z|2S^i*FLMawuWW5ZsaR4TP zo^{|(?+9S6fF(=4Wi{fG99i;ooQCnW(cLUoNxhdCSr+PVAU(sbluI?M0K@lT zoIZ%$hcXmH_vPcTe;v~- z*gc%We~3{F_tka(C*SvP@9!-psPKvL<<95G4If_r)wYLQHx6J!{% z4t-w?{jEbb^qt;{!l!!i&f4Xx0=oO|U&r?RyM5O&zh(71#R`u+rqnERgkBQ+Fen9Y ztJnY{Lp>d!dMeEJ8@@lN0}3>~_ews9I528HV*P3KE05R4!Td@sWCt%3VeX$4E^;NLJWx|+ zIDkQo@8Y(5u($UWDfy_|gOcC%y1V~ru8X9`Rj~pv$w7k6eM8k<(Zir|1l$vMyu+-9k8917M%r)(4(_pf^l|*DPcTXaTdhEh43sW zAJYjO1jQZRK_BVxSbr#?SCNE4sf=iTCdUlQMsRXxbu1>yfc7j7py@~;Ow`D5=-{c= zg58k}jlnmf`LkJ`u<8WFrX4s(f?q1Lc&jNp8N=8laR;h7t7gp@0@<>{Kqkc_g+`Jb zC)y&Luo{j^-KR1HT&F7aQy7mbeHX@~YWG2?gyvzwXI`lw0KTXsnML2#qG+w#>&?y0 ztIfRw)G+h8Ld(}PND-FwKVpooA!1n1lzUH&Q$PZV2LcDA1SlriCcfrfh!Apl8PF?l zWWfEs>-@GrT=|1BxXKZXw75j67MCb9;u2xRq7w7_My#TUMH6C3NkL&=e%F! z50;3X4Z4UeW{jLgP6dNL$Lm@vBl#G_mJW+KMd}wFsNXO=@!>Aa7B@?l;6NN<^*9m%rpt@C#MUKuQJ5jS#q@HB$0Y` z6F>S(chx4gzR(G)2R~_t>vzQBKY*$nLH%oYwgrjEViLw&+|B^6Fz;bkg>+QyCBdH_ua$8-#Rpm*vkdRUM?~A za+$H0n;Cn#{?b#Q2*Y}BdwZp=+pun1X8qSFO0I&)>Mh3kBocn4ufR8Xk|g;UuMGup z9tKeu0B{m{oBaAdyDQ}wrNJEWwwtdTS$`$1zxH}pbeN# z5W&0A*;u`ilGysM2_1w%Ynp~}ZY{fh)K4apB<`TUEx0HaWYE0LlWTui+3b{2y>ycO=C&W4^muR8JKXlZO86cjA~Hin%nT9H zH$+5ah=`$KPAXz_6 zqUb|VW2kAo78R1@LZRj z*3QB7uBF$4X61iokmHV-nB{Rk?OdfaxW;<{89P49I(He_-gCk2`TEDuO11rzL1ISW3{F(JF$X z(bEzXjg}Jh&uA4vchS=lbQd)d^lBDGj1bevtKOdWQwleeq`qOqyOHgvjen!fOZ|Q} zzdi2OHd0n(-ixRUy;Qa|C%=uQc~)y_?mx=Xtm0Of0oErXojdglmwsiJ17H0?noR5N zQ#41D*WOhsLCa6MVh-~z3`|C?y5-4u0oM}Ban&2Yd=VuXtt8l#AV`4x#41^tqN+-m zJ@$fuW*8D=evqb3X(~#Vnu_Y0iS{D?f?cB!j*bxYdMIZXnes=ROBe}SOe}JPw?52b z=lqIDl7S0{vO!(?x)tigH|$WS?9m|O+LzX;JNc6i$eFJjtKP!Xl*Z(}pLcKxmO3(d zCXyJ#-l*^~&yE*G?-_XkdLGVi@){ysO9P@R<0Tl4D~3h#&dAQn|KL|tf6M5ybwXa( zb(KmsI0Rv>WjFB$>=%nzqKjCF>r!F7d)79*l`1Wn;>0J?DhJ(R5zFihksuhs*bb4d zt4s$=UWMgG)-r@slW}LV78xaqBa=QZu~xI`@O_z&3PHNNQ;;{yT86p>v`SMlmN!k^W*X{_aH0q{-9-tb z<4PGLr)OEt1&_pPmeDDxR3uuOiAnz{-oSaI)*7b(^s-f+~IHG7P27O9ayJsIJH)J*jS3khn^Jy%U8Q^*5lYl4#|(>9&TjtwvxCJ^^Y(gt4mPm#m88;98I>a zeQN>8vU$nA%jz&>x3}GcuL;i|rzOnK{e#1U-9OR%6tHzBR(QogN7%v0d!EdeSv<19 z@M8*w&2n2^K+S;v5Hn*KrqzG|0A0RzG=R$7`P269uFYJcmNOK=CYzLE*hG~^RwkY@&z|4a;d{jOAJS09RcoS>j# zq-1M^T$`@IW0#)C9ON8Vhgz8Pf>2!&&-fy0n!{#I;|pL|V2t(kF%}hM_h5hLtGamz zLkoerz3v}5Y6@8^l!UakO3^6=XRC{T4ki7jIXsY%kj)^|v)Y&pbvnzsh7~Pj!V}BY zSjpAMA+zJWw>q|fj3yw$GAx^TD^c18){4CBIs-%q?RO-h>12dJ3+xB$~kuP<0S0(%`HFBO}Sk z(&qV07{gUV9glIpTM&dds|5j!D(F?53=SvCAaRWXyMLvfjA`zjSsdmDTwM93p|B0K zONdK~-<^jJ5gst*dr??Ucc;5Ay<>zE%#CuQnJY(`TYrH9&`Q}{P1$)eq*)|S zreH;eBNHwzt=ZJlB+;d&uWtdK)j9u?7k8n>`V5fu8cxHB`q)bIh)2-|FVN0FxV5y~ zP{r}>x%eJnH`%X(#WG&v*)vF3Xq2)xC;VwDTkZ86Y|KM=v40n)uwNM_3+=EUok1Gh z(scDMUM^8XxKhk`@78+)u|bTB$bzq4sdg33$iXNJ5EuIT>p9Q5#ntYjMMu$H)CFggSQRWV(?T=*5W=k zB0ZB-gqnU2PP1h@tLz=+fgGxIZ=rYDS$*W&edP|&2X}zJQ*y8vmNdD3o=!&7scnytX*J|qSWI5zcQzy^r)JbHFMIP>5Ao*btOL4<= z3D8dO#al(Ze%Yq(h+f0cc zrDlY{@?{lv%$o8uQYIwyW7Zqvi1aNUvsP}k7+*6Hv!V=*+zsEq17+Q< z3e`3VEJ5@eN`+%z>-(!aJUrg@zNW~Fu&=@m*51SV5KST=-(2V5!L-AIg3hAc72<%UNtQ5s+x%PUm3e+ znYHY#NwyVE=oWf(^l(?|G}rAmRs1=|K zVHeJ^ecOcOOvysZgGh-YR70`Jz1)~?Fb5#mX^*lSqyU0AXLte&22jYa-a&Ah832u~ z*tlFh)c1NhXuo3mycQdux0Td_%kzbdY)k}dyrw^kjpPIomv6~~Hxal=GQk)MasqIE zm(Ih014_eIbA!d-V#n)gu+5Wt*k*IY)B-r~9d3V3_j^&9oRM={1$FHUm%8>#s~psiByHe)vi zO1`9VZwKFD)I@yMtj){VdH97?an!b;vwdJ}L<+)-#UnnsUnt}zw(g$%f2YZ9&wJpe zT5fr|V$0L|p=IuCjEH*M-3mu|3E)-MaxK{o7CNtPqmHL#fUM0o>AbTU&^P{!f}H+r zZ|%B&aatUnn1LUY2cXS!n}G)!JA!;M0U7;h%S^xKt2?=r3% zH#A{r)ZE2ixZ7V9pg5}R z2q=EAeR%L&L&|-5EU6|XeV~Jdld*DXWBU3*ciY?M*ijrGeBv*}$)Qp&Jq^)Yr4=Pz z{!f5~QbpZ1Be|ke#1Wo|rWBmi9Gg0P=wRvtP_8A~?k$TBEk84$D3oF<4~bF;xLSt# zUE`yNA%i#JKWmI24`?()P5wRG+=w#$#DFfQgOhRp#ikM`g$mFUDqwh1Y>qHNtr$NJveROP zt?vha-!;Z$7P z4Ud{SL!a=$(X45RWBgCseV{4tiH8xl?w;I$LMksFs2-M#t5WXqo}+1+q_qq#TYoVp zhKVGN#VJpbm2Ud+vX1!l$#nyFo$gpVjRmwcl>g9~yo9~AMtAne8PA`PWzGYbqDf|Y zmy1E{7;|h{af2k!slnu;(FPw3k`yAK=RulF>o{J8@VfHtNjxZ7&fz5+G>d{vW>Frp zX{s)0?@#YqXovUkf_4+ucNkA+dGmKX!&@}Vzocpz}HMY2v zquOe>;Z~=*G5(W~SfvZ*RfqcW2bz&_^{vakuI~orLsE)f#X(8oX6voFN9Fg&tLk}2 zie7L)ax_WI95p~aHttL+yl_)hHL$Xfy9)5i!e>hxKj2S1pHhbDfGB9vO7t4@>KNm- zS1MnH;5x%H*IcXgcHHhCP?JRk7H^;*?(OaW;f{Nk*^Y#j>G9sdB^+|le|Hb|sy8j= zZA!x_81o!xFe1>?DlYs8^U3ZsnT1OKxbIhy5UWhOVDho=mNRXM2~V zlOWQ)G`&4ycx4`ltXwXtoCjvcokD}GD+RAphkbMI-_z`Wxy1HG?J z0__y6#)nNFesB*l?J%xrJX>48Q2pFZN;y&J%P`I7rBc~>Ojz~uWNA39w9~nW261x< zU=6C4;IR_;v8AzA0}i3cMKsc}7rB=Xx6_E#B-KwEq|e|mNl$|Qxa2n&4($fNKqgy> zbxI@J2UQve#+FjE}N*i-%!3R_n4Q{VLAdm0z_t3lfH(7 z2N1jNrB$Z03aTuMRgSENxeYxmxq)p&^OrOYZ?LqSzDkn`Kguha+%Sxo99BZfYPa(x zLkz4w<;vGQQLS;HmB*;Daf}*kP!ixltNa$hHx{%w^paJ8%ToZuMhODe_)bdyJqrOr zdF03PlHk0~Wp*XdgnnWQ6;~jH(V2r-qDu36->r5MN-q6dqnjaswlPC4m7?3{%4#I$ z%q<^|a^~F1lSMA2r_D!(CzEMDH;xQpZo^3=D_nbnazmU^Rt_hLXlCz9UV0j>baIvF zYMl>h!fti&h5V!$H+J^Gi*5~Px6!R2l*ZZFZO2I)x!Xnt2C@JoceZpIq}}eSaf7Hz=EZ3^Z$EutAJl5Ez45 zUtexD^Eo|_FZ}#Gz94D4EpJ0ZLc49_%k(_Ha0o5PqHv1OU{73-gWa7y?+>W&qneMm z0lT|j{D^qA3N(;w_y>FYhYBN*smyA$%+zSnW8$rg4cK{+#2N65t-Z2{cx4f^EZNLa z*^3#5nNz5nLrH1*&kM1KD9HBC!H)Z9!T91kE*wQQ#{)Xp-aze-#?2Tl^&6u)EaI~7 zX?d^10h~C_%2_b|F&vH2I$Pt>NHiF(EpNv_-tzWJwr5eZn2AL}qTq@~AEKa-Lx!7v zO53?Kx!p?X4NU=(K&ww~yI6Hw-cGqZL?o%*95xhKEW+K&`QSv@u)f|Rj&g%D*@lN`f&G3x0b>5$M4(gmI!{HJUx zf>)R`6nyn)2NqU5h~}Pplm+V{Rm&MCb_uWcflG zx4UMQ+g+83lp~dWyzmA0FVm$cwZJI@m$qMzOA9mSztaRT^Qx${-JJt(_m8-lfGGrX zY0um5?*5tKYjH~}^<1I#4vk4SXjX1(^`=Z9i<4mz=dXfE7|na=Gs6LoJ1QNsoQA(r zGsE=mEcr+$w%2tCl*u(<2CAc5?KPZr%cB$h5*dFMCkPKw_~Ze9O-^;3UuXxqx`x?s z#IU2Hp=wwY2jcM7wTu&IZgm64b76K_7<%Z~M98hzKFgrEwx)pcrVwFgCepA^sIX<0 z6;BupHdW?Lg@CrU>|0^lL{i`f_qEY1oE2rW*5nDBF;iSEP-E*+QrhMY2{X*}&gJJ? zZR-&yNw_GU4)}Mu&L_id4J1W?=_`8T{@&tP%BPJ~keqSG;DLGiQYCS$DdyE| zY-Eku-?|KZ$c_1r+AMr9j>WIKOmZZSZUopcOJ3*C=2 zn$lE6JSeG?hJrXP$o`)Dg>Zkr?Ba)O9xQ%`JAVvZt>0_$TVr)wV|`q*`0Y9R`sQip z;)XL~xf0>R*W|cb_UtRZ%-Y!CJ|&mT+7*rj8MtF-*Z&`T@7~&`?M{AgkvkTc_eoIc`!w9du3aW1+{FdHHxpKvfXo`;th z(!bp)I8~>hcAl!QG}mQ|BX9PZuR;y8~V-}G$eIgcvGaAuoE4VuTfB(<_`;E8tna9jf+nsy5O=R7XcW`_# z_!{*+Jn1mL@bLI>{|gCwFar(6arhbON{$Cdy&f;)aDQ;b%b0~1U2;Tv2c$nB`+YL# zUXp2e!I8^%yQD|@WSwnXuNB-Y>^niGO_56|jo!I$_7+h_<+X5<=p4dl6?g#Xu z?2L07eZ-rgqO)4IQ~xr|EB#UeZl%$Y3Hn+FUe&vtif%3 z=&F14Z+*cbGl`N(8~S+XndXH}yydO$`3yzmFL6m13O^*Ef9r$S8F&>jb8KC(GTVMH zd4<7c+vN=HVl&X}eKz4uNf(VJNfJ-5BLAX!b|%~r@0DX>1*ajm8}8i}d)&;}bPMH9 zE-$z?U4Yry_1m_!S8)}==0lz|!;WCdS~S1wqlbZ<<{8(@*Qvzl+4^GCQ-HDu>6E8=ldT%%`fqFmKCT57Frjl{ZU z4!d1;wpz<-d1ag2S)Hw7ujn;Rle@;8{B>0k*j-_N_DRzDNbic8w@#^f>&(GH0#GVS zbjR^E^<-g@T4{rTDvFw~irZ?V#zHmv^?9iA%HUNpEDO9q=4~WbaKC&-uHjC3id+cA zg4~3XiVIm0VBwR~kalhpq(!&|It1F$_eFB+fU(nCN;T)0U z2iMTRbG!hJ1PH{%5#|xT>wCAL4Bf(~^csUZ3U;y z(MLxLb>iL@>d-weAq2U71DCYZRtwJO8)s(YM6k2ZA^Utc3>Svjucm~vNO26~d2mH*F}FPey0S+J<14IfgRF^)h)DXK^UP zI?6hSvUY(v>byB$v8d&{llj(sZ!xXqyO#N`oAV`CwR~4H-_@G-CAEB~GT$lJfw!^> zWKOHV`-;Ff-Pa?Z4;o6!h$cg(t9oeAN4rz%)@$ zMsLf*es}oi1?16Dc$N}{N1ga%jsFcJe%rdTM0S*-g^J`dyJ=I>_lf6wK59vBJRdEP zc--#!E_fe3)>wWM5)*GnLK^;W2*mdPgh)V$p~t{l0M(D9gN!g%#zF>)7}&=nkby`R zMlvj#6!3#4(H&WZ-I26H#3$`lm>ZGQz}>hiGiL4=)G%$3{bHJy>@h&%KoRd*jl-26 ztisF%u5*#EN7qsD+$)0h3yR7o`Sy|cor8meZ?wFZonNy!ZF|J~tXM_vp@M0}P;!=! zz%L?2n5mIj!4IgtF)Gn#7?sEmqOkb1QHglZuAVR|GVjAfXMcbHo5&m;Q7``0(Cd0; zU7^r$-0mC>w}W8nL{o_U{t-E(jCF^x5~6n{`V{LX3_gRu^RS>L?>oHJ)%x<`0iD_& zkMbnX{(r_v@^iXqV8NRtG|J_-A=(IQ4I!Wt_UOHaH?x@kxkOf{EY?t`yH1#SLsY;ci!fP0iPV zP4&OZfE|<^5o+qNzu*16MMxnuMr*}A?rqQ?bo)}IJRTe#4;#XGXeVAQ+2mqJOlqw` zSkPt?<^AdXiZ=k|NmJO46vIgB2OGnKz|C`I%{lYa0eq1pS1+?0LX%!(@ej3h}%6c}eO^bfdEds|fz_^Ae4b{5Mnt&*$V0&6E5w)B_EZ z{5RACZIt47@$(XP0=8l2T%o!{F5lSh%SBS^{*;* z{bZ-Uk5M(*w)oN$F7NJmK14HCoBY_{=J9n@(jO4C`9)E<+}ZIUSi5x{4*LiDzHW~B zJi8dPx`^E=Q@c?iwjeNiG@MDs>Vj^@rG^&-?>SKp>$ z-mPHX#j|z}a{a~X(!YpgU=+g>PG}HoWuU7C!bxiIcE9ntYoXlX)U1 za}u&Q7n4i4@z5q+A|~_Hek>+)JZsMo_X5bl(E9fC5(Yc>A0DRW3&_G=ne`W<%Sp*V zCxj;jS)q*l{%%RZn}&C+b{MDGlxi_f>P3OZQevIJ>V1~dH?#Hy9?9OMK-TIwjmtRV z;rR8Wc*B7=Ab1yow<5O*BK5H|U1b?(5Pk^fyY-Bp^|hz)S@lH5zaUsUahXRfLtZ=3*YAJ=#V=AS7d*z!_ z&|z=?=u0BgMIjue@qYK<=#T95t9w8Vk9)m=u=xu1qwT`FwWt&kzYX^VKsD6e;qF9h zy?gru#ZT1h6N9^zvEu+(BA6lr@0xR4)clD#PbmCzO@Bjt)?x$rDw<_x(Ukh_rpncx zV_9#Qa_w&o#agHBS%aZ!Cf?-dY>}>373=QT>73@V40iHj_S@sH-!gCOMmKDR{Q20v zGcx}sT_>7%F1*p}Es&1tPiupf{kLj`Be-Ap`?7t+^ov3L! zC7JNd5KheDll;SR!76|3&0(Xnt++k6_QJm4b!dz+PcX(@Sci7QF!9&gC z;WI%D0D0hOc+fxk4-ouk2ZG-S=?(!jDoW#?`Rj8&cpc%gInw4oSm6J`0{^39f%mt@ z0&f;DHurM11(5hT-W_=iN!+X4VBZF;tc3D*L3Y%$XA9;a;-qP?-)$U z!6DZFMj?2Ac%0lKMBm9O2Yu=V+up^EcX`qo^n=cD^C{u*U)gjrR3r~|a;I4R65qAx zqMsUX%};>GMO%BlPVeY&2%hHx9S_$%*&fgD5mD8|fxu^oe_OIqnEVs^8DyR}DuI*e#lh`j zaGig^)9iE&{Q<_KDiGPvK!rf)Hl*Zhm@h2=W(L~7tidD*|4|Dpp;TZA$_`ig3Y6d; zJp8gHNH)kv>}6YrHZnZ@CS#I$kfQow(pd za0UoO=0wDIc*!9+_3E*5xU=P`O+}4-`A#~6OTThZ*F-(u(HTnJ^%*fz9}KDdqIh(o z+Abai#sgF#RL7}j;6L7KwXOW}6LJoG*owB%iBPOQ$oPPdmp&vRC{Vkh0FpIdLIK)%(XWmkLV5(hjHhP}?!f49 zYR*!8q&1u+5pz}g3G1c*yqrd0WwG0Xt6G>ugR zd6zoz6g0n%X`cX{Pup3@hp>GUN|554llv;T@wNJ#T2`JL0nmrHOP4-5549awLc_ry z7SPd0U^)@<3%LzbhC}@x^0S#pQiVyKirohP!ok45*a)*fu`A)P|BK$CLk>9$`Olx1 zj12zuN&rpqk-@+C$cVquc~O^%0egxK3I3@DghAXE{GYSv7GoClp@5); zyQPj4PJRvFU3h?6xHqN6B#*~*I==HRM^g&pu;YFS>-SaY6y~%AZOL=z4tY+Ejf-1H zVPBD7!t;}JaTEoLXGcOveQ&w$uhtR8tkmxCsuAQ0lCf>#l^f&=5-75mh4VG9-7oH! z3S|D=mB0-d`Kkdj5_8DS;-l-eK}hs+O^VZW%GqxwKKZ%UwYV}GuCBN0TSz9=D#ENi zyJ7g#+H_3)A|BJVp(~oxpEY-cO7p1hmD!%J?L<2n@5$09AAIsdcuoFN4;4Bk_c@*E z@i{`2mT^HI^QiN7Ls-DsZ0CoQT0v5Hb`-?S=|5HEFYH^)dLMi|dC_X^zCQUO#4(6+ z8hJsxRx;mDg4aZ(YWR#*KKUWMlf?wJVr8BDMq;Q9Xx!fuzOkBoSMlUyMc(=3$CDr1 zwcdV3?#*2>cqt8jzf``Dbtf+yt2AyTxWYy^=KH~J2HRPsg^BMnq`u(>zY_g$400k5 z$Dq(WV1Fk1kr*V(c&Sz*iKoF8!E2J+W)3lSZW*1*WQ<0xFnMkT?+HJ*f-|C>TfrM5 z&aL3Nf}wn+@cm$x1uwX?_!g!G+zG7b-8%i8*Gzb>oipY?IZPkyOQr84KxpzAx0p%>>(>(@4rdboOais3HwA0DWoEz3GwG+*Vhqp$ zsMq=5Tvfz_tN$57ol7C)CQhf>4aSy>u7pKq$%`hdth1pN=^elZ@d=^ln+#12AAW>M z>5&DkkA*jcC+M^eM#pOfxxTYSXgnB+SUtsLb6DEIXlkSp6LOU#p_nKqo)>W3A^yY{ zwrZBSzN|XM1U|s3Jt{*aPdvE_O2+#eS|2r1ONJ*1Vlw96S#;}v7n)NNCS8a?E{iy= zC;tYHU7v^~(QP}0O$&cT0qQ z7sEyZu7GTl0yJ15pn<*}^5G#97pTED#uLp{;jkfa+ynJR&4REAxS$p-$T)K<(v)GT z7_HcT8hC7<@ko}kwGz};Pvtk3r!*VFMQ(nQ!Z8euH$1ebI=PR?NlHFxeI>*0c1c}n zvkxLB(|SFRl+pNgI;FS4UXM>4&->jfZKwtLrZ#9b&m8q$ZC7oF3K?YER6DKJmw$Ji zUecgH6DP_9U)8leph9?wiN^KoM3=a$(>E0X_g=rTIC-z@VXyB+7gc`yPFEUkDuNEu zUn7qN_@sez8oEYpr0o@9_e@M_wRWv&Sn9W02tmz*RegoNoU3~h8wm^cZ+VC)u>U)$WHRT|@|s#~nJjapXlr%(mYqv9XzSSF>s^9ghO zp6BxzHahZ~YwxQ-{9jhSOMMuAY^Pc@8ya=yirFM;CB(JhHAMqBLGaB{X!C z8{&lwl2YLUm!COaK=GFRi=9C|r;EG0lY!`q?DV@vkAX9h*3(`?&#}C{L#wyF)?ZkM zZ^+lJ_4#8yduZnd$y3lwJ*_JSpU@S9Cw2wq+dFVH=8<83bx3BuMxWzk1?V4$_>-Y-EY70i1rMi@p6_nMe!1?)6+%fu<*3uP_C^i_fJ9E9}BXZ?>=e`ZQZoICM z3^W>Z+jTQTTiy|Cj2NVDT9&NA)Jk8hB3$8R#_>O4d8hRFSE-9uQc|2*co$Qzr zEH(11Qp`EPlY<1q>Dtgtdmfu1nX`tFOc1jhIBRM=zWx2)@N1-LL*WYfeh&_M2Y(pE z20M;o4QRt)9XXrJLSMIKbFFJ&$MQSl+tG)drmir3d__73em$su+oDvoJTGhj6o#~< z`65oElE-{m55}w64CztUqa^&#ib7SiLov_LnAAJ!PU#gKp3|t9!%^;%9#yz$*Sf$k z?lvO1NIh1so&91bPGHW6Z&W=oz{CS_3uP|-ish~BT6nwH-(TLE z&34Y3r#9R%pSEs#E$?sD_;Hk57i4R+7a8NKsWCjQoY_0wPQQ?It)^CRm0}#_FV?Pi zHxP%)xMqDf;a_0p-fMFO^QN;aGHv}VR`H&(*n2zuPOsRRtj6(VZ%qFc)4bj79AGs0 zQI7?c@8duF$3tJPy83dfm(2R3_foHyyKg%>@|)~spXL9aZ$(lUczhZCr}j?Y**iVn zJp&BKACR5iqdKOqrFn^P$`F7tELeZ_MSCCFOz(evq<6DCTF_$0F&4qS*Zr#(+~bt@ z_V$N=6|vglV%a;;67XwemSFFgCBTPkQf#P1->yVoFT!1mL+u+!u1eSm%sTKhKzvt$ z*l*fD5GX0oAbK}u;PqPn323s))JQQ(axzh>AT1a-k5mh%2Ko!T_gsp<*z`e_PpEl| zaC;JMX6Cr&Hzit$hRQ~+ELAC4rz#~KT?ir`-}*q|a5&5H)N&^TA2|MJV-9VWffOu% zK!&j^gE29|`*oX4Y&H=tgfu2Yp@?|+4^LErZx18rFglH$(coTC>$a4L*Dtp2JS)$d zE`)W0yBYDTJbb*(JPW?3Hn53S2-<;aRj>12e6Fj^*brHy~@6> zxVPxmIqvw4BevEK52 z1k2Cdq9;B)9`wH?7A3UY;0@)Vd({1NfNnCj;lc0_Z_T)|CW(uZp|8>;wgvpIRZ0^9f>`#5)CR+tj2R1fv=>Vun+bt0VXN;D`0}=F z1L=#(99Lw&+wXsc#&O(Gkmzfv$F~eBwCHRQg+6`-8gCn~Ju8bBtqHV~%p0#!NdU*3o6FPxQydCv7!4~E)3 z!#0jBn-)(59M*Apw);|55viL!XN;rwM(6GKAqAhI_YKYnCOkI3J{2(w<%hi7C5R(krY1T;~8$CvNs&|e4Py}OJBGy#>$y}n0jW4tX}h-2y=pNleg`eqFN%NB4$riq-3P!;=vcSfhoBvI#Gxabtwg0|~t1YWhr z#n~$6HDMhMf(?B7`E^uAAWl}mu)W}}kI1xPXIor|*L%H7t%!4Tfxx^uvursNCSq#v zl388Y%o2wMBmmSB*B%>+Be91 zcOt$RKKj6bH}}b#uu*J3QwPWma4nPP;qu|ZOJYxQv9?<6H)^ZE*QnvYaWBZ)FzKlv zi2Qk|{4dCR|D^pq)XIN&Se`uR{LD}dW{qj{KcAmG5Aj{VA80wPdSbFQhM4iTx{OZ$ ze&tu>y1C5fuN{Rs2ld?UDMHgk4h8Os3l3d>djtv;gIV;TqL; z-H>n3Ig4vc3;OV|+cWp-?LTI#u~|jZc7}wLjGHdghNY;;L3h9ZHF`9mu7+r`$NR^F zFEUKIY5En0r})ay%qGoB7c+AS33>y&3mg~c%(uGhMj(4+Rs$%ql$S^KnOn*ufl*s2nJtD04$*Xtb}d_ksPoZ@Ku-QPd{ zqs2&=Hi^UDpno7^B!umEjq4ucQR?mVIFFJB$ttm9yF0xDa4-U8EY6E^52vbUDydz> z<1A>2Xr;~RhCrggRrL)Z!TWwimcnbuYyE|3pv+fYX4U9pl;*cxa+$!=1Lu!i%@d_v zy_d~EWdJ(_bwh!Ryi|Xyv`qO!k92v(xX^#uNv}ddXnh?%-C`V+k^|H0lBC*C-l-u1jd*!j`u-z4g$auU=*`8#qhk{K**C3Ygw z4s!9_@m=619FMdBx-h(Xc(`e3_|4-R-due(Ik#v)B2c`gw&|e@`pwg?Z{3syPQ^6k z^JL~bUa?g#NkF%*XS)oE?bFn}4@@Puf;{=$@MBeqyA80+K6MAVcHD4M-UFn83y(T z$8bSHuEP6knwRk;N-*foBl9ee{{^~c5_ssb=T(4vvnCaHs=W*Em(dbz(2M9+z|c&h zWYPv(|IXgdF$7+D9GCqK_r*U)xCK1Z%WO578<;S6d~<2Qgz@j4FffuYnSzU6EhLx3 zp|p8LVRsaLn~$Pr&;0lzy3|5+qf2QJae~Uw(8iTvz%mk#_yW>h3bT9c1K7+JE%}wo z^K>%L^3x=&&-k>npy>)$C*o0XZ5>uB023?7sac#(U%ol}DVx&v+B|-+MJB(40uovV zVe_1sK-wI@S<3*hFY7*f|CE{v^kRYh%HS)uss4xpLb7Uu`Ad|mKy%JiUJE%#D^*7T zhCq40**OJ^Oq^adgNu_ql#~w71sWQ(jKpEdg`;S@#sE$*I3po8w?K4`5Cb{^|9`f= zzKx8Zt=4YDmJVZg7S;$)4;IisaD2wHFyfgmyu3`n#uj&`aZa&~C!QuKd-7`N9peED zGh%!&)Ykhmb>)0ghaH*A32s(Yq z+GfFDXN3t;1P|JP@feK-vMC%Tzai2O|MZfktriY!9r)RpF&ycCfw?Y}*3T0#!($3p#33pyEG;bI-@sn-s3$D6(#53x~ zFl%|eJmRT(!4IPf4yk{(2}RMC_v+g=1L~+hmr;{|3?eG1qkzcHj4+1?OyMhUqOH8E z;JO~b(vVKIKd50#7UaGml(Qm*oEA*?PCIynS0H$jq#09X(bQ84a#3ruwu&o~*MLQ} zofxF94M-<94H2UHbU_eBd5!#1+%2<65+)dbu%LqPG{G1uR1=7Abbdq-1SatmEJt`WU0&F+LMhlR-@1NCg+rbzFzQ*FP^z`D#+dTPKwDXYXp_14_J|C*6a8oTgYj1AHX)h*01(RwSdk{OsX z=21kB zbRLhvR&(NdD3le+lf-v75bge%M@#s6T_N`aS@$(nfJbq*Dr(hmzu2ZKNmQ@N57~k? zSEHf&rzv8xlixn`e9)=~InAGG-f;+Dwhc=NrPb`uAdU$iwa^ z|F)EBB;OrI`LnR+LsI$XBELjs+~B9;^kZ_37ifNRjzir2)v-CL77JN%L2dtB1&^vIj~aMdZ_>!T4DMZjO}DbK6>Tj26Rr74mde&6{;v>8aLaS9&XX?a zCTQm1yRw)|CuX-;Q>?jr0w$(Pt_y1K>pbeS+F(5yyR9c;2FQEEML5=UiA6>5!su&6 zfdv%;bcx|nzkl@AQIrc6V`8WniJ@XRDasFeJ#{b06%KJPs4Ezn`Y~<-;v$9-W?|?d zjG}!1_;CLaDauiQ8y*af5xF33A0HhKdJveeTW&tEWW6C&|CE(CI6i{%&LMKCchntd zUYs9ICdkkeZ@f^T{?ilM_5-Rcdd32x{=-A5FmZ2{g=lw|YR9H_5V2)DkBT=pshk8} zoO;aZ^8Gf*W3%`cf&w@q4(+f%I*V)?B^(Wu_8CZc zCw1D4q?tAYwhX&ECv8@k+#HD{1~-+TB|%Z^h+oK&S?- z*{oqs7uhx4T*c-o#EW>uaOborvz-1I73C}YO8E3PF5P47Zr)Sdqth}|{3aeGntdah ze4OUlvd#xA_+0Ah7BZelYlB{ZVTRCO0Eh3cr6M=xY`#Su>si=E>KYq|cUnxMCDm?k zfhgvEwmgGr*!EkkU8;l>)TWUe#6hgBsllvJhcaxua5cCwXLEz8o`pA9pK1=;YomR3 z4YaK2RKd1Z_)~69n|D*oBBbS2HXn+nEA>KMFN+a-o8={L2DVRx_)bVqDBOFVi3f1( zYF-t5FR5kck1=VMzRNO)N{%H+qsaSRNCqLK@RG}WHI<<44~hfJZ}qpqxbRIorf&VNFc z&xu;=dr3D>s!C}R6k$TW41SgzNbE=k0+s>c|4V$^6`fEBc;nTwqgbPJoYr9 zwlsiGa6#fsd1Dm zv>fbe^;_>|k9c}Fd&JZF7(w;1gPG0EstfO6=DuWoT6Hk|SW*mvz6onPDESZ?yDa(& z0<;bQm+gLdc)0O>%@-f_!_)9y1{{7se6uX&(r&v;?gR?V9C~;9iZ3p{N$RpOVD$*W zif!jUkzQcp9asYK8}Ntm6e5YU30@z1j*MbU#LVJH?d`*Zx7YK0Wn8u_l-DXq-f}dO z!i@&$F(Jl~2MJN*V6r!{XI0~Oosj~ztCP^|)>=3PA{;GfT5|dZ!+}8~b1Ikv!>S(t zP;{8R0KywE%wfi0+?wiN_vKpBG+4UWjE!ksAxdRasaM))FrkkXBxOLOLv>p#1mQE< zDP=~(3CG>G@ZMQre~JXw6@0u zlJb|hwk|CqTkcodGov@P=lYJNKi2mR9g>PoVD&)XwBWJ6Yr$`A+k&5b-wINCv-3e3 zQ*rx1Jb@cEHQtl^86d@g@kctM;8|b!?K9mA7qNYz5FJu|z z1%1toH^%X5x?lSb4_(shYGhw?rf8sPFjUmNnxMkHwZ$vb<*c4ge_e5&%{nD;1xJu7 zG)}KX$C&m;m>7DAnq&I3txHqSQtp|quA)uVPEX8$e9!SFCCi^DN!tTvojqoK^+_Cd zNAb70xLSF5Zp+L5SfCAic+(mQYw0oIw* zXfjtbA%&5#`u8He49ko3veL$Isf}T)rI#wWHtS`VuCmL^kjg(R)tBWb^ko`$N9nhv z=*txP5*o0+m(1?HNH2Mxu}cU2E?IN}Z8s9?b)AHI-OCgGM{r+_EPp*PX;WWtzM`be zy+uF)1a&~lBk99KN+L+alvL3@B4&wXDsA-e5HWSpE)huaG)>noB+LlcL8nntz-2g7 z`JyrkFD{jh!}P`E+VON+Kl9Xfq?Idgv?&BRt~-cEH*8?4yPwOcp45XVS#0AFiQZ%wYXCcT6&>I==f=&Kdl`rp;cVjVNlDKi(WIa|f?M1E zC>yU>Hu%D7`CjjG6t8PpY*e8V!@7-$N4sCGZ!ml|@>uRzJrP!WBD$$k5mfPk`hI<$* z?Ss@#CR=4-A=sEhoGhzn?3=uTh>h}W@-29;r8LK%RYg!?aj+ggVZ7C*5JtvNv5kcp z-|H{Dk}j4BUV(VUB#)P+Bx}DMnS{x_H9Z{dG@AmB0d2ML5K*3Z4HLm+IEGnHVj?K#$J7!!p}w8`O#|S`2QHsAoZDu^<{ZNEknM}giaU}x*t$}8QhRg zD>viS&;5JR5{HBnp(crrqsRNl`$u03I+p1=#8vLYLqsFCVX`*TD-RC(ie7m*I2s(R z$24|<66^58BETxR_x2XqzxJZ#l16!yPN*laWWBu`ge!2pTNN~Cs*-qOp}GV0jhrSoEr~ToO?5O{-cUJ8Y_%_&E6npe`8Kn@*CPB!s^+>=gp-_W+QEPE} z!uyNGDkY{LWY#huFj(n}F-V=)_#yLkEpQtchmq;zrCWKx|XjbSp%tTCPgu z)xy8nZ5;$KnmoZ|YH=iQ6I^b54I!qMEBUXupQ^DT>mpDLbJ1Au^dP+f$*i49$e(H45;>_SE0bq;eP&PLRT`W#;N6 zfNM?GX~B{!>thU1m{!1So;CxZ&CI@n^8|tn47n}|C)(OdDl$Ci4iCPhOCRAmUl^YA zE5mbsvYil{tPQq}A02EPsbJex*d49D%}1+e&;00Or3c%t%wXHh8Eji@9c&x9ujOHgm7f*{)^1r_V!qB#18`+S6Dt}6<`Q6H9 zb`k7E#df*gf0~=z=Roh7MM(nUtYKYdULpKLCuNX|TkMJJ7CW&+f1rcm3RjfP0*E-& zZerr+9v%&kzD6P-+=vhrrPmvLDX1ty2>2A7-L$>m-|ro;%V{2DGjjy@3dA6)V|p>8 z5=ZVEHR#MrQ;;Dly2`LO6ujI{vNqHX&@aD`yeylPCZ2*b!69#r$i;PGvWZ*fLXy|W z+s6`^6dAdY;LYVfQ7!W>w`HHn35^P9pP7n1gn#IpRf)h!^opiaMo;6SF@i9kIHgi^ z>j9GSM%Elw+s|Fu8m^4mct%opNn0!on#|7-pf zu~3x{(jO~b8Wa_<7g@@AK5d-mfP?v6_oQ<;{3d^P6m&NVinEv|Q$!%Pe5(vo9&AaB z?$S(E!`c!vQwQTqI+JJ_mr)Y`i=v7`j-ItAC*5HDH?VZg{6^rKlKFk5eg)Vxjcs64 z(U5oH_8uPcT65#Xp$g3*fK*Q0oYyeyf*Lh*W*}To;>!_qZv7vs$1m7AKmko4td@$$^zh1%s z6Xc2urH9P)IpMcDy@7_P&P}Gy{eElvUw^;Z{s-?y8*QmxYv(ViIZ}dvjG5xfO0spK z1y7m>efATLnDQ6R^DOr_6sfg}-j))+x{=Jws12GZ`A4_@4*x`F5yh!-8uhU_to7D~ zVQMVOFqdwfpIhNXzKXNYFko6}i*>vDf>Do~MV83%(oZba2K zNX3{2()lVs$%F5+ETK_~u4z%u`gDP$PL!KD@Grj1D*^N1f}-RO!WJh8KjzBL3K|Nv z^6lBhU=IMU(tuu*eP*dWvsJ>|gkb50c~zK$)x-xNNid8eY&@9Om09vNrd5Yp;s$8r z)ts{Aj>BtsJlsG03RNpSbV0S+?{<&&|1f})jkpIk_+l zK=D7TC}*~1*+4RT5~d_8$|G7&UBczBQx0}^XyRXz`aaX)T|#!jPP)-voZDldHq2=S z#1d-LNmM{;9q$p%&a#d{pRo2x#FeRauaxLgF^nbb9W#CJm{#QA=&0ZO3il4&G7#Z$ z(C-ia?CcE

    %wjJXb9~>XfGaXg_(kOR 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

    YP{ZjWb^*17v@0gXWWuflC1ei}LA9DH_5h`L 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

    d%}|z3mmbNv9L+z-bzr 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

    5>uXFycbKNjp(Rh*R# zdgJxlZT6~t5Z6-P6oMKfZj^fNejl)979v_7h_mV zjK{rlvt#%zb85~R(1o<@>`^uz82JI2-tbCPb_7VBIkroF$EL?dbPP^Q2&6`sDm!2k zon(N^Gm@-G;<(9*+{;9_OH?T?=!i7=B>2@GLXrm0ex?gQp{oK6ZSG%+hH}KJ3>2J%zz+HJ6c)Oq4HTv=$*$n()4HoR!q;0c%ISS36&e zQn)Ij7^zXD{P1wcD3n}blswLJO-Ct0J)~Y&IJJ1y-F+dvT2znx{Ff^q6@OtWA^2UW zgyIQQLi~qP3B{j5CB%Ocm7sYIvnPL5Z8>rHD6lee-?ba6`7ak-?TjcZaiU8q6XCqJvN$;b@W{*vxJ>H=i#ACmTO<0 z)n1;-EVIrMU%p-Y^1@@IsqykcW?6`uFW0_&ReSkLX1NkIAHnA@7xdvFN7e-f$Pkcf z`E3MNn)2#MI`@H}Qz#>&{&gP%JMIw7U-B4vMhv~V=Xt@y!xVl{Bjwr~0*Npm>oXBz zrbZ08!&mLN-HzqVY`3Q>N>0lQ@A~24j+}bhln~z`!hJhfP2nhMN*R-L4}@L`dK^++B_qhcMe2bukyH$MSI$Q@8{VY}`;jvawfsDWPm;GB zsy_t`k?@v?MBo8hNymX|4n2UyXVh7lCp!`cf!lbPhgiDCy@Jr%z-C-P-JW~y74}~Gd8cO7&Lb|xOp~pr2tY+$!Aj`auk#A z*>ojOx|wm(&7Vz4elvCNxOWoT;Wy3;ye`PuqoRn>D!0-~^@0&gbV+zp5rdarjI@KW zCeBV8WZ4zDcv2IJuh1bZSnO%A^Zj*<3nkwD7j%{Za-!)xAp%9vzwo?9Nxbv&IZr~( zxE^T$8N%CQ%=fxoQn|jlJyN?-_edj99|{s0nC>egR5aaAk7zoP(k)wqIt9F5g5w~h z!B8r}3Xlg<`6PYS?UHcUz1LvgZm0X4Of&xmn!eTRc1elXb!AY3a@`)O0zv^%gDrON z`BlvNk8l_MEN#_WSFw*Oy>jip(pSF4jmKNWJmOso&KxcFUHNv?9#JnwJFRPlX~&jK zGY($YibAWht8ia68s%#(fb0eUOR5H6-#RwBeDB!lc1f-`CP@=8maVk`P7~N4EQ^%e zfNKR&7QhlQ_XDnbg_g$u$Mkxo_b_Pvvfk>EhD$G>+h#}ci-_XlnwOVN)g=9sL|Npz1P>bxu?)AERJ;%fi{8Ax;{}&b_ zq`!+0!GD4fA^$^#2>zcTM9BYmyE=uJ+V=-%aLKqF9(~+D-@iCJcP(O(cW37ZN0aCp=sNOkXwXE_eNeKhV| zS5@#%2z$gLhj^{nCVF>PpvmLbAY+G$9!% z3y~yN)+GB)vaF|Wwc%fQtDXHWTW$D+t#2}=Sa%k& zz^*QuY`2JY1A&`6YfR?wf{5h|K#N$M=Lh)(V#ONwO?%oBn-X!z3##n>!?Ef1j-~;a zDsF_>=Y@3$k^d*hW{>9o39ZOVD3W@w#K(goAJ-PNz-cDvH<#H?{bczz4VP$2M^=$L z>Ww>#L@Kbfh`-LJHZo$WU>k+a*|(K2m_!&79Me8nIYsnKCgC>`4@Vdl&hMCR$OA;h zvd;%yH{qsAK=`9zHW^^dJRj&war+fzLNz{OYVKFgTGOHk2vZKuxOx8s?fNS<<80iI zbT%<4#y-iqYsB@M2N5bMPww2OzIA6g;6I>q=aq&Tzg*Q4s{%df$@0lnEk#vJsEUoE zP84=nI%HXtOl@cEMRFapngP+@#P}bLN%mC6e}jZzud$N7u_+HgFAhmXCr&d^Dkdst z?^6X&kmxKK&qFIXb^UhR?vkLh0F6%DCv$;v3p#L#`-rh%z`MG2jPYnpd8ZX#BtZHN z&Mg|pN$MR~a*kULDAmi*hNntYaU}L;_C0Q8E?be5+^>j|mbHq(449>{4#MlL95>Tf z-yn7ybK%Z9fn^YS_sEqLU#`={(F|x+ zJ91n{$UAmch2@ge(}1`j9RkN51p@wjj!Q{-zvbj!ATRlulPhC!uP|@+-;$qJO9gfWkBnT_RR)kBO(RB8ddWEMSa5e%Bfu)RtIi@_bl1XyqW#tQ^R; zmMR%~tAE%(IX>hKCf~NUTGqFYW}=Eu!Edcrl()cSvERD!<0x$LgcdZd6@}kAs^h-g zPPy>EW;?}VsJD|R=wr?Y4CIs_f>flwaA#%OCbnJ{@60C*UOwh%y+`)@{UQ zviH_>wV$YVH-F@}4ygR#smi#w96RIt$Iu%oGVDgtV4U>QsH!tsyPA?DMgihR}z*Ef4K_!P-kx&9WAF;XM@mlTuYd#Go#<~<1<-?ynE zv&41@QG(W5trRYzNiE;q;M+u$A5ywF`tQPzVLS94F^P=$h@>zVYkJFKQ-A|l?PO6I znX1T*hPv?Ut{viw2d6PxgsFE9NyUS1h5A&dLJY$I8K4biaYyq7Tk^vKKrLJa!C>GlrE@!|nCEbYS4(zd|L(H4j}9b$b> zTCG;AOjK1v2^MLU>T)?mI6OZuRa2!?DOyP?6)QB#g4)F^mOlRb+K#OWk)u%A5r@D4 z{<+#E^rUIU(E&i`WmSz1`ZL66?}($k3bG zsaPVZTp%efRQTT!541W7Kuw6>U97vJ3tv}o_ny?6uWNA`ff-nioq!6Qa5#XNSaItR5kZC+Ymicvw>Ys>Vpbc`{@@Z z-RAM$7|7v422B+sj1;hLSq&AHa*;?D@RPv-(bts6+HFp;R3yh}x$?_;W!kRJY3&iK zH$hXg;mjVAI}Q<3Kd<$@ul3b&sYHgZVe|jan5`Ue!}hb|Y--^p*(pDdTVkbvZls;N zZAJi2zT9T3mB6Xe+t!dWdsOmnhCiLYJv$k84vxN8m~e6J{E(1T1c1z)Mu4j~W_%Br819-T_}q zVRIS7hBAh-jG`>%?iHOSnR;>Oj@)>0XGxacv3-B% zPPeYe(!JT5uduQi+)39=H9o79Zh$rrAfb029+DEK*1y{H>|3w%`uVeRQQU6h^T%Vy zdA5W`ZF;xQmYwA)n%IjkR(wg0$dFu+frY%=Z zqkezq!U)dmaOo)w>}my0mchB#*AkOy#zed$AzYdnj>~46D2dCMdaoTk0TO$6_x0{8 zhj00b{i64BkBgWfwDYRldnrUrsHDh6Ou|c9#djIk8SI;qmR}}#T9gjF7JmT;URQr% zIokYpk)vHbL5?>4L*-~!e})`w`X}i<-UxcdN4>ZS3Hk8NJf<|eP2r6_^JcZVr(wdY0kCV90da=8k^Dwjj=A%RPspV8NpPW zf)Sk1mnBmp;iMuRrDNW#Tv<=#I%|MGbZiEPYu?G{ejJn7%R6%#M#UU#RCZ#Ra%AS+ z>sUb104>Ty4jSn^ZqD}5It#%|Ys$!$bVXG0uEx&T}jYy=COmdZOkWG~lpG4v{0@KO8w0#E%U8F95cYLX! zbbl+pRBes^UsdNnEeY)OFF;`Dzni1e;(vvo&Y~ostf$so9iiJ587D4TGAISf^=eIhaMOcIt#UJSv;QLD{pA-oWS#q* zhGsm`f6lLLLd^rt+7^7l1VTKoTkUEzCOp-8iut3^vK&RVKcUec}Y z@+eM63gs@TQ(NZJ^=hk1NwsQ9qa-zLr7z}{YD~3^A^{v?YI?z1HWf)iJvub4%GTB# zB&P|ZckGlVg_&uM9b#!5xoPs~dZ|shq=g1<@|LdpdM67T6<`}&1dfu>vx+RXD^54e z7l`FpjxWg-W zr(d{oy}e>l3l`03-(u%c@$ zbq94V!h=ueKO9{SPtVRS-n*6_l4#uLT&@c?+UG=50 z)x^f$((ZcN#SO@I=iwp8|EXQM_|!-*nfQ2rcY)SV1BUg(*hy@*&XKUBEW|)HXWDD(`ZYjoe zDbb6bMVtOJ-?$^FGJ7k|bG8FJ1J!^?o6Q}$G6n zGXhJcvr%KkW1UF;eOyHU79+Y(!u>b*Xp<^HV{yAD9DLLG=v0wuHm zKVR*C4qxr}VnpTtD;QBloe`BcFrxArBP#gyjHuYInNt7b`9S{@_+Ni1M%1jrEHbQ> z+q191h~hTR)-r^|%c109Aycg09Gm2d)jaP7J~xYK!dwe%8Cj%u zZ;ZgG%NOo)_n~W@cFETBlU|o}PrBr}wR-aPX|W=JX8Jm}r{VEGkA@zTLN)btIXvAz zIk|-7GVb)~@c7f|<=MM;!=sBb`egt7`=c`U{qgtjPkATZk(}YMU*zWb48{-RP_q{Az&ZsREKU+jeU(JLqL$z8~t@3b*b(!$KlG6D4 ziOLjnHD)EhG!u-MSN(Em(mofe-w$1DXpvLbIX>8MoS+APssrPD`69x`XW=@a^f4Km(2ouNy=1LX($CQ)&x zu6#OaINPO_@I(Rb3oo}B@wfMgzr6zlcWM`e4l;dOyCrek%H;5kg0W5mJO=8}Z+)4n z+1I^U605HPFN{!xFbq2KrE85AJd1@;VCnbLf|-Fj_s3pJQZ6iyy}+(o)Zn-5tiDb` zrDQW}T%pgXZ2$Hy+%n2+`a0EfsrDd@wcXyJ4My^$zNv;&27fGTu)DxSMD76CTkSgJ z9@n_b2w$ykLU7>$qTZa}@roci^mn~=sa9vEXwZ=6 zS`G8fPsD*#t27eqr_{$?8$S*7(FFLYRHBd_H=IedcsjD94!a11ONzA!24U#>2?&Np z_s&f{@dN||&$bpz0urf-jZ!yxHv!+ZXk-_3!C_5sf5kdZgJy#;l2g!C1ET(Zq z`R!hp%*#mBqKCMtH{aeNH{R9u4yepD*mjs2a;6)^jPz&T7vL0y0AQ5*>(DdRkpi9D zbsy4hZ|J?d-lF~BagWl4u)x60fzPF7^Q+Y(fR0I;(P*0RL&PHYcgPc6;(uO_)$4Zu z(~^bp&||)>xvyl4NRWwa1(D6V@`LMX2KIM^O=|49g`d#`%rcX8-K0$n$8j8YZ4;uo z4~#U~9SBr0Cl#r8kwfAwZ%V=~?`B0~xX^P8Q>kfTN-5E{@>yEMA&?$^iyJCx-Ogx& zhK`CnN~W!#$XPmXapM#gtQKE2`S9r7{-=|ROSCu(+!CWQFe|q-e zu=>tnP2T=&-S@1OS1Yi%3;cj0Gi+XfS-_6GB_b@?yOkNM21ymOI7ellI(2S5H) zd*#O^RjxoA`*Wr5T)zA=!NgIYU{Z3W301IYqC=$-=4`ES zfVrEpH5G1A$F;Vsx=OxLx%10vr%5R52A^tL)mX;z*R`Nl^_6%sE0-v7UcYeU_IMK> z>-Ac#;Ikk~rjJz`pd*8ZN}t|^sz7tm{j&Meob=ObB@U!}lY)11(tO2tih zdfO69)V&v5xbj29w`VJW4cQ`c>$O6@*;+(wt5%L1sYP(h#N}WSwH;baY=9Pltx{tdD%&y`1f4V7RV%)3o5SnR%H^u-s`<+rtLDX zoTFszoWA}qi`<(OFBn#-AAV}50ii?YJ?S04eCMgJq~$A0$pnxFuXbMS>?+)Ww2PHu zNZ8E!HPC|DT)Ii*S45gWJL8!3-oGZUat;31HMl7abVb)WPaO zsJp>K5RjRAeeU1DWQ>r&H2aC1lA<&f9Y_@z*Y~;bav3R`PszY=sA^Jr8Y~cEsn;ci=l9b$a+Le29JatKM(LQu9*kPx^w}sFdod2$Ah+o#7=yKB7%LY74em#Z zKUw!F`Yk}>!Fd32N@ zx7~C#5`TpTlPYWb5hH%!!4B#59Pu>rTLWxrMMYCgs2Ym5+`)beRDz>+wL*iK`q@P^ zr)h!QXDZm=(yfrQ>L=}XHCN*0l*w=kU=veS^fzri)`#tV>(}o-_`1{utlR@!w^d%! ziG|@t*tdYAaWD}F5^?NX-M|Y_bZJaGv^key!Sollr!ULC^?{HDt;H96dwb2+z_y<~ zYyF=%3TTqk);ZMEy6L^>^maPk|EKj#-iXpUte&vI#(}Zn&cE~jr}YeS9HfgSvcXz* z;I!WP0liAoYtlMSf{wV?<}H6RiQ))6Gj_yl7l88;x4Zxyv*az&jIdSUr3-GCr^gpE zy7ZyKW)zAzIX*c0Fg$8aBGeVf{8hAgE2QvkS!c%P@c{0< zz^h=MwMj|h_4-L&3Iv!%w&_`5JU$(X56rgM{Eg&9r@aM9yklwUtaua1~0yW~x z_#&2{;|Tjm9Q=)t+{>WKY2~N^uYi@hUW0x8{&bX&g`QC1 z`JKhg&uMs0r%}$hdwCF6=Sbc2`4>T>3a6-65IODkm0f`S`4qg8Mczi20}T95Rw-{_ zU)l9oe2>6;jvIL!J?y%u+U!>(gH8gY+I9O<0Q4NuapfIw01y2NNgg9h{Ly-Il#Dwe zT>!@=2_l*c15%?gnS#ZD8~C?0=E-f7^+Zkza}y2ak)OjZ!cTg&ddRNRXW8p}OMBNR7!S}T zbM6{d4NjY0k0$m-vyK9}#MDdKFGqc?Dn2nPqx2dWEW?KfdkBrc_5$(gXS{X${O5$@ zr>cH3q$HlAWaZ((Dw69Yy-l`on5{kq1RWr6E|9C|od8{M3J&9lSVV|4F*9LPbuSYF z(<|I7RHoT(w{$AObI<{Et0p@JW(0EvfXFTd`3TCUjw@nq9;&@GqT}-5bw`viO~2|; z_DQXBs)XZ^?xJTzp@c%Yp6rK8|9%tzYDI$5&SeNOe}E zRzd!DiKr#L3LJToc!H0^fesGLis~`I9JLZb9}2ecSv?QfLt*0$&&#m+5U72@4iKh& zNb)kMy1QB>V7AcF_q2DW$FQ6U$K6$?>>tH9e@t{yt@ z7a%fFk%wt<6;m^#7FW%V;Mv3UHmS!nW<5=B8e$r=ep*z+Dw~~o8{l3v2j+MPu39p0 z!?vyp#*p>v*;H(vpxhB9ivrmQu$6MpWHJN-Mn9uIhH=hsWPN0hwR|OLq~1nvg}a8{ z%dl*8hI8rguu7)w_5gk-6U%KCm&H$B(Yd@F9vz$?U0fc2xHvlhuzxbVJUqMnaCUL| zX?S#bc7FNO*{91Nk55i6-yU7QJ3c=;?Eh4qhZYj72Ykyv6ng~C(0%Sto#sTuWpFeMpx5=l+gad*jKS?w4 z-upBtgEqg%btnh@S&sXn+w1O>7jd|yEo{Hk06G|KN#Qx7qk>^GK zlRh8RClpEO!?3~llEy3<%@-*uC#=bk2kC-Ze0oy$g!w3CQ{|>j4JIG=0R%gX0@O`$sH`s&$0V}tY3CA-i6RI0z2ed10(B&A z;OOr&kJ&&EUS>20F(^aH5lswCVOK8=wXBugl$1sH^kSS9d8~x;tsV0%odTheMuNZ| zT-jn9hD7C|Z~`o1ACGvTcM|+nujXi#uIa^o1t|Bk0FzknY~Jdk^M*)N&js`0YToo~M3aiZ}*$U=m=Oy?j? za*!O0O8!<&|0wqzp8ii)P8TkxSL|Sz0eS~B(ZQBQDqU||=$K+)z2p1JIi1+ZCUGoR zi?bYF#Gv7tUGFnA!t1d2lH>+Pfu6*jyuiN#R>oKTPixEd*ZZrlR9^ zk-TW_@t+s`=OzE?b@}gWS8xxl8d)IkXqO?qDyC<*3C++?Cl3#~ja=W;zL8^+3FyHl z5TEgQzz6tf6M{qo-?Lh_4_u}QxY`stSb3X#ODxOTv|LC8q|^t*IAAv??Y52Ya!h>K zx>~lZ%>>ebXDpnfMoG)sw6li?>l43HTF$1wVw-@;#R&ktxw@T2F)hg*hJ*@Dfy4r) zBI0n$nRy!}VS1~1JL3_ZFb(kfygtRm?>j`@WeV{dRPJw7+R38cK3a@y)=8yRUepfS zFX0p7%+^S2rw?+0GEDeTnOt>>7e-nPXfU7wzsXX^rGYo1W0w}52BU^M9yYL$oOoIg z=FtERc?6#NG`zGhyg*W~+oz?%HQn5FC`g&;*l5MfR6I3!=5$e-m@G43Sjz-f8TnYw zJvt+F3b!OxrX?GzpZwCivMCrM~K{C-Vuz3qRE-2JV8Uiw=eo0P9=n=5==+NNl(Q89+e<`lXLjo6~GJHfRj_PfP(VQVq zWe5z#jjn6cBmP7-db&)7-jy@0l#xlt4+6Si`CI-k%1KgKWUf$?76lF;n^#py{)jN1=@y^?{084a!}NV{aNyjY+u0wjeJb`)~u6ake|$?umTXXUE| zP>ZxW`67;(ZGoV$rk4Xp#2G9Z@Ue@14NC`ntigT{s2YciMi%ezgPEV@lvzZCw*nC{ zCL>Gf)mel;V=PF&-ldsEK>bt1FaVZCHx|L?EsBBhxUq49$QyOXeR_s!IJ}*V^st?y z-q>iW6_|Zw5eq#$i|2en;}|>Gk|sXJPwA8$tjt`EX1!pG@0{MyEQfmN9iv&|$LExb zAM^U{=#{?`^6y& z_`}*f96a7R- zx{i9|4og2R7P2U9n?KMr!PMpP-aJ$>BoNYq$;$7W;z;Hl)QL(KQn6zxv9X~u+XYv`y7c1eR9;AGb z&knFC>4nYxPoh;ae*bbv#;IDUY(TGVhG{$^8Ne-Qp5D-XdA5N}ih?y5ErwXuCa7vg z)q`$8N0D*LjXhQJ?uPujcH6St#I>0hnP(`;sxf$~lE+(TCmtNwb|i{-_{kl$+Z#xg z4J^xr29s=He#nO*3JsHn4@^K^UmMj!U1$cCNG&m-tpKeLjRjh&>bjjQy| z;^c*u`C-I|Rj=xURuxn`Q2UK5PMQ(`wqD2BkbW6fqB762HkCxDLF%JnosvdOc>?vW zNy#ZwX8s`?nw-q3GWGw6Mr~DhcAaJchX&4~+*y%a&jULIejM@3Odt$htv9vB41I>g z(90(GQ_4xICgZ#k{yObk;wWMo&G>ydq%mc*1*2l1At;J$ zE3d%9t`vfkMxR7dw7Ee|@HetW^;dBcXfSf=gjIgI%_mI1R5GwLF)wLHOw57BvVvN! zHSyz|S}yHi4Gx$?${aq8Y_urFi=?P(uC?~xy6BI|VoR_hw^m}3wXTr$>y)pIyU_!p zG?#C)$sloQ=khl5;q({+=c6OcgNcH5xF$7(lH$tK(W`{b#f%}D(7jh5GEh%tR#90$ z@#ujq^JBXQ;@3q?q|s84A?r5ZdU1FpFvEn%j-UQj~iR#tbS=b&aOzGw~=`|S;}ALZL?26ylj?NB?=+*ljg4w9eQZ8yc&oMF1I+Ko zzd+eYRO7gz`WCPO?Y8LK4eV%jz=$bOTG10zLTpHVhP!F=dgZGvd3a#@q)-FR&^(RS zN{_9OQ4ic_2=4BS7=$t{9X9bF5)W~vL~8=$I^vE0+}SzZP= zkQ}v*I4|O!&t$yl{-I2UBNEl25UPn*pJ8kd0PV(v<*~9=(02UXQ6!oGJEn7w;k+!9 z@cN?0`sBtY7b6H{A*Z<3KRm!ljH0ola)^UnYqB;FKN=`I+^w3~S5-(=&vB}Uzj35D zo%w3wd|?3?$NS$*!UHSmE9NHO6_d(|PmCi_&d7W1=&F3p4hM+U&~x0FZSOlzUh`_W z-d)E5@%5-XUL_t|iB{oN&a#}_ zfVsG>2+Th$(%9!pOZB)duECRwG=ZQIAugBZI`iCAMA{=Ks_i+)Z4z0#0)0|ui4&;)>7TYh-6btj(FESg5i)?Et?=4o9MQ^vsO z1$-0)p$Snk6<;j8QqUxnkMl@9A{(m(HVkoG7s5bg8N+5#aGd~Cap6Y^+e!hq*;@EX zn$xWww;}+gqaHv@wF!qf0gDX<@VE3`M)}Q4R#KovtZt0mXDyHp7fA+rkatZH3a; zsvf}|v&xv5ds)?k;JHkO=K#2gqj{uW&{_mRv^>~?CAa0HITHR1iYZ)9z{BMiqVA2^ znPpV@1w|5pTFTZ{6ht;(BTxs2GMIlX5oeAUT zKAX|G&!^4}YVT~($pmaqz>LCqwB(O!8tI{B>o(0oHHE-*7mOm{$y#^wILX~Ru)ff` z6AS)}jO7wo!to1qpU@MhS^i+~;jtdq4_E_U_C zEP$N+1z(sa1<}`hp9g+xHvQPDZBN;FlwDmNuSJ!8i>_Gn|A1f?%LMAjIc=ge3XQiLsVW41dh^V z{Ts(Ji~b%GbnD+4qS(^mHh3ewQ5P!4B3b~OwIcKdLXDoAP@`88llKA;YjVgTz~w7@ zdURiE-(Ym9fRlg%PSPZb;rcnxje@;I^ZQI!G==-jbMMjR*+FVu?`u@1ixLH3w51SY zucMDv86XWA)DS(M4M(I5I!5nS8&bY+jF1)*C)aC_zOpU7vB1T9X~ss{3}Mtv%jHa9 z7;jVu(TQjIS7`>fykvp62mULF@m5&yqJtR{tzi2sLX%)Ywp=iLLK9)AMh${|8ls&r z{y3-1S3!OWS@@tpja9)vAVU{fIt5TpEAtr@73Gv(Bi4al^9u!fFKKZtgs{b;IV~25 zptwonVlH31^^v00slsw1vrHqyV1^=Ov*X7IKw;DoTdrWtI>7!A&v;P4z7wXv)CGmF z7XYEBPKVRq7ygtBpyex|YNTG5cw32P-sRE>e>zAi=zk{R^1WRyVFfU=q#Qx7BKnzz z$N(srINH4*d4c5zAp5#X;%StWaYs?T3MZ;#iHS!xoS?%o0D^9X$lNd`I`Es zoXdkSG4mp@#Uv7QFINqN(M$Q)=JMm4i}#_Fb;bKo|JvfKU;i4k=kfE^=%FTNRUNy_ zdkG*I39gz)CR9@5!KDs0$6mM^0l{)9V794;6WTF!S4#61w9otCxm?u`4=?1S8ff&P zAtsFY6{85yNXcmBBMDhiUy)B=+?F<&?5Msp&cI&>$(1Oms$NrWU@P^us#H8+-Es(w z)sG)n5Ec*?6E=Za#X_(%z=U%Uwh+Hp;&+bsvQvLS*tC4S!FQHGG8H*RqnP+qELtor zf>{7c&M|++y&WF-Vc{2d0Vt)m!mF4+2u_rEM})9U@mwrgfMSG#;Fp&Zf{jr$y{QgA zJ;*a%(&>M=* zL0v|W&p2G>jLzT1{xo-YcODXw_$VWUG&j?(t!!vmot9T@>{bDBgU+>FF>(3c!>`t= z!$n5b?UpO1x1L)Kg~%-j#B#+N&@*d;B(j%7Ww~tL;Z&dvN~{=v96I{@wb2x%G>oas zrcI^keRN%7!yB|2;r^^T7m<3f=^fef4N}S#>+HDrt$_hkvr6w)M5$rgyl7HV#kh`IF4SG3nU?F zVrsw)K--GQ?|!R$wjKbK?c|*Mo_qfxfx%!f`_ldN(;w3Mg1hM484i#pb8(j#ciE0h z8qCF=V%%vvZq#1Rp|7t@zZtm%lus%-q;d%$qEs>iH}pw{G&|bRfxKwqygnzXo^MaJ z1NC3OCPVia?cab7gb|a3p#Rfp^gxBJCbTCmSkZo{7PSN~6@V4-<5kpr(OYA)xfU1s#bGt>S?Ah%rS&{8lH2$QK2H=jFF5aMDk*d&7 z)LCh;rtSk9`gUVC`>er=5n?u>Wa>3kD4CpiyNmN^@O0KYjugtaVw8pT%&@}In%y0` zHXe{1KX)(+%sbSV8}4*$-Lph?xLA(|ck8*+ojY5#dJg6R-9^6+X9#sCrB7gtuV7Iy zo3?*mHLhMJQJJ%P-bYnq8no^gNm4&c>kB->Tv%AId$=?Ym-ukmcsMl=r}%JcAJ&(F zO6EC(;YMyr4L-FvE|NW`OpSXJug?H0a0XjiG8n4aMF9~12l-+F8q1VC`=!*E`NEA8 zUf+xGxAlXDGe_dl^eMXJgY7M8Q+5sE(4OGNDIAM{FD*1Yb?!Ph-d$Ne;V(FNL42j1!`ZS=oL0Lu@Nzs$eV06vf#at9c_rW|u^46ZT2_Y3fj7a9XxCTZ=T3g0hFy-&wQze1}Dbm(QvXEPoxkJ@OD9>1yO)F9@TU&G_IS) zTsVA{g9-U3lXg&srlU?OWFSqG`dwDv=QjB^J(;i%Nxl9UK?(6q{J@K{T=6wy@1eO(0CKY&Neo zKCs=6^u@8ko5kr(ngJ=x98n;lLZBT0Qz7?acgXm*&Q`x;#)gCRleTx?Em>{6H)(}z z$*hr^+{fwDKwL=xdW^rJ^FoG~h61lu*^~fFK(xOcPt@-=oCd(42%V-?NLV7aP6W6X z80K7tgV|bqjaw5+d(!Eco6P2Mdl|PimL1g{GkP2z^9iCu^f#d};u>x5OeQd+<~m}M z>@Wqww2WBh1+2*CEwc(%HVJGz!_Ef2?+jLvmB-+ ztJiu}x!VmC3CxDoe7h&~4e?hJESkF6KR0%Rd?BkbAz~23tZZzR3^0)e;I1^D!A%rK zZ$$Jc@=T(*A`OD*U((%hOYKUh?FFy@#%=5dF6uXy>Es9D>md#5XQV^46eRhwD&{~X zZUUB7v6`25AL=OK>bEo*z;#Z`T+biob>7i(y(j`=D!@uAddrf)M1j~5f2LmoFT$BM z4Xbmx@cH>o)Ia-Jx&Xhi^VgxTZm8HYLd%;EPBas8;8WxYq$EMJ1lEdZWObDi~edi-f| zR%g9?T9=>Tvd7;n?d_XokH0hyoADm6dmOkFZ3q%A@`uGD>pjE+eviMED(gLe)#KT8_xQc#vT6jq0u0?E>zV(jC7AC&EB}6>rNU$A&*0Jhjgs?1)yQ4l+wl5#aeb8a z?&q@)7FTwh^)l&G z=yBG20gB!p9}TkJgM3+;oQ&>-O4}P@b?xmz+;d=qpk9si-WB9 zcpokfv)SGAGqD?g#?PtAbMV&*l{3NdLE$Xb7FY2F*s~)!%o%Lq5USJ5s%zB_^$6IWa ztcT}X2p}kq`qwa2T5Gyj1fLhcY6ktnpv))jAYew?MV;7Bfcr?2-CbZZBHOBAm~iV~ zy~4I0&~g2txN6eE;sEwp{Nn`gfiVyMk?$?)wvh(gZZvyNcVo?y;dpJNn}xu+f=z56 z&J0wmf2PaJ2X;n)lJ%?>C?v36_fQc;lB|C}@w3e-Qf-lZWxd{pFUpzOPno6BG?%$? zjbrXi)0%7BjOIoc%Oba{GoK^^m(Mt!uvSs1dA*Y_Q?B2wPtJVm0_WfV4hc z$l1j=W#F5?0gJ;(40ycNFNnv8GRlEPVvl(|^c`R^U011xmmk?ARDC5kcA z-lvPASUjW;Zx?+M2on}Yez!f@cX6`sqGaE7B^yWSis8Tehuirs>Ktf9eaV$LIWgL5 zZvO_z7=?!`K=<1V6N)6>-2L0IvNF6<_;11j5&@pj?V^3Yyut_YXF^s$U4_4R?|>Kp z)n9#nK)&aY8OY@mn8ocwgT%1RQn;7%;Rcy#o*2BUdsZ$n82&KCD2BQF$1p=e!ri|O zLyxH#YOgTdtuq|1%x2Jqo0SP4yfByU$!ckW-?&_O^a?N`c~W%p4Bxo4#O5X(Q6a!x zW&Uj#?u*^O30vgQ0OrqxP@D@qGWQQ?^Aq$-h(U7Y5i#MZ&sl(40(Vkg7Z2=>d0H6m zGW(BV29b&MPv*je8b}NG7Z^%#Jw0yjqMSRdk9!z;Mgae~XS8ontS7LN;cb+2=uNg$ z_4qLKK|HtEUTDrR{@G{gy5S?d^iK>9#5{UxuKhDa37ALEKl=2-!ee^^vf-0wC3af8 ze7>rqCniDjD5PlH&8BJZNU8)<;va{UDWoAh4yjjo@_^Q}7emtq=jbTfUkrWA*nHqM z$py}EJ?{Q73}MAEUzq>VDL*NWc|ay(n`7u55*pC%_^d9-GusnJc0#m+W|pfLctyi4 zd^tRR?E)}XjB18h|`)qE*=OGNl*AQm@F{}*?;Sl!1 z4RafYagiU5+dm&-fYvs=Fya{c)M2lEjAuT;$8rM=u4(OdK#VvBcIMCGxa|anS0>!z zx{HEHxL`!LL-NG;Hb~MXz@pNj$L$;6x;d047d_;@%o< zc;q-NYg-suajJAiBr*c7HjsRNq0X%9()up|CDAurym|0cVis|b>J2EY&OiYv;;az$ zZ#0J4&%n1v1~h<2w)W@zrpQ7E-A;&L14(wm+Cc7C%NCNb6KF_xaFE}FCWeu~7h!m0 zTfvRE+_kWd{+@g@Y|`9)X{z&>ew;4#SqKT42jI+u zK%>;)u0<6z3wH5>s6W$ivl>D4I%;0n=GtoY6>fHDki^@6iov8H!l**%J}n9%wL+nx zH={>wpFXnL3_fh?H{MtAV>J8licG*2S_mO{o>v!wz>?lng}x847^%)ZI7uzVc8DKW zQ=#Vl=48Rur5FylItK(s(7t?(NG&K(1FUJTjq9W9qL0d~y42Q@wW4S z@?>>7o+U{-6SLU$BeF>5T=EiuC;%g=_>8g5%e1nN@6;8t3Hf&aWZBf-19&Z_OH=P1 zPR3DXPmwJK2l&AHT~LquQ>o^u5oGWo#YXQ8GcDAs?g-xaS*XvA7#mPj=kqxh%4tf| znrpBY&$c~^vi`_Je9qTvV9U3zy3}Xz4RJmO&iw)UODvYDHdqL@Ig=`1EUvE8;#>f* z7fARCa7ev!sj6kFE_jr2^MvN%LrhbC-oR<7bBoQ8QD+eam#t1AYAze77)eGcptprI zXkAbqQ<#3yhUwQ4MqlxeP^P)>;n~UQ25SiIT+~M}#pA_CR;S9kH)Ph}?xU~EON64^ zr@lJTwE;Jk83N-{TjzOE8BGu=rVVKhPoSi7wR=}xCJ9ung^`f<_)Hk))D`{_pk|WX z9^S35h#OXh*m}~qyq>#sP04MadhHwrS^%S-psj;qSu;tC*VpX?Syq4c;ec5+DRAG5 z5LU@3C#V0eLykVNe&~Xk98Ph}BZG9RS!8%;7$QSqz&x(b&&LjK-ZZNdkAaoynP(m?n|SfGF#G<3Nwwpw zmA#yLy$1Z)7dQqYn%)9rFt}`itx%W$D)b`4jRzO?8~_SkE|uOE`G;rua$^6pXZez- z(b3|^nGifj>x050yS#4~WI{s(#H*s_>N#30phIrTc&DC{!LW-4-{{Dt$$w$@Y`8pl z@dFUFk=<9@g2zO+f zCSXHc8bIdt)@XGA$1hd!U;&6Fd-J1zWa*;t(iNiA%ZuDpPn}O+$-l9jpX9v!gn@q} zBM)AchlIIg84z0vx!G9u?GMFOm8u8bTvX~w zI~cae4^C=P-!jmodv!Ws4S`Y7uU1n-*`E&Cslck*IC>-X0zhOS8UTk7*u2-d9bCXt zh5yGEVStV3OKx zyXD)OZj$ugzek25sdm0P>xV;Y&2KY=9XCl@-X!gl=G!AIHQlQH=_}d#iwxbn=k`-A zM~QV`R!t#Wu2gB+2|r)@m64J)dZ`(*Db8B=w}H~D8Me~06$T_f6O;TnM$vGb_?D-_U(ke6C*^+5+%M5Cu3-jvELM##I|F zEafuhTu0;RJ4$`FyIUZx4RN5jW~IBudcC(x`w-nBY>faylSnY|cN*5l!a8FFCguAn8`spjqUgiq^yIP5 zFI^WJvuo&I)*EJf#<1R^-WqVP1Gx2pz|ZzN4U{RyleU5*Zv2WNq&J&n%u?aqM0#Ev zdXD&k$PJ;RIu|7LIwtP&=Pd9<;=PpM9r{H}r8I-wtD|+AcxcXW2{saHNiQadU9#?;f-gmn_uKqBh2=#lzF{b*d zljFcTM9=IIW$DGo)(g57xw|~Nd2_e!dzV)oCgti^Iv8Rf>frf!X%Clpr%L0J#rt1x z_Z+{@2ag9`55HmQ^<4U2h_N+7->luHO@>_u>#C>$rc|!#Nw{=W+-lJE$_$Xw?j?F- zUn9*q^0Tnzj~}C(9XhEwnYo)LfD_3hh6q=Hd?PLlf8txZQRS|l@SUjT7s zU*~FGUQ!~(y+h~7am2Vf6utNF(XTgJOQ?L|j9`GzexIuY9|7fjKjvz_D0F3?9{Hya zoJh#LNSfuCI?_{zsGAHZV`61ZjdsV%RAnvHi8?x6uNA!NnbkdSkvEk#o!)z1RlYwf zOAusMRBT6QGjE$qnSA+e!PrI%GpItvEQ{8?E>177@u#-VkSws_t0VNeb>Qg744IL= z46J0P6B-lbmJf4X*v(H@Dgn~zg>>V1o4dD1S2bNnj?vV?sWo-R?U{4AY~2iL*_b$W zZv6FXuVL15Y^}by5?aGH#%)KWu>L@#+R zvx<>3^P$(p=eqHQB-zyquICsb-PN=8S}&61=q~&Yhu;egp4=`37>VemxSkfk9g8GP z*_R;`y;9u|FZ2R_B7U$9Nzsehq6`+$p#?n|l!x}6Za8@XL{MLq!w1njaVFzuTk?s5 z&L*?f79y(vNFWqYQNE2_>|1kgfkRvJj!(Zf_cs!8eL4RI{qxNQaG;?rB`}Y_wg{G$ z@|()A;d&bR=+>8=yFH6&u@lAZA*e1^{=i>5Qwi2U!`S$v(J?MQ&P=WWt?2}<7^%B= zopyuoWPMI-J{mhYw7WA_e&9fGPAmt*B!#m@?5bQ}byh=TXu9(0bLTQS1`O?uu-Isz z5*?@AdsE~kycqkvvKiZ%UmI)8CWCYBMUv>L<)UmBvq;b?gESp~3Y7b)doi!<9w;qbn>MAxT^W z>pcr3lu0tYYp$H$*_)3+pdmVpYP-wU%0=0&e-&jPMb}+4DbSe6M z1ZmUDuLGi?Gw&IjW;b*-3t2MCOug(k=S?egn06PU`N|_T-}-_@G`8L`6OnsulRIe! zZo2iy3HBg#6xZ>!hP_pij7G;O4!6@m$6Ht|zc0xrDQN;_n*cTdAJ^*~rlR)C6C^ur zW+h4V$0SK5_H&k{T8C{{s+G`e>&^>?!GJNI3tbX?Q|=ijCOP&7Av332mO`JW#-Wyb z#(4cW%|Z5`v&?K5(UIfX1ZNz@G90^#u?Z+_bwxgcL}n+FgAYuuABk&}uY&j-7cTn`KvuZ!xtrTq*F7V<2UBT~$(PEg_{@>oi06%f z0W+yPD8k9h&{? z(n&t_O#%+QgXI@Jhc_?I(8U=L<8b5NK)<&0{IllybFV5LZkB1?ss*6-VM}8p(_cxhyphcjyOSi3zVK8hu{dVhtM-7ELjP&HT`BYnENLb5FNU--r5TFcVdpoy!5R==yNKtrkw^h?gQ%S0j!MK^pob z83>W?jS^|7r?QFkjt*tG=^`x=(PCgaCIr08t_0n}u6Sv8t+*>$-0E3N$Cab4EBGpI z2O)W?qeNzY>+2G+MwZ$oBDroPQt(QYd?9LHCCP$Wo$gFjyb#bX173^S7~EYVVoJ=__>A%L_H9oPdb|oabkzG4PLg z%&?l{u}jbii#w>UYF=MW6Wj-nOiYlLE@EB zpjVK}B1smlR2H47SbKv7gZg}!T4L0N7>pNpXHGi30M5#n>Fi`dIV)E#ZWXvN7s!SA zGOaLb;KI~_wit%{<4LL?n_+aaI)$^_W1;xTitE#OgZyK|@3GOtg4q}VGX7HtG5ilq zD+Rhvu6NyO;JYrpn#EShYT~al{Ug_Z3ws}kwqooT$Ce^Q2zqC+i?9y zlIR~&{Rj8e0ZqbNhv=VeF}eN={Ykh}wB6@>3l5=wb7yI0Rb;=$`>UV7?(6|#rD$&x zw|f9JO?1}S@)-1>6uUWN*LilG1DXs)Ojmu^`^UjU&tP2M^*Y4Tj_(}7^75oSg*2dZ zIvi6jb_W|s932pKnabwPb5p|$2AptmM(`4Rd#)$)lZD@^ZN-XvibKRimLs9u>WbnWrH{2T6kI z)Md}uL!s`Bp9@{{dqNNSQ=tpqk?-n0%2d+pRwgqw=bib?^c&vFYNp@uR&F!>EAP&5 zrr%o_vK|0^t{#cobW%kq%HVrFLh35#Y)KDJG-#pm&(6l9+qbD;W8ZEd1}C>}K_ve& z56Rd)13E3#2jbd>XZmo%^-;Lr9d5Wj7W$B6>`vq=zVBE%p_k&MF*b&&uKOHXGd~Ji zfDV`>y59h$JhR@`-l)sG`cN2eotC4KB4)O}_^kEX*iBF1m$B5TG#(XmB%nT#-cuqN zGNlF0B>Se^LFImRrbNzo9$HKm1g2rmbe3;3yn;1LT3H%s$6l(BfcF$G4kGSwslOCK z5_2Pc;JOBEtqz;0@k4Y0whu|vnA$!htK#(X*z~Q@-h~72&;s$WW%WBm4GS5qt$^5x z=*t12+K8DlW)_nj!+_Q(#o&k+GKIZ!?~UbG<}&y;Lq1u>VMNekMGpBwk(>}1cIWlh zrZ4n)-1O_UKEx5_E1b9LRUd^Bi>_-zW~v+Oc(>);?GR|c)g-NjZ61Bhxc>U=!g|*1 zLL|d13r|Crz$RMVWCky1;s)0rTrTKiV{jH8&ZBoP%GF~2P8N$fmyvb8F8*2-RsABD zs^&7X%2(wlE~hjEI+Ce!mq#>%9z^S$Hu-~p8Jp^8}iYI+_527KIG7beDWa&9vskw zwv8hD4SBEa9DL{a*n5e(G$|h+`H*uPa>s{!v>}H+fOuo1dqRgF9xB%ayTQ z4DlW`Ov8N4S?X-wecUIFl>ubXuO_K{B~FS{Xj?f; zr0`Tg0<3SrC#(`G1%pw``QW^30lTE_!WJVBE}XCdd|p5k{z}MK4)b>lSb=PXJOs{f zr|81IzcDxm`9kcGZvC>+7{kGxy*vBEqtWnonx^EgxK;mWIAH%t)qlirz}5qHYsmgf zk@^Y>CFB3Y@v)c7ibZC3wV^Ht&u^j;FPIFUC@}bfKLD5#2NO@@r9hOb`*sW({ zy$4Cbc{BdT4GH}a3>PV)*JU;GOl$W{k3KJ@5wQS@{BF%U!-D`F9nN&ViSqr`(Dh^_PpgLkxa%Ba8&4^v$_`)Of zr5z&D`zXa`#Ex*<1OMnQM&DmY1+pE<+|iO1{c!WYtc1VQWxLr)3T|lgs=_!S$!cEb z=NTY|u7LW_Iq)!hQ*-A#EnaQ;suh_!Nja&WNmPl^BT<8+&~R_NC6D9Kq5Eq*uXnle zCWi?FpZj%HtO~0O^Ykgm^AW`m(8U`L(wRlnwbP33JtvEYd3{ad&14{sYGxp7CGileb;XfrHSfy3_O4%wxU8m>k4=Mt@|BXuEDl`*Y@OzP)brR)H}D@ zu)&ogM?t~Q^T39Mn(J#vbY&oQEv*=6e*1O+0|g_hhH}ITWCq;5vzHb90!Qxa{9N4L z9~|FFNXYtde{3nY{6I>j_{L8$D}tr+2Y6zV9%ZnkIKQh1!y@PHFYt9$8! zuln(%$@omz23zr2AO?aD_TAiR_9(uB#omao`e6c%V4-zCEC3T*7#oc~600nw_cXZ` zk7F{%_)3^BZj6rCQohw)!=_nbXYC3*BNYZUv=A#!>JRD;D(?&{?+hyMf25Y;)o;=$ zO;l@*Kwo=tcvmep-;8RL6uPDpVQ@YRH8iQaCKY2Y&?s?8kW?@BMbhI%&ZBNFO5WL$ zV!^AY04ZqhkO5l}Pp@J|#^Ao^opYv%9f^C&4na%as0cf&cD>J|3hSyNwxv{CYm;$# zm_}m;Nzb+qB6FJb@5D__-u;>`)i`w?-h8xkoj!KE9m35H#S*O{7NIRoZt|53kB6{6 zj+L2;HQPArVUtBGBsdW7`Y+Mo)$H@{2S0RN9*GpVyjFcQby9$@>g(dHBD??NpdWSX zH!S3^9T2Te)1=OfK!Br9>$uM;9;n`;RgobKO*Ff$@%-yYfwJP*JK|ba&w!t*n0Ig! zqg$e)AB%+_%W0v(gEgoU;8Po3sK4ObuZr3n1Y&itF`e#6#5Phj1<|9B2Y!JVYf)Vy z$DU+7l|ufW!lK69n(5Ezz$qk2%QKF9TgiBJo)#dncX@kREEoB#_#e(+ou7*#m;WN4 zk4rtXtlLpGZ_cDLnbc7x6=YIzNFKmu^7qu@%kpzEvKd2z(~z;+W=z|RsR)FW7j%2Y zOK+amwZVyWW=0ITPJntCdZi&EpOcF2Fw;>bzZ#~o4Nk9vEhm*PoN4;I$Mil(tDmUe~ zDmTeaJtt6+!j*`3(J>lZCxu|w#o}c#E9A!l#iF2L+xieYLU)31etC88@uT-Qru(Hh zCV880BmI(h`W# z_2j&>Cx>X*X>;bco@w4%by7Tkn_xm^G@rH+~!GKFQ^=#?d(zON;oA!UzIoKB};h~({%*W@QeY2g(rML&oj(u6- zKUukQ$|&sR_#UW?8xBBl9sb=XzqT3-_a)Pv>DS$p^p4d8!@=d39e*X@4 z20>EvdbgV5k($u;=;DlKpLBhEf`9$@hC=9Nab}DsAut0&OuFN<)^BFZ3gQ=egfbTs zBCa?7P*zOl=<0I^kTMzkh+@O&S3uCUK?@?oT|{cI;eh;T-x3A-YHUO}9v}#@ZHAYZ z!BWdxLGF4csYd+|dGEwDrv*Qs0%os;c6LNL78lGWwh!!llJy0^WviX*-mMsc-2bzb zD(&%|9=p}s^s?Ge3WkhU4PVNx9~PbtnjEa$iAPT?C!0GX#gYldvYQTPT(yt?L~?aR ziP}=fd%jylKuCK2(qkkO*RaLZ{mQZ*b<*JIaC$3nd-E(`x@77x^F8-Nab@T~4bK7y zRoyKTFo1*f83Gg|$WI{Q#eLkwUmWD>BH*PqtU#7*K)^`+;2@MZSpx;AKQ#`T|{%t4IAifKr-yU zucB{IW03H2Si!uIzV3hboq22}^*=hk5CuJ@Ha*486&*cA(Vk+CL;ywbIZ;M_{#_RG zJxaG^8rH7dU;+yjtiVl0hj%Q~KP|0YmAV*EFr*yR*?>gvlfG6ePaZNpiC| zo~?3asyuc^6-pPzgaOlIb*nAay^QoB9o4Eks#UuWSJ2SL=?~@#yHu}t3so^)^{Rcn zYG1Es?52rpzS^W3Y6e1*?wF>d-6m&~?-Hf^AN z8!Wo20%SnG5$dKXfNz9pDtXB(z6wOD#@vrvRmzzt`BZ?d;$_e+?+S62B-6Xzpl%8f zu`{#uem|Y0m*R|{8Oe2aDbD;Z0n$Gg7pdfDygHelf^A+@w=C&V9Uo;u87DfH%h01tZz>ene0B@^ zXU)Ua!GMt-kyc`6_WBiT0mBc5Ea*)a!gkxKDETG!SG%SBC@S1+r=D7Jnk2g)`}0y2 ztG+TABVEIuKcl;m5(GV zANfLjY;@%*cI7Gi@)wusluLfu_-g3YA8GYW8@>7?_Ug;*W9Zf2l2=Ue>w2{fA(DO& zepjYzuf$DKyd=r}`runVha8VrsQJtrtA!CM%x+8+8h6H=4P1Nm@+Ri^AuzC~I&XQF zuIvIo!@D~I)YPy`4SCI0jU$A4#IB+AD_5mPWs$CUcyZD!P-X*oMfZLy5T=t;LLs!b z`@>JT;ZoxbYNYK)H{@e@LK&vbZ@SH2#jytH?ynGdu&H3XY7#PWc;2yHjj{||c3#nx zD!-h9p^015ZSAjYGl#>up>Q`fzrwqH=h_bpsmQl;&}rg>+~YZMrsidB+AXck@{evbEd^Ep?I{x+IXdHlofe&89kaM3GQ`s#yuE3Pm>Zxak40+ z=7KijsPDny)}PA?+zW$|BX~Pd_}}yDv|f<9nIak;c)k*O1<-t+&+uxMRZSuvr9|)gp%1Z zGIu7v%2|h)>KYC+WK0Rh>7FK~#@eZt`K);J@<~?wl-kok(?wz}il2aYMTsMX=25=| zS^@ow+vmTIOzHAVYrAKo>|trm#YG$wxkK}1nqN3&4zmu`An?ow zf~UZr@I;G!Vq6>aUD~Qig;Ln?0dzu|&%NcS;n-;9&C2DkLd#P^y!?|RZMTMWL{50^ z9NQV%8P6gRDGbID&ORmB$o{;r&g|xJU@>%pK(tP8{$hc&&B6AE$HKGT5RI$*ENYMX zy7*Y+3$$!D#O=ExJ={--=&mE>n5>*#+Y2{M)F|!5pfSwJQms%wfOTsjfnFqwd2|~_ z3Vp9_av;322@}RLW(-a94ur6t~IQOAS4B1kII$tV&&_%24U!h-QZ z@DyX)w1CUHIN8)GUHf&oZp*39`A`FgY4cjSi^$n_ed^&j0^_#n?e!#259&Vm;2 zEfE>zf2a9(@gD!@mc|ntis$E9!Hpy2tmg9q9F<;W3i!dQOm~=0=1(SR{=^iPTBR`x zD6nYs!r48gwaA~42y7DFhWO~P2Um;QO|bTv;*D2Wq@4e)sVl=4&L6JP>w2T7{Y;#h zhx4&9B+IClIRC4a?2piKMC&CxA6h?CWLkY~-Yj92XdOm!QTA<}6Tw3MIMo~;EGr965 z>Lj*dmKeUCm`J?#yP_hBA8k!H%(~zq8TmEx_m~gk{J%+?+r^V2v~_J=7o0|&D6%)h zmaawX6%WgbTQk-_2IXFj?OAhuGCXAyeKI)Bn)Zf}Gsp?8LhSSa(x6Zl| zAsF$e4lveOf*5nG8>>bHv$o8HPFLLQ0`qvM0213!9byJc{R~tlc78Hc8w(homOEpE z<^j?P1^2|YE^>$U&g9R0Re9o`EdLX4?L%{Cml|{P6YK(k!pjlj4-wLHk>}&-V^_{u9|mpwLsXO{=bA!;!F3U=ld} z`?`#y+L`hV@%`DJFu9rMw@i8)+BVIin#rvzeGuVI0BZx33yqYifR z0UDfgE$UE$lYAICdDp0f`1b`VobxGk292Mu(=U`poieU~cRoM7d2SeNpBsMv@0%O` z`uB6gUtc{p{Lk&8Zk$$FG_T};x5i*7%a6^SA{}aP|GS3T+wDW`_y11}wYN76wZZ?w zp>|+prAPMvIAYexBmU9quk?U>c?=(bWiJIC^d3HX`snqehdpjljWmGT&QSm<1<-TP zs6;pi(qap(fZ|01ykA7%{rD-tix;uKKBD72$S5mUW1N9!)LqJ}ZQMQ(XDa?_+x3g> zZ3vf%>H_%K@Y{!3>vKKpji^v_WI03|tG(UWllu+n-rxwatgU)DKlXk1$oLU{ShY~2R7DP;(dmYZ6cKq02cv_C$YW%>7j!yTx10PLw^l^8T@OQbVyk{AtW0sioaH9YzIrM z*EHzj%;r9oZ_^r-lUfi3XbvI4X+&AF$l_)#hTLWq6`M}64kkEMVHlH6kpvQP`(Svd zrE3j;Pf9s!DQsPqouE+BDY^rrTCUgCA8EKZlkXu_f4A z3`a*a>3Q3el>{|jY{Bh@R}Kc;kX7ymn)+u0P5oaSXcrB04lJ)LJb0Zc(H$R7ox&_| zzO)`Py>pt78?B*|53CaM|ZhJO=EJa6f?p^}Xq`W$0ih`L3!w=2Yj zF<-Cw1=qZUW?nUuV%%n74$9N@I#9K**YdYX+Etx~*8sZC0`Q|9X{MEszpdAKfw3yC z`5ZXFz=`g+RPJ_4g0h>EptG5~k}SWPh~UPYl{XO)Y)P(*5}=ML0a%v)(^q+8bPC;) z->pEnzqAisKU#4=Y(a=Fs(+IQ;Ha_l*%u}cpOf0b*CQ+4NtMYzodIP9U5!pIE#LBu z`G$SV+``kYxg))4wqf5kudx3;(@J~H^0^3I!EJgP(+X=%C-be-34D6~kEWB3G}A?M zI$81gw@)XItnSOz>Bv*QVnT6=b_S;!^ZE7jN=R+{Q=8~lOfQ6;FCL)Z(rufsj}8vw z32OJIkFVDi9#5lDpCqd&5StkoWwvH>_lw#5=O2OseZ{mn@0vE}jcIf7|G%2S$=pfl z%4M|mCVSjvd`ht=2&<3oK$#o&E=jUmIzf(15?SF02l1*uql|U5gp_&k`DFbumz_hp zbKXYTip9y;Lp@RG#RrG5&o1FmVNPbT)Bt4^{#aoi8d_R7<7M{fQJFYR&7k2QBBdVq zlt{f!yS??)PGD(OG!x_fs1e!IcxfJd!FX~9-3YLmjp1!NHryy{D*amZKmTNIIW++#Dn3PEC z;Ez@m(Has?k`iDjU`Hv>(uzFcX^vzW$X?0^4F-oAuo>wnG1Y5?mxPEfD$&H*Z{Tlc z@0{sduw^O6%*!Tnls?9cHb8GNOe?UaZ{;Qr z*M3a#N>t4Xmyksuu#`=V4aubPRWEtBqmIE%O`^E;b~EvGN7_fRo0~{&ItUk z@+8wrgoAqvfump?8B#A&nt9o0!z14=K(U4Xufg4rw0)rCVT50Ap0+2!x?guB(P%RVvvel`dsYRbxm7>|Y^^hp`$d zuTt0z;-r^HM1HY9U^j+LS(GJN@BE@Gm>f4aE#=n21#O;mgdsrjY4a@Ur!%{r% zm<(Go&QSU08@6j_R&3t`jpJ^-y*(bm=_)2LgOA%kkoJ>1cJe{g)5AWW(0#HL;!?(>2& zw(Wrn8)O{d=rfqxg)WU!ZjmO9jt&T0! ze_c6-$F0P|!+oEH%SILk-qGjZ{z;5c+G#e?=g1%)S%<(;Sh>*8Ir{;rZN}l={zWdgH_igLDuJ?8b`SO0L9xNotO*&-SIy_BR{Zh@~TBvsn z8M#XIoc_{~1KS--Za5G67kTyklY-VLbbXbAlqv5DG+i@4DNh|wvgIOMfFK_Du9;-MnG?#tMfvat7>ues;HkRRp=jIKYI#@H4t~YbAY?A zR?DR>stUz?s(v(=D3yAfYh_rhqgX$pPX;s%${|v0df~NQt3w7{Z=` zC5ag~y`?=BhsxE?`IbH@PoY<@>=8YmK$Y08!8@zl8uQxS$HIyBR;*Rg$lYZoB2(XN zx1+At>qU|*y288Kz$dm~i>`KCom8j0LM%?I({>|5s8xT$6JKGlfw2_@{s_ckb7NEE zIXGR2#bnWc|Nf%BT(}BbiPdD)2($HM%%2y=YB*|~UhfvzV27@Q>4O#k@DWYA^F@-h z9H1_+ARPcsK(W86X8%3?ud}mHRy~%6ubcf zk}OHeN4UuGvNcvUVXZDbWDlqKshr)wx3z>S7Bz*M7>LTBvTN*%{%!?c%t@oBX8ugS)B;7Pa4|3OwhNJo6YqjM$fZ_m=v z!68*$1b4;(rrSX7wM1gIG3+OvZno(8(k8*V!A(pQ!B7ATIcqz==}J!28&aCR%f9^F)%A&(RG99cl+ANgA}D zl`m~8(3W{f=aC@i_L4!%a~XtHoxZIayiPVKlH%B~1{yQAov}ep*MzZ{qnQg57!1mRm(64@CM`d%(I`>qM?j7pw*kF9^gb99wv&;!D#{X`Mn;as+vUH9^L_Si>Z}h z7UMDTLRe>;XEG_9uS4#3QYzADPIISSBfLD`?Zz z%+O02YFKui2cXBe6pA0A;@#V3<%Fmb5-7A?#?lI0@#XC>xAaF3O1~%26EvwwD*?2Z z?lYjTBwu39w=48TRb}!4ae&D(>^N@wyoln>6G^b}(fN8{OZm5hz zMlurVWF#_fV2RvUZ5fH&LeVHY`?~afUA8G2$I?IF$Y%F;PcR!^MiQnTH&^?)2epKt zkb~L4WMa2u*QLn4u^5iiag@Q5bxb@?T%sMq(cp-piAVZLXD4q=JFwcv(~k7h&Q885 zMd?ZnWKtU|^2);i$jz5beoaR%_)6pekLL@q8jnHfP(Dd3z5uYGZOVmdt|ZyV8%Sdj zH!3(Hut8qEw?G=@c7rZD8+73tbP*bK<#l5VA7Qg-wy1l8d2lT%0cE41aHOV>(4&AK zNOTnSb#YmKEKJ8!$IJw2iRkOR*CgOB+e`O|@M|8A2R4YO$L=1;=Gfuw6iqAHJ1NwSOe6CY)IT-bw;x7MSU5y)oK z+Pt~Ow92g$b#N*)w<1(y^VHM%T$VjUw0*VoR!|z5k&~o&X9bCW8t=HZz$pEY7f(`!4kv2A`zm7T zaB&}V-7S_aerr8+(qGubz5k?PT{6r&{ZD!IY_+K6asivVtl#C`*8$7S!P|4+~wrtH0$-?n{2b8=a$2aautVp zsJY^d7#mafTQKqAr(1?o(Iyw^yUF3lqAO89Y_9>hUq48jkj!}Sq4rBz_syaWhJx*N zmcq_CKn-}MgnX6~`H}~MsBuu^80}q7aj0BRI=!O8oO`tZ_sK==qN*Dk_bhiL@4`II()hb>21sR7gkrx8UP2qvME^xLkuG`5LtBwnFVarGfxbx$-p#b6U<* zYPX10e-n}$1jj4rq3EkERsDQEx8k4+aA5@w?>3gCtbDgk&ipK2PV9dM-YP?>@4Fo} zpnt%Bx`ix)b@U!MK(l_{udU3G@W*Kx=%ZkPBXZx1H#|{JWcX;Rk>{z7k<$ zu74LJUj8KZc=@Z?=jBiw@Nyu^A9y*kz{)-QzYp&mit;aBTGog1NDK#e_U`Ntk4AgE zJdW<}m^c+cXsa5Q#0nsol@5&;P7C;hl4>hs~_6~ z!ttSt<-bE?9b|C>tH=Xsv_}VnyOqPgMIFH} zDhLjWgz%MtS9>`qwnivFvR`3Mzcn=tC$rFb1a_VZ@Ml?C0mc!=hlwX2ri^7KFx^ke zfr-6dA0HXr-|?|wU+~k(*#x?=AvR4i-68+%E)POhf^TMjsl$$1<9_u`@PYJ{t$;I^@Y=rysSm)A>ZyRN1PwzN~I~84ru5 zL?-*%iYbI{N>ex5M{V?AV45gL!dz5OVUJM4HnjXTNvcCoiSIMUtAi9=moqL&OJ32P z52_g;o5dUfr1mQVYh#G1qUKs5IMB>%H=^vBSCGkS4bCUx5K6UDzpH=xu+4r6n zABzQ>)LB7Y31DxwO1gGtSm77ZMop5bKg4;VWvOL-C613tC~m~$leBt7_gQxHZmR*S z1Y8G2Z;d@Q64ALg5_X!Q?raV^b2lL0)<_8qU(%v6OB^3(L*p8GWbO~L!S@2={Z~rX zj+)(WglNX#?a{&Dd!Z-CN7;e9yptUtgwveeD7Ev549(jLg~x39z0e*72i@^~lE_60 z!t!nJ)m@dLdEG2`M_Xm`L8^K6J__a6b`8qf6#~mCV9VmhsyB2(d++CYSl4;&9UK{! z=IY374b6m0cK+B|9MIY<&UK^b@YaT)N#ZrSV-}9;T?(K!vmz;6k=E<#HDVFG_l7-p zRwxJKad^jUB}CNGd(Kgt#2G@#>Y|vxE%gVe3zIgPXG4@muTXyLr$u>aHx1=qX6-Nk zXs+e^u;7|!zh~G)qq}M{%3{rL`4fmcT;`!#0V{*k%PS;goZATo2XyCDC8`&xWQ<3h zvph4(rrX%Qm6oQj0RU;& zADIcn-#`r732J8z;dW_;i&dy$TD^?NkaQodUP3pbb@=OlTOFeJ6Wnmf_HwaaOQ@Ew zs25i)(pQW8N7Vu{7vHKdzK$oYNwqvSlStNR|A`iZtUU*pN9;CiPgV1QVz*OirD%ii z!R_L0VBrEoWyaOrREu;t8ho!O!_gqyKZ2|Mqd_(t;3fQJ!($WScr?iNioNgkWUtuE z_V+Lp{<7im;o!f@A5;AwxMIwGLSg^CtD!Ew*c0^jo`9I8xXO;atg5^N`nU4PDP!+o zOW;B^SXce&s=9h6)x(t;^Uo?~s!;l;4~s>9^$ajhX^Ay;J8jl3yPZPp_{_l=yDQ{m zkjY#6cIis$I_$TUI4bhCL&Pz|In>OAjfEv>Uv?Uc)TZ0n9PaS9?!jLKn5Z7Z_hEu3eMh=NIsn4yX5^;OPu@T??vm{@;gJ4wA9>~;Lvjcw| zj7B9i=k1~2S;r&x_K>Rqg}0V_#y(z@dkp}R8V4o`l3%70jfG?bR+fKk1nrx+4ULO8*Fig-#^XUI{|2EWK>(E_QGfsptlB*1g|X~r zAP}pY0t^ zO~&S8)}@~iLd;Es3nwxjU!bJ8Vmx|7To{$l+&&$9apKI%5}`(Bv1K@IG?+4ukA{5c za9c6@Cz$6-!?JoORLl~j`=pDan18&)cq1-I4+Up!ER2nhW zrKr9mOFs~jNj9#G-sX~DvQ1ROU;xNxEs>Wm?M%$vybyV^o3UJ&6)!DhYUVSbkh`~o z;`p6eaCd#Hw^O;D`VJwT+UF|@&GyROr z^m`c${;#TPXti@u-cM(Ug&50WI^%)z+QC*Tkz>@4Fk1jx{z}YZSPBfL!~KMO6!za8 zv((3}$}A7~yXu_YuDW$hPHnVa?^YFd%PR&4(yuQ5CsDqMivKAve&5gqH?T_ml9qc8 z?ERiy*W!Ip6We`tSbd&*M0wcxdG@gHsN2~<%)OUUvHU%|?YIkPkI`L#K$J(KU>ld(w)RB)f8+vhL^v zT3%6NUS5ENHW(JiK<;ozusH@7qBO?_~rK$+@F84&?(EBwk&kYA`VZp}5 zV6cCblzS1p*RSvO7!q(NynVDgr5PM|z{4EQ>(Il(x=>?Q$#WEg!;WJ}SvN*(=z(Oi zu!bzgV!Uqe<7(W;0iEY6#?!<+XlM}Xi2GJe*0g4T<-+ig?`qvk7s;2|>ULJYO*d<%_$JhCP{iB zPQr_Pe#$au#~NNtlIEMe-mUh_5O~V6k6oEG<8zKysZ+2wb)%tSeqX$R?Pl=?stVo3 zbXTQ`^%quXS7SzI`rEAHeF2xm?!Aia-WTG6uc9Nvf_tlMvG5kKxUB~i;Z!X65(c+8 zZos&+s$T*YNVQ_=Q+Tu<#}IWdqj8jh?dX%W87b`q-3T%PND18~7B;)O8xjIpeh^e?Z{IiE5PHNbHCRD6lk z=Zfoe$&rQ#olFso*%BJVoj~|G;EShRiIwkq({G<^m#`?Qub6KuF&I~5zODRxTb)9m zZKTpM=e9rfmGkbB&b#eYT66C*o_pJGbk4sW+4FPo5;bE$pMh7=gtx>A?{eF8>BejY zgc{4(ZqbkK<;_#IB2#r`*fms(UE^Ca70uzUaBshix=U7 z*)qS!1?ZArI38Qb(3A9vU-0+*JQ!V0TdUF%SEZ$4Ti&`VEpb(9_FLDft(Ats9wx~W zq$l_4TFdFGF47(b<1$)2NNp_EIRMg1EE$? z*s5g_F#h6_T9GAn87-->eEyU!z~``AJw4smmd*L5;b`S1bArPd-*2oCy3PkBo)1)G zpS}v3q87);%EQgSl!4~Kg*T{&@FW3TC5=-AuUZF(g*`2#E3pW`c~Gpl>SI~D5H&kjuNyo+-Bx=Fw%Dlb3r`==FO2+JRc zJZ@ev+_3zhY|l`0P+$ivteTEU8DIJHX7Hzl@nRzYZxRE8rKWOsbc#gf@D;D9lgA}G zM4}NW<6$$lISg0SrzB&1l_a|hLn=xck^^FXx2qyQlB!(Wm1O;o{K6{tM{OgxpMkJoyCX|?) zgP?U=t@`wqYv(Gt%0PbRZZ?eCFpnKwf0%fHP1&$4nSMq&9lRl}TV;0_4PKl4Q@XU+ zvF0#ZpcNjO&~F?DVK^XT2@W<%;+RQ&5RjH8$?lSL-|OH3ckB2vd1y}k4ohQZ zoo6Zge$}AFPLko>syUmw^7^@>wW4-X*ox}*kZo3!r+bnvJ=KINP@|?WY~qRZ z#WM3Txp^v<)P;a43cDWox}(KPn?VR;x^*xZFx=|ELr!LDQE?L(sQfvt;Hc_(6>+G7 z6@BoCVS43CEGENbwH{@|WMw*K*oNF_6nAiFiH6w5a$O-EU%7|6UVs7(vGg4+V3vRd zOl&R!aaf>4b3WlPPj*c_>U$6jEr4`(X)p2A9o!sreqSs$)KbrZcZri>uhuAH#hkZG zB$GViPw1py?nPUrfI*2DrVg*!m{hmh>}H}7%TJUvKum-^e-wWuG`(y_CmTt}AbRh{d)C)G~Lj86Hwf{?82$5D8p<}~n;ns3ap#;T@Q zu$-rrC>sI*P~|vjjx0W{*Po=Cm!AwtqDu`T(R-8M6`qdZUj&w!-I20lMKs|rwctommlp~FZkcW0g=*fK~h_}pJw48;X}CSnIOI@ST70v7TT ze$K^!e-s0LB})FuM)rh9_P%dj+iamH*IsoleE_)`IaXBgq^XHr-aNOR>DQ zVjK{1Asj?px9mMiXROda9QS78imF`3?31_xw9J@LGF>4blPTd8>iZK2Fp}ift#e@* zYNxRLL+BhrKMF(mdkLZRL)3A+JuiO}>6Q4z2$Rs}O3XHuxDC6R>3WU-m-ftHy4)1| z*rnaKng-ZZP=z+a03!^d2xIlTxW=|E=AgUDO78pUOXxOPwc+Xt&5EUv<9WG*t^YVB zfSE8$SF$UBflgKZeoR_?>?24gu;>G-|1f!k z!s?0;t|1BDaCDSBGOxXY*CO0UK$QY2aPyKU2(pY_I~z-2uImM zRFao3fs+_iB;~_&!8WaCwteOESNE0AU(r|OS^7b!-}x(?q4^{6p-+19|3lrocDIcq zYop)yuaJ21s)-h&NKRrWR1j^)QMx^C#~It{%P87{;uaFE#~&xE6pyU7n&DyY9HOOwXE(4O>7bLwB2Pwc;m!DXlY;4^pQ|hf-LiTF`36 zKlwx8!_R=l$8FwtBwxe5AqLYK|C*f|fKNP!Xv8 ziUj^O^UqkR<<9|dnTSTLKm$Tm@UB7?bSNf{*Y@A82r7=nt%e4bw$_m^S~6ok{sSl8;Xi?gwYd7d28oAT0nJ$B=FCm_+iaE>Xd;J-7_{C(`z>D!_1juqEFyp zxVDbEGXV{*VNkB=g3t5dx|2=QWU)Bn^PJ|%N++BrtBt^iui5#AVz^-a-~%qZZh!dZ zOzF*s?KS~|9}UMu!8Kb|vFi?055wTRJ5N^Zx|1iXP5is$z-~cJ_7CL5BrC4AT3S9O zhAgd|5a*Q>;`wgtT)aDWj{&)9!{Go!O3xkw!|v_U=R5SQgbD{GpRhC6qV`4W%(}B% z+ut!csm2=jEr;rTc2>f>J`;G?$0bC#=&LW@(9#>yKdFh!>+f6ng#7a4F?iV$R_2JE zIY#_)+>ctV=!JhqkLU@#E}1RDX9uOv%+Y%wAa@;ii8E<;sAfiLf^0-fg|)2mnql8y zLk?&{uN}RZfZ{uJW=Ks&tL02os}=uE4eD8GP+P4-Mf~mo?m&j`Xs4M+fCNfVGtri_ za*$7G^?PYtI|R4??i%~nq0!=pKg50B$IMLf5m z@ahW%i)?K<=wMh74Y0!jT_-ot9JnJ{TTt%SNS$9&(Gdy9BIFk8z$q{QtJHwd60`tp z2iesio3-14uMk~03GlH_z5i3ImHlK#A_C+_;ft7s3K<4Lg*eL+jVz=@O*YWWdJT?r zWf9Sbk~O*Bh`GBFqXPBiZVS4X996hWG~s^P+i8I>NLBy>R{>J>=)ixyN2|D3==F(B zAvF_iweJt%<@g%4rVG`y*L!cW1)xb}3ndd1ut^cbN66ke{(|p(hw7$MB-QNoWk07# zCK7(>L5bM&9#Ij&k}jUOQW(K4XHQFfVF#;(lTQlMq`x>0nxh6)2AdC_W;?GSKrNxk zf#0ROFA!2*EVI;szuUITfR;9~ls-v<=M{SAOe4P}U6!M-C~bDF@zqdjIk?BfLjEs- z-VFT{aJI6YdKFfYl?B8m=<;d`|5<}%7@Qrf5s~WjLRJ#Ws#~V~QVwVK*^kAi#ueYZ zmEjv)R-k5C#`gomt=F|dpC0K!lY&-`!%(7+E(Z@8Xme>OV`^Ma07vP@kE=szARR0> zPiu6axS?OU<<6!+i&`x}DqV00`Ye8vr33Wb zO5RoEw$BGuS_HAy9uMtI@pwn0@1fVON6^8|CdhCae{uV2g5RYP`bq$odSPW0}Q z7N^xp-x}3Naw(@(9aU9TzP&BxOowA71097^;9%B%S!3Z-KgMraOzWa6i+~2IwJIER zzoaI&^=46JWFRt4IY@P6f^!n7DR#TuOl|d$K4w(+H%O3D@QKgH&x=>%mfNmhau7st zAzNEmihPn+6Ks7UY`@ib*n56X)0f7~F!~KcztD(c_Q9Q^9^)*7GCrbhXX_^N}An1E*mj|z$W(V;sRrUhD-qcn&?9! zMa9GjGyqk?(z=sR>_0UfNLsDvHH;Wd5b#IdCsP*fIo6O7jXLgi_Cs{RQ;1@p`eHz1 zVKJ7IAAx>9uDUOx>{tC8^gY4 z#Uj^e5lkmhLAVSY;)3* zun$q4?J&a6oj5?C_i%y%EQ8@gutFlwezaY=HFeQMP-5R>Hdjo%Z)9y!T5RK z_nAcrQYd69Kj@P3KzFJsm+XtkQwwc*a*U^GO7zJMF! z##}p}`T!UKcZc_lBo16m;^ECxy2Fq$zl{f86@EGMak5^XUa;Kf- zBID_e=zJ?A;aY0-~Sv zFafm{b>9`$?-a-xn~K1Ol1XO0uIXbY*a#DG6E-t7uojRRQK6z(W+W;J%QV7-46lbU zZ+D4hBVykPfPA$n-JPC#RW?nOO{g84Dr3oJBiCT$F1sx!fQ~*NsZAt>mEx{FVu~`% zdGrfJgEYP!HhEz5OyIFf?E3c2%xs{@m8r&*+Cjxz@h&7ZnToE`P%uwQo~L%Bh1`v5 z%CbM$`*(NJe~Zmk7Y@8@41A7)-UMBwFc^#)@-X++X03R5d@gbD-1JLNuD*qCwi^r! zIFO&DSpGLbmPUZ{i$r$zig?E7QOswSf8^wJxPNdyc|ZL1{N&{5Z1U65$-Did$qU?Q?0a?w~>t@~oU&pE|Qz?%(>%L8SrNXH;hv_G|;Rr@XR*smr4 zHO77bir^FNc8$LxX<5p(hIfu?^yN!&6Ug={i@3i#{(ba;(z+6 zG@zi{xaPMIvKArd9P;9>3_uVem*OLfLb($n*31QWW9ovlN0}O9hhX9gF~n7uuefZ@ z4gfoK^up`?8p*okhK3;b#VmgY342AOHQTf0Hb1FUCuZ?)vN+H| z{OR|0D7a?7T1TbT@EaARj}Ijp3Mm(5{qC0a9Ls`|@XOz+v!ulDEhYWUE$Ou`$u8h; z^#v%g6AWxwvdXQn_G(-$$tl+TO8_jhi@5h|kg(To(mx>ZukwAZ)$zi691ek8%(-L9u0bP}}vS zt8`KJx4TlE_3-CArO&ZPFQ^;xE#>jRJO-n&+@ottw`Ik5j*ucK2T)ZoX{ul$V_UAo zFk+zr@3;vYXY8J9owj0bBtPLo-ifGJR@I6JGT5IsXQCQpeZ5sp>AW?*GNL_YoMNXE zc@fr)Q%G?lmkQb_Ikc+tjFW6T$rvWbat+ammUdP%J5`q!o!xa@G5pfDblc;`=0jh& z%s{majc{1!dV|jRpviqJ;2W7u1G^6uO>5&3^y4@AHU}L508HQJ>vb1>qqMV4C0G7v zC!YNAPCQoMUW&fuZ>#o8rtS8a=e8GEWsK!8`uSTH|8Mv`*76@rX6VeX@ z5oR8wiDq&v3Q zMOkRbLXc0!EEAHkn5Da=3qr0sJIKvG8RQj^P3q?$Dhz2tNHsns;1o&;SZb{4Q^Cfj zLRFw6F{VU7P6O!XB}k(P4K1qKGxsvzvL=(#tbxysK`rHF`&j`rWJ)WzAZTNE!Yev^ zeH@>VOKAe0X`P(D21 zB~Lza>`fv`+#rczsnw;_xl41g8o6c3|GM?LcEnU^Bf94&0HzKr8Dnx}VA7CK3@oD5tqBOCYum$$ z2xFELw<&acJBs_-QCRKx?%T0%tyXE3JAPvgV&YnvJ%1CXmq-nn^aio4K=iB8^YOs` zA?!g!4R`8N6+EHWT*R){TcGE)Q>s~fPF>DDFSF&gd18^-NAk|&+PP!5b4Rul08k2q z6)q|3yKq9vaZ&>#wCiY$cO)e+AMd2?Nn z=4g?69FCeA5N-33x zz-B}9>3zjultEe6r*^yU`^Ce}z*1bpN?I+6R}Cta-I$9v2=c~vzO*ZfJ8`(=)JsD^ z7ZvOV?#~j_PI?hC5zyIqZULKS{T7+x&YuNOZ-rxClI|}SzNmBrl`yaUx3iOv9U%&e z=C{7*wR6(`VLZaCy==qy2WVHfpTE)grg^)q&6G#^7{yOQkCQ^IpQV5mNz$d_JJZ}x z(Hx~&_O^Hpq|ZDd3mjtc}>7q2L{pf1EGZm^)p4HiWCg}ry8O@D7~$G8P`?ioZ`{KF??L;13_ zww>5VJO50eBBb)7pv9CH3w9?w5kDnq9xj3+qw^@9y+1hyS_w+@E`>s6$c&zIdaJj* zuRuoX?g-J`MA^-^O6%peR_3{1y&|Mvj&1ddo}hdU1T>j2mex0GWg5j<4sqj&+@UPr zE~?J;^1^)F&Kzox6Hpk&WJ5*E{}+nuVR2e1EXqAAE+B@;VVo!W3=gVQD{G7EYcn&t zUYp&!Zo0}I8n2wTit3s@(BV*dYG}pGeqKjOO=L?;#lA2@&}{NLHU$=i!%wJ@lEc;P z*=I^^5z=WyA2%4>z1g*g*jW)(*PtTngsau!RuVAPr@39m1;&Awu8~=gUDNrZ$ga+A z<7wb7L+kIp9VPbMEv z&L^MGhLe-i$sZ@5C%+vY9ZlX1Cm#+^hwp>C;SF>y7{z-u1|bV>6M)Sm12(8;f`fz2tO(fB((rP&|!PTqBbW^XgzZ2HBN`9;C*VDmwWdw2VD zlI4dmobi+g@oRcffG`nun4n8=Jj?vy`4_ilk1JApTg;Nc*&tPfhVphvt;RQ zNM}pgH2cLzZ0Mq(cgYP;(`d$jPLk_0ZB|TGvSp749@|nlBE+1jOowSN7Sg#@q{+^{ zkFph#MS9BT!5Vv^)~q+||fpf0)UyXc;DwiBn*oZTtSNwL__V#bPjt5q!4>tfzVMGF`& zuwtfA2-fRjwxN5^Uq64Twpygd2bkTgA(M7HC`~9DErdND={r+Hx zp&uWa*H4v|11Q;&I7=41gOKhb)*?is)B_OvyDweI+cYDz{@U&BzI;gl!vTKvUhTeycXN@myVHA#aT4%d_r-IF z=YA!=+uM2lf)La7m8(uzPmGlZdz8 znDlLqF(x&^NX1@(D;`wx#f7*L`CYn0%sq#XX~Y(AQ3;t@RS-Cw*?R^^Oy+*LUTb?= zPmZEpy#I8Mbn@gV`Nq?OFylTf4ZH50((8V~vO(cAu8`NUr+XwQXgJ9If~K7-vHjAt zBY@~L65tDZ>1(pdfWkH#YkY@de5E8smJx6&%Lu^ET|hXTIrn2-KyFy4&M>5W%`xA3UgcdXSSY>}W~MMDt!ZL^`(BE(5uDTCJ+ z@(mjE*wTNC77J;<_Q*DVGo`q1>e?qRSY@fx+g`2Qsb|ZbdgDN-WQExbdhy_r5tn75Ik8;&y~fjZh~IC0)usF(NIy+t9r8Ey}M>1SPT|&DDX$&Ng)S^~={?7$)a56l1oZrr~WT%J4spnY9tn zRQ)odFgJ_@jaVJ~AZ68NtA(3Uf;$L;6B;W^NNKf_Ek|%UP3;!6pa7`{7MXO;a*(qE zoO!DyyzG3~B_x1TlO^g=n~I8PGzF+av!_q{0CUw0eGYMGl2JA$Ca1QhgyNfQ?wXs< z7;i+9B~0dx_h46b#gcLwv~AX8Rs$fR)wN79ixFI!5oEESkVlPTDx}>BUAp54s=rpt z>4>C}Rx7DV)eQz}sjJENCaC-Igh4-6ht`nVXsFe~Ii13sPHX2>)zL(6oF+>)hMROR zrq%^B6p~B9c?c;6nA&AocnR`H_1IZrhG$t0fe2DQE%281EF$am)1BUn-B&xWc6Nn2 zO+VVw=j);PsVi#q?&0SX8BXtQ^S-uW(m(4agsO0Nz|A|DL9g(jg-%M%Hf{U z@u-xQ>Xs1-jF^a?4*S!~y`Aps{~)&kW@@qBMySS<532*ZOmkH^il&amq1_EqvOD#MJQ^+u!jBp!gBj1UQ% zP2EkJZ#Mnxo`$F{6s09+Z2(`3eh zL}V*w4LD>|448a;c&?Hg^Q3^{Fp@G9addbv{CGBO%prcW46qCe-^MITQMqy3Nao0E zsER;z3JrMH5I2OHi~ZT{@*-KZTH-(448Ue`V1D{SxTH)UJreA8d)?;%7+jNUg~CLc zX&0P5YckE#@X{)4k0!O*#EebAN?hiA1tHk#YE2UulvHHvL0H-?*&uqI%+`HPr?uIn z35qPN3&4ssxx(x=o?4CT_2_(CaZ)bk=APA$O_D+kgGtKgGUpD2!>k(~DV3Aip3~L6 z*(Qr9lYQC&AmO^aV3i_^dr6nISr*}6w=&Bv#2Bo}aA2$F-q1j@ru9byK2fts_nt0GlEQC2rt&T z_!o+QnfRB8e^-Il6X}?Ex-78qDH%df#b-0|Zz=v=h<`=3EOo;GFCnmNw-TJIt=>ps zKp125P2SlD5{A$p7=7nJ(+cl52?-H1Eih0xh9G2m(Ika|Tg2 zKFGBWCefXv@UL68q!+zFe=J-xsCdMd|mn^m|tN zeN*~nX}1;zI^>^_eJeB!V%E}%SATy#qO)U-ox4nAvjjn@mZc0 zz{G5YwDB!Lj`3Gi{_MQf5{U>foO1`fE-K0Cv{}L9D@Uk0OB>aMh*LtBeZ&J(uvTxFr3qvOSBc*{;J<#ljMR*C#)4ml)7!=(n)B)HbiuR6Hy~EH;9u|th{X5| zkQyw)l_CeQsMU#${ZEHk=S%!0_S!!0%%W_y2+^7VHeV3qkha$-GM+WOcDUwLPdupcqR1QJB1;<5gfYX5c|<2? zDminK3zb}8vIk>ve#IN%MRLRK@f89E7+s+wn{^sTJWS)pGD$Iek&AooHz7c4T=A3# zU*fAgUuD6wXY-5Bl0OqydAz4R)wA$aSM&5LNv<;wof`hB(FU~8n&r<@de1Us(U#S) zZD+cx-}&MiMDohE3Z$tw)vdE%rrG=|%p0==30nyL8#U%{GgWm8x(yv|AEEM5! zSY4a@b&1>HHy=3o2KQwM;{H^~tx@rYAR=I1pu|dXCq<;D&dks0of@^kC+uyqAvEnw zCMq8Hd%jBf)Q-rFfEy3y2p`I^q0jgBy3cD_CfTsRa%|ESeex9_{zkuj#)o}+*u@8) z(wo=fDU)UiDN}-2KueTjJ$Z`}5m+204!Pq#*+^S`n$>aA3F8}Du&RnH0WscPoaE8` z*4BV+ES3C1Gkpc(qzQ{QW*e|i7d%WI-JzXpL#q{V+e}XRJaE7k2Tup(@B_vq(#;Jl ztxF~c=Cjcll!O4C#)T08APX@863{oINYFt~)99kArc99}SPTXVqUwOt7=w+X?L*3M zf_S6j$8{iKApT(`EDFGJ#vWjOO~_Fx3Aiqpbs+xXw@eff#PWgGm5l!a^#J-yoNPy~ zYKfW!!z!4+B<0$p7EP?riVMY(7O@@<%W-v~6uKZaKz~=%V+a^5kQJ}ET-h}*EFOBJ zWHW}r)OfbxZ1$07IiEpmYN%EC=%%-4s(n5wHLjzZ4i^RrZZ<$*y3~x7_1NZ9k=4h~ z>N;2c5(CsIATW7daneLlaFvy9n$;|{cS*9~VeFTOUfkHMzE*k;VS2-M!ZYMA@C#UlNd4`zY=p^tRUgK^TQtrYF+oZKh*kZF}Q3dw>&g6y7F< zgq8`cDWTusESj*9Hv1m;%ce@wLweLxmTRM2xy91B-5Z;``k7)aZfnScyJp_t9~E1Y zi)$Ni1?)UbSPzi*8fVW~KR0`zL=-;&=!{)$0M>pcL48n|r}7RG9p8Ih_$08p zff3O4b7K14rBnY7=p^vY&QDHt@1GCfdsNO#aEGd7@U8=$s+K5~R=^cNAGs^- z%3Vg$+@E7~@al4kYnBt8$xFga9{T6iqeYNfcWiNN$CA*r2MeO=-))qUKJ0#Yg?Vpo zvotX-a$$`o+B-<%m{0Tl*$tS5%zUrS+aB>Y0q~q)$&g2HS$z=zrl5wo<=b4m?cuf+am> zevDRGr+`nS^meCwPUs2KJHTpCK)2f&g>g`b=QcD;KR{L~SLr4+rF z*Su2GMEdGY0XPTZtu%LA3}o&=rqjy@M_}qNfkj%5;q>2{8O|MT-#6*ooZXTxgmX&a zFi-?x*UFrcxaM#(mo$eNT+#(C#)KZTTbRWYb_=t(|6t=6gCeljUqSC2j`0|7zM};# z=<%4)BV8O&*A(V;NWal@LJ!!{s5^$5-?JlNE~2@A&}tnBD=2x6$X|UCJC~xVBmnpJlRlpHi{R2xqP{CJ&a?x3Z$=%=3KS=P$hK@4&2i+fw4eJ;;EU@J8mn2xiyVo3gUAJe!223{k;f4{Dgmp<|Lfg_b4!S7@A zE!R8lN!6lk04FaOL9O%ky7!DT)_ax*!WJ}d+Tc?A+Bs1aA+F8eO zVtd{=P*6W_UCuSs4vZx-(0K0)Q!b#zus6d$ix9$h=smr5ohtbA7T6%4oK{Tb1P3GK<9OLgDDTf3@od?D;4^c6SAY6O!qr%@Jb>;44^mDxQwIF6MOP z)s*K^uf8<(LYD=CfCRjRfPlei86OH3x#NNxz~GnQH{uH_hPS4Nf2s{g@hs3E>89E1 zr*B!epFVx6;TT8hSh^({pW;n*14&D^8He!=nDI4`6-K-F+ZAtkZM7G)JydUd?YQkV zls{nO+Z9J29FQY{-GDL9@Y-poPLj~}I-Wg$|EO_b&@X>CngRTUxnK!Fhj75{v4 zKrMvAcyJuVIJ2eW;X?=}X@Jljn%vRgT@ZvchAEGh4R zwmfd|j{pR6Np(xSv;}kf!IIusC0Y3_0p87EKe(aaM83+|H8B~#4fca?bg0)>LPs97 z-lLw|R*~Q|%*scXeXX8PqTkt{eoUtzBh)L{gtqkO=2m7& z-INs7qb1qgc0sKc&~6vcX+E3KnjI)OqxCyba82DEDELlcl!FCzM>)8nSQ(uUT*Mca z3P=l{xPL{0nffU;N-K3f6_(;_rQ9;x%oC<=C^TydTY=+~VaZ z{?I2nSO_v68Elvwai(#_#59!B=+KoAmo}jH{GzxN$g&_nP2?iY7*BlC&k#c9_4Ajc zvjvKa07}r_&fa}SWxxJ{_F@Z~3R|*E%WmxD>%BcxB=|3TdpkYQ?Py~%U=m+oQ1qRLmVRRrKpoaX|-k!6iPryQcM2cAcl_O##7yDQM+6jYH* zP*LWV>qy1!GF%bgN(KZwl{^Dz%)Y-^ub~BUT!I*lP6;9nm1cFRX7w^y>Y-+rm8p&B zk|5UO&6X8=yJf|Ga|~fC8?wZb0Tw@I-G2Or_v3b()Y+iLl@?8f0m9788BOr!9rTjx8!&13ZY9*SOJQAxdQxW{;1Rbalrnk89ce$_+<2DyngoO z%a}a7q~4b=PkJ7q`|M zSo-@ADtRBY-Zf|FYOwN;NU)-Zb#Jc+*YNhbf7ELE2ke`FKo?+2V{IOX^hyHiy*J73 zbO%SRRwOisR8MShKyj9WLz*XG&Umb6=cdWn?clxI4$g!3W;-~qYzLS0J#Gi!!?|}a zGq{)_4|qWLf5V3l^n-9LxTa}_5ASHUiw|e?=y!ZLrPm_mXL|lKK0KkHPw?R{`s5ux z{A4qgf|ZO6D;XMA61YkMM~HS{082y*X2K-XX{|lxXlqOhmDhB98tn_#~Q5CZ3v%>4=Y+4}aI|E@}77bz{C=FMY2<+Ojqt zsm=5*iCvaM_$GkOcQT*5uUK{CHOya=eE;Q0nO8MMsPy3@GohY-PC*p9AKi5Ah!mmjZL zmq=#?*_GNjX`Q1SKw_c6vt~oT`pwXDVK9SOHq0`5E57!Dt>X6J;MY+(~`EyXH=SbJBuvP+hQu z*G}PeWePt7O=0=H6!tjsP?m*ubA&^=ogz`<^Fa~h4(TbF$%?~;Tz{ivEGfYxbQ0-` zqQ-~xEx&#-?~iH@9~41#C44T&=6Fnt=JQgMpjb8X+ep+DFen#z$#b8G#%(3@E5C-& ziEn)8*TjyulgYLUa||EmP;*{ zxiNB^TNeAzU+=zrMF3i-6Z^NMuYDl2NJlzKU@?;#s$2TRu>Q7b7pM7#4%x)_PLm?% z>C>OZ<;(-shfYOp#}-kMIvdnB8cSJ^0$Ej(9l3rL*BRvM9;g{nh&(%qGNf_@ScBg( z%-E64qe87iY0*>t6)rU?l^W0gV@>wbh|h(q1Af%h7h0*xg|*H6D)@! zN0{+rkS^5R>IC2GJ@aUhF7W>h@i$Iia`<&@FneZeYZHzh8yat4$x(@eKC2jBx`I8i~YNybEH7{*jQAsZO z{XtOVdl@l@?EgI)m4{9&;WVmg_U3^urt|@4^ishJYoaExR5ay}r*2)4cwa7Fq}DZk zDC(i}a{v@RW8DYw+Obsajj4lza!Vv3>OnRXXXit zgW;N_{gJ@1w$)1eTi5wRB92R2#F1KJ#!SYe*J}|(90LI(AEa7Vii*k*1?>5t3OPME z0yeNC_HGiO_l36HQ@cTMWJ^4BZa7hl`P0BJ{HcICAwjvH-$9Ix>%hJN!Ur3w$T+Bz zznR8&@&sK-!_Lnu;9aezP6Z@(43^CsP`ZeM^CXB-3;{(Q0tLQD3jAnO;3vB_2*lOl z@vNHb~U$5OOZ%&BFj^}i4dC#RxOeWe@3Q1#Vs1>vd zAQe#(#mu})S}ic@iLD`-nztZPQ$8h@3apc&THbeWFbLPwYI&e+h|3|bG*)viiT;xx z(>or|z*$d-)G|xXHr)uM2{G6Z217uN7cA=V?|dpPy_$tn4|;jB0z6LUtmtF_fa>=^ zZ4Y7-ZEh5{TFseot`Q>{D}G1lTs;pBl)PtNu+V(ZOz}cVrT1>63_cQmZDTec#bdaX z-+@R&EFwb)UoF7~8af$R-zlsq5XwM*KKz@xTy8h`64)j&k4Nii3tuoD$ zfa{;;Wm5gx*?kAKsewv`c^jPCTbO)9f?S|#3xh_roq$|Yaa4+bN;jxXm*8m`ON{$H zNS2M_3KV%_p!&6Ne|$MnZIyDL($SfHmH%GWP{8PNstA_pj=o%LlR5} zQ+O{za&G-xP+bk%Rc9$KkIc^WDopotze@%jRz;g{%1qk3|Nm1ZO%ZWnJ7t=R^vYDi zOJ3r8X>HuU6ucl^m`I2@bq5hAg*Bs1&7kKHzvgMO?58XloPv$4qHl|s70HU-E7=fD z^cz4L0(w~_u^yS&qWzG%>nW9bj2aT5pIKxXtn@8Qe`D=B0?Vz%C`{Ab$Fu|K-bM_;}?>x{|39|Zm& z`0^$2zkK=DCiv|8`0vY?&U*Ae@ZTq6(k5TN5HeWb``RD1e;ka-VC{eT@*^Q0^)5XZ znTh5`Hw#-YvNT5qjND~yHUp^f*RztL3)qVPEQKA8L8N$_ppb$;{$Z}dN)qqrt* zZ`>YuCiHXihU-|#a)?C`Bydg0AZV-_i_}5bwC+z+Ul4-hy_4Bm^%#KVKc9l9m(iz= zzC0WJKjUYYw8p^q|9EY2Y8)gpjwgo+8q(W^AD;oIM}%LpZ(qg3)&B2SIxVdOWssnp zC8ePlx1A%azFwnf4CZ-YN2Zqd|M-KzYr~t4oYuBSo_G{2c?hZTW{ONJLRfwYC}QFA z!~6&yNJrdR2U(y;M{m${!Mgp0Y34#j5}pIYJ6fQ>b>&hqBX?n&&D>>o#gfrXaIGfD z=@lMjvyLKWayRQpA_gp$Hk)Q#S0xeZ&9$y$B4T_H_!ce9{u`z4>-yh0xnXgFO`@aGY7TE49HR+|k zsvhQvqp8g7E2|-t;{?%wTCbSuk7UK@Ywe#oXo=%60 zMWs$W21Tl(xF5U+$6zkUAZ#-ngw;SzWiT^)KWWc5dSbD~vyR%j1_jtIPyMUMH~(L0 zy7xnS-u}V+0h_AY*q*D+Ftpf&g}sy9YX$P9WCr4>+Uv_;&EUzGXK>KgeKvD7^mtQc zIpy_QY%Uaf@}@iRyugdRdL1_G?iheW#R>Z2`-A3}0eN;QJiUo=jq3JO0*9~=N=$vIIvWgI-3s~AU{Tn zM+#OG#B!I15b$D4mO_+}HG63E!Q&a28hA8g-F{}em#O`@U=TE{b~i3a(q;?4Abq~b zxMZmoexY_&I%lHig>|BMeL1%Up@rNmTP=UymU*Y`dD|mDdW0rz27(YZ!Gl6=;Dc$~ z^F7Qr@B;OjN`f@=%iBoSY~jZx&JZxr63OH}U8$`Ub`*ViTCe?t`4)#oEJSfqW>#2nRwI^~=vXvl#*kkcKmm5X#r$XGEy%QTz=JyziL1n% ziO_p?_Hw-XyG>umbLAFW1)+sFph`RnR01tPS1wuWM=(LbaS0#WYuTG#+yj5I6(c;E&j zHt*2hyki!Q(lLN|!gcBdw)(fMyI%W|YLVXdBIgVgkzMsrtLlWP#J47aP%E1qx&UJ1 zb|w>iH<_?}6Zt-K!E_qB^v(lFf{-h;x{O$i%co}qj-=E{D{qH>HQT6BDM;^MOO~uNj&@> zq zHUs7{ZZdY&YQeu1s$Q-Ln7d&(7WlUk3YiPCscCmlKwv)75D5;T#Yby?ef(I4`AmvD ztH?tI7KCjfm5Z#FsTzw}Dq|I-t(GUENE%bt6m_U+2NoF3;Qc|MxjI}(cCYoZvn7N!BXEd6q39{wf%PHQ9OHpa{Muw30z>(&tY05 z+%Qk)NxHC+66FNGJA{%rWj0T~azED(&`m?;%YNiUDJDl^ga=%s^+fg#s zW&}gAS%a2JokSbQ&OnSkr;)U&sV)8LzS2RCgWm%V>ACLn5RmR@;(qwAwH>^HrBQoq z6GzQ9g7X$T^9Cy>tr=|*x8}Yg?v0$Njztl6u{xv8#@N&t-75s0-zg)ro8wVD>a zg|pc(o~d~1NY#A3PRU)Ssl7T^v|C5IZc&a!lKaZ%)$XbDA#b(rtvTOf#AKNfJ14yi zGd{1F5ag^B>Rqe(QZ_|&9F+jRP9Qhr3!d{v+KFPSpKXTDq&jDeNfukP`OV$0xRY5P z^48bR7@G8?T)Wv>D`|Y@Bsmr8{iB@3XSK0th{3X=sS@Nw`sjA!7aMaUlfzM8hTs$; zl#{xI8a+0kIc=7%@pFZ*O{D?!hAwM71uEH{_#3NzFu=AABaBA+vhW8E`U!OK6q3l6C1)-NAbBsIFW) z>c{XsdoJ@p`U{+@8{u54BG?drN&4p6d$Xahcb>oM{gbi}M~;!*BgasZ3n9elzI?v- zZwoR0KX5aj8W@PFswm8|=rUffoeQjjGGM)a{-*3Z+s~Cq(E>Ucm_&>0-aoiS^NX2UO0%HA`ovz z5DfciBP&)s^@)>1gjqBAMqHwE%l4yfPUcREGEsHt17Nf2oY?p%9|Hq)#qRXIFYsp3 zjVBNrBo@||An0^;uRKFxC;Hn28$^aj5&MCFg`WH1j&9`STCiYe4I(;^(kws4;}dLT z|3i|6JL|U6wC?pB0t!4zIH2-t$AP7GBzW{~TYu8~Cxjeo94vMqcg9->pVB7s9cxep zD#j(x4+W9pz#WIHRTN(mJShW}1G%))Ygn)D9QAO(>;|wc=C+BRC|zKkmr);eSGb2r zm-lIkxj zPL3P8a=Dk4%e`DlNh=y-o1=eaAN?1`(242P4aGzHk?cT;3^86eqR!c=8OHdoUnm&V zyJm&3q7A0VbRm6i-U@_CJ2XY9au+4mFh zTe#C4xQyB?P>%q_5cqn@@+W>wJ@M>;#jD`|F%=(0BCz)&?R%6%(xz-NWh@#qX15kl z4nhaN)@E6X8uC+!d#nHitZ44nE`*TiiNl!&tYLV_=$z%CwwJJYK7ywJp~YrHQRnth?DNOohN>H}1_;T{uEG_#v`eXi{4Ha6rRJulyvjjJ zQqCR8JHC8bE)22@b(~C-KNpyRo?KYr12q~@{1(7rj5gR+G&LGtP$l|Bb?8pMFd!O z9r+m`do+ZdNdwI48d27eO_((R@FT^@w8w|%D!DOF3MdXk)I+(dy8PgRz-QrIW*u|L!DGRfJXvX;2I&y+3oToS+rW>KP+7uvS?s_`XZ!H zhYK3=NU+=Ob)TcGznTk9?QkJ8?b56^(>x6?t+MvO-KHj+n7PR^nQ@u(6`j`CnkFzl zsmRuQ0Xs*1Hgt`UrM(8^@|tWa%#zla$Y8&K-JH-;W|&!Q9Gh&*`c* z8-zfSSzgkM+ANFkuUnaAmo6VMonS!|=1FRcubk_@r$SI;1z)pHl3qTWCDZH~!g)TO zaiH6@bCoX_gDAcMB%nBFUKe~QZIUA!GvN7g&u~;-DVre5uAr?8N$4UHjsS2C%n+A_>qBMyS zQX4+T53&3VS8q6*MZ$Ecam5#_d9hHDy0ebA5yGlF?W|n|qJirjkN+%q!9OJFl$V_n z$(??GDy;qR;!>MIDHlpY!CPj-{d{xe?JF5Z!`9xZV7DosXY7_*YU32_k#5XMKYugy$=@tF4BQODX>MZV+-<1+KC4%y)W))DwQAyvb7gq%MisyGU%e!xZ#S+}8ekJ& z+f%LZh}*iknarwpb*Wfu;#J9>^*t0lvE*1*HF&6S> zPLzErQeGP4rVxN$vpW@WN|;1^XAem1z}FhQVIi0WpToZi;yTJFJYPU&Qwq3fi;Mtw zQYf4gf(Nst0)PB+^_hi_tc+0k7T^W{;dov;BfdL-+zM;HRU7jU%{d z?~MCaVbhH=XtS@sW&{dWdSj62N9kDgqOfiscTb)Ok`F?P5j#0J1P2MuR7P>71`(Yk z-(v6$(QwaOB2QI|>%c!OGsiN)GI=h`Ri0q7blwpUn~m#@FE{dv4}*>fjw7OKhIpHf z^Sx4g-g(RmJl6H77r?`gr<|U>Ctln4ytd=H!Ge0vjYdA=W9h>HB`e?38>KuGCV3GMa4 zb!ZpEA){T$3GDk8J{=J0dhJ~Z41N5G5`Lj1m-qH&&v5`xV`K=)#QAi`i&l?GTxPhgY8QowCJF$m&c3#J8fAu-- z5-={p7G|tVb7tNLdD{y-TE>9W7Vrh@_6uWtT^MOY-u~)GjE{;jEl59Wvrm3Rr#PA$ zwX;+?Hh;?QiO|LeTl{YQDO|*L>vt_kSx+&l{7$RJh|}n-K&Z4PW8f-t9M` zji}J}3F*v|nD>cldn7T^pi|W8fZiI-+GbJdzp*@fkmEs8 z(75y3C0&QGx~B~=yWapbs^^h9>C0)2^aU_Dx&ctI=ao$FzdA6|_wG)Tmw*-xj(q$N zPOsYG>-nx#?gyowf)qK*R&-Oj?%HkQ#LKcBMb)B4z&pL7`z7jQ57$5j??ALq<1He= zKz6Lv@?odOgT&k1S#ez2Tw3l2^ka}Zz-0-1ph&E_TJBFh=maP5m1JqsLv(7#`PGMZolgMb9SK; z!S3`(Nk8|5-3eYwe5}HM@HF^L?HBJL^&pAo(PeO_?st;Qvh$sY!hkTXEEfmKIPa)@sNahImK z_u{!d&7c=DtnxRScRomQ1j_tBNl^lu!jB^5Chw5uoimh4949l*3iv6fo?TIpeVq*t zPKW1{L$G=HxPNpud4Dqbcyd1Zd^Vh%oKF5Y`8@gU@aSmrZaDdH2v!kKsB476?wK98 zS3A3VloJyn(YWgiu!(CfV19sy17=e&Y&JJ;G~ZQ5oEA)TkPk5Bf^P)A4lfigQ;P>< z%^Q^IFN8c_^Yn{ao_-;C`o-8FV&|j9*b1aM9RM>PK&sdv7Wc6Hi)}3bg4`)qe_z35+(ul78oE(98eS9b4YAxZlTE6ffDL|%w(YVKx`JSFrV#H zA&0xShzmM_UcsPBi`J(-I+6UpZVyQOYUkM$v{H9HP$q{d4-5qe)-cDC06wE?Mrskx z&pxp;NgLGM!ri$4JCVo!%*1%%(+Z03jf5bdXD9~+bXNufRWND~F zcW^8IuIV5R^caJ0XvFZ~RN?)$U~#)~Q*G0yP`-14g&H|}eIP_G=_ghPV+<0G|7hZL zdateVc)Gv88QQSbRgG3t`Z|<6r8LH9WZU~Lv z?!YxI#_*I|>f+kHHh$W(FKpDKAcFTun~&nBy>YN3f?PaM9H6>*;zN_x8iy8p0TUt08j%b}3c3*Cv<+_oG2w>|)u0LxuE(is|MaKH`5&K3RY^9r3M&Xv zl5^?-UWG>ne#*RMk>wJmBgFe3NPUL){Xk`eOfWwt9;!!3!93`aCJpY8M(X^E zpn7NxND;K-dkS%k8O#lYN*#DB$!U6lr|an#3`frU!PN7E*Z4sfJ$+=gYNIIHUZ-)Y z@Fqm;S54i@oV{-B&(2SW`^S?{pU-}t?0+~Po=%1*A4G5z9xlbrn>50C&eI0G(H|ZU z&woC7kJpdG<4;G!W3a@2@6{pPU{68K))0X=fka?FqUB03J$&YEDlIx49`B!jJ{?XD zj!w>o9`!z@d>Q6N${W)~0_x7v7w?B>=cgxsY-z+n7(<;?gdf4ih)#tK(bdMcFl)?s zmZ!x)Kh$pG{bEyi$xx-7Q6xW1X-nJ2m2pkoIV`_ zZL5~7q7|nS@+F)>#Jb9NznvbQ57o4MeD6{3TN>qDww%Ya$`>C$A03JHdgf8@IK0IQ z#8<%2iM5&maEa))S3?t@KmPLZ@B`+4q zx1Yns{A9(!F^qyluh~PHog!1^+opb_@2kuMlxF8qzwJCu9V%m~VhLBC#8d8jKJ2@mbs=3{=JZ0f-itT_-1532b&y1e=g z^s>icdhG%9D_lY04Y*=!;NM0a+Vjov3Cu>X&&E6W7U zzrkm@aaAvcixb;5J^kaJ5IkiWKozvLw?e$*mkX zd)-&N1i&i&-CpnYO9+M;`>%Fhyxb$OIXF8X#!JELJL&uh5#>8|j6D4&U(|A$5MREt zot30R_v0-LggJqasf;ju#+DtlzB)aD^8Q$T>W1N)a|l426r>1-5J z`!^VfOFVN!UFX=Bl-w=YV!e)i9pMA4tmu zOqnl|Z{UMr@*q2*xe*@E#QtHDpiS_J`kmdzQ|-_db3QvYOcJ$%hE>y5?*zfvWeTc1 zgILzZ!m1mo*0_&B!3RLv0?>_{1j*VJc_Nns&YAUFWH6_NszIt$hLXiMHbp9Bz4nTH z{>qazd<&!eeHuow8c{hs$4SbqLeb>Y8D&|%G$&ENTP=UKUi&kM$F%eE<#W=>NU03| z4KVxk7o=36^=4z+l;L`ImqGPVJ9Z8=_{wstcNRsz=5WTgol779syxgL&n#H$+C2p_ zIVZkkz6q_(F6T{uA%8Rdh9Hi+I*m!mVoPb!=e}NH`?J}>RS{o%DhgX7bbL++EzNgM z3VS7d^f@hzO^3kFJMs&f1E?E01Kbnyx^Q*|v=We#s_quS&wA~CV*t}WDXs#fSs*R5 zE>7#UpEEep2~A01E#?6<2xe+uGb)xRBwr6cc)CYamR`*q_q~CiyIX+Rf_!fl=Aj4b{lHfrwOMX; zde94E9q4|L%dOl#>~xyEry~T3*+pBePavPBUrYF%N0!f=y4n|rp;$*%M)$Q|b7xKf zHIsj9-1^>Btc#KQo_gvw<{9?S8zZU5TP~Kz|GDeTy|;wwjik1WhprlUJ+%6u-m#^6 za^6nBvQK5u&u$i#p#*q?dL}y~%zmA7umUhD?NHiN+#)rQY6O+phi?1ma+sFSID+6| z)|teaV%>3D2ds7k(INE2*nC4My;9>PIoB!I^oMu?HoLgCosXmJlQ`~coC8=bF{st* zmXmRFoZAhl9JKPRlP4_c*As;}hNZ=R>8(D6@A*_`GT0Bb+2!iL;^7SZjFhPtOZy~( zy+rJ#X$Q6%2sbYv1|3+V`VyxL9;QB_815&kUqJTOqj11VStP3&>FDsF#On*oU>&jf zg}GN8+V)0o*};IbgTUucpHjYN{O#MfJ@v4o9$u)2S31uwa5rYuTC1y%%R;0_GM&3w|2Tdml*2-h4h51dnEldIbS z_#xu?2WL>V{XHF1StkN3QoRUt!7LG^oQ}b?iRxC`+~&RqMX2w+(veuLwR~u9Yg$dg zk|+qRZFWW4dP*H*&C|#CV&Wm#jy!AhG*C6SFw2$zPV*B0Jt}g*1}*sxORrMX?p}2~ zEb3R(WY)nORw8Knmm|E9R=~M^>A{J1EH1>y*A&L(A~?0vvp1&^}Z}HM*#Afk(d!N1Ig&8qIG?ed=xMqA)c|5Eu2654Z4> z7&%6mdc!{w=NC+a`StWE6@9ZafIWs_H4)5I-{zZLoG5!)y}O4X^O~Eu5ecHaz^1IX zu=-0kbet)1J0IBX2rA`>=Dx+?*rE{MqJz(9K4NNX0LkRh^txu6HkOgHrbDMyk`_y{ zgc^E$Ql`fzk{*2}AfuW9hkwkG(Oy@w>k8V{olj^728t0rD1Kaf7)mVTxOB1h@w3=HW(JB4 zdRu;@8Kk#e0;4DnWz|*LgP`Fu82a+B@?&ERe^J*ksn~b=+&7JdWMiHIAilm`7<5n?fb%z{fgr8c-1o%W#)4;ABfkpc#y5Ds zM8S20cg9%htYfwL4df_A@g-QU;cLv@BS8cKGJJ2AV5{KbX~aHVzF@^i-Db_YL+kOXKgJ}B1}Yxb#B4dtv0DCBAc!EDiy zACYP==_)NFpkW?o3?G(PP^8#DEd7ymAE-(TZ;e z%8qKK6UtN3(nLsq!)_oG8MoXN8$F#ok`I)RWd?ru&aHH6FN|Cxb( zUdH~iLjVK*5NvHa5XRh*GgM(9zX?^|mJsU4QlUs)0kIITd^9JOmNCFp*1n zwo2lR(}q+DN6wAJ{sn@USaA6cabD?u$%)DdUHbP=BTH1MSX!9}~6a!YM+E&0TQt=MCy#-q`L*>*}_a0o*n)($S zk9b7N-xvqjQaG2i&E`_rqv+cvhC?l1apDkhNDIVr<Ee|hl{-Q7P zKUm|_dq>D6i6pK)h$AP9ZJY!v^gjK8Aa&SS27X#29T2t#_Xr43AD>#1Rio91Tbs$; z#LX*p?pHN6uGh8gNGpQV)TXnv&h!9x35&x`wHnUc@b%qPvfV*yn8M02`xaI*F4Fz)WPdYk2jT6mSb=+DZQ4_&RK?Mbg@0ph!=o(k?$ zXnl|G8>%i~J@3(85wUvi$sta0abA=AigHYF^cVG?xVANJ|GuT+>VeQImHW4~^CIS? zU@wvHvIa_sMWFl@pGo`v*ft;MyFBM@J@sv z2TmR|vP1ExJ`y&P>h1yHvyBKw5{)l}Tl@dZ-Mcn7u4D;ff2E4uU6+tRiKHY-qKd_a zNJv5#Ul#zYN=>rV5SgOTMFPA4sFGUAiSh16&+R*16ZSa9<1b#XcV>3SyBjfKd%d%d zupQC!-9JM6M;zy5CLRQ&s(Ytr?Qleu2qb`fo_C&eQsaqQMzzO$2Wog0SpFKkSoaS0 zijo8;JELdNV-DB}kA+A4@Vo0gehl!)vGCXDmO!qd#ju9QyDy3`6%mlZpTitXtHad}*&#fs-~C`8Kk5 z@MlL4_0Kqk&q9Cp&|lfEc~3bWTjKG0EI7 zYUbHROYNMRXBS0zSrcxDN9#v##?JGL9OD`L=0`k20T<@^z!)_iU&cK0yto=8jNnX1 z151`A9f_}C_nfH>VLi1lE6elHY=-n2$dzz|%(iLSaWAyIosdXDE$6mCJ7p`4nIqR9 zt{sk@8GtZL_-ev?N6U=xrnM=p-D9YkDGICOh@?w0^gVh6!b5EO;hs+yOJEVrX6!x; zj$s*N;^7Bmx9dl%~eP z(;&Fh2g#00;+b&(u-Iu^>tK|?%h=m)Byq2KK$#)81_f61&!F0zR3qX|k?0 zeQ1?v?CG!@jN-{f?{JfMq5_2Q)W>ljt~CN?U*)}s#>ifr0ugZ=d5y`>z2wZ^KTdb@ zUUE8s*8E;*&)S$%+XHcH(>lH8&e5@9f_p}MNcCWS6^pRToTT%`b=sAWS1AX{c>}kJ z1W`+^Teh?1GUJs503`$xc0}Sz#wge?Nbep^(@}WhT_OS?@a|&wjLyU**dOB=KC4y4 z*G<{ndK*XA+AU*DvL(B<`w3ZiWDJRpf$<-f_oWr2j1@6l%Tx^4_zPpWW-%9+WjcoI zD)IR77_KotuqlkTx_%B z`qEG)!8JY;%5)uuGCdMaY)K*bTeAkH76^?N;YLb494TSdNW>}$cZFEkO%&b3v()f- zY^Kw*Of4Ke6GgS>?hgtFN`_y-kmKDQyWR&f5l<6wQ%wEpF$-Ay8`oLqInsTH5r(Ld zP=Jj}W+aSAVs!&!_-0A`I1QRvJ`aG-db(hN8k&^;27o6b zo^X{y36w1|FMUL2#b-CkPj19FH$OO1>Jb4M@G%mQ;jYF@B}w)(W2@S6eU9f_M?Z26;7?Woq=--M78)2+GjG+vnTcHFlCVCAZ|^{Q0DEJ zf;)wGniwx3Y3yuAIRL~AlVMr4lRO;i8PoBPEbw(>2m@E^+@8|s&N^sP`b$PTy|iOb z55lHoOSUD<&dn}YnMvmzN_8H!6|H}vAVUC9f6e29y?DPKJQLCY+{H);Wns7@I`2qX zp#f>hrWhVex;A8PX%KwQVV;?{fzX0ks(@@Hh7=V+hHP+T2~8`Osi-JpI(+9y!h`Z0 z*rFkD6L!BCHS#~#Tr6U_s^)OoE*L<0iiDDG0VMBs+iwmHMncm!#gU0|vK)k=j zEDIZfAkqw>hCSr()VO8n3F$|AguK;?NZnX$g>xj5FgaUHmj)d$RHSD$<|crrvR|!p zl4UH6BBYg9ko!%Z#pW!#8-+qd5qV67VDBur^%&AgNZD`&w~DG^Q*Azx)?gCN9Ol=Ap&beFISLhyY>XjBu4jG6TBENq z;w93TD9s{TqI2+a#BuUp(hZF0N`i1gJ@W(iwi z@hchq3g;$By0S<4{@3kd&pmJP7}hh{de-;Jv&T|{q235lpgB3$RC~o@aVG~D zI=1lK6gWvN|Kye*->JT~e2r_MnLGO@yd=HH9s6=r&s()Gd-IXKPg736E8k;^#EjDi zot?3p{f38|tq2G!3*tWmF9bngIu%3 zwI9IsjG=P9&4(>j^A@E%Tpmu|!FZ3nm!QygttDQtWWrCDu#=MobRcz{`Wo0XTCusA z{Br56e;fC>N`?|WC!wI57ncy@9jT7d3nWVtCRviO@WV>>%ZJn7lLorA(?t?5^Vk`&V~)EF#g=eJukNOHfKN3i|>W4RQ~|DyRN z&ChS$v3e9DV(yxx^PU558! z4&XFPsR~YqHAiM=K-ri-@}N>G!bv(z0LkY-P;@@qWKB6>0jpNLeEN3m#@_^}~3{Ad?A)~y;p`f(8pCLXw> z$iJc%*_;NGkqEu!&w$MnIC+N|v(Wm$u6%wKBtC`K04*Fc^=31YYwT{g47oFrQU0xEkTNEBKGgIIU%;9gA-oOY)6)%TK7KGBZYqTvg>^QTl2ifccLQW zB69_a!BsRH_TwY95uT2c)ni3hqfi6pJpo>{TFGACma}|p3LmAuy-?+D+*wBjaAE?&)v0f|@7J0a0=LZah@LyVqZ$sB1r0=TLYJ|#vmA`}iFw@Ktz=9l`~|F6aEIhUoq)&@ zb&Z|Y#*ok#%lgzixJiw^^^i+r77#C=5g?FRLzDPp&t3#B>*7|#>Q@p5eS&Wtiy=Us zkhYp(rfgv$3TmaJAbpU1AkF}AYHWp~qu+v2J$_TYUmXQMDc3zdDPYoiUX-@@k&B6O z@zZJ`bMQ*4er9-nrl4aJIK1R@pXMQ-W2{Hn-FaM)`rOPrxEB^qE_wVwo_}DOZ9R@1 z{g0DY8=$^?85s!q3M}-Qp%;pPBec zn4>)DW;X-h_wr7qByHJ_zaZm4zN*b$yqIl`mww>RDb4Zn7_A81ddCS9&VqX=azEgR z0>$mLq7IUm?%kw2I3%=-`S=8uJ&QX8asQ?8jGa7@2Y7yc4k$oQP8$mO`Qi{fRVA@K z`=eNeuZs1sHNKBujd~Nrx)R8no3Rg9E19*<6G?ty2g15nMl5iuScDHro{M-jmf8oq#9t}g*-o3z-}+5BnS_ttA<6Pm0OP10<&;s zKvUd^6Sf(C6*cfUj>bWx1o7t#8gP%RP>cMOLYNUM4_hj$MqUY*_PV&JqL00WxiR=7 zZ?k4s;ZJ;Gi;ym0+*=eeCir4JI-6eRY!S@$v@(|ST-E&9LV4;A6!?9GULG-W5Ag7 zL0YXK|H2A35Ybcpv*&e2s=4g`fGpLr{{t+Pg3h><`t^KJ2bHM$h)J@Zd2m$BCku9} zKJ!ZEzP}}lotf$r&zKpbn*SlWx1+>e-_P_KeJAV*JXAZOsDj@wsoU$*Wj{3$^-Oos zYTo|dv**Zm_SCTl)gZ%74_#AH{jFv`TS@EZesL_Y`0hX=bOR$*z9_3v=)x`WG)RdB z!w=R>7qJh7GY3D#Fs?QJu#D`&(|qlP^|MLR)|AJ;O&oRd17WTtKYBvj6Au$TPCm^F zi&%Rl%PT)!%ahO7ocPyIg2hwglHr6Y6*2U(Or>F5-w8vvzL<9or5-rw#7gRse@+1Y zH0y0gO3yuiuNuhVZb{XalMyvlceRpX^Wll(6Qfw8t;da4YsZ2y-u%3Dl+L_>5e3qH z0A7ZXio0$Pkv;Cx2-%=&#UuNrb7W(3B6}1wjo70j5>KlF8ftun;!#3w!tu=~!5OhI zl|`nLzjf()S%>RppZpXCm!i6hdW3Yud>p{;@6_zPL#ZW&&gEVhiO3R~#Ew&pvaQHt z9xj-8Gdff;@|TilaV3|;K7v$u@>L4d(he#iCdi3X1u)Y13P|)49d%K`mR9n03ZSvd zM@_Vgc%@6I^cpH1Cn~*6B*<_=bzWM@^K}=CPyt!Kc=7zYp8vA$Fm}%TLcw?!wjfo< zFJ3&qs^`C8rk<{c*-TgRG`S=m`39|~!uM?=twJ#+Pb6p<9*LO3K!>Az41is9u&E;Bc zb4gws@LGzwsUrZ8lsG^&%Wg}ca0)nzizW$0Ne2Wct6 z5rGd9TCcp9!I8JQDLDf#E+u#)o}=WN?|&x`Sacw#AbJqtRhWPJWjUU`LHI-XIgt$4 z*_vC6_%5v{LejjKVIJdfJ!iOC>b)w;@s;IiA|)BluaEXjBpEU$CJJmkwLpsUEE_x8VBpc8@P-JZ!pwiB{k!p6`2s@Af9uiaOJI^;BGrtbA^8i?Lw za|GwsTe1_|rg!;nitV4+4!CT&(u)^uE4YR{MlK*KWRjF9bzc@)Eq=|aJJnpG`P@;o zXkOlz-Eh+=QPnCVSg~HJR7;hegWb3oy&ipE1;ZYu4G@zPy_|WvEEr1mDiww`iRB2k zE-r}QcHv9}5&woRj5S7RcrZ}LaqB79%{r+P&<$*VF|+PE)*RJN2Y+)7cfNr1$U#mB zCr43J&PuKnclOhU9L5Ovj!?AEa&7ssExMz1Ra#6dm|*KgmckM@11K$RlUl8`9pKqQ zFJ1)CYe7QW2K)hFVBvDy%esg(jjd5Ef`i#BSf<3(Q!jk#Md$D_3Xt4cmaRmACo#(& zL*3_aUSPtm9!uNj)`~~&OY!QF%X0ZY511h6$q+mxLF`(d4B&bsd+b+=>JlT2L7TUd zcPodxhfiW}W%ppGB7GV3*flQ?Z0exABf)UlU2*pSTov+8zEnOq+ykG-ypyj~D&>mA zk9bUbh=@d$kocLmB;~WLiO=&z*@|9aVLKq-$Dqz#$=LMod7%5H!~G%-G>tULj^|>i z0!JvsJ7=wAtmyZFvYBpY5kVc0Q7wQSh9pMf68)a%2C-a{#0#+oZD{bIyz~2Bj04Qj z2BKhPzkIm+eIPDF2ogv8A#^b(r4wr$xZa(V57WCQzKGGLXpbg43oDD>SS4Y^i4xz( zB1*z=h%NuxUCt&Ub?q-ER@{#|Mh){kNrb!bQJb~4JWwLNjI4}a>|JRkJFC346*eKQ z){qEi@b?WUz^>MiD4u<4Gndb8CTEIBn>i`BhC}6pz2XywB|Jm@aDRXQP}=&YapbXH z_1#(y>{Z}^Fo{U|N86dWA78v+zgrgvTY)$fkd_SL5^HS~ARBozxaVhuD@#0$krhyl8xozUbRp_(nGJ6MtDi}uPMPA}!{v?cFB+}7DoNVF1$rei__i;f+p&i^eK z;o3_F*`qszetCEIxSwLx?7W4cFR(j0!_v|!La1d8Jd9EfrTL-^&ZJU4T!0u2zWMS6 zC?O=*h&;{T!z%APm+zb9sqhM~89d~rkS`;ayr-Y|c{yxYmlz*oNIaS4(@94oVJjV!_ z?=xDqF@VJz)fSKiOv;ka=ZVA|sm+6cZyuo2Adp0Yv=9hkOiBkA`-~%CGu0}7hO2Nk z9TZ2^Kv?OYHVMT|1y5|QNpW`admY?U#+S&2<&mDr-eVh;Zoae!VdE^ok&!@WOI*q! zwal=CJl5C>GWQ0_y_eV`li#V7_V%PBo6AF!+WqR$?SX6X#kr2G zXgty40$nJskCM^6j|dx>0V8I&O;D4ZdJA5vWb*76;?rNCuJ((mXU*r9_Y3*i)D52f z0#(3Yz%E{Rro`6Fa;8gbO8h~hfzgW>B)>?<5pz={%X1k2T!u3`(c>7m;NfgSAD9Z7 zc_rDG;F(>^d$si~oV-^9bd>4?Z&dXJL6@ysp>(vl31_oO?f`h-sOAowQ9`VYb*aX( z4A1Q8HRg;<<=K36(%6f9%FtCfHDOR+R{&&fv9%2B8S=1vAW2dF1s0N<)p+nljl-^0 z)OHZIJz<+G@#)5PH0|Wx5}Tv&Gu6 zukJ8a4nD))$bmJj=KO`_iaI;8gABlTcEnoo!VXRH%#g@SN+NHc;t6ZDM zipivQBQNkE$Ckjb+MRrvUrO?2ehhzR@aGCZ1K}GpMUt8-r)IYHaU~xfR6euYiNb~y z3!L`w*hSWzJaSvyPfHY54t7BON*3;w4iDGM4h}1asTa$;#bRl_uyjx?9jq7bRCX$< z&v*8~jb#1v;_goB&4bD4~zTheje=XmQoE>_6~}v&v$k*R`Ou4c#xjr!`;$e#)x)PpYQGM z@27#QykAMxxx2HsUrEE!{$UyvcG8U>6pM%H`8X`4tE`l==6G*+H-&(^8NJ*;D5jTf zx0unR{ljAF>+(TmFAau!dufn6+^HPwr3ZePhU~+g3{)%al+*LJb5Jg))&fNSN_sXc z={k2Rd&ShycZ%ioyzdoD>G>!Z_Ycz)rF57^^@GZ8dVP2IGv<9SJ;jwuaW4&;2M1|D zINU3h(*U(}jn7dubwfP%f3ykXdh!1xTDtqZkD(2=gQs7msQzvm4okb0w9K|s%z&=FVw%nz z>>s2V{oz4zCqtr0ukT@TFO8RnJLO`=yd559U~qcYc6JU9GMdSd2=?~V6s59TPBZ$_ zK`Bj;_KOGUI(N(E^mumm4|mftd0I?A*f~hcNBet+I~n6Hr@OwpTS||7e|I-ciVqGl zB%D&Em~Loir;$vue?*>s9?@=mFk7FQ4UGK?k%`^B{Bpi(NP zHIMRcB}0!pJV;~uZiXqPypv(@*#QAOy})}JW{+~lQXZ7jY-DfeAZ6o>oew6a^;IY<+va%m@nRTp%`ZftFA&t+ymt#0Rk zLBEpn_3CiAMf3IN!;&<3KO7Fdp)-;;hNbPf%r_+p0hupmRzPyq`-KIuS59?1KcK6T z_#8f@_x#g*y*8ltBWYWnx$cKca&0>k*gr*MaCn~HO3o2?R^Yu$)cl?feJO{1&8$Iu zvywlMyN|9niGMuw>2Qm_hn^V?P3@T4iPjJ&!z*wC>c!7hy-SUT(o!Maf}!efpfq}$ z>g@*ju($git)YN-&c%tMwfeeB)lRdZcFvSe1J8Rc7%F=2P=4C$d7;tOb=Bx~JJ1p} z`p2fOG|aW)H>wWpVAX}TY8c9?N}Jjnt*NfPnblUKuj^{3aemS0cHXEuc&KBKjdR0P z+hJD?Q_;;r_oQH`Ez!&FoAn0ZLlLQHn2OmqXrphK-L|S1PWm189gMnrQfR6t;PJ#t zqJH(dTF0cU^@94Yq4wYvgDTDD`gE+#ISsp3FdDk5;@FI?9_uo1Ix1*&6)frL-BVp@ zQ=_4GTdl%zx8G?h`gyEMQ#o#_H0%(+56|jVSTB2uuC!HC)%kN>J3TWCKkFL+3Tl(~ zJDM4vX{B$Tb#=`=FEq~7#%tQr3==xjP%#Lb8ro^+LNP9SUBf)l-qA+4bpgl!p6bxU zwdSeTF;)FUX{d!>x7(tou5^r(uHNQPn;aq)F&D9Ur!B3c#wG@rMrmn3XD_$ZllU;$ zdxb7vo7lvwra=?HPLqq)R2y1bXGezr! zcLI9Y$WAo1)hrn2?c;9C2%jk}%{-?XOs=Um3r)pTlU<{YmSPwMcGj{%yM43QHw!Jb zb84RPXY5#Goac^us+igvm8!bl)dga)reXej20c?-y|9a&ZXpcvfE%;h>z?%B8(ob7 zds8!dE#?lzGEgo{SicN$DayRCGZi6KI53^EZW&bqqU?6-Rbtx1&zfJ(31(i-P{ z2Gr(NcpvHN}RNisGL|E!|brX7^ z80VeFncnSm`{8RqnN(_aU#lGfG<`$W!|?#kESxc#NtI)zS1`JLy`j=$T~%Ilv}bFs zb$Wdhpa^gqXY)jRr#AUJ9rbNUygJ=Z0U!;gvfJRKOf@J2I77oRF;W5tXH)DXAFFbF ztgCM{#Z;Tnu3j*^g){Y?pb;lp3zsKGw%%xZw}Z%{7)H0D3HWYZh;gY+&Ft!|EnW`- zfZ93LI;yI}JF(-v5n($9!zo>9YTe_$X?8mi`O{2lc6(txxC+e0lPbMlE5fl(LowA3 zKs@AV&^pRGVWnETtu|q}t#g1Ugkb1TPgh~8wHEY&xdG$*re?O(0+0oRLX&S;mB;6% zTIlLcRp;P_2-)a%I)b4@)GZG6YERKktXO^5({w?w&Qx7PnBw>aFx}~ffYMWSAYgF$ zbzkkPg>I*H&Zw%<1AvS1S;la*&PkUVrrvKr-XjFh1_F-3KoEyT71PwU<34~nr}dg@ z@BuXyQ(*)ENN0;So5SsPd$@gmetr(K+fW%P3lY~~#Iw=ucT5Uz!WZ~9htIG3D$U|k z2KJdFqR~IryM0sZz%utcd}ZN~c${K`D!OK#wN+DV&=?C)JI$Wn1!hlU+)~hbRi|2~ zslLN?q}}6|cB+_N{XAk+2F!5-SjeeLdwt`KgP^V&-BzEkXuH?#U?-cZ(rR@Z2xpqX zSDiNd3=~x$C%R#>)?f`e{B*hnPWEDGidYI00fK{S_Vo_pvC%(nD`w+NH8{E=CMw~y zAD{OW#vIj7v)yg><7^qOT78C#?*zHhIt`t{G**nQgyV-R;B>8XSfUeE*AWj+RMAJk zh^UK+^`izrHBt~53FnPsNvWx|Rl`);y=WDYUiTOg?e)}76J{NTbJ`JX2N4tJT+vxs z$1oL~e5G@$>Oga~b~HA4h%l(0aGYp$PdTmpy00}}BSz@37>GPEM)GybXy{tcq=u>X z3axIpht!6x8Pb{-tTgK>_F0H4NHLWL%wGr{(9@>iak|<-I1538BRHGMhN`{c5-k_i zlt!bghpgA^nhK+!tS_+A$h6^#O+T!!!o}K<>uMdb`Y>pibt6JkcJ)SSaeOtjpR2TY zQs9CrN?lEmb$fc(R2wG30kU?yGWzXEr0cbS^8pjXRW(!?I|__~^5ED^TtVbFZ#4BS z?eyE-6PP-xG=HWvkd<_l*14e>917GXBKKQGN3PWAs4asc3qJ0G_}4MDPG6-BpqdRJ zPKv4E0!LJeHv76D|6H6=J58i*p{Rt=f`fpmI8oJRjBwHJ8&yAPb>H%p0-%1a^^jW_ zU7d>xrUD~whFS?V`aNXWFkTpWkFk(rMHd83rTq>YCVhLRcGNej&c^?9gd?Q|#1+Ly zF2R6^YN$eJ1oFcXRP8k1o*{>R2k@nt^tF2awyQS{!AK0sgr9B)q)Z01d^kGQ)sBKp z1yJoe)R|~gZK);`YXOsvkt!lS;*wQChUE{H&`3Gi-O8jE;lc!>D+V3A+HNJynNs zbz3cf8m6T&!~*F+ZBkqcSRDYSQ%+Az^&L#Ft}6JlP|*;Wjun`2<-7%8&N(;?Py?v~ zXubAEGZ=6w$1MR|Ah%J~XebCIXNul#0VIH|gR7%;P=ruvOX-~Uf#|ih4j&*_c5#3x z<$&yrT)NjaF3z;mvyjeG=y^=HQFTs?yE<(ix0QD-wL>)%X1A+TMQ@xzo5z}2c-PgL z=+fu{g+U6!0gW#w4p!;6Od+A8^w-tfuy8nqT;oS24X_abrK{7n+CBzGD)fpDN?@nh zeZV5F&r!jrbwx869R!I$<b2uv`b*s*H91=2My=2T0}m z6O+75Tt?7#5CjdCo^*AjC%}-QpJ!du=ygp2bxdP2RQg&~arrvk0va{C$3IgWrh()D z=A)-HnNX&f0HstY&ANJ`s|KtR=ZgI{LoPlKLL7Xnb(-C`Ob+YzO&nLJYw~d^?6;%P zhQhw%kV;Xo0$y?sSleKb$A|#(EcKn*fO$C4HDC|)OzAXRs!oLv$#q#e+~BH3t9yz< zMO%5Nwfk*=Mf?S^Sm~j-f<&sPE2nJ*7EZ&3>FFQ^qdwPfMB=hw6UZc5ra^^D@>XF2 zgVNFz14K<6D3_r-1_eDqu)NpmIsEq99YaXdsG`49VZbKJr%bp}xy}aETsO~fpe zt>~v3*qBhh>o7%}0VM67oB(+1YP*YzVf5Q7H54XMpn8QuB3HxswT6o81$_U)DdJ2nB?PDxAB^5Kn6YTp8!EcMxk<8L>j4?T*0J` zZV&Y&gag`aw%e!@od8>c1y?u|P`PwQU#ogYZPAu;4hY{;PnE_wZK-cSs%f{IP0*40 zKs~uJhU(C`f#NFiX^^=omk|vWC_1P3)HqXsJ98_75lSVX9~u2)z$c@B0!A}@1j`R= zP0!DvVJ>c=u+{I;WAy}9}z_2gtRn(`LWjKBsECXCkv~cHwUq=>+g$pk7q#u$5PU`NP6fCeq_z zDKjK=`_L9HJu*cAZ0IwJ+SF((x=D>*O9Msayrr@QrRJI5eM|ctsG;96wHEF7dT?!? z6b?YZ)Kx}#*+L@Q1fxaQ0PqBcexd@Rpvp>5aK@PO)dDGntr1%Ws;j5!JIaK8CYvzj z0!`hNiK0rYcc#$e?mLhfQS@VC5i_7M`MUwU6j9}bs$ciDHw;SXNvqq{8F{3FN4-^b zrm)gZ7i7a8lWM_aiXwzcnFWBEQn@*#*EP|q(C#rsl$wh1+F+_EHTAaApna4g`yHS$ zNEYZ@t!bV?f0P#RkW!He?6B^~6h(-Jsco*Af{pt|#T{BP=6eFY2U57xA*pFsuPw-m%nL+Mcy#cGAVYqzMdb}105bK2-o4cG+j^k~0FRjSc8?b4sq27MoqzkY!0_;u=!dW`s>@Q zt8mv=)S6qX_Qi{O=9gl7m2axT4lRa%#VQ)aYx)QsEWE1I+ABKv1A4z=J^J`qy$jf= zURoG@x{{-s2Jq>2=365&(wEK?UbGY*tJe*>#YGo zp{W9Sr*H7vw?ibE)UcDR?OQX#K{-u-QWV0}wY|`6- zQaBk--~qpowr#N{3}ACBIUwE~5};&O3E;YgSJDPnj0M99+=kV&mqZgAS&evPK>{0x zl5h$bydQonFqebL#&Bae*`QGQBhVHC?MlYXS?LM~&xXNh1L_-CgE{5C@mrbT)JJ zCH_G3&j-9*&e?G6bVerzIjma7bHW14338(+y8~~pPwY!<42NbFp#BQb>EeIM@^EN8jUYVil;HXzONu|5H$_FJIaEL>Cz|k#_}ixcG8d6_KeVvc5qE6 zcaAl;$COy(Yc?7>CD7aPY&jtmBFX&)^wYf|o@Y-8^+`bezzXcKl;CLF!_DC)EfgrA z+2*jYG2H&i`w@NdqE3f&NbB_F%Q}7as{X1@2hVGxT3xEu>EI9QKOJr3fwSFT6$xp>Vv!9H{H{q20Vjwo9r>E&>{ zKKzJ;%-%(@ndK267SKtRZ? z9VAK06wbY{$8_ojF47k#PC|S-v*$L@g_-Lv=-i!9#|;<_aj&QwToccy?lKTqY&+8! zaj~XzD^6p^WU}<))W)-HpHLJrs7J=GH=!PxQ;#5dpm?~*5+24_Nq>+H9Fh|DI3M^!HdnpXpMahw}xAFI*^a@ zQgyT~kFPDSy8YGGSKIQ9<=J>R#rE(LIVnKrM`;6r?@2tKSnKGE0pwpIuO6ku%4q_V zhxY|WjWz%^3d0rsu|yN-9idhZi5L9wh7M()NmTfR<`C^8(Q}nz>-VdNfANnW{>4Ap zI{N8oTaHucI2Fy;t8myNhZyPErZhA*Q#yIc-d$=JmWViv+Y6>sD%Gax3eMJZFzv2$gU*+r1zmjNzFCtgW*PrL4 z1de3EF+vf6lPqFnHSp}|lz7t6-vm*K%NoP2p}&E0`Ne4Xaf7KN!@QKXDF_%Ha5l!c zk`H1I=F=7IDUxa@E}gg^oj}O0z;Uos5ub5ACICJn!XgM;f#suUm=axQ?$|<3lVBc@ zH7d?T$bwh_^_Gt7jAu5q@00P;vx7U9cNzf3UoI9N@qK^@*C!PG(Ou61ITo3ME2fXL z1`uguTmk;z(0oSz`4q7+aVd&glZkZ|5DzXcQ80unJee3SW)}Q<#KK9PU(W6*(Eeay zc|ZjwWa-#&FZM&Idq%TG*j{_*YBg7>8G-@KUM}s~gm`qiv?mmDsB;R3mn>lwUSH!WYd&6ckmuRcd6B%$xX-G?idmkck_ii=kav_FtL=r-hF;xfgAEa2P>XMBgV!3y!x zaUB9`L$qA+8@6n$DVzY8sVeR=;9Z1i@Q4q_l2C$xA6r~NPZ+ktqFd|apZdfH1olY~ z*v`~vc)bQ)SjOKEh#zp$4wsBtvMYEV-6K)K3s5mwBX}PtItT&qM=T{=GaC@n5Xemh z914Ln@GQq?Z3C>#;sw}GL}(|VH^jSieGu9}HG;0**yJPr@##l`>Fez=VP6V3TrX#{ ziimhSpGCASelvDwGd539JVpr>E|?GmmvOv+TX(z+AMtDK`t5us2YT(zKqJu?mG`t_wz*xOGTtWNZ&{-~e&|Y$Fg|%6>)+O=bJv8+Gel?v3YgYD^7ml|SmTAR_I zGQ()KI{dgPZEUA^6j7>-eeffu(}N{08!(c(H@C!JTaE+5X=rB$V-=7lo|0B5*)wuW zJf?^E6xp{RGYiY}QOpFJ8#j#m6d5Jbn)sek!onHNH_TI2+D`4l#0=9(!{tCJ{5<

    gR;wJnQ{#=YU*39cb2n(<1fd0XV4mLLHqhYon$T!_m9UFXcWY^? z^d#lOHxkq@H{FF%V#31jLjf1o_!^jad%K(q+mNU+ezAv-VcVsv(bix zu%Mt>_JnbLcGI(hYYn6p1#Pt__Ke_>jS6Em$^?wU$}FJDEI7VX1@p!`6S!RC8sH+J zO(teWx6H~8m4sjM)X!8KyAJ+|)yQtKO3hg;MK49hOUlj*!>)FhLG(iWhJO!#B&xuS zv%hV`0cAFGKY~&q98WPz=ERs;{x$Jwn*`VH#HU@cKO-*Sv}CDH6~}e%=I+u5D|ySE zs&mVp(Tn!d4^HhH!f!in-zT2dq!(|9XJ6f6F?wLX>Z29&W zu3b2=7mZF>bYgwrS3S?Yu|b}~yS`7F_LTU6GMmCD*K^uDZbI9=w_l@T$ZvIG&E}${ zeF}OjEHd2SWHpc5@ER+_8gaqHO5M3-JGA3EW74v(m}(JrdN!oY#-NHm(4R#WLkWB3*6c?2wt$F?(B8<*`&njQQJ zTjS8*aGfiAO5vp?TEW(r|THRyCEKJ5|3OFk2qtZF!I3qp@f2I@>cVk9jXC| zwPx5KR&lJP$8DHx>(*Fa;@3^G2(GD4=59dX^{Dcw3@bK><&Cd-o#N~0ZBf!dMXvA7 zB-$q46i^ol1_DzENlpXE6(AcI#Z?F8T)rG9u1Ae7zC%rWPTXZ6QRi1D_Jl;=EVws)jVz@WSFjwv&f1Vq{Ed?7-0-c7`*?=AkO5(^)Btngg9O2#Ik2g zk4W^`nt}1yJN4X;!F716IoHIqgYdphz^oD8_COo)1A5HPH)oV4e$#Oq0B^_3t1IFm z)Uitd@TpH5r&`lMO3CK|O4`;!4b3oOCOLssZx^;lXp;n%J!5B$)28jUFuO9lx&cPd zF-}Z8t_pu$n>wyXu-*nY;IN`Iu2i$Tj@z<)IE|R!<3zH9zj#SsZy8M2)F#9M9T&cS zP412@A0AR(0iIsQ>0Qemf51O&>sFZ(yaXl$Fw4i*wr-)jI9YAm5v8^hmUhV04QwkQ zlcqcN>DNnp{6R1mIFBA*f(w{bs=IDL4R_2Z5|9I{wr=rp+jiJ%>mN#WY6RAdbRA5h zPLX!8-b~nyplA5E$2JKhK?V4NiCb=H61RrC^u|PW#uOnQfTZip?%18NAhQ|FbK}}` z-Jod$`9N`*k!ad*-48b5#F^c&j`{o!agtpc!QD(;o1QiPfEBwQX)foBCgOKuX^{ZUT7$_r>OM^EDw0_-$La_+vZp)3ZEl?&B3l2DtRV=t%g7o{jVl zTE}U!XJkrz+O%%qKawcTLFw@h3QpN3Er3Sz7z&~*zF2@Le11`w;MbwF!0&Z1ZqEtK zA1`4%4@n99z&;Of-v~Q_OnVHd5tAqrEjqA8qdE9N3$}$gFGudi%XQ#ISQ}V&@hu>d zb5_q=JV%2u$|iAuC-SMsB^TfumTGXG*V?V1X;CpsFSN<+4hZS6tXda^D1OakBu)xc zu{(a|x*vF1yRG#2C6Gt7$uXG6zoL3}2OuIYPM85oy|uuuNjVHEY>$rLajA^o39L|W zxzNTJBfJ-Qf)o(sv%m_LK0UE!vrB9IK_@<94pKDLw5EK48rOgdqDtmI!0zy)4< zv>h+RO2T!UI7_N=Unl;{7Sftg1l@eS3R9t>8xiLp{6{CCF^F~VdJ_Z+tQ%>UaZN}d zF}1)T6AENVnE`}_SE7Tj$pTRlQJIT!I2kG!+<`j6jcK-ko^pF=&vj?X5>Z>rzJx8a zCb?WrX?KyRh~L78D1Ug??95#t(uV~;)d_nWe(##-&0<_z9+^Zd6uZY>i^ffF=?7%e zK>K$CCXJVz;&DFlk~Zk+Oy6Ko1P>*ef@kbqzFyV%exnX{V-zwtH3Q-W1PwP#us0`c z2drf~L;}b17}=8q@Uov{Yy1Jwqvcu?CP};2glTOwq7*H6%E)2Mo$>>LXlrSK!1t>V zGh0im;ZB%@0yh9VuKR&&u)dElNto^=uJM=aUMKb~A`HTsP$b!eVEA_$oNCE9LVOx0*xw@gCjVCVOM zjM=jog!AbJ?R0+P5khq^D0TpsKxn_2%Yx7Dbo3TNXoFjyCe%!y8pwzRb%7i68tlhD z<-bgl2id@$!8>gdSU}(47dpyHjO7(5LZD)`t*Jd`L$IAh_2OQ%&~_*ALEk5#p#gw( zZUmMyvAhXwFK2;`R(vKpx0eCArJc8i(GmziyufEA{l(O?CIkgqShY8{2YwwuC~3#- zdG769l8o@B0-^yrn(Expp3R^$5BE+7+3F;Lq z7owBwu1CDN<$w?+N=!0e0IQgxB*%e@jZf=wc8Tge8yExc#2tVI!l+Gr{x(M%_Hz6N ztyoz74H3Y`?m`nByN&cHxQmlORuanC>^4CRSrI}YUz~7QcqcR~m~n3Bp*r)5Vm2_4 zznuwHVZ#eRZV}?MzMK(>8is~4AN)EKaRs>7_VGHdapFChTH`ywxE`}#8-`{CmKX4E zp*Ng08HUz(*pcBA#D2p7ENdu0f!O{n!xlV4lt%`|P@e=+? zRKUK8+CbTsy|vzz=>9diV@3Ajns~+%Jk4Ut3~hLKi@E>>~aTPCsbA5?-RVBr&YZV(jE9WqT27=bYOYZxtR=skX- z97sO+m7({rLYrISxPeB3j1Y6UU~CWp&?amS z05^)QCzF{_x|rJz->+Z_1P%kClnIXZ)Ug8a1~l1rTYOcKhvw^5{09D%IT@BX%EL>lWTq-FyX;9{z= zyz~P*V0LcsUgAG65~j_wH`(g2Ya_76ADG6*Y6+!xfY>f-a28njkUXNcaYfL00{qeE zdjx%l+dq)?w9#p~53V~f{=SbU^@ioRjy<+!xFYd_-u0c2zp!V-3x1F*1ldMgo|hnm$9Ft2*65P&;0&B!jf7Uo znvd+A;T6Ml6&wlSk9I|w(u03F8Mva_6<;XriYv9+)f?`L#J~doGV5A=ON(7_?FQGE z31^&)Bh{Hv#kqq`HX_lOQX>s7w=kAacpf}8@b^5*YWtB0S9rX=60;dt(~OBMfTQRf zs9n6~t&PF^SEEPjt!BmGLR{AtB*YHCi5xQrKmN&Rc#rNnABS7@L1D8xs!N;0Rec){ zI_CYuxFhtv%dNS6yn12~S2Jsx_S_i^Kh{Pvv@y!?ulPOoUjCx@Wb_fLZV%trw>E}9 zro;E}Q~!()Rk;73a_NUt4nK38Bb*ZuITzT>xggA!?n!d|_-c%jsfpOGFrq79ArKhA z<=lxNE}vTdn1XMt*Jm&@4)dU?nFWLdnZAJEWM#S0@x(H9TA zX6H7K96?WU+gTDiUV5;1dKdY?X8FB_0jIlCi0g=giEt zxU;|K&M7-wo5hncukdT@2E>tT+Xr5bY_1bEJls_ zqRw1r%45~61)YN#hef@Ls5SWGQ|61!y-qQb%>mawcL{7U3`h+F*(`{@A+wB#wp7%t zXOkNu0`WYT+32IdwSfB9Fl3({)=Yi8!Jt>l5HA^Xn+R%S-s+01#0t(8$Z-0PA`FlGCbJ zlEnO(BHuNLbqUKLZZ33ogNWLV;fTIO&%Bqf5?A=M@k(Ob$@wx_b?k;Tj!ll*qr z=JqtA4dKbV0e^oLBPw3(WL_SrAFq#P9fssE*;P6#3FGxwKz;057+fAa;&yr@SGQii z8f~wRl3r5eHu8^(KN$n&Z1E?8=BHm^4`lzF*;)YJpeE<7EHN@ina>=H?v$;2($mq>Na4 zAR!!qhW;ir?r*v<=1nQFk{k}CY)8p>6f*WE50e(JfJbM+WDbTO^CRi|)tFHgbai8J zRFm`4eKlTRSi?x>BTELDMZ=ZYWZRFNq!CSa{Y{;xJlU#?X(WTq-~A1bE~3Bt8~X6=KLyq0m+aj{P}1gF zP*UnUh_IJ|ixJlKDswi)Tp&u}=kSX@r#Z&K3SpLo*iat+}zk2x1KYRGi|Mc*ifBx|8cMqTb_Tk%q_3-Wg{09%; z{`JGR|MKC}|MKwZe|`A$Z{>$i|LWnl|Hs33|J}o<-#q;Kzj^refBW#=KYIA?A3uEe z>xb|D=;612`|#_s<_b{Z|j4{?Ws4zJ2)g zHxIx5^WXjD!>|7oBAVx}V@>RFW@4qma5&t4`0fAo@aYeK_ty`f{`%p!|L(=Zw|^DM z=&^h>xyjw*^=v(S`iqB8|Loz@Up{>M-#`5J-~aUCxBv0sQ+7oVMm2TjNyqbtU;oz` ziov>1{LyffmmdE7j~@Q`pNzKU$yJ;{5AIhFpZ?>+r~m!o)4zN8^dBC+{iBCZ|GFCW z0AgVR+sUmyBjl$dCGceO?}bx~8F#&naBHwV%nwm2U_XQR8zVYI2YE@7ATbaM8t{}m z;7b_VD{ae=*kW^A-u}_n=JqI&--5+MwsDiZTbvVCChV{pgjU3<|P3| zeSwc1*VF-_oUvVcNoMXxdPy7tw$MugU(!nwd?du7m&*W@NFbG9-+|8}-Oyd!;gnEf zPp^aPn7+rR2c4T>7xIn=ZzDs#vabTj-UI$yES!7kK>_sj%5x!Hf&_GG-w;PAexTuj z7YimTV5y0SHF?IwDVTR^2NV*QV3aQl@SYPow;$pQQJ4?L3V5WbP>xai7)AA7`_MNyL+oT+|#{A}#bAOIREBa2ZS6Lby? zz-dxkgJt-Nu)IwW6!5{Gx%?G=32*QcafjBzJKPxezgb!yd4^T+>sS@Z68M&vB%iN6 z!|M4BYh}E=w8zg9{ZEv@*Q^9P!Y=uU*iGWI#22iEsWqFyR@=jkc z!LHn;GbTP=0CxLyLO>$(pEV#Y&oa6{v93MhToXG8i(Zr2jqOM=%_iiNsZg)HRF!}C zZ+`c$fA^pM^B;cqpa1ZWKNoWt@xgVLy1V=RB5%I=q8u0kNfW_-_woo-9wgPzhZE2& zXnv6U>UaP47b8(xj?NII!{HX@y^7+U9?>bY%$95QmQwYW62fw1tNiItncX-{h>=i? zAPXyKMVJkl**G8p?(i}rr3OQ5<@8jCW5rZVc?wxeAseY;G{Qp(;3SFYv<03*9MYPe z>Pqhnl80&?mfe|WN@po|FM5i3X3*Ccn8{f+OkMz)R$0PV4f1$*x|nyAr@HN8>Sb0N zWK(~m#!}j|%-iwWSZ-LJH@)A()_MALmcb7|hhff;S4~oUZ%F{;m1QqcnOWScXvnq}k zi=2EP4_<`*Hb|MOv@W6}`QUH?<$@o#11HLKPs67yRsIG4NZhiQSg!4hUcc4q_aL+I zMNjKoU~+145=;5bUWK2>cENI!x76mvabIhhS|@y~^ri$asqZfE2$tv^7dQ$4FT~*@ zJkLE#@{ReTTiv$^%t^7)C&6+7A{2^eOn{iUD0*=LCz`iugzr;_x7?edWq-4@Ck^k;53E`8 z?m{a!sP106fe7k3HQH}ndrTUTOG{MLZ}zC_FJ`W1nI|Sa3xWl&8^3M45Tx_gKCyY} zsnIsZ7H(Hy_zknk8{=yNo1h*(XI(vCI{cgSr3i7;dcxoC)M!UFq7Nt)lN0t0oWFc` zM&OlWP(FA^sS%I`>=N`?J_PI^4CK^kUl?tJwk>;h>E6=5ag6SRCpLI=S+u9kVMBvA z%=>g|w0l|yN27J=v1d=F=!}80ul69BxWO`U;8Ia#Ik8>**kx`!CS=(=?db;ggT4i) z9GJ^fqfL#TMvW#UXELtIY}R10>5ACbaF_n`5Exm=!0SIT9VXl;LHwBi}vG0B2Oq!4+k@*AkEZd`w%Un^q4s1lvuKyq6-gUceBuf{3 z6oDI`RK63QgN1VCNVTeZ6T%hcU5#U(M@>fhm&9Pbvz# zMfPDac!F*j+@-VqEcsIDDQa89*~s%h>dSN)^Lw~9)K%DM=)?~D`S4q?2LTJ%NP52L z2I4(07UxbbvgDeyIgT;#M^dbV(7EF6%286@Qqd#V39Wtz?MuW1COeo@h-TUfxU)xY z+;XpDc8nUi!?+d5NTDEt_MuAo=-wpN-k0}C6HUiOF-A$1W0X~6_rQx3kP)F0Ywif! zRrtI2*)H#-)p_p5%}TwEmqar`?VN~CUgTFwXB~0BOUG6zE6GluwS91$RwZS{0RzD4 z2FCz-5Zb;~FN60d^5JQT4#4)YBr@_yLz_n7V#SU*#z#9Y#36Dk!b9DS&TW zl5is8c3ulE-2toB&PCsL?#9QZ3&xy1cjFTkbo}Vb4Ouiecj3+px#}_z7hG&6=SCuU zolu}+L=HHObNyQoH=Vn&`cx+wJXH<3fZX#3dh}Dn3#;3X7*q>s^6C7%J*2U6w+gAw zi*(WQci%+rHBB7;z=2EWPV8PeHDN_0$=%Oa)>?p87k%6#jm(ccC!b{-IE(y#TWSBA#{^{_7bkt>7yT@uDMV*Y0|{=rGnhJQZp)gxJ4OaJk!G>HyoZOr&{BS{FZs_*{d~a z6kKt6MEW{u<|soh=80@Drb*!WaVy|bQpLva_k(?JG~%MVbd^{DVIJitQ>7{p@`Dy8 z3HRE=UXnAZ=?m5y<89bF()Yr?G;E&wrO>3mQpLopc^s~DX`|53*{hnyEaE^zIP$b> z6c?COGiMqeMbik{(m{NIR$r;h&@aO+u>(JiKMuT*!ZD8h5mc=F;dH~`Y#z7kJKEPM=b7f>6c7gH3w6N*t# z(a&K_re#%#-v_1onFsVpG>QmXXPN|8?2rUd@Ue4EV;MbA*-&CLbnV0DWmzuITbRFl zvHkt)uhHFw!z^CT)8&jIot5Vbh-;JPG-nH1vt<4H8|beSbPNG9mS)O2h*`7#j4hun zUkm!pFM_Cr!$sG>H{ZYd5}NPhMc2M10MYQ1eBAA@?y$4+{K>p}GEq&EcvQ06OPbsx zox=C()CCR@?N7<*#xsarohS2}%Z%1?xkD>%Asn8-_0mf`^#@BF2K3XO-}kWR^qe1) zwQ#a^Q{A{SgI3P^wB322uhVXay1gf~kwu%@-P*`Hv%)y~__Q0XKgn&b9e&g9FDZ@H}atT~C8;0Ue>*Oy*zy$k%m-AB3m zcNNUK(((Hlac}9H@rLf8x51l&w>%2?g211b_a{)zPg%r zuI=0^zYZ|}n`^T@GS_{zxt?Rkvh7dXw+wbUXCFvryHl}MZH+f#FP`n~`~let<^D{0 zKK_x9-BUTOhTq;o#$)o-}G{6#=5Uq{(UuPIbN2%`!3C`bzgP& zxPw1bRh(-nt=cxT$*>D+cfCO0d_&zQ-6z!f<7w}{ukL=!(6hHPJaliV3l!T< z;l9gzg>Db-@o(?B;N3gw!eM#!-Y4V=-5lKK?iF%pMx1Flni~kx49;Zc-MieAtp~#jf9 z`ZYq&?c5#?ch}vFCL=FiU3s*U`*9eAt7_SJyAkfb*zmAmVS~(%;al&=aD6=&cic|c z>+Sk-{!woexz&T~W@dG!lR`I&cf-{co^u|_(EBJ;Qjg^GS8^MEXNj2JTlyTidRD+* zxKd4}xOS5lLJJpUmtKz+-u-Ci`HwQ9^rLzC_0g=z_eeeY5ldu`=472T9zD7UAEk1~ zqg0xBluD?N)OS4kLJ2-vY%5$!*(Jb28F9J%>d*Nve#n3712(w~zrHoOn-@Xw5&V6F z)s?Fd%(qz;$%?vgcX!v_1eWZxXRGdJ`a$yAUF;=dK*mj8f~Gs2o;l;mk6Rln&sK7| zc{)Zc?3bVDL9vp~{#9H6AXee>=2+h3y;i^ku5`(k^ZNjKR=JL~+zs*Xpw z`!~+A{_LlR6==Z(P|FMMpM$<^CyhpQ*6-61+aTjgNG8*{8G1 zi29>G^+zy8dDI_WQhz+5{^Xka@b`851kA*NdqZx34U~QIe6WPw&>zMV`a=}bXyDLj za80AZ4UHlg$R`93gUJQ{CeZoQWHiB6MuLlQ7<&Z!Z*xSa!n&NAR;_Haw8;6SJl6b#aRoW|+Xs=|^p7A@TNZzYeXb*hr%_{Ag?`iL-M0-aT zm8vBwRm)VWR;W}xqEf9%rRFh}nD)FxW#gF2#t9h>6J+#MsUK6NenP*kHR-pO3CugH zmXE1gKB1~*QoYfnhFK&~GdB;L)T|b%S#5&*oy>+wW~)MG%OY#9M3#ZSGFe82tX7e% z)-hSF6KWNYsZ~6omUT?6<07?=Eoz+5KgPy!pA?jx+o-sYOa`7i7+2zx;RunCF`b1XGO_tFcdOt_?gq7pZ4_4T;| z&F2*L7R5^lUpHgtJXygl9mC!}ec;2F-_VWL3Y{mrPrupeeR{F6efw*&)5oUX$?fg! zvYO*usu%2TyJcnDmht1hO!#qMVsRQhUwOCNTL*JR!j|i8 z+|S%AU%s+2BLr?_3Svp_lOJ#I`!;!MC##h0_>G zpT0{uAe?BDc|vc#=$F4SdqqlTU06}R;;MZ}Zgg5kvVI#Wtf1Y^wQ%Y?@owk&O0U4k zbz%1`2c(R(ce#|5X7_D(OYV7>yJt_S{u1@N-m<;H(!7X1-QIq|a;Cm>&T#hK*ZI6p z?X3adYC40_T9Dv?X=u6hRTRFu+BP7RiLFU)O!ty1x z!}T^|=X`c0sWh~w-Du;dl^xL|N#c_wT&MGP9={v*Xk`V4o^i&~^R#=l{&Xv2$73S9 zVt$_;oV#cA@K(2u;r7&Sw;2W!ki2)dup1ZjxzyREUV)x+G)e3cP*)Ew=B{ZjR}{LHfOU`gr$`aEBJZ`+Aw(-W#TPqCVi~y&(tO=PHfryMj=Fa7&>V0~84u`EEZxWT1b(CYvB|+>u~n$q_l_fCZi|hFdlK z%i;idgqLOS5+__^_?IYFNYcAUWK(=89Twkzk0;**z7!% z1ayYj-$Dnfj2p<2{!M>06E?<^_(mm+GY=3fumlHBMT5~mI~C7-hNZL0u#6l$V0Q{Q zn7VWjMAI`mfX}y3RA^)xi46v%cq-r|p(rpC^qPaIhrh%_Itij)4|&8Rb`lac3~+0x zvak3amqW$(#GOVu2_N@@YdAA=2Z7g}JV?O3QC<={a>9t%wTaQP#SfgjO&WxgqC{2S zsA-ojszv8`Ps8WtC32M@Q#auiMNRM8#b=awqZ`N6M>K;d*6xDZgSrV?Sp)=d5VDv0 zP}3FXH`7&~c%}>2Dez`uDO}@ofLs4!(prL zY{Abb?q5iGS#Df%CJ_cBsddZMZtV(1JKs&nc_j`Nqqu0&QJpJNKk3@Paix#c@vPBJ^vitL1V>}HG&_G1)14` zo8F#8r~cr;jg!C!=h8g_L#``HQe+5O`YLPostE`I#LrE_82K8*VK(L?;t4dVcx~@F zp&ovd1gTY?CjqnvH)L1ERpXQhyM5}QuS3BVBkmzw^9Cwpik3vj*u_f1oFNs)M3i|b zqS;H^ycNKjMm(rmHxUXH351yZl9hvZ6 z5XZq7DKdn7@O->LPQq+}B8p~Gxc*g&Fyu%Wr6eIPTNTt7A7VT62hV>G&#MofUvsWK zupM*Q^`|mWR2}rIyRhJL)VG;S=f=B(49KAkhKbYn2zZU zM2>wv_2ejw;vCfU%GpTfXXT^FVeua1;I*7kEEmBP&-U1HapbC?e2R*wJ=7A3J(P*Z z%p;ENO&sx3ewmGIXCtq&k=KYs-@QKb;vnL%!^oxxq58ZL7ruvej!0;Tuurd~N7AQN zZ0dVV)#}(E-5XuedX2)tND;L=HrkE)LIjhK!u~Mfuhrp^E4tiF0(>gdm{hus4X2}# zYSKChJHO_VRHM{U#yne=Hg_94Th2y5p3NnUvkBPU?Jxy`JD5ur2le^Xv4+ByWQ>vQ z^{J!h5O|VECd;9F9!<|?eqH*!bEaE!?D2rBN2+@~=7T!&i8}=ML0yw$s8bz#e4|No z(PaGKN{-VQKcXJ9!$J_L*9B2Jx=cWCA*)p#LvRxE_H-^sPG1(y29q&h5{Ig0Lie0$ zh8;WNT@QnamxPnvCsEx2Wf3n;O2U~YBncN+PU}Kze>Oo6;?pRZ4X&j1VRTll3qh`fE0Mh< zawFH>xIA#*T*2+xv2Si}ZeUQD$Zo_Wghf$57{j%ZQl561`ewIz!q3@(^D~2C!UNi2 zcWBoeQU4-^vm6I!e{f`aRT17#Dq-zWuVUPvRYZn42{Xp23ZJ|B@}HUaN5YD39zkI* zN6rSLQJ*(NFENZ7~NE5TR=6+~tdQaAEAbd!cua)d$8 zIT!xy5epU}9|2zz_?ivgpN>&-{&XyeDx!AoD~2gzd{%C55>&Q5lI=98T~sc+!AEg8 zl6?jGqUels0a7vvP8_ixANRm&Xi7^mW~9~2^%1ipC_Sv zse+>1VW5_@Fyo}uE}8wI4@g+TiVHt!^{ZOFg2ZMm_ueeoAd zFkE7CMzW@HMm#J{CJ{O^%2EcjGvPzD1?xvehR!8eiQFhn5qgm%&YKT(By@+N8(k#v zNY=JV6yn@jM18eFqkbHY_@MTB$KiG<-?JmoI4e z66b9izI;W)m#=B~@>?3d{Emh%zo+5LH#B_t0}Z!nxc!2L+b?OjjqocPZoj7CD;mD0 z;kPvWj)vdU@C^-rkWCeyA8Gv8KLj@~`S5~|65i(HD?YyFzQC z<_B!^1GXiFAF$02*yaap^8>c|0o(k5ZGHe>_=+F!iXZTbAHa9=jeH;9#&_{e&b1ri ze8yYAILLzVAA%bmng0;nOoB_CLL8}7lx&mUZi0l%WPH3#|vh7F0Xr?OUUFuK}C!s4} z1<`(W2(4Jc+|ne7_9h`NA_Y53;X5>+!R85Gg33b(kQZ=$~lgn7H;v-+dAzZ@a351&Igf3a-Ve^0ratwy@#>Hq{Bm6DNzVFagb%sNQU>pLiI=3WtJ`=o31=q1Ict5;l1B z=3uf^PonC_S(3gYVA@2BDZFe-8w_lQ0W(CZ1lFB#!h84T(2ID}aLu_^y3Qt;a@9A~ zoa>r9W`0#o1C|8UM#?my>4r-03XKPL%3|YOJ%A#w9zc7;1fPmplr@WHY1CQNc7I7V0;!pPhC=Ii`q`ZTva6&XUY&MabVqk z*|~|RT&`+{R>drWLN2=ub*`zhK`PHOC?hi@49Ds`pmG>YpyT6L83Pz$SQ-^-2R}oH zJkac>+$D_b34@JX3sY_e=479d0QZ?=RrZ(jaUW2AV#(SEC?N1^6dd3|=qUq)98nao zGKe)o%nj~!%&p;I>LJU*HgPcZWK=+iTfyNVB(YTyD+&+2^9wqBUn=2X;?SnU_r{6M zD9DCon~g?Gr3j3aU24?#D+jY_ZObqvrP?R~V5nF+tkexj!jBdmzOUBk@O_&OgJ~Gi zp{T=&J0cF&7;<5yOqDYDwq#H;7+4V;EiwijD16K$)Clz@6<^ax538_2$SM6@nL0r6 z66>^d07EeIg#W}4sK`gLQsB12BcLea)R}8I#mZn5M>sFjZ-K%utTy=ceeR@5NS?3h zK(yh95BMOq0zsc3Fp!E0`#cy9sTy37=*;=ZFh(`UQ)Wu4IiOmnL_w?rcxu9Dt@Xn? zz(2B9nRyx2PjF(STHwbQC5+V!aU%vMP%%=yNcDi~L82P32fAa{18#@)fEz+R$mGw5 zs$C6B^?Ic)cP7nXf2RR7H%) z)b#ocn8GG57`LbyTv0-Dsw`Z>(&qrWhiNfM8MT}N(`=irGm3@v8#~U)G!E>&O1)^F zaIpNLVU{^$95;*gvTgmIW3_g*RnZZg+;gE%#jf8=Jk1w&Kz4>QMZ>36@Js>=FiKJw z8kPdTvD9i!fe=});!WZ~Tg@q~sh6pb6jBAsw~XaVQoM>;K_T%ZmK+r-l^MU83T2PXDgW! zIH;DYn9r#dx-NHvR(K=wM~i{FTFhLGW%s@U>tYA7wxY}fi$gdPt|ZY6w|y2C1!1Di zV?T*?h>zTf+L0?{)hyi{c@h3(TtD(651(+P#y2s7q&5%7k4telDspIln@`I8`GKLz zK7`JMju|0^uE%seq3eiF00ugyn+e@SB7S5LyH8hhKR)Wl8(n{Wt()I1yxRc?_S}xb4h)B!2tq)wgfH(gDbuL6Bx|pC#@+-+*C2iNbk- zX6{Fc|C8FGHgge{Dt&j+C#N^JNk+fo8&5=4fKb8-Mx2J;_153fiiB5s>nr#B_$=G$ z|FZisb*5Xg(SHf^&uZuCli&219N^{FJ-&u%sQ^&(p4}Iz2Xz*yQDHO!pfSrL^qbxc zG^a?gB}J4OrT#cN75)XeRFv|@R1R1G0!`O2S0KY5tQL0mp|)dUH706N0AC+GkmMPV zY~f_ETG-*o72t|Ne2Z{T^Mo(lRwDvt6V-vLXS#Twexx3XVAht$w*WQV3RHhR0$(im zBEui(4uuTNAtwMd@>)3$uhYyP@>$qOrI?-ZdTPPzX+K4`OntE4c6Q(O3XC7w-P(P| zppu;eHu&%w!5>fqGnZ0%&11o%J8o|5{EGhQE#S|7_rv!;d_8ExN|!UXSF{cZheoqy zalkHCD@DuD5%ZvwgpMRss+HBRrADn;HL%H)gGC@ln(|Y%Qa9=i37bZ(*ec0;Y^%{W zONNAx4AZLA_Zyj5qYhM80H~TZgxa;bMR>T4DRj>?itjBd@3k%4GAvwfBU~((O~bM@ zV5B9`t7XG_-)c1Vl~k^nR;yTg52)B?wRl2CyHciua!p@wP_Eh4V*P*)>W!LVzc)?* zjtQ~11qb)p)F$q29@xbLh{60B2WF!U2Gokx()S>|U#S{Nz^eRSA`)oSaIjh+9pOOh zq-juP-vU%^t5`1?^xMWBajtM^1D>;5O1>DuY89tS*{HWF`;}4=6@rwSQMB5oQ3C=j zqK&%If<#g++59@3+cm?iln`tdn}&%%%cvU7LxA2QQo)6WWtFN8OG1sNQ76=|Mb*ZE zJjt@T)+~bf&!12$R;r~#qx7C?#d^8eYM3WdEA@t5Y}tEerF>ujl(zYyOpRvCFio5) z^)fZgy-Lfr8m0F}3k|Aa@e?_NTx$HBW~FIZtzxTfQ4@91v|duv+NP%UikjAI!gI}H zz1*lVK<^3mBQ)w|i!7sBske{qO1;t|UG?hBFVZcmR;(8f43n%wqgs_CcN6QddQ>F~ zoub`3aflPucZVXxKgHLJiTF7S|@Z|K2VD< z^e{`}Y5}HNIj5BY>6%<|U>ZitFq2eHtQqyT-87B;$}z{yb{%z`{B9Y=RuYgJlbDoA z_H8;1dCf!@?%_g3!cnVk(s8X(uIyI~)5>+bXDb{241f&JsRf=Ew{wD90N8@9FYi3m zb1V>9v9<8inG;>?_#3W&>4m`@M~9-6TIqJ5tgOem6wyRHP*yT{))`0T?vny`YpM;Q zyd(3$Nq)x1x%(t@Z%*!=$GcV+ZT0@vF2b6@2YXa^vE3K0zwffZ$GeZ$yZN=Pr*GdW zf}c*|k2~`~$h=pTkoN*@(2tN?vZcdYP`j(0(;T2O2;ylkhtN-*)1P|lKRqlF@yFBY zPt?slp`V^CJRJM6u@`&UQ_?Tp>Ew3{aCq)K?r!yXAMMkp1?rx5PYblMvA|QrlJeHW ztz@;^{gmT&vYf*yX*IXNEPui*jqB9;rm*(-H&1%GtzNSCw%cW3k+Z&Q4E->^>~>dr z)F^ab9I3IIp1uLJr-6y@=H%pxJ6M~@yt}x)d>mMOzce+=C#GrWQ)G3!MD4g--<(eTd zn%P~YpT>{UgkSuag&TVtE5jhn2Vq`}m@Bg^U7*eajRXIdQ)FENO7HmqVOiL~wNMDc z0F;LG-jfV$%=W!h0{YX!ncW*po-T_ge#iDbZ+Z2_x2Qq>b`b)<%ji$t zZa246G-PL4(5(c85o(TWYSA8K~`UD%Po_9{4_kav`FV{kLRGUE* z(_~4{mkn`h2njbOaC_VP;?!37(%cqq>R`Hfe5eicF53Y)*q;galnDrVz;q42nn|4R z^Ts@c;8oy66EMVJ*)qO~er9h7m_M#Q(wP&9Y76y8XV|Q(u)5FA>FgJ8vQ1bF_MMpe z!+{rlr2fTuIHCTBHrm_y#k3&WkybgzsH8-RkkKcRjI z1YGd%IA_!s=ZXFl_Wh~ih8gr}Fd%kA>`wvkcowk9%$d+&NCR&uhgX2JCHMjjypS1T z0B|c_L<0|zu^XM!U`k*pnUKr&1J}PKH@=904)2Psz`dUEFW@5|4wT!BeE0C2hI}*o zBQkd4a10y4XrTRThS*v%jQSsG7*A*jMQ50KcNOW0BbM@P?8(~ z8O!u6Kh}kO{)-0!+EGjwPWd&PSKVj!)x0jR($POv$GTBIfv`yFCOv=Fl4kI3ess0iXR~ zK;w_m6{vB?;IImT1swqm6LzREYBZv89MX6i$27hq-|++T`{cVZbgATn3DzHxA6&pD z9>m`8CLgh}eKICL!dFcvgiYk|qEb}{#E2_C0qfO?FZvfB0gQT16E3+4Zk_}apqPsN zyzeMOI@;PKqRBM67|`UBfRyOSk+E4-Fdk9pj45qxyt(8ex|j}A(AkLhGDNEG zh2xhyX@t8_j?5zMQZ%J#ItU2eUOD>`st3+e$W!d#&l^$fgcQ53BKXx*Q~?l3r~M0x z!Rzbv-4G1M6!RP7_=cuZu~Yv1sjoWg)c1bIA&zM3qsXQ{c2m;SM{f~y-aPsdO(*<9 zbVzhMoYCiSMwi1mqUm(tvif;CW$$j6F6k0wd+E`oHwK|_bU~M6{%}Bo(-kYVuljU_ zQI^@Vya;p`NWBQ~=Zrmt3485?=Mh~G&hy-)ZeZ5FaU=T0^zX516o|jl3ZZJ+^8JB?ox%pj>n#r=N0fD3WL9)b?GW0{c>a zwAY0YMa zd0{#RD)-a}W10|=oiXK{sRvwh(9M}Ql4`xgPZV*0pnM-v*kn$>L-oTHVF z9rnJK?mQF-UL3^LQ|M@kT{LmP+owY4J@q9UiZy!@KU|ng32C+V^9$vh*$n!H3R}Uq zk@U>cWJk?`^R2^9`oY1^A=lOJI}g< zUIEBk17!7Cfpgq>w#%Di-|^;H>O7-fA(h7;%HL^suqv-!LiMaUIOnshcvq3t1a@o^DDmuV9DF9nR(c!GZYqp+UTOfLjbQi1kHK3{ zLqrAZ>p7?6b%I`R;nO8~W-ZK9%)*6V!pFfiv)DNN9Dw7z{%-sA*X(>hb0V*w+P!9Q z1|Nezta}FFUN32YiDl;0G-_Mk?Gm#SRx>Lr)Oq~Plc&#~ujbY^x?4LxzTJISIPG3N zTJPpJdHLckqcVP2d1Pcsv*z8L05)SZX|LKSmTAu_9vM_BR;xhoEACm1YP)6R3REgu z29*wrl{%FUp;IhXjUtZF9+#@D%g0}h75#OqMbJ(Hi>6vM4Jh#O!2LQsvWx>N?^Qty zMb-KNS@>(2IVx9bRBlkY(cY^XWK=CVRQAcJm&vFfRm?`63==sqOrX*j#}&}R8Pzhe z3ZA*)_S^LmYswFd79BLK_8uKHS`Dh~E21gzQ9=D%X_Q)3dT*T2`wCR;mAdgru7Jl& z%fRV9RU6RIHyTZ7YepV zd&qpF-J)jWy+L@FX%yi>fR8r~{8_Dr38pTqT}!Cv%o^TmA_Ha{OmsyP06dlYK^1Ck zkmWt%8d56lDryu;^h$}W7Ka-+FeeyF#QIQdDkd*#9U67w%u=gCEfb&ALQ%7Rw_WFA zfHt{GZM>3>D#nLLO|!z7q?HzZK>d6;gf--YS!o$OH9sMt{+p$l+bQl@R4kQX;wY9H z78Usuil$MdqFHGj)(qsiXqrV(0aof%wBA#(Ma5Q~xbXIjgG!y)U<4#ov_7L!rP3i9 zW2MR5fv7yTTc9ZtUQ=pVhg52`s02nq{9Z1$+BGU0d+h_X(n?Ku$*7FxX+Xsevs2Z; zr3R=7k18c2u`rbzEi$UbCUB69rp2wY$j$Z`?TC!yW=eNv9CJyciK@V{QKtPS9W)e^ z;bE~}uA)hn>r|=16eN6VDR)|>Nfir?)hJU{SPH9L<5goHG;DSJ9kdP=$svq9+LD96 zmoISKrfSQq)TmZ8QHZr-i)zJV{MFkvs#VHVLvqF9YOXcPR4=wFM+O)YNt=`!`>HV$ zd|w*oL9t%>z1XH2ZScS;R<~w_nhksd9}QE^7HC*W8c)+~9GJx#&b4NXOmu`|xl*iK z%D@AgkZF{}$EIYdD3_sWR3&RLLRRW!!-O>mHV*V4^c!~3;r2*o<>0VICYT+C-;qnf zLMIk5D`uOtjNi3kYAaU3euqEg+B&GCqv7w6I1ASMN|UVLndo5ka?vc4GFMqGq?tys z20W~)L9OB*wTgB89a77vHMwQBFmALC4b$LW#|I1vEfZvuEwfm+_8Vr6T4uY><4{}b zyUq2D7JpQ%(oxZ@aEn841Vk`>KtIlKP}1)WlYZZ*8y_m=*5OR2T(ED$WYB@3pu2Ut z`>dA&g&4m(0tB%F454EI4VkxeZ~VBkn)`y4o2SfqBli!lzyBiQ3>&sL{EcwK+i-sL zcekECEp-04)4l4gKP}MXuC@Mn3wEJYg4_Z&X@Pagoku%8dXn1#Pzs$NE z>CO%VV=pLFpRM+C3aKV^$6Ohm)6-`;g`mp_uVL3GrC7|ZEuf0u_BMF4)eJ6n7KJ+l z#ikZ7OVq}hd_evLpsy-hD+n*?s#`M2jpdb@a`_*Mefg2 z^4*_l1l^hYGo8oaFZwz6C^w%$$=|OjVQ;7l7=-XMU!ZfJ$+_hED{CQxVRTBnyYjaC zz6Fn7UPZa2j-YXn?)s&#(^r0>(jzxcYyH<%`d9YAC3%b7_*ax;$KO!YA$aLpckAhT zH~;LEfcy*uXBe7#%gQ=??Tj(F^Z1YU?!3+SS9Olxh{+z+chA6w$bYq5_!ak+%lt65 zdI~esPS?8Eb1pNqeW`J7!Q7H5!Dj$>K#0G;SyoJ6oY~_3#e)0R_V#x#zGg*v1|8w< zr&++VZb#w&?TX(g?5n$ivZ!0CvP&tDziv-Z{!*wwzVlb!#?XMhRBbYco;I7Cdr`A- zRf00E32oBH{ECcZ7S7pcceYM78D6#Aw`7ToCkxP zp{dGh1(~C}Q_TOKN5k&G?yX^LL_+s!P1IHTitg2#SkuvSqqWYD8@m{+w|aBR1t;R2 zt4c)+-LT%`4yRO2(=6&_xRWybGHhTYpr`PDnb0`{^Ro}NEN{aEYqK9%u6vd!ZpDXG zQ9BEp^Q99CMKi0W8Otuy@8L3&&nHeY=}7rU6x!BqA(x25PoJIA?qgvS?-pohhTw^L zFKiSCQO)sf~D!dE@qB^%lQkeiVB1!;6O@X1{&& z;wuQs&%7w`mp8|ijZa@Ff{0avDV8Uv%<&y`PM`MZDMO#;)}B7q{sT{+ro&B^8{ld8 zQ*sID96q4}*`sK!drO_uPq%3Gx9QCTy;&^#-lv7`Cwf|7-h<`rE}YeT;&_p{8P35jt-&Co3x}5z{5;yc5xU(kEDLXSGM^CSGO-oC?(`7i*fY7Mjaqc6Yx;p@gm zf4I9i{w41IGP@wmo*Mvy9(oIOJ8wIuZ{Oh}I3>Ol|D&Cq-CT+w8%|MsiE_Mm&&2nZ z-U*MxbcQWs_W4_1xH;qTwzEqeTFrI3y-&Am>xCXjtX|!2&CXLH%3!Wc9vmh7S$@D3 zJOK03cQ0RUf0YUxWUs?%|Ksi_=9rvmN@&!J8yP&mA1=^aq#Z?u3wI!h-3wRdlM4lr z0oR>{j^DqSt$wE0d)V5v1tZK>%7F!8@?jBAf9wK=_xEqU{qCzu4V!Dlf|7yOXU#$A zj_En5vb>FzWZMWf%f#+H+VR}J8qB7y?B3w?bq{+uTz{ZrvY;bx$dCV$+?<-t__n+P zM48RNH~br{9P=Z?vMn#CU!Bn@Jym#$ zWoUpk4rz#AUdS-SFRyQMtVF_EXeal8@7Gdm&XUL7FMiE9Fcu>z5aeue=$*6RM7)8= z07b%hS!!eX?d?0> zrL)!Tim=w%Io&NNO(sn9@XUb1BM6siFgG`TR3j~q3p0R)(4=EWg=i`^?(5E-rJXjR zOi3H>QX6mPK@Sf^>2(Xr)ED1>oe?t(mYOid&vL1Ea56F|k|wo%s!?vhs!=oO`1qJ< zdmr3Z*PYW6e34E!)Al;8eNZqg^=mBbBwi;VZy^Rj%st|kxU&Q2?OetuAk{zIb0fZD z8T(aXNA2QghYo)JGE49Lb<9Gg@xWFKJD>&z&M0^)R|`9lcOKDXG(GqHT&_S<#vlc) z^Uwo)jyLoR19vEkC1}(9L9XBpvH6KDOE5|1m~QGBx>M-l;)&kv44AE8f)8{?$-2uK z3~UDGlKE7^?)AhART%y#wj_wxk&X!7myW?F>mm$%?-w|=r3f72(r0@b@I%FUv$N~> z!<$J=p>t&i3{p&EH#~RQV@BXKcqXtf9De{08+gIk;`y1&Wx8luFPwB=W$=%vf!VQB zR;IkJOx%Z@krR$-8o?1S7^0Lk1eEe560bzP_ykw_bmYQc%TIjJ0Ch=@e?w@wB=B5= zV2Y1Z3tje?g5RVn9Q7F#Oq`#mpzRLviavI-v!{>X7(~-EAGlszOzebq$@uKNR`yiu z@O%t*$dhi>bL-!HzCgm6_jnfo@x1)qEzmB<)T)@5yP((GqCZmilos*rf8EX%cgFc( z$&Te8S92SiU)m#i76$Xf-J4ghUw)N_EgEGcF2#Df#ARO1-1pAfi?q>@?NjRL+f)nE znIBcJy3-f0U%bfU^yW1mzenWT?O}KNaCoMF`8edk^zJ|I{(AT4yMLy;f4%$5=l_%L{{8N+cmMMFpYHx|y8DmMe|Pt%&wqFK zFL(d^`5!+2Z^YOB$LD|g{10-+zkUAuyFcIk<@5jX`G39p)7`({{oCE2i0}O$`j+LF z{M+5X-~BTZ=Ttvil#L!#~~qKXmsmcYnp3KmQ%xoq2Tj7Cib-pa1^uF9;<0NR#lwzkdEl zy!7*b!;@yRIQ!%0f1=O-aQD}{|Lg8waozurr_tyC{qE17{~q7-`R``(k$v(1K>9!5 z{r9_nVNhRT06gUd+FDPCVdX8yx|He&a zQHq?S*%BX4j3dyn$-oF83irD2@<8pe(E;_dkoTI$>0tdJk5<@(%Y z^5Aq8jTTg~P_%xAxtpV?q-q-DEmaVs?SLK5<2}aGlFxQrG;avNdb1yTv5o zziM&H(kEQ=<8Uh5>sAXpww;h4+P3WATh(uX$1G}zjfo^$b12R2c+m%TPC%P^EZN18 zckVlp3Is#4i*Yda`eg4x(6UPbsK&0zK5%_EL^|M`m@$s*dZ5N8TTmx#WuCAFW6l=; zY$qDCuo+ak;QW ze{n6AAeQrZoKq1Q?DQ`fRVL|(_v^*MTxU2PfjaH=?abOfUDM~^(P}5Z{)~2dIq;Yj zcK+CtRsPdwbozLgSNabdUiulo=TGy*{O>~JwoVl zcMH~1beo0M>@u78f=Opl*S08#o~|NW39QXp?k#A;phBMOGRrIgy)PIKgaUQR7T;66 zRAzRyaaJ@ss}GLr_uRI-#P3RI4BrhE{DcUdRJ zcy)c zzGiM3E}0VVo1!|4TX=K#%|G{0r29Tp2MgLBJZ-a=`wb+R&5XrumbiM!9^xI&!PcUB zD@z?WXUaa~&1tDI8^bT}KJ}sNST+&J48WxlY16hsEW<32h{q!3s(wxrr~eV?%>sSB_4Z%B4#3H>aoUMAa$&!-;4Dzn5P5c^tRBeV5%>ZwUt3V)Hs z{oy%ms1?5H2Axmo-k+sbY5R#dZ*;GVkka?}_xF3s-Vx(Fm<)4zeDk8&;f;Hj z5@S0v6)>4>O1c`JDn2^{+)&-A%V@Jq1m$t?*)!Vd>|leTwmWs;6C}tw^z2mO>hu_I zf~AX3FE?J_{`3XWG-(nuJLy2PtlS^-7>j0BU!9Fr^w1Q~qj)P;IAxenMz^$B-=C<1ji>}aj;VkyW-GHkk4z~+g$SZWpIv9Guhc$gd#zP*v9l} z`xe8@uYUV|!pF+Y8}q5mI9nEYk;1d&nz_AKoLN39+-}UhC@aLwIAK2NexiFll~Ti7 zVi^CDCr-BdXWenW|Kat^Z@)$?^d8W#|4j^m%h5Ec`ytoel!XHKieI$}I^)OJQ4%El zM(z>&96$2N(ah#Ns^P%8fHUq$Ody64MT|bod~5LFi!yao6!1g2K-!ufJ`Hcc6 z5tjONAY|PEyF<9wka&16yGWB-rQl%W2ImT44*Dn_NM(53jc6{M~E1 z@CNSLO$0O#2X-hl3C^RJlC>w;9$w5FeudN6@tt#bKw~$)fC$JC$tg8FJU`t5l+w`%(jij^ zv4s<^BNNZR3_iNZbVg$4Gs}*t)ckYg_JgxOP#A-$$#X^megQm!u}hKbj2PJB=P7V_ zSZ)N$viA#{+OoH#ikOUq7u`f$xiMF}=A@hY>f=DClxk<-5e**-`9N-mehff}7y>fn z#06~)i&El116L$>AUFU@+oKdc38DdmWB5U?yD7U=0{^nRiLuX{_Bt=OU%%-UD7YMU zH!}$=!%zKOfkK=qd`;n-9E}EjzSVmz8lV^XAK((W*%{Y*FR8m3q2}MDSGyy3ELUdU z)!hs`uiwCd4fy;{u0ZH1gM~cFRj65tVmzt4iF|pBzZWQq^%Iu<>@t9@^rWFTf^tm> z709I%p6kzf74^vBNR%sZ&PG9h_FM6d(e#WHgUex3Qn><+r=w-b&S0=CIf^sSeiijl z*zVBrZ&YhQ)5y`;C{AwD8Kbk2yCm^^*_G!@uAKU3!8OMm|Asp&1NWYdKB7nE7{>xd z$*m9%3E9??KGb*d#3at8C?yfkXZCn0tp4o-=!xl0%~yKWkO3?_Ob~@!cyY4AreP8n78`G~nlW5z0WV z&!ZTZN3mSSL*oD`qrr$@jW6K)s6Rn^e}Z}wq53TBZbn!zQ*<#xwt*PL>u4Wm_niJP zo)EZr`sXqA-Jc1Z9m)c87JiumJ~jI13*r|nFonH!k`9tfI*X`-3rpOq5<~yaZjUNe z8&?D$&@aw7E3(pp0TikwFO+_t~R^f-hvb2axdl%u3hx9(T*vie;Ne5tWyg))_f&- zNKMABsI8=fi1efvh1`$Sl2WZ8zub)P0a5=OxU^)vik0Uf^kwj*N&Re|Ju4`unoePD z>yM{T7q*%GdRG{wDp=U)@%pPYxTD|?(=gL31iAlSH&*T5vNF>K(@$pyJL>GvbL<~r zQM}W=T3dfy$oJM}*p;%4A3Oino)_}m1)v1*hG-rDOJaN-pqRP5w$HzN2W!v}&~X8f z%=*(Xqum?_kWs_Du$px@x&1_L{20=79tYmr>T{4S9~@vR69h!`9JoUz&JEmQ06|yd zIk91bje#7}-D=2G({WegJNN9QI1Zy$aVJE;w%L^4G)S^mDnIAh7au~8Ia^t*K zR!Zb1b|oal)Ceh)C5ILBG=i{Ca)6DL91_c&ZEp|;6F%f+*mc2l<@$pzWaEgvZ`j%9(hYCA1sN%E9x~|( zLp|X&sq8%9Lmv6yfFH>j-BaBp7VgnBx)9Bs&riVCCOUWh=w=KQHYu*WR27;x>~-8? zIe=E{fu0bYz}X^yGs01TLzT^3@-TQHn7kdD&aAQ{iUb;8amdG;9vlMVV6_edVd6nbGMoPWuHm@0!D^syR65s#fo z-t#Zfd&kbCTfh++8aqJIyw2kb#_o9Ni#x6y^H*Mcf%UmVVD27!K3~VHVH|{R(Ra_g zSgv33I4OHIJ=7q-TqIHq1~;4(=XJ~TgLs$xC@&QoaS$c$a}b&KMa;ojmh=2e=njFi z$e}10UGnc(aZkvPFYw0=F9?CR8M%zQ>4~T91x>)|3`uzspu;l2Cibag)q?|%ry;XUg>IgER0u>#251f4JaY-N6Nn0Os&)(x zrEMfYfq5?G&>c(}yc3%7A$J}w7c7?8RCwvCQ(jGSD&|KS{7+}>=DFR5?!Nw=3rZ_lqRRA3n zpP%Q&Fh=!A;@s~!#7LtOno94u9*;Q3I5Xs^8wTA1&__{HzjzvaG$ZLPf_>g2wqx{| zTY;t$`jQo<(Cut|QF>;P{hSiMp{LKT>Gm`-&(z>LP5`JrmX_lC_bc~|T9YGFq)^}wa2R{U+lB)e9r{ zVO9Y#wb!mx%eG+J+11LPMWtft(4bPYSbA>@W*oy1f~2HXsWaA?Er5Su5NgzgsHaqI zmkqnsXjY9QqlzpUCD79dSfJgg+sT8NwWV6kK9C-GKzcdT5T(D^O~Yikv_{=Zu98w9 z9oDW5_{-vDdsMIp7mYtM(CTCK1z+FsBlEDf0es8A9zc=l6 zlRc6Ixy=HSWBtGY!wYlyG}^7?YT=`4n^MdSwx*Me%tc3riTYhgFpgVh(cZ5X4=gIR z&1(9}w$*CX@D-VBxyV%o8OJ3thQ&0cjGd;EI6IP3D;`&B?V7z`tW=G% z&BY}!bT&h_>EG+^+MZ$BjeTT;A7gP9RO$y-F1e}+p44SeF=|{|cIBWBj7H9sPLvq# zA>=GgHVsL|!P2*?mu9|Mr|?(jsB~o6x@sh%3;M{KugtR9XfjJHKZs*BqjlIQOV|Pg zUJ|lPWpIO~aeOV)Sf)wLS0ojg)YU$Za)j~+Uq4_#_RP*(GX3cgzp=(mT-YPYd zd%56cgv@kV6c-A`tdez9PcJ^Irl%b_)Q5x(hJ<)4`#YXL3`jG%TuC_DqaN z*(++5`oRaPSx2SS!p_SV^ztRW+@_bW>AM&7{R{g3CB1n;KfECDnvvaVGytobaK!0A zu0S>G1VEA80A|O&`)3*+`qC07{aF3ctA!nz*koRlX-#Ie9JT9}W8f#g+QzYDC@e+G z7Sc2w6MWX=QlqSnNuF6)$pCM#BKG>4XIM;QX6dkUl$7UcVJB@AynB;pGkB7gjeYbi z88%f~v%DuGdp1EmDl^r|h-&Yfjao8Y@w5OGN6_z;@#0FYS*`4${)FbOQh#rkjiylt z*PJcYS^;_}eqi*@{bI?mHBsH-5BJ@{ZKYYQl)!eD3{mxlZ8iAKjXmk#63q$TY13?! zjB?v7%H&bg@S=0gE&b}bAJT7qZJs%;qzkj#_n zvSc%Jv1;PQR?DpH0SY=RFP6|C>{g|GqFbez3@21-Hf07ZHJeqzvX!>^;jq}UPa17Z zGqdH^0F~k~9aXH#UZq-Toggok(aKSA&jLJZi;CqkcMN7Ee{a};q1M7+v3vw7zA_2b zW!Y{OO@KfbtJTH_yWB?Arc;yp6%fQMm9nH+Z`qkQ=%KUNtl$sQFrnHB0z%75>JDw` zpk1Ng7R{s^m5?a#xv0MT(=*TDhHqImKzRX<+XlF-4rro49%U_~1aSZHxB*lIz{F6+XZi9#lYFh#|7t8rlP$SKk#6E~WbgGya}l10s;S*%u# zsvdcnE|XO8+WUr5aO+O3x(&_{e-KYyCE2`YqP{I~TZ>l%6^d^Ar z$+)jcB}rIeE07M-;S)`y(O{rx2-#@FItct^1|Lu7I81+;X>Q*r%0MbZTq1KlG?e0D zR!glD6H?g2hS@5$Tb4?%8%Gcaj|@|=pd}USwj$PzD$ZhHd+}}&51CtY{-+O>W4lPxhlNMtD_ubMf&yp4yd2I;5@!8+& z`mXx?V^l&afvy`~LrSZ(6dQ-V#l+-j6V?ubli97WV$;h_kH&Fr`_WYxzL9+-8ZuNS*SgoF5Ml{N^D}^lA zyCT>wEBcwFMM z(jeHDVKRdWF9&7umPWAPN+MVXB@rxYIFen0aDq?}&5c#5ip^?hCEHS6#av?2TX}+n zdUh{64yb8Ehw;HHh zrRv;kvxawx*1KpPv}+>bW<*nrL|BMqmPr}GT1my(q||aSr!uk@Q*6#3?x<=J>Ai8n z<^vVg9SC2eMHCwrKwhagL2;u?x>C1~EJz8BRosp_PeY@7TQ<^Yl)IOGovPwzpz6Y^_F=eR7TRKAs|-uaGFY_ zsyk)`LTM?wUDzTo=`U4zC8)r8eQH7@4%3UMb)axI+1w%)P8H9r&?F)AS;xhiR{MOY zRI8%FVU2cHQK1#tYAwPerCM?>v>p0j7MqEkPIQ4Voxy@(?C(Qkcx2e%HG(votZ_u@ z<)TTbuTmW%r5-oX+&E#wH zyDb+RWeim+3DeY`XtX5G!iaiC@{KUc<3YIsr4!JeaacU6G}`9U>wXXE&rl0XE0?2V zHYBr|Vs4k)U|_=o(i^#Uijf^rHeKK&RoXO)gR!kyPcuo_%i#*NC z8x+@ebQ8ty*!FxO+=jP}{5tl0Z#*5_3CMyZvmcqAfgF(3VC41L{d4G@Pl25YU!P=e zv%<pk!>2?t3mbkC2vq_Iuxz!*2b1e1RpG=bQ)SGpnoEgwG41voI-i-3*u2J3cPT z)><@M#nJqQv$dS0x=}oPDS&xpXR16*;B!;N*ntMC#eg2K~98hOQG&Lw6xv zkIpK2Su0aNE!226J+1g`>fFQS!x-s7zn{bKh8Jq?Y2?~t$3Gvr1AFX74ozckFgjUw18jo-Dg_-mP*YPC%L19&O< zH|+|+7wE|BPx>AuWpF+;H^U4tPWNh^QMEIGHZwcyQ^(CL+WXpnqQVD@I5hM1KeMrL z0Vq}WkQMj9gbIS;W-H+tE|>L^LAeM(H_yujcnTcU*<+we#cK1gxX1ni5`djI3FfPf z4}3$C&~7$$g677}M)F3v(&9&34JuaUZEWjl8C0yFfb>`s9~(uB_%=f*xz{g!WDnKJLAf zR;5)Hc5y1fQv;_auc1mMODj!EWh(7c=}_3l@mg_KE%UjKn+}Wc1%Z!=4#9L?wA3*V zw^n2)->z3+uT>=F4a>-bz*%V=snmd#k`-GxxP^wIoQ{;k@s;lf(pG!8`Z!pBOB zSAhxPd9Bv2SCkqBD|SBQU&?7)POs$jT29~csog4y33N85?o8v`bMaSm@z-;4{q#AT z5n`=kh0PzL2g12hZ}W96lRufyc~N+%7+-$`a%6eN5#}{6qb6K`Op_0W)oe)fEj8M> z83e|MBp#Bb69lY=sfgjxaGB6svvC`Fr4cPl4CeZlQKvHKwu>kE#(w^TVZ5jEUJ2#| z(TwF2E3ZT=AT*aClVD4b)e;i4+I#tznecWd{7Pxt@CAwzTor@R*t63P8@XZK)#rS| z37%M&QsVGxrN)DR4w=djBCklgd)5!VY_y=ZDeoVmKyeoJqEckw{66I&moq-80!c#4ybmAuqp-)O7;*m@I6J9UfJi9GVYvkq_LlGioT_sZyF}sNfCxZ zL* zIvM4ZTYkUH$~8XZbsyfZRKX^{U*Rh%rq!bTMuU6oe#69{F*6IyCA49!Z`5cXz@*9W ztpnVdbR@6I-L z@VD21LycIMQe$b+YEgBMs%5IGvZ)&TEk5utre=6KsXke)>?r}KTG@k>P|ZL^C|xG; zcq2zPMJuCh@c_-FU6)JioF=yFne_K^IkLsNem>^m`piEx*jidY$n)UMA$Cv@8L8U% zAk|uJd{DKTgtRL^)eQ3hTPoOWL$zADd~$Mf!n$?R+X-q7)5t3mbggk@Xy=3^Adb^z zs_R))2ej}dj+Rt64s@W!J}7nU8mTv^-pCuJ!-in+;$SJCHPRxTmge|N=R`Xl%)#2^$3;t0&Yj4~lhd+;6ntORHKW ztOWbj#s>~??O{-dZ5E=S%vjWfUse5pcnED~>pR)$p$FCGJ~a=iiKS?TZNSv5w&ANF zeL4}8Bya?itjYFN`59+^lUmlMLt_$3#)l+DSzUQG%+^P7CKTVgpjK%BiHM40YxNF)`tUuaFQ-x2QL{R(qkE zhJokoQ|eBgF}s*XRa%#6R1M4lrU5g6%1Y6EZ*i86I4|6eO+)-vO`};Y^22bJTyPo7 zDNRTX%w!s7yAIQsVe*q8Hye4(t_@Db%{(Q_DbMn)gyngB1D*pz5a~(N+$ZypOzyWl z72uL~oh-Jc6^~$&F%1}#%gVEYl*71kMwSz7=$3K7lcGB3|6k_b_PKE+y%YRbD3+>3 zkOWzhs;avvkt~X$s_2$THAz)f4*;n_5|q$I0&D;*Nv%}JjbGM|3p?&EV%K|jvvIc< zJG<`jhP^X(%&zTS&qdtKMBJyIn%fWVvA@)xa`8M*Cf*2AQrWk06(ukMBr+3;e0^Si zKN^aiwS@hcF(aT?x*OHSx#=QCJkh;Zkq1?zh}hd1lK zXzul7Fg3*hXm8PGle#YMq|lA43l$6pe_r7yordg3ka0o{PHDK}K^n8@1UC+TG+y;w z`A-D-ZXvCBxk1#{nLbc761LED2xO%Hq@Vff;K9x2ip zdgS$9G+JDT#eZa)NqR3j?W5-};P(i%>v-tk5!CLmL+rI#uf1FQtV^GchjHNnuiop_ z(AE|NaIHF82%^pq4!ey#)Q{2di0#8)-GSM}K07*OM~CeeBb^@jARKk!u2ACRB=xe^ z!MAQ9o?tv+kiIt*qunBg$6ySvN2*XXpN zh3#Xgi^oQnld;H23@SnZxj^p0iE*5nu`H2f#$S;Jf*O&Ghs1S2l1h{gA{50wLT_(r zS%x8KaiC}9@JQucw)h~4?1suABeV^Hg`cAG%wc2D@NjT&?@YIrWU9rP9ZPwV9W4_X zg0wF#GJLf8_@kR(#sCc3%UgM8%PJS|5#lW{qB`Z^#f)@=*sE0Okj{`Fb1=TEOM|pkb!VOc&t(43E&E!k8pL7Ejs75fY zp?!`}3GC8v*(E^3q8yz|TPFreUqfB-na`S<&`PeQytf#>In-hz^y+EEw?b4IaWRzP zy?ggKLU8roy?cQGpT`8wa{!x>9pluvNJofnDQ6E;WO2hk|c#VO1uR_ zoRap8$#l%ov7nS%em-t_(c{Yp^>DGnl;?B@NY6i7|LEzXJE?`N!OXFA_n!bx@w@k zJMno*6w;rXEP73bKs!M9113O@8D@pioe?2gjcf<2aB91NJ{2L1@r(grW=|daEj~=Y zP5_3@S;lm*Z4zW-pgcze+Y`^{9HVIwL5;%mA$&A&+HvWKq$`nGk~qoGBnhTTJtqrN@x65T#DVKpWN3O7K892$+WA>n2W)HS2Y=x=S z64FExEGUpkAeoNf(GjaB-DQ1TMF9lj1xF|3%N*N7q8ud1DOZd6L~bOYmImcK0YHPp zwxS%X8UWk_1NI#G%rbHaG2*53X+H8K(Ud5Tt5q{;wnkvKg&W{&KbX#8A(=zK<&ay* z<&Zd%Cle;*<8jN$4=acvL}pI;mJ71DL#3ez;|AZ){n)oCF&S4)K;LQtaZXKO3AJ|8O(_tLdnQXVs3%^k9gl;^eD$5fsgO03RAUJrtl4HoJO@io6N?@mcX9V z47HDw&4F#%6Wf`dnFH3ctx&W>dwePG9P;VnkPP+0tW?39&TZ~aSgjA!MXe9hQ*Ah8 zwINuF;t}SY+IY;7XluSnobIw3{C8&)Vbbfd+J$LP=;*Q?eeebkJsW>u0b#HmfJodi zt@f0T-KjBvP{$avov}W6gSLYGOIFt{+XB2$R)-}+eaPx)4O_>B0v-+cwc)01I0IOS zhyZL%N9F~q+k584)P}jcZa1yr42ecq-5!rQ_GjIm^l{$@G^2nbTeoq(2b=t7v5 zBqG2s0doVt2xx+UOIx=s50EnJwquXSV2D~rkq4{0UVF;wXv53uGmq`UrkU+>K;m7# z1Ksrv_t-A&Z`f|woVH`+tWQ*o&iDB-pry^;hr$Z6#;$Bp4S=j!TNL_ z&uzHs=zTa$Cb|Q^(=+xQY+j8ad!f5;jPaPgF!U*V0ZXVCPzX5e_VLGMFD|FHcVb6 z9?r%F|8dy?j!^D|q48}Cx<||AFWVB^h!!piS-U?rPw7e!bXmKuPsXf0)xVq>tPQK_ z_S7>c=2r$g6y#b#$Q420@57gYgUb#b!!j=5$1|J>jF=OX#!&=`J#=ieBR?b~V$Ar^ zvF#BYr+A>j>rhzyLV%y!F7;XnAHlWrA^X%AvQKBG$2!IU{s2L^14!pCWZE&vh86<6 zm2?DeaL1q(6zdpZ4Glkm;W8wGMz5@6xQ0U)z-YF^L0vlr+5Yo=LB~KdSk^%#*ADdQ z4#L@X!4eogau;BcyMr@h0zW{rgGZNj4c!@>@t+p}RZGD`4q{7ZB7-g;SG(Mbnsp5i z{$PX9J+seQ7ucR@OzmPx@#wHF^cy%(pYI~TE5qrbi*?`i3^+idr_f}1@RD^StUX=) zfp*!Q^=Y!`&ibb~7IbHWv)-BRu^x<91J;8k&@)`GE)0-C-q$-bY=GMB0jet;U|Q_i ztOxs|sqVnY3q(eE81RV*!gz$D99dj21tFUqStA_e_^&a<&=`J9!r2u8h|`|p0pI+{ za?cE?B-(Dh42OE6vVFAjEWNU&g*?jxJ;SFXI2u zzKy&Qfz(;MiJwiu8{F>ct-=MrdKLss#0d9$^wyH$XdFns!UaZ zpSf_gk>9*#rK|P)#&wygSvAWPxvW*#HfS3vRi@-h<%-6(OA@POs--fMD-wuOWTpY# z>B{{F*<5kET&X@g{(3FW+@KcJ4EtQoFeu{Z(PA>CRLE~-Bm$>}HC)D!mhTz9oMWN{ zp2?+5l*lX}XQC9E33DsTN$HhgFTf==oK0QlWa>bDPJE3hkeMTGB&dDe`S^rz_t&5B zz~%-7xR4*HxL}iGOuc|5-SrS{o&YzAl6AYaYn7{8dWuK5}Xkef4QE6bGpcoxF z8IV~aB;(;)1c85lY3UPlKxu|~*nJi??kYqiYQ)SN68V_05b{ad#Vn2U4~K?_8Za#n zE5Nioe1FsOo;*77*o@zwi3l?hV$#jL#Df+hv4?hc;)O^)O=`s}+kA&oA^CF&gp>t1oRhD?{N_(QkhuA?c>I`1d@!9R zs^bQrmq=z>72DP@C6DMB*dTdLit3Qa$Ugc)A6|SZE~W)ni<wj$yG`AmWhrInzM23Z{n`PP7VEiBwy({f_wz%!gu z{4-Qd)0CsALpZOJ;E&G4lWV@%kH_-oAMuo=jAmo)>S6xTb=2P?i5pg~_Hahza||`0_@2qviUW=`^fGqj9IS zpqcVfiAFtak)j3WK$MZraaD1gt_n$lxTr5ptpLxmmEd`n&K0*O_7HnYg}N&I1=pl1 zi(W`*{=vPZ_HSNGxwMp)ZX}WwQomzmJFWSuz2GyK=H_`2!K5Ai+}GO$4Y!jaxJMDUqvdZ>*-=#7Z)_GTYS3^>-Q;aWX*x>^JPc$K)x$ga_^*087Oj0zcvDY ztYcI`^K3$iZ^zZ2p+PT6>p7TCudi?Oa$)9Un!x3OJ&wLvskDIZ_U7cn#k@-Qb=Lsu znVGwgHH}7P3AvSXyoE~2@z&LKdQEj{FmZFC3qE`L)|DpR$Y7i}i9kuOuBGMgLkXnw z(OQa4KaobzN9Qc$>Nc)WE3Bos2gLVFZiPc5=a0do{wL!SV|$H@shLBK4qmBSMRc{2Fuwy{rIJJ8>;hqm%i{s_RwBG5RSLN(P)09S z5G2~1JR`Zj|D30TLLNwRq5~)u1GIBM>jd(;u(5%9rCve)*I_D<#QY#8gLrqyGMvx- zLauuM7P;JK_wSO2b^|TB_zKZs=gIoh#~KtEHuD$j~fb!LU(E!%{K@CKf5!Ri!xdc#7tg6yH9la7&yrEiVQ8 z)f6#rr(ApvcaACQA1T<^re+vvMmHcg*uSOokRd58XdOk9RSJgLlux9XqCqa5ACNj^ zrjJW$eK<_vmrv=|Fr~W#11SYlXgQKX@j$A7nHn1Y9Wd5Nof=+>3^q~-gaEnNDWGRd zjSVja{nH+$EZc)W*j=Y=D`h(=R66u8Q=BF&MY7WrjmRn2@KQdTcM2K2Q!uoqP+*qM zgZ$qqrNumy(%lryt|^>+QZV_XP>7P^HW4Y5dZdKFBgJJIDUfBH>YkAr+9{ZzQpQ`u z@=`){ks_HziW{n=M&^YvOpR9uACwv zLW%?jDUcVWP(+aOoXZr=XDQ!kBsH^KePpCiCXnJXfs_yjq;N({;bfM+4!XY%J)U;ty11C^DZs!=F+KjZZ0Cf8Z=*i z0h@&+ikwTIh zdMFz_G|Qi9Qodg3lUTlRtU{zJPmCvD4VPt_?`u;26dqNM^BHNo z0(Lynx_VftFie7NZ*NqB8dJvk5kCGF9#=CM6ZQgm3Q4(8wJE2Xl)t2RE``#R<_o*A zsIYJIRNV8jzu0wSc1YWmj8x4RN+es(pOlLs>1xs~__#$1&ytd8+$ss)<4+Q7Kw!Gm2Oa=tX!!+VKMO@EIBuzKjs`uDqwv-W zJH@R~Q<=_{i7&IxV{a9ti7BaW7LpR3DW2>we|h(W!(}Xo6Vs%HwyTr^FH(+*6Fg~S zPrhX_IPZ8?&CrWQzTF+_3Fl=0b?)*SxVNDVzGZt-mFcdOkkI6oW#RRL6`BBLK$^e9 z;cp#>zYQ^LDdqfD=}J;HjbV(ENeqpW+LuE0f0-ZTq40h#ffUvC_gN%7%~VSlzBwf4 zOJt$V7ZUMtE_2u>c$6t!T4uY5BTzaoz;5za$i5num=)B5 zzhUtOQP;OiH7tqBU!`Fj7|K&&R1gv`LEBO?dChOtT)4ihhbY?+vX6JB4e)dC4}Y@IhJ zPPQ_|#YC%0qve zItGWnw4*Mait44btaL8{m`sc*+#V?;r$Wmj^KE!+%-oYirv%M+*nNV-bAk*PYzG~O z-11OEK6UidiO%>v^p#`hx?|x0(=R5MNGLc^V}JtWH{}K@j85_wxZsA}gOV+35(5tz zTI0e52S0F$45Gmv8pnyEg!a!x7HfQOG%4RJI~m*pq}PhH^MM6AEa_@RtjyL+OZ7`WWSDiM|UheP1?Ha zn4ci6gdszi)Vu0=MXG8zt}1?ypzd7?_E15`@V8Xh>%$|=LB6fstZE|^$4Ft07tDhP znl#rY@@fBtWFKcU*86Ec7Ws0$U_6@NmRv9Ig;QzSR2JQZm5_3pH``jdSW=F!v03`M z`~3a~w75Dp`z!J(Mz`!0<+{YTG!lK2s(Kwfx1X3Of$E2i(v{78U0W6=(OZ z#c4uu0?AA(;{|fkMQ$IVR(eH#A6M#?G`AJ-77ns$LUNwh(BifbT}EOB5B5*jtD(1c zurhD4xH&G(wTNRBx33oS!D8n&UZkQgFK)BfNxmw#7#zY5w4r)W@IMv1XW@3U`iwnO zSEcywA2kZpY9Q`aIwCJn>Nk%GtxP??FD32U(SLGPNF-u8rLUqn?cOG*-F#C*Z9~S0 zuAhgtXBl49v&StbRQxiFJzmLS7avL&Mr9W~eV#mi^ys6zIGMWBa`KD}6(qx+?koH} zsK1>#CL>R6eLR*YAP|;Oq-c4t)f=24!nkc&pjZ?O?2!$V7wlA+IXPt$-7-gj@{QK& zj3oWwR5&ug#*0ISyWS;e5pCy<;YhOU4A{_g?Q=^8cSQqj@+UGk?#HxcGpF1k8! zOkata)^z5{T$T*FjcQ3o?YlYU3Q*f|C8^3R{ViB@8?tA!>3DW((z@Jb1i6l{4rO#4 zGF_GA8 zdg|yyLx%1(m^p?FX#or~fCT$r1U!7r8*atP z?sN{0<7NO~AB`h#=JhS7Tnro%-#@ z+A=gM1Y;-y)`~s?Q_Vh(*=z*vFY?%cgv1Ffswof9NU#zj@WKQl(!+%eq$Y0Q1z47mlUBKdouaCmnqJdbI_LP-TT)h4!Rv2+eHWYkxOO`YS})l(Ebw%A zYkHSagBw>;TvJ=UxyvL-Fp9?+zHX)czanSVbM>P3P*!JqdwYBEJ>e6VrQ)pw6l@hG z6oCSNSyr)}=7EbT9n=w~ONtY=peWyv7A=V9p#rp!Fil}!XOCC4Y8lIH$=+E6K_Wxa zQ*KocB0x*y!p58oA}GY}2_z-UVVaBhe8eygl8JgF@+?6<_!b=3heIhye;%J_fNpeL zGRV{%$N&+oAddKq3+sHmzv-Sc8yf{GsN#=nzD1nBM@VZtQrTK&?csuJbFd}860j@t z6L0im$+Gy0C%XJq_}1bNoSmzVYbkG*BZg=kXz4x!J1%fxp9fsf%X8RC1zD5is*l}7 zQ0wSyKFrN0a8q^o!*u@2|M0QS3tBU^sNsj6&*03s7}&#zsCDNa7e`-h=0Cnh39*kk zGsbxde}zd`ZEOyVo$<_IHOn)%kTJgki;Hn@?F@y^V6Y1-h{w&MW&&(6#lU%s;KA*<^{!^24RGu`nVV+OvWXZFBG z>-IYM8^X~VjqP*8p_sN~x#su{t2^ez1qabf-D11C^9FB2z`yd`9uEzxV-M-fQFKGQ z#9Z%hmw=%wd?OF=^qp6bF|_@%2Y)7KWGn6c}?t@j_~(9*PK+!-5(T8PJn>{LFww3438%#^tU70S}ATw1%c` z!P`UV)Mm}MKnX%Mxv#$k=U2xM?2Kpb8Qa&-ElPUdnAleR%p8qui|vEE8@>&O=!;Vj zJ|c$vGV=1!MP6Kff(b(q3y2~9RVXYz3!U+5rIYYyp(~zYjDrY%t`h?fA|cDLm}oKw zx?|fGJ1~akYyutSfI13Yz_cjHTMwNa&Ky{C(urS0e(JX!em;e5V>m|8eCV7S5PX#b zb7=YXdSF@}xHnJOf$4ge9q>Urum=O(H7(ZC-|Ao3)E-*;+e_9S5BEVgf$g7;yWq0R zI{^Ja9{fcP^|2AOAw0t(LMSL8oCU=@)TjET{_4z}vO_SRIh>6~?9gy#3_srCcs5~& z_W6)Eb6!jEWXE6nGLm#u=ndy3CgZ1o*?!}xC{TkrC`_-AD!x8EmkKKv= z#$ddO(GO-s4tX)`0q3;O&fKwtGru~#TF-A@b7>(zyI)N>S0#0aMH0~Om;x8nKV%Q9 zIJdENiKiQ~W}jK6S2BfWR1dL@AZQ>iv%ujcalxVG$%VUA1bGL|SYR?yH1n}^ub2Ds zxh{IUyYZdO`o_aYPwxUO$jL%(a=KVs5NFMgvnC~OasuFvVi>s!WP`9>a3by^#b;QD zxKG%+A}w4F;TYX34V5OPEykCBSFpYm9|e;s9@FEneOa<{i<;((h#^IwqPmh6(*@@I z>nvo~q@rhr25V9H%Pm~_&hL|NAR7Vi9mJ%B4Y}=vFe&3}yzBhT87FPG`ZH&&Vqw!c zE8-_ZhCKM;G7@aXgzzn}lS1<~DV3_aHyUwHNB?d#}Z!)8x0F*MS2GKMC#R?AJ06Y zjukfH@d4>>Sh|0}!rfO@%z>PetCSACXT=ZWn3;sJhQ-n4ufT&^Qbb6MNajr>I9JzO zsBc)lD=NUcs~n4x&p44w02DBrN)H}noPwvH7WCneKo*9XG>XDdfa#{CynnwYL z2#NrHi;#f$U<|f-V$cqTXu28&XMA<3MInrk4+{96TDzQdDMGx|ZFG9TT*PULfH?>We}MO<3((V?7KdnbkSdMU zyDtOImu@{u?b55&UjR`{ui2{i*lwHcc7QDec~*!}r3+jiKus;!IpB$a$D+%AtKDoN zg9K-FXxDauHGa2-9KFO!O$g;JKzj$4IN%(JPz(^i02#3Cd?o=2K(h_hFFqzc0?Z5a z_-?(nUjx47T8n_#fj`QJAqPZyg!n#c0RsF{tNG~>z-=R>JmF~zwCqlUP_kdQJM6P& zV}DnQj*T3>vLAw%T;%DB&hYej9FxMgZq2cX03_@ngcoA0dL_0k%T*@J)k+oM`pREd zeVl5rM>}R{*i%po)%oS3qH0&y`K`iD=+Zbu%#DFhAKrzKZn)HtHUW(ESaq}aRsf88 ziH&QZ?TdN&Dlm>=J<^YIoYNSDxY{_U7Ey*?RCAJ8msH`ZubUGCVfZ|{v=kOI1#r&D zaD)8Cp1arDJjgYF4GvcLmrFf*0ZF9Rt{|4hWAU4EHLaL;_mnF&kn8#1oIefq>S~#|1H_jse(I!w^JB z1QjF<1`^=FCZWL!&R_aHaSVdw2{?ceG=%2?Zlm<9IT0uyKAH&lhjK6x@_}Ne^_JuF znD}mE{i{ok6haQB=7nhmZl-_{LI@iKADf64OSV`GkwT^*JH^Z#W8{N^AfQte99Ce0 zgj`WM{s%Z?ojJCJ{-<+bAaV5c7zhYBuwq-7;YSBQGKPL+z9%by3c5h=iscXhW(m+B zVIS9%6QVIdW-KBTBC;c&%<8by==DB3@z0TGqS4+97%95F+QA`v*=X&yJAxTiIyqsd zykZap*JW>U55#<{Usn>uyXX9OD2R9oS$FC=Lvu7b@xstbFn&F}PzzN6Q9@`Wz7r{^ z1&N@QI66`Qb0K0%Rb@6FnLcJk6hjqLAh+56!#a zU_!34N(JU<^;kV-N>(l2KmJ;i%GKo-;KK!Yp!W?(XwF4c3gx!;Q^H8r$tC57##~pM0dTUPsvk zSLoN(g9CDk?uew6ovwDc&pPREm-5NFJM@4su?A{rri!7 zd(OMeoLjm(yjBHP6Gtmiw({kS6s+eLRI14(Mb}|GrZCyK>8|hv9>9*{aKRzV1=JDx z^Pp$X*SJq8SAi*r)WY{49JBHY$33bphg*Ppj}EmH!_$Ylr$@jRLc}Oyr+=GdBZkr3 z?Z6Gg+F+|ZSKWN!L6t-0EItjw0^th0Y6J7r@HaC^Q3HzXRe;*X>ap{RUF}VK@7a#y6i#{8g zHUk<28}X@4@~UCT#)9LkInhrI3Ew)0uQ${qcpt#6ab7}J0T#*eAI$`kJYd{~69kEO zA{;$Je^3;1MeZ^o!5%%FVOS8O%yWGNq87O-oCE{eN{9_CfbC4;Nq80|O4w!<dKHNd z>+RY;h`vE&zSC^+pBn#daB{_Z8(ABXF)|c>OY`1KR~O3v3mfryh+Cmy@*ID=J=WOeRPF6OY77_@Z2(X3(>L1u zHu0aoYyhP>60B1!~GV>O1k$Z4&uLfEWUZ3>S1={jmVlBt4G1O|esF;y6dilL3 zuzc_Bw@G<&Q0uYh_1zF7IS)WT7vXNB(`$Y1BUNAc0 z^yI*f4#56Ch$Fa<>vENy8}exJtPV5bdfu}OT}(>qr*$H+c-GveFneua2IQ= z8II9xb?fazpcUV5KW_qeYO~vFw~$`7+2u6V&2C#Qh#ueUws+ylcB|c~?e*}s7_AN( zwJxyqHoHIv+wNgyHzH6Z`5I*7L-t_~)SKea#EwFH9^&0T=8f18k zn%4nx69cdJQKz=wY_%F4?1KCP6r&AXyL7Sfx(8hYe(7-tiM9)2Y`U#>>t(YGG_Nq| z@b*bT7$7Osja=`FTX5kOgK7s#@A$wOy(Th_Ud1A`ft?%6zt8*qVXgN95B{hJCop6A z0Z!$N=bRz_u+gald-8rmEi_)&Bj?Rl`22M|!fQXq!BLMLHh~7b+x7eFA%4EYPUB^> zebj|o6=8Z+aVB0;oa5^qcG|l~^`7{B%|tBV?`{HDbf*SQfSA1TAV$MZt@VjoXncx+ z*Tl7r?A7>7gDPn-MH>#0YWI9X>;3(sL;eH&=s_o-Ycyh0IC2vj8yK{@+r zr+3&S9jzF$`H84>eo95|?KWPjg+meOQsA|J=`~(E+UfS1J?M`?5VX3ap(bAGgM(TJ ziLgb;f9Iov*R1=h31do+H>aLhjBJF$9SlRq>hT2$+^w}3uAO|*JiR-zLIWRk3lE2l z&VJ)%V;@gYS&g3%W=;%zDgrQb_CRf4>#|;_c>pZZ4Wg0;J$C&?t%JXyNaxz^!^1`g zn4*d3z1`}*XddD@ei8_@cYX`V(0B3Vu+wbSn}@Z1y4|b85OLJ2Q;Fj|(@@j+gJ-Y# zDOUTdM&lEB1b$mb2kdpT(_yb$hc7v;bfebU>(uH}c()ea77>9x6Ri!a4n}me1wcap zq3?fL;|)V~bG05?MSv9pY1`-7r!jS`Ihw;;NBjFy)TZBG)d#xzVEY)*@8x1xF{Ls> z!KlUZvBn-esB&Qw0&P^;HUo_43h5895HQZSds4#oa|=ipz+~$4{7owQp?)!ErMdZZ z^Dfk&!!vz64%q?8av{sqD;ak%@|DKWUF2Fq;<^=CT6Ry$%0Ol(gGzR>9Z_II6l~>i z8wUbOwzj6Og7fqmUSsO2bQk_TcvdKg1Nl~>Lv!XBGvXe}!jn4LxYBoa#@h0Iondbt zvvq?snR-oP+Ogg@#$j_H<@j?gVgwYkuq>+mGtZm4RUyYJlPhj@udqd-CWSNfPEVp{OyW^N_b!C;`YS#_j3~^$UtoI13jsa)VL%#Bfdx zHZfh4uMk?XeV|Xdz=iXDGIh4G@$g|W&lxCr;$3?J1W%Tc0C&HKdimZwC1^`;seJ~r zDIm(SOz%?dGm=W(Y#L-NvrS@}XyE9U2by@iUUUyM?A zVs9$YNFhu>BRyMO3_7rIjhjnm=`cyXHZI}X+~QW=ALDWNb6x-7=w%O`rvbbBE_!8x^{;h!Rk<}+?{$7;j-$C}RJNq#fscP4nts%m12EBY zh+g0UdKs9etU$Pby96WJ3XVscTfF`iY|5AZd=(?@c8Qf6-8cY4LXhpDRvZrY%!^G8 zik!PIbQVA+26ihj9l-ClvRy`76$O8k2kiK3t(dq1CY4Dr%_%)k0}Y3=H_~vjQ(Bg0 zTSj;ZfSNOWEJ4wNdX_El4FGt58g8V;)4Um0eJg2l4v@J)7a0F( zd9QG0+izTO1jwWbus}xpK=Ugjoez(MW&vjQ;UT~+pMguB<7SL}n)*sQZ%L@R4W))4 z2n!Pv*B7KG#q_{mnAR8iMnsiQG5_&zKuQ18y#Y^8S`LLT>MewXFP_w{^P3-UY;4|s zqoSmTmMec{TZRnmm1!+Bc5N+mTp%rO$lEM3K=>_GiEazpo#yjqOG&AomXp+OE)GZ+ zQ+KMa^bGqlOF}^Kd-k!qnyHp3ZPskn_m6fPtk>I@{AVW|0wbO}Z5Qh=SiQ?$bfpD( z&5yu{nxBwZjn$s8TCG-NwY~1{4yzsRvs&+<#_F{itM9hDV6$J}?Xo)RA5b2!`=Z|5 zWxM+?*)E+^EN}v7?y~3bci8T-7tPjQn}MLAdDv~#Axg8mOI`qs^LFiNY-THV?q9%PKy zZPf9wNk@=L9^l@dwO;p7aC!Lr5Q+e?4_~tmggb|<)9E&!GY~&DpMx;!6V^Rw9yDsK z+pe+h;U4RDUb1fY#oi(7)mRUn>g{)HtOxOXuY2qWWG7gtqgMB@QD;Y;CVTZsm%ZM2 zeEaVdH_+Fj>*S#6r?v93F0pitVY%P4Ed$t!=T^cWZ9I8$7j6o{=dKctA(|~QamMb! z+H0kNK9%6ucu({1g?Zgk)sI~aqCo%w{kn%IJ6#Z#h)@ER7TsCIfu48D^G-`K_tHcc zrnxwQQM*|#$})L?ma&w*P6bz~+%yW|3Atn=mssRpC%M4RwG_t15LQwVGk80Kn}Kze z43rr>6MQ~5${!LT>}VhM7SfSL>U#lc-?fzI1%^DXqabC2H{f7qa!}Z~@P)sHaBS*4 zXZ3?!R&O7E#u}|&=d;5$sH7ULm#BUNbz7%>z+NA$FdSkTK)2bOvPiilL=N%2D<+%SJN0an!aJV7Wn} zimGhoMY@EO@T)qxExCj`R!yP~6LL?nzOu1u4hvXvVk_L`GmAGhI zQPEL$D<4~q7f#>C21W1Y5ix51oIZVvTi_>;AKnE|!020}u*-fX(p#jYJunPo_(^D7 zqHxqv-<=u*Q;%q&s>*SdqN>&6(jEa~KGa`C*LTMm4(A^7cc8_7*xP~gwV0Cy!x=zB zggl|N>pX$6kPK}>vhx~MHKUY@8iRu>F$JmZ@zX{v+2u0J7FTZ2xWXrh@1HgwZajT* zm(Mr^?&N`Ojm*=~=Tx@tX(-4r7Os|ox>3~@;p6)rV?J~ZnpdMPh&Sf^O0|%UzV=F$ zT*aB1y;{$2TqpMe!Zb`=R`RmJ^015(6kRAw^I{W{h6fLq;eBHa!^!BJWz?uH`!JzO zopUvKxPB*a48t6ajJQ&~IPbFs@zTTXr3F7IidC_hL-SO=x=qx08b|Y^(PQ_2T!0A;cc}F z#QIv?zMrYC+!s5M>itUbbn7PVOR_$~_`=q9abaj>rX$ri>;M0HZM%4d^NPg4E4`o4Q>xOM8eP>NTg~^@X=(;k-;}2%FvAv zh+P1l4Lr^uP4F2R*3w$YL}z|$Hn#(dJ8gZfI2|oq-bF5NId}m@EwY$DX}H)qb%Rjw zg#Vo+u1gG2zQuJ_6E`$Q$RPa2wYYwb)_3A^gJz-^nL8oXC#9z4bGm|j&g5+YO<0SKWO!;(_^_J!u7YcL-IBVe8n+m49~ zIQPfag$V4=7lhU@0#5*l)I(zgtQY!t+y}gBAGXH07#Jwz#-*76f8nq%%$l+(0=WP( zHAiHTs=<2D8nTfUGj!nA4PVY+(dOs?0vlV4!4iynL(VLU2l&^VigFnumpP7_N5C4% zwA4N~-BlRaLEze>R1!#9+{qJV1z@R-$Q`=IM#~c z?xGxTYaldS*`D`zj6|zwQYBMesU#?rBg-mUQz?b~ecGqZDG&LiBdqM^48S~?TDei( zLbKXn=n1Bj#D&d0!6B5moB?>p(tO#jZ*m`}Xz`WX$4?&JX;U|zB$zpiu?}sPaqkrO zG*#8Lkb+Rr`y_HMTb&a^#0dkb&+)FT zyG%SyKFRSxhlU&O%S=N8kI&6?O>1OcjOoWAqg@(X>=8HEs-C>GJRmf=Js5_ zggi{x&FXa6U<1P(LoS1{KAAF4M0fd^F_{}M9(@GxtxL9gkDolvr3`a@FT!*O;*JSSk07Q`3_81v&#J+k}{gHIyXI za)~FjTbz98b`dJ#ztwip>BsEa^t>KxT2LH43cvgKPNrYtO;i5B!H@B*))dFH`sl(hoMc`0}Bv=WqT2ge_1KCvEAQ$w<&$O(lo<(Fj&uDMg zXKGa<)De1aZZQ{HSSn?;xLqk}WmZ;7Y7x9JXdNk6nNrTG#TAWQ!ul{P49&MV9rR)C z-M1aqzkq`~W_>pd?E!;5vmKl&b!(`PT^p+^R^VGLHzDGZ1t;#$qV==@RJOF0FWh4q zN&0RWpRo(Xhv+9y9zK4&e29Mf@x#r3+9BE-&-5jNIs^h-BBToha^snPTS?q_rhk|S z?w>;X1~2^IZa~G{ZW>alNYO#{$;Tgm^yDrU!mtG$154s$HrB%y!Vy#c7SVpiF11+m6%5nS-A=&^2)k+eKcuaj3 ztmIZ!W4(2)n0L>NFtc$HxbrkEx0*CDfYDAA6^9}tTVA5JPJ#QVFVwxWhzFpb?jnT- z2XV@TxEBLES)|U1czafZwPOy>hPjfuS`D8wIteZ_9toy`u;=eQyLiOaaA1tbm}5Bc zq6y?*vxybDQ#A9AeNKfNl1vpIoqN+9`Vcd9)dw%5Cs3Udx<;h;atr6Z zByE%L3LRhngHEM*e82o45BPE99a5eH6G#7zt*dJmmpWXG-HUSULU~zdT{>4l)IAedEbp2sZO}-p$Vtztb#VC4-=mRp?5pkYy{Yi?{}@@>LASsn_0ZcdLNxlBt#s z8eKpZY_)rhZk6pEJ?~c8>(@EtqyZ>ZWG64v~sSv&{P>=rpj)-nt}e4j;>jXK($WtPXSXou9&T;zm8|TPflK zmd$tJ+rNFQ)&iML$c^{|zQnp(fRB-7HiqPnv@9F0Q{gVwQLYS0XQgTQh3A2mQDrop zGe+*HMchEDDw;H?Y7z7V=onxQC$6Jq84u)S5xB{#g4$y+h=-&Rs@e^0MwDDN3o_H= zRlr&(u&~xSyk00uB5S~_^NUeUU`v|Eo8T4djkJZepB~Iy&z{V4zl(=!^7kIfPgPmV zrNgzAM(gwRjT|NMg@G>|f@JQi=S(f)%#4VV;8L5wug;4?058z2)Gkgp7K05Tcedpx zs+--qc?4NrxQtT{l@r!TYZ{cbcr6v^I?!-UOkm!$WZRKl!$V7tNcEBYftx37-Oz5r z49{~t0_Z??+x45@9PfVEyE_R3(LZXCUX+cNPjiz$8Q~4)n;bHspy`LJc5~cPFSkVw z5v$UTRp@`tdG}pt(8nd!o%cY1Ht2f#;EimIMh1|Fiw#*iadrj`6ax=!FiHZBZ%~jW z(z=TBiSC__k^s9%iTfeXsW%Nq!INS7;E)#xAc)-L9hQD$IF>P%gS z1D*W`r!djIvk!h4<-DNovmF`VXs)?|fTEnMFgaHNZ_CQ9{pQlPcV;-EWU_l{dHThz z3K;sNX*6Q9py2`xI&Msc3rdPRJhF-c9CHF$Ag61~IG1F#n`7!K94pFk1zI_%vN2F$ z{EB}^%_+w@2&oXOiXm7E@~|Jj!YZNEw&8bsoAU$WLtqE60-+VA9A{NmQ@dF;%ar2+ z4;OClikPM$b*?IdeixdL?p38~35`ZcfwTp0o~f>E!Dp0iJwk*FX*)7B`UxNyf;f(;-j9j8dp(bL#ObEZkHT z7H&)h=E~E2T2)uq(-JsK&ZmVr*_GZ(uQKe!-;Y3ylwv(0}+k;aZ zD-mK*?GO-C*$-8DTqqUI=I|o6&NGhG#msR`V@NeYsloeWE^iG-{HF71$Hp>j(%ZuO zL4MYde=UrGr9+;HbUvNI3X(#Vn}r9bCe$IaCgBI3QRU6_ag~=3K&nOg=!LN2sC3)> zn^*9a@RPuELTN0AKBRxmuT_}6NdGsrU3zQFfU-X3sZ*uN{9P}wEk=_GvQ2A?W=jPC zeBd9xCI?zn~wRWLR#00u}OgT%-fhORk=K9qsX)=#3sTcKI z^1uW|tVYzGa-=s!{P`5B=%wd+vS|&C3mHreFe#+$8e*M>t`BBj7VBv! zd%6i#4x^b2?9FM%nAmR(+4yn=n-N$H(2f4glOYRe;nW)}@64s2bWjoERVd=vq_S;e zs1l@44?*rS-hv)7nR=I1eih0`)d*MKnvOTq$C1}{4No2$)+r_gjaw#oCU{xfgOOln z4aPLWft7?S8;)aRa&!aV#?RdX@iJIjm~RakOqx#N3tmi-L+qye^qq(3-uBG@m^fNO zG3jNiBh$fJ0gEO--zj`=Ye;p>Pq4+!9I97ygf%(qyT+Gbxr1YcWt_{Q8n5yX!y5`_ z^eCNAuZQCB#vr~*P^-@(jn1!HN)g))jAEgbCi+EC^AOiHz{n3`3+}gY;jlCtBCv@s zGj)u~Y!ZA5Q6zUZ8krX>K0;Zjoj?chI}lQ&`SJahiX#wya=#?i;MF17jZnc{ECE5L z$u$3%*3cXnE^p(0v9_T_;Q#@CEJ0~Q&GF38hkh5QuX(1A-%?tkem=0rV}0rxej-)B z_V7y3N~exJoZ%$M+b?Ebjh%K(qfkl@#JlSt^1Ksfq z*VHXJD1$#Ph}t(SKjehQnrd)02x1nHVbJXDX*MzdWJ5!Y9}B9z>euQD4P8N(HO^(n zaLupyy9XI$LzNz$FQ+&KhPtE}yZ9G?VKA{7;}|Ahu@W>z`q1&=$?vb#$bbjs_xnvS zTKiYAMq>jzwwNi*QvB0-XC|&$#9#t7DEh3p<`0D7fsfumbn^jA|H1 zGb`H1MZN&o$2$wucQrOPi7AHnD)FftJ|D~`JXM!JpT$l$GHEoRx`KK-1sCZ^m+&*< zg`iOjmiVF30}F!RBs9juJROxrC|u%O##VIU$y58>aAbQV!#Gu42k^krROS*dTzyUS zQ`6F&OL@vEoWRJg(l9pHBYVCgx_#2TFDI!%bt)_2i|l5)e7~% zbM2enx#{9y0g#Tf3WSQVPAOxG9xX|OBID$5pKkE!2;8h))1w8MWt?K$aBtAi8uJG1N0;&M7w~> z$h@%dlk+7R#4nmb(SiuY5#)uBSExG0M-wHQZDTcI9~n|PXtl1Bd};_=Au51AWX3;|}qAVr_#ZtgY`>@vVjdnXgs2WSMJ|4hk?fy^vJ}M)_J+9Qq_q-M%_h|`y@lAP z^QRzcC@bt}IG*DN%AzD<8rpS+@_k18x*^T$d~)y{b0SBU0~38p!!~T1MKsH{#HXEz zjS6%Gu{knFGVU3mEe{4WQ1p9P8pi@dN-Ka`3V ziNUkDhzyr(_-}bpv~5dE!+?5`agj=+dO4jPa6KSE8*9TtUM`);G9cSg0~d)FUl=;ESr8?+7zV>Zi*M82pfJ> z4EbdbDvh^D(J)2zhH90bhu$1C#xV|nLHnY;9W0!vKl8OK->pU3A#G8DHUbY}|J>lI zMhd#g3#VI`en%1QV#AL`t31Bs&)MN9;|x$~PD z{Vnmw+8a1!VI4rU-BPG0q*^IwkNQ9AIsEWL_9U4vK@*w(I#x(1s*P z9$t`ioMDk$cyr@U9r|=b!+^CboQdQ%7)$5V5AkSG_`w6Xj>k>BvQ9_5V$pRxx)WH} z2h$tO2r{w{y202*JcO$X|c9ff$J z%jPoMJc<*y%KPZilShv}h};$31`;8{&;=2AJ+6~+j&fqwWX9N8As}t@1}%3%C(5yYt(~l zVG;qT6)J1bVtyuI`JLyashr9=%t8vljB|Z^he#gWD{8LP=|bLn?osNqVDOZ>1!=k9w>nlSpWM5 zLV?tv2#67`q@1kk@>k*3#xby5Nm-3HLmxtpP!dGqY9Aac$Ua8PsuHyc_ygaGD*J$Z zz_hPiLFW)YQpDe_002-E!!w+lKZ9>?k-x%Aa@e0J((ec<>3X4WXAM>}1=Gdf%v_oH z_m&u2c(1H1x}(j1Kyj-uvruA~iTRMNYHA;<8~Lm4ss826U_)at29N4GjF=L%vlVsq zMsKuLP2G_Y$5ubrO^@xGqY-Od=mU>^VqChc-TwmUnFI$*4>IhY=~IB`8raT|b!T`3 zF3{(5#r61Xh|!UkAp4?^R3 zf;Uwp1MsR^nIn9^PDB;Lc%j8w;FeN|xuwAQ3HIC&srzzYPo=S|g>B}8=Y0t3A}8VN zHGmAa)2QvU-S*MWej`;q>@@1lE-)z8+dz!@ngO|DtqvTNoYIz@WhjkCYd2NJTz2-` z^-oe&qE2oDF>nKzeSyGt@2FJ=3P$AM1)AMGp!z&$?;h>hO*5|E8P z2l@h{%mm`fPWz|_bcnsr4jb$h*dmAXukG)*>zt;UhZ}4MoJ z2l#3sQtD>wsKM%=)rsi2#&#QiLc7g_Mhh!rw+*z(tnukl^Cj?h*Bh+yx(N))Jz$jF z_eqS~scNsyng@sb&3dz!sg_a*)?H=I)~82J;u>xc-EgPb>Ne}V9)e0>z%a3ow6#b3 z`^~-2kivnr51|Tc`^Y(a&_KG@Hr6Hs?n>ZkMN<-Xc(k+MtixB`6+Drh#w*}w?$%y5 z{F?2xf!3k(ywPK?UckqC)oJ#kb=w8>_yZ{IZey=@wBKWm{RW)Z_E`f6B;kOc1Vha| z0y$(QfVI`*do(c89^eLwMy*qkh!sHeW)h3mJ7ApB`Z?BLPP5 zMWY26_EEa03tnANl6}wjMuzdY1vzJ=2}(t#%bkY%&3}L%_DAHnjGrNii9=+zIGrJXACv1T~VOo6FGAd|aL z$bCm0YF8WAY!*6wbj^-JrypNS(%McnwgpZEk0hw<5MYy!q3IdUNFM-7$vFb6Af}3& zW9m6yLNV1Xsnu!)#(Jfoo@+S*8Nn4806OAYN!&pceO!JQv_)=oq3r=aKSwY)j}`;y zFMJyaa8H+}F&?7Bp1Q--zQhFZiwE0(#>uoe0c0Og2N1i0W0($&kq&^KK9JSWW<%S8 z-*aoAyB-ES0ICASQh`<#)E*&~a$qSmd>daPk`*8w_?y_%vEA3lKA4TDa4?Sx)jNg& z^>nO%b;)!#ThE8(q9D}BOlKy48jzU!{T#!$y&+hJpO%*Jp5 z&a)j{yjKrZqE|p`RKK1ATND z8y0sVSjT`IW(~%(p}}aM2wN1>Vq|{GV0k_s8)LvA8vtGyV3DE07n=gQtZV3FW5_@q zgN`Lo6pwLh5cU=!vBpLWjG`Z*>C9A1GmDK!Y=4h9(jWpkGiIu#OE$aYmv30Sj3ye3 zd+quZY)W&y?_O$bri|T7t;&w}F-DkvBcp6rzJ745Nw@^eDA_`3yYfJj)D5;R1L&%< z0FXd$zfuM?itVb(uGaIL*A?(OfCbEU8Q{#eD_l-e-mYkpTCFl=rF#58V_z$|uVsyu zDy*bdD^-x2ED?R+cpVjVI0mo%sEeIIt4d>Z%&;7&)FGtLQt0Z6d+vP5N zyRLN0;w}UcPyOveu372+ZZTW z91UZBa=#G=PP}&v)@fsX{R5aXqYxosV}_CKWH`l@a=e|9fZPLNJGbGJR-~*d0n+Bm zJz196_Pu0^59Wio1$@`xIld64m$J$ax2)}rEi0Fkys{Uf*1#MWk!x%v$1NgLPgnE# z5O_rdVpk}%k9;RrlAz7iz9YarLolaQ@EFf#oV=AUQw#CET16i- zJ}a%1X>)^bcIvTH&tPMZjXip~s6aWtRVevn57%1)22)wrmhw$Q6_=gJ2t4w}<*W3_ z8_NQaErJsibf^Gzmd69s6K^d06IS#=J}g#3SSra=+qPP)O3J-wngG#TbzN|P5;&fOZN$)mgg zqbW*cGlzsuUm_|A-Pm||2c2Qz6!fW4@>W>>W(wJ=DycgQVDN%XbY$uY4Sve=18r`I z@d--=>JEUs8iP0PEQ~mICEINC-@43>*JPRV>Drc>ScXyZ=xGbEi(sEY0-^4mT` zjOh3rZP7f-VYsvEI`}NJHHoFuVnq_Z4`K@GRx$&i&BI$K$cjOmXA;4<5|Qw*W2zc8 zL-J&%_H~!v!c7k(fxEr8xx4?Sm5_aT3 zoW-V&0p`GLI-5=nkN@CUiOGX~-;AKux*#`Q!aG^)@xmoD)gEJ2J12;*WW%hAP?(8lvZ@V>`d zwH7;UvR>^-!X0cF5SGYIkmGMiyjEvMhE&D8$L%g_@RLCuaYsOv?1wH(b ztX2~M?g8LXKmGsUop4RMKvKZB#Mk+;@zxk8i5Xz5pDYCry3Wtn%7>ISu}+pXEo>5V z6Uf7jN4Enw+agwF)u|#RjTly0A*V7vM=((B`TNeesln-);k+@e^40WmUb-EnhsYs4 zM7+`yRD?_TiWAxg#eJrB6C!gasJYEb?0u0_xNnXDmAiIkU#2FyXI!qZnsaUphpgsK zjW-_KFzA@Pz=d9ZM#lQc>AL(q*^kxp*v+0vr`q=b-{v$Yl<6hc$YM^xmI$W4T zeHcFVbk8@vpi{d0%YPHQ@PGdxc0oL0n3%$;Yr@Z)fvNM~FGPUi{o?!dAirSQu1BXl zo@>%=k?zlb=ta+eL>YZ0&i^%gajqL4dvX5rf9J8^GR9+L^3^Z@C-#Z%=x=z{zF}ki z1>4tM5A!?F->?JwbT*(f`*ik;-{--v;MZga_Ah@%q4tZ^i&~SlC;D*avNrf(neGgN zt_{YG?B{>{l`$ThZ`jmu`u6D=o7$hkZ)&2CztGp%q3tBZ~yk&pZw}~fAxpI`rU8;)31K_+n=y+fAH;3zy0f9{qDE_=dXV6SKt5kFTec{ z-~NQX`&aLN_US_<`|dx#`{}#C zVekI8Uw{AI&))q6Fa4Ok`#;|O#k-%q`)h~}A@=|L`Mdx0?x*km_Se7vU;h_+1dsgT zAO8Ax-u>;nzxnk)d-qrGeg+A=`_G9NgA#;p{`!9io&Nfd{RIB*Pyg-*fA=r`?qC1i zKWE?l`FDTv-A{k>-+%Wb2>$dpfAHN;|KSh6`&0JaPk-~f-~GvVe}*T2|D*5zW`Gep5kN@z8fB!%K{eSp}KVOj*{wLpO z@BiYj-~Z)5d;b^z>-)d_BRKxW|I6Fkb+>U`X`_Dygk*_LfPg63vP}_!K@yZWqDY2- ztT<>8DWD5Li;Zr$KlmYTdRbEJ*oo(iGl>&B$s}pY>iT)Z{`^ za>E=YdFM@X{=->&S9PNs07=O+bJil!)z#J2)z$U2ckTT=AHeptZ){(CbNkx++t*&* zzV_1gN6&9x`^EOPZ*E_^K#{L)U;6x|xBY;)?fbC( z(M3w}8r}Wx+t*&-zV_bswF~gKYghmNt=Hl1rI+qreC_U~Pwrm2aQD({@Rx7>^gl0s z3V(eI56UPl`bP!%ZD?{p9Iv6Bw&Vh<)(F3=B7xp}$-_IKdj6A8Qc5~CZZcc9b|QY4 zJ9M#vOa~%nDI8O4y4-Hq$UKwdHf%m?L$1+@GK|>TLENy(nJ%w!M8Dup=){4XTlMVC ztIXbfHF~1kkXu<v;1X*@RNnOf&cBnFc>!6gSKP-)`0 zmI$o6{*n6uaYg<%#lhq-x%oy*he_rz8zwo^Vl8gQTy7XK(~7yw;0{c3T#T|BvtpVR z^UEt^H{aZR&5sx5pVXb0?!;D_%#E#Z(~aRyDNO$9x9`Rb{ZGIBrU#R2tYNcO%)zYI ztl+#L&-0D*%xpvc9O@`62l7h}hPVy+rSlYb4)SKBX(M@`t1}PsPSrY3#o&JPg1ig` z0gU3UHby+@@fO4SG!F7kGC$UcjFP&dySV9N#U(KDKpZOZ((LbLX;%IRH z=*WQOz!W-j$EG?=YBOUx9lOt;|lbm8QgS$T*R778;@K+8G^vzxDe{?E1; zZ8l%EStw%jEpzkLFJ9r@X*`&-bw`#R7f_quw@to;Eq2Z^tz{+;ojm2a)5&tqF+GnE&FHAZY6?Zp(vC$8#cZ zer@TCijr{q207kyKX5JxFufD> zoY)tyvZ`U3%n4$}_0KQZ`Z*^QjI}@iZY|cPx@AFPFSyTwPQCe2v0MvBI>WGxPTZX5 z($;YhQ55>rPE3m#;c(|9c$gOiobxh>Pi@LU$gpC;C{*CF&8r*_Zj%n1*YV(A6rWQb zV;XmsY`u+AL=ZRGC(dP#!9M@#=kGzGsV{Ro*5WZ&M_Jc_g6?{sUm#%sgIM2qz{S2F zh@H`0&P|8As6~c?-~IhSY>CDNC@i65R3O_8&-QybzP*h4{8BV-DVz)o5NbY!6^8$@ z<_hC>%n8mm-;ihLsU-v%I_ELYFPRL`v~BB-14Y(m-V&lVQbp%Wo0tk}e_g@ce)kLhkqcc2&?ZH{Sc*g&XhP_|=UMZ@hcsgBzcq z+<@}J&u)D9y9+lyy72*C{@t@Tei^&*+KmrMuDEdHT@)igM!ZAm-iw}o1~*>+-P6B& z;l}$n-n((_cNcDa23tSe`tat{TOZzh4ujXXKD~JnMFg?v7ZJ~HeYo`*Ng-R;ZeAd< z;I~^>Z$9luT<=7nQ1a>4^{w|&B>AbxdFxj6kx=KRS)fhfGcJl(g*{4|Yt!rB! zp$zr$*0r0@k~nqq;?1XTUfTNj=Ea+rZa&?U{N~H|l z%gqb;hF$5lKE3(v|9CBS^WyK{BI)n9_+7U?>`Hg@<=$JbM!n-&dg~{*UcB|vt+(OUm0NG#`Z)@K-?{a(Td&-DJ9g{s zTUT!V;MOa*-hxo@_M3OUar>8dzH#S*5DnkF^Nl~ed*?Zn`#!kyEJ}fYeBsV>82`-e zf4}pM+i$_0>$g9M-FfEDv$wC^eh+THf9IJ$zHsN+JKu!p4IkY3mN>oht)A1^oo8E+j8`|{fq`V23;erfyiueV?S=k3ey?sy><$h8ze zv3C3NbxMw@enY8#wte{*l<1e+mp_B;E6)Tg9 z+P->~WasxucE0-3_SM(7uU^@{dJ*vO-Z!_ezKv1u{qy$KcSYa*>uA5x-U z)3x`X-+up%?f0*v4F3Mr?e||JN&E-f?|-oU0ZQgCZNL9IUA{)YSLyfS_WQqv?e{<2 ze*ZK2mG_Y#k5N}hkiSA%y-yb+BKO-EK#5++?-!+L|IyPVjlV?Vd?4n3cl)CkVEfv) zDE51u)R^u)67zqteeLJlA3Z0s>z8!5j6b@teeD&><{P9v_#VjeVcH+j-1@R`189L-?)3}xx1I%x_j~R-Af-tFJF4r&*YsQFOW*(If$hF z^Yw4z|6hLbBK+m~H~;$McjVzOm*4!~AHNTO`PMfnjt&_2>-XRV{e!8Fi zisI-X)BWeA7ykOnyGo!f8QO8rWOwz*(7mch;sThgYH4fn9xJ8zU_4`{EO!x zhnCd28ss#~bs@L3WZ95gf}Ft--3~QJ28W!XqhiUj8RQJh#z+TpEe5$3H_bJ@%1y|% zbh@|IW=p_K$jw5|WM%``$2n6Alu{bx%m#vlweTj>Zt@1#^hS(9&V*c>Rds_w&fUC% zx+(5p7&ZTpTV{?s0J${|IbbWOQeq7q#+iAJbWSde>wo(AGZ)4Uy@k6Q<6aZSJvYW& z6dYpQ)NnD1L5;1&reiiqW0XXcZQOHV{7exhm;n=;KR0p5gEUUKfj+@u!lTpAU*NF$ zA|s(>^F;=eOk)oH;*Ui^3ntmgSflA3j8*wL!#fBXGfkM3KX@4fHcT=%R@Ze?!w_cR z^3FNOAH8#qx~eZ;>qPvoAB8SjFqxl)Np8m0EZi4sST1JB%?3V-!=zqC@pMvOL*Uui zk`9xWNrkpd=HjpJvd=%XVA6s~&xA>Y;D*f?J-Z2cZr~n_1Nl1SKmRGW@%FswG7En< zUlWH9Ogx}s#DTmCdDJ$+=JO8Zab$>TmT7Lj#Up2scVYAS@MWj#JbD_bE8HJZ++zJQ!bf#6sPj^ChT{xjHW7Seap)mbY zyl28m1`|ySrehPi+1Sb4*I?R&X&a_d(m&@pZp<^Q+|c6_B9S@&y zLx)pLV>bQb51e8cbq-ExYhPT4Q~dLPfm6KYAvrFb;;z2L;8atGQ##ky;FJZYJXC0T zI-K%Mm|-Ruq$rxuwu;AVol~5FvDSH^NPH-c?D*yh6OX0?L6rn9FqYK ztyqBCy7X%Cy;EHm^aW@7&rL70`p z!R+SiHq35bwqX|A?QHY^zKXHBZo=$2ZwcmN=UI!HFxP;&S`+5bzt}~&bI#Nl{=l5g z&ci%gf_ZLR__O&w%v&1vta)omXP;lkqo?797H{FN)j}1`@_FuBFmJDE@FXitP9KD? zh)zuh`h~*g>rmht6j0pPQ612>&hyw3_d}=r5EOLy;wL)%ua|WwSh@=Zmm5&TZ&+j+ z6xou^P>5ba(OQQhx1q>g3N{&OGm1@yva;W>FbKuw<~vYqV!ta|n3ZM4Y%B%=iqUU5E$?{2Na9pENVfy4QKPSaF%04=K&amvo1E8vz`f099%N3 z6?lTPX3S(wc*0~TVLLpA@uZ`Qk#|cda-|s_V&Dn*8jH1UuC*=Hi+ObV#Vg@+jhVVQ zSmHpxE*A%kBYl}@USDHK0S#YcXwCzhKVhWq+58EE&7W+(3Y$OS4Q9jUPq2D!eCNh* zZ~XSgJ8(}p8xCbUxBUfk)(}+;dOB$1J}1cyLpL(^J`n5z}8DQFNml8fYM(@ zHA46#a^*T~y$oB=!qyM5{MWZWxp^tJ^=rK0ha!y(2o1ys{ypMEUcN3K_al-@uWfw_ zTR);*P740p?_a@Z{>Kk~|H{^{@Gbsr>%*JRY+XgM_TMn8pKN_9G7>t1(5q}+PsVOO zk7@c`!bm#3`2xwuTOW&J{~WXWd8c?7{MF6xQvkMJlMnlkkAMFP*44XPAJY?Vy?E<8 zw|&07d-MRv|e}3oLKfHVUO%#9M zynXfdn|Hnqx8MB3yC@l>$owWAp2M>%x8IE2xp4cv+rOqTO5E~92JT${!*xvf_U$Wh z``_<81GnG7&_{Qkz5OobB+}8QES`Pi&ZRrg0*TIVVc?nDZ{K+y?tD`g=$Svh0C%2) z?aR+>U;e@N<*TrL`FrB|R0la$o zb#c$-;O@)fk`SXKnY=9?^e!bu`51SCx8M3EY+v~?O3Em=9qyzVe2Uc(20t)n`z6MM?E-+97^bh`7(iNT$6?((5(4{yK#()9?G+?|oYc z!qDRg!MsfbI8xi5F4Gy)4A!YjpBDUB67f?}o(S3qS(m2P7}Pg0ksHmoWU%^FV^? zdnC}lf&mnZUlC&IOWPkkC#1|*x3B$%B-~$!E3a=~y9$5%&9%S(^qs%I^{X)ozVXiA zKKR)f{QcWk#^CR7zVMHiJ{8A*`(zCMe&v&Y{Osv5_{XbP|MuRm#^C>b>E(aC`Sjo4 zd|?dkUikLi3zzZu0}B2CgFn4{;b$`V_T7um-@R~k4DMdMNKt>j_Qs#DeQyl@{OPme z{L^Ru`trMD@RtkU{L32`#qpOvq~m{H`Gq+C^7%Y7>27h_+g}?sb*W&mJ zrvK>Il;2-I{q7k2@0Wf(2LJi=3l#HzF245XkDjCB|M~cnF~zsGRC+C$c47LCtE$iR z4IS$3gF)=U^p}$RHa3#?mwY!fHDM*z1Br3u=%GXRV*sg#ZJZZ{eVBk((MHpYrQ!eQ z>F<^)Qh2{nteT)0S%HD45!O=2O-WXjI+AXYMH(~1LhoW~NZlW6=x!`Ev|r>dEFpaa z7nE0rhqGj4NZ=JDyDvWWSZe68$M6nv?aN_Vgap z(IZC=AKul0?dU^~96GwY16!nK4aey3DIZU+cUeojuB}&*LQU8~d!~*A8)#F!hKtv# zSFdv$(D9C(cALm&>;?|8fSxi~RzM?XB;kM+TX#8ygx_z)L$hmxty!K6HEy~#dJ)%g zi`!{g7E))S`7Q!sW+N!nJGGjmvpb36|ZWSMh+h-Pe!69 zyefyz{q$uw&PLYHMsS4QPYLIi@Im_Er5PcD!vc=)VOvT@N6qIaGypcxNlOs^j; zd87zIL^x|iV&~!arU+S}P6Sm$=QLarKL`JXqc?TObro2;y<_jSObFnJfr*C5oR;(! z@J#aaM}GixiPv}?Tz?bTZR!s80y3zDhUHqmSHEe=fb_eUCi@aDAn;-DIR7Kn2oTEx zG?`JC-tC@=CjVRm2O*8xKq!wOFdd;8G`4yWk~MxrRHFdr1xG*6tvZk^e+N2%_#XuX z-fmt$IG%L7{XBH!k%u3?pV6MRc#AD@+mDJ2P>q(cE3`*+&RM~B@qiPo4_p4wM0NKxUg#3RMfEZ1hEqu zbs)YcKtb5F&;U$AP!Odac&5hdI<_lm>s}#9#AP%sn^t>q;cnu+F3<@+n9sesL3PTjV zyd;t@@ijy`#Dn-;zB3jg-%%&9Ed!Y00(WYNJST?KDyuDtkjtuoCME>HV!BSv=G=rn zRok>$0#imTenBjEq0JiHYtw;})m7}6tv1tC4K#fjE0ai@+r}C$cqH15hWXTVd|5-3 z)$j{zU}H_y+pZ;C$mim9rMDjw&X1R%FPL#}!;;U}yz#ki>0G z%d;B-Im%`YVC}XTubRvhta0KFMl-16a2FphQHVSfmC7bKZ4{EgAv1Fv=zvBr;aCWD z%XDepq}3yeSq=(d8n+eDoC+>MG0zrj12svapM)np?r~_?I?i*tg+R0laQaw$70r-w zdL&F&^oeN`R+Y_HEPDy%uq7^jy*6fN<6velp_FE$tFPs0fY?mnnAVB{ZMWhe*e3NH zeU%$1A1#6Nq=(6=)Rak0w`8ypu(Rh~v?i%KR^fn;02MTBg&5bpU8&E@_QgB?YMqjSQ zTw7notIIlHL9{6RfLPWQ%Qmp_Q2|$U^T=UX(M`=-L0{mS<*Wi4elk-dIoHrlZ#DSt zE4tZkVhdc+%|}coV?Ta|FDVwgOe#T5-hE%(UDJtH_8TLtT8u zy0r?mrj7H6!|G__E)JEJRmB02R-WMM=eg+@wnC7_pmUi<0gWSsc10I&7Cb=|SR5)g zchN*xZ!?X4IuUsJA$dINAKQlK1Q}yPB&H3^1~MXW6_8>EeOqQ~Vj>Mf6=VQx(-PGd zfLwmSzoLLuuhg0d?PWH&{32jjxSZ3uf=et7eZQEk1^q^>>ZyZOTDs{}9A0x2sI}TC zy-*5V*aG711981lP=p$^B(-r39*Gbq%vfP-n3pG7mT6%Kn}5x)YD>rk21N40?I1!C z_*8!B&{2ej5e0NcD;K^jz7=_m^W};p@}r<<*P6J7vSp?lw0|q3@K)-`; zT_G_D#Ly*T{L5^$5{W<@O-I14fVfLsru;+6#kpYTtBm-8!=SMia%fbD+Y9QpAcR;$ z9Tm4LRDuf8^a6qsL}Nl>haM$zrC_MM^k`9u8n1edip@<;j9`pas~t(L(q_8tpz;NO zY%XRL2dL^Du&Pxt?mHqg($3Tj91>WA`Z;yO^GIWXJHduQlPb+_48<8()}5N=IncIN zG+JMp4i1H4@k7{v4LXtGuE(GYSUY%_W1&=R>kVD&N{95%K{D*a7{-S>LYK764XcKp z$a2vo7FbA;)UfO|l(CySU*@O-r*(p7S9G(EA4f;P32_o0#VA4~A8F2$)swcm+s>ow}@I2bf7lAt{uCqPVsu51y+cO%O=#m`a!fCGA*-G z#qkpxv%I39NLJSyq5CR0#G}?1dwt{{@pRxO4nQaf)3!$ii=pXGPo$zqJvc3bNh{aD zr696qo_p=UfT{RfI@oKEREQ*s>8#@D7qas7ndC7Ph+%--o{E%yoTE?`;( z@Z%6aWrc3nEpraf2D77++^Ip%sfE)ZzPs)k9N!K7{?D{gXQ)xqf>#wnkbDkBVg(d% zl%lgK%RX&sT<}vWBmrTTR6wW6HA=3{nc{e+Esm48mOZN*RIM{KcLbHql{oHc47!4lRHBQc8 zs2OpZ7J4Nc#tBbHBg3=2DnrvqdS+u?$cQsE6iu7>Wyy`##?0+;om#x3D6owCqN^3p zVPf?g%sY|kMyeuQzDj$UG~|d-)!?SK!bzV(Vab{eZ4_bw1u7cdb(uxo!amn_{SCUH z1b)Y%4K`JaKHsaZx%@!|sK0ZAy0w2pM-N@?cwXzKl>RM4L-`j)T`4pBr~V8qrG7%^ zrC;jV7J*=(kN_>6#!BM5tF)N2q=+pPDl!OtEUw`^8k$INYT3YRO-n5P_4C|Du@!0H zp~371X@gCv{;n!in<6tI=%W~qr3Jf%KsBVE4?!)VdVUqwKpb$x02yC(T&mD$ixdo_ zO;}dM3QvLo1}nZgZnO}fw9S@rfRe{bCn4$*gf?H}tDU8YALu-eGIVMTB}DA*0=yMf zkz$>yNc7~2$Vt~gEQD~o7B`+v7jdta{LAvAiSZMc*0@>{`g&iR(Wh9V6zEKk13J>H z%7GR|3;O1rn^ttqZ9-GD*Hx=tM}NLGaa4fz_(Bq%xJOnaHQH72vTNcXmfS*7MvY&A zYSmipQh=kHQRo+C1EvL_-^g^aArQQcRBQ#yKJoOL)e7xV)GVVS`V%QNuoYlgJcH5T z7~CtD>q<~pe(J6-=quAia;SO+0;JPAr4kfUZfdqraiyEwc6A2Yn#mBEdr3EWOCW(8 zoVVr5*k7m9f?Pqp2d$ktI@A?jZ5S1?h|&P%s|ukEjjq8etUyyCkt=jgP-^&w(8P8x zN?)Z}A@t2X+6}GfnvdP>KLJ^2vCYwUQ$jmfG(GE`%_`n@@SVgcWGl2;8!ETItfiGN zh;0S2X`le{bfHc};~=inJ_IQiuFE+FwCWxwd>It=jE1WNBY>mbo5Ic&f6h>K9 zN5^~8;DW~16#rB0)EGkQxA4fLgr+KbsvK4P;l&@PmR-_%EQ>Z1wC|?1;_LZk&>yOr z;)bTU!EaQS&E>QhnN(@S5~CL?n%7JrwxL4WU#V4OUjk+~Je+iq3I_!n8VV|6kXCV! zme-?O#GOs#9ut9HtEQIGZPoP9$U`Id1&C+uY68#;NLGp;{JKPNmXsPHr0O1&>Zl2U zG%P~h8FK1&qd;~@AyBF#V*^w#xlP;h8qE$2WW&NHZYfy;ge14HkU@u7r_`1Zt%EkR zLV%7!x*`J}hs~7wnkca0x~koSiNbKgH&M{DQPYGWHT}S% zpi5K}rAz`bnM;}Bau!r5WuTlTR;dge0Ch2wRkCn=FgtoYlZA|uMOgIFF$}}7l0_s& zM0QqF>7<05_G=#nUtAP|+$|f-jvjpwMh-tBM+IT1HJBYeau|+2sNnK|`$Dpp)u|;v z0wYI3T+foNRok^e5U66uMwP1*JOFA|do9>tZLtPw#Q;Y?;?HO^Q?H4ATAck&B?~l^ z*}R4{8auK?rW#h1406{#V)c;VJb37#`(Y7l*sR@r(&&bUMJZScO+9op1pgGLu7Oam zab*Z`{5tlgsv7t0O%=(NNN}MD5ZXajk2(f+0L}fP4I|bt?ovk~ECq6}l2v5K6v%=2 zn34TE@xg@O*UuHrS9@({@9X6vV?nsrj1MDcOawVNYQ#eX9J>Olhk;ZBuvO#=>;vTe zSU5p1ka`>qGJC*x!w9Z|YKQm;kl`?1-r-{osfv;vjeJJR-f9UZ<4FFJ*bg5W5!&17*n3G06dG4i zYM??$h8i@_BbuTE$WSC`ib_ORAu75DNYZAFZkS57>cHr4{LLOY(tqy`UfMbC-U(%t;T_l{3ZNf40&2F=)Cz3^Go};8#)fv$Va)q$ght zzY-Ni8sdq)BJtTAg1$kUh+yD~e98!4;q>}*^jQ{TGDBplsYKCLim2R-# z0c4p~OKN#ElPpI-!dDXMjeA5}=gPWXAB@W(IiAUcRxe==5iT&-os`hm4~8=k%K?8_ z9mrrESoIh`a3Ek07{Gin{=k8_sJ%|qh9a3m+?3djIp*WtyCpM`C?CTD`g8!9Ovd&z z3fd$^N)&!^ubwHEvW4GKa}}on^Ga^rAYrKb=f3 zs>=Sff|(DGWHK41_{*(hSX;-;F-8O^R17O)3?5RBbzBlMnT#ciKiC|!lED=@nkh*= z)%Kj`pcRxt*)TIKF|r}wCPLNI-Hhl(*2Rk)3SQ*Efk88oNHzyCGIUQ+8~9XF^~Vn> zqU4Tv<8|@I8{s#0qHm0;y^MLx8*`3%{)^W#ZpkZ0U%Vz?Tu+glFjpU}1uuC#bLhZ< z=3uS2LXaq7BUnoqo%R;P*1^l2Yjt!!P}bdy3vehXnrK?wZ(6~pu`|Y?nQ-Z~25bP) zs<2U(%(5aLF)*?r1BW_~(FS?a?sN@3Gm>N(^BC(iU)K5jZi$tXPA2%8)Rx1aFw`LY z4wUgbkVAcwrw}J`&`}gUkvN8n_?TWFwEfrv2M%R2!^65Pa*S=rGRKBTI)!eEx)Bw^ z#p>;tnT;~@kWq-&k{;E_iTAHA=2qGc_w-HSL? z>I3lHk0wCy_z)TSVtRiWh?}>BA!LtD?=LF~2m(pO6;;#f{{9p}B(yZP*d?(1c@ zL5U1qIy&rr66as8LnPimi54W>kv9qHKqT`24uYQLdxeCt|0U?ZF1Y3-vmdQ=Py!Uj z{`JUY=!<|t6>8PV$)wA~UmE@hxkE^Y0YzVkl}?iNNuyKC4%7ANHMiat9s$1ih#G*V zZQ(4X39kf{R#(KYBMI$W4CNz2CDpml1OUDPd_~~MrsP>$9Y$<_ z5Fq~@GJu|Sv{Gsqx>hfX1$8jLcTsMpsBJt2nN0R6$Rala1P|>PK1x>QBcFa8qi#+rjt<5LG66|Yda%O@ zhQph>j+`_bP*PV?<%FW7kHz<6&gOvwgEIC0T~Z@|dgP(qh3Jq79WdNu=|(a>7FR-% ztktI21MyH+8JQ-~WqOroG3rZlO9vXc-MBKitHTjTM_^xFT)IIbb9X6e8{Ih#?G)KF4f z*`XNzWo74b-h*Pr_Nr@-gavm4Y?IpdGkLmA4El9O?;h+#@9ZMzdQNQK2Hl|##J#Vq?DT{$(P)EWcU^uFL5g@_3`*?&gag7)oAR@w8^=t^qOR{K;&9X>G7%R8`f ztfOX$%X{%=yjzSL{=l)mF0Cc;TW)N~5hR=zPY;V5a2WB&kx&vvNyL+8rWCI^PCO|y z#L>TA=RBVDU(t_|EKwWDIJc|uWc(akWIQbpzTFYisq0z5Bb4Moruiyyxfug_TZ!?K_&bigJPfKDIB#or&T^fk*d*Hyq zQDOy4scGZ{drS?Hf<<##6v+jLSZ`vSh|(KL_udFj1NkN`zI(vUMPDDfqtcCI?)_7d z@?^ZzB;!d_Avxh5b>!}sVkC_|Qamu!L8?y1?b~5?@5P;W2=(Q7v+BgrT;Y*JkKPY_ zO_MoG+z9Q(cCB@W2lnlMU?`Ev9(W9%N{x;k$6h5gU&I(bn9Zb=9h0SoU_UO$I&8J- zMjs#{RBVMF9AOy8Fss&0+g(=G_(9Z`EaINnV!Cyv16#Dg%KI|YR& zW+7i3hl$)QglAeu5}j%{6J9F@?%T)^6L@>H-toaloA7TAR<+fjOw$b#xQa zEtp9^hv~NoRp#im>A3~ZSMy5cF4u*NUDGCO4{}+x%o=m$;WQe9NVP92fSo4UjIBX! z4c${Uj!SH@fvq7_uWpi$qNX==w`k#pwx%!R|7lAD&9>U~bCz&LxK4l*Xw(ec>|}%r zUI>$wueJlPXY!o$F z(4g^A-7+*o{EpDU7QZ7Y0M}y}eY@-U?wpzg_t2-_AiJFX6BsatA21gpU>mLq}@yox-)|gZ=gG~Y!-icgEaDA zL(hEOnX9?}o%1%S@0|kq*yzp~bc+LAa-p)GOh1iUOFGyAni(1Lu?~i2bWt?~B>;wn z=FN?99EPypd2KQfYq9oe`l%33K#Q%8ld)fmt?DhW1ueE#=`}Q}TYHc5G=Hk`JS~KN<6p7brVQif@1*R3Xk+wBH#uW z#cN`ThwM~U2o`a&IRX5jPWrj z(B%mngtNlo#YHPP{1HPM4!bnox=pOZqBT9YK%P?IS~O0$G$zt7jS;RT`jcw~gM({{ zuHxFBNww>lV#w_nZF{EZ76O*ZGjYbjv-5ge{2n0)7cmxyiv%r4jRzA^lJk0-TCF@D z>D|BD#j*RQ4XLTp4okQM?0BX7rcQP{JtqNQ zkIwLFN*O9u*zkFI{`GXS+2v)jOX@z5QQfISr`2u^SFr1q8ZDE-OlVo`WcsXv8x*vCt#D>sH0sqJ2eN=hiuhf(Ke4IB zBLCB4ydJXE1~q?LPlny=AFuD5M20T&`$==*4o zRkj(qE{|^{TiiwPaTc~i9nFT*I%}<}Wsq8pCYG+&7&K_qzpN`tzjhfdKbANpx?4)L z^;D#(`;n-|%XHt^&(a#>@7>l~R9Kfo!lREKdhmWmlUmr)nsx})G~gB?g7ppgk~v-& zQqzDI%_#b5RxOONJ2sphR96yeRq=0-6u1OWyOW7^r;C>&7Tp2TBz{gs$bIp!3xp7i z18eR?Txd|^C?T(-sw^OA>Dq9LK9-4?t6aCRl8ME0@HL^e6nZ<;y)?hXhS3upL5H?zfG`)Ylj4`w$hx>5Slsr(a z_>&;ol5a$HEB7`P?#G$%-m>3mdhGs|LU+tt7=NY z-Oi!%J$$h)wbA`QEUgC`(7+BEO_O&({qAm8eLWSz_@gx2N7U}oWo=sTR#2<^1C?_> z1$7ozaoAG7J8~DK8hVPou>npQ|<;Z=4WH)yM$&NTCl)|ZM(K#q7 z-Z@8_EuZF;YZ9Y)+@M&Z7MC$=F3)Ki8tKTG39HrC4FYnOXP(Swy(-Y>q&rlQ1G7 zoexjKVHrF!sX#&ENt2>acPvvpT}I23?yUF97=fYb$A1nG=5&A|tw2!%J<6AVoKO!$ ztzawf7^;?hOVt(vNLK=n3Ff(0bWKjnafurf;G#z?RSmCYR$AK_gfK< z5Q-!xb?uyVRu_h_0%VUoMsOzX;8K&MU`6JZE|hqGflt`(sLYaJ0Bx)}!Xyl8NPsf> zNbb8>+KO=kY%U&bb6KOlX2@ERA47uEOQ3BZ9ADb#O685f+jdYlNdgV09nMg&Lcxwr zFCN76d@!J>cc^SBF0VCBozTGi(8!@scq9Z(E?RxW7+5yrAb_7FEK=bSze7L-Ah6Fp zQ-tN)Nx_T!=_LY4P~FSA?IIT5PR7L{4^U}wtzpNJcGU!Yj^C@Lo7i0siRh8T7&mg% zM;M_b=<}&4;(!Z_kzt9)j{zl1o_po6uiqZ~)jS{CuZGSXD7L0b^{M7bW5zo}2FzV^ zp5P6@nQw12^=2P5^@oo>`rzUF5lz}l?aX>V|3WGb0cO+;PvZrzDrN!)djL6zivWy3 zbHCj2jbm^O!MjZ)vN-(E(M()=jHy~8lP)LXKq#ZD!{onA;6%fott%P-#I<4_NwBlq z?y!2aM5?y_aB>4{%@=aW|JkzR8%fXXmwY67G@QQUrndX4p}o}ZUN#&(^w81!QXx66 zvrEm&>d3&3^?R>1^2q(x$irWzMjY4aaVB~6=+V74x(9Z&v31>cW<5^OfsQ+jqj|(& zXD~Z@B431)`P?MT&lQR=f2N3gzWHJvCgx^m^Akmwn=ek!%@&}zkekTEe6Bcg66P1C zp^(olOq^6y2LW(gx9v!YTTLr!VMujO7K`(08Wpvvaw0_B(&BE@iZHy8@-h*sE??e4 zb1c8?E-h8!T}CHL--nafrR-q;>)A%UpMjlc>l?{9W;QI*HF_QveWe|YPL*gqUxDrnZxa-&79tR zQajavuM@%dZxR4uucerfv4vGd$8kC6f*T|zxJfg-Pl+3oKV$-l87fl&IgM)>X#F0I-QKiNyRWwN{G}-{Fro6B^qL$h(kQ# zCgMtb!?(P&V!9c#6?CjCS!L-&xGt*O$>=4koMnTSGHM-jOIGKhY8pKohT}@FabbK= zIyDTF@Q zN>|ry$D=JS>2@0n_71spR~Nz4p`#=BgY%%*ntH=J$68(b$MJ)(kUuRQ^i0(*524Ct7sVChvNXPc|aZidg;)}o^T@hh&CXq zJ{iyF=V5%l028@F9wuh;xdoV*IRz6lb1*S84-+#5n3yTT#LVM3K@?$PZvF|#&lK{I zpPhuM>6twJ6kuv@0Zz=JS<#8YIGmU(&cXB)OwZyBb837NX7c!7gqi6=5oYFclQ1(k zkt^n5X5q{%%;wL+Z2qf7m^)L1h3OL~i!eWvdjjU?PUUg-nJvQn+0$6Pu#lfUgTIA* z5f<{rGYhk@P@DzKrI33(4~2<^xtSR#%;2jP7G@`*P{dGiZl0{3iuu#?b5J~)pM~Na zoXIT|;qmFo{2ZLkO&5i~5JFBw)kLI47%xC>HV3)F1dLD5!gz5OCi4@bA{O#_IGLZB zhm-lQ!t~*Z1^hV+)3Y!=dn*3~%;aZbW_mUc^ZEQKpi+^^))^|_0u-kwPQjVN0z95y zfX6A(*YXRI;ux&T4cXEjQws?tvJpBa2x$=N1-DJ$zyT;F)ZrmDoq+?3PYpulq=N?<&@Y(XoiUc(DiSN@jGus?5w%6LEk{aU!4jy70m2SXs@gw^Il zPS#Ke_JPufiwA#50@s9HiiSjFTo@dM(9jWumi#7^EM4<_+au0Uh!pUs(6k&^B0d8KA~D~H+3>Kv2cxSHAuX)k%zcNLN^v$ZapAgI0_q%Cji3; z!V7maIe7Fqxp+}ROS_Qbw(qKafB!A9esECLHL08Nd540{QK=+B{B=aMpqi0bS)}?P z0CmK6vudQuFm!WCqG*{|vuK_}=7Ls@YbcW=un_UdNh_4-#-~FdM#7}fC$8#9(9uz2 zK-H80?4mTdUPix^0R+A%DG?Zr#Bh0(b{Bw_1L^Eziw~etsMs1E&Z5h0CJRrA1JP1Z zN2eW9v|2r$g|TcVs{pyrVt*J#7h0T^Go$EQTN+5IDxke{cc)j&2)U6wwr8)m%w8C= zLk~Z4KjKRG5-N+O7lJvKIh0M8%ITD7Y@?wi&{!cqGj%-O=;ORVnGBC88_I^Xv_4o` z-$39HnuQOR;ow1K=-^;>;GmMm1!cz=_h7nrd(ZzKaa!H^Y0W-6D}q&M)ZW-gvWz>J z4)#&-k+?=%-$))TD{$~2j1`It$3eUVZKlXq48LG;q5u1tGVO+vd_+lFJ*zRMgybv- zab}~-_VqBT)5eadPB%4W+j=qxaUN>I{hl@g5$^7K0G=4V0otpg$9&R+FU;%SXxS`K68DQ;G^xzl<&8yx`+dKAdyhR{ zfl4Y1+GQV44G$upqWg=WQ9H96B$>s#bz^cVL8}e{zS%}5FJ!9}_k-q1*zVB$-O-X! z&S(q9-7dH+s;1G=T{{-t++E}1PQ*SS<-Fiw6`K!rfyOFK7{!XIwuZ>AxECX#@b)Xa zJZBi!O!1!aCOxKo@VwOjgxz(Ncm;-AK~K|h|^MZ zm@MyPEYv^qy(DzK=A9O|Oo=ff_rBGvYqsw6-D?hPANzR`k-lSi zST4ep)X@H3hoJ6GjBXSV@^qTZ9aK*k~*sM?Nz2PbC z4Ei>Ht+wR|I9uOiW+%Uy&^BPlgQn%t7Ex!z57)*%{k9{p-I+mLot`0f>w;Z7Oe%Kl z(B7P%up~?;t)^E5uiBdFvQ>Zm>>}qVZCH_K4pFDxi+c`^9AV#_-Q86(p3vJW0QG;%*X96GN#A?Ec`ANy5d>(~_te}cL)q^Au27uaGRu{fsA&Go1G^r@ur06gC*~tpY}-AprsifQ^9!hVnme;Fk%z}~ z3y3a#VrFhUHzW02^Jj{9n4Ybm8Y?$3kuMZT-vs%u7V`_Uxf%Ha3f>N<^Tm^MlQ6$9 zH=kc9J|Pq`(E%e|2h&q<_9QCY7V`7?Tv4d(rsftDp^uwdm^&@hTKSp6^b}0ap?+)p z2~?jwj*7PVGvhPU6Zp7dexjJ4#Ih8Mx!FLCmjCK>k+gi%vuE-`h4)XV=OIT4a?`Ug zJ2zXA!D6m(3eHX!Pr{km;`9uhDNN6vpx2z8EWq^X`I-Fb{A{rRxZi}Tx=N+E@B~yU z6SSdJsZ34J=4NIvCOPM1qx9X~rcQ!c4msyqZ3C&OL73?oPP1tipm_jTcNk?Vrc!4-iD zRh*kt@P>-hY-ywAA&?lXLl~J#R?0*7PG#L==2cuclZUAsHjLRbGc(|Pg)96mI%7v;I|@9*~L*Bho~^N<>H5%rL* zBwGEfg_qGN2?Pj4YD@uKKxWfB;V*Zpc5%Sh*ksemZaegjUjjP4m(+53NGwu2&|Uc+ZqKVl-Lo6_mdg25wjqCEQ0$iw%gIyP}d z`EaJ!Yb1`S(`c#be+Wdfb#>S4Hkt4wilq=EoGUpfb$h&v zX}Q|1?p7E5P@t_O`x<0^kb*S2nsKNjyFs1!&h%Aqgf}daAeh92i>C&~x+~mR=88fJ z(BU3?^o=A^^Ykg7u+3|?jWykD#9Rx|S(v#5qt|uz0flx)f~A} z(or`Xbo6;|oE8_)a-Q@!KTjbtz@w1Y#y$|vZ-q0eY?m#GgG2edG8eZgzZ;p~QNZ#< zX0B{cE;SU-#M%kvyv%IB+F^}eZiR`jxFR04!st!00G-=*>JWX@&;BxSr%r;H9w3lM zM0>`j4Yekx9VcO98grXGCS8L&V9|rwOl)XW0nLh;mfIAhoMQhZhTW--Z;On3csFkO zAW=2$tHfv*gf>*jxQe7m&af@uIF*$mBx0vpU?N3);LqG~=SBGxnf+R#bd*2Xp21^i z$SQfJVm_0H!`6Zx?zmPv{6>fqjK+~c0(4%rQLfeeH}D)TpfqWB2G+Q<^NhH1g0$BeJtRw<{l9OF3CAnAp$8#uGz- ze9P;}-ye9qHpP%OO5d~MI!f|xhp0%c2_t~4AbZo@&b-Y~=D`c5-eQK6rRv1Bgp&=1 z6TB`M$S~lu31ZlydnGngmZ;U7EKTfA7Fs37%V?fowX`+x2Yl1=@K&)vM!`4x-X$Dmi)#ce=a1;-x6j3c^NoxcgSn53a%8f?>IM%$v))ZP9Y*aetlDWDZ?MX{0{I z1U}rXZiwIfGFg5V(bZLVa>6G~cj&rGr*D%Rv%>tW|z=OY?Cz0gKsl+yS(0WYBKt#2Kdv10CMce|>VLHN% z*&&Zjl!*&FBoZ~`G|}#GWda%W9K&+4Z#h0ZhooN?bOO3FPG1#61O~S1lAtw}+ZO5xM`D*4*tlgF)9-_>?v z%Eu|0I5Ca9+?EX!p6zf4CdW_1|KSrp4%qnKMN=iME&1$Z-tQEwQjcpWP*DDB{Pe zR@Yz#%?=$nJ^2uvoyEmW-_$UC=ec30liNPF6ty?UoWEK@XX|VK{Vzw^OFm_#&vw`nS~kTbGP9v z6RMW8oGoFE!Gf?p9oHMPUaJq^X2*pcIXAm7r6R8Jd+eVK2b(7$yQ$2;Q2K#{I=pxQ z${Ary31etk38T0-60*pYD*d#Y&cXxI6qEK%sssf>>JrpO5XZZV+dq#zhFbt?HVcAx zb2r?kU1!c7uF6LqK6?0mCeCwV@Z#$1xSHx~dX12!2Mp+(CbP{EF^}TM_{PC@+8;+}}DJ9*bqRtMei=%K1C)vzE8F_C=olbc9DHtUS z+qP(DsVs~tm`p8~p)__pF{BPZupg59%7QMZlwB-iqS7(7R36Pj>8XvlPS>E6o8bBB zb2FA*Ccx*>QU&3Oo^-s`GE}mvri}LUVC*#iN}$Le?P1L%FWPhM)iNLvv8`Z!p%esI zTCHTM|C|rg2%Sf|ASDYGVbPo-gdwe~hDuLul%a&B6)#t7^@xA(3c!zr&6E9!E zE)i-vUFP*_Y7{Fr3#HWPV}4Z*Ov;KorkyO}^S+K1sxHnH%A*iZ?c`v+Pa*H~3P`gq5a zDk!w}(R*yMiFJsCf)zoNMV@==$`A_kDYRD_^6iu&k-kZxk`PRVsX?uPY?!nNqh?uxS$ z0mZFEVOmLGIgceXgGk`9`+MtBnG&L-GdrdZrEtNhKq>!PSe6?dCHw1u{I^G*3oS5^ zaji_&9YZr&vgtUq8lhZEASzXVHns$@u_>LU36Zf4b$Ho2OB8t;vh(m0l(f20&hE+5 zHb#~kVgWOJ9MDuTp(fBVj2y&9N1>D*eX0zl;lxn-fdjBOkQqB(Mq;&Yg-#d1d(;mT zKYy4v?Or5bvFBZ)HHDa%;($!lffyS{F?cUI_+E+?K>*y704>x@a2tH+UI@{W4ct%A zYhn6=F@a8|I>}VFjEw992Nd|PMJhwbgTD}?PPl97p$^bZRwGxH;b}K}07$*nXWR&k zr3KZqoKeK|AaKgX5UgbV>7d`3?~m-kSRRbMG~&`|E6hC!&Te2#7XP>s9<@@P@k&i) z`#8_|ckSUoqui5k299pKQ>TfB)upyN`p`p1cC|^SRfCe$k$L2ihaOS-xq~OoBuiSy zx-FH1GhIo_#l+wuwGc@zqz=(Mq9~=sA=N3ThW4Y2eI~t6G-KJQ2a%7wOuXZP5xbQk zchagv7AcE?SI$e)94(kU##+2}T*(3*`+NtA?)ME?S4YJf)T~dQ$eA=LJS^_j)6->$Ki&Z|i^UbTEu`f3%dm&^5a38&pba zIhiW=%iNs;xNcM~3C5K$N^sU4INO(l;AW9Yy-!JL?aFs`yXy+q~ItKnAty7cZK>BiXS^ngG(1Y=hz_TjQ}>_ zy2^1JC^6!=5_l&`ij9IYBpGN^oN8mlnx{j1}ZVw$^%4H3-jMUw=epkhn zZd$ZdrzPHV6>MyjlmCSx^dEC*0mwA1AZ>+$(Yz;Rcn)Am);kB#(8HpxDUUpKU%s$D z1%2OQqI@BJF8c72kPiT1Ckwb+bqJdS4smoBFuMW17mq^|EDj|-J9YicjCOkfsO!pO zG|tE=W0-(^TDw}SmT1SdQxWDM&68qkjB8dcpaMNT8dJ#%Sd9+Vja0TCMKN&2L?r{ zI|anKFv?EO6vantaWaRJUWWNZa?Y4{%t<5^R&vUH^Da5zoJ&r5LrIzxtq4MObC4+^ zmU&ySrT0+L@dF12d8Wk6xZJ2)cAnLmgW-m14)QKuSJ9h^S6%v@t&NRi^q8n1v>d}ftm14$PP#ATc9w@*xtyU0UIv5v42~hP1 zv!e};p0~aiDyG_}_AUR;2>f9MTgU;ggTY_Fck=nZc>EzuNwK$Q)kEwafsU)MYOA}A zbo@s4WrH>;u?X+IS&Dj2i6a?#Lsdt1bF?Xb)BOWzKa9>*es#J+dZbNkB>6|H9 zB>{&@)p1I6Xhd8-G~!>d=EQ~Jhvk*whv|}HW=RKw27MJ(!zdGwaYzyotp!S&u2gC& z8;uzvg-utg2*qOewQN`p_w_P3T_NrLaX4^5g7~1<%|ND{$v{|_)2*)oNurQd2^l0y z+V`hMdl(WrLs)beDjh1PWN*$$iC^@yPTTamO}I68+OWx2XoZ2?>Z*#~-+Wi0Ef~kc za$A>A42?nELt-j^5NCF$9NA(M4Ogs&Nt`W-)qgom>oBAWw4l-=vONgR6LCFg4ZXGI zIpy_3$%i)vvl)_gX~jdi43z;x18N!}g@)8LX-)S7<&aDr8{I&(B-#Y*8D9G!TL`B1 zVIfR*fe)m^02gUmWDV`ORtc8Ng8IELgD_qpSU-GZ$lE->EUp7@xHtoElFK#OL!WQ4@QXBWY zqCo7c`}ty-xVaR(7o4E?+C0D zdEkzP#pm1))qSWvbojPAEYe+HU+9)lPVTFYLYZ}%@b$I9c+f6Fjig_0{*5`;we_m! z^1-wv{AF-Fs2ZM)CIHCRSTl6;>uUL)8K}xeCPA0kt~AzDK&u)ep`a_RTQ$!i?>6)tku@A6{SEwghJLk9q4ic0US!3}!bnQ$ujyq9BcP!XsJ3$17T^ zV_Yv_P@zVn2656A80cw<+_|8PxpykBgmY*^D|&B1Na`sIFRDFtnVz^k)t5xMM;a|u zm&;x>8~g!0ww#&)p20^JI9M`ex{SKiUQAlWkujV;4R2R&kN~{4RR0tdrUr7i_?@f$ za2lu@KCl(fkqUO9RyX-;OjN2Su>bJU*5QB%fKcgv^n?!xzOc=?X~mDgJItvw${?*Z zYQ}Y?A>g}ba)Nh&{0ZbwJW!wPtzH7MR24Aas?NyHkT)d=_;`YE)2M?Fw;+eWcII7r z{M|LrV|o(nt%Q!@)74x;gvZjcihBsI;li9A1H{np399qvB(j?)jzk zx;9JUUsu(KwMP_(lNNM!s&?duYyd3kx~3;g>PX7(_%Co+2rfNqsN_T;CQrq91q%II{-{kLzO zfac4~0&|9{aHiXmu*|AO%lZa}4h4Z4m^n3@!YG?ev^%ZF()n|<{$M~fb)GrijM%zh zO!Ju8D7%@8k@n^1UoC&qEc0FG=LXFEboi~jEw}XX7iQZ|bdg1d26JwNk;WkL1S5S+ zM_8ExF9$sCqEAB4clo|N(1L>khWI!Uu`>9P$KG4Q17%X?2;kRbsX^G;5sRbLNoaF0 z2ra>-w0j@j@bf-8+^baUR2Ky2-5&vV(@?r z95?U1Nl*R)R2pnW_C5SLO5y^GQ#h}~(I2eS-AG!HIv)Q8d{X`k>&n7E#Jl3r{+Qy$ zLR|1`kIVBZ8AwS}DuFdEou<%XN|6~Lryj8od~b4I5l@DZa`V0r)lL;b<&8?G0YdsUaADX~b25$w2n8C{@(SPOIqZOl}-*s^Z$3j5A|&vkD5ZX~kvOY4w8Pfrs*} zL3T|?w5m`p(R`27m7DJ{%KpfJE$!*l740b&M7eg%Zn~IO3gqwxG8GSNm}%xr(D^T4 zz5M*?9s;_R`Un^^Mc(NVI&4aVHVW5T0%|V8qMt*$Z1Rf>aQ~dL(7U)OHjxC|NT)d~ zSZr!PS1jI1E#o|Gre#zCnzsRGi%i|2JpxUhqbsn5mAOHH&U)VV{JZZb!%0j7yGXNh z+44Hc5{;)6XQ-#1o)9RSFi1KM=y4B-A0ZlO7W; zr_!_PK_|Y#t;(q376r^6ZCv^Ie>uiaIXZ*RG!p#T3Igkmx0v{#1%tH6{_8Rmz+0kE!4k%}pIE^qKoS)*vXdSeaDCxmXyz_YDZ z*KI!sD3>8aD_C!1-6;;-o=0qMS`QMj@27&$J;6F=c2tKrB`sp5saC@KJB3EV^`ECi zsAusJVj$E{64y^_Hubv_`F|HFJJY~dhEX$6SXP;(R-djpRjto(Vxdo3^rSADq%^ps zPy?$6>|)6rKV40cRWlWo@5y~ky=R`-pTDxnk`IP2gmR^7&cJFquqH^LfTi50sH0!; zl`r_qRgFX8SKF>N3Yg9JfT=9E8ZTG*7oTZbOL(rsUl|D68SHy8-xB_LJ63E_+-A_Y zkxO~%zrOFqF8@XQ=q*2lVB>iQ?c>lN0U!W5t)H+y%FAiErIU0UIS*3gN1#zjF*yP!XX2v`rhfz46}3#vESW-3nGYzQBRv>{q+ z;`M6FeqK{%n&U{b`dZ>eL#H2?CqAeZr3X-$2&mbU;v!MFkCR)gYaMJ&RQ zUu_W^?Aq~c|9VCQFrenXoA+B0Wn#6}v_fh%*4CtrwAajSE)VXTlY4r>UZjW3<+X6# zlQ!33r9y`@r|ES) zhs`vqNRDyUoo1NE7n!Z`hc6ON)S0!|FUNYQ-8ubo-i<&bdN$4Opf^`oDQSY~nL5P& z|7SK)l7h*pFukcRhaQPR>X3FRQW@&f#l=Ob64zq?EC^V*ZAGlCRZ15a{1vWc&n0CP zFUZME{z5UCU72s<8nxNYQNQdpqq1MA=%J>qX>y{t9nWk!x;NHp-}#PLE|oOhZYJeEc1<5P zh116+yN$}O;_MpWVNtv{ZZ5CI>r9f~7)YlHM867^v$)P+?ChFoU`?=HZEv-ndRpu(>t-g zVnTO%R$R6e)!%|Gc8}syC;pbR!|;kjiB5anc8?PXFg24 zploZpx&%Vq)-%)OQYD-`l|Q&$G&_E|1QE7%Vn$HrVxu8&=Ulih=RNdu*Os&;-ispT z4)E0=jZH{cVsPM~@S$I0c^lpUc2Q^u5-E(m4*{k}E;a=cTvmw4h@kXhq4wtV@BrRb zX*F|CMppxTFuEG#%E9al46S4bM>dy5`Bx7@D;R$7%KHZ2yId40y<;~43mpstwx}tB z(_)SMlww+oA+54A^3kx%DG7opLpz9N+tWKpO5tMdE))HN)l+|Q(JRMdchPbVhZ)rg zo6EWbGGoE;tveahXEkHtV<@{ZFT0WY99ro@0awI)&wMTOu1lZvp;ZuleNCRaz+G@^ z`s3CGkI;*vrr%jH<)-F~<}NNyRUa)bPOuiuW;0T1N}4v%nqD&!+fl!nZ*@;=^*YOD zqo)sZ?w5V?wj64*-D}XKrdv+*q2AYse9U=eUn4!qqg?2z=<*aJy88Lcl~)hqCm?77 z!Y6$8>dRL@7e2vjPR4#wc74BDDi=G@a(Qe3HnD;{W7%rfpX5Pa$pXG=l@dI!wX_M3 zH%w~30L-VQ|PTw+HcO*TNOIC3#M|?hN{`2 zkn4HVxK1&Kg_R7*aX>m7OnPgLfE7$kk z5SI#2KJcMgFdt8!So-u?jQq+gxI{`7YgS!C1Lp~NZK*l(YLrOTOkPc-3gIlW-7N*R z$m|}P8^W8FcNTf8u{34aP}A3%>l=4t1imoQs1f411bGv{*P?6!mg05h*8pXeR^}bK zBwe9i8`m7Y&7O!iQ9mzFz`?Z8GIn7Wy7t4=hanWA0sw{2K7aN3 zr$Ci|7x`ZEZdT|H&{V6)$R%O;R1&(<+5UP3cG8d4IR99U1u>!!Vw%sws8*hp+RI}h9%c(BqRN+)nm|VU z`SL25Q#`;N;Ix?x_$qjU34Q=vTmi#eHIZv^!{fCX7IISzL*#p(7jM?sk!&_jk#A1{ z5o#JZUrL(#ne%X?Ki9ibK?qGeLSZWvgzEH)CK$~nm=vljGz2lUs{PICo?%lQ!_=*L zwpp2~us6C|tDdu@nTnu_7RaftY3IbP-s#qzh05G=Ng)OKBxkK zdZ(oSs^$96|DIq^@c7sTlVb-)NMC&tEmeJAO6WtB1v6J2t=bqJaZ0{9!=<835$-CQ z6=R~dG&|yh=f~C2?UaD@Ts&Gy-2**9d#ZgG@%4oK4K_FiW`yz!QiDa@D6dedC$Lfttp%oB z4RV#4#QMdn0#$?z~-K;L}u(2b$CLZR4SHotJPfN`UpMM4at5n4syOe~+Zz>GvOq-u8tqEz2#nw4zK0bWt`SJRg8fJJffQkW>~aLdrAwUfb|^9twKwn5hQa}8_`Tx%VaC=gtPHXU1Sq@ zh&%1cPSMfL_~DabVK;>qTcv$c%hW0q2u~MEscI`tH8Lwk5ElE2u($+4aGI(hSTPTf zI{mmnryr9}e}1J<#_KFDmP@gPvRDU21dEG~Y(!_-TwKhqW~F#ztF&I9x-gw=NkfB; z<;6v>8Yz zqQ~ql*#Dx&@)#6GS&MViM;WBjU9K^$e9zP>E0xCVAy998@O9&-zOGtrSk3umO)pyo zIzk5rG;7Urv)PM(KJ1THWgM~Ev~w%R!ucmS4^#vD0Nq%Zau74H60d1GpE5;YSa@H z1n7x2P6xU``=DHlvPq?l$7@g1;V|tEPER*vL?bB+=cRbEOoKNtsoZ&ry5VLD^zYT` zqxLR2@|L)cRU8X1bA))-MAqq9)8w#WKGXQKa%;Y+@mUwNrRFpE$Dh@frrp6Ok+8y& z3W_e}O&waw}0dp3M7^!L!nrAu^jI@wc z0eDjE9a09PN5d$g__NZtfo$qs7d*KDa)->@MpiHMrK>|e+!sn#G7vt1Sj+-x!5^G? zJi##AKgSCKc5Yka#uoaHPWs^ZUR2_kUbmFbu?jAE= z(`;~4YjH3J7J-zs7H{Icoge@55C6+w{^5W7%Rl_@FaGlP|KTrx{~sr1>AUQ4RR+Ob7&=vcwKKJvrd*H~V|1eDmOxA7K6j{~kcW3H;gKJZ|&1@E76r@F;lt z&6#=8F|J!?g_mlTR*Ao;Ra!3)2Fa{DDUb~XYFui82(#BrgG)3-*j73n+dwy^mLKJDv;-Tle{vg5FWqjzzm+V$L z2SHH;78PCJ3T**hz%NJF7pSA|MNyXdj?zQs1|U*NGZ>f-GGXlUbW6ZUw454`x2KW& zJT~$@rziRaygc_^8+=9sKf)ky7?$3(VhrRLTj2n_h-KrhoG7te*<@kC8l~S>L#aAV zIWcDR6XAf(f!U!Py*V1bxpe&IZ~*5fMo=5=qv<}~HPLfXVmaAWqv4BhR zh=XS{%Z4}DmlUtvW;bH|AOMDU3$9uiDLESzLC6T?CjtZ@0uX~>ZV8bmN4H{#@0+$F zas$9pg|P7(e#g(I1W7X^gTv@qe>@vlseN3%F36~9lMiN(-94al zH1mrMp>%0|;fl*x2h3_qgrf`KxfO|`3#BT5AXSeF!!V)iQLc3Qdk1Dq%cFEiFaZfJ zKnww(GtNUA;=393rRM}~+i5i*LLTbkB`1=)Xgb~%xM@a1mq){pC-CRS2giE_6(F8k zkQ1-~v+Y~x_FQbE(7G-_=_>3(iFxjGPYim4}61$T?ocF zhSWCAieYNgq4u8kX2m%W{d;p7VB@;-nnQpjMbb|G@>spsR6X$)2-y!2{iK*GMW1~T zu}_iyqhxCO+vV`7gopIh!})JY59WihH;ZP4@@>r&)IM*K?d2n%UB(3!P23R`-16Wy zBtD3$5Whq>ycj|4R=@mW<+D#$Le!1OxLIDV8aFF_<7RcWYTT^$jhmNN)wp@tH*P-f zR*jp_nQ`;QvT^ezWWHq6!heVZ;63Es>-pY3Mq&b$M&9)IG8s8x(P7%)wIzU#2!W|o zF@|%vnMG$?iX#ueb^HaTUzigSO674YQ+t_zmhhBaB4gCE1{vY|rU*G@X{=f2%e|P`8`#++I#m(yS(#PN2|8)PK z(V_Aa8k0o|eXtq-eE;YB|9bx~_kV zdH+A(|F8G|7r+1Q$6t5ufA{f!G$HwK@Bj1tpFjSJlH!Tqe*Cu|{|zPo348cwNc{2R zzlR@4fBZGS|J}!5(-ivyefs;~@%uk~{Pq36h@bmE-~aLBzq|ka{h#lDd;inN-+cUc z97pO;bRdP+R``WRH$#K}`QzVBT>6)fzq8`fPxNMd6TklxG~iDk|Bm1P879NO z-2e3PU)}#678ShqpD_W?@{hl|{|PR%I1LQ{`0J0qx&QP1zi^r)@bhQ>@n3!X&HZor z$G^Y->HZ&|ydv`&`N72{dlI&hqggnj@-$=~WLz4nvJf0qpI-mm%uA#Y9*_Q#~Lc+vhy6j9N&qggws#g~vWWj>5z-L|JfQ*wep$6Ez7)D1aFjJN+oHF2<)j`=h zILr?@``)tD#;t**cP%r??D)Qf}=?y zCQpRYi5b~^T!k5X+(K0BF`*6>e2OG=^Y2VT_mM}2%(C+l)kIqZ0B7zEtsq8RHj+Vu zcbG_`sZ{L5E}|wY7r>Go{e7T3mnq1rMKJuI(%(WjiD?t0)L59{p8aWLQN*!XH0$~0 z1dC~EdFAd90;}n}9-<|9L!OpkK}pnxZ1StGmLGN~dAYj$IeCUJCg*H||o?-nyO(?|4ogBTWFDucNh;4X1iS{+$_*87i!|NcxqJu2%pJG}d$L z2M=0>wbm+V`85pGyW6N^z@{5*Edy0btpXqjS5Z*EU>E?#Y@ygoTHQPx*fVdNL1roX zUCAR038j%9*x-->4uHaubX`DM!-)V+1JW9$X;w6KTouEQ9BA#i5jD-i0nN2X1&m1j zw~I!%Q$KIk^+_;jfa&D$XJIxgMn70xVl zK!@{zeGJFWq3_x(1V4Gv5giw*a7S-?BmjA$GWyZ?%EyXdt&JaadJyfKaC%tza(U$w zbWJXcqGD87aGg!5Pp7Ur7Qoon_2M{*^;$u|b0O-_o_LLGO%2O~U%f0+GBgim*YZ9t zGA=1fD~qGNHbATokr>1llgFlhZQRjP7uJkxM)VpPZ1uvE8ut1LEz4l|URS7gB#_du zf2u){K({rca?z5=K@Dv}cVSeQjQS&X3e?kCuvU5|a50Gptx2<537lyNn}re>W{~+T*lDEftG4uvrkknp zb#@bk8#yFSulcz|k3kbN;9@dK7~WrKvl@@Jwc>m0u=^NoGd*#xNstI-^*iou;Cr@u zN)avucN%yT-N_~Y9QnP>H#q7I*{A^64rxKth)nI7F!jt24m7H)mCPj(R2jfY#c*f^ z4uTJMTrZ7Ek3+0bOLN|B&m>yt!ear^L^rdIJ{6*x z2LZ+~8eYc$hqZZA0|OB};ID6-|A;GH<;BR-zSb;Y~g0y zJvX8yam9$1o~LvX&yskRd3NrGh3V6AvF3+d6^uLHd2Za9TD8TicyJv9!F_IwO>K50 zry@Oo%JDydYEMCFL2e;T%Tk5-ZO;X;`(B7a**NPBGt)As&ney#D&2Zk5GNrMVdJRx zqznf$3I_tT4IB?N(uiNeL+hHOsTnAi6AyMnjnw3Xrt5g}r8rQWz6tmHeGIpRL6t&6 z!Vei(g`g6f1O=prc49QGDAqVrkcnvs@^lwRM34#bPffrg_MI?_xobs$lK%rMh#x%5 zoQ->qi;cn#DBwGcBZ)U8AT!aURhRWAB0IV0)!@SjKR`aO6@J#?)K%~Dd$BU2) z)3oUj4mI6Ct1^&Qu&14qQgo_%!Kz4E?7}5M&=AklO_{^APahf6fhx^vaQM+fFi>Zo zegcZYX$odfN%!;u9U!dfDgeiq5j(vGkrB!aQI66c#sYN&)S+-B^cENALx~v`Hs_c1 z`DMJ$JX_wPTwc-Vmjy)7dWW9tS)fYd`zg~ELj<^Gcacx#gfM&G_ zAWK$Lyc#h~K;)`vB|Q@9NGs_{^A5z6dAhl_wpLrpkU7(s_9c`_f)p)fG4aMvVn9+Z zL4v3>>YXasE5PmnYcPU?g#g``L-7H@_+FGWfWjcx<*KkVn8qr8)_PH@gj(8u1?Eva zW1<&f6jamm)O0Nkr4AJ>o$TeO@7G_qa&Hx{(zDl_dFtk#-F<<>EcJ>iT}bGmLU5N4uu)Mc}{Gj*#%!zfYWyWg$c& zRuzJBtyGD$nStGNEr$Kg_Ib~D5x-cNR7q1XD?mdk0v&_Bt$SNkx2fB#=UQr%sJL7b zWu-@z(rAid^&p;Dt^%d}@k$Ep0ib^|?pLKJsQ6$pnk_?YQh=5XYP{(uZPvfCrjdHA zO37w@P#amHw9reU*dLMYBmxZK{CX_Zn$7xzmr~E72FSn$uzYORPrOF)*Ti`SXs>V& zPClFU(bQeOpOA`BnFLgfv`16pQyc*fYlm0|Z8!;u)gR%Jr$D!mQo(biR8w6qa!DSK zb=MkoZL6q%bVW4ZAer!D3;Tp$EUJi{wq#J)`6qRZs-5akVdHv*AO7KC_er_78HPX)rz3JkEWtS}$1EbE7y z9PM;+lq&usa6O5H>yZmEN#S|K8cQUAkJuBE8YK#c7-m4TWEky=_@g>Pp*9S#iuxmxz3e9lgiH0 zonm48ghYPU?wdXHtVlYqV9f%HG;NUzPnS#$EmKQVx|r2e7qeP!&6j4I5KoK5i&{tl zP|B@FwS{{U?-=%lsVz;1pPd;yI;|@+9v%I4@t~j0G%hWS_biLl&-UWQi-#3iGc2~( z6`KolBX?6Bed;28%`mkw3g*e-uak#`l1hAt?PLN%1~Az8_PS9gh@uWyeAJD4XW)!( z6YvH6yik7mfcIj-)XE#!&S*#HyiQ(#q7gHiP;AC=4&A6~HS%zfE`A_O$$2s4{rp7u zgVf(oAm8;Z*9D9HWH40y5+F1vh)T3p=KDu33N9n)Jdm@Xlb;`8us-rR08)Al(K;X) zwsadHUjZ2i!HPv_BgI)Dyp@8%c9w1HNCNkNoCX)jhfauUo^GF za%+B3Gwh{V4OF(ioR5TISAIl;y&up82??2WdY}wh-pf$FEzt5gHbj-|JBXk)ixxVC z0jtV$#M2c7hOVP0XQv60?V3?*X`Bic`MD6RZ?rU{#vABg*=V*ja*^op4U?QO*IVl? zUahv~Tl~i#;ctgGTj-M6*=V-F2Lsx<(c&9mh*&WyE&lp-i$8ykVOf^QE91vj6YALD zKem2^`+mf-4c;VYPHvnV=jgN1GVA6PA8|JZMwZv~#@YuGxE1Z1ox=UhEDRJN3&TmE zxvaW}w|jZlRM@_k%U>=(#Sn4I(aUwOMv6XehOk72STC?nFLVaZw9uXBujijhpfDSq zcdH9E;~G^SR<&=~CIsUnpE-yshYlR|NA7Oa9WwNuiUFcT-s}e}t6%Y<<@UMLS*gA< z4SPujfMc7+2W=1cX2<&`e;$J{^T2fu21v1?v z`r%|)IBs;8Z^)%k8r?$4H(Al$>hf6LcX(hb7hbN)3vZOt&&D&N0Ixw9;Q1v8EBCO6 zF-(tX2jk_>K8eHh2hF?L0yxD3A7OdsJ5g-T@j2s~Fh^hHZpo`iTz19WsaRT@2fHVy zeEVdd{_JmW9`N16-IK5B@9x{}Z~5-Y3H&=c;d`6=2WKa{d~fq~^MJQ^-|e34YHHXY zluVU$#h%KX3RCoc^W-guKl^XL=I>A5<|??hLJys=9;{+#zkPhL`7Pgny9fV{_}in? z{q0@eKHWS$Yv(F-yuPn^Tou%{^)=tw-8%c4@9n?M_r_-3Wboj_@W=^1*goZ_fZoGT zPqz8H-IJ}O_AY;SvX!e);Ekm+SQG5P3Sdns2B%?iQ$s|&B`w`=P@M}dg>|D#zT&kx z(#2)|*3uwUBuWyTsSOq^X=$UH+_NjDR=sS zDz@s0G68`7Fz{Z<396QDhxs5)k}0@b(GemI2oI*UyO(3(6P<>@ilm+3$m$i>1>_ef z+uiCI@$0gzcK7*sMs>Ci!M3MI;0YaHnk;&FB$SsXiDT!RzFd8U^zf^3HBEo^g!Ibl ztd0$>XgE34>5#mHF0q2@qhlC#Q_Q1=%nBl$7*PXNfE(P@ zjN08Yyrphj7u>%z8KYG>U`^W3+g3cSFF<|f-Dl%YwQd^r-D;L7w;HEt)quThXlUXP zrP(a7Zi$yFRLzQx70sD)POgsmFD#Gmu`WNfLcSS<{Ls4Pzeqg(i^S!d$$+<6z>j({ zf9qfI9oEzEd1!$C+4vOHs}rxGBgUcc@zaFy_sr&}!-VgJ4sTmAZzmp}ha-G>xz+g8 z*K4g$Zn1co=y29z@`cIcK92R+8Ra<|IieH4NFeowDH#bPY5^aCpQh2mAO6cCXvy&d zI`71Fb07zkZvDnJnz|62E`nF`Wxumr{Sp#g^ta|$Ej($!+DW~wk)A8=K{(0pmi3oo zql?F=d81}rYtsRR71jA#qqW}L__6+ae&P9I#i(+$hg^C#1#S*gzotLN)A)l)mgcK3 zzxp(e#s$oXrfRU-J=!{bZ$zo^Bsx9VIe|}5H@aJ=?`t40DP)2g2xQbSQ3p9~#@SF@ zl7)D=Q-{zo#12;s7`nRRH&NH?jgGeAml|f>92X%aqjMLjQD(Vx)u&^M6X^!_Y7QU$ z7FeFQXNOxS_;>S!pPn2Y?eVR%Z@$?-wIRYflN!WDabo2Nb*kH#5&N+ z_Yddx-_Ct|!uJp7j?PX`H|M@R(dIOXS8H4^&DbDPT2};9tG-}v|CjvD(fhgmU(W6G z{a-#pkXH=Fx&`-l9S(>H(1-)!z=C{0kcy!c$!w)xizv27sxwl8}?z6>E0198bQ8yboO=!65pQi)BOYf ze*a*XpB*3XzvXXtPxkiT@`-WTn>(9pZ+<)1KH}|@HmB|!?C*Xf+q(bD*b?I}Mz+TmOKUw?hV+lQM62Paqo-`zibvwOndAHC(9 z2M2uf?YG+8(cVM7nZP!_dpYKR`PKiybw2+XVMDSsN!&hv_0{srPoZv!r8)vVo3B-P zwTj}@a&t*j1;oY*2uPMdmNp%A0DMF=aq?HN>A7M2AkgbM0!~XTd)_(!!PLmfV){+1 zK-mh286JiOEtHHTWJuT*OdPONYPZERsy7*lK$B#!AVk3=nvpHc@e1JFXk*QzxcRY9 zutox;&2wCmSb~LIz^v3hK?I>sm=MfnSS@*Ec3Z<(V#0x_Q@%4H?nWlAtAhc~^Ycai z%tU-<@S0r*3=@!}nSgZmqX}{63s8J&AhVmtxTaHnK2y6cY{)vsg0JvK<&k-sOoNua zTz)iayE;cl)+GZj`ay)lXKJJbE)3%p7{F<2K6?^R*HajBK^2e@3IMEN3VC|ocm}5G z;%hYsP_ba6Jx8%e1McN1c04ftrlw6iJSt!qjD?C=bPF0ej)?bibc(*tl0+1c4M4Na*c+xhBMVGoKcjBGQ&tyZ8h*$kHhEDDn8JADsqEby0opBj^9 z=tu$;DUw%YbY-4+qKYdxJmG3kZ43~(-m>i|=>v?D)s5gbG&cgsF~lZAtTEdOg}o8G zLRct}8B%z;R-@`CphxICo=ww%qbVu$mG@oiip*u1)f@6b0#D+4?)w}de$n6*Z*_gk zhNTVf0{o}Y0q@_yiZR9_51Hj+>!KlZT^>QN;B^6~>!J_nvB!k~iC;Ue-9w-^KZM|d z5eN0NaJh$>Qm|ArHX3-%2EYsKzmDUkW)&p-PaAoF!4 zDh&Xkm`IvEj`2-2ocp-Iv_epq46Zo`;$jx~yl!FLBw=f`P~_DRS$tjL71@IH_32ROi7o|vd=QoX?m;K9ER1A{ zKy$!5wjcUlTpi&;u6A9&cbQiql8>yI1ud-#%*cE#b=0Q|vh;C#fV}TVwOZxXYIUKm zm-<;Va)KGM)QKu+r;`ajZ!HM2nR&`!-Yf!Hhby3-#=fC#s7mfPP{;`pur@R$Xh+_2 zAkMS5(z@onRBJ3Fd}9l3_@wfIN}Q?`bkff9R zf;7ZnD+nVFt)5<}=j9I{K42)Dv?bE(2K+JAa;#e`uqD8n<>*aSuGK0JAC^9R_<#}Z z&l`Y0;3UB)~FESKMlJmMWlUu`7t#*u*!~ zo>(U+BB~+lvygec+;^LAWs)gsH4@Wy1=akt?Qg*DTiHnaRY}8k2#jwfVh5DGz>*i_ zG)+YsSv6@noP+|Yz=8pMi;q) za%=uV6Fdx`EYKFv`+TE&1Je#uyx1sqmndPRXO)QM87DPDB7 z+H9fTqz@>(8XOwOW8H}@*Xd36d8*3=eTGhBp9^|i+-K_bU)g81%TModXX(O}mU)*G z*j_*W*b-uqAC=aw{&nqyN);E!m8UoL#~*2zMA931P7tuTG<}@@fOO|W#@rIFtH@|e zABY21xnE+5>yK!mIwcZXsT%1Vl#y3PDk8qHsf?K^f~bSfQ6;4wQ%hHC0fqw5_!-q` zPapg2ICVacuvWcQ)ZP$;!DOxaSknuSNweq3xzd3*M(q zzYpW8c93rAC7@ei&VY+qpv+!^$8p~ecdg#AtUAX%^3cT0E2zWM?&5iL=PMVnR-M?) z!YEN38R6>ena#onJX8Aw|2~ZKkse$ogMEzbsaPLz7VBf;^y~D?tRNBz)3O*q%X$d4 zQTQKkJzVp$5J1o)bYR34GcTjcXm_y^za$IQPGR94B}R_!E7_M=m$kU)FD_0nUTHvg zd4-rgjOH$iCquiWvE^k9__QE9wi?}M^?_cB0N%c&spVk72bY4Nr0GdBJ5-e_<)~S% zlPLgLf-Kb?a{i1o&O4=&sbL%=|G>Xy;kFgAvZk&1B$t>D;3O}I-)2W7^u%n4B*hy_ zv_^VQV$$r-O_%G?3i3{%^220<6^qZ4ece(Ca5r=Z0)2rc8Dip4q^ET!i}qw?*CFbY z->jztQm&=$uNJz$`r4h>gy{BbD2X1AY4}yQ0-7~x6d(yQSL=n$irFq%7MDx5b5+vT zk{S}mH>ZaO7>gDsctN$43ZrUn9}%F&TV0EGj?d3*EdM>vvNQ;J~fB32S6T zUk`Ohw{Tf`X_d`pQ%n@U=@F4_L(t1+$6WJjsFbIll(;xkkYOqKPe!{I7v}*vPdbCM zHMwFPJ!<-LiB?x&_EPm2nBu5kcA9ZH)FVw>(<+r{O;q4_BD2YK2=VBpXkL?FIRW4^ zy~s1XXfO%}0wREAL!jLizN!RkfzMSr_wbr8^O557?E}$}W05qM*OGNf zuof5R%g#pA5?O66k;JRlj5>*_MyX2&y2p8MIwDtgIlqUvO{?RWdO!E2JFcnQ&FM#5 zy+-=DKE$u$YI@ML(@!--av5w?SG2oI#lcbOHtiY;+@ZGevL0yqC>K{O)LH7hU+!mL zQ`6NwD%AU$KFHM-REBbB^edR2-NnT#+*@i^5V*JHE8Q=5x~8V-R9qfu`k?5Z0o+s2 z;Yb8V6Zb}XC($W#UeAilSDKa$Nb_n;q*xh!znl%XfIXOtaHD$)=}CgqY)wz-0am|U z`SO!=c~G6Aa$cXWR;3iGS_KRq!dI`a8!ahNGFlsT-S&GER^aRNJ4f56-yZLxY<{Ek z0wHuKP*w=F=lRA0?+AQlF@9Bu4B4oki=nF% z9yOY^u5Y|3k&hW63D?)>jn4MY=ILfmId8%!r6@;hD z2R?0d%$We2j{t2rcON>`nr7wii3` zt=gDH;b3&PqJK4B%dA_W8oNsOL(>+Y-L!-ypuE-0d(hCTpB>6qoam^^g1u8*DXLRU z>$KjWveSb{IGpQ7{o-Qd>8e@;6m%X36m-Uq zXj4JwTB5<#Ep7aBCe@~#zB8uPBg-~N3r!KOw+N`Q^a7D{^1AgHwR`nXqyG=Y6evVV zR=|;;jD$=hp)MS3Ai^JmavltWG!2j>aPqApcy5-6hNbnNm$$7|XJK9MyEzWL3gK*w_hd{z z?Q%bRKF$JE5YE1SsK!VJgn$^LeuT~q;D_~;XvbhlCuZRl;&soMh++zsHG$FCg&2-j zH{xQ;TA_D`)YWRH*WujMg!+ltx14{xy` zWPRu6)Q1VkE&B@a4Nm>H>?Ym`oh#;j!*03N?_;3Iw=5Rvh+EER8zW^}&}YjDIR$>i zztm8ScY=Sn;~SAk!Yf9}c0#c&E!TbLu13h6-iuPbSdT+V~ANDHKZpG7Oxg)NhbwK%8*9;4De%5yn((p%%S&=$J6uF z?u`@0QI_8aJKHpuHU@KllQ39EN$h{aZZSR$W>BumyVfP!cAWqd__^9c#FWH>V=Igu z%YEZO%-~xrI$=@b#u295&L|-Ohs=&xCU$Rl7k0`Mg1POoC}J+}f?qoQJ$93bcOCB# zV3)&a2yJjY8zva8CxkAZ&b^6zeG~Kzc#>(`z5UZr61@d&i2cQw%xpd+fl9 zW0)*mKk;k}`r_a0_^ykyvFqRb()UN0O!|Em(xgFI{Fd)u0*{1aiY0OsMM)e(_wnb@ z@|=KgZ+*>sR&U7mzz8}`ZTq7x*lMQ*hb$Z@+0)SK0ZAXR&=NmLBYKv%jp`_>y=Qq> z7KW+Djqe9WL_@MA@b_;LhsC_d92X)Lc>~r?y0&u#v)T8U7Yj0UfZsyBEp~ojyf*|3@7|F0E~zF;z{JM%4sBO7KfcBt zD&oDN4_~S00KLMW#I?db#|31co@bW zzI(%ZiMUBAK4CzmL@}DU_k1gim`9(0sG{S02M&TIxvmpY;AaklC3u^w(T zGA(GN%u0qrWPc$>2Q!ZEA#LnQMj%VQLl=THmbT-2lFkXZX_f&`A0}?>bZ=uO!?DXs zWjn4|81IGt=*YDXASinz3-|l|Q~x-!Wga;P2skhDZQph5(;JyRMLH>nswg{yP}&e_ zo;U+Y?YZm*2ROI|?gxH>aK2|yJG?vMy?{P7?*(F=1lz7358JSkg6(W(1qzddnJc{S z)IVg=koST;KkPB6?`sCFy<#DKi+~7kFOZ@X-V08gfn%q2@1g4m?*(mUjqnF&2BmUU zQ6^0Q*@ibFXVDAJ0`SAfR-L_zIBDl46@$^1MWJ<#3!T*WViIBoZ)5gxWD`{;it5MM zO6J<4L^7l@>)Y~PqEqVI@-!2ouhZY-(6^Ib%zN?8W)~Mqd;_%CW%NQLT)>w_u$!RJ0a`A2*X%Y2C+ryz+pQfkPh1kk=L@F2o9m}t5V4J}{G;knO{fIF_rDkg$$J z9~`x|oX~RI^rfLSz(1RU)5q6_)?mPttRMLO{(;}Ku=0dXX)H^LSt7G(<+q;r2Dg&O zhvY8#?NJKAWw2wno@9vZTRLvZ&OkPd9awzO*ISQ<{?kS~lw!3Wa52Omp)F^e;S7Xwh?oI? zVDDfa%y2;im)mdp`v3Kk?7OE`^bs%K43TY`)(2qd4IqtU@IiZA5(a4vMum! zVxi!rphQXT!h5h$kVEnWi5O6k`^a-sd&mV;{HR5{HvyczCV)jlwikU3!p90+X9wqUpWw9la1>9Ga-;8CCVop=lEJ)rx< z6`|m3_j~%K-91YJtBX0}$+s+VKQY2;dR5J2Y_n1*vh>Pp-iPBeE^-=5$nJ`HjG1@- z4RhtSXn5w?KJSlw5E{d&jJ}H>Fc0I-2v!`D2-+6{EyuxKeQ_U@h|?VIosb7E3y(06mQo*+H(Y^CX%Iq7L&p}M6axm( zUm_yW7RufEoBk#VRZ+Zk>TkB82qj;bMA_ReXusfmF7kT`9GzLD(9{j+eE9OH#268_1<4blceu%*xMpwvj4!V4p*y2<*OoRw8OUWzOC#)|{ z@$fMqj}uWQa4#O-20%a{<})TmXCMjeD}$sTbEoHfr|c#cb<1qJ`^bV5%Xa*Uo3Lz~ z!h1MMIZ-}booP{Q#ZK=4F+iQmHH3!V5hw7iJoaiOlCcv~fnuf?oj zpGC&=#Wc$Da%+`n$!P-FX_*N@S3>)TOaR4qJZ0~I3{8VHCGKJ2seiW5rH#!yx>+2# zoFLrw1~4U^DBTgc6N#0`Z0R@jQo8x~EL(V$EfQvtA@o1}@O#zrv+eux=yWq*Z6 z(h+6Io&xSP=GsiODWy`BJ@Y8`F|#q7G9ln*fou_`QmGSUi0mmz>5d`!oQST4tS?vu zf=qILV08W?Dh{qTD86$2K7is6xa)fZpaMtm9{=)m7$)3}xEq}k+P)wKZiGwRjn4J~ z#t{rXLO!wv9MDbnZL;&j%z<;oFo7pj{GyOM@m&`aZ3i@?lGZ}WY0_m!9wxg!sG&V4 zfHfy)eOf>#RG92oL<+TtGAF1q%{@Xz6A$5<&E1A2>Rk}og%b-nvTpc@jbJ{FK(PaV zwyaR_Wsnn}ZX^#WGI8qD$AdfwSH&+L%thEPWIjfY2mhRr^8?!q0zPu!G)mjp$hVn0 zLFcecz7*25>_$G=jg0)OeGmQ~LF@c0EMfcK#Qxqlm=v@ElBC4lgzvv2B}#k*6751U z$S8>!PsI!zBu!HJ3TfI9Q}fs?g*&{*uCbXgFcIW{7J0tSwjtmoB=&p0CukI8Q<@JM zq1*Pv>f@g8U?2hS00|2B;4I`S2No&-b(5Eb-Dr!@@+h598xOwZm? z`q;HRQ7m>vN`IdKzlmufC{xk{-;40`iZYS}=X2S0r469aOFzLo5_kCB?}Rqj$K|}u zfRc&~$(t#SBa$W0_PO7UeBjHE!H&c4G0S_4eG1u?!>*}o6myjL3niV&cd0PV1U zAQKEg9*<|x9Y0fb`#BXi<$%TU!>$w4UzmPCFY%}(KbS8*x0u&5OH*4SUCGlQ4^Z?) z<{Xm24=g9#0%b1`ESJSG?PP)F$zySVb>ZJ_&?F6#kO(^#$xQ>`ut$n`QRYRzF)O8f z0dipCN9jx;*N9Ar4=JZTQ4H%9K(L0iJyJ0mh>^G_U||p2K!+}< zRT9OZe-p)_f5{>qIK9jFmU{^a3}_oTH_Qcs$^+N(tgs#SF@^bC{L{61muXdy$I!6g z8i-pnByb-gXF+Ou?%aI_Fnj^Bf6CCLr?<&Ml4N7@5Y3Q4w?_FRVSFPpa!z9Q7!`>y zEWXQV>Evp5Z#OAoVV2ypdJJb_Rz#$b3cv;;^uH7I5R0x@Xbsp~Br0l&^4Jz?%`pX& zkYogu6*dQy^L_Uypk(OSz@iNpW>G+N=zBQ-u>cR5lyZWjexK5=6LfvRG^3m!u`NFY zUL5nj>smpi)G7+F&$7f1^Nqry9npNu9J5gA8=1hQ&yQfji?k;bKvO9hGB7{Ol5(U; zAfPlP%cr*hEv7^)f75GHos?xl2&*~qt#)8<6rJB;ZuYtz<||PQtO24xX~Z5{B#8SVBi@6WRgwOh`E3i7gw*jj%ysBt zT5*_&V#{?mvoRooCn`WCn^eGWqvkl0Hy&Dn9O*+VkTc-W3fk;iNfM!eESRRGElzXt z6JbHt;VhfGL9`3g%3vHK+p|Xt+r34-WBMllO08GsWKI4RQ<6%Z%8I3AeqO(oT!MJ| zD2UIlBAF!02Wc|nfaI|gP>YU{Y);HQ+F3;^_C2SET6`+;FU6%07)|FY%|#=T%GY%p zS|jo7-z1hyuyBH)oG?2PLnauNEIC04Cks_#lUdzmIhgKQ3C4+#FN#ln_yWrKw%K+1 zx!OZ8Wr6ciJWMMY zB}hj!^X{E^a2B@L`)I3dKuyi^qB%0~fh zY0xN8+;ajyaDHHWV35)SK{zS&;p<@xdnwZgMGD%|h73*oXlzABvLPYs`61~sC@Hj( zA+vp+Vti#OG<8XHWQ7@`WkZpvSIGJy*xQKT&0QX{0g4PJv>YLW7#o~s5K4b|h;ny2 zNm3f^l_dKq%JO#AA(?B^kLVO6CtC$&XZw(V#T2U6ddL=r8Alsts$Tgmvl5bG=1Tks zwDLW$3{Z;Cyg##Wolt-j6cVcBOXev>au`U#$fk24LMb%lWuN&3co=!Uj8bK`YDR{|(%Xcz7EmHA zPlbs-^;?R|BUSSa8NZi6&%k!n@u>T%Fj{GHI<}BP{XHeq7t1uBK_jq&KSiqXKE^k| zS`kB!)2pcaQpCOITKG;uprZ*jdjai=rZn$RLVN}!+p#qYc0iCqeQd{87$>PpmP%qw zz&btkA$7K&S^`BZ{#ziiMEWBTtw;1J)Y%|Djxb_4VMyXcDash~MQ_nE=2D(&Who94 zj9+$vxqY#HVOp*xVKb;?<)Q;FSP0gmp?{5jPMC0Pn|YYTu25^_HiKmM6ujc8P?>Bv zsl_B3`qzRD1noGFAmFXjzXcF@_&1ng%NBu56#i`8#;~3gD;h{23vp6}+&b+slop(1 zS`QYY@+R`EU^VtvF@bczvjUoBo)w(>0|qXR*h$X{qM;x22y_qd=g_z1FW!Kt?y$|! zU&)8b=>+0rDSV6Q;1C5vWa^^87b2uICFPx1X#l*OYX27n{A z3AivyY>-AN_r7;L*m=YaSQHEM6G#$WPgB`pG%b=D+M?pTQ4M4z_ZHL9ct;psljKMg zg69m$k43?;)K^_tN=^TQjawdoDPUr^#voZa~iln>^ zveIuvb`M1^v7exODn?JmznAnEJ1Lf2>RlX(BAjuwfu{w+${F)6ZY6Q(j39Q9*Q386 zmQHOp(<1yVRFaHfna~fuKMA{ui^u%<+E<4^aZXso6DMV25^vg5H35T9_=D$w#3O6J z#B?n2_daocIO+4&P65uCH@O-jX4!uY?mc{Jvq9edJ;C!1pgVsg%}( z&_4F)36PLoIguaoD|Gk524DFov%9t&Sa@(Tjpf3+!f07Z(i!i1XvO;xzoz*@KX|OT zc0z`K2G=in8TvT=cYRX3kz5qIKgk=W1!Ew5-iH7bSe-Ps@kc- z55{CSI6{{Pq4WIQoC+DWZfby7^Ba%FmBKjj0NT)4 zYf0FK$vEsI=1M%q;>hYF_Ao36bEnYjUcUV5t4~3BaDK2t1?QpBfG7nij=}37^!>gJ zjb!yeq6XjJ8Vo`Ddo5ZsAUd{u&C#~~v0|(DRwEV*a z81eURGj~FtTmWN`SN4QAUkI9i@`M4W4c3Rj6W&hrgGbP)1(^UG6KtQ`K8rZv+91FP z^RAo_{RqfU!M!C%18hB_kA(gRAxQWD&Z~TgSD=4guxoYgh&whL1wK9ENRu9?-*0g| zUVs&*cZE`^D~9cL!Vqj)Z)jAUh&wTN(bmNRvm7`Ccxcc8CK)7Cidx+BuesmHC{HQ+ z3F!Dii_Nir0WycFkQ!^pc>#YxJa6;w6AR_7Vz5Id#w#R+2>!?qq&AYor=e_%kkyg( z7>J(m$kPK!&5(^))Z$SpXK)28&G0xo^x^P=yl;a1COnh`D9lf1U3BZ=9F2jb#6t^q zXeNTy4VfRZQPhG|1pDm}_c_{`9MS82qn9)prWAYvVHaM$7{)5B(`L;}Hmz){~O z)ch^S+d=TJ($3Zi>zDKrh$$nGO_cP~TkP+FkJ0BTv%`AM$O3SqL+j=nb_)r|qXeOK zmGshn`v}mNOM2<-Y<~x$8Z`;7tL!z)Ub9nLVBeSY(!wC7zi{V*17V#O+?f7ikw<^& zisjju^JDr6;fMZ`4-upQRF6smyz*THW~oCqf-WwMe5@j519pRVvm2}o=L|N5`ROq+ z5(RLur51p7mHZ`59k$DL@r^DU;Q)~zG=8=Ux9VIUH91+dnX?jV-;v-?}3)#dI<(6%q z`l2C$AK*_y9R-9oncozBx2S1>5D(^>2VxA-J5e(p4sdw8N$*mO1*YJzOMQ1ys2x!z zpx|=&cw)bRPjm3t{aRkaMIV0Y`sXA0i)7B8owP;WQTF)zM&+=}?mGlA#GN5cT zPP3;z(HSg=#Nv${kKPwsp8Q>v3A%##X$xJ)v%=f9TtKjXMH;X=@E2**0wEP=DU_** z2}8{l$N-eYE5O==kOhRdX~C(V%ffXMFJw2U`P-xZq3_YSW9~g;muco(F%@kFKv>bK z52_)HrV{DWalw2qh!oCbG%2Q37-4hKUk(!zZG4hi4*djgaQbh>x}<>?aMd^%N*)EA zN`CtoGf{S5MD(4~{*Kx)C-NtfvX@{5m-}U6VZ|)OO=7_%s_qZO&&u)?m3QHcMhh%Z zNfxX!p~6z>o+NAz;3qKotw)ZRP<4XHkK{K(8{WXZRW=k_fWk`DPsf0UJn*koG8fYK zJN0+yi&B|K1c2D9bWhn6YcI_R`iS|IfQyBHAa&XO*<0NWvT2Y%%(S?;~S-^>nN4Ojhl!_?1Kd%rR4S(`x%P@8T4eQ^gdBe zi1tB?IrbHfXdzaXxrhitNsM2BN%0L(2%@qZ*J63xigodW6HIR5H-T%>;0_%slJnfU z0iNrytxRrIp?7fxpkWA24S=8{PHO=)9y?BSdEjF^JS$FM!I@fZWCdjvb65r?NHJwg z3njf|7z-tBtZ6lHJ1UoWNvo7J!$8PF<#6hI1K;j8;{t5X@2o3}^sI!>8PCRr%tv-(TpW^=h}Bzt>%d!`7}6lt9W<66C-EomYK zvQ`B5EzjLq0Ljh^qhx9=4Dg68ThUrDbmNIGi%!<4ixMLGE+1xT7{@`>Y5-FRN9{rIf4SZ_iE8x>ZSWT>aeStDWWQXJ%))`pV>;&lpGQM}oZku;9q91??)CZ@q<*LD<`*E~$*!1s5VC+QeEe`a#@2%YAtiws7ei0h z^%5fV1LRmPhJbOcbz0A#EtoT+dnzYkapuhj8HH1>CgRY+QP|k38Z|=g)CkBEW4}XA z0(ve8K=;ZNM))Lb=R4oAc^f|xKTf)?)8oe?sCNpY1azP8dod@kd!Y^@wVLq#+?J4^ zyEjhE1>yquY=j$M@rl=$}1-?qT!^rj@;OTlVG(i4K% z(nGwXAmRN*!bl>+cv}kbmXQI-2q$EoQ6E|hgI_g`ee(?I<{7;QswlmOGRyMkzL(G- zL<~V|#%l!pQh!D^jLty$BuhY)9?uxLjpu$gf0@`<2#t=weP8~tBB>!% zv1QF+_K4dDM)4<1b4%#CFZN#k5Pb4%7K#Zfr(WIK0*J00*SQg_;KH3@xwfGdFy(ih z(a!pjEV0JdO(a3yS1dPp9y?!$Ctq(z8_sQp6`qx}F#I1oU-J|nw|9{N3R;g+;gwr? z_}=3C39nuc@(bSB5;KQMMJJed{j<>K!c&aFIy{ z$vZ3JLko{t`HoCk3t(O`h&k{RgDecDDKam6f$?Zo7||G4i*O2M;UZ?EiO>&XTtPp` z^I4|od-JBwsKRU3CPi53sz&9imZq$HdMb*SCS~`K+;@g$o81l+@_rt^r=MhzaBpbOY(4(ZoMpobw}m1Z)q`P~bO! z4Gq9ITwmvYvY0b6Jyfeu?nab3c)4V|HBP8{*sz8co>O zMgj?~%_Ep`dE;aP51nMf-a^U5k0O%DJ&f5Cz%Iyv(lH0wArwwTAK-+MU6RW=zYG(d zFj#36ApA{40P`Qd0SD4E0GRFke#T=44j}Xs1XTq8*%P>+F#{pSY|MurHZY0=l8uNI zKHq&NB4UG3Ak-cK;dm{7*xzs-XvhNMJA_1^ z#azfSqLd|GTyS;9$;kS@Z3S@|rh2KL#$jcP)&Mssic$vYQ4Y>Zest{7ib z)HFEd_&Vi#4?jq6I@L&2=zI)olW@h4yf18T!2x^XdS7C8$Yl#c<}10{Kcp`Vmq4IJ zUU&cryPPw25dni)7|kO%R4q0L82|EKS*EZRm`?-a5{T?KGXVWNif@GQg z{=10(f4fAEP}L7?(i>fybj#8|y87XvI_mX|PE(z{Q^}2Pr=j<=lfG_t?DTZdQJ0#g z-8VZ8b=qp{{l3wWXJ)H2Xt&i#$2P2fdeS#6+en{l8=b@ckvuupKd2*9W!3B2W*;-C zJhhBmv3moRkEM4G4RvfBci&|vJtO@d%jmWBMs^9avpTc8X(8>tZmGk;u{!#A+%#LQ z;+ZPepudZ&q>M%&OW9CW&U{B-%m zHu%IoGFyDmH*Eg>(6y*xm~CpbyN$PQyW7y!@v+%%o3=c$`<6WF|0NFw{RX9ts}9_L z_pQ-cI(6ITTVpxRG7gOoJwmqh0+{3cx3*vcgqPNH4d#*0J8t z&U?DmFWk-v>1A&7!gZ07-q5!OokrmXk-|4{OSu1KcRSQH4lTp5sX4H8^fkBN<$DYg zE!1>v^DlKG9>M3g+TE^2hnAspiyY~y2F;e)X_47FHf`JN9A-ydi^ql8>gXNuw`+-8 zMS92VH}oEvHuoz0_PfVq+6Uck+rT4sXK;LASY+DWga5)PGHttW@jK#!AVE)Q8@i3Z zJg(XuYIhH*-F;IKILI26l{_1uNx1%2$ zgmEjs)of8m@8GX-Xm(mS=)RZlz>$1C4)G%V_W$A^WRChUTO_^`ok$%@`6SQGPRFp^ zo^D!pG3lM&9vEqwtPOdFlBSmm&qAKaLn%bkGyc5vOo$PAI_SK&^qxACZx;FXOzL&p zshEQ>!Es>UU+=?ssL^?ssL^=2G*>B@j;1pw}}jdT$tSn>X?<Hgy6-#G7J{yYKm5OsVzf*0S7smFT1 zabz^{YgneHuAV z8?~on%we*UgIu@m_g$+=J)MO>w@p~bpjCU8d5kXCv&?ts2>3PI#vzWn4Wl{0J%fX` z*&s`QPnMy#As?Cp9^5?cETccLI`RjfU>WbakQCa=|*L3w|6H(k||HWhm?XXob;J*rWyCb-4u^>Du?wW~q|VfEViC>D-%VD#S`Saf0V z8*TjQGzn7sBN-n|yKhs=v}}wB;!%Z_Vb`Mmkd<;Yw4GwAuJH$`tzh2$%>kxH?iDJB&x=Il%WS+WYA zoj{dh=LYJ`S_>>2eoaR$14xQ7TC1S;*6%TD!G~szE0AOw(`eu{0pet-_OL-%=No_gh-u}n$ z&+p$k4{YFH?Crhy0b{_h6nf!gFY%Koh_@~#)6!^#TaT7@_1M!BC^?IrvvFkhF#5WK zK8tjlR|0*rBeqgTlhr6iF~d#5y=sLf4oY%RBFkSGS~ryOE~Cp^aWt*5QfFCR^YwP< zj9!(s%7Y_2tBs?{${2tC+aE8UKTx@k@;(OaYg*fZZ3AXfhgC+x#u3)OmOd|Li9gwr z*8e36L6}yd_HeeDK5&)OuO#VowphEe6-K%4WrORKQZyjQC| z(?UV8>uv68uOR<^3eL*m_Ix%kYkaGaHjj31Z>8VJvs$ed$~WGog$y#!66MrUs|k7Y zlVA6%EWNj-ds*4n>OT9W1j^r}q*a4*N^=d9eoiWQVX$ns%bD6mOKfPbwl|io;Ezv1u52pOumA+yr? zbAzWi;NtwK#coV7AEzqz5Vcb}_d~!QZLw?iI&X;K$>TTsubg;v_ebTen%Q^x@z|S# zN}Qb`b{uE;^%jzxQZ&GjTZDC|Hrdqxx5Ct$dQ@yy=|gZNsA{ zcN&LRB%f&4e5X;_uIaI=p#0D+Jh;3l*@~0dT-D=H8T8S7%j3AVeqdMpZ5SHkZErFu zm%OvYkG53&WT}#$S^RBIkGIbRX-L7fEjTMH>GLR+KEM1@>_fF$&ELjFHBCWwy^6|- zMpPD8YNbRZ^i;OTdYJtKF7;?SZK@SYv8HDA*s*e`KNT#h1A?$*XM^0LlXi zHiN&V(O`R>H{8yOU@4zC@rEYX729t8$p{vS`ja=`9*;Jv4+@0LD`&Xl4C_!h|Adg4 zm-Kv(UcS(rQN0+%hqp;*QzzblC)@UDvs#BA)Ut0txnA{!BaYyi(1s_kgn!jez*if+ z0o18Flp8I5(C%wo9ixhZds?=w$B8qc;q}eGMwge)#F^A-IG!Y<$eB>Y=fl%4lTn?9 zel)5Nz0>hzbWP%ScrhJ`bl4;36wfIRXcB11!aqBYN3qyO-RT=8`pRhIW+3@0e z#M?vV^hD~QkSbiL<{8H}ITLjaS&;K2P1vAk!`WxJ;{Ar~_y-B}YrT$H1&cUr+tp%(=R$wtta_|k$B|aYzjD3ygoe)OR^u1lB{YRc{p#9)3&~FoPb$?K zFPF>O(~=X9ByV|@&5GF@$cZ;vjC`A(&19c?b}D*Nq06v# zW4peV5njtxL$$W1A~GBKT}3Kvj_AgZDV(jzcEw{5Tj={T#r22tS@AAiW2{}yx%~9$ zQ!158niJKXP1o!docQmp5e=(bqv1*EX(daRH=|-kw_4eWM^xpK#}y=C)kwmY8(-<@7CmR=nwg;i|U4iXc2DD*`&MQ2!#yi8tx7wx;&CoefoYud?XlY%g$^ zck~-L1xo*_j9NgxS3=m4s2MoQ@$ZFqC0!pQp?ty;9^~HG4)BAe<+ap%aO3q*8nPMg zhHQQj=mic~5zAO*?7yr}=NF#%+gV(a{4Y`ure64okehf)4{vzgQ7%+T#fdjZ+?#gt z!>3rr)edx53(Fvb(rxAQ!dvy3Nfr0;hO>!DbqhzB%&?~ZlC?%UcdwQOgZg_qTUL}c zeeL!?R=^B^Bg>_hdHBjgPyDljLh6@nz|F${&KCXadcJ=>_U9|toxCPX@UI4}Y0K3N zZw)iO#oQOjq{W*M178@RtG8^r*)6dT2!OF)EX?-Ty~^{L4JpC3yM^UH7G>Zl534&>bgDZaM7ehUvoBjhTp3nh z2{DRXSMz#c^1njZ=90(%v%Lqyb|lQftFR^@9h@(CuQP!bz3L86oa<-Lww&wTmJ^qr zI!;-8GU6re*Wt;nNE&UzwLYknlbWyP*AnMJc)e~Pf;E>Df4zM*(s)a{06n(NiqTf7%bF0B4ml;FJ7z%o&#JS8VahkLxeQLaDQ=4iO#V=TrrZ9`5Z!&hHN zcP|~&c3)lXl4kw8tlByf2JV>*Q^ z`YF5K7p%|1;EV||Gd~NHvxFNE)a<@s7zZ^8IJtw6S+&WZBEm%&o+rxq%$Z3W^jfPk zNsVS924*}3-*IMS=Di`)ror0mjiVV|inz1O;5rC7SVn}r6B7V|4rvZVa}S6^00>j2 zW?^Pd6i6G}k{5FoV6frAqGP9OA`BD>x5lQC<+`vb@8$|8G3EW+MQpU;gS0M|dy#97|zNakjN> z84EeAiBP%M`){6n`{iePR6nV*z(imjA`>1BwOeO2(zMOY5g%xn0s#sR1Th6MAfgaZ zBB7!XBXcpO_#&cf_S)B0O6{|49)^mz{(hl3Rr-fu5n?ER3}M{s?I zyF72a*9)Y=j3WcTG3`7RUFPXiY4H##PswqhAN{In8&9A9NDN;2gm}^ud2S28dktA} z0lwaj#PR?JY>kcB>t{Kv-eKBa&i@1pks9ySSC&t_V?|c0-ud_cB&tH0TFdKqgE%uwy z72{kY>`OAUA+D}muQr2-fTXF(s44NVgpm;M0gn1-2~^DqZSmT8A&fFymO3R~Fjd}3 zvvR%4n7Ldv47Msi{=;!wQ;4QFbH970v8UbHY&w}fbq*eIs>xX`YL9?8Stn=H*_2*) zz@pr7c4%wAPQ&_}(W>VR2Rb1{c{$K246ci)4(r34RZsw(MR@)N@O=g*37qF3!GK|uHUkl@ zF#$yvUWCl)Ln)B9Je%JLKKX{#5Uh2A+f9rp_8+(*E-J$?Hx`LTf;k?A>6o@ZM&yT` zL}dBrfRMNRbCzpboti$zQn_C3aS&!KAcgT_jX+oAN7M`;g}5x>ntbO+!P$*QMhIyw zYYk)&sOF{o$+!jv!nHq!90S-i)PY_Ap(lTg>$w+BjPObc0DLRjb#aEqByJnxdg3B< z5vXfHtlC$jHNSl{>_k-I9@_We&HMf~N*_z3rEbzm@{Gl`eAfSM&R z5X9$c)I#*I*)i$RPjKIYyAo4qNd8!TGJ(ejHK*syQ`>B};~E z4j45^^!=dH!kOcdYY!yTbGGEMb+81i;GTUcfG&`TR}I zo~eIGd1 zyMO2>qAMH%OiTal4(r-Ilkf9fxc`oG6|Xn+Iqr)u}i?K(z8$ zQ3tb#tA5N`LS!dX*`M=cyvc#)GeOx3ZZo9#ws+-A0UDZSq?y*<#l(# zi22mL@*_qXATibk3`d?HkC3PVFlHb_-+7S&)K=rvzTjz&WrHXX4ZS|oh?K(B)H`Mk+4INHRbaLT42m_#C%Ob1_ z40$(8q}Z;QYdm69Nk2A_kO#kFJI#_bdb{Hi{!ixUrjuE5A@X z3QP-urvOAZin+Pv4?rdavkX%la8|tN1$;f}R^!NgXHd&*8!l?N-?z+z0YYr$l`N%$ zK-zXLq1$S4xK);78G5tZX@ATm$)KJrp>G`bx|VKz)adA~(04Q}Y7D4-jAfqi3#(JJ zNxdcwaFg*7MQgNm+cs?1>UKFa*fKgCxY;rf(^C%cX@2auh;$88_P+nN1F8N1%2C7uzb}tkb3LTSP!vAL*k3$$sFfTRBzU*ECuOgMPo;+0733 zvcu=u;R`Yw-45d9^kWeciF30fLX_3{p98~APwalThhlW!%EIxR)v*Z1>bFtv96@FD zTV2aI6p@+zZtu8jbLf+WyzmvBu12yURr95dW*;^BAILs3+HDRKH9qvyn5?wXuuD?0 z9N5r1U!f4#t~w`Muz^6CQqHG9vz^1iegf~%Ah+3PHzIwj#qMhC|5m*tE{Zi4hCkX8 zena`q+SZoZr@gL;sHj@4UITf6*tuc5w&Co2JNbEZXSBn1b+l6vyJl}`BP2H=kA#j_ zDorOr1QmiH=;jlqy=Ih{@g#$qp9&P4@kJUdG=cV(S8@t~h4r8M++iq=iJ#p)E^utCgmLl+YO#CzwLo;3dRhF%`a zeR@hw<4c^J1;6dek4`b&N;bqVBs86c=PA2ss+zxG zRZDOlf}Sw=7YdU_g)#8Hj0d}!g93mUC7KqYe1zk`u2^#cr9G?egFJYaCdTob%&hPR zo$pN=>n8MKpruG=>XXtf({()Q|5a&`+~q@yM4oqAUMxWcvc+3<8W(&{-Q zUcq=LT#`8f9;Q3NT6?;4@HiiHn9BarYJ81z@GXC9&c9t?W2SoS!ZT0rc!uvT%rSrG z@60L1MZ9Ohvqu8rt-XC&)+mHHLC}&5cNI)xEKV><&Ax=mEN4+vt~ye?o$Bk_e*Mh}eH(3LrZ_LgR|A9$hSYdUQzTr^A~wfKIkaSIlXf*? z%?FuSARNJ$ttM_s9Ytw&Um#Wp*%-CwKh7pLX1~b2yoYmZ|(S9cFL zGp>fMh>(CZhGi*&<^EkjF5*NRo-Hn>qp!~@FK$N1jU(N{ zPVd0%3t%I&qfw*%mUn;6re)Z++>jpk(6Ren*JvIZTAe!GjzY`Pu&3@DoDsHJx<&Y7 z*nP}^RRLLa*zO+aZOuJ4j@_2g0X_)t%>X3gHo9G_$!}t82>@Ui8VbT?JG6AsI}+eo!Ck*CVc1fd6&0Iski&CJhJn2=CNf){XSb z^(uN6J>Szb8sLh&;O;)dKfriceWd;R>#y|d%U?B(zo&W7rdAtxRqYn%)ie*u=-Fnw z+o5B<(|3^o&|iQ#=^v!0gS-1otGmXB9yGzNcHaeP(FZyj92&qpYSjVk0tBm%B#J@p zF7~--BC?OHKEEq%BzzlR8sHiY@W231Xbb~)tbY&{#UC}?-5a?*llEMo74=LqsNLc5 zwfjs1!j<55+S80W^-OjI+GN|?+`|I$5!pR9WZohV?d8EyjiBOsc(32`;J ziQ*h{gNd7{&%;shFI-)yJo0UogNA3c0bbQfF>x`Ala&?_m37!=iGJ9Iz&>m*pzaff znIJrOnXK(JNZ3u5<+rL9fyV3d!UYXIaU~+}_yVR#&YS5QSO{zPPZ7)WT491vU8G#E za`m9|FrKd~H&h@!tIOBO9(2b&vR`rBr9XDZ-rQp{IFQ(#&E4@VJPXb#m=Hh9GrEfo z#9xVnG3brNY5G~Bi>f}T-VDbFc7+gi$djPxn4Guh(OEIULFqD4lY08nn~N@s7vn~8 zBJUSVOfHF5&jtm0zbL(i(Qy_`(TeWx1Kre(N? zZC4;+*>s>=mdOBUJy!gR0^lPopi1FW%wwIug@5JeiQ9M{G289zL2;7?&@S956Wuh` zdTRiY@X*rxoR$6VSgZ4ltP0f8`{p~teQQ`9qfMQr0ECpM(4MZAQk6|3%K&y_;REe= zJpZ&T!w_&{#&M(f5kDw74LZkqPoutWzZJ*1!Uzbf_m;Ojb*i~11Z5=A-V>EWpu=+p& zvy7HuVKpPLT{UVNz5Wr`ZQtlLOn6C%=kqHn#D>lf8hZj%7-K`fRx1l$V z0H5}u@1_`N{7s#~v93|}jSQsYnjP6dc2*bJJj3!dQU$v+a`ao@qyP}-Ht6+bi61rxRtrwSO5yRPd?2bGWa0Q zHF~F8CW;3<+LmEqjP|>Iz3qz2M_n7RkY>v?n&=W;>m!-%6bxRCg}o-$I(YSw!S;do zX0v~!(epH&n}dp1T>u5Tsx9=kdDvleJ$^=_)1uIPE=7V!=$ZY-QT_>8SsJy?&f7w@ zOM{GYEFR5Hxe{dQ1eR>eGX5MGoyJFQKG=;09dr;jiC{UYTZg%`e2HWeq_xS3c#Ga{ zcN^jqUDzHRxQsVwQ@7)09nyGbbow^^IWPvW`t)>5KQ{U*_nz4^#LIc)bFJsj#n8;9 z+B$}oWix`Dc%R6K&&|GZ>^99~)qS!=++)*nb{c<3+E$|4vG!$?mXOYzCO;EUeo}nB zGaCJ_<#Kzwa+f0qf<#Hc+MTjB_7OKC1PDfH+K4UKmNe@2j83ENHq!nFs}OJz_ddQbtHXd~I3fFk$~ zQUioJYp#jCQ({B~J zde7>@aw~t$&Y{~kj|~f7+ikO;65SZD5lxYGbFM{^iTZApr>spWa`FlJ<0UZ<^w-0J zP)!Gz3ye-6Y@>s;y4HK$YG!K%IUS06vZ)|h8(pAYx`!4f137iKAWZK{5%x-rI|61L zz0ok*hNT1b8Ulb^pn|xKfepY|R|12Od)OOjb$VxXnq8hx%_g66*Vd>BP*f}J>MS9+ z>9U1PHZ=g)avL%tR7LR$LLbaQWjNn>K^2s&hyqIlmZ9HHAT#ADcb5 zZM?&L&$6ARu1!|=y_lfLZlm9eV>#z#>JqcVc%Y(?hpvE>#Ss??2LdKkLHXu}pjZS8 z&{jKL*^0(bS034A(GR4Ml!Gyom0}>tWRZtF;Te+KU-rJV2dMc@BFM@!o=D_$sMd~R zH239-*cIr$J&X*IAnSM~owJdBQv8UiO&&K57UdWiGKHrdIs2;*h|G~`B#H#C@r zu>7*bT+dDu*{m-oYouz0J(ygisG%WLe+rv7%@h5x)m>V!b4~KBt}>EyI`6N{Ua?HT z(QWkUUAL|G%{KM{soPDu40e~6J}P;+Zd6xg3B@IYoL-T%OV@jS%T6(!ML$^SkZV_g zIAj@@O&Ve_V47MgvYP+1((;pXW5(m3`)4+>Eq$DOJZSgLUfWQukd;Ptx|PYTSggVe zmvT=RzQv|Q;>yNL^o2}Yi`^b8e8pvSF3NWZfu zTLm%jRGae7I=z+805RRxK|i1$+Coxvx~}N|nc(1qtnc$_*6Y>y;Ts?YMal6^q7o&T zy(+DsMNr?G->vU9)vqf_3*=e;roE>6&ENFA$>Ty(h}vsM>gv+vFN4=1Y7w&3*X3&k zP&}N_xUYA4F^Gh$GV?M(Diw0ucR7mt?5oyc!HH?Ci`n|vw0Vt)b=crQE%W48@ObZZ zJ8r6$=??mCx5e8$yj$)EvG5yM4PL65y>y)?7QA;Xe8uV|-NABpE6Ye8%4)eOmPy(2 zC|iCO*F>pW0gHGR)lCKdJvcZv`|CuWmdbm!z;tvAVqHwUa#JKv)Dllhu%?<`@)L#I zHV@#oMlNblt7kf^+qVaK}UeZU#kf?r`f^FQKYmE<%*Tl+Fe#lh+pRU=(+jpEB3I}HFUwC zMvPtL}?Yg_frXlwk z?YX-e#jH<_QEM?*8~$FeHxyM;H<7z_y<_279ZV-ZX~AhsXQBUASb5;%9!&l8l8PES zV8a70!yNFZGzGj5l8atm$FF?MGwFlF)Ji#l3 zt2Ip2D0gCp@(Bzh8R}a2==Or&x2xqChmYzSp*zT>DZfVS#`?ru;bu7 z@)G~pzm!z-&=SKuB`c`o!SzU<@cTR&tfVa$L%m+Z9E6ufzK@sEv41HF;9rjCH@R2R zAiVVE8uh*SlQ>Sx!SPnDnW&^#L&Q@MUx>ga71fmM5bSL)Tb_?aMGH>Wqgk9Fb}1sW ziLf3RNjP7Qf{?}%tX|q!t@OW5gDPpH%UC7*XnUo07e#VZPL z=hvyYp+bcsmg(JbZ^o{f9Es`CYAChTIzZ^ zX_q;|-ADcnMtWsRtAs`S`FKA6<(G0eT(Qz_jpuWK@)u3Da;%D{6xh8Q+sh?6nrtd%DAXUhELsy&kjDr6O2zj{D=+AK`06E}x5l$}54;0vmE2 z4uxcU2i$lm1?=7>5pK^*xVNibYw&_eC$J5+!$-B(`@hh)6L_ia{0!8BH+MOhzN%EWm%$0RldtRf z_xhj8dy3pDoPx3TeDBv6KQh+-b>Ara`3In03Zn}!Ot~it;A85Er)wbfGt|Xwd_Ey| z&=vkyZo+@&wmR9^&jPqsHg&LN?1tF-u5Yr`Mx2RG=`7Fn+#Cmrv)Eei3-d+>Sir zz+AkoEd`sME|-A*=I8!a=ySktDxn!O!KB#P3x43`dbLK?YF(q(!>uZqw`!d9x{kE{ zTD@8)$Ej88^ypEYhV)pti&ws#yveANxqg8HBb>l}g*j3jrw$WqeZAeTzN$X}u{8VF zvitWRdoTZZ@jY0FukvGW?nS}*{N7p4ah&^ypoFfL{5xyrH_JaauIJ^F!_`sREGM;c zQX7_dcAH~8TB?YXQl&IGJ$Dh5AP@a0l1GcVJh(1ZN(i0>YDOF+zBru(SK`2*PQ}68 zixPPh1())+IPvH5XmQGJW8#b>Y;aJjl!7zy*5IsEDe(|1RZ5pPrAi5`>ZM9a64z8p zi!cdrkte~@NMn+kJi~+}!ST1_`7}ttTO$c>`)MQ3>{Ntdbhdxmz<&W(2Pf)sz53IJGXZ#L^(V%7;#)MPI2TuVn!;h0!bd(M z*kj&8hWX3)PFCUtG~94@9*y{!npUTu#S!t(V;<5!Z9Ek(-{h0wW)1$eTjFG^wvV&d ze6}whdo3TUu}l5FxRj;wu*A{VXO+EMAsc=It9EwBFMRY1UP?c0I7GvzkH4La)(u0z z`5+vF9vFvW{H&lYKHqzgupq-7U5>TjAk1iOtOZb`(PO`^!^@%J$%$BmoTypGzmoAg z!C6N17R|mujsgstDMC5Anhp)fs`G`xZPjW0F0`~lBjIKs!mb4fOy4|wb24I~{tsTau7=;BQGt8x7RKamFqqOu4}!%}NCdOdv2OrU}gbZdA9f*LLbc8C6FI``>3k(iKEpQZ_g ztLqLhx}|5g_s1)UHYrt#3|U`uy&>GrPX3JwU#=R}W%KXNx$ zEc^t8-$;8v!1M4~2A2M9_ebD#=UzPaa&foAT;T1d47>&Vp-Q;LsZcMB)&lQlWD+vk zTo6joSk22@1l79eOjMpOXSs;IYUHufhAvEyMy zSLBa@4Ho%9m@rHXHa~Ohuf*QRSFnRwOerJOhCxESwgXg3EU{|yVWcZ7pgSrOeF-oL z{&kSZ?H$5hRb1NlW+V2M$SkXo0_<vCFYjql&M$qB_KL$X)Y3&K! zvf3oZY@JE#2b)7wL=xTnNYS&dbc)#HaY8(hI6V3C6k5pBAdy9o>Mm@ZbLy`7TqInv zc1w})&Le;9p{uA+e?;TR{@`EFeJuII#GB^1c||z07vcZzOLWOEz*kn_$QS+;jJSDP zUa(<`UKlOr2?et;0Qq9M@xGK8RE(Jw`d&ogOqCG0!K^Y1XK~_OKl*~Io?ZD713=**0w9o(7io0L-Q>Rf6JPifj+V`beCB(6i~_~pna?kdy(?ec z7*jkuON7!bp8I1FxShp>PQ()l;}*#%(givihk-7_w5|{o>O~$j<7o^w8@bkWm2~Sr zgeV*S@-q{SIZsll1roP>4Cvc=VoYWu) z@9L=>zAeC7ua$l@Q4qG#ZKpU-eaGMG+^&nw%(B=Z^d5 zsF?StNf96-&5nU0{&@cEJGUg2s1j7XS4qvUfE3}5#T@_U7joM|UR0u*WIyMH_v=&O zvBvw@&8b6m>$ZfLDetIDJLegBW4d_`Z?#HLSmBD#3eIP1ku1c7dbfH$PlYG}p)*_x z0q?SQ(k$q)vzb$BH+IU-DJBmm2Aj1LZw4{wlU^fjf6W(*^mX4G-D;ImP}1(;<6KOq zIbo~bF7jigHr{-y{j*oz|B^C@N&ev{-S;`8${qVzH8jQILxAb$mLS;*gSDqCJnL9t z#A4BKCNYT982C)>DG($coZ;6q(WOP~V^h#ln}XG+#YXPV4}=+ntsVek23&0DC2IL1 zr(mUzUCFzsG1|;58$l*$e-_kyzeuXSOxQjsYs>ZOW%4fym!vMt5;aHih<~T>rA#Aw zCmhCFVF`wx+lp5krd!b5em31CS28-~;tplB9r>6FbE>&Yk}2ng$*2|#lTpRLt$c;B zDdPC7rH=LGR-)$JY7fii;C!}%i2vL3AEI}ikG*T4H7mR-7#T--kf~)#mRB0nw{GcM zf1#ZvCDd@Z<$O{62ZF~<<|GN*(>|>uD98r>3BMv&K}&VvhzeOH6tArG zr)Aq=WmEvp+F7Bbd4)UH*+m7_ORxyd%5*XL=&iAfDD|{qb zdSyaZ%bcxL69B#b0=E>kDt>|`k3`vmasy^ufzFdXqUvPj(KVH%49&8xg0ob2pfwvENERf0X8DbECvUU{s*u~@GkyL{pReij7p#EF!;_3h zF#cM0hObkjf!y-t972|8DelX8Gspkii2n=i`yT_V#rwxozYSr zqwmk-wV3Soi#hDyg&J9+zyCoErY=1>4}^k;-KY}z=l=Cd54ohz(Ld=M!^=3hp3f!= zZyKJDM;rImhkVC(_mY2*_uc*FA7yq|&-q80-Pwo!Np5%arti#(rO4LEIYsryltgs% zP~-2dHqhQZmx=}PqtSh2lMfYaZIAi?vp{!uv+wVM|8^1X>YU%-asTZi+}WjnpuhjS zg}7rReD4_f?$$W&72w_6s>%n;YL=??0-aK(|_* zCa^yLh}X+tCo zAC(?I`T3WpWo=`#B7k6DF%s<1ah%bK`}bG6{WjVeRbckK@WM&KEe3l&nC&&k-q@E| zuPNs=lcfVBcx4xNm0vz?Q2y-eUL{9c%@3B=`o+YH)1SodYei`jFHYBNTf&>n0euNn zl~J&168M6XH0DhTu1ehP_FLG|1d&DLPiCo) zs#4c_H*A#h!3?KdnFJF3A_PZWX0FY#imr9fNGS*4?o`iCwGDc93N5Kff3}Mhsi~Q8 zn(%&ewxv6qNRZ3~Mc=%qiKCFF1`nTaX+{WG?0-(GmJmhNo%zdCK`0_{M#^KK=%wf09?yAtz z;+CP~)S-pF7OAJ2(8zwz2wmf`nldOnL}obly>; z+kI;q3h>0Hqkg~VTKanz&k2SRFFGIN&lSxt<}On{T*l{gktB0B^5gj|jC~hujlQVY zcs!dgfqgq)z%5?Qk*;UsRoZ9a!~hrXFj;DuYLy%Zn#p@(W#$)i<2s4FcsX2#YyRH0 z`Q!QCvtRGPl7{)PGONUuMP;3J`tx>JMQ;BPk9m0u`88cS^$LAOG+SiFc4K9PCe%`6?KcSP?4nAalG3Tbx z;2W3qiaeUXQbdFWCYnv*k;+wsRRWq(PC|KYBh-&EBI}%Z6H^No=b2U$okDn8JM~=W z&^AS*I@zw94dub$y zf%TA1cb(Ijv`eHWP&uI46pHUV_ahk+CXJxd`-}b3vM4Ss=Q7KIp`cmELg>3j`>B-$g$3f%oL|z*mZ8N4_y-QLEKlR})vZB)IgQr98a>Og1D795~kbI57By z7sq^Ujm0V6uZ~Drheq1IIX~IGoTR?4DY=B~n)xt4plz%& zO{9^2Vsj*SMH%haH1@GKx|}CBu;Zk5op6G!lKA1>k|YQVCvu15hZEtIBFH1I*qt#* zG8<079*rtiFf44nGUJXg?5sH5#<@6P{&i<;<&owd=BbJkSZL02lT8rAF2jB*>HH}9 zUEtcv?zr4F#BT0R*Trmy$G_s;YP**c5&5_kG1Ey45Q>5QUgo<4H3Ijf^=@5HYdK$ybGIpw}4WW)OT z{JTUREvdd@Rk+gqSJw^SG3l&+!fIy2dp~0JRihtm zn$?l~RN_V5Wv->JlTZgkRli7GnYOmLfk#(AY z6TE?6@RZWVd-WtY$b~-r4xd6iU8mvGSEDDwg|AR_ct@4t61S<9?kGK#vo5ptmc3WG zAqp8ps@{mOq}T4R1+aiFOq z4QaA#ejRD4Rt0~D!xP55fv3u*Gor11xKP!#J3KLyqUNXA8h__K_3^U5N7}~U8Ci-q z{*(mcPg|cCv&5gQR`9aRKq0TE0tH0XUjSg5@5-sPoRg%*lsO4Xo;!0&TWF~fAPbW3 z*J(>T(YTTl?&bQ_Qd(b?+NLv->QQg&Ur!!GLwdR9yGv<_#oSm7Lp~`#c81awl4qpRle@ak*G$8g z)$|2^k>{ETW$i>#p#55zRsQXHStZ--cJ2CJY5(ZAWNv z(L~EC-=APew{XJ*x@$P00&7B2o?_nc^bZNn8 zpdtGwj7HjK>f5|V`#+hD*Fs?Yw|C`DX5(q_2?B792fsp_DFfg_sy_I()c+LDq8u){ zB|;SIP$6iJ(C(Ku!_AT-bo-9;#BsiCE{9^>A0scyUIbjYH*##Lq|y}rK#7&2WO1sV zUeu`Gw47CTaEhL?t!gy36zj-Y@Yv3jExKv?Eg{DxKNysYJbP7Ett3O%Y$l47C zOJJ?1LTxLWkVR)GYcL>>mMS*a))+n#om0+($x468j{vXYt&9L}7O!Z7{$uyWANLM| z-QC^Y7xx%Cm%2X#J8lOt|CWPVc@4hHH2%DvN;m#IEmiU$0n0H4m7T3EU;^A~nu1i& zh{{1NMOdf}gOOGVwijW15u7Du(ZmwWT|WeggnoEv8HXSs5ZLLuWp&?^-p?2VNFOxK zKIw!0k=djJ7{Zx&2+VK?=~3e?9dw%?>7d&`q64sk(7{I#iRo>iP7`yf3WS*>P`LnK zhS?p=Ca6qRPK|CGFT!t|k?Pw6yKh)_UGWn%`GEOiQa%Mfum)h$$)N2m-992g@6y!! zgJWvyokK1PqvrG51n@dF!RmBuc1*i(HmEs}R1}hqgpA`}|05Y68ioMDspGgku+4V{ zGk#eey$$La{Owxcmf;U$ek3|HI)()v6hrUPk=bk-9Wudx!}MKb9v>S`!1I&YX|xAT zl+WxmEJKnEHO&T7)-V$Zldv@<85?tL;4!mr>TNP@KrWIgs)V7;1xHa!Zy1!(1<-%# z?{sSG)}cXdL+2N^jm}~Jh!jM6+k9&b_g*wc)HaVz0Aw@$P`lgh37R_n1H;7knSr5g zbU;0Dz~p(IflbG4yR9D>ZDMi-2CWzDQyocbLmlHib-JQkb-HPL;;{D-L{p;bI$dy^ z07d;kaND8HfJG$W-MbBw@zUFEZc+XNxcaOC`TO57)5ZbQ40J7-8(I2$0Epv%V_?}` z3k)$PQ0Xnyh+ymKwpyUlp>9Y0e57tq|8rnS!ji5{5iA2MB*-fkQ16s28}j@fnU={6IFH2TaK2wZmah|S}CcBrJFYXf}KKqa-(ZC)t3wSbg~T4T!4M6DcC~*?xY9=$TIo^ zOMto?KsYy0Q;ejHx|B5~z~0F|81C-97?Eupa{slBc8hESAJI3+7EEr2AhKeVd8TXx zlWq?(f$Trq+@wuzO!MY_szbf2CxSQf_qP(z_$i%vOjjZosY+4f3&%4_4NamO8sV+`bP$#oBh@8 z2r{FC1Mp!CME7S-3BkwFw{!;F$3e%|8wd*qS0Pvr`xeAnlLoTF24<56T>XQNx|WVu z9N2yIA&AbslpatVphDjX+5OHm-rMx9Yc}cqkxUDt? zm_G97wV^lCDqc2!RBJo;uPmoLYZcd)zdqah_2rKQjm*CI(dUI9-DII7E9x&1vcK#- zBzFSZ_Qq;tVM%VkgNYv|*j7dPP3B{TV8{-xrP7)ZIJE^zx7@dP;~?Ih%WbwT1A=DL zyJ4q1dl62&8#l^O zMa8figTP;YG^6J1OGy10(4VP41Lg`R59aFe zdYjt)sA!eU$Y>58-yYsGYtKR z+WuM6T>uxw3eGR&VQVp+iX&Xs!z2(_aisEMp!qbjL$O3>z-@I0`_H{Y99qoxfMr0H zn?E97EPZ-Di-P3hl5cHF;F_KnFb>R-7hjM)i;`nMI`_F$oW!N#BP5v&NyBM;n9tu1 zWbNZdagVy(i~Ml_P%iOmv7m4I2m(3?&W&&qc;O%nu+yjXH#z$qe|BHe`yiamzQiggCK$LONfFV6r5Jxe43HlD z1*3a&AuK^;hRN^vv-=W%pYP%C%NL~R28dgrJv-;IfQ~^O)`XBH&=mS?)W;VPGS{4K zuw2OEVBg}L?u_n7d|URDX51KIz-N0ucV3CK9ZNv%#AA0_ynqWZo1?S{J&kfuK(Q}A zBEIl|xFZ4|qZ`4Q4OngXmx#KWaEPdv_zCJt9sCO)JW+KOgzU_9L!lR{yyG-;E=R(3 zkVpAl61 z{A~f?@0a?UlTqr!4U8P%eB&7I+Rk=;d9z%3rGOt-;y*vv)=#K~yDsB#6wH%5ZoSum zJH2ZK3vc(g-+udEWT98(Xzi95xyKj&^sdlR8lL<;(q2DSQ~%@rod?23|NicvQB2@} zr+VzaOG`-Nt7r?WZ*rb+929jW}@P?W}%p<=U#ABI3Gl(w%^iRelNXQ8Jx&d1Y8E~L7uICWj zhQNkv1>uBR0_BAy=fCFT0D%X3=L2x)tXnZjVA{tM}G@b@Dp3Z4JywG| z8eh#lnw-uN^hA^3?2PcVe>#^QesehG&ByT-`SUm=KZ3j9*_h6zbe7QB7dnUU-RYdp z$8gc8Ia5C!Kk#a?_x@#&mm4oqQ9 zF#sGc#+MWa6i+Fh`u?2aDL@A!;0;nd$Afb`$h`;$$Tacc)IPox;9MDy;Am;-b-=h_ z2kfue;11AW|M-UT&1`y!2eKr*X$1wFlu0SO03IUM@z&Df8;IrXC(8gTI1 z0DB;M=SB3M-5Ei3bv9+RZbW0K#Y5hoq_Vr0!2c#(;pRZHwu6_-rKcw6twGJJmvUREbio;93qgI7-oi6%<$a-~xu17|RQo z=P!Q@6-cyf5S|y7QA&reEK^J5KGLO_oru|=STThZ11rV;q3GS4l71|~vcTJx*V3tr zt#YgtrXlG*y8xzX>O>pFyq{o$Oco=V!y+kQN@sA>!=LLTME#_IZonPCC;Bd}B(Ns% zVw)`+d7_<1ACBA3X+{;|Ok9@M6%6|78mD@gq)u-VpT-wnMB~|XmYSwA+MuB{Gp=9w zFBLi~X4;u*%OHApJg|fj$8W0T-gIAA%vDaYEB?Os+q2((tS?Sy=XqS|pSL#!c68Bj zG+GaXDO75^K)hrwmB$BnY&8SW{XV)SQcA1fd z{UM6PO~Vvarz*H)V4|OFYCCJeb3i|l-$zv)r?&sv*{W~6aduv9p3tKw+rT$OnR1Y= z>%&(SF;eBB=vA)fmH5>^oepq=qZp`%vm}{af-)tU&GGYj;b9sIGOIUSx<1pAN_1sUVd?K-48 zj>Hqbx?7xMT*yxN!ZDi8gD)<+>vFjDqhama2p9)z3M2ConDjq{R=Y-DorAYuW~KN_ z&Mnox)kR?#zA*db2&91pM=56rFVnaxuo~C99>HCRsymeuKfa|DH!CV2F^Y%r<;CR7 z&4?~ztr!^~=ZV{87kkkS6?oiT9pFFq^3k2dMbT2-++}gL5*n!_*>G!fBw;9) z5W$L3xVTMfkx1bdJlpz1kYk1HnQ_KMEJ0otIwu=DKW}c0zzy-JMz3r1n)Yk7pMkDQ ztONyiwj9j=s;vE8*%s(x56HvI&#UqLFZW*l;N&GKeseI+Qi2R0KN@XsJlVOdHSuQpN!z(xs_RG_-=9`(fJFjq+z@m)dME)eZEI8UuYE9nS3!zU>_do=YtiOP}i?$ z?V?#SJ6)Wu^<`1(;0NNQIIfK!NzwFUKLYbA$1_U;xBP(ms_i@!xgX8P0){(>uKLEPuW9<^@rE>CIn@h~(|jrbM(&Pb5HjhRhIe3~R4O+IpYcwX@Ce_5L;hXVvmE zyv>%PVWl*ewkvPCbq9nfL@!I*d_)b}eW}s^tx`JMm{+|poC#`^!lr$=CY-0Xx^sR2 zSUPQurQPgrzrOe(YMOZMQjT@!xz+w!v$q4Lx6Ji@Rb?*X5#XIX43p?o-}(!boxJ2& ziifBcqc5bt=sm#|yLsTGRY(2e;B?)~#WV@Xb%lq&*n_75yF~~i5nwA=IoE~LrZ`5- zrNUrFjASH7Yn*Pt6-p6wI}%(T4tps066LJk)~#c9lk2;Bv*{jMdhbY{H;uN@HE z9JmWDox7c;O0vz)VRnN!6PJ&T&VVep*X<2@>esa!7W@Tq-O`(8H!Za|lck1ZqvgVf z%1CbzXYvNSXLdSVPPh=dEz@W>3n%Gk^}B~CU*9s1UFAiWKXLU=)6F>mna8eWGzXm~ z+!gsWcX41)U(l>BeCfTTTb-31Gp3a&3TNCW-I$rzsTWV#_Q7|r(h5jL_beuFGI1vX ztgKQF`RRcRyk9RKvzgQbZ?Xr{WG~^)@4=YwCNtMR9Z!NWonpi0LYaFy^~Rro^2=&; zKbS%l6T1F&5GOGopZl)B=^C@i2iAXge8ti76E_adG2QX;7bxv93}#c`Wi{_u7*5lT+ZDKn2RU5YplKZ+2MsI=YHa{sdzF@ z55@Q5%ee~35696BIF>+L?!qJj`-?amdxg%VOE1I}pHC{> zNF&RqLoygu_zW32KZwxIezP>DN%S?mh0 zl0;lEKAj~#03l-E|3v4JKL-M|d*wwj4*c*+AVT~2Dlc?{@NC9sTyVZe)Yv%ypaHca zuFr!B|FA6z^*@VlTz(Fjvh=u z1Wh=EaV(gS@kf++Iy=XINa^$4X9A>vrS@ffE}IKSD4=kbN>5||3QS}-oWMW^XM7mT z<1o4KqI38kxUvt&GL5hCOXTkv-^Huw6cS-JR%1r$0%42sLz21A$FPTJyC(SXG)cW#Jmd-2rvlkQwNd_-P2nO!Q1C~qYWa#!*(%B7Dm!CKlApNV z)Qc`vFGPY63Bsj?Ajsk%yik@VelJtN$Fd6I#i`7S50i-En>g_=Nj0pnOof+o*E{Dy zEn33mqzT)cb5~;+JPYTZdRz!hd5A8>YlQ4v9H#et@ur`|QSsjNPFWCf%&o$Q;uCR{ zL>{2!gpD{$34||NmH;oB!ZX}bxhz2c=Eli{PYZbq)2kbxx~4(Gy*y4LET#Y#7$=b{ zG2D|VxTFNEJeXG!FT9X0IhT+Pl+30u$51j`%we7Y2#fE|}eSyOR`ar zB}WGiO*v!jv2S5t!QNwhzrL$jm$I&8kLP`>bh2zn&$ZS!zOhF}a8*evmFisY;dzWp z48t2k)_kHVEbyn+v(y4|Lsw5^^#zIiSR&a#{0QPmh-R>zc;ytg^L& zj_wIP(DW_3+yHUItUQN~1L(hXwuq{f=FHdhL1SHS$fW#RaJ=?dprl?02o!S1R|U~# z1xo6CWEXs$_bvjp~1D86GP9wwZ(S1@Hyxpz)d2qUCCE;u?-uCwPm} zB13>&e+B`-e`+O8YwRPL7YgzVb{bErbIxE|vwX9lb7Wj8-P2@-@(xH78`T-oXiO@u ze@mXsf$vtziUfUB0#-}MO*(@TSZ$*H#W_=HWs`T!YdGAUZ7;-^8r9B{<6#CYclM)K zINq!>j1&Qb!0_^!KBd^H9$EGj<@q?R1$G$C>*mu^*0;2}*f=Nw*O5?F#)Qm@CRk`Z z9Htv(J;S+kyu1aW%$Ke#&F>x=A}hKzCo@ac!swuINuN<6HTnfm6ZK-fy5OZ4d)Zpo ztEB0e#ZX*WpZyw#O6rp@@VI-?yI8|&!CJK{=o{%Kt?|PXRb}4T=eMqPmg~vzU#CES zZW;7uXI?R;wa6Hi_mUrbL2LeKN+1KmY`@`bl1!S9RY+z|ccTv+w-c_AvG&;9kvib_1#<}M%ciQN>y_(ja>AlNss6eZPBT%3;k{LQyrPX}K z)m&AHBnz!Trn_Bid? zBuk$i4%&Jr)oluC%K?3LU4`|nW;xEU62X^hLolkkT4P=Bl2UX zjQPaB@-b+TPU;e<+N4wRMa`$YF9(*aHL5g4&8j0YX=nE2iYB$pi*goK;F0Q3nN1~~ zQhuAP4?ubjAj97Gwhryq1F$sLMXz1$15Hd2@t2mN6v;4@R5{rh-;v*q{{9JEqZQs0 z+E$&)lN3o> zL-BtLeO-bAw|BGJ=bRZpL;9ALVa`c_5;jW~EPk_tfcc(N@Y*5tT9HHevFw(iz-1$2 zByJP0SHTK#OOrc!0^KhPSR^m9n4v_jr~Dqy5BUd9Caz<$FB@v9U;qr~i!j5iLbmD| zePoW!S`ji{K{_1@uRya1lH-t#=CkA|R4BOSm08xp{gV8`#d~REyRVRs_gTkbdoUSR zmi4YHW%SCnp2~d)^M?;)UqY^`M-n>b#E(8xNlxOi9XO^qRYnh=xD@bYf$HK+fzO;l zVLG-&*MzWFblD1}8wIf$iSu{@=S_SdXZss^uLPDU(&%J3c_oJm*}O4p$_`mIx4(;e zUrX$r>$@HCeOKsWx3epa+N+%mX|>~(a#r^s7<-tmX^q-;U$m;tDQy@_rrvZWc$oG@ zy48Quq%ha?ExhuBs9c_TfmhN9yR9<3Y{|GTUC~pRxdp?%6hKU0nY;apX0|oc62eDR z)PHhG^RRmS>W17;g(!rPY^`*4b(L*>a=W?AIy|dBoIFj%+V{z9XUhI?s2@mMz?$>$J~zme#ep zzFu!sJNTK?@ae{+v>!g-X{?LqyK|B378$iv60`S8&JJdl=b9IZhD4GjyK`>{BTcP9 z&mz?IjR6>><{Ez{F2u)W?leW;a|KsFh;l&nmN3cllCkPBQDrNw4qN}`Pd&0&{ zrV%U<81g!qe&5(Ik$`+Hdx#dfG|27AvSe-I@{JMTs(|*DJliJ|chV6C>5K=?$nl~{ zM+{t_tdGpV6qn?KIng>~T#1YKk&Qx(jVM4>_*4ds)6EX|O+2lxbcm9`mp+U}G&UxQ z4MxzLg#C_?n$#%3zQ?=@xD!CbhZUS6;r*CwGvdIWbcD%oN62?W`U}SalnO;PeV5+i zyMYZ4NtaFdLH{5^`y1T>za+4UU6OTa*%w`M0`9qS>|3oP)Hex!iT72QzJG07CLDBRf6I>Np)%xEH5mLM<&hRz*2&CqowY@nOI zDal_`MjgIuVL)zn#4s>SF$`=QA3NzJ+r&vnj7+k^kk!W?Q>tcimcVH>t#w+jUul_f zj)&D4=m^*MMyd{zPv%}mdk-Odm^2wKRI}D03JUbRE9?zHdnNz~I2KM)(aIh~R*>Tj z@y8+dahvwM(c?|v01Bk63rZwIyazNZ5jqV*+(K+kV&8`y;Tq$CWlTC`;>Y$^=ot6=EVhBN&CkOYR|m zK3-!c9RW}a*ao8<=sfasXi9+v;w9e5##0lze2a*ergfKA*O~aGpLG{3q$KO!a3qqI7q?6i~ZpiRrCsPoZGDL|P zbwn%5!l{U=J&Xsr2_%dMFeM^WlW$v{#Ly%*$s03&FP&8;9c3$VZPOp_meE!0UE><; zo+dsM;CZHqa0o*B{luP#m>M_EG-ymM8hdJ%jJ<%4f`2*_#Mp5@=9a!OFzw$M=x#H0 zOkSe=)Su3TXE$amoY8>+#lLIK;8+vZ@cXYI;7ioSVeuZ=uKEc1-|5C1^LX z)x;KaX?+LV&|TeH=Y-6bHG!#xL!DWv@rJcxR;!g{D>|7-+Y+=^rLQ%H>^8oZwQFG9 zV|&{ft|_74vJ$`BFJ7#9ZJQ4PHCs9t=M3_DUZ3-D+7HuhrY54Pv!iZ5N{iVz2Y&(6NI=4eG+Uh~C^Czf<^VH&3Ph`1l6$sgZ-e)DSM)sL9r z$ALXCLdRU_RGx?{w{Z%~9|a_mGomK z9myG{eag*rL1sS7UScA&v?X(msQf8#2b?t6U=kQKcq~i0M)^vsM0UkUJ}nJdZYJ5x z1aZOktlT4##!RB9Ntgu*-z~+rva6E4^<6eHHq5}M)<%Fu$=UO%q|ay&TLzg0kd!(R zQj<0z5h&<`ddlaT$P!8<2}Q%ewNC4uzTOc!=%yhJ7xmt5o$x&LYDX-SonWV}7^T~7 z1qIR3h3I|1c-~oWzUw~%0ikBJ927bXIhxPdx+NT!*>o(=`i>_wM@B|TmY)ktwJ*wV zy74HOf%Lu(Z0R3RH$30FANz66|9cJ2bYCT`P*~O8^@fA~T;@|F9J3F3r7VBT0`gT} zNmI-pu857x&dR$!Jm@+r@4i3luRrO1B_^iIFk+d!&(MYblvW{NI&fxfBoj(lUNLh8 zZOvrz6b4u--P|Iv-{s8ru65ciZC;PaeRM)F+e~QL0>yp^rjLtlYW(#C4{HC@XYt|q zbnhIn;Cr8s&tXos-t5Tl7WQxy_CtY8t2{)r<9s0ML{Gdz%I=Nc)g6;Q z(coW)#4$tsJV^(;&@FWV&j@`bNmv&fJ^x#u`J)B@AVF;O2KRlUn-=sJQL)jpqCO!V z&YffQMkh1P;QpDphLj`gRlVMPzO&nYAy$@a4f1}TYBiR>ER}AA@&GFfZ%vSba#siF z9PQEv9^1{yd8^=fz4aDAK?}G7etNU|YWAfwv!T^Zpu!4(xuI1S6sst|cG zw*#2{D^JFu4=^ePK?>Qd%RfQFOvtdLys7Z)TiQYRLr7%D4nSa~yp`~`peLcjl%&?K zlZ)4^fq|UC`6hVK610zgyV_4(t7V)iSHh|hK6W1|U-hthKL6mx);vyBa5P3b1YnE80~G+&&N$EPa^pd zNMs>D!Z~*w!}oNA^E`pe`qAMx_?TxT@WB0@NI7~u5O7$DAy$(nz5Mf00YX7;er0R^h zoWqAA7>Z#)y4XskB34&dwM0+0nPDd4O~qDjQ?ZrfMx8_QHOpT7!26U3{XtvTpdnr+ zoo$QIX2hcj&<(5qb9Kb*;8us^Cclzvy^9th%F;SMT`58JW&cY68q^uHAe+N-FANND ze)U>YqUkDAwz2jX(#=%u)|3(!G9QToXEMW=mT#F}5D)qy7>GfjbxPVMSM_>-(&Rkf@Wd+O6OTF4}vb46mtYl(X^qY1PieJvsasyX;w z_9U@Bv%O2`$Wn-cN-fu9{YAhAr2yClBf%OWpgs-q@0GB3Ggx<|jI`b4tafMGaI?L$ z&6La<>JA_-%9B;r`h`%nNl*{XqjbS1k)N30RqSR-j%@0*4cV|fGeSO)utXP@gUd^P z$>pUWJz++@ch7#&0`AEQ8pZJ#DrFGEv6xhMOpC0Gi$`S=f~MN)2%#)3Jn1bKCez_`8SavZ^Kh>xh?c{eH|xs7-rxX@Qu5K-$*~b z7vkdkj4NLX!P%OD5vPT{sIz$$vM;$~;bxrf$nC@{lY81S{PgqdAK5Z| zYb&B~av&)g0qbwX?=ZVy@G<@vVD5>%?4JeC?fixo}i-C3HG z@={#Dc&wO*T5!j6o*^@yaSm!+A-I5qwWW8fg0Os02nE)kS$#H6dSmO)_$KO$jo*7# z^k-k_*2AkQy0s2?sj*0c=QJEBSp4lZT73j{3rbi1*R%fYcQk>-#kcqH`cAV5>y|U~ zT*eu<#iR4qqrzT&?RUh+N$={bjes1ad-V@FOHe+HWKX)$u9l4%ZyrzVvgx(1Kp~ByY0%6>Y!VZ>}05&3I;lU>i7i(xBfiD2=Z2C9C41BDu z;f*lkD6wa--N=AVX=n<|zLB^WID$luN6X3$88(oKjr~>F9?j%(VM*6w1%)Gq0|Jk5 zfk_LJm?4zqiOE8;QuA6v=n)KNO@jF=c2~dRLSJF&zoHf33Kjtl>LEP>QJJyUf90dA z()|+@#7&~4C-|LfTdqJ~htOghmIQo&XSo}G6E3~pC13Qhaf9XQF6@Xg7i4VxB*v(n zv28Iw$Jp_3nHDfQVU1%xWnuO3>=CbHip7J7J8ocjU_hxoA<_TjtC&!kCV>@pppC!5 zZp04=g8_f8S)~q8hCf-!u|a<~`J@)mW+tGfNcH8k05XJ2K#dmAN3n^N32qPcg%Dqp zh2G}2;Ip4If`u+2BoH7%7<81mMo8%D&{&Vd4qG3j<`jA-`mNuQIjBY&Q zQvaV%W~rs+#KQmsTG2d!2KXW;si1yRRxD>juI}`U885 zRecY@sx#^kbxg@^4>{lMhq8Rt**kedt0dP&d8s#Yu}X5Ddtt#VOZ?o`dz$GtHuKU0 zaxTksICN|Pn3s3CR$3Q5J=~u5lw-q+=xtB?8hS?RTKm7a$IPAyGSlLWCr_f__Dc{H z_*~UufRsl(M8Az^KvK5eY`xz2kpqn%*iSMR`7t6z@vM|eaaMlz2t|8yJ{qF|dpH9I z1GEjMO@g%QU}=iN`e(y-vR}=ZwiEcj6e(HKv^67LVs%J@>?o}srO|tW(VDO;C~=b# zov@__iAG9U7ZTqqB^mLDslJv54g`1+l?{BN8-~b= z%-j`@B%5UV!-#wfB3V`mkd}q&rM(xna$3UvK;39K$!zuVj1UmkT?Ia9`c z%dwTz2WeXtP8xoRo!REgM`w-vRxop^7A13Rb{^hYLq+Z8CSw~)PrkQ8Sm;r&>h-G? ztuoc7NuG3HEl6@z{{QrNEfC;GP45o41Zs2YwKulCooL&uRyE9QnF4`Hez$aS;KJBk zknOUMNuJGa!=}=Tk{lu{d)C*b_s;0Zi5~z=4*xyk zpMUVrAN=#rrN74mCt5m#5OE2_T5hz&9*j#E7E7N!Ct3peX{AOgI(j$Ela~zj3sLiu z5iS{VwanA2Z4Vpe~{Ha;|#gBwPdD29Pb&zWC^16B}{os@RVH|I(PA8Y3K(_ zscL$-234`9)xx%+ce08km&LX)LVciV>6_yI9IOsAv&-e2lg?Dg7troc$uEUo z_w(ZSjkQiIb+?l%iO*&(#CawC>_mZ4ra-!&xkZt?J}^A1E%bpO;IH9XB;WG``tkfo zABY_+76N~E#V!Ht?GV|buc*<(@1`;IkR3#|-mtGdUD58XC8~C{`_*+_TQ825;k-VV*MVLT ziONc|mY##MawaKcpE;GNx+po3@TF;~ZhT5`GkLi|-UdTHy=dnkU!7H>d?U+?t+y{X zegrN)Xy-9A$_y`8D^It(oInZcMfId7X5EH+7ti&uzy7>TlvdEp0aBYV&uK$yyRI_{ zoshdb4Rn#?l#(WbC&meg(wU5!rx45^d-V^>t}fBcKmxL#2}>WeviW#Bwz2bTplw>se% z&{kFKbn041^mg0J*q63iId(U&5nrsl`#u-;v$p++j53%ZBG}q|{br%L+}pQre}1~P zTws{jcDbb-@Uq85Ho{f`^#s*8&!n`b_xgMXjLs0#dKYUNzHe0z`!o0>3#VExPj+f6 zxUpY6LqcAoHiM8@ctvoX|3ZGrBGW2WjI3Eza2=6~^yi;``jMe+8=>zl+>Fd|n4ia` zQ<-s}&+Rzmri>}!7MYX`h~_gzOo;*m=U_VBgDKp<^&&s(*A5jH`8C{0^l-8!i8EZ{ z6i8Xx6DS!v+>_%e6Z{6kHU7L;9PThDkT#QYXDpBR9^3}h!G5R=95QEn6B-!l%#gA% z+T?4Y2;QM75jRc{#fGbF@sw_)FtGK;!^^2?^;+#d&`LyoSG4636*S_6@r%=^xah1t zTmJr~FM5)>QEzluGYQR>i+To)q6>!|H*|#?2Eqt~64Spz@2AdE$u(&0A(@C;c_M3F zSKG3OEeP?kCws|e$n;0(x^Cf%c+0%1mW$Qqj3F1de{ALt?`cm`oHu$yD?=eEnxJR- z2ivWdHiIHlZl%nhpO8i_oET+I709w)ZEpPZRCte?Q!{FQEv&^vBj~j=<=1=cz1P$G z7c15Ej%f6gZ?HqtnBc3O>=O-WQEo#EwLX!QcCZ{QW4D>sjQq=<{9LHcWNUuAB6UH! zUhj)abuDN&Y0}7O+0ifJO!U=M#QH-<3$IUwDGlminT}pV=-Z;Vxh1<2@@QyHP44F) z6VR#^AQNh}IP)26J7QJqUF__xlFegpceOub^;pt%qFnor?7KGg_t1_?Ogi)XOyXvz z8tCU>efo3FHD%6qvhFQfsb1(kO~05^;>;c?$t7#pmqY3Sb>GT7lg<3eAxwdXsav%I zMff)-_j=he14g*)JY1K(v*p!LOzJ!>qoy){>`tdPFwE;jXqw|J)S-IFb_=byS%2Fv z!6(i>biE_{#O}E`n z$RsI@Se2nw(c5kH#ZCvn?V{&cV=s*FKGQa}o{4ImR!7r1rL8*mL$Wn7$A-6GV}{Y8 zlLx@*w0hNbpkzJp7P&?{WPPgjI@K~u9K)qWxrl%-W}9d6hLf=Wiar`If7*EYLwlZ) zUp&zyTCf?#2}_5|HRxY@7hn48UqpsjO&>_~J1D=}+N_7vLi9j2i!6NI0$Z>d)m4sT zT52;C^IT%o68g%OHUxr*G+KUC%0GwGAgzgva4la$IiAcc9yUpcq)%kRiO?vb7PCFF zk^EXP0(WedMffM+QZAKwxZtRS_!Q@cyx;y~x;dy$~*oX7xH*4H?U zoZ-E=wh7%*sNN%7;~orMaM`?cZNs9Ah@cK#@VyY=2_<2S;riI|E^i$xx?+!b&sMMX zim&!g7;ahM8`GI8zN%GK%F4< zGaOfTwKRTZqqOXbK;47}GlghuV=|DVgsYsxxyhoKmc21E*~k>bom?5Y^vvYKk7g47 zqz{vZj9mCT!@>x}{H$gigKxf5zfy>RS%qr#?oZzzi~G!j_qhk})vtQ+o*tk-s$^VI zR5LsPxw?&fZ0YHNa{v3?`JwAIvS&|s7`yC?ZKDqe#HA+F*Gb2 zYc+ncP8s*$;iI2R({&~jwRRgcUVPUDTZF)~JTX$}J_)JG*|tVD-_IWh%L4ioW5o1s z^et-Y&xF+^8V@GU9bEK`5Cy{z%1I;01iB%N6O^$x24wNpovAb!+-kny5G)-TIe&GaW<-V1%}qBhb_pk`k&r(${R!_}dDm(T{D5Wo6eX2{ocOU2${in}_&E{iH^X>{ zb&t9$oGmZq5hKOvi#@fXO4`N<3Mw>Y;QNsn$zS?Z+mhW^z!lX>@USF1t&CyY!NjDz z#H%>nB*T14;)ooaf#3roxuS|xUkykEoAEWj0u$KxXx0(zZzt#gDnipnRlt+vicxp@ zdj)1u@h!Gvz$5w-F)?DM)5exwevH&}O6-1+1Ji!P&*)%?JX9DSKtK^U(W?oxfIM{U zAd}z(Cfrc26F~(WFcq=sl|hicg0|d-MW72Iz-om&r4XPP*)F0C^0bGkh4(807zmfL zH3V-A#{P|COAzG=W-hR1Mk01fWFfuts1I>S@58X4NJI*bp+DpZs?9-!{@VH1JV9CW zLx*ApNhC>+5zRAZE_V_Q3T~X#TNcYiyvcpu`XFF0&R4Hr|NLW;kuYjM&}c2CcVpwt zcD-NKs(Q8HbE$9ks-oYh;&0BivZ`<9ADnA7pO-xeQFyGJ`mJ4E>MgbV>+K>%vme(!7g7DHO4@6Hd+mF9R(bw2S8Rq@mt!O=t8ECX7J z#>~Vb3UyH^>yLbLhVf3U%;Om>OfG-@EBdvo8S;eeclI{NbQoXy3W$WR&AxBBIMBx;q!r1Fc@4}^OXV}4tGLGOK8Mt!A~A%1q?AwWbh9MWn~n9qPy zo9pO^^S&1jKlMTEx^^_T+W~*?KmP6i`Hz45fB)nE{J;7_Uz50@g8GN(IX8Ef>5ltV zP1nTSOPHxKDCTvM{2;4)TuD(UM9HCxs)LPri z9bHG>1P&rrwE6oo=ymeO8|(Ty4TLsAC3st`;VC?$o+!iTQjpf%`SLaWgX)xT)*{-P$0y#pHqa+W1n6>V#xkV%&SNkgkoy(9kP-~MlS*fqrE zCC?HRE7_wxqCF31n6O^`{OaxNA2}mBlcGsSA{is6JyGA)_#`axtfT-;nq`u&sT5!l z0t#{GkngDyi;<8k4 zhWyj#rH`a0nN9uum)?aQep#*58m;YTjQhW{%Z3eo+&shY344QPpSU}L@_?4daPag% z@AudF7=l~aga8KBMCd8KgjPfk$+gDzRO@StfQuB&5RBxkxkX%1`chAXMqoD4m5EoVQkBfoC4Z;o|8rAa@>wyyYr<(5?IUDUQ`Z2wCa4qtLtW{sTIRAR<#E+sv= zbzBSZudO`eslNWW@n%sRS8Hsy+K(9@$;OER>|siyQm|Dqqjc+2@-=(XK2T*wZducePbplCgA8Yi z@-;Td`?Xh*j0bg4QrSTzL!i>USnBBO4=<;UD*u*Pj|Q64Gy3hIXY`fpvD1i*Q9Fkq zhp&NnLsp$c$IyGdx_(P?qbJE4v1_2cZbNnbwpVi+a?rM;+6)kf`T&064l%CFfrMm$ z&jo|vs#@rCe^Zf)R;$p76I-~jf@|k?7%lBnwD!Ok+2+}(<*O!Rq3BOFwfs^3 zf0JS4Ak&|gNo0iAl*2g!Q~)Eqe%iBYHI53p7c_f&en)r=cqV`M%sTPgAdyh95nVGgt4qkew@MtdDwr3T9DCeUjt9?A&)P+8vow^=Y33=?cq3it_ z?BqFOP25|8ZcLV%P?)_x{N?CGI-^OQdIpA{^y$!mUP?zXj#&iC4{X2;r}yE>0eh-> zAu-!fO|cVb&L1ts=a<-nP6~7k1uHCJ6GEB-nW|F6TYkcZ4iNU3&Njh)f-VEw0|||r zGOT9V!zFD_#vv_1Po8SIrT!TcS`!Sps^U^+-e<~#Iz#MI!Vrxv#U#`4zbalyyss7z zh2g#&{|ujSdNYgV^Priy4H5E0uesK{V1J{H`ddAGSkrqu2}SqjEJgQb;z!P29OPM= zzeUU3!W*Aw4^!OpjNsp8-NCy!eP)_@MtTwT^nM}ZetOdm-Ltcszaw#S?>Ar!v?dWW zD%EDs9yw#r592%dQ@u`J_qcn#H%r}Ja#X~zkYp$FsMu?&BUn|Rd3ou{@!6uInuYbt~J%+v+ymgzSf%iNKpdEL%vQ!-kDJV=mX0h5}^;kbLX!0 z83X!TC{N~$hpF~>hfm-i^6=(+1Wx{*u|VHD9$8iG)BLs1hCytJao_~vF!7=##B09m z1BQP$G9vN8xkDx&2#e}hz-1k=o4PnU6(2DN9{`E#BhQ5&c_KS;T+ZhNVCIe~PT6Jl zQ{bC|Ky$Q&mbjg0$ws`f-jmsOq{ewO6^sIa*78k-LQ?Y9(&bCOE_s_sLMs`eD@)bq zoLFTRti5>j!&Wn2w))@kX{*WmR{#3Pt%_B)rRe7e+n_x&sV&;E(u|g~9U8!N=*`R5 zuipGc5Zn~OwwXfMGAgaUt_jAvDL~pXJlPh(lYuKV13Zhn=fTcyKk;6O2r(ek`-;F2 zF$|w(A?g#+6`;f&qXQ%k;BW^|AOVqZxvo8I)?QC_IDIFO6MD2tumSU#U=nll z%zK|LcQVr^7r5lR*kgMp>(m$^wT0rUl7u%EAfU&A&A23aO2J-xt=8)6;kwWVWBKV3}EW!iRITpidOX7YD;6b!zWp7WKk38l_^Ex+>O`JQ~WuPvJ+N-!7)E4$gv4Rowp=} zcdjkYJO_wS;lo^=nOkKg_GV79MDa5AEy|j$H!%O|R)3z%IB}NE`Lk!UOV4-!ZPr?F z#m#4}9CX<>V&*C?fQjwV63nv#Bei0IpD~4j4fCWywh1R>SnA7Db{^rCzX{+k_g(?l zHSiRytCyUn#}jbh5rT{B`x8mQIwpM{q5JzcgyupH2}JphgEUUjfMm@ble<)p39>3d zx$wz3Fr=Q4a9o(tTS4M`p)rI>ct{wluu;xnyd(hlDI<}zDUKbi@o&WDYw>bRynZD% zx89Hoq9%rGoff5O4F5`yxM4)7E&cg^xHNxI=y5?=EyQbkFtDD~#&0qcszEA2FeT6PMtKWt&0uD z1>_3|A&npdWzr^6l(jac=@!NSz-TiG3;>pa|I+9ZlAXBFg4B8)F?_ithOb{~zVm zqh4|4>d$5S!R<58HOd>og_IL!|g#K zfrvAz5xJG~s+Hd0uAeGZQs9h?sO?2EvYSpp2O){*M4JZra~%8MpPrqI_kW1}k6p2U z`sojGaMb;Dy!VGVI2DJ--9r*c9{#p>EPgpYeUG10@yqG?sW|!|j!yRR|M>I4p*T7@ zIQ)k=I{EbZT>S0)?C7I7K0Nv5{8w>&crK2Qy658fbbs$y;QHVBhQD|B_fEv$yPw~8 z&(Fl)yMJ^)d_LJ1fB*bxf3JHe&JNE%pPh)a&nJRzl=pQ%e>yz-yXgM$@!;?nKPVRk z_yyfRJ|6x9@9X~2-QPP#LKo%#K!JZ8?hEyz?jPM>4(Yx#lqO&_qe#U7?*x8PPg6+8_y-}1a8 z>Bt$Sd*-_Qk|`=WTp>D z)CEyeU9C_RXi_rMrrU1zR-V6WBy1}+i22oF#+=r!vIti+2Qz`*B!;Czy8|NH75bQQ z3422R{I=9O(;PYA@C-F59t!@V`` zLt%}f?FfyK*b3?9q3=hYAKBu$(sj5F0RxNYidFDhjGYjO(Sl7ZLNS3WXJCgmfl`R) z7*(MW5(Q#-4Vv5g&^E7pL2dxL)p^nY9+wT^FdmGZi0c==q+nnoq9@;T?}g_Fv8QPr z`YgKhNpBjpn}%uHVJHE-g=viiJUu1ImoU2IsTRbp{m~&<45A>d8Dy=URLeH5FbUDJV0(k3uJQ z901tR2+o+%F?7akDJQHDPMTIcaUGLuz&6oWzy)?@hr$jg`&?A`F1m)}ee~h9IyB5^ zY?xwbgwfyNiEEB0I7tj`tNYCr!@&M_ZVcdJFGjA7zkxBi>e^$c8_SZ7elr4<_myK= zw)fEpuKgQ+0pXIckeMBbov|w%(;&DN!~J9$1h~RCyOwe8PjDun9`f;6jNNk|d~IX$ z5FX>MPeigsED+;?DLgxZ0v28SLx>1VcOfOPS&n3hC_J-G-!t(9n(EAh@8?K4 zi3Yag4gJ6*1`MvYz#qh6gzqQh1oFzB7{T@7cwk$WZGDnG1wPQ`74{yU;oe7%8EPF7 zqHxHI5<>^KeT#|ng8gJ;J{OCS3$WH{eG2>uJ$VCQ&U^G7IM9bww8( zVgNM*9~ef)z(Ifi=zC7&GxNp7B#yXl6xhZ%6yXgXKajN4^wJy2c80=O4qJ7dk%#FA z9L^Y#WUbS}@LKD%4j9WqbWK07H6aJ=Ct`!+{_q)k(+|YW8j24Af9t&_qVUKY`s5o< z-;i}2cA(AZ+JR$-$v@6z0HSm?V?Hqv(u{ z#mK(VI)YghP2Y{j90?J%Po=DnJbB|60xa2R5LYp?{-!>Z*= zn-IC30$4G49Hl7;gjaXQofG<#C=~Z;XiEi4c13v{)zApr59pwTGM4j^N(|5-fx#_W zhoQ)@p9!^X1!^bHLEG~k*9zVbvzE;l^In3pbxs7cO75G{Mj7VKw%gZ!rS=7+WGxG(m?!`+=DeEDqb1 z)xK8UE~jpsPsW(DFiqGLQ2nYRay{ysJFQiCwy2}iGksU3HKZ~3H>eZPgRujkn& zzJriYaubo32r zgauG`!>662vb}^l2@0B=t+utl)@4eYAn8D|63hA!UrG%D?+Ha=>_lnrskFv(dfC6! zvTkgYHme&O|9x%h#>W4S4T`!eYfU#c{#P`mX@sRsX&T{=HsxPy#!B)rkg(12q4Gu* z;C2BKmFXd$7UnNED!=T~nSH*hcdPTnPw9PFRi%R2BIURd*5%%+(z>aYy``|TR=7@> zmOZV5$=CO=slv`Fo}f=^i@(JJT&_K7g_(|#IZ8tdrjC;(1>$LCc;olg!Aff8aG`=gFsiI>WYGbsXOEJVmP&`0Ta+{eND3 z->yCD7q^XMM8O&6wEvl5^qekJr~x=$fT(LeSWz} z;7=HLIb|`W=ph`L^su?!Sb5Q}Zf7O{`9x9EkrtP3Ky9V7*23|G50?k3;@D}fUC1k1 zufAFlOFY7+EEKS0{ffrY%z+28wo%`+e9kmM>&mC#>X(J>!B78XfaEPE`iVz^O483>NcAr?H)Ue@a zNCx(fU0?qM(Fy z$q!V2$=MQxTAeINW=!Avk5@)wMN)f6+;(RxL^_kLs;?Ybkz`V4_268o}cg)LI z;%0^Y>e70vu`Xn+LBJ}>+Y*ZRro36wH)y%aXle55Y+XF5yctlWnKn!=Eo^C3(787x z**u|jvg{xaEHcRRBCD|iue@6CqQ>}0LWM{~lctkJOs!-vRiB)Jwm$3e_sE1YGo!rT z`03R`^102Q-fp~oI{RE`8m>{wjRrP(a_tM8iEGy-`p^uoWwTPLC|!P~Qdwl7`Y!<) zB+L9xU9@*a-qJ2hqn>)LDeAOxVss$D`au^adD5KDF+q{WFtEgq#>RByrIsZ)PweR= z$w=a$mbk1X(n|vnr#V-&l!-iVTX(~%#0)iB#&j;V|C+-eF3H2^lQ|{?;%*&+H+7eluJF5@>P4l<-t+g?_Qh zFcG>=c0J|HW7H9QS$n(w+}q0d$z})y>CPN~Ab51%zWw<}Z0qx{2H0%|Phz{VE}m^m z^JV4q0uU$-SGe@XyC zq5&bWoGDzeCDk}a}e$X;Z=dq#%rz4#8MjIdc}Ye~_oOCB?d=<&gujg7h< zAH4tYp^xZ3M?ZY{&=){tTQF6W5MK6Xp%+%aJnL(D_DeoZiVXRskd>(GLRN<^W1IJ`qrWC z4y-y&9`*3vi;O$LiouYdFX+mL~2RXLR%v#7uGthZ?O?N^^Vq|1qX=DP(p=v zv@AH^I+^B#Y)ukssWUGdO{uQ9U*OC+Z}}OBm0InAtQXsZkKfdx;leL{ zxZXk6FpNN$h82(=wT=~nsv-^oh{DXQpCdJ)>-+$w@W$9N>j2*twm+=%8mxCZ!v3b?Pi(mKdxO7}CH<8* z;-j1(aIj|#MSX0CAy#aZA8K8K>c)e2hP;=*zaD-IBB5eb4W#Xzz!b-b;=pE;uR6U; zhnm;tc10(2pmVMVHb^kQuc9|e5gdnC^=t(V{h&?`^dr*(*?_u8T42>z1W$>Ya6Bp` zzC5jPyb+wNTtXqsOD##Z^GI~fajNwV>5*N|RMdCnOJp~sPDeei9vP0yUp+Ri?LwJI zr=5&nSwz7XH38azv2iEHHa0Ez`G!9?pj=_ke_t^Dd z4W{ITq`A)2D}lHToTxa0lxK@-*FWvR*E^4|RLN=kv84)r63?5&07#w^yHChmo-&GZ zy=d*BvJ<1{Em^j?3qKe>W#Ct#s%B3eB>?}4$ya43n-SfR$y*?ShV)Q)hNtO`jm(p< zSfu4O`#2PGnGEs|YaJ)^yj+Xa(`iW{kV<2s@FMU|=TkCydhuB02gh)1-k$Yrr>}Jc z{ZgXV(K@-eXENZj5Bxj&Af_T@1L!n1TYu{QO#LD0sr8q6Jgq;<;3@SdpH54X)*t0j zcu~IokW#2WncuVCz`yHfDliT5rCb5>c?|4;n&3jDU7U2as(nQArrB|jdM3|W2u>3} zro3-)`WB!U^oCJiWL%sc9cm@Io;lJk5or<|J((5kpmngZP?;1|qWs zs8cm48{0UoK5X|hZiOs+mx6bgd&PmvEXQ@SaII^dIB*kQ(=v%^r>%Fj-o?9Z;)`XS zCP#85$cyJSDQzY^Z-$ne(PDRToUlLEBIf`fXpxJIg z%?~Tj);pD*-PX3iHc}MR-^mLJx=ORR@~of64PDPnccQEU(% zj$Tp94Y8U@U6oz5A>tHL=i${<%Yo-i=fZAcpLX2Wj-}zmZIxyY*5`iF^dC6E&rYscE$(pH}a!rY|(u5^MI$JuCB@6ub-wn+u@ ze*fUZ(f`r??VqzckXjB1_jYBs-^$)UUuBZRjA_`OC6NW|i{C*zYv7}6dIOWa^+V6( z@LCcSATbEQHpvJrz(c{N3t%j)LndT1K*g7+eice-OfG>5s>;0=UD+HW4^gHB#`cS> zU#Tp!Ra16M%#|HYjziN*9sEbi#I1PPEU-dxS6l0}Tcx=3YH=-pY42vz2TaJELYL%M zet=HDA+!CNUl%jNDGAKUch_+iIoUfAM<*YSPL9t15K2#u;m^V;8DR;Px@?=%W_StZMPl)&!?$% z23=%xQU4?ehQZONf@b z6vft>Sv!%!#eNoRXNO2wTW#^Z_r2X`3Ra=(x-NFvZnC$0QPu0~FGTI#Oy_KDw>l66 z0iWUtJ(N1vjJ4CN4cJdEI48V)xwY|A=|Q1zOqemQgs1g=rZ?*kIkC*NSt|vSlnBpG zIh32~*>o;gXxfxD=}7^c9y8-1NTzyKN!3$fN3Y389g8QJ=CdU7EN}7H0L)(I&iRX^ z-b?SpI9s?tq}qMce4WoMyGn6&)MxZ!A&i*y5+?Swlt=(=7j80yYP6R(w{xe9u@PLylRBnP;KF*NO20w$;Ga?%Ot@y(Dm*+ZH7{2vCFyOq z+s=y@Ysg=#EgLUhtRX4jqz$dMyrE4sGHA|xF8Qs``PxSdsUDkCPAzB2IeSu)U*i;{ zAV0r;qILMT*G|C&Vevy|D4u1wp%0uvGKhgY6M#;K=f0(KNS9i)bGL%=tT;X-xT4M!5UtN{(EFBk$?))4-(k@TG>5j z@d8O=hd;Q=;lGKme1=qLz!&eeIo-)ARcAUiW;Lz@;-$J*@5= zpPu|uKRVde%E@k$n@cfzxh%c)8m736LM)R(Qkc>Vu#qF^rgf2&L@cn0RP;!S8cES2 z$;mMNn)TAcsLON8vb^)R!#{pMJv-Qy+_9ISid}8=%X3pVm&>OXX$NP8Rs=0uVoiv; z(WEbaaX`wESR5`iPG}HF#MJaFoF|!iB zGx-h7r7%3-yC3^;$OyWjJsz-~r44KuNl@du7)sLeU-pNbye7rfRRvbc8HE$0R!LwU zFx2i1EQ%6VKXMU(9xTzEW$j}v8yHxQcLe|^3aOf)5Xp%`UOZ*ZjE%{JaI);NkEqmJ zQH@QEd$Jju09@KAa^6g0V!2UlH<*~h4%>c3bSSiJwZzKy6=CEDFm+7ud>s=$3z7>o z8^d>0eX=F6Xc ze){G$Gr2#=DgEKiw621$9t&=6P4#KX0x*a1iX{#unl|4hnq}Da*-F!v*W;4nA?qzM zql3V9kRKBZ-eGJMuFB2!qHcd)9Z@~n*w9TaUGWDQ7rK4ExL8yv_;K(ZT! z^;zub4|{;}JwN+=Se%z;7wg*08toPpT=_om$N->Q!45RTNBd^;&E{VeP1U@bGo!`M z%8cf7$z&u*PP;^q*Ru~ZnBDq7r1B+3G@m(4`57VDBhb8h_yjhMiqu|17MtHaJXG~& zhmRUeK1YCXmhGxvmBi!(jZQh~)KjRz^#;j#lmUBbA>VcAy58wL z<#ic#N2xlCa_wE{-PAKw*Lz+N^+l#Ccr(N9i)yE`sBWZz5ZebC4B9jfN7%SvyKR_P zT1PlQ)wjo!2smu+K<-FLL?du>TEP%Dr=Kl?fe0tbhC#ja&aq~dGjf&o?rF!Su+imu zjSm`<-ylgCBJnj8SJBvIHv$+^lXs;wOINFV;IMRSju5s=qUdHvpH}BleWd)!ELUu6 z&9Y;SzS6tUf7dNZrKNW|JfLo??5#&6Z#YyJNl=n3yb{9gf^46ph>Z@dN(&!P1***q zW<^f8n(0O*(#-y2#znGtnWIss)k!Rb+U<^5Zi^mvarJ)cKhNxpv)KKlgTlv&29Wyy znuPHIT*OlnE>cM7A@~ji>h;^rAMhHV z7{NEU^b8rrK}6<^i@KpxHV}KAl|FUobT};DKvN-RT>T4dEPG<_;6MOMf3GX{y8B|U z`#16ahy#uf_s+!r=}Gte?DPIPlL+je9qyeUii5rLJ#ldOVej+txi~mHK1AAK zcc1>89lbvU+ratJ$^N-GI6M6$2)Ms1J{%pNAD)R1XQv;Y)$^PlV;pKFF8Q#HD=t*VE5uUE*LkI}%R#{&?@?Z^8*Vc6@Yxc(!*eobcrH$HTLuec^=2 z=Xmer7y9#Y?|lE)!>%|cUW1Q&{}3M!enK@;Rh}QBGEdHb6=ziZv%_Bw{~^u}KOOJw z9|GLjKDUFh=|bbKhfhx?}|2VK$qb#D`YwtjkzpO zv-gJ|PR|H&>456@kRCrjqvGNB@B}~I^S!h4Zc6*`QJf!rJpAYB$)Py^r}#`o$5;Jv zxOc|;ewav;Dw|v4m$SW3zl!&`@6*}ghogT`GZl?)gKzEGak+4Ikb}m_^3Hw3fo^N- z%}+l)U6RzRgcCRRuHkK)JxMjc$dJBPk^0YsXH3_=%rWZ9-BynKP~cWF&3G&f%QAg8 z@*~3y5rM@ZepL!EivP5SjB;&wJ}e<@74qYdoWf-E-m)X6dC&Ow+8$mIs$h5{Ls)a; ziHuAfC}hYTnZ1D>Y?Od-9}&X6L>`B4uo%SVwH?VH%VAHjNCDRi(;pJ7Ht>%L!xVpGyJ+WO3z;u3Tqy6)_HSa4#Iw_nhIqbRVX_XdDX2ws9s< zT2Xt#_EubvZNm%2^^Lf`K}iVv_^Ur)-4@D80e>Q725@|pLPW?S5rq@0aV_!wLiTi3 zEj6|ygG7=DFigA{%j%VP@F$I9H*&6T_*dO{WBTI(oIS@k?E5b~e|!U{RTm;cw)(^; za!3}DBXE->R1(*ih>3FpsO7-6922go-pEEV1A`=oBl}JSwrk%Q=tP0-l98HpvX>eW zz`jPxNg(kr#enl}10&9W#tk1BA9`!B^9jaL$qJQK7?Q zAatmZp~KY#pWCsmE=B%Cgb=&}4*yEXTcW@;NUaFydrFe9&&CKr7|$emAaolT6M?MA z{EjivGAQ*?fT4|6h(gt9azvm{8`K#Qa={q@I2X_6*Hg~}zb;oHe^&aPb zR!~6bM2V=t7eo;wu{~__w~zGmq5F|w>VJn`U4kAR%GnsdAK6Pk7u&iZosS+no_#`HAWZZbq3KWT6GHTu7`L7P7GSEAfK32nBl!f3lv)IE zpICgP$aZ`M)?u1NqHUNyBD}cM&(VQO_?vy74HDZ-HUXubi8J9iC(`F|koZjaW_<3R zWdZa;MXf^oZ}vSlD=!ZYPxcv`o65&2hgdm&l`iBm?bx{I$X;^md&9hjXeb-rH-eEr zlkf`@4P=tjlzn5|y)v$C3dc0=R9TaReFN|ddx33a5)UnhCOqal4+~cuZ&bMd6B7#< zmWAtnAbHXeFMRI@z||yyUu=)3gR}DkB>v)$Mzr0sm@@sy)F;v`Ej3IbWGxlp#ppg9BdDNw~dLPv;`3bnZL<%e=)x^l6+9eW`hgLiSkSWU1%^7 z!M@Czc|(`x5#&xtWQJv7){+w(V*VLnMTGmjw)-+Q_!d*PnO6PHzH&_0<{&ri@5VjR zVo;dgn}(7G%tX`1;>2QHm6~I!Avu<`93WE+nvLmiDE59iKKJ*!$HH*NwzU_X8^H*7 zI^$26;+){X_ChDR-;aYEn+8jgBx4iT@a*%ez>mOif&@Q^sAl($x*r_R39o*&QBc>p zv4!EfG#i1sijGdMyT^}ESQ375n1{FwM>JVci! zcQG-dcjln30vIl+IUGyi5lkIIn!-cJ6MJ3s&R>pY;QUxwZGh5ks2V90m5nZAwv~OGZ56Y&tz6c&mCM?unLSKmYM`ko_CqR? z%oh3hnV+QbV5eZ_$#Y+hC1FH{M}M}25sk#&xfz6|E>Q>oX7 z9(tA~25KQ24j475tyeCt*3REmzWK>EQdZP~jFtV?V8^@0k^2{rUv?1>B&Db>p zF>qt-JO{uia=g)dFkq+QGt4$BzHg&P!T$=tcO%+ck+|ORMu%WqQV~pdgV?qFKkeX> zKk&>qtOLgwrRhhZ{PfvN$G%~m*tfWl$tbWP6~Gkm(U^!q97Vn-H(MO(+L4T#hGj=I z31Lfqh+{y=>0{Z`RM3gi5J(4&z|LHYRKyFTn6mELk=#fkok?v>V|)M`A0ISY*oYkt zha?}$MEF~O{d^!(X>elo;^?U-1HZw}$27(h17n5=>S+6J8skq~0hyq!A}IEI!@JHz z4}rm-{I%_qnKXd2_L9jStJ?MN1aLR^5Z9VIWP z@J$*@UW!Wg)h+4Ex^|SlC=GoM?UUbr5vJkoS(f}MY!0)DYA2CR`;A+|Gi|v_oEzaa z+7wWC+;O}QuP=%3afQ+ENjw(jU>{tkX!1eVj*^J&5Er}W*{+&O%q!c7!c5G( z-aGoh*mxZM%?TZ5D-@=4@4<_wm3~X@~}CCn2(b7T$kpd4}m{U zYa3Vc2cFp^x#gk@bc_hG2cl?lY6v-=o(l5OY!=DMfMWU0`)pG7$=r6GQcg)+C%^E_ z02wL;WfL7?14{|n4Q4SR`-;pq(sbciiXD2uD2)e>;rb&Lrkxi@l2Z7tYfM79aUrf# zDgQ!y{3?a6GRfhMrAgh2CqSO>_JYW9T|2nvZp?}MSLl1m(knyRJ3jc>P9?GKM-}|V zjv)DvF~=LxF-Asth;UfeA4j^7@2PM+nGoscjh%g?8rK~AopGaCYauzX(ux^RXlmr& z59I#KFjSGP$_m-xIb^U*_DKY`b|_;!vr_O^#||JBy_azw2poj$oP(cOO6Mdw@a~Mx zh!{BQGRRU*WW1+}`LobFpm9`>xlE9KGh9&F3i0bkRiSAk+mW&MVQ~X?=Vy&2a zQY1N02s?G1C|4#Y(UmZQ=ekp3j3ue1bPtU3wkC(P$fZV7sADroc`+qO`<{G7+P%75 zx$|^==aC~}nMnzWD%%3TC3gu-(XJyFRf4?0NR0N?3@V;ChhZm{r=)MW7L%mL5*ZW+ zxQ|hv)G>SExQZ;-7ZXl@J4sHwKwjMs*Rdq@!*yB$1L+PlBT)ZK`tBmUahVpUxGXF3 zYf=cuNJ0KYv|#Sbv#TVuCdi7{aH+v_w7yHhY4b#D>AFly7g503@&`<^hAEh+%OuN} zM0lVpL0)S$kS{)Qrc68=v|BC7uqBb-Y}DnkLC3bUtOeeJ*q01djh_*+N=Zs13|xiR zS5X|M*SEtJFCmIxO&s6NkjQm|L3kcUe)>#81|gqgBB?A>sNqGmU^-l8l&sJmg$2{V zx;|ksJ)JL-$mcI!^L_o>#@eZkZ=O9%^7%JzJ@n-pgOv6OAX~acj;!^J96jqC#K}&+ z&MA6p?n!#LA=WmgPoBGGv-)n5c881!R)}mm37@^mW5+r4Z63>?e3!@aC*S9>{K+5l zSpMXPJeEJ{lKOXpQg{odz1>24w}tk83+=}(v=5uKR064=>gAAJ{kL2XtALHqo{a{D zRP^b>DcK&b$1 z|F@8>Ypv_*C$ef?(}KYOzgT(>fYwPi>jcUpbBznV3w}F{fOa=$e&0MtYMCN?pZkmnTAZrr@F`X0oY< z*(7l@Fj&sh!mLSrV8F%HT9)JtXF9UV)kLnT8whf0&YL2o%m* zf*h8+UYGSt+P~c>lwUYb)nkk(HhvW+;exkS1j^mdispXWFs+jA)&Jnok0&_LD4DX* zdn#>(+(F37Suu6)$O>fY)-=WB)KxM#z8g^`vELz}70$)folDE2oPvN!HRWX|nR1E9 z4P+QdLQVU0a54ejc1>h|1-EVP1&Bu*n|P5qUzqKwHzuu+_GnKRX3d1AJV zQ=shy62?7jdZlK_F0nK&axRyy$S2(B(d}P)ckYhElJ!V zY2b$wm&FC?g_aw6u#C$+Y0%ubd06`_?H3#=@KYyZH)@iFp0vd&?z1GBWDUw(2a*U0 zONL)!kFfK(v)f89a>`RLjzj-Oj%!$(agS%yhTPyt!@;$iW6_5Dx}yW ziRESjMO%7)m`JQR1xTvr%vuS3Im!O zm~!GI-h8Fr@N^Z>Osp!`3}#`^30$8feL;3xv)^)J3~ol--Xd$4o*Ts}*Tf{|fF#Tc zEQy3m{#dHXEGOw;jq|&KWF!^+23(g!z_SEk3?yD`tBfEe@RFQ3kgTQ{hO;y^U=n5= zHd0Z9$icE8vCVljrDq~mCgn6aITFv|lExe+ga;~$0)(*m!Gepf!h#q#Q073wr7zo6 zK-`SG0e4wKd*RxRG`zoDXc*hlFhTNzZq_H#Asr`Vq%bvuspUpDZbYkbN(R<)X9-!T z^Wd(@xPCBFkM2?}5Mi0x8upI#!+a%kNJ!g+KVrmmeH+_~{O(@N$Dfw4UwBOI&@qInqL;c&&a4pR);i8pd_xCVWGiKYDYBlqBu#Lcjh~D z`l;m&M?hjm2oMSL0brwmNpL1DW+*9^nE7|jKyJ-77}gE55WcE&$U-KV=4attD!wUM zT`e=oVmuXUpobA@3N<}J;6@2J(Q85kT8W|PXFO+1NR+gYzRPB*gs_;7z;nm{Dk1ui zv_dO9xppH=)^j4wQw6eecc24(HU(v!EG4yAs-5C&wH9ZD?Bgp6ZB-egEgC>oOys() zF#JjuyWE+?Y~}i5w(@=2ufQs@*{G8_BFQ;Gu>3IDq>#X4?j{-6!=^!slqzr~L5edJ zmRh#PiX=5SIjq@G_-W)#6-)|RC8CiuvMWosn~I3pr*L7BSxD)rphFT;3C7$_YTg1? zDBxIt`Mw$4SS+R^*$}aueCEtcSVSV{c&4U?k?OLocc)gMKp>XanG8vz{+HH-42}tq zYc9&j5wM7^5*Hj0~1s zxtr8eE0e6F6FIf^0!D&??yQY;y}(Ino%SpZm0}7I!^P4`@QumXEwe|WbJWk=DYTl5 z^QzExZfSQpCox_sRFM-6Q6WXCLHEIJtxN&|y6oH{UjeozeE96eE5|3KRjaX*x^1`8K9 z2x%Wzx>@;2CAu*;>2xMQd=I{tkyY%b6FUgtEy$d7syav3`wN^u;`+`zi=~o-9{Y5dGY&z~;AVyOa{7IeLl@d5KApu1_6Vc8y*bgCj|yY4i*T)xh;6 z<<}ILoyfrJaDD7V5()@Z&Ok^7bsSFb2#}ks43t}X5V&-7>1zn}@l)qt*!~h^c|IoN z>%~-Dhq0RPDZUMjv$J6X5!of5UJMRh9@_AjUeW|E zytoDdN_ZU64h%Tif_bsdOQ$a=J@&j9Vz@JGy1RkIf{2+vTtc(==1#dGVPyow_Ki8EklDfv945o_OH@i}QUrIpgLgc%Elr#_5EJ6X+;7wOVwAf` zHz3i27x%nn_9{K~1b9Etss|8UfO+dqR@?#d1Sp}rm<474uEVt#%-=PbllJ1A1)vwR ze^S=7vq0)E+!?0(S~!2jJuk zJLK#xUB*ehIwSD;CfE-yS_*%%SIDj2DcX0Y4uABV2sC>p`X`S}DGzm*et5^Hh|qUq zdV0FC@Mz_uU&z}t{*3||;HMVLgIoZB=paWi`+8NIP9ZvE_JE@zuQ}e`Nr)%Y+GST)P67X$0e6kwD15lD3KdRWnXkWdEw?apdY0QnzP| zsZY)Y@(~KmE=$q}DQg>ovVt>2D@3QH9Q4K+t)kf(?a?}Av+#_(^$FSO{9_o?iqi<% zv-3C6@Jb==GG$ps2s63<742#LD+|74d^o;S=VVEGG4d48(|jOv?gl#^Xp~bjX^M4H z@shs#=gN)gGM+u+N6t#l>Zy}8nnl3D>zBpyy5SPK9rg)+`t67m({7M_9yLQWNC_^*D0M~g4_%fY)&y7B>f@VXP8G%ZMjt^@pugiLqE`ldmzVq zAP0PqAMwGJDk68kJPT$7Keelvj;Xc>2wBqr0K-o}YHkH2-2{@Cr1X)YLB|GD0F}xH zF!{W3?vPxRC2~my3#E|kYll=5h@4626G{ZDG9c-)3lMEghwNd10g=(4icSeKsK8F=< z2k8V&lv1R^x`3yjuRvFyp+KfDlG0>DEOM5TvTCWjz(RKwSmfLU7MhE|!dXh0ejvB~ z3ug%dQ2K4*638)s1TY^4gK`akPrBCCtN*VTjEZsXUh<>lz`I7MWm| zK^g#yOu)NvZV`5$RB8)1SjpWefp|qXSSgEpg85wmNzXV!8XVp$SV`6gpmfW~KrX@L zAYK4zw@HwiU;t;1#1f8WAAMMqhb zhfLvtE4Nb%Hm9YT>iAA9bn!P$4-4g%l-j^a3UQzs%!aj+KpSg?e3r`}#j8^;B03_4 zshgzDOH+#6#x6oAxf70gK^QBo7hwbocyQD7qp2!^HUn&v8InVh;nZx1aXG;-A|nPc zq6SlVqx>jCD5VKsF`YJg%+Je1UHKA9{KWC73qcX^8EY3uz@{IzG5`mW&Q$^H`H!Vj zyuwohuL2$y31Al*tE(&RUdhVju=GAD$knM^U^Yhpf!*r?K|t)QDl6tAaNVgi*a=AV z8IaC_mWIGxs}&}2Zxa=|h807g%?*tmE83To?mq9zk?=ux)&kpx@$b1>Mzkyen} zl94arDp_5*pS`IYig1aD6BMtIW42%tCL8+RW*&*#n3LRsTO0iBjY_iJ^koPw~l=w-}Sj1dq@TnWq>H}B_iwMR% zssL3y+eVSmEve1jseTL3Un%siAyW5V1t_kMC-r3*=e-D*QnQwN5H6P-`l2@dpH-Zs zsANy_C}n3>6n3#xs0yv2aJi`G(d=##do}|^gjl9l8%yr=a!HYx?C}zl4Zz62OGsLm z!{M;8)T3wRF`nOYq?9FJMqU_EpW_gGnbWf*VBaq18I%!DSCd37#LEbQXE`#T2FqTZ z5twCLMj=JC%^MLaYRc~^g6@sB%tZk!pltL}AWDJfaur{L*G++8;300;a+PSK>(7-N z-BBxLXfF5yQM4N(XNo^Bl=@?EgE}rdicVsQT#f|xjep2!s`nd|% z2+%qW7dU*SpC%qpq0l0>#ijr{QR;lfK1m8E6EGRFg%7H$MzqP7s$7XdkgS2Iv4%p# z%xc8QP5GlNEMZ2>sem#v2Pb5_rr%SOA;fZ4`{}8gv<=G$x$sLVIko4}X*qAYA~|!L z+dQZFz-cERsp6Tg4o#`s(7doXJ+~#)o_@CX*ok7`J?)%kW|q==n^Q%4P8y&}Lb_?p zqf$V}#BGhc845B-FZv*EoK&8Oe4?Rz7cvy{mAY?BKLeAtp)ul9Dk5Z*sfx9-^|+8x z8W@1I!HjBW0On%NXFXQc{JD1#SYUh?9TJlJW<7Sl<1a_j`B=z z8*wABBh$0kj*M@Hb7cCqFpTm{7I{Jv@}U`-s6}UFLcVFWCY5WUj<6&adUf8d>E|{n zxdzYqT}CeS?Yc}E4v$jf6+nu7e>r%DXB9y zQcjdN`$L>yxP6j2Blkjz>!N?ji^k6oQcwqIla*9$#QE`9#CcvS5Yq`NrVXJyKy^Z?XJSdn#m9-I99uWpP#5ORIAXQQ=Q`Gcz@eSMJ-D++BS<1Hrhv1T%# zBD$%(qQMTF1f}sKw)2nB(<+c%Yq40(m^3b!+Q$%oPSm^B5YFAN=i-ZjT#QyLX)0iC zEQQsvZc#506+AUA8qNyCdX;e%Xph*JcuyPjOE+Z z^FbN4HKpOsr0`NB<|xD19W)u{sC{w4f<7iymu7Cnlr%(JEUo9`xEoJAU%ImqHMj}y zEQDChXphC6(9X%GtZ$Dgk)6qfgJ7~A{2`;rfu_*Zl|C+7=%)l8=dyLBeR!Oi?-R&f zw~-HKKokm_FIQh8WS(J!LR->ymdCyuK(tIv3=ISywS>Zku}e1*0lMRJFPLT@t-YzTjFn3V>k{)Q z2LVZGtYXZgg-g;`)zHEvvU8?L;WV_AI#M{zs>?iDyhOHGh7~SQ(^-ZUFSyg60ZhAq zKP-7y6OeO9iKRP=3^bgg`hGEXB|FMTmT$&ISCu#;DQA>TN;ZsiAC>s~bBk)Bd~*-nZ;=A#;(bxK7^dD87(F!6SGmw21Iiz24u ztmpNzFVZ7rLY#MrVf0Q-W4#S|f6QJlaq9JwLT@whT!901KJ6B%e@iU=TObF9ic{fn zPsyU;zyZ-`JDxL4JUtyD{Ui`=)$*1Sp_#w0$v)$}7ff9AdxqG`UY&XD#L_({ z`})?>MKUr8y4(|p(N#=>^47^fYjW)_)H!KO5a-=@fKu#-?u<1`v2tmy@#=)v;Q2&) zA4*!fJ0eW&NprqHu{3YO(ObCEyxQZJAPq?NdV?^4XZBK#Pz}vSoD87Q$d(dC(K>@9 zojOYmV}m@xDZ;6YeI*+}5h1M1PMOLzSJ_Up$+D26a~944Nr%>3X46}k$_(-i!}RHL-h$uHx$=# zcj98RnX`w~PlK82u7hnwZAcCEI|og*VUUE+j@scTpItwk$ZxG+j_J6RoVlV7ke6hIVaoNNJ2$+8RoklE-Zk5!>H9^E3KJDLyE#*Dl`Ez& zCn_>A`&%E8_i5f*s1Sugm$`w@`*D0y+ zd~G#Reg!^jNY%1?E;j+^6z?NaAm_T0h?OY%oakf)pgtqH8OGPhf5UDcfXRoD055PC z&M{|cBtkxPx+E=$p}9_zu{~g$%-kIVy&(c zEJ9pOy-2;ptiVi2p&>|Ji4o*YUELoJI5&|ub=eb&APUhElM}oQkq(3-GXRp6^`@?h zkRGSZ1Rhn4r$v;yAFih9s+dx`6C|3YApu%5AgU}yG9%VqfCu9e@FLz{Zg(bP=11_$ zG4SKB-jaK@?;?et?@eisBL^Iz9Bh$c-3B0~6fTe>kx>OR_XDLc=DmbNzs8|I_1q}a zoW2bkm9d#7%#$oOFXJr&y?I@a$qlQp?VWl4KF0jCL54dk2EaY$v`8Cf8Aj1oNqGNT*50B~R44cSeqZyNzQZWsj8%m9#Pgh|F8Cn;~7sO>Rq;A!TBmXH7y zj5bkbPKmN_B7hjoBxH-aBs}qM@djZF;l%{paA{yB;c$rzyGf2m$CVpQd!ljd3YMx) zrFYGd<|ojCiHwzUN*^% zyeGRso}e##C)3;l=*|Rtxsol`%FEQoE6<|ka~0$h*eRS$DilKTN)@8I>I$amYg$TH z(t1K3v#@xQ!1`Z_WJ~7?`%gCVA&@dj@Gs_VQ)JuT{pPWa`_1FK zc6llV)K>jQ?bB~IH|aNSnH^d3+t+IsmHbKIAQ;M+GMF{Jn{9v83zU#agAw40xE#|@W5@f4b z=Y$OFO$o!gAYLfoifdTwB8PQB-mqqaxCxBB!w5b$8x$6#tu^bowG0ibloE_L1Ed~v zBu3mA>Me~&<&pcfj_5@)Z!6DALz{J~sb6ELoS#4-PwOYygsr7G1V_3^ia`+HLNgCr zV+!Ff1c+qiYkj6!Z_Y7m-Ccn5#IrBZVP&U!XulBl)$3bhWKW&_*?7;s5}+R22ljMN z*jM&+4>&NRYV1@G-O=9uxJoFM6)styeOP(^TzvW@{_ziC3tNcM4@VzAjgP8gw7<7o zdHMWeEI27WIfP9`5GEpwxIU$YGxsL@H&V1(I=o*xN#aH-k^QB6J8^k5T+V{YrDg_J zz~yG+au!DL7GeeSWpeGs{F~F=5e31?36LH7@>bC0_@P8{0OYQXYwP%)6Cakox_9d^ znwB2Q5JO>Sj@mYwzoWtHb`Mn8iTHrS{T#cqFmiWF@t?C&xfBz- zUn<`(oJkaF4X|@DdS)l%UE?{*9Pd;QM;CTv2ev&HwvBHS*?}0@v2BeFW4Gch%5coR zB6a)W53kGf$aSZ8fMms&oL=v)RQ3W0RSxfEB>o#$doDk2@3A+gRDp;3Tg89Q4kZ2I z;lU_#K8R<9OGYKifVmHEzS8)?J>VF`@ljGv4pabqXW<@kyCetnY&Sj{jUUQy-n@D9 ze#bTLORLy@h9;XNrC(>OfClih1gG-P^N;RTUG*jvqYK*}qdVIbdzTw;w`%X&74-i7 zePLJZig<1u>>8DPb3T++FFhP(CH}TED!uv-7ie>FVyF6p{l?%2?b&ZC*@t*2SAHAW z>w_2Ly~?=EU%ptq->7~i@oJ;Yw_K*M-`a1DUHh$8aIvbYW#llbeLfZS?yxfuC(XV! z5GUP!yEYK5nl%uudd)IL%j}4D?GMpzHblGG5$$e6bh_uF-yL=u!Wy>45Z4(y)gwFJ zwRen)SC+j(J)=Hob~~chXo%X$!0d}!>$KZ%4$j)5)@q4bi)fu%>&w4QQR{pWwO+6F zMbs=&v+ANY9GrFg&41Upkl~-dD8^_|4A*7g0yu z>NTrgYnY9ypth)=)tVjr_W8BUzOc-JQ5E$wvyMUD>oz-tx4O8zHM9n1-)x9_x7ISP zx+&`2R;xCk`*&m2{-=qijyOt&D!+ziF;4zmCP%j6~w*0jQwRTTj4lT2f zVupRI+ZXjO^_D3bwLxvCdU#y3Osi^Cftz?_vuzUgMKq4Vp*Mch3p#H;;z{JgF-h-67rA@AgDv*lvHpZ*Ql1 zc+#ZiYYcm>CcT2$vhb446Qe534n586(06SJvxC3WW(TxkTbTWR>vIc-Zr>87Rj>8X zXUsq9W^W+OKg{}0^>8@A1I#~~*1*C6CweV(DD#hj*=d*!abgbYXX2!3wi=c|jquYt zsnrMFz8av-KX75ITf<;&wYulc&MAiNPWAAaS*xEt>vzwMDkyamzh?8aBTo9JIWYei zXdUIG-))PNVXGxhh8-TEr)IZp4*Fkqs)y*OCQ*&5IBj*0Yb|lw9dyNMzt$Ou(|&i@ z6KAzfqh-n!XA2WfUX-NvzKcDh5Hr@PVXo1KAqO6SpAFgghOTx$X7 zie~3?_jjDPx-FhH(5>)I|JiMJ#P8-8t15nPwpyZ9>zod2r>30m%-UzncP9Wpn=L^d zQnZ>Kv(u%6#lM3--n7-NH3a&5OVA6qx}8&u5==5^YeTfU-JWRI2KBR@>LCs5w%KS7 z+v+O33}4wc`==(R*hb3)wcYGs^tZbW`e~jtO^bmqqTTHb&P03I8Z>vRhgyYb@)5mm z>&t1kV~7sDd#wdv*vAnQm*|*(3`D0ZI^9k-KXrz!R`W!3hHbOotc&i+NfkeqIk2jt z+Y#NK+1aTcVj{4*L-eeF4bA=+K@%q?yl!vMY&ZXH641r9wN~p3PV^gQUv!7)dS+k9 zVb=X@_C>GOA2e$%KGJvUnf*GZxL)&fcOZJLS||TfqSrU;W`ka~Z`PYulW9H7FTK9` zS@inNHm3VtpKj|nKQ~+EscDH`zgwrTFzllOz2R}ISr@$_+WlX{X8m{3uQe?i!J=>0 z8depDmgt-HZs(+VI_#UGZ=RTavr{)M(KlNrR)oIUskL$FnKitk99(^~*Q(WtPSXkM z**E_+Y*Hy!^Rz=nTZ1kW2K{DzAo}KD*hkx0qS-m6V$hRCzj=B#5dCheh4l_A?*LOz zzk5z26|48@u-T}0Tf)L!w2t+MEmK&v&!)C4S@kosT@x1GsUa*ALtI#9zgcTxs{6OB zy=7V!e?+w$SSDUhA!lfA>#Tb&th3>u(LL`7tJ&`1dF@)Og_gHEwVrj>9SE!2Higxt zR_#_ELR|5odd1e`La0>2i;y(4Ei1ygfZ-JKOc6`A#hPo zt*od^RSYf6O+$x$1!^IV+QnuC*WU!2$a zoo46M66a`(^E0z=it{r}w&%?O=BH=qU&EegV#Yu3_J0@W{ia@ zkc0lv6eqQoWzsZ~-%es9sqG{6&Eu|76>?Kq*fnB%XjhJ2Ui^0~{_&40Z62%Qhoh?a zxKlkm`cxGk#V4aGK8-#djjOzetaTdV*c_ajW=AxdpGC7Hnyu#Vrf6c){@oOv?m*Dk zJ~jX7i9XRRd^77A!GCn++bzK%v(fKiW%TRF9`6|cDIbh04^MAR{NmQ+!%y#i{_tH} zla&`mu79Kx-P^E>g! zQAX+2Z&b=}CE9V8#-da*c1t_eA4-N`nr&n2S;98-z}PJrk3XlprTDS&N|y3UZe&Nd ztKoR`djA(^e^%Q+8Q;Gy|NM~dY+pU~8v3SE-$_w#p>x6wRtv!mjBvgze+*}a9q$?T zTK3cRp0UwfYLlGnD)vF;;i0hgp$L~(6v}P_a6+O-e)`0x9MTXJ@GpmVrG)cdutGjX z^2U%^6ou=@ZobM0<^h2LybV>i65fnMB&)ZPk;Z}*`L)O7Ywsqj2wHn5fjNa#ow9@j zsnil^iSL%Ud3}xGMt4YuATBS#Y+PQ7%S$ZdmzNkX+DPB29=^WSKGvR4gB?H9Ju!04 zaVjb@s&soc>g_#yPwelDk4K-x$I<@BvH0}qQ&pP)SZb8Ykp6oy7Kew`N@2k6821nM z$R3w}#gKhk%EIHVR4%Dnl*;!dM>#j`YX$3F=%ZZ`cI8t=$v{+a>ZJ5g_MOGm)H&3} z0M#RGiq*yGlO7(7r{@z@x%{N^_UG3he)^tCC2@jG;8DR0aIh;jL>$j|sy}$a#9vKa znjSVJ5T%iQ`}Vbc`}U1}`}WaW&v4QRY4{7gV{i`QBfF0ESx0rZbd{s&EfizbwE-T zghv`5M;9MIjdwpiHsQFp${<;P00b|F4Jm+a2|M0{NGLXp-73pucB+S;UWhVYX}xF1 zyGMrcNcor~9?GiqF{Vl4XRmj;q$4A@P9GJ<-o;0O2kFz`NX~;i1zv}~8-KmKMCPzC zx}1bjw1s$+O@X-LQa0Npyiwp3+IE@`X$q7d0LdK4lL}Fb|E(U5H>Y+??Dr4lU&ob)a&eYB$VT4*_veFb zxJb%T@unxI;KT`v)9?FV-hBA^8`JNN6Fp1HK{+aWza~d+dB^*1i8D{rn}X(5=k)28B0NwSn5XQF6uY+LmP1pzgsA6SNL^g~kxbtHz;HSn-v zAOC>)P7y>%S{lb^?pjR@xrPA4MRhv#X4$xw18WudZXC0GS-da=_F>y`jC3Z~?zHAF!eA<>B>a5#Lf=iqaRgJ$<5lF}ormF6P*M!KsDAB4 zN#w3#fZ+rU>54kyFXA_tA)b50SB6m#d;V8ZkGw@32BLoF1ftY}N3Vx}8V;_!_EoU8Y(Jgm@7=qqx76yX7M)5Y%SrlKKL3~7l z(mKleFi}=lB2+Lysvtq~t1zrS3uCfb8PPurQxezpvkTIvE?oLi1qE&(RF`Qx5iEGy z?$lc?Fi_e&P?$hvF(`WvBfV9$^wpWPiV{uxj>NId&h;y@?!!2DAbgd!Hx1HuZNqK? zc^X99i<7&4h#SJm#DT$f$GLI-C*=Onac=HJ*PpgvuR{Hwe;bi=CFB6$1D+vYr04i< z)`tkADgw$X2rR2!&sjQm&iS>s6g_OudaKz?^xSAA=;QVL)k5^b^;C9q*-E&xAI5h) zhxEfchrf~KOsBrfRQbs*Cz#6X(pI%x$GS!;1j}=Sz!8>5yo2frS##(5gB65pp*MZj zHwI212HEAj<=WG&`ZI}@y%sPa#PV!aqV9p?2nE8DsPT6iweQV%Hx__UI5j`vdANqA*mXd z+5i2p0!1;ehHuJ0V>RTLD6nf_)CBQtd3J47`L7u5{a{yKe*9EDV%v?w@sY51N4q3@ zJGg&ae)o`?c-Y7L>Px_?13Y*P;i4m+O%ZCsor-5L^9T~7s@Z#t(^e|H&iw;3eZL;! zwTy!t6QZ@Kea|Kk4~OGD`yt(Jr{*J>U4u)R2i!>Co7(rnet41IrSJP6%2;a-y@!Xg zcYsfzJ(RzLy)(Kn#=AD{o7H2ok99G+*ctCtvSN}P3wr0T;v)zhqLuINPu+iR*&Q&4l5UuLDC+Xw!=3cFtXP#@J{jWLG_4f=$ZGUi~EQ1uKgfv>tI*B zFdnT%Y6?-gur0j~u`=)4_Sh#mKf30L7f(fQg(s$Bgh$_cr+RoH?0ZAWCQuJ*Jb^cU zAkKKtelTcs#=H0vbSZ{B_SmC~d%6gX^sA6qdHiCh`UA1kRXY%NL@fTju;0?XhVgjo zrCV>UbB-?T_z<5{U6g0Uz5JMX&^jy!cM79NS{xIIMX!8uPw#rTV~|Kq%`b=4wfO~Y z1C}Oq#xRP_BboQy`@Z?VeS%@2jms~DeJ^&ZM_XF=%{N>3$%ab}m^>v&-lk!pSh8kx=0x)rry+Y6EO|Nl>Kd>XuDgwMzyF1 zAjid-U`$YY*p(BpOpJErEE=16x0IexcmZr|sR?nX7YpC{>rVLY z44Hxwu~;P>d^d2{B7o8&2!oWUScP<-PqD-!ikltA37&#*(C(C8b{V-$A(tftLr$<2 zmeGw7cM{yAiZzLa02+xn6|%9@o-?D+d^2I;hk`AH3pZ70kS0aMtE*W0HLu_IFdcutp!D9ETSYNx5D^($D&qn}bae2vBGQ)P~@=~xqB(LK|Q8C48AHzMsB91JkN zRzU*Mq|b)rMpaDRtJS;*`Rz{i&<{XSjt0{xT*C6pi{eDIoH#MWbhTL0*dj5qaFGmB z%sd~SL^Bv=&*);xpG%g&UNH3#5Ymg;d6`n-`3~jSy7eaEJaU%T-o&9Cq6plyaF)os zl2y{EBDqKor{{Zhc=F)FC&O+ZxgxG6-8H_`7Dg)_^9wu&NUTWfMKdV1q?4= z_T%N$SeU1$?oRbkzXcbrW*DvU+F6PuY@jJqA4COUF9@+4J6*vSbm1Vz_KG}|Fp!SD zgkELsCD(XQS|r>l{J+U#a!6P0R1e!6{gJ|cxlvpdDP#z4ZyHYpr5-IqasgI?-`skj zh^XAr#+^^DlenO`Oul>j79!wsQVt4BB?Q0GQLyv&-P>P`vUe2he0cNAk3SpP8tU*G zs{FQgBD_k9dHEMh-s`m;m6G@SlejeAASUi&>Cew`r=F3t5hM{^><_zpjMEe30kDnCr@T=tSNYU@=c$AlM05dLQN5I2f0` zqmsh+OMAhu@(rodx@P#fd{FiIr^*&n`edi{n^H0F-(Z;O+YvCeTg|(b$@s4Q2Fzsq zs`TlIBn?~b5H60y1vCNzKQ9V431rrAWXDFO%(Y1jmrkHUE z#1c-~_MSY6>2&HuQ&5?NR(-0M9FQv)3a55~ie`=qWs zc|XVsFO1fo-~RH;hrc;me|-1zn|J@q(Ms=lbM^O!=gn2%Cf^#JpRbCe^UY6he|i1n z`+WHE^}AoRxA3;Tg*MAL%cJ|5@ zY0k5N%5PiP!tTjQ0)?4VWNoR3m>c?fhAa z_xN=eBRhFE-i_TPmB&2w#KNb0&~)INg(5SIEENK!;=L)WI@-Jy)xhm)zas6-q9}}n zi+H#0t(WBNw!E3znDG8W?i}St5$w*!^O;4)Hc-mUSb`cO-tFP`I?XvC8(2nzpA|_rDa)s^~enm z{Ixf`z0w=mtTj{BoTsvr6#5Thog7(uBClS-BE2iEg5pFOE zDfJs{*zkPpS0XXHk|{E06Uy8N74K{kF7LqOg9CNp3rK0@jH;NCR*(Fl(S8C-5GVn! zlVnMzCD=rVym4MC&YzpX=XeCjIg8iy+3-wep7l8i0OuTKrIRl=zBnSnJOF0o{n&M) z$u*9N@F|eb!XZAIcK6}ZKnh1xYZ1@U2014R*(m{?QENx;+`V1O96J%d*gRfciO8iye3mnFFDX}7JaG_O z%>632<&&>;SWzr5x$ofcLaVDd5rc^@l8H|aok&-I9!67fiLF+P(+=}CrHg$@2d=Tb z$c3|WY|xeHnUpCQihb&bY}{vvguKt4C7D+>OHeTtjN5D8+n z^btl_+`vP8>j2D*SzwcF@7lXnadf0vDt;UteH_C+`RLP_>=yrPS6)_?yQ}-B2w=A( z0*|)7+ogEl5aA`04b#APZ(e`+@q0LTGE_OLKrSYB3=*{(!XAw->@guq3{EoG$^n1H za&T0^WjheoX7?HDeD=U-$1O){H}Fid?_flzi|LS zFtqD?wf+;=2Yh`w60l2tz{|n#CXNsDYNC6&xG3hC#N|0_>Ntk>fLUH|nm0P!F-Vw5 zT=b?Lot!>3{vIZwc@d~R0y~c{Oofd9Rw4O5V%v6QOwQO=<)Q54HnoUKTbQ{fRr*e_mmmSjg z7W5Ux=;Nm&Y-kQtw=vS97U9&JdHT*T+QFJ53o^ErL``{MWTkDbruR@zocUo^tHR&| zm-p~c#xz}ci{0nrJ$mY{9q&O0mJWx~qV(;$<937Y-}`nI^Se2^7queUNWNOEb}6>T z#ed;ld;p_RQZ9?fF1s9yk?cvhL9o{9o7Wk}=t7KljXhg@S1SmrNvgJ~8sC1{-~Foj zuPDR?8{>NjpW_y*F}h$5(VmWt9n9Y1@>1AUyDCPzmoI&RJ1 z1|fh@Wm+uow_ItzeXFP}Rsgd@Zn2r{y?pid9)CUdi6|DZpSyqm@!R926BO=!nY;Jp zwrtOQ$5V{`V$@>OVAS&%^`?NpCS z-~DY$fBPd88sX45*!xBUln&|jJ!GlKJ@$v~OCBZ@f<_lV*fFybhnZ@Urr<|f%cyR) z7vqKZedN)`x1POIJ^JBWqj(khrAHh3heuZD{}&Da12_CE43i+#Cp(CfMi3~CE7^XQ z2>zn3;s#yM`0wmi)rK5Q6k(PP1u<*N^+^`I^KqHfs6 z-+T*M8U(jP-mzUf2ZqE|(gVXje;bN;GljN70=&`^K%k5>b zlZvO%pU8M^M4Yfe8hi8}aK@LHhH`n)IXYrvzY!}*^D8Ck*i&^7qxSu2!@fPee=C2{Uj}wO zCgf22&8%8?s)zp;&=qKBp<~vANwJ+o>7iVB*kfgqJwyK1ao&09^-lGW{m;pXZ;#?| zWvH<$$e===AjsGiSEDztB?*AB3$-)EIOD4Fhq^=sc2!kU0t=uuH&^XURs^{N&P3n@ zZ2It&C2oF-KPVrO2NWjyZ%ql|Vnago^G~nezj;!5^vj3$Z{D&t?ENo4{ZdqhDc2_F z*QeBC!O>1~GLme#*M~1(uSdk9H+vGxu0h-lBF=ng9vfxnARCNFKfHcYQHL7l^>iQJ zyng$%mB26W-oE~^sHdX_E;KGTruO2=+pXkxUR~s8&A{r{;hn`*cJT!DSkz z3fn{Rb=tLhzbo42pvFOHdS<^xaal~u68+ja;T!`60Y`*2==Q{*c4~>i8A3S?`d@@~ z-b4k5ofd9FXbc&|qF?Lv%>I@k!ybdg8|AxO-Wfbe-j>R08Y$mvPOcnef}&3xRmG>H zsxo%3W_Ipj1Y>r3da4r3F_D=ROf3S^C*FQhO(k2#E=30X8}(FM>GF2#MOyVrSLknG)_820^fX)x^3IDj9k!yO*J;ElUHNEegEN??=dP)R#D=+e}@4qEf9wpJomO9 zL(C9n`%;w`WoWfIE{U-#c_O~z)hl(ytL%zbuU`F)ex=W}m4`?5>58+GQBg!1t z%Dr2DH~f*WzkU6BA3+#Cek$ERh>QQE;XYUF;X?sZ-am+;hW`9u7zih@X)>LkB|m;j zZQF}laq<-&?H|}v`}X*!u>o)m(7vs|-nUmLCnpV9sUD_RlCk?}|KJeUW!H$8$`k4B z1HJT~QPrHQN))JMGhoZ;;&8lsXrv}w#T_+S6hC3>m4DMi+9Ic1BJ*i^C-;0r+l`1o z_YVibU$%+V}Q->MHR7zoYw?85^T%?{rx^FMRj*{eBhK?^ikG#iNFD@@iab>{oTxXiYNL zoYez4>b*ow9_$A=25c?!U~lU@kO?^sw!1WJui)raX)N&bVl%W5Och`~5>BU2?jk7i zPr(eGVsh2?Pbe&xcsk6($aKfNZ=unkxd!TDuh@{B(A7Tw-ok8SA7(GXG=2utUv>tB z^}^)ZjivLSh@FM|%!#EnGF@mW3&o<{%SeX)`Qb<^-Qhn|6?XNImFzFYxH8@dUqS}) z_Ih`dHB|8=4iDI~Cq$+vy%Sm_2%%nQTX^{`CSSaSK0K|gUwiY-ND@E&^7jHs{JOCL zNH7Tu{f#hKDgqXwmT&-eEqoN2w;=x#xqsl%28V0-;j4QW&g?7Y3U~QJ z>d0_p$%Rm#cF?xZuAUk15R+yKzkDtaugJcjKga20_b&tx2t;u^3NGp>Q6&A}0 z?gS42AxDbfG&}L#;wtnh0$1p}q8Eh=crz;tkpOl$(&~KsCiXy%%Y)@AzTS}zK}e|K zOcLS5f}IcDT=T|)8jnnD!oa^%9xr+X81ikvr_O9%XQu+SDF!Is6A8DifMM|a`Jhl1I9+QPw!hUBG z^8BN(h=tyzE&h(qLSFo~B@S0v_tllW0~Br)Ovsz;rw`Y8(dz%M)Bmj=pM~Pt!nSFZ z{ohuiQkJi#vzRH@v?=9GhZ*mL@-mpC?H~Nf*--nm+MHNQ;u5(Zy!r9(PK?+{$q3^D z!8%W@;jyUK`u*A$Db9c(d)OCdqdDl+I%Z3lCnt!D z3K0dzU~UbY4Fnve$lZvLE>8N0XG*`2RGcWMnK|h;qE=V4m1G5bnp*V58?3*$UuN1Ug4!-od z2$kI%h<{piD=oqrJ-Q&oP`1A0jQjT^Rw7>I^QS{;rh`>`g^!zG3=1JkBB2ss*-!}^R`QE3vAmw( zR|ra>xt44R)3^1u%7(Li@UYFace8G^f6%5{w&H!djvMuRv|0}jTaq1I?2Ims#=A$O zkI%+c6{~7&2gbqUkvO%GX7~1sgI#P9(pOD6--{7xB3~34!Lndo^2QxG86Mq>RrcWi zXq>&H7Ppp8JUkTlG6&VszP+~X@t%E9tvnSyw7AoRH}{TFJ~$L(J%-vyhQRy*5jl>k zVjmlxJ$o+~Ewj2?`R~O`L`uug*lhY-oVUZjHE)O8=WQ+$v-i9AzkK+fn77Db=J>@C z|5%vHEpaI+_*v#suK6l_!*~3lJaH0t9!7T?Y%#d6RT8?K8}OR))?SBeL*9S@fHzLW zF(RKd2YpI^w{Q~&aSU@$UsDjsEK(!*0&&D)5Xh8o`zd2HV&oQqkG3yTZeUPAJ`vDy z^zoCB77F{>tDj@I1^j`47Pnm9ttC%?< zi0o@>pAg#s>27g#m$=efUxwy&;&>i~tEHIul%H=By0BoM$n26@G2HjFIKIW$y>ygK zgzLdvQ&QHc3s(VzcbmHKkf*qnaQF{{WXp5hsh99W0I{(Fc4S&O0CHYX-VX2-NCO3P zNB}={Qs$LT3HM~EmehXZ(F^LXt>9sx@ZETDa7 zs46I20Af%DiHuGRm*L1mm|}PnAeroqI>3HFdX9@AlrI(_ZKM;#^le~5k!zA5OvvVd zeA&0eCs-w7>8t~>bfb_Q5#={bajFz$^vlXYFoU$LW#npb7R!LMX-2M3>IR|LT?Jis zqZ^qUTx(UCu$mH82lJKhL_8q0kN|u@gTDskGa(}z&_Q*v9HwbclpQzf$P; zoCtL_$q7(ba`}2}U3+Rx)vwF1s;fzx9OQ}yo@NO$R_>4vd+ztGas@uJ*=NB{U0@nsz^%Ewwd z8cT*F$1=-PdrpxPbM5Z!L_ zUrOII|9R;Z(U09|AKr5Nu}hsG_pu&%ZS7NM_v@wq_ChbZ^jJwO&cOiO_H?|JCe7#T za_?|hDT9c&nNnE@F#43jspKv9eOl=JqO~?(O8WRMR~On2W~q2ZZ+WvnTe0VT<>DrN z9!`ANccxQ#?3W7SD{p!8UO&ft?dbKp{a?oRv?@k#-oh5^b@}asVILUx?;bWz^T`*i zF$s$B;;OjT^QL8AQ@M0BtPfnPTSC}UwAJgMcZ-4yp zZ%d6H|8^`&E=nbCp0u~wOqlT>+K>E4*miYv@gGE9eEVShCuNwURp92V+@k9DZewIg zd5ekf2#mEOB_Jv?nGJKiU4yJ5^k{!s77S@A4*ndm+OSrSlph-m4Ig(6%hh3PM$ZfT zg}s*Z?zWIy~Alf&!srh&e@6p+cN3GysJTGO7q~PZ`n?(8mzeo3yx& z2GUF%%KQ%kW_HHb6e7<43|eiOGX? zAQ2zli#Kn7HUuUS`XHC7OZ94}didsppquz2g3DPz9c1dx1jSqCT^fCS_?BOi_6w7Grmn8z@62{z`G(k4nfrDmzZY!!HP zJ>@@kP*Av4Kx05YUG?vRV~jTa>dUU);?j_-0LODDcV&=48rl8;Fm zS%t)e{+-MM=EQ7@mgXi?iO3L9lx=y4ML=I;ky_*|5UF#P@(FIDr4@@+PO%kaT!J>z zBy*zdV!SNtVy09^O%q?b?sMFKh#tEyiuNR(9OF%`u8BN=+r>i$XWe-a3RZtsId z_{W7f`hk@%@bj(8mA>-0;$~dQMd=)IWTH#TqW)xdGR&Dd^Xtf2Z#Q&R8j@0}^rV%w zwDR3%F8fMb9oA5 zqrU-ls1Y03j>kdhcvy`3qj}02fscT_IPY; zwcIGtv-eqglH0cI*cBy1LXj1c(e1u?EHFqKSd0oRZ8J)vGY@6?$bv+sqUhx4Qc^;} zJ=*9$%?MC)=6L}Mn)jrm%li*+-@p0$0qH0(-d1km%89*+o&z&yrTl~Fn{E3Fj>F!T z*zkR`4O{-LsWD&ut&EsO{r}h?VO)t}nFzDuJ#Ij-u?ws<8Y+i&tgg1=U-f(=@|9jA)MkiG1~x z!oJ&K^BOG=y~Pi+&XDH2ZsA^Q&=+-N&K30`l|G~*hkOmPOjC~er&7q{6;C?inPr{| zR2#*h5R`8X`Ua(yKczyNZP94<&HA7YFQhC9yz*!=rArg1a_@X@_PZTn_R(mZ58C_; zBOyxJ&UtPrLpvD`r|jxY@{-C@s}Jx;?|fr=ONG43Z4=f?oGIO6_o_3q-z2y& zwM^tTKj!SX$YVY*vqa{cySxSCrnV{CzoR3xyAAvyuXKB84P+e%Mn3O;6UoZI9HZUZ zU%10i+UM*|JGFkF6V`XkbCrpl{?3TlRfQsB=cLI? zS(>~Y3A&MI9L?A35l-=x3pXH(4y zT7vK)B^f8zxPBWSqmNJ1A9e%}FV5vnO~P+T4s>U=M)%y}gxw9nqYFu-k*WL4Y_){d z!n{IRxa-0i5ZvtvnNZ#u^oR8UGM}SoT3L1p5ttazy%goyBo`y zMU)#FetU!d7aDyu0Pxd25ku8&ht%WJtk{EQOUS7}ro3*N=g&B!JJMN;a||t+$C@)( zH%uhArc~DSL#=Fa25bJMhDMHOVI$`GbDpK1)2DwfCxPcE_j&V#@_^Vcgneafcz=|C zJw%3CcoRP53B}P}3%*eAKm7bnU#Q1yzHeMVoOsFIR!MXk*XzM3?*vEN{N0r090_}E zn`FH|sBoEM^7h}=nK=#}b@1p}k%gXt%uU7Y++6?EO1#xQ3M;2H2^$w&pfaH#CkX$W z35zNt#h{OnEqH&Nr6xMC57Gd9^O2j3g-^c-zV3>UgNtv;COopohol5H4phS`L7I~N z2g(s}n*$Y`k@v?&t|?iXvprK(aKJ$N#=(Jva+M1XH0Bk!=r{q&Z8q_(;V~S+m93Wl^3AjZWmK> zr~uwh!Q?ZY8G^Jg7X+5-OHn)*E_9^FA{^(!>2JI9$sI)67xTM_U*7!u_Wk!r6y3=4 z!}vuR3=Fh|sRR`So9~`S6Cce>41%T8}OC zE~)c)KIEXjM3jbbGWFnL#A-RD1cD`=$_m6Ld>HYmS6FJ&H_v${ajp)$H&qrtmvFlx zfU4pnA-3?nD-MJ#BmA-nApLS5@x!?{A-OMS>z+iR(p5_5!3CuQg$9#eA@zw0rXq0X z)S1W-5ZyYU;0$bV7ohu7(i$=w#F(MO8x~ZSV{l1}JGNA;pTH+A9NXzA3h5`4X9BJyJ5V3?MUxe4h&xC(5 zQUIhqGos-vbCf$ig+7K@HgchJ^If_@Wm;loFSS%eFBid5kbluW5_p5i&OU2_)pJO~ zj!#4YJulzP80t7Ipwy#O=0c4m9QkW+m^g;P{Ixv3$&xuy3a1sqi@%n~H-g7s;>_oe zV`B`a;^x)-8vU2UK6?w&OL~+m3m9@>l0~FYuc_WLi9Gy);1Pz#PVjZ{ixx~&(kSRO zmBJf|q@nWU7e*xks5tVY zWwT7gz81IW+_#)VGna##SDLkR7hn1`#YkilF0K?jn@Py9ubx$Zt7?k)~1!KwJ5Rq!_#a8E&m%_#QXO@eGe0HJ=H>uRrdE0bFc*JK7X?~ua6ytw^!p5H^Ai> zwsWJ`Z&tT|t^Mo$@m^_5AS-2{vrWHSvaP*pNihlX&h)}e)V&cyVp~pzLMAYDKsmkU z)2{RBR}OKy;*}FmXpNkUSETECHU0mnd(-W14hRHESQwZ9C`wi^*LjTYwYndrSHH`7fqsQv-`)`zNJ`E;)#t~x#Xv+L z5c9C7*joh7t?=Z&m-yEduRNE`ui59lX&)zz+$WuOa$lbdmn6Nt5A#=-x&#WSkI1j` zA?tGF##1~=CH_841n)y?Ol7r*Q@Ovu+S&hY>5EM6v%dU&r5^uM2gxoRKagKa;^-=q zl(&ifbm_WspX8t&K1TOpl3|}~#9{_gSu&yQUhRdxQHXZN5FOmSSDPL8o(eojv{RFI2E#3!9qa_@fm`MV9i&VkHEg5 z?fY$k17Pe+27k!xpU{T?&;Vk1LO#4W;9>1=B7)*H_9Hs^lt`is;&?$;%jiG_9LPuI zRK^jT7@%wOsp0{uV-u$`B<9g<4`-k&JXC;uX__BoGn_;&RQYRmfK0>}wq!<`T_i-7oDA`+Bo%ey4Vj_PF_-9CE5uFFgvW{0h9@2 z^j|1b9J5Iv)4-8w;>aWpB|H{k)^<-?os+zYn3L7gXmMk&a(AKG`- zovvQt!f9|SQKB>yd_v|{5{6B_wO{6oKz2WaB*t%*3haAcEGNbOhes+W%LqR*wJ}-A z$;w{{>=v#gT^~c=7<57^TxWF@I7b_KAOj2X8exgjoOr)#7bfxPC z_>r9$PvRDr0Hz{cAjO>HRJxqk)KAC(20Rnlgk6=@3`0ULeKaFKe@7_wOsGdH-8rn( z0IzcAh!yS?jy3jW>H*l)4IDz%A*q7PX5@*rS)0&Vxa@MjU=N0a+C=aHEkBno4YV6g z@uT{jPu+9&0r_*(L-jSOyMSIVJYsSZzV3mO$|Z-(i^Byuen5#)01mJu#IsBgSg?aQ zNd|S?#S}lP!a}|$PXr-3PI8q>&!0|b?83yZKb^+YDLof7d&sv`4^F_AYv3aU z10GJGY{qy#G9>*?cq`RDDZMY!`vRMyULZXhTrVNJqtZ*Ir%d~JDS}jjaFW1>q^~=V z1-l7{LUz*`JtHaT8lV(G4k-vS`F}dv8$hm<3!4hX#&E_8K@xOB!Eig%Z=)OVv?kS z$hnhvG>hkQE`kL)Q+Ck;cxLS4b9gd#of+Mbk8@A0I2p&sUPaL;x%4i=xRaB}z)=mAn#S z;RG2yzp%@1grE?wm4J5QpxB867_HJfaX>q9pm*ZHfdwo++GXGQI-t!u(3^EI zBR_vPLl`3$@W=;x=!3Zo@?j0Mxh@%?E!>#E#}B^Hxgtl%AcSW@j>|5MT7VT3@NOM| z`bFDya4rMdu7hZbAJyo5iXV9+8DNYl!WV$?!_tB(4mR_A2E|81OB~0f{=iy7mRTD?G>> z;+xpRPe_peu7wQ0PVqxK!>=;@st&SfawTpVXJM@6TvD$`G)PfCNKrh;Pn%ieRaRPL z(Ne38ik1<6=%bi2iStZ=2|$q0!cuQ$8Iba z_*>w&BxfNP_(K$7P=f9d!*eb3VO_9UX!${sv1=e&Q;%H{(32c=(;|t(MK;w>%mnr( z`Y9HHgvn{uDT~a(Zzk!hj91(u`+^_#twk2#=TK~fA9{L`o#V$|Br58Pk}@?37qB~* zDf|vC1{%2{Q*?{lDSlMvTe-N+aPa-+$ln0%{U!;Ffa9s&%BuL+&>d~(Q( zUkryriL+9VR6jE(Tc(Oq$_Ob!^z*+0StXRz;cGHE`BWeuYEI%SBlYA?)C2IlOmMko zIk_drV>hP9lwCA5S>k2~lWebLa_xs?WH1GmOH@>t*K;Co65q(wk!g-kq|P;d0=o1j z4t_{Inc_zSmQE0+QA#Hvei~;;ClP)asdRFVAA1-0=|M{;34YwlbRtu=(ee#tp`Y6D zA_Y|>Nmff32ZSv^k&$F@4ke@_n~}q~Qz|lc2zN@SGNl=sVzWSUl-MMb6?_#rx_(0}o%K9yqZB_Ak{V z@>H6YdL$$+ztF}O7x*?G!$jc6Lzp@E%~I zb!`T^Oy+J0%BeKEt1r01L_R$CaHcIsEL4d|?+r zBs>ATfP|LOT&gi$Mu6Xd>663I3C5X+dAZOwHm^l8AqQi5O<@87t}$ic_*nda0B9;) z`=Qh@Ne+^fAd+ieUi&GrR{SM?gp^#<0>91|_;n=kTgmHGUi0#}Udn5(+sctEEUwi& zCjdq+Iibh*)8H=1iBmlAqcdR@$rX*l>Rhg96jlql%DaB`n_T_o;D_wxD)BQRSE*d3 z)C;R?xzfA*-{p-XZ;!!sYO~yW&<(uH@v(l@qYtn7Rhq*_9%gQMRd^ zr0ltplMF<&x$k)bB(o_N7>IhyDIJwyCJ(@y6teao?O}EfPGU}msGuGkf~L`Kq;k2C2mV*GTCk(?}E zqZgP?#ld8ze7`My_X=bM4q`LTeav#@px%bu6tuRKGx%*PU6A6^ES4@WRCno0cNs`` znWS;TZC3%hv*oVlOrCak=~4rRKtNrqU4rHN#xL+B9hc1(-bA? z`3qc$Ro7xcPVjD}a3t1o=9DqQX*r~7nU}WtZfVDHX(XbH;_{|l~WLO zaQEBu<t$KqS&EbZ*E`(o|eSRSdjX>kCJ}&=Z|Q7>emaq6_E--!zjmH<2?>&a{NpY#Peh zG?KGvDreJ`oXrzCW7?ML7kH7;EDPi;%b?zir!RcdILh=BV7l_IaIDXk{#-a-62~F@ zx@xnfzsPR!Aeah_3ifAl9Av&Cn_u$}sd~7%pTO5=T|g6w#hk zGP+DNCC8jYYz<)yPBOVu^@!bN%3gwt$rq{zjSzWN5(b6Ho2du&!9s!_8>XQQzy5~b z(uuNVC}BD*(Hk5Srx*&0mMa;1;#$VjOvcltjKj#MQx;??Ph9(Mp$|{R^CQi%@r6Ue zZsaI_#==Q)@fdCv&t{;;kQg53Ir(S~6Ew0w=?m=L3vq)Vl1wAHn9BvW5D3uuauLc! zIB`?Bc!{%4leN@|PtdbisZB$L6w#4Zfocu;^CN*nR49D3r;$&W4SzVH*(x#}ERyM+ zjmcmVf6GwU;d(9?*DLv(kR;S2QWwKk(%_E8l}jyv><<--LV!F(fHRST2sO)n0Jf7r zCV?xHSc24)Eo8C;JqR2(a@Fpws6y1u=_Hn^D^qs@3JZQQ=mPX0l$pJZnUfc|rSdH@ znYtjykUWLUEl!0CiHuYPO4I`I1p8=o6^&MRP&x$_#+@=9#tl8v=Rtvm4}u1K)J^PV z`Wtyclu`5>Tu4^FTm8|E{>q#Y&xF(=?^Ps!7<%-aE(4-% z!_U-c^2JJ>D-JEJ@O1v0Onr$hS9fIYrEc>3fapg_M!Prp)MO<;V4XAsLCKS8 zJVlr(A~7g7E>maNb)5wCuEBwxCm%>-yFizx^>Ow3^_B6*p_m@Yulk!g}h zbO#7sDbZk94M3790FO6$<;5#>`%RijnushGKn)2AxBYn|3h)5PGjS6AB#;EO0c!6elvx_cEKOvV z=U*-W1fA>_KZTFOJ0((2c1!R0jLEWFHAS=RmL;B6GP{vWS1uJrh5%DVW^v;sG-Z&V zj+A94uP5?)lFDnWM}_&&IA62tixs``#Y(SrO`K5DtAuYdwFP*AypBOUxsodf+At<^ z<;s;C$`yoJ{lxPb8(mH3ay4Cnw&KoL2?#E}T=_GWZ-rJ5?Fq@Jpl)~xRv`}t5FTB# zm5;;`6C_flMF@|nf1`G74)BN<2<*y_!i_+lM0>8~%3sM+5tDWx@lGB^iXcCe7gkVB3))H)J3gGN5N?UKf{>=JL@^Om_`xKVC?<{- zQC9fjySazK2!!aPBoF5_7WS)6ivvVwVJ}l!N`BBoH!DA4gJ20|XiWqdq}ONe+BYot4hMMg@ISu?W2xZzLG7$DM7JiQ`^r&I~cjpCU{ zjzS=#SRr=sx$J<4HzMGohnkTQ4{%sG`&Ow*8%u_!L#U{UOcl`~^-4Z;4`HE>T?IE%2ucexP|}^dyRbphR)-Rf3sAj>1wj zb0>;JR4ha?FrCR2ssSZrKnDaTNjQd(0qr4lKm`aPh+^=SW6fEP32Kkx5||#v40cE0 zr$q4vcuWx`kQiYCS)&**D)FxwEY0AKgFa=U2@o)L!t;Ey#g?!IHe*=pr8s6FbIDR_|c^u1>va+JfVusVLJ{nbf^40 zVNx_I4aw0koAT#uYk206mkKcKg#b03oRpGg4!b$vg%Gz&gH!Ng zUQp5!AVh&20HP3sKv4|nhg^@JB=W0)9`aJta#)AGsv9yYY?ktMCkAogV;}^+jB3T- z@k_F0TS`(uB@`gIB#JX^I@jpC5-a!OC9KPzwr>{>} z?Z|Z|`UxVG_VI~JLH;x;V)8>+1=J)|Av%VYpW9Oo;2=hL#V(}4u2t*ER~*I&<{pw7 zyH@8h`EVd>kKj0t;16&p=S^9J)Z+<)@M3pZN z=sciLXo}#Zd`82!bomkRqjXH?VWmLrnht7u<|j2mR1%%l^yI^uyow4KU6Y*MwV)EY z7b+(oNf}y7sB`(h-jkxuruMp$V;_;+UsEx=>H*h4M*{;DUxG_zE|4 z*j1-J`DfhFkg6I|Vx0K=5V~EZGd~Xrl`2tjbnNFoI`?&G&R1x!qb0j^^!w2@o&9(g zhrb_P^XU%{)p6te=a>=zKoJB1z;{g%ISfF4HSAR=fFktv$D39G2$TaZk7*LHOWl>w z@=EyICA$H)DW$2Ly6mbz4iiv_K2uNud|Y4&F3=$Y3@DI81{Bhu0S8v9hGpPD1sOWf z0X5xHYHS*^t04p(D7ra^5y;O)P`{?aV1`aaR0RO~S4^Mfh$8*Sm{oLjpc2IuZNf{SB<5i{M2l6s>K;De2 zsXkW;sHs^wT>(aLh~Nl#X%D=n9xj0ress+z9RU+~Qi?J-f#7t`59;+Cq9A_>q{zbz zQ&5l=9YGa%CcHdyxPtuZAkHBR?Jo{rXtlh2@e`akGP?x5>hi@~nO#Cy>C*M!2$@~J zgaZ+vOE*L?h7aGqBanqHy#Ka=wkK{Wd66@qZC(DI*Am!Hu?KmP@BbNK!WAKLaaIsX&R&xk|Ie@4r% z&f$E3lfXfFDMByPy3n_>sA(BAI=@Nvu%a6$UBRcj1i9tfUyqLnlixi^( zqTD4Uur4zn4l-CGxFlaDv&(CI3%caxHIiK8#jmK>P{sVsDq zHn-J~lZv870~h?-q`k=AgW8#){rhsWIq9amKmsy3c2r zR{xvV`TTIpM)8xQ?&Cjxn{Qa>_1j`ajpO2ObwyF*aQ{F5dogg%rt)><$=5fmQ}-oE@98qkBQ97n z^K2?VikTlrszMiZ6=YRa4|M?&P7mcj; z-yN-?d`5-LgZ#xyTmmiS2r_QP=uV|(Ueg#Jw#Fv3Wp#O~ylhECt6Nt$+9qwniNqpxfX|N4H+w#>)$ z@|VHz?Cr%^4&QuyHKtp%)$6;TaDDd;S*JRWp+;f0>wf$T&-*KB$Vuc2wxIHUDqj#1 z_#*OPvYqmq{Wb_f{1nTnI+vN!F-eDV*Vz){Oni59KRbP%m*Xzl!B6R^M7bq{*QG!;!2Bsrl(@p=^5MF$vE`Gg<6Zt0bA={f<3N*Vw<42o z{fT_*UkUjZBGPYhul=2n?_v)>=#P1~Oi?YBpM0-$Z=3QR>^A&FV~L(NWnN=>?j#B5 z6*GA*R(!?eJTB!z=z_`#ekh+L8*}pgRKAbodu>MUJux*%Z3ogMnCZA>K9KL1To+(9 zX*sXFhN=7jRVr-I{DZ^y`#&g+;UBannh&`qnh&fx{G;Qif=BG5aJ=`x6+Q|~gpUGZ z(RvMh6r`H!BVTqv8J(9YvC7CEdDoK>5nq` zD`woU$naMZ==~KkHAwKQpUu&`Xn1N4t*{B>e=qs0#J_KmnZv5Im-SRDfUiH_2#sq z!7bN%cR2cfbkRKAvS<1u#cta(tsVjF2|!ozpy(5iY?u-abs8NO zW}3_ai2{rc{U?t|DHkd%!Z^950hr-bgHQ(OKvTSg!7bMp@d9FP32{#zzFEP zU~^K82blv2d(y04Km>r+>1`9@lFMPeJ*=vS^dC|aN0Y;GW$PY}R(s!l|3hQ{pgC%_ z4|^x}>EOrF=<~nJ-^aklwzt6%Ce`I&T-gLnJ1-)YdI(Blg^&FU8V*|3}D@G~1aZyyXs-I9UHs?uS*DedO>6+L)uvhyXv z#oS5#v|PpgyCduI+H5zGV_~CX5(i!jcZq$s(xQF*Lux1&>fU3SV@RLZt-8u!ytWXr zk&g*w*T$gNJ{Z7f?#^;;aVFJ||LC{Xj@jRD%Kd$^?_td=W>{KxkF51!xZ4KHG6{Oa z!?TN@&TD`lo3`z5UQZj z&0`o;VPAP&4-YRd$rM%d^77C+9Npa=uaRhdcf6+X=#GM;_2Jk`Z^KE9T7CYGL`sF5 z!F=)I?{~-6VaxFz%IY?%XZ)l zjw0m&dmSE!8CEgvchO%#5(QiG5mZmmhkP3OepGxJtG8+(SfqfW6~aG-m6f$ z{eTMT4f4_?l`kggi)1EWxb8A>+*|n*o${|@CYNYB$=OuCb0U91#^E)Y;v7&9oVQ?i zop|K1#}4)VENvck8vCV>-OZQ3KeL{8d_ zEtwx$TXjC-cUpEOec8J#y52{YtKc)rPL4hD*ldG6YLjh-&Ttab=0}7=FF&uxrg|Qf zje+ej1@>jINq#>ZwPj!0FcI+CmZQ%-8|wB>P9)6D)9O5xy;H1DG6{Cll0W|Vqr{&a z9sVfoJzLr~e$tk(CMHLp-W!No#nxUS(*di!MW?$}=#!{P8{9}ET z3J?ikLAuJF6j@<+}_>#``slyXx5o?ty>jjz$$jKZ1W@= zZtdr}S(V%@i}lb~yu*ym?L_W!QZ?{Ru@9Z$l%RTo=Q-ij?jAquJp0C}y{Cf+lwOfl z$TC|Z8#fyFqB2?8LQ&m|-GaIht<5z+gUH^EOIV3rw(803hQs?U{#2F*UhEU_ z3I3k4l)2uG&J2U1;*$&b_81EKN#}U<2~q^R80^GZ7fMaMW~#el z!C|o1Un`?BEX+`0wwJi<_KPZ8iqIIDy$isQx9U zwBkQAPg;pm;9h){BhAccu%OAn$S1Ufnb2TAF9q?Sf0>Zf=`X5hwz`Db#yR&H5?Kya zTd|;-`wTf#js-=*QbO*Ra_K|{tKvb7I&jvqb$WA+QJWE+M1Z7Gs(*e|SeqFqGgkrX~vL=X5 zVMQsLnFH`(l*$AsgW7yc-x>qE*SpW2w4Q?ir_@f{%HuZM(SwK?v!|evoo#E>9B941 zmf|-lXqS>RA!nKNJ(99z>mapwS~3v@yAuNHXX$F400WO~=}_kO_o}3C*Ld4#-bOV^ z&Au{n0_9syDq73Lm$asxj$}yl=T@(@EK(G= zbh;>R<%(kYy0j#nSFjK}xs`Nnf#!}*qQQ`diIKA|$W(2M2v!vhP4<4@uIHedYn%U?+PI zdh-x`s#T`0iW{X(b32cFW*G?T>pa(dkyi4}WB*jnWKL0&S(OI9dna(QIq(K2z1U@y zuc}ensEQxWT7GG|lA5WTw8y;U7g-$oE}h3tbgQ4gd_1Ei@#N7@N`0MzlgNf3>$Z0? z@d?@kJm(fqO*X^yCy_#rXmaVXYb-Do2v&!`~&(7 z$>mpbaieN-_DY_;`uO_I#h_wuu23)z$u9!4&R^0a0*vKf3oROU{_fNJpI@I}3~(;ch zpW5RlB$5xXcN`ADsk*1yJ1wB*ZTWAm;h(IQq9Bxp$3FaQ*Jb_t!~aS?P^83af6A!! zpK4rAaM>LU{BW| zZZr%!IBeUF+lXv5VqJq_XWVEMZ;Mz;IH;c-ZoSy{4t!Oq(@vw|4|S;39b-TVc(?7y z*qKXrY&IHxdl4@TvsXVntrnO2N?EEHDgE|hna+(nRYvdr60qq+!uu%!jMVF_&EB3- z)Y+7>LM7YN{Ul}mjzf8wV(2ux=(6$$wrz8~>fQQXDXRQwi$4t!9G`m*UG%W{p+L?80 zch;?P)|_*zJ2sokQr<1(Z8@!$X&rtZrOodT+W@tVr8&S-wU<45L}FFT+MjSh8|8wm zr3HI-*3w+(L)K_)uj}GnQp|jF4Jz$Cj<3?T<9SA%tOvFT4Di2-x>ep^6d*}W%XdR$ zC))HuYCbFlp+4Wh$)7y#96$dv#92bn?Ze?gV~mq#I2zxrEnuyYeYj@~dMCrtYSjAS zyZ+&z_hZ9ues8t+em~eZOmG;Qr&8G?f6@Bq$ZL%c_J{{p`Jhe7nVpf?L``f)Z59e? zl5}_Ne;YUJ%`A^I2eKS2l0>B>X5I4bLzeeWM>m~LYjo3jHoEDE*65}?-K&2G$v|t= z>YWaL9FE5Seka$Xo2S#(=;qm@(ap0bt1gRa!>3DcI-QP|)9F-@I~~j6pw}9o ze0clf?EI9NV6{;;X8zmW@VnmFRPSU@Co&HXRR!BhC%$p0-W|@0!Pke_;qIDSGzNdB zs=Cy*X*u?v5t!E>784{kgq7(E)-v13q^#G?qCMf^%&OPTW<9K1AI0qT&B8b|hP_eC z8s3dZDM?zSCnpe^KRu-`!|g^)q!WTCPSKZk-k0A?OF|HAO%sXgHcAi7!FQ&)qc2sq zyE?O$tj%&tRoKp?WaA!-s{lf7oiMQP*rsuTdld~FwR-oqZYWR3W-&YHUf^I9$x&je zB%=$y(a3@*M=H=X5B>{{Gc2I1Cns0p_Vko7 z>mD$Ge`#PSvt0>!XYgT1x9K$NW_`P@TSPu5gN}jv?z^AHXKs}FL%X>p(Wf%Vg+uFn zp%Qpokwt7Aj=Z}^>({JaPqR;BsfQMEy^(i!v}U(@wL(o^i)DBTEIch`s$fzATk@-OF*A_AJO47qw713?A zT5{Oqy}D(|(*dK>5ZSK?QQd}BK`ZPu-{SirO_c+C8wTLLKI=Sv^k-Oqw@x%G%Q$Wb zU`x#xz30}|XjCr_5J(uq*y;{B#wxMuZr!K-O|3qF2bW_==CsDRz`aSj(Dce)mE2JI z3Cy$T*tE}%FcdhL@kQ6h!eA$PzQGFFj zOm}pgG?Wf$UUkSeF)O=qK}ip^nNuiyAtR#t8V_?OJpsc^>h{MnguZ?iMR#=7Z4jn9 z%PHGP1httY5y$|v(hDpj=Sp}k>6l~%lw|rjk#Rz~!`w5QcMg37Vc?4IifVFl=HZ%( z>q;g|7FK?kP)tPeYz|E|>Ly5X3q7V}H^F0$K>1FHT!PA3P`sg#>pBLl9_-Xy)HSi| zBXsOu1%d?OV&s`4NJWh%1Wi)M6aAQ`zhRE$$e`!J2vWeshT#zCIl|R6)!Y`r!lU8v zGa%!Gkrp35FiFspC?x5@$&0sVe>p#uqx67A2{%8|16^kh#ny*i~`5gwB&l{U%0EAz8goO5EDRtj)^Z!}6#`@O-4As{-Q z;WrQJ&A16*uwUMEzWSv-r+ks^5VHJ*cyU>v1Gk(G?~d>~zc@GCx7y4I8RXl*ZYM<$ahlh%sML53D8TPJo9wL7RCz+}Mf0H4xTqdX%P zr{=drz2j9gnwZ-(=CU|AZbD8rs$+8=IBt0>;qAZ#D+EV2?LBJUE8bpuFf{JQY2Lf2%-t72u;HzD)OKWk zqq_b7o~n#3tuUiS{I&{*T-_SvT^>iJbT5|}3FcIQi$Y8jIQW^;y~I;7aNNu5*!S{N z1()}jb>l~wDTn@YTwI8hPaetc(KEi!C~*g}9Bq<%Q91#Lw1<4n(#?TffG`IrqKXms zUGu)GRfjJr7ocFLwD1@rEW#T%@=6I=r%4rnFKz@XEj@o2=x7fQ2qwHcvX0ks*s{l` zbP~u>bJXO!JcMrHN&#e!$3M{H@Q2S0d2+gEk4?ya47RTTw0l+`EEbaStOA=~{n@a* zPRH$OoIs$+$bpW`yu;M7Z97wx{YJykUV9@m(4f8ntA6#jz@*2|kGfAlNPx5-0Gldh zU6GtdxKRS>1e9hDT8841l88!VcOb$?a(JN=EuEkz+8+`>4IwW`o;Jr@N>k&nF^ulK z6Df?nDWRb4Zyrc&Ei*sp-4Qch^m52e7$tg0O-nDt)0#5?5z#R+qDfl9$Z|TM?hms^ zVoq&8rKgdZ1LivjvzHYMz5$v_!wDDtGNt8&VuP#_Ia+o)P6uylU|FE#-Zp!r#*$a< zMG|K*(zLUfnV4<5CM?W$O61aKR;z2St$6a~%-fZZXkT9Xo>Y=tZ3e`&u$CdLI$o1# zYp@i(W;3FjX^31~ZV*S+e$1zX<@6ciGa@^Z62sg^?^912nQ7iZ{-VyM)_eZch=z`> z(okiM%p9AllF`r^_cgmFuK7`oW)7n5#LCR9J$KUgt0=EG=;B5)jK{VxvSB>7BGc?^ zYDJ%lrt$h?CF>8tC(>o^Saz0g-X%ky%CsVLZCXiRNs9FJ^jfd2naJL%71-NkNA*Rc zv6nGDTeNAJV-1>p6APE+eqOT>fUcDolvB1z_o0!QQVy+p6hqM19D=GIzl~QSf%GF- zLG)&Axh%nWL7EhLCA0;st{f~cDEC?tA@81L5D;6el2P4{wo>YFyOOe>CAW8E^|D6l zgbZ^{m`<^Y7>7<)8-6yJxHdA3_JP@JH+${o$o&4$Z;Kn@8lp{F5YcFAEvl4p4w0Rg zJQKR_(w}ZWF`$1&hMYe6bjYhU-(;+XV3%fy_#+Y?zL%M9S3c zGy9JsT)Vs>FU`K*i}!5XmC_l;#?l-Q)HYd(l+sW>d#_^&V`)WJYB{Fa+m0tzn`4@E z(TWxH_U_hJZu{*;5Nu36zg>R$3-0Y1dI?)dQT>_{Y%M)rc6aClsP61VmRd!C7%bLT z5huNU00Ki=i3fHem{1>EwOz3_B)4i?A8mi26YsD4zG4?9%gCrtXf3qz1~@@LR|b-{ z675QDh9`=1osRLgvseVTM$*ok(I)2Lg=)!*ATW})ZkK6VyGnI}K#R(yMHNtfKC2un zh8%=l)Mpqso8!J&8WpwS7>>0Ec5`MWZQal1u~Es2p;2?YGN(&tp%H-^QQl?ZaX%_f zHoN4{p{2~Ku&zdFQvpuRdaW3^W~^p@v~h$k!PHL#IJC<)Ongx0m7@}j=u#z?|3W2r z{keA3#s;kJr&@u1r~0}V-5fR?Y7?AzWQRhv# zZUv?l=uvI^Q6!STetP%T-pZz$3G=s0lO@=gTiTo}y>S{1hc}+QD05AR*mk{A2db)C zWEYD*HkNi#!OA$9e`J{Ume>bhXyHi+o8b)Gx&3Giyz%hp3hOX#{Ktrz`M^J>uG)c8 zWSVP`gKN}o-AdI8D{rS&Rf2u>J^G8W}>(-Y3dM6wOM3CXUGE~S=3P2_sz*FB7m~1spyk;;F zL%!5)cMTsE7mjBM(@G6t`BtW5I;J%>d~`D!*1L1S%v)QIcOPh{gjj;09|5R=1Mt~` zhef||)F#X5Ti*jbLemkXS-ub%`Af9Xdr4gCuB3D5vL?b~LAe3IQV#P+|*< z{0ij;T>?QuyX}YrT%O&LM#54I9I>uSJ8;Gze5BbKmc5uV>E5Y@`s(V4M*YFj;T=szbHA?C0k2tS`52aU>BQkn`br}(a=++&u#eo zbGu4ln45!nZ#XZ|;f3AlFHYvVn$6~dAmVAGF>SlfG8MM%HS1Qrxlq^xHGN{whl{Zl z+7m?=vS#+)-lSa+BCTtRU`n-hYfrf6(NWip#@S#7x9`PVVDXjJskRB zy1X49e1B*TJL7(y)K*m1;#!oyTFR8Lv2?bq}<*Zj)5(Fq89)IxPSx$ZoFYU~*| z6)KU*IefB7LiC!tf6utGW8>1gu!J=;O_Rv=)bsD`E1pT#d+lppVJ@j^y|6E6Y+r0v zxc~0de$h8yG;JfVdNqMRHD0tfn|WcsuvApF)|z*a&!o5Z>;BtvH@-M|zeDEmEoWx- z-`a1v7N43;>qXOkTdmEfR?E7v6##2oST9UVwYOzo@cB{dsE&0*9hKLr+E*`a^pSOD z->CdL);rUBl?UH7U+RIf&h3lljjqMC(KtU<)1c8Xl+QkAVC;kax(&M;{j)~H_+Yz6 zW__^EOzWa)pXK=l6#I$4_-Hdt(6hop>4m@J>Z57BYBb<~ZM`zB zPp4g;D_?+{EK|`_OVgrS_0HFQy=`#4tPAUlX-ylAFI?{(Em3cPVXfE2_Omp&Bw;Jk z9bsa~lYJOC#q7wolZev$zMxUo`!7x#y)|Q==y<&q7gcbp=X=JB)z3@gqB1Tj$&YwW zXZuz{U10l`o>I-GRoY;KZ8}R{M5phcM2$wW2hmH^vhO#WW}-HXzA7ToMPzvqExT00 zv@9i_5%td&)B&7LRAg^vd}c;!aafTZaiW~^=K~-k8nx}00StSSfLanW&lg=zfFdwr zljf|uxLz+haTi-4X_jb{Yd+)dh{CK$+_?;WLF%?5lLTez>B5QX7NI`^s_$s-gE4?F z$Azv5LhwtVn-$xNSl)-Qe6{YeIoL#a(T@t>b=s;pD>i$1fO|UL#B!mEvu-)OOjGnl zg&^d#iyE3~)2`R*&1G}nuJ1RE^1I=3yde--Co(Kq zYRIdoC0{$J@h8o+SwBT`)vHa&{;RL+r}ee9C)%4NQvnfUx)2RAp@>A%Xc+!O3=S!` zzcK0xIVcGy=U^P60t*<&HZn#Qti+BAG{6DY4cIxhqjnV!=!*(cQAPxuGJ$NEj4e#(v9nL|JR?Hxf3d{5#gAh!QdPd_!wg;-MEFpYvT6;RkeX}U&#t>Gy#VvBtuS0DuFHCzOWu30KIz;}Zs7AwUG`uzm z-wg5$wuj`^`*#Zee;YfV@aopw?6GC1b|QXTiZpu>`62NG-y}{b1`oY7ijPx~ePR+IQf)SfjOM%13EtuZmz){{=>@iAi?6)`M-Y8)OM)PBT?AEl!9Q8;c^yY95R z&)S{;Q9G#N3M;P2Vq1?rz7^RH{iyvV{U5ahq<9%GZplhh&2Y`y8^;xsIKHxKXOY{k zIgwZMv$W<+r+$Emp0?FzpXPpAW1y7idNn_-sakk7^jcEO=A!oQ?30eJO>y0rh_rKo zEZ&~Ie0_fLx`s)rqH9SUXEhdVjg#9N_W4plSt0}~a9G>ToXfzR6DjLt$XRqi&#hg& z8)Z057CLV7K~{_S<=lxPp%wrz7vFNM*h+1_Fu@PkuCj>`xo6v{304k699erA@eSh3 zC|((6KQ%xQHdRiF#S@u|^HZ9$F7R05VAwEX(dN&q`Ptjjbw%1%uz8(K*KbfNCbCeS zo{`!h23JboxFv=;xU@@Ym;&vWE8zyhN%Z@rxwf3`D(-dp9LyUsjT2YU>iy_sqWr;{ zU}NgasjZgvLL^gMR*hU?c{&oUw&wQM%C{Ceu3WQzm8F-DJ%rTaK=Ioq`IjViSlwp& zJ7&&9+ft*U@@|uWiczOkG)dxBDw3KPi!|ELYUy%;U7@x!i+1gub0uo&G7+_G?qs#w zcv-_9TytuRIJlkqL4d^sBZ-O5I&IhHS++=fhlkTiI~0cikh7LfpVm!lM@uGuuDZKA z=)bA9IN<6rb7%6^JZ&_JMijAF1?D%`%aj+(x}VRq(Dwf5Vp9oQA&a!m?7gma&3nVG z-RfE^`>}ONT!ig!H+P0p`x5J-Jo~Lbutw)h>hrU^i;P>|VXw{mw%1Er zG*`q*zvhj0a8ZHHkb&7VN+V@%?!h}gz&=b^I=A!#93{JxdvuZ-CGyNtx40WgxX$}36VLuL1?07-|3MkMPFk@rExK$R@Xc{GA-X0 zpt*uxqahK$(deAKGkhyEO+nmjOAMp24N;|pR!WViI5nqKmz$C(4d-OrwjpdW?2OF; zU8xX7>Q9AS0}@nk>_sXFp_51Y;~>t<}z+$ zE^RSPs|Ci5M(6aM5kod6k6d!((u&Q2LA|iF@TDDDiJh7~j*Bh6VreC|WA-&EXFHQf z^<+7Zjh@WWmL!HJ66L4Eu;nyfHL6d{1C)&Q(%G$n1+tYiX?JwZGwY%0! z-lxv&W9t=G!#SJ}xZ9l<`LT-h-xx2^HFYgUE#(UE|$6AbxH)gS| zZ`2=`Prq2D3buq!Ow~O=jipb&9?YDt#SrUk9bWj!etN zR;t-K>nZDSyUS-~OtZ2yApgL)D?vKJGIO=A7A9+TNs_I0q$7?VcR1#;j_G!u9zT85 zeRg!rFCOJD#G_5ww8!F@PxPPcxC{lHX|(@?8UwpqKBIq0MMApF{b-h_I4Y+&Cp9bi zyW{e^GcPFeeO!L?HeTf~9+h7t%LoR&@|RU$eXFxn7t!Omr+Pv460bJh55hiHmvqkh zXSSeeuD2({%t!0Yj@A_@g=mT8!%@}Y?4COC!aVL*OV8}HQt4T_bn#H>8s~kfCv&Mk z94pp~Z3}4F1ysh3hMK;y))f%9JrOv!{iUt19TrOn2j+5+HkZBBinrg#ZDkF3ko$W7 zAX#H9tk{O%TH2}Jz+-#aj4ff``CjjBvuWkhJC0RZ{*d6&i>kM@s#`!Ww(_mE*XpjV zsR`Mpavm{l+QPKXrF~odRK+N3v5l^18{`O6?`zDW~rGm0xImwJjQt8Hos+2tw znbK_eq1^2|!1=T4Oq|Ed!25?U0?*#4*AAc+r&yosOb3WQ|M?IpjuYjJ3SZuB;5e7h zT7)+agv}E|N(bb}@^->_=Ld*K+CNo>PO+k1-w1a}%5_Su+8X#urVB84c7C_n({KDF z&Gbm0LyTv;o9XZ=fA=AYL7|FfYT`UOe)g!N*&!8@SwVD*3?i$UYwP&Q<7Y=Z$ZJ{q z-|X0m?6j}wKXx5==IXUNF2mtQ)hHSzqv^PLIIHLr(6dtUdxeyV+0GI_H1c81Y}-x- z!*MSoJsuf&=4DoSNgkc(=DyBgy|x}5Jv+`@S2T#J$B7*o-KX7WPt7*bSYL-e7{o>W zeDtG|hMfDUxsHtE$4|RYO~bcH5(Jho(W`c3JbnJ?Sr>7?Dnp*=wMR!s&k^@(xd_CK z9T|_GJbiqOm`{llrJ&2;(??G_j}iI7NmCfKT+ZfpWIQ{1dPLE%%$LrEhqx!*4x$$R zLf`@>vV8vh(G$d7K)W6oM1Gkg;xB}~Q?O+2r{$IcS7@(P-5ZU)E~y?N3+4u-s38Bg zOhxW7N`v4SkQz-?XCMjR>@0kSxsKX##DsJxH?{-^6UUFhdBMd1KfTC2KbA66^Wk5VN%)1x@xg<@BT!1207@Ya*9RQwadm_z}_!fKz z<*j7kDwsMjObb|B(hd}T{$;$3GTt!jL{zAoCZoxs%zotlf`;0HuwUw$tyg(BZGTpD z%jTQBi*|iQb+g=Er4{e)DJ^)Qv|v|``MVrd;}I=Yq8cuZc(5_zflgfxi_p)EIwpG^ zOh*__IzD>LoPe#3O|Sh&o#W?E%=S;q=~N_^ZzpX(eXX@^${kRdA?$j+2@OLVB82Kn z%3R#k2~w*sv+1+K+tPj~b$ws?C#1Ph2S}}={=!X<3UBME$f)}S7IX4!OTolh)qA<{ ze-%6jT2PUf(uPwYLm?E)kgMER=Rw{Nbf-f};RxHHL9C9TmDzip^?KLQgbv%Ozb(T>q0*dz0xc=`d_$Oe(eure z`Y+K{6tAM1*5%r(p$7Q@C#Bdp(Rh5+D3FYV{?taztV&cdNZhq7UjfWwp%Z%c#LDbP z3U4TlDZK}=_^p#>_H;9m?&l)Qu*h;|?LbBFl1>f#x=4AerBhkl!%4GqAw0Wd<>60p z<^<&k*ebUZ2nojSFH!1DaSWBW@Y1<|Vt0?84mv$?divP5pA3%Rdt}?)M}uQ{k8S(7 zGk65=6Wcx-w7R|4(F4LJTDKWSJvoUqQ@x`k|CRrOt01lYF zRx3G)q--5wdJH-}BhSFR@57@%@gcwU?M|A8xl6WLaVc= zRheW~WHa*e%S*2NuFU;zsErb^W$?XsiQKNa5AE5=jQ#nvk@Ht z$veuil2Xk}_w@u>`{2GW_7Pl%EeR);iyvf7niajQ$Zw&p0! z5^b8QukuYGYP)kM!KH>5nGxkX0wqdL?Z=Ogoy}1s@&`u^2XAG< zl(3KcR%|}h&3o2WQM(SfJ~7u&IpH`ac6)m>N6@ZCFLsjj!>JID6EK6PQoP;^Y2^=?derOWCMUJHX&HU~_n|R|A~bnh-+QCXuSQEK=33y%9;ArnMK7czHEf9 zx2H)QLLD!GySazq-i_cz5U&O$fw-RG7*J$jWvXU&Y+7+KTWlo(=8|0rqeL7sEywUJ zN{#aE&AU~=c{U02LLoM=380Xh7m6@k3zum|5)Knlb870#0!-GewPJ40L*?!L;qt0w z@o)hH+k*76!IornG)QPIkz8|6`*U9hlFque-1(a;?q98M(KqHsNf_q;rqYr&GUv&H zg4fpbxrU5$p8VJ&=UU!$?71izdto|xRlw&6o5 z$3}DW{C#K*P-k17SLG73LeW*uxSe`NVm#^=Xrob4&T?Nel0(ewTz>tPE(>z|C9xMK zougKEE_{H{8e)pWaleYC76JjSE>zd_qZ57Qp&vDyxX+aiqjB5!M3nhcUnDris2E1B zcR)Dq#-4-TBON1rf1$Y6qjk|cwix2Nx3ClGTM5h*CQC}z2Uiq*vMOtYut^zVu;=>?Wb(7QG~YZT6e0CO$~vZMo$)@WN`!g|78~Rc zr+x&nLTYj?bCQ|J+AOBLNaBez32tklaH5n25g}~MSHPw*iz@GPVf!`M>I_9D5{S0> z5!vr)*Ui2IzM+V`m#|O;vd#7co~kvj7^zw#3Ak7#O(msRMN{T11uNL_thsG?nD$i; zhn6;^1!{TN%`vmo2Bob!jH0@^E?pH^RMm_4b~LEhdr6z7^q~GDJ!|>WP%o@{?XFlM zN!v|RtG=$|5OLF#$sW|x7jq#nghc=eU_{QIlLDafkZw##qZ`aZ8>Of}7FP zRoi+=7vpz{6;HC*!J2B?^-*+q@Ler0YvD(;Up~II!7Ay2H|@K`o<01M#!;V96)PVh zu)myc&J<8Tp2SoIsX*&P!+_@SE;jvGrGkS()> zEpUsyuZd`7df^6SqLNzmA&bG(=pxz}_jtakT&;ZRu+vXYqFfYHpVgrAMnqvwhkp5} zY_;0 z+6fm%ZO_Q8yMOi!(>{IwWo;IaBCdT{OUtzau)v=lJ%40cQ)n(R0_zCSLS!62f7X3u zT61DwKYeOi3;3QMb)K8n1n-ZIyH89D%<<=spFQiC){J=doyT1hV#vnR?lHLSw_u5P zpLV*YwZdneqa)M0BzcA7qhr&0jrUIg&i43kDokxZdzCHK6~CdGOZiR>(S8@ z)A~eM-m_wB}zsi zvTJN+PEen{89R&$6%@Y7ARKDxmiFzI!VeXkJ{!EjGfTx#-K5S^ka~voV8)D4bwWa@4tJv8+s_v zPKD;_2;0uVD(jV9y+w#igpl>OZ4&t(MD5wmD~-6F$hR0P$?4MKLlsq3DSx9bPHF?p zM!mG8>ZSo*1Uqnn-8VdUUx1=h`<1y%b!X{T+75;DMsX?5TwA!1@&r@kgMCzybuV_W zy{?szymuK&A*mqRsrI@Sge0t_(MZd3LotNmHpIEK&|m2eAM<5!?6&-q51NmkfMKry z6^L7+lv1-|;^^2y?{w*!l_wl^tT#4ppfBoHJz*6~^+}v%aagzNftVt^^1W6_;XvS5Xm(nfa7q55e-SHEx6kM(lA2MQ?V<~!O`wS+^_K`Nn&xP%~Pxo8Hrca~ma5f{Z+5h*y<)#(2o zfg!E7!3aje_B4OG(b%YpitzmO{@QQ{Zf>~@ZoSWI0o`NeF5b*%GyM+H*p1#(nC?zx zy)!49i-Z-98o+OG#a)HgB~I=xaz*}flEjV&)5pb^Ii>!zQ?0)4o^rL%prm%QKaB^j zyJz`aC26poGuX5=Npb7*MDWrrce82zV_@97pm5!8V;vjSukZO(k3*qy@~))V0#Fbz zK2(hZ4sQR86zdn{V%O zl$>CAs5!JEyMWa|%gXw1Hj#@GBpH=9#P!adX(qBWMMbyo!38vx{Sp{E?B^TkTaS8MBg``?U?MgL3m$gibbNzcj~7+9b~vn1E`mmP|R zy8Y-Rzphd4nQR!fx??+kSHhhzd>69S2 zUpMOWAf$!L66XSUQZrme-6DoSlU_2W8>#h$)L{AcuLiV4LS3zxW=+3MU1PA#F_Ij{lhklcu8(V4mH5Eqatkib zzZu+57WEDYOHBIzZ6^SJ@wdPHC2RFoZ3#)*7f9pCCEl2fhq~vaV7ot_c;du z36hYkWYXE4+4*9NAc)HWaB%J?;zTB+ND$nEkz7rQ+FlV~6$F+$l8~;nnAMMkZbmgf z`4lno5J}y#FfFG_YR=dk&WmYMJf~yvU>n2Zyi^@;Q>@j&XGjngsM-Xw0|i>aXxdk{ ziSJ)0+<*41kAsp?R;f2e^vb~@t`8idcBz@y-m58;Nr?OnWYzPo1h;wm(GHMQ~_Fl`oWG?n7(6sujZw-nKuJoQ>_QGX z>eD}L^r#Vo3TRqKoW|m!HmoNO;DPSuVZ<7q{>lrVD1AeTuh&c1S;4FZJ|+T3H9HvF z0qqH=Kd6D)7F*a-5W7lF1%qg^#G#9S!@mmu68M!Q90fWdFmi<)#{#Y`yHQI}g>%8a z)r2Z2-Oi;N_3@|*zH?RU9hbYcMJ8@^*;#H3u85j4zaD(_D03jGJeYPc2anf>W>B6b z+$p1X3!@Odey*M&5tV}k!h-|}h7^7#l{*DaNEN+l#U~gpn?O7TzwYlgNC}=*JT}!USLXcciWj#^+o|<{V;(KIJ;uWPX zaR=(O`qN`D;ThC4LG2e4|$1&MLYls7-?f@XYc``J!F z*Z}q6tZT_BnC*$BiKUJel1b$+vI2(KaU>x~)eQUV#jLOTL$iSG_V%-Yu#w~ZvfJ?2 zu+R_b@m|Mlq`n`2KNUH&1T}`z3z*x68HFtJbH>*4i`7RsYRXPS}h1>ECq1Qha^~ z&pL4_7QBv87I-A2HO6l$2I7{ve(nnm`cnv;l9&9BMZH{-BV(ro1I47L{k{B`A4Ck2 z$n`K|BTD3-ctM``>qt1I%j(!(+MvUMRJWANH>;f?5X3KgX@HCtD5ihE<~cW zh-)@W5qGly7c`B>F^^5F#kcnkUx#cjiSB%ugw@H1((H(chuR^*q6h%gKs1eG zrbQD)n+6Ue$fgGwSWH26wDonqg|NZ3L4tU-S{2d;<{@?1pP1;gMOe=lz^V=6l@+ie z#2Dp-#(qEchV;{W$}uOW2=>@}pZ)2JP?zG@GKeVY#h~ZIph8%64_Y!MQ7<4L3@!3N zK7{?jIJ=GS$p>{>|A^U7>a_mqKCRZN{JCtF4C$^v>j3^*Xu0*Q)7aBfE=H~kA_xhx zXkrklCdl4lNT@uK5IfZSwLJ^Shv$_RQF#yu$#s?Ic)sK^ToHD+u-Os8O<722vy419$5Ic#k7-^znOp^d;i zy=e+cS77|CVeVG^8bRZ^+h-+@4OwCoVz!A$%CVF{c|>fdyb?QA zzcGUX&Wz!+UIk>sZz%@lzJ^%NTyV+hfI~?BHHgyXdz6l+eQ0DRPWPL}T!(6Y$cDS<%%q+y%p)d zD$bS3UxssK_D_Lx<+zS>VdyoSi}NYtT-jZOb0uAfb7jB05(9g~4gN=PU;lpy?f3rG zaPDmt=iZia?(NsWxkc-v>K4Yp348NSfh2kIw}s9n_Dp9%#2{(9AWR|q>v_l?>;jS; z&5Ky-AW9N^;EE8S1T}~wUxGs}PIU z3oW0uyH9EV0A1WFJ<~q+NBgB-@<-J+?K@hO$<56mmx_C&E&>;DAdTB}(2>Q=%vYD} z%2|kdEUT}goznOfA1%}^NWhe!VUpeUUsEf=5a91 z8s>|_#=gt2QyE*Ng=GadFbWf)lo=h?@_Eo~avwr$L9{3)G5451QC2dtu#!Q?G3d`R z-ZOjKx%WT@&4Qy(ZdN1ADxO52;4fIuJoo;*iF;v z*g%aMsC5x$R&@xtACy-d)}mjAS-x>%R^9(+NDjiy@W>HRbR#amp$qdXsReRaO<4lI z^di>s(_qiTn#RA#i~JTDggpBRy!4Iwzo_R$+>6hO9SD0JBTYdt0rV|cSbMZ&BAb8b`I&jS0CMO8^=*VKT{@rqjmzp}y* zJ5?KFBm>oZIr6KjXGgjS(9u80!*nxyKcjV^wskpy)Qz-whJ;8cj@HkoBUGAq^kSK% z(h^v`Qd*!|IW?(u{gC2x=*O`bLM_&Vh|Vej0c-ob&$o9mig|C0A`Y7WLunfaBjRX^90gYiS9srP&^c&9+HY-@$C z-8gU+cZxQ}u*eisXu-La592ZZw6dFg$;l*T{YX1@oU#5)wO+>zXgoECm6g|sA>agO z@x;0_BGwJTkDu80MqX%bs=UnFu27~FV#M0iP^wf_q`Z{@LBhLRI%0vJ%XCe{xja`F z%mPxPEv$Ae@&rn$cp&DEhGzgPQIO6b4K6hG4LZa*Bt1wBac%qt0GU<5w9+m^2z((e z-~cab!KKYMN)XY9wgL`aTArlxW3lFk1^MihZG@VdQDd2zsq<~-<@NZTr&RZH7|UxS zZ(^x*^b$P$pY81IJPU{f7ytF`-OcrY$a{>6-`d^@hy*YHomOiXeuJC;M!UVfZ7JB~ zxsDB?G|X~3l|@2!bX?A#D$dI$Gcxe~$nd8olv}4BT1bA>+-LdrwA8Ft-A|UaE5zxD zjrJRpeK`%sVb zL`30lzlkH!K;H@Y;F>i|9fDs_SiXi5hh&N`zomB&MXk01e$W^)d7D7UBWtWDW$DUC z<>jiDema$>=EsHY39XCK$=RL7JJ+V`jji?OkA@r3O7mT!gV%bexu{1}#BykSR4NG} zC2~N#6FR~Vrc>{nsc+42)V_!Kfxb{3mwD}^aOjVim%YBD_YC^kRz;G|dQYIpr^b;Y^0TFGilWsBqtQ?N$ zfJq7B6F#KrLpY>d%*c?5G5TUov{%tZGKyM6KfF-x2rW!+a~%6Eavk1td5dm5S>Vh4 zz{#bVoZ|vM*$^aedy5qDSLKbQ-N zOmt%LGd>zAAxt6;2E6+*N@lgsm~P@_B@c z?roAD4kAvF)Ier%-xT7YRh83}-*6F4?pP{$mky%b5$!ff`Jai9P}XITliQmSX|l7_ zzT34w*xsBGh!+}}(1#G7OJIugC?gss`(v5BO1k6hNU|Y-=0xv2yvCyvAk3zmIiPk} zK-&PfJ0sp1y8-vqv~lukzj2X#WWo!U`glAe-f?o%NXF6&0u;?0z`gqn?C#_d#<$k)jLB22x(-_i)-ki-Q_&E1T#k3@=KW#Ia8F#?}h+*VSc>xbFhjb(8vf3_&zpa01z-tU*9c>f45i2T`~ zWN9~&zY;o-k#}%QxfpQqv2i-mMBWTE;j@nX-d-=I0yDHIti2k23*~*=TU$0mvTj?StpCfJJ8f9DzJ)i-Iy#c-#gh+-kc6?q?zU#JWBUuan+GfT=$*Fwk?^3HYk1x#sKQ zRiGqt21X-O$W0n?K$GL4h)NXnmJQ)u-$eT*Fii8CsocD_iM`ylLj|yKkf_klr~Q7$ z5VMVkVh!RD${k+>t7`bDXN1A5wefzbe5Kzcy3#5oS*#L|!sDKZT4WrX##b}awL;@F zBuR-E716(w($kn=h;cHAQ=PcB40VW#JGkV?F7@-YYU{0HrFzOWr9ViL)E_^EIJmd* z_&;}BWCR@5b=>M)KR2Itu2s}KP^;eGyek6lMwh+S_SMx@VGUXD81mx{ zF8Nyf3cs-i)K`tj9e-@Mn%7uWU#cFgE%MC16c>cT1JXD531JX17EFGOOOVE)@JQr5 zKWJ8L`dI`y&ayunA?ukx#sL)c~sqo zT~)9$-?!tlHDkaStXd&ugtXA7kpHUaQfV){+0Y zz9)nR3z&JVv;t=U1EEv;KsJF{5Ir)(%xT%j85pQO_9<}Ukv%5&faaSHJ_da_ih&(m zrT{Si$C@b?9n-(e$XO)+6h_V>s~b7P&}&A{IG?hSvl#!2S?7vj#eP;L92oP&5UHEb$nQ37EGtT@Iap+N4y?xl zvvW~4I~V^$Hs7LGz}zuZ6BPs^f@rUIbG!Dc0fJ28o9T2#T-#FmrQI37Y@_Bt!_BX9 zh^TlyxvUdIY`~>vf+yLKw`^CzJiOQ)t}SKdd!Kha*du2{%ni=zJSk%63sUnDz@b{0 z#22@CX7*|uKB^|AQ+V(aU&U8&7vI;|CfZPTzwuT{V2G3+xg{fVO@`zq?n6?WLDKE0#%`L;u40F8f>{>^ z)(yzD7Bc7#`5uonF7|tIH<(WIJEf$24A>k3tTJvk<%WM3>|I+`Vv+ij8MzChaw+yT-Wx}g8JWi+h`xUv zkjao`8NFfAq(oWINDjEt8`ZJ}))|4>IqSfS87YS4tW>;iHf=W2eiK+h#NZT_$J(Bu z0c2JyRZCGT&bM0aP3bIF-@-kpPG_^3!RmHD27A7n@>Zbru##tZ7yZ$~%Qhfl;9o7B-FEOLuZ^B!ZTRs*Bnxt203UL!+I&O1hf+F8o3$6e2Hy!%iBpAeqW)o$q zpI|Jrq904Zo4N8piVqbY59nuc=X>W5LeftvcV$#$T@-ImF+G`1{5Fo9`lT#Un3IkB|4yBJUfI z?4P`iyrxIq?w=jL`EVS0zWIF?d4WgH-<}=rzl^*v3_WsidVKmO@*k@JhQBN)Hg;4h9(4}SPyN?#0;?nm?L;Pm9=5SlqihC}Vo zBOnV}yVc&@2#C0-g6zk4hiAV;9{%&l$-9gFizAq-`Q?%GcQ4Kl&W_%ya{I|6uZ|9n zUq&AO^T?~S{qLar4=)d29lbeHA2A}z^MAKc&&U~Fibf&@9g=5>c zZQJUY9ox2T+qRQVzSy>%j_q{p+}z2X{A>NAs#Sw`^wz3Vr}lpK$5$dW>V@V8Vu63; z=J1U(k<$Lk)P!?k#JY}Iq6myGp-SOVeB)qs?F)uD?Vcoq z7ZT66v4_VS%_%v2=3+A(-rqG!%j9MxH`+Xh+?$`FO0cRsdHgfrEIlLPE(zVuR zy(o%$K5)Rfzslc)3!6V2zYlG{w2NCNoRu_k0UyYTI$tG7y7SlKU#yZIfTSkn@xrag z`OU$JN!E+324jf3OL$*U;T^OJ(xt2CP>~k@Xj!TF#otbkKRuXKchO- z9cw_>a!~r?=B6-JvU@SIETRQOzcYZx#+H>xp^K8^*6o0GG6 zS#1M&R+C`_4j&Hp3Ii=^S#7Il*-59m6B(dZXYK9qQ#i!eja*E&HZ>xzyLSj9G;l(b zy8vQ=A599Z?T-NZZwcWo4^ErwDI4o`BW}5m&kEZ-H1;hysgLUpzH@rFf!18vo5(ls z*_#Xn9NBeuk2*LS5;YzKjp6W%pk)ynpEm8~v7;-@HMY-uOYLsUJ1(M+14_@ComY6Q zZ363>FOjefSC6kdcs#t8^_`T!r=wcF*20i8wXM+B-Hm5@)*9`Am0nEVe9c6rSu02* zXIa80-A{eez}mF0ot1BP<+Y8uZ_Y>m&(D>Xuij*Zdw93B6b(I%ot5QQ_Xq#2&z5UH zN%!93&Yk(Ko6~D|muKFNZv3t7I6HgER&&M8Iy-xf*4FCH&E>1B^Cve~@6L{H-L37P z<<$b2t!-A_@65VqxmEA73xGELeX*@yO*SF!@o3p=qp6=wHX-lvXx*#fZ@cWY&9b8w z%XZuUJ9S;W>#+3n<=0=vT*1hq{uT5RV7fo105UA;I{nC6p(`ja=J*!nFhIQMtVL%v zx@S7exsp9?E_BP5eU}=>)D@&nMrJzpo=%x zc51YjQS;i%wr&;S7$CHbO&vs+maDf=;AmtVxV$_y=SLgWRe1VwdnMt`6WXr)99j@5 zN+MnMMjBbBLAFc286eX|Eg@b}D0HU;-QYs9rFjO<(RxQ!l;o6?@EjBC)^|z3!f=(_YU-+Kr~|pD2Xw4j%RS7V zzYC!-$+T-0oL+^K?1Iw!&LugGSP{9VqmrT(KZ z-sn=E6bMFQ#OMf4d@QdA%I%L!BhXvJxXLgyk&MWc1%aGZEXf2=i)e!Be$6GBX6y}1 z1}+4H2DUPz!-lq_95%F8!+-N$T@CHo5+|B%K~TiU!8BMs>u3~_d2RJE+2JyTgI(ep5YZdEOD5!X`Gp%5zLHJ!K@TL1+VwUfz+<9C=GP<<|DiTmrrz{?(6x}%! zRMA~{Zm@+z^u#ipJNr#A-)9cGpxc9d`HDVQC-9H&26|lm;FsnF&`vr&j_vJ%q}&w( z?ahs#By(QP1-sgtM!;6CMXfF1c|Y-D@Gp8>|E5E<%b!%NqS*GEIJj$s@AWj8bU}4e zyg{gc&=Q<}1cKIks4+Gle0KHqkhun~?9NHM1^5jSf?4`IrVBT@;8>RgC>n>m0SNSp zHTBy1Jq*}l20J@c+G-^Uzy8|m(;D@7@=X%r)hg_X2Wa6kIVQcJ^+o;q4s9I$9#$G;5+Yzp%ab;&C2aZ!U?~BR6thPe(&iKAMHtET#Cfl*`W401 z$G}>C7T0)BhAlm8m4arSL$1NUQ9{Zsmh0a0VGMf+YvpO+#+H6<9Z(OJ7{tv7EN{Jv zQmi)!5U74VWB9pPT!Max?EL->Mc+VUb4w7YSBq>s8B-r@I$Gb*gaBz~VN?2+vHGg> zOUkldkVWtUDW`{@Pn5r?)DPrFbJ@P+IrmTLT$a8Ic^84EH(xYEy;P6iON!wTO&l|u^X2Tz9q^q(hcka)fe-aZi|ebd)W7Umh_LR8ydg?T*ahei6w;JNK@QFS1{2xbi z7T2=kc($@ku)!=rzrj@8ys*V?eKUyjPa<(uE%<6y=E_}xbsI$;nq=vsj*Is_QVlmmX(-By$WgIl`wvi(AfOOXd71IcoSN=fOsy=E{He*97z3X# z*0Dy71%ufv@ES(-K#24ToVN=sfsrRFwNceE0B6G~qdDpmBW4q?-Zbp;T$@mnm)Q9g z=(CUDI=T78`xL0i_L_OuKQ&^#DPCcHw+aT8)e1h_RQ?w_NaC{gum>z-ZLrwGZBfjj zo+qojnQMbPeW3^&gYhJNuHcB=Sst5%$dTblUwS~oACu~9Rld4~vpNa!_C|O%&x62P zF#P*s=|vJ8HX4q$A^RY!iV&34NT`#eR;OWF_9m`z>a9`DpmN{llEb?`tJ*U!JkFmoEMjXCaTc`kgLbfjWOB1S@+r$ct4; z13uQ>`LwMJh7txM>X*`WW06FZ55aU~t!C3^f+9MvE{Kb(2rY<0^3vhIu&^_;ImO)J zWbU`%KNP1U$DNu)Lc-jO?z+aDVE~nLeag@8-0yRzfqzoZ=Cqt)q?QA!aXepw$bK#= z*bM2{Hq<~XH|G-~HMAqmQ5{G-XzLmnIb6c3?GT8zs&pA=>FT*mjU4@sDNLC#0hn>D z4lJ}SZ_ucF`m+?<2!!*FNv_z%#{&xSR_TBQXEYky zmGQ3Zc#~_4k=^AthhqQtn#a#FNlN52(QdmGBbTDGZJC1cxQVCV){H09xc362*Y|Nw zNDV%Qhcf;dSxQyu>u$2$F1XB-x?z43l7_FY=}GUz!d3La~0QQWA*RxiGh zgNM4FPoIX9{ybL9!q$~T++ruqVWRstu(Z;d;~je<7e-hUi6*u7v3);BxfLJtpxE72 zQ6*dTu>JQor+$W(GD8aZ+3~fjl>EH*`*@f-JQlIqL|S&_M5OYg3dNe-7tY#lYR z^${k0GpMhRFBXx!9t?=&U}Drj=1~OZA&t*hdy%6!QGP1Y9-fmsH`XyGXx|(N73UI5 zE~3_|oK?c`RBZH6Dxdu@tL6<#F}Yt^TMPok_$PB`;a2#4`e+m)RV$C zgu#GrvA=D5yyKyFN$v!E;U%-v#QMksKgX^pgVt=sZGYzYyt_DQGX2`dQ31R@#Pr~v zlt4uu8WOFMX))sbuxrtTnGJf`PBvw?LzX^lB=@o29uwd4xGGg+>g}3l zyrWR3Q_@}^b{^T&aoQCUc3UM$EgXj4s)=}9{Qi^LS`H@amBp2-Ch$q?rXgp|pn88> z44?7uq)t}%>FZaBkR@Q`dVnOs2-%IbU1 z7c=ba)Q!(5g2Fmjj*hMgNkwy=-Y*g2*^lQsR5&z+H_}eL18JWxWy|%OAb=CR!TNil zU+PIMzf&&n`Ddxdo3TX))at)fkBoMwgkBKRV5;Mrtq88&qgz|#-a}Zol94|j$aC~0 zNrLvWD^h72W-e=>jC$nJa$ici#4QHM5lPKYwnE6QvJ*=oVK2L*^KE0!<*}aIcpOXO&RD4cjwd3JzI^-=^4q zgvXuHXsB_SqXM1zp9`G24$=4tve)YCOvh>+1Z10aVx)-8@JBKk8o6FAjvH;_rCqG( z!S8urMHHZT*Mr*HmN=p`+QZ75BI2>gwmM2xr9a6}Xl+WA*2WacUcodJr`6oZzQMbj zZ0i=mCg@VD#=_c}Luk_twk9<1t1S>ru5L=<`tCBaGPaBh;Y;a69G1f6N}}xLyF^jN z$|Cx1@g?j@Vg*cgY|z>_hw^*an3?Yy)4?M2eG$Y3-?;qT5P#DFy_z}XpEXm(ZKr(S zvIu!A1JNU9jgKYcnJA=zuAj(JbMEOd(Lnu@Fct-)Bem*zLc4y+nz245(BDno&oi^RF5|vPOMJ4XBB^ zEUKY8dA7g|k>Fd=N)O+ixXzp*W{T52N5n9GJF=X=?zptPbrh$C?>(g+L_+IBltgee zoG{1W1@DP6H4!qsE8)0UG_{K`v!ftB4Jk}hn6yYk&~=qp-gZB;p<~UAwmBMRvrF6K$UP)CPyT@*vzg2esBeO}Dw9qV?i*+Z zZVznh=q7g9V;>?t^pDXh2ae?olb*nN;K82U0W0fRP(t&T=8VQ^RgNnvSMa`MC@D5! zlJZhrXvl`kcS}y;XWug0tHne35@qiSGrkRqkT2hdoB~P((OC)-@}S$ec*V<+MzbkX z(a&P>{ha~5oGv&E0#!+-y%z!L_s<%{GGu%x&Y#5WDea}Ph5TcIBY;e;F1Js0B$xn~ zX&mQ8Y$B8JA|HMJis?-Ehc&RFR+*^W7Hm*OeF(!A0ixZS#P`~vQOMCjQhLWi;iaiO zqrTd5{8}x)(n7LL8ey71X&++2mmIq7pZF52`GZw?X5D&oInTUhCzvZgkDw|NGRN{x z9)qy0@KEQ$MY5s)pm+$1^N7b4L-|+C*aP{YU9#;F4_S$Z*{t?RLquZdF2-;86AG4) zZdB`QT3Ussfv>QaU?h%(qpb6X*4bOAY&j^Xf--WbvwWS-Ebfm@#;aZj4(Yt@K`j)F zbO(&Lk=jwDZMw01?R&pi7h)%+nQjwkl_RZm61<}oW^^|d2q{LG^e{d6x6gQc(g{= zGJ>Z*FSmEM<%on?)2S)!+0-TH_x)y6!yj3%+W+W2UUbKnw7T0&V^d5I0&U1XN8poB zg5v&cigEneG~qk#-5C;!`C?`M{(QIG;;m!^0JXKw=tdI#H}$W=7ct58$W4t#bAqW!XWB0LE;Kj-4O7v2^eb*4RthhX+Bby;9&K`U`jn>u_n1(#uSj!Snn+MkOP#* zpydx3ujB{KwHNRKmBsKdgDPMsrO%-vtb79sg+v3VS>ohYX!Q$<{kT$P*; ze;;*EK^EI492_tNY=N}g!Ggvw#y=+rvhFpTPliuDYd+YGB?_Msn<3-aqWIJZ)qyG~R`MP^x^n)|Yk8_jwjq!nU@M@P1ih zL_g@EE_+C~+}*Ix!mgD99~1Pexui6WmV!Ny)b511JJYprfKv{h?o{iOVNW($x zM;XYIw2g&Ux^PO42`!15R`BM3SnHpr@HBLZQ*9NNVF{rx$UvR4p**HrCR{QsPhje2 z&mp1&TY-ngz)c8f=N-5EHU_Rr{A$s}t&QO4C@SW&2E8Ej$g4)L36|?4*5__L^f(hF zD&F>ZuJ{?S`{_H!2AU0ikp{8*G1|0h`V`hzQDwLs&R>}QZETsbw&1Z!KCo=PF_ML( zR^u*So}tTi2hit)9(*F#z3Zyd%S5_mD3C;`On<~c6CpqTnEO;-J5_1UI5lc(oJjQ` zi~(F%A1))xJ?<0O9mIJYrKmnUATVU~q8C zQ!vTFBRN8(%2z7)h6Xn+;4sk=7-OD<)UmmLpyiD(=?^Uh<{xQAg$O9b#D(Zg_m(JM zNJ2HJz>cP-YxoYdUnv(H=!fIL3nc-N?|3scZ)2<=F?Cjix8Xgi-21#VI5HF19NXnC zA+C#H&QhoN!RX=#uL9S1t(H!s-gKX78D+brUhV<9BuqkHaD>~ARhzQ|lt;2E3GhU> z=)X7yVm!68g+g>k2X;2rgoA9L#vwPeaW{db?|u5jCl0lW{K}u zHd9HHK^_GCQD{rul|DxWGKU844d0^-+{Y!BLisfJJ_p(p^)aCtT_Oz|-AM4$$TA!( zW%9WL;K4kqRu29AF86fyYmQBo=k|Q$M%w9Q^=Tj)+{0|pVz}``cObt^66Oe?-qnAD zDF#LIhUTPuBFSx2o=Ilxaz!sVdZ3-pn*AQk_B||imKMKxGxS5enmq?5k16xb+`X%A zNdzAqIy9ohEAzg={)F;8Q#hp}vYbs9(--kXxHnS?i3$Wut6M)LjsZI?*chcZb?3u2 zXRIt?o(AW4ley)N)-cpe1$qoXfC%`@#<_(w{+q?>P{99OM(Pc|Swf^NQ|5_K9Z`>o z)a~RF^&+m62gJ2DzD50%32^QSp+C)PURX9(mnj(d5LT*sf|Am2rJ;=*(!XVV zqo=>d)M0ohWQg*KaTo)}Bmkv`$w?M$Q1;^DU5};8ElIpSAArQ4cAjYlTi+w23l3n` zT&gNHCO1a#NSu`~v?)O>$$u7x47Qfqywnf@QRQKgt5%a8W^xg&oMb|(1 z5|=Bnaa^*eVjw2;(W0^B0LJ0-!43!@cv7xv!S?V2i7n}r2G++kp1enbX5&4*b)bv7 zLM_M;qsrW8o^~Ofm=o80k3mit7ZJDwUJ5VU2V0v+eUPxcrut`BMA{Q z2u}FN$o!vk2L@M@iIYm~6tn9%LV;R&|HB$@C(Xc}>%#c~(zl z9=D;DEj0(BFJ3vaAI}}qO0mCo2x9YJm z;pN8!2-#-A2r+#uvnj?>Q-?EWH+?*j<4*V!#hzD}y%Bxv&z~#8;zhK1rx^thM|9lm z`Sl|n+&!(8c@^)`rOaccfKQjHwbFi-r(-mKEm?Bc_zY_6V&SkcBS*6|E7O$Y5gc}4 zr2>r%Xam-?E3W7jI|?|RaJa4;B)hc^uktEmyWt3TfGrqKc^uI_E@%7b0V(FrD3T*R zL`GJ;=bHa*5DDU^iIX&9I)MU5@FyijLC%pt({$mt!WS?~NrEh5)Q{lP7Jc29YI89NfRr$@W?rYFy%qJ6W3xc#ry8a0ut6kVi? z_&2_3q9NNXS#uUeNi+o@(c;hjBMInOXODaSU~>Jc^&Xn@SK%RO6BUU{M10M9o}*!@ z@e)1C30~t}_LGEti8V#SRN+l$GaGF`H3YBj4pM=E zoL$0rd}(*N1V76)H6p&SU&jGue=RI|Q_F33G@rC;SCpR@KX6?C_{6Q-H&!*?3vt6J zy}J9UHw%V)FjechDD~h)BVsg0mO;~Lls$95I}L5A)1nj(SGPA@ATJ>yrO;{HsPHlpP0w;1HEXJ$nnwV&e=SSg$9d}DT zXws0E9m`SM02BtJdNZo#`rMPiO@FtvKt^e|HzO*$4YH0e+?g3Tur8k+1pzy=i+guZ z__6D72WQuHwL7bu=E2vQ`3s$fn-r^D7Mntn-zB!2fN8o!r|=VWF0u(0TWrtBC@X0I zJb${ix9kDTPQRvUsoLvU^o)chgFzv(;I1Ftsb95fXk(l}KQMRhFHw-XB zWW? z9=}SKaKv((S6Zc98db)0GgbjLytH|0H!$=yqdok&&0=zMmzhC&hs$BueXBwGNd!7L zOBcdSjjJi|8CT&*V9mka9sqVFgEzZ}YJ*d}{xI20LfZ0ohuUX!)_j

    L<)9fPkgj0FaAHBqCgWb>bmCI zszR`6I|Kkfn;-g}oUg8Cnf6HeS$ipQ5L;3s4(?{~cOoZ7#fB-r{cwhEo*-O(vT)Nl z!*V^6sKz*1_y08F{LN5G$CnhCJhz#V6I0y_63~QlDWf{l=U7rCs7Us=NJFDUx>w{u zh5|0bKRXfJL|nd{0-CbMX)Z7R7r!) zdE-isdk$A9KVidHoCyMM6*H372Lu~2E81Pi4ZeyLE%r~<1*ZM44Ee_eh4Qn=*MIXZ zI=>iY^ragfAp|g!V}gdH@-zG<*7B!v2m!jyX~|7+^2#zdvCxLExKIpc-oU4cKo0~A#!hitG=Hj*ha1ZThZ||pRn=|5Cg1}EG!PU0$4(+TT)?>dG6cqJ zP+5gXMeug#l5W=jPUdH{)a!EmZvC7*V1KluK0?ZRw{)CH^O&szll<-b8ieyixg zPt9hZfZ$mDc-SnG?)ybw7V5@(a_LbzMY52HMTH*Ie=yuyLfM3{ii(SxnjE#xbW*Ub zQz($t2DlhN@cV15M9)D{N@S2wVlKj>TQM6PHt>2NivtQ*?65SiL)3EET%^(|%+|oO z!TwXet`FGH%afAl0~xk4cOwQ#;GCIH&@O+?kAI!1JLkMA|0u3~Oa0bUy`B_YO22vz zHJgy%tUeXs@6}$91(i9!wVn5RnFMEKID2zt@fH5ML_tdX0)P84F8eor0DN!#Pc{VR zRynpcZuTc-Z_aMUU5}A(ykFeK8M@2QG==)HKL&%Y>5nvB3j7QTrM%!Kws-yMI^;cX zAYk=R^)=~KXjrO}BD{t=8wl&i(53Z9&lvsQ7&zfWlz=ghestF_G z=0hMrlKfEX?OUYY%4x+-xr#t3N}W8%B$_9Oe^I78=~&ZGw)+I=xPF<84Q0r3#88lK zh?-d+^ons|;0?H$6a)K4@J$6CPD}l~InepaO47wr7!Wun2cf4H@O$Ex?qsA9Nh;6VTZfI9>N zEClkXm@4_mzSUqUEb`7SNld@X);<${VT))jAOgwE=KwfKy(>&CTF9j<{dP#8?>=5YYH1bOboTKv&=4dqpzQLB(4;STe0zzY6 z<{3!^?x2k|jl8CDe<(aXCH0N~Qwj!E=jQ~EJvT82V82pk{w=Gy$(ke%a7(!(23NVl z-oVpxX5q!GiI!ThVZhqk;pVup%>3{*sUWy68i}mr_unPcby_nUuIwz790B$2a^y*4 zLSx#3k$U^0Er{DBJMyR4Eqe~zK03jY_nE}|#*9oEXR?}>s=Pxc$-(P&VBQV#OqChc z@rj|(jn!dU`6U)#hPapDWLTVzr=R*h72U6SNq#{=QQR#Bb}vuVLq+G4 zArSPL0{+j|;~&p$u!GnUz0T#m!(h1)Y%!49*chn&c8htgpqP^^2@`Uf+el2w4MD$Q z<$&RXvxBD0@sr0PpJ@QmQg{T#<&A=G!%6*>`9NwAz4t6RmR8`jy(KLetH?66ZUlCZ zL4mwn%TfeDRP|V+*A1aJ=u=2pH-CbNP2LJ@4dV{I{0&DN?wm1h88#T$|2GEc{@x3! z{XY0uLYxHS>48b26{XCe;X-jR;3;N|3|nU~9mf~HsVAm|hU*FrD*6Y8@F9o?`CZP) z{X$j1Ej1!SqFZ7C-tebXrvZ(+SS+V8=6hU9oit~};rM(Y+m0^`bS-`~{fgEJw|vx3 zOA{qQY22_+|Lho>#G29->N&F;6|F6DAbSL8l(d*k#WRTCE0;XD(F6gF)E>%WQzdOH zkBr}e)#$&r*-S~7f7q#XzwP_GtB>)?#Vk+tSal*((~8&gn`>Z&p}}NpCnTR+ROD* zAyvIZZJ&Zl2$pf%p#0f02De-}d@}#SnxC8@nke)5Ad$HC^W$#OpiD2XwgWt!fRrWk zcM`|<1tO-Y#YvTKm6Xy|!?k&?kShp~eZS7~wam+qb*xb_ZNS!V{kpR&K3F_Tayx<@qGBLY-}|TZ{u>~?v>-3!iw?E zh2Z;@ZY4gB(Js6=!_wYGb4J z21EoxM*h!P8#Z!;WG&EO+zci7C-?r({dX>!RTt5lk8iz~%j0wJ@?mS3m>J$+ml!D^ znl?r)rDfp3b@zcMyQ$VpxIu#-wsr5zJISs>NK#nUpZ`VZ$GFl}-k_`#kXg8ax9QkX z+0u^z;jd|L3qiIO3fS2g3P411JJhNMfWCtc#9h|hT-$+#u-;1A*xNRP4v;VH=!U=X zh3@cP<<RQbDdXXp_GJ_B$TV=CtU*I4Ey4u zTXuyKx*p{FHa+3Nz1t-r@f}|06q!5qn56l|Y<#*7QCxo7UPfNleLr%&};~8Xn2G5l=2ok24qgn?2bZkBsA&3a z;~DszdobpGW@ksWl7H-2j1to+o)JXicG7T#Dy;TZBDeC7?H*VT`QeVny%DU&a8L*w zD~pvLoxsEDsnGqdid3g8CrW3vmk+qJkp*Ql>eZNeC#&8_AYwa^j`0@r3(OS#0xuH%p$pS>%^`_Ia{?|KVCt}GRysd=znZF|w^_zkHUI5IAlLeL}zyP*oelK-;Lh$F|FlIrnHYQ!s$ z&wCgR?)UEMQ~w>cLq%ol_l3wDu}hfF8L^xHWovsYz5?;FpFg@0ke{;j(k57@(*3YV zEyym&U<2r4(37CA=Y0AG2Xy6CDNo+}o{-ZfAAk)du+jc$;LQ1JP-#Y7Gg4Fev4&2y z^Q5LOP5?ojC;uAAC~RjSj(P~Wa<&56ZbE#c8>+=(BCs=x1<93K?7^T_W*39Z-U{Ar z=pcKbMvN*AiIf2Tavs0gXF|y=*jQSX7p}ZaCofdR6Nj2m{pii!iToH_`k-k_~=GQF8aTIv)GD%Fr05eOV$Y^PIo^;?-Mi6IJ~ zn`viVn`xvikgIeh*)1f3VUZT3oDIeL$|v05(TU94w-o2g6tO1~mck71tLqp_&cfL{ zA5Ff%^4}CrIKDX8*=n&JiCzJ60L8=vij4!KR`6FBc3}2b;<=)@#%dT)NUw_#-2)4A zkU(gHvMgAJ_rJ?m7CO%guHeAxHnubknjx44&*WqBUuP8j&C9;eX5U-G7mH2B`iS~o zy9Y6LLWq0My6FF=fb^qp5)Pd24c?dxbP~cKJ&`rj=5di=2dc66?3sctuAkh5UbHb6 zE3oK>Be^^hvQwUE(%`AoS!obR;m6TA9fWhaHRD_L$z-eV(Ks^eH5~S zK=q5lS8@Jccb$mmxvgqVO6WkDz6RCo+_(zr$%fRtgeCcM>X^rE!hIBN=i<{gf25VU zWE8TJa;0o=K2`g-t%7}%=VSYqb_3t-7M~Y+$r1ty5W2wOA5}pR0KueN-}`T?d;^$@ z?WSh^GtH;;;f}?9nFuPqs4A3RcgTLcYbIchJyHj_Q)_{Uf!Ij{);*Qwf<*ATYQ89F zU$7IO4Tp0`VS6A%s(e^DLVhZ1T5hOPr2N+xefm?Nh$t2}eWt(|v_v25Uw**-G27rF z{wg~qYFAUOwPvidlxh{`zcsv{MA@hZRJLC~*v|`J@*j_1Z+0tiv%6Ay?phv@M1x0t zH%V>f2(_z$-Ov{+TbGsD7c%@06kr%fBK2tX>j1&uC}OoK8HwU`SV&kZ?Z$H?cW4r> zeVcu9kt;5AA99J#O3MC^Nph-WWhNM6U0+`ja!XH9Z4}9XXRESnJ!!Z?xK{*2STyu$ z2BpJ$I?02bzyiw?Y_aIW8)5fFJ;<0Z(aTJ9sy4>KaBu9dik`8|0e+1R`su!Dogjn= zd!F7-6jqE;N4*{+Kg^t+JZ$Y0cZIXB zF$g+d@UVwJuBL{uf-rkUVw0 zAEt$m=#H>M3T}Du$!D*?bH{>{0n)&(!H} zx_*bSRr*_&j(5R^xp!QE;TQqIuvJ| zC6Nziksd#ErLiWWi2#E^P&ioFe=hfr^Kg&x&H*@bFV8Zb)6LI}Z@8n$KFS~F4#JXp z{hfvjP_$Ra4_T)~Bx^v4>?I0f4BTXvf6q&1O(}JC;f0FrbU`c&i%%Mf*cf0DxEmhm z2aG#LNv{*QU3sARqWqKXqnElSROq5#P5*Rwg$g^&ZPHgpJq&P4&dXG$}wNHeII7$xsf zVOQE@yNaku*7MTMK*Pl$s7-I4)z|{AC$oD*yZTN$=>3RM#A=NdD!%~ z%0f7{8XL5tjDBe3>mk%Bu6S{`4eZLWh2^&cJtXN5pV_#fQ?0rz0RfD^iWeT6=ic+R z&-z}x9Gh*}1SPS|QuJBrr4O@d-X5P%%I!tSeGfk&(V??j6AI??`(7cS&1msrWkazX zmjZ`@GjE-$Q`=}II%5z>jh+|+u2J4(eWKp#KLHNsF{S5#V z1^{-W2uEsGQA2+eBPbG@bc4L>cALXr(Zs*iyfZK-$(%s1*g~L>wsem5l?;1OkST9G zUtaUM6Y|lkTQ(9bQd;a`9tHV_;-*O8uO%XRnH~HUSSrWqE+}*%(l1C>)f-e26KaKH zmrt^>zg?x_-wNK&25!}o=I*3q-tZ=(>4ig$Dhn;A1a2T*A-Q5?O14E-`e49}Wi4wk z7%~hn!Q8+uLDv+9B!<}GNK_`k^lQ!O*FFI=_=Q zdcwP8ws_sU?@RSJkUqZ-IR5J?rw=Te@S*a#M;YOM=qqW}A&xX$6$om*8R{A9w6k_o9Q5_#H6UVU26NVl_zXn_L{T+ z#(-2@L?71&;>)M`BtDP_XGr&GeHEZ%{f^Z6N`WI^{(0t-ZJRU+Y*_tCd$b^|%o36k zfA~d16uwL+74FGXj0iPy53?(nFj*bo69Sww2qZ8}Xb6P)Pm(E!yYiUh4J|>X!W+c( z`QT^3%NN-KrK(qzjJlx`2(V&20Ihf`;}N;9z|*dh7Pf=4^G#L=Da$DLGFnWFivWF{ zN-SGeHFJ@hNKtoTb|w!R^Je`RiqYAoI>`hNp6-Q-x{)n3PJCPSegvhdpfXXh4sI!M zu9>Q05Tv_4DMj2wNQ1|GxcW$DqoiBn$Lu~7I5}ATgmj8MNz(ZN0A1eL*f(?DnId&B zm#4>!ZB_?-5NIr`U>Ewralk}T!N!V9dYe;Fr%042v5>k0uOp6CxAEr2O}BffEqZnj zNSK!>P+U`(1HbY|_~p+d|BWJTD{j(^4TAqDC;nHA9aY2%}J~ z&h}cN)Jn6cT4JvT1;^0$=YkA7;lnBNv~Mm|J$i*7Rg1LoFIYngwL>4@B{7b}@zy${ zb!&80Sc>OW+I*kLT~NvmE+^h27k&az)E1FMOnc6**nT3#}MQ$J+WuqhP&4KXjC z5~B==2z=0AGh=x8xL;E>6|-lp{%@t2iQX>CRM7~3O}Og;k?f*SIdXJ?rwBc)Zp)eo>M*E z&EX)GuyJqr3<+U>wzg*>ClUWMJ*FD17yKbwSu8=|kLsen3jaVp0afvWcBIKz6SE3!?CSbnb(NIDp{=1!j?@YKWMEXzq z)|N*IL9i5JMUk|7j@hmQhfEv7Tw%8(XDh6}&WrEp`e*c^${_%!cI4O%bm9$9CrmY_ zN?|Z?jO0drLh0e*?DNytqZgUtY+*v?&x=CW6!+i4isO~INR&bCj>cKINe)0bw{rCU}%I<;fJilvo~vhn(Q8&fA#F` zJG`tzd24gstjm?Y8`Hk6?8C2OV`E3&?AkgTv9Y8+MxU;qs<%Qx-_Sg9YaNV@jR#2) z6U%XK$IN4Xf*!|yUB{oPGJd+q{380Dk^H!P7iju8^3}WBUshf< z4Yo~>%R<6AqmR@+h%OE|ⅇ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

    Hhl#T~t@bev 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ΝFUL83kzsCQZ2pA`GV)-lnCe=Yx86VL!nLp$GN*bN9 zbb3u3(#+_K-vB>bz_8{C{8-nR(={@@vu_aIU3%NCraadAHH~iWm1YxitbERCsV2s3 zsY9^fnj_RmYeZT)Ehg8z<_%lz_lfx%31?#=QKns$WT{#u6>+RihLza+9N3)n2T=)6 z>hZWp9rSeNqNjlz$%RVyxI@7d?t89A@|%k0JE@TfZG>OOYsM<@D{Q;2x*^76G?j}9 zUqe5j!V0S1_eo_S(&&{+s&u-=!fObH^IBQJ71OhX<4UXu|12p<4OnX%Be#YaIq14r zjNBS};6EHASM|im{VkoYLB$JW~+$3%#w8wUTj--05_2gjtR`V&UxgBMOV8r znK{wO6b;&zQxVW=hmIXd>J*LCDHNaV?j8o;?q#%v2cfuM2H_xB(Vg*ypa)mdz{-B%e~~@0-+N{Q;D*HvEiTIZZzj+US-AH5A>ZFq9ZDd0@+D20tSr(xHeUQiB*UawMisHXysFhN6;islvJrPqG=FfHx*A9yAal_ zl2JW+Gw)X1GXj9C>A0D_1rJpT1_*12t_eh@>0hmE6qO_r5SBy{&XySS!5oQ6rF^2U zM*&(qr=(gO(G>1zfiYtYP5^DShB&ks++;h zhLraE-0da7Frpbb~H5<^CMDEb-AZhCs z9VHY-6L#u!P_pKx5|;y&`@0605az^{)oV7i8Qd_z2350R;sz4pqIh1(uT@aKV0Ddn zMaY@E+_I}daDY*kOeIVHC;2~f@(IbX1d-PbktygyoF#%??0Q< zRBxns9w#GsPaoHgyjOMK`$ze_5)yR^GEQ7kDSDPw+vw^cq`M}A9TI6vP8Aq_X!uGc zKgHKn3;t{H3+{5&L4|nK~B-8qlid=jO4}W-4wPlk-+?5Iy;yVb* zD_!E3d^jv4d@v5NsU(yAKDm`1@{)9-jLN?74C00J*yp^<#06m5XWXl(2=S65C-~j8 zi11{bXIv%;!v?)WCfMZG@J)H-=0QHcI6oRMFTkz^_iPGRVEIA{vG!``kUPJ%tZGSz zlhwa}2Qe#Zqi@k%q+#YE-__JU_!GENBwGRhTybg!rO2Ca^Z?6HD2JHP4Z4yLw+=(x zT?BFwB17j5#pabU6G;VNA-ra6fHmfU6v}jVML#atSE8b;g4WGXm}lCf$#cR$o5|99 zP=bH|ecrp$PeBY75xH_ zTQMtLo5wS$XI#Ye8-gFgBWZWh4D|4H4Zai+#yd82rd;px``?|L{mI+Avlf$YdvgqBdr$C;m;GCI z1fI3`dvPLlD&pOfz6!8yTwSphr;Qdsk^KZ7blF8sA%@|5JRUaQXUAi43JO*eD{mrm z6M(NI;Il5g=9M3$Y)#UslffgD(M4jp*r6WIoI&Jrs8h`1nuzz{3sjpMj_~dH4IOLY z%pXg}iX`KqJPq>lxS1vIlF9UeYg#QYj*^tfXT3k;TeanY-c+>EXDD4(6Fj;$^wx|I>mB=g)l>xYqy8 z`T+F-1YKQFu~NmWYy^5$9#LWLTBL#Kz;t5}*eSu-sq*f1n@8S=>WbIcuxfi9(e{C} z{k7@mo~DN*5#(WLbgo4OL6WDDb;l40g{T53 z=@bEx5QVX^YQ#-P+Qz%~$eQ%~AdAe+Lhn?=Q*daJ4jzHdqQe}SHzv~rg=CMoNa?I~ za&lyC68S*YH6Zb1lGS9rFS7`6YbXY|x~{-YeARTpTAg ziirc2-9zT~h_;1w_PiYvU=@2OXj#)(%#174aK$CJa#dxFILA4qqr*ZEk5>(p4Ij~l zplGT(=g96!mZ%jeKr}YUgj@cmPh&kV)hey@UC%U-$ipVRV?E7zUWu2yyzCQ+9W#fn zEHFgqG887l6Klbs9gRmf8`|-Wq&&Wn=)}B7>d_P6wxxCRl&{y?wgdV(3`_!UzQmQf z5zgkuyRCvctO$1JB!CizO(2kA8;1!OT=rI+fb3qFHWWR%(&JMaa#+nM4!$pKsYqC18!rRBYov5zaH`VfusCHFNw`V(6yrCbr6vL`L6K z%g0+d$bWo>`Fx%M*lk2c-&M`?sx4RY_kw&S`09e$a^>&HgHPa0yzQ+|^tP=|r?d^_ zrSmrYj6H^k*~f2QysIvm`@DDEe&$8FYa4vIHgAV5bg$|+^|MdT9)HU|I?v*7zX#nX z!}p&vwyIyzl3p-@ZF+)>HT-zbWAS$M^@>}_u@Bs@R5Ci_<;B)})BhffZSa|Is^#&% zfBod`r{A)VU$y0G+Zh7yX4sRjpS(TxV()uzK7HelpmWte`xH0F?!5A^_q9zv70xU7 zDvalr7me;)_uh;0nr=Blf@8P)*Nl8BoTBd4yWYKXdLDi3uF|~;VlLhFR?ifP+`LCg z#|pZ4IpGv?uio|Uk8htx-j!F6yvu7Keg39e;uYt0|3-fa_g*~ zO{Giynl|i)epJ7{Wo&0Y2r-B~#hkIGZ>IZ-MCU=TjOcQ5FZ)k3am@=> z>!Ru-AMHGAOOhIUxI>2>;XW0mLY94d#bLfA|76UTE)&;TPV} zy1uEzs;|!eQ}*p}lMJijZM9Q=)GceEd)a=HQm(#huIO3;Q)X_5a-=r$=-h~cv>gEtb^=t%F3)&~;aUQK@gO-3t) zclhL0%inF-6?-G9YYrfb+XjAS-%LceAX*Sjok4VU!IYxzLm*5t0tXl(g;Ma8C+YP6 M1Gf>Uq?tHB0M)KYa{vGU literal 0 HcmV?d00001 diff --git a/operator_ui/TAG b/operator_ui/TAG index 83fe7342c1d..d6b3cc6c88d 100644 --- a/operator_ui/TAG +++ b/operator_ui/TAG @@ -1 +1 @@ -v0.8.0-2ab585c +v0.8.0-9f29991 From c93e83ab992c5238ec79f9581f2eb370d9862492 Mon Sep 17 00:00:00 2001 From: HenryNguyen5 <6404866+HenryNguyen5@users.noreply.github.com> Date: Thu, 6 Jun 2024 10:30:50 -0400 Subject: [PATCH 14/40] Keystone CRIB Scripts (#13190) * Keystone CRIB Scripts * fixup! Keystone CRIB Scripts * Make keystone provisioning 1 click * Address self-feedback * Add env var check for keystone * Update documentation * Migrate gitignore to be relative to keystone * fixup! Keystone CRIB Scripts * fixup! fixup! Keystone CRIB Scripts * Update node rendering template * fixup! Update node rendering template --- .changeset/bright-beers-compete.md | 5 + .gitignore | 3 +- core/scripts/go.mod | 34 ++- core/scripts/go.sum | 64 ++++- core/scripts/keystone/.cache/.gitkeep | 0 core/scripts/keystone/.gitignore | 5 + .../keystone/01_deploy_contracts-sample.sh | 11 + .../keystone/02_deploy_jobspecs-sample.sh | 7 + core/scripts/keystone/03_gen_crib-sample.sh | 6 + .../keystone/04_delete_ocr3_jobs-sample.sh | 3 + core/scripts/keystone/README.md | 91 ++++++++ core/scripts/keystone/artefacts/README.md | 1 + core/scripts/keystone/main.go | 48 ++++ .../{config_example.json => ocr_config.json} | 0 .../scripts/keystone/public_keys_example.json | 38 --- .../keystone/src/01_deploy_contracts_cmd.go | 206 ++++++++++++++++ .../keystone/src/02_deploy_jobspecs_cmd.go | 146 ++++++++++++ .../src/03_gen_crib_cluster_overrides_cmd.go | 73 ++++++ .../03_gen_crib_cluster_overrides_cmd_test.go | 19 ++ .../keystone/src/04_delete_ocr3_jobs_cmd.go | 79 +++++++ core/scripts/keystone/src/88_gen_jobspecs.go | 89 +++++++ .../keystone/src/88_gen_jobspecs_test.go | 37 +++ .../88_gen_ocr3_config.go} | 109 ++++----- .../keystone/src/88_gen_ocr3_config_test.go | 31 +++ core/scripts/keystone/src/99_app.go | 31 +++ core/scripts/keystone/src/99_crib_client.go | 61 +++++ core/scripts/keystone/src/99_errors.go | 8 + core/scripts/keystone/src/99_fetch_keys.go | 220 ++++++++++++++++++ core/scripts/keystone/src/99_files.go | 69 ++++++ core/scripts/keystone/src/99_files_test.go | 36 +++ core/scripts/keystone/src/99_k8s_client.go | 159 +++++++++++++ core/scripts/keystone/src/99_nodes.go | 69 ++++++ ...3_gen_crib_cluster_overrides_cmd_test.snap | 44 ++++ .../__snapshots__/88_gen_jobspecs_test.snap | 135 +++++++++++ .../88_gen_ocr3_config_test.snap | 23 ++ .../keystone/src/testdata/NodeList.txt | 5 + .../keystone/src/testdata/PublicKeys.json | 47 ++++ .../keystone/src/testdata/SampleConfig.json | 27 +++ .../scripts/keystone/templates/bootstrap.toml | 8 + .../keystone/templates/crib-overrides.yaml | 41 ++++ core/scripts/keystone/templates/oracle.toml | 26 +++ crib/.env.example | 8 + crib/README.md | 163 ++++++------- crib/devspace.yaml | 102 +++++++- crib/scripts/check_env_vars.sh | 25 +- crib/scripts/cribbit.sh | 83 ++++--- 46 files changed, 2261 insertions(+), 234 deletions(-) create mode 100644 .changeset/bright-beers-compete.md create mode 100644 core/scripts/keystone/.cache/.gitkeep create mode 100644 core/scripts/keystone/.gitignore create mode 100755 core/scripts/keystone/01_deploy_contracts-sample.sh create mode 100755 core/scripts/keystone/02_deploy_jobspecs-sample.sh create mode 100755 core/scripts/keystone/03_gen_crib-sample.sh create mode 100755 core/scripts/keystone/04_delete_ocr3_jobs-sample.sh create mode 100644 core/scripts/keystone/README.md create mode 100644 core/scripts/keystone/artefacts/README.md create mode 100644 core/scripts/keystone/main.go rename core/scripts/keystone/{config_example.json => ocr_config.json} (100%) delete mode 100644 core/scripts/keystone/public_keys_example.json create mode 100644 core/scripts/keystone/src/01_deploy_contracts_cmd.go create mode 100644 core/scripts/keystone/src/02_deploy_jobspecs_cmd.go create mode 100644 core/scripts/keystone/src/03_gen_crib_cluster_overrides_cmd.go create mode 100644 core/scripts/keystone/src/03_gen_crib_cluster_overrides_cmd_test.go create mode 100644 core/scripts/keystone/src/04_delete_ocr3_jobs_cmd.go create mode 100644 core/scripts/keystone/src/88_gen_jobspecs.go create mode 100644 core/scripts/keystone/src/88_gen_jobspecs_test.go rename core/scripts/keystone/{gen_ocr3_config.go => src/88_gen_ocr3_config.go} (67%) create mode 100644 core/scripts/keystone/src/88_gen_ocr3_config_test.go create mode 100644 core/scripts/keystone/src/99_app.go create mode 100644 core/scripts/keystone/src/99_crib_client.go create mode 100644 core/scripts/keystone/src/99_errors.go create mode 100644 core/scripts/keystone/src/99_fetch_keys.go create mode 100644 core/scripts/keystone/src/99_files.go create mode 100644 core/scripts/keystone/src/99_files_test.go create mode 100644 core/scripts/keystone/src/99_k8s_client.go create mode 100644 core/scripts/keystone/src/99_nodes.go create mode 100755 core/scripts/keystone/src/__snapshots__/03_gen_crib_cluster_overrides_cmd_test.snap create mode 100755 core/scripts/keystone/src/__snapshots__/88_gen_jobspecs_test.snap create mode 100755 core/scripts/keystone/src/__snapshots__/88_gen_ocr3_config_test.snap create mode 100644 core/scripts/keystone/src/testdata/NodeList.txt create mode 100644 core/scripts/keystone/src/testdata/PublicKeys.json create mode 100644 core/scripts/keystone/src/testdata/SampleConfig.json create mode 100644 core/scripts/keystone/templates/bootstrap.toml create mode 100644 core/scripts/keystone/templates/crib-overrides.yaml create mode 100644 core/scripts/keystone/templates/oracle.toml diff --git a/.changeset/bright-beers-compete.md b/.changeset/bright-beers-compete.md new file mode 100644 index 00000000000..dfd121afe99 --- /dev/null +++ b/.changeset/bright-beers-compete.md @@ -0,0 +1,5 @@ +--- +"chainlink": patch +--- + +#internal Add Keystone CRIB Provisioning diff --git a/.gitignore b/.gitignore index bcf51bea35b..f17a6bf1430 100644 --- a/.gitignore +++ b/.gitignore @@ -101,4 +101,5 @@ override*.toml # Pythin venv .venv/ -ocr_soak_report.csv \ No newline at end of file +ocr_soak_report.csv + diff --git a/core/scripts/go.mod b/core/scripts/go.mod index 71cd2271115..228a0d27855 100644 --- a/core/scripts/go.mod +++ b/core/scripts/go.mod @@ -1,6 +1,8 @@ module github.com/smartcontractkit/chainlink/core/scripts -go 1.21.7 +go 1.22.0 + +toolchain go1.22.3 // Make sure we're working with the latest chainlink libs replace github.com/smartcontractkit/chainlink/v2 => ../../ @@ -9,6 +11,7 @@ require ( github.com/docker/docker v24.0.7+incompatible github.com/docker/go-connections v0.4.0 github.com/ethereum/go-ethereum v1.13.8 + github.com/gkampitakis/go-snaps v0.5.4 github.com/google/go-cmp v0.6.0 github.com/google/uuid v1.6.0 github.com/jmoiron/sqlx v1.3.5 @@ -32,6 +35,9 @@ require ( github.com/umbracle/fastrlp v0.0.0-20220527094140-59d5dd30e722 github.com/urfave/cli v1.22.14 go.dedis.ch/kyber/v3 v3.1.0 + k8s.io/api v0.30.0 + k8s.io/apimachinery v0.30.0 + k8s.io/client-go v0.30.0 ) require ( @@ -110,11 +116,12 @@ require ( github.com/dominikbraun/graph v0.23.0 // indirect github.com/dustin/go-humanize v1.0.1 // indirect github.com/dvsekhvalnov/jose2go v1.7.0 // indirect + github.com/emicklei/go-restful/v3 v3.11.0 // indirect github.com/esote/minmaxheap v1.0.0 // indirect github.com/ethereum/c-kzg-4844 v0.4.0 // indirect github.com/fatih/color v1.16.0 // indirect github.com/fsnotify/fsnotify v1.6.0 // indirect - github.com/fxamacker/cbor/v2 v2.5.0 // indirect + github.com/fxamacker/cbor/v2 v2.6.0 // indirect github.com/gabriel-vasile/mimetype v1.4.2 // indirect github.com/gagliardetto/binary v0.7.7 // indirect github.com/gagliardetto/solana-go v1.8.4 // indirect @@ -129,6 +136,8 @@ require ( github.com/gin-contrib/size v0.0.0-20230212012657-e14a14094dc4 // indirect github.com/gin-contrib/sse v0.1.0 // indirect github.com/gin-gonic/gin v1.9.1 // indirect + github.com/gkampitakis/ciinfo v0.3.0 // indirect + github.com/gkampitakis/go-diff v1.3.2 // indirect github.com/go-asn1-ber/asn1-ber v1.5.5 // indirect github.com/go-json-experiment/json v0.0.0-20231102232822-2e55bd4e08b0 // indirect github.com/go-kit/kit v0.12.0 // indirect @@ -138,6 +147,9 @@ require ( github.com/go-logr/logr v1.4.1 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/go-ole/go-ole v1.2.6 // indirect + github.com/go-openapi/jsonpointer v0.20.0 // indirect + github.com/go-openapi/jsonreference v0.20.2 // indirect + github.com/go-openapi/swag v0.22.4 // indirect github.com/go-playground/locales v0.14.1 // indirect github.com/go-playground/universal-translator v0.18.1 // indirect github.com/go-playground/validator/v10 v10.15.5 // indirect @@ -153,6 +165,7 @@ require ( github.com/golang/protobuf v1.5.4 // indirect github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb // indirect github.com/google/btree v1.1.2 // indirect + github.com/google/gnostic-models v0.6.8 // indirect github.com/google/go-tpm v0.9.0 // indirect github.com/google/gofuzz v1.2.0 // indirect github.com/google/pprof v0.0.0-20231023181126-ff6d637d2a7b // indirect @@ -187,6 +200,7 @@ require ( github.com/holiman/uint256 v1.2.4 // indirect github.com/huandu/skiplist v1.2.0 // indirect github.com/huin/goupnp v1.3.0 // indirect + github.com/imdario/mergo v0.3.16 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/invopop/jsonschema v0.12.0 // indirect github.com/jackc/chunkreader/v2 v2.0.1 // indirect @@ -199,6 +213,7 @@ require ( github.com/jackc/pgx/v4 v4.18.2 // indirect github.com/jackpal/go-nat-pmp v1.0.2 // indirect github.com/jmhodges/levigo v1.0.0 // indirect + github.com/josharian/intern v1.0.0 // indirect github.com/jpillora/backoff v1.0.0 // indirect github.com/json-iterator/go v1.1.12 // indirect github.com/klauspost/compress v1.17.3 // indirect @@ -213,6 +228,7 @@ require ( github.com/logrusorgru/aurora v2.0.3+incompatible // indirect github.com/magiconair/properties v1.8.7 // indirect github.com/mailru/easyjson v0.7.7 // indirect + github.com/maruel/natural v1.1.1 // indirect github.com/mattn/go-colorable v0.1.13 // indirect github.com/mattn/go-isatty v0.0.20 // indirect github.com/mattn/go-runewidth v0.0.14 // indirect @@ -227,6 +243,7 @@ require ( github.com/mostynb/zstdpool-freelist v0.0.0-20201229113212-927304c0c3b1 // indirect github.com/mr-tron/base58 v1.2.0 // indirect github.com/mtibben/percent v0.2.1 // indirect + github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/mwitkow/grpc-proxy v0.0.0-20230212185441-f345521cb9c9 // indirect github.com/oklog/run v1.1.0 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect @@ -246,7 +263,7 @@ require ( github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect github.com/rivo/uniseg v0.4.4 // indirect github.com/robfig/cron/v3 v3.0.1 // indirect - github.com/rogpeppe/go-internal v1.11.0 // indirect + github.com/rogpeppe/go-internal v1.12.0 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect github.com/santhosh-tekuri/jsonschema/v5 v5.3.1 // indirect github.com/sasha-s/go-deadlock v0.3.1 // indirect @@ -281,7 +298,8 @@ require ( github.com/tidwall/btree v1.6.0 // indirect github.com/tidwall/gjson v1.17.0 // indirect github.com/tidwall/match v1.1.1 // indirect - github.com/tidwall/pretty v1.2.0 // indirect + github.com/tidwall/pretty v1.2.1 // indirect + github.com/tidwall/sjson v1.2.5 // indirect github.com/tklauser/go-sysconf v0.3.12 // indirect github.com/tklauser/numcpus v0.6.1 // indirect github.com/twitchyliquid64/golang-asm v0.15.1 // indirect @@ -316,6 +334,7 @@ require ( golang.org/x/exp v0.0.0-20240213143201-ec583247a57a // indirect golang.org/x/mod v0.15.0 // indirect golang.org/x/net v0.24.0 // indirect + golang.org/x/oauth2 v0.17.0 // indirect golang.org/x/sync v0.6.0 // indirect golang.org/x/sys v0.19.0 // indirect golang.org/x/term v0.19.0 // indirect @@ -323,18 +342,25 @@ require ( golang.org/x/time v0.5.0 // indirect golang.org/x/tools v0.18.0 // indirect gonum.org/v1/gonum v0.14.0 // indirect + google.golang.org/appengine v1.6.8 // indirect google.golang.org/genproto v0.0.0-20231030173426-d783a09b4405 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20231016165738-49dd2c1f3d0b // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20231106174013-bbf56f31fb17 // indirect google.golang.org/grpc v1.59.0 // indirect google.golang.org/protobuf v1.33.0 // indirect gopkg.in/guregu/null.v4 v4.0.0 // indirect + gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/natefinch/lumberjack.v2 v2.2.1 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect + k8s.io/klog/v2 v2.120.1 // indirect + k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 // indirect + k8s.io/utils v0.0.0-20230726121419-3b25d923346b // indirect pgregory.net/rapid v0.5.5 // indirect rsc.io/tmplfunc v0.0.3 // indirect + sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect + sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect sigs.k8s.io/yaml v1.4.0 // indirect ) diff --git a/core/scripts/go.sum b/core/scripts/go.sum index 24a43793f04..86424141720 100644 --- a/core/scripts/go.sum +++ b/core/scripts/go.sum @@ -381,6 +381,8 @@ github.com/elastic/go-sysinfo v1.11.1 h1:g9mwl05njS4r69TisC+vwHWTSKywZFYYUu3so3T github.com/elastic/go-sysinfo v1.11.1/go.mod h1:6KQb31j0QeWBDF88jIdWSxE8cwoOB9tO4Y4osN7Q70E= github.com/elastic/go-windows v1.0.1 h1:AlYZOldA+UJ0/2nBuqWdo90GFCgG9xuyw9SYzGUtJm0= github.com/elastic/go-windows v1.0.1/go.mod h1:FoVvqWSun28vaDQPbj2Elfc0JahhPB7WQEGa3c814Ss= +github.com/emicklei/go-restful/v3 v3.11.0 h1:rAQeMHw1c7zTmncogyy8VvRZwtkmkZ4FxERmMY4rD+g= +github.com/emicklei/go-restful/v3 v3.11.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= @@ -423,8 +425,8 @@ github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4 github.com/fsnotify/fsnotify v1.5.4/go.mod h1:OVB6XrOHzAwXMpEM7uPOzcehqUV2UqJxmVXmkdnm1bU= github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= -github.com/fxamacker/cbor/v2 v2.5.0 h1:oHsG0V/Q6E/wqTS2O1Cozzsy69nqCiguo5Q1a1ADivE= -github.com/fxamacker/cbor/v2 v2.5.0/go.mod h1:TA1xS00nchWmaBnEIxPSE5oHLuJBAVvqrtAnWBwBCVo= +github.com/fxamacker/cbor/v2 v2.6.0 h1:sU6J2usfADwWlYDAFhZBQ6TnLFBHxgesMrQfQgk1tWA= +github.com/fxamacker/cbor/v2 v2.6.0/go.mod h1:pxXPTn3joSm21Gbwsv0w9OSA2y1HFR9qXEeXQVeNoDQ= github.com/gabriel-vasile/mimetype v1.4.2 h1:w5qFW6JKBz9Y393Y4q372O9A7cUSequkh1Q7OhCmWKU= github.com/gabriel-vasile/mimetype v1.4.2/go.mod h1:zApsH/mKG4w07erKIaJPFiX0Tsq9BFQgN3qGY5GnNgA= github.com/gagliardetto/binary v0.7.7 h1:QZpT38+sgoPg+TIQjH94sLbl/vX+nlIRA37pEyOsjfY= @@ -461,6 +463,12 @@ github.com/gin-gonic/gin v1.4.0/go.mod h1:OW2EZn3DO8Ln9oIKOvM++LBO+5UPHJJDH72/q/ github.com/gin-gonic/gin v1.8.1/go.mod h1:ji8BvRH1azfM+SYow9zQ6SZMvR8qOMZHmsCuWR9tTTk= github.com/gin-gonic/gin v1.9.1 h1:4idEAncQnU5cB7BeOkPtxjfCSye0AAm1R0RVIqJ+Jmg= github.com/gin-gonic/gin v1.9.1/go.mod h1:hPrL7YrpYKXt5YId3A/Tnip5kqbEAP+KLuI3SUcPTeU= +github.com/gkampitakis/ciinfo v0.3.0 h1:gWZlOC2+RYYttL0hBqcoQhM7h1qNkVqvRCV1fOvpAv8= +github.com/gkampitakis/ciinfo v0.3.0/go.mod h1:1NIwaOcFChN4fa/B0hEBdAb6npDlFL8Bwx4dfRLRqAo= +github.com/gkampitakis/go-diff v1.3.2 h1:Qyn0J9XJSDTgnsgHRdz9Zp24RaJeKMUHg2+PDZZdC4M= +github.com/gkampitakis/go-diff v1.3.2/go.mod h1:LLgOrpqleQe26cte8s36HTWcTmMEur6OPYerdAAS9tk= +github.com/gkampitakis/go-snaps v0.5.4 h1:GX+dkKmVsRenz7SoTbdIEL4KQARZctkMiZ8ZKprRwT8= +github.com/gkampitakis/go-snaps v0.5.4/go.mod h1:ZABkO14uCuVxBHAXAfKG+bqNz+aa1bGPAg8jkI0Nk8Y= github.com/go-asn1-ber/asn1-ber v1.5.5 h1:MNHlNMBDgEKD4TcKr36vQN68BA00aDfjIt3/bD50WnA= github.com/go-asn1-ber/asn1-ber v1.5.5/go.mod h1:hEBeB/ic+5LoWskz+yKT7vGhhPYkProFKoKdwZRWMe0= github.com/go-check/check v0.0.0-20180628173108-788fd7840127/go.mod h1:9ES+weclKsC9YodN5RgxqK/VD9HM9JsCSh7rNhMZE98= @@ -498,6 +506,14 @@ github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre github.com/go-martini/martini v0.0.0-20170121215854-22fa46961aab/go.mod h1:/P9AEU963A2AYjv4d1V5eVL1CQbEJq6aCNHDDjibzu8= github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs= +github.com/go-openapi/jsonpointer v0.20.0 h1:ESKJdU9ASRfaPNOPRx12IUyA1vn3R9GiE3KYD14BXdQ= +github.com/go-openapi/jsonpointer v0.20.0/go.mod h1:6PGzBjjIIumbLYysB73Klnms1mwnU4G3YHOECG3CedA= +github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE= +github.com/go-openapi/jsonreference v0.20.2/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k= +github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14= +github.com/go-openapi/swag v0.22.4 h1:QLMzNJnMGPRNDCbySlcj1x01tzU8/9LTTL9hZZZogBU= +github.com/go-openapi/swag v0.22.4/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14= github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= github.com/go-playground/assert/v2 v2.2.0 h1:JvknZsQTYeFEAhQwI4qEt9cyV5ONwRHC+lYKSsYSR8s= github.com/go-playground/assert/v2 v2.2.0/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= @@ -515,6 +531,8 @@ github.com/go-sql-driver/mysql v1.7.1 h1:lUIinVbN1DY0xBg0eMOzmmtGoHwWBbvnWubQUrt github.com/go-sql-driver/mysql v1.7.1/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= +github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI= +github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572/go.mod h1:9Pwr4B2jHnOSGXyyzV8ROjYa2ojvAY6HCGYYfMoC3Ls= github.com/go-webauthn/webauthn v0.9.4 h1:YxvHSqgUyc5AK2pZbqkWWR55qKeDPhP8zLDr6lpIc2g= github.com/go-webauthn/webauthn v0.9.4/go.mod h1:LqupCtzSef38FcxzaklmOn7AykGKhAhr9xlRbdbgnTw= github.com/go-webauthn/x v0.1.5 h1:V2TCzDU2TGLd0kSZOXdrqDVV5JB9ILnKxA9S53CSBw0= @@ -590,6 +608,8 @@ github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Z github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.1.2 h1:xf4v41cLI2Z6FxbKm+8Bu+m8ifhj15JuZ9sa0jZCMUU= github.com/google/btree v1.1.2/go.mod h1:qOPhT0dTNdNzV6Z/lhRX0YXUafgPLFUh+gZMl761Gm4= +github.com/google/gnostic-models v0.6.8 h1:yo/ABAfM5IMRsS1VnXjTBvUb61tFIHozhlYvRgGre9I= +github.com/google/gnostic-models v0.6.8/go.mod h1:5n7qKqH0f5wFt+aWF8CW6pZLLNOfYuF5OpfBSENuI8U= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= @@ -848,6 +868,7 @@ github.com/joho/godotenv v1.4.0/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwA github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= github.com/jonboulle/clockwork v0.4.0 h1:p4Cf1aMWXnXAUh8lVfewRBx1zaTSYKrKMF2g3ST4RZ4= github.com/jonboulle/clockwork v0.4.0/go.mod h1:xgRqUGwRcjKCO1vbZUEtSLrqKoPSsUpK7fnezOII0kc= +github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= github.com/jpillora/backoff v1.0.0 h1:uvFg412JmmHBHw7iwprIxkPMI+sGQ4kzOWsMeHnm2EA= github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= @@ -927,6 +948,8 @@ github.com/manifoldco/promptui v0.9.0 h1:3V4HzJk1TtXW1MTZMP7mdlwbBpIinw3HztaIlYt github.com/manifoldco/promptui v0.9.0/go.mod h1:ka04sppxSGFAtxX0qhlYQjISsg9mR4GWtQEhdbn6Pgg= github.com/manyminds/api2go v0.0.0-20171030193247-e7b693844a6f h1:tVvGiZQFjOXP+9YyGqSA6jE55x1XVxmoPYudncxrZ8U= github.com/manyminds/api2go v0.0.0-20171030193247-e7b693844a6f/go.mod h1:Z60vy0EZVSu0bOugCHdcN5ZxFMKSpjRgsnh0XKPFqqk= +github.com/maruel/natural v1.1.1 h1:Hja7XhhmvEFhcByqDoHz9QZbkWey+COd9xWfCfn1ioo= +github.com/maruel/natural v1.1.1/go.mod h1:v+Rfd79xlw1AgVBjbO0BEQmptqb5HvL/k9GRHB7ZKEg= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= @@ -1006,6 +1029,8 @@ github.com/mr-tron/base58 v1.2.0 h1:T/HDJBh4ZCPbU39/+c3rRvE0uKBQlU27+QI8LJ4t64o= github.com/mr-tron/base58 v1.2.0/go.mod h1:BinMc/sQntlIE1frQmRFPUoPA1Zkr8VRgBdjWI2mNwc= github.com/mtibben/percent v0.2.1 h1:5gssi8Nqo8QU/r2pynCm+hBQHpkB/uNK7BJCFogWdzs= github.com/mtibben/percent v0.2.1/go.mod h1:KG9uO+SZkUp+VkRHsCdYQV3XSZrrSpR3O9ibNBTZrns= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/nats-io/jwt v0.3.0/go.mod h1:fRYCDE99xlTsqUzISS1Bi75UBJ6ljOJQOAAu5VglpSg= github.com/nats-io/nats.go v1.9.1/go.mod h1:ZjDU1L/7fJ09jvUSRVBR2e7+RnLiiIQyqyzEE/Zbp4w= @@ -1032,14 +1057,16 @@ github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vv github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU= github.com/onsi/ginkgo/v2 v2.1.3/go.mod h1:vw5CSIxN1JObi/U8gcbwft7ZxR2dgaR70JSE3/PpL4c= +github.com/onsi/ginkgo/v2 v2.15.0 h1:79HwNRBAZHOEwrczrgSOPy+eFTTlIGELKy5as+ClttY= +github.com/onsi/ginkgo/v2 v2.15.0/go.mod h1:HlxMHtYF57y6Dpf+mc5529KKmSq9h2FpCF+/ZkwUxKM= github.com/onsi/gomega v1.4.1/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY= github.com/onsi/gomega v1.19.0/go.mod h1:LY+I3pBVzYsTBU1AnDwOSxaYi9WoWiqgwooUqq9yPro= -github.com/onsi/gomega v1.30.0 h1:hvMK7xYz4D3HapigLTeGdId/NcfQx1VHMJc60ew99+8= -github.com/onsi/gomega v1.30.0/go.mod h1:9sxs+SwGrKI0+PWe4Fxa9tFQQBG5xSsSbMXOI8PPpoQ= +github.com/onsi/gomega v1.31.0 h1:54UJxxj6cPInHS3a35wm6BK/F9nHYueZ1NVujHDrnXE= +github.com/onsi/gomega v1.31.0/go.mod h1:DW9aCi7U6Yi40wNVAvT6kzFnEVEI5n3DloYBiKiT6zk= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= github.com/opencontainers/image-spec v1.1.0-rc5 h1:Ygwkfw9bpDvs+c9E34SdgGOj41dX/cbdlwvlWt0pnFI= @@ -1136,8 +1163,8 @@ github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTE github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE= github.com/rogpeppe/go-internal v1.8.1/go.mod h1:JeRgkft04UBgHMgCIwADu4Pn6Mtm5d4nPKWu0nJ5d+o= github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= -github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= -github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA= +github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= +github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= github.com/rs/cors v1.8.3 h1:O+qNyWn7Z+F9M0ILBHgMVPuB1xTOucVd5gtaYyXBpRo= github.com/rs/cors v1.8.3/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ= @@ -1285,13 +1312,17 @@ github.com/theodesp/go-heaps v0.0.0-20190520121037-88e35354fe0a/go.mod h1:/sfW47 github.com/tidwall/btree v1.6.0 h1:LDZfKfQIBHGHWSwckhXI0RPSXzlo+KYdjK7FWSqOzzg= github.com/tidwall/btree v1.6.0/go.mod h1:twD9XRA5jj9VUQGELzDO4HPQTNJsoWWfYEL+EUQ2cKY= github.com/tidwall/gjson v1.9.3/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= +github.com/tidwall/gjson v1.14.2/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= github.com/tidwall/gjson v1.17.0 h1:/Jocvlh98kcTfpN2+JzGQWQcqrPQwDrVEMApx/M5ZwM= github.com/tidwall/gjson v1.17.0/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= github.com/tidwall/match v1.1.1 h1:+Ho715JplO36QYgwN9PGYNhgZvoUSc9X2c80KVTi+GA= github.com/tidwall/match v1.1.1/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM= github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= -github.com/tidwall/pretty v1.2.0 h1:RWIZEg2iJ8/g6fDDYzMpobmaoGh5OLl4AXtGUGPcqCs= github.com/tidwall/pretty v1.2.0/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= +github.com/tidwall/pretty v1.2.1 h1:qjsOFOWWQl+N3RsoF5/ssm1pHmJJwhjlSbZ51I6wMl4= +github.com/tidwall/pretty v1.2.1/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= +github.com/tidwall/sjson v1.2.5 h1:kLy8mja+1c9jlljvWTlSazM7cKDRfJuR/bOJhcY5NcY= +github.com/tidwall/sjson v1.2.5/go.mod h1:Fvgq9kS/6ociJEDnK0Fk1cpYF4FIW6ZF7LAe+6jwd28= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= @@ -1714,6 +1745,7 @@ golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= @@ -1943,6 +1975,8 @@ gopkg.in/guregu/null.v2 v2.1.2/go.mod h1:XORrx8tyS5ZDcyUboCIxQtta/Aujk/6pfWrn9Xe gopkg.in/guregu/null.v4 v4.0.0 h1:1Wm3S1WEA2I26Kq+6vcW+w0gcDo44YKYD7YIEJNHDjg= gopkg.in/guregu/null.v4 v4.0.0/go.mod h1:YoQhUrADuG3i9WqesrCmpNRwm1ypAgSHYqoOcTu/JrI= gopkg.in/inconshreveable/log15.v2 v2.0.0-20180818164646-67afb5ed74ec/go.mod h1:aPpfJ7XW+gOuirDoZ8gHhLh3kZ1B08FtV2bbmy7Jv3s= +gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= +gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.51.1/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA= @@ -1981,6 +2015,18 @@ honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9 honnef.co/go/tools v0.1.3/go.mod h1:NgwopIslSNH47DimFoV78dnkksY2EFtX0ajyb3K/las= howett.net/plist v1.0.0 h1:7CrbWYbPPO/PyNy38b2EB/+gYbjCe2DXBxgtOOZbSQM= howett.net/plist v1.0.0/go.mod h1:lqaXoTrLY4hg8tnEzNru53gicrbv7rrk+2xJA/7hw9g= +k8s.io/api v0.30.0 h1:siWhRq7cNjy2iHssOB9SCGNCl2spiF1dO3dABqZ8niA= +k8s.io/api v0.30.0/go.mod h1:OPlaYhoHs8EQ1ql0R/TsUgaRPhpKNxIMrKQfWUp8QSE= +k8s.io/apimachinery v0.30.0 h1:qxVPsyDM5XS96NIh9Oj6LavoVFYff/Pon9cZeDIkHHA= +k8s.io/apimachinery v0.30.0/go.mod h1:iexa2somDaxdnj7bha06bhb43Zpa6eWH8N8dbqVjTUc= +k8s.io/client-go v0.30.0 h1:sB1AGGlhY/o7KCyCEQ0bPWzYDL0pwOZO4vAtTSh/gJQ= +k8s.io/client-go v0.30.0/go.mod h1:g7li5O5256qe6TYdAMyX/otJqMhIiGgTapdLchhmOaY= +k8s.io/klog/v2 v2.120.1 h1:QXU6cPEOIslTGvZaXvFWiP9VKyeet3sawzTOvdXb4Vw= +k8s.io/klog/v2 v2.120.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= +k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 h1:BZqlfIlq5YbRMFko6/PM7FjZpUb45WallggurYhKGag= +k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340/go.mod h1:yD4MZYeKMBwQKVht279WycxKyM84kkAx2DPrTXaeb98= +k8s.io/utils v0.0.0-20230726121419-3b25d923346b h1:sgn3ZU783SCgtaSJjpcVVlRqd6GSnlTLKgpAAttJvpI= +k8s.io/utils v0.0.0-20230726121419-3b25d923346b/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= lukechampine.com/uint128 v1.3.0 h1:cDdUVfRwDUDovz610ABgFD17nXD4/uDgVHl2sC3+sbo= lukechampine.com/uint128 v1.3.0/go.mod h1:c4eWIwlEGaxC/+H1VguhU4PHXNWDCDMUlWdIWl2j1gk= modernc.org/cc/v3 v3.41.0 h1:QoR1Sn3YWlmA1T4vLaKZfawdVtSiGx8H+cEojbC7v1Q= @@ -2012,5 +2058,9 @@ rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= rsc.io/tmplfunc v0.0.3 h1:53XFQh69AfOa8Tw0Jm7t+GV7KZhOi6jzsCzTtKbMvzU= rsc.io/tmplfunc v0.0.3/go.mod h1:AG3sTPzElb1Io3Yg4voV9AGZJuleGAwaVRxL9M49PhA= +sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo= +sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0= +sigs.k8s.io/structured-merge-diff/v4 v4.4.1 h1:150L+0vs/8DA78h1u02ooW1/fFq/Lwr+sGiqlzvrtq4= +sigs.k8s.io/structured-merge-diff/v4 v4.4.1/go.mod h1:N8hJocpFajUSSeSJ9bOZ77VzejKZaXsTtZo4/u7Io08= sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E= sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY= diff --git a/core/scripts/keystone/.cache/.gitkeep b/core/scripts/keystone/.cache/.gitkeep new file mode 100644 index 00000000000..e69de29bb2d diff --git a/core/scripts/keystone/.gitignore b/core/scripts/keystone/.gitignore new file mode 100644 index 00000000000..4af4a42a015 --- /dev/null +++ b/core/scripts/keystone/.gitignore @@ -0,0 +1,5 @@ +# Keystone CRIB deployments +*.sh +!*-sample.sh +keystone +.cache/ diff --git a/core/scripts/keystone/01_deploy_contracts-sample.sh b/core/scripts/keystone/01_deploy_contracts-sample.sh new file mode 100755 index 00000000000..89e77f4556f --- /dev/null +++ b/core/scripts/keystone/01_deploy_contracts-sample.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +go run main.go \ + deploy-contracts \ + --ocrfile=ocr_config.json \ + --chainid=11155111 \ + --ethurl=ETH_URL \ + --accountkey=ACCOUNT_KEY \ + --onlysetconfig=false \ + --skipfunding=false \ + --dryrun=false diff --git a/core/scripts/keystone/02_deploy_jobspecs-sample.sh b/core/scripts/keystone/02_deploy_jobspecs-sample.sh new file mode 100755 index 00000000000..e99d54e0d3b --- /dev/null +++ b/core/scripts/keystone/02_deploy_jobspecs-sample.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +go run main.go \ + deploy-jobspecs \ + --chainid=11155111 \ + --p2pport=6690 \ + --onlyreplay=false diff --git a/core/scripts/keystone/03_gen_crib-sample.sh b/core/scripts/keystone/03_gen_crib-sample.sh new file mode 100755 index 00000000000..9193ef4f75b --- /dev/null +++ b/core/scripts/keystone/03_gen_crib-sample.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +go run main.go \ + generate-crib \ + --chainid=11155111 \ + --outpath=/tmp diff --git a/core/scripts/keystone/04_delete_ocr3_jobs-sample.sh b/core/scripts/keystone/04_delete_ocr3_jobs-sample.sh new file mode 100755 index 00000000000..3f3b50b055c --- /dev/null +++ b/core/scripts/keystone/04_delete_ocr3_jobs-sample.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +go run main.go delete-ocr3-jobs diff --git a/core/scripts/keystone/README.md b/core/scripts/keystone/README.md new file mode 100644 index 00000000000..9bf6adfff4e --- /dev/null +++ b/core/scripts/keystone/README.md @@ -0,0 +1,91 @@ +# Provisioning a CRIB keystone cluster + +Kudos to Functions team for inspiration. + +This document outlines the steps to provision a CRIB keystone cluster for testing OCR3. + +## Pre-requisites + +### Blockchain Node + +An HTTP URL to a blockchain node, such as a Geth node. This should be the same blockchain node that you used to deploy the chainlink node cluster. + +### Private Key + +A private key to a testing wallet to use for deployment and funding. This wallet should have some native token on the chain you're deploying to. For Sepolia, around 2 ETH should be sufficient. + +The easiest way to set this up is to download [Metamask](https://metamask.io/) and create a new wallet. Once you have created a wallet, you can export the private key by clicking on the three dots next to the wallet name, selecting "Account Details", and then "Show Private Key". + +## Usage + +### Your first deployment + +Using devspace, we can deploy a cluster and provision it via the `keystone` devspace profile. You'll want to follow the instructions in the [CRIB README](../../../crib/README.md) to set up your environment and deploy the cluster. + +**NOTE**: You'll want to deploy using the `keystone` profile, not the default profile file. + +```bash +# From /crib +devspace deploy --profile keystone +``` + +For convenience, setting the TTL to be a much longer value is helpful, otherwise the testnet native tokens that you send to nodes will be lost. You can set this in your crib `.env` file, or interactively via: + +```bash +# From /crib +devspace run ttl ${namespace} 7d +``` + +Everytime the interactive command is run, the TTL is reset. + +### Iterate +Let's say you made some changes to the codebase, and you want to see that reflected within the cluster. Simply redeploy via: +```bash +devspace deploy --profile keystone +``` + +### Restarting from a fresh slate + +If you want to redeploy all resources, then you'll want to do the following: + +```bash +# From /crib +devspace purge --profile keystone # Remove all k8s resources +./cribbit.sh crib- # Purge currently leaves some hanging resources, make a new namespace +devspace deploy --profile keysone --clean # Wipe any keystone related persisted data, like artefacts and caches. +``` + +## What does Provisioning a CRIB keystone cluster do? + +### Provision On-Chain Resources + +This will provision on-chain resources, namely: + +1. Deploy the forwarder contract +2. Deploy OCR3 config contract +3. Setting the configuration for the OCR3 contract +4. Funding transmitters with native tokens + +When the on-chain resources are deployed, a json file within `artefacts` will be generated. This file will contain the addresses of the forwarder contract, the OCR3 config contract, and the block number at which the configuration was set. Be careful about deleting this file, as if you lose it, you will need to redeploy the contracts and run through all proceeding steps. + +### Job Spec Deployment + +The next step is to deploy the OCR3 job specs to the chainlink node cluster. This will create a bootstrapping job for the first node of the cluster (determined via alphabetical order) and an OCR job for each other node in the cluster. + +### Update Per-Node TOML Configuration + +While we already have the chainlink node cluster deployed, we need to update the TOML configuration for each node to configure the `ChainWriter`. +After updated TOML configuration overrides are generated per node, the cluster is redeployed such that the updates that effect without wiping the databases. + +## Future Work + +### Keystone workflow deployment +Workflow style job spec deployments are not currently support, but it should be a minor modification to the existing OCR job spec deployment logic + +### Multi-DON support +Multiple DONs are not currently supported +- the devspace profile will need to be expanded so that we have multiple deployments, one per DON. +- network policy / open ports will likely have to be adjusted in the chart + +### Smarter jobspec deployment +Currently, job specs deployment logic is dumb. The scripts don't check if the jobspec to deploy already exists. If you need to redeploy a job spec that has the same name as a currently uploaded one, you'll want to delete the existing job specs via `./04_delete_ocr3_jobs.sh`. diff --git a/core/scripts/keystone/artefacts/README.md b/core/scripts/keystone/artefacts/README.md new file mode 100644 index 00000000000..68f06dbd1c8 --- /dev/null +++ b/core/scripts/keystone/artefacts/README.md @@ -0,0 +1 @@ +All generated artefacts will be saved here. \ No newline at end of file diff --git a/core/scripts/keystone/main.go b/core/scripts/keystone/main.go new file mode 100644 index 00000000000..4b48ba84f58 --- /dev/null +++ b/core/scripts/keystone/main.go @@ -0,0 +1,48 @@ +package main + +import ( + "fmt" + "os" + "strings" + + "github.com/smartcontractkit/chainlink/core/scripts/keystone/src" +) + +type command interface { + Run([]string) + Name() string +} + +func main() { + commands := []command{ + src.NewDeployContractsCommand(), + src.NewDeployJobSpecsCommand(), + src.NewGenerateCribClusterOverridesCommand(), + src.NewDeleteJobsCommand(), + } + + commandsList := func(commands []command) string { + var scs []string + for _, command := range commands { + scs = append(scs, command.Name()) + } + return strings.Join(scs, ", ") + }(commands) + + if len(os.Args) >= 2 { + requestedCommand := os.Args[1] + + for _, command := range commands { + if command.Name() == requestedCommand { + command.Run(os.Args[2:]) + return + } + } + fmt.Println("Unknown command:", requestedCommand) + } else { + fmt.Println("No command specified") + } + + fmt.Println("Supported commands:", commandsList) + os.Exit(1) +} diff --git a/core/scripts/keystone/config_example.json b/core/scripts/keystone/ocr_config.json similarity index 100% rename from core/scripts/keystone/config_example.json rename to core/scripts/keystone/ocr_config.json diff --git a/core/scripts/keystone/public_keys_example.json b/core/scripts/keystone/public_keys_example.json deleted file mode 100644 index 1baae3d5c9b..00000000000 --- a/core/scripts/keystone/public_keys_example.json +++ /dev/null @@ -1,38 +0,0 @@ -[ - { - "EthAddress": "0x9639dCc7D0ca4468B5f684ef89F12F0B365c9F6d", - "P2PPeerID": "12D3KooWBCF1XT5Wi8FzfgNCqRL76Swv8TRU3TiD4QiJm8NMNX7N", - "OCR2BundleID": "29e8dd8c916eac1fc6df8ac6f449481f5db1cf3714e7cb629e16d7b499af5603", - "OCR2OnchainPublicKey": "049b55674e2485b9a6788c0796b74f2c33667670", - "OCR2OffchainPublicKey": "f4f13ca3053e0f44f869648857f0c0ebc20045f9b51d6a5712c867f5920def01", - "OCR2ConfigPublicKey": "17a60b694f7cfb0a02da3da5e79f87b071e518d1f4a27aeb181776969b766e1e", - "CSAPublicKey": "csa_2245bbbee39f75f22e12c345a0ac76bad1f3214b7020a47324a1634dee285761" - }, - { - "EthAddress": "0x8f0fAE64f5f75067833ed5deDC2804B62b21383d", - "P2PPeerID": "12D3KooWG1AyvwmCpZ93J8pBQUE1SuzrjDXnT4BeouncHR3jWLCG", - "OCR2BundleID": "9b19ff8196aec2cdf70f6ac2c3617ea9b03dfb426e0938aee0af2b37459f86eb", - "OCR2OnchainPublicKey": "8405c2b28fcab284f08ed0028f1f511cd57a16b7", - "OCR2OffchainPublicKey": "29e41861f005a0b1bc3156ecd40992a5b552b3182f73f4adec43b4e3052ac2c7", - "OCR2ConfigPublicKey": "0a0c21b14924ee28afad15c96b3a5be372870cdf9b13f002b63fb4ba8942c461", - "CSAPublicKey": "csa_d329bfff7b7835aec205a6ac09bb217e46c754c3ab6730d09b709c7bc395dc3f" - }, - { - "EthAddress": "0xf09A863D920840c13277e76F43CFBdfB22b8FB7C", - "P2PPeerID": "12D3KooWGeUKZBRMbx27FUTgBwZa9Ap9Ym92mywwpuqkEtz8XWyv", - "OCR2BundleID": "200e5d187b4fc8e2d263c13cd28d37c914f275aba1aee91199d5c7766ada9d63", - "OCR2OnchainPublicKey": "4a5199a4e65acfd07b690493ec02bdba3c44c1ec", - "OCR2OffchainPublicKey": "f535037b9ca113d61eb0548e62c28d5abc201bfe36a803ea5f1e94f66da64c9e", - "OCR2ConfigPublicKey": "d62623257ebf3e805ee77162a1b1df0d1b3f57c7dc1dc28b88acb6c9b4f5455f", - "CSAPublicKey": "csa_35ff548c85ada4dbd09b5f02ea3421217d15ebec00a63cab7e529f8bb90542a1" - }, - { - "EthAddress": "0x7eD90b519bC3054a575C464dBf39946b53Ff90EF", - "P2PPeerID": "12D3KooW9zYWQv3STmDeNDidyzxsJSTxoCTLicafgfeEz9nhwhC4", - "OCR2BundleID": "25b40149256109e6036f27b11969c61ba9e765fc60a13324410588c4801f0466", - "OCR2OnchainPublicKey": "07183b1fe36c8f3885a3ce4131b9151a2c7e86b4", - "OCR2OffchainPublicKey": "c64252067d48efe341745cff9aad2f20990158dfe31548322a0bf2921e9428b8", - "OCR2ConfigPublicKey": "893f61aa755f356a248d66b58974742b22518db962ab036b440a33c3eb86ea5b", - "CSAPublicKey": "csa_541f97026a2be5e460276ba4eddebce6e74ccb1d1cfb1550fe54ef615c0534c9" - } -] diff --git a/core/scripts/keystone/src/01_deploy_contracts_cmd.go b/core/scripts/keystone/src/01_deploy_contracts_cmd.go new file mode 100644 index 00000000000..2ca60bdfaf2 --- /dev/null +++ b/core/scripts/keystone/src/01_deploy_contracts_cmd.go @@ -0,0 +1,206 @@ +package src + +import ( + "context" + "encoding/json" + "flag" + "fmt" + "math/big" + "os" + "path/filepath" + + "github.com/ethereum/go-ethereum/common" + + helpers "github.com/smartcontractkit/chainlink/core/scripts/common" + "github.com/smartcontractkit/chainlink/v2/core/gethwrappers/keystone/generated/forwarder" + "github.com/smartcontractkit/chainlink/v2/core/gethwrappers/keystone/generated/ocr3_capability" +) + +type deployedContracts struct { + OCRContract common.Address `json:"ocrContract"` + ForwarderContract common.Address `json:"forwarderContract"` + // The block number of the transaction that set the config on the OCR3 contract. We use this to replay blocks from this point on + // when we load the OCR3 job specs on the nodes. + SetConfigTxBlock uint64 `json:"setConfigTxBlock"` +} + +type deployContracts struct{} + +func NewDeployContractsCommand() *deployContracts { + return &deployContracts{} +} + +func (g *deployContracts) Name() string { + return "deploy-contracts" +} + +// Run expects the follow environment variables to be set: +// +// 1. Deploys the OCR3 contract +// 2. Deploys the Forwarder contract +// 3. Sets the config on the OCR3 contract +// 4. Writes the deployed contract addresses to a file +// 5. Funds the transmitters +func (g *deployContracts) Run(args []string) { + fs := flag.NewFlagSet(g.Name(), flag.ExitOnError) + ocrConfigFile := fs.String("ocrfile", "config_example.json", "path to OCR config file") + // create flags for all of the env vars then set the env vars to normalize the interface + // this is a bit of a hack but it's the easiest way to make this work + ethUrl := fs.String("ethurl", "", "URL of the Ethereum node") + chainID := fs.Int64("chainid", 11155111, "chain ID of the Ethereum network to deploy to") + accountKey := fs.String("accountkey", "", "private key of the account to deploy from") + skipFunding := fs.Bool("skipfunding", false, "skip funding the transmitters") + onlySetConfig := fs.Bool("onlysetconfig", false, "set the config on the OCR3 contract without deploying the contracts or funding transmitters") + dryRun := fs.Bool("dryrun", false, "dry run, don't actually deploy the contracts and do not fund transmitters") + + err := fs.Parse(args) + if err != nil || + *ocrConfigFile == "" || ocrConfigFile == nil || + *ethUrl == "" || ethUrl == nil || + *chainID == 0 || chainID == nil || + *accountKey == "" || accountKey == nil { + fs.Usage() + os.Exit(1) + } + + os.Setenv("ETH_URL", *ethUrl) + os.Setenv("ETH_CHAIN_ID", fmt.Sprintf("%d", *chainID)) + os.Setenv("ACCOUNT_KEY", *accountKey) + + deploy(*ocrConfigFile, *skipFunding, *dryRun, *onlySetConfig) +} + +// deploy does the following: +// 1. Deploys the OCR3 contract +// 2. Deploys the Forwarder contract +// 3. Sets the config on the OCR3 contract +// 4. Writes the deployed contract addresses to a file +// 5. Funds the transmitters +func deploy( + configFile string, + skipFunding bool, + dryRun bool, + onlySetConfig bool, +) { + env := helpers.SetupEnv(false) + ocrConfig := generateOCR3Config( + configFile, + env.ChainID, + ".cache/PublicKeys.json", + ) + + if dryRun { + fmt.Println("Dry run, skipping deployment and funding") + return + } + + if onlySetConfig { + fmt.Println("Skipping deployment of contracts and skipping funding transmitters, only setting config") + setOCR3Config(env, ocrConfig) + return + } + + if ContractsAlreadyDeployed() { + fmt.Println("Contracts already deployed") + return + } + + fmt.Println("Deploying keystone ocr3 contract...") + ocrContract := DeployKeystoneOCR3Capability(env) + fmt.Println("Deploying keystone forwarder contract...") + forwarderContract := DeployForwarder(env) + + fmt.Println("Writing deployed contract addresses to file...") + contracts := deployedContracts{ + OCRContract: ocrContract.Address(), + ForwarderContract: forwarderContract.Address(), + } + jsonBytes, err := json.Marshal(contracts) + PanicErr(err) + + err = os.WriteFile(DeployedContractsFilePath(), jsonBytes, 0600) + PanicErr(err) + + setOCR3Config(env, ocrConfig) + + if skipFunding { + fmt.Println("Skipping funding transmitters") + return + } + fmt.Println("Funding transmitters...") + transmittersStr := []string{} + for _, t := range ocrConfig.Transmitters { + transmittersStr = append(transmittersStr, t.String()) + } + + helpers.FundNodes(env, transmittersStr, big.NewInt(50000000000000000)) // 0.05 ETH +} + +func setOCR3Config( + env helpers.Environment, + ocrConfig orc2drOracleConfig, +) { + loadedContracts, err := LoadDeployedContracts() + PanicErr(err) + + ocrContract, err := ocr3_capability.NewOCR3Capability(loadedContracts.OCRContract, env.Ec) + PanicErr(err) + fmt.Println("Setting OCR3 contract config...") + tx, err := ocrContract.SetConfig(env.Owner, + ocrConfig.Signers, + ocrConfig.Transmitters, + ocrConfig.F, + ocrConfig.OnchainConfig, + ocrConfig.OffchainConfigVersion, + ocrConfig.OffchainConfig, + ) + PanicErr(err) + receipt := helpers.ConfirmTXMined(context.Background(), env.Ec, tx, env.ChainID) + + // Write blocknumber of the transaction to the deployed contracts file + loadedContracts.SetConfigTxBlock = receipt.BlockNumber.Uint64() + jsonBytes, err := json.Marshal(loadedContracts) + PanicErr(err) + err = os.WriteFile(DeployedContractsFilePath(), jsonBytes, 0600) + PanicErr(err) +} + +func LoadDeployedContracts() (deployedContracts, error) { + if !ContractsAlreadyDeployed() { + return deployedContracts{}, fmt.Errorf("no deployed contracts found, run deploy first") + } + + jsonBytes, err := os.ReadFile(DeployedContractsFilePath()) + if err != nil { + return deployedContracts{}, err + } + + var contracts deployedContracts + err = json.Unmarshal(jsonBytes, &contracts) + return contracts, err +} + +func ContractsAlreadyDeployed() bool { + _, err := os.Stat(DeployedContractsFilePath()) + return err == nil +} + +func DeployedContractsFilePath() string { + return filepath.Join(artefactsDir, deployedContractsJSON) +} + +func DeployForwarder(e helpers.Environment) *forwarder.KeystoneForwarder { + _, tx, contract, err := forwarder.DeployKeystoneForwarder(e.Owner, e.Ec) + PanicErr(err) + helpers.ConfirmContractDeployed(context.Background(), e.Ec, tx, e.ChainID) + + return contract +} + +func DeployKeystoneOCR3Capability(e helpers.Environment) *ocr3_capability.OCR3Capability { + _, tx, contract, err := ocr3_capability.DeployOCR3Capability(e.Owner, e.Ec) + PanicErr(err) + helpers.ConfirmContractDeployed(context.Background(), e.Ec, tx, e.ChainID) + + return contract +} diff --git a/core/scripts/keystone/src/02_deploy_jobspecs_cmd.go b/core/scripts/keystone/src/02_deploy_jobspecs_cmd.go new file mode 100644 index 00000000000..5918650cf88 --- /dev/null +++ b/core/scripts/keystone/src/02_deploy_jobspecs_cmd.go @@ -0,0 +1,146 @@ +package src + +import ( + "bytes" + "errors" + "flag" + "fmt" + "os" + "reflect" + "runtime" + "strings" + + "github.com/urfave/cli" + + helpers "github.com/smartcontractkit/chainlink/core/scripts/common" + "github.com/smartcontractkit/chainlink/v2/core/cmd" +) + +type deployJobSpecs struct { +} + +func NewDeployJobSpecsCommand() *deployJobSpecs { + return &deployJobSpecs{} +} + +func (g *deployJobSpecs) Name() string { + return "deploy-jobspecs" +} + +func (g *deployJobSpecs) Run(args []string) { + fs := flag.NewFlagSet(g.Name(), flag.ContinueOnError) + chainID := fs.Int64("chainid", 11155111, "chain id") + p2pPort := fs.Int64("p2pport", 6690, "p2p port") + onlyReplay := fs.Bool("onlyreplay", false, "only replay the block from the OCR3 contract setConfig transaction") + err := fs.Parse(args) + if err != nil || chainID == nil || *chainID == 0 || p2pPort == nil || *p2pPort == 0 || onlyReplay == nil { + fs.Usage() + os.Exit(1) + } + if *onlyReplay { + fmt.Println("Only replaying OCR3 contract setConfig transaction") + } else { + fmt.Println("Deploying OCR3 job specs") + } + + nodes := downloadNodeAPICredentialsDefault() + deployedContracts, err := LoadDeployedContracts() + PanicErr(err) + + jobspecs := genSpecs( + ".cache/PublicKeys.json", ".cache/NodeList.txt", "templates", + *chainID, *p2pPort, deployedContracts.OCRContract.Hex(), + ) + flattenedSpecs := []hostSpec{jobspecs.bootstrap} + flattenedSpecs = append(flattenedSpecs, jobspecs.oracles...) + + // sanity check arr lengths + if len(nodes) != len(flattenedSpecs) { + PanicErr(errors.New("Mismatched node and job spec lengths")) + } + + for i, n := range nodes { + output := &bytes.Buffer{} + client, app := newApp(n, output) + fmt.Println("Logging in:", n.url) + loginFs := flag.NewFlagSet("test", flag.ContinueOnError) + loginFs.Bool("bypass-version-check", true, "") + loginCtx := cli.NewContext(app, loginFs, nil) + err := client.RemoteLogin(loginCtx) + helpers.PanicErr(err) + output.Reset() + + if !*onlyReplay { + specToDeploy := flattenedSpecs[i].spec.ToString() + specFragment := flattenedSpecs[i].spec[0:1] + fmt.Printf("Deploying jobspec: %s\n... \n", specFragment) + fs := flag.NewFlagSet("test", flag.ExitOnError) + err = fs.Parse([]string{specToDeploy}) + + helpers.PanicErr(err) + err = client.CreateJob(cli.NewContext(app, fs, nil)) + if err != nil { + fmt.Println("Failed to deploy job spec:", specFragment, "Error:", err) + } + output.Reset() + } + + replayFs := flag.NewFlagSet("test", flag.ExitOnError) + flagSetApplyFromAction(client.ReplayFromBlock, replayFs, "") + err = replayFs.Set("block-number", fmt.Sprint(deployedContracts.SetConfigTxBlock)) + helpers.PanicErr(err) + err = replayFs.Set("evm-chain-id", fmt.Sprint(*chainID)) + helpers.PanicErr(err) + + fmt.Printf("Replaying from block: %d\n", deployedContracts.SetConfigTxBlock) + fmt.Printf("EVM Chain ID: %d\n\n", *chainID) + replayCtx := cli.NewContext(app, replayFs, nil) + err = client.ReplayFromBlock(replayCtx) + helpers.PanicErr(err) + } +} + +// flagSetApplyFromAction applies the flags from action to the flagSet. +// +// `parentCommand` will filter the app commands and only applies the flags if the command/subcommand has a parent with that name, if left empty no filtering is done +// +// Taken from: https://github.com/smartcontractkit/chainlink/blob/develop/core/cmd/shell_test.go#L590 +func flagSetApplyFromAction(action interface{}, flagSet *flag.FlagSet, parentCommand string) { + cliApp := cmd.Shell{} + app := cmd.NewApp(&cliApp) + + foundName := parentCommand == "" + actionFuncName := getFuncName(action) + + for _, command := range app.Commands { + flags := recursiveFindFlagsWithName(actionFuncName, command, parentCommand, foundName) + + for _, flag := range flags { + flag.Apply(flagSet) + } + } +} + +func recursiveFindFlagsWithName(actionFuncName string, command cli.Command, parent string, foundName bool) []cli.Flag { + if command.Action != nil { + if actionFuncName == getFuncName(command.Action) && foundName { + return command.Flags + } + } + + for _, subcommand := range command.Subcommands { + if !foundName { + foundName = strings.EqualFold(subcommand.Name, parent) + } + + found := recursiveFindFlagsWithName(actionFuncName, subcommand, parent, foundName) + if found != nil { + return found + } + } + return nil +} + +func getFuncName(i interface{}) string { + return runtime.FuncForPC(reflect.ValueOf(i).Pointer()).Name() +} diff --git a/core/scripts/keystone/src/03_gen_crib_cluster_overrides_cmd.go b/core/scripts/keystone/src/03_gen_crib_cluster_overrides_cmd.go new file mode 100644 index 00000000000..cb3acf903b3 --- /dev/null +++ b/core/scripts/keystone/src/03_gen_crib_cluster_overrides_cmd.go @@ -0,0 +1,73 @@ +package src + +import ( + "flag" + "os" + "path/filepath" + "strings" + + helpers "github.com/smartcontractkit/chainlink/core/scripts/common" +) + +type generateCribClusterOverrides struct { +} + +func NewGenerateCribClusterOverridesCommand() *generateCribClusterOverrides { + return &generateCribClusterOverrides{} +} + +func (g *generateCribClusterOverrides) Name() string { + return "generate-crib" +} + +func (g *generateCribClusterOverrides) Run(args []string) { + fs := flag.NewFlagSet(g.Name(), flag.ContinueOnError) + chainID := fs.Int64("chainid", 11155111, "chain id") + outputPath := fs.String("outpath", "../crib", "the path to output the generated overrides") + + deployedContracts, err := LoadDeployedContracts() + helpers.PanicErr(err) + templatesDir := "templates" + err = fs.Parse(args) + if err != nil || outputPath == nil || *outputPath == "" || chainID == nil || *chainID == 0 { + fs.Usage() + os.Exit(1) + } + + lines := generateCribConfig(".cache/PublicKeys.json", chainID, templatesDir, deployedContracts.ForwarderContract.Hex()) + + cribOverridesStr := strings.Join(lines, "\n") + err = os.WriteFile(filepath.Join(*outputPath, "crib-cluster-overrides.yaml"), []byte(cribOverridesStr), 0600) + helpers.PanicErr(err) +} + +func generateCribConfig(pubKeysPath string, chainID *int64, templatesDir string, forwarderAddress string) []string { + nca := downloadNodePubKeys(*chainID, pubKeysPath) + nodeAddresses := []string{} + + for _, node := range nca[1:] { + nodeAddresses = append(nodeAddresses, node.EthAddress) + } + + lines, err := readLines(filepath.Join(templatesDir, cribOverrideTemplate)) + helpers.PanicErr(err) + lines = replaceCribPlaceholders(lines, forwarderAddress, nodeAddresses) + return lines +} + +func replaceCribPlaceholders( + lines []string, + forwarderAddress string, + nodeFromAddresses []string, +) (output []string) { + for _, l := range lines { + l = strings.Replace(l, "{{ forwarder_address }}", forwarderAddress, 1) + l = strings.Replace(l, "{{ node_2_address }}", nodeFromAddresses[0], 1) + l = strings.Replace(l, "{{ node_3_address }}", nodeFromAddresses[1], 1) + l = strings.Replace(l, "{{ node_4_address }}", nodeFromAddresses[2], 1) + l = strings.Replace(l, "{{ node_5_address }}", nodeFromAddresses[3], 1) + output = append(output, l) + } + + return output +} diff --git a/core/scripts/keystone/src/03_gen_crib_cluster_overrides_cmd_test.go b/core/scripts/keystone/src/03_gen_crib_cluster_overrides_cmd_test.go new file mode 100644 index 00000000000..722b01e91c3 --- /dev/null +++ b/core/scripts/keystone/src/03_gen_crib_cluster_overrides_cmd_test.go @@ -0,0 +1,19 @@ +package src + +import ( + "strings" + "testing" + + "github.com/gkampitakis/go-snaps/snaps" +) + +func TestGenerateCribConfig(t *testing.T) { + chainID := int64(11155111) + templatesDir := "../templates" + forwarderAddress := "0x1234567890abcdef" + publicKeysPath := "./testdata/PublicKeys.json" + + lines := generateCribConfig(publicKeysPath, &chainID, templatesDir, forwarderAddress) + + snaps.MatchSnapshot(t, strings.Join(lines, "\n")) +} diff --git a/core/scripts/keystone/src/04_delete_ocr3_jobs_cmd.go b/core/scripts/keystone/src/04_delete_ocr3_jobs_cmd.go new file mode 100644 index 00000000000..2ebed000ed4 --- /dev/null +++ b/core/scripts/keystone/src/04_delete_ocr3_jobs_cmd.go @@ -0,0 +1,79 @@ +package src + +import ( + "bytes" + "encoding/json" + "flag" + "fmt" + + "github.com/urfave/cli" + + helpers "github.com/smartcontractkit/chainlink/core/scripts/common" +) + +type deleteJobs struct { +} + +type OCRSpec struct { + ContractID string +} + +type BootSpec struct { + ContractID string +} + +type JobSpec struct { + Id string + Name string + BootstrapSpec BootSpec + OffChainReporting2OracleSpec OCRSpec +} + +func NewDeleteJobsCommand() *deleteJobs { + return &deleteJobs{} +} + +func (g *deleteJobs) Name() string { + return "delete-ocr3-jobs" +} + +func (g *deleteJobs) Run(args []string) { + deployedContracts, err := LoadDeployedContracts() + helpers.PanicErr(err) + nodes := downloadNodeAPICredentialsDefault() + + for _, node := range nodes { + output := &bytes.Buffer{} + client, app := newApp(node, output) + + fmt.Println("Logging in:", node.url) + loginFs := flag.NewFlagSet("test", flag.ContinueOnError) + loginFs.Bool("bypass-version-check", true, "") + loginCtx := cli.NewContext(app, loginFs, nil) + err := client.RemoteLogin(loginCtx) + helpers.PanicErr(err) + output.Reset() + + fileFs := flag.NewFlagSet("test", flag.ExitOnError) + err = client.ListJobs(cli.NewContext(app, fileFs, nil)) + helpers.PanicErr(err) + + var parsed []JobSpec + err = json.Unmarshal(output.Bytes(), &parsed) + helpers.PanicErr(err) + + for _, jobSpec := range parsed { + if jobSpec.BootstrapSpec.ContractID == deployedContracts.OCRContract.String() || + jobSpec.OffChainReporting2OracleSpec.ContractID == deployedContracts.OCRContract.String() { + fmt.Println("Deleting OCR3 job ID:", jobSpec.Id, "name:", jobSpec.Name) + set := flag.NewFlagSet("test", flag.ExitOnError) + err = set.Parse([]string{jobSpec.Id}) + helpers.PanicErr(err) + err = client.DeleteJob(cli.NewContext(app, set, nil)) + helpers.PanicErr(err) + } + } + + output.Reset() + } +} diff --git a/core/scripts/keystone/src/88_gen_jobspecs.go b/core/scripts/keystone/src/88_gen_jobspecs.go new file mode 100644 index 00000000000..6a9c911a5f5 --- /dev/null +++ b/core/scripts/keystone/src/88_gen_jobspecs.go @@ -0,0 +1,89 @@ +package src + +import ( + "fmt" + "path/filepath" + "strconv" + "strings" + + helpers "github.com/smartcontractkit/chainlink/core/scripts/common" +) + +type spec []string + +func (s spec) ToString() string { + return strings.Join(s, "\n") +} + +type hostSpec struct { + spec spec + host string +} + +type donHostSpec struct { + bootstrap hostSpec + oracles []hostSpec +} + +func genSpecs( + pubkeysPath string, + nodeListPath string, + templatesDir string, + chainID int64, + p2pPort int64, + ocrConfigContractAddress string, +) donHostSpec { + nodes := downloadNodeAPICredentials(nodeListPath) + nca := downloadNodePubKeys(chainID, pubkeysPath) + bootstrapNode := nca[0] + + bootstrapSpecLines, err := readLines(filepath.Join(templatesDir, bootstrapSpecTemplate)) + helpers.PanicErr(err) + bootHost := nodes[0].url.Host + bootstrapSpecLines = replacePlaceholders( + bootstrapSpecLines, + chainID, p2pPort, + ocrConfigContractAddress, bootHost, + bootstrapNode, bootstrapNode, + ) + bootstrap := hostSpec{bootstrapSpecLines, bootHost} + + oracleSpecLinesTemplate, err := readLines(filepath.Join(templatesDir, oracleSpecTemplate)) + helpers.PanicErr(err) + oracles := []hostSpec{} + for i := 1; i < len(nodes); i++ { + oracleSpecLines := oracleSpecLinesTemplate + oracleSpecLines = replacePlaceholders( + oracleSpecLines, + chainID, p2pPort, + ocrConfigContractAddress, bootHost, + bootstrapNode, nca[i], + ) + oracles = append(oracles, hostSpec{oracleSpecLines, nodes[i].url.Host}) + } + + return donHostSpec{ + bootstrap: bootstrap, + oracles: oracles, + } +} + +func replacePlaceholders( + lines []string, + + chainID, p2pPort int64, + contractAddress, bootHost string, + boot, node NodeKeys, +) (output []string) { + chainIDStr := strconv.FormatInt(chainID, 10) + bootstrapper := fmt.Sprintf("%s@%s:%d", boot.P2PPeerID, bootHost, p2pPort) + for _, l := range lines { + l = strings.Replace(l, "{{ chain_id }}", chainIDStr, 1) + l = strings.Replace(l, "{{ ocr_config_contract_address }}", contractAddress, 1) + l = strings.Replace(l, "{{ transmitter_id }}", node.EthAddress, 1) + l = strings.Replace(l, "{{ ocr_key_bundle_id }}", node.OCR2BundleID, 1) + l = strings.Replace(l, "{{ bootstrapper_p2p_id }}", bootstrapper, 1) + output = append(output, l) + } + return +} diff --git a/core/scripts/keystone/src/88_gen_jobspecs_test.go b/core/scripts/keystone/src/88_gen_jobspecs_test.go new file mode 100644 index 00000000000..7af11646c4e --- /dev/null +++ b/core/scripts/keystone/src/88_gen_jobspecs_test.go @@ -0,0 +1,37 @@ +package src + +import ( + "fmt" + "testing" + + "github.com/gkampitakis/go-snaps/snaps" +) + +func (d *donHostSpec) ToString() string { + var result string + result += "Bootstrap:\n" + result += "Host: " + d.bootstrap.host + "\n" + result += d.bootstrap.spec.ToString() + result += "\n\nOracles:\n" + for i, oracle := range d.oracles { + if i != 0 { + result += "--------------------------------\n" + } + result += fmt.Sprintf("Oracle %d:\n", i) + result += "Host: " + oracle.host + "\n" + result += oracle.spec.ToString() + result += "\n\n" + } + return result +} + +func TestGenSpecs(t *testing.T) { + pubkeysPath := "./testdata/PublicKeys.json" + nodeListPath := "./testdata/NodeList.txt" + chainID := int64(11155111) + p2pPort := int64(6690) + contractAddress := "0xB29934624cAe3765E33115A9530a13f5aEC7fa8A" + + specs := genSpecs(pubkeysPath, nodeListPath, "../templates", chainID, p2pPort, contractAddress) + snaps.MatchSnapshot(t, specs.ToString()) +} diff --git a/core/scripts/keystone/gen_ocr3_config.go b/core/scripts/keystone/src/88_gen_ocr3_config.go similarity index 67% rename from core/scripts/keystone/gen_ocr3_config.go rename to core/scripts/keystone/src/88_gen_ocr3_config.go index 2f873dadda7..fe9241a2bde 100644 --- a/core/scripts/keystone/gen_ocr3_config.go +++ b/core/scripts/keystone/src/88_gen_ocr3_config.go @@ -1,13 +1,9 @@ -package main +package src import ( "crypto/ed25519" "encoding/hex" "encoding/json" - "flag" - "fmt" - "io" - "os" "time" "github.com/ethereum/go-ethereum/common" @@ -17,6 +13,7 @@ import ( "github.com/smartcontractkit/libocr/offchainreporting2plus/types" helpers "github.com/smartcontractkit/chainlink/core/scripts/common" + "github.com/smartcontractkit/chainlink/v2/core/services/relay/evm" ) type TopLevelConfigSource struct { @@ -59,62 +56,50 @@ type NodeKeys struct { } type orc2drOracleConfig struct { - Signers []string `json:"signers"` - Transmitters []string `json:"transmitters"` - F uint8 `json:"f"` - OnchainConfig string `json:"onchainConfig"` - OffchainConfigVersion uint64 `json:"offchainConfigVersion"` - OffchainConfig string `json:"offchainConfig"` + Signers []common.Address + Transmitters []common.Address + F uint8 + OnchainConfig []byte + OffchainConfigVersion uint64 + OffchainConfig []byte } -type generateOCR2Config struct { -} - -func NewGenerateOCR2ConfigCommand() *generateOCR2Config { - return &generateOCR2Config{} -} +func (c orc2drOracleConfig) MarshalJSON() ([]byte, error) { + alias := struct { + Signers []string + Transmitters []string + F uint8 + OnchainConfig string + OffchainConfigVersion uint64 + OffchainConfig string + }{ + Signers: make([]string, len(c.Signers)), + Transmitters: make([]string, len(c.Transmitters)), + F: c.F, + OnchainConfig: "0x" + hex.EncodeToString(c.OnchainConfig), + OffchainConfigVersion: c.OffchainConfigVersion, + OffchainConfig: "0x" + hex.EncodeToString(c.OffchainConfig), + } -func (g *generateOCR2Config) Name() string { - return "generate-ocr2config" -} + for i, signer := range c.Signers { + alias.Signers[i] = signer.Hex() + } -func mustParseJSONConfigFile(fileName string) (output TopLevelConfigSource) { - return mustParseJSON[TopLevelConfigSource](fileName) -} + for i, transmitter := range c.Transmitters { + alias.Transmitters[i] = transmitter.Hex() + } -func mustParseKeysFile(fileName string) (output []NodeKeys) { - return mustParseJSON[[]NodeKeys](fileName) + return json.Marshal(alias) } -func mustParseJSON[T any](fileName string) (output T) { - jsonFile, err := os.Open(fileName) - if err != nil { - panic(err) - } - defer jsonFile.Close() - bytes, err := io.ReadAll(jsonFile) - if err != nil { - panic(err) - } - err = json.Unmarshal(bytes, &output) - if err != nil { - panic(err) - } - return +func mustReadConfig(fileName string) (output TopLevelConfigSource) { + return mustParseJSON[TopLevelConfigSource](fileName) } -func main() { - fs := flag.NewFlagSet("config_gen", flag.ExitOnError) - configFile := fs.String("config", "config_example.json", "a file containing JSON config") - keysFile := fs.String("keys", "public_keys_example.json", "a file containing node public keys") - if err := fs.Parse(os.Args[1:]); err != nil || *keysFile == "" || *configFile == "" { - fs.Usage() - os.Exit(1) - } - - topLevelCfg := mustParseJSONConfigFile(*configFile) +func generateOCR3Config(configFile string, chainID int64, pubKeysPath string) orc2drOracleConfig { + topLevelCfg := mustReadConfig(configFile) cfg := topLevelCfg.OracleConfig - nca := mustParseKeysFile(*keysFile) + nca := downloadNodePubKeys(chainID, pubKeysPath) onchainPubKeys := []common.Address{} for _, n := range nca { @@ -185,23 +170,19 @@ func main() { ) helpers.PanicErr(err) - var signersStr []string - var transmittersStr []string - for i := range transmitters { - signersStr = append(signersStr, "0x"+hex.EncodeToString(signers[i])) - transmittersStr = append(transmittersStr, string(transmitters[i])) - } + signerAddresses, err := evm.OnchainPublicKeyToAddress(signers) + PanicErr(err) + transmitterAddresses, err := evm.AccountToAddress(transmitters) + PanicErr(err) config := orc2drOracleConfig{ - Signers: signersStr, - Transmitters: transmittersStr, + Signers: signerAddresses, + Transmitters: transmitterAddresses, F: f, - OnchainConfig: "0x" + hex.EncodeToString(onchainConfig), + OnchainConfig: onchainConfig, OffchainConfigVersion: offchainConfigVersion, - OffchainConfig: "0x" + hex.EncodeToString(offchainConfig), + OffchainConfig: offchainConfig, } - js, err := json.MarshalIndent(config, "", " ") - helpers.PanicErr(err) - fmt.Println("Config:", string(js)) + return config } diff --git a/core/scripts/keystone/src/88_gen_ocr3_config_test.go b/core/scripts/keystone/src/88_gen_ocr3_config_test.go new file mode 100644 index 00000000000..185354ec2fe --- /dev/null +++ b/core/scripts/keystone/src/88_gen_ocr3_config_test.go @@ -0,0 +1,31 @@ +package src + +import ( + "errors" + "testing" + + "github.com/gkampitakis/go-snaps/match" + "github.com/gkampitakis/go-snaps/snaps" +) + +func TestGenerateOCR3Config(t *testing.T) { + // Generate OCR3 config + config := generateOCR3Config("./testdata/SampleConfig.json", 11155111, "./testdata/PublicKeys.json") + + matchOffchainConfig := match.Custom("OffchainConfig", func(s any) (any, error) { + // coerce the value to a string + s, ok := s.(string) + if !ok { + return nil, errors.New("offchain config is not a string") + } + + // if the string is not empty + if s == "" { + return nil, errors.New("offchain config is empty") + } + + return "", nil + }) + + snaps.MatchJSON(t, config, matchOffchainConfig) +} diff --git a/core/scripts/keystone/src/99_app.go b/core/scripts/keystone/src/99_app.go new file mode 100644 index 00000000000..6e59932aa71 --- /dev/null +++ b/core/scripts/keystone/src/99_app.go @@ -0,0 +1,31 @@ +package src + +import ( + "flag" + "io" + + "github.com/urfave/cli" + + helpers "github.com/smartcontractkit/chainlink/core/scripts/common" + clcmd "github.com/smartcontractkit/chainlink/v2/core/cmd" +) + +func newApp(n *node, writer io.Writer) (*clcmd.Shell, *cli.App) { + client := &clcmd.Shell{ + Renderer: clcmd.RendererJSON{Writer: writer}, + AppFactory: clcmd.ChainlinkAppFactory{}, + KeyStoreAuthenticator: clcmd.TerminalKeyStoreAuthenticator{Prompter: n}, + FallbackAPIInitializer: clcmd.NewPromptingAPIInitializer(n), + Runner: clcmd.ChainlinkRunner{}, + PromptingSessionRequestBuilder: clcmd.NewPromptingSessionRequestBuilder(n), + ChangePasswordPrompter: clcmd.NewChangePasswordPrompter(), + PasswordPrompter: clcmd.NewPasswordPrompter(), + } + app := clcmd.NewApp(client) + fs := flag.NewFlagSet("blah", flag.ContinueOnError) + fs.String("remote-node-url", n.url.String(), "") + helpers.PanicErr(app.Before(cli.NewContext(nil, fs, nil))) + // overwrite renderer since it's set to stdout after Before() is called + client.Renderer = clcmd.RendererJSON{Writer: writer} + return client, app +} diff --git a/core/scripts/keystone/src/99_crib_client.go b/core/scripts/keystone/src/99_crib_client.go new file mode 100644 index 00000000000..ebf9f9ee955 --- /dev/null +++ b/core/scripts/keystone/src/99_crib_client.go @@ -0,0 +1,61 @@ +// A k8s client specifically for the crib project. Contains methods that are hard coded +// to the crib project's needs. +package src + +import ( + "fmt" + "net/url" + "strings" +) + +type CribClient struct { + k8sClient *K8sClient +} + +type CLNodeCredentials struct { + URL *url.URL + PodName string + Username string + Password string + NodePassword string +} + +func NewCribClient() *CribClient { + k8sClient := MustNewK8sClient() + return &CribClient{ + k8sClient: k8sClient, + } +} + +func (m *CribClient) GetCLNodeCredentials() ([]CLNodeCredentials, error) { + fmt.Println("Getting CL node pods with config maps...") + pods, err := m.k8sClient.GetPodsWithConfigMap() + if err != nil { + return nil, err + } + clNodeCredentials := []CLNodeCredentials{} + + for _, pod := range pods { + apiCredentials := pod.ConfigMap.Data["apicredentials"] + splitCreds := strings.Split(strings.TrimSpace(apiCredentials), "\n") + username := splitCreds[0] + password := splitCreds[1] + nodePassword := pod.ConfigMap.Data["node-password"] + url, err := url.Parse("https://" + pod.Host) + if err != nil { + return nil, err + } + + clNodeCredential := CLNodeCredentials{ + URL: url, + PodName: pod.Name, + Username: username, + Password: password, + NodePassword: nodePassword, + } + + clNodeCredentials = append(clNodeCredentials, clNodeCredential) + } + + return clNodeCredentials, nil +} diff --git a/core/scripts/keystone/src/99_errors.go b/core/scripts/keystone/src/99_errors.go new file mode 100644 index 00000000000..2d972cff21d --- /dev/null +++ b/core/scripts/keystone/src/99_errors.go @@ -0,0 +1,8 @@ +package src + +// PanicErr panics if error the given error is non-nil. +func PanicErr(err error) { + if err != nil { + panic(err) + } +} diff --git a/core/scripts/keystone/src/99_fetch_keys.go b/core/scripts/keystone/src/99_fetch_keys.go new file mode 100644 index 00000000000..4fcb6f138a7 --- /dev/null +++ b/core/scripts/keystone/src/99_fetch_keys.go @@ -0,0 +1,220 @@ +package src + +import ( + "bytes" + "encoding/json" + "errors" + "flag" + "fmt" + "os" + "sort" + "strings" + + "github.com/urfave/cli" + + helpers "github.com/smartcontractkit/chainlink/core/scripts/common" + ubig "github.com/smartcontractkit/chainlink/v2/core/chains/evm/utils/big" + "github.com/smartcontractkit/chainlink/v2/core/web/presenters" +) + +func downloadNodePubKeys(chainID int64, pubKeysPath string) []NodeKeys { + // Check if file exists already, and if so, return the keys + if _, err := os.Stat(pubKeysPath); err == nil { + fmt.Println("Loading existing public keys at:", pubKeysPath) + return mustParseJSON[[]NodeKeys](pubKeysPath) + } + + nodes := downloadNodeAPICredentialsDefault() + nodesKeys := mustFetchNodesKeys(chainID, nodes) + + marshalledNodeKeys, err := json.MarshalIndent(nodesKeys, "", " ") + if err != nil { + panic(err) + } + err = os.WriteFile(pubKeysPath, marshalledNodeKeys, 0600) + if err != nil { + panic(err) + } + fmt.Println("Keystone OCR2 public keys have been saved to:", pubKeysPath) + + return nodesKeys +} + +// downloadNodeAPICredentialsDefault downloads the node API credentials, or loads them from disk if they already exist +// +// The nodes are sorted by URL. In the case of crib, the bootstrap node is the first node in the list. +func downloadNodeAPICredentialsDefault() []*node { + return downloadNodeAPICredentials(".cache/NodeList.txt") +} + +// downloadNodeAPICredentials downloads the node API credentials, or loads them from disk if they already exist +// +// The nodes are sorted by URL. In the case of crib, the bootstrap node is the first node in the list. +func downloadNodeAPICredentials(nodeListPath string) []*node { + if _, err := os.Stat(nodeListPath); err == nil { + fmt.Println("Loading existing node host list at:", nodeListPath) + nodesList := mustReadNodesList(nodeListPath) + return nodesList + } + + fmt.Println("Connecting to Kubernetes to fetch node credentials...") + crib := NewCribClient() + clNodesWithCreds, err := crib.GetCLNodeCredentials() + + if err != nil { + panic(err) + } + + nodesList := clNodesWithCredsToNodes(clNodesWithCreds) + err = writeNodesList(nodeListPath, nodesList) + if err != nil { + panic(err) + } + if len(nodesList) == 0 { + panic("No nodes found") + } + return nodesList +} + +func clNodesWithCredsToNodes(clNodesWithCreds []CLNodeCredentials) []*node { + nodes := []*node{} + for _, cl := range clNodesWithCreds { + n := node{ + url: cl.URL, + password: cl.Password, + login: cl.Username, + } + nodes = append(nodes, &n) + } + + // sort nodes by URL + sort.Slice(nodes, func(i, j int) bool { + return nodes[i].url.String() < nodes[j].url.String() + }) + return nodes +} + +type ocr2Bundle struct { + ID string `json:"id"` + ChainType string `json:"chainType"` + OnchainPublicKey string `json:"onchainPublicKey"` + OffchainPublicKey string `json:"offchainPublicKey"` + ConfigPublicKey string `json:"configPublicKey"` +} + +func mustFetchNodesKeys(chainID int64, nodes []*node) (nca []NodeKeys) { + for _, n := range nodes { + output := &bytes.Buffer{} + client, app := newApp(n, output) + + fmt.Println("Logging in:", n.url) + loginFs := flag.NewFlagSet("test", flag.ContinueOnError) + loginFs.Bool("bypass-version-check", true, "") + loginCtx := cli.NewContext(app, loginFs, nil) + err := client.RemoteLogin(loginCtx) + helpers.PanicErr(err) + output.Reset() + + err = client.ListETHKeys(&cli.Context{ + App: app, + }) + helpers.PanicErr(err) + var ethKeys []presenters.ETHKeyResource + helpers.PanicErr(json.Unmarshal(output.Bytes(), ðKeys)) + ethAddress, err := findFirstGoodEthKeyAddress(chainID, ethKeys) + helpers.PanicErr(err) + output.Reset() + + err = client.ListP2PKeys(&cli.Context{ + App: app, + }) + helpers.PanicErr(err) + var p2pKeys []presenters.P2PKeyResource + helpers.PanicErr(json.Unmarshal(output.Bytes(), &p2pKeys)) + if len(p2pKeys) != 1 { + helpers.PanicErr(errors.New("node must have single p2p key")) + } + peerID := strings.TrimPrefix(p2pKeys[0].PeerID, "p2p_") + output.Reset() + + var ocr2Bundles []ocr2Bundle + err = client.ListOCR2KeyBundles(&cli.Context{ + App: app, + }) + helpers.PanicErr(err) + helpers.PanicErr(json.Unmarshal(output.Bytes(), &ocr2Bundles)) + ocr2BundleIndex := findEvmOCR2Bundle(ocr2Bundles) + output.Reset() + if ocr2BundleIndex == -1 { + fmt.Println("WARN: node does not have EVM OCR2 bundle, creating one") + fs := flag.NewFlagSet("test", flag.ContinueOnError) + err = fs.Parse([]string{"evm"}) + helpers.PanicErr(err) + ocr2CreateBundleCtx := cli.NewContext(app, fs, nil) + err = client.CreateOCR2KeyBundle(ocr2CreateBundleCtx) + helpers.PanicErr(err) + output.Reset() + + err = client.ListOCR2KeyBundles(&cli.Context{ + App: app, + }) + helpers.PanicErr(err) + helpers.PanicErr(json.Unmarshal(output.Bytes(), &ocr2Bundles)) + ocr2BundleIndex = findEvmOCR2Bundle(ocr2Bundles) + output.Reset() + } + + ocr2Bndl := ocr2Bundles[ocr2BundleIndex] + + err = client.ListCSAKeys(&cli.Context{ + App: app, + }) + helpers.PanicErr(err) + var csaKeys []presenters.CSAKeyResource + helpers.PanicErr(json.Unmarshal(output.Bytes(), &csaKeys)) + csaPubKey, err := findFirstCSAPublicKey(csaKeys) + helpers.PanicErr(err) + output.Reset() + + nc := NodeKeys{ + EthAddress: ethAddress, + P2PPeerID: peerID, + OCR2BundleID: ocr2Bndl.ID, + OCR2ConfigPublicKey: strings.TrimPrefix(ocr2Bndl.ConfigPublicKey, "ocr2cfg_evm_"), + OCR2OnchainPublicKey: strings.TrimPrefix(ocr2Bndl.OnchainPublicKey, "ocr2on_evm_"), + OCR2OffchainPublicKey: strings.TrimPrefix(ocr2Bndl.OffchainPublicKey, "ocr2off_evm_"), + CSAPublicKey: csaPubKey, + } + + nca = append(nca, nc) + } + return +} + +func findFirstCSAPublicKey(csaKeyResources []presenters.CSAKeyResource) (string, error) { + for _, r := range csaKeyResources { + return r.PubKey, nil + } + return "", errors.New("did not find any CSA Key Resources") +} + +func findEvmOCR2Bundle(ocr2Bundles []ocr2Bundle) int { + for i, b := range ocr2Bundles { + if b.ChainType == "evm" { + return i + } + } + return -1 +} + +func findFirstGoodEthKeyAddress(chainID int64, ethKeys []presenters.ETHKeyResource) (string, error) { + for _, ethKey := range ethKeys { + if ethKey.EVMChainID.Equal(ubig.NewI(chainID)) && !ethKey.Disabled { + if ethKey.EthBalance.IsZero() { + fmt.Println("WARN: selected ETH address has zero balance", ethKey.Address) + } + return ethKey.Address, nil + } + } + return "", errors.New("did not find an enabled ETH key for the given chain ID") +} diff --git a/core/scripts/keystone/src/99_files.go b/core/scripts/keystone/src/99_files.go new file mode 100644 index 00000000000..d334b0fd56c --- /dev/null +++ b/core/scripts/keystone/src/99_files.go @@ -0,0 +1,69 @@ +package src + +import ( + "bufio" + "encoding/json" + "fmt" + "io" + "os" + + "github.com/smartcontractkit/chainlink/v2/core/utils" +) + +const ( + artefactsDir = "artefacts" + deployedContractsJSON = "deployed_contracts.json" + bootstrapSpecTemplate = "bootstrap.toml" + cribOverrideTemplate = "crib-overrides.yaml" + oracleSpecTemplate = "oracle.toml" +) + +func writeLines(lines []string, path string) error { + file, err := os.Create(path) + if err != nil { + return err + } + wc := utils.NewDeferableWriteCloser(file) + defer wc.Close() + + w := bufio.NewWriter(file) + for _, line := range lines { + fmt.Fprintln(w, line) + } + if err := w.Flush(); err != nil { + return err + } + return wc.Close() +} + +func readLines(path string) ([]string, error) { + file, err := os.Open(path) + if err != nil { + return nil, err + } + defer file.Close() + + var lines []string + scanner := bufio.NewScanner(file) + for scanner.Scan() { + lines = append(lines, scanner.Text()) + } + return lines, scanner.Err() +} + +func mustParseJSON[T any](fileName string) (output T) { + jsonFile, err := os.Open(fileName) + if err != nil { + panic(err) + } + defer jsonFile.Close() + bytes, err := io.ReadAll(jsonFile) + if err != nil { + panic(err) + } + err = json.Unmarshal(bytes, &output) + if err != nil { + panic(err) + } + return +} diff --git a/core/scripts/keystone/src/99_files_test.go b/core/scripts/keystone/src/99_files_test.go new file mode 100644 index 00000000000..83ceb5cd9cc --- /dev/null +++ b/core/scripts/keystone/src/99_files_test.go @@ -0,0 +1,36 @@ +package src + +import ( + "path/filepath" + "strings" + "testing" + + "github.com/stretchr/testify/assert" +) + +func Test_writeLines(t *testing.T) { + type args struct { + lines []string + } + tests := []struct { + name string + args args + }{ + { + name: "write read lines", + args: args{ + lines: []string{"a", "b"}, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + pth := filepath.Join(t.TempDir(), strings.ReplaceAll(tt.name, " ", "_")) + err := writeLines(tt.args.lines, pth) + assert.NoError(t, err) + got, err := readLines(pth) + assert.NoError(t, err) + assert.Equal(t, tt.args.lines, got) + }) + } +} diff --git a/core/scripts/keystone/src/99_k8s_client.go b/core/scripts/keystone/src/99_k8s_client.go new file mode 100644 index 00000000000..55a0ac82bcb --- /dev/null +++ b/core/scripts/keystone/src/99_k8s_client.go @@ -0,0 +1,159 @@ +package src + +import ( + "context" + "fmt" + "log" + "sort" + "strings" + + v1 "k8s.io/api/core/v1" + networkingV1 "k8s.io/api/networking/v1" + metaV1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/client-go/kubernetes" + "k8s.io/client-go/rest" + "k8s.io/client-go/tools/clientcmd" +) + +// Taken from https://github.com/smartcontractkit/chainlink-testing-framework/blob/7ae47c88ecbb8a483ffe4d1e796704d1245f54d0/k8s/client/client.go + +// K8sClient high level k8s client +type K8sClient struct { + ClientSet *kubernetes.Clientset + RESTConfig *rest.Config + KubeConfig clientcmd.ClientConfig + namespace string +} + +// getLocalK8sDeps get local k8s context config +func getLocalK8sDeps() (*kubernetes.Clientset, *rest.Config, clientcmd.ClientConfig, error) { + loadingRules := clientcmd.NewDefaultClientConfigLoadingRules() + kubeConfig := clientcmd.NewNonInteractiveDeferredLoadingClientConfig(loadingRules, &clientcmd.ConfigOverrides{}) + k8sConfig, err := kubeConfig.ClientConfig() + if err != nil { + return nil, nil, nil, err + } + k8sClient, err := kubernetes.NewForConfig(k8sConfig) + if err != nil { + return nil, nil, nil, err + } + return k8sClient, k8sConfig, kubeConfig, nil +} + +// MustNewK8sClient creates a new k8s client with a REST config +func MustNewK8sClient() *K8sClient { + cs, restConfig, kubeConfig, err := getLocalK8sDeps() + if err != nil { + log.Fatalf("Failed to create k8s client: %v", err) + } + + namespace, overridden, err := kubeConfig.Namespace() + if err != nil { + log.Fatalf("Failed to get namespace: %v", err) + } + if overridden { + fmt.Println("Namespace overridden to: ", namespace) + } + + return &K8sClient{ + ClientSet: cs, + RESTConfig: restConfig, + KubeConfig: kubeConfig, + namespace: namespace, + } +} + +type PodWithConfigMap struct { + v1.Pod + ConfigMap v1.ConfigMap + Host string +} + +func (m *K8sClient) GetPodsWithConfigMap() ([]PodWithConfigMap, error) { + pods, err := m.ListPods("app=app") + if err != nil { + return nil, err + } + if len(pods.Items) == 0 { + return nil, fmt.Errorf("no chainlink node crib pods found, is your crib cluster deployed?") + } + + podsWithConfigMaps := []PodWithConfigMap{} + ingressList, err := m.ListIngresses() + if err != nil { + return nil, err + } + if len(ingressList.Items) == 0 { + return nil, fmt.Errorf("no ingress found, is your crib cluster deployed?") + } + + for _, pod := range pods.Items { + for _, v := range pod.Spec.Volumes { + if v.ConfigMap == nil { + continue + } + cm, err := m.GetConfigMap(v.ConfigMap.Name) + if err != nil { + return nil, err + } + // - host: crib-henry-keystone-node2.main.stage.cldev.sh + // http: + // paths: + // - backend: + // service: + // name: app-node-2 + // port: + // number: 6688 + // path: /* + // pathType: ImplementationSpecific + instance := pod.Labels["instance"] + var host string + for _, ingress := range ingressList.Items { + for _, rule := range ingress.Spec.Rules { + for _, path := range rule.HTTP.Paths { + if strings.Contains(path.Backend.Service.Name, instance) { + host = rule.Host + } + } + } + } + + if host == "" { + return nil, fmt.Errorf("could not find host for pod %s", pod.Name) + } + + podWithConfigMap := PodWithConfigMap{ + Host: host, + Pod: pod, + ConfigMap: *cm, + } + podsWithConfigMaps = append(podsWithConfigMaps, podWithConfigMap) + } + } + + fmt.Printf("Found %d chainlink node crib pods\n", len(podsWithConfigMaps)) + return podsWithConfigMaps, nil +} + +// ListPods lists pods for a namespace and selector +func (m *K8sClient) ListPods(selector string) (*v1.PodList, error) { + pods, err := m.ClientSet.CoreV1().Pods(m.namespace).List(context.Background(), metaV1.ListOptions{LabelSelector: selector}) + sort.Slice(pods.Items, func(i, j int) bool { + return pods.Items[i].CreationTimestamp.Before(pods.Items[j].CreationTimestamp.DeepCopy()) + }) + + return pods.DeepCopy(), err +} + +// Get a config map +func (m *K8sClient) GetConfigMap(name string) (*v1.ConfigMap, error) { + configMap, err := m.ClientSet.CoreV1().ConfigMaps(m.namespace).Get(context.Background(), name, metaV1.GetOptions{}) + + return configMap.DeepCopy(), err +} + +func (m *K8sClient) ListIngresses() (*networkingV1.IngressList, error) { + ingressList, err := m.ClientSet.NetworkingV1().Ingresses(m.namespace).List(context.Background(), metaV1.ListOptions{}) + + return ingressList.DeepCopy(), err +} diff --git a/core/scripts/keystone/src/99_nodes.go b/core/scripts/keystone/src/99_nodes.go new file mode 100644 index 00000000000..961d58c4b19 --- /dev/null +++ b/core/scripts/keystone/src/99_nodes.go @@ -0,0 +1,69 @@ +package src + +import ( + "errors" + "fmt" + "net/url" + "strings" + + helpers "github.com/smartcontractkit/chainlink/core/scripts/common" +) + +type node struct { + url *url.URL + login string + password string +} + +func (n node) IsTerminal() bool { + return false +} + +func (n node) PasswordPrompt(p string) string { + return n.password +} + +func (n node) Prompt(p string) string { + return n.login +} + +func writeNodesList(path string, nodes []*node) error { + fmt.Println("Writing nodes list to", path) + var lines []string + for _, n := range nodes { + lines = append(lines, fmt.Sprintf("%s %s %s", n.url.String(), n.login, n.password)) + } + + return writeLines(lines, path) +} + +func mustReadNodesList(path string) []*node { + fmt.Println("Reading nodes list from", path) + nodesList, err := readLines(path) + helpers.PanicErr(err) + + var nodes []*node + var hasBoot bool + for _, r := range nodesList { + rr := strings.TrimSpace(r) + if len(rr) == 0 { + continue + } + s := strings.Split(rr, " ") + if len(s) != 3 { + helpers.PanicErr(errors.New("wrong nodes list format")) + } + if strings.Contains(s[0], "boot") && hasBoot { + helpers.PanicErr(errors.New("the single boot node must come first")) + } + hasBoot = true + url, err := url.Parse(s[0]) + helpers.PanicErr(err) + nodes = append(nodes, &node{ + url: url, + login: s[1], + password: s[2], + }) + } + return nodes +} diff --git a/core/scripts/keystone/src/__snapshots__/03_gen_crib_cluster_overrides_cmd_test.snap b/core/scripts/keystone/src/__snapshots__/03_gen_crib_cluster_overrides_cmd_test.snap new file mode 100755 index 00000000000..08b79a9f4f9 --- /dev/null +++ b/core/scripts/keystone/src/__snapshots__/03_gen_crib_cluster_overrides_cmd_test.snap @@ -0,0 +1,44 @@ + +[TestGenerateCribConfig - 1] +helm: + values: + chainlink: + nodes: + node1: + image: ${runtime.images.app} + overridesToml: |- + [[EVM]] + ChainID = '11155111' + node2: + image: ${runtime.images.app} + overridesToml: |- + [[EVM]] + ChainID = '11155111' + [EVM.Workflow] + FromAddress = '0x8B60FDcc9CAC8ea476b31d17011CB204471431d9' + ForwarderAddress = '0x1234567890abcdef' + node3: + image: ${runtime.images.app} + overridesToml: |- + [[EVM]] + ChainID = '11155111' + [EVM.Workflow] + FromAddress = '0x6620F516F29979B214e2451498a057FDd3a0A85d' + ForwarderAddress = '0x1234567890abcdef' + node4: + image: ${runtime.images.app} + overridesToml: |- + [[EVM]] + ChainID = '11155111' + [EVM.Workflow] + FromAddress = '0xFeB61E22FCf4F9740c9D96b05199F195bd61A7c2' + ForwarderAddress = '0x1234567890abcdef' + node5: + image: ${runtime.images.app} + overridesToml: |- + [[EVM]] + ChainID = '11155111' + [EVM.Workflow] + FromAddress = '0x882Fd04D78A7e7D386Dd5b550f19479E5494B0B2' + ForwarderAddress = '0x1234567890abcdef' +--- diff --git a/core/scripts/keystone/src/__snapshots__/88_gen_jobspecs_test.snap b/core/scripts/keystone/src/__snapshots__/88_gen_jobspecs_test.snap new file mode 100755 index 00000000000..1ee7f678945 --- /dev/null +++ b/core/scripts/keystone/src/__snapshots__/88_gen_jobspecs_test.snap @@ -0,0 +1,135 @@ + +[TestGenSpecs - 1] +Bootstrap: +Host: crib-henry-keystone-node1.main.stage.cldev.sh +type = "bootstrap" +schemaVersion = 1 +name = "Keystone boot" +contractID = "0xB29934624cAe3765E33115A9530a13f5aEC7fa8A" +relay = "evm" + +[relayConfig] +chainID = "11155111" + +Oracles: +Oracle 0: +Host: crib-henry-keystone-node2.main.stage.cldev.sh +type = "offchainreporting2" +schemaVersion = 1 +name = "Keystone" +contractID = "0xB29934624cAe3765E33115A9530a13f5aEC7fa8A" +ocrKeyBundleID = "b3df4d8748b67731a1112e8b45a764941974f5590c93672eebbc4f3504dd10ed" +p2pv2Bootstrappers = [ + "12D3KooWNmhKZL1XW4Vv3rNjLXzJ6mqcVerihdijjGYuexPrFUFZ@crib-henry-keystone-node1.main.stage.cldev.sh:6690", +] +relay = "evm" +pluginType = "plugin" +transmitterID = "0x8B60FDcc9CAC8ea476b31d17011CB204471431d9" + +[relayConfig] +chainID = "11155111" + +[pluginConfig] +command = "chainlink-ocr3-capability" +ocrVersion = 3 +pluginName = "ocr-capability" +providerType = "plugin" +telemetryType = "plugin" + +[onchainSigningStrategy] +strategyName = 'single-chain' +[onchainSigningStrategy.config] +publicKey = '8fa807463ad73f9ee855cfd60ba406dcf98a2855b3dd8af613107b0f6890a707' + +-------------------------------- +Oracle 1: +Host: crib-henry-keystone-node3.main.stage.cldev.sh +type = "offchainreporting2" +schemaVersion = 1 +name = "Keystone" +contractID = "0xB29934624cAe3765E33115A9530a13f5aEC7fa8A" +ocrKeyBundleID = "38459ae37f29f2c1fde0f25972a973322be8cada82acf43f464756836725be97" +p2pv2Bootstrappers = [ + "12D3KooWNmhKZL1XW4Vv3rNjLXzJ6mqcVerihdijjGYuexPrFUFZ@crib-henry-keystone-node1.main.stage.cldev.sh:6690", +] +relay = "evm" +pluginType = "plugin" +transmitterID = "0x6620F516F29979B214e2451498a057FDd3a0A85d" + +[relayConfig] +chainID = "11155111" + +[pluginConfig] +command = "chainlink-ocr3-capability" +ocrVersion = 3 +pluginName = "ocr-capability" +providerType = "plugin" +telemetryType = "plugin" + +[onchainSigningStrategy] +strategyName = 'single-chain' +[onchainSigningStrategy.config] +publicKey = '8fa807463ad73f9ee855cfd60ba406dcf98a2855b3dd8af613107b0f6890a707' + +-------------------------------- +Oracle 2: +Host: crib-henry-keystone-node4.main.stage.cldev.sh +type = "offchainreporting2" +schemaVersion = 1 +name = "Keystone" +contractID = "0xB29934624cAe3765E33115A9530a13f5aEC7fa8A" +ocrKeyBundleID = "b5dbc4c9da983cddde2e3226b85807eb7beaf818694a22576af4d80f352702ed" +p2pv2Bootstrappers = [ + "12D3KooWNmhKZL1XW4Vv3rNjLXzJ6mqcVerihdijjGYuexPrFUFZ@crib-henry-keystone-node1.main.stage.cldev.sh:6690", +] +relay = "evm" +pluginType = "plugin" +transmitterID = "0xFeB61E22FCf4F9740c9D96b05199F195bd61A7c2" + +[relayConfig] +chainID = "11155111" + +[pluginConfig] +command = "chainlink-ocr3-capability" +ocrVersion = 3 +pluginName = "ocr-capability" +providerType = "plugin" +telemetryType = "plugin" + +[onchainSigningStrategy] +strategyName = 'single-chain' +[onchainSigningStrategy.config] +publicKey = '8fa807463ad73f9ee855cfd60ba406dcf98a2855b3dd8af613107b0f6890a707' + +-------------------------------- +Oracle 3: +Host: crib-henry-keystone-node5.main.stage.cldev.sh +type = "offchainreporting2" +schemaVersion = 1 +name = "Keystone" +contractID = "0xB29934624cAe3765E33115A9530a13f5aEC7fa8A" +ocrKeyBundleID = "260d5c1a618cdf5324509d7db95f5a117511864ebb9e1f709e8969339eb225af" +p2pv2Bootstrappers = [ + "12D3KooWNmhKZL1XW4Vv3rNjLXzJ6mqcVerihdijjGYuexPrFUFZ@crib-henry-keystone-node1.main.stage.cldev.sh:6690", +] +relay = "evm" +pluginType = "plugin" +transmitterID = "0x882Fd04D78A7e7D386Dd5b550f19479E5494B0B2" + +[relayConfig] +chainID = "11155111" + +[pluginConfig] +command = "chainlink-ocr3-capability" +ocrVersion = 3 +pluginName = "ocr-capability" +providerType = "plugin" +telemetryType = "plugin" + +[onchainSigningStrategy] +strategyName = 'single-chain' +[onchainSigningStrategy.config] +publicKey = '8fa807463ad73f9ee855cfd60ba406dcf98a2855b3dd8af613107b0f6890a707' + + +--- diff --git a/core/scripts/keystone/src/__snapshots__/88_gen_ocr3_config_test.snap b/core/scripts/keystone/src/__snapshots__/88_gen_ocr3_config_test.snap new file mode 100755 index 00000000000..a2ecd236f74 --- /dev/null +++ b/core/scripts/keystone/src/__snapshots__/88_gen_ocr3_config_test.snap @@ -0,0 +1,23 @@ + +[TestGenerateOCR3Config - 1] +{ + "F": 1, + "OffchainConfig": "", + "OffchainConfigVersion": 30, + "OnchainConfig": "0x", + "Signers": [ + "0xA2402db8E549f094EA31e1C0EDd77623F4cA5b12", + "0x4af19c802B244D1d085492C3946391C965E10519", + "0x61925685d2B80b121537341d063c4E57B2F9323c", + "0xFd97eFD53FC20acc098Fcd746C04d8d7540D97E0", + "0xA0b67Dc5345a71D02B396147AE2cb75dDA63CbE9" + ], + "Transmitters": [ + "0xF4e7e516146c8567F8E8be0ED1f1A92798628d35", + "0x8B60FDcc9CAC8ea476b31d17011CB204471431d9", + "0x6620F516F29979B214e2451498a057FDd3a0A85d", + "0xFeB61E22FCf4F9740c9D96b05199F195bd61A7c2", + "0x882Fd04D78A7e7D386Dd5b550f19479E5494B0B2" + ] +} +--- diff --git a/core/scripts/keystone/src/testdata/NodeList.txt b/core/scripts/keystone/src/testdata/NodeList.txt new file mode 100644 index 00000000000..9a895e0f3fa --- /dev/null +++ b/core/scripts/keystone/src/testdata/NodeList.txt @@ -0,0 +1,5 @@ +https://crib-henry-keystone-node1.main.stage.cldev.sh notreal@fakeemail.ch fj293fbBnlQ!f9vNs +https://crib-henry-keystone-node2.main.stage.cldev.sh notreal@fakeemail.ch fj293fbBnlQ!f9vNs +https://crib-henry-keystone-node3.main.stage.cldev.sh notreal@fakeemail.ch fj293fbBnlQ!f9vNs +https://crib-henry-keystone-node4.main.stage.cldev.sh notreal@fakeemail.ch fj293fbBnlQ!f9vNs +https://crib-henry-keystone-node5.main.stage.cldev.sh notreal@fakeemail.ch fj293fbBnlQ!f9vNs diff --git a/core/scripts/keystone/src/testdata/PublicKeys.json b/core/scripts/keystone/src/testdata/PublicKeys.json new file mode 100644 index 00000000000..7ade3d45ad3 --- /dev/null +++ b/core/scripts/keystone/src/testdata/PublicKeys.json @@ -0,0 +1,47 @@ +[ + { + "EthAddress": "0xF4e7e516146c8567F8E8be0ED1f1A92798628d35", + "P2PPeerID": "12D3KooWNmhKZL1XW4Vv3rNjLXzJ6mqcVerihdijjGYuexPrFUFZ", + "OCR2BundleID": "2f92c96da20fbe39c89e59516e3a7473254523316887394e406527c72071d3db", + "OCR2OnchainPublicKey": "a2402db8e549f094ea31e1c0edd77623f4ca5b12", + "OCR2OffchainPublicKey": "3ca9918cd2787de8f9aff91f220f30a5cc54c394f73e173b12c93368bd7072ad", + "OCR2ConfigPublicKey": "19904debd03994fe9ea411cda7a6b2f01f20a3fe803df0fed67aaf00cc99113f", + "CSAPublicKey": "csa_dbae6965bad0b0fa95ecc34a602eee1c0c570ddc29b56502e400d18574b8c3df" + }, + { + "EthAddress": "0x8B60FDcc9CAC8ea476b31d17011CB204471431d9", + "P2PPeerID": "12D3KooWFUjV73ZYkAMhS2cVwte3kXDWD8Ybyx3u9CEDHNoeEhBH", + "OCR2BundleID": "b3df4d8748b67731a1112e8b45a764941974f5590c93672eebbc4f3504dd10ed", + "OCR2OnchainPublicKey": "4af19c802b244d1d085492c3946391c965e10519", + "OCR2OffchainPublicKey": "365b9e1c3c945fc3f51afb25772f0a5a1f1547935a4b5dc89c012f590709fefe", + "OCR2ConfigPublicKey": "15ff12569d11b8ff9f17f8999ea928d03a439f3fb116661cbc4669a0a3192775", + "CSAPublicKey": "csa_c5cc655a9c19b69626519c4a72c44a94a3675daeba9c16cc23e010a7a6dac1be" + }, + { + "EthAddress": "0x6620F516F29979B214e2451498a057FDd3a0A85d", + "P2PPeerID": "12D3KooWRTtH2WWrztD87Do1kXePSmGjyU4r7mZVWThmqTGgdbUC", + "OCR2BundleID": "38459ae37f29f2c1fde0f25972a973322be8cada82acf43f464756836725be97", + "OCR2OnchainPublicKey": "61925685d2b80b121537341d063c4e57b2f9323c", + "OCR2OffchainPublicKey": "7fe2dbd9f9fb96f7dbbe0410e32d435ad67dae6c91410189fe5664cf3057ef10", + "OCR2ConfigPublicKey": "2f02fd80b362e1c7acf91680fd48c062718233acd595a6ae7cbe434e118e6a4f", + "CSAPublicKey": "csa_7407fc90c70895c0fb2bdf385e2e4918364bec1f7a74bad7fdf696bffafbcab8" + }, + { + "EthAddress": "0xFeB61E22FCf4F9740c9D96b05199F195bd61A7c2", + "P2PPeerID": "12D3KooWMTZnZtcVK4EJsjkKsV9qXNoNRSjT62CZi3tKkXGaCsGh", + "OCR2BundleID": "b5dbc4c9da983cddde2e3226b85807eb7beaf818694a22576af4d80f352702ed", + "OCR2OnchainPublicKey": "fd97efd53fc20acc098fcd746c04d8d7540d97e0", + "OCR2OffchainPublicKey": "91b393bb5e6bd6fd9de23845bcd0e0d9b0dd28a1d65d3cfb1fce9f91bd3d8c19", + "OCR2ConfigPublicKey": "09eb53924ff8b33a08b4eae2f3819015314ce6e8864ac4f86e97caafd4181506", + "CSAPublicKey": "csa_ef55caf17eefc2a9d547b5a3978d396bd237c73af99cd849a4758701122e3cba" + }, + { + "EthAddress": "0x882Fd04D78A7e7D386Dd5b550f19479E5494B0B2", + "P2PPeerID": "12D3KooWRsM9yordRQDhLgbErH8WMMGz1bC1J4hR5gAGvMWu8goN", + "OCR2BundleID": "260d5c1a618cdf5324509d7db95f5a117511864ebb9e1f709e8969339eb225af", + "OCR2OnchainPublicKey": "a0b67dc5345a71d02b396147ae2cb75dda63cbe9", + "OCR2OffchainPublicKey": "4f42ef42e5cc351dbbd79c29ef33af25c0250cac84837c1ff997bc111199d07e", + "OCR2ConfigPublicKey": "3b90249731beb9e4f598371f0b96c3babf47bcc62121ebc9c195e3c33e4fd708", + "CSAPublicKey": "csa_1b874ac2d54b966cec5a8358678ca6f030261aabf3372ce9dbea2d4eb9cdab3d" + } +] \ No newline at end of file diff --git a/core/scripts/keystone/src/testdata/SampleConfig.json b/core/scripts/keystone/src/testdata/SampleConfig.json new file mode 100644 index 00000000000..6835a4143f4 --- /dev/null +++ b/core/scripts/keystone/src/testdata/SampleConfig.json @@ -0,0 +1,27 @@ +{ + "OracleConfig": { + "MaxQueryLengthBytes": 1000000, + "MaxObservationLengthBytes": 1000000, + "MaxReportLengthBytes": 1000000, + "MaxRequestBatchSize": 1000, + "UniqueReports": true, + + "DeltaProgressMillis": 5000, + "DeltaResendMillis": 5000, + "DeltaInitialMillis": 5000, + "DeltaRoundMillis": 2000, + "DeltaGraceMillis": 500, + "DeltaCertifiedCommitRequestMillis": 1000, + "DeltaStageMillis": 30000, + "MaxRoundsPerEpoch": 10, + "TransmissionSchedule": [1, 1, 1, 1], + + "MaxDurationQueryMillis": 1000, + "MaxDurationObservationMillis": 1000, + "MaxDurationReportMillis": 1000, + "MaxDurationAcceptMillis": 1000, + "MaxDurationTransmitMillis": 1000, + + "MaxFaultyOracles": 1 + } +} diff --git a/core/scripts/keystone/templates/bootstrap.toml b/core/scripts/keystone/templates/bootstrap.toml new file mode 100644 index 00000000000..1baa43101b6 --- /dev/null +++ b/core/scripts/keystone/templates/bootstrap.toml @@ -0,0 +1,8 @@ +type = "bootstrap" +schemaVersion = 1 +name = "Keystone boot" +contractID = "{{ ocr_config_contract_address }}" +relay = "evm" + +[relayConfig] +chainID = "{{ chain_id }}" diff --git a/core/scripts/keystone/templates/crib-overrides.yaml b/core/scripts/keystone/templates/crib-overrides.yaml new file mode 100644 index 00000000000..baeaa5fa1d9 --- /dev/null +++ b/core/scripts/keystone/templates/crib-overrides.yaml @@ -0,0 +1,41 @@ +helm: + values: + chainlink: + nodes: + node1: + image: ${runtime.images.app} + overridesToml: |- + [[EVM]] + ChainID = '11155111' + node2: + image: ${runtime.images.app} + overridesToml: |- + [[EVM]] + ChainID = '11155111' + [EVM.Workflow] + FromAddress = '{{ node_2_address }}' + ForwarderAddress = '{{ forwarder_address }}' + node3: + image: ${runtime.images.app} + overridesToml: |- + [[EVM]] + ChainID = '11155111' + [EVM.Workflow] + FromAddress = '{{ node_3_address }}' + ForwarderAddress = '{{ forwarder_address }}' + node4: + image: ${runtime.images.app} + overridesToml: |- + [[EVM]] + ChainID = '11155111' + [EVM.Workflow] + FromAddress = '{{ node_4_address }}' + ForwarderAddress = '{{ forwarder_address }}' + node5: + image: ${runtime.images.app} + overridesToml: |- + [[EVM]] + ChainID = '11155111' + [EVM.Workflow] + FromAddress = '{{ node_5_address }}' + ForwarderAddress = '{{ forwarder_address }}' diff --git a/core/scripts/keystone/templates/oracle.toml b/core/scripts/keystone/templates/oracle.toml new file mode 100644 index 00000000000..f2ff87de923 --- /dev/null +++ b/core/scripts/keystone/templates/oracle.toml @@ -0,0 +1,26 @@ +type = "offchainreporting2" +schemaVersion = 1 +name = "Keystone" +contractID = "{{ ocr_config_contract_address }}" +ocrKeyBundleID = "{{ ocr_key_bundle_id }}" +p2pv2Bootstrappers = [ + "{{ bootstrapper_p2p_id }}", +] +relay = "evm" +pluginType = "plugin" +transmitterID = "{{ transmitter_id }}" + +[relayConfig] +chainID = "{{ chain_id }}" + +[pluginConfig] +command = "chainlink-ocr3-capability" +ocrVersion = 3 +pluginName = "ocr-capability" +providerType = "plugin" +telemetryType = "plugin" + +[onchainSigningStrategy] +strategyName = 'single-chain' +[onchainSigningStrategy.config] +publicKey = '8fa807463ad73f9ee855cfd60ba406dcf98a2855b3dd8af613107b0f6890a707' diff --git a/crib/.env.example b/crib/.env.example index e24473a9a22..1b192f212cb 100644 --- a/crib/.env.example +++ b/crib/.env.example @@ -19,6 +19,14 @@ CHAINLINK_CLUSTER_HELM_CHART_URI= # The duration that the namespace and all of its associated resources will be kept alive. NS_TTL=72h +# For keystone provisioning +# The websocket of the blockchain node to connect each CL node to. Needs to be Sepolia endpoint. +KEYSTONE_ETH_WS_URL= +# The http endpoint of the blockchain node to connect each CL node to. Needs to be Sepolia endpoint. +KEYSTONE_ETH_HTTP_URL= +# A private key that contains sepolia ETH to use for contract deployment and funding transmitters. +KEYSTONE_ACCOUNT_KEY= + ## # These are used by the shell script: cribbit.sh ## diff --git a/crib/README.md b/crib/README.md index a88eedb5c41..9a0ab8e9697 100644 --- a/crib/README.md +++ b/crib/README.md @@ -1,108 +1,101 @@ -# Crib Devspace Setup - -CRIB is a devspace configuration to launch chainlink cluster for system level tests - -Install `kubefwd` (no nixpkg for it yet, planned) - -``` -brew install txn2/tap/kubefwd -``` - -If you want to build images you need [docker](https://docs.docker.com/engine/install/) service running - -Enter the shell (from the root project dir) - -``` -nix develop +# Crib DevSpace Setup + +CRIB is a DevSpace-based method to launch chainlink cluster for system level tests. + +## Initial Setup + +### Prerequisites +- **Kubefwd**: Ensure you have `kubefwd` installed for port forwarding. Although no nixpkg exists yet, you can install it via Homebrew: + ```bash + brew install txn2/tap/kubefwd + ``` +- **Docker**: If you plan to build images, ensure the [Docker](https://docs.docker.com/engine/install/) service is running. +- **VPN**: Ensure you are connected to the VPN to access the necessary resources. + +### Dev Environment Setup +```bash +# Enter nix shell, which contains necessary tools +nix develop + +# Copy the environment example file and fill in the necessary values +cd crib/ +cp .env.example .env ``` -# Develop +## CRIB Initialization -## New cluster +The CRIB initialization script sets up your development environment for deploying a Chainlink cluster. This script automates several tasks, such as configuring AWS profiles, updating Kubernetes configurations, and logging into Docker and Helm registries. -We are using [devspace](https://www.devspace.sh/docs/getting-started/installation?x0=3) +### Script Overview +The script performs the following actions: +1. **Environment Setup**: Sources the `.env` file containing necessary environment variables. +2. **AWS Profile Configuration**: Sets up or updates the AWS profile for ECR registry access. +3. **AWS Authentication**: Ensures AWS credentials are valid and logs into AWS SSO if needed. +4. **Kubernetes Configuration**: Updates the kubeconfig for EKS access and sets the Kubernetes context. +5. **Docker and Helm Registry Login**: Logs into AWS ECR to allow pulling and pushing of Docker images and Helm charts. -Configure the cluster, see `deployments.app.helm.values` and [values.yaml](../charts/chainlink-cluster/values.yaml) comments for more details +### Usage Instructions -Set up your K8s access - -Copy the `.env.example` file to `.env` and fill in the required values - -```sh -cp crib/.env.example crib/.env +Execute the script with the desired namespace as an argument: +```bash +./cribbit.sh crib-yournamespace ``` +**Note**: The namespace must begin with `crib-` unless overridden. -```sh -cd crib/ -nix develop -# Pro tip: use `crib-` as a prefix for your namespace. -cribbit.sh -``` +### Troubleshooting -Build and deploy the current state of your repository +- **Missing Environment Variables**: If any environment variables are missing, the script will terminate early. Make sure all required variables are defined in your `.env` file. +- **AWS Credentials Not Detected**: If AWS credentials cannot be verified, the script will attempt to log in through SSO. Follow the prompts to complete this process. +- **Docker Daemon Not Running**: Ensure that the Docker service is running before executing the script. This is required for Docker and Helm registry logins. -``` -devspace deploy -``` - -Default `ttl` is `72h`, use `ttl` command to update if you need more time +## Cluster Configuration and Deployment -Valid values are `1h`, `2m`, `3s`, etc. Go time format is invalid `1h2m3s` - -``` -devspace run ttl ${namespace} 120h -``` +### Configuring New Clusters +We use [Devspace](https://www.devspace.sh/docs/getting-started/installation?x0=3) for cluster deployment. Review the settings in `deployments.app.helm.values` and [values.yaml](../charts/chainlink-cluster/values.yaml) for detailed configuration options. -If you want to deploy an image tag that is already available in ECR, use: -``` -devspace deploy --override-image-tag "" -``` +### Usage Examples +```bash +# Deploy the current repository state +devspace deploy -If you want to deploy an image tag from a public ECR repo, use: +# Deploy a specific image tag already available in ECR +devspace deploy --override-image-tag "" -``` -export DEVSPACE_IMAGE=public.ecr.aws/chainlink/chainlink -devspace deploy --override-image-tag 2.9.0 -``` +# Deploy a public ECR image tag +DEVSPACE_IMAGE=public.ecr.aws/chainlink/chainlink devspace deploy --override-image-tag 2.9.0 -Forward ports to check UI or run tests +# Set the time-to-live (TTL) for the namespace, once this time has passed the namespace along with all its associated resources will be deleted +# Valid values are `1h`, `2m`, `3s`, etc. Go time format is invalid `1h2m3s` +devspace run ttl ${namespace} 120hA # Default 72h -``` +# Forward ports to check UI or run tests devspace run connect ${my-personal-namespace-name-crib} -``` - -List ingress hostnames -``` +# List ingress hostnames devspace run ingress-hosts -``` -Destroy the cluster - -``` +# Destroy the cluster devspace purge ``` -## Running load tests - -Check this [doc](../../integration-tests/load/ocr/README.md) +## Load Testing +Deploy the dashboard and run load tests as described in the [testing documentation](../integration-tests/load/ocr/README.md): -If you used `devspace dev ...` always use `devspace reset pods` to switch the pods back +**NOTE:** If you used `devspace dev ...` always use `devspace reset pods` to switch the pods back # Helm -If you would like to use `helm` directly, please uncomment data in `values.yaml` +If you would like to use `helm` directly, uncomment data in `values.yaml` ## Install from local files - -``` +Deploy the cluster with the following command: +```bash helm install -f values.yaml cl-cluster . ``` -Forward all apps (in another terminal) - -``` +In another terminal, forward all apps: +```bash sudo kubefwd svc -n cl-cluster ``` @@ -110,13 +103,21 @@ Then you can connect and run your tests # Grafana dashboard -We are using [Grabana](https://github.com/K-Phoen/grabana) lib to create dashboards programmatically +We use the [Grabana](https://github.com/K-Phoen/grabana) library to create dashboards programmatically. + +## Dashboard Platform Configuration +Dashboard platform selection can be done with `INFRA_PLATFORM` environment variable. + +The available options are: + - `kubernetes` + - `docker` -You can also select dashboard platform in `INFRA_PLATFORM` either `kubernetes` or `docker` +## Panel Selection +Non-default panel selection can be done with `PANELS_INCLUDED` environment variable. -You can select the dashboard panels with `PANELS_INCLUDED` which is a list of panel names separated by comma -If you don't specify it will include core panels by default +A comma-separated list of panel names can be provided to include only those panels in the dashboard. +## Dashboard Deployment ``` export LOKI_TENANT_ID=promtail export LOKI_URL=... @@ -131,11 +132,11 @@ export DASHBOARD_NAME=CL-Cluster devspace run dashboard_deploy ``` -Open Grafana folder `DashboardCoreDebug` and find dashboard `ChainlinkClusterDebug` +Open Grafana folder `DashboardCoreDebug` and find dashboard `ChainlinkClusterDebug`. -# Testing +## Load Testing -Deploy your dashboard and run soak/load [tests](../../integration-tests/load/), check [README](../../integration-tests/README.md) for further explanations +To deploy your dashboard and run load [tests](../../integration-tests/load/), see [the integration test README](../../integration-tests/README.md). ``` devspace run dashboard_deploy @@ -143,9 +144,9 @@ devspace run workload devspace run dashboard_test ``` -# Local Testing +## Local Testing -Go to [dashboard-lib](../dashboard-lib) and link the modules locally +Go to [dashboard-lib](../dashboard-lib) and link the modules locally. ``` cd dashboard diff --git a/crib/devspace.yaml b/crib/devspace.yaml index 229c0829d02..a7530d58945 100644 --- a/crib/devspace.yaml +++ b/crib/devspace.yaml @@ -7,6 +7,10 @@ vars: pipelines: deploy: flags: + - name: clean + short: c + type: bool + description: "If specified, keystone caches will be cleaned before deploying" - name: override-image-tag short: o type: string @@ -28,7 +32,7 @@ pipelines: create_deployments app $args else build_images --all - create_deployments app + create_deployments app fi echo @@ -39,6 +43,34 @@ pipelines: kubectl label namespace ${DEVSPACE_NAMESPACE} cleanup.kyverno.io/ttl=${NS_TTL} > /dev/null 2>&1 || true kubectl label namespace/${DEVSPACE_NAMESPACE} network=crib > /dev/null 2>&1 || true + # check if profile is keystone + if [[ "${DEVSPACE_PROFILE}" == "keystone" ]]; then + echo "Keystone profile detected, provisioning Keystone" + pushd ../core/scripts/keystone + if [ $(get_flag "clean") == "true" ]; then + echo "Cleaning keystone caches" + rm -f artefacts/deployed_contracts.json .cache/* + fi + go build -o keystone main.go + chainId=11155111 + ./keystone deploy-contracts \ + --ocrfile=ocr_config.json \ + --chainid=$chainId \ + --ethurl="${KEYSTONE_ETH_HTTP_URL}" \ + --accountkey=${KEYSTONE_ACCOUNT_KEY} + + ./keystone deploy-jobspecs \ + --chainid=$chainId \ + --p2pport=6690 + + ./keystone generate-crib --chainid="$chainId" --outpath="${DEVSPACE_TMPDIR}" + popd + + create_deployments app --from-file="${DEVSPACE_TMPDIR}/crib-cluster-overrides.yaml" + kubectl delete pod -l "app=app" # restart pods to apply the new configuration changes + kubectl wait --for=condition=ready pod -l "app=app" --timeout=2m + fi + purge: run: |- kubectl delete ns ${DEVSPACE_NAMESPACE} @@ -46,7 +78,7 @@ pipelines: commands: ingress-hosts: |- kubectl get ingress -n ${DEVSPACE_NAMESPACE} \ - -o=jsonpath="{range .items[*].spec.rules[*]}{.host}{'\n'}{end}" + -o=jsonpath="{range .items[*].spec.rules[*]}{'https://'}{.host}{'\n'}{end}" connect: |- sudo kubefwd svc -n $1 ttl: |- @@ -419,6 +451,72 @@ profiles: # This will be configured via a values file. - op: remove path: deployments.app.helm.values.chainlink.global.overridesToml + - op: remove + path: deployments.app.helm.values.chainlink.nodes - op: add path: deployments.app.helm.valuesFiles value: ["./values-profiles/values-dev.yaml"] + - name: keystone + patches: + - op: remove + path: deployments.app.helm.values.chainlink.global.overridesToml + - op: replace + path: deployments.app.helm.values.geth + value: + enabled: false + - op: replace + path: deployments.app.helm.values.chainlink.global.toml + value: |- + RootDir = './clroot' + + [Log] + JSONConsole = true + Level = 'debug' + [Log.File] + MaxSize = '0b' + + [WebServer] + AllowOrigins = '*' + SecureCookies = false + SessionTimeout = '999h0m0s' + HTTPPort = 6688 + HTTPWriteTimeout = '1m' + [WebServer.RateLimit] + Authenticated = 2000 + Unauthenticated = 1000 + + [Database] + MaxIdleConns = 50 + MaxOpenConns = 50 + MigrateOnStartup = true + + [OCR2] + Enabled = true + DefaultTransactionQueueDepth = 0 + [OCR] + Enabled = false + DefaultTransactionQueueDepth = 0 + + [WebServer.TLS] + HTTPSPort = 0 + + [Feature] + FeedsManager = true + LogPoller = true + UICSAKeys = true + + [P2P] + [P2P.V2] + Enabled = true + ListenAddresses = ['0.0.0.0:6690'] + AnnounceAddresses = ['0.0.0.0:6690'] + DeltaDial = '500ms' + DeltaReconcile = '5s' + + [[EVM]] + ChainID = '11155111' + + [[EVM.Nodes]] + Name = 'primary' + WSURL = "${KEYSTONE_ETH_WS_URL}" + HTTPURL = "${KEYSTONE_ETH_HTTP_URL}" diff --git a/crib/scripts/check_env_vars.sh b/crib/scripts/check_env_vars.sh index 55480313800..5ecf2579135 100755 --- a/crib/scripts/check_env_vars.sh +++ b/crib/scripts/check_env_vars.sh @@ -3,24 +3,41 @@ # List of required environment variables required_vars=( "DEVSPACE_IMAGE" + "DEVSPACE_PROFILE" "DEVSPACE_INGRESS_CIDRS" "DEVSPACE_INGRESS_BASE_DOMAIN" "DEVSPACE_INGRESS_CERT_ARN" "DEVSPACE_K8S_POD_WAIT_TIMEOUT" "CHAINLINK_CLUSTER_HELM_CHART_URI" "NS_TTL" - ) +) -missing_vars=0 # Counter for missing variables +missing_vars=0 # Counter for missing variables # Check each variable for var in "${required_vars[@]}"; do - if [ -z "${!var}" ]; then # If variable is unset or empty + if [ -z "${!var}" ]; then # If variable is unset or empty echo "Error: Environment variable $var is not set." missing_vars=$((missing_vars + 1)) fi done +# Check for keystone specific profiles +if [[ "${DEVSPACE_PROFILE}" == "keystone" ]]; then + keystone_vars=( + "KEYSTONE_ETH_WS_URL" + "KEYSTONE_ETH_HTTP_URL" + "KEYSTONE_ACCOUNT_KEY" + ) + + for var in "${keystone_vars[@]}"; do + if [ -z "${!var}" ]; then # If variable is unset or empty + echo "Error: Environment variable $var is not set." + missing_vars=$((missing_vars + 1)) + fi + done +fi + # Exit with an error if any variables were missing if [ $missing_vars -ne 0 ]; then echo "Total missing environment variables: $missing_vars" @@ -29,4 +46,4 @@ if [ $missing_vars -ne 0 ]; then exit 1 else echo "All required environment variables are set." -fi \ No newline at end of file +fi diff --git a/crib/scripts/cribbit.sh b/crib/scripts/cribbit.sh index 316791b10cb..3d3aedfa3aa 100755 --- a/crib/scripts/cribbit.sh +++ b/crib/scripts/cribbit.sh @@ -5,7 +5,7 @@ set -euo pipefail ############################# # __________ # < CRIBbit! > -# ---------- +# ---------- # _ _ / # (o)--(o) / # /.______.\ @@ -21,14 +21,14 @@ set -euo pipefail DEVSPACE_NAMESPACE="${1:-}" if [[ -z "${DEVSPACE_NAMESPACE}" ]]; then - echo "Usage: $0 " - exit 1 + echo "Usage: $0 " + exit 1 fi # Bail if $DEVSPACE_NAMESPACE does not begin with a crib- prefix or does not have an override set. if [[ ! "${DEVSPACE_NAMESPACE}" =~ ^crib- ]] && [[ -z "${CRIB_IGNORE_NAMESPACE_PREFIX:-}" ]]; then - echo "Error: DEVSPACE_NAMESPACE must begin with 'crib-' prefix." - exit 1 + echo "Error: DEVSPACE_NAMESPACE must begin with 'crib-' prefix." + exit 1 fi # Path to the .env file @@ -46,19 +46,14 @@ fi # List of required environment variables required_vars=( - "AWS_REGION" - # Should be the short name and not the full IAM role ARN. - "AWS_SSO_ROLE_NAME" - # The AWS SSO start URL, e.g. https://.awsapps.com/start - "AWS_SSO_START_URL" "DEVSPACE_IMAGE" "HOME" ) -missing_vars=0 # Counter for missing variables +missing_vars=0 # Counter for missing variables for var in "${required_vars[@]}"; do - if [[ -z "${!var:-}" ]]; then # If variable is unset or empty + if [[ -z "${!var:-}" ]]; then # If variable is unset or empty echo "Error: Environment variable ${var} is not set." missing_vars=$((missing_vars + 1)) fi @@ -81,7 +76,29 @@ aws_profile_name="staging-crib" if grep -q "$aws_profile_name" "$path_aws_config"; then echo "Info: Skip updating ${path_aws_config}. Profile already set: ${aws_profile_name}" else - cat <> "$path_aws_config" + # List of required environment variables + required_aws_vars=( + "AWS_REGION" + # Should be the short name and not the full IAM role ARN. + "AWS_SSO_ROLE_NAME" + # The AWS SSO start URL, e.g. https://.awsapps.com/start + "AWS_SSO_START_URL" + ) + missing_aws_vars=0 # Counter for missing variables + for var in "${required_aws_vars[@]}"; do + if [[ -z "${!var:-}" ]]; then # If variable is unset or empty + echo "Error: Environment variable ${var} is not set." + missing_aws_vars=$((missing_aws_vars + 1)) + fi + done + + # Exit with an error if any variables were missing + if [[ $missing_aws_vars -ne 0 ]]; then + echo "Error: Total missing environment variables: $missing_aws_vars" + exit 1 + fi + + cat <>"$path_aws_config" [profile $aws_profile_name] region=${AWS_REGION} sso_start_url=${AWS_SSO_START_URL} @@ -95,7 +112,7 @@ fi echo "Info: Setting AWS Profile env var: AWS_PROFILE=${aws_profile_name}" export AWS_PROFILE=${aws_profile_name} -if aws sts get-caller-identity > /dev/null 2>&1; then +if aws sts get-caller-identity >/dev/null 2>&1; then echo "Info: AWS credentials working." else echo "Info: AWS credentials not detected. Attempting to login through SSO." @@ -103,7 +120,7 @@ else fi # Check again and fail this time if not successful -if ! aws sts get-caller-identity > /dev/null 2>&1; then +if ! aws sts get-caller-identity >/dev/null 2>&1; then echo "Error: AWS credentials still not detected. Exiting." exit 1 fi @@ -123,16 +140,16 @@ if [[ ! -f "${path_kubeconfig}" ]] || ! grep -q "name: ${eks_alias_name}" "${pat --alias "${eks_alias_name}" \ --region "${AWS_REGION}" else - echo "Info: Alias '${eks_alias_name}' already exists in kubeconfig. No update needed." - echo "Info: Setting kubernetes context to: ${eks_alias_name}" - kubectl config use-context "${eks_alias_name}" + echo "Info: Alias '${eks_alias_name}' already exists in kubeconfig. No update needed." + echo "Info: Setting kubernetes context to: ${eks_alias_name}" + kubectl config use-context "${eks_alias_name}" fi ## # Check Docker Daemon ## -if docker info > /dev/null 2>&1; then +if docker info >/dev/null 2>&1; then echo "Info: Docker daemon is running, authorizing registry" else echo "Error: Docker daemon is not running. Exiting." @@ -145,15 +162,15 @@ fi # Function to extract the host URI of the ECR registry from OCI URI extract_ecr_host_uri() { - local ecr_uri="$1" - # Regex to capture the ECR host URI - if [[ $ecr_uri =~ oci:\/\/([0-9]+\.dkr\.ecr\.[a-zA-Z0-9-]+\.amazonaws\.com) ]]; then - echo "${BASH_REMATCH[1]}" - else - echo "No valid ECR host URI found in the URI." - echo "Have you set CHAINLINK_CLUSTER_HELM_CHART_URI env var?" - exit 1 - fi + local ecr_uri="$1" + # Regex to capture the ECR host URI + if [[ $ecr_uri =~ oci:\/\/([0-9]+\.dkr\.ecr\.[a-zA-Z0-9-]+\.amazonaws\.com) ]]; then + echo "${BASH_REMATCH[1]}" + else + echo "No valid ECR host URI found in the URI." + echo "Have you set CHAINLINK_CLUSTER_HELM_CHART_URI env var?" + exit 1 + fi } # Set env var CRIB_SKIP_ECR_LOGIN=true to skip ECR login. @@ -162,14 +179,14 @@ if [[ -n "${CRIB_SKIP_ECR_LOGIN:-}" ]]; then else echo "Info: Logging docker into AWS ECR registry." aws ecr get-login-password \ - --region "${AWS_REGION}" \ - | docker login --username AWS \ - --password-stdin "${aws_account_id_ecr_registry}.dkr.ecr.${AWS_REGION}.amazonaws.com" + --region "${AWS_REGION}" | + docker login --username AWS \ + --password-stdin "${aws_account_id_ecr_registry}.dkr.ecr.${AWS_REGION}.amazonaws.com" echo "Info: Logging helm into AWS ECR registry." helm_registry_uri=$(extract_ecr_host_uri "${CHAINLINK_CLUSTER_HELM_CHART_URI}") - aws ecr get-login-password --region "${AWS_REGION}" \ - | helm registry login "$helm_registry_uri" --username AWS --password-stdin + aws ecr get-login-password --region "${AWS_REGION}" | + helm registry login "$helm_registry_uri" --username AWS --password-stdin fi ## From 9bb35d40c42de1183b84f32639f8176b83478826 Mon Sep 17 00:00:00 2001 From: Sam Date: Thu, 6 Jun 2024 10:39:49 -0400 Subject: [PATCH 15/40] Bump chainlink-data-streams (#13446) --- core/scripts/go.mod | 2 +- core/scripts/go.sum | 4 ++-- go.mod | 2 +- go.sum | 4 ++-- integration-tests/go.mod | 2 +- integration-tests/go.sum | 4 ++-- integration-tests/load/go.mod | 2 +- integration-tests/load/go.sum | 4 ++-- 8 files changed, 12 insertions(+), 12 deletions(-) diff --git a/core/scripts/go.mod b/core/scripts/go.mod index 228a0d27855..e2dcfcdba9b 100644 --- a/core/scripts/go.mod +++ b/core/scripts/go.mod @@ -274,7 +274,7 @@ require ( github.com/sirupsen/logrus v1.9.3 // indirect github.com/smartcontractkit/chain-selectors v1.0.10 // indirect github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20240524214833-c362c2ebbd2d // indirect - github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240220203239-09be0ea34540 // indirect + github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240606130021-a4b7359e1580 // indirect github.com/smartcontractkit/chainlink-feeds v0.0.0-20240522213638-159fb2d99917 // indirect github.com/smartcontractkit/chainlink-solana v1.0.3-0.20240605170242-555ff582f36a // indirect github.com/smartcontractkit/chainlink-starknet/relayer v0.0.1-beta-test.0.20240531021326-99118e47f696 // indirect diff --git a/core/scripts/go.sum b/core/scripts/go.sum index 86424141720..76215a34c15 100644 --- a/core/scripts/go.sum +++ b/core/scripts/go.sum @@ -1216,8 +1216,8 @@ github.com/smartcontractkit/chainlink-common v0.1.7-0.20240606094423-573049c41fa github.com/smartcontractkit/chainlink-common v0.1.7-0.20240606094423-573049c41fa0/go.mod h1:DUZccDEW98n+J1mhdWGO7wr/Njad9p9Fzks839JN7Rs= github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20240524214833-c362c2ebbd2d h1:5tgMC5Gi2UAOKZ+m28W8ubjLeR0pQCAcrz6eQ0rW510= github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20240524214833-c362c2ebbd2d/go.mod h1:0UNuO3nDt9MFsZPaHJBEUolxVkN0iC69j1ccDp95e8k= -github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240220203239-09be0ea34540 h1:xFSv8561jsLtF6gYZr/zW2z5qUUAkcFkApin2mnbYTo= -github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240220203239-09be0ea34540/go.mod h1:sjAmX8K2kbQhvDarZE1ZZgDgmHJ50s0BBc/66vKY2ek= +github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240606130021-a4b7359e1580 h1:nsnLzpBTDAQWkfsOz/qd8BTlb1hUpaow1KmA1tPwTf4= +github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240606130021-a4b7359e1580/go.mod h1:KRK7KlAEpmORi+nJgT0vxQVWvlLEBQ6zgzXziZuKvUM= github.com/smartcontractkit/chainlink-feeds v0.0.0-20240522213638-159fb2d99917 h1:MD80ZRCTvxxJ8PBmhtrKoTnky8cVNYrCrIBLVRbrOM0= github.com/smartcontractkit/chainlink-feeds v0.0.0-20240522213638-159fb2d99917/go.mod h1:jwVxhctE6BgLOSSsVq9wbREpZ8Ev34H+UBxeUhESZRs= github.com/smartcontractkit/chainlink-solana v1.0.3-0.20240605170242-555ff582f36a h1:/QIQciKjhZy+iBB74WG4pP88O2FwS1KZtSXO5COTTgI= diff --git a/go.mod b/go.mod index 24082973fd6..6844bbcd7bf 100644 --- a/go.mod +++ b/go.mod @@ -74,7 +74,7 @@ require ( github.com/smartcontractkit/chainlink-automation v1.0.3 github.com/smartcontractkit/chainlink-common v0.1.7-0.20240606094423-573049c41fa0 github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20240524214833-c362c2ebbd2d - github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240220203239-09be0ea34540 + github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240606130021-a4b7359e1580 github.com/smartcontractkit/chainlink-feeds v0.0.0-20240522213638-159fb2d99917 github.com/smartcontractkit/chainlink-solana v1.0.3-0.20240605170242-555ff582f36a github.com/smartcontractkit/chainlink-starknet/relayer v0.0.1-beta-test.0.20240531021326-99118e47f696 diff --git a/go.sum b/go.sum index 85f84e7722f..1afcb4f9b89 100644 --- a/go.sum +++ b/go.sum @@ -1175,8 +1175,8 @@ github.com/smartcontractkit/chainlink-common v0.1.7-0.20240606094423-573049c41fa github.com/smartcontractkit/chainlink-common v0.1.7-0.20240606094423-573049c41fa0/go.mod h1:DUZccDEW98n+J1mhdWGO7wr/Njad9p9Fzks839JN7Rs= github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20240524214833-c362c2ebbd2d h1:5tgMC5Gi2UAOKZ+m28W8ubjLeR0pQCAcrz6eQ0rW510= github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20240524214833-c362c2ebbd2d/go.mod h1:0UNuO3nDt9MFsZPaHJBEUolxVkN0iC69j1ccDp95e8k= -github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240220203239-09be0ea34540 h1:xFSv8561jsLtF6gYZr/zW2z5qUUAkcFkApin2mnbYTo= -github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240220203239-09be0ea34540/go.mod h1:sjAmX8K2kbQhvDarZE1ZZgDgmHJ50s0BBc/66vKY2ek= +github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240606130021-a4b7359e1580 h1:nsnLzpBTDAQWkfsOz/qd8BTlb1hUpaow1KmA1tPwTf4= +github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240606130021-a4b7359e1580/go.mod h1:KRK7KlAEpmORi+nJgT0vxQVWvlLEBQ6zgzXziZuKvUM= github.com/smartcontractkit/chainlink-feeds v0.0.0-20240522213638-159fb2d99917 h1:MD80ZRCTvxxJ8PBmhtrKoTnky8cVNYrCrIBLVRbrOM0= github.com/smartcontractkit/chainlink-feeds v0.0.0-20240522213638-159fb2d99917/go.mod h1:jwVxhctE6BgLOSSsVq9wbREpZ8Ev34H+UBxeUhESZRs= github.com/smartcontractkit/chainlink-solana v1.0.3-0.20240605170242-555ff582f36a h1:/QIQciKjhZy+iBB74WG4pP88O2FwS1KZtSXO5COTTgI= diff --git a/integration-tests/go.mod b/integration-tests/go.mod index a93b35e1544..dd0e0ed3c44 100644 --- a/integration-tests/go.mod +++ b/integration-tests/go.mod @@ -376,7 +376,7 @@ require ( github.com/sirupsen/logrus v1.9.3 // indirect github.com/smartcontractkit/chain-selectors v1.0.10 // indirect github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20240524214833-c362c2ebbd2d // indirect - github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240220203239-09be0ea34540 // indirect + github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240606130021-a4b7359e1580 // indirect github.com/smartcontractkit/chainlink-feeds v0.0.0-20240522213638-159fb2d99917 // indirect github.com/smartcontractkit/chainlink-solana v1.0.3-0.20240605170242-555ff582f36a // indirect github.com/smartcontractkit/chainlink-starknet/relayer v0.0.1-beta-test.0.20240531021326-99118e47f696 // indirect diff --git a/integration-tests/go.sum b/integration-tests/go.sum index 16cdd4a5cca..75d96085bdb 100644 --- a/integration-tests/go.sum +++ b/integration-tests/go.sum @@ -1516,8 +1516,8 @@ github.com/smartcontractkit/chainlink-common v0.1.7-0.20240606094423-573049c41fa github.com/smartcontractkit/chainlink-common v0.1.7-0.20240606094423-573049c41fa0/go.mod h1:DUZccDEW98n+J1mhdWGO7wr/Njad9p9Fzks839JN7Rs= github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20240524214833-c362c2ebbd2d h1:5tgMC5Gi2UAOKZ+m28W8ubjLeR0pQCAcrz6eQ0rW510= github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20240524214833-c362c2ebbd2d/go.mod h1:0UNuO3nDt9MFsZPaHJBEUolxVkN0iC69j1ccDp95e8k= -github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240220203239-09be0ea34540 h1:xFSv8561jsLtF6gYZr/zW2z5qUUAkcFkApin2mnbYTo= -github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240220203239-09be0ea34540/go.mod h1:sjAmX8K2kbQhvDarZE1ZZgDgmHJ50s0BBc/66vKY2ek= +github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240606130021-a4b7359e1580 h1:nsnLzpBTDAQWkfsOz/qd8BTlb1hUpaow1KmA1tPwTf4= +github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240606130021-a4b7359e1580/go.mod h1:KRK7KlAEpmORi+nJgT0vxQVWvlLEBQ6zgzXziZuKvUM= github.com/smartcontractkit/chainlink-feeds v0.0.0-20240522213638-159fb2d99917 h1:MD80ZRCTvxxJ8PBmhtrKoTnky8cVNYrCrIBLVRbrOM0= github.com/smartcontractkit/chainlink-feeds v0.0.0-20240522213638-159fb2d99917/go.mod h1:jwVxhctE6BgLOSSsVq9wbREpZ8Ev34H+UBxeUhESZRs= github.com/smartcontractkit/chainlink-solana v1.0.3-0.20240605170242-555ff582f36a h1:/QIQciKjhZy+iBB74WG4pP88O2FwS1KZtSXO5COTTgI= diff --git a/integration-tests/load/go.mod b/integration-tests/load/go.mod index f045c0f1527..63c6c3e69cc 100644 --- a/integration-tests/load/go.mod +++ b/integration-tests/load/go.mod @@ -365,7 +365,7 @@ require ( github.com/sirupsen/logrus v1.9.3 // indirect github.com/smartcontractkit/chain-selectors v1.0.10 // indirect github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20240524214833-c362c2ebbd2d // indirect - github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240220203239-09be0ea34540 // indirect + github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240606130021-a4b7359e1580 // indirect github.com/smartcontractkit/chainlink-feeds v0.0.0-20240522213638-159fb2d99917 // indirect github.com/smartcontractkit/chainlink-solana v1.0.3-0.20240605170242-555ff582f36a // indirect github.com/smartcontractkit/chainlink-starknet/relayer v0.0.1-beta-test.0.20240531021326-99118e47f696 // indirect diff --git a/integration-tests/load/go.sum b/integration-tests/load/go.sum index 549d54919ae..fd58729101b 100644 --- a/integration-tests/load/go.sum +++ b/integration-tests/load/go.sum @@ -1506,8 +1506,8 @@ github.com/smartcontractkit/chainlink-common v0.1.7-0.20240606094423-573049c41fa github.com/smartcontractkit/chainlink-common v0.1.7-0.20240606094423-573049c41fa0/go.mod h1:DUZccDEW98n+J1mhdWGO7wr/Njad9p9Fzks839JN7Rs= github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20240524214833-c362c2ebbd2d h1:5tgMC5Gi2UAOKZ+m28W8ubjLeR0pQCAcrz6eQ0rW510= github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20240524214833-c362c2ebbd2d/go.mod h1:0UNuO3nDt9MFsZPaHJBEUolxVkN0iC69j1ccDp95e8k= -github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240220203239-09be0ea34540 h1:xFSv8561jsLtF6gYZr/zW2z5qUUAkcFkApin2mnbYTo= -github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240220203239-09be0ea34540/go.mod h1:sjAmX8K2kbQhvDarZE1ZZgDgmHJ50s0BBc/66vKY2ek= +github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240606130021-a4b7359e1580 h1:nsnLzpBTDAQWkfsOz/qd8BTlb1hUpaow1KmA1tPwTf4= +github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240606130021-a4b7359e1580/go.mod h1:KRK7KlAEpmORi+nJgT0vxQVWvlLEBQ6zgzXziZuKvUM= github.com/smartcontractkit/chainlink-feeds v0.0.0-20240522213638-159fb2d99917 h1:MD80ZRCTvxxJ8PBmhtrKoTnky8cVNYrCrIBLVRbrOM0= github.com/smartcontractkit/chainlink-feeds v0.0.0-20240522213638-159fb2d99917/go.mod h1:jwVxhctE6BgLOSSsVq9wbREpZ8Ev34H+UBxeUhESZRs= github.com/smartcontractkit/chainlink-solana v1.0.3-0.20240605170242-555ff582f36a h1:/QIQciKjhZy+iBB74WG4pP88O2FwS1KZtSXO5COTTgI= From 77efaa2153b0608f9fee94d0e06c97187e4e4431 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bla=C5=BE=20Hrastnik?= Date: Fri, 7 Jun 2024 00:28:55 +0900 Subject: [PATCH 16/40] keystone: multiple signer sets (#13417) * keystone: Store configs by version * Restructure code to avoid double lookup * Only load the F value once * Implement clearConfig * Remove now unused parameter * keystone: Match other optimizer runs configs * keystone: Test report submission with different config versions * Move f value validation earlier in the call * keystone: prettier format * Remove unused error * Update gas snapshots * Update gethwrappers --------- Co-authored-by: app-token-issuer-infra-releng[bot] <120227048+app-token-issuer-infra-releng[bot]@users.noreply.github.com> --- contracts/foundry.toml | 2 +- contracts/gas-snapshots/keystone.gas-snapshot | 180 +++++++++--------- .../src/v0.8/keystone/KeystoneForwarder.sol | 67 ++++--- .../test/KeystoneForwarderBaseTest.t.sol | 16 ++ .../test/KeystoneForwarder_ReportTest.t.sol | 86 +++++++-- .../KeystoneForwarder_SetConfigTest.t.sol | 16 +- .../keystone/generated/forwarder/forwarder.go | 32 +++- ...rapper-dependency-versions-do-not-edit.txt | 2 +- 8 files changed, 257 insertions(+), 144 deletions(-) diff --git a/contracts/foundry.toml b/contracts/foundry.toml index bbc9f395942..533336d1b53 100644 --- a/contracts/foundry.toml +++ b/contracts/foundry.toml @@ -53,10 +53,10 @@ test = 'src/v0.8/llo-feeds/test' solc_version = '0.8.19' [profile.keystone] +optimizer_runs = 1_000_000 solc_version = '0.8.19' src = 'src/v0.8/keystone' test = 'src/v0.8/keystone/test' -optimizer_runs = 10_000 [profile.operatorforwarder] optimizer_runs = 1_000_000 diff --git a/contracts/gas-snapshots/keystone.gas-snapshot b/contracts/gas-snapshots/keystone.gas-snapshot index 47c59a149a6..7fd567189ef 100644 --- a/contracts/gas-snapshots/keystone.gas-snapshot +++ b/contracts/gas-snapshots/keystone.gas-snapshot @@ -1,90 +1,92 @@ -CapabilityRegistry_AddCapabilityTest:test_AddCapability_NoConfigurationContract() (gas: 146887) -CapabilityRegistry_AddCapabilityTest:test_AddCapability_WithConfiguration() (gas: 171153) -CapabilityRegistry_AddCapabilityTest:test_DeprecatesCapability() (gas: 88700) -CapabilityRegistry_AddCapabilityTest:test_EmitsEvent() (gas: 88821) -CapabilityRegistry_AddCapabilityTest:test_RevertWhen_CalledByNonAdmin() (gas: 21734) -CapabilityRegistry_AddCapabilityTest:test_RevertWhen_CalledByNonAdmin() (gas: 22208) +CapabilityRegistry_AddCapabilityTest:test_AddCapability_NoConfigurationContract() (gas: 146839) +CapabilityRegistry_AddCapabilityTest:test_AddCapability_WithConfiguration() (gas: 171105) +CapabilityRegistry_AddCapabilityTest:test_DeprecatesCapability() (gas: 88694) +CapabilityRegistry_AddCapabilityTest:test_EmitsEvent() (gas: 88815) +CapabilityRegistry_AddCapabilityTest:test_RevertWhen_CalledByNonAdmin() (gas: 21728) +CapabilityRegistry_AddCapabilityTest:test_RevertWhen_CalledByNonAdmin() (gas: 22199) CapabilityRegistry_AddCapabilityTest:test_RevertWhen_CapabilityDoesNotExist() (gas: 15521) -CapabilityRegistry_AddCapabilityTest:test_RevertWhen_CapabilityExists() (gas: 138709) -CapabilityRegistry_AddCapabilityTest:test_RevertWhen_CapabilityIsDeprecated() (gas: 89502) -CapabilityRegistry_AddCapabilityTest:test_RevertWhen_ConfigurationContractDoesNotMatchInterface() (gas: 3889776) -CapabilityRegistry_AddCapabilityTest:test_RevertWhen_ConfigurationContractNotDeployed() (gas: 25007) -CapabilityRegistry_AddDONTest:test_AddDON() (gas: 332981) -CapabilityRegistry_AddDONTest:test_RevertWhen_CalledByNonAdmin() (gas: 19294) -CapabilityRegistry_AddDONTest:test_RevertWhen_CapabilityDoesNotExist() (gas: 155475) -CapabilityRegistry_AddDONTest:test_RevertWhen_DeprecatedCapabilityAdded() (gas: 224972) -CapabilityRegistry_AddDONTest:test_RevertWhen_DuplicateCapabilityAdded() (gas: 239517) -CapabilityRegistry_AddDONTest:test_RevertWhen_DuplicateNodeAdded() (gas: 108063) -CapabilityRegistry_AddDONTest:test_RevertWhen_FaultToleranceIsZero() (gas: 40167) -CapabilityRegistry_AddDONTest:test_RevertWhen_NodeDoesNotSupportCapability() (gas: 169939) -CapabilityRegistry_AddNodeOperatorsTest:test_AddNodeOperators() (gas: 134000) -CapabilityRegistry_AddNodeOperatorsTest:test_RevertWhen_CalledByNonAdmin() (gas: 16961) -CapabilityRegistry_AddNodeOperatorsTest:test_RevertWhen_NodeOperatorAdminAddressZero() (gas: 17813) -CapabilityRegistry_AddNodesTest:test_AddsNodeInfo() (gas: 355902) -CapabilityRegistry_AddNodesTest:test_OwnerCanAddNodes() (gas: 355890) -CapabilityRegistry_AddNodesTest:test_RevertWhen_AddingDuplicateP2PId() (gas: 301737) -CapabilityRegistry_AddNodesTest:test_RevertWhen_AddingNodeWithInvalidCapability() (gas: 55394) -CapabilityRegistry_AddNodesTest:test_RevertWhen_AddingNodeWithoutCapabilities() (gas: 27730) -CapabilityRegistry_AddNodesTest:test_RevertWhen_CalledByNonNodeOperatorAdminAndNonOwner() (gas: 24597) -CapabilityRegistry_AddNodesTest:test_RevertWhen_P2PIDEmpty() (gas: 27436) -CapabilityRegistry_AddNodesTest:test_RevertWhen_SignerAddressEmpty() (gas: 27069) -CapabilityRegistry_AddNodesTest:test_RevertWhen_SignerAddressNotUnique() (gas: 310150) -CapabilityRegistry_GetCapabilitiesTest:test_ExcludesDeprecatedCapabilities() (gas: 115108) -CapabilityRegistry_GetCapabilitiesTest:test_ReturnsCapabilities() (gas: 54030) -CapabilityRegistry_GetDONsTest:test_CorrectlyFetchesDONs() (gas: 72024) -CapabilityRegistry_GetDONsTest:test_DoesNotIncludeRemovedDONs() (gas: 116236) -CapabilityRegistry_GetHashedCapabilityTest:test_CorrectlyGeneratesHashedCapabilityId() (gas: 10848) -CapabilityRegistry_GetHashedCapabilityTest:test_DoesNotCauseIncorrectClashes() (gas: 11927) -CapabilityRegistry_GetNodeOperatorsTest:test_CorrectlyFetchesNodeOperators() (gas: 34409) -CapabilityRegistry_GetNodeOperatorsTest:test_DoesNotIncludeRemovedNodeOperators() (gas: 99043) -CapabilityRegistry_GetNodesTest:test_CorrectlyFetchesNodes() (gas: 60003) -CapabilityRegistry_GetNodesTest:test_DoesNotIncludeRemovedNodes() (gas: 73840) -CapabilityRegistry_RemoveDONsTest:test_RemovesDON() (gas: 99917) -CapabilityRegistry_RemoveDONsTest:test_RevertWhen_CalledByNonAdmin() (gas: 15675) -CapabilityRegistry_RemoveDONsTest:test_RevertWhen_DONDoesNotExist() (gas: 14166) -CapabilityRegistry_RemoveNodeOperatorsTest:test_RemovesNodeOperator() (gas: 141827) -CapabilityRegistry_RemoveNodeOperatorsTest:test_RevertWhen_CalledByNonOwner() (gas: 15767) -CapabilityRegistry_RemoveNodesTest:test_CanAddNodeWithSameSignerAddressAfterRemoving() (gas: 80925) -CapabilityRegistry_RemoveNodesTest:test_OwnerCanRemoveNodes() (gas: 57877) -CapabilityRegistry_RemoveNodesTest:test_RemovesNode() (gas: 57876) -CapabilityRegistry_RemoveNodesTest:test_RevertWhen_CalledByNonNodeOperatorAdminAndNonOwner() (gas: 25091) -CapabilityRegistry_RemoveNodesTest:test_RevertWhen_NodeDoesNotExist() (gas: 18407) -CapabilityRegistry_RemoveNodesTest:test_RevertWhen_P2PIDEmpty() (gas: 18397) -CapabilityRegistry_UpdateDONTest:test_RevertWhen_CalledByNonAdmin() (gas: 19379) -CapabilityRegistry_UpdateDONTest:test_RevertWhen_CapabilityDoesNotExist() (gas: 133511) -CapabilityRegistry_UpdateDONTest:test_RevertWhen_DONDoesNotExist() (gas: 17799) -CapabilityRegistry_UpdateDONTest:test_RevertWhen_DeprecatedCapabilityAdded() (gas: 203008) -CapabilityRegistry_UpdateDONTest:test_RevertWhen_DuplicateCapabilityAdded() (gas: 217599) -CapabilityRegistry_UpdateDONTest:test_RevertWhen_DuplicateNodeAdded() (gas: 86101) -CapabilityRegistry_UpdateDONTest:test_RevertWhen_NodeDoesNotSupportCapability() (gas: 148020) -CapabilityRegistry_UpdateDONTest:test_UpdatesDON() (gas: 331007) -CapabilityRegistry_UpdateNodeOperatorTest:test_RevertWhen_CalledByNonAdminAndNonOwner() (gas: 17727) -CapabilityRegistry_UpdateNodeOperatorTest:test_RevertWhen_NodeOperatorAdminIsZeroAddress() (gas: 17651) -CapabilityRegistry_UpdateNodeOperatorTest:test_UpdatesNodeOperator() (gas: 72390) -CapabilityRegistry_UpdateNodesTest:test_CanUpdateParamsIfNodeSignerAddressNoLongerUsed() (gas: 252355) -CapabilityRegistry_UpdateNodesTest:test_OwnerCanUpdateNodes() (gas: 159643) -CapabilityRegistry_UpdateNodesTest:test_RevertWhen_AddingNodeWithInvalidCapability() (gas: 36277) -CapabilityRegistry_UpdateNodesTest:test_RevertWhen_CalledByNonNodeOperatorAdminAndNonOwner() (gas: 24598) -CapabilityRegistry_UpdateNodesTest:test_RevertWhen_NodeDoesNotExist() (gas: 27368) -CapabilityRegistry_UpdateNodesTest:test_RevertWhen_NodeSignerAlreadyAssignedToAnotherNode() (gas: 29330) -CapabilityRegistry_UpdateNodesTest:test_RevertWhen_P2PIDEmpty() (gas: 27356) -CapabilityRegistry_UpdateNodesTest:test_RevertWhen_SignerAddressEmpty() (gas: 27033) -CapabilityRegistry_UpdateNodesTest:test_RevertWhen_UpdatingNodeWithoutCapabilities() (gas: 25690) -CapabilityRegistry_UpdateNodesTest:test_UpdatesNodeInfo() (gas: 159632) -KeystoneForwarder_ReportTest:test_Report_SuccessfulDelivery() (gas: 143626) -KeystoneForwarder_ReportTest:test_RevertWhen_AnySignatureIsInvalid() (gas: 109344) -KeystoneForwarder_ReportTest:test_RevertWhen_AnySignerIsInvalid() (gas: 140918) -KeystoneForwarder_ReportTest:test_RevertWhen_ReportAlreadyProcessed() (gas: 152819) -KeystoneForwarder_ReportTest:test_RevertWhen_ReportHasDuplicateSignatures() (gas: 117273) -KeystoneForwarder_ReportTest:test_RevertWhen_ReportHasIncorrectDON() (gas: 93443) -KeystoneForwarder_ReportTest:test_RevertWhen_ReportIsMalformed() (gas: 67749) -KeystoneForwarder_ReportTest:test_RevertWhen_TooFewSignatures() (gas: 78061) -KeystoneForwarder_ReportTest:test_RevertWhen_TooManySignatures() (gas: 78741) -KeystoneForwarder_SetConfigTest:test_RevertWhen_ExcessSigners() (gas: 19965) -KeystoneForwarder_SetConfigTest:test_RevertWhen_FaultToleranceIsZero() (gas: 89956) -KeystoneForwarder_SetConfigTest:test_RevertWhen_InsufficientSigners() (gas: 14315) -KeystoneForwarder_SetConfigTest:test_RevertWhen_NotOwner() (gas: 90678) -KeystoneForwarder_SetConfigTest:test_RevertWhen_ProvidingDuplicateSigners() (gas: 847316) -KeystoneForwarder_SetConfigTest:test_SetConfig_FirstTime() (gas: 2224343) -KeystoneForwarder_SetConfigTest:test_SetConfig_WhenSignersAreRemoved() (gas: 2367289) -KeystoneForwarder_TypeAndVersionTest:test_TypeAndVersion() (gas: 9663) \ No newline at end of file +CapabilityRegistry_AddCapabilityTest:test_RevertWhen_CapabilityExists() (gas: 138685) +CapabilityRegistry_AddCapabilityTest:test_RevertWhen_CapabilityIsDeprecated() (gas: 89496) +CapabilityRegistry_AddCapabilityTest:test_RevertWhen_ConfigurationContractDoesNotMatchInterface() (gas: 3998052) +CapabilityRegistry_AddCapabilityTest:test_RevertWhen_ConfigurationContractNotDeployed() (gas: 24995) +CapabilityRegistry_AddDONTest:test_AddDON() (gas: 332870) +CapabilityRegistry_AddDONTest:test_RevertWhen_CalledByNonAdmin() (gas: 19285) +CapabilityRegistry_AddDONTest:test_RevertWhen_CapabilityDoesNotExist() (gas: 155460) +CapabilityRegistry_AddDONTest:test_RevertWhen_DeprecatedCapabilityAdded() (gas: 224960) +CapabilityRegistry_AddDONTest:test_RevertWhen_DuplicateCapabilityAdded() (gas: 239487) +CapabilityRegistry_AddDONTest:test_RevertWhen_DuplicateNodeAdded() (gas: 108051) +CapabilityRegistry_AddDONTest:test_RevertWhen_FaultToleranceIsZero() (gas: 40158) +CapabilityRegistry_AddDONTest:test_RevertWhen_NodeDoesNotSupportCapability() (gas: 169921) +CapabilityRegistry_AddNodeOperatorsTest:test_AddNodeOperators() (gas: 133916) +CapabilityRegistry_AddNodeOperatorsTest:test_RevertWhen_CalledByNonAdmin() (gas: 16949) +CapabilityRegistry_AddNodeOperatorsTest:test_RevertWhen_NodeOperatorAdminAddressZero() (gas: 17795) +CapabilityRegistry_AddNodesTest:test_AddsNodeInfo() (gas: 355866) +CapabilityRegistry_AddNodesTest:test_OwnerCanAddNodes() (gas: 355854) +CapabilityRegistry_AddNodesTest:test_RevertWhen_AddingDuplicateP2PId() (gas: 301701) +CapabilityRegistry_AddNodesTest:test_RevertWhen_AddingNodeWithInvalidCapability() (gas: 55370) +CapabilityRegistry_AddNodesTest:test_RevertWhen_AddingNodeWithoutCapabilities() (gas: 27706) +CapabilityRegistry_AddNodesTest:test_RevertWhen_CalledByNonNodeOperatorAdminAndNonOwner() (gas: 24579) +CapabilityRegistry_AddNodesTest:test_RevertWhen_P2PIDEmpty() (gas: 27412) +CapabilityRegistry_AddNodesTest:test_RevertWhen_SignerAddressEmpty() (gas: 27051) +CapabilityRegistry_AddNodesTest:test_RevertWhen_SignerAddressNotUnique() (gas: 310108) +CapabilityRegistry_GetCapabilitiesTest:test_ExcludesDeprecatedCapabilities() (gas: 115054) +CapabilityRegistry_GetCapabilitiesTest:test_ReturnsCapabilities() (gas: 53946) +CapabilityRegistry_GetDONsTest:test_CorrectlyFetchesDONs() (gas: 71958) +CapabilityRegistry_GetDONsTest:test_DoesNotIncludeRemovedDONs() (gas: 116197) +CapabilityRegistry_GetHashedCapabilityTest:test_CorrectlyGeneratesHashedCapabilityId() (gas: 10842) +CapabilityRegistry_GetHashedCapabilityTest:test_DoesNotCauseIncorrectClashes() (gas: 11915) +CapabilityRegistry_GetNodeOperatorsTest:test_CorrectlyFetchesNodeOperators() (gas: 34361) +CapabilityRegistry_GetNodeOperatorsTest:test_DoesNotIncludeRemovedNodeOperators() (gas: 99004) +CapabilityRegistry_GetNodesTest:test_CorrectlyFetchesNodes() (gas: 59970) +CapabilityRegistry_GetNodesTest:test_DoesNotIncludeRemovedNodes() (gas: 73816) +CapabilityRegistry_RemoveDONsTest:test_RemovesDON() (gas: 99887) +CapabilityRegistry_RemoveDONsTest:test_RevertWhen_CalledByNonAdmin() (gas: 15669) +CapabilityRegistry_RemoveDONsTest:test_RevertWhen_DONDoesNotExist() (gas: 14160) +CapabilityRegistry_RemoveNodeOperatorsTest:test_RemovesNodeOperator() (gas: 141779) +CapabilityRegistry_RemoveNodeOperatorsTest:test_RevertWhen_CalledByNonOwner() (gas: 15761) +CapabilityRegistry_RemoveNodesTest:test_CanAddNodeWithSameSignerAddressAfterRemoving() (gas: 80895) +CapabilityRegistry_RemoveNodesTest:test_OwnerCanRemoveNodes() (gas: 57865) +CapabilityRegistry_RemoveNodesTest:test_RemovesNode() (gas: 57864) +CapabilityRegistry_RemoveNodesTest:test_RevertWhen_CalledByNonNodeOperatorAdminAndNonOwner() (gas: 25085) +CapabilityRegistry_RemoveNodesTest:test_RevertWhen_NodeDoesNotExist() (gas: 18395) +CapabilityRegistry_RemoveNodesTest:test_RevertWhen_P2PIDEmpty() (gas: 18385) +CapabilityRegistry_UpdateDONTest:test_RevertWhen_CalledByNonAdmin() (gas: 19370) +CapabilityRegistry_UpdateDONTest:test_RevertWhen_CapabilityDoesNotExist() (gas: 133496) +CapabilityRegistry_UpdateDONTest:test_RevertWhen_DONDoesNotExist() (gas: 17790) +CapabilityRegistry_UpdateDONTest:test_RevertWhen_DeprecatedCapabilityAdded() (gas: 202996) +CapabilityRegistry_UpdateDONTest:test_RevertWhen_DuplicateCapabilityAdded() (gas: 217569) +CapabilityRegistry_UpdateDONTest:test_RevertWhen_DuplicateNodeAdded() (gas: 86089) +CapabilityRegistry_UpdateDONTest:test_RevertWhen_NodeDoesNotSupportCapability() (gas: 148002) +CapabilityRegistry_UpdateDONTest:test_UpdatesDON() (gas: 330869) +CapabilityRegistry_UpdateNodeOperatorTest:test_RevertWhen_CalledByNonAdminAndNonOwner() (gas: 17712) +CapabilityRegistry_UpdateNodeOperatorTest:test_RevertWhen_NodeOperatorAdminIsZeroAddress() (gas: 17636) +CapabilityRegistry_UpdateNodeOperatorTest:test_UpdatesNodeOperator() (gas: 72345) +CapabilityRegistry_UpdateNodesTest:test_CanUpdateParamsIfNodeSignerAddressNoLongerUsed() (gas: 252301) +CapabilityRegistry_UpdateNodesTest:test_OwnerCanUpdateNodes() (gas: 159616) +CapabilityRegistry_UpdateNodesTest:test_RevertWhen_AddingNodeWithInvalidCapability() (gas: 36253) +CapabilityRegistry_UpdateNodesTest:test_RevertWhen_CalledByNonNodeOperatorAdminAndNonOwner() (gas: 24580) +CapabilityRegistry_UpdateNodesTest:test_RevertWhen_NodeDoesNotExist() (gas: 27344) +CapabilityRegistry_UpdateNodesTest:test_RevertWhen_NodeSignerAlreadyAssignedToAnotherNode() (gas: 29312) +CapabilityRegistry_UpdateNodesTest:test_RevertWhen_P2PIDEmpty() (gas: 27332) +CapabilityRegistry_UpdateNodesTest:test_RevertWhen_SignerAddressEmpty() (gas: 27015) +CapabilityRegistry_UpdateNodesTest:test_RevertWhen_UpdatingNodeWithoutCapabilities() (gas: 25666) +CapabilityRegistry_UpdateNodesTest:test_UpdatesNodeInfo() (gas: 159605) +KeystoneForwarder_ReportTest:test_Report_ConfigVersion() (gas: 2676465) +KeystoneForwarder_ReportTest:test_Report_SuccessfulDelivery() (gas: 150738) +KeystoneForwarder_ReportTest:test_RevertWhen_AlreadyProcessed() (gas: 158024) +KeystoneForwarder_ReportTest:test_RevertWhen_AnySignatureIsInvalid() (gas: 111634) +KeystoneForwarder_ReportTest:test_RevertWhen_AnySignerIsInvalid() (gas: 143377) +KeystoneForwarder_ReportTest:test_RevertWhen_ReportHasDuplicateSignatures() (gas: 119553) +KeystoneForwarder_ReportTest:test_RevertWhen_ReportHasIncorrectDON() (gas: 98500) +KeystoneForwarder_ReportTest:test_RevertWhen_ReportHasInexistentConfigVersion() (gas: 98757) +KeystoneForwarder_ReportTest:test_RevertWhen_ReportIsMalformed() (gas: 67777) +KeystoneForwarder_ReportTest:test_RevertWhen_TooFewSignatures() (gas: 77819) +KeystoneForwarder_ReportTest:test_RevertWhen_TooManySignatures() (gas: 78543) +KeystoneForwarder_SetConfigTest:test_RevertWhen_ExcessSigners() (gas: 20162) +KeystoneForwarder_SetConfigTest:test_RevertWhen_FaultToleranceIsZero() (gas: 90143) +KeystoneForwarder_SetConfigTest:test_RevertWhen_InsufficientSigners() (gas: 14511) +KeystoneForwarder_SetConfigTest:test_RevertWhen_NotOwner() (gas: 90874) +KeystoneForwarder_SetConfigTest:test_RevertWhen_ProvidingDuplicateSigners() (gas: 847644) +KeystoneForwarder_SetConfigTest:test_SetConfig_FirstTime() (gas: 2224138) +KeystoneForwarder_SetConfigTest:test_SetConfig_WhenSignersAreRemoved() (gas: 2365984) +KeystoneForwarder_TypeAndVersionTest:test_TypeAndVersion() (gas: 9641) \ No newline at end of file diff --git a/contracts/src/v0.8/keystone/KeystoneForwarder.sol b/contracts/src/v0.8/keystone/KeystoneForwarder.sol index a54c3686f0c..e8885bb7543 100644 --- a/contracts/src/v0.8/keystone/KeystoneForwarder.sol +++ b/contracts/src/v0.8/keystone/KeystoneForwarder.sol @@ -47,10 +47,11 @@ contract KeystoneForwarder is IForwarder, ConfirmedOwner, TypeAndVersionInterfac /// @param received The number of signatures received error InvalidSignatureCount(uint256 expected, uint256 received); - /// @notice This error is thrown whenever a report specifies a DON ID that - /// does not have a configuration. + /// @notice This error is thrown whenever a report specifies a configuration that + /// does not exist. /// @param donId The DON ID that was provided in the report - error InvalidDonId(uint32 donId); + /// @param configVersion The config version that was provided in the report + error InvalidConfig(uint32 donId, uint32 configVersion); /// @notice This error is thrown whenever a signer address is not in the /// configuration. @@ -75,7 +76,8 @@ contract KeystoneForwarder is IForwarder, ConfirmedOwner, TypeAndVersionInterfac } /// @notice Contains the configuration for each DON ID - mapping(uint32 donId => OracleSet) internal s_configs; + // @param configId keccak256(donId, donConfigVersion) + mapping(bytes32 configId => OracleSet) internal s_configs; struct DeliveryStatus { address transmitter; @@ -97,29 +99,41 @@ contract KeystoneForwarder is IForwarder, ConfirmedOwner, TypeAndVersionInterfac uint256 internal constant FORWARDER_METADATA_LENGTH = 45; uint256 internal constant SIGNATURE_LENGTH = 65; - function setConfig(uint32 donId, uint8 f, address[] calldata signers) external onlyOwner { + function setConfig(uint32 donId, uint32 configVersion, uint8 f, address[] calldata signers) external onlyOwner { if (f == 0) revert FaultToleranceMustBePositive(); if (signers.length > MAX_ORACLES) revert ExcessSigners(signers.length, MAX_ORACLES); if (signers.length <= 3 * f) revert InsufficientSigners(signers.length, 3 * f + 1); - // TODO: how does setConfig handle expiration? e.g. if the signer set changes + bytes32 configId = keccak256(abi.encode(donId, configVersion)); // remove any old signer addresses - for (uint256 i; i < s_configs[donId].signers.length; ++i) { - address signer = s_configs[donId].signers[i]; - delete s_configs[donId]._positions[signer]; + for (uint256 i; i < s_configs[configId].signers.length; ++i) { + address signer = s_configs[configId].signers[i]; + delete s_configs[configId]._positions[signer]; } // add new signer addresses - s_configs[donId].signers = signers; + s_configs[configId].signers = signers; for (uint256 i; i < signers.length; ++i) { // assign indices, detect duplicates address signer = signers[i]; - if (s_configs[donId]._positions[signer] != 0) revert DuplicateSigner(signer); - s_configs[donId]._positions[signer] = uint8(i) + 1; - s_configs[donId].signers.push(signer); + if (s_configs[configId]._positions[signer] != 0) revert DuplicateSigner(signer); + s_configs[configId]._positions[signer] = uint8(i) + 1; + s_configs[configId].signers.push(signer); } - s_configs[donId].f = f; + s_configs[configId].f = f; + } + + function clearConfig(uint32 donId, uint32 configVersion) external onlyOwner { + bytes32 configId = keccak256(abi.encode(donId, configVersion)); + + // remove any old signer addresses + for (uint256 i; i < s_configs[configId].signers.length; ++i) { + address signer = s_configs[configId].signers[i]; + delete s_configs[configId]._positions[signer]; + } + + s_configs[configId].f = 0; } // send a report to receiver @@ -133,19 +147,25 @@ contract KeystoneForwarder is IForwarder, ConfirmedOwner, TypeAndVersionInterfac revert InvalidReport(); } - (bytes32 workflowExecutionId, uint32 donId /* uint32 donConfigVersion */, , bytes2 reportId) = _getMetadata( - rawReport - ); + bytes32 workflowExecutionId; + bytes2 reportId; + bytes32 configId; + { + uint32 donId; + uint32 configVersion; + (workflowExecutionId, donId, configVersion, reportId) = _getMetadata(rawReport); - // f can never be 0, so this means the config doesn't actually exist - if (s_configs[donId].f == 0) revert InvalidDonId(donId); + configId = keccak256(abi.encode(donId, configVersion)); + + uint8 f = s_configs[configId].f; + // f can never be 0, so this means the config doesn't actually exist + if (f == 0) revert InvalidConfig(donId, configVersion); + if (f + 1 != signatures.length) revert InvalidSignatureCount(f + 1, signatures.length); + } bytes32 combinedId = _combinedId(receiverAddress, workflowExecutionId, reportId); if (s_reports[combinedId].transmitter != address(0)) revert AlreadyProcessed(combinedId); - if (s_configs[donId].f + 1 != signatures.length) - revert InvalidSignatureCount(s_configs[donId].f + 1, signatures.length); - // validate signatures { bytes32 completeHash = keccak256(abi.encodePacked(keccak256(rawReport), reportContext)); @@ -153,12 +173,11 @@ contract KeystoneForwarder is IForwarder, ConfirmedOwner, TypeAndVersionInterfac address[MAX_ORACLES] memory signed; uint8 index; for (uint256 i; i < signatures.length; ++i) { - // TODO: is libocr-style multiple bytes32 arrays more optimal, gas-wise? (bytes32 r, bytes32 s, uint8 v) = _splitSignature(signatures[i]); address signer = ecrecover(completeHash, v + 27, r, s); // validate signer is trusted and signature is unique - index = uint8(s_configs[donId]._positions[signer]); + index = uint8(s_configs[configId]._positions[signer]); if (index == 0) revert InvalidSigner(signer); // index is 1-indexed so we can detect unset signers index -= 1; if (signed[index] != address(0)) revert DuplicateSigner(signer); diff --git a/contracts/src/v0.8/keystone/test/KeystoneForwarderBaseTest.t.sol b/contracts/src/v0.8/keystone/test/KeystoneForwarderBaseTest.t.sol index 16b85f79fdb..fc5c3a160d5 100644 --- a/contracts/src/v0.8/keystone/test/KeystoneForwarderBaseTest.t.sol +++ b/contracts/src/v0.8/keystone/test/KeystoneForwarderBaseTest.t.sol @@ -51,4 +51,20 @@ contract BaseTest is Test { } return signerAddrs; } + + function _signReport( + bytes memory report, + bytes memory reportContext, + uint256 requiredSignatures + ) internal view returns (bytes[] memory signatures) { + signatures = new bytes[](requiredSignatures); + for (uint256 i = 0; i < requiredSignatures; i++) { + (uint8 v, bytes32 r, bytes32 s) = vm.sign( + s_signers[i].mockPrivateKey, + keccak256(abi.encodePacked(keccak256(report), reportContext)) + ); + signatures[i] = bytes.concat(r, s, bytes1(v - 27)); + } + return signatures; + } } diff --git a/contracts/src/v0.8/keystone/test/KeystoneForwarder_ReportTest.t.sol b/contracts/src/v0.8/keystone/test/KeystoneForwarder_ReportTest.t.sol index 236851fde14..f68917ba85a 100644 --- a/contracts/src/v0.8/keystone/test/KeystoneForwarder_ReportTest.t.sol +++ b/contracts/src/v0.8/keystone/test/KeystoneForwarder_ReportTest.t.sol @@ -27,7 +27,7 @@ contract KeystoneForwarder_ReportTest is BaseTest { function setUp() public override { BaseTest.setUp(); - s_forwarder.setConfig(DON_ID, F, _getSignerAddresses()); + s_forwarder.setConfig(DON_ID, CONFIG_VERSION, F, _getSignerAddresses()); mercuryReports[0] = hex"010203"; mercuryReports[1] = hex"aabbccdd"; @@ -37,13 +37,7 @@ contract KeystoneForwarder_ReportTest is BaseTest { header = abi.encodePacked(version, executionId, timestamp, DON_ID, CONFIG_VERSION, metadata); report = abi.encodePacked(header, rawReports); - for (uint256 i = 0; i < requiredSignaturesNum; i++) { - (uint8 v, bytes32 r, bytes32 s) = vm.sign( - s_signers[i].mockPrivateKey, - keccak256(abi.encodePacked(keccak256(report), reportContext)) - ); - signatures[i] = bytes.concat(r, s, bytes1(v - 27)); - } + signatures = _signReport(report, reportContext, requiredSignaturesNum); vm.startPrank(TRANSMITTER); } @@ -63,7 +57,25 @@ contract KeystoneForwarder_ReportTest is BaseTest { rawReports ); - vm.expectRevert(abi.encodeWithSelector(KeystoneForwarder.InvalidDonId.selector, invalidDONId)); + vm.expectRevert(abi.encodeWithSelector(KeystoneForwarder.InvalidConfig.selector, invalidDONId, CONFIG_VERSION)); + s_forwarder.report(address(s_receiver), reportWithInvalidDONId, reportContext, signatures); + } + + function test_RevertWhen_ReportHasInexistentConfigVersion() public { + bytes memory reportWithInvalidDONId = abi.encodePacked( + version, + executionId, + timestamp, + DON_ID, + CONFIG_VERSION + 1, + workflowId, + workflowName, + workflowOwner, + reportId, + rawReports + ); + + vm.expectRevert(abi.encodeWithSelector(KeystoneForwarder.InvalidConfig.selector, DON_ID, CONFIG_VERSION + 1)); s_forwarder.report(address(s_receiver), reportWithInvalidDONId, reportContext, signatures); } @@ -129,9 +141,6 @@ contract KeystoneForwarder_ReportTest is BaseTest { } function test_Report_SuccessfulDelivery() public { - // taken from https://github.com/smartcontractkit/chainlink/blob/2390ec7f3c56de783ef4e15477e99729f188c524/core/services/relay/evm/cap_encoder_test.go#L42-L55 - // bytes memory report = hex"6d795f6964000000000000000000000000000000000000000000000000000000010203046d795f657865637574696f6e5f696400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000301020300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004aabbccdd00000000000000000000000000000000000000000000000000000000"; - vm.expectEmit(address(s_receiver)); emit MessageReceived(metadata, mercuryReports); @@ -144,4 +153,57 @@ contract KeystoneForwarder_ReportTest is BaseTest { address transmitter = s_forwarder.getTransmitter(address(s_receiver), executionId, reportId); assertEq(transmitter, TRANSMITTER, "transmitter mismatch"); } + + function test_Report_ConfigVersion() public { + vm.stopPrank(); + // configure a new configVersion + vm.prank(ADMIN); + s_forwarder.setConfig(DON_ID, CONFIG_VERSION + 1, F, _getSignerAddresses()); + + // old version still works + vm.expectEmit(address(s_receiver)); + emit MessageReceived(metadata, mercuryReports); + + vm.expectEmit(address(s_forwarder)); + emit ReportProcessed(address(s_receiver), executionId, true); + + vm.prank(TRANSMITTER); + s_forwarder.report(address(s_receiver), report, reportContext, signatures); + + // after clear the old version doesn't work anymore + vm.prank(ADMIN); + s_forwarder.clearConfig(DON_ID, CONFIG_VERSION); + + vm.expectRevert(abi.encodeWithSelector(KeystoneForwarder.InvalidConfig.selector, DON_ID, CONFIG_VERSION)); + vm.prank(TRANSMITTER); + s_forwarder.report(address(s_receiver), report, reportContext, signatures); + + // but new config does + bytes32 newExecutionId = hex"6d795f657865637574696f6e5f69640000000000000000000000000000000001"; + bytes memory newMetadata = abi.encodePacked(workflowId, workflowName, workflowOwner, reportId); + bytes memory newHeader = abi.encodePacked( + version, + newExecutionId, + timestamp, + DON_ID, + CONFIG_VERSION + 1, + newMetadata + ); + bytes memory newReport = abi.encodePacked(newHeader, rawReports); + // resign the new report + bytes[] memory newSignatures = _signReport(newReport, reportContext, requiredSignaturesNum); + + vm.expectEmit(address(s_receiver)); + emit MessageReceived(newMetadata, mercuryReports); + + vm.expectEmit(address(s_forwarder)); + emit ReportProcessed(address(s_receiver), newExecutionId, true); + + vm.prank(TRANSMITTER); + s_forwarder.report(address(s_receiver), newReport, reportContext, newSignatures); + + // validate transmitter was recorded + address transmitter = s_forwarder.getTransmitter(address(s_receiver), newExecutionId, reportId); + assertEq(transmitter, TRANSMITTER, "transmitter mismatch"); + } } diff --git a/contracts/src/v0.8/keystone/test/KeystoneForwarder_SetConfigTest.t.sol b/contracts/src/v0.8/keystone/test/KeystoneForwarder_SetConfigTest.t.sol index b6b37faff2f..4b908bb702f 100644 --- a/contracts/src/v0.8/keystone/test/KeystoneForwarder_SetConfigTest.t.sol +++ b/contracts/src/v0.8/keystone/test/KeystoneForwarder_SetConfigTest.t.sol @@ -11,26 +11,26 @@ contract KeystoneForwarder_SetConfigTest is BaseTest { vm.stopPrank(); // BaseTest sets ADMIN vm.prank(STRANGER); vm.expectRevert(); - s_forwarder.setConfig(DON_ID, F, _getSignerAddresses()); + s_forwarder.setConfig(DON_ID, CONFIG_VERSION, F, _getSignerAddresses()); } function test_RevertWhen_FaultToleranceIsZero() public { vm.expectRevert(KeystoneForwarder.FaultToleranceMustBePositive.selector); - s_forwarder.setConfig(DON_ID, 0, _getSignerAddresses()); + s_forwarder.setConfig(DON_ID, CONFIG_VERSION, 0, _getSignerAddresses()); } function test_RevertWhen_InsufficientSigners() public { address[] memory signers = new address[](1); vm.expectRevert(abi.encodeWithSelector(KeystoneForwarder.InsufficientSigners.selector, 1, 4)); - s_forwarder.setConfig(DON_ID, F, signers); + s_forwarder.setConfig(DON_ID, CONFIG_VERSION, F, signers); } function test_RevertWhen_ExcessSigners() public { address[] memory signers = new address[](64); vm.expectRevert(abi.encodeWithSelector(KeystoneForwarder.ExcessSigners.selector, 64, 31)); - s_forwarder.setConfig(DON_ID, F, signers); + s_forwarder.setConfig(DON_ID, CONFIG_VERSION, F, signers); } function test_RevertWhen_ProvidingDuplicateSigners() public { @@ -38,16 +38,16 @@ contract KeystoneForwarder_SetConfigTest is BaseTest { signers[1] = signers[0]; vm.expectRevert(abi.encodeWithSelector(KeystoneForwarder.DuplicateSigner.selector, signers[0])); - s_forwarder.setConfig(DON_ID, F, signers); + s_forwarder.setConfig(DON_ID, CONFIG_VERSION, F, signers); } function test_SetConfig_FirstTime() public { - s_forwarder.setConfig(DON_ID, F, _getSignerAddresses()); + s_forwarder.setConfig(DON_ID, CONFIG_VERSION, F, _getSignerAddresses()); } function test_SetConfig_WhenSignersAreRemoved() public { - s_forwarder.setConfig(DON_ID, F, _getSignerAddresses()); + s_forwarder.setConfig(DON_ID, CONFIG_VERSION, F, _getSignerAddresses()); - s_forwarder.setConfig(DON_ID, F, _getSignerAddresses(16)); + s_forwarder.setConfig(DON_ID, CONFIG_VERSION, F, _getSignerAddresses(16)); } } diff --git a/core/gethwrappers/keystone/generated/forwarder/forwarder.go b/core/gethwrappers/keystone/generated/forwarder/forwarder.go index 6fd963d7886..b4f209f1c32 100644 --- a/core/gethwrappers/keystone/generated/forwarder/forwarder.go +++ b/core/gethwrappers/keystone/generated/forwarder/forwarder.go @@ -31,8 +31,8 @@ var ( ) var KeystoneForwarderMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"}],\"name\":\"AlreadyProcessed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"}],\"name\":\"DuplicateSigner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numSigners\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxSigners\",\"type\":\"uint256\"}],\"name\":\"ExcessSigners\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FaultToleranceMustBePositive\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numSigners\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minSigners\",\"type\":\"uint256\"}],\"name\":\"InsufficientSigners\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"}],\"name\":\"InvalidDonId\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidReport\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"InvalidSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"InvalidSignatureCount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"}],\"name\":\"InvalidSigner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"InvalidVersion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrantCall\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"workflowExecutionId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"name\":\"ReportProcessed\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"workflowExecutionId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes2\",\"name\":\"reportId\",\"type\":\"bytes2\"}],\"name\":\"getTransmitter\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiverAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"rawReport\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"reportContext\",\"type\":\"bytes\"},{\"internalType\":\"bytes[]\",\"name\":\"signatures\",\"type\":\"bytes[]\"}],\"name\":\"report\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"},{\"internalType\":\"uint8\",\"name\":\"f\",\"type\":\"uint8\"},{\"internalType\":\"address[]\",\"name\":\"signers\",\"type\":\"address[]\"}],\"name\":\"setConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"typeAndVersion\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}]", - Bin: "0x608060405234801561001057600080fd5b5033806000816100675760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420736574206f776e657220746f207a65726f000000000000000060448201526064015b60405180910390fd5b600080546001600160a01b0319166001600160a01b0384811691909117909155811615610097576100978161009f565b505050610148565b336001600160a01b038216036100f75760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640161005e565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b6115ec806101576000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c806379ba50971161005b57806379ba5097146100f25780638864b864146100fa5780638da5cb5b146101d3578063f2fde38b146101f157600080fd5b80631128956514610082578063134a46f014610097578063181f5a77146100aa575b600080fd5b61009561009036600461119d565b610204565b005b6100956100a5366004611248565b61093e565b604080518082018252601781527f4b657973746f6e65466f7277617264657220312e302e30000000000000000000602082015290516100e99190611320565b60405180910390f35b610095610c9f565b6101ae61010836600461133a565b6040805160609490941b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001660208086019190915260348501939093527fffff000000000000000000000000000000000000000000000000000000000000919091166054840152805160368185030181526056909301815282519282019290922060009081526003909152205473ffffffffffffffffffffffffffffffffffffffff1690565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100e9565b60005473ffffffffffffffffffffffffffffffffffffffff166101ae565b6100956101ff36600461139f565b610d9c565b60015474010000000000000000000000000000000000000000900460ff1615610259576040517f37ed32e800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055606d8510156102d3576040517fb55ac75400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080600061031789898080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610db092505050565b63ffffffff831660009081526002602052604081205494975092955093505060ff9091169003610380576040517fea1b312900000000000000000000000000000000000000000000000000000000815263ffffffff831660048201526024015b60405180910390fd5b604080517fffffffffffffffffffffffffffffffffffffffff00000000000000000000000060608d901b16602080830191909152603482018690527fffff000000000000000000000000000000000000000000000000000000000000841660548301528251808303603601815260569092018352815191810191909120600081815260039092529190205473ffffffffffffffffffffffffffffffffffffffff161561045b576040517f1a20d3e600000000000000000000000000000000000000000000000000000000815260048101829052602401610377565b63ffffffff831660009081526002602052604090205485906104819060ff1660016113e9565b60ff16146104ec5763ffffffff83166000908152600260205260409020546104ad9060ff1660016113e9565b6040517fd6022e8e00000000000000000000000000000000000000000000000000000000815260ff909116600482015260248101869052604401610377565b60008a8a6040516104fe929190611408565b604051908190038120610517918b908b90602001611418565b60405160208183030381529060405280519060200120905061053761102a565b6000805b888110156107a55760008060006105a98d8d8681811061055d5761055d611432565b905060200281019061056f9190611461565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610e5292505050565b9194509250905060006001886105c084601b6113e9565b6040805160008152602081018083529390935260ff90911690820152606081018690526080810185905260a0016020604051602081039080840390855afa15801561060f573d6000803e3d6000fd5b5050604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015163ffffffff8e1660009081526002602081815284832073ffffffffffffffffffffffffffffffffffffffff851684529091019052918220549850925060ff8816900390506106ca576040517fbf18af4300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602401610377565b6106d56001876114c6565b955060008760ff8816601f81106106ee576106ee611432565b602002015173ffffffffffffffffffffffffffffffffffffffff1614610758576040517fe021c4f200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602401610377565b80878760ff16601f811061076e5761076e611432565b73ffffffffffffffffffffffffffffffffffffffff90921660209290920201525061079e92508391506114df9050565b905061053b565b5050505060008b73ffffffffffffffffffffffffffffffffffffffff1663805f21328c8c602d90606d926107db93929190611517565b8e8e606d9080926107ee93929190611517565b6040518563ffffffff1660e01b815260040161080d949392919061158a565b600060405180830381600087803b15801561082757600080fd5b505af1925050508015610838575060015b15610841575060015b604080518082018252338152821515602080830191825260008681526003909152839020915182549151151574010000000000000000000000000000000000000000027fffffffffffffffffffffff00000000000000000000000000000000000000000090921673ffffffffffffffffffffffffffffffffffffffff9182161791909117909155905186918e16907fbe015fd2fd7c1a00158e111095c794ae7030eb413d2a0990e5b78d3114df1d499061090090851515815260200190565b60405180910390a35050600180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16905550505050505050505050565b610946610eb2565b8260ff16600003610983576040517f0743bae600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b601f8111156109c8576040517f61750f4000000000000000000000000000000000000000000000000000000000815260048101829052601f6024820152604401610377565b6109d38360036115bc565b60ff168111610a3157806109e88460036115bc565b6109f39060016113e9565b6040517f9dd9e6d8000000000000000000000000000000000000000000000000000000008152600481019290925260ff166024820152604401610377565b60005b63ffffffff8516600090815260026020526040902060010154811015610ad25763ffffffff85166000908152600260205260408120600101805483908110610a7e57610a7e611432565b600091825260208083209091015463ffffffff891683526002808352604080852073ffffffffffffffffffffffffffffffffffffffff9093168552910190915281205550610acb816114df565b9050610a34565b5063ffffffff84166000908152600260205260409020610af6906001018383611049565b5060005b81811015610c54576000838383818110610b1657610b16611432565b9050602002016020810190610b2b919061139f565b63ffffffff8716600090815260026020818152604080842073ffffffffffffffffffffffffffffffffffffffff86168552909201905290205490915015610bb6576040517fe021c4f200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602401610377565b610bc18260016113e9565b63ffffffff8716600090815260026020818152604080842073ffffffffffffffffffffffffffffffffffffffff909616808552868401835290842060ff959095169094559081526001938401805494850181558252902090910180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169091179055610c4d816114df565b9050610afa565b50505063ffffffff91909116600090815260026020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff909216919091179055565b60015473ffffffffffffffffffffffffffffffffffffffff163314610d20576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4d7573742062652070726f706f736564206f776e6572000000000000000000006044820152606401610377565b60008054337fffffffffffffffffffffffff00000000000000000000000000000000000000008083168217845560018054909116905560405173ffffffffffffffffffffffffffffffffffffffff90921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b610da4610eb2565b610dad81610f35565b50565b60008060008084600081518110610dc957610dc9611432565b60209101015160f81c600114610e2a5784600081518110610dec57610dec611432565b01602001516040517f7207be2000000000000000000000000000000000000000000000000000000000815260f89190911c6004820152602401610377565b50505050602181015160458201516049830151608b90930151919360e091821c9390911c9190565b60008060006041845114610e9457836040517f2adfdc300000000000000000000000000000000000000000000000000000000081526004016103779190611320565b50505060208101516040820151606090920151909260009190911a90565b60005473ffffffffffffffffffffffffffffffffffffffff163314610f33576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4f6e6c792063616c6c61626c65206279206f776e6572000000000000000000006044820152606401610377565b565b3373ffffffffffffffffffffffffffffffffffffffff821603610fb4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c660000000000000000006044820152606401610377565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b604051806103e00160405280601f906020820280368337509192915050565b8280548282559060005260206000209081019282156110c1579160200282015b828111156110c15781547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff843516178255602090920191600190910190611069565b506110cd9291506110d1565b5090565b5b808211156110cd57600081556001016110d2565b803573ffffffffffffffffffffffffffffffffffffffff8116811461110a57600080fd5b919050565b60008083601f84011261112157600080fd5b50813567ffffffffffffffff81111561113957600080fd5b60208301915083602082850101111561115157600080fd5b9250929050565b60008083601f84011261116a57600080fd5b50813567ffffffffffffffff81111561118257600080fd5b6020830191508360208260051b850101111561115157600080fd5b60008060008060008060006080888a0312156111b857600080fd5b6111c1886110e6565b9650602088013567ffffffffffffffff808211156111de57600080fd5b6111ea8b838c0161110f565b909850965060408a013591508082111561120357600080fd5b61120f8b838c0161110f565b909650945060608a013591508082111561122857600080fd5b506112358a828b01611158565b989b979a50959850939692959293505050565b6000806000806060858703121561125e57600080fd5b843563ffffffff8116811461127257600080fd5b9350602085013560ff8116811461128857600080fd5b9250604085013567ffffffffffffffff8111156112a457600080fd5b6112b087828801611158565b95989497509550505050565b6000815180845260005b818110156112e2576020818501810151868301820152016112c6565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b60208152600061133360208301846112bc565b9392505050565b60008060006060848603121561134f57600080fd5b611358846110e6565b92506020840135915060408401357fffff0000000000000000000000000000000000000000000000000000000000008116811461139457600080fd5b809150509250925092565b6000602082840312156113b157600080fd5b611333826110e6565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60ff8181168382160190811115611402576114026113ba565b92915050565b8183823760009101908152919050565b838152818360208301376000910160200190815292915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261149657600080fd5b83018035915067ffffffffffffffff8211156114b157600080fd5b60200191503681900382131561115157600080fd5b60ff8281168282160390811115611402576114026113ba565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611510576115106113ba565b5060010190565b6000808585111561152757600080fd5b8386111561153457600080fd5b5050820193919092039150565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b60408152600061159e604083018688611541565b82810360208401526115b1818587611541565b979650505050505050565b60ff81811683821602908116908181146115d8576115d86113ba565b509291505056fea164736f6c6343000813000a", + ABI: "[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"}],\"name\":\"AlreadyProcessed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"}],\"name\":\"DuplicateSigner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numSigners\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxSigners\",\"type\":\"uint256\"}],\"name\":\"ExcessSigners\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FaultToleranceMustBePositive\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numSigners\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minSigners\",\"type\":\"uint256\"}],\"name\":\"InsufficientSigners\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"configVersion\",\"type\":\"uint32\"}],\"name\":\"InvalidConfig\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidReport\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"InvalidSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"InvalidSignatureCount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"}],\"name\":\"InvalidSigner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"InvalidVersion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrantCall\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"workflowExecutionId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"name\":\"ReportProcessed\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"configVersion\",\"type\":\"uint32\"}],\"name\":\"clearConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"workflowExecutionId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes2\",\"name\":\"reportId\",\"type\":\"bytes2\"}],\"name\":\"getTransmitter\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiverAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"rawReport\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"reportContext\",\"type\":\"bytes\"},{\"internalType\":\"bytes[]\",\"name\":\"signatures\",\"type\":\"bytes[]\"}],\"name\":\"report\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"configVersion\",\"type\":\"uint32\"},{\"internalType\":\"uint8\",\"name\":\"f\",\"type\":\"uint8\"},{\"internalType\":\"address[]\",\"name\":\"signers\",\"type\":\"address[]\"}],\"name\":\"setConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"typeAndVersion\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}]", + Bin: "0x608060405234801561001057600080fd5b5033806000816100675760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420736574206f776e657220746f207a65726f000000000000000060448201526064015b60405180910390fd5b600080546001600160a01b0319166001600160a01b0384811691909117909155811615610097576100978161009f565b505050610148565b336001600160a01b038216036100f75760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640161005e565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b611786806101576000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c80638da5cb5b1161005b5780638da5cb5b146101cb578063ee59d26c146101e9578063ef6e17a0146101fc578063f2fde38b1461020f57600080fd5b8063112895651461008d578063181f5a77146100a257806379ba5097146100ea5780638864b864146100f2575b600080fd5b6100a061009b3660046112e6565b610222565b005b604080518082018252601781527f4b657973746f6e65466f7277617264657220312e302e30000000000000000000602082015290516100e191906113f5565b60405180910390f35b6100a0610983565b6101a661010036600461140f565b6040805160609490941b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001660208086019190915260348501939093527fffff000000000000000000000000000000000000000000000000000000000000919091166054840152805160368185030181526056909301815282519282019290922060009081526003909152205473ffffffffffffffffffffffffffffffffffffffff1690565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100e1565b60005473ffffffffffffffffffffffffffffffffffffffff166101a6565b6100a06101f7366004611488565b610a80565b6100a061020a366004611506565b610de5565b6100a061021d366004611539565b610ee5565b60015474010000000000000000000000000000000000000000900460ff1615610277576040517f37ed32e800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055606d8510156102f1576040517fb55ac75400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008060008060006103388b8b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610ef992505050565b6040805163ffffffff808616602083015284169181019190915293985096509093509150606001604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181528151602092830120600081815260029093529082205490945060ff16908190036103f8576040517f16c0791600000000000000000000000000000000000000000000000000000000815263ffffffff8085166004830152831660248201526044015b60405180910390fd5b86610404826001611583565b60ff161461045657610417816001611583565b6040517fd6022e8e00000000000000000000000000000000000000000000000000000000815260ff9091166004820152602481018890526044016103ef565b50506040805160608d901b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016602080830191909152603482018790527fffff0000000000000000000000000000000000000000000000000000000000008616605483015282516036818403018152605690920190925280519101206000915060008181526003602052604090205490915073ffffffffffffffffffffffffffffffffffffffff1615610538576040517f1a20d3e6000000000000000000000000000000000000000000000000000000008152600481018290526024016103ef565b60008a8a60405161054a9291906115a2565b604051908190038120610563918b908b906020016115b2565b604051602081830303815290604052805190602001209050610583611173565b6000805b888110156107ea5760008060006105f58d8d868181106105a9576105a96115cc565b90506020028101906105bb91906115fb565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610f9b92505050565b91945092509050600060018861060c84601b611583565b6040805160008152602081018083529390935260ff90911690820152606081018690526080810185905260a0016020604051602081039080840390855afa15801561065b573d6000803e3d6000fd5b5050604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015160008d81526002602081815284832073ffffffffffffffffffffffffffffffffffffffff851684529091019052918220549850925060ff88169003905061070f576040517fbf18af4300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821660048201526024016103ef565b61071a600187611660565b955060008760ff8816601f8110610733576107336115cc565b602002015173ffffffffffffffffffffffffffffffffffffffff161461079d576040517fe021c4f200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821660048201526024016103ef565b80878760ff16601f81106107b3576107b36115cc565b73ffffffffffffffffffffffffffffffffffffffff9092166020929092020152506107e392508391506116799050565b9050610587565b5050505060008b73ffffffffffffffffffffffffffffffffffffffff1663805f21328c8c602d90606d92610820939291906116b1565b8e8e606d908092610833939291906116b1565b6040518563ffffffff1660e01b81526004016108529493929190611724565b600060405180830381600087803b15801561086c57600080fd5b505af192505050801561087d575060015b15610886575060015b604080518082018252338152821515602080830191825260008681526003909152839020915182549151151574010000000000000000000000000000000000000000027fffffffffffffffffffffff00000000000000000000000000000000000000000090921673ffffffffffffffffffffffffffffffffffffffff9182161791909117909155905186918e16907fbe015fd2fd7c1a00158e111095c794ae7030eb413d2a0990e5b78d3114df1d499061094590851515815260200190565b60405180910390a35050600180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16905550505050505050505050565b60015473ffffffffffffffffffffffffffffffffffffffff163314610a04576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4d7573742062652070726f706f736564206f776e65720000000000000000000060448201526064016103ef565b60008054337fffffffffffffffffffffffff00000000000000000000000000000000000000008083168217845560018054909116905560405173ffffffffffffffffffffffffffffffffffffffff90921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b610a88610ffb565b8260ff16600003610ac5576040517f0743bae600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b601f811115610b0a576040517f61750f4000000000000000000000000000000000000000000000000000000000815260048101829052601f60248201526044016103ef565b610b15836003611756565b60ff168111610b735780610b2a846003611756565b610b35906001611583565b6040517f9dd9e6d8000000000000000000000000000000000000000000000000000000008152600481019290925260ff1660248201526044016103ef565b6040805163ffffffff878116602080840191909152908716828401528251808303840181526060909201909252805191012060005b600082815260026020526040902060010154811015610c32576000828152600260205260408120600101805483908110610be457610be46115cc565b60009182526020808320909101548583526002808352604080852073ffffffffffffffffffffffffffffffffffffffff9093168552910190915281205550610c2b81611679565b9050610ba8565b506000818152600260205260409020610c4f906001018484611192565b5060005b82811015610d9f576000848483818110610c6f57610c6f6115cc565b9050602002016020810190610c849190611539565b600084815260026020818152604080842073ffffffffffffffffffffffffffffffffffffffff86168552909201905290205490915015610d08576040517fe021c4f200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821660048201526024016103ef565b610d13826001611583565b600084815260026020818152604080842073ffffffffffffffffffffffffffffffffffffffff909616808552868401835290842060ff959095169094559081526001938401805494850181558252902090910180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169091179055610d9881611679565b9050610c53565b50600090815260026020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff949094169390931790925550505050565b610ded610ffb565b6040805163ffffffff848116602080840191909152908416828401528251808303840181526060909201909252805191012060005b600082815260026020526040902060010154811015610eac576000828152600260205260408120600101805483908110610e5e57610e5e6115cc565b60009182526020808320909101548583526002808352604080852073ffffffffffffffffffffffffffffffffffffffff9093168552910190915281205550610ea581611679565b9050610e22565b50600090815260026020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555050565b610eed610ffb565b610ef68161107e565b50565b60008060008084600081518110610f1257610f126115cc565b60209101015160f81c600114610f735784600081518110610f3557610f356115cc565b01602001516040517f7207be2000000000000000000000000000000000000000000000000000000000815260f89190911c60048201526024016103ef565b50505050602181015160458201516049830151608b90930151919360e091821c9390911c9190565b60008060006041845114610fdd57836040517f2adfdc300000000000000000000000000000000000000000000000000000000081526004016103ef91906113f5565b50505060208101516040820151606090920151909260009190911a90565b60005473ffffffffffffffffffffffffffffffffffffffff16331461107c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4f6e6c792063616c6c61626c65206279206f776e65720000000000000000000060448201526064016103ef565b565b3373ffffffffffffffffffffffffffffffffffffffff8216036110fd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c6600000000000000000060448201526064016103ef565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b604051806103e00160405280601f906020820280368337509192915050565b82805482825590600052602060002090810192821561120a579160200282015b8281111561120a5781547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8435161782556020909201916001909101906111b2565b5061121692915061121a565b5090565b5b80821115611216576000815560010161121b565b803573ffffffffffffffffffffffffffffffffffffffff8116811461125357600080fd5b919050565b60008083601f84011261126a57600080fd5b50813567ffffffffffffffff81111561128257600080fd5b60208301915083602082850101111561129a57600080fd5b9250929050565b60008083601f8401126112b357600080fd5b50813567ffffffffffffffff8111156112cb57600080fd5b6020830191508360208260051b850101111561129a57600080fd5b60008060008060008060006080888a03121561130157600080fd5b61130a8861122f565b9650602088013567ffffffffffffffff8082111561132757600080fd5b6113338b838c01611258565b909850965060408a013591508082111561134c57600080fd5b6113588b838c01611258565b909650945060608a013591508082111561137157600080fd5b5061137e8a828b016112a1565b989b979a50959850939692959293505050565b6000815180845260005b818110156113b75760208185018101518683018201520161139b565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b6020815260006114086020830184611391565b9392505050565b60008060006060848603121561142457600080fd5b61142d8461122f565b92506020840135915060408401357fffff0000000000000000000000000000000000000000000000000000000000008116811461146957600080fd5b809150509250925092565b803563ffffffff8116811461125357600080fd5b6000806000806000608086880312156114a057600080fd5b6114a986611474565b94506114b760208701611474565b9350604086013560ff811681146114cd57600080fd5b9250606086013567ffffffffffffffff8111156114e957600080fd5b6114f5888289016112a1565b969995985093965092949392505050565b6000806040838503121561151957600080fd5b61152283611474565b915061153060208401611474565b90509250929050565b60006020828403121561154b57600080fd5b6114088261122f565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60ff818116838216019081111561159c5761159c611554565b92915050565b8183823760009101908152919050565b838152818360208301376000910160200190815292915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261163057600080fd5b83018035915067ffffffffffffffff82111561164b57600080fd5b60200191503681900382131561129a57600080fd5b60ff828116828216039081111561159c5761159c611554565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036116aa576116aa611554565b5060010190565b600080858511156116c157600080fd5b838611156116ce57600080fd5b5050820193919092039150565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b6040815260006117386040830186886116db565b828103602084015261174b8185876116db565b979650505050505050565b60ff818116838216029081169081811461177257611772611554565b509291505056fea164736f6c6343000813000a", } var KeystoneForwarderABI = KeystoneForwarderMetaData.ABI @@ -249,6 +249,18 @@ func (_KeystoneForwarder *KeystoneForwarderTransactorSession) AcceptOwnership() return _KeystoneForwarder.Contract.AcceptOwnership(&_KeystoneForwarder.TransactOpts) } +func (_KeystoneForwarder *KeystoneForwarderTransactor) ClearConfig(opts *bind.TransactOpts, donId uint32, configVersion uint32) (*types.Transaction, error) { + return _KeystoneForwarder.contract.Transact(opts, "clearConfig", donId, configVersion) +} + +func (_KeystoneForwarder *KeystoneForwarderSession) ClearConfig(donId uint32, configVersion uint32) (*types.Transaction, error) { + return _KeystoneForwarder.Contract.ClearConfig(&_KeystoneForwarder.TransactOpts, donId, configVersion) +} + +func (_KeystoneForwarder *KeystoneForwarderTransactorSession) ClearConfig(donId uint32, configVersion uint32) (*types.Transaction, error) { + return _KeystoneForwarder.Contract.ClearConfig(&_KeystoneForwarder.TransactOpts, donId, configVersion) +} + func (_KeystoneForwarder *KeystoneForwarderTransactor) Report(opts *bind.TransactOpts, receiverAddress common.Address, rawReport []byte, reportContext []byte, signatures [][]byte) (*types.Transaction, error) { return _KeystoneForwarder.contract.Transact(opts, "report", receiverAddress, rawReport, reportContext, signatures) } @@ -261,16 +273,16 @@ func (_KeystoneForwarder *KeystoneForwarderTransactorSession) Report(receiverAdd return _KeystoneForwarder.Contract.Report(&_KeystoneForwarder.TransactOpts, receiverAddress, rawReport, reportContext, signatures) } -func (_KeystoneForwarder *KeystoneForwarderTransactor) SetConfig(opts *bind.TransactOpts, donId uint32, f uint8, signers []common.Address) (*types.Transaction, error) { - return _KeystoneForwarder.contract.Transact(opts, "setConfig", donId, f, signers) +func (_KeystoneForwarder *KeystoneForwarderTransactor) SetConfig(opts *bind.TransactOpts, donId uint32, configVersion uint32, f uint8, signers []common.Address) (*types.Transaction, error) { + return _KeystoneForwarder.contract.Transact(opts, "setConfig", donId, configVersion, f, signers) } -func (_KeystoneForwarder *KeystoneForwarderSession) SetConfig(donId uint32, f uint8, signers []common.Address) (*types.Transaction, error) { - return _KeystoneForwarder.Contract.SetConfig(&_KeystoneForwarder.TransactOpts, donId, f, signers) +func (_KeystoneForwarder *KeystoneForwarderSession) SetConfig(donId uint32, configVersion uint32, f uint8, signers []common.Address) (*types.Transaction, error) { + return _KeystoneForwarder.Contract.SetConfig(&_KeystoneForwarder.TransactOpts, donId, configVersion, f, signers) } -func (_KeystoneForwarder *KeystoneForwarderTransactorSession) SetConfig(donId uint32, f uint8, signers []common.Address) (*types.Transaction, error) { - return _KeystoneForwarder.Contract.SetConfig(&_KeystoneForwarder.TransactOpts, donId, f, signers) +func (_KeystoneForwarder *KeystoneForwarderTransactorSession) SetConfig(donId uint32, configVersion uint32, f uint8, signers []common.Address) (*types.Transaction, error) { + return _KeystoneForwarder.Contract.SetConfig(&_KeystoneForwarder.TransactOpts, donId, configVersion, f, signers) } func (_KeystoneForwarder *KeystoneForwarderTransactor) TransferOwnership(opts *bind.TransactOpts, to common.Address) (*types.Transaction, error) { @@ -733,9 +745,11 @@ type KeystoneForwarderInterface interface { AcceptOwnership(opts *bind.TransactOpts) (*types.Transaction, error) + ClearConfig(opts *bind.TransactOpts, donId uint32, configVersion uint32) (*types.Transaction, error) + Report(opts *bind.TransactOpts, receiverAddress common.Address, rawReport []byte, reportContext []byte, signatures [][]byte) (*types.Transaction, error) - SetConfig(opts *bind.TransactOpts, donId uint32, f uint8, signers []common.Address) (*types.Transaction, error) + SetConfig(opts *bind.TransactOpts, donId uint32, configVersion uint32, f uint8, signers []common.Address) (*types.Transaction, error) TransferOwnership(opts *bind.TransactOpts, to common.Address) (*types.Transaction, error) diff --git a/core/gethwrappers/keystone/generation/generated-wrapper-dependency-versions-do-not-edit.txt b/core/gethwrappers/keystone/generation/generated-wrapper-dependency-versions-do-not-edit.txt index ee15b49b181..e11ebba404d 100644 --- a/core/gethwrappers/keystone/generation/generated-wrapper-dependency-versions-do-not-edit.txt +++ b/core/gethwrappers/keystone/generation/generated-wrapper-dependency-versions-do-not-edit.txt @@ -1,4 +1,4 @@ GETH_VERSION: 1.13.8 -forwarder: ../../../contracts/solc/v0.8.19/KeystoneForwarder/KeystoneForwarder.abi ../../../contracts/solc/v0.8.19/KeystoneForwarder/KeystoneForwarder.bin 892c6ced16576bebd887eb581147c02139853d5143a0c9b77704efefd4ab7ec7 +forwarder: ../../../contracts/solc/v0.8.19/KeystoneForwarder/KeystoneForwarder.abi ../../../contracts/solc/v0.8.19/KeystoneForwarder/KeystoneForwarder.bin ec6e94293700d400ca7b22989d54793e905d6febce3b84054727a58c473b9cf3 keystone_capability_registry: ../../../contracts/solc/v0.8.19/CapabilityRegistry/CapabilityRegistry.abi ../../../contracts/solc/v0.8.19/CapabilityRegistry/CapabilityRegistry.bin 462c8a4c5cba9c429320f6ed041a8ea64749ec7c8cec7938c10767d07e3053e3 ocr3_capability: ../../../contracts/solc/v0.8.19/OCR3Capability/OCR3Capability.abi ../../../contracts/solc/v0.8.19/OCR3Capability/OCR3Capability.bin 9dcbdf55bd5729ba266148da3f17733eb592c871c2108ccca546618628fd9ad2 From 6aad45f2c7d3f5f7118900dd7b00a0a106dff18d Mon Sep 17 00:00:00 2001 From: krehermann Date: Thu, 6 Jun 2024 09:32:37 -0600 Subject: [PATCH 17/40] ks-291: minor peer discovery optimization (#13439) --- core/services/p2p/counter.go | 23 +++++++++++++++++++++++ core/services/p2p/counter_test.go | 16 ++++++++++++++++ core/services/p2p/peer.go | 24 ++++++++++++++---------- 3 files changed, 53 insertions(+), 10 deletions(-) create mode 100644 core/services/p2p/counter.go create mode 100644 core/services/p2p/counter_test.go diff --git a/core/services/p2p/counter.go b/core/services/p2p/counter.go new file mode 100644 index 00000000000..128a7da8fee --- /dev/null +++ b/core/services/p2p/counter.go @@ -0,0 +1,23 @@ +package p2p + +import ( + "encoding/binary" +) + +// counter is a simple abstraction that can be used to generate unique peer group IDs. +type counter struct { + x uint64 +} + +// Bytes returns the counter as a 32-byte array. +func (g *counter) Bytes() [32]byte { + var b [32]byte + binary.BigEndian.PutUint64(b[24:], g.x) + return b +} + +// Inc increments the counter. +func (g *counter) Inc() *counter { + g.x++ + return g +} diff --git a/core/services/p2p/counter_test.go b/core/services/p2p/counter_test.go new file mode 100644 index 00000000000..7d11503ccaa --- /dev/null +++ b/core/services/p2p/counter_test.go @@ -0,0 +1,16 @@ +package p2p + +import ( + "testing" + + "github.com/stretchr/testify/assert" +) + +func Test_groupID(t *testing.T) { + g := &counter{} + assert.Equal(t, [32]byte{}, g.Bytes()) + g.Inc() + assert.Equal(t, [32]byte{31: 1}, g.Bytes()) + g.Inc() + assert.Equal(t, [32]byte{31: 2}, g.Bytes()) +} diff --git a/core/services/p2p/peer.go b/core/services/p2p/peer.go index e4a6e52f930..2be3cd9e9fd 100644 --- a/core/services/p2p/peer.go +++ b/core/services/p2p/peer.go @@ -20,7 +20,6 @@ import ( ) var ( - defaultGroupID = [32]byte{0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01} defaultStreamName = "stream" defaultRecvChSize = 10000 ) @@ -49,9 +48,10 @@ type peer struct { myID ragetypes.PeerID recvCh chan p2ptypes.Message - stopCh services.StopChan - wg sync.WaitGroup - lggr logger.Logger + stopCh services.StopChan + wg sync.WaitGroup + lggr logger.Logger + groupID *counter } var _ p2ptypes.Peer = &peer{} @@ -99,6 +99,7 @@ func NewPeer(cfg PeerConfig, lggr logger.Logger) (*peer, error) { recvCh: make(chan p2ptypes.Message, defaultRecvChSize), stopCh: make(services.StopChan), lggr: lggr.Named("P2PPeer"), + groupID: &counter{}, }, nil } @@ -113,18 +114,21 @@ func (p *peer) UpdateConnections(peers map[ragetypes.PeerID]p2ptypes.StreamConfi return err } } - - if err := p.discoverer.RemoveGroup(defaultGroupID); err != nil { - p.lggr.Warnw("failed to remove old group", "groupID", defaultGroupID) - } + // updating the group is a small optimization that avoids reconnecting to existing peers + currentGroupID := p.groupID.Bytes() + newGroupID := p.groupID.Inc().Bytes() peerIDs := []ragetypes.PeerID{} for pid := range peers { peerIDs = append(peerIDs, pid) } - if err := p.discoverer.AddGroup(defaultGroupID, peerIDs, p.cfg.Bootstrappers); err != nil { - p.lggr.Warnw("failed to add group", "groupID", defaultGroupID) + if err := p.discoverer.AddGroup(newGroupID, peerIDs, p.cfg.Bootstrappers); err != nil { + p.lggr.Warnw("failed to add group", "groupID", newGroupID) return err } + if err := p.discoverer.RemoveGroup(currentGroupID); err != nil { + p.lggr.Warnw("failed to remove old group", "groupID", currentGroupID) + } + return nil } From fe76fa0f2e9e8802eca7088d168eb18623247a84 Mon Sep 17 00:00:00 2001 From: Sneha Agnihotri <180277+snehaagni@users.noreply.github.com> Date: Thu, 6 Jun 2024 22:04:10 +0530 Subject: [PATCH 18/40] chore/release 2.12.0 to develop (#13441) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Bump version and update CHANGELOG for core v2.12.0 Signed-off-by: Sneha Agnihotri * core/services: fix ocrWrapper saveError contexts (#13139) (cherry picked from commit 15fab1daa84348e96a7895280209cb73e456a1c5) * changed spammy error log to debug (#13153) (cherry picked from commit 3502176718f8cfa542ff5bb9f46b60c845c21c57) * Updating changelog for 2.12.0 with cherry pick fix Signed-off-by: Sneha Agnihotri * BCF-3225 - Implement forwarder fallback if forwarder not present as a transmitter on OCR2 aggregator (#13221) * Implement forwarder OCR2 fallback if fwd not present as a transmitter * Add changeset * Fix panic on mercury server error (#13231) (#13256) * Fix changelog * Fixed CPU usage issues caused by inefficiencies in HeadTracker (#13230) * Fixed CPU usage issues caused by inefficiencies in HeadTracker * added comments * revert heads back to the fix (cherry picked from commit 6f1ebca1970d4a970be64c581800ab781c6c3c7c) * Update CHANGELOG for 2.12.0 bugfixes Signed-off-by: Sneha Agnihotri * Decouple ChainType from config string [SHIP-2001] (#13272) * fix: Decouple ChainType from config string * fix: receiver name and failing test * test: enhance config test to test for xdai specifically * refactor: directly unmarshal into ChainType * fix: validation * test: fix TestDoc/EVM * test: add xdai to warnings.xtar * Index only the fifth word to reduce the db size overhead (#13315) Co-authored-by: Domino Valdano * Add special transmitter for OCR2 feeds (#13323) * Add special transmitter for OCR2 feeds * Add ocr2FeedsTransmitter FromAddress() * Cherry-pick some forwarders context changes from (#13171) * Improve ocr2FeedsTransmitter FromAddress() fallback (#13343) * Improve ocr2FeedsTransmitter FromAddress() fallback * Fix forwarders test error assert * Update 2.12.0 Changelog with bugfixes Signed-off-by: Sneha Agnihotri * core/services/pipeline: bridge task must continue after cancellation * core/services/pipeline: use request context for deletion (#13404) * core/services/pipeline: hide deadline from monitor * Finalize date on changelog for 2.12.0 Signed-off-by: Sneha Agnihotri * Fix merge conflicts * Remove `overtimeThresholds` * Return to old version of pipeline-runner --------- Signed-off-by: Sneha Agnihotri Co-authored-by: Jordan Krage Co-authored-by: Patrick Co-authored-by: ilija42 <57732589+ilija42@users.noreply.github.com> Co-authored-by: Sam Co-authored-by: Dmytro Haidashenko <34754799+dhaidashenko@users.noreply.github.com> Co-authored-by: Friedemann Fürst Co-authored-by: Mateusz Sekara Co-authored-by: Domino Valdano Co-authored-by: ilija Co-authored-by: frank zhu Co-authored-by: george-dorin --- .changeset/breezy-pears-cough.md | 5 -- .changeset/clever-islands-draw.md | 5 -- .changeset/olive-knives-happen.md | 5 -- .changeset/plenty-waves-exercise.md | 5 -- CHANGELOG.md | 80 ++++++----------------------- 5 files changed, 17 insertions(+), 83 deletions(-) delete mode 100644 .changeset/breezy-pears-cough.md delete mode 100644 .changeset/clever-islands-draw.md delete mode 100644 .changeset/olive-knives-happen.md delete mode 100644 .changeset/plenty-waves-exercise.md diff --git a/.changeset/breezy-pears-cough.md b/.changeset/breezy-pears-cough.md deleted file mode 100644 index f51c952ad95..00000000000 --- a/.changeset/breezy-pears-cough.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"chainlink": patch ---- - -check data size #bugfix diff --git a/.changeset/clever-islands-draw.md b/.changeset/clever-islands-draw.md deleted file mode 100644 index 0408383bd03..00000000000 --- a/.changeset/clever-islands-draw.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"chainlink": patch ---- - -#internal diff --git a/.changeset/olive-knives-happen.md b/.changeset/olive-knives-happen.md deleted file mode 100644 index 7f522c96ff1..00000000000 --- a/.changeset/olive-knives-happen.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"chainlink": patch ---- - -#internal Generic Plugin `onchainSigningStrategy` support diff --git a/.changeset/plenty-waves-exercise.md b/.changeset/plenty-waves-exercise.md deleted file mode 100644 index 6609289f16f..00000000000 --- a/.changeset/plenty-waves-exercise.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"chainlink": patch ---- - -roundup #bugfix diff --git a/CHANGELOG.md b/CHANGELOG.md index 6bb68416133..b5ba043d0ec 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,32 +1,19 @@ # Changelog Chainlink Core -## 2.12.0 - UNRELEASED +## 2.12.0 - 2024-06-05 ### Minor Changes -- [#13000](https://github.com/smartcontractkit/chainlink/pull/13000) [`1b994043b0`](https://github.com/smartcontractkit/chainlink/commit/1b994043b00cad9e0c900b6d12173dd1008480a5) Thanks [@ettec](https://github.com/ettec)! - #internal changes to core required by change BCF3168 in common to add relayer set +- [#13246](https://github.com/smartcontractkit/chainlink/pull/13246) [`119df08eec`](https://github.com/smartcontractkit/chainlink/commit/119df08eec3609a41880a5b471c466e90fff36f8) Thanks [@ilija42](https://github.com/ilija42)! - Added a mechanism to validate forwarders for OCR2 and fallback to EOA if necessary #added - [#12867](https://github.com/smartcontractkit/chainlink/pull/12867) [`27d9413286`](https://github.com/smartcontractkit/chainlink/commit/27d941328655e0cde608c1eff47de736c11e2e58) Thanks [@dhaidashenko](https://github.com/dhaidashenko)! - Added a new CLI command, `blocks find-lca,` which finds the latest block that is available in both the database and on the chain for the specified chain. Added a new CLI command, `node remove-blocks,` which removes all blocks and logs greater than or equal to the specified block number. #nops #added -- [#12914](https://github.com/smartcontractkit/chainlink/pull/12914) [`28df745115`](https://github.com/smartcontractkit/chainlink/commit/28df74511568df989944ee92cfd625a5d22a2840) Thanks [@krehermann](https://github.com/krehermann)! - #internal Add script to create test database user and update docs - -- [#12837](https://github.com/smartcontractkit/chainlink/pull/12837) [`f7982fa718`](https://github.com/smartcontractkit/chainlink/commit/f7982fa718cd9dc6563019acd8dfc5a40475df9e) Thanks [@cedric-cordenier](https://github.com/cedric-cordenier)! - Add support for workflow jobs to Operator UI #wip #added - - [#12686](https://github.com/smartcontractkit/chainlink/pull/12686) [`2e768c150b`](https://github.com/smartcontractkit/chainlink/commit/2e768c150b44eb3ac8e41e7bafdd46911be57397) Thanks [@nolag](https://github.com/nolag)! - Add a comment to Chain Reader Service constructor that specifies that anonymous events are not supported. -- [#12650](https://github.com/smartcontractkit/chainlink/pull/12650) [`6991af26d9`](https://github.com/smartcontractkit/chainlink/commit/6991af26d9fa0e048b72a05f4f9c13f2306c0328) Thanks [@silaslenihan](https://github.com/silaslenihan)! - #internal Gas Estimator L1Oracles to be chain specific - #removed cmd/arbgas - -- [#12857](https://github.com/smartcontractkit/chainlink/pull/12857) [`d90229e7a7`](https://github.com/smartcontractkit/chainlink/commit/d90229e7a7011f8dc1c331dffb0ad1eeaddba46f) Thanks [@ettec](https://github.com/ettec)! - #internal Updates required to work with chainlink-common changes to support grpc streams for capabilities - - [#12605](https://github.com/smartcontractkit/chainlink/pull/12605) [`1d9dd466e2`](https://github.com/smartcontractkit/chainlink/commit/1d9dd466e2933b7558949554b882f29f63d90b9f) Thanks [@reductionista](https://github.com/reductionista)! - core/chains/evm/logpoller: Stricter finality checks in LogPoller, to be more robust during rpc failover events #updated -- [#12968](https://github.com/smartcontractkit/chainlink/pull/12968) [`c97781582b`](https://github.com/smartcontractkit/chainlink/commit/c97781582bbe0333332b985fb10a06edeaafa524) Thanks [@dimriou](https://github.com/dimriou)! - Moved test functions under evm package to support evm extraction #internal - -- [#12456](https://github.com/smartcontractkit/chainlink/pull/12456) [`78dd3e026a`](https://github.com/smartcontractkit/chainlink/commit/78dd3e026a81cb656b99ac62ce552369573ca736) Thanks [@jmank88](https://github.com/jmank88)! - Use sqlutil instead of pg.Opts/Q/Queryer #internal - - [#12533](https://github.com/smartcontractkit/chainlink/pull/12533) [`ccb8cd85fe`](https://github.com/smartcontractkit/chainlink/commit/ccb8cd85fef8e3bbe3fb5580277a7bd7f477e6bb) Thanks [@DylanTinianov](https://github.com/DylanTinianov)! - #added : Re-enable abandoned transaction tracker - [#12760](https://github.com/smartcontractkit/chainlink/pull/12760) [`3f4573479c`](https://github.com/smartcontractkit/chainlink/commit/3f4573479c32dedf44f04261f9d5d4905f2542c7) Thanks [@DylanTinianov](https://github.com/DylanTinianov)! - #nops : Enable configurable client error regexes for error classification @@ -37,71 +24,47 @@ - [#12767](https://github.com/smartcontractkit/chainlink/pull/12767) [`8db5ccfb39`](https://github.com/smartcontractkit/chainlink/commit/8db5ccfb39f86c9817fcad28292dbe6500821810) Thanks [@pavel-raykov](https://github.com/pavel-raykov)! - Validate user email before asking for a password in the chainlink CLI. -- [#12851](https://github.com/smartcontractkit/chainlink/pull/12851) [`40064f0dfe`](https://github.com/smartcontractkit/chainlink/commit/40064f0dfecda6e404993dff056e7a666cca7d26) Thanks [@amit-momin](https://github.com/amit-momin)! - #internal Updated FindTxesWithAttemptsAndReceiptsByIdsAndState method signature to accept int64 for tx ID instead of big.Int - ### Patch Changes -- [#12907](https://github.com/smartcontractkit/chainlink/pull/12907) [`f0439ec840`](https://github.com/smartcontractkit/chainlink/commit/f0439ec8408b39456a74c37df9a264782ed4725c) Thanks [@ilija42](https://github.com/ilija42)! - Fix in memory data source cache changes/bug that only allowed pipeline results where none of the data sources failed. #bugfix +- [#13327](https://github.com/smartcontractkit/chainlink/pull/13327) [`0abe09d785`](https://github.com/smartcontractkit/chainlink/commit/0abe09d7852cf13970d1bb44b0e570e72be9e1e4) Thanks [@reductionista](https://github.com/reductionista)! - Reducing the scope of 0233 migration to include only 5th word index which is required for CCIP #db_update -- [#12996](https://github.com/smartcontractkit/chainlink/pull/12996) [`0a37c0ed53`](https://github.com/smartcontractkit/chainlink/commit/0a37c0ed5346df509b545c88278c026cb2adf375) Thanks [@DeividasK](https://github.com/DeividasK)! - #wip Keystone contract wrappers updated +- [#13316](https://github.com/smartcontractkit/chainlink/pull/13316) [`4fbcf7d2f8`](https://github.com/smartcontractkit/chainlink/commit/4fbcf7d2f8a51bcbec185f7061ea95078ef0d11c) Thanks [@friedemannf](https://github.com/friedemannf)! - #bugfix allow ChainType to be set to xdai -- [#12923](https://github.com/smartcontractkit/chainlink/pull/12923) [`274a988985`](https://github.com/smartcontractkit/chainlink/commit/274a988985e0530676bdfedbdb35dec4cb9fe8b2) Thanks [@shileiwill](https://github.com/shileiwill)! - use safe lib for approve #bugfix +- [#13260](https://github.com/smartcontractkit/chainlink/pull/13260) [`5daefad14c`](https://github.com/smartcontractkit/chainlink/commit/5daefad14c42011ad0c19d9c21fb1e27d93c649c) Thanks [@dhaidashenko](https://github.com/dhaidashenko)! - Fixed CPU usage issues caused by inefficiencies in HeadTracker. -- [#12991](https://github.com/smartcontractkit/chainlink/pull/12991) [`929312681f`](https://github.com/smartcontractkit/chainlink/commit/929312681fb27529915912e8bd6e4000559ea77f) Thanks [@cds95](https://github.com/cds95)! - generate gethwrappers for updating node operators in capability registry #internal + HeadTracker's support of finality tags caused a drastic increase in the number of tracked blocks on the Arbitrum chain (from 50 to 12,000), which has led to a 30% increase in CPU usage. -- [#12959](https://github.com/smartcontractkit/chainlink/pull/12959) [`e482c79822`](https://github.com/smartcontractkit/chainlink/commit/e482c7982278e232acaaa4b3e9a79165faa35d1c) Thanks [@HenryNguyen5](https://github.com/HenryNguyen5)! - #internal Optimize workflow engine tests + The fix improves the data structure for tracking blocks and makes lookup more efficient. BenchmarkHeadTracker_Backfill shows 40x time reduction. + #bugfix -- [#12754](https://github.com/smartcontractkit/chainlink/pull/12754) [`4d9875ecba`](https://github.com/smartcontractkit/chainlink/commit/4d9875ecba9c7f672a9320d43cdb3d24a529f2ee) Thanks [@amirylm](https://github.com/amirylm)! - Bumping chainlink-automation version to v1.0.3 +- [#13256](https://github.com/smartcontractkit/chainlink/pull/13256) [`d133da44a9`](https://github.com/smartcontractkit/chainlink/commit/d133da44a9bb0a1393363740cbdc7edc18871b4f) Thanks [@samsondav](https://github.com/samsondav)! - Fix panic if mercury server returns error #bugfix -- [#12636](https://github.com/smartcontractkit/chainlink/pull/12636) [`bdc076c139`](https://github.com/smartcontractkit/chainlink/commit/bdc076c1395259298f520d741a3a1b397c3e0037) Thanks [@dimriou](https://github.com/dimriou)! - Removed AppConfig from Evm config #internal +- [#12907](https://github.com/smartcontractkit/chainlink/pull/12907) [`f0439ec840`](https://github.com/smartcontractkit/chainlink/commit/f0439ec8408b39456a74c37df9a264782ed4725c) Thanks [@ilija42](https://github.com/ilija42)! - Fix in memory data source cache changes/bug that only allowed pipeline results where none of the data sources failed. #bugfix -- [#12880](https://github.com/smartcontractkit/chainlink/pull/12880) [`8337fc821b`](https://github.com/smartcontractkit/chainlink/commit/8337fc821baf8011c6c73203482db85f5a44d7ae) Thanks [@DeividasK](https://github.com/DeividasK)! - #wip Keystone wrapper regenerate +- [#12923](https://github.com/smartcontractkit/chainlink/pull/12923) [`274a988985`](https://github.com/smartcontractkit/chainlink/commit/274a988985e0530676bdfedbdb35dec4cb9fe8b2) Thanks [@shileiwill](https://github.com/shileiwill)! - use safe lib for approve #bugfix -- [#12807](https://github.com/smartcontractkit/chainlink/pull/12807) [`dd41ee6c1f`](https://github.com/smartcontractkit/chainlink/commit/dd41ee6c1fb79333bfec4e8ef795a859e09e72c8) Thanks [@jmank88](https://github.com/jmank88)! - core/services: update llo & versioning to use sqlutil #internal +- [#12754](https://github.com/smartcontractkit/chainlink/pull/12754) [`4d9875ecba`](https://github.com/smartcontractkit/chainlink/commit/4d9875ecba9c7f672a9320d43cdb3d24a529f2ee) Thanks [@amirylm](https://github.com/amirylm)! - Bumping chainlink-automation version to v1.0.3 - [#12887](https://github.com/smartcontractkit/chainlink/pull/12887) [`e87b83cd78`](https://github.com/smartcontractkit/chainlink/commit/e87b83cd78595c09061c199916c4bb9145e719b7) Thanks [@jinhoonbang](https://github.com/jinhoonbang)! - #bugfix vrf fix replay number of blocks logic and add logging for job specs - [#12848](https://github.com/smartcontractkit/chainlink/pull/12848) [`91698020fb`](https://github.com/smartcontractkit/chainlink/commit/91698020fb695545eeb4befb2d73e36cc3ded0ab) Thanks [@poopoothegorilla](https://github.com/poopoothegorilla)! - bump mockery in makefile #updated -- [#12810](https://github.com/smartcontractkit/chainlink/pull/12810) [`1fce16e735`](https://github.com/smartcontractkit/chainlink/commit/1fce16e735e417553c00680a3fcae2e081353095) Thanks [@jmank88](https://github.com/jmank88)! - core/services/keystore: switch to sqlutil.DataStore #internal - - [#11936](https://github.com/smartcontractkit/chainlink/pull/11936) [`2b38bd8738`](https://github.com/smartcontractkit/chainlink/commit/2b38bd8738b4edf16e9913c90720820bc2b8dbd1) Thanks [@erikburt](https://github.com/erikburt)! - Validate support for postgresql-client 16, and update docker image's bundled postgresql-client from 15 to 16. #nops #updated -- [#12820](https://github.com/smartcontractkit/chainlink/pull/12820) [`e523aa0bc7`](https://github.com/smartcontractkit/chainlink/commit/e523aa0bc7752fbf11dfbb842c8a411d345f30e7) Thanks [@jmank88](https://github.com/jmank88)! - core/services/keeper: switch to sqlutil.DataSource #internal - -- [#12859](https://github.com/smartcontractkit/chainlink/pull/12859) [`44c9b40e0a`](https://github.com/smartcontractkit/chainlink/commit/44c9b40e0a77be0609c33d06c3101d8a7163c3e7) Thanks [@dimriou](https://github.com/dimriou)! - Drop unused queryTimeout config from TXM strategy #internal - -- [#12909](https://github.com/smartcontractkit/chainlink/pull/12909) [`fa5b22773e`](https://github.com/smartcontractkit/chainlink/commit/fa5b22773e52744d3abab1a05cd12ecc2e103d88) Thanks [@vyzaldysanchez](https://github.com/vyzaldysanchez)! - #internal Generic Plugin `onchainSigningStrategy` support - - [#12845](https://github.com/smartcontractkit/chainlink/pull/12845) [`63abd08cd5`](https://github.com/smartcontractkit/chainlink/commit/63abd08cd55b6dc31e74c6d3e50597eb8400eeb4) Thanks [@bolekk](https://github.com/bolekk)! - #internal Remote Trigger setup -- [#12961](https://github.com/smartcontractkit/chainlink/pull/12961) [`e50d38b0bd`](https://github.com/smartcontractkit/chainlink/commit/e50d38b0bddc34aa0b97ae6bdf23c355b5619682) Thanks [@HenryNguyen5](https://github.com/HenryNguyen5)! - #internal Rename workflow tags to labels - - [#12997](https://github.com/smartcontractkit/chainlink/pull/12997) [`8c8994e242`](https://github.com/smartcontractkit/chainlink/commit/8c8994e24284236645509b4c49152e6270ce0e35) Thanks [@george-dorin](https://github.com/george-dorin)! - #bugfix Fixed an issue where the `rebroadcast-transactions` commands did not execute config validation. -- [#12888](https://github.com/smartcontractkit/chainlink/pull/12888) [`7c059b2c26`](https://github.com/smartcontractkit/chainlink/commit/7c059b2c26ed6d99a40403b4f690c0f3e08154b4) Thanks [@DeividasK](https://github.com/DeividasK)! - #wip Regenerate Keystone wrappers - -- [#12806](https://github.com/smartcontractkit/chainlink/pull/12806) [`9964dc82e5`](https://github.com/smartcontractkit/chainlink/commit/9964dc82e591f8653adb06f0b149a16e0b6cea40) Thanks [@jmank88](https://github.com/jmank88)! - core/services/ocr2/plugins/ocr2keeper/evmregister/v21/upkeepstate: use sqlutil instead of pg.QOpts #internal - -- [#12818](https://github.com/smartcontractkit/chainlink/pull/12818) [`6a0b4a9b09`](https://github.com/smartcontractkit/chainlink/commit/6a0b4a9b099663e3aed202f48f363afc4d111293) Thanks [@jmank88](https://github.com/jmank88)! - cor/services/relay/evm/mercury: switch to sqlutil.DataStore #internal - -- [#12947](https://github.com/smartcontractkit/chainlink/pull/12947) [`758ffd6da0`](https://github.com/smartcontractkit/chainlink/commit/758ffd6da097adac1f49ceded5e0998cdcb98a29) Thanks [@momentmaker](https://github.com/momentmaker)! - Add check for valid semvar value for changeset file #internal - - [#13026](https://github.com/smartcontractkit/chainlink/pull/13026) [`e21be2a890`](https://github.com/smartcontractkit/chainlink/commit/e21be2a890a50bd3cbac60c450e3c2d68ddefbd3) Thanks [@mateusz-sekara](https://github.com/mateusz-sekara)! - Improving LogPoller read queries by properly sorting by multiple columns #updated - [#12638](https://github.com/smartcontractkit/chainlink/pull/12638) [`bcf7653486`](https://github.com/smartcontractkit/chainlink/commit/bcf76534862b32503f4192e38b7e1cb4dd7e312d) Thanks [@dhaidashenko](https://github.com/dhaidashenko)! - #changed Added prefix `RPCClient returned error ({RPC_NAME})` to RPC errors to simplify filtering of RPC related issues. -- [#12811](https://github.com/smartcontractkit/chainlink/pull/12811) [`6b0a7afe23`](https://github.com/smartcontractkit/chainlink/commit/6b0a7afe235399790c066dd725c437403a47a73e) Thanks [@jmank88](https://github.com/jmank88)! - core/services/functions: switch to sqlutil.DataStore #internal - - [#12786](https://github.com/smartcontractkit/chainlink/pull/12786) [`fbb705c4f1`](https://github.com/smartcontractkit/chainlink/commit/fbb705c4f1338c6e0919d728adee827ec1e2007a) Thanks [@mateusz-sekara](https://github.com/mateusz-sekara)! - Narrowing topic, data_word indexes by adding (evm_chain_id, address, event_sig) to the index definition #db_update - [#12747](https://github.com/smartcontractkit/chainlink/pull/12747) [`2729ef76f3`](https://github.com/smartcontractkit/chainlink/commit/2729ef76f34877a2e6e8644b2e67f3e5dfb0c2b6) Thanks [@friedemannf](https://github.com/friedemannf)! - Add support for X Layer (X1) #added -- [#12979](https://github.com/smartcontractkit/chainlink/pull/12979) [`0c4c24ad8c`](https://github.com/smartcontractkit/chainlink/commit/0c4c24ad8c95e505cd2a29be711cc40e612658b0) Thanks [@cds95](https://github.com/cds95)! - update keystone gethwrapper with remove operator function #internal - -- [#12856](https://github.com/smartcontractkit/chainlink/pull/12856) [`0ec92765cc`](https://github.com/smartcontractkit/chainlink/commit/0ec92765ccd419973f4eab5b0cc38df212f4ad21) Thanks [@jmank88](https://github.com/jmank88)! - switch more EVM components to use sqlutil.DataStore #internal - [#12680](https://github.com/smartcontractkit/chainlink/pull/12680) [`f55d8be495`](https://github.com/smartcontractkit/chainlink/commit/f55d8be495a83c97ac5439672563400e12ec2ee7) Thanks [@samsondav](https://github.com/samsondav)! - #added @@ -113,34 +76,25 @@ TransmitTimeout = "5s" # Default ``` -- [#13059](https://github.com/smartcontractkit/chainlink/pull/13059) [`ea08b5f08d`](https://github.com/smartcontractkit/chainlink/commit/ea08b5f08d84d2ff1ddfa2027660ff58a60219c3) Thanks [@HenryNguyen5](https://github.com/HenryNguyen5)! - #internal fix txdb documentation typos - - [#12902](https://github.com/smartcontractkit/chainlink/pull/12902) [`d1845e22d3`](https://github.com/smartcontractkit/chainlink/commit/d1845e22d3b057d9d736bc05c30f0db34c84a7e4) Thanks [@samsondav](https://github.com/samsondav)! - Bump libocr => fd3cab206b2ca3b7ff207996b95673b2d6303ec4 - #internal - -- [#12809](https://github.com/smartcontractkit/chainlink/pull/12809) [`0af4acafbd`](https://github.com/smartcontractkit/chainlink/commit/0af4acafbdf243feea8507e421016933b0e538ca) Thanks [@jmank88](https://github.com/jmank88)! - core/sessions: switch to sqlutil.DataSource #internal - -- [#12808](https://github.com/smartcontractkit/chainlink/pull/12808) [`601c79f891`](https://github.com/smartcontractkit/chainlink/commit/601c79f89120dc0d98db63a528c79644ebb38132) Thanks [@jmank88](https://github.com/jmank88)! - core/bridges: use sqlutil.DataSource #internal - -- [#12903](https://github.com/smartcontractkit/chainlink/pull/12903) [`a293dfe797`](https://github.com/smartcontractkit/chainlink/commit/a293dfe7975b035a71eff7a6197e3ce5a25f1887) Thanks [@shileiwill](https://github.com/shileiwill)! - add getters #internal - - [#12669](https://github.com/smartcontractkit/chainlink/pull/12669) [`3134ce8868`](https://github.com/smartcontractkit/chainlink/commit/3134ce8868ccc22bd4ae670c8b0bfda5fa78a332) Thanks [@leeyikjiun](https://github.com/leeyikjiun)! - vrfv2plus - account for num words in coordinator gas overhead in v2plus wrapper -- [#13022](https://github.com/smartcontractkit/chainlink/pull/13022) [`2805fa6c9b`](https://github.com/smartcontractkit/chainlink/commit/2805fa6c9b469d535edcd3d66c08e1d22bbaa2d0) Thanks [@cds95](https://github.com/cds95)! - #internal - - [#12951](https://github.com/smartcontractkit/chainlink/pull/12951) [`c98ea6413d`](https://github.com/smartcontractkit/chainlink/commit/c98ea6413dcdc02a7d0c82b9b36d3fce97dac94b) Thanks [@ogtownsend](https://github.com/ogtownsend)! - #changed Updating the log trigger log provider's readMaxBatchSize to 56 - [#12944](https://github.com/smartcontractkit/chainlink/pull/12944) [`167782c680`](https://github.com/smartcontractkit/chainlink/commit/167782c680b92b1e99ae3e9d1a8b87fd595dd644) Thanks [@shileiwill](https://github.com/shileiwill)! - minor fixes #bugfix -- [#12906](https://github.com/smartcontractkit/chainlink/pull/12906) [`365c38be8b`](https://github.com/smartcontractkit/chainlink/commit/365c38be8b589d5ffa0b21755dcb40e2e4205652) Thanks [@cds95](https://github.com/cds95)! - update keystone gethwrapper #internal - - [#12966](https://github.com/smartcontractkit/chainlink/pull/12966) [`ac7d3409ed`](https://github.com/smartcontractkit/chainlink/commit/ac7d3409ed9bc98af970ca75c3b92e41e4fb01cf) Thanks [@george-dorin](https://github.com/george-dorin)! - #added JuelsPerFeeCoinCache is enabled by default for OCR2 jobs, added `Disable` field under [pluginConfig.JuelsPerFeeCoinCache] tag to disable this feature (e.g. Disable=true) - [#12916](https://github.com/smartcontractkit/chainlink/pull/12916) [`7ec1d5b7ab`](https://github.com/smartcontractkit/chainlink/commit/7ec1d5b7abb51e100f7a6a48662e33703a589ecb) Thanks [@shileiwill](https://github.com/shileiwill)! - offchain settlement fix #bugfix - [#12998](https://github.com/smartcontractkit/chainlink/pull/12998) [`d50936ce38`](https://github.com/smartcontractkit/chainlink/commit/d50936ce3824d7ad6026f630172e9764a34cc08b) Thanks [@mateusz-sekara](https://github.com/mateusz-sekara)! - Support for retention in LogPoller's filters registered by ContractTransmitter #changed +## 2.11.1 - 2024-05-20 + +### Patch Changes +- [#13254](https://github.com/smartcontractkit/chainlink/pull/13254) [`c0d201a9a8`](https://github.com/smartcontractkit/chainlink/commit/c0d201a9a85b66718c5102427c34276e0b61c84e) Thanks [@samsondav!] - Fix panic if mercury server returns error #bugfix + ## 2.11.0 - 2024-04-30 ### Minor Changes From 000f2cb36b7d9b6d046d383c85996ae1ae7a606e Mon Sep 17 00:00:00 2001 From: Christopher Dimitri Sastropranoto Date: Thu, 6 Jun 2024 09:48:47 -0700 Subject: [PATCH 19/40] Capability registry internal review (#13368) * update gas measurements * verify node not part of DON when removing * update gas snapshots * update uint declaration * Update gethwrappers * add extra test for removing ndoes * remove unnecessary sets * add changeset * revert gas snapshot * Revert "update gas measurements" This reverts commit ac688de1b321f5a1f330c587a5282fa4951803a5. * update snapshots * undo forge std changes * add function to update capabilities * allow adding multiple capabilities at once * allow deprecating multiple capabilities at once * address PR feedback * update comment * update comment * verify node operator valid when adding node and update node operator * I03: index nodeOperatorId in events * fix conflicts * I08: gas optimizations * return don capability config contract config from capability registry * generate wrappers * make don id uint declaration consistent * increase test coverage * address PR feedback * remove update capabilities * I9: nitpicks * I12: nits and stylings * add comments * I10: Gas optimizations * generate wrappers * add changesets * add capability registry comment explaining why we do not validate node operator name * address PR feedback * regen wrappers * add changesets --------- Co-authored-by: app-token-issuer-infra-releng[bot] <120227048+app-token-issuer-infra-releng[bot]@users.noreply.github.com> --- .changeset/cuddly-lions-sneeze.md | 5 + .changeset/empty-dryers-fold.md | 5 + .changeset/empty-tools-run.md | 5 + .changeset/famous-timers-love.md | 5 + .changeset/itchy-jars-return.md | 5 + .changeset/short-seals-love.md | 5 + .changeset/smooth-parents-reply.md | 5 + .changeset/soft-schools-beam.md | 5 + .changeset/stale-mayflies-own.md | 5 + .changeset/twelve-buckets-retire.md | 5 + .changeset/wet-ligers-complain.md | 5 + contracts/.changeset/blue-onions-sleep.md | 5 + contracts/.changeset/chilly-rivers-study.md | 5 + contracts/.changeset/dull-phones-retire.md | 5 + contracts/.changeset/happy-plants-dance.md | 5 + .../.changeset/healthy-impalas-hammer.md | 5 + contracts/.changeset/ninety-wolves-sleep.md | 5 + contracts/.changeset/orange-tips-attend.md | 5 + contracts/.changeset/silent-ravens-lay.md | 5 + contracts/.changeset/stupid-lamps-sell.md | 5 + contracts/.changeset/sweet-geese-rescue.md | 5 + contracts/.changeset/yellow-snails-wash.md | 5 + contracts/gas-snapshots/keystone.gas-snapshot | 149 +++---- .../src/v0.8/keystone/CapabilityRegistry.sol | 395 +++++++++++------- .../interfaces/ICapabilityConfiguration.sol | 2 +- .../src/v0.8/keystone/test/BaseTest.t.sol | 3 +- ...pabilityRegistry_AddCapabilitiesTest.t.sol | 112 +++++ ...CapabilityRegistry_AddCapabilityTest.t.sol | 73 ---- .../test/CapabilityRegistry_AddDONTest.t.sol | 21 +- ...abilityRegistry_AddNodeOperatorsTest.t.sol | 2 +- .../CapabilityRegistry_AddNodesTest.t.sol | 33 +- ...yRegistry_DeprecateCapabilitiesTest.t.sol} | 35 +- ...pabilityRegistry_GetCapabilitiesTest.t.sol | 11 +- .../test/CapabilityRegistry_GetDONsTest.t.sol | 7 +- ...abilityRegistry_GetNodeOperatorsTest.t.sol | 11 +- .../CapabilityRegistry_GetNodesTest.t.sol | 8 +- .../CapabilityRegistry_RemoveDONsTest.t.sol | 14 +- ...lityRegistry_RemoveNodeOperatorsTest.t.sol | 6 +- .../CapabilityRegistry_RemoveNodesTest.t.sol | 124 +++++- ...apabilityRegistry_TypeAndVersionTest.t.sol | 10 + .../CapabilityRegistry_UpdateDONTest.t.sol | 17 +- ...lityRegistry_UpdateNodeOperatorsTest.t.sol | 46 +- .../CapabilityRegistry_UpdateNodesTest.t.sol | 11 +- .../mocks/CapabilityConfigurationContract.sol | 13 +- .../keystone_capability_registry.go | 271 +++++++----- ...rapper-dependency-versions-do-not-edit.txt | 2 +- 46 files changed, 1003 insertions(+), 483 deletions(-) create mode 100644 .changeset/cuddly-lions-sneeze.md create mode 100644 .changeset/empty-dryers-fold.md create mode 100644 .changeset/empty-tools-run.md create mode 100644 .changeset/famous-timers-love.md create mode 100644 .changeset/itchy-jars-return.md create mode 100644 .changeset/short-seals-love.md create mode 100644 .changeset/smooth-parents-reply.md create mode 100644 .changeset/soft-schools-beam.md create mode 100644 .changeset/stale-mayflies-own.md create mode 100644 .changeset/twelve-buckets-retire.md create mode 100644 .changeset/wet-ligers-complain.md create mode 100644 contracts/.changeset/blue-onions-sleep.md create mode 100644 contracts/.changeset/chilly-rivers-study.md create mode 100644 contracts/.changeset/dull-phones-retire.md create mode 100644 contracts/.changeset/happy-plants-dance.md create mode 100644 contracts/.changeset/healthy-impalas-hammer.md create mode 100644 contracts/.changeset/ninety-wolves-sleep.md create mode 100644 contracts/.changeset/orange-tips-attend.md create mode 100644 contracts/.changeset/silent-ravens-lay.md create mode 100644 contracts/.changeset/stupid-lamps-sell.md create mode 100644 contracts/.changeset/sweet-geese-rescue.md create mode 100644 contracts/.changeset/yellow-snails-wash.md create mode 100644 contracts/src/v0.8/keystone/test/CapabilityRegistry_AddCapabilitiesTest.t.sol delete mode 100644 contracts/src/v0.8/keystone/test/CapabilityRegistry_AddCapabilityTest.t.sol rename contracts/src/v0.8/keystone/test/{CapabilityRegistry_DeprecateCapability.t.sol => CapabilityRegistry_DeprecateCapabilitiesTest.t.sol} (56%) create mode 100644 contracts/src/v0.8/keystone/test/CapabilityRegistry_TypeAndVersionTest.t.sol diff --git a/.changeset/cuddly-lions-sneeze.md b/.changeset/cuddly-lions-sneeze.md new file mode 100644 index 00000000000..c524bb34246 --- /dev/null +++ b/.changeset/cuddly-lions-sneeze.md @@ -0,0 +1,5 @@ +--- +"chainlink": patch +--- + +#internal remove update capabilities from capability registry diff --git a/.changeset/empty-dryers-fold.md b/.changeset/empty-dryers-fold.md new file mode 100644 index 00000000000..76cc3f8d71e --- /dev/null +++ b/.changeset/empty-dryers-fold.md @@ -0,0 +1,5 @@ +--- +"chainlink": patch +--- + +#internal capability registry informational findings diff --git a/.changeset/empty-tools-run.md b/.changeset/empty-tools-run.md new file mode 100644 index 00000000000..f4c906a6eff --- /dev/null +++ b/.changeset/empty-tools-run.md @@ -0,0 +1,5 @@ +--- +"chainlink": patch +--- + +#internal return don capability config contract config from capability registry diff --git a/.changeset/famous-timers-love.md b/.changeset/famous-timers-love.md new file mode 100644 index 00000000000..271040ab726 --- /dev/null +++ b/.changeset/famous-timers-love.md @@ -0,0 +1,5 @@ +--- +"chainlink": patch +--- + +#internal add capability registry comment explaining why we do not validate node operator name diff --git a/.changeset/itchy-jars-return.md b/.changeset/itchy-jars-return.md new file mode 100644 index 00000000000..fd5eb6f54d2 --- /dev/null +++ b/.changeset/itchy-jars-return.md @@ -0,0 +1,5 @@ +--- +"chainlink": patch +--- + +#internal verify valid node operator when adding nodes to capability registry diff --git a/.changeset/short-seals-love.md b/.changeset/short-seals-love.md new file mode 100644 index 00000000000..5199c1c191a --- /dev/null +++ b/.changeset/short-seals-love.md @@ -0,0 +1,5 @@ +--- +"chainlink": patch +--- + +#internal verify that node is not part of a DON when removing diff --git a/.changeset/smooth-parents-reply.md b/.changeset/smooth-parents-reply.md new file mode 100644 index 00000000000..46eb405ee89 --- /dev/null +++ b/.changeset/smooth-parents-reply.md @@ -0,0 +1,5 @@ +--- +"chainlink": patch +--- + +#internal remove tracking deprecated arrays diff --git a/.changeset/soft-schools-beam.md b/.changeset/soft-schools-beam.md new file mode 100644 index 00000000000..6609b4edb58 --- /dev/null +++ b/.changeset/soft-schools-beam.md @@ -0,0 +1,5 @@ +--- +"chainlink": patch +--- + +#internal capability registry internal review diff --git a/.changeset/stale-mayflies-own.md b/.changeset/stale-mayflies-own.md new file mode 100644 index 00000000000..ab7eaa4f232 --- /dev/null +++ b/.changeset/stale-mayflies-own.md @@ -0,0 +1,5 @@ +--- +"chainlink": patch +--- + +#internal internal-review-fixes-for-capability-registry diff --git a/.changeset/twelve-buckets-retire.md b/.changeset/twelve-buckets-retire.md new file mode 100644 index 00000000000..cdf25811ec5 --- /dev/null +++ b/.changeset/twelve-buckets-retire.md @@ -0,0 +1,5 @@ +--- +"chainlink": patch +--- + +#internal allow updating capabilities and to add/remove multiple capabilities at once from the capability registry diff --git a/.changeset/wet-ligers-complain.md b/.changeset/wet-ligers-complain.md new file mode 100644 index 00000000000..45cc35b7cd5 --- /dev/null +++ b/.changeset/wet-ligers-complain.md @@ -0,0 +1,5 @@ +--- +"chainlink": patch +--- + +#internal update uint256 to uint32 for donId declaration in capability config interface diff --git a/contracts/.changeset/blue-onions-sleep.md b/contracts/.changeset/blue-onions-sleep.md new file mode 100644 index 00000000000..35944a09606 --- /dev/null +++ b/contracts/.changeset/blue-onions-sleep.md @@ -0,0 +1,5 @@ +--- +'@chainlink/contracts': patch +--- + +capability registry internal review diff --git a/contracts/.changeset/chilly-rivers-study.md b/contracts/.changeset/chilly-rivers-study.md new file mode 100644 index 00000000000..0bd5d713a1b --- /dev/null +++ b/contracts/.changeset/chilly-rivers-study.md @@ -0,0 +1,5 @@ +--- +'@chainlink/contracts': patch +--- + +add capability registry comment explaining why we do not validate node operator name diff --git a/contracts/.changeset/dull-phones-retire.md b/contracts/.changeset/dull-phones-retire.md new file mode 100644 index 00000000000..be65a31fac4 --- /dev/null +++ b/contracts/.changeset/dull-phones-retire.md @@ -0,0 +1,5 @@ +--- +'@chainlink/contracts': patch +--- + +capability registry informational findings diff --git a/contracts/.changeset/happy-plants-dance.md b/contracts/.changeset/happy-plants-dance.md new file mode 100644 index 00000000000..1b8c7fcb669 --- /dev/null +++ b/contracts/.changeset/happy-plants-dance.md @@ -0,0 +1,5 @@ +--- +'@chainlink/contracts': patch +--- + +allow updating capabilities and to add/remove multiple capabilities at once from the capability registry diff --git a/contracts/.changeset/healthy-impalas-hammer.md b/contracts/.changeset/healthy-impalas-hammer.md new file mode 100644 index 00000000000..dbbef2fca28 --- /dev/null +++ b/contracts/.changeset/healthy-impalas-hammer.md @@ -0,0 +1,5 @@ +--- +'@chainlink/contracts': patch +--- + +remove tracking deprecated arrays diff --git a/contracts/.changeset/ninety-wolves-sleep.md b/contracts/.changeset/ninety-wolves-sleep.md new file mode 100644 index 00000000000..7b669388388 --- /dev/null +++ b/contracts/.changeset/ninety-wolves-sleep.md @@ -0,0 +1,5 @@ +--- +'@chainlink/contracts': patch +--- + +#internal internal-review-for-capability-registry diff --git a/contracts/.changeset/orange-tips-attend.md b/contracts/.changeset/orange-tips-attend.md new file mode 100644 index 00000000000..2b5fa8e88ed --- /dev/null +++ b/contracts/.changeset/orange-tips-attend.md @@ -0,0 +1,5 @@ +--- +'@chainlink/contracts': patch +--- + +validate that a node is not part of a DON when removing diff --git a/contracts/.changeset/silent-ravens-lay.md b/contracts/.changeset/silent-ravens-lay.md new file mode 100644 index 00000000000..e987e9e0825 --- /dev/null +++ b/contracts/.changeset/silent-ravens-lay.md @@ -0,0 +1,5 @@ +--- +'@chainlink/contracts': patch +--- + +remove update capabilities from capability registry diff --git a/contracts/.changeset/stupid-lamps-sell.md b/contracts/.changeset/stupid-lamps-sell.md new file mode 100644 index 00000000000..ad5d70a04ab --- /dev/null +++ b/contracts/.changeset/stupid-lamps-sell.md @@ -0,0 +1,5 @@ +--- +'@chainlink/contracts': patch +--- + +verify valid node operator when adding nodes to capability registry diff --git a/contracts/.changeset/sweet-geese-rescue.md b/contracts/.changeset/sweet-geese-rescue.md new file mode 100644 index 00000000000..ba0f2c916c4 --- /dev/null +++ b/contracts/.changeset/sweet-geese-rescue.md @@ -0,0 +1,5 @@ +--- +'@chainlink/contracts': patch +--- + +update uint256 to uint32 for donId declaration in capability config interface diff --git a/contracts/.changeset/yellow-snails-wash.md b/contracts/.changeset/yellow-snails-wash.md new file mode 100644 index 00000000000..479fedcbe4a --- /dev/null +++ b/contracts/.changeset/yellow-snails-wash.md @@ -0,0 +1,5 @@ +--- +'@chainlink/contracts': patch +--- + +return don capability config contract config from capability registry diff --git a/contracts/gas-snapshots/keystone.gas-snapshot b/contracts/gas-snapshots/keystone.gas-snapshot index 7fd567189ef..d01543529cb 100644 --- a/contracts/gas-snapshots/keystone.gas-snapshot +++ b/contracts/gas-snapshots/keystone.gas-snapshot @@ -1,76 +1,83 @@ -CapabilityRegistry_AddCapabilityTest:test_AddCapability_NoConfigurationContract() (gas: 146839) -CapabilityRegistry_AddCapabilityTest:test_AddCapability_WithConfiguration() (gas: 171105) -CapabilityRegistry_AddCapabilityTest:test_DeprecatesCapability() (gas: 88694) -CapabilityRegistry_AddCapabilityTest:test_EmitsEvent() (gas: 88815) -CapabilityRegistry_AddCapabilityTest:test_RevertWhen_CalledByNonAdmin() (gas: 21728) -CapabilityRegistry_AddCapabilityTest:test_RevertWhen_CalledByNonAdmin() (gas: 22199) -CapabilityRegistry_AddCapabilityTest:test_RevertWhen_CapabilityDoesNotExist() (gas: 15521) -CapabilityRegistry_AddCapabilityTest:test_RevertWhen_CapabilityExists() (gas: 138685) -CapabilityRegistry_AddCapabilityTest:test_RevertWhen_CapabilityIsDeprecated() (gas: 89496) -CapabilityRegistry_AddCapabilityTest:test_RevertWhen_ConfigurationContractDoesNotMatchInterface() (gas: 3998052) -CapabilityRegistry_AddCapabilityTest:test_RevertWhen_ConfigurationContractNotDeployed() (gas: 24995) -CapabilityRegistry_AddDONTest:test_AddDON() (gas: 332870) -CapabilityRegistry_AddDONTest:test_RevertWhen_CalledByNonAdmin() (gas: 19285) -CapabilityRegistry_AddDONTest:test_RevertWhen_CapabilityDoesNotExist() (gas: 155460) -CapabilityRegistry_AddDONTest:test_RevertWhen_DeprecatedCapabilityAdded() (gas: 224960) -CapabilityRegistry_AddDONTest:test_RevertWhen_DuplicateCapabilityAdded() (gas: 239487) -CapabilityRegistry_AddDONTest:test_RevertWhen_DuplicateNodeAdded() (gas: 108051) -CapabilityRegistry_AddDONTest:test_RevertWhen_FaultToleranceIsZero() (gas: 40158) -CapabilityRegistry_AddDONTest:test_RevertWhen_NodeDoesNotSupportCapability() (gas: 169921) -CapabilityRegistry_AddNodeOperatorsTest:test_AddNodeOperators() (gas: 133916) -CapabilityRegistry_AddNodeOperatorsTest:test_RevertWhen_CalledByNonAdmin() (gas: 16949) -CapabilityRegistry_AddNodeOperatorsTest:test_RevertWhen_NodeOperatorAdminAddressZero() (gas: 17795) -CapabilityRegistry_AddNodesTest:test_AddsNodeInfo() (gas: 355866) -CapabilityRegistry_AddNodesTest:test_OwnerCanAddNodes() (gas: 355854) -CapabilityRegistry_AddNodesTest:test_RevertWhen_AddingDuplicateP2PId() (gas: 301701) -CapabilityRegistry_AddNodesTest:test_RevertWhen_AddingNodeWithInvalidCapability() (gas: 55370) -CapabilityRegistry_AddNodesTest:test_RevertWhen_AddingNodeWithoutCapabilities() (gas: 27706) -CapabilityRegistry_AddNodesTest:test_RevertWhen_CalledByNonNodeOperatorAdminAndNonOwner() (gas: 24579) -CapabilityRegistry_AddNodesTest:test_RevertWhen_P2PIDEmpty() (gas: 27412) -CapabilityRegistry_AddNodesTest:test_RevertWhen_SignerAddressEmpty() (gas: 27051) -CapabilityRegistry_AddNodesTest:test_RevertWhen_SignerAddressNotUnique() (gas: 310108) -CapabilityRegistry_GetCapabilitiesTest:test_ExcludesDeprecatedCapabilities() (gas: 115054) -CapabilityRegistry_GetCapabilitiesTest:test_ReturnsCapabilities() (gas: 53946) -CapabilityRegistry_GetDONsTest:test_CorrectlyFetchesDONs() (gas: 71958) -CapabilityRegistry_GetDONsTest:test_DoesNotIncludeRemovedDONs() (gas: 116197) -CapabilityRegistry_GetHashedCapabilityTest:test_CorrectlyGeneratesHashedCapabilityId() (gas: 10842) -CapabilityRegistry_GetHashedCapabilityTest:test_DoesNotCauseIncorrectClashes() (gas: 11915) -CapabilityRegistry_GetNodeOperatorsTest:test_CorrectlyFetchesNodeOperators() (gas: 34361) -CapabilityRegistry_GetNodeOperatorsTest:test_DoesNotIncludeRemovedNodeOperators() (gas: 99004) -CapabilityRegistry_GetNodesTest:test_CorrectlyFetchesNodes() (gas: 59970) -CapabilityRegistry_GetNodesTest:test_DoesNotIncludeRemovedNodes() (gas: 73816) -CapabilityRegistry_RemoveDONsTest:test_RemovesDON() (gas: 99887) +CapabilityRegistry_AddCapabilitiesTest:test_AddCapability_NoConfigurationContract() (gas: 152088) +CapabilityRegistry_AddCapabilitiesTest:test_AddCapability_WithConfiguration() (gas: 176069) +CapabilityRegistry_AddCapabilitiesTest:test_RevertWhen_CalledByNonAdmin() (gas: 24678) +CapabilityRegistry_AddCapabilitiesTest:test_RevertWhen_CapabilityExists() (gas: 145679) +CapabilityRegistry_AddCapabilitiesTest:test_RevertWhen_ConfigurationContractDoesNotMatchInterface() (gas: 94561) +CapabilityRegistry_AddCapabilitiesTest:test_RevertWhen_ConfigurationContractNotDeployed() (gas: 92916) +CapabilityRegistry_AddDONTest:test_AddDON() (gas: 499044) +CapabilityRegistry_AddDONTest:test_RevertWhen_CalledByNonAdmin() (gas: 19249) +CapabilityRegistry_AddDONTest:test_RevertWhen_CapabilityDoesNotExist() (gas: 291958) +CapabilityRegistry_AddDONTest:test_RevertWhen_DeprecatedCapabilityAdded() (gas: 365106) +CapabilityRegistry_AddDONTest:test_RevertWhen_DuplicateCapabilityAdded() (gas: 375985) +CapabilityRegistry_AddDONTest:test_RevertWhen_DuplicateNodeAdded() (gas: 177974) +CapabilityRegistry_AddDONTest:test_RevertWhen_FaultToleranceIsZero() (gas: 43337) +CapabilityRegistry_AddDONTest:test_RevertWhen_NodeDoesNotSupportCapability() (gas: 306419) +CapabilityRegistry_AddNodeOperatorsTest:test_AddNodeOperators() (gas: 184267) +CapabilityRegistry_AddNodeOperatorsTest:test_RevertWhen_CalledByNonAdmin() (gas: 17624) +CapabilityRegistry_AddNodeOperatorsTest:test_RevertWhen_NodeOperatorAdminAddressZero() (gas: 18520) +CapabilityRegistry_AddNodesTest:test_AddsNodeInfo() (gas: 355458) +CapabilityRegistry_AddNodesTest:test_OwnerCanAddNodes() (gas: 355446) +CapabilityRegistry_AddNodesTest:test_RevertWhen_AddingDuplicateP2PId() (gas: 301431) +CapabilityRegistry_AddNodesTest:test_RevertWhen_AddingNodeWithInvalidCapability() (gas: 55243) +CapabilityRegistry_AddNodesTest:test_RevertWhen_AddingNodeWithInvalidNodeOperator() (gas: 24962) +CapabilityRegistry_AddNodesTest:test_RevertWhen_AddingNodeWithoutCapabilities() (gas: 27738) +CapabilityRegistry_AddNodesTest:test_RevertWhen_CalledByNonNodeOperatorAdminAndNonOwner() (gas: 25130) +CapabilityRegistry_AddNodesTest:test_RevertWhen_P2PIDEmpty() (gas: 27444) +CapabilityRegistry_AddNodesTest:test_RevertWhen_SignerAddressEmpty() (gas: 27083) +CapabilityRegistry_AddNodesTest:test_RevertWhen_SignerAddressNotUnique() (gas: 309850) +CapabilityRegistry_DeprecateCapabilitiesTest:test_DeprecatesCapability() (gas: 92873) +CapabilityRegistry_DeprecateCapabilitiesTest:test_EmitsEvent() (gas: 93001) +CapabilityRegistry_DeprecateCapabilitiesTest:test_RevertWhen_CalledByNonAdmin() (gas: 22879) +CapabilityRegistry_DeprecateCapabilitiesTest:test_RevertWhen_CapabilityDoesNotExist() (gas: 16166) +CapabilityRegistry_DeprecateCapabilitiesTest:test_RevertWhen_CapabilityIsDeprecated() (gas: 94265) +CapabilityRegistry_GetCapabilitiesTest:test_ExcludesDeprecatedCapabilities() (gas: 119306) +CapabilityRegistry_GetCapabilitiesTest:test_ReturnsCapabilities() (gas: 54034) +CapabilityRegistry_GetDONsTest:test_CorrectlyFetchesDONs() (gas: 65704) +CapabilityRegistry_GetDONsTest:test_DoesNotIncludeRemovedDONs() (gas: 88473) +CapabilityRegistry_GetHashedCapabilityTest:test_CorrectlyGeneratesHashedCapabilityId() (gas: 11428) +CapabilityRegistry_GetHashedCapabilityTest:test_DoesNotCauseIncorrectClashes() (gas: 13087) +CapabilityRegistry_GetNodeOperatorsTest:test_CorrectlyFetchesNodeOperators() (gas: 36675) +CapabilityRegistry_GetNodeOperatorsTest:test_DoesNotIncludeRemovedNodeOperators() (gas: 38982) +CapabilityRegistry_GetNodesTest:test_CorrectlyFetchesNodes() (gas: 59880) +CapabilityRegistry_GetNodesTest:test_DoesNotIncludeRemovedNodes() (gas: 71576) +CapabilityRegistry_RemoveDONsTest:test_RemovesDON() (gas: 60696) CapabilityRegistry_RemoveDONsTest:test_RevertWhen_CalledByNonAdmin() (gas: 15669) -CapabilityRegistry_RemoveDONsTest:test_RevertWhen_DONDoesNotExist() (gas: 14160) -CapabilityRegistry_RemoveNodeOperatorsTest:test_RemovesNodeOperator() (gas: 141779) -CapabilityRegistry_RemoveNodeOperatorsTest:test_RevertWhen_CalledByNonOwner() (gas: 15761) -CapabilityRegistry_RemoveNodesTest:test_CanAddNodeWithSameSignerAddressAfterRemoving() (gas: 80895) -CapabilityRegistry_RemoveNodesTest:test_OwnerCanRemoveNodes() (gas: 57865) -CapabilityRegistry_RemoveNodesTest:test_RemovesNode() (gas: 57864) -CapabilityRegistry_RemoveNodesTest:test_RevertWhen_CalledByNonNodeOperatorAdminAndNonOwner() (gas: 25085) -CapabilityRegistry_RemoveNodesTest:test_RevertWhen_NodeDoesNotExist() (gas: 18395) +CapabilityRegistry_RemoveDONsTest:test_RevertWhen_DONDoesNotExist() (gas: 16540) +CapabilityRegistry_RemoveNodeOperatorsTest:test_RemovesNodeOperator() (gas: 36069) +CapabilityRegistry_RemoveNodeOperatorsTest:test_RevertWhen_CalledByNonOwner() (gas: 15838) +CapabilityRegistry_RemoveNodesTest:test_CanAddNodeWithSameSignerAddressAfterRemoving() (gas: 114067) +CapabilityRegistry_RemoveNodesTest:test_CanRemoveWhenDONDeleted() (gas: 371521) +CapabilityRegistry_RemoveNodesTest:test_CanRemoveWhenNodeNoLongerPartOfDON() (gas: 712537) +CapabilityRegistry_RemoveNodesTest:test_OwnerCanRemoveNodes() (gas: 72324) +CapabilityRegistry_RemoveNodesTest:test_RemovesNode() (gas: 74158) +CapabilityRegistry_RemoveNodesTest:test_RevertWhen_CalledByNonNodeOperatorAdminAndNonOwner() (gas: 24871) +CapabilityRegistry_RemoveNodesTest:test_RevertWhen_NodeDoesNotExist() (gas: 18373) +CapabilityRegistry_RemoveNodesTest:test_RevertWhen_NodePartOfDON() (gas: 385126) CapabilityRegistry_RemoveNodesTest:test_RevertWhen_P2PIDEmpty() (gas: 18385) -CapabilityRegistry_UpdateDONTest:test_RevertWhen_CalledByNonAdmin() (gas: 19370) -CapabilityRegistry_UpdateDONTest:test_RevertWhen_CapabilityDoesNotExist() (gas: 133496) -CapabilityRegistry_UpdateDONTest:test_RevertWhen_DONDoesNotExist() (gas: 17790) -CapabilityRegistry_UpdateDONTest:test_RevertWhen_DeprecatedCapabilityAdded() (gas: 202996) -CapabilityRegistry_UpdateDONTest:test_RevertWhen_DuplicateCapabilityAdded() (gas: 217569) -CapabilityRegistry_UpdateDONTest:test_RevertWhen_DuplicateNodeAdded() (gas: 86089) -CapabilityRegistry_UpdateDONTest:test_RevertWhen_NodeDoesNotSupportCapability() (gas: 148002) -CapabilityRegistry_UpdateDONTest:test_UpdatesDON() (gas: 330869) -CapabilityRegistry_UpdateNodeOperatorTest:test_RevertWhen_CalledByNonAdminAndNonOwner() (gas: 17712) -CapabilityRegistry_UpdateNodeOperatorTest:test_RevertWhen_NodeOperatorAdminIsZeroAddress() (gas: 17636) -CapabilityRegistry_UpdateNodeOperatorTest:test_UpdatesNodeOperator() (gas: 72345) -CapabilityRegistry_UpdateNodesTest:test_CanUpdateParamsIfNodeSignerAddressNoLongerUsed() (gas: 252301) -CapabilityRegistry_UpdateNodesTest:test_OwnerCanUpdateNodes() (gas: 159616) -CapabilityRegistry_UpdateNodesTest:test_RevertWhen_AddingNodeWithInvalidCapability() (gas: 36253) -CapabilityRegistry_UpdateNodesTest:test_RevertWhen_CalledByNonNodeOperatorAdminAndNonOwner() (gas: 24580) -CapabilityRegistry_UpdateNodesTest:test_RevertWhen_NodeDoesNotExist() (gas: 27344) -CapabilityRegistry_UpdateNodesTest:test_RevertWhen_NodeSignerAlreadyAssignedToAnotherNode() (gas: 29312) -CapabilityRegistry_UpdateNodesTest:test_RevertWhen_P2PIDEmpty() (gas: 27332) -CapabilityRegistry_UpdateNodesTest:test_RevertWhen_SignerAddressEmpty() (gas: 27015) -CapabilityRegistry_UpdateNodesTest:test_RevertWhen_UpdatingNodeWithoutCapabilities() (gas: 25666) -CapabilityRegistry_UpdateNodesTest:test_UpdatesNodeInfo() (gas: 159605) +CapabilityRegistry_TypeAndVersionTest:test_TypeAndVersion() (gas: 9796) +CapabilityRegistry_UpdateDONTest:test_RevertWhen_CalledByNonAdmin() (gas: 19406) +CapabilityRegistry_UpdateDONTest:test_RevertWhen_CapabilityDoesNotExist() (gas: 157904) +CapabilityRegistry_UpdateDONTest:test_RevertWhen_DONDoesNotExist() (gas: 17826) +CapabilityRegistry_UpdateDONTest:test_RevertWhen_DeprecatedCapabilityAdded() (gas: 231052) +CapabilityRegistry_UpdateDONTest:test_RevertWhen_DuplicateCapabilityAdded() (gas: 241977) +CapabilityRegistry_UpdateDONTest:test_RevertWhen_DuplicateNodeAdded() (gas: 103722) +CapabilityRegistry_UpdateDONTest:test_RevertWhen_NodeDoesNotSupportCapability() (gas: 172410) +CapabilityRegistry_UpdateDONTest:test_UpdatesDON() (gas: 433638) +CapabilityRegistry_UpdateNodeOperatorTest:test_RevertWhen_CalledByNonAdminAndNonOwner() (gas: 20583) +CapabilityRegistry_UpdateNodeOperatorTest:test_RevertWhen_NodeOperatorAdminIsZeroAddress() (gas: 20004) +CapabilityRegistry_UpdateNodeOperatorTest:test_RevertWhen_NodeOperatorDoesNotExist() (gas: 19742) +CapabilityRegistry_UpdateNodeOperatorTest:test_RevertWhen_NodeOperatorIdAndParamLengthsMismatch() (gas: 15382) +CapabilityRegistry_UpdateNodeOperatorTest:test_UpdatesNodeOperator() (gas: 36903) +CapabilityRegistry_UpdateNodesTest:test_CanUpdateParamsIfNodeSignerAddressNoLongerUsed() (gas: 250725) +CapabilityRegistry_UpdateNodesTest:test_OwnerCanUpdateNodes() (gas: 158858) +CapabilityRegistry_UpdateNodesTest:test_RevertWhen_AddingNodeWithInvalidCapability() (gas: 35985) +CapabilityRegistry_UpdateNodesTest:test_RevertWhen_CalledByNonNodeOperatorAdminAndNonOwner() (gas: 25086) +CapabilityRegistry_UpdateNodesTest:test_RevertWhen_NodeDoesNotExist() (gas: 27325) +CapabilityRegistry_UpdateNodesTest:test_RevertWhen_NodeSignerAlreadyAssignedToAnotherNode() (gas: 29206) +CapabilityRegistry_UpdateNodesTest:test_RevertWhen_P2PIDEmpty() (gas: 27313) +CapabilityRegistry_UpdateNodesTest:test_RevertWhen_SignerAddressEmpty() (gas: 26996) +CapabilityRegistry_UpdateNodesTest:test_RevertWhen_UpdatingNodeWithoutCapabilities() (gas: 25560) +CapabilityRegistry_UpdateNodesTest:test_UpdatesNodeInfo() (gas: 158847) KeystoneForwarder_ReportTest:test_Report_ConfigVersion() (gas: 2676465) KeystoneForwarder_ReportTest:test_Report_SuccessfulDelivery() (gas: 150738) KeystoneForwarder_ReportTest:test_RevertWhen_AlreadyProcessed() (gas: 158024) diff --git a/contracts/src/v0.8/keystone/CapabilityRegistry.sol b/contracts/src/v0.8/keystone/CapabilityRegistry.sol index 76e56c44416..664d0920131 100644 --- a/contracts/src/v0.8/keystone/CapabilityRegistry.sol +++ b/contracts/src/v0.8/keystone/CapabilityRegistry.sol @@ -10,6 +10,11 @@ import {ICapabilityConfiguration} from "./interfaces/ICapabilityConfiguration.so /// @notice CapabilityRegistry is used to manage Nodes (including their links to Node /// Operators), Capabilities, and DONs (Decentralized Oracle Networks) which are /// sets of nodes that support those Capabilities. +/// @dev The contract currently stores the entire state of Node Operators, Nodes, +/// Capabilities and DONs in the contract and requires a full state migration +/// if an upgrade is ever required. The team acknowledges this and is fine +/// reconfiguring the upgraded contract in the future so as to not add extra +/// complexity to this current version. contract CapabilityRegistry is OwnerIsCreator, TypeAndVersionInterface { // Add the library methods using EnumerableSet for EnumerableSet.Bytes32Set; @@ -20,6 +25,9 @@ contract CapabilityRegistry is OwnerIsCreator, TypeAndVersionInterface { /// operator address admin; /// @notice Human readable name of a Node Operator managing the node + /// @dev The contract does not validate the length or characters of the + /// node operator name because a trusted admin will supply these names. + /// We reduce gas costs by omitting these checks on-chain. string name; } @@ -40,7 +48,7 @@ contract CapabilityRegistry is OwnerIsCreator, TypeAndVersionInterface { /// @notice The node's parameters /// @notice The id of the node operator that manages this node uint32 nodeOperatorId; - /// @notice The number of times the node's capability has been updated + /// @notice The number of times the node's configuration has been updated uint32 configCount; /// @notice The signer address for application-layer message verification. /// @dev This key is guaranteed to be unique in the CapabilityRegistry @@ -58,12 +66,18 @@ contract CapabilityRegistry is OwnerIsCreator, TypeAndVersionInterface { /// @dev This is stored as a map so that we can easily update to a set of /// new capabilities by incrementing the configCount and creating a /// new set of supported capability IDs - mapping(uint32 configCount => EnumerableSet.Bytes32Set capabilityId) supportedCapabilityIds; + mapping(uint32 configCount => EnumerableSet.Bytes32Set capabilityId) supportedHashedCapabilityIds; + /// @notice The list of DON Ids supported by the node. + EnumerableSet.UintSet supportedDONIds; } /// @notice CapabilityResponseType indicates whether remote response requires // aggregation or is an already aggregated report. There are multiple // possible ways to aggregate. + /// @dev REPORT response type receives signatures together with the response that + /// is used to verify the data. OBSERVATION_IDENTICAL just receives data without + /// signatures and waits for some number of observations before proceeeding to + /// the next step enum CapabilityResponseType { // No additional aggregation is needed on the remote response. REPORT, @@ -187,7 +201,8 @@ contract CapabilityRegistry is OwnerIsCreator, TypeAndVersionInterface { /// @notice This error is thrown when a caller is not allowed /// to execute the transaction - error AccessForbidden(); + /// @param sender The address that tried to execute the transaction + error AccessForbidden(address sender); /// @notice This error is thrown when there is a mismatch between /// array arguments @@ -209,28 +224,6 @@ contract CapabilityRegistry is OwnerIsCreator, TypeAndVersionInterface { /// @param hashedCapabilityIds The IDs of the capabilities that are being added. error InvalidNodeCapabilities(bytes32[] hashedCapabilityIds); - /// @notice This event is emitted when a new node is added - /// @param p2pId The P2P ID of the node - /// @param nodeOperatorId The ID of the node operator that manages this node - /// @param signer The encoded node's signer address - event NodeAdded(bytes32 p2pId, uint256 nodeOperatorId, bytes32 signer); - - /// @notice This event is emitted when a node is removed - /// @param p2pId The P2P ID of the node that was removed - event NodeRemoved(bytes32 p2pId); - - /// @notice This event is emitted when a node is updated - /// @param p2pId The P2P ID of the node - /// @param nodeOperatorId The ID of the node operator that manages this node - /// @param signer The node's signer address - event NodeUpdated(bytes32 p2pId, uint256 nodeOperatorId, bytes32 signer); - - /// @notice This event is emitted when a DON's config is set - /// @param donId The ID of the DON the config was set for - /// @param configCount The number of times the DON has been - /// configured - event ConfigSet(uint32 donId, uint32 configCount); - /// @notice This error is emitted when a DON does not exist /// @param donId The ID of the nonexistent DON error DONDoesNotExist(uint32 donId); @@ -242,7 +235,9 @@ contract CapabilityRegistry is OwnerIsCreator, TypeAndVersionInterface { /// @notice This error is thrown when trying add a capability that already /// exists. - error CapabilityAlreadyExists(); + /// @param hashedCapabilityId The hashed capability ID of the capability + /// that already exists + error CapabilityAlreadyExists(bytes32 hashedCapabilityId); /// @notice This error is thrown when trying to add a node to a DON where /// the node does not support the capability @@ -277,53 +272,81 @@ contract CapabilityRegistry is OwnerIsCreator, TypeAndVersionInterface { /// @param hashedCapabilityId The hashed ID of the capability that is deprecated. error CapabilityIsDeprecated(bytes32 hashedCapabilityId); + /// @notice This error is thrown when a node operator does not exist + /// @param nodeOperatorId The ID of the node operator that does not exist + error NodeOperatorDoesNotExist(uint32 nodeOperatorId); + + /// @notice This error is thrown when trying to remove a node that is still + /// part of a DON + /// @param nodeP2PId The P2P Id of the node being removed + error NodePartOfDON(bytes32 nodeP2PId); + /// @notice This error is thrown when trying to add a capability with a /// configuration contract that does not implement the required interface. /// @param proposedConfigurationContract The address of the proposed /// configuration contract. error InvalidCapabilityConfigurationContractInterface(address proposedConfigurationContract); + /// @notice This event is emitted when a new node is added + /// @param p2pId The P2P ID of the node + /// @param nodeOperatorId The ID of the node operator that manages this node + /// @param signer The encoded node's signer address + event NodeAdded(bytes32 p2pId, uint32 indexed nodeOperatorId, bytes32 signer); + + /// @notice This event is emitted when a node is removed + /// @param p2pId The P2P ID of the node that was removed + event NodeRemoved(bytes32 p2pId); + + /// @notice This event is emitted when a node is updated + /// @param p2pId The P2P ID of the node + /// @param nodeOperatorId The ID of the node operator that manages this node + /// @param signer The node's signer address + event NodeUpdated(bytes32 p2pId, uint32 indexed nodeOperatorId, bytes32 signer); + + /// @notice This event is emitted when a DON's config is set + /// @param donId The ID of the DON the config was set for + /// @param configCount The number of times the DON has been + /// configured + event ConfigSet(uint32 donId, uint32 configCount); + /// @notice This event is emitted when a new node operator is added /// @param nodeOperatorId The ID of the newly added node operator /// @param admin The address of the admin that can manage the node /// operator /// @param name The human readable name of the node operator - event NodeOperatorAdded(uint256 nodeOperatorId, address indexed admin, string name); + event NodeOperatorAdded(uint32 indexed nodeOperatorId, address indexed admin, string name); /// @notice This event is emitted when a node operator is removed /// @param nodeOperatorId The ID of the node operator that was removed - event NodeOperatorRemoved(uint256 nodeOperatorId); + event NodeOperatorRemoved(uint32 indexed nodeOperatorId); /// @notice This event is emitted when a node operator is updated /// @param nodeOperatorId The ID of the node operator that was updated /// @param admin The address of the node operator's admin /// @param name The node operator's human readable name - event NodeOperatorUpdated(uint256 nodeOperatorId, address indexed admin, string name); + event NodeOperatorUpdated(uint32 indexed nodeOperatorId, address indexed admin, string name); /// @notice This event is emitted when a new capability is added /// @param hashedCapabilityId The hashed ID of the newly added capability - event CapabilityAdded(bytes32 indexed hashedCapabilityId); + event CapabilityConfigured(bytes32 indexed hashedCapabilityId); /// @notice This event is emitted when a capability is deprecated /// @param hashedCapabilityId The hashed ID of the deprecated capability event CapabilityDeprecated(bytes32 indexed hashedCapabilityId); - mapping(bytes32 => Capability) private s_capabilities; + /// @notice Mapping of capabilities + mapping(bytes32 hashedCapabilityId => Capability capability) private s_capabilities; + /// @notice Set of hashed capability IDs. /// A hashed ID is created by the function `getHashedCapabilityId`. EnumerableSet.Bytes32Set private s_hashedCapabilityIds; + /// @notice Set of deprecated hashed capability IDs, /// A hashed ID is created by the function `getHashedCapabilityId`. /// /// Deprecated capabilities are skipped by the `getCapabilities` function. EnumerableSet.Bytes32Set private s_deprecatedHashedCapabilityIds; - /// @notice Set of removed Node Operator IDs - EnumerableSet.UintSet private s_removedNodeOperatorIds; - - /// @notice Set of removed DON IDs - EnumerableSet.UintSet private s_removedDONIds; - /// @notice Encoded node signer addresses EnumerableSet.Bytes32Set private s_nodeSigners; @@ -331,7 +354,7 @@ contract CapabilityRegistry is OwnerIsCreator, TypeAndVersionInterface { EnumerableSet.Bytes32Set private s_nodeP2PIds; /// @notice Mapping of node operators - mapping(uint256 nodeOperatorId => NodeOperator nodeOperator) private s_nodeOperators; + mapping(uint32 nodeOperatorId => NodeOperator nodeOperator) private s_nodeOperators; /// @notice Mapping of nodes mapping(bytes32 p2pId => Node node) private s_nodes; @@ -339,15 +362,15 @@ contract CapabilityRegistry is OwnerIsCreator, TypeAndVersionInterface { /// @notice Mapping of DON IDs to DONs mapping(uint32 donId => DON don) private s_dons; - /// @notice The latest node operator ID - // @dev Starting with 1 to avoid confusion with the zero value + /// @notice The next ID to assign a new node operator to + /// @dev Starting with 1 to avoid confusion with the zero value /// @dev No getter for this as this is an implementation detail - uint32 private s_nodeOperatorId = 1; + uint32 private s_nextNodeOperatorId = 1; - /// @notice The latest DON ID + /// @notice The next ID to assign a new DON to /// @dev Starting with 1 to avoid confusion with the zero value /// @dev No getter for this as this is an implementation detail - uint32 private s_donId = 1; + uint32 private s_nextDONId = 1; function typeAndVersion() external pure override returns (string memory) { return "CapabilityRegistry 1.0.0"; @@ -359,43 +382,47 @@ contract CapabilityRegistry is OwnerIsCreator, TypeAndVersionInterface { for (uint256 i; i < nodeOperators.length; ++i) { NodeOperator memory nodeOperator = nodeOperators[i]; if (nodeOperator.admin == address(0)) revert InvalidNodeOperatorAdmin(); - uint256 nodeOperatorId = s_nodeOperatorId; + uint32 nodeOperatorId = s_nextNodeOperatorId; s_nodeOperators[nodeOperatorId] = NodeOperator({admin: nodeOperator.admin, name: nodeOperator.name}); - ++s_nodeOperatorId; + ++s_nextNodeOperatorId; emit NodeOperatorAdded(nodeOperatorId, nodeOperator.admin, nodeOperator.name); } } /// @notice Removes a node operator /// @param nodeOperatorIds The IDs of the node operators to remove - function removeNodeOperators(uint256[] calldata nodeOperatorIds) external onlyOwner { - for (uint256 i; i < nodeOperatorIds.length; ++i) { - uint256 nodeOperatorId = nodeOperatorIds[i]; + function removeNodeOperators(uint32[] calldata nodeOperatorIds) external onlyOwner { + for (uint32 i; i < nodeOperatorIds.length; ++i) { + uint32 nodeOperatorId = nodeOperatorIds[i]; delete s_nodeOperators[nodeOperatorId]; - s_removedNodeOperatorIds.add(nodeOperatorId); emit NodeOperatorRemoved(nodeOperatorId); } } /// @notice Updates a node operator /// @param nodeOperatorIds The ID of the node operator being updated - function updateNodeOperators(uint256[] calldata nodeOperatorIds, NodeOperator[] calldata nodeOperators) external { + /// @param nodeOperators The updated node operator params + function updateNodeOperators(uint32[] calldata nodeOperatorIds, NodeOperator[] calldata nodeOperators) external { if (nodeOperatorIds.length != nodeOperators.length) revert LengthMismatch(nodeOperatorIds.length, nodeOperators.length); address owner = owner(); for (uint256 i; i < nodeOperatorIds.length; ++i) { - uint256 nodeOperatorId = nodeOperatorIds[i]; + uint32 nodeOperatorId = nodeOperatorIds[i]; + + NodeOperator storage currentNodeOperator = s_nodeOperators[nodeOperatorId]; + if (currentNodeOperator.admin == address(0)) revert NodeOperatorDoesNotExist(nodeOperatorId); + NodeOperator memory nodeOperator = nodeOperators[i]; if (nodeOperator.admin == address(0)) revert InvalidNodeOperatorAdmin(); - if (msg.sender != nodeOperator.admin && msg.sender != owner) revert AccessForbidden(); + if (msg.sender != nodeOperator.admin && msg.sender != owner) revert AccessForbidden(msg.sender); if ( - s_nodeOperators[nodeOperatorId].admin != nodeOperator.admin || - keccak256(abi.encode(s_nodeOperators[nodeOperatorId].name)) != keccak256(abi.encode(nodeOperator.name)) + currentNodeOperator.admin != nodeOperator.admin || + keccak256(abi.encode(currentNodeOperator.name)) != keccak256(abi.encode(nodeOperator.name)) ) { - s_nodeOperators[nodeOperatorId].admin = nodeOperator.admin; - s_nodeOperators[nodeOperatorId].name = nodeOperator.name; + currentNodeOperator.admin = nodeOperator.admin; + currentNodeOperator.name = nodeOperator.name; emit NodeOperatorUpdated(nodeOperatorId, nodeOperator.admin, nodeOperator.name); } } @@ -404,23 +431,28 @@ contract CapabilityRegistry is OwnerIsCreator, TypeAndVersionInterface { /// @notice Gets a node operator's data /// @param nodeOperatorId The ID of the node operator to query for /// @return NodeOperator The node operator data - function getNodeOperator(uint256 nodeOperatorId) external view returns (NodeOperator memory) { + function getNodeOperator(uint32 nodeOperatorId) external view returns (NodeOperator memory) { return s_nodeOperators[nodeOperatorId]; } /// @notice Gets all node operators /// @return NodeOperator[] All node operators function getNodeOperators() external view returns (NodeOperator[] memory) { - uint32 nodeOperatorId = s_nodeOperatorId; - /// Minus one to account for s_nodeOperatorId starting at index 1 - NodeOperator[] memory nodeOperators = new NodeOperator[](s_nodeOperatorId - s_removedNodeOperatorIds.length() - 1); + uint32 nodeOperatorId = s_nextNodeOperatorId; + /// Minus one to account for s_nextNodeOperatorId starting at index 1 + NodeOperator[] memory nodeOperators = new NodeOperator[](s_nextNodeOperatorId - 1); uint256 idx; - for (uint256 i = 1; i < nodeOperatorId; ++i) { - if (!s_removedNodeOperatorIds.contains(i)) { + for (uint32 i = 1; i < nodeOperatorId; ++i) { + if (s_nodeOperators[i].admin != address(0)) { nodeOperators[idx] = s_nodeOperators[i]; ++idx; } } + if (idx != s_nextNodeOperatorId - 1) { + assembly { + mstore(nodeOperators, idx) + } + } return nodeOperators; } @@ -428,33 +460,33 @@ contract CapabilityRegistry is OwnerIsCreator, TypeAndVersionInterface { /// avoid breaking changes when deprecating capabilities. /// @param nodes The nodes to add function addNodes(NodeInfo[] calldata nodes) external { + bool isOwner = msg.sender == owner(); for (uint256 i; i < nodes.length; ++i) { NodeInfo memory node = nodes[i]; - bool isOwner = msg.sender == owner(); - NodeOperator memory nodeOperator = s_nodeOperators[node.nodeOperatorId]; - if (!isOwner && msg.sender != nodeOperator.admin) revert AccessForbidden(); + if (nodeOperator.admin == address(0)) revert NodeOperatorDoesNotExist(node.nodeOperatorId); + if (!isOwner && msg.sender != nodeOperator.admin) revert AccessForbidden(msg.sender); - bool nodeExists = s_nodes[node.p2pId].signer != bytes32(""); - if (nodeExists || bytes32(node.p2pId) == bytes32("")) revert InvalidNodeP2PId(node.p2pId); + Node storage storedNode = s_nodes[node.p2pId]; + if (storedNode.signer != bytes32("") || bytes32(node.p2pId) == bytes32("")) revert InvalidNodeP2PId(node.p2pId); if (bytes32(node.signer) == bytes32("") || s_nodeSigners.contains(node.signer)) revert InvalidNodeSigner(); bytes32[] memory capabilityIds = node.hashedCapabilityIds; if (capabilityIds.length == 0) revert InvalidNodeCapabilities(capabilityIds); - ++s_nodes[node.p2pId].configCount; + ++storedNode.configCount; - uint32 capabilityConfigCount = s_nodes[node.p2pId].configCount; + uint32 capabilityConfigCount = storedNode.configCount; for (uint256 j; j < capabilityIds.length; ++j) { if (!s_hashedCapabilityIds.contains(capabilityIds[j])) revert InvalidNodeCapabilities(capabilityIds); - s_nodes[node.p2pId].supportedCapabilityIds[capabilityConfigCount].add(capabilityIds[j]); + storedNode.supportedHashedCapabilityIds[capabilityConfigCount].add(capabilityIds[j]); } - s_nodes[node.p2pId].nodeOperatorId = node.nodeOperatorId; - s_nodes[node.p2pId].p2pId = node.p2pId; - s_nodes[node.p2pId].signer = node.signer; + storedNode.nodeOperatorId = node.nodeOperatorId; + storedNode.p2pId = node.p2pId; + storedNode.signer = node.signer; s_nodeSigners.add(node.signer); s_nodeP2PIds.add(node.p2pId); emit NodeAdded(node.p2pId, node.nodeOperatorId, node.signer); @@ -469,14 +501,14 @@ contract CapabilityRegistry is OwnerIsCreator, TypeAndVersionInterface { for (uint256 i; i < removedNodeP2PIds.length; ++i) { bytes32 p2pId = removedNodeP2PIds[i]; - bool nodeExists = bytes32(s_nodes[p2pId].signer) != bytes32(""); - if (!nodeExists) revert InvalidNodeP2PId(p2pId); + Node storage node = s_nodes[p2pId]; - NodeOperator memory nodeOperator = s_nodeOperators[s_nodes[p2pId].nodeOperatorId]; + if (bytes32(node.signer) == bytes32("")) revert InvalidNodeP2PId(p2pId); + if (node.supportedDONIds.length() > 0) revert NodePartOfDON(p2pId); - if (!isOwner && msg.sender != nodeOperator.admin) revert AccessForbidden(); - s_nodeSigners.remove(s_nodes[p2pId].signer); - s_nodeP2PIds.remove(s_nodes[p2pId].p2pId); + if (!isOwner && msg.sender != s_nodeOperators[node.nodeOperatorId].admin) revert AccessForbidden(msg.sender); + s_nodeSigners.remove(node.signer); + s_nodeP2PIds.remove(node.p2pId); delete s_nodes[p2pId]; emit NodeRemoved(p2pId); } @@ -486,41 +518,39 @@ contract CapabilityRegistry is OwnerIsCreator, TypeAndVersionInterface { /// and reconfigure its supported capabilities /// @param nodes The nodes to update function updateNodes(NodeInfo[] calldata nodes) external { + bool isOwner = msg.sender == owner(); for (uint256 i; i < nodes.length; ++i) { NodeInfo memory node = nodes[i]; - bool isOwner = msg.sender == owner(); - NodeOperator memory nodeOperator = s_nodeOperators[node.nodeOperatorId]; - if (!isOwner && msg.sender != nodeOperator.admin) revert AccessForbidden(); + if (!isOwner && msg.sender != nodeOperator.admin) revert AccessForbidden(msg.sender); - bool nodeExists = s_nodes[node.p2pId].signer != bytes32(""); - if (!nodeExists) revert InvalidNodeP2PId(node.p2pId); + Node storage storedNode = s_nodes[node.p2pId]; + if (storedNode.signer == bytes32("")) revert InvalidNodeP2PId(node.p2pId); if ( - bytes32(node.signer) == bytes32("") || - (s_nodes[node.p2pId].signer != node.signer && s_nodeSigners.contains(node.signer)) + bytes32(node.signer) == bytes32("") || (storedNode.signer != node.signer && s_nodeSigners.contains(node.signer)) ) revert InvalidNodeSigner(); - bytes32[] memory supportedCapabilityIds = node.hashedCapabilityIds; - if (supportedCapabilityIds.length == 0) revert InvalidNodeCapabilities(supportedCapabilityIds); + bytes32[] memory supportedHashedCapabilityIds = node.hashedCapabilityIds; + if (supportedHashedCapabilityIds.length == 0) revert InvalidNodeCapabilities(supportedHashedCapabilityIds); - s_nodes[node.p2pId].configCount++; - uint32 capabilityConfigCount = s_nodes[node.p2pId].configCount; - for (uint256 j; j < supportedCapabilityIds.length; ++j) { - if (!s_hashedCapabilityIds.contains(supportedCapabilityIds[j])) - revert InvalidNodeCapabilities(supportedCapabilityIds); - s_nodes[node.p2pId].supportedCapabilityIds[capabilityConfigCount].add(supportedCapabilityIds[j]); + storedNode.configCount++; + uint32 capabilityConfigCount = storedNode.configCount; + for (uint256 j; j < supportedHashedCapabilityIds.length; ++j) { + if (!s_hashedCapabilityIds.contains(supportedHashedCapabilityIds[j])) + revert InvalidNodeCapabilities(supportedHashedCapabilityIds); + storedNode.supportedHashedCapabilityIds[capabilityConfigCount].add(supportedHashedCapabilityIds[j]); } - s_nodes[node.p2pId].nodeOperatorId = node.nodeOperatorId; - s_nodes[node.p2pId].p2pId = node.p2pId; + storedNode.nodeOperatorId = node.nodeOperatorId; + storedNode.p2pId = node.p2pId; - bytes32 previousSigner = s_nodes[node.p2pId].signer; + bytes32 previousSigner = storedNode.signer; - if (s_nodes[node.p2pId].signer != node.signer) { + if (storedNode.signer != node.signer) { s_nodeSigners.remove(previousSigner); - s_nodes[node.p2pId].signer = node.signer; + storedNode.signer = node.signer; s_nodeSigners.add(node.signer); } emit NodeUpdated(node.p2pId, node.nodeOperatorId, node.signer); @@ -531,8 +561,16 @@ contract CapabilityRegistry is OwnerIsCreator, TypeAndVersionInterface { /// @param p2pId The P2P ID of the node to query for /// @return NodeInfo The node data /// @return configCount The number of times the node has been configured - function getNode(bytes32 p2pId) external view returns (NodeInfo memory, uint32 configCount) { - return _getNode(p2pId); + function getNode(bytes32 p2pId) public view returns (NodeInfo memory, uint32 configCount) { + return ( + NodeInfo({ + nodeOperatorId: s_nodes[p2pId].nodeOperatorId, + p2pId: s_nodes[p2pId].p2pId, + signer: s_nodes[p2pId].signer, + hashedCapabilityIds: s_nodes[p2pId].supportedHashedCapabilityIds[s_nodes[p2pId].configCount].values() + }), + s_nodes[p2pId].configCount + ); } /// @notice Gets all nodes @@ -544,47 +582,40 @@ contract CapabilityRegistry is OwnerIsCreator, TypeAndVersionInterface { uint32[] memory configCounts = new uint32[](p2pIds.length); for (uint256 i; i < p2pIds.length; ++i) { - bytes32 p2pId = p2pIds[i]; - (NodeInfo memory node, uint32 configCount) = _getNode(p2pId); - nodeInfo[i] = node; - configCounts[i] = configCount; + (nodeInfo[i], configCounts[i]) = getNode(p2pIds[i]); } return (nodeInfo, configCounts); } /// @notice Adds a new capability to the capability registry - /// @param capability The capability being added - function addCapability(Capability calldata capability) external onlyOwner { - bytes32 hashedId = getHashedCapabilityId(capability.labelledName, capability.version); - if (s_hashedCapabilityIds.contains(hashedId)) revert CapabilityAlreadyExists(); - - if (capability.configurationContract != address(0)) { - if ( - capability.configurationContract.code.length == 0 || - !IERC165(capability.configurationContract).supportsInterface( - ICapabilityConfiguration.getCapabilityConfiguration.selector ^ - ICapabilityConfiguration.beforeCapabilityConfigSet.selector - ) - ) revert InvalidCapabilityConfigurationContractInterface(capability.configurationContract); + /// @param capabilities The capabilities being added + /// @dev There is no function to update capabilities as this would require + /// nodes to trust that the capabilities they support are not updated by the + /// admin + function addCapabilities(Capability[] calldata capabilities) external onlyOwner { + for (uint256 i; i < capabilities.length; ++i) { + Capability memory capability = capabilities[i]; + bytes32 hashedCapabilityId = getHashedCapabilityId(capability.labelledName, capability.version); + if (!s_hashedCapabilityIds.add(hashedCapabilityId)) revert CapabilityAlreadyExists(hashedCapabilityId); + _setCapability(hashedCapabilityId, capability); } - - s_hashedCapabilityIds.add(hashedId); - s_capabilities[hashedId] = capability; - - emit CapabilityAdded(hashedId); } - /// @notice Deprecates a capability by adding it to the deprecated list - /// @param hashedCapabilityId The ID of the capability to deprecate - function deprecateCapability(bytes32 hashedCapabilityId) external onlyOwner { - if (!s_hashedCapabilityIds.contains(hashedCapabilityId)) revert CapabilityDoesNotExist(hashedCapabilityId); - if (s_deprecatedHashedCapabilityIds.contains(hashedCapabilityId)) revert CapabilityIsDeprecated(hashedCapabilityId); + /// @notice Deprecates a capability + /// @param hashedCapabilityIds[] The IDs of the capabilities to deprecate + function deprecateCapabilities(bytes32[] calldata hashedCapabilityIds) external onlyOwner { + for (uint256 i; i < hashedCapabilityIds.length; ++i) { + bytes32 hashedCapabilityId = hashedCapabilityIds[i]; + if (!s_hashedCapabilityIds.contains(hashedCapabilityId)) revert CapabilityDoesNotExist(hashedCapabilityId); + if (!s_deprecatedHashedCapabilityIds.add(hashedCapabilityId)) revert CapabilityIsDeprecated(hashedCapabilityId); - s_deprecatedHashedCapabilityIds.add(hashedCapabilityId); - emit CapabilityDeprecated(hashedCapabilityId); + delete s_capabilities[hashedCapabilityId]; + emit CapabilityDeprecated(hashedCapabilityId); + } } - /// @notice This function returns a Capability by its hashed ID. Use `getHashedCapabilityId` to get the hashed ID. + /// @notice Returns a Capability by its hashed ID. + /// @dev Use `getHashedCapabilityId` to get the hashed ID. function getCapability(bytes32 hashedId) external view returns (Capability memory) { return s_capabilities[hashedId]; } @@ -623,7 +654,7 @@ contract CapabilityRegistry is OwnerIsCreator, TypeAndVersionInterface { /// @param version The capability's version number /// @return bytes32 A unique identifier for the capability /// @dev The hash of the encoded labelledName and version - function getHashedCapabilityId(string calldata labelledName, string calldata version) public pure returns (bytes32) { + function getHashedCapabilityId(string memory labelledName, string memory version) public pure returns (bytes32) { return keccak256(abi.encode(labelledName, version)); } @@ -647,7 +678,7 @@ contract CapabilityRegistry is OwnerIsCreator, TypeAndVersionInterface { bool acceptsWorkflows, uint32 f ) external onlyOwner { - uint32 id = s_donId; + uint32 id = s_nextDONId++; s_dons[id].id = id; _setDONConfig( @@ -655,7 +686,6 @@ contract CapabilityRegistry is OwnerIsCreator, TypeAndVersionInterface { capabilityConfigurations, DONParams({id: id, configCount: 1, isPublic: isPublic, acceptsWorkflows: acceptsWorkflows, f: f}) ); - ++s_donId; } /// @notice Updates a DON's configuration. This allows @@ -690,10 +720,16 @@ contract CapabilityRegistry is OwnerIsCreator, TypeAndVersionInterface { uint32 donId = donIds[i]; DON storage don = s_dons[donId]; + uint32 configCount = don.configCount; + EnumerableSet.Bytes32Set storage nodeP2PIds = don.config[configCount].nodes; + + for (uint256 j; j < nodeP2PIds.length(); ++j) { + s_nodes[nodeP2PIds.at(j)].supportedDONIds.remove(donId); + } + // DON config count starts at index 1 if (don.configCount == 0) revert DONDoesNotExist(donId); delete s_dons[donId]; - s_removedDONIds.add(donId); emit ConfigSet(donId, 0); } } @@ -708,27 +744,42 @@ contract CapabilityRegistry is OwnerIsCreator, TypeAndVersionInterface { /// @notice Returns the list of configured DONs /// @return DONInfo[] The list of configured DONs function getDONs() external view returns (DONInfo[] memory) { - /// Minus one to account for s_donId starting at index 1 - uint256 donId = s_donId; - DONInfo[] memory dons = new DONInfo[](s_donId - s_removedDONIds.length() - 1); + /// Minus one to account for s_nextDONId starting at index 1 + uint32 donId = s_nextDONId; + DONInfo[] memory dons = new DONInfo[](donId - 1); uint256 idx; /// for (uint32 i = 1; i < donId; ++i) { - if (!s_removedDONIds.contains(i)) { + if (s_dons[i].id != 0) { dons[idx] = _getDON(i); ++idx; } } + if (idx != donId - 1) { + assembly { + mstore(dons, idx) + } + } return dons; } /// @notice Returns the DON specific configuration for a capability /// @param donId The DON's ID /// @param capabilityId The Capability ID - /// @return bytes The DON specific configuration for the capability - function getDONCapabilityConfig(uint32 donId, bytes32 capabilityId) external view returns (bytes memory) { + /// @return bytes The DON specific configuration for the capability stored on the capability registry + /// @return bytes The DON specific configuration stored on the capability's configuration contract + function getCapabilityConfigs(uint32 donId, bytes32 capabilityId) external view returns (bytes memory, bytes memory) { uint32 configCount = s_dons[donId].configCount; - return s_dons[donId].config[configCount].capabilityConfigs[capabilityId]; + + bytes memory donCapabilityConfig = s_dons[donId].config[configCount].capabilityConfigs[capabilityId]; + bytes memory globalCapabilityConfig; + + if (s_capabilities[capabilityId].configurationContract != address(0)) { + globalCapabilityConfig = ICapabilityConfiguration(s_capabilities[capabilityId].configurationContract) + .getCapabilityConfiguration(donId); + } + + return (donCapabilityConfig, globalCapabilityConfig); } /// @notice Sets the configuration for a DON @@ -747,9 +798,28 @@ contract CapabilityRegistry is OwnerIsCreator, TypeAndVersionInterface { // as not all DONs will run OCR instances. if (donParams.f == 0 || donParams.f + 1 > nodes.length) revert InvalidFaultTolerance(donParams.f, nodes.length); + // Skip removing supported DON Ids from previously configured nodes in DON if + // we are adding the DON for the first time + if (donParams.configCount > 1) { + DONCapabilityConfig storage prevDONCapabilityConfig = s_dons[donParams.id].config[donParams.configCount - 1]; + + // We acknowledge that this may result in an out of gas error if the number of configured + // nodes is large. This is mitigated by ensuring that there will not be a large number + // of nodes configured to a DON. + // We also do not remove the nodes from the previous DON capability config. This is not + // needed as the previous config will be overwritten by storing the latest config + // at configCount + for (uint256 i; i < prevDONCapabilityConfig.nodes.length(); ++i) { + s_nodes[prevDONCapabilityConfig.nodes.at(i)].supportedDONIds.remove(donParams.id); + } + } + for (uint256 i; i < nodes.length; ++i) { - if (donCapabilityConfig.nodes.contains(nodes[i])) revert DuplicateDONNode(donParams.id, nodes[i]); - donCapabilityConfig.nodes.add(nodes[i]); + if (!donCapabilityConfig.nodes.add(nodes[i])) revert DuplicateDONNode(donParams.id, nodes[i]); + + /// Fine to add a duplicate DON ID to the set of supported DON IDs again as the set + /// will only store unique DON IDs + s_nodes[nodes[i]].supportedDONIds.add(donParams.id); } for (uint256 i; i < capabilityConfigurations.length; ++i) { @@ -765,7 +835,9 @@ contract CapabilityRegistry is OwnerIsCreator, TypeAndVersionInterface { for (uint256 j; j < nodes.length; ++j) { if ( - !s_nodes[nodes[j]].supportedCapabilityIds[s_nodes[nodes[j]].configCount].contains(configuration.capabilityId) + !s_nodes[nodes[j]].supportedHashedCapabilityIds[s_nodes[nodes[j]].configCount].contains( + configuration.capabilityId + ) ) revert NodeDoesNotSupportCapability(nodes[j], configuration.capabilityId); } @@ -811,20 +883,25 @@ contract CapabilityRegistry is OwnerIsCreator, TypeAndVersionInterface { } } - /// @notice Gets a node's data - /// @param p2pId The P2P ID of the node to query for - /// @return NodeInfo The node data - /// @return configCount The number of times the node has been configured - function _getNode(bytes32 p2pId) internal view returns (NodeInfo memory, uint32 configCount) { - return ( - NodeInfo({ - nodeOperatorId: s_nodes[p2pId].nodeOperatorId, - p2pId: s_nodes[p2pId].p2pId, - signer: s_nodes[p2pId].signer, - hashedCapabilityIds: s_nodes[p2pId].supportedCapabilityIds[s_nodes[p2pId].configCount].values() - }), - s_nodes[p2pId].configCount - ); + /// @notice Sets a capability's data + /// @param hashedCapabilityId The ID of the capability being set + /// @param capability The capability's data + function _setCapability(bytes32 hashedCapabilityId, Capability memory capability) internal { + if (capability.configurationContract != address(0)) { + /// Check that the configuration contract being assigned + /// correctly supports the ICapabilityConfiguration interface + /// by implementing both getCapabilityConfiguration and + /// beforeCapabilityConfigSet + if ( + capability.configurationContract.code.length == 0 || + !IERC165(capability.configurationContract).supportsInterface( + ICapabilityConfiguration.getCapabilityConfiguration.selector ^ + ICapabilityConfiguration.beforeCapabilityConfigSet.selector + ) + ) revert InvalidCapabilityConfigurationContractInterface(capability.configurationContract); + } + s_capabilities[hashedCapabilityId] = capability; + emit CapabilityConfigured(hashedCapabilityId); } /// @notice Gets DON's data diff --git a/contracts/src/v0.8/keystone/interfaces/ICapabilityConfiguration.sol b/contracts/src/v0.8/keystone/interfaces/ICapabilityConfiguration.sol index 4eb2c8197e3..4deaaa4443e 100644 --- a/contracts/src/v0.8/keystone/interfaces/ICapabilityConfiguration.sol +++ b/contracts/src/v0.8/keystone/interfaces/ICapabilityConfiguration.sol @@ -18,7 +18,7 @@ interface ICapabilityConfiguration { /// situation where configuration size grows too large. /// @param donId The DON instance ID. These are stored in the CapabilityRegistry. /// @return configuration DON's configuration for the capability. - function getCapabilityConfiguration(uint256 donId) external view returns (bytes memory configuration); + function getCapabilityConfiguration(uint32 donId) external view returns (bytes memory configuration); /// @notice Called by the registry prior to the config being set for a particular DON. /// @param nodes The nodes that the configuration is being set for. diff --git a/contracts/src/v0.8/keystone/test/BaseTest.t.sol b/contracts/src/v0.8/keystone/test/BaseTest.t.sol index 84cce57dc34..3df0b6ca7c7 100644 --- a/contracts/src/v0.8/keystone/test/BaseTest.t.sol +++ b/contracts/src/v0.8/keystone/test/BaseTest.t.sol @@ -47,9 +47,10 @@ contract BaseTest is Test, Constants { } function _getNodeOperators() internal view returns (CapabilityRegistry.NodeOperator[] memory) { - CapabilityRegistry.NodeOperator[] memory nodeOperators = new CapabilityRegistry.NodeOperator[](2); + CapabilityRegistry.NodeOperator[] memory nodeOperators = new CapabilityRegistry.NodeOperator[](3); nodeOperators[0] = CapabilityRegistry.NodeOperator({admin: NODE_OPERATOR_ONE_ADMIN, name: NODE_OPERATOR_ONE_NAME}); nodeOperators[1] = CapabilityRegistry.NodeOperator({admin: NODE_OPERATOR_TWO_ADMIN, name: NODE_OPERATOR_TWO_NAME}); + nodeOperators[2] = CapabilityRegistry.NodeOperator({admin: NODE_OPERATOR_THREE, name: NODE_OPERATOR_THREE_NAME}); return nodeOperators; } } diff --git a/contracts/src/v0.8/keystone/test/CapabilityRegistry_AddCapabilitiesTest.t.sol b/contracts/src/v0.8/keystone/test/CapabilityRegistry_AddCapabilitiesTest.t.sol new file mode 100644 index 00000000000..6c6b164234f --- /dev/null +++ b/contracts/src/v0.8/keystone/test/CapabilityRegistry_AddCapabilitiesTest.t.sol @@ -0,0 +1,112 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.19; + +import {BaseTest} from "./BaseTest.t.sol"; +import {CapabilityConfigurationContract} from "./mocks/CapabilityConfigurationContract.sol"; +import {ICapabilityConfiguration} from "../interfaces/ICapabilityConfiguration.sol"; +import {CapabilityRegistry} from "../CapabilityRegistry.sol"; +import {IERC165} from "../../vendor/openzeppelin-solidity/v4.8.3/contracts/interfaces/IERC165.sol"; + +contract CapabilityRegistry_AddCapabilitiesTest is BaseTest { + event CapabilityConfigured(bytes32 indexed hashedCapabilityId); + + function test_RevertWhen_CalledByNonAdmin() public { + changePrank(STRANGER); + + CapabilityRegistry.Capability[] memory capabilities = new CapabilityRegistry.Capability[](1); + capabilities[0] = s_basicCapability; + + vm.expectRevert("Only callable by owner"); + s_capabilityRegistry.addCapabilities(capabilities); + } + + function test_RevertWhen_CapabilityExists() public { + CapabilityRegistry.Capability[] memory capabilities = new CapabilityRegistry.Capability[](1); + capabilities[0] = s_basicCapability; + + // Successfully add the capability the first time + s_capabilityRegistry.addCapabilities(capabilities); + + // Try to add the same capability again + vm.expectRevert( + abi.encodeWithSelector(CapabilityRegistry.CapabilityAlreadyExists.selector, s_basicHashedCapabilityId) + ); + s_capabilityRegistry.addCapabilities(capabilities); + } + + function test_RevertWhen_ConfigurationContractNotDeployed() public { + address nonExistentContract = address(1); + s_capabilityWithConfigurationContract.configurationContract = nonExistentContract; + + CapabilityRegistry.Capability[] memory capabilities = new CapabilityRegistry.Capability[](1); + capabilities[0] = s_capabilityWithConfigurationContract; + + vm.expectRevert( + abi.encodeWithSelector( + CapabilityRegistry.InvalidCapabilityConfigurationContractInterface.selector, + nonExistentContract + ) + ); + s_capabilityRegistry.addCapabilities(capabilities); + } + + function test_RevertWhen_ConfigurationContractDoesNotMatchInterface() public { + address contractWithoutERC165 = address(9999); + vm.mockCall( + contractWithoutERC165, + abi.encodeWithSelector( + IERC165.supportsInterface.selector, + ICapabilityConfiguration.getCapabilityConfiguration.selector ^ + ICapabilityConfiguration.beforeCapabilityConfigSet.selector + ), + abi.encode(false) + ); + s_capabilityWithConfigurationContract.configurationContract = contractWithoutERC165; + CapabilityRegistry.Capability[] memory capabilities = new CapabilityRegistry.Capability[](1); + capabilities[0] = s_capabilityWithConfigurationContract; + + vm.expectRevert( + abi.encodeWithSelector( + CapabilityRegistry.InvalidCapabilityConfigurationContractInterface.selector, + contractWithoutERC165 + ) + ); + s_capabilityRegistry.addCapabilities(capabilities); + } + + function test_AddCapability_NoConfigurationContract() public { + CapabilityRegistry.Capability[] memory capabilities = new CapabilityRegistry.Capability[](1); + capabilities[0] = s_basicCapability; + + bytes32 hashedCapabilityId = s_capabilityRegistry.getHashedCapabilityId("data-streams-reports", "1.0.0"); + vm.expectEmit(true, true, true, true, address(s_capabilityRegistry)); + emit CapabilityConfigured(hashedCapabilityId); + s_capabilityRegistry.addCapabilities(capabilities); + CapabilityRegistry.Capability memory storedCapability = s_capabilityRegistry.getCapability(hashedCapabilityId); + + assertEq(storedCapability.labelledName, s_basicCapability.labelledName); + assertEq(storedCapability.version, s_basicCapability.version); + assertEq(uint256(storedCapability.responseType), uint256(s_basicCapability.responseType)); + assertEq(storedCapability.configurationContract, s_basicCapability.configurationContract); + } + + function test_AddCapability_WithConfiguration() public { + CapabilityRegistry.Capability[] memory capabilities = new CapabilityRegistry.Capability[](1); + capabilities[0] = s_capabilityWithConfigurationContract; + + bytes32 hashedCapabilityId = s_capabilityRegistry.getHashedCapabilityId( + s_capabilityWithConfigurationContract.labelledName, + s_capabilityWithConfigurationContract.version + ); + vm.expectEmit(true, true, true, true, address(s_capabilityRegistry)); + emit CapabilityConfigured(hashedCapabilityId); + s_capabilityRegistry.addCapabilities(capabilities); + + CapabilityRegistry.Capability memory storedCapability = s_capabilityRegistry.getCapability(hashedCapabilityId); + + assertEq(storedCapability.labelledName, s_capabilityWithConfigurationContract.labelledName); + assertEq(storedCapability.version, s_capabilityWithConfigurationContract.version); + assertEq(uint256(storedCapability.responseType), uint256(s_capabilityWithConfigurationContract.responseType)); + assertEq(storedCapability.configurationContract, s_capabilityWithConfigurationContract.configurationContract); + } +} diff --git a/contracts/src/v0.8/keystone/test/CapabilityRegistry_AddCapabilityTest.t.sol b/contracts/src/v0.8/keystone/test/CapabilityRegistry_AddCapabilityTest.t.sol deleted file mode 100644 index aeb6cc69b11..00000000000 --- a/contracts/src/v0.8/keystone/test/CapabilityRegistry_AddCapabilityTest.t.sol +++ /dev/null @@ -1,73 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.19; - -import {BaseTest} from "./BaseTest.t.sol"; -import {CapabilityConfigurationContract} from "./mocks/CapabilityConfigurationContract.sol"; - -import {CapabilityRegistry} from "../CapabilityRegistry.sol"; - -contract CapabilityRegistry_AddCapabilityTest is BaseTest { - function test_RevertWhen_CalledByNonAdmin() public { - changePrank(STRANGER); - - vm.expectRevert("Only callable by owner"); - s_capabilityRegistry.addCapability(s_basicCapability); - } - - function test_RevertWhen_CapabilityExists() public { - // Successfully add the capability the first time - s_capabilityRegistry.addCapability(s_basicCapability); - - // Try to add the same capability again - vm.expectRevert(CapabilityRegistry.CapabilityAlreadyExists.selector); - s_capabilityRegistry.addCapability(s_basicCapability); - } - - function test_RevertWhen_ConfigurationContractNotDeployed() public { - address nonExistentContract = address(1); - s_capabilityWithConfigurationContract.configurationContract = nonExistentContract; - - vm.expectRevert( - abi.encodeWithSelector( - CapabilityRegistry.InvalidCapabilityConfigurationContractInterface.selector, - nonExistentContract - ) - ); - s_capabilityRegistry.addCapability(s_capabilityWithConfigurationContract); - } - - function test_RevertWhen_ConfigurationContractDoesNotMatchInterface() public { - CapabilityRegistry contractWithoutERC165 = new CapabilityRegistry(); - - vm.expectRevert(); - s_capabilityWithConfigurationContract.configurationContract = address(contractWithoutERC165); - s_capabilityRegistry.addCapability(s_capabilityWithConfigurationContract); - } - - function test_AddCapability_NoConfigurationContract() public { - s_capabilityRegistry.addCapability(s_basicCapability); - - bytes32 hashedCapabilityId = s_capabilityRegistry.getHashedCapabilityId("data-streams-reports", "1.0.0"); - CapabilityRegistry.Capability memory storedCapability = s_capabilityRegistry.getCapability(hashedCapabilityId); - - assertEq(storedCapability.labelledName, s_basicCapability.labelledName); - assertEq(storedCapability.version, s_basicCapability.version); - assertEq(uint256(storedCapability.responseType), uint256(s_basicCapability.responseType)); - assertEq(storedCapability.configurationContract, s_basicCapability.configurationContract); - } - - function test_AddCapability_WithConfiguration() public { - s_capabilityRegistry.addCapability(s_capabilityWithConfigurationContract); - - bytes32 hashedCapabilityId = s_capabilityRegistry.getHashedCapabilityId( - s_capabilityWithConfigurationContract.labelledName, - s_capabilityWithConfigurationContract.version - ); - CapabilityRegistry.Capability memory storedCapability = s_capabilityRegistry.getCapability(hashedCapabilityId); - - assertEq(storedCapability.labelledName, s_capabilityWithConfigurationContract.labelledName); - assertEq(storedCapability.version, s_capabilityWithConfigurationContract.version); - assertEq(uint256(storedCapability.responseType), uint256(s_capabilityWithConfigurationContract.responseType)); - assertEq(storedCapability.configurationContract, s_capabilityWithConfigurationContract.configurationContract); - } -} diff --git a/contracts/src/v0.8/keystone/test/CapabilityRegistry_AddDONTest.t.sol b/contracts/src/v0.8/keystone/test/CapabilityRegistry_AddDONTest.t.sol index ad101131a93..f9768f7105c 100644 --- a/contracts/src/v0.8/keystone/test/CapabilityRegistry_AddDONTest.t.sol +++ b/contracts/src/v0.8/keystone/test/CapabilityRegistry_AddDONTest.t.sol @@ -10,10 +10,12 @@ contract CapabilityRegistry_AddDONTest is BaseTest { function setUp() public override { BaseTest.setUp(); + CapabilityRegistry.Capability[] memory capabilities = new CapabilityRegistry.Capability[](2); + capabilities[0] = s_basicCapability; + capabilities[1] = s_capabilityWithConfigurationContract; s_capabilityRegistry.addNodeOperators(_getNodeOperators()); - s_capabilityRegistry.addCapability(s_basicCapability); - s_capabilityRegistry.addCapability(s_capabilityWithConfigurationContract); + s_capabilityRegistry.addCapabilities(capabilities); CapabilityRegistry.NodeInfo[] memory nodes = new CapabilityRegistry.NodeInfo[](3); bytes32[] memory capabilityIds = new bytes32[](2); @@ -138,7 +140,9 @@ contract CapabilityRegistry_AddDONTest is BaseTest { function test_RevertWhen_DeprecatedCapabilityAdded() public { bytes32 capabilityId = s_basicHashedCapabilityId; - s_capabilityRegistry.deprecateCapability(capabilityId); + bytes32[] memory deprecatedCapabilities = new bytes32[](1); + deprecatedCapabilities[0] = capabilityId; + s_capabilityRegistry.deprecateCapabilities(deprecatedCapabilities); bytes32[] memory nodes = new bytes32[](2); nodes[0] = P2P_ID; @@ -207,7 +211,16 @@ contract CapabilityRegistry_AddDONTest is BaseTest { assertEq(donInfo.isPublic, true); assertEq(donInfo.capabilityConfigurations.length, capabilityConfigs.length); assertEq(donInfo.capabilityConfigurations[0].capabilityId, s_basicHashedCapabilityId); - assertEq(s_capabilityRegistry.getDONCapabilityConfig(DON_ID, s_basicHashedCapabilityId), BASIC_CAPABILITY_CONFIG); + + (bytes memory capabilityRegistryDONConfig, bytes memory capabilityConfigContractConfig) = s_capabilityRegistry + .getCapabilityConfigs(DON_ID, s_basicHashedCapabilityId); + assertEq(capabilityRegistryDONConfig, BASIC_CAPABILITY_CONFIG); + assertEq(capabilityConfigContractConfig, bytes("")); + + (bytes memory capabilityRegistryDONConfigTwo, bytes memory capabilityConfigContractConfigTwo) = s_capabilityRegistry + .getCapabilityConfigs(DON_ID, s_capabilityWithConfigurationContractId); + assertEq(capabilityRegistryDONConfigTwo, CONFIG_CAPABILITY_CONFIG); + assertEq(capabilityConfigContractConfigTwo, CONFIG_CAPABILITY_CONFIG); assertEq(donInfo.nodeP2PIds.length, nodes.length); assertEq(donInfo.nodeP2PIds[0], P2P_ID); diff --git a/contracts/src/v0.8/keystone/test/CapabilityRegistry_AddNodeOperatorsTest.t.sol b/contracts/src/v0.8/keystone/test/CapabilityRegistry_AddNodeOperatorsTest.t.sol index d9daaaa4c2b..6fa799bd378 100644 --- a/contracts/src/v0.8/keystone/test/CapabilityRegistry_AddNodeOperatorsTest.t.sol +++ b/contracts/src/v0.8/keystone/test/CapabilityRegistry_AddNodeOperatorsTest.t.sol @@ -5,7 +5,7 @@ import {BaseTest} from "./BaseTest.t.sol"; import {CapabilityRegistry} from "../CapabilityRegistry.sol"; contract CapabilityRegistry_AddNodeOperatorsTest is BaseTest { - event NodeOperatorAdded(uint256 nodeOperatorId, address indexed admin, string name); + event NodeOperatorAdded(uint32 indexed nodeOperatorId, address indexed admin, string name); function test_RevertWhen_CalledByNonAdmin() public { changePrank(STRANGER); diff --git a/contracts/src/v0.8/keystone/test/CapabilityRegistry_AddNodesTest.t.sol b/contracts/src/v0.8/keystone/test/CapabilityRegistry_AddNodesTest.t.sol index 5899dfa7b84..941712edb15 100644 --- a/contracts/src/v0.8/keystone/test/CapabilityRegistry_AddNodesTest.t.sol +++ b/contracts/src/v0.8/keystone/test/CapabilityRegistry_AddNodesTest.t.sol @@ -5,14 +5,17 @@ import {BaseTest} from "./BaseTest.t.sol"; import {CapabilityRegistry} from "../CapabilityRegistry.sol"; contract CapabilityRegistry_AddNodesTest is BaseTest { - event NodeAdded(bytes32 p2pId, uint256 nodeOperatorId, bytes32 signer); + event NodeAdded(bytes32 p2pId, uint32 indexed nodeOperatorId, bytes32 signer); function setUp() public override { BaseTest.setUp(); + CapabilityRegistry.Capability[] memory capabilities = new CapabilityRegistry.Capability[](2); + capabilities[0] = s_basicCapability; + capabilities[1] = s_capabilityWithConfigurationContract; + changePrank(ADMIN); s_capabilityRegistry.addNodeOperators(_getNodeOperators()); - s_capabilityRegistry.addCapability(s_basicCapability); - s_capabilityRegistry.addCapability(s_capabilityWithConfigurationContract); + s_capabilityRegistry.addCapabilities(capabilities); } function test_RevertWhen_CalledByNonNodeOperatorAdminAndNonOwner() public { @@ -29,7 +32,29 @@ contract CapabilityRegistry_AddNodesTest is BaseTest { hashedCapabilityIds: hashedCapabilityIds }); - vm.expectRevert(CapabilityRegistry.AccessForbidden.selector); + vm.expectRevert(abi.encodeWithSelector(CapabilityRegistry.AccessForbidden.selector, STRANGER)); + s_capabilityRegistry.addNodes(nodes); + } + + function test_RevertWhen_AddingNodeWithInvalidNodeOperator() public { + changePrank(ADMIN); + CapabilityRegistry.NodeInfo[] memory nodes = new CapabilityRegistry.NodeInfo[](1); + + bytes32[] memory hashedCapabilityIds = new bytes32[](1); + hashedCapabilityIds[0] = s_basicHashedCapabilityId; + + uint32 invalidNodeOperatorId = 10000; + + nodes[0] = CapabilityRegistry.NodeInfo({ + nodeOperatorId: invalidNodeOperatorId, // Invalid NOP + p2pId: P2P_ID, + signer: NODE_OPERATOR_ONE_SIGNER_ADDRESS, + hashedCapabilityIds: hashedCapabilityIds + }); + + vm.expectRevert( + abi.encodeWithSelector(CapabilityRegistry.NodeOperatorDoesNotExist.selector, invalidNodeOperatorId) + ); s_capabilityRegistry.addNodes(nodes); } diff --git a/contracts/src/v0.8/keystone/test/CapabilityRegistry_DeprecateCapability.t.sol b/contracts/src/v0.8/keystone/test/CapabilityRegistry_DeprecateCapabilitiesTest.t.sol similarity index 56% rename from contracts/src/v0.8/keystone/test/CapabilityRegistry_DeprecateCapability.t.sol rename to contracts/src/v0.8/keystone/test/CapabilityRegistry_DeprecateCapabilitiesTest.t.sol index 0ae5507de45..74c66f8f580 100644 --- a/contracts/src/v0.8/keystone/test/CapabilityRegistry_DeprecateCapability.t.sol +++ b/contracts/src/v0.8/keystone/test/CapabilityRegistry_DeprecateCapabilitiesTest.t.sol @@ -2,17 +2,18 @@ pragma solidity ^0.8.19; import {BaseTest} from "./BaseTest.t.sol"; - import {CapabilityRegistry} from "../CapabilityRegistry.sol"; -contract CapabilityRegistry_AddCapabilityTest is BaseTest { +contract CapabilityRegistry_DeprecateCapabilitiesTest is BaseTest { event CapabilityDeprecated(bytes32 indexed hashedCapabilityId); function setUp() public override { BaseTest.setUp(); + CapabilityRegistry.Capability[] memory capabilities = new CapabilityRegistry.Capability[](2); + capabilities[0] = s_basicCapability; + capabilities[1] = s_capabilityWithConfigurationContract; - s_capabilityRegistry.addCapability(s_basicCapability); - s_capabilityRegistry.addCapability(s_capabilityWithConfigurationContract); + s_capabilityRegistry.addCapabilities(capabilities); } function test_RevertWhen_CalledByNonAdmin() public { @@ -22,15 +23,21 @@ contract CapabilityRegistry_AddCapabilityTest is BaseTest { s_basicCapability.version ); + bytes32[] memory deprecatedCapabilities = new bytes32[](1); + deprecatedCapabilities[0] = hashedCapabilityId; + vm.expectRevert("Only callable by owner"); - s_capabilityRegistry.deprecateCapability(hashedCapabilityId); + s_capabilityRegistry.deprecateCapabilities(deprecatedCapabilities); } function test_RevertWhen_CapabilityDoesNotExist() public { + bytes32[] memory deprecatedCapabilities = new bytes32[](1); + deprecatedCapabilities[0] = s_nonExistentHashedCapabilityId; + vm.expectRevert( abi.encodeWithSelector(CapabilityRegistry.CapabilityDoesNotExist.selector, s_nonExistentHashedCapabilityId) ); - s_capabilityRegistry.deprecateCapability(s_nonExistentHashedCapabilityId); + s_capabilityRegistry.deprecateCapabilities(deprecatedCapabilities); } function test_RevertWhen_CapabilityIsDeprecated() public { @@ -39,10 +46,12 @@ contract CapabilityRegistry_AddCapabilityTest is BaseTest { s_basicCapability.version ); - s_capabilityRegistry.deprecateCapability(hashedCapabilityId); + bytes32[] memory deprecatedCapabilities = new bytes32[](1); + deprecatedCapabilities[0] = hashedCapabilityId; + s_capabilityRegistry.deprecateCapabilities(deprecatedCapabilities); vm.expectRevert(abi.encodeWithSelector(CapabilityRegistry.CapabilityIsDeprecated.selector, hashedCapabilityId)); - s_capabilityRegistry.deprecateCapability(hashedCapabilityId); + s_capabilityRegistry.deprecateCapabilities(deprecatedCapabilities); } function test_DeprecatesCapability() public { @@ -50,9 +59,10 @@ contract CapabilityRegistry_AddCapabilityTest is BaseTest { s_basicCapability.labelledName, s_basicCapability.version ); + bytes32[] memory deprecatedCapabilities = new bytes32[](1); + deprecatedCapabilities[0] = hashedCapabilityId; - s_capabilityRegistry.deprecateCapability(hashedCapabilityId); - + s_capabilityRegistry.deprecateCapabilities(deprecatedCapabilities); assertEq(s_capabilityRegistry.isCapabilityDeprecated(hashedCapabilityId), true); } @@ -62,8 +72,11 @@ contract CapabilityRegistry_AddCapabilityTest is BaseTest { s_basicCapability.version ); + bytes32[] memory deprecatedCapabilities = new bytes32[](1); + deprecatedCapabilities[0] = hashedCapabilityId; + vm.expectEmit(address(s_capabilityRegistry)); emit CapabilityDeprecated(hashedCapabilityId); - s_capabilityRegistry.deprecateCapability(hashedCapabilityId); + s_capabilityRegistry.deprecateCapabilities(deprecatedCapabilities); } } diff --git a/contracts/src/v0.8/keystone/test/CapabilityRegistry_GetCapabilitiesTest.t.sol b/contracts/src/v0.8/keystone/test/CapabilityRegistry_GetCapabilitiesTest.t.sol index 51f43be1dde..60890db3377 100644 --- a/contracts/src/v0.8/keystone/test/CapabilityRegistry_GetCapabilitiesTest.t.sol +++ b/contracts/src/v0.8/keystone/test/CapabilityRegistry_GetCapabilitiesTest.t.sol @@ -7,9 +7,10 @@ import {CapabilityRegistry} from "../CapabilityRegistry.sol"; contract CapabilityRegistry_GetCapabilitiesTest is BaseTest { function setUp() public override { BaseTest.setUp(); - - s_capabilityRegistry.addCapability(s_basicCapability); - s_capabilityRegistry.addCapability(s_capabilityWithConfigurationContract); + CapabilityRegistry.Capability[] memory capabilities = new CapabilityRegistry.Capability[](2); + capabilities[0] = s_basicCapability; + capabilities[1] = s_capabilityWithConfigurationContract; + s_capabilityRegistry.addCapabilities(capabilities); } function test_ReturnsCapabilities() public view { @@ -38,7 +39,9 @@ contract CapabilityRegistry_GetCapabilitiesTest is BaseTest { s_basicCapability.labelledName, s_basicCapability.version ); - s_capabilityRegistry.deprecateCapability(hashedCapabilityId); + bytes32[] memory deprecatedCapabilities = new bytes32[](1); + deprecatedCapabilities[0] = hashedCapabilityId; + s_capabilityRegistry.deprecateCapabilities(deprecatedCapabilities); CapabilityRegistry.Capability[] memory capabilities = s_capabilityRegistry.getCapabilities(); assertEq(capabilities.length, 1); diff --git a/contracts/src/v0.8/keystone/test/CapabilityRegistry_GetDONsTest.t.sol b/contracts/src/v0.8/keystone/test/CapabilityRegistry_GetDONsTest.t.sol index 3b5c874ca80..f53803c4041 100644 --- a/contracts/src/v0.8/keystone/test/CapabilityRegistry_GetDONsTest.t.sol +++ b/contracts/src/v0.8/keystone/test/CapabilityRegistry_GetDONsTest.t.sol @@ -13,9 +13,12 @@ contract CapabilityRegistry_GetDONsTest is BaseTest { function setUp() public override { BaseTest.setUp(); + CapabilityRegistry.Capability[] memory capabilities = new CapabilityRegistry.Capability[](2); + capabilities[0] = s_basicCapability; + capabilities[1] = s_capabilityWithConfigurationContract; + s_capabilityRegistry.addNodeOperators(_getNodeOperators()); - s_capabilityRegistry.addCapability(s_basicCapability); - s_capabilityRegistry.addCapability(s_capabilityWithConfigurationContract); + s_capabilityRegistry.addCapabilities(capabilities); CapabilityRegistry.NodeInfo[] memory nodes = new CapabilityRegistry.NodeInfo[](2); bytes32[] memory capabilityIds = new bytes32[](2); diff --git a/contracts/src/v0.8/keystone/test/CapabilityRegistry_GetNodeOperatorsTest.t.sol b/contracts/src/v0.8/keystone/test/CapabilityRegistry_GetNodeOperatorsTest.t.sol index 2fbf67c4392..f1ce3d79ab3 100644 --- a/contracts/src/v0.8/keystone/test/CapabilityRegistry_GetNodeOperatorsTest.t.sol +++ b/contracts/src/v0.8/keystone/test/CapabilityRegistry_GetNodeOperatorsTest.t.sol @@ -13,25 +13,30 @@ contract CapabilityRegistry_GetNodeOperatorsTest is BaseTest { function test_CorrectlyFetchesNodeOperators() public view { CapabilityRegistry.NodeOperator[] memory nodeOperators = s_capabilityRegistry.getNodeOperators(); - assertEq(nodeOperators.length, 2); + assertEq(nodeOperators.length, 3); assertEq(nodeOperators[0].admin, NODE_OPERATOR_ONE_ADMIN); assertEq(nodeOperators[0].name, NODE_OPERATOR_ONE_NAME); assertEq(nodeOperators[1].admin, NODE_OPERATOR_TWO_ADMIN); assertEq(nodeOperators[1].name, NODE_OPERATOR_TWO_NAME); + + assertEq(nodeOperators[2].admin, NODE_OPERATOR_THREE); + assertEq(nodeOperators[2].name, NODE_OPERATOR_THREE_NAME); } function test_DoesNotIncludeRemovedNodeOperators() public { changePrank(ADMIN); - uint256[] memory nodeOperatorsToRemove = new uint256[](1); + uint32[] memory nodeOperatorsToRemove = new uint32[](1); nodeOperatorsToRemove[0] = 2; s_capabilityRegistry.removeNodeOperators(nodeOperatorsToRemove); CapabilityRegistry.NodeOperator[] memory nodeOperators = s_capabilityRegistry.getNodeOperators(); - assertEq(nodeOperators.length, 1); + assertEq(nodeOperators.length, 2); assertEq(nodeOperators[0].admin, NODE_OPERATOR_ONE_ADMIN); assertEq(nodeOperators[0].name, NODE_OPERATOR_ONE_NAME); + assertEq(nodeOperators[1].admin, NODE_OPERATOR_THREE); + assertEq(nodeOperators[1].name, NODE_OPERATOR_THREE_NAME); } } diff --git a/contracts/src/v0.8/keystone/test/CapabilityRegistry_GetNodesTest.t.sol b/contracts/src/v0.8/keystone/test/CapabilityRegistry_GetNodesTest.t.sol index 530af0365b7..28fc33ab1da 100644 --- a/contracts/src/v0.8/keystone/test/CapabilityRegistry_GetNodesTest.t.sol +++ b/contracts/src/v0.8/keystone/test/CapabilityRegistry_GetNodesTest.t.sol @@ -8,9 +8,13 @@ contract CapabilityRegistry_GetNodesTest is BaseTest { function setUp() public override { BaseTest.setUp(); changePrank(ADMIN); + + CapabilityRegistry.Capability[] memory capabilities = new CapabilityRegistry.Capability[](2); + capabilities[0] = s_basicCapability; + capabilities[1] = s_capabilityWithConfigurationContract; + s_capabilityRegistry.addNodeOperators(_getNodeOperators()); - s_capabilityRegistry.addCapability(s_basicCapability); - s_capabilityRegistry.addCapability(s_capabilityWithConfigurationContract); + s_capabilityRegistry.addCapabilities(capabilities); CapabilityRegistry.NodeInfo[] memory nodes = new CapabilityRegistry.NodeInfo[](2); bytes32[] memory hashedCapabilityIds = new bytes32[](2); diff --git a/contracts/src/v0.8/keystone/test/CapabilityRegistry_RemoveDONsTest.t.sol b/contracts/src/v0.8/keystone/test/CapabilityRegistry_RemoveDONsTest.t.sol index 3aaeb5a0723..8d5bfdeea6b 100644 --- a/contracts/src/v0.8/keystone/test/CapabilityRegistry_RemoveDONsTest.t.sol +++ b/contracts/src/v0.8/keystone/test/CapabilityRegistry_RemoveDONsTest.t.sol @@ -11,9 +11,12 @@ contract CapabilityRegistry_RemoveDONsTest is BaseTest { function setUp() public override { BaseTest.setUp(); + CapabilityRegistry.Capability[] memory capabilities = new CapabilityRegistry.Capability[](2); + capabilities[0] = s_basicCapability; + capabilities[1] = s_capabilityWithConfigurationContract; + s_capabilityRegistry.addNodeOperators(_getNodeOperators()); - s_capabilityRegistry.addCapability(s_basicCapability); - s_capabilityRegistry.addCapability(s_capabilityWithConfigurationContract); + s_capabilityRegistry.addCapabilities(capabilities); CapabilityRegistry.NodeInfo[] memory nodes = new CapabilityRegistry.NodeInfo[](2); bytes32[] memory capabilityIds = new bytes32[](2); @@ -83,7 +86,12 @@ contract CapabilityRegistry_RemoveDONsTest is BaseTest { assertEq(donInfo.configCount, 0); assertEq(donInfo.isPublic, false); assertEq(donInfo.capabilityConfigurations.length, 0); - assertEq(s_capabilityRegistry.getDONCapabilityConfig(DON_ID, s_basicHashedCapabilityId), bytes("")); + + (bytes memory capabilityRegistryDONConfig, bytes memory capabilityConfigContractConfig) = s_capabilityRegistry + .getCapabilityConfigs(DON_ID, s_basicHashedCapabilityId); + + assertEq(capabilityRegistryDONConfig, bytes("")); + assertEq(capabilityConfigContractConfig, bytes("")); assertEq(donInfo.nodeP2PIds.length, 0); } } diff --git a/contracts/src/v0.8/keystone/test/CapabilityRegistry_RemoveNodeOperatorsTest.t.sol b/contracts/src/v0.8/keystone/test/CapabilityRegistry_RemoveNodeOperatorsTest.t.sol index 8295544422e..d7aef824593 100644 --- a/contracts/src/v0.8/keystone/test/CapabilityRegistry_RemoveNodeOperatorsTest.t.sol +++ b/contracts/src/v0.8/keystone/test/CapabilityRegistry_RemoveNodeOperatorsTest.t.sol @@ -5,7 +5,7 @@ import {BaseTest} from "./BaseTest.t.sol"; import {CapabilityRegistry} from "../CapabilityRegistry.sol"; contract CapabilityRegistry_RemoveNodeOperatorsTest is BaseTest { - event NodeOperatorRemoved(uint256 nodeOperatorId); + event NodeOperatorRemoved(uint32 indexed nodeOperatorId); function setUp() public override { BaseTest.setUp(); @@ -16,7 +16,7 @@ contract CapabilityRegistry_RemoveNodeOperatorsTest is BaseTest { function test_RevertWhen_CalledByNonOwner() public { changePrank(STRANGER); vm.expectRevert("Only callable by owner"); - uint256[] memory nodeOperatorsToRemove = new uint256[](2); + uint32[] memory nodeOperatorsToRemove = new uint32[](2); nodeOperatorsToRemove[1] = 1; s_capabilityRegistry.removeNodeOperators(nodeOperatorsToRemove); } @@ -28,7 +28,7 @@ contract CapabilityRegistry_RemoveNodeOperatorsTest is BaseTest { emit NodeOperatorRemoved(TEST_NODE_OPERATOR_ONE_ID); vm.expectEmit(true, true, true, true, address(s_capabilityRegistry)); emit NodeOperatorRemoved(TEST_NODE_OPERATOR_TWO_ID); - uint256[] memory nodeOperatorsToRemove = new uint256[](2); + uint32[] memory nodeOperatorsToRemove = new uint32[](2); nodeOperatorsToRemove[0] = TEST_NODE_OPERATOR_ONE_ID; nodeOperatorsToRemove[1] = TEST_NODE_OPERATOR_TWO_ID; s_capabilityRegistry.removeNodeOperators(nodeOperatorsToRemove); diff --git a/contracts/src/v0.8/keystone/test/CapabilityRegistry_RemoveNodesTest.t.sol b/contracts/src/v0.8/keystone/test/CapabilityRegistry_RemoveNodesTest.t.sol index f05d1929f66..0c6b4a9651c 100644 --- a/contracts/src/v0.8/keystone/test/CapabilityRegistry_RemoveNodesTest.t.sol +++ b/contracts/src/v0.8/keystone/test/CapabilityRegistry_RemoveNodesTest.t.sol @@ -10,11 +10,14 @@ contract CapabilityRegistry_RemoveNodesTest is BaseTest { function setUp() public override { BaseTest.setUp(); changePrank(ADMIN); + CapabilityRegistry.Capability[] memory capabilities = new CapabilityRegistry.Capability[](2); + capabilities[0] = s_basicCapability; + capabilities[1] = s_capabilityWithConfigurationContract; + s_capabilityRegistry.addNodeOperators(_getNodeOperators()); - s_capabilityRegistry.addCapability(s_basicCapability); - s_capabilityRegistry.addCapability(s_capabilityWithConfigurationContract); + s_capabilityRegistry.addCapabilities(capabilities); - CapabilityRegistry.NodeInfo[] memory nodes = new CapabilityRegistry.NodeInfo[](1); + CapabilityRegistry.NodeInfo[] memory nodes = new CapabilityRegistry.NodeInfo[](3); bytes32[] memory hashedCapabilityIds = new bytes32[](2); hashedCapabilityIds[0] = s_basicHashedCapabilityId; hashedCapabilityIds[1] = s_capabilityWithConfigurationContractId; @@ -26,7 +29,21 @@ contract CapabilityRegistry_RemoveNodesTest is BaseTest { hashedCapabilityIds: hashedCapabilityIds }); - changePrank(NODE_OPERATOR_ONE_ADMIN); + nodes[1] = CapabilityRegistry.NodeInfo({ + nodeOperatorId: TEST_NODE_OPERATOR_TWO_ID, + p2pId: P2P_ID_TWO, + signer: NODE_OPERATOR_TWO_SIGNER_ADDRESS, + hashedCapabilityIds: hashedCapabilityIds + }); + + nodes[2] = CapabilityRegistry.NodeInfo({ + nodeOperatorId: TEST_NODE_OPERATOR_THREE_ID, + p2pId: P2P_ID_THREE, + signer: NODE_OPERATOR_THREE_SIGNER_ADDRESS, + hashedCapabilityIds: hashedCapabilityIds + }); + + changePrank(ADMIN); s_capabilityRegistry.addNodes(nodes); } @@ -36,7 +53,7 @@ contract CapabilityRegistry_RemoveNodesTest is BaseTest { bytes32[] memory nodes = new bytes32[](1); nodes[0] = P2P_ID; - vm.expectRevert(CapabilityRegistry.AccessForbidden.selector); + vm.expectRevert(abi.encodeWithSelector(CapabilityRegistry.AccessForbidden.selector, STRANGER)); s_capabilityRegistry.removeNodes(nodes); } @@ -58,6 +75,103 @@ contract CapabilityRegistry_RemoveNodesTest is BaseTest { s_capabilityRegistry.removeNodes(nodes); } + function test_RevertWhen_NodePartOfDON() public { + changePrank(ADMIN); + bytes32[] memory nodes = new bytes32[](2); + nodes[0] = P2P_ID; + nodes[1] = P2P_ID_TWO; + + CapabilityRegistry.CapabilityConfiguration[] + memory capabilityConfigs = new CapabilityRegistry.CapabilityConfiguration[](1); + capabilityConfigs[0] = CapabilityRegistry.CapabilityConfiguration({ + capabilityId: s_basicHashedCapabilityId, + config: BASIC_CAPABILITY_CONFIG + }); + + s_capabilityRegistry.addDON(nodes, capabilityConfigs, true, true, F_VALUE); + + vm.expectRevert(abi.encodeWithSelector(CapabilityRegistry.NodePartOfDON.selector, P2P_ID)); + s_capabilityRegistry.removeNodes(nodes); + } + + function test_CanRemoveWhenDONDeleted() public { + changePrank(ADMIN); + + bytes32[] memory nodes = new bytes32[](2); + nodes[0] = P2P_ID; + nodes[1] = P2P_ID_TWO; + + CapabilityRegistry.CapabilityConfiguration[] + memory capabilityConfigs = new CapabilityRegistry.CapabilityConfiguration[](1); + capabilityConfigs[0] = CapabilityRegistry.CapabilityConfiguration({ + capabilityId: s_basicHashedCapabilityId, + config: BASIC_CAPABILITY_CONFIG + }); + + // Add DON + s_capabilityRegistry.addDON(nodes, capabilityConfigs, true, true, F_VALUE); + + // Try remove nodes + bytes32[] memory removedNodes = new bytes32[](1); + removedNodes[0] = P2P_ID; + vm.expectRevert(abi.encodeWithSelector(CapabilityRegistry.NodePartOfDON.selector, P2P_ID)); + s_capabilityRegistry.removeNodes(removedNodes); + + // Remove DON + uint32[] memory donIds = new uint32[](1); + donIds[0] = DON_ID; + s_capabilityRegistry.removeDONs(donIds); + + // Remove node + s_capabilityRegistry.removeNodes(removedNodes); + (CapabilityRegistry.NodeInfo memory node, uint32 configCount) = s_capabilityRegistry.getNode(P2P_ID); + assertEq(node.nodeOperatorId, 0); + assertEq(node.p2pId, bytes32("")); + assertEq(node.signer, bytes32("")); + assertEq(node.hashedCapabilityIds.length, 0); + assertEq(configCount, 0); + } + + function test_CanRemoveWhenNodeNoLongerPartOfDON() public { + changePrank(ADMIN); + + bytes32[] memory nodes = new bytes32[](3); + nodes[0] = P2P_ID; + nodes[1] = P2P_ID_TWO; + nodes[2] = P2P_ID_THREE; + + CapabilityRegistry.CapabilityConfiguration[] + memory capabilityConfigs = new CapabilityRegistry.CapabilityConfiguration[](1); + capabilityConfigs[0] = CapabilityRegistry.CapabilityConfiguration({ + capabilityId: s_basicHashedCapabilityId, + config: BASIC_CAPABILITY_CONFIG + }); + + // Add DON + s_capabilityRegistry.addDON(nodes, capabilityConfigs, true, true, F_VALUE); + + // Try remove nodes + bytes32[] memory removedNodes = new bytes32[](1); + removedNodes[0] = P2P_ID_TWO; + vm.expectRevert(abi.encodeWithSelector(CapabilityRegistry.NodePartOfDON.selector, P2P_ID_TWO)); + s_capabilityRegistry.removeNodes(removedNodes); + + // Update nodes in DON + bytes32[] memory updatedNodes = new bytes32[](2); + updatedNodes[0] = P2P_ID; + updatedNodes[1] = P2P_ID_THREE; + s_capabilityRegistry.updateDON(DON_ID, updatedNodes, capabilityConfigs, true, true, F_VALUE); + + // Remove node + s_capabilityRegistry.removeNodes(removedNodes); + (CapabilityRegistry.NodeInfo memory node, uint32 configCount) = s_capabilityRegistry.getNode(P2P_ID_TWO); + assertEq(node.nodeOperatorId, 0); + assertEq(node.p2pId, bytes32("")); + assertEq(node.signer, bytes32("")); + assertEq(node.hashedCapabilityIds.length, 0); + assertEq(configCount, 0); + } + function test_RemovesNode() public { changePrank(NODE_OPERATOR_ONE_ADMIN); diff --git a/contracts/src/v0.8/keystone/test/CapabilityRegistry_TypeAndVersionTest.t.sol b/contracts/src/v0.8/keystone/test/CapabilityRegistry_TypeAndVersionTest.t.sol new file mode 100644 index 00000000000..629b4a17a5a --- /dev/null +++ b/contracts/src/v0.8/keystone/test/CapabilityRegistry_TypeAndVersionTest.t.sol @@ -0,0 +1,10 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.19; + +import {BaseTest} from "./BaseTest.t.sol"; + +contract CapabilityRegistry_TypeAndVersionTest is BaseTest { + function test_TypeAndVersion() public view { + assertEq(s_capabilityRegistry.typeAndVersion(), "CapabilityRegistry 1.0.0"); + } +} diff --git a/contracts/src/v0.8/keystone/test/CapabilityRegistry_UpdateDONTest.t.sol b/contracts/src/v0.8/keystone/test/CapabilityRegistry_UpdateDONTest.t.sol index cbf697677cf..1737c19d272 100644 --- a/contracts/src/v0.8/keystone/test/CapabilityRegistry_UpdateDONTest.t.sol +++ b/contracts/src/v0.8/keystone/test/CapabilityRegistry_UpdateDONTest.t.sol @@ -11,9 +11,12 @@ contract CapabilityRegistry_UpdateDONTest is BaseTest { function setUp() public override { BaseTest.setUp(); + CapabilityRegistry.Capability[] memory capabilities = new CapabilityRegistry.Capability[](2); + capabilities[0] = s_basicCapability; + capabilities[1] = s_capabilityWithConfigurationContract; + s_capabilityRegistry.addNodeOperators(_getNodeOperators()); - s_capabilityRegistry.addCapability(s_basicCapability); - s_capabilityRegistry.addCapability(s_capabilityWithConfigurationContract); + s_capabilityRegistry.addCapabilities(capabilities); CapabilityRegistry.NodeInfo[] memory nodes = new CapabilityRegistry.NodeInfo[](3); bytes32[] memory capabilityIds = new bytes32[](2); @@ -148,7 +151,9 @@ contract CapabilityRegistry_UpdateDONTest is BaseTest { function test_RevertWhen_DeprecatedCapabilityAdded() public { bytes32 capabilityId = s_basicHashedCapabilityId; - s_capabilityRegistry.deprecateCapability(capabilityId); + bytes32[] memory deprecatedCapabilities = new bytes32[](1); + deprecatedCapabilities[0] = capabilityId; + s_capabilityRegistry.deprecateCapabilities(deprecatedCapabilities); bytes32[] memory nodes = new bytes32[](2); nodes[0] = P2P_ID; @@ -222,7 +227,11 @@ contract CapabilityRegistry_UpdateDONTest is BaseTest { assertEq(donInfo.isPublic, false); assertEq(donInfo.capabilityConfigurations.length, capabilityConfigs.length); assertEq(donInfo.capabilityConfigurations[0].capabilityId, s_basicHashedCapabilityId); - assertEq(s_capabilityRegistry.getDONCapabilityConfig(DON_ID, s_basicHashedCapabilityId), BASIC_CAPABILITY_CONFIG); + + (bytes memory capabilityRegistryDONConfig, bytes memory capabilityConfigContractConfig) = s_capabilityRegistry + .getCapabilityConfigs(DON_ID, s_basicHashedCapabilityId); + assertEq(capabilityRegistryDONConfig, BASIC_CAPABILITY_CONFIG); + assertEq(capabilityConfigContractConfig, bytes("")); assertEq(donInfo.nodeP2PIds.length, nodes.length); assertEq(donInfo.nodeP2PIds[0], P2P_ID); diff --git a/contracts/src/v0.8/keystone/test/CapabilityRegistry_UpdateNodeOperatorsTest.t.sol b/contracts/src/v0.8/keystone/test/CapabilityRegistry_UpdateNodeOperatorsTest.t.sol index 4be8010dcb1..77d180a784a 100644 --- a/contracts/src/v0.8/keystone/test/CapabilityRegistry_UpdateNodeOperatorsTest.t.sol +++ b/contracts/src/v0.8/keystone/test/CapabilityRegistry_UpdateNodeOperatorsTest.t.sol @@ -5,9 +5,9 @@ import {BaseTest} from "./BaseTest.t.sol"; import {CapabilityRegistry} from "../CapabilityRegistry.sol"; contract CapabilityRegistry_UpdateNodeOperatorTest is BaseTest { - event NodeOperatorUpdated(uint256 nodeOperatorId, address indexed admin, string name); + event NodeOperatorUpdated(uint32 indexed nodeOperatorId, address indexed admin, string name); - uint256 private constant TEST_NODE_OPERATOR_ID = 0; + uint32 private constant TEST_NODE_OPERATOR_ID = 1; address private constant NEW_NODE_OPERATOR_ADMIN = address(3); string private constant NEW_NODE_OPERATOR_NAME = "new-node-operator"; @@ -19,24 +19,54 @@ contract CapabilityRegistry_UpdateNodeOperatorTest is BaseTest { function test_RevertWhen_CalledByNonAdminAndNonOwner() public { changePrank(STRANGER); - vm.expectRevert(CapabilityRegistry.AccessForbidden.selector); CapabilityRegistry.NodeOperator[] memory nodeOperators = new CapabilityRegistry.NodeOperator[](1); nodeOperators[0] = CapabilityRegistry.NodeOperator({admin: NEW_NODE_OPERATOR_ADMIN, name: NEW_NODE_OPERATOR_NAME}); - uint256[] memory nodeOperatorIds = new uint256[](1); + uint32[] memory nodeOperatorIds = new uint32[](1); nodeOperatorIds[0] = TEST_NODE_OPERATOR_ID; + + vm.expectRevert(abi.encodeWithSelector(CapabilityRegistry.AccessForbidden.selector, STRANGER)); s_capabilityRegistry.updateNodeOperators(nodeOperatorIds, nodeOperators); } function test_RevertWhen_NodeOperatorAdminIsZeroAddress() public { changePrank(ADMIN); - vm.expectRevert(CapabilityRegistry.InvalidNodeOperatorAdmin.selector); CapabilityRegistry.NodeOperator[] memory nodeOperators = new CapabilityRegistry.NodeOperator[](1); nodeOperators[0] = CapabilityRegistry.NodeOperator({admin: address(0), name: NEW_NODE_OPERATOR_NAME}); - uint256[] memory nodeOperatorIds = new uint256[](1); + uint32[] memory nodeOperatorIds = new uint32[](1); nodeOperatorIds[0] = TEST_NODE_OPERATOR_ID; + + vm.expectRevert(CapabilityRegistry.InvalidNodeOperatorAdmin.selector); + s_capabilityRegistry.updateNodeOperators(nodeOperatorIds, nodeOperators); + } + + function test_RevertWhen_NodeOperatorIdAndParamLengthsMismatch() public { + changePrank(ADMIN); + CapabilityRegistry.NodeOperator[] memory nodeOperators = new CapabilityRegistry.NodeOperator[](1); + nodeOperators[0] = CapabilityRegistry.NodeOperator({admin: NEW_NODE_OPERATOR_ADMIN, name: NEW_NODE_OPERATOR_NAME}); + + uint32 invalidNodeOperatorId = 10000; + uint32[] memory nodeOperatorIds = new uint32[](2); + nodeOperatorIds[0] = invalidNodeOperatorId; + vm.expectRevert( + abi.encodeWithSelector(CapabilityRegistry.LengthMismatch.selector, nodeOperatorIds.length, nodeOperators.length) + ); + s_capabilityRegistry.updateNodeOperators(nodeOperatorIds, nodeOperators); + } + + function test_RevertWhen_NodeOperatorDoesNotExist() public { + changePrank(ADMIN); + CapabilityRegistry.NodeOperator[] memory nodeOperators = new CapabilityRegistry.NodeOperator[](1); + nodeOperators[0] = CapabilityRegistry.NodeOperator({admin: NEW_NODE_OPERATOR_ADMIN, name: NEW_NODE_OPERATOR_NAME}); + + uint32 invalidNodeOperatorId = 10000; + uint32[] memory nodeOperatorIds = new uint32[](1); + nodeOperatorIds[0] = invalidNodeOperatorId; + vm.expectRevert( + abi.encodeWithSelector(CapabilityRegistry.NodeOperatorDoesNotExist.selector, invalidNodeOperatorId) + ); s_capabilityRegistry.updateNodeOperators(nodeOperatorIds, nodeOperators); } @@ -46,14 +76,14 @@ contract CapabilityRegistry_UpdateNodeOperatorTest is BaseTest { CapabilityRegistry.NodeOperator[] memory nodeOperators = new CapabilityRegistry.NodeOperator[](1); nodeOperators[0] = CapabilityRegistry.NodeOperator({admin: NEW_NODE_OPERATOR_ADMIN, name: NEW_NODE_OPERATOR_NAME}); - uint256[] memory nodeOperatorIds = new uint256[](1); + uint32[] memory nodeOperatorIds = new uint32[](1); nodeOperatorIds[0] = TEST_NODE_OPERATOR_ID; vm.expectEmit(true, true, true, true, address(s_capabilityRegistry)); emit NodeOperatorUpdated(TEST_NODE_OPERATOR_ID, NEW_NODE_OPERATOR_ADMIN, NEW_NODE_OPERATOR_NAME); s_capabilityRegistry.updateNodeOperators(nodeOperatorIds, nodeOperators); - CapabilityRegistry.NodeOperator memory nodeOperator = s_capabilityRegistry.getNodeOperator(0); + CapabilityRegistry.NodeOperator memory nodeOperator = s_capabilityRegistry.getNodeOperator(TEST_NODE_OPERATOR_ID); assertEq(nodeOperator.admin, NEW_NODE_OPERATOR_ADMIN); assertEq(nodeOperator.name, NEW_NODE_OPERATOR_NAME); } diff --git a/contracts/src/v0.8/keystone/test/CapabilityRegistry_UpdateNodesTest.t.sol b/contracts/src/v0.8/keystone/test/CapabilityRegistry_UpdateNodesTest.t.sol index c97a9c339c4..a419f2c198e 100644 --- a/contracts/src/v0.8/keystone/test/CapabilityRegistry_UpdateNodesTest.t.sol +++ b/contracts/src/v0.8/keystone/test/CapabilityRegistry_UpdateNodesTest.t.sol @@ -5,14 +5,17 @@ import {BaseTest} from "./BaseTest.t.sol"; import {CapabilityRegistry} from "../CapabilityRegistry.sol"; contract CapabilityRegistry_UpdateNodesTest is BaseTest { - event NodeUpdated(bytes32 p2pId, uint256 nodeOperatorId, bytes32 signer); + event NodeUpdated(bytes32 p2pId, uint32 indexed nodeOperatorId, bytes32 signer); function setUp() public override { BaseTest.setUp(); changePrank(ADMIN); + CapabilityRegistry.Capability[] memory capabilities = new CapabilityRegistry.Capability[](2); + capabilities[0] = s_basicCapability; + capabilities[1] = s_capabilityWithConfigurationContract; + s_capabilityRegistry.addNodeOperators(_getNodeOperators()); - s_capabilityRegistry.addCapability(s_basicCapability); - s_capabilityRegistry.addCapability(s_capabilityWithConfigurationContract); + s_capabilityRegistry.addCapabilities(capabilities); CapabilityRegistry.NodeInfo[] memory nodes = new CapabilityRegistry.NodeInfo[](1); bytes32[] memory hashedCapabilityIds = new bytes32[](2); @@ -54,7 +57,7 @@ contract CapabilityRegistry_UpdateNodesTest is BaseTest { hashedCapabilityIds: hashedCapabilityIds }); - vm.expectRevert(CapabilityRegistry.AccessForbidden.selector); + vm.expectRevert(abi.encodeWithSelector(CapabilityRegistry.AccessForbidden.selector, STRANGER)); s_capabilityRegistry.updateNodes(nodes); } diff --git a/contracts/src/v0.8/keystone/test/mocks/CapabilityConfigurationContract.sol b/contracts/src/v0.8/keystone/test/mocks/CapabilityConfigurationContract.sol index c30a81714d8..2dd86fdf6da 100644 --- a/contracts/src/v0.8/keystone/test/mocks/CapabilityConfigurationContract.sol +++ b/contracts/src/v0.8/keystone/test/mocks/CapabilityConfigurationContract.sol @@ -7,16 +7,15 @@ import {ERC165} from "../../../vendor/openzeppelin-solidity/v4.8.3/contracts/uti contract CapabilityConfigurationContract is ICapabilityConfiguration, ERC165 { mapping(uint256 => bytes) private s_donConfiguration; - function getCapabilityConfiguration(uint256 donId) external view returns (bytes memory configuration) { + function getCapabilityConfiguration(uint32 donId) external view returns (bytes memory configuration) { return s_donConfiguration[donId]; } - function beforeCapabilityConfigSet( - bytes32[] calldata nodes, - bytes calldata config, - uint64 configCount, - uint32 donId - ) external {} + function beforeCapabilityConfigSet(bytes32[] calldata, bytes calldata config, uint64, uint32 donId) external { + // In practice a real capability configuration contract will do more than just store + // the config for a DON + s_donConfiguration[donId] = config; + } function supportsInterface(bytes4 interfaceId) public pure override returns (bool) { return interfaceId == this.getCapabilityConfiguration.selector ^ this.beforeCapabilityConfigSet.selector; diff --git a/core/gethwrappers/keystone/generated/keystone_capability_registry/keystone_capability_registry.go b/core/gethwrappers/keystone/generated/keystone_capability_registry/keystone_capability_registry.go index 40dfc10d6c2..786c44db8ab 100644 --- a/core/gethwrappers/keystone/generated/keystone_capability_registry/keystone_capability_registry.go +++ b/core/gethwrappers/keystone/generated/keystone_capability_registry/keystone_capability_registry.go @@ -66,8 +66,8 @@ type CapabilityRegistryNodeOperator struct { } var CapabilityRegistryMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[],\"name\":\"AccessForbidden\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CapabilityAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hashedCapabilityId\",\"type\":\"bytes32\"}],\"name\":\"CapabilityDoesNotExist\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hashedCapabilityId\",\"type\":\"bytes32\"}],\"name\":\"CapabilityIsDeprecated\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"}],\"name\":\"DONDoesNotExist\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"}],\"name\":\"DuplicateDONCapability\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"nodeP2PId\",\"type\":\"bytes32\"}],\"name\":\"DuplicateDONNode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"proposedConfigurationContract\",\"type\":\"address\"}],\"name\":\"InvalidCapabilityConfigurationContractInterface\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"f\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"nodeCount\",\"type\":\"uint256\"}],\"name\":\"InvalidFaultTolerance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"hashedCapabilityIds\",\"type\":\"bytes32[]\"}],\"name\":\"InvalidNodeCapabilities\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidNodeOperatorAdmin\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"}],\"name\":\"InvalidNodeP2PId\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidNodeSigner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"lengthOne\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lengthTwo\",\"type\":\"uint256\"}],\"name\":\"LengthMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"nodeP2PId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"}],\"name\":\"NodeDoesNotSupportCapability\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"hashedCapabilityId\",\"type\":\"bytes32\"}],\"name\":\"CapabilityAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"hashedCapabilityId\",\"type\":\"bytes32\"}],\"name\":\"CapabilityDeprecated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"configCount\",\"type\":\"uint32\"}],\"name\":\"ConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nodeOperatorId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"signer\",\"type\":\"bytes32\"}],\"name\":\"NodeAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nodeOperatorId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"NodeOperatorAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nodeOperatorId\",\"type\":\"uint256\"}],\"name\":\"NodeOperatorRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nodeOperatorId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"NodeOperatorUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"}],\"name\":\"NodeRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nodeOperatorId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"signer\",\"type\":\"bytes32\"}],\"name\":\"NodeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"labelledName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"enumCapabilityRegistry.CapabilityType\",\"name\":\"capabilityType\",\"type\":\"uint8\"},{\"internalType\":\"enumCapabilityRegistry.CapabilityResponseType\",\"name\":\"responseType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"configurationContract\",\"type\":\"address\"}],\"internalType\":\"structCapabilityRegistry.Capability\",\"name\":\"capability\",\"type\":\"tuple\"}],\"name\":\"addCapability\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"nodes\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"internalType\":\"structCapabilityRegistry.CapabilityConfiguration[]\",\"name\":\"capabilityConfigurations\",\"type\":\"tuple[]\"},{\"internalType\":\"bool\",\"name\":\"isPublic\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"acceptsWorkflows\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"f\",\"type\":\"uint32\"}],\"name\":\"addDON\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"internalType\":\"structCapabilityRegistry.NodeOperator[]\",\"name\":\"nodeOperators\",\"type\":\"tuple[]\"}],\"name\":\"addNodeOperators\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"signer\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"hashedCapabilityIds\",\"type\":\"bytes32[]\"}],\"internalType\":\"structCapabilityRegistry.NodeInfo[]\",\"name\":\"nodes\",\"type\":\"tuple[]\"}],\"name\":\"addNodes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hashedCapabilityId\",\"type\":\"bytes32\"}],\"name\":\"deprecateCapability\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCapabilities\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"labelledName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"enumCapabilityRegistry.CapabilityType\",\"name\":\"capabilityType\",\"type\":\"uint8\"},{\"internalType\":\"enumCapabilityRegistry.CapabilityResponseType\",\"name\":\"responseType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"configurationContract\",\"type\":\"address\"}],\"internalType\":\"structCapabilityRegistry.Capability[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hashedId\",\"type\":\"bytes32\"}],\"name\":\"getCapability\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"labelledName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"enumCapabilityRegistry.CapabilityType\",\"name\":\"capabilityType\",\"type\":\"uint8\"},{\"internalType\":\"enumCapabilityRegistry.CapabilityResponseType\",\"name\":\"responseType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"configurationContract\",\"type\":\"address\"}],\"internalType\":\"structCapabilityRegistry.Capability\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"}],\"name\":\"getDON\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"id\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"configCount\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"f\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"isPublic\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"acceptsWorkflows\",\"type\":\"bool\"},{\"internalType\":\"bytes32[]\",\"name\":\"nodeP2PIds\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"internalType\":\"structCapabilityRegistry.CapabilityConfiguration[]\",\"name\":\"capabilityConfigurations\",\"type\":\"tuple[]\"}],\"internalType\":\"structCapabilityRegistry.DONInfo\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"}],\"name\":\"getDONCapabilityConfig\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDONs\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"id\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"configCount\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"f\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"isPublic\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"acceptsWorkflows\",\"type\":\"bool\"},{\"internalType\":\"bytes32[]\",\"name\":\"nodeP2PIds\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"internalType\":\"structCapabilityRegistry.CapabilityConfiguration[]\",\"name\":\"capabilityConfigurations\",\"type\":\"tuple[]\"}],\"internalType\":\"structCapabilityRegistry.DONInfo[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"labelledName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"}],\"name\":\"getHashedCapabilityId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"}],\"name\":\"getNode\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"signer\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"hashedCapabilityIds\",\"type\":\"bytes32[]\"}],\"internalType\":\"structCapabilityRegistry.NodeInfo\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"configCount\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"nodeOperatorId\",\"type\":\"uint256\"}],\"name\":\"getNodeOperator\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"internalType\":\"structCapabilityRegistry.NodeOperator\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNodeOperators\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"internalType\":\"structCapabilityRegistry.NodeOperator[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNodes\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"signer\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"hashedCapabilityIds\",\"type\":\"bytes32[]\"}],\"internalType\":\"structCapabilityRegistry.NodeInfo[]\",\"name\":\"\",\"type\":\"tuple[]\"},{\"internalType\":\"uint32[]\",\"name\":\"\",\"type\":\"uint32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hashedCapabilityId\",\"type\":\"bytes32\"}],\"name\":\"isCapabilityDeprecated\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32[]\",\"name\":\"donIds\",\"type\":\"uint32[]\"}],\"name\":\"removeDONs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"nodeOperatorIds\",\"type\":\"uint256[]\"}],\"name\":\"removeNodeOperators\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"removedNodeP2PIds\",\"type\":\"bytes32[]\"}],\"name\":\"removeNodes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"typeAndVersion\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32[]\",\"name\":\"nodes\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"internalType\":\"structCapabilityRegistry.CapabilityConfiguration[]\",\"name\":\"capabilityConfigurations\",\"type\":\"tuple[]\"},{\"internalType\":\"bool\",\"name\":\"isPublic\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"acceptsWorkflows\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"f\",\"type\":\"uint32\"}],\"name\":\"updateDON\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"nodeOperatorIds\",\"type\":\"uint256[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"internalType\":\"structCapabilityRegistry.NodeOperator[]\",\"name\":\"nodeOperators\",\"type\":\"tuple[]\"}],\"name\":\"updateNodeOperators\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"signer\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"hashedCapabilityIds\",\"type\":\"bytes32[]\"}],\"internalType\":\"structCapabilityRegistry.NodeInfo[]\",\"name\":\"nodes\",\"type\":\"tuple[]\"}],\"name\":\"updateNodes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x6080604052601280546001600160401b0319166401000000011790553480156200002857600080fd5b503380600081620000805760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420736574206f776e657220746f207a65726f000000000000000060448201526064015b60405180910390fd5b600080546001600160a01b0319166001600160a01b0384811691909117909155811615620000b357620000b381620000bc565b50505062000167565b336001600160a01b03821603620001165760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640162000077565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b614bef80620001776000396000f3fe608060405234801561001057600080fd5b50600436106101ae5760003560e01c80635e65e309116100ee57806395864d1f11610097578063b06e07a711610071578063b06e07a7146103ec578063ddbe4f82146103ff578063e29581aa14610414578063f2fde38b1461042a57600080fd5b806395864d1f146103a65780639cb7c5f4146103b9578063ae3c241c146103d957600080fd5b806373ac22b4116100c857806373ac22b41461036357806379ba5097146103765780638da5cb5b1461037e57600080fd5b80635e65e3091461031b57806365c14dc71461032e57806366acaa331461034e57600080fd5b80631cdf63431161015b578063235374051161013557806323537405146102b45780632c01a1e8146102d4578063398f3773146102e757806350c946fe146102fa57600080fd5b80631cdf6343146102795780631d05394c1461028c578063214502431461029f57600080fd5b8063178962481161018c5780631789624814610211578063181f5a7714610224578063193ec0061461026657600080fd5b80630c5801e3146101b35780630fe5800a146101c857806312570011146101ee575b600080fd5b6101c66101c1366004613755565b61043d565b005b6101db6101d6366004613803565b61074e565b6040519081526020015b60405180910390f35b6102016101fc366004613863565b610787565b60405190151581526020016101e5565b6101c661021f36600461387c565b61079a565b60408051808201909152601881527f4361706162696c697479526567697374727920312e302e30000000000000000060208201525b6040516101e5919061391b565b6101c6610274366004613955565b6109d6565b6101c66102873660046139fa565b610ab1565b6101c661029a3660046139fa565b610b81565b6102a7610cc1565b6040516101e59190613b64565b6102c76102c2366004613be4565b610e21565b6040516101e59190613bff565b6101c66102e23660046139fa565b610e65565b6101c66102f53660046139fa565b611109565b61030d610308366004613863565b6112cc565b6040516101e5929190613c53565b6101c66103293660046139fa565b611301565b61034161033c366004613863565b611804565b6040516101e59190613cb0565b6103566118ea565b6040516101e59190613cc3565b6101c66103713660046139fa565b611aa8565b6101c6611f0e565b60005460405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101e5565b6101c66103b4366004613d36565b61200b565b6103cc6103c7366004613863565b6120d7565b6040516101e59190613ea7565b6101c66103e7366004613863565b6122dc565b6102596103fa366004613eba565b6123a7565b61040761247c565b6040516101e59190613ee4565b61041c612771565b6040516101e5929190613f57565b6101c6610438366004614038565b6128fc565b828114610485576040517fab8b67c600000000000000000000000000000000000000000000000000000000815260048101849052602481018290526044015b60405180910390fd5b6000805473ffffffffffffffffffffffffffffffffffffffff16905b848110156107465760008686838181106104bd576104bd614055565b90506020020135905060008585848181106104da576104da614055565b90506020028101906104ec9190614084565b6104f59061418c565b805190915073ffffffffffffffffffffffffffffffffffffffff16610546576040517feeacd93900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805173ffffffffffffffffffffffffffffffffffffffff16331480159061058357503373ffffffffffffffffffffffffffffffffffffffff851614155b156105ba576040517fef67f5d800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80516000838152600f602052604090205473ffffffffffffffffffffffffffffffffffffffff908116911614158061066c5750602080820151604051610600920161391b565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825280516020918201206000868152600f83529290922091926106539260010191016142ab565b6040516020818303038152906040528051906020012014155b156107335780516000838152600f6020908152604090912080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9093169290921782558201516001909101906106d9908261439a565b50806000015173ffffffffffffffffffffffffffffffffffffffff167f14c8f513e8a6d86d2d16b0cb64976de4e72386c4f8068eca3b7354373f8fe97a83836020015160405161072a9291906144b4565b60405180910390a25b50508061073f906144fc565b90506104a1565b505050505050565b600084848484604051602001610767949392919061457d565b604051602081830303815290604052805190602001209050949350505050565b6000610794600583612910565b92915050565b6107a261292b565b60006107be6107b183806145af565b6101d660208601866145af565b90506107cb600382612910565b15610802576040517fe288638f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061081460a0840160808501614038565b73ffffffffffffffffffffffffffffffffffffffff161461097f5761083f60a0830160808401614038565b73ffffffffffffffffffffffffffffffffffffffff163b158061091f575061086d60a0830160808401614038565b6040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527f73e8b41d00000000000000000000000000000000000000000000000000000000600482015273ffffffffffffffffffffffffffffffffffffffff91909116906301ffc9a790602401602060405180830381865afa1580156108f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091d9190614614565b155b1561097f5761093460a0830160808401614038565b6040517fabb5e3fd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909116600482015260240161047c565b61098a6003826129ae565b50600081815260026020526040902082906109a58282614801565b505060405181907f65610e5677eedff94555572640e442f89848a109ef8593fa927ac30b2565ff0690600090a25050565b6109de61292b565b60125463ffffffff640100000000909104811660008181526011602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001684179055815160a081018352838152600191810191909152861515918101919091528415156060820152918316608083015290610a6b9089908990899089906129ba565b60128054600490610a8990640100000000900463ffffffff166149c4565b91906101000a81548163ffffffff021916908363ffffffff1602179055505050505050505050565b610ab961292b565b60005b81811015610b7c576000838383818110610ad857610ad8614055565b602090810292909201356000818152600f9093526040832080547fffffffffffffffffffffffff0000000000000000000000000000000000000000168155909350919050610b2960018301826136bb565b50610b3790506007826129ae565b506040518181527f1e5877d7b3001d1569bf733b76c7eceda58bd6c031e5b8d0b7042308ba2e9d4f9060200160405180910390a150610b75816144fc565b9050610abc565b505050565b610b8961292b565b60005b81811015610b7c576000838383818110610ba857610ba8614055565b9050602002016020810190610bbd9190613be4565b63ffffffff808216600090815260116020526040812080549394509264010000000090049091169003610c24576040517f2b62be9b00000000000000000000000000000000000000000000000000000000815263ffffffff8316600482015260240161047c565b63ffffffff808316600081815260116020526040902080547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000169055610c6e91600991906129ae16565b506040805163ffffffff84168152600060208201527ff264aae70bf6a9d90e68e0f9b393f4e7fbea67b063b0f336e0b36c1581703651910160405180910390a1505080610cba906144fc565b9050610b8c565b601254606090640100000000900463ffffffff1660006001610ce36009612f9c565b601254610cfe9190640100000000900463ffffffff166149e7565b610d0891906149e7565b67ffffffffffffffff811115610d2057610d206140c2565b604051908082528060200260200182016040528015610da757816020015b6040805160e081018252600080825260208083018290529282018190526060808301829052608083019190915260a0820181905260c082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff909201910181610d3e5790505b509050600060015b838163ffffffff161015610e1857610dd1600963ffffffff8084169061291016565b610e0857610dde81612fa6565b838381518110610df057610df0614055565b602002602001018190525081610e05906144fc565b91505b610e11816149c4565b9050610daf565b50909392505050565b6040805160e0810182526000808252602082018190529181018290526060808201839052608082019290925260a0810182905260c081019190915261079482612fa6565b6000805473ffffffffffffffffffffffffffffffffffffffff163314905b82811015611103576000848483818110610e9f57610e9f614055565b602090810292909201356000818152601090935260409092206001015491925050151580610efc576040517f64e2ee920000000000000000000000000000000000000000000000000000000081526004810183905260240161047c565b60008281526010602090815260408083205463ffffffff168352600f82528083208151808301909252805473ffffffffffffffffffffffffffffffffffffffff1682526001810180549293919291840191610f5690614258565b80601f0160208091040260200160405190810160405280929190818152602001828054610f8290614258565b8015610fcf5780601f10610fa457610100808354040283529160200191610fcf565b820191906000526020600020905b815481529060010190602001808311610fb257829003601f168201915b505050505081525050905084158015610fff5750805173ffffffffffffffffffffffffffffffffffffffff163314155b15611036576040517fef67f5d800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008381526010602052604090206001015461105490600b90613282565b5060008381526010602052604090206002015461107390600d90613282565b5060008381526010602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001681556001810183905560020191909155517f5254e609a97bab37b7cc79fe128f85c097bd6015c6e1624ae0ba392eb9753205906110e79085815260200190565b60405180910390a1505050806110fc906144fc565b9050610e83565b50505050565b61111161292b565b60005b81811015610b7c57600083838381811061113057611130614055565b90506020028101906111429190614084565b61114b9061418c565b805190915073ffffffffffffffffffffffffffffffffffffffff1661119c576040517feeacd93900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b601254604080518082018252835173ffffffffffffffffffffffffffffffffffffffff908116825260208086015181840190815263ffffffff9095166000818152600f909252939020825181547fffffffffffffffffffffffff00000000000000000000000000000000000000001692169190911781559251919290916001820190611228908261439a565b5050601280549091506000906112439063ffffffff166149c4565b91906101000a81548163ffffffff021916908363ffffffff160217905550816000015173ffffffffffffffffffffffffffffffffffffffff167fda6697b182650034bd205cdc2dbfabb06bdb3a0a83a2b45bfefa3c4881284e0b8284602001516040516112b19291906144b4565b60405180910390a25050806112c5906144fc565b9050611114565b60408051608081018252600080825260208201819052918101829052606080820152906112f88361328e565b91509150915091565b60005b81811015610b7c57600083838381811061132057611320614055565b905060200281019061133291906149fa565b61133b90614a2e565b9050600061135e60005473ffffffffffffffffffffffffffffffffffffffff1690565b825163ffffffff166000908152600f602090815260408083208151808301909252805473ffffffffffffffffffffffffffffffffffffffff908116835260018201805496909116331496509394919390928401916113bb90614258565b80601f01602080910402602001604051908101604052809291908181526020018280546113e790614258565b80156114345780601f1061140957610100808354040283529160200191611434565b820191906000526020600020905b81548152906001019060200180831161141757829003601f168201915b5050505050815250509050811580156114645750805173ffffffffffffffffffffffffffffffffffffffff163314155b1561149b576040517fef67f5d800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040808401516000908152601060205220600101541515806114f15783604001516040517f64e2ee9200000000000000000000000000000000000000000000000000000000815260040161047c91815260200190565b6020840151158061153757508360200151601060008660400151815260200190815260200160002060010154141580156115375750602084015161153790600b90612910565b1561156e576040517f8377314600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606084015180516000036115b057806040517f3748d4c600000000000000000000000000000000000000000000000000000000815260040161047c9190614b01565b60408581015160009081526010602052208054640100000000900463ffffffff169060046115dd836149c4565b82546101009290920a63ffffffff8181021990931691831602179091556040878101516000908152601060205290812054640100000000900490911691505b82518110156116e85761165283828151811061163a5761163a614055565b6020026020010151600361291090919063ffffffff16565b61168a57826040517f3748d4c600000000000000000000000000000000000000000000000000000000815260040161047c9190614b01565b6116d783828151811061169f5761169f614055565b6020908102919091018101516040808b015160009081526010845281812063ffffffff8089168352600390910190945220916129ae16565b506116e1816144fc565b905061161c565b5085516040808801805160009081526010602090815283822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff9096169590951790945581518082528382206002015581518152828120600190810154948b015192518252929020909101541461179d5761176c600b82613282565b50602080880180516040808b015160009081526010909452909220600101919091555161179b90600b906129ae565b505b60408781015188516020808b0151845193845263ffffffff909216908301528183015290517ff101cfc54994c31624d25789378d71ec4dbdc533e26a4ecc6b7648f4798d09169181900360600190a150505050505050806117fd906144fc565b9050611304565b6040805180820190915260008152606060208201526000828152600f60209081526040918290208251808401909352805473ffffffffffffffffffffffffffffffffffffffff168352600181018054919284019161186190614258565b80601f016020809104026020016040519081016040528092919081815260200182805461188d90614258565b80156118da5780601f106118af576101008083540402835291602001916118da565b820191906000526020600020905b8154815290600101906020018083116118bd57829003601f168201915b5050505050815250509050919050565b60125460609063ffffffff16600060016119046007612f9c565b601254611917919063ffffffff166149e7565b61192191906149e7565b67ffffffffffffffff811115611939576119396140c2565b60405190808252806020026020018201604052801561197f57816020015b6040805180820190915260008152606060208201528152602001906001900390816119575790505b509050600060015b8363ffffffff16811015610e18576119a0600782612910565b611a98576000818152600f60209081526040918290208251808401909352805473ffffffffffffffffffffffffffffffffffffffff16835260018101805491928401916119ec90614258565b80601f0160208091040260200160405190810160405280929190818152602001828054611a1890614258565b8015611a655780601f10611a3a57610100808354040283529160200191611a65565b820191906000526020600020905b815481529060010190602001808311611a4857829003601f168201915b505050505081525050838381518110611a8057611a80614055565b602002602001018190525081611a95906144fc565b91505b611aa1816144fc565b9050611987565b60005b81811015610b7c576000838383818110611ac757611ac7614055565b9050602002810190611ad991906149fa565b611ae290614a2e565b90506000611b0560005473ffffffffffffffffffffffffffffffffffffffff1690565b825163ffffffff166000908152600f602090815260408083208151808301909252805473ffffffffffffffffffffffffffffffffffffffff90811683526001820180549690911633149650939491939092840191611b6290614258565b80601f0160208091040260200160405190810160405280929190818152602001828054611b8e90614258565b8015611bdb5780601f10611bb057610100808354040283529160200191611bdb565b820191906000526020600020905b815481529060010190602001808311611bbe57829003601f168201915b505050505081525050905081158015611c0b5750805173ffffffffffffffffffffffffffffffffffffffff163314155b15611c42576040517fef67f5d800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60408084015160009081526010602052206001015415158080611c6757506040840151155b15611ca65783604001516040517f64e2ee9200000000000000000000000000000000000000000000000000000000815260040161047c91815260200190565b60208401511580611cc357506020840151611cc390600b90612910565b15611cfa576040517f8377314600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60608401518051600003611d3c57806040517f3748d4c600000000000000000000000000000000000000000000000000000000815260040161047c9190614b01565b60408581015160009081526010602052208054600490611d6990640100000000900463ffffffff166149c4565b82546101009290920a63ffffffff81810219909316918316021790915560408681015160009081526010602052908120546401000000009004909116905b8251811015611e2357611dc583828151811061163a5761163a614055565b611dfd57826040517f3748d4c600000000000000000000000000000000000000000000000000000000815260040161047c9190614b01565b611e1283828151811061169f5761169f614055565b50611e1c816144fc565b9050611da7565b5085516040808801805160009081526010602090815283822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff9687161790558251808352848320600201558a018051925182529290206001015551611e9591600b91906129ae16565b506040860151611ea790600d906129ae565b5060408681015187516020808a0151845193845263ffffffff909216908301528183015290517fc9296aa9b0951d8000e8ed7f2b5be30c5106de8df3dbedf9a57c93f5f9e4d7da9181900360600190a150505050505080611f07906144fc565b9050611aab565b60015473ffffffffffffffffffffffffffffffffffffffff163314611f8f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4d7573742062652070726f706f736564206f776e657200000000000000000000604482015260640161047c565b60008054337fffffffffffffffffffffffff00000000000000000000000000000000000000008083168217845560018054909116905560405173ffffffffffffffffffffffffffffffffffffffff90921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b61201361292b565b63ffffffff808916600090815260116020526040812054640100000000900490911690819003612077576040517f2b62be9b00000000000000000000000000000000000000000000000000000000815263ffffffff8a16600482015260240161047c565b6120cc888888886040518060a001604052808f63ffffffff1681526020018761209f906149c4565b97508763ffffffff1681526020018a1515815260200189151581526020018863ffffffff168152506129ba565b505050505050505050565b6121076040805160a081018252606080825260208201529081016000815260200160008152600060209091015290565b60008281526002602052604090819020815160a0810190925280548290829061212f90614258565b80601f016020809104026020016040519081016040528092919081815260200182805461215b90614258565b80156121a85780601f1061217d576101008083540402835291602001916121a8565b820191906000526020600020905b81548152906001019060200180831161218b57829003601f168201915b505050505081526020016001820180546121c190614258565b80601f01602080910402602001604051908101604052809291908181526020018280546121ed90614258565b801561223a5780601f1061220f5761010080835404028352916020019161223a565b820191906000526020600020905b81548152906001019060200180831161221d57829003601f168201915b5050509183525050600282015460209091019060ff16600381111561226157612261613deb565b600381111561227257612272613deb565b81526020016002820160019054906101000a900460ff16600181111561229a5761229a613deb565b60018111156122ab576122ab613deb565b81526002919091015462010000900473ffffffffffffffffffffffffffffffffffffffff1660209091015292915050565b6122e461292b565b6122ef600382612910565b612328576040517fe181733f0000000000000000000000000000000000000000000000000000000081526004810182905260240161047c565b612333600582612910565b1561236d576040517ff7d7a2940000000000000000000000000000000000000000000000000000000081526004810182905260240161047c565b6123786005826129ae565b5060405181907fdcea1b78b6ddc31592a94607d537543fcaafda6cc52d6d5cc7bbfca1422baf2190600090a250565b63ffffffff808316600090815260116020908152604080832080546401000000009004909416808452600190940182528083208584526003019091529020805460609291906123f590614258565b80601f016020809104026020016040519081016040528092919081815260200182805461242190614258565b801561246e5780601f106124435761010080835404028352916020019161246e565b820191906000526020600020905b81548152906001019060200180831161245157829003601f168201915b505050505091505092915050565b6060600061248a6003613333565b905060006124986005612f9c565b82516124a491906149e7565b67ffffffffffffffff8111156124bc576124bc6140c2565b60405190808252806020026020018201604052801561251d57816020015b61250a6040805160a081018252606080825260208201529081016000815260200160008152600060209091015290565b8152602001906001900390816124da5790505b5090506000805b8351811015610e1857600084828151811061254157612541614055565b6020026020010151905061255f81600561291090919063ffffffff16565b6127605760008181526002602052604090819020815160a0810190925280548290829061258b90614258565b80601f01602080910402602001604051908101604052809291908181526020018280546125b790614258565b80156126045780601f106125d957610100808354040283529160200191612604565b820191906000526020600020905b8154815290600101906020018083116125e757829003601f168201915b5050505050815260200160018201805461261d90614258565b80601f016020809104026020016040519081016040528092919081815260200182805461264990614258565b80156126965780601f1061266b57610100808354040283529160200191612696565b820191906000526020600020905b81548152906001019060200180831161267957829003601f168201915b5050509183525050600282015460209091019060ff1660038111156126bd576126bd613deb565b60038111156126ce576126ce613deb565b81526020016002820160019054906101000a900460ff1660018111156126f6576126f6613deb565b600181111561270757612707613deb565b81526002919091015462010000900473ffffffffffffffffffffffffffffffffffffffff16602090910152845185908590811061274657612746614055565b6020026020010181905250828061275c906144fc565b9350505b5061276a816144fc565b9050612524565b6060806000612780600d613333565b90506000815167ffffffffffffffff81111561279e5761279e6140c2565b60405190808252806020026020018201604052801561280d57816020015b60408051608081018252600080825260208083018290529282015260608082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092019101816127bc5790505b5090506000825167ffffffffffffffff81111561282c5761282c6140c2565b604051908082528060200260200182016040528015612855578160200160208202803683370190505b50905060005b83518110156128f157600084828151811061287857612878614055565b6020026020010151905060008061288e8361328e565b91509150818685815181106128a5576128a5614055565b6020026020010181905250808585815181106128c3576128c3614055565b602002602001019063ffffffff16908163ffffffff1681525050505050806128ea906144fc565b905061285b565b509094909350915050565b61290461292b565b61290d81613340565b50565b600081815260018301602052604081205415155b9392505050565b60005473ffffffffffffffffffffffffffffffffffffffff1633146129ac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4f6e6c792063616c6c61626c65206279206f776e657200000000000000000000604482015260640161047c565b565b60006129248383613435565b805163ffffffff90811660009081526011602090815260408083208286015185168452600101909152902060808301519091161580612a0e575060808201518590612a06906001614b14565b63ffffffff16115b15612a5a5760808201516040517fd5f5269100000000000000000000000000000000000000000000000000000000815263ffffffff90911660048201526024810186905260440161047c565b60005b85811015612b2257612a8a878783818110612a7a57612a7a614055565b8592602090910201359050612910565b15612aec578251878783818110612aa357612aa3614055565b6040517f636e405700000000000000000000000000000000000000000000000000000000815263ffffffff9094166004850152602002919091013560248301525060440161047c565b612b11878783818110612b0157612b01614055565b85926020909102013590506129ae565b50612b1b816144fc565b9050612a5d565b5060005b83811015612e0e5736858583818110612b4157612b41614055565b9050602002810190612b539190614084565b9050612b6160038235612910565b612b9a576040517fe181733f0000000000000000000000000000000000000000000000000000000081528135600482015260240161047c565b612ba660058235612910565b15612be0576040517ff7d7a2940000000000000000000000000000000000000000000000000000000081528135600482015260240161047c565b8035600090815260038401602052604081208054612bfd90614258565b90501115612c495783516040517f3927d08000000000000000000000000000000000000000000000000000000000815263ffffffff90911660048201528135602482015260440161047c565b60005b87811015612d5b57612cf08235601060008c8c86818110612c6f57612c6f614055565b9050602002013581526020019081526020016000206003016000601060008e8e88818110612c9f57612c9f614055565b90506020020135815260200190815260200160002060000160049054906101000a900463ffffffff1663ffffffff1663ffffffff16815260200190815260200160002061291090919063ffffffff16565b612d4b57888882818110612d0657612d06614055565b6040517fa7e79250000000000000000000000000000000000000000000000000000000008152602090910292909201356004830152508235602482015260440161047c565b612d54816144fc565b9050612c4c565b5060028301805460018101825560009182526020918290208335910155612d84908201826145af565b82356000908152600386016020526040902091612da2919083614631565b508351602080860151612dfd92918435908c908c90612dc3908801886145af565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061348492505050565b50612e07816144fc565b9050612b26565b50604080830151835163ffffffff90811660009081526011602090815284822080549415156c01000000000000000000000000027fffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff90951694909417909355606086015186518316825284822080549115156d0100000000000000000000000000027fffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff9092169190911790556080860151865183168252848220805491841668010000000000000000027fffffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffff909216919091179055918501805186518316845292849020805493909216640100000000027fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff9093169290921790558351905191517ff264aae70bf6a9d90e68e0f9b393f4e7fbea67b063b0f336e0b36c158170365192612f8c929163ffffffff92831681529116602082015260400190565b60405180910390a1505050505050565b6000610794825490565b6040805160e0810182526000808252602080830182905282840182905260608084018390526080840183905260a0840181905260c084015263ffffffff85811683526011825284832080546401000000009004909116808452600190910182528483206002810180548751818602810186019098528088529596929591949390919083018282801561305757602002820191906000526020600020905b815481526020019060010190808311613043575b505050505090506000815167ffffffffffffffff81111561307a5761307a6140c2565b6040519080825280602002602001820160405280156130c057816020015b6040805180820190915260008152606060208201528152602001906001900390816130985790505b50905060005b81518110156131e15760405180604001604052808483815181106130ec576130ec614055565b6020026020010151815260200185600301600086858151811061311157613111614055565b60200260200101518152602001908152602001600020805461313290614258565b80601f016020809104026020016040519081016040528092919081815260200182805461315e90614258565b80156131ab5780601f10613180576101008083540402835291602001916131ab565b820191906000526020600020905b81548152906001019060200180831161318e57829003601f168201915b50505050508152508282815181106131c5576131c5614055565b6020026020010181905250806131da906144fc565b90506130c6565b506040805160e08101825263ffffffff8089166000818152601160208181528683205480861687528b8616828801526801000000000000000081049095169686019690965260ff6c010000000000000000000000008504811615156060870152929091529093526d010000000000000000000000000090049091161515608082015260a0810161327085613333565b81526020019190915295945050505050565b60006129248383613565565b604080516080810182526000808252602082018190529181019190915260608082015260408051608081018252600084815260106020908152838220805463ffffffff80821686526001830154848701526002830154868801526401000000009091041683526003019052918220606082019061330a90613333565b905260009384526010602052604090932054929364010000000090930463ffffffff1692915050565b606060006129248361365f565b3373ffffffffffffffffffffffffffffffffffffffff8216036133bf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640161047c565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b600081815260018301602052604081205461347c57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610794565b506000610794565b6000848152600260208190526040909120015462010000900473ffffffffffffffffffffffffffffffffffffffff161561074657600084815260026020819052604091829020015490517ffba64a7c0000000000000000000000000000000000000000000000000000000081526201000090910473ffffffffffffffffffffffffffffffffffffffff169063fba64a7c9061352b908690869086908b908d90600401614b31565b600060405180830381600087803b15801561354557600080fd5b505af1158015613559573d6000803e3d6000fd5b50505050505050505050565b6000818152600183016020526040812054801561364e5760006135896001836149e7565b855490915060009061359d906001906149e7565b90508181146136025760008660000182815481106135bd576135bd614055565b90600052602060002001549050808760000184815481106135e0576135e0614055565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061361357613613614bb3565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610794565b6000915050610794565b5092915050565b6060816000018054806020026020016040519081016040528092919081815260200182805480156136af57602002820191906000526020600020905b81548152602001906001019080831161369b575b50505050509050919050565b5080546136c790614258565b6000825580601f106136d7575050565b601f01602090049060005260206000209081019061290d91905b8082111561370557600081556001016136f1565b5090565b60008083601f84011261371b57600080fd5b50813567ffffffffffffffff81111561373357600080fd5b6020830191508360208260051b850101111561374e57600080fd5b9250929050565b6000806000806040858703121561376b57600080fd5b843567ffffffffffffffff8082111561378357600080fd5b61378f88838901613709565b909650945060208701359150808211156137a857600080fd5b506137b587828801613709565b95989497509550505050565b60008083601f8401126137d357600080fd5b50813567ffffffffffffffff8111156137eb57600080fd5b60208301915083602082850101111561374e57600080fd5b6000806000806040858703121561381957600080fd5b843567ffffffffffffffff8082111561383157600080fd5b61383d888389016137c1565b9096509450602087013591508082111561385657600080fd5b506137b5878288016137c1565b60006020828403121561387557600080fd5b5035919050565b60006020828403121561388e57600080fd5b813567ffffffffffffffff8111156138a557600080fd5b820160a0818503121561292457600080fd5b6000815180845260005b818110156138dd576020818501810151868301820152016138c1565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b60208152600061292460208301846138b7565b801515811461290d57600080fd5b803563ffffffff8116811461395057600080fd5b919050565b600080600080600080600060a0888a03121561397057600080fd5b873567ffffffffffffffff8082111561398857600080fd5b6139948b838c01613709565b909950975060208a01359150808211156139ad57600080fd5b506139ba8a828b01613709565b90965094505060408801356139ce8161392e565b925060608801356139de8161392e565b91506139ec6080890161393c565b905092959891949750929550565b60008060208385031215613a0d57600080fd5b823567ffffffffffffffff811115613a2457600080fd5b613a3085828601613709565b90969095509350505050565b600081518084526020808501945080840160005b83811015613a6c57815187529582019590820190600101613a50565b509495945050505050565b600063ffffffff80835116845260208181850151168186015260408281860151168187015260608501511515606087015260808501511515608087015260a0850151925060e060a0870152613acf60e0870184613a3c565b925060c085015186840360c08801528381518086528486019150848160051b870101858401935060005b82811015613b56578782037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0018452845180518352870151878301879052613b43878401826138b7565b9588019594880194925050600101613af9565b509998505050505050505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015613bd7577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0888603018452613bc5858351613a77565b94509285019290850190600101613b8b565b5092979650505050505050565b600060208284031215613bf657600080fd5b6129248261393c565b6020815260006129246020830184613a77565b63ffffffff815116825260208101516020830152604081015160408301526000606082015160806060850152613c4b6080850182613a3c565b949350505050565b604081526000613c666040830185613c12565b905063ffffffff831660208301529392505050565b73ffffffffffffffffffffffffffffffffffffffff81511682526000602082015160406020850152613c4b60408501826138b7565b6020815260006129246020830184613c7b565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015613bd7577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0888603018452613d24858351613c7b565b94509285019290850190600101613cea565b60008060008060008060008060c0898b031215613d5257600080fd5b613d5b8961393c565b9750602089013567ffffffffffffffff80821115613d7857600080fd5b613d848c838d01613709565b909950975060408b0135915080821115613d9d57600080fd5b50613daa8b828c01613709565b9096509450506060890135613dbe8161392e565b92506080890135613dce8161392e565b9150613ddc60a08a0161393c565b90509295985092959890939650565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6000815160a08452613e2f60a08501826138b7565b905060208301518482036020860152613e4882826138b7565b915050604083015160048110613e6057613e60613deb565b6040850152606083015160028110613e7a57613e7a613deb565b606085015260809283015173ffffffffffffffffffffffffffffffffffffffff1692909301919091525090565b6020815260006129246020830184613e1a565b60008060408385031215613ecd57600080fd5b613ed68361393c565b946020939093013593505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015613bd7577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0888603018452613f45858351613e1a565b94509285019290850190600101613f0b565b6000604082016040835280855180835260608501915060608160051b8601019250602080880160005b83811015613fcc577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0888703018552613fba868351613c12565b95509382019390820190600101613f80565b50508584038187015286518085528782019482019350915060005b8281101561400957845163ffffffff1684529381019392810192600101613fe7565b5091979650505050505050565b73ffffffffffffffffffffffffffffffffffffffff8116811461290d57600080fd5b60006020828403121561404a57600080fd5b813561292481614016565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc18336030181126140b857600080fd5b9190910192915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715614114576141146140c2565b60405290565b6040516080810167ffffffffffffffff81118282101715614114576141146140c2565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715614184576141846140c2565b604052919050565b60006040823603121561419e57600080fd5b6141a66140f1565b82356141b181614016565b815260208381013567ffffffffffffffff808211156141cf57600080fd5b9085019036601f8301126141e257600080fd5b8135818111156141f4576141f46140c2565b614224847fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160161413d565b9150808252368482850101111561423a57600080fd5b80848401858401376000908201840152918301919091525092915050565b600181811c9082168061426c57607f821691505b6020821081036142a5577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b60006020808352600084546142bf81614258565b808487015260406001808416600081146142e0576001811461431857614346565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008516838a01528284151560051b8a01019550614346565b896000528660002060005b8581101561433e5781548b8201860152908301908801614323565b8a0184019650505b509398975050505050505050565b601f821115610b7c57600081815260208120601f850160051c8101602086101561437b5750805b601f850160051c820191505b8181101561074657828155600101614387565b815167ffffffffffffffff8111156143b4576143b46140c2565b6143c8816143c28454614258565b84614354565b602080601f83116001811461441b57600084156143e55750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555610746565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561446857888601518255948401946001909101908401614449565b50858210156144a457878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b828152604060208201526000613c4b60408301846138b7565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361452d5761452d6144cd565b5060010190565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b604081526000614591604083018688614534565b82810360208401526145a4818587614534565b979650505050505050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126145e457600080fd5b83018035915067ffffffffffffffff8211156145ff57600080fd5b60200191503681900382131561374e57600080fd5b60006020828403121561462657600080fd5b81516129248161392e565b67ffffffffffffffff831115614649576146496140c2565b61465d836146578354614258565b83614354565b6000601f8411600181146146af57600085156146795750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355614745565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b828110156146fe57868501358255602094850194600190920191016146de565b5086821015614739577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b600081356004811061079457600080fd5b6004821061476d5761476d613deb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0081541660ff831681178255505050565b600081356002811061079457600080fd5b600282106147bf576147bf613deb565b805461ff008360081b167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff8216178255505050565b6000813561079481614016565b61480b82836145af565b67ffffffffffffffff811115614823576148236140c2565b614837816148318554614258565b85614354565b6000601f82116001811461488957600083156148535750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600385901b1c1916600184901b17855561491f565b6000858152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0841690835b828110156148d857868501358255602094850194600190920191016148b8565b5084821015614913577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88660031b161c19848701351681555b505060018360011b0185555b5050505061493060208301836145af565b61493e818360018601614631565b5050600281016149596149536040850161474c565b8261475d565b61496e6149686060850161479e565b826147af565b610b7c61497d608085016147f4565b82547fffffffffffffffffffff0000000000000000000000000000000000000000ffff1660109190911b75ffffffffffffffffffffffffffffffffffffffff000016178255565b600063ffffffff8083168181036149dd576149dd6144cd565b6001019392505050565b81810381811115610794576107946144cd565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818336030181126140b857600080fd5b600060808236031215614a4057600080fd5b614a4861411a565b614a518361393c565b81526020808401358183015260408401356040830152606084013567ffffffffffffffff80821115614a8257600080fd5b9085019036601f830112614a9557600080fd5b813581811115614aa757614aa76140c2565b8060051b9150614ab884830161413d565b8181529183018401918481019036841115614ad257600080fd5b938501935b83851015614af057843582529385019390850190614ad7565b606087015250939695505050505050565b6020815260006129246020830184613a3c565b63ffffffff818116838216019080821115613658576136586144cd565b6080815284608082015260007f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff861115614b6a57600080fd5b8560051b808860a0850137820182810360a09081016020850152614b90908201876138b7565b91505063ffffffff80851660408401528084166060840152509695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea164736f6c6343000813000a", + ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"AccessForbidden\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hashedCapabilityId\",\"type\":\"bytes32\"}],\"name\":\"CapabilityAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hashedCapabilityId\",\"type\":\"bytes32\"}],\"name\":\"CapabilityDoesNotExist\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hashedCapabilityId\",\"type\":\"bytes32\"}],\"name\":\"CapabilityIsDeprecated\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"}],\"name\":\"DONDoesNotExist\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"}],\"name\":\"DuplicateDONCapability\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"nodeP2PId\",\"type\":\"bytes32\"}],\"name\":\"DuplicateDONNode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"proposedConfigurationContract\",\"type\":\"address\"}],\"name\":\"InvalidCapabilityConfigurationContractInterface\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"f\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"nodeCount\",\"type\":\"uint256\"}],\"name\":\"InvalidFaultTolerance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"hashedCapabilityIds\",\"type\":\"bytes32[]\"}],\"name\":\"InvalidNodeCapabilities\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidNodeOperatorAdmin\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"}],\"name\":\"InvalidNodeP2PId\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidNodeSigner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"lengthOne\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lengthTwo\",\"type\":\"uint256\"}],\"name\":\"LengthMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"nodeP2PId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"}],\"name\":\"NodeDoesNotSupportCapability\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"}],\"name\":\"NodeOperatorDoesNotExist\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"nodeP2PId\",\"type\":\"bytes32\"}],\"name\":\"NodePartOfDON\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"hashedCapabilityId\",\"type\":\"bytes32\"}],\"name\":\"CapabilityConfigured\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"hashedCapabilityId\",\"type\":\"bytes32\"}],\"name\":\"CapabilityDeprecated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"configCount\",\"type\":\"uint32\"}],\"name\":\"ConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"signer\",\"type\":\"bytes32\"}],\"name\":\"NodeAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"NodeOperatorAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"}],\"name\":\"NodeOperatorRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"NodeOperatorUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"}],\"name\":\"NodeRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"signer\",\"type\":\"bytes32\"}],\"name\":\"NodeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"labelledName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"enumCapabilityRegistry.CapabilityType\",\"name\":\"capabilityType\",\"type\":\"uint8\"},{\"internalType\":\"enumCapabilityRegistry.CapabilityResponseType\",\"name\":\"responseType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"configurationContract\",\"type\":\"address\"}],\"internalType\":\"structCapabilityRegistry.Capability[]\",\"name\":\"capabilities\",\"type\":\"tuple[]\"}],\"name\":\"addCapabilities\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"nodes\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"internalType\":\"structCapabilityRegistry.CapabilityConfiguration[]\",\"name\":\"capabilityConfigurations\",\"type\":\"tuple[]\"},{\"internalType\":\"bool\",\"name\":\"isPublic\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"acceptsWorkflows\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"f\",\"type\":\"uint32\"}],\"name\":\"addDON\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"internalType\":\"structCapabilityRegistry.NodeOperator[]\",\"name\":\"nodeOperators\",\"type\":\"tuple[]\"}],\"name\":\"addNodeOperators\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"signer\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"hashedCapabilityIds\",\"type\":\"bytes32[]\"}],\"internalType\":\"structCapabilityRegistry.NodeInfo[]\",\"name\":\"nodes\",\"type\":\"tuple[]\"}],\"name\":\"addNodes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"hashedCapabilityIds\",\"type\":\"bytes32[]\"}],\"name\":\"deprecateCapabilities\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCapabilities\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"labelledName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"enumCapabilityRegistry.CapabilityType\",\"name\":\"capabilityType\",\"type\":\"uint8\"},{\"internalType\":\"enumCapabilityRegistry.CapabilityResponseType\",\"name\":\"responseType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"configurationContract\",\"type\":\"address\"}],\"internalType\":\"structCapabilityRegistry.Capability[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hashedId\",\"type\":\"bytes32\"}],\"name\":\"getCapability\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"labelledName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"enumCapabilityRegistry.CapabilityType\",\"name\":\"capabilityType\",\"type\":\"uint8\"},{\"internalType\":\"enumCapabilityRegistry.CapabilityResponseType\",\"name\":\"responseType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"configurationContract\",\"type\":\"address\"}],\"internalType\":\"structCapabilityRegistry.Capability\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"}],\"name\":\"getCapabilityConfigs\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"}],\"name\":\"getDON\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"id\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"configCount\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"f\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"isPublic\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"acceptsWorkflows\",\"type\":\"bool\"},{\"internalType\":\"bytes32[]\",\"name\":\"nodeP2PIds\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"internalType\":\"structCapabilityRegistry.CapabilityConfiguration[]\",\"name\":\"capabilityConfigurations\",\"type\":\"tuple[]\"}],\"internalType\":\"structCapabilityRegistry.DONInfo\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDONs\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"id\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"configCount\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"f\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"isPublic\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"acceptsWorkflows\",\"type\":\"bool\"},{\"internalType\":\"bytes32[]\",\"name\":\"nodeP2PIds\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"internalType\":\"structCapabilityRegistry.CapabilityConfiguration[]\",\"name\":\"capabilityConfigurations\",\"type\":\"tuple[]\"}],\"internalType\":\"structCapabilityRegistry.DONInfo[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"labelledName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"}],\"name\":\"getHashedCapabilityId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"}],\"name\":\"getNode\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"signer\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"hashedCapabilityIds\",\"type\":\"bytes32[]\"}],\"internalType\":\"structCapabilityRegistry.NodeInfo\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"configCount\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"}],\"name\":\"getNodeOperator\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"internalType\":\"structCapabilityRegistry.NodeOperator\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNodeOperators\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"internalType\":\"structCapabilityRegistry.NodeOperator[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNodes\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"signer\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"hashedCapabilityIds\",\"type\":\"bytes32[]\"}],\"internalType\":\"structCapabilityRegistry.NodeInfo[]\",\"name\":\"\",\"type\":\"tuple[]\"},{\"internalType\":\"uint32[]\",\"name\":\"\",\"type\":\"uint32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hashedCapabilityId\",\"type\":\"bytes32\"}],\"name\":\"isCapabilityDeprecated\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32[]\",\"name\":\"donIds\",\"type\":\"uint32[]\"}],\"name\":\"removeDONs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32[]\",\"name\":\"nodeOperatorIds\",\"type\":\"uint32[]\"}],\"name\":\"removeNodeOperators\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"removedNodeP2PIds\",\"type\":\"bytes32[]\"}],\"name\":\"removeNodes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"typeAndVersion\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32[]\",\"name\":\"nodes\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"internalType\":\"structCapabilityRegistry.CapabilityConfiguration[]\",\"name\":\"capabilityConfigurations\",\"type\":\"tuple[]\"},{\"internalType\":\"bool\",\"name\":\"isPublic\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"acceptsWorkflows\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"f\",\"type\":\"uint32\"}],\"name\":\"updateDON\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32[]\",\"name\":\"nodeOperatorIds\",\"type\":\"uint32[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"internalType\":\"structCapabilityRegistry.NodeOperator[]\",\"name\":\"nodeOperators\",\"type\":\"tuple[]\"}],\"name\":\"updateNodeOperators\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"signer\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"hashedCapabilityIds\",\"type\":\"bytes32[]\"}],\"internalType\":\"structCapabilityRegistry.NodeInfo[]\",\"name\":\"nodes\",\"type\":\"tuple[]\"}],\"name\":\"updateNodes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", + Bin: "0x6080604052600e80546001600160401b0319166401000000011790553480156200002857600080fd5b503380600081620000805760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420736574206f776e657220746f207a65726f000000000000000060448201526064015b60405180910390fd5b600080546001600160a01b0319166001600160a01b0384811691909117909155811615620000b357620000b381620000bc565b50505062000167565b336001600160a01b03821603620001165760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640162000077565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b614db980620001776000396000f3fe608060405234801561001057600080fd5b50600436106101ae5760003560e01c80635d83d967116100ee57806386fa4246116100975780639cb7c5f4116100715780639cb7c5f4146103ea578063ddbe4f821461040a578063e29581aa1461041f578063f2fde38b1461043557600080fd5b806386fa42461461039c5780638da5cb5b146103af57806395864d1f146103d757600080fd5b8063715f5295116100c8578063715f52951461036e57806373ac22b41461038157806379ba50971461039457600080fd5b80635d83d967146103335780635e65e3091461034657806366acaa331461035957600080fd5b806322bdbcbc1161015b5780632c01a1e8116101355780632c01a1e8146102cb578063398f3773146102de5780633f2a13c9146102f157806350c946fe1461031257600080fd5b806322bdbcbc146102785780632353740514610298578063275459f2146102b857600080fd5b8063193ec0061161018c578063193ec0061461023b5780631d05394c14610250578063214502431461026357600080fd5b80630fe5800a146101b357806312570011146101d9578063181f5a77146101fc575b600080fd5b6101c66101c1366004613bd7565b610448565b6040519081526020015b60405180910390f35b6101ec6101e7366004613c3b565b61047c565b60405190151581526020016101d0565b604080518082018252601881527f4361706162696c697479526567697374727920312e302e300000000000000000602082015290516101d09190613cc2565b61024e610249366004613d41565b610489565b005b61024e61025e366004613de6565b610553565b61026b61070f565b6040516101d09190613f50565b61028b610286366004613fd0565b610874565b6040516101d09190614028565b6102ab6102a6366004613fd0565b610961565b6040516101d0919061403b565b61024e6102c6366004613de6565b6109a5565b61024e6102d9366004613de6565b610a7c565b61024e6102ec366004613de6565b610c9f565b6103046102ff36600461404e565b610e67565b6040516101d0929190614078565b610325610320366004613c3b565b611053565b6040516101d09291906140df565b61024e610341366004613de6565b6110f8565b61024e610354366004613de6565b611246565b6103616116b8565b6040516101d09190614107565b61024e61037c366004613de6565b6118a3565b61024e61038f366004613de6565b61195e565b61024e611dcf565b61024e6103aa36600461417a565b611ecc565b60005460405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101d0565b61024e6103e53660046141e6565b612212565b6103fd6103f8366004613c3b565b6122de565b6040516101d09190614357565b6104126124e3565b6040516101d0919061436a565b6104276127e1565b6040516101d09291906143dd565b61024e6104433660046144c0565b612959565b6000828260405160200161045d929190614078565b6040516020818303038152906040528051906020012090505b92915050565b600061047660058361296d565b610491612988565b600e805460009164010000000090910463ffffffff169060046104b38361450a565b82546101009290920a63ffffffff8181021990931691831602179091558181166000818152600d602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001684179055815160a0810183529283526001908301528715159082015285151560608201529084166080820152909150610549908990899089908990612a0b565b5050505050505050565b61055b612988565b60005b8181101561070a57600083838381811061057a5761057a61452d565b905060200201602081019061058f9190613fd0565b63ffffffff8082166000908152600d60209081526040808320805464010000000090049094168084526001850190925282209394509192905b6105d1826130bb565b811015610629576106188563ffffffff16600c60006105f985876130c590919063ffffffff16565b81526020019081526020016000206004016130d190919063ffffffff16565b506106228161455c565b90506105c8565b508254640100000000900463ffffffff16600003610680576040517f2b62be9b00000000000000000000000000000000000000000000000000000000815263ffffffff851660048201526024015b60405180910390fd5b63ffffffff84166000818152600d6020908152604080832080547fffffffffffffffffffffffffffffffffffff00000000000000000000000000001690558051938452908301919091527ff264aae70bf6a9d90e68e0f9b393f4e7fbea67b063b0f336e0b36c1581703651910160405180910390a150505050806107039061455c565b905061055e565b505050565b600e54606090640100000000900463ffffffff166000610730600183614594565b63ffffffff1667ffffffffffffffff81111561074e5761074e613a71565b6040519080825280602002602001820160405280156107d557816020015b6040805160e081018252600080825260208083018290529282018190526060808301829052608083019190915260a0820181905260c082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90920191018161076c5790505b509050600060015b8363ffffffff168163ffffffff1610156108515763ffffffff8082166000908152600d6020526040902054161561084157610817816130dd565b8383815181106108295761082961452d565b60200260200101819052508161083e9061455c565b91505b61084a8161450a565b90506107dd565b5061085d600184614594565b63ffffffff16811461086d578082525b5092915050565b60408051808201909152600081526060602082015263ffffffff82166000908152600b60209081526040918290208251808401909352805473ffffffffffffffffffffffffffffffffffffffff16835260018101805491928401916108d8906145b1565b80601f0160208091040260200160405190810160405280929190818152602001828054610904906145b1565b80156109515780601f1061092657610100808354040283529160200191610951565b820191906000526020600020905b81548152906001019060200180831161093457829003601f168201915b5050505050815250509050919050565b6040805160e0810182526000808252602082018190529181018290526060808201839052608082019290925260a0810182905260c0810191909152610476826130dd565b6109ad612988565b60005b63ffffffff811682111561070a57600083838363ffffffff168181106109d8576109d861452d565b90506020020160208101906109ed9190613fd0565b63ffffffff81166000908152600b6020526040812080547fffffffffffffffffffffffff0000000000000000000000000000000000000000168155919250610a386001830182613a04565b505060405163ffffffff8216907fa59268ca81d40429e65ccea5385b59cf2d3fc6519371dee92f8eb1dae5107a7a90600090a250610a758161450a565b90506109b0565b6000805473ffffffffffffffffffffffffffffffffffffffff163314905b82811015610c99576000848483818110610ab657610ab661452d565b602090810292909201356000818152600c90935260409092206001810154929350919050610b13576040517f64e2ee9200000000000000000000000000000000000000000000000000000000815260048101839052602401610677565b6000610b21826004016130bb565b1115610b5c576040517f34a4a3f600000000000000000000000000000000000000000000000000000000815260048101839052602401610677565b83158015610b965750805463ffffffff166000908152600b602052604090205473ffffffffffffffffffffffffffffffffffffffff163314155b15610bcf576040517f9473075d000000000000000000000000000000000000000000000000000000008152336004820152602401610677565b6001810154610be0906007906130d1565b506002810154610bf2906009906130d1565b506000828152600c6020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016815560018101829055600281018290559060048201818181610c478282613a3e565b5050505050507f5254e609a97bab37b7cc79fe128f85c097bd6015c6e1624ae0ba392eb975320582604051610c7e91815260200190565b60405180910390a1505080610c929061455c565b9050610a9a565b50505050565b610ca7612988565b60005b8181101561070a576000838383818110610cc657610cc661452d565b9050602002810190610cd89190614604565b610ce190614642565b805190915073ffffffffffffffffffffffffffffffffffffffff16610d32576040517feeacd93900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600e54604080518082018252835173ffffffffffffffffffffffffffffffffffffffff908116825260208086015181840190815263ffffffff9095166000818152600b909252939020825181547fffffffffffffffffffffffff00000000000000000000000000000000000000001692169190911781559251919290916001820190610dbe90826146fa565b5050600e8054909150600090610dd99063ffffffff1661450a565b91906101000a81548163ffffffff021916908363ffffffff160217905550816000015173ffffffffffffffffffffffffffffffffffffffff168163ffffffff167f78e94ca80be2c30abc061b99e7eb8583b1254781734b1e3ce339abb57da2fe8e8460200151604051610e4c9190613cc2565b60405180910390a3505080610e609061455c565b9050610caa565b63ffffffff8083166000908152600d60209081526040808320805464010000000090049094168084526001909401825280832085845260030190915281208054606093849390929091610eb9906145b1565b80601f0160208091040260200160405190810160405280929190818152602001828054610ee5906145b1565b8015610f325780601f10610f0757610100808354040283529160200191610f32565b820191906000526020600020905b815481529060010190602001808311610f1557829003601f168201915b5050506000888152600260208190526040909120015492935060609262010000900473ffffffffffffffffffffffffffffffffffffffff16159150611045905057600086815260026020819052604091829020015490517f8318ed5d00000000000000000000000000000000000000000000000000000000815263ffffffff891660048201526201000090910473ffffffffffffffffffffffffffffffffffffffff1690638318ed5d90602401600060405180830381865afa158015610ffc573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526110429190810190614814565b90505b9093509150505b9250929050565b6040805160808101825260008082526020820181905291810191909152606080820152604080516080810182526000848152600c6020908152838220805463ffffffff8082168652600183015484870152600283015486880152640100000000909104168352600301905291822060608201906110cf906133b9565b90526000938452600c602052604090932054929364010000000090930463ffffffff1692915050565b611100612988565b60005b8181101561070a57600083838381811061111f5761111f61452d565b90506020020135905061113c81600361296d90919063ffffffff16565b611175576040517fe181733f00000000000000000000000000000000000000000000000000000000815260048101829052602401610677565b6111806005826133c6565b6111b9576040517ff7d7a29400000000000000000000000000000000000000000000000000000000815260048101829052602401610677565b6000818152600260205260408120906111d28282613a04565b6111e0600183016000613a04565b5060020180547fffffffffffffffffffff0000000000000000000000000000000000000000000016905560405181907fdcea1b78b6ddc31592a94607d537543fcaafda6cc52d6d5cc7bbfca1422baf2190600090a25061123f8161455c565b9050611103565b6000805473ffffffffffffffffffffffffffffffffffffffff163314905b82811015610c995760008484838181106112805761128061452d565b90506020028101906112929190614882565b61129b906148b6565b805163ffffffff166000908152600b602090815260408083208151808301909252805473ffffffffffffffffffffffffffffffffffffffff1682526001810180549596509394919390928401916112f1906145b1565b80601f016020809104026020016040519081016040528092919081815260200182805461131d906145b1565b801561136a5780601f1061133f5761010080835404028352916020019161136a565b820191906000526020600020905b81548152906001019060200180831161134d57829003601f168201915b50505050508152505090508315801561139a5750805173ffffffffffffffffffffffffffffffffffffffff163314155b156113d3576040517f9473075d000000000000000000000000000000000000000000000000000000008152336004820152602401610677565b6040808301516000908152600c6020522060018101546114275782604001516040517f64e2ee9200000000000000000000000000000000000000000000000000000000815260040161067791815260200190565b6020830151158061145757508260200151816001015414158015611457575060208301516114579060079061296d565b1561148e576040517f8377314600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606083015180516000036114d057806040517f3748d4c60000000000000000000000000000000000000000000000000000000081526004016106779190614989565b8154640100000000900463ffffffff168260046114ec8361450a565b82546101009290920a63ffffffff8181021990931691831602179091558354640100000000900416905060005b82518110156115e45761154f8382815181106115375761153761452d565b6020026020010151600361296d90919063ffffffff16565b61158757826040517f3748d4c60000000000000000000000000000000000000000000000000000000081526004016106779190614989565b6115d383828151811061159c5761159c61452d565b60200260200101518560030160008563ffffffff1663ffffffff1681526020019081526020016000206133c690919063ffffffff16565b506115dd8161455c565b9050611519565b50845183547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff909116178355604085015160028401556001830154602086015181146116565761163b6007826130d1565b50602086015160018501819055611654906007906133c6565b505b85516040808801516020808a015183519283529082015263ffffffff909216917f4b5b465e22eea0c3d40c30e936643245b80d19b2dcf75788c0699fe8d8db645b910160405180910390a2505050505050806116b19061455c565b9050611264565b600e5460609063ffffffff1660006116d1600183614594565b63ffffffff1667ffffffffffffffff8111156116ef576116ef613a71565b60405190808252806020026020018201604052801561173557816020015b60408051808201909152600081526060602082015281526020019060019003908161170d5790505b509050600060015b8363ffffffff168163ffffffff16101561188d5763ffffffff81166000908152600b602052604090205473ffffffffffffffffffffffffffffffffffffffff161561187d5763ffffffff81166000908152600b60209081526040918290208251808401909352805473ffffffffffffffffffffffffffffffffffffffff16835260018101805491928401916117d1906145b1565b80601f01602080910402602001604051908101604052809291908181526020018280546117fd906145b1565b801561184a5780601f1061181f5761010080835404028352916020019161184a565b820191906000526020600020905b81548152906001019060200180831161182d57829003601f168201915b5050505050815250508383815181106118655761186561452d565b60200260200101819052508161187a9061455c565b91505b6118868161450a565b905061173d565b50600e5461085d9060019063ffffffff16614594565b6118ab612988565b60005b8181101561070a5760008383838181106118ca576118ca61452d565b90506020028101906118dc919061499c565b6118e5906149df565b905060006118fb82600001518360200151610448565b90506119086003826133c6565b611941576040517febf5255100000000000000000000000000000000000000000000000000000000815260048101829052602401610677565b61194b81836133d2565b5050806119579061455c565b90506118ae565b6000805473ffffffffffffffffffffffffffffffffffffffff163314905b82811015610c995760008484838181106119985761199861452d565b90506020028101906119aa9190614882565b6119b3906148b6565b805163ffffffff166000908152600b602090815260408083208151808301909252805473ffffffffffffffffffffffffffffffffffffffff168252600181018054959650939491939092840191611a09906145b1565b80601f0160208091040260200160405190810160405280929190818152602001828054611a35906145b1565b8015611a825780601f10611a5757610100808354040283529160200191611a82565b820191906000526020600020905b815481529060010190602001808311611a6557829003601f168201915b50505091909252505081519192505073ffffffffffffffffffffffffffffffffffffffff16611ae85781516040517fadd9ae1e00000000000000000000000000000000000000000000000000000000815263ffffffff9091166004820152602401610677565b83158015611b0d5750805173ffffffffffffffffffffffffffffffffffffffff163314155b15611b46576040517f9473075d000000000000000000000000000000000000000000000000000000008152336004820152602401610677565b6040808301516000908152600c602052206001810154151580611b6b57506040830151155b15611baa5782604001516040517f64e2ee9200000000000000000000000000000000000000000000000000000000815260040161067791815260200190565b60208301511580611bc757506020830151611bc79060079061296d565b15611bfe576040517f8377314600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60608301518051600003611c4057806040517f3748d4c60000000000000000000000000000000000000000000000000000000081526004016106779190614989565b81548290600490611c5e90640100000000900463ffffffff1661450a565b82546101009290920a63ffffffff818102199093169183160217909155825464010000000090041660005b8251811015611d0557611ca78382815181106115375761153761452d565b611cdf57826040517f3748d4c60000000000000000000000000000000000000000000000000000000081526004016106779190614989565b611cf483828151811061159c5761159c61452d565b50611cfe8161455c565b9050611c89565b50845183547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff91821617845560408601516002850155602086015160018501819055611d5b91600791906133c616565b506040850151611d6d906009906133c6565b50845160408087015160208089015183519283529082015263ffffffff909216917f74becb12a5e8fd0e98077d02dfba8f647c9670c9df177e42c2418cf17a636f05910160405180910390a2505050505080611dc89061455c565b905061197c565b60015473ffffffffffffffffffffffffffffffffffffffff163314611e50576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4d7573742062652070726f706f736564206f776e6572000000000000000000006044820152606401610677565b60008054337fffffffffffffffffffffffff00000000000000000000000000000000000000008083168217845560018054909116905560405173ffffffffffffffffffffffffffffffffffffffff90921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b828114611f0f576040517fab8b67c60000000000000000000000000000000000000000000000000000000081526004810184905260248101829052604401610677565b6000805473ffffffffffffffffffffffffffffffffffffffff16905b8481101561220a576000868683818110611f4757611f4761452d565b9050602002016020810190611f5c9190613fd0565b63ffffffff81166000908152600b6020526040902080549192509073ffffffffffffffffffffffffffffffffffffffff16611fcb576040517fadd9ae1e00000000000000000000000000000000000000000000000000000000815263ffffffff83166004820152602401610677565b6000868685818110611fdf57611fdf61452d565b9050602002810190611ff19190614604565b611ffa90614642565b805190915073ffffffffffffffffffffffffffffffffffffffff1661204b576040517feeacd93900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805173ffffffffffffffffffffffffffffffffffffffff16331480159061208857503373ffffffffffffffffffffffffffffffffffffffff861614155b156120c1576040517f9473075d000000000000000000000000000000000000000000000000000000008152336004820152602401610677565b8051825473ffffffffffffffffffffffffffffffffffffffff908116911614158061213d57506020808201516040516120fa9201613cc2565b60405160208183030381529060405280519060200120826001016040516020016121249190614a85565b6040516020818303038152906040528051906020012014155b156121f657805182547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9091161782556020810151600183019061219790826146fa565b50806000015173ffffffffffffffffffffffffffffffffffffffff168363ffffffff167f86f41145bde5dd7f523305452e4aad3685508c181432ec733d5f345009358a2883602001516040516121ed9190613cc2565b60405180910390a35b505050806122039061455c565b9050611f2b565b505050505050565b61221a612988565b63ffffffff8089166000908152600d602052604081205464010000000090049091169081900361227e576040517f2b62be9b00000000000000000000000000000000000000000000000000000000815263ffffffff8a166004820152602401610677565b6122d3888888886040518060a001604052808f63ffffffff168152602001876122a69061450a565b97508763ffffffff1681526020018a1515815260200189151581526020018863ffffffff16815250612a0b565b505050505050505050565b61230e6040805160a081018252606080825260208201529081016000815260200160008152600060209091015290565b60008281526002602052604090819020815160a08101909252805482908290612336906145b1565b80601f0160208091040260200160405190810160405280929190818152602001828054612362906145b1565b80156123af5780601f10612384576101008083540402835291602001916123af565b820191906000526020600020905b81548152906001019060200180831161239257829003601f168201915b505050505081526020016001820180546123c8906145b1565b80601f01602080910402602001604051908101604052809291908181526020018280546123f4906145b1565b80156124415780601f1061241657610100808354040283529160200191612441565b820191906000526020600020905b81548152906001019060200180831161242457829003601f168201915b5050509183525050600282015460209091019060ff1660038111156124685761246861429b565b60038111156124795761247961429b565b81526020016002820160019054906101000a900460ff1660018111156124a1576124a161429b565b60018111156124b2576124b261429b565b81526002919091015462010000900473ffffffffffffffffffffffffffffffffffffffff1660209091015292915050565b606060006124f160036133b9565b905060006124ff60056130bb565b825161250b9190614b2e565b67ffffffffffffffff81111561252357612523613a71565b60405190808252806020026020018201604052801561258457816020015b6125716040805160a081018252606080825260208201529081016000815260200160008152600060209091015290565b8152602001906001900390816125415790505b5090506000805b83518110156127d85760008482815181106125a8576125a861452d565b602002602001015190506125c681600561296d90919063ffffffff16565b6127c75760008181526002602052604090819020815160a081019092528054829082906125f2906145b1565b80601f016020809104026020016040519081016040528092919081815260200182805461261e906145b1565b801561266b5780601f106126405761010080835404028352916020019161266b565b820191906000526020600020905b81548152906001019060200180831161264e57829003601f168201915b50505050508152602001600182018054612684906145b1565b80601f01602080910402602001604051908101604052809291908181526020018280546126b0906145b1565b80156126fd5780601f106126d2576101008083540402835291602001916126fd565b820191906000526020600020905b8154815290600101906020018083116126e057829003601f168201915b5050509183525050600282015460209091019060ff1660038111156127245761272461429b565b60038111156127355761273561429b565b81526020016002820160019054906101000a900460ff16600181111561275d5761275d61429b565b600181111561276e5761276e61429b565b81526002919091015462010000900473ffffffffffffffffffffffffffffffffffffffff1660209091015284518590859081106127ad576127ad61452d565b602002602001018190525082806127c39061455c565b9350505b506127d18161455c565b905061258b565b50909392505050565b60608060006127f060096133b9565b90506000815167ffffffffffffffff81111561280e5761280e613a71565b60405190808252806020026020018201604052801561287d57816020015b60408051608081018252600080825260208083018290529282015260608082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90920191018161282c5790505b5090506000825167ffffffffffffffff81111561289c5761289c613a71565b6040519080825280602002602001820160405280156128c5578160200160208202803683370190505b50905060005b835181101561294e576128f68482815181106128e9576128e961452d565b6020026020010151611053565b8483815181106129085761290861452d565b602002602001018484815181106129215761292161452d565b602002602001018263ffffffff1663ffffffff168152508290525050806129479061455c565b90506128cb565b509094909350915050565b612961612988565b61296a81613666565b50565b600081815260018301602052604081205415155b9392505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314612a09576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4f6e6c792063616c6c61626c65206279206f776e6572000000000000000000006044820152606401610677565b565b805163ffffffff9081166000908152600d602090815260408083208286015185168452600101909152902060808301519091161580612a5f575060808201518590612a57906001614b41565b63ffffffff16115b15612aab5760808201516040517fd5f5269100000000000000000000000000000000000000000000000000000000815263ffffffff909116600482015260248101869052604401610677565b6001826020015163ffffffff161115612b5757815163ffffffff166000908152600d602090815260408220908401516001918201918391612aec9190614594565b63ffffffff1663ffffffff168152602001908152602001600020905060005b612b14826130bb565b811015612b5457612b43846000015163ffffffff16600c60006105f985876000016130c590919063ffffffff16565b50612b4d8161455c565b9050612b0b565b50505b60005b85811015612c4157612b87878783818110612b7757612b7761452d565b85926020909102013590506133c6565b612be8578251878783818110612b9f57612b9f61452d565b6040517f636e405700000000000000000000000000000000000000000000000000000000815263ffffffff90941660048501526020029190910135602483015250604401610677565b8251612c309063ffffffff16600c60008a8a86818110612c0a57612c0a61452d565b9050602002013581526020019081526020016000206004016133c690919063ffffffff16565b50612c3a8161455c565b9050612b5a565b5060005b83811015612f2d5736858583818110612c6057612c6061452d565b9050602002810190612c729190614604565b9050612c806003823561296d565b612cb9576040517fe181733f00000000000000000000000000000000000000000000000000000000815281356004820152602401610677565b612cc56005823561296d565b15612cff576040517ff7d7a29400000000000000000000000000000000000000000000000000000000815281356004820152602401610677565b8035600090815260038401602052604081208054612d1c906145b1565b90501115612d685783516040517f3927d08000000000000000000000000000000000000000000000000000000000815263ffffffff909116600482015281356024820152604401610677565b60005b87811015612e7a57612e0f8235600c60008c8c86818110612d8e57612d8e61452d565b9050602002013581526020019081526020016000206003016000600c60008e8e88818110612dbe57612dbe61452d565b90506020020135815260200190815260200160002060000160049054906101000a900463ffffffff1663ffffffff1663ffffffff16815260200190815260200160002061296d90919063ffffffff16565b612e6a57888882818110612e2557612e2561452d565b6040517fa7e792500000000000000000000000000000000000000000000000000000000081526020909102929092013560048301525082356024820152604401610677565b612e738161455c565b9050612d6b565b5060028301805460018101825560009182526020918290208335910155612ea390820182614b5e565b82356000908152600386016020526040902091612ec1919083614bc3565b508351602080860151612f1c92918435908c908c90612ee290880188614b5e565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061375b92505050565b50612f268161455c565b9050612c45565b50604080830151835163ffffffff9081166000908152600d602090815284822080549415156c01000000000000000000000000027fffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff90951694909417909355606086015186518316825284822080549115156d0100000000000000000000000000027fffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff9092169190911790556080860151865183168252848220805491841668010000000000000000027fffffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffff909216919091179055918501805186518316845292849020805493909216640100000000027fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff9093169290921790558351905191517ff264aae70bf6a9d90e68e0f9b393f4e7fbea67b063b0f336e0b36c1581703651926130ab929163ffffffff92831681529116602082015260400190565b60405180910390a1505050505050565b6000610476825490565b6000612981838361383c565b60006129818383613866565b6040805160e0810182526000808252602080830182905282840182905260608084018390526080840183905260a0840181905260c084015263ffffffff8581168352600d825284832080546401000000009004909116808452600190910182528483206002810180548751818602810186019098528088529596929591949390919083018282801561318e57602002820191906000526020600020905b81548152602001906001019080831161317a575b505050505090506000815167ffffffffffffffff8111156131b1576131b1613a71565b6040519080825280602002602001820160405280156131f757816020015b6040805180820190915260008152606060208201528152602001906001900390816131cf5790505b50905060005b81518110156133185760405180604001604052808483815181106132235761322361452d565b602002602001015181526020018560030160008685815181106132485761324861452d565b602002602001015181526020019081526020016000208054613269906145b1565b80601f0160208091040260200160405190810160405280929190818152602001828054613295906145b1565b80156132e25780601f106132b7576101008083540402835291602001916132e2565b820191906000526020600020905b8154815290600101906020018083116132c557829003601f168201915b50505050508152508282815181106132fc576132fc61452d565b6020026020010181905250806133119061455c565b90506131fd565b506040805160e08101825263ffffffff8089166000818152600d60208181528683205480861687528b8616828801526801000000000000000081049095169686019690965260ff6c010000000000000000000000008504811615156060870152929091529093526d010000000000000000000000000090049091161515608082015260a081016133a7856133b9565b81526020019190915295945050505050565b6060600061298183613959565b600061298183836139b5565b608081015173ffffffffffffffffffffffffffffffffffffffff161561352057608081015173ffffffffffffffffffffffffffffffffffffffff163b15806134cb575060808101516040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527f78bea72100000000000000000000000000000000000000000000000000000000600482015273ffffffffffffffffffffffffffffffffffffffff909116906301ffc9a790602401602060405180830381865afa1580156134a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134c99190614cde565b155b156135205760808101516040517fabb5e3fd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602401610677565b60008281526002602052604090208151829190819061353f90826146fa565b506020820151600182019061355490826146fa565b5060408201516002820180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660018360038111156135965761359661429b565b021790555060608201516002820180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101008360018111156135dd576135dd61429b565b0217905550608091909101516002909101805473ffffffffffffffffffffffffffffffffffffffff90921662010000027fffffffffffffffffffff0000000000000000000000000000000000000000ffff90921691909117905560405182907f04f0a9bcf3f3a3b42a4d7ca081119755f82ebe43e0d30c8f7292c4fe0dc4a2ae90600090a25050565b3373ffffffffffffffffffffffffffffffffffffffff8216036136e5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c660000000000000000006044820152606401610677565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b6000848152600260208190526040909120015462010000900473ffffffffffffffffffffffffffffffffffffffff161561220a57600084815260026020819052604091829020015490517ffba64a7c0000000000000000000000000000000000000000000000000000000081526201000090910473ffffffffffffffffffffffffffffffffffffffff169063fba64a7c90613802908690869086908b908d90600401614cfb565b600060405180830381600087803b15801561381c57600080fd5b505af1158015613830573d6000803e3d6000fd5b50505050505050505050565b60008260000182815481106138535761385361452d565b9060005260206000200154905092915050565b6000818152600183016020526040812054801561394f57600061388a600183614b2e565b855490915060009061389e90600190614b2e565b90508181146139035760008660000182815481106138be576138be61452d565b90600052602060002001549050808760000184815481106138e1576138e161452d565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061391457613914614d7d565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610476565b6000915050610476565b6060816000018054806020026020016040519081016040528092919081815260200182805480156139a957602002820191906000526020600020905b815481526020019060010190808311613995575b50505050509050919050565b60008181526001830160205260408120546139fc57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610476565b506000610476565b508054613a10906145b1565b6000825580601f10613a20575050565b601f01602090049060005260206000209081019061296a9190613a58565b508054600082559060005260206000209081019061296a91905b5b80821115613a6d5760008155600101613a59565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516080810167ffffffffffffffff81118282101715613ac357613ac3613a71565b60405290565b60405160a0810167ffffffffffffffff81118282101715613ac357613ac3613a71565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715613b3357613b33613a71565b604052919050565b600067ffffffffffffffff821115613b5557613b55613a71565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b600082601f830112613b9257600080fd5b8135613ba5613ba082613b3b565b613aec565b818152846020838601011115613bba57600080fd5b816020850160208301376000918101602001919091529392505050565b60008060408385031215613bea57600080fd5b823567ffffffffffffffff80821115613c0257600080fd5b613c0e86838701613b81565b93506020850135915080821115613c2457600080fd5b50613c3185828601613b81565b9150509250929050565b600060208284031215613c4d57600080fd5b5035919050565b60005b83811015613c6f578181015183820152602001613c57565b50506000910152565b60008151808452613c90816020860160208601613c54565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006129816020830184613c78565b60008083601f840112613ce757600080fd5b50813567ffffffffffffffff811115613cff57600080fd5b6020830191508360208260051b850101111561104c57600080fd5b801515811461296a57600080fd5b803563ffffffff81168114613d3c57600080fd5b919050565b600080600080600080600060a0888a031215613d5c57600080fd5b873567ffffffffffffffff80821115613d7457600080fd5b613d808b838c01613cd5565b909950975060208a0135915080821115613d9957600080fd5b50613da68a828b01613cd5565b9096509450506040880135613dba81613d1a565b92506060880135613dca81613d1a565b9150613dd860808901613d28565b905092959891949750929550565b60008060208385031215613df957600080fd5b823567ffffffffffffffff811115613e1057600080fd5b613e1c85828601613cd5565b90969095509350505050565b600081518084526020808501945080840160005b83811015613e5857815187529582019590820190600101613e3c565b509495945050505050565b600063ffffffff80835116845260208181850151168186015260408281860151168187015260608501511515606087015260808501511515608087015260a0850151925060e060a0870152613ebb60e0870184613e28565b925060c085015186840360c08801528381518086528486019150848160051b870101858401935060005b82811015613f42578782037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0018452845180518352870151878301879052613f2f87840182613c78565b9588019594880194925050600101613ee5565b509998505050505050505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015613fc3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0888603018452613fb1858351613e63565b94509285019290850190600101613f77565b5092979650505050505050565b600060208284031215613fe257600080fd5b61298182613d28565b73ffffffffffffffffffffffffffffffffffffffff815116825260006020820151604060208501526140206040850182613c78565b949350505050565b6020815260006129816020830184613feb565b6020815260006129816020830184613e63565b6000806040838503121561406157600080fd5b61406a83613d28565b946020939093013593505050565b60408152600061408b6040830185613c78565b828103602084015261409d8185613c78565b95945050505050565b63ffffffff8151168252602081015160208301526040810151604083015260006060820151608060608501526140206080850182613e28565b6040815260006140f260408301856140a6565b905063ffffffff831660208301529392505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015613fc3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0888603018452614168858351613feb565b9450928501929085019060010161412e565b6000806000806040858703121561419057600080fd5b843567ffffffffffffffff808211156141a857600080fd5b6141b488838901613cd5565b909650945060208701359150808211156141cd57600080fd5b506141da87828801613cd5565b95989497509550505050565b60008060008060008060008060c0898b03121561420257600080fd5b61420b89613d28565b9750602089013567ffffffffffffffff8082111561422857600080fd5b6142348c838d01613cd5565b909950975060408b013591508082111561424d57600080fd5b5061425a8b828c01613cd5565b909650945050606089013561426e81613d1a565b9250608089013561427e81613d1a565b915061428c60a08a01613d28565b90509295985092959890939650565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6000815160a084526142df60a0850182613c78565b9050602083015184820360208601526142f88282613c78565b9150506040830151600481106143105761431061429b565b604085015260608301516002811061432a5761432a61429b565b606085015260809283015173ffffffffffffffffffffffffffffffffffffffff1692909301919091525090565b60208152600061298160208301846142ca565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015613fc3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08886030184526143cb8583516142ca565b94509285019290850190600101614391565b6000604082016040835280855180835260608501915060608160051b8601019250602080880160005b83811015614452577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08887030185526144408683516140a6565b95509382019390820190600101614406565b50508584038187015286518085528782019482019350915060005b8281101561448f57845163ffffffff168452938101939281019260010161446d565b5091979650505050505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114613d3c57600080fd5b6000602082840312156144d257600080fd5b6129818261449c565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600063ffffffff808316818103614523576145236144db565b6001019392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361458d5761458d6144db565b5060010190565b63ffffffff82811682821603908082111561086d5761086d6144db565b600181811c908216806145c557607f821691505b6020821081036145fe577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc183360301811261463857600080fd5b9190910192915050565b60006040823603121561465457600080fd5b6040516040810167ffffffffffffffff828210818311171561467857614678613a71565b816040526146858561449c565b8352602085013591508082111561469b57600080fd5b506146a836828601613b81565b60208301525092915050565b601f82111561070a57600081815260208120601f850160051c810160208610156146db5750805b601f850160051c820191505b8181101561220a578281556001016146e7565b815167ffffffffffffffff81111561471457614714613a71565b6147288161472284546145b1565b846146b4565b602080601f83116001811461477b57600084156147455750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b17855561220a565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b828110156147c8578886015182559484019460019091019084016147a9565b508582101561480457878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b60006020828403121561482657600080fd5b815167ffffffffffffffff81111561483d57600080fd5b8201601f8101841361484e57600080fd5b805161485c613ba082613b3b565b81815285602083850101111561487157600080fd5b61409d826020830160208601613c54565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8183360301811261463857600080fd5b6000608082360312156148c857600080fd5b6148d0613aa0565b6148d983613d28565b81526020808401358183015260408401356040830152606084013567ffffffffffffffff8082111561490a57600080fd5b9085019036601f83011261491d57600080fd5b81358181111561492f5761492f613a71565b8060051b9150614940848301613aec565b818152918301840191848101903684111561495a57600080fd5b938501935b838510156149785784358252938501939085019061495f565b606087015250939695505050505050565b6020815260006129816020830184613e28565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6183360301811261463857600080fd5b803560028110613d3c57600080fd5b600060a082360312156149f157600080fd5b6149f9613ac9565b823567ffffffffffffffff80821115614a1157600080fd5b614a1d36838701613b81565b83526020850135915080821115614a3357600080fd5b50614a4036828601613b81565b602083015250604083013560048110614a5857600080fd5b6040820152614a69606084016149d0565b6060820152614a7a6080840161449c565b608082015292915050565b6000602080835260008454614a99816145b1565b80848701526040600180841660008114614aba5760018114614af257614b20565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008516838a01528284151560051b8a01019550614b20565b896000528660002060005b85811015614b185781548b8201860152908301908801614afd565b8a0184019650505b509398975050505050505050565b81810381811115610476576104766144db565b63ffffffff81811683821601908082111561086d5761086d6144db565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614b9357600080fd5b83018035915067ffffffffffffffff821115614bae57600080fd5b60200191503681900382131561104c57600080fd5b67ffffffffffffffff831115614bdb57614bdb613a71565b614bef83614be983546145b1565b836146b4565b6000601f841160018114614c415760008515614c0b5750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355614cd7565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b82811015614c905786850135825560209485019460019092019101614c70565b5086821015614ccb577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b600060208284031215614cf057600080fd5b815161298181613d1a565b6080815284608082015260007f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff861115614d3457600080fd5b8560051b808860a0850137820182810360a09081016020850152614d5a90820187613c78565b91505063ffffffff80851660408401528084166060840152509695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea164736f6c6343000813000a", } var CapabilityRegistryABI = CapabilityRegistryMetaData.ABI @@ -250,48 +250,49 @@ func (_CapabilityRegistry *CapabilityRegistryCallerSession) GetCapability(hashed return _CapabilityRegistry.Contract.GetCapability(&_CapabilityRegistry.CallOpts, hashedId) } -func (_CapabilityRegistry *CapabilityRegistryCaller) GetDON(opts *bind.CallOpts, donId uint32) (CapabilityRegistryDONInfo, error) { +func (_CapabilityRegistry *CapabilityRegistryCaller) GetCapabilityConfigs(opts *bind.CallOpts, donId uint32, capabilityId [32]byte) ([]byte, []byte, error) { var out []interface{} - err := _CapabilityRegistry.contract.Call(opts, &out, "getDON", donId) + err := _CapabilityRegistry.contract.Call(opts, &out, "getCapabilityConfigs", donId, capabilityId) if err != nil { - return *new(CapabilityRegistryDONInfo), err + return *new([]byte), *new([]byte), err } - out0 := *abi.ConvertType(out[0], new(CapabilityRegistryDONInfo)).(*CapabilityRegistryDONInfo) + out0 := *abi.ConvertType(out[0], new([]byte)).(*[]byte) + out1 := *abi.ConvertType(out[1], new([]byte)).(*[]byte) - return out0, err + return out0, out1, err } -func (_CapabilityRegistry *CapabilityRegistrySession) GetDON(donId uint32) (CapabilityRegistryDONInfo, error) { - return _CapabilityRegistry.Contract.GetDON(&_CapabilityRegistry.CallOpts, donId) +func (_CapabilityRegistry *CapabilityRegistrySession) GetCapabilityConfigs(donId uint32, capabilityId [32]byte) ([]byte, []byte, error) { + return _CapabilityRegistry.Contract.GetCapabilityConfigs(&_CapabilityRegistry.CallOpts, donId, capabilityId) } -func (_CapabilityRegistry *CapabilityRegistryCallerSession) GetDON(donId uint32) (CapabilityRegistryDONInfo, error) { - return _CapabilityRegistry.Contract.GetDON(&_CapabilityRegistry.CallOpts, donId) +func (_CapabilityRegistry *CapabilityRegistryCallerSession) GetCapabilityConfigs(donId uint32, capabilityId [32]byte) ([]byte, []byte, error) { + return _CapabilityRegistry.Contract.GetCapabilityConfigs(&_CapabilityRegistry.CallOpts, donId, capabilityId) } -func (_CapabilityRegistry *CapabilityRegistryCaller) GetDONCapabilityConfig(opts *bind.CallOpts, donId uint32, capabilityId [32]byte) ([]byte, error) { +func (_CapabilityRegistry *CapabilityRegistryCaller) GetDON(opts *bind.CallOpts, donId uint32) (CapabilityRegistryDONInfo, error) { var out []interface{} - err := _CapabilityRegistry.contract.Call(opts, &out, "getDONCapabilityConfig", donId, capabilityId) + err := _CapabilityRegistry.contract.Call(opts, &out, "getDON", donId) if err != nil { - return *new([]byte), err + return *new(CapabilityRegistryDONInfo), err } - out0 := *abi.ConvertType(out[0], new([]byte)).(*[]byte) + out0 := *abi.ConvertType(out[0], new(CapabilityRegistryDONInfo)).(*CapabilityRegistryDONInfo) return out0, err } -func (_CapabilityRegistry *CapabilityRegistrySession) GetDONCapabilityConfig(donId uint32, capabilityId [32]byte) ([]byte, error) { - return _CapabilityRegistry.Contract.GetDONCapabilityConfig(&_CapabilityRegistry.CallOpts, donId, capabilityId) +func (_CapabilityRegistry *CapabilityRegistrySession) GetDON(donId uint32) (CapabilityRegistryDONInfo, error) { + return _CapabilityRegistry.Contract.GetDON(&_CapabilityRegistry.CallOpts, donId) } -func (_CapabilityRegistry *CapabilityRegistryCallerSession) GetDONCapabilityConfig(donId uint32, capabilityId [32]byte) ([]byte, error) { - return _CapabilityRegistry.Contract.GetDONCapabilityConfig(&_CapabilityRegistry.CallOpts, donId, capabilityId) +func (_CapabilityRegistry *CapabilityRegistryCallerSession) GetDON(donId uint32) (CapabilityRegistryDONInfo, error) { + return _CapabilityRegistry.Contract.GetDON(&_CapabilityRegistry.CallOpts, donId) } func (_CapabilityRegistry *CapabilityRegistryCaller) GetDONs(opts *bind.CallOpts) ([]CapabilityRegistryDONInfo, error) { @@ -361,7 +362,7 @@ func (_CapabilityRegistry *CapabilityRegistryCallerSession) GetNode(p2pId [32]by return _CapabilityRegistry.Contract.GetNode(&_CapabilityRegistry.CallOpts, p2pId) } -func (_CapabilityRegistry *CapabilityRegistryCaller) GetNodeOperator(opts *bind.CallOpts, nodeOperatorId *big.Int) (CapabilityRegistryNodeOperator, error) { +func (_CapabilityRegistry *CapabilityRegistryCaller) GetNodeOperator(opts *bind.CallOpts, nodeOperatorId uint32) (CapabilityRegistryNodeOperator, error) { var out []interface{} err := _CapabilityRegistry.contract.Call(opts, &out, "getNodeOperator", nodeOperatorId) @@ -375,11 +376,11 @@ func (_CapabilityRegistry *CapabilityRegistryCaller) GetNodeOperator(opts *bind. } -func (_CapabilityRegistry *CapabilityRegistrySession) GetNodeOperator(nodeOperatorId *big.Int) (CapabilityRegistryNodeOperator, error) { +func (_CapabilityRegistry *CapabilityRegistrySession) GetNodeOperator(nodeOperatorId uint32) (CapabilityRegistryNodeOperator, error) { return _CapabilityRegistry.Contract.GetNodeOperator(&_CapabilityRegistry.CallOpts, nodeOperatorId) } -func (_CapabilityRegistry *CapabilityRegistryCallerSession) GetNodeOperator(nodeOperatorId *big.Int) (CapabilityRegistryNodeOperator, error) { +func (_CapabilityRegistry *CapabilityRegistryCallerSession) GetNodeOperator(nodeOperatorId uint32) (CapabilityRegistryNodeOperator, error) { return _CapabilityRegistry.Contract.GetNodeOperator(&_CapabilityRegistry.CallOpts, nodeOperatorId) } @@ -506,16 +507,16 @@ func (_CapabilityRegistry *CapabilityRegistryTransactorSession) AcceptOwnership( return _CapabilityRegistry.Contract.AcceptOwnership(&_CapabilityRegistry.TransactOpts) } -func (_CapabilityRegistry *CapabilityRegistryTransactor) AddCapability(opts *bind.TransactOpts, capability CapabilityRegistryCapability) (*types.Transaction, error) { - return _CapabilityRegistry.contract.Transact(opts, "addCapability", capability) +func (_CapabilityRegistry *CapabilityRegistryTransactor) AddCapabilities(opts *bind.TransactOpts, capabilities []CapabilityRegistryCapability) (*types.Transaction, error) { + return _CapabilityRegistry.contract.Transact(opts, "addCapabilities", capabilities) } -func (_CapabilityRegistry *CapabilityRegistrySession) AddCapability(capability CapabilityRegistryCapability) (*types.Transaction, error) { - return _CapabilityRegistry.Contract.AddCapability(&_CapabilityRegistry.TransactOpts, capability) +func (_CapabilityRegistry *CapabilityRegistrySession) AddCapabilities(capabilities []CapabilityRegistryCapability) (*types.Transaction, error) { + return _CapabilityRegistry.Contract.AddCapabilities(&_CapabilityRegistry.TransactOpts, capabilities) } -func (_CapabilityRegistry *CapabilityRegistryTransactorSession) AddCapability(capability CapabilityRegistryCapability) (*types.Transaction, error) { - return _CapabilityRegistry.Contract.AddCapability(&_CapabilityRegistry.TransactOpts, capability) +func (_CapabilityRegistry *CapabilityRegistryTransactorSession) AddCapabilities(capabilities []CapabilityRegistryCapability) (*types.Transaction, error) { + return _CapabilityRegistry.Contract.AddCapabilities(&_CapabilityRegistry.TransactOpts, capabilities) } func (_CapabilityRegistry *CapabilityRegistryTransactor) AddDON(opts *bind.TransactOpts, nodes [][32]byte, capabilityConfigurations []CapabilityRegistryCapabilityConfiguration, isPublic bool, acceptsWorkflows bool, f uint32) (*types.Transaction, error) { @@ -554,16 +555,16 @@ func (_CapabilityRegistry *CapabilityRegistryTransactorSession) AddNodes(nodes [ return _CapabilityRegistry.Contract.AddNodes(&_CapabilityRegistry.TransactOpts, nodes) } -func (_CapabilityRegistry *CapabilityRegistryTransactor) DeprecateCapability(opts *bind.TransactOpts, hashedCapabilityId [32]byte) (*types.Transaction, error) { - return _CapabilityRegistry.contract.Transact(opts, "deprecateCapability", hashedCapabilityId) +func (_CapabilityRegistry *CapabilityRegistryTransactor) DeprecateCapabilities(opts *bind.TransactOpts, hashedCapabilityIds [][32]byte) (*types.Transaction, error) { + return _CapabilityRegistry.contract.Transact(opts, "deprecateCapabilities", hashedCapabilityIds) } -func (_CapabilityRegistry *CapabilityRegistrySession) DeprecateCapability(hashedCapabilityId [32]byte) (*types.Transaction, error) { - return _CapabilityRegistry.Contract.DeprecateCapability(&_CapabilityRegistry.TransactOpts, hashedCapabilityId) +func (_CapabilityRegistry *CapabilityRegistrySession) DeprecateCapabilities(hashedCapabilityIds [][32]byte) (*types.Transaction, error) { + return _CapabilityRegistry.Contract.DeprecateCapabilities(&_CapabilityRegistry.TransactOpts, hashedCapabilityIds) } -func (_CapabilityRegistry *CapabilityRegistryTransactorSession) DeprecateCapability(hashedCapabilityId [32]byte) (*types.Transaction, error) { - return _CapabilityRegistry.Contract.DeprecateCapability(&_CapabilityRegistry.TransactOpts, hashedCapabilityId) +func (_CapabilityRegistry *CapabilityRegistryTransactorSession) DeprecateCapabilities(hashedCapabilityIds [][32]byte) (*types.Transaction, error) { + return _CapabilityRegistry.Contract.DeprecateCapabilities(&_CapabilityRegistry.TransactOpts, hashedCapabilityIds) } func (_CapabilityRegistry *CapabilityRegistryTransactor) RemoveDONs(opts *bind.TransactOpts, donIds []uint32) (*types.Transaction, error) { @@ -578,15 +579,15 @@ func (_CapabilityRegistry *CapabilityRegistryTransactorSession) RemoveDONs(donId return _CapabilityRegistry.Contract.RemoveDONs(&_CapabilityRegistry.TransactOpts, donIds) } -func (_CapabilityRegistry *CapabilityRegistryTransactor) RemoveNodeOperators(opts *bind.TransactOpts, nodeOperatorIds []*big.Int) (*types.Transaction, error) { +func (_CapabilityRegistry *CapabilityRegistryTransactor) RemoveNodeOperators(opts *bind.TransactOpts, nodeOperatorIds []uint32) (*types.Transaction, error) { return _CapabilityRegistry.contract.Transact(opts, "removeNodeOperators", nodeOperatorIds) } -func (_CapabilityRegistry *CapabilityRegistrySession) RemoveNodeOperators(nodeOperatorIds []*big.Int) (*types.Transaction, error) { +func (_CapabilityRegistry *CapabilityRegistrySession) RemoveNodeOperators(nodeOperatorIds []uint32) (*types.Transaction, error) { return _CapabilityRegistry.Contract.RemoveNodeOperators(&_CapabilityRegistry.TransactOpts, nodeOperatorIds) } -func (_CapabilityRegistry *CapabilityRegistryTransactorSession) RemoveNodeOperators(nodeOperatorIds []*big.Int) (*types.Transaction, error) { +func (_CapabilityRegistry *CapabilityRegistryTransactorSession) RemoveNodeOperators(nodeOperatorIds []uint32) (*types.Transaction, error) { return _CapabilityRegistry.Contract.RemoveNodeOperators(&_CapabilityRegistry.TransactOpts, nodeOperatorIds) } @@ -626,15 +627,15 @@ func (_CapabilityRegistry *CapabilityRegistryTransactorSession) UpdateDON(donId return _CapabilityRegistry.Contract.UpdateDON(&_CapabilityRegistry.TransactOpts, donId, nodes, capabilityConfigurations, isPublic, acceptsWorkflows, f) } -func (_CapabilityRegistry *CapabilityRegistryTransactor) UpdateNodeOperators(opts *bind.TransactOpts, nodeOperatorIds []*big.Int, nodeOperators []CapabilityRegistryNodeOperator) (*types.Transaction, error) { +func (_CapabilityRegistry *CapabilityRegistryTransactor) UpdateNodeOperators(opts *bind.TransactOpts, nodeOperatorIds []uint32, nodeOperators []CapabilityRegistryNodeOperator) (*types.Transaction, error) { return _CapabilityRegistry.contract.Transact(opts, "updateNodeOperators", nodeOperatorIds, nodeOperators) } -func (_CapabilityRegistry *CapabilityRegistrySession) UpdateNodeOperators(nodeOperatorIds []*big.Int, nodeOperators []CapabilityRegistryNodeOperator) (*types.Transaction, error) { +func (_CapabilityRegistry *CapabilityRegistrySession) UpdateNodeOperators(nodeOperatorIds []uint32, nodeOperators []CapabilityRegistryNodeOperator) (*types.Transaction, error) { return _CapabilityRegistry.Contract.UpdateNodeOperators(&_CapabilityRegistry.TransactOpts, nodeOperatorIds, nodeOperators) } -func (_CapabilityRegistry *CapabilityRegistryTransactorSession) UpdateNodeOperators(nodeOperatorIds []*big.Int, nodeOperators []CapabilityRegistryNodeOperator) (*types.Transaction, error) { +func (_CapabilityRegistry *CapabilityRegistryTransactorSession) UpdateNodeOperators(nodeOperatorIds []uint32, nodeOperators []CapabilityRegistryNodeOperator) (*types.Transaction, error) { return _CapabilityRegistry.Contract.UpdateNodeOperators(&_CapabilityRegistry.TransactOpts, nodeOperatorIds, nodeOperators) } @@ -650,8 +651,8 @@ func (_CapabilityRegistry *CapabilityRegistryTransactorSession) UpdateNodes(node return _CapabilityRegistry.Contract.UpdateNodes(&_CapabilityRegistry.TransactOpts, nodes) } -type CapabilityRegistryCapabilityAddedIterator struct { - Event *CapabilityRegistryCapabilityAdded +type CapabilityRegistryCapabilityConfiguredIterator struct { + Event *CapabilityRegistryCapabilityConfigured contract *bind.BoundContract event string @@ -662,7 +663,7 @@ type CapabilityRegistryCapabilityAddedIterator struct { fail error } -func (it *CapabilityRegistryCapabilityAddedIterator) Next() bool { +func (it *CapabilityRegistryCapabilityConfiguredIterator) Next() bool { if it.fail != nil { return false @@ -671,7 +672,7 @@ func (it *CapabilityRegistryCapabilityAddedIterator) Next() bool { if it.done { select { case log := <-it.logs: - it.Event = new(CapabilityRegistryCapabilityAdded) + it.Event = new(CapabilityRegistryCapabilityConfigured) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -686,7 +687,7 @@ func (it *CapabilityRegistryCapabilityAddedIterator) Next() bool { select { case log := <-it.logs: - it.Event = new(CapabilityRegistryCapabilityAdded) + it.Event = new(CapabilityRegistryCapabilityConfigured) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -701,42 +702,42 @@ func (it *CapabilityRegistryCapabilityAddedIterator) Next() bool { } } -func (it *CapabilityRegistryCapabilityAddedIterator) Error() error { +func (it *CapabilityRegistryCapabilityConfiguredIterator) Error() error { return it.fail } -func (it *CapabilityRegistryCapabilityAddedIterator) Close() error { +func (it *CapabilityRegistryCapabilityConfiguredIterator) Close() error { it.sub.Unsubscribe() return nil } -type CapabilityRegistryCapabilityAdded struct { +type CapabilityRegistryCapabilityConfigured struct { HashedCapabilityId [32]byte Raw types.Log } -func (_CapabilityRegistry *CapabilityRegistryFilterer) FilterCapabilityAdded(opts *bind.FilterOpts, hashedCapabilityId [][32]byte) (*CapabilityRegistryCapabilityAddedIterator, error) { +func (_CapabilityRegistry *CapabilityRegistryFilterer) FilterCapabilityConfigured(opts *bind.FilterOpts, hashedCapabilityId [][32]byte) (*CapabilityRegistryCapabilityConfiguredIterator, error) { var hashedCapabilityIdRule []interface{} for _, hashedCapabilityIdItem := range hashedCapabilityId { hashedCapabilityIdRule = append(hashedCapabilityIdRule, hashedCapabilityIdItem) } - logs, sub, err := _CapabilityRegistry.contract.FilterLogs(opts, "CapabilityAdded", hashedCapabilityIdRule) + logs, sub, err := _CapabilityRegistry.contract.FilterLogs(opts, "CapabilityConfigured", hashedCapabilityIdRule) if err != nil { return nil, err } - return &CapabilityRegistryCapabilityAddedIterator{contract: _CapabilityRegistry.contract, event: "CapabilityAdded", logs: logs, sub: sub}, nil + return &CapabilityRegistryCapabilityConfiguredIterator{contract: _CapabilityRegistry.contract, event: "CapabilityConfigured", logs: logs, sub: sub}, nil } -func (_CapabilityRegistry *CapabilityRegistryFilterer) WatchCapabilityAdded(opts *bind.WatchOpts, sink chan<- *CapabilityRegistryCapabilityAdded, hashedCapabilityId [][32]byte) (event.Subscription, error) { +func (_CapabilityRegistry *CapabilityRegistryFilterer) WatchCapabilityConfigured(opts *bind.WatchOpts, sink chan<- *CapabilityRegistryCapabilityConfigured, hashedCapabilityId [][32]byte) (event.Subscription, error) { var hashedCapabilityIdRule []interface{} for _, hashedCapabilityIdItem := range hashedCapabilityId { hashedCapabilityIdRule = append(hashedCapabilityIdRule, hashedCapabilityIdItem) } - logs, sub, err := _CapabilityRegistry.contract.WatchLogs(opts, "CapabilityAdded", hashedCapabilityIdRule) + logs, sub, err := _CapabilityRegistry.contract.WatchLogs(opts, "CapabilityConfigured", hashedCapabilityIdRule) if err != nil { return nil, err } @@ -746,8 +747,8 @@ func (_CapabilityRegistry *CapabilityRegistryFilterer) WatchCapabilityAdded(opts select { case log := <-logs: - event := new(CapabilityRegistryCapabilityAdded) - if err := _CapabilityRegistry.contract.UnpackLog(event, "CapabilityAdded", log); err != nil { + event := new(CapabilityRegistryCapabilityConfigured) + if err := _CapabilityRegistry.contract.UnpackLog(event, "CapabilityConfigured", log); err != nil { return err } event.Raw = log @@ -768,9 +769,9 @@ func (_CapabilityRegistry *CapabilityRegistryFilterer) WatchCapabilityAdded(opts }), nil } -func (_CapabilityRegistry *CapabilityRegistryFilterer) ParseCapabilityAdded(log types.Log) (*CapabilityRegistryCapabilityAdded, error) { - event := new(CapabilityRegistryCapabilityAdded) - if err := _CapabilityRegistry.contract.UnpackLog(event, "CapabilityAdded", log); err != nil { +func (_CapabilityRegistry *CapabilityRegistryFilterer) ParseCapabilityConfigured(log types.Log) (*CapabilityRegistryCapabilityConfigured, error) { + event := new(CapabilityRegistryCapabilityConfigured) + if err := _CapabilityRegistry.contract.UnpackLog(event, "CapabilityConfigured", log); err != nil { return nil, err } event.Raw = log @@ -1084,23 +1085,33 @@ func (it *CapabilityRegistryNodeAddedIterator) Close() error { type CapabilityRegistryNodeAdded struct { P2pId [32]byte - NodeOperatorId *big.Int + NodeOperatorId uint32 Signer [32]byte Raw types.Log } -func (_CapabilityRegistry *CapabilityRegistryFilterer) FilterNodeAdded(opts *bind.FilterOpts) (*CapabilityRegistryNodeAddedIterator, error) { +func (_CapabilityRegistry *CapabilityRegistryFilterer) FilterNodeAdded(opts *bind.FilterOpts, nodeOperatorId []uint32) (*CapabilityRegistryNodeAddedIterator, error) { + + var nodeOperatorIdRule []interface{} + for _, nodeOperatorIdItem := range nodeOperatorId { + nodeOperatorIdRule = append(nodeOperatorIdRule, nodeOperatorIdItem) + } - logs, sub, err := _CapabilityRegistry.contract.FilterLogs(opts, "NodeAdded") + logs, sub, err := _CapabilityRegistry.contract.FilterLogs(opts, "NodeAdded", nodeOperatorIdRule) if err != nil { return nil, err } return &CapabilityRegistryNodeAddedIterator{contract: _CapabilityRegistry.contract, event: "NodeAdded", logs: logs, sub: sub}, nil } -func (_CapabilityRegistry *CapabilityRegistryFilterer) WatchNodeAdded(opts *bind.WatchOpts, sink chan<- *CapabilityRegistryNodeAdded) (event.Subscription, error) { +func (_CapabilityRegistry *CapabilityRegistryFilterer) WatchNodeAdded(opts *bind.WatchOpts, sink chan<- *CapabilityRegistryNodeAdded, nodeOperatorId []uint32) (event.Subscription, error) { + + var nodeOperatorIdRule []interface{} + for _, nodeOperatorIdItem := range nodeOperatorId { + nodeOperatorIdRule = append(nodeOperatorIdRule, nodeOperatorIdItem) + } - logs, sub, err := _CapabilityRegistry.contract.WatchLogs(opts, "NodeAdded") + logs, sub, err := _CapabilityRegistry.contract.WatchLogs(opts, "NodeAdded", nodeOperatorIdRule) if err != nil { return nil, err } @@ -1202,34 +1213,42 @@ func (it *CapabilityRegistryNodeOperatorAddedIterator) Close() error { } type CapabilityRegistryNodeOperatorAdded struct { - NodeOperatorId *big.Int + NodeOperatorId uint32 Admin common.Address Name string Raw types.Log } -func (_CapabilityRegistry *CapabilityRegistryFilterer) FilterNodeOperatorAdded(opts *bind.FilterOpts, admin []common.Address) (*CapabilityRegistryNodeOperatorAddedIterator, error) { +func (_CapabilityRegistry *CapabilityRegistryFilterer) FilterNodeOperatorAdded(opts *bind.FilterOpts, nodeOperatorId []uint32, admin []common.Address) (*CapabilityRegistryNodeOperatorAddedIterator, error) { + var nodeOperatorIdRule []interface{} + for _, nodeOperatorIdItem := range nodeOperatorId { + nodeOperatorIdRule = append(nodeOperatorIdRule, nodeOperatorIdItem) + } var adminRule []interface{} for _, adminItem := range admin { adminRule = append(adminRule, adminItem) } - logs, sub, err := _CapabilityRegistry.contract.FilterLogs(opts, "NodeOperatorAdded", adminRule) + logs, sub, err := _CapabilityRegistry.contract.FilterLogs(opts, "NodeOperatorAdded", nodeOperatorIdRule, adminRule) if err != nil { return nil, err } return &CapabilityRegistryNodeOperatorAddedIterator{contract: _CapabilityRegistry.contract, event: "NodeOperatorAdded", logs: logs, sub: sub}, nil } -func (_CapabilityRegistry *CapabilityRegistryFilterer) WatchNodeOperatorAdded(opts *bind.WatchOpts, sink chan<- *CapabilityRegistryNodeOperatorAdded, admin []common.Address) (event.Subscription, error) { +func (_CapabilityRegistry *CapabilityRegistryFilterer) WatchNodeOperatorAdded(opts *bind.WatchOpts, sink chan<- *CapabilityRegistryNodeOperatorAdded, nodeOperatorId []uint32, admin []common.Address) (event.Subscription, error) { + var nodeOperatorIdRule []interface{} + for _, nodeOperatorIdItem := range nodeOperatorId { + nodeOperatorIdRule = append(nodeOperatorIdRule, nodeOperatorIdItem) + } var adminRule []interface{} for _, adminItem := range admin { adminRule = append(adminRule, adminItem) } - logs, sub, err := _CapabilityRegistry.contract.WatchLogs(opts, "NodeOperatorAdded", adminRule) + logs, sub, err := _CapabilityRegistry.contract.WatchLogs(opts, "NodeOperatorAdded", nodeOperatorIdRule, adminRule) if err != nil { return nil, err } @@ -1331,22 +1350,32 @@ func (it *CapabilityRegistryNodeOperatorRemovedIterator) Close() error { } type CapabilityRegistryNodeOperatorRemoved struct { - NodeOperatorId *big.Int + NodeOperatorId uint32 Raw types.Log } -func (_CapabilityRegistry *CapabilityRegistryFilterer) FilterNodeOperatorRemoved(opts *bind.FilterOpts) (*CapabilityRegistryNodeOperatorRemovedIterator, error) { +func (_CapabilityRegistry *CapabilityRegistryFilterer) FilterNodeOperatorRemoved(opts *bind.FilterOpts, nodeOperatorId []uint32) (*CapabilityRegistryNodeOperatorRemovedIterator, error) { - logs, sub, err := _CapabilityRegistry.contract.FilterLogs(opts, "NodeOperatorRemoved") + var nodeOperatorIdRule []interface{} + for _, nodeOperatorIdItem := range nodeOperatorId { + nodeOperatorIdRule = append(nodeOperatorIdRule, nodeOperatorIdItem) + } + + logs, sub, err := _CapabilityRegistry.contract.FilterLogs(opts, "NodeOperatorRemoved", nodeOperatorIdRule) if err != nil { return nil, err } return &CapabilityRegistryNodeOperatorRemovedIterator{contract: _CapabilityRegistry.contract, event: "NodeOperatorRemoved", logs: logs, sub: sub}, nil } -func (_CapabilityRegistry *CapabilityRegistryFilterer) WatchNodeOperatorRemoved(opts *bind.WatchOpts, sink chan<- *CapabilityRegistryNodeOperatorRemoved) (event.Subscription, error) { +func (_CapabilityRegistry *CapabilityRegistryFilterer) WatchNodeOperatorRemoved(opts *bind.WatchOpts, sink chan<- *CapabilityRegistryNodeOperatorRemoved, nodeOperatorId []uint32) (event.Subscription, error) { - logs, sub, err := _CapabilityRegistry.contract.WatchLogs(opts, "NodeOperatorRemoved") + var nodeOperatorIdRule []interface{} + for _, nodeOperatorIdItem := range nodeOperatorId { + nodeOperatorIdRule = append(nodeOperatorIdRule, nodeOperatorIdItem) + } + + logs, sub, err := _CapabilityRegistry.contract.WatchLogs(opts, "NodeOperatorRemoved", nodeOperatorIdRule) if err != nil { return nil, err } @@ -1448,34 +1477,42 @@ func (it *CapabilityRegistryNodeOperatorUpdatedIterator) Close() error { } type CapabilityRegistryNodeOperatorUpdated struct { - NodeOperatorId *big.Int + NodeOperatorId uint32 Admin common.Address Name string Raw types.Log } -func (_CapabilityRegistry *CapabilityRegistryFilterer) FilterNodeOperatorUpdated(opts *bind.FilterOpts, admin []common.Address) (*CapabilityRegistryNodeOperatorUpdatedIterator, error) { +func (_CapabilityRegistry *CapabilityRegistryFilterer) FilterNodeOperatorUpdated(opts *bind.FilterOpts, nodeOperatorId []uint32, admin []common.Address) (*CapabilityRegistryNodeOperatorUpdatedIterator, error) { + var nodeOperatorIdRule []interface{} + for _, nodeOperatorIdItem := range nodeOperatorId { + nodeOperatorIdRule = append(nodeOperatorIdRule, nodeOperatorIdItem) + } var adminRule []interface{} for _, adminItem := range admin { adminRule = append(adminRule, adminItem) } - logs, sub, err := _CapabilityRegistry.contract.FilterLogs(opts, "NodeOperatorUpdated", adminRule) + logs, sub, err := _CapabilityRegistry.contract.FilterLogs(opts, "NodeOperatorUpdated", nodeOperatorIdRule, adminRule) if err != nil { return nil, err } return &CapabilityRegistryNodeOperatorUpdatedIterator{contract: _CapabilityRegistry.contract, event: "NodeOperatorUpdated", logs: logs, sub: sub}, nil } -func (_CapabilityRegistry *CapabilityRegistryFilterer) WatchNodeOperatorUpdated(opts *bind.WatchOpts, sink chan<- *CapabilityRegistryNodeOperatorUpdated, admin []common.Address) (event.Subscription, error) { +func (_CapabilityRegistry *CapabilityRegistryFilterer) WatchNodeOperatorUpdated(opts *bind.WatchOpts, sink chan<- *CapabilityRegistryNodeOperatorUpdated, nodeOperatorId []uint32, admin []common.Address) (event.Subscription, error) { + var nodeOperatorIdRule []interface{} + for _, nodeOperatorIdItem := range nodeOperatorId { + nodeOperatorIdRule = append(nodeOperatorIdRule, nodeOperatorIdItem) + } var adminRule []interface{} for _, adminItem := range admin { adminRule = append(adminRule, adminItem) } - logs, sub, err := _CapabilityRegistry.contract.WatchLogs(opts, "NodeOperatorUpdated", adminRule) + logs, sub, err := _CapabilityRegistry.contract.WatchLogs(opts, "NodeOperatorUpdated", nodeOperatorIdRule, adminRule) if err != nil { return nil, err } @@ -1695,23 +1732,33 @@ func (it *CapabilityRegistryNodeUpdatedIterator) Close() error { type CapabilityRegistryNodeUpdated struct { P2pId [32]byte - NodeOperatorId *big.Int + NodeOperatorId uint32 Signer [32]byte Raw types.Log } -func (_CapabilityRegistry *CapabilityRegistryFilterer) FilterNodeUpdated(opts *bind.FilterOpts) (*CapabilityRegistryNodeUpdatedIterator, error) { +func (_CapabilityRegistry *CapabilityRegistryFilterer) FilterNodeUpdated(opts *bind.FilterOpts, nodeOperatorId []uint32) (*CapabilityRegistryNodeUpdatedIterator, error) { + + var nodeOperatorIdRule []interface{} + for _, nodeOperatorIdItem := range nodeOperatorId { + nodeOperatorIdRule = append(nodeOperatorIdRule, nodeOperatorIdItem) + } - logs, sub, err := _CapabilityRegistry.contract.FilterLogs(opts, "NodeUpdated") + logs, sub, err := _CapabilityRegistry.contract.FilterLogs(opts, "NodeUpdated", nodeOperatorIdRule) if err != nil { return nil, err } return &CapabilityRegistryNodeUpdatedIterator{contract: _CapabilityRegistry.contract, event: "NodeUpdated", logs: logs, sub: sub}, nil } -func (_CapabilityRegistry *CapabilityRegistryFilterer) WatchNodeUpdated(opts *bind.WatchOpts, sink chan<- *CapabilityRegistryNodeUpdated) (event.Subscription, error) { +func (_CapabilityRegistry *CapabilityRegistryFilterer) WatchNodeUpdated(opts *bind.WatchOpts, sink chan<- *CapabilityRegistryNodeUpdated, nodeOperatorId []uint32) (event.Subscription, error) { - logs, sub, err := _CapabilityRegistry.contract.WatchLogs(opts, "NodeUpdated") + var nodeOperatorIdRule []interface{} + for _, nodeOperatorIdItem := range nodeOperatorId { + nodeOperatorIdRule = append(nodeOperatorIdRule, nodeOperatorIdItem) + } + + logs, sub, err := _CapabilityRegistry.contract.WatchLogs(opts, "NodeUpdated", nodeOperatorIdRule) if err != nil { return nil, err } @@ -2026,8 +2073,8 @@ func (_CapabilityRegistry *CapabilityRegistryFilterer) ParseOwnershipTransferred func (_CapabilityRegistry *CapabilityRegistry) ParseLog(log types.Log) (generated.AbigenLog, error) { switch log.Topics[0] { - case _CapabilityRegistry.abi.Events["CapabilityAdded"].ID: - return _CapabilityRegistry.ParseCapabilityAdded(log) + case _CapabilityRegistry.abi.Events["CapabilityConfigured"].ID: + return _CapabilityRegistry.ParseCapabilityConfigured(log) case _CapabilityRegistry.abi.Events["CapabilityDeprecated"].ID: return _CapabilityRegistry.ParseCapabilityDeprecated(log) case _CapabilityRegistry.abi.Events["ConfigSet"].ID: @@ -2054,8 +2101,8 @@ func (_CapabilityRegistry *CapabilityRegistry) ParseLog(log types.Log) (generate } } -func (CapabilityRegistryCapabilityAdded) Topic() common.Hash { - return common.HexToHash("0x65610e5677eedff94555572640e442f89848a109ef8593fa927ac30b2565ff06") +func (CapabilityRegistryCapabilityConfigured) Topic() common.Hash { + return common.HexToHash("0x04f0a9bcf3f3a3b42a4d7ca081119755f82ebe43e0d30c8f7292c4fe0dc4a2ae") } func (CapabilityRegistryCapabilityDeprecated) Topic() common.Hash { @@ -2067,19 +2114,19 @@ func (CapabilityRegistryConfigSet) Topic() common.Hash { } func (CapabilityRegistryNodeAdded) Topic() common.Hash { - return common.HexToHash("0xc9296aa9b0951d8000e8ed7f2b5be30c5106de8df3dbedf9a57c93f5f9e4d7da") + return common.HexToHash("0x74becb12a5e8fd0e98077d02dfba8f647c9670c9df177e42c2418cf17a636f05") } func (CapabilityRegistryNodeOperatorAdded) Topic() common.Hash { - return common.HexToHash("0xda6697b182650034bd205cdc2dbfabb06bdb3a0a83a2b45bfefa3c4881284e0b") + return common.HexToHash("0x78e94ca80be2c30abc061b99e7eb8583b1254781734b1e3ce339abb57da2fe8e") } func (CapabilityRegistryNodeOperatorRemoved) Topic() common.Hash { - return common.HexToHash("0x1e5877d7b3001d1569bf733b76c7eceda58bd6c031e5b8d0b7042308ba2e9d4f") + return common.HexToHash("0xa59268ca81d40429e65ccea5385b59cf2d3fc6519371dee92f8eb1dae5107a7a") } func (CapabilityRegistryNodeOperatorUpdated) Topic() common.Hash { - return common.HexToHash("0x14c8f513e8a6d86d2d16b0cb64976de4e72386c4f8068eca3b7354373f8fe97a") + return common.HexToHash("0x86f41145bde5dd7f523305452e4aad3685508c181432ec733d5f345009358a28") } func (CapabilityRegistryNodeRemoved) Topic() common.Hash { @@ -2087,7 +2134,7 @@ func (CapabilityRegistryNodeRemoved) Topic() common.Hash { } func (CapabilityRegistryNodeUpdated) Topic() common.Hash { - return common.HexToHash("0xf101cfc54994c31624d25789378d71ec4dbdc533e26a4ecc6b7648f4798d0916") + return common.HexToHash("0x4b5b465e22eea0c3d40c30e936643245b80d19b2dcf75788c0699fe8d8db645b") } func (CapabilityRegistryOwnershipTransferRequested) Topic() common.Hash { @@ -2107,9 +2154,9 @@ type CapabilityRegistryInterface interface { GetCapability(opts *bind.CallOpts, hashedId [32]byte) (CapabilityRegistryCapability, error) - GetDON(opts *bind.CallOpts, donId uint32) (CapabilityRegistryDONInfo, error) + GetCapabilityConfigs(opts *bind.CallOpts, donId uint32, capabilityId [32]byte) ([]byte, []byte, error) - GetDONCapabilityConfig(opts *bind.CallOpts, donId uint32, capabilityId [32]byte) ([]byte, error) + GetDON(opts *bind.CallOpts, donId uint32) (CapabilityRegistryDONInfo, error) GetDONs(opts *bind.CallOpts) ([]CapabilityRegistryDONInfo, error) @@ -2117,7 +2164,7 @@ type CapabilityRegistryInterface interface { GetNode(opts *bind.CallOpts, p2pId [32]byte) (CapabilityRegistryNodeInfo, uint32, error) - GetNodeOperator(opts *bind.CallOpts, nodeOperatorId *big.Int) (CapabilityRegistryNodeOperator, error) + GetNodeOperator(opts *bind.CallOpts, nodeOperatorId uint32) (CapabilityRegistryNodeOperator, error) GetNodeOperators(opts *bind.CallOpts) ([]CapabilityRegistryNodeOperator, error) @@ -2131,7 +2178,7 @@ type CapabilityRegistryInterface interface { AcceptOwnership(opts *bind.TransactOpts) (*types.Transaction, error) - AddCapability(opts *bind.TransactOpts, capability CapabilityRegistryCapability) (*types.Transaction, error) + AddCapabilities(opts *bind.TransactOpts, capabilities []CapabilityRegistryCapability) (*types.Transaction, error) AddDON(opts *bind.TransactOpts, nodes [][32]byte, capabilityConfigurations []CapabilityRegistryCapabilityConfiguration, isPublic bool, acceptsWorkflows bool, f uint32) (*types.Transaction, error) @@ -2139,11 +2186,11 @@ type CapabilityRegistryInterface interface { AddNodes(opts *bind.TransactOpts, nodes []CapabilityRegistryNodeInfo) (*types.Transaction, error) - DeprecateCapability(opts *bind.TransactOpts, hashedCapabilityId [32]byte) (*types.Transaction, error) + DeprecateCapabilities(opts *bind.TransactOpts, hashedCapabilityIds [][32]byte) (*types.Transaction, error) RemoveDONs(opts *bind.TransactOpts, donIds []uint32) (*types.Transaction, error) - RemoveNodeOperators(opts *bind.TransactOpts, nodeOperatorIds []*big.Int) (*types.Transaction, error) + RemoveNodeOperators(opts *bind.TransactOpts, nodeOperatorIds []uint32) (*types.Transaction, error) RemoveNodes(opts *bind.TransactOpts, removedNodeP2PIds [][32]byte) (*types.Transaction, error) @@ -2151,15 +2198,15 @@ type CapabilityRegistryInterface interface { UpdateDON(opts *bind.TransactOpts, donId uint32, nodes [][32]byte, capabilityConfigurations []CapabilityRegistryCapabilityConfiguration, isPublic bool, acceptsWorkflows bool, f uint32) (*types.Transaction, error) - UpdateNodeOperators(opts *bind.TransactOpts, nodeOperatorIds []*big.Int, nodeOperators []CapabilityRegistryNodeOperator) (*types.Transaction, error) + UpdateNodeOperators(opts *bind.TransactOpts, nodeOperatorIds []uint32, nodeOperators []CapabilityRegistryNodeOperator) (*types.Transaction, error) UpdateNodes(opts *bind.TransactOpts, nodes []CapabilityRegistryNodeInfo) (*types.Transaction, error) - FilterCapabilityAdded(opts *bind.FilterOpts, hashedCapabilityId [][32]byte) (*CapabilityRegistryCapabilityAddedIterator, error) + FilterCapabilityConfigured(opts *bind.FilterOpts, hashedCapabilityId [][32]byte) (*CapabilityRegistryCapabilityConfiguredIterator, error) - WatchCapabilityAdded(opts *bind.WatchOpts, sink chan<- *CapabilityRegistryCapabilityAdded, hashedCapabilityId [][32]byte) (event.Subscription, error) + WatchCapabilityConfigured(opts *bind.WatchOpts, sink chan<- *CapabilityRegistryCapabilityConfigured, hashedCapabilityId [][32]byte) (event.Subscription, error) - ParseCapabilityAdded(log types.Log) (*CapabilityRegistryCapabilityAdded, error) + ParseCapabilityConfigured(log types.Log) (*CapabilityRegistryCapabilityConfigured, error) FilterCapabilityDeprecated(opts *bind.FilterOpts, hashedCapabilityId [][32]byte) (*CapabilityRegistryCapabilityDeprecatedIterator, error) @@ -2173,27 +2220,27 @@ type CapabilityRegistryInterface interface { ParseConfigSet(log types.Log) (*CapabilityRegistryConfigSet, error) - FilterNodeAdded(opts *bind.FilterOpts) (*CapabilityRegistryNodeAddedIterator, error) + FilterNodeAdded(opts *bind.FilterOpts, nodeOperatorId []uint32) (*CapabilityRegistryNodeAddedIterator, error) - WatchNodeAdded(opts *bind.WatchOpts, sink chan<- *CapabilityRegistryNodeAdded) (event.Subscription, error) + WatchNodeAdded(opts *bind.WatchOpts, sink chan<- *CapabilityRegistryNodeAdded, nodeOperatorId []uint32) (event.Subscription, error) ParseNodeAdded(log types.Log) (*CapabilityRegistryNodeAdded, error) - FilterNodeOperatorAdded(opts *bind.FilterOpts, admin []common.Address) (*CapabilityRegistryNodeOperatorAddedIterator, error) + FilterNodeOperatorAdded(opts *bind.FilterOpts, nodeOperatorId []uint32, admin []common.Address) (*CapabilityRegistryNodeOperatorAddedIterator, error) - WatchNodeOperatorAdded(opts *bind.WatchOpts, sink chan<- *CapabilityRegistryNodeOperatorAdded, admin []common.Address) (event.Subscription, error) + WatchNodeOperatorAdded(opts *bind.WatchOpts, sink chan<- *CapabilityRegistryNodeOperatorAdded, nodeOperatorId []uint32, admin []common.Address) (event.Subscription, error) ParseNodeOperatorAdded(log types.Log) (*CapabilityRegistryNodeOperatorAdded, error) - FilterNodeOperatorRemoved(opts *bind.FilterOpts) (*CapabilityRegistryNodeOperatorRemovedIterator, error) + FilterNodeOperatorRemoved(opts *bind.FilterOpts, nodeOperatorId []uint32) (*CapabilityRegistryNodeOperatorRemovedIterator, error) - WatchNodeOperatorRemoved(opts *bind.WatchOpts, sink chan<- *CapabilityRegistryNodeOperatorRemoved) (event.Subscription, error) + WatchNodeOperatorRemoved(opts *bind.WatchOpts, sink chan<- *CapabilityRegistryNodeOperatorRemoved, nodeOperatorId []uint32) (event.Subscription, error) ParseNodeOperatorRemoved(log types.Log) (*CapabilityRegistryNodeOperatorRemoved, error) - FilterNodeOperatorUpdated(opts *bind.FilterOpts, admin []common.Address) (*CapabilityRegistryNodeOperatorUpdatedIterator, error) + FilterNodeOperatorUpdated(opts *bind.FilterOpts, nodeOperatorId []uint32, admin []common.Address) (*CapabilityRegistryNodeOperatorUpdatedIterator, error) - WatchNodeOperatorUpdated(opts *bind.WatchOpts, sink chan<- *CapabilityRegistryNodeOperatorUpdated, admin []common.Address) (event.Subscription, error) + WatchNodeOperatorUpdated(opts *bind.WatchOpts, sink chan<- *CapabilityRegistryNodeOperatorUpdated, nodeOperatorId []uint32, admin []common.Address) (event.Subscription, error) ParseNodeOperatorUpdated(log types.Log) (*CapabilityRegistryNodeOperatorUpdated, error) @@ -2203,9 +2250,9 @@ type CapabilityRegistryInterface interface { ParseNodeRemoved(log types.Log) (*CapabilityRegistryNodeRemoved, error) - FilterNodeUpdated(opts *bind.FilterOpts) (*CapabilityRegistryNodeUpdatedIterator, error) + FilterNodeUpdated(opts *bind.FilterOpts, nodeOperatorId []uint32) (*CapabilityRegistryNodeUpdatedIterator, error) - WatchNodeUpdated(opts *bind.WatchOpts, sink chan<- *CapabilityRegistryNodeUpdated) (event.Subscription, error) + WatchNodeUpdated(opts *bind.WatchOpts, sink chan<- *CapabilityRegistryNodeUpdated, nodeOperatorId []uint32) (event.Subscription, error) ParseNodeUpdated(log types.Log) (*CapabilityRegistryNodeUpdated, error) diff --git a/core/gethwrappers/keystone/generation/generated-wrapper-dependency-versions-do-not-edit.txt b/core/gethwrappers/keystone/generation/generated-wrapper-dependency-versions-do-not-edit.txt index e11ebba404d..54f0035dcab 100644 --- a/core/gethwrappers/keystone/generation/generated-wrapper-dependency-versions-do-not-edit.txt +++ b/core/gethwrappers/keystone/generation/generated-wrapper-dependency-versions-do-not-edit.txt @@ -1,4 +1,4 @@ GETH_VERSION: 1.13.8 forwarder: ../../../contracts/solc/v0.8.19/KeystoneForwarder/KeystoneForwarder.abi ../../../contracts/solc/v0.8.19/KeystoneForwarder/KeystoneForwarder.bin ec6e94293700d400ca7b22989d54793e905d6febce3b84054727a58c473b9cf3 -keystone_capability_registry: ../../../contracts/solc/v0.8.19/CapabilityRegistry/CapabilityRegistry.abi ../../../contracts/solc/v0.8.19/CapabilityRegistry/CapabilityRegistry.bin 462c8a4c5cba9c429320f6ed041a8ea64749ec7c8cec7938c10767d07e3053e3 +keystone_capability_registry: ../../../contracts/solc/v0.8.19/CapabilityRegistry/CapabilityRegistry.abi ../../../contracts/solc/v0.8.19/CapabilityRegistry/CapabilityRegistry.bin 07b0d5eae760a400aaf3616201adb1ab962f92f77e05184677d94c8fc158f347 ocr3_capability: ../../../contracts/solc/v0.8.19/OCR3Capability/OCR3Capability.abi ../../../contracts/solc/v0.8.19/OCR3Capability/OCR3Capability.bin 9dcbdf55bd5729ba266148da3f17733eb592c871c2108ccca546618628fd9ad2 From 41f1d4b86d4f6747cba127adca614f49eb8b4872 Mon Sep 17 00:00:00 2001 From: Dmytro Haidashenko Date: Thu, 6 Jun 2024 19:37:12 +0200 Subject: [PATCH 20/40] move newChainIDSubForwarder into the test --- core/chains/evm/client/sub_forwarder.go | 12 ------------ core/chains/evm/client/sub_forwarder_test.go | 7 +++++++ 2 files changed, 7 insertions(+), 12 deletions(-) diff --git a/core/chains/evm/client/sub_forwarder.go b/core/chains/evm/client/sub_forwarder.go index c33eaf15039..93e9b106b4a 100644 --- a/core/chains/evm/client/sub_forwarder.go +++ b/core/chains/evm/client/sub_forwarder.go @@ -1,23 +1,11 @@ package client import ( - "math/big" - "github.com/ethereum/go-ethereum" - - evmtypes "github.com/smartcontractkit/chainlink/v2/core/chains/evm/types" - ubig "github.com/smartcontractkit/chainlink/v2/core/chains/evm/utils/big" ) var _ ethereum.Subscription = &subForwarder[any]{} -func newChainIDSubForwarder(chainID *big.Int, ch chan<- *evmtypes.Head) *subForwarder[*evmtypes.Head] { - return newSubForwarder(ch, func(head *evmtypes.Head) *evmtypes.Head { - head.EVMChainID = ubig.New(chainID) - return head - }, nil) -} - // subForwarder wraps a subscription in order to intercept and augment each result before forwarding. type subForwarder[T any] struct { destCh chan<- T diff --git a/core/chains/evm/client/sub_forwarder_test.go b/core/chains/evm/client/sub_forwarder_test.go index d249793a567..1bc0122603b 100644 --- a/core/chains/evm/client/sub_forwarder_test.go +++ b/core/chains/evm/client/sub_forwarder_test.go @@ -20,6 +20,13 @@ import ( func TestChainIDSubForwarder(t *testing.T) { t.Parallel() + newChainIDSubForwarder := func(chainID *big.Int, ch chan<- *evmtypes.Head) *subForwarder[*evmtypes.Head] { + return newSubForwarder(ch, func(head *evmtypes.Head) *evmtypes.Head { + head.EVMChainID = ubig.New(chainID) + return head + }, nil) + } + chainID := big.NewInt(123) t.Run("unsubscribe forwarder", func(t *testing.T) { From c429772fe86fcb0230590283ae77a218af4f6299 Mon Sep 17 00:00:00 2001 From: Margaret Ma Date: Thu, 6 Jun 2024 18:26:35 -0400 Subject: [PATCH 21/40] Add account address pub key to fms chain config for Starknet (#13421) * add account address pub key to fms chain config for starknet * Update core/web/resolver/feeds_manager_chain_config.go Co-authored-by: Chris De Leon <147140544+chris-de-leon-cll@users.noreply.github.com> --------- Co-authored-by: Chris De Leon <147140544+chris-de-leon-cll@users.noreply.github.com> --- .changeset/olive-experts-matter.md | 5 + core/services/feeds/models.go | 30 +- core/services/feeds/models_test.go | 5 + core/services/feeds/orm.go | 22 +- core/services/feeds/orm_test.go | 125 ++++---- core/services/feeds/proto/feeds_manager.pb.go | 274 ++++++++++-------- core/services/feeds/service.go | 10 +- core/services/feeds/service_test.go | 50 ++-- ...account_public_key_to_fms_chain_config.sql | 11 + .../resolver/feeds_manager_chain_config.go | 5 + .../feeds_manager_chain_config_test.go | 68 +++-- core/web/resolver/mutation.go | 10 + core/web/schema/type/feeds_manager.graphql | 3 + 13 files changed, 358 insertions(+), 260 deletions(-) create mode 100644 .changeset/olive-experts-matter.md create mode 100644 core/store/migrate/migrations/0242_add_account_public_key_to_fms_chain_config.sql diff --git a/.changeset/olive-experts-matter.md b/.changeset/olive-experts-matter.md new file mode 100644 index 00000000000..cb212f638f4 --- /dev/null +++ b/.changeset/olive-experts-matter.md @@ -0,0 +1,5 @@ +--- +"chainlink": patch +--- + +#db_update Add account_address_public_key to feeds_manager_chain_configs diff --git a/core/services/feeds/models.go b/core/services/feeds/models.go index ac0568ca131..3fedc98d0f1 100644 --- a/core/services/feeds/models.go +++ b/core/services/feeds/models.go @@ -76,14 +76,17 @@ func (p *Plugins) Scan(value interface{}) error { type ChainType string const ( - ChainTypeUnknown ChainType = "UNKNOWN" - ChainTypeEVM ChainType = "EVM" + ChainTypeUnknown ChainType = "UNKNOWN" + ChainTypeEVM ChainType = "EVM" + ChainTypeStarknet ChainType = "STARKNET" ) func NewChainType(s string) (ChainType, error) { switch s { case "EVM": return ChainTypeEVM, nil + case "STARKNET": + return ChainTypeStarknet, nil default: return ChainTypeUnknown, errors.New("invalid chain type") } @@ -103,17 +106,18 @@ type FeedsManager struct { // ChainConfig defines the chain configuration for a Feeds Manager. type ChainConfig struct { - ID int64 - FeedsManagerID int64 - ChainID string - ChainType ChainType - AccountAddress string - AdminAddress string - FluxMonitorConfig FluxMonitorConfig - OCR1Config OCR1Config - OCR2Config OCR2ConfigModel - CreatedAt time.Time - UpdatedAt time.Time + ID int64 + FeedsManagerID int64 + ChainID string + ChainType ChainType + AccountAddress string + AccountAddressPublicKey null.String + AdminAddress string + FluxMonitorConfig FluxMonitorConfig + OCR1Config OCR1Config + OCR2Config OCR2ConfigModel + CreatedAt time.Time + UpdatedAt time.Time } // FluxMonitorConfig defines configuration for FluxMonitorJobs. diff --git a/core/services/feeds/models_test.go b/core/services/feeds/models_test.go index 9e3bb0f9f1c..13567281735 100644 --- a/core/services/feeds/models_test.go +++ b/core/services/feeds/models_test.go @@ -23,6 +23,11 @@ func Test_NewChainType(t *testing.T) { give: "EVM", want: ChainTypeEVM, }, + { + name: "Starknet Chain Type", + give: "STARKNET", + want: ChainTypeStarknet, + }, { name: "Invalid Chain Type", give: "", diff --git a/core/services/feeds/orm.go b/core/services/feeds/orm.go index bf77051dad7..23d7044879e 100644 --- a/core/services/feeds/orm.go +++ b/core/services/feeds/orm.go @@ -101,8 +101,8 @@ RETURNING id; // CreateChainConfig creates a new chain config. func (o *orm) CreateChainConfig(ctx context.Context, cfg ChainConfig) (id int64, err error) { stmt := ` -INSERT INTO feeds_manager_chain_configs (feeds_manager_id, chain_id, chain_type, account_address, admin_address, flux_monitor_config, ocr1_config, ocr2_config, created_at, updated_at) -VALUES ($1,$2,$3,$4,$5,$6,$7,$8,NOW(),NOW()) +INSERT INTO feeds_manager_chain_configs (feeds_manager_id, chain_id, chain_type, account_address, account_address_public_key, admin_address, flux_monitor_config, ocr1_config, ocr2_config, created_at, updated_at) +VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9,NOW(),NOW()) RETURNING id; ` @@ -113,6 +113,7 @@ RETURNING id; cfg.ChainID, cfg.ChainType, cfg.AccountAddress, + cfg.AccountAddressPublicKey, cfg.AdminAddress, cfg.FluxMonitorConfig, cfg.OCR1Config, @@ -129,7 +130,7 @@ func (o *orm) CreateBatchChainConfig(ctx context.Context, cfgs []ChainConfig) (i } stmt := ` -INSERT INTO feeds_manager_chain_configs (feeds_manager_id, chain_id, chain_type, account_address, admin_address, flux_monitor_config, ocr1_config, ocr2_config, created_at, updated_at) +INSERT INTO feeds_manager_chain_configs (feeds_manager_id, chain_id, chain_type, account_address, account_address_public_key, admin_address, flux_monitor_config, ocr1_config, ocr2_config, created_at, updated_at) VALUES %s RETURNING id; ` @@ -141,16 +142,16 @@ RETURNING id; for i, cfg := range cfgs { // Generate the placeholders - pnumidx := i * 8 + pnumidx := i * 9 - lo, hi := pnumidx+1, pnumidx+8 + lo, hi := pnumidx+1, pnumidx+9 pnums := make([]any, hi-lo+1) for i := range pnums { pnums[i] = i + lo } vStrs = append(vStrs, fmt.Sprintf( - "($%d, $%d, $%d, $%d, $%d, $%d, $%d, $%d, NOW(), NOW())", pnums..., + "($%d, $%d, $%d, $%d, $%d, $%d, $%d, $%d, $%d, NOW(), NOW())", pnums..., )) // Append the values @@ -159,6 +160,7 @@ RETURNING id; cfg.ChainID, cfg.ChainType, cfg.AccountAddress, + cfg.AccountAddressPublicKey, cfg.AdminAddress, cfg.FluxMonitorConfig, cfg.OCR1Config, @@ -192,7 +194,7 @@ RETURNING id; // GetChainConfig fetches a chain config. func (o *orm) GetChainConfig(ctx context.Context, id int64) (*ChainConfig, error) { stmt := ` -SELECT id, feeds_manager_id, chain_id, chain_type, account_address, admin_address, flux_monitor_config, ocr1_config, ocr2_config, created_at, updated_at +SELECT id, feeds_manager_id, chain_id, chain_type, account_address, account_address_public_key, admin_address, flux_monitor_config, ocr1_config, ocr2_config, created_at, updated_at FROM feeds_manager_chain_configs WHERE id = $1; ` @@ -207,7 +209,7 @@ WHERE id = $1; // ids. func (o *orm) ListChainConfigsByManagerIDs(ctx context.Context, mgrIDs []int64) ([]ChainConfig, error) { stmt := ` -SELECT id, feeds_manager_id, chain_id, chain_type, account_address, admin_address, flux_monitor_config, ocr1_config, ocr2_config, created_at, updated_at +SELECT id, feeds_manager_id, chain_id, chain_type, account_address, account_address_public_key, admin_address, flux_monitor_config, ocr1_config, ocr2_config, created_at, updated_at FROM feeds_manager_chain_configs WHERE feeds_manager_id = ANY($1) ` @@ -227,8 +229,9 @@ SET account_address = $1, flux_monitor_config = $3, ocr1_config = $4, ocr2_config = $5, + account_address_public_key = $6, updated_at = NOW() -WHERE id = $6 +WHERE id = $7 RETURNING id; ` @@ -239,6 +242,7 @@ RETURNING id; cfg.FluxMonitorConfig, cfg.OCR1Config, cfg.OCR2Config, + cfg.AccountAddressPublicKey, cfg.ID, ) diff --git a/core/services/feeds/orm_test.go b/core/services/feeds/orm_test.go index df2624319f5..c4c9ced2ce3 100644 --- a/core/services/feeds/orm_test.go +++ b/core/services/feeds/orm_test.go @@ -206,11 +206,12 @@ func Test_ORM_CreateChainConfig(t *testing.T) { orm = setupORM(t) fmID = createFeedsManager(t, orm) cfg1 = feeds.ChainConfig{ - FeedsManagerID: fmID, - ChainID: "1", - ChainType: feeds.ChainTypeEVM, - AccountAddress: "0x0001", - AdminAddress: "0x1001", + FeedsManagerID: fmID, + ChainID: "1", + ChainType: feeds.ChainTypeEVM, + AccountAddress: "0x0001", + AdminAddress: "0x1001", + AccountAddressPublicKey: null.StringFrom("0x0002"), FluxMonitorConfig: feeds.FluxMonitorConfig{ Enabled: true, }, @@ -235,14 +236,15 @@ func Test_ORM_CreateChainConfig(t *testing.T) { require.NoError(t, err) assertChainConfigEqual(t, map[string]interface{}{ - "feedsManagerID": cfg1.FeedsManagerID, - "chainID": cfg1.ChainID, - "chainType": cfg1.ChainType, - "accountAddress": cfg1.AccountAddress, - "adminAddress": cfg1.AdminAddress, - "fluxMonitorConfig": cfg1.FluxMonitorConfig, - "ocrConfig": cfg1.OCR1Config, - "ocr2Config": cfg1.OCR2Config, + "feedsManagerID": cfg1.FeedsManagerID, + "chainID": cfg1.ChainID, + "chainType": cfg1.ChainType, + "accountAddress": cfg1.AccountAddress, + "accountAddressPublicKey": cfg1.AccountAddressPublicKey, + "adminAddress": cfg1.AdminAddress, + "fluxMonitorConfig": cfg1.FluxMonitorConfig, + "ocrConfig": cfg1.OCR1Config, + "ocr2Config": cfg1.OCR2Config, }, *actual) } @@ -254,11 +256,12 @@ func Test_ORM_CreateBatchChainConfig(t *testing.T) { orm = setupORM(t) fmID = createFeedsManager(t, orm) cfg1 = feeds.ChainConfig{ - FeedsManagerID: fmID, - ChainID: "1", - ChainType: feeds.ChainTypeEVM, - AccountAddress: "0x0001", - AdminAddress: "0x1001", + FeedsManagerID: fmID, + ChainID: "1", + ChainType: feeds.ChainTypeEVM, + AccountAddress: "0x0001", + AccountAddressPublicKey: null.StringFrom("0x0002"), + AdminAddress: "0x1001", } cfg2 = feeds.ChainConfig{ FeedsManagerID: fmID, @@ -278,14 +281,15 @@ func Test_ORM_CreateBatchChainConfig(t *testing.T) { require.NoError(t, err) assertChainConfigEqual(t, map[string]interface{}{ - "feedsManagerID": cfg1.FeedsManagerID, - "chainID": cfg1.ChainID, - "chainType": cfg1.ChainType, - "accountAddress": cfg1.AccountAddress, - "adminAddress": cfg1.AdminAddress, - "fluxMonitorConfig": cfg1.FluxMonitorConfig, - "ocrConfig": cfg1.OCR1Config, - "ocr2Config": cfg1.OCR2Config, + "feedsManagerID": cfg1.FeedsManagerID, + "chainID": cfg1.ChainID, + "chainType": cfg1.ChainType, + "accountAddress": cfg1.AccountAddress, + "accountAddressPublicKey": cfg1.AccountAddressPublicKey, + "adminAddress": cfg1.AdminAddress, + "fluxMonitorConfig": cfg1.FluxMonitorConfig, + "ocrConfig": cfg1.OCR1Config, + "ocr2Config": cfg1.OCR2Config, }, *actual) actual, err = orm.GetChainConfig(ctx, ids[1]) @@ -346,11 +350,12 @@ func Test_ORM_ListChainConfigsByManagerIDs(t *testing.T) { orm = setupORM(t) fmID = createFeedsManager(t, orm) cfg1 = feeds.ChainConfig{ - FeedsManagerID: fmID, - ChainID: "1", - ChainType: feeds.ChainTypeEVM, - AccountAddress: "0x0001", - AdminAddress: "0x1001", + FeedsManagerID: fmID, + ChainID: "1", + ChainType: feeds.ChainTypeEVM, + AccountAddress: "0x0001", + AccountAddressPublicKey: null.StringFrom("0x0002"), + AdminAddress: "0x1001", FluxMonitorConfig: feeds.FluxMonitorConfig{ Enabled: true, }, @@ -376,14 +381,15 @@ func Test_ORM_ListChainConfigsByManagerIDs(t *testing.T) { require.Len(t, actual, 1) assertChainConfigEqual(t, map[string]interface{}{ - "feedsManagerID": cfg1.FeedsManagerID, - "chainID": cfg1.ChainID, - "chainType": cfg1.ChainType, - "accountAddress": cfg1.AccountAddress, - "adminAddress": cfg1.AdminAddress, - "fluxMonitorConfig": cfg1.FluxMonitorConfig, - "ocrConfig": cfg1.OCR1Config, - "ocr2Config": cfg1.OCR2Config, + "feedsManagerID": cfg1.FeedsManagerID, + "chainID": cfg1.ChainID, + "chainType": cfg1.ChainType, + "accountAddress": cfg1.AccountAddress, + "accountAddressPublicKey": cfg1.AccountAddressPublicKey, + "adminAddress": cfg1.AdminAddress, + "fluxMonitorConfig": cfg1.FluxMonitorConfig, + "ocrConfig": cfg1.OCR1Config, + "ocr2Config": cfg1.OCR2Config, }, actual[0]) } @@ -395,19 +401,21 @@ func Test_ORM_UpdateChainConfig(t *testing.T) { orm = setupORM(t) fmID = createFeedsManager(t, orm) cfg1 = feeds.ChainConfig{ - FeedsManagerID: fmID, - ChainID: "1", - ChainType: feeds.ChainTypeEVM, - AccountAddress: "0x0001", - AdminAddress: "0x1001", - FluxMonitorConfig: feeds.FluxMonitorConfig{Enabled: false}, - OCR1Config: feeds.OCR1Config{Enabled: false}, - OCR2Config: feeds.OCR2ConfigModel{Enabled: false}, + FeedsManagerID: fmID, + ChainID: "1", + ChainType: feeds.ChainTypeEVM, + AccountAddress: "0x0001", + AccountAddressPublicKey: null.NewString("", false), + AdminAddress: "0x1001", + FluxMonitorConfig: feeds.FluxMonitorConfig{Enabled: false}, + OCR1Config: feeds.OCR1Config{Enabled: false}, + OCR2Config: feeds.OCR2ConfigModel{Enabled: false}, } updateCfg = feeds.ChainConfig{ - AccountAddress: "0x0002", - AdminAddress: "0x1002", - FluxMonitorConfig: feeds.FluxMonitorConfig{Enabled: true}, + AccountAddress: "0x0002", + AdminAddress: "0x1002", + AccountAddressPublicKey: null.StringFrom("0x0002"), + FluxMonitorConfig: feeds.FluxMonitorConfig{Enabled: true}, OCR1Config: feeds.OCR1Config{ Enabled: true, IsBootstrap: false, @@ -434,14 +442,15 @@ func Test_ORM_UpdateChainConfig(t *testing.T) { require.NoError(t, err) assertChainConfigEqual(t, map[string]interface{}{ - "feedsManagerID": cfg1.FeedsManagerID, - "chainID": cfg1.ChainID, - "chainType": cfg1.ChainType, - "accountAddress": updateCfg.AccountAddress, - "adminAddress": updateCfg.AdminAddress, - "fluxMonitorConfig": updateCfg.FluxMonitorConfig, - "ocrConfig": updateCfg.OCR1Config, - "ocr2Config": updateCfg.OCR2Config, + "feedsManagerID": cfg1.FeedsManagerID, + "chainID": cfg1.ChainID, + "chainType": cfg1.ChainType, + "accountAddress": updateCfg.AccountAddress, + "accountAddressPublicKey": updateCfg.AccountAddressPublicKey, + "adminAddress": updateCfg.AdminAddress, + "fluxMonitorConfig": updateCfg.FluxMonitorConfig, + "ocrConfig": updateCfg.OCR1Config, + "ocr2Config": updateCfg.OCR2Config, }, *actual) } diff --git a/core/services/feeds/proto/feeds_manager.pb.go b/core/services/feeds/proto/feeds_manager.pb.go index a73b4a0cd29..89f351a4270 100644 --- a/core/services/feeds/proto/feeds_manager.pb.go +++ b/core/services/feeds/proto/feeds_manager.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.31.0 -// protoc v3.21.7 +// protoc-gen-go v1.34.1 +// protoc v4.25.3 // source: pkg/noderpc/proto/feeds_manager.proto package proto @@ -79,6 +79,8 @@ const ( ChainType_CHAIN_TYPE_UNSPECIFIED ChainType = 0 ChainType_CHAIN_TYPE_EVM ChainType = 1 ChainType_CHAIN_TYPE_SOLANA ChainType = 2 + ChainType_CHAIN_TYPE_ZKSYNC ChainType = 3 + ChainType_CHAIN_TYPE_STARKNET ChainType = 4 ) // Enum value maps for ChainType. @@ -87,11 +89,15 @@ var ( 0: "CHAIN_TYPE_UNSPECIFIED", 1: "CHAIN_TYPE_EVM", 2: "CHAIN_TYPE_SOLANA", + 3: "CHAIN_TYPE_ZKSYNC", + 4: "CHAIN_TYPE_STARKNET", } ChainType_value = map[string]int32{ "CHAIN_TYPE_UNSPECIFIED": 0, "CHAIN_TYPE_EVM": 1, "CHAIN_TYPE_SOLANA": 2, + "CHAIN_TYPE_ZKSYNC": 3, + "CHAIN_TYPE_STARKNET": 4, } ) @@ -470,12 +476,13 @@ type ChainConfig struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Chain *Chain `protobuf:"bytes,1,opt,name=chain,proto3" json:"chain,omitempty"` - AccountAddress string `protobuf:"bytes,2,opt,name=account_address,json=accountAddress,proto3" json:"account_address,omitempty"` - AdminAddress string `protobuf:"bytes,3,opt,name=admin_address,json=adminAddress,proto3" json:"admin_address,omitempty"` - FluxMonitorConfig *FluxMonitorConfig `protobuf:"bytes,4,opt,name=flux_monitor_config,json=fluxMonitorConfig,proto3" json:"flux_monitor_config,omitempty"` - Ocr1Config *OCR1Config `protobuf:"bytes,5,opt,name=ocr1_config,json=ocr1Config,proto3" json:"ocr1_config,omitempty"` - Ocr2Config *OCR2Config `protobuf:"bytes,6,opt,name=ocr2_config,json=ocr2Config,proto3" json:"ocr2_config,omitempty"` + Chain *Chain `protobuf:"bytes,1,opt,name=chain,proto3" json:"chain,omitempty"` + AccountAddress string `protobuf:"bytes,2,opt,name=account_address,json=accountAddress,proto3" json:"account_address,omitempty"` + AdminAddress string `protobuf:"bytes,3,opt,name=admin_address,json=adminAddress,proto3" json:"admin_address,omitempty"` + FluxMonitorConfig *FluxMonitorConfig `protobuf:"bytes,4,opt,name=flux_monitor_config,json=fluxMonitorConfig,proto3" json:"flux_monitor_config,omitempty"` + Ocr1Config *OCR1Config `protobuf:"bytes,5,opt,name=ocr1_config,json=ocr1Config,proto3" json:"ocr1_config,omitempty"` + Ocr2Config *OCR2Config `protobuf:"bytes,6,opt,name=ocr2_config,json=ocr2Config,proto3" json:"ocr2_config,omitempty"` + AccountAddressPublicKey *string `protobuf:"bytes,7,opt,name=account_address_public_key,json=accountAddressPublicKey,proto3,oneof" json:"account_address_public_key,omitempty"` } func (x *ChainConfig) Reset() { @@ -552,6 +559,13 @@ func (x *ChainConfig) GetOcr2Config() *OCR2Config { return nil } +func (x *ChainConfig) GetAccountAddressPublicKey() string { + if x != nil && x.AccountAddressPublicKey != nil { + return *x.AccountAddressPublicKey + } + return "" +} + type UpdateNodeRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1800,7 +1814,7 @@ var file_pkg_noderpc_proto_feeds_manager_proto_rawDesc = []byte{ 0x63, 0x75, 0x72, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x72, 0x65, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x72, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, - 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xa9, 0x02, 0x0a, 0x0b, 0x43, + 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x8a, 0x03, 0x0a, 0x0b, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x20, 0x0a, 0x05, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x63, 0x66, 0x6d, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x05, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x12, 0x27, 0x0a, 0x0f, @@ -1819,123 +1833,132 @@ var file_pkg_noderpc_proto_feeds_manager_proto_rawDesc = []byte{ 0x6e, 0x66, 0x69, 0x67, 0x12, 0x30, 0x0a, 0x0b, 0x6f, 0x63, 0x72, 0x32, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x66, 0x6d, 0x2e, 0x4f, 0x43, 0x52, 0x32, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0a, 0x6f, 0x63, 0x72, 0x32, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x9f, 0x03, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x29, 0x0a, 0x09, - 0x6a, 0x6f, 0x62, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, - 0x0c, 0x2e, 0x63, 0x66, 0x6d, 0x2e, 0x4a, 0x6f, 0x62, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x6a, - 0x6f, 0x62, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, - 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, - 0x49, 0x64, 0x12, 0x2b, 0x0a, 0x11, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, - 0x2a, 0x0a, 0x11, 0x69, 0x73, 0x5f, 0x62, 0x6f, 0x6f, 0x74, 0x73, 0x74, 0x72, 0x61, 0x70, 0x5f, - 0x70, 0x65, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x69, 0x73, 0x42, 0x6f, - 0x6f, 0x74, 0x73, 0x74, 0x72, 0x61, 0x70, 0x50, 0x65, 0x65, 0x72, 0x12, 0x2f, 0x0a, 0x13, 0x62, - 0x6f, 0x6f, 0x74, 0x73, 0x74, 0x72, 0x61, 0x70, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x61, 0x64, - 0x64, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x62, 0x6f, 0x6f, 0x74, 0x73, 0x74, - 0x72, 0x61, 0x70, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x61, 0x64, 0x64, 0x72, 0x12, 0x18, 0x0a, 0x07, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, - 0x69, 0x64, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x03, 0x52, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, - 0x49, 0x64, 0x73, 0x12, 0x28, 0x0a, 0x08, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, - 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x63, 0x66, 0x6d, 0x2e, 0x41, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x52, 0x08, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x22, 0x0a, - 0x06, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, - 0x63, 0x66, 0x6d, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x06, 0x63, 0x68, 0x61, 0x69, 0x6e, - 0x73, 0x12, 0x35, 0x0a, 0x0d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x66, 0x6d, 0x2e, 0x43, - 0x68, 0x61, 0x69, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0c, 0x63, 0x68, 0x61, 0x69, - 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x22, 0x14, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x42, - 0x0a, 0x12, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x64, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x22, 0x15, 0x0a, 0x13, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x64, 0x4a, 0x6f, - 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x14, 0x0a, 0x12, 0x48, 0x65, 0x61, - 0x6c, 0x74, 0x68, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, - 0x15, 0x0a, 0x13, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x42, 0x0a, 0x12, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, - 0x65, 0x64, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, - 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, - 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x15, 0x0a, 0x13, 0x52, 0x65, - 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x43, 0x0a, 0x13, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x65, 0x64, 0x4a, 0x6f, - 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x16, 0x0a, 0x14, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, - 0x6c, 0x65, 0x64, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x71, - 0x0a, 0x11, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x70, 0x65, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x73, 0x70, 0x65, 0x63, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x75, 0x6c, 0x74, 0x69, - 0x61, 0x64, 0x64, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x75, 0x6c, - 0x74, 0x69, 0x61, 0x64, 0x64, 0x72, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x22, 0x24, 0x0a, 0x12, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x4a, 0x6f, 0x62, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x22, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x23, 0x0a, 0x11, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, - 0x22, 0x22, 0x0a, 0x10, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x40, 0x0a, 0x1a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, + 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x17, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x50, 0x75, 0x62, 0x6c, + 0x69, 0x63, 0x4b, 0x65, 0x79, 0x88, 0x01, 0x01, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x75, 0x62, + 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x22, 0x9f, 0x03, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x29, 0x0a, + 0x09, 0x6a, 0x6f, 0x62, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0e, + 0x32, 0x0c, 0x2e, 0x63, 0x66, 0x6d, 0x2e, 0x4a, 0x6f, 0x62, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, + 0x6a, 0x6f, 0x62, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, + 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, + 0x6e, 0x49, 0x64, 0x12, 0x2b, 0x0a, 0x11, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, + 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x73, 0x5f, 0x62, 0x6f, 0x6f, 0x74, 0x73, 0x74, 0x72, 0x61, 0x70, + 0x5f, 0x70, 0x65, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x69, 0x73, 0x42, + 0x6f, 0x6f, 0x74, 0x73, 0x74, 0x72, 0x61, 0x70, 0x50, 0x65, 0x65, 0x72, 0x12, 0x2f, 0x0a, 0x13, + 0x62, 0x6f, 0x6f, 0x74, 0x73, 0x74, 0x72, 0x61, 0x70, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x61, + 0x64, 0x64, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x62, 0x6f, 0x6f, 0x74, 0x73, + 0x74, 0x72, 0x61, 0x70, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x61, 0x64, 0x64, 0x72, 0x12, 0x18, 0x0a, + 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x69, 0x6e, + 0x5f, 0x69, 0x64, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x03, 0x52, 0x08, 0x63, 0x68, 0x61, 0x69, + 0x6e, 0x49, 0x64, 0x73, 0x12, 0x28, 0x0a, 0x08, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, + 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x63, 0x66, 0x6d, 0x2e, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x08, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x22, + 0x0a, 0x06, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, + 0x2e, 0x63, 0x66, 0x6d, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x06, 0x63, 0x68, 0x61, 0x69, + 0x6e, 0x73, 0x12, 0x35, 0x0a, 0x0d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x66, 0x6d, 0x2e, + 0x43, 0x68, 0x61, 0x69, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0c, 0x63, 0x68, 0x61, + 0x69, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x22, 0x14, 0x0a, 0x12, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x42, 0x0a, 0x12, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x64, 0x4a, 0x6f, 0x62, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x22, 0x15, 0x0a, 0x13, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x64, 0x4a, + 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x14, 0x0a, 0x12, 0x48, 0x65, + 0x61, 0x6c, 0x74, 0x68, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x22, 0x15, 0x0a, 0x13, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x42, 0x0a, 0x12, 0x52, 0x65, 0x6a, 0x65, 0x63, + 0x74, 0x65, 0x64, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, + 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, + 0x64, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x15, 0x0a, 0x13, 0x52, + 0x65, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x43, 0x0a, 0x13, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x65, 0x64, 0x4a, + 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x18, 0x0a, + 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x16, 0x0a, 0x14, 0x43, 0x61, 0x6e, 0x63, 0x65, + 0x6c, 0x6c, 0x65, 0x64, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x71, 0x0a, 0x11, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x02, 0x69, 0x64, 0x22, 0x23, 0x0a, 0x11, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x4a, 0x6f, - 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x2a, 0x63, 0x0a, 0x07, 0x4a, 0x6f, 0x62, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x14, 0x4a, 0x4f, 0x42, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x19, - 0x0a, 0x15, 0x4a, 0x4f, 0x42, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x4c, 0x55, 0x58, 0x5f, - 0x4d, 0x4f, 0x4e, 0x49, 0x54, 0x4f, 0x52, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x4a, 0x4f, 0x42, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4f, 0x43, 0x52, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x4a, - 0x4f, 0x42, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4f, 0x43, 0x52, 0x32, 0x10, 0x03, 0x2a, 0x52, - 0x0a, 0x09, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x43, - 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, - 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x43, 0x48, 0x41, 0x49, 0x4e, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x56, 0x4d, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x43, - 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x4f, 0x4c, 0x41, 0x4e, 0x41, - 0x10, 0x02, 0x32, 0xd8, 0x02, 0x0a, 0x0c, 0x46, 0x65, 0x65, 0x64, 0x73, 0x4d, 0x61, 0x6e, 0x61, - 0x67, 0x65, 0x72, 0x12, 0x40, 0x0a, 0x0b, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x64, 0x4a, - 0x6f, 0x62, 0x12, 0x17, 0x2e, 0x63, 0x66, 0x6d, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, - 0x64, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x63, 0x66, - 0x6d, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x64, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x63, - 0x68, 0x65, 0x63, 0x6b, 0x12, 0x17, 0x2e, 0x63, 0x66, 0x6d, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, - 0x68, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, - 0x63, 0x66, 0x6d, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x2e, 0x63, 0x66, 0x6d, 0x2e, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, - 0x63, 0x66, 0x6d, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, - 0x65, 0x64, 0x4a, 0x6f, 0x62, 0x12, 0x17, 0x2e, 0x63, 0x66, 0x6d, 0x2e, 0x52, 0x65, 0x6a, 0x65, - 0x63, 0x74, 0x65, 0x64, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, - 0x2e, 0x63, 0x66, 0x6d, 0x2e, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x4a, 0x6f, 0x62, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x0c, 0x43, 0x61, 0x6e, 0x63, - 0x65, 0x6c, 0x6c, 0x65, 0x64, 0x4a, 0x6f, 0x62, 0x12, 0x18, 0x2e, 0x63, 0x66, 0x6d, 0x2e, 0x43, - 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x65, 0x64, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x63, 0x66, 0x6d, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, - 0x65, 0x64, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xc4, 0x01, - 0x0a, 0x0b, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x3d, 0x0a, - 0x0a, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x4a, 0x6f, 0x62, 0x12, 0x16, 0x2e, 0x63, 0x66, - 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x63, 0x66, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, - 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x09, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x12, 0x15, 0x2e, 0x63, 0x66, 0x6d, 0x2e, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x16, 0x2e, 0x63, 0x66, 0x6d, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, 0x6f, 0x62, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x09, 0x52, 0x65, 0x76, 0x6f, - 0x6b, 0x65, 0x4a, 0x6f, 0x62, 0x12, 0x15, 0x2e, 0x63, 0x66, 0x6d, 0x2e, 0x52, 0x65, 0x76, 0x6f, - 0x6b, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x63, - 0x66, 0x6d, 0x2e, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x3d, 0x5a, 0x3b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, - 0x6f, 0x6d, 0x2f, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, - 0x6b, 0x69, 0x74, 0x2f, 0x66, 0x65, 0x65, 0x64, 0x73, 0x2d, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, - 0x72, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x6e, 0x6f, 0x64, 0x65, 0x72, 0x70, 0x63, 0x2f, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x70, 0x65, 0x63, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x73, 0x70, 0x65, 0x63, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x75, 0x6c, 0x74, + 0x69, 0x61, 0x64, 0x64, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x75, + 0x6c, 0x74, 0x69, 0x61, 0x64, 0x64, 0x72, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x22, 0x24, 0x0a, 0x12, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x4a, 0x6f, 0x62, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x22, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x23, 0x0a, 0x11, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, + 0x64, 0x22, 0x22, 0x0a, 0x10, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x23, 0x0a, 0x11, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x4a, + 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x2a, 0x63, 0x0a, 0x07, 0x4a, 0x6f, + 0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x14, 0x4a, 0x4f, 0x42, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, + 0x19, 0x0a, 0x15, 0x4a, 0x4f, 0x42, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x4c, 0x55, 0x58, + 0x5f, 0x4d, 0x4f, 0x4e, 0x49, 0x54, 0x4f, 0x52, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x4a, 0x4f, + 0x42, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4f, 0x43, 0x52, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, + 0x4a, 0x4f, 0x42, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4f, 0x43, 0x52, 0x32, 0x10, 0x03, 0x2a, + 0x82, 0x01, 0x0a, 0x09, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, + 0x16, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, + 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x43, 0x48, 0x41, + 0x49, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x56, 0x4d, 0x10, 0x01, 0x12, 0x15, 0x0a, + 0x11, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x4f, 0x4c, 0x41, + 0x4e, 0x41, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x5a, 0x4b, 0x53, 0x59, 0x4e, 0x43, 0x10, 0x03, 0x12, 0x17, 0x0a, 0x13, 0x43, + 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x4b, 0x4e, + 0x45, 0x54, 0x10, 0x04, 0x32, 0xd8, 0x02, 0x0a, 0x0c, 0x46, 0x65, 0x65, 0x64, 0x73, 0x4d, 0x61, + 0x6e, 0x61, 0x67, 0x65, 0x72, 0x12, 0x40, 0x0a, 0x0b, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, + 0x64, 0x4a, 0x6f, 0x62, 0x12, 0x17, 0x2e, 0x63, 0x66, 0x6d, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x65, 0x64, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, + 0x63, 0x66, 0x6d, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x64, 0x4a, 0x6f, 0x62, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x48, 0x65, 0x61, 0x6c, 0x74, + 0x68, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x17, 0x2e, 0x63, 0x66, 0x6d, 0x2e, 0x48, 0x65, 0x61, + 0x6c, 0x74, 0x68, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x18, 0x2e, 0x63, 0x66, 0x6d, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x63, 0x68, 0x65, 0x63, + 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x0a, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x2e, 0x63, 0x66, 0x6d, 0x2e, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x17, 0x2e, 0x63, 0x66, 0x6d, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x52, 0x65, 0x6a, 0x65, + 0x63, 0x74, 0x65, 0x64, 0x4a, 0x6f, 0x62, 0x12, 0x17, 0x2e, 0x63, 0x66, 0x6d, 0x2e, 0x52, 0x65, + 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x18, 0x2e, 0x63, 0x66, 0x6d, 0x2e, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x4a, + 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x0c, 0x43, 0x61, + 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x65, 0x64, 0x4a, 0x6f, 0x62, 0x12, 0x18, 0x2e, 0x63, 0x66, 0x6d, + 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x65, 0x64, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x63, 0x66, 0x6d, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, + 0x6c, 0x6c, 0x65, 0x64, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, + 0xc4, 0x01, 0x0a, 0x0b, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, + 0x3d, 0x0a, 0x0a, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x4a, 0x6f, 0x62, 0x12, 0x16, 0x2e, + 0x63, 0x66, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x63, 0x66, 0x6d, 0x2e, 0x50, 0x72, 0x6f, 0x70, + 0x6f, 0x73, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, + 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x12, 0x15, 0x2e, 0x63, 0x66, + 0x6d, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x63, 0x66, 0x6d, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, + 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x09, 0x52, 0x65, + 0x76, 0x6f, 0x6b, 0x65, 0x4a, 0x6f, 0x62, 0x12, 0x15, 0x2e, 0x63, 0x66, 0x6d, 0x2e, 0x52, 0x65, + 0x76, 0x6f, 0x6b, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, + 0x2e, 0x63, 0x66, 0x6d, 0x2e, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x3d, 0x5a, 0x3b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, + 0x63, 0x74, 0x6b, 0x69, 0x74, 0x2f, 0x66, 0x65, 0x65, 0x64, 0x73, 0x2d, 0x6d, 0x61, 0x6e, 0x61, + 0x67, 0x65, 0x72, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x6e, 0x6f, 0x64, 0x65, 0x72, 0x70, 0x63, 0x2f, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -2354,6 +2377,7 @@ func file_pkg_noderpc_proto_feeds_manager_proto_init() { } } file_pkg_noderpc_proto_feeds_manager_proto_msgTypes[4].OneofWrappers = []interface{}{} + file_pkg_noderpc_proto_feeds_manager_proto_msgTypes[5].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/core/services/feeds/service.go b/core/services/feeds/service.go index 701cff03c81..4e159cbd0bb 100644 --- a/core/services/feeds/service.go +++ b/core/services/feeds/service.go @@ -1210,7 +1210,7 @@ func (s *service) newChainConfigMsg(cfg ChainConfig) (*pb.ChainConfig, error) { return nil, err } - return &pb.ChainConfig{ + pbChainConfig := pb.ChainConfig{ Chain: &pb.Chain{ Id: cfg.ChainID, Type: pb.ChainType_CHAIN_TYPE_EVM, @@ -1220,7 +1220,13 @@ func (s *service) newChainConfigMsg(cfg ChainConfig) (*pb.ChainConfig, error) { FluxMonitorConfig: s.newFluxMonitorConfigMsg(cfg.FluxMonitorConfig), Ocr1Config: ocr1Cfg, Ocr2Config: ocr2Cfg, - }, nil + } + + if cfg.AccountAddressPublicKey.Valid { + pbChainConfig.AccountAddressPublicKey = &cfg.AccountAddressPublicKey.String + } + + return &pbChainConfig, nil } // newFluxMonitorConfigMsg generates a FMConfig protobuf message. Flux Monitor does not diff --git a/core/services/feeds/service_test.go b/core/services/feeds/service_test.go index 09c710fff9e..10dd1d8cfab 100644 --- a/core/services/feeds/service_test.go +++ b/core/services/feeds/service_test.go @@ -367,11 +367,12 @@ func Test_Service_CreateChainConfig(t *testing.T) { Version: "1.0.0", } cfg = feeds.ChainConfig{ - FeedsManagerID: mgr.ID, - ChainID: "42", - ChainType: feeds.ChainTypeEVM, - AccountAddress: "0x0000000000000000000000000000000000000000", - AdminAddress: "0x0000000000000000000000000000000000000001", + FeedsManagerID: mgr.ID, + ChainID: "42", + ChainType: feeds.ChainTypeEVM, + AccountAddress: "0x0000000000000000000000000000000000000000", + AccountAddressPublicKey: null.StringFrom("0x0000000000000000000000000000000000000002"), + AdminAddress: "0x0000000000000000000000000000000000000001", FluxMonitorConfig: feeds.FluxMonitorConfig{ Enabled: true, }, @@ -398,11 +399,12 @@ func Test_Service_CreateChainConfig(t *testing.T) { Id: cfg.ChainID, Type: proto.ChainType_CHAIN_TYPE_EVM, }, - AccountAddress: cfg.AccountAddress, - AdminAddress: cfg.AdminAddress, - FluxMonitorConfig: &proto.FluxMonitorConfig{Enabled: true}, - Ocr1Config: &proto.OCR1Config{Enabled: false}, - Ocr2Config: &proto.OCR2Config{Enabled: false}, + AccountAddress: cfg.AccountAddress, + AccountAddressPublicKey: &cfg.AccountAddressPublicKey.String, + AdminAddress: cfg.AdminAddress, + FluxMonitorConfig: &proto.FluxMonitorConfig{Enabled: true}, + Ocr1Config: &proto.OCR1Config{Enabled: false}, + Ocr2Config: &proto.OCR2Config{Enabled: false}, }, }, }).Return(&proto.UpdateNodeResponse{}, nil) @@ -489,14 +491,15 @@ func Test_Service_UpdateChainConfig(t *testing.T) { Version: "1.0.0", } cfg = feeds.ChainConfig{ - FeedsManagerID: mgr.ID, - ChainID: "42", - ChainType: feeds.ChainTypeEVM, - AccountAddress: "0x0000000000000000000000000000000000000000", - AdminAddress: "0x0000000000000000000000000000000000000001", - FluxMonitorConfig: feeds.FluxMonitorConfig{Enabled: false}, - OCR1Config: feeds.OCR1Config{Enabled: false}, - OCR2Config: feeds.OCR2ConfigModel{Enabled: false}, + FeedsManagerID: mgr.ID, + ChainID: "42", + ChainType: feeds.ChainTypeEVM, + AccountAddress: "0x0000000000000000000000000000000000000000", + AccountAddressPublicKey: null.StringFrom("0x0000000000000000000000000000000000000002"), + AdminAddress: "0x0000000000000000000000000000000000000001", + FluxMonitorConfig: feeds.FluxMonitorConfig{Enabled: false}, + OCR1Config: feeds.OCR1Config{Enabled: false}, + OCR2Config: feeds.OCR2ConfigModel{Enabled: false}, } svc = setupTestService(t) @@ -514,11 +517,12 @@ func Test_Service_UpdateChainConfig(t *testing.T) { Id: cfg.ChainID, Type: proto.ChainType_CHAIN_TYPE_EVM, }, - AccountAddress: cfg.AccountAddress, - AdminAddress: cfg.AdminAddress, - FluxMonitorConfig: &proto.FluxMonitorConfig{Enabled: false}, - Ocr1Config: &proto.OCR1Config{Enabled: false}, - Ocr2Config: &proto.OCR2Config{Enabled: false}, + AccountAddress: cfg.AccountAddress, + AdminAddress: cfg.AdminAddress, + AccountAddressPublicKey: &cfg.AccountAddressPublicKey.String, + FluxMonitorConfig: &proto.FluxMonitorConfig{Enabled: false}, + Ocr1Config: &proto.OCR1Config{Enabled: false}, + Ocr2Config: &proto.OCR2Config{Enabled: false}, }, }, }).Return(&proto.UpdateNodeResponse{}, nil) diff --git a/core/store/migrate/migrations/0242_add_account_public_key_to_fms_chain_config.sql b/core/store/migrate/migrations/0242_add_account_public_key_to_fms_chain_config.sql new file mode 100644 index 00000000000..d5b9584d3ec --- /dev/null +++ b/core/store/migrate/migrations/0242_add_account_public_key_to_fms_chain_config.sql @@ -0,0 +1,11 @@ +-- +goose Up +-- +goose StatementBegin +ALTER TABLE feeds_manager_chain_configs +ADD COLUMN account_address_public_key VARCHAR; + +-- +goose StatementEnd +-- +goose Down +-- +goose StatementBegin +ALTER TABLE feeds_manager_chain_configs DROP COLUMN account_address_public_key; + +-- +goose StatementEnd diff --git a/core/web/resolver/feeds_manager_chain_config.go b/core/web/resolver/feeds_manager_chain_config.go index 6d4e4c88e55..1afcd2b5f0a 100644 --- a/core/web/resolver/feeds_manager_chain_config.go +++ b/core/web/resolver/feeds_manager_chain_config.go @@ -43,6 +43,11 @@ func (r *FeedsManagerChainConfigResolver) AccountAddr() string { return r.cfg.AccountAddress } +// AccountAddrPubKey resolves the chain configs's account address public key. +func (r *FeedsManagerChainConfigResolver) AccountAddrPubKey() *string { + return r.cfg.AccountAddressPublicKey.Ptr() +} + // AdminAddr resolves the chain configs's admin address. func (r *FeedsManagerChainConfigResolver) AdminAddr() string { return r.cfg.AdminAddress diff --git a/core/web/resolver/feeds_manager_chain_config_test.go b/core/web/resolver/feeds_manager_chain_config_test.go index c5dd77c14a1..bd4c1e05aeb 100644 --- a/core/web/resolver/feeds_manager_chain_config_test.go +++ b/core/web/resolver/feeds_manager_chain_config_test.go @@ -15,14 +15,15 @@ import ( func Test_CreateFeedsManagerChainConfig(t *testing.T) { var ( - mgrID = int64(100) - cfgID = int64(1) - chainID = "42" - accountAddr = "0x0000001" - adminAddr = "0x0000002" - forwarderAddr = "0x0000003" - peerID = null.StringFrom("p2p_12D3KooWMoejJznyDuEk5aX6GvbjaG12UzeornPCBNzMRqdwrFJw") - keyBundleID = null.StringFrom("6fdb8235e16e099de91df7ef8a8088e9deea0ed6ae106b133e5d985a8a9e1562") + mgrID = int64(100) + cfgID = int64(1) + chainID = "42" + accountAddr = "0x0000001" + acctAddrPubKey = "0x0000004" + adminAddr = "0x0000002" + forwarderAddr = "0x0000003" + peerID = null.StringFrom("p2p_12D3KooWMoejJznyDuEk5aX6GvbjaG12UzeornPCBNzMRqdwrFJw") + keyBundleID = null.StringFrom("6fdb8235e16e099de91df7ef8a8088e9deea0ed6ae106b133e5d985a8a9e1562") mutation = ` mutation CreateFeedsManagerChainConfig($input: CreateFeedsManagerChainConfigInput!) { @@ -51,6 +52,7 @@ func Test_CreateFeedsManagerChainConfig(t *testing.T) { "chainID": chainID, "chainType": "EVM", "accountAddr": accountAddr, + "accountAddrPubKey": acctAddrPubKey, "adminAddr": adminAddr, "fluxMonitorEnabled": false, "ocr1Enabled": true, @@ -75,11 +77,12 @@ func Test_CreateFeedsManagerChainConfig(t *testing.T) { before: func(ctx context.Context, f *gqlTestFramework) { f.App.On("GetFeedsService").Return(f.Mocks.feedsSvc) f.Mocks.feedsSvc.On("CreateChainConfig", mock.Anything, feeds.ChainConfig{ - FeedsManagerID: mgrID, - ChainType: feeds.ChainTypeEVM, - ChainID: chainID, - AccountAddress: accountAddr, - AdminAddress: adminAddr, + FeedsManagerID: mgrID, + ChainType: feeds.ChainTypeEVM, + ChainID: chainID, + AccountAddress: accountAddr, + AccountAddressPublicKey: null.StringFrom(acctAddrPubKey), + AdminAddress: adminAddr, FluxMonitorConfig: feeds.FluxMonitorConfig{ Enabled: false, }, @@ -103,11 +106,12 @@ func Test_CreateFeedsManagerChainConfig(t *testing.T) { }, }).Return(cfgID, nil) f.Mocks.feedsSvc.On("GetChainConfig", mock.Anything, cfgID).Return(&feeds.ChainConfig{ - ID: cfgID, - ChainType: feeds.ChainTypeEVM, - ChainID: chainID, - AccountAddress: accountAddr, - AdminAddress: adminAddr, + ID: cfgID, + ChainType: feeds.ChainTypeEVM, + ChainID: chainID, + AccountAddress: accountAddr, + AccountAddressPublicKey: null.StringFrom(acctAddrPubKey), + AdminAddress: adminAddr, FluxMonitorConfig: feeds.FluxMonitorConfig{ Enabled: false, }, @@ -272,12 +276,13 @@ func Test_DeleteFeedsManagerChainConfig(t *testing.T) { func Test_UpdateFeedsManagerChainConfig(t *testing.T) { var ( - cfgID = int64(1) - peerID = null.StringFrom("p2p_12D3KooWMoejJznyDuEk5aX6GvbjaG12UzeornPCBNzMRqdwrFJw") - keyBundleID = null.StringFrom("6fdb8235e16e099de91df7ef8a8088e9deea0ed6ae106b133e5d985a8a9e1562") - accountAddr = "0x0000001" - adminAddr = "0x0000002" - forwarderAddr = "0x0000003" + cfgID = int64(1) + peerID = null.StringFrom("p2p_12D3KooWMoejJznyDuEk5aX6GvbjaG12UzeornPCBNzMRqdwrFJw") + keyBundleID = null.StringFrom("6fdb8235e16e099de91df7ef8a8088e9deea0ed6ae106b133e5d985a8a9e1562") + accountAddr = "0x0000001" + adminAddr = "0x0000002" + forwarderAddr = "0x0000003" + accountAddrPubKey = "0x0000004" mutation = ` mutation UpdateFeedsManagerChainConfig($id: ID!, $input: UpdateFeedsManagerChainConfigInput!) { @@ -304,6 +309,7 @@ func Test_UpdateFeedsManagerChainConfig(t *testing.T) { "id": "1", "input": map[string]interface{}{ "accountAddr": accountAddr, + "accountAddrPubKey": accountAddrPubKey, "adminAddr": adminAddr, "fluxMonitorEnabled": false, "ocr1Enabled": true, @@ -328,9 +334,10 @@ func Test_UpdateFeedsManagerChainConfig(t *testing.T) { before: func(ctx context.Context, f *gqlTestFramework) { f.App.On("GetFeedsService").Return(f.Mocks.feedsSvc) f.Mocks.feedsSvc.On("UpdateChainConfig", mock.Anything, feeds.ChainConfig{ - ID: cfgID, - AccountAddress: accountAddr, - AdminAddress: adminAddr, + ID: cfgID, + AccountAddress: accountAddr, + AccountAddressPublicKey: null.StringFrom(accountAddrPubKey), + AdminAddress: adminAddr, FluxMonitorConfig: feeds.FluxMonitorConfig{ Enabled: false, }, @@ -354,9 +361,10 @@ func Test_UpdateFeedsManagerChainConfig(t *testing.T) { }, }).Return(cfgID, nil) f.Mocks.feedsSvc.On("GetChainConfig", mock.Anything, cfgID).Return(&feeds.ChainConfig{ - ID: cfgID, - AccountAddress: accountAddr, - AdminAddress: adminAddr, + ID: cfgID, + AccountAddress: accountAddr, + AdminAddress: adminAddr, + AccountAddressPublicKey: null.StringFrom(accountAddrPubKey), FluxMonitorConfig: feeds.FluxMonitorConfig{ Enabled: false, }, diff --git a/core/web/resolver/mutation.go b/core/web/resolver/mutation.go index 25019df9761..08b435e82ce 100644 --- a/core/web/resolver/mutation.go +++ b/core/web/resolver/mutation.go @@ -157,6 +157,7 @@ type createFeedsManagerChainConfigInput struct { ChainID string ChainType string AccountAddr string + AccountAddrPubKey *string AdminAddr string FluxMonitorEnabled bool OCR1Enabled bool @@ -203,6 +204,10 @@ func (r *Resolver) CreateFeedsManagerChainConfig(ctx context.Context, args struc }, } + if args.Input.AccountAddrPubKey != nil { + params.AccountAddressPublicKey = null.StringFromPtr(args.Input.AccountAddrPubKey) + } + if args.Input.OCR1Enabled { params.OCR1Config = feeds.OCR1Config{ Enabled: args.Input.OCR1Enabled, @@ -292,6 +297,7 @@ func (r *Resolver) DeleteFeedsManagerChainConfig(ctx context.Context, args struc type updateFeedsManagerChainConfigInput struct { AccountAddr string + AccountAddrPubKey *string AdminAddr string FluxMonitorEnabled bool OCR1Enabled bool @@ -332,6 +338,10 @@ func (r *Resolver) UpdateFeedsManagerChainConfig(ctx context.Context, args struc }, } + if args.Input.AccountAddrPubKey != nil { + params.AccountAddressPublicKey = null.StringFromPtr(args.Input.AccountAddrPubKey) + } + if args.Input.OCR1Enabled { params.OCR1Config = feeds.OCR1Config{ Enabled: args.Input.OCR1Enabled, diff --git a/core/web/schema/type/feeds_manager.graphql b/core/web/schema/type/feeds_manager.graphql index a6301c9ef6b..12e8732c8e0 100644 --- a/core/web/schema/type/feeds_manager.graphql +++ b/core/web/schema/type/feeds_manager.graphql @@ -28,6 +28,7 @@ type FeedsManagerChainConfig { chainID: String! chainType: String! accountAddr: String! + accountAddrPubKey: String adminAddr: String! fluxMonitorJobConfig: FluxMonitorJobConfig! ocr1JobConfig: OCR1JobConfig! @@ -109,6 +110,7 @@ input CreateFeedsManagerChainConfigInput { chainID: String! chainType: String! accountAddr: String! + accountAddrPubKey: String adminAddr: String! fluxMonitorEnabled: Boolean! ocr1Enabled: Boolean! @@ -150,6 +152,7 @@ union DeleteFeedsManagerChainConfigPayload = DeleteFeedsManagerChainConfigSucces input UpdateFeedsManagerChainConfigInput { accountAddr: String! + accountAddrPubKey: String adminAddr: String! fluxMonitorEnabled: Boolean! ocr1Enabled: Boolean! From 066afc0877a9e953bbda25a4ff09009d7f1c1e2d Mon Sep 17 00:00:00 2001 From: krehermann Date: Thu, 6 Jun 2024 18:10:41 -0600 Subject: [PATCH 22/40] KS-309: use jobProposalSpec id for WF auto approval (#13455) * use spec id for WF auto approval * fix tests --- .changeset/popular-cycles-divide.md | 5 +++++ core/services/feeds/service.go | 6 ++++-- core/services/feeds/service_test.go | 20 +++++++++++--------- 3 files changed, 20 insertions(+), 11 deletions(-) create mode 100644 .changeset/popular-cycles-divide.md diff --git a/.changeset/popular-cycles-divide.md b/.changeset/popular-cycles-divide.md new file mode 100644 index 00000000000..e2ea186e7cc --- /dev/null +++ b/.changeset/popular-cycles-divide.md @@ -0,0 +1,5 @@ +--- +"chainlink": minor +--- + +#bugfix use correct internal id in workflow auto-approval diff --git a/core/services/feeds/service.go b/core/services/feeds/service.go index 4e159cbd0bb..e1b05a403f6 100644 --- a/core/services/feeds/service.go +++ b/core/services/feeds/service.go @@ -579,6 +579,8 @@ func (s *service) ProposeJob(ctx context.Context, args *ProposeJobArgs) (int64, ) var id int64 + // we need the specID to auto-approve workflow specs + var specID int64 err = s.orm.Transact(ctx, func(tx ORM) error { var txerr error @@ -598,7 +600,7 @@ func (s *service) ProposeJob(ctx context.Context, args *ProposeJobArgs) (int64, } // Create the spec version - _, txerr = tx.CreateSpec(ctx, JobProposalSpec{ + specID, txerr = tx.CreateSpec(ctx, JobProposalSpec{ Definition: args.Spec, Status: SpecStatusPending, Version: args.Version, @@ -616,7 +618,7 @@ func (s *service) ProposeJob(ctx context.Context, args *ProposeJobArgs) (int64, // auto approve workflow specs if isWFSpec(logger, args.Spec) { promWorkflowRequests.Inc() - err = s.ApproveSpec(ctx, id, true) + err = s.ApproveSpec(ctx, specID, true) if err != nil { promWorkflowFailures.Inc() logger.Errorw("Failed to auto approve workflow spec", "id", id, "err", err) diff --git a/core/services/feeds/service_test.go b/core/services/feeds/service_test.go index 10dd1d8cfab..d1133662a76 100644 --- a/core/services/feeds/service_test.go +++ b/core/services/feeds/service_test.go @@ -678,10 +678,11 @@ targets: inputs: consensus_output: $(a-consensus.outputs) ` - wfSpec = testspecs.GenerateWorkflowSpec(wfID, wfOwner, wfName, specYaml).Toml() - proposalIDWF = int64(11) - remoteUUIDWF = uuid.New() - argsWF = &feeds.ProposeJobArgs{ + wfSpec = testspecs.GenerateWorkflowSpec(wfID, wfOwner, wfName, specYaml).Toml() + proposalIDWF = int64(11) + jobProposalSpecIdWF = int64(101) + remoteUUIDWF = uuid.New() + argsWF = &feeds.ProposeJobArgs{ FeedsManagerID: 1, RemoteUUID: remoteUUIDWF, Spec: wfSpec, @@ -713,7 +714,7 @@ targets: before: func(svc *TestService) { svc.orm.On("GetJobProposalByRemoteUUID", mock.Anything, argsWF.RemoteUUID).Return(new(feeds.JobProposal), sql.ErrNoRows) svc.orm.On("UpsertJobProposal", mock.Anything, &jpWF).Return(proposalIDWF, nil) - svc.orm.On("CreateSpec", mock.Anything, proposalSpecWF).Return(int64(100), nil) + svc.orm.On("CreateSpec", mock.Anything, proposalSpecWF).Return(jobProposalSpecIdWF, nil) svc.orm.On("CountJobProposalsByStatus", mock.Anything).Return(&feeds.JobProposalCounts{}, nil) transactCall := svc.orm.On("Transact", mock.Anything, mock.Anything) transactCall.Run(func(args mock.Arguments) { @@ -722,7 +723,7 @@ targets: }) // Auto approve is really a call to ApproveJobProposal and so we have to mock that as well svc.connMgr.On("GetClient", argsWF.FeedsManagerID).Return(svc.fmsClient, nil) - svc.orm.EXPECT().GetSpec(mock.Anything, proposalIDWF).Return(&proposalSpecWF, nil) + svc.orm.EXPECT().GetSpec(mock.Anything, jobProposalSpecIdWF).Return(&proposalSpecWF, nil) svc.orm.EXPECT().GetJobProposal(mock.Anything, proposalSpecWF.JobProposalID).Return(&jpWF, nil) svc.jobORM.On("AssertBridgesExist", mock.Anything, mock.IsType(pipeline.Pipeline{})).Return(nil) @@ -741,7 +742,7 @@ targets: Return(nil) svc.orm.On("ApproveSpec", mock.Anything, - proposalSpecWF.JobProposalID, + jobProposalSpecIdWF, mock.IsType(uuid.UUID{}), ).Return(nil) svc.fmsClient.On("ApprovedJob", @@ -755,12 +756,13 @@ targets: args: argsWF, wantID: proposalIDWF, }, + { name: "Auto approve WF spec: error creating job", before: func(svc *TestService) { svc.orm.On("GetJobProposalByRemoteUUID", mock.Anything, argsWF.RemoteUUID).Return(new(feeds.JobProposal), sql.ErrNoRows) svc.orm.On("UpsertJobProposal", mock.Anything, &jpWF).Return(proposalIDWF, nil) - svc.orm.On("CreateSpec", mock.Anything, proposalSpecWF).Return(int64(100), nil) + svc.orm.On("CreateSpec", mock.Anything, proposalSpecWF).Return(jobProposalSpecIdWF, nil) // svc.orm.On("CountJobProposalsByStatus", mock.Anything).Return(&feeds.JobProposalCounts{}, nil) transactCall := svc.orm.On("Transact", mock.Anything, mock.Anything) transactCall.Run(func(args mock.Arguments) { @@ -769,7 +771,7 @@ targets: }) // Auto approve is really a call to ApproveJobProposal and so we have to mock that as well svc.connMgr.On("GetClient", argsWF.FeedsManagerID).Return(svc.fmsClient, nil) - svc.orm.EXPECT().GetSpec(mock.Anything, proposalIDWF).Return(&proposalSpecWF, nil) + svc.orm.EXPECT().GetSpec(mock.Anything, jobProposalSpecIdWF).Return(&proposalSpecWF, nil) svc.orm.EXPECT().GetJobProposal(mock.Anything, proposalSpecWF.JobProposalID).Return(&jpWF, nil) svc.jobORM.On("AssertBridgesExist", mock.Anything, mock.IsType(pipeline.Pipeline{})).Return(nil) From 0d95942ad414a3ecefb17bd8166fe28f474018d0 Mon Sep 17 00:00:00 2001 From: HenryNguyen5 <6404866+HenryNguyen5@users.noreply.github.com> Date: Fri, 7 Jun 2024 04:41:08 -0400 Subject: [PATCH 23/40] Validate keystone workflows + Enforce full semver on capabilities (#13328) * Enable workflow validation against JSON spec * Merge version field with ID * Use full capability versioning in workflow yaml * Update gomod * fixup! Update gomod * fixup! Enable workflow validation against JSON spec * fixup! Update gomod --------- Co-authored-by: Bolek <1416262+bolekk@users.noreply.github.com> --- .changeset/four-knives-stare.md | 5 + .changeset/happy-oranges-heal.md | 5 + core/capabilities/registry.go | 2 +- core/capabilities/registry_test.go | 19 +- .../capabilities/remote/target/client_test.go | 5 +- .../remote/target/endtoend_test.go | 3 +- .../target/request/client_request_test.go | 3 +- .../capabilities/remote/target/server_test.go | 3 +- .../remote/trigger_publisher_test.go | 3 +- .../remote/trigger_subscriber_test.go | 3 +- core/capabilities/syncer.go | 3 +- core/capabilities/targets/write_target.go | 5 +- .../capabilities/targets/write_target_test.go | 2 +- .../local_target_capability_test.go | 3 +- core/scripts/go.mod | 2 +- core/scripts/go.sum | 4 +- core/services/feeds/service_test.go | 12 +- core/services/relay/evm/write_target.go | 6 +- core/services/workflows/delegate_test.go | 181 ++++++++++++++---- core/services/workflows/engine_test.go | 44 ++--- core/services/workflows/models_test.go | 102 ++++++---- core/web/jobs_controller_test.go | 8 +- go.mod | 3 +- go.sum | 4 +- integration-tests/go.mod | 3 +- integration-tests/go.sum | 4 +- integration-tests/load/go.mod | 2 +- integration-tests/load/go.sum | 4 +- 28 files changed, 289 insertions(+), 154 deletions(-) create mode 100644 .changeset/four-knives-stare.md create mode 100644 .changeset/happy-oranges-heal.md diff --git a/.changeset/four-knives-stare.md b/.changeset/four-knives-stare.md new file mode 100644 index 00000000000..edac39bc894 --- /dev/null +++ b/.changeset/four-knives-stare.md @@ -0,0 +1,5 @@ +--- +"chainlink": patch +--- + +#internal [Keystone] Merge version field with ID diff --git a/.changeset/happy-oranges-heal.md b/.changeset/happy-oranges-heal.md new file mode 100644 index 00000000000..9041c861a79 --- /dev/null +++ b/.changeset/happy-oranges-heal.md @@ -0,0 +1,5 @@ +--- +"chainlink": patch +--- + +#internal Add workflow validation diff --git a/core/capabilities/registry.go b/core/capabilities/registry.go index 042e5dfca90..84174e0232f 100644 --- a/core/capabilities/registry.go +++ b/core/capabilities/registry.go @@ -145,7 +145,7 @@ func (r *Registry) Add(ctx context.Context, c capabilities.BaseCapability) error } r.m[id] = c - r.lggr.Infow("capability added", "id", id, "type", info.CapabilityType, "description", info.Description, "version", info.Version) + r.lggr.Infow("capability added", "id", id, "type", info.CapabilityType, "description", info.Description, "version", info.Version()) return nil } diff --git a/core/capabilities/registry_test.go b/core/capabilities/registry_test.go index 3bed31a957a..5208781700a 100644 --- a/core/capabilities/registry_test.go +++ b/core/capabilities/registry_test.go @@ -2,6 +2,7 @@ package capabilities_test import ( "context" + "fmt" "testing" "github.com/google/uuid" @@ -36,12 +37,11 @@ func TestRegistry(t *testing.T) { r := coreCapabilities.NewRegistry(logger.TestLogger(t)) - id := "capability-1" + id := "capability-1@1.0.0" ci, err := capabilities.NewCapabilityInfo( id, capabilities.CapabilityTypeAction, "capability-1-description", - "v1.0.0", ) require.NoError(t, err) @@ -64,12 +64,11 @@ func TestRegistry_NoDuplicateIDs(t *testing.T) { ctx := testutils.Context(t) r := coreCapabilities.NewRegistry(logger.TestLogger(t)) - id := "capability-1" + id := "capability-1@1.0.0" ci, err := capabilities.NewCapabilityInfo( id, capabilities.CapabilityTypeAction, "capability-1-description", - "v1.0.0", ) require.NoError(t, err) @@ -81,13 +80,12 @@ func TestRegistry_NoDuplicateIDs(t *testing.T) { id, capabilities.CapabilityTypeConsensus, "capability-2-description", - "v1.0.0", ) require.NoError(t, err) c2 := &mockCapability{CapabilityInfo: ci} err = r.Add(ctx, c2) - assert.ErrorContains(t, err, "capability with id: capability-1 already exists") + assert.ErrorContains(t, err, "capability with id: capability-1@1.0.0 already exists") } func TestRegistry_ChecksExecutionAPIByType(t *testing.T) { @@ -100,12 +98,11 @@ func TestRegistry_ChecksExecutionAPIByType(t *testing.T) { { name: "action", newCapability: func(ctx context.Context, reg *coreCapabilities.Registry) (string, error) { - id := uuid.New().String() + id := fmt.Sprintf("%s@%s", uuid.New().String(), "1.0.0") ci, err := capabilities.NewCapabilityInfo( id, capabilities.CapabilityTypeAction, "capability-1-description", - "v1.0.0", ) require.NoError(t, err) @@ -120,12 +117,11 @@ func TestRegistry_ChecksExecutionAPIByType(t *testing.T) { { name: "target", newCapability: func(ctx context.Context, reg *coreCapabilities.Registry) (string, error) { - id := uuid.New().String() + id := fmt.Sprintf("%s@%s", uuid.New().String(), "1.0.0") ci, err := capabilities.NewCapabilityInfo( id, capabilities.CapabilityTypeTarget, "capability-1-description", - "v1.0.0", ) require.NoError(t, err) @@ -153,12 +149,11 @@ func TestRegistry_ChecksExecutionAPIByType(t *testing.T) { { name: "consensus", newCapability: func(ctx context.Context, reg *coreCapabilities.Registry) (string, error) { - id := uuid.New().String() + id := fmt.Sprintf("%s@%s", uuid.New().String(), "1.0.0") ci, err := capabilities.NewCapabilityInfo( id, capabilities.CapabilityTypeConsensus, "capability-1-description", - "v1.0.0", ) require.NoError(t, err) diff --git a/core/capabilities/remote/target/client_test.go b/core/capabilities/remote/target/client_test.go index 5bfbb0c7a0c..f5c6c19ef93 100644 --- a/core/capabilities/remote/target/client_test.go +++ b/core/capabilities/remote/target/client_test.go @@ -138,10 +138,9 @@ func testClient(ctx context.Context, t *testing.T, numWorkflowPeers int, workflo } capInfo := commoncap.CapabilityInfo{ - ID: "cap_id", + ID: "cap_id@1.0.0", CapabilityType: commoncap.CapabilityTypeTarget, Description: "Remote Target", - Version: "0.0.1", DON: &capDonInfo, } @@ -257,7 +256,7 @@ func (t *clientTestServer) Receive(msg *remotetypes.MessageBody) { for receiver := range t.messageIDToSenders[messageID] { var responseMsg = &remotetypes.MessageBody{ - CapabilityId: "cap_id", + CapabilityId: "cap_id@1.0.0", CapabilityDonId: "capability-don", CallerDonId: t.workflowDonInfo.ID, Method: remotetypes.MethodExecute, diff --git a/core/capabilities/remote/target/endtoend_test.go b/core/capabilities/remote/target/endtoend_test.go index 998c9532871..24776960562 100644 --- a/core/capabilities/remote/target/endtoend_test.go +++ b/core/capabilities/remote/target/endtoend_test.go @@ -200,10 +200,9 @@ func testRemoteTarget(ctx context.Context, t *testing.T, underlying commoncap.Ta } capInfo := commoncap.CapabilityInfo{ - ID: "cap_id", + ID: "cap_id@1.0.0", CapabilityType: commoncap.CapabilityTypeTarget, Description: "Remote Target", - Version: "0.0.1", DON: &capDonInfo, } diff --git a/core/capabilities/remote/target/request/client_request_test.go b/core/capabilities/remote/target/request/client_request_test.go index 930ba595625..e4b0d9da88e 100644 --- a/core/capabilities/remote/target/request/client_request_test.go +++ b/core/capabilities/remote/target/request/client_request_test.go @@ -35,10 +35,9 @@ func Test_ClientRequest_MessageValidation(t *testing.T) { } capInfo := commoncap.CapabilityInfo{ - ID: "cap_id", + ID: "cap_id@1.0.0", CapabilityType: commoncap.CapabilityTypeTarget, Description: "Remote Target", - Version: "0.0.1", DON: &capDonInfo, } diff --git a/core/capabilities/remote/target/server_test.go b/core/capabilities/remote/target/server_test.go index ed80e760951..fd7cbe0dfd1 100644 --- a/core/capabilities/remote/target/server_test.go +++ b/core/capabilities/remote/target/server_test.go @@ -117,10 +117,9 @@ func testRemoteTargetServer(ctx context.Context, t *testing.T, } capInfo := commoncap.CapabilityInfo{ - ID: "cap_id", + ID: "cap_id@1.0.0", CapabilityType: commoncap.CapabilityTypeTarget, Description: "Remote Target", - Version: "0.0.1", DON: &capDonInfo, } diff --git a/core/capabilities/remote/trigger_publisher_test.go b/core/capabilities/remote/trigger_publisher_test.go index 71a5174c07f..15bdd39b55f 100644 --- a/core/capabilities/remote/trigger_publisher_test.go +++ b/core/capabilities/remote/trigger_publisher_test.go @@ -20,10 +20,9 @@ func TestTriggerPublisher_Register(t *testing.T) { lggr := logger.TestLogger(t) ctx := testutils.Context(t) capInfo := commoncap.CapabilityInfo{ - ID: "cap_id", + ID: "cap_id@1", CapabilityType: commoncap.CapabilityTypeTrigger, Description: "Remote Trigger", - Version: "0.0.1", } p1 := p2ptypes.PeerID{} require.NoError(t, p1.UnmarshalText([]byte(peerID1))) diff --git a/core/capabilities/remote/trigger_subscriber_test.go b/core/capabilities/remote/trigger_subscriber_test.go index 1ad360418fb..e50f570bb7b 100644 --- a/core/capabilities/remote/trigger_subscriber_test.go +++ b/core/capabilities/remote/trigger_subscriber_test.go @@ -29,10 +29,9 @@ func TestTriggerSubscriber_RegisterAndReceive(t *testing.T) { lggr := logger.TestLogger(t) ctx := testutils.Context(t) capInfo := commoncap.CapabilityInfo{ - ID: "cap_id", + ID: "cap_id@1", CapabilityType: commoncap.CapabilityTypeTrigger, Description: "Remote Trigger", - Version: "0.0.1", } p1 := p2ptypes.PeerID{} require.NoError(t, p1.UnmarshalText([]byte(peerID1))) diff --git a/core/capabilities/syncer.go b/core/capabilities/syncer.go index 1c3bbab8fe8..e80ea9a13ff 100644 --- a/core/capabilities/syncer.go +++ b/core/capabilities/syncer.go @@ -76,12 +76,11 @@ func (s *registrySyncer) Start(ctx context.Context) error { // that reads the configuration from chain (KS-117). func (s *registrySyncer) launch(ctx context.Context) { defer s.wg.Done() - capId := "streams-trigger" + capId := "streams-trigger@0.0.1" triggerInfo, err := capabilities.NewRemoteCapabilityInfo( capId, capabilities.CapabilityTypeTrigger, "Remote Trigger", - "v0.0.1", &s.networkSetup.TriggerCapabilityDonInfo, ) if err != nil { diff --git a/core/capabilities/targets/write_target.go b/core/capabilities/targets/write_target.go index 97b88330ba3..913551d20b0 100644 --- a/core/capabilities/targets/write_target.go +++ b/core/capabilities/targets/write_target.go @@ -31,12 +31,11 @@ type WriteTarget struct { lggr logger.Logger } -func NewWriteTarget(lggr logger.Logger, name string, cr commontypes.ContractReader, cw commontypes.ChainWriter, forwarderAddress string) *WriteTarget { +func NewWriteTarget(lggr logger.Logger, id string, cr commontypes.ContractReader, cw commontypes.ChainWriter, forwarderAddress string) *WriteTarget { info := capabilities.MustNewCapabilityInfo( - name, + id, capabilities.CapabilityTypeTarget, "Write target.", - "v1.0.0", ) logger := lggr.Named("WriteTarget") diff --git a/core/capabilities/targets/write_target_test.go b/core/capabilities/targets/write_target_test.go index 5d77535bdcb..9f243389f27 100644 --- a/core/capabilities/targets/write_target_test.go +++ b/core/capabilities/targets/write_target_test.go @@ -31,7 +31,7 @@ func TestWriteTarget(t *testing.T) { forwarderA := testutils.NewAddress() forwarderAddr := forwarderA.Hex() - writeTarget := targets.NewWriteTarget(lggr, "Test", cr, cw, forwarderAddr) + writeTarget := targets.NewWriteTarget(lggr, "test-write-target@1.0.0", cr, cw, forwarderAddr) require.NotNil(t, writeTarget) config, err := values.NewMap(map[string]any{ diff --git a/core/capabilities/transmission/local_target_capability_test.go b/core/capabilities/transmission/local_target_capability_test.go index 19d51b492ff..6b4d040f0fa 100644 --- a/core/capabilities/transmission/local_target_capability_test.go +++ b/core/capabilities/transmission/local_target_capability_test.go @@ -33,10 +33,9 @@ func TestScheduledExecutionStrategy_LocalDON(t *testing.T) { // schedule. mt := newMockCapability( capabilities.MustNewCapabilityInfo( - "write_polygon-testnet-mumbai", + "write_polygon-testnet-mumbai@1.0.0", capabilities.CapabilityTypeTarget, "a write capability targeting polygon mumbai testnet", - "v1.0.0", ), func(req capabilities.CapabilityRequest) (capabilities.CapabilityResponse, error) { gotTime = time.Now() diff --git a/core/scripts/go.mod b/core/scripts/go.mod index e2dcfcdba9b..171751a3f0c 100644 --- a/core/scripts/go.mod +++ b/core/scripts/go.mod @@ -24,7 +24,7 @@ require ( github.com/prometheus/client_golang v1.17.0 github.com/shopspring/decimal v1.3.1 github.com/smartcontractkit/chainlink-automation v1.0.3 - github.com/smartcontractkit/chainlink-common v0.1.7-0.20240606094423-573049c41fa0 + github.com/smartcontractkit/chainlink-common v0.1.7-0.20240606173949-4d52ba4e3c79 github.com/smartcontractkit/chainlink-vrf v0.0.0-20240222010609-cd67d123c772 github.com/smartcontractkit/chainlink/v2 v2.0.0-00010101000000-000000000000 github.com/smartcontractkit/libocr v0.0.0-20240419185742-fd3cab206b2c diff --git a/core/scripts/go.sum b/core/scripts/go.sum index 76215a34c15..469e468bd6e 100644 --- a/core/scripts/go.sum +++ b/core/scripts/go.sum @@ -1212,8 +1212,8 @@ github.com/smartcontractkit/chain-selectors v1.0.10 h1:t9kJeE6B6G+hKD0GYR4kGJSCq github.com/smartcontractkit/chain-selectors v1.0.10/go.mod h1:d4Hi+E1zqjy9HqMkjBE5q1vcG9VGgxf5VxiRHfzi2kE= github.com/smartcontractkit/chainlink-automation v1.0.3 h1:h/ijT0NiyV06VxYVgcNfsE3+8OEzT3Q0Z9au0z1BPWs= github.com/smartcontractkit/chainlink-automation v1.0.3/go.mod h1:RjboV0Qd7YP+To+OrzHGXaxUxoSONveCoAK2TQ1INLU= -github.com/smartcontractkit/chainlink-common v0.1.7-0.20240606094423-573049c41fa0 h1:53zVcdDxrHG3oewhP7AWOiLtwTozcQ0/wzFTsaTBS5M= -github.com/smartcontractkit/chainlink-common v0.1.7-0.20240606094423-573049c41fa0/go.mod h1:DUZccDEW98n+J1mhdWGO7wr/Njad9p9Fzks839JN7Rs= +github.com/smartcontractkit/chainlink-common v0.1.7-0.20240606173949-4d52ba4e3c79 h1:hs8dNt80KM3iBPBJ4fo6Kp3gsHhdJUe8RVr/JpGBaQM= +github.com/smartcontractkit/chainlink-common v0.1.7-0.20240606173949-4d52ba4e3c79/go.mod h1:L32xvCpk84Nglit64OhySPMP1tM3TTBK7Tw0qZl7Sd4= github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20240524214833-c362c2ebbd2d h1:5tgMC5Gi2UAOKZ+m28W8ubjLeR0pQCAcrz6eQ0rW510= github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20240524214833-c362c2ebbd2d/go.mod h1:0UNuO3nDt9MFsZPaHJBEUolxVkN0iC69j1ccDp95e8k= github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240606130021-a4b7359e1580 h1:nsnLzpBTDAQWkfsOz/qd8BTlb1hUpaow1KmA1tPwTf4= diff --git a/core/services/feeds/service_test.go b/core/services/feeds/service_test.go index d1133662a76..7e4097a1d13 100644 --- a/core/services/feeds/service_test.go +++ b/core/services/feeds/service_test.go @@ -657,23 +657,27 @@ func Test_Service_ProposeJob(t *testing.T) { wfName = "myworkflow" // len 10 specYaml = ` triggers: - - id: "a-trigger" + - id: "a-trigger@1.0.0" + config: {} actions: - - id: "an-action" + - id: "an-action@1.0.0" ref: "an-action" + config: {} inputs: trigger_output: $(trigger.outputs) consensus: - - id: "a-consensus" + - id: "a-consensus@1.0.0" ref: "a-consensus" + config: {} inputs: trigger_output: $(trigger.outputs) an-action_output: $(an-action.outputs) targets: - - id: "a-target" + - id: "a-target@1.0.0" + config: {} ref: "a-target" inputs: consensus_output: $(a-consensus.outputs) diff --git a/core/services/relay/evm/write_target.go b/core/services/relay/evm/write_target.go index 172e4c1423c..c3df064bb4e 100644 --- a/core/services/relay/evm/write_target.go +++ b/core/services/relay/evm/write_target.go @@ -17,10 +17,10 @@ import ( func NewWriteTarget(ctx context.Context, relayer *Relayer, chain legacyevm.Chain, lggr logger.Logger) (*targets.WriteTarget, error) { // generate ID based on chain selector - name := fmt.Sprintf("write_%v", chain.ID()) + id := fmt.Sprintf("write_%v@0.0.1", chain.ID()) chainName, err := chainselectors.NameFromChainId(chain.ID().Uint64()) if err == nil { - name = fmt.Sprintf("write_%v", chainName) + id = fmt.Sprintf("write_%v@0.0.1", chainName) } // EVM-specific init @@ -74,5 +74,5 @@ func NewWriteTarget(ctx context.Context, relayer *Relayer, chain legacyevm.Chain return nil, err } - return targets.NewWriteTarget(lggr, name, cr, cw, config.ForwarderAddress().String()), nil + return targets.NewWriteTarget(lggr, id, cr, cw, config.ForwarderAddress().String()), nil } diff --git a/core/services/workflows/delegate_test.go b/core/services/workflows/delegate_test.go index f7e106796e6..dde01e50665 100644 --- a/core/services/workflows/delegate_test.go +++ b/core/services/workflows/delegate_test.go @@ -6,69 +6,174 @@ import ( "github.com/stretchr/testify/require" "github.com/smartcontractkit/chainlink/v2/core/services/workflows" + "github.com/smartcontractkit/chainlink/v2/core/testdata/testspecs" ) func TestDelegate_JobSpecValidator(t *testing.T) { t.Parallel() - + validName := "ten bytes!" var tt = []struct { - name string - toml string - valid bool + name string + workflowTomlFn func() string + valid bool }{ { - "valid spec", - ` -type = "workflow" -schemaVersion = 1 -workflowId = "15c631d295ef5e32deb99a10ee6804bc4af1385568f9b3363f6552ac6dbb2cef" -workflowOwner = "00000000000000000000000000000000000000aa" -workflowName = "ten bytes!" -`, - true, + "not a hex owner", + func() string { + workflowId := "15c631d295ef5e32deb99a10ee6804bc4af1385568f9b3363f6552ac6dbb2cef" + workflowOwner := "00000000000000000000000000000000000000aZ" + return testspecs.GenerateWorkflowSpec(workflowId, workflowOwner, "1234567890", "").Toml() + }, + false, }, { - "parse error", - ` -invalid syntax{{{{ -`, + "missing workflow field", + func() string { + id := "15c631d295ef5e32deb99a10ee6804bc4af1385568f9b3363f6552ac6dbb2cef" + owner := "00000000000000000000000000000000000000aa" + return testspecs.GenerateWorkflowSpec(id, owner, validName, "").Toml() + }, false, }, + { - "invalid job type", - ` -type = "work flows" -schemaVersion = 1 -`, + "null workflow", + func() string { + id := "15c631d295ef5e32deb99a10ee6804bc4af1385568f9b3363f6552ac6dbb2cef" + owner := "00000000000000000000000000000000000000aa" + return testspecs.GenerateWorkflowSpec(id, owner, validName, "{}").Toml() + }, false, }, + { - "invalid name length", - ` -type = "workflow" -schemaVersion = 1 -workflowId = "15c631d295ef5e32deb99a10ee6804bc4af1385568f9b3363f6552ac6dbb2cef" -workflowOwner = "00000000000000000000000000000000000000aa" -workflowName = "not ten bytes" -`, + "missing name", + func() string { + id := "15c631d295ef5e32deb99a10ee6804bc4af1385568f9b3363f6552ac6dbb2cef" + owner := "00000000000000000000000000000000000000aa" + wf := ` +triggers: [] +consensus: [] +targets: [] +` + return testspecs.GenerateWorkflowSpec(id, owner, "", wf).Toml() + }, false, }, + { - "not a hex owner", - ` -type = "workflow" + "minimal passing workflow", + func() string { + id := "15c631d295ef5e32deb99a10ee6804bc4af1385568f9b3363f6552ac6dbb2cef" + owner := "00000000000000000000000000000000000000aa" + wf := ` +triggers: [] +consensus: [] +targets: [] +` + return testspecs.GenerateWorkflowSpec(id, owner, validName, wf).Toml() + }, + true, + }, + + { + "name too long", + func() string { + id := "15c631d295ef5e32deb99a10ee6804bc4af1385568f9b3363f6552ac6dbb2cef" + owner := "00000000000000000000000000000000000000aa" + wf := ` +triggers: [] +consensus: [] +targets: [] +` + return testspecs.GenerateWorkflowSpec(id, owner, validName+"1", wf).Toml() + }, + false, + }, + + // Taken from jobs controller test, as we want to fail early without a db / slow test dependency + { + "valid full spec", + func() string { + id := "15c631d295ef5e32deb99a10ee6804bc4af1385568f9b3363f6552ac6dbb2cef" + owner := "00000000000000000000000000000000000000aa" + workflow := ` +triggers: + - id: "mercury-trigger@1.0.0" + config: + feedIds: + - "0x1111111111111111111100000000000000000000000000000000000000000000" + - "0x2222222222222222222200000000000000000000000000000000000000000000" + - "0x3333333333333333333300000000000000000000000000000000000000000000" + +consensus: + - id: "offchain_reporting@2.0.0" + ref: "evm_median" + inputs: + observations: + - "$(trigger.outputs)" + config: + aggregation_method: "data_feeds_2_0" + aggregation_config: + "0x1111111111111111111100000000000000000000000000000000000000000000": + deviation: "0.001" + heartbeat: 3600 + "0x2222222222222222222200000000000000000000000000000000000000000000": + deviation: "0.001" + heartbeat: 3600 + "0x3333333333333333333300000000000000000000000000000000000000000000": + deviation: "0.001" + heartbeat: 3600 + encoder: "EVM" + encoder_config: + abi: "mercury_reports bytes[]" + +targets: + - id: "write_polygon-testnet-mumbai@3.0.0" + inputs: + report: "$(evm_median.outputs.report)" + config: + address: "0x3F3554832c636721F1fD1822Ccca0354576741Ef" + params: ["$(report)"] + abi: "receive(report bytes)" + - id: "write_ethereum-testnet-sepolia@4.0.0" + inputs: + report: "$(evm_median.outputs.report)" + config: + address: "0x54e220867af6683aE6DcBF535B4f952cB5116510" + params: ["$(report)"] + abi: "receive(report bytes)" +` + return testspecs.GenerateWorkflowSpec(id, owner, validName, workflow).Toml() + }, + true, + }, + + { + "parse error", + func() string { + return ` +invalid syntax{{{{ +` + }, + false, + }, + + { + "invalid job type", + func() string { + return ` +type = "work flows" schemaVersion = 1 -workflowId = "15c631d295ef5e32deb99a10ee6804bc4af1385568f9b3363f6552ac6dbb2cef" -workflowOwner = "00000000000000000000000000000000000000aZ" -workflowName = "0123456789" -`, +` + }, false, }, } for _, tc := range tt { tc := tc t.Run(tc.name, func(t *testing.T) { - _, err := workflows.ValidatedWorkflowSpec(tc.toml) + _, err := workflows.ValidatedWorkflowSpec(tc.workflowTomlFn()) if tc.valid { require.NoError(t, err) } else { diff --git a/core/services/workflows/engine_test.go b/core/services/workflows/engine_test.go index a25568953a8..7f76db137e9 100644 --- a/core/services/workflows/engine_test.go +++ b/core/services/workflows/engine_test.go @@ -24,7 +24,7 @@ import ( const hardcodedWorkflow = ` triggers: - - id: "mercury-trigger" + - id: "mercury-trigger@1.0.0" config: feedIds: - "0x1111111111111111111100000000000000000000000000000000000000000000" @@ -32,7 +32,7 @@ triggers: - "0x3333333333333333333300000000000000000000000000000000000000000000" consensus: - - id: "offchain_reporting" + - id: "offchain_reporting@1.0.0" ref: "evm_median" inputs: observations: @@ -54,14 +54,14 @@ consensus: abi: "mercury_reports bytes[]" targets: - - id: "write_polygon-testnet-mumbai" + - id: "write_polygon-testnet-mumbai@1.0.0" inputs: report: "$(evm_median.outputs.report)" config: address: "0x3F3554832c636721F1fD1822Ccca0354576741Ef" params: ["$(report)"] abi: "receive(report bytes)" - - id: "write_ethereum-testnet-sepolia" + - id: "write_ethereum-testnet-sepolia@1.0.0" inputs: report: "$(evm_median.outputs.report)" config: @@ -210,10 +210,9 @@ func TestEngineWithHardcodedWorkflow(t *testing.T) { target2 := newMockCapability( capabilities.MustNewCapabilityInfo( - "write_ethereum-testnet-sepolia", + "write_ethereum-testnet-sepolia@1.0.0", capabilities.CapabilityTypeTarget, "a write capability targeting ethereum sepolia testnet", - "v1.0.0", ), func(req capabilities.CapabilityRequest) (capabilities.CapabilityResponse, error) { m := req.Inputs.Underlying["report"].(*values.Map) @@ -250,7 +249,7 @@ func TestEngineWithHardcodedWorkflow(t *testing.T) { const ( simpleWorkflow = ` triggers: - - id: "mercury-trigger" + - id: "mercury-trigger@1.0.0" config: feedlist: - "0x1111111111111111111100000000000000000000000000000000000000000000" # ETHUSD @@ -258,7 +257,7 @@ triggers: - "0x3333333333333333333300000000000000000000000000000000000000000000" # BTCUSD consensus: - - id: "offchain_reporting" + - id: "offchain_reporting@1.0.0" ref: "evm_median" inputs: observations: @@ -280,7 +279,7 @@ consensus: abi: "mercury_reports bytes[]" targets: - - id: "write_polygon-testnet-mumbai" + - id: "write_polygon-testnet-mumbai@1.0.0" inputs: report: "$(evm_median.outputs.report)" config: @@ -293,10 +292,9 @@ targets: func mockTrigger(t *testing.T) (capabilities.TriggerCapability, capabilities.CapabilityResponse) { mt := &mockTriggerCapability{ CapabilityInfo: capabilities.MustNewCapabilityInfo( - "mercury-trigger", + "mercury-trigger@1.0.0", capabilities.CapabilityTypeTrigger, "issues a trigger when a mercury report is received.", - "v1.0.0", ), ch: make(chan capabilities.CapabilityResponse, 10), } @@ -316,10 +314,9 @@ func mockTrigger(t *testing.T) (capabilities.TriggerCapability, capabilities.Cap func mockNoopTrigger(t *testing.T) capabilities.TriggerCapability { mt := &mockTriggerCapability{ CapabilityInfo: capabilities.MustNewCapabilityInfo( - "mercury-trigger", + "mercury-trigger@1.0.0", capabilities.CapabilityTypeTrigger, "issues a trigger when a mercury report is received.", - "v1.0.0", ), ch: make(chan capabilities.CapabilityResponse, 10), } @@ -329,10 +326,9 @@ func mockNoopTrigger(t *testing.T) capabilities.TriggerCapability { func mockFailingConsensus() *mockCapability { return newMockCapability( capabilities.MustNewCapabilityInfo( - "offchain_reporting", + "offchain_reporting@1.0.0", capabilities.CapabilityTypeConsensus, "an ocr3 consensus capability", - "v3.0.0", ), func(req capabilities.CapabilityRequest) (capabilities.CapabilityResponse, error) { return capabilities.CapabilityResponse{}, errors.New("fatal consensus error") @@ -343,10 +339,9 @@ func mockFailingConsensus() *mockCapability { func mockConsensus() *mockCapability { return newMockCapability( capabilities.MustNewCapabilityInfo( - "offchain_reporting", + "offchain_reporting@1.0.0", capabilities.CapabilityTypeConsensus, "an ocr3 consensus capability", - "v3.0.0", ), func(req capabilities.CapabilityRequest) (capabilities.CapabilityResponse, error) { obs := req.Inputs.Underlying["observations"] @@ -369,10 +364,9 @@ func mockConsensus() *mockCapability { func mockTarget() *mockCapability { return newMockCapability( capabilities.MustNewCapabilityInfo( - "write_polygon-testnet-mumbai", + "write_polygon-testnet-mumbai@1.0.0", capabilities.CapabilityTypeTarget, "a write capability targeting polygon mumbai testnet", - "v1.0.0", ), func(req capabilities.CapabilityRequest) (capabilities.CapabilityResponse, error) { m := req.Inputs.Underlying["report"].(*values.Map) @@ -412,7 +406,7 @@ func TestEngine_ErrorsTheWorkflowIfAStepErrors(t *testing.T) { const ( multiStepWorkflow = ` triggers: - - id: "mercury-trigger" + - id: "mercury-trigger@1.0.0" config: feedlist: - "0x1111111111111111111100000000000000000000000000000000000000000000" # ETHUSD @@ -420,14 +414,15 @@ triggers: - "0x3333333333333333333300000000000000000000000000000000000000000000" # BTCUSD actions: - - id: "read_chain_action" + - id: "read_chain_action@1.0.0" ref: "read_chain_action" + config: {} inputs: action: - "$(trigger.outputs)" consensus: - - id: "offchain_reporting" + - id: "offchain_reporting@1.0.0" ref: "evm_median" inputs: observations: @@ -450,7 +445,7 @@ consensus: abi: "mercury_reports bytes[]" targets: - - id: "write_polygon-testnet-mumbai" + - id: "write_polygon-testnet-mumbai@1.0.0" inputs: report: "$(evm_median.outputs.report)" config: @@ -464,10 +459,9 @@ func mockAction() (*mockCapability, values.Value) { outputs := values.NewString("output") return newMockCapability( capabilities.MustNewCapabilityInfo( - "read_chain_action", + "read_chain_action@1.0.0", capabilities.CapabilityTypeAction, "a read chain action", - "v1.0.0", ), func(req capabilities.CapabilityRequest) (capabilities.CapabilityResponse, error) { return capabilities.CapabilityResponse{ diff --git a/core/services/workflows/models_test.go b/core/services/workflows/models_test.go index cf68b0e7117..4b4747c486f 100644 --- a/core/services/workflows/models_test.go +++ b/core/services/workflows/models_test.go @@ -21,23 +21,27 @@ func TestParse_Graph(t *testing.T) { name: "basic example", yaml: ` triggers: - - id: "a-trigger" + - id: "a-trigger@1.0.0" + config: {} actions: - - id: "an-action" + - id: "an-action@1.0.0" + config: {} ref: "an-action" inputs: trigger_output: $(trigger.outputs) consensus: - - id: "a-consensus" + - id: "a-consensus@1.0.0" + config: {} ref: "a-consensus" inputs: trigger_output: $(trigger.outputs) an-action_output: $(an-action.outputs) targets: - - id: "a-target" + - id: "a-target@1.0.0" + config: {} ref: "a-target" inputs: consensus_output: $(a-consensus.outputs) @@ -60,28 +64,33 @@ targets: name: "circular relationship", yaml: ` triggers: - - id: "a-trigger" + - id: "a-trigger@1.0.0" + config: {} actions: - - id: "an-action" + - id: "an-action@1.0.0" + config: {} ref: "an-action" inputs: trigger_output: $(trigger.outputs) output: $(a-second-action.outputs) - - id: "a-second-action" + - id: "a-second-action@1.0.0" + config: {} ref: "a-second-action" inputs: output: $(an-action.outputs) consensus: - - id: "a-consensus" + - id: "a-consensus@1.0.0" + config: {} ref: "a-consensus" inputs: trigger_output: $(trigger.outputs) an-action_output: $(an-action.outputs) targets: - - id: "a-target" + - id: "a-target@1.0.0" + config: {} ref: "a-target" inputs: consensus_output: $(a-consensus.outputs) @@ -92,32 +101,38 @@ targets: name: "indirect circular relationship", yaml: ` triggers: - - id: "a-trigger" + - id: "a-trigger@1.0.0" + config: {} actions: - - id: "an-action" + - id: "an-action@1.0.0" + config: {} ref: "an-action" inputs: trigger_output: $(trigger.outputs) action_output: $(a-third-action.outputs) - - id: "a-second-action" + - id: "a-second-action@1.0.0" + config: {} ref: "a-second-action" inputs: output: $(an-action.outputs) - - id: "a-third-action" + - id: "a-third-action@1.0.0" + config: {} ref: "a-third-action" inputs: output: $(a-second-action.outputs) consensus: - - id: "a-consensus" + - id: "a-consensus@1.0.0" + config: {} ref: "a-consensus" inputs: trigger_output: $(trigger.outputs) an-action_output: $(an-action.outputs) targets: - - id: "a-target" + - id: "a-target@1.0.0" + config: {} ref: "a-target" inputs: consensus_output: $(a-consensus.outputs) @@ -128,23 +143,27 @@ targets: name: "relationship doesn't exist", yaml: ` triggers: - - id: "a-trigger" + - id: "a-trigger@1.0.0" + config: {} actions: - - id: "an-action" + - id: "an-action@1.0.0" + config: {} ref: "an-action" inputs: trigger_output: $(trigger.outputs) action_output: $(missing-action.outputs) consensus: - - id: "a-consensus" + - id: "a-consensus@1.0.0" + config: {} ref: "a-consensus" inputs: an-action_output: $(an-action.outputs) targets: - - id: "a-target" + - id: "a-target@1.0.0" + config: {} ref: "a-target" inputs: consensus_output: $(a-consensus.outputs) @@ -155,23 +174,28 @@ targets: name: "two trigger nodes", yaml: ` triggers: - - id: "a-trigger" - - id: "a-second-trigger" + - id: "a-trigger@1.0.0" + config: {} + - id: "a-second-trigger@1.0.0" + config: {} actions: - - id: "an-action" + - id: "an-action@1.0.0" + config: {} ref: "an-action" inputs: trigger_output: $(trigger.outputs) consensus: - - id: "a-consensus" + - id: "a-consensus@1.0.0" + config: {} ref: "a-consensus" inputs: an-action_output: $(an-action.outputs) targets: - - id: "a-target" + - id: "a-target@1.0.0" + config: {} ref: "a-target" inputs: consensus_output: $(a-consensus.outputs) @@ -193,21 +217,26 @@ targets: name: "non-trigger step with no dependent refs", yaml: ` triggers: - - id: "a-trigger" - - id: "a-second-trigger" + - id: "a-trigger@1.0.0" + config: {} + - id: "a-second-trigger@1.0.0" + config: {} actions: - - id: "an-action" + - id: "an-action@1.0.0" + config: {} ref: "an-action" inputs: hello: "world" consensus: - - id: "a-consensus" + - id: "a-consensus@1.0.0" + config: {} ref: "a-consensus" inputs: trigger_output: $(trigger.outputs) action_output: $(an-action.outputs) targets: - - id: "a-target" + - id: "a-target@1.0.0" + config: {} ref: "a-target" inputs: consensus_output: $(a-consensus.outputs) @@ -218,21 +247,26 @@ targets: name: "duplicate edge declarations", yaml: ` triggers: - - id: "a-trigger" - - id: "a-second-trigger" + - id: "a-trigger@1.0.0" + config: {} + - id: "a-second-trigger@1.0.0" + config: {} actions: - - id: "an-action" + - id: "an-action@1.0.0" + config: {} ref: "an-action" inputs: trigger_output: $(trigger.outputs) consensus: - - id: "a-consensus" + - id: "a-consensus@1.0.0" + config: {} ref: "a-consensus" inputs: trigger_output: $(trigger.outputs) action_output: $(an-action.outputs) targets: - - id: "a-target" + - id: "a-target@1.0.0" + config: {} ref: "a-target" inputs: consensus_output: $(a-consensus.outputs) diff --git a/core/web/jobs_controller_test.go b/core/web/jobs_controller_test.go index 0eadcab108c..88ebdce2934 100644 --- a/core/web/jobs_controller_test.go +++ b/core/web/jobs_controller_test.go @@ -397,7 +397,7 @@ func TestJobController_Create_HappyPath(t *testing.T) { name := "myworkflow" // 10 bytes workflow := ` triggers: - - id: "mercury-trigger" + - id: "mercury-trigger@1.0.0" config: feedIds: - "0x1111111111111111111100000000000000000000000000000000000000000000" @@ -405,7 +405,7 @@ triggers: - "0x3333333333333333333300000000000000000000000000000000000000000000" consensus: - - id: "offchain_reporting" + - id: "offchain_reporting@2.0.0" ref: "evm_median" inputs: observations: @@ -427,14 +427,14 @@ consensus: abi: "mercury_reports bytes[]" targets: - - id: "write_polygon-testnet-mumbai" + - id: "write_polygon-testnet-mumbai@3.0.0" inputs: report: "$(evm_median.outputs.report)" config: address: "0x3F3554832c636721F1fD1822Ccca0354576741Ef" params: ["$(report)"] abi: "receive(report bytes)" - - id: "write_ethereum-testnet-sepolia" + - id: "write_ethereum-testnet-sepolia@4.0.0" inputs: report: "$(evm_median.outputs.report)" config: diff --git a/go.mod b/go.mod index 6844bbcd7bf..bd2fa774446 100644 --- a/go.mod +++ b/go.mod @@ -72,7 +72,7 @@ require ( github.com/shopspring/decimal v1.3.1 github.com/smartcontractkit/chain-selectors v1.0.10 github.com/smartcontractkit/chainlink-automation v1.0.3 - github.com/smartcontractkit/chainlink-common v0.1.7-0.20240606094423-573049c41fa0 + github.com/smartcontractkit/chainlink-common v0.1.7-0.20240606173949-4d52ba4e3c79 github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20240524214833-c362c2ebbd2d github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240606130021-a4b7359e1580 github.com/smartcontractkit/chainlink-feeds v0.0.0-20240522213638-159fb2d99917 @@ -348,4 +348,5 @@ replace ( // until merged upstream: https://github.com/mwitkow/grpc-proxy/pull/69 github.com/mwitkow/grpc-proxy => github.com/smartcontractkit/grpc-proxy v0.0.0-20230731113816-f1be6620749f + ) diff --git a/go.sum b/go.sum index 1afcb4f9b89..9570c21e7a5 100644 --- a/go.sum +++ b/go.sum @@ -1171,8 +1171,8 @@ github.com/smartcontractkit/chain-selectors v1.0.10 h1:t9kJeE6B6G+hKD0GYR4kGJSCq github.com/smartcontractkit/chain-selectors v1.0.10/go.mod h1:d4Hi+E1zqjy9HqMkjBE5q1vcG9VGgxf5VxiRHfzi2kE= github.com/smartcontractkit/chainlink-automation v1.0.3 h1:h/ijT0NiyV06VxYVgcNfsE3+8OEzT3Q0Z9au0z1BPWs= github.com/smartcontractkit/chainlink-automation v1.0.3/go.mod h1:RjboV0Qd7YP+To+OrzHGXaxUxoSONveCoAK2TQ1INLU= -github.com/smartcontractkit/chainlink-common v0.1.7-0.20240606094423-573049c41fa0 h1:53zVcdDxrHG3oewhP7AWOiLtwTozcQ0/wzFTsaTBS5M= -github.com/smartcontractkit/chainlink-common v0.1.7-0.20240606094423-573049c41fa0/go.mod h1:DUZccDEW98n+J1mhdWGO7wr/Njad9p9Fzks839JN7Rs= +github.com/smartcontractkit/chainlink-common v0.1.7-0.20240606173949-4d52ba4e3c79 h1:hs8dNt80KM3iBPBJ4fo6Kp3gsHhdJUe8RVr/JpGBaQM= +github.com/smartcontractkit/chainlink-common v0.1.7-0.20240606173949-4d52ba4e3c79/go.mod h1:L32xvCpk84Nglit64OhySPMP1tM3TTBK7Tw0qZl7Sd4= github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20240524214833-c362c2ebbd2d h1:5tgMC5Gi2UAOKZ+m28W8ubjLeR0pQCAcrz6eQ0rW510= github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20240524214833-c362c2ebbd2d/go.mod h1:0UNuO3nDt9MFsZPaHJBEUolxVkN0iC69j1ccDp95e8k= github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240606130021-a4b7359e1580 h1:nsnLzpBTDAQWkfsOz/qd8BTlb1hUpaow1KmA1tPwTf4= diff --git a/integration-tests/go.mod b/integration-tests/go.mod index dd0e0ed3c44..9630350ccf9 100644 --- a/integration-tests/go.mod +++ b/integration-tests/go.mod @@ -27,7 +27,7 @@ require ( github.com/shopspring/decimal v1.3.1 github.com/slack-go/slack v0.12.2 github.com/smartcontractkit/chainlink-automation v1.0.3 - github.com/smartcontractkit/chainlink-common v0.1.7-0.20240606094423-573049c41fa0 + github.com/smartcontractkit/chainlink-common v0.1.7-0.20240606173949-4d52ba4e3c79 github.com/smartcontractkit/chainlink-testing-framework v1.30.1 github.com/smartcontractkit/chainlink-vrf v0.0.0-20231120191722-fef03814f868 github.com/smartcontractkit/chainlink/v2 v2.0.0-00010101000000-000000000000 @@ -50,6 +50,7 @@ require ( exclude github.com/hashicorp/consul v1.2.1 replace ( + // Pin K8s versions as their updates are highly disruptive and go mod keeps wanting to update them k8s.io/api => k8s.io/api v0.25.11 k8s.io/client-go => k8s.io/client-go v0.25.11 k8s.io/kube-openapi => k8s.io/kube-openapi v0.0.0-20230303024457-afdc3dddf62d diff --git a/integration-tests/go.sum b/integration-tests/go.sum index 75d96085bdb..7131bdf29d2 100644 --- a/integration-tests/go.sum +++ b/integration-tests/go.sum @@ -1512,8 +1512,8 @@ github.com/smartcontractkit/chain-selectors v1.0.10 h1:t9kJeE6B6G+hKD0GYR4kGJSCq github.com/smartcontractkit/chain-selectors v1.0.10/go.mod h1:d4Hi+E1zqjy9HqMkjBE5q1vcG9VGgxf5VxiRHfzi2kE= github.com/smartcontractkit/chainlink-automation v1.0.3 h1:h/ijT0NiyV06VxYVgcNfsE3+8OEzT3Q0Z9au0z1BPWs= github.com/smartcontractkit/chainlink-automation v1.0.3/go.mod h1:RjboV0Qd7YP+To+OrzHGXaxUxoSONveCoAK2TQ1INLU= -github.com/smartcontractkit/chainlink-common v0.1.7-0.20240606094423-573049c41fa0 h1:53zVcdDxrHG3oewhP7AWOiLtwTozcQ0/wzFTsaTBS5M= -github.com/smartcontractkit/chainlink-common v0.1.7-0.20240606094423-573049c41fa0/go.mod h1:DUZccDEW98n+J1mhdWGO7wr/Njad9p9Fzks839JN7Rs= +github.com/smartcontractkit/chainlink-common v0.1.7-0.20240606173949-4d52ba4e3c79 h1:hs8dNt80KM3iBPBJ4fo6Kp3gsHhdJUe8RVr/JpGBaQM= +github.com/smartcontractkit/chainlink-common v0.1.7-0.20240606173949-4d52ba4e3c79/go.mod h1:L32xvCpk84Nglit64OhySPMP1tM3TTBK7Tw0qZl7Sd4= github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20240524214833-c362c2ebbd2d h1:5tgMC5Gi2UAOKZ+m28W8ubjLeR0pQCAcrz6eQ0rW510= github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20240524214833-c362c2ebbd2d/go.mod h1:0UNuO3nDt9MFsZPaHJBEUolxVkN0iC69j1ccDp95e8k= github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240606130021-a4b7359e1580 h1:nsnLzpBTDAQWkfsOz/qd8BTlb1hUpaow1KmA1tPwTf4= diff --git a/integration-tests/load/go.mod b/integration-tests/load/go.mod index 63c6c3e69cc..4a36f95c84d 100644 --- a/integration-tests/load/go.mod +++ b/integration-tests/load/go.mod @@ -16,7 +16,7 @@ require ( github.com/rs/zerolog v1.30.0 github.com/slack-go/slack v0.12.2 github.com/smartcontractkit/chainlink-automation v1.0.3 - github.com/smartcontractkit/chainlink-common v0.1.7-0.20240606094423-573049c41fa0 + github.com/smartcontractkit/chainlink-common v0.1.7-0.20240606173949-4d52ba4e3c79 github.com/smartcontractkit/chainlink-testing-framework v1.30.1 github.com/smartcontractkit/chainlink/integration-tests v0.0.0-20240214231432-4ad5eb95178c github.com/smartcontractkit/chainlink/v2 v2.9.0-beta0.0.20240216210048-da02459ddad8 diff --git a/integration-tests/load/go.sum b/integration-tests/load/go.sum index fd58729101b..16ecb5c6fb0 100644 --- a/integration-tests/load/go.sum +++ b/integration-tests/load/go.sum @@ -1502,8 +1502,8 @@ github.com/smartcontractkit/chain-selectors v1.0.10 h1:t9kJeE6B6G+hKD0GYR4kGJSCq github.com/smartcontractkit/chain-selectors v1.0.10/go.mod h1:d4Hi+E1zqjy9HqMkjBE5q1vcG9VGgxf5VxiRHfzi2kE= github.com/smartcontractkit/chainlink-automation v1.0.3 h1:h/ijT0NiyV06VxYVgcNfsE3+8OEzT3Q0Z9au0z1BPWs= github.com/smartcontractkit/chainlink-automation v1.0.3/go.mod h1:RjboV0Qd7YP+To+OrzHGXaxUxoSONveCoAK2TQ1INLU= -github.com/smartcontractkit/chainlink-common v0.1.7-0.20240606094423-573049c41fa0 h1:53zVcdDxrHG3oewhP7AWOiLtwTozcQ0/wzFTsaTBS5M= -github.com/smartcontractkit/chainlink-common v0.1.7-0.20240606094423-573049c41fa0/go.mod h1:DUZccDEW98n+J1mhdWGO7wr/Njad9p9Fzks839JN7Rs= +github.com/smartcontractkit/chainlink-common v0.1.7-0.20240606173949-4d52ba4e3c79 h1:hs8dNt80KM3iBPBJ4fo6Kp3gsHhdJUe8RVr/JpGBaQM= +github.com/smartcontractkit/chainlink-common v0.1.7-0.20240606173949-4d52ba4e3c79/go.mod h1:L32xvCpk84Nglit64OhySPMP1tM3TTBK7Tw0qZl7Sd4= github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20240524214833-c362c2ebbd2d h1:5tgMC5Gi2UAOKZ+m28W8ubjLeR0pQCAcrz6eQ0rW510= github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20240524214833-c362c2ebbd2d/go.mod h1:0UNuO3nDt9MFsZPaHJBEUolxVkN0iC69j1ccDp95e8k= github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240606130021-a4b7359e1580 h1:nsnLzpBTDAQWkfsOz/qd8BTlb1hUpaow1KmA1tPwTf4= From 724b472fc783457c4c26d32e5ac09ec64dbf568f Mon Sep 17 00:00:00 2001 From: Dmytro Haidashenko Date: Fri, 7 Jun 2024 13:08:24 +0200 Subject: [PATCH 24/40] fix typo --- core/chains/evm/client/rpc_client.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/core/chains/evm/client/rpc_client.go b/core/chains/evm/client/rpc_client.go index 4848cfdfe10..39bc41fc84a 100644 --- a/core/chains/evm/client/rpc_client.go +++ b/core/chains/evm/client/rpc_client.go @@ -420,7 +420,7 @@ func (r *rpcClient) SubscribeNewHead(ctx context.Context, channel chan<- *evmtyp }() subForwarder := newSubForwarder(channel, func(head *evmtypes.Head) *evmtypes.Head { head.EVMChainID = ubig.New(r.chainID) - r.oneNewHead(ctx, chStopInFlight, head) + r.onNewHead(ctx, chStopInFlight, head) return head }, r.wrapRPCClientError) err = subForwarder.start(ws.rpc.EthSubscribe(ctx, subForwarder.srcCh, args...)) @@ -581,9 +581,9 @@ func (r *rpcClient) blockByNumber(ctx context.Context, number string) (head *evm switch number { case rpc.FinalizedBlockNumber.String(): - r.oneNewFinalizedHead(ctx, chStopInFlight, head) + r.onNewFinalizedHead(ctx, chStopInFlight, head) case rpc.LatestBlockNumber.String(): - r.oneNewHead(ctx, chStopInFlight, head) + r.onNewHead(ctx, chStopInFlight, head) } return @@ -1200,7 +1200,7 @@ func Name(r *rpcClient) string { return r.name } -func (r *rpcClient) oneNewHead(ctx context.Context, requestCh <-chan struct{}, head *evmtypes.Head) { +func (r *rpcClient) onNewHead(ctx context.Context, requestCh <-chan struct{}, head *evmtypes.Head) { if head == nil { return } @@ -1220,7 +1220,7 @@ func (r *rpcClient) oneNewHead(ctx context.Context, requestCh <-chan struct{}, h } } -func (r *rpcClient) oneNewFinalizedHead(ctx context.Context, requestCh <-chan struct{}, head *evmtypes.Head) { +func (r *rpcClient) onNewFinalizedHead(ctx context.Context, requestCh <-chan struct{}, head *evmtypes.Head) { if head == nil { return } From 69a95d82626290858219250e746fd51c8c7c4093 Mon Sep 17 00:00:00 2001 From: Dimitris Grigoriou Date: Fri, 7 Jun 2024 16:39:27 +0300 Subject: [PATCH 25/40] Cleanup Core packages from txm tests (#13449) * Cleanup Core packages from txm tests * Add changeset --- .changeset/chilly-ladybugs-visit.md | 5 + core/chains/evm/testutils/evmtypes.go | 5 + core/chains/evm/txmgr/attempts_test.go | 55 ++- core/chains/evm/txmgr/broadcaster_test.go | 149 ++++----- core/chains/evm/txmgr/confirmer_test.go | 314 +++++++++--------- core/chains/evm/txmgr/evm_tx_store_test.go | 261 +++++++-------- core/chains/evm/txmgr/nonce_tracker_test.go | 16 +- core/chains/evm/txmgr/resender_test.go | 42 ++- core/chains/evm/txmgr/strategies_test.go | 7 +- .../evm/txmgr/stuck_tx_detector_test.go | 37 ++- core/chains/evm/txmgr/tracker_test.go | 23 +- core/chains/evm/txmgr/transmitchecker_test.go | 21 +- core/chains/evm/txmgr/txmgr_test.go | 75 ++--- core/internal/testutils/testutils.go | 11 - 14 files changed, 512 insertions(+), 509 deletions(-) create mode 100644 .changeset/chilly-ladybugs-visit.md diff --git a/.changeset/chilly-ladybugs-visit.md b/.changeset/chilly-ladybugs-visit.md new file mode 100644 index 00000000000..aaa2dfc3ef4 --- /dev/null +++ b/.changeset/chilly-ladybugs-visit.md @@ -0,0 +1,5 @@ +--- +"chainlink": patch +--- + +Cleanup txm tests #internal diff --git a/core/chains/evm/testutils/evmtypes.go b/core/chains/evm/testutils/evmtypes.go index eda284284ba..fedcd52ea2f 100644 --- a/core/chains/evm/testutils/evmtypes.go +++ b/core/chains/evm/testutils/evmtypes.go @@ -84,3 +84,8 @@ func NewLegacyTransaction(nonce uint64, to common.Address, value *big.Int, gasLi } return types.NewTx(&tx) } + +func NewAddressPtr() *common.Address { + a := common.BytesToAddress(randomBytes(20)) + return &a +} diff --git a/core/chains/evm/txmgr/attempts_test.go b/core/chains/evm/txmgr/attempts_test.go index 52340ce51a5..6be8cd7067b 100644 --- a/core/chains/evm/txmgr/attempts_test.go +++ b/core/chains/evm/txmgr/attempts_test.go @@ -15,16 +15,16 @@ import ( "github.com/stretchr/testify/require" "github.com/smartcontractkit/chainlink-common/pkg/logger" + "github.com/smartcontractkit/chainlink-common/pkg/utils/tests" + "github.com/smartcontractkit/chainlink/v2/core/chains/evm/assets" + "github.com/smartcontractkit/chainlink/v2/core/chains/evm/config/toml" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/gas" gasmocks "github.com/smartcontractkit/chainlink/v2/core/chains/evm/gas/mocks" ksmocks "github.com/smartcontractkit/chainlink/v2/core/chains/evm/keystore/mocks" + "github.com/smartcontractkit/chainlink/v2/core/chains/evm/testutils" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/txmgr" evmtypes "github.com/smartcontractkit/chainlink/v2/core/chains/evm/types" - "github.com/smartcontractkit/chainlink/v2/core/internal/testutils" - "github.com/smartcontractkit/chainlink/v2/core/internal/testutils/configtest" - "github.com/smartcontractkit/chainlink/v2/core/internal/testutils/evmtest" - "github.com/smartcontractkit/chainlink/v2/core/services/chainlink" ) func NewEvmAddress() gethcommon.Address { @@ -72,7 +72,7 @@ func TestTxm_SignTx(t *testing.T) { kst := ksmocks.NewEth(t) kst.On("SignTx", mock.Anything, to, tx, chainID).Return(tx, nil).Once() cks := txmgr.NewEvmTxAttemptBuilder(*chainID, newFeeConfig(), kst, nil) - hash, rawBytes, err := cks.SignTx(testutils.Context(t), addr, tx) + hash, rawBytes, err := cks.SignTx(tests.Context(t), addr, tx) require.NoError(t, err) require.NotNil(t, rawBytes) require.Equal(t, "0xdd68f554373fdea7ec6713a6e437e7646465d553a6aa0b43233093366cc87ef0", hash.String()) @@ -83,7 +83,7 @@ func TestTxm_SignTx(t *testing.T) { kst := ksmocks.NewEth(t) kst.On("SignTx", mock.Anything, to, tx, chainID).Return(tx, nil).Once() cks := txmgr.NewEvmTxAttemptBuilder(*chainID, newFeeConfig(), kst, nil) - hash, rawBytes, err := cks.SignTx(testutils.Context(t), addr, tx) + hash, rawBytes, err := cks.SignTx(tests.Context(t), addr, tx) require.NoError(t, err) require.NotNil(t, rawBytes) require.Equal(t, "0xdd68f554373fdea7ec6713a6e437e7646465d553a6aa0b43233093366cc87ef0", hash.String()) @@ -94,7 +94,7 @@ func TestTxm_SignTx(t *testing.T) { kst.On("SignTx", mock.Anything, to, tx, chainID).Return(tx, nil).Once() cks := txmgr.NewEvmTxAttemptBuilder(*chainID, newFeeConfig(), kst, nil) - _, rawBytes, err := cks.SignTx(testutils.Context(t), addr, tx) + _, rawBytes, err := cks.SignTx(tests.Context(t), addr, tx) require.NoError(t, err) require.NotNil(t, rawBytes) require.Equal(t, "0xe42a82015681f294b921f7763960b296b9cbad586ff066a18d749724818e83010203808080", hexutil.Encode(rawBytes)) @@ -116,7 +116,7 @@ func TestTxm_SignTx(t *testing.T) { }) kst.On("SignTx", mock.Anything, to, typedTx, chainID).Return(typedTx, nil).Once() cks := txmgr.NewEvmTxAttemptBuilder(*chainID, newFeeConfig(), kst, nil) - _, rawBytes, err := cks.SignTx(testutils.Context(t), addr, typedTx) + _, rawBytes, err := cks.SignTx(tests.Context(t), addr, typedTx) require.NoError(t, err) require.NotNil(t, rawBytes) require.Equal(t, "0xa702e5802a808081f294b921f7763960b296b9cbad586ff066a18d749724818e83010203c0808080", hexutil.Encode(rawBytes)) @@ -141,7 +141,7 @@ func TestTxm_NewDynamicFeeTx(t *testing.T) { feeCfg.priceMax = assets.GWei(200) cks := txmgr.NewEvmTxAttemptBuilder(*big.NewInt(1), feeCfg, kst, nil) dynamicFee := gas.DynamicFee{TipCap: assets.GWei(100), FeeCap: assets.GWei(200)} - a, _, err := cks.NewCustomTxAttempt(testutils.Context(t), txmgr.Tx{Sequence: &n, FromAddress: addr}, gas.EvmFee{ + a, _, err := cks.NewCustomTxAttempt(tests.Context(t), txmgr.Tx{Sequence: &n, FromAddress: addr}, gas.EvmFee{ DynamicTipCap: dynamicFee.TipCap, DynamicFeeCap: dynamicFee.FeeCap, }, 100, 0x2, lggr) @@ -155,35 +155,34 @@ func TestTxm_NewDynamicFeeTx(t *testing.T) { }) t.Run("verifies gas tip and fees", func(t *testing.T) { - tests := []struct { + cases := []struct { name string tipcap *assets.Wei feecap *assets.Wei - setCfg func(*chainlink.Config, *chainlink.Secrets) + setCfg func(c *toml.EVMConfig) expectError string }{ {"gas tip = fee cap", assets.GWei(5), assets.GWei(5), nil, ""}, {"gas tip < fee cap", assets.GWei(4), assets.GWei(5), nil, ""}, {"gas tip > fee cap", assets.GWei(6), assets.GWei(5), nil, "gas fee cap must be greater than or equal to gas tip cap (fee cap: 5 gwei, tip cap: 6 gwei)"}, - {"fee cap exceeds max allowed", assets.GWei(5), assets.GWei(5), func(c *chainlink.Config, s *chainlink.Secrets) { - c.EVM[0].GasEstimator.PriceMax = assets.GWei(4) + {"fee cap exceeds max allowed", assets.GWei(5), assets.GWei(5), func(c *toml.EVMConfig) { + c.GasEstimator.PriceMax = assets.GWei(4) }, "specified gas fee cap of 5 gwei would exceed max configured gas price of 4 gwei"}, - {"ignores global min gas price", assets.GWei(5), assets.GWei(5), func(c *chainlink.Config, s *chainlink.Secrets) { - c.EVM[0].GasEstimator.PriceMin = assets.GWei(6) + {"ignores global min gas price", assets.GWei(5), assets.GWei(5), func(c *toml.EVMConfig) { + c.GasEstimator.PriceMin = assets.GWei(6) }, ""}, - {"tip cap below min allowed", assets.GWei(5), assets.GWei(5), func(c *chainlink.Config, s *chainlink.Secrets) { - c.EVM[0].GasEstimator.TipCapMin = assets.GWei(6) + {"tip cap below min allowed", assets.GWei(5), assets.GWei(5), func(c *toml.EVMConfig) { + c.GasEstimator.TipCapMin = assets.GWei(6) }, "specified gas tip cap of 5 gwei is below min configured gas tip of 6 gwei"}, } - for _, tt := range tests { + for _, tt := range cases { test := tt t.Run(test.name, func(t *testing.T) { - gcfg := configtest.NewGeneralConfig(t, test.setCfg) - cfg := evmtest.NewChainScopedConfig(t, gcfg) + cfg := testutils.NewTestChainScopedConfig(t, test.setCfg) cks := txmgr.NewEvmTxAttemptBuilder(*big.NewInt(1), cfg.EVM().GasEstimator(), kst, nil) dynamicFee := gas.DynamicFee{TipCap: test.tipcap, FeeCap: test.feecap} - _, _, err := cks.NewCustomTxAttempt(testutils.Context(t), txmgr.Tx{Sequence: &n, FromAddress: addr}, gas.EvmFee{ + _, _, err := cks.NewCustomTxAttempt(tests.Context(t), txmgr.Tx{Sequence: &n, FromAddress: addr}, gas.EvmFee{ DynamicTipCap: dynamicFee.TipCap, DynamicFeeCap: dynamicFee.FeeCap, }, 100, 0x2, lggr) @@ -210,7 +209,7 @@ func TestTxm_NewLegacyAttempt(t *testing.T) { t.Run("creates attempt with fields", func(t *testing.T) { var n evmtypes.Nonce - a, _, err := cks.NewCustomTxAttempt(testutils.Context(t), txmgr.Tx{Sequence: &n, FromAddress: addr}, gas.EvmFee{Legacy: assets.NewWeiI(25)}, 100, 0x0, lggr) + a, _, err := cks.NewCustomTxAttempt(tests.Context(t), txmgr.Tx{Sequence: &n, FromAddress: addr}, gas.EvmFee{Legacy: assets.NewWeiI(25)}, 100, 0x0, lggr) require.NoError(t, err) assert.Equal(t, 100, int(a.ChainSpecificFeeLimit)) assert.NotNil(t, a.TxFee.Legacy) @@ -220,7 +219,7 @@ func TestTxm_NewLegacyAttempt(t *testing.T) { }) t.Run("verifies max gas price", func(t *testing.T) { - _, _, err := cks.NewCustomTxAttempt(testutils.Context(t), txmgr.Tx{FromAddress: addr}, gas.EvmFee{Legacy: assets.NewWeiI(100)}, 100, 0x0, lggr) + _, _, err := cks.NewCustomTxAttempt(tests.Context(t), txmgr.Tx{FromAddress: addr}, gas.EvmFee{Legacy: assets.NewWeiI(100)}, 100, 0x0, lggr) require.Error(t, err) assert.Contains(t, err.Error(), fmt.Sprintf("specified gas price of 100 wei would exceed max configured gas price of 50 wei for key %s", addr.String())) }) @@ -243,7 +242,7 @@ func TestTxm_NewPurgeAttempt(t *testing.T) { est.On("BumpFee", mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(bumpedFee, uint64(10_000), nil) cks := txmgr.NewEvmTxAttemptBuilder(*big.NewInt(1), gc, kst, est) lggr := logger.Test(t) - ctx := testutils.Context(t) + ctx := tests.Context(t) t.Run("creates legacy purge attempt with fields if previous attempt is legacy", func(t *testing.T) { n := evmtypes.Nonce(0) @@ -318,7 +317,7 @@ func TestTxm_NewCustomTxAttempt_NonRetryableErrors(t *testing.T) { legacyFee := assets.NewWeiI(100) t.Run("dynamic fee with legacy tx type", func(t *testing.T) { - _, retryable, err := cks.NewCustomTxAttempt(testutils.Context(t), txmgr.Tx{}, gas.EvmFee{ + _, retryable, err := cks.NewCustomTxAttempt(tests.Context(t), txmgr.Tx{}, gas.EvmFee{ DynamicTipCap: dynamicFee.TipCap, DynamicFeeCap: dynamicFee.FeeCap, }, 100, 0x0, lggr) @@ -326,13 +325,13 @@ func TestTxm_NewCustomTxAttempt_NonRetryableErrors(t *testing.T) { assert.False(t, retryable) }) t.Run("legacy fee with dynamic tx type", func(t *testing.T) { - _, retryable, err := cks.NewCustomTxAttempt(testutils.Context(t), txmgr.Tx{}, gas.EvmFee{Legacy: legacyFee}, 100, 0x2, lggr) + _, retryable, err := cks.NewCustomTxAttempt(tests.Context(t), txmgr.Tx{}, gas.EvmFee{Legacy: legacyFee}, 100, 0x2, lggr) require.Error(t, err) assert.False(t, retryable) }) t.Run("invalid type", func(t *testing.T) { - _, retryable, err := cks.NewCustomTxAttempt(testutils.Context(t), txmgr.Tx{}, gas.EvmFee{}, 100, 0xA, lggr) + _, retryable, err := cks.NewCustomTxAttempt(tests.Context(t), txmgr.Tx{}, gas.EvmFee{}, 100, 0xA, lggr) require.Error(t, err) assert.False(t, retryable) }) @@ -345,7 +344,7 @@ func TestTxm_EvmTxAttemptBuilder_RetryableEstimatorError(t *testing.T) { kst := ksmocks.NewEth(t) lggr := logger.Test(t) - ctx := testutils.Context(t) + ctx := tests.Context(t) cks := txmgr.NewEvmTxAttemptBuilder(*big.NewInt(1), &feeConfig{eip1559DynamicFees: true}, kst, est) t.Run("NewAttempt", func(t *testing.T) { diff --git a/core/chains/evm/txmgr/broadcaster_test.go b/core/chains/evm/txmgr/broadcaster_test.go index c80ae781034..3559c329dee 100644 --- a/core/chains/evm/txmgr/broadcaster_test.go +++ b/core/chains/evm/txmgr/broadcaster_test.go @@ -26,6 +26,7 @@ import ( "github.com/smartcontractkit/chainlink-common/pkg/services/servicetest" "github.com/smartcontractkit/chainlink-common/pkg/sqlutil" commonutils "github.com/smartcontractkit/chainlink-common/pkg/utils" + "github.com/smartcontractkit/chainlink-common/pkg/utils/tests" commonclient "github.com/smartcontractkit/chainlink/v2/common/client" txmgrcommon "github.com/smartcontractkit/chainlink/v2/common/txmgr" @@ -37,11 +38,11 @@ import ( gasmocks "github.com/smartcontractkit/chainlink/v2/core/chains/evm/gas/mocks" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/keystore" ksmocks "github.com/smartcontractkit/chainlink/v2/core/chains/evm/keystore/mocks" + "github.com/smartcontractkit/chainlink/v2/core/chains/evm/testutils" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/txmgr" evmtypes "github.com/smartcontractkit/chainlink/v2/core/chains/evm/types" "github.com/smartcontractkit/chainlink/v2/core/internal/cltest" "github.com/smartcontractkit/chainlink/v2/core/internal/cltest/heavyweight" - "github.com/smartcontractkit/chainlink/v2/core/internal/testutils" "github.com/smartcontractkit/chainlink/v2/core/internal/testutils/configtest" "github.com/smartcontractkit/chainlink/v2/core/internal/testutils/evmtest" "github.com/smartcontractkit/chainlink/v2/core/internal/testutils/pgtest" @@ -81,7 +82,7 @@ func TestEthBroadcaster_Lifecycle(t *testing.T) { cfg, db := heavyweight.FullTestDBV2(t, nil) txStore := cltest.NewTestTxStore(t, db) evmcfg := evmtest.NewChainScopedConfig(t, cfg) - ethClient := evmtest.NewEthClientMockWithDefaultChain(t) + ethClient := testutils.NewEthClientMockWithDefaultChain(t) ethKeyStore := cltest.NewKeyStore(t, db).Eth() cltest.MustInsertRandomKeyReturningState(t, ethKeyStore) estimator := gasmocks.NewEvmFeeEstimator(t) @@ -105,7 +106,7 @@ func TestEthBroadcaster_Lifecycle(t *testing.T) { // Can't close an unstarted instance err := eb.Close() require.Error(t, err) - ctx := testutils.Context(t) + ctx := tests.Context(t) // Can start a new instance err = eb.Start(ctx) @@ -139,7 +140,7 @@ func TestEthBroadcaster_LoadNextSequenceMapFailure_StartupSuccess(t *testing.T) cfg := configtest.NewTestGeneralConfig(t) txStore := cltest.NewTestTxStore(t, db) evmcfg := evmtest.NewChainScopedConfig(t, cfg) - ethClient := evmtest.NewEthClientMockWithDefaultChain(t) + ethClient := testutils.NewEthClientMockWithDefaultChain(t) ethKeyStore := cltest.NewKeyStore(t, db).Eth() cltest.MustInsertRandomKeyReturningState(t, ethKeyStore) estimator := gasmocks.NewEvmFeeEstimator(t) @@ -161,7 +162,7 @@ func TestEthBroadcaster_LoadNextSequenceMapFailure_StartupSuccess(t *testing.T) ) // Instance starts without error even if loading next sequence map fails - err := eb.Start(testutils.Context(t)) + err := eb.Start(tests.Context(t)) require.NoError(t, err) t.Cleanup(func() { assert.NoError(t, eb.Close()) }) } @@ -169,13 +170,13 @@ func TestEthBroadcaster_LoadNextSequenceMapFailure_StartupSuccess(t *testing.T) func TestEthBroadcaster_ProcessUnstartedEthTxs_Success(t *testing.T) { db := pgtest.NewSqlxDB(t) cfg := configtest.NewTestGeneralConfig(t) - ctx := testutils.Context(t) + ctx := tests.Context(t) txStore := cltest.NewTestTxStore(t, db) ethKeyStore := cltest.NewKeyStore(t, db).Eth() _, fromAddress := cltest.MustInsertRandomKey(t, ethKeyStore) _, otherAddress := cltest.MustInsertRandomKey(t, ethKeyStore) - ethClient := evmtest.NewEthClientMockWithDefaultChain(t) + ethClient := testutils.NewEthClientMockWithDefaultChain(t) evmcfg := evmtest.NewChainScopedConfig(t, cfg) checkerFactory := &txmgr.CheckerFactory{Client: ethClient} @@ -195,14 +196,14 @@ func TestEthBroadcaster_ProcessUnstartedEthTxs_Success(t *testing.T) { } t.Run("no eth_txes at all", func(t *testing.T) { - retryable, err := eb.ProcessUnstartedTxs(testutils.Context(t), fromAddress) + retryable, err := eb.ProcessUnstartedTxs(tests.Context(t), fromAddress) assert.NoError(t, err) assert.False(t, retryable) }) t.Run("eth_txes exist for a different from address", func(t *testing.T) { - mustCreateUnstartedTx(t, txStore, otherAddress, toAddress, encodedPayload, gasLimit, value, &cltest.FixtureChainID) - retryable, err := eb.ProcessUnstartedTxs(testutils.Context(t), fromAddress) + mustCreateUnstartedTx(t, txStore, otherAddress, toAddress, encodedPayload, gasLimit, value, testutils.FixtureChainID) + retryable, err := eb.ProcessUnstartedTxs(tests.Context(t), fromAddress) assert.NoError(t, err) assert.False(t, retryable) }) @@ -237,7 +238,7 @@ func TestEthBroadcaster_ProcessUnstartedEthTxs_Success(t *testing.T) { require.NoError(t, txStore.InsertTx(ctx, &etxUnconfirmed)) require.NoError(t, txStore.InsertTx(ctx, &etxWithError)) - retryable, err := eb.ProcessUnstartedTxs(testutils.Context(t), fromAddress) + retryable, err := eb.ProcessUnstartedTxs(tests.Context(t), fromAddress) assert.NoError(t, err) assert.False(t, retryable) }) @@ -314,7 +315,7 @@ func TestEthBroadcaster_ProcessUnstartedEthTxs_Success(t *testing.T) { require.NoError(t, txStore.InsertTx(ctx, &earlierEthTx)) // Do the thing - retryable, err := eb.ProcessUnstartedTxs(testutils.Context(t), fromAddress) + retryable, err := eb.ProcessUnstartedTxs(tests.Context(t), fromAddress) assert.NoError(t, err) assert.False(t, retryable) @@ -390,10 +391,10 @@ func TestEthBroadcaster_ProcessUnstartedEthTxs_Success(t *testing.T) { return tx.Nonce() == uint64(343) && tx.Value().Cmp(big.NewInt(242)) == 0 }), fromAddress).Return(commonclient.Successful, nil).Once() - etx := mustCreateUnstartedTx(t, txStore, fromAddress, toAddress, []byte{42, 42, 0}, gasLimit, big.Int(assets.NewEthValue(242)), &cltest.FixtureChainID) + etx := mustCreateUnstartedTx(t, txStore, fromAddress, toAddress, []byte{42, 42, 0}, gasLimit, big.Int(assets.NewEthValue(242)), testutils.FixtureChainID) // Do the thing { - retryable, err := eb.ProcessUnstartedTxs(testutils.Context(t), fromAddress) + retryable, err := eb.ProcessUnstartedTxs(tests.Context(t), fromAddress) assert.NoError(t, err) assert.False(t, retryable) } @@ -455,10 +456,10 @@ func TestEthBroadcaster_ProcessUnstartedEthTxs_Success(t *testing.T) { return false }), "latest").Return(nil).Once() - ethTx := mustCreateUnstartedTxFromEvmTxRequest(t, txStore, txRequest, &cltest.FixtureChainID) + ethTx := mustCreateUnstartedTxFromEvmTxRequest(t, txStore, txRequest, testutils.FixtureChainID) { - retryable, err := eb.ProcessUnstartedTxs(testutils.Context(t), fromAddress) + retryable, err := eb.ProcessUnstartedTxs(tests.Context(t), fromAddress) assert.NoError(t, err) assert.False(t, retryable) } @@ -477,12 +478,12 @@ func TestEthBroadcaster_ProcessUnstartedEthTxs_Success(t *testing.T) { return fmt.Sprintf("%s", callarg["value"]) == "0x21e" // 542 }), "latest").Return(errors.New("this is not a revert, something unexpected went wrong")).Once() - ethTx := mustCreateUnstartedGeneratedTx(t, txStore, fromAddress, &cltest.FixtureChainID, + ethTx := mustCreateUnstartedGeneratedTx(t, txStore, fromAddress, testutils.FixtureChainID, txRequestWithChecker(checker), txRequestWithValue(big.Int(assets.NewEthValue(542)))) { - retryable, err := eb.ProcessUnstartedTxs(testutils.Context(t), fromAddress) + retryable, err := eb.ProcessUnstartedTxs(tests.Context(t), fromAddress) assert.NoError(t, err) assert.False(t, retryable) } @@ -502,11 +503,11 @@ func TestEthBroadcaster_ProcessUnstartedEthTxs_Success(t *testing.T) { return fmt.Sprintf("%s", callarg["value"]) == "0x282" // 642 }), "latest").Return(&jerr).Once() - ethTx := mustCreateUnstartedGeneratedTx(t, txStore, fromAddress, &cltest.FixtureChainID, + ethTx := mustCreateUnstartedGeneratedTx(t, txStore, fromAddress, testutils.FixtureChainID, txRequestWithChecker(checker), txRequestWithValue(big.Int(assets.NewEthValue(642)))) { - retryable, err := eb.ProcessUnstartedTxs(testutils.Context(t), fromAddress) + retryable, err := eb.ProcessUnstartedTxs(tests.Context(t), fromAddress) assert.NoError(t, err) assert.False(t, retryable) } @@ -523,12 +524,12 @@ func TestEthBroadcaster_ProcessUnstartedEthTxs_Success(t *testing.T) { func TestEthBroadcaster_TransmitChecking(t *testing.T) { db := pgtest.NewSqlxDB(t) cfg := configtest.NewTestGeneralConfig(t) - ctx := testutils.Context(t) + ctx := tests.Context(t) txStore := cltest.NewTestTxStore(t, db) ethKeyStore := cltest.NewKeyStore(t, db).Eth() _, fromAddress := cltest.MustInsertRandomKeyReturningState(t, ethKeyStore) - ethClient := evmtest.NewEthClientMockWithDefaultChain(t) + ethClient := testutils.NewEthClientMockWithDefaultChain(t) evmcfg := evmtest.NewChainScopedConfig(t, cfg) checkerFactory := &testCheckerFactory{} ethClient.On("PendingNonceAt", mock.Anything, fromAddress).Return(uint64(0), nil).Once() @@ -546,11 +547,11 @@ func TestEthBroadcaster_TransmitChecking(t *testing.T) { return tx.Nonce() == 0 && tx.Value().Cmp(big.NewInt(442)) == 0 }), fromAddress).Return(commonclient.Successful, nil).Once() - ethTx := mustCreateUnstartedGeneratedTx(t, txStore, fromAddress, &cltest.FixtureChainID, + ethTx := mustCreateUnstartedGeneratedTx(t, txStore, fromAddress, testutils.FixtureChainID, txRequestWithValue(big.Int(assets.NewEthValue(442))), txRequestWithChecker(checker)) { - retryable, err := eb.ProcessUnstartedTxs(testutils.Context(t), fromAddress) + retryable, err := eb.ProcessUnstartedTxs(tests.Context(t), fromAddress) assert.NoError(t, err) assert.False(t, retryable) } @@ -569,11 +570,11 @@ func TestEthBroadcaster_TransmitChecking(t *testing.T) { return tx.Nonce() == 1 && tx.Value().Cmp(big.NewInt(442)) == 0 }), fromAddress).Return(commonclient.Successful, nil).Once() - ethTx := mustCreateUnstartedGeneratedTx(t, txStore, fromAddress, &cltest.FixtureChainID, + ethTx := mustCreateUnstartedGeneratedTx(t, txStore, fromAddress, testutils.FixtureChainID, txRequestWithValue(big.Int(assets.NewEthValue(442))), txRequestWithChecker(checker)) { - retryable, err := eb.ProcessUnstartedTxs(testutils.Context(t), fromAddress) + retryable, err := eb.ProcessUnstartedTxs(tests.Context(t), fromAddress) assert.NoError(t, err) assert.False(t, retryable) } @@ -588,9 +589,9 @@ func TestEthBroadcaster_TransmitChecking(t *testing.T) { // Checker will return a fatal error checkerFactory.err = errors.New("fatal checker error") - ethTx := mustCreateUnstartedGeneratedTx(t, txStore, fromAddress, &cltest.FixtureChainID, txRequestWithChecker(checker)) + ethTx := mustCreateUnstartedGeneratedTx(t, txStore, fromAddress, testutils.FixtureChainID, txRequestWithChecker(checker)) { - retryable, err := eb.ProcessUnstartedTxs(testutils.Context(t), fromAddress) + retryable, err := eb.ProcessUnstartedTxs(tests.Context(t), fromAddress) assert.NoError(t, err) assert.False(t, retryable) } @@ -610,7 +611,7 @@ func TestEthBroadcaster_ProcessUnstartedEthTxs_OptimisticLockingOnEthTx(t *testi txStore := cltest.NewTestTxStore(t, db) ccfg := evmtest.NewChainScopedConfig(t, cfg) evmcfg := txmgr.NewEvmTxmConfig(ccfg.EVM()) - ethClient := evmtest.NewEthClientMockWithDefaultChain(t) + ethClient := testutils.NewEthClientMockWithDefaultChain(t) ethKeyStore := cltest.NewKeyStore(t, db).Eth() _, fromAddress := cltest.MustInsertRandomKeyReturningState(t, ethKeyStore) estimator := gasmocks.NewEvmFeeEstimator(t) @@ -643,7 +644,7 @@ func TestEthBroadcaster_ProcessUnstartedEthTxs_OptimisticLockingOnEthTx(t *testi // Start instance of broadcaster servicetest.Run(t, eb) - mustCreateUnstartedGeneratedTx(t, txStore, fromAddress, &cltest.FixtureChainID) + mustCreateUnstartedGeneratedTx(t, txStore, fromAddress, testutils.FixtureChainID) go func() { select { @@ -659,7 +660,7 @@ func TestEthBroadcaster_ProcessUnstartedEthTxs_OptimisticLockingOnEthTx(t *testi }() { - retryable, err := eb.ProcessUnstartedTxs(testutils.Context(t), fromAddress) + retryable, err := eb.ProcessUnstartedTxs(tests.Context(t), fromAddress) assert.NoError(t, err) assert.False(t, retryable) } @@ -679,7 +680,7 @@ func TestEthBroadcaster_ProcessUnstartedEthTxs_Success_WithMultiplier(t *testing evmcfg := evmtest.NewChainScopedConfig(t, cfg) - ethClient := evmtest.NewEthClientMockWithDefaultChain(t) + ethClient := testutils.NewEthClientMockWithDefaultChain(t) ethClient.On("PendingNonceAt", mock.Anything, fromAddress).Return(uint64(0), nil).Once() nonceTracker := txmgr.NewNonceTracker(logger.Test(t), txStore, txmgr.NewEvmTxmClient(ethClient, nil)) eb := NewTestEthBroadcaster(t, txStore, ethClient, ethKeyStore, cfg, evmcfg, &testCheckerFactory{}, false, nonceTracker) @@ -697,11 +698,11 @@ func TestEthBroadcaster_ProcessUnstartedEthTxs_Success_WithMultiplier(t *testing FeeLimit: 1231, Strategy: txmgrcommon.NewSendEveryStrategy(), } - mustCreateUnstartedTxFromEvmTxRequest(t, txStore, txRequest, &cltest.FixtureChainID) + mustCreateUnstartedTxFromEvmTxRequest(t, txStore, txRequest, testutils.FixtureChainID) // Do the thing { - retryable, err := eb.ProcessUnstartedTxs(testutils.Context(t), fromAddress) + retryable, err := eb.ProcessUnstartedTxs(tests.Context(t), fromAddress) assert.NoError(t, err) assert.False(t, retryable) } @@ -717,7 +718,7 @@ func TestEthBroadcaster_ProcessUnstartedEthTxs_ResumingFromCrash(t *testing.T) { secondNonce := nextNonce + 1 cfg := configtest.NewGeneralConfig(t, nil) evmcfg := evmtest.NewChainScopedConfig(t, cfg) - ctx := testutils.Context(t) + ctx := tests.Context(t) t.Run("cannot be more than one transaction per address in an unfinished state", func(t *testing.T) { db := pgtest.NewSqlxDB(t) @@ -761,7 +762,7 @@ func TestEthBroadcaster_ProcessUnstartedEthTxs_ResumingFromCrash(t *testing.T) { ethKeyStore := cltest.NewKeyStore(t, db).Eth() _, fromAddress := cltest.RandomKey{Nonce: nextNonce.Int64()}.MustInsertWithState(t, ethKeyStore) - ethClient := evmtest.NewEthClientMockWithDefaultChain(t) + ethClient := testutils.NewEthClientMockWithDefaultChain(t) ethClient.On("PendingNonceAt", mock.Anything, fromAddress).Return(uint64(0), nil).Once() nonceTracker := txmgr.NewNonceTracker(logger.Test(t), txStore, txmgr.NewEvmTxmClient(ethClient, nil)) eb := NewTestEthBroadcaster(t, txStore, ethClient, ethKeyStore, cfg, evmcfg, &testCheckerFactory{}, false, nonceTracker) @@ -777,7 +778,7 @@ func TestEthBroadcaster_ProcessUnstartedEthTxs_ResumingFromCrash(t *testing.T) { // Do the thing { - retryable, err := eb.ProcessUnstartedTxs(testutils.Context(t), fromAddress) + retryable, err := eb.ProcessUnstartedTxs(tests.Context(t), fromAddress) assert.NoError(t, err) assert.False(t, retryable) } @@ -800,7 +801,7 @@ func TestEthBroadcaster_ProcessUnstartedEthTxs_ResumingFromCrash(t *testing.T) { ethKeyStore := cltest.NewKeyStore(t, db).Eth() _, fromAddress := cltest.RandomKey{Nonce: nextNonce.Int64()}.MustInsertWithState(t, ethKeyStore) - ethClient := evmtest.NewEthClientMockWithDefaultChain(t) + ethClient := testutils.NewEthClientMockWithDefaultChain(t) ethClient.On("PendingNonceAt", mock.Anything, fromAddress).Return(uint64(0), nil).Once() nonceTracker := txmgr.NewNonceTracker(logger.Test(t), txStore, txmgr.NewEvmTxmClient(ethClient, nil)) eb := NewTestEthBroadcaster(t, txStore, ethClient, ethKeyStore, cfg, evmcfg, &testCheckerFactory{}, false, nonceTracker) @@ -814,7 +815,7 @@ func TestEthBroadcaster_ProcessUnstartedEthTxs_ResumingFromCrash(t *testing.T) { // Do the thing { - retryable, err := eb.ProcessUnstartedTxs(testutils.Context(t), fromAddress) + retryable, err := eb.ProcessUnstartedTxs(tests.Context(t), fromAddress) assert.NoError(t, err) assert.False(t, retryable) } @@ -837,7 +838,7 @@ func TestEthBroadcaster_ProcessUnstartedEthTxs_ResumingFromCrash(t *testing.T) { ethKeyStore := cltest.NewKeyStore(t, db).Eth() _, fromAddress := cltest.RandomKey{Nonce: nextNonce.Int64()}.MustInsertWithState(t, ethKeyStore) - ethClient := evmtest.NewEthClientMockWithDefaultChain(t) + ethClient := testutils.NewEthClientMockWithDefaultChain(t) ethClient.On("PendingNonceAt", mock.Anything, fromAddress).Return(uint64(0), nil).Once() nonceTracker := txmgr.NewNonceTracker(logger.Test(t), txStore, txmgr.NewEvmTxmClient(ethClient, nil)) eb := NewTestEthBroadcaster(t, txStore, ethClient, ethKeyStore, cfg, evmcfg, &testCheckerFactory{}, false, nonceTracker) @@ -851,7 +852,7 @@ func TestEthBroadcaster_ProcessUnstartedEthTxs_ResumingFromCrash(t *testing.T) { // Do the thing { - retryable, err := eb.ProcessUnstartedTxs(testutils.Context(t), fromAddress) + retryable, err := eb.ProcessUnstartedTxs(tests.Context(t), fromAddress) assert.NoError(t, err) assert.False(t, retryable) } @@ -873,7 +874,7 @@ func TestEthBroadcaster_ProcessUnstartedEthTxs_ResumingFromCrash(t *testing.T) { ethKeyStore := cltest.NewKeyStore(t, db).Eth() _, fromAddress := cltest.RandomKey{Nonce: nextNonce.Int64()}.MustInsertWithState(t, ethKeyStore) - ethClient := evmtest.NewEthClientMockWithDefaultChain(t) + ethClient := testutils.NewEthClientMockWithDefaultChain(t) ethClient.On("PendingNonceAt", mock.Anything, fromAddress).Return(uint64(0), nil).Once() nonceTracker := txmgr.NewNonceTracker(logger.Test(t), txStore, txmgr.NewEvmTxmClient(ethClient, nil)) eb := NewTestEthBroadcaster(t, txStore, ethClient, ethKeyStore, cfg, evmcfg, &testCheckerFactory{}, false, nonceTracker) @@ -887,7 +888,7 @@ func TestEthBroadcaster_ProcessUnstartedEthTxs_ResumingFromCrash(t *testing.T) { // Do the thing { - retryable, err := eb.ProcessUnstartedTxs(testutils.Context(t), fromAddress) + retryable, err := eb.ProcessUnstartedTxs(tests.Context(t), fromAddress) assert.NoError(t, err) assert.False(t, retryable) } @@ -911,7 +912,7 @@ func TestEthBroadcaster_ProcessUnstartedEthTxs_ResumingFromCrash(t *testing.T) { ethKeyStore := cltest.NewKeyStore(t, db).Eth() _, fromAddress := cltest.RandomKey{Nonce: nextNonce.Int64()}.MustInsertWithState(t, ethKeyStore) - ethClient := evmtest.NewEthClientMockWithDefaultChain(t) + ethClient := testutils.NewEthClientMockWithDefaultChain(t) ethClient.On("PendingNonceAt", mock.Anything, fromAddress).Return(uint64(0), nil).Once() nonceTracker := txmgr.NewNonceTracker(logger.Test(t), txStore, txmgr.NewEvmTxmClient(ethClient, nil)) eb := NewTestEthBroadcaster(t, txStore, ethClient, ethKeyStore, cfg, evmcfg, &testCheckerFactory{}, false, nonceTracker) @@ -924,7 +925,7 @@ func TestEthBroadcaster_ProcessUnstartedEthTxs_ResumingFromCrash(t *testing.T) { }), fromAddress).Return(commonclient.Retryable, failedToReachNodeError).Once() // Do the thing - retryable, err := eb.ProcessUnstartedTxs(testutils.Context(t), fromAddress) + retryable, err := eb.ProcessUnstartedTxs(tests.Context(t), fromAddress) require.Error(t, err) assert.Contains(t, err.Error(), failedToReachNodeError.Error()) assert.True(t, retryable) @@ -953,7 +954,7 @@ func TestEthBroadcaster_ProcessUnstartedEthTxs_ResumingFromCrash(t *testing.T) { }) evmcfg := evmtest.NewChainScopedConfig(t, cfg) - ethClient := evmtest.NewEthClientMockWithDefaultChain(t) + ethClient := testutils.NewEthClientMockWithDefaultChain(t) ethClient.On("PendingNonceAt", mock.Anything, fromAddress).Return(uint64(0), nil).Once() nonceTracker := txmgr.NewNonceTracker(logger.Test(t), txStore, txmgr.NewEvmTxmClient(ethClient, nil)) eb := NewTestEthBroadcaster(t, txStore, ethClient, ethKeyStore, cfg, evmcfg, &testCheckerFactory{}, false, nonceTracker) @@ -972,7 +973,7 @@ func TestEthBroadcaster_ProcessUnstartedEthTxs_ResumingFromCrash(t *testing.T) { // Do the thing { - retryable, err := eb.ProcessUnstartedTxs(testutils.Context(t), fromAddress) + retryable, err := eb.ProcessUnstartedTxs(tests.Context(t), fromAddress) assert.NoError(t, err) assert.False(t, retryable) } @@ -994,7 +995,7 @@ func TestEthBroadcaster_ProcessUnstartedEthTxs_ResumingFromCrash(t *testing.T) { } func getLocalNextNonce(t *testing.T, nonceTracker txmgr.NonceTracker, fromAddress gethCommon.Address) uint64 { - n, err := nonceTracker.GetNextSequence(testutils.Context(t), fromAddress) + n, err := nonceTracker.GetNextSequence(tests.Context(t), fromAddress) require.NoError(t, err) require.NotNil(t, n) return uint64(n) @@ -1017,19 +1018,19 @@ func TestEthBroadcaster_ProcessUnstartedEthTxs_Errors(t *testing.T) { _, fromAddress := cltest.MustInsertRandomKey(t, ethKeyStore) evmcfg := evmtest.NewChainScopedConfig(t, cfg) - ethClient := evmtest.NewEthClientMockWithDefaultChain(t) + ethClient := testutils.NewEthClientMockWithDefaultChain(t) ethClient.On("PendingNonceAt", mock.Anything, fromAddress).Return(uint64(0), nil).Once() lggr := logger.Test(t) txmClient := txmgr.NewEvmTxmClient(ethClient, nil) nonceTracker := txmgr.NewNonceTracker(lggr, txStore, txmClient) eb := NewTestEthBroadcaster(t, txStore, ethClient, ethKeyStore, cfg, evmcfg, &testCheckerFactory{}, false, nonceTracker) - ctx := testutils.Context(t) + ctx := tests.Context(t) require.NoError(t, commonutils.JustError(db.Exec(`SET CONSTRAINTS fk_pipeline_runs_pruning_key DEFERRED`))) require.NoError(t, commonutils.JustError(db.Exec(`SET CONSTRAINTS pipeline_runs_pipeline_spec_id_fkey DEFERRED`))) t.Run("if external wallet sent a transaction from the account and now the nonce is one higher than it should be and we got replacement underpriced then we assume a previous transaction of ours was the one that succeeded, and hand off to EthConfirmer", func(t *testing.T) { - mustCreateUnstartedTx(t, txStore, fromAddress, toAddress, encodedPayload, gasLimit, value, &cltest.FixtureChainID) + mustCreateUnstartedTx(t, txStore, fromAddress, toAddress, encodedPayload, gasLimit, value, testutils.FixtureChainID) // First send, replacement underpriced ethClient.On("SendTransactionReturnCode", mock.Anything, mock.MatchedBy(func(tx *gethTypes.Transaction) bool { return tx.Nonce() == uint64(0) @@ -1067,7 +1068,7 @@ func TestEthBroadcaster_ProcessUnstartedEthTxs_Errors(t *testing.T) { localNextNonce := getLocalNextNonce(t, nonceTracker, fromAddress) t.Run("without callback", func(t *testing.T) { - etx := mustCreateUnstartedTx(t, txStore, fromAddress, toAddress, encodedPayload, gasLimit, value, &cltest.FixtureChainID) + etx := mustCreateUnstartedTx(t, txStore, fromAddress, toAddress, encodedPayload, gasLimit, value, testutils.FixtureChainID) ethClient.On("SendTransactionReturnCode", mock.Anything, mock.MatchedBy(func(tx *gethTypes.Transaction) bool { return tx.Nonce() == localNextNonce }), fromAddress).Return(commonclient.Fatal, errors.New(fatalErrorExample)).Once() @@ -1111,7 +1112,7 @@ func TestEthBroadcaster_ProcessUnstartedEthTxs_Errors(t *testing.T) { } t.Run("with erroring callback bails out", func(t *testing.T) { - require.NoError(t, txStore.InsertTx(testutils.Context(t), &etx)) + require.NoError(t, txStore.InsertTx(tests.Context(t), &etx)) fn := func(ctx context.Context, id uuid.UUID, result interface{}, err error) error { return errors.New("something exploded in the callback") } @@ -1171,7 +1172,7 @@ func TestEthBroadcaster_ProcessUnstartedEthTxs_Errors(t *testing.T) { TxFeeExceedsCapError := "tx fee (1.10 ether) exceeds the configured cap (1.00 ether)" localNextNonce := getLocalNextNonce(t, nonceTracker, fromAddress) ethClient.On("PendingNonceAt", mock.Anything, fromAddress).Return(localNextNonce, nil).Once() - etx := mustCreateUnstartedTx(t, txStore, fromAddress, toAddress, encodedPayload, gasLimit, value, &cltest.FixtureChainID) + etx := mustCreateUnstartedTx(t, txStore, fromAddress, toAddress, encodedPayload, gasLimit, value, testutils.FixtureChainID) ethClient.On("SendTransactionReturnCode", mock.Anything, mock.MatchedBy(func(tx *gethTypes.Transaction) bool { return tx.Nonce() == localNextNonce }), fromAddress).Return(commonclient.ExceedsMaxFee, errors.New(TxFeeExceedsCapError)).Twice() @@ -1229,7 +1230,7 @@ func TestEthBroadcaster_ProcessUnstartedEthTxs_Errors(t *testing.T) { t.Run("eth Client call fails with an unexpected random error, and transaction was not accepted into mempool", func(t *testing.T) { retryableErrorExample := "some unknown error" localNextNonce := getLocalNextNonce(t, nonceTracker, fromAddress) - etx := mustCreateUnstartedTx(t, txStore, fromAddress, toAddress, encodedPayload, gasLimit, value, &cltest.FixtureChainID) + etx := mustCreateUnstartedTx(t, txStore, fromAddress, toAddress, encodedPayload, gasLimit, value, testutils.FixtureChainID) ethClient.On("SendTransactionReturnCode", mock.Anything, mock.MatchedBy(func(tx *gethTypes.Transaction) bool { return tx.Nonce() == localNextNonce }), fromAddress).Return(commonclient.Unknown, errors.New(retryableErrorExample)).Once() @@ -1281,7 +1282,7 @@ func TestEthBroadcaster_ProcessUnstartedEthTxs_Errors(t *testing.T) { t.Run("eth client call fails with an unexpected random error, and the nonce check also subsequently fails", func(t *testing.T) { retryableErrorExample := "some unknown error" localNextNonce := getLocalNextNonce(t, nonceTracker, fromAddress) - etx := mustCreateUnstartedTx(t, txStore, fromAddress, toAddress, encodedPayload, gasLimit, value, &cltest.FixtureChainID) + etx := mustCreateUnstartedTx(t, txStore, fromAddress, toAddress, encodedPayload, gasLimit, value, testutils.FixtureChainID) ethClient.On("SendTransactionReturnCode", mock.Anything, mock.MatchedBy(func(tx *gethTypes.Transaction) bool { return tx.Nonce() == localNextNonce }), fromAddress).Return(commonclient.Unknown, errors.New(retryableErrorExample)).Once() @@ -1333,7 +1334,7 @@ func TestEthBroadcaster_ProcessUnstartedEthTxs_Errors(t *testing.T) { t.Run("eth Client call fails with an unexpected random error, and transaction was accepted into mempool", func(t *testing.T) { retryableErrorExample := "some strange RPC returns an unexpected thing" localNextNonce := getLocalNextNonce(t, nonceTracker, fromAddress) - etx := mustCreateUnstartedTx(t, txStore, fromAddress, toAddress, encodedPayload, gasLimit, value, &cltest.FixtureChainID) + etx := mustCreateUnstartedTx(t, txStore, fromAddress, toAddress, encodedPayload, gasLimit, value, testutils.FixtureChainID) ethClient.On("SendTransactionReturnCode", mock.Anything, mock.MatchedBy(func(tx *gethTypes.Transaction) bool { return tx.Nonce() == localNextNonce }), fromAddress).Return(commonclient.Unknown, errors.New(retryableErrorExample)).Once() @@ -1365,7 +1366,7 @@ func TestEthBroadcaster_ProcessUnstartedEthTxs_Errors(t *testing.T) { // This is a configuration error by the node operator, since it means they set the base gas level too low. underpricedError := "transaction underpriced" localNextNonce := getLocalNextNonce(t, nonceTracker, fromAddress) - etx := mustCreateUnstartedTx(t, txStore, fromAddress, toAddress, encodedPayload, gasLimit, value, &cltest.FixtureChainID) + etx := mustCreateUnstartedTx(t, txStore, fromAddress, toAddress, encodedPayload, gasLimit, value, testutils.FixtureChainID) // First was underpriced ethClient.On("SendTransactionReturnCode", mock.Anything, mock.MatchedBy(func(tx *gethTypes.Transaction) bool { @@ -1481,7 +1482,7 @@ func TestEthBroadcaster_ProcessUnstartedEthTxs_Errors(t *testing.T) { c.EVM[0].GasEstimator.BumpPercent = ptr[uint16](0) })) eb2 := NewTestEthBroadcaster(t, txStore, ethClient, ethKeyStore, cfg, evmcfg2, &testCheckerFactory{}, false, nonceTracker) - mustCreateUnstartedTx(t, txStore, fromAddress, toAddress, encodedPayload, gasLimit, value, &cltest.FixtureChainID) + mustCreateUnstartedTx(t, txStore, fromAddress, toAddress, encodedPayload, gasLimit, value, testutils.FixtureChainID) // First was underpriced ethClient.On("SendTransactionReturnCode", mock.Anything, mock.MatchedBy(func(tx *gethTypes.Transaction) bool { @@ -1501,7 +1502,7 @@ func TestEthBroadcaster_ProcessUnstartedEthTxs_Errors(t *testing.T) { t.Run("eth tx is left in progress if eth node returns insufficient eth", func(t *testing.T) { insufficientEthError := "insufficient funds for transfer" localNextNonce := getLocalNextNonce(t, nonceTracker, fromAddress) - etx := mustCreateUnstartedTx(t, txStore, fromAddress, toAddress, encodedPayload, gasLimit, value, &cltest.FixtureChainID) + etx := mustCreateUnstartedTx(t, txStore, fromAddress, toAddress, encodedPayload, gasLimit, value, testutils.FixtureChainID) ethClient.On("SendTransactionReturnCode", mock.Anything, mock.MatchedBy(func(tx *gethTypes.Transaction) bool { return tx.Nonce() == localNextNonce }), fromAddress).Return(commonclient.InsufficientFunds, errors.New(insufficientEthError)).Once() @@ -1531,7 +1532,7 @@ func TestEthBroadcaster_ProcessUnstartedEthTxs_Errors(t *testing.T) { t.Run("eth tx is left in progress if nonce is too high", func(t *testing.T) { localNextNonce := getLocalNextNonce(t, nonceTracker, fromAddress) nonceGapError := "NonceGap, Future nonce. Expected nonce: " + strconv.FormatUint(localNextNonce, 10) - etx := mustCreateUnstartedTx(t, txStore, fromAddress, toAddress, encodedPayload, gasLimit, value, &cltest.FixtureChainID) + etx := mustCreateUnstartedTx(t, txStore, fromAddress, toAddress, encodedPayload, gasLimit, value, testutils.FixtureChainID) ethClient.On("SendTransactionReturnCode", mock.Anything, mock.MatchedBy(func(tx *gethTypes.Transaction) bool { return tx.Nonce() == localNextNonce }), fromAddress).Return(commonclient.Retryable, errors.New(nonceGapError)).Once() @@ -1573,7 +1574,7 @@ func TestEthBroadcaster_ProcessUnstartedEthTxs_Errors(t *testing.T) { localNextNonce := getLocalNextNonce(t, nonceTracker, fromAddress) ethClient.On("PendingNonceAt", mock.Anything, fromAddress).Return(localNextNonce, nil).Once() eb2 := NewTestEthBroadcaster(t, txStore, ethClient, ethKeyStore, cfg, evmcfg2, &testCheckerFactory{}, false, nonceTracker) - mustCreateUnstartedTx(t, txStore, fromAddress, toAddress, encodedPayload, gasLimit, value, &cltest.FixtureChainID) + mustCreateUnstartedTx(t, txStore, fromAddress, toAddress, encodedPayload, gasLimit, value, testutils.FixtureChainID) underpricedError := "transaction underpriced" localNextNonce = getLocalNextNonce(t, nonceTracker, fromAddress) ethClient.On("SendTransactionReturnCode", mock.Anything, mock.MatchedBy(func(tx *gethTypes.Transaction) bool { @@ -1595,7 +1596,7 @@ func TestEthBroadcaster_ProcessUnstartedEthTxs_Errors(t *testing.T) { // This is a configuration error by the node operator, since it means they set the base gas level too low. underpricedError := "transaction underpriced" localNextNonce := getLocalNextNonce(t, nonceTracker, fromAddress) - mustCreateUnstartedTx(t, txStore, fromAddress, toAddress, encodedPayload, gasLimit, value, &cltest.FixtureChainID) + mustCreateUnstartedTx(t, txStore, fromAddress, toAddress, encodedPayload, gasLimit, value, testutils.FixtureChainID) // Check gas tip cap verification evmcfg2 := evmtest.NewChainScopedConfig(t, configtest.NewGeneralConfig(t, func(c *chainlink.Config, s *chainlink.Secrets) { @@ -1657,21 +1658,21 @@ func TestEthBroadcaster_ProcessUnstartedEthTxs_KeystoreErrors(t *testing.T) { _, fromAddress := cltest.MustInsertRandomKeyReturningState(t, realKeystore.Eth()) evmcfg := evmtest.NewChainScopedConfig(t, cfg) - ethClient := evmtest.NewEthClientMockWithDefaultChain(t) + ethClient := testutils.NewEthClientMockWithDefaultChain(t) kst := ksmocks.NewEth(t) addresses := []gethCommon.Address{fromAddress} - kst.On("EnabledAddressesForChain", mock.Anything, &cltest.FixtureChainID).Return(addresses, nil).Once() + kst.On("EnabledAddressesForChain", mock.Anything, testutils.FixtureChainID).Return(addresses, nil).Once() ethClient.On("PendingNonceAt", mock.Anything, fromAddress).Return(uint64(0), nil).Once() lggr := logger.Test(t) nonceTracker := txmgr.NewNonceTracker(lggr, txStore, txmgr.NewEvmTxmClient(ethClient, nil)) eb := NewTestEthBroadcaster(t, txStore, ethClient, kst, cfg, evmcfg, &testCheckerFactory{}, false, nonceTracker) - ctx := testutils.Context(t) + ctx := tests.Context(t) _, err := nonceTracker.GetNextSequence(ctx, fromAddress) require.NoError(t, err) t.Run("tx signing fails", func(t *testing.T) { - etx := mustCreateUnstartedTx(t, txStore, fromAddress, toAddress, encodedPayload, gasLimit, value, &cltest.FixtureChainID) + etx := mustCreateUnstartedTx(t, txStore, fromAddress, toAddress, encodedPayload, gasLimit, value, testutils.FixtureChainID) tx := *gethTypes.NewTx(&gethTypes.LegacyTx{}) kst.On("SignTx", mock.Anything, fromAddress, @@ -1711,7 +1712,7 @@ func TestEthBroadcaster_Trigger(t *testing.T) { txStore := cltest.NewTestTxStore(t, db) evmcfg := evmtest.NewChainScopedConfig(t, cfg) ethKeyStore := cltest.NewKeyStore(t, db).Eth() - ethClient := evmtest.NewEthClientMockWithDefaultChain(t) + ethClient := testutils.NewEthClientMockWithDefaultChain(t) lggr := logger.Test(t) nonceTracker := txmgr.NewNonceTracker(lggr, txStore, txmgr.NewEvmTxmClient(ethClient, nil)) eb := NewTestEthBroadcaster(t, txStore, ethClient, ethKeyStore, cfg, evmcfg, &testCheckerFactory{}, false, nonceTracker) @@ -1723,7 +1724,7 @@ func TestEthBroadcaster_Trigger(t *testing.T) { func TestEthBroadcaster_SyncNonce(t *testing.T) { db := pgtest.NewSqlxDB(t) - ctx := testutils.Context(t) + ctx := tests.Context(t) lggr, observed := logger.TestObserved(t, zapcore.DebugLevel) cfg := configtest.NewGeneralConfig(t, func(c *chainlink.Config, s *chainlink.Secrets) { @@ -1744,12 +1745,12 @@ func TestEthBroadcaster_SyncNonce(t *testing.T) { ge := evmcfg.EVM().GasEstimator() t.Run("does nothing if nonce sync is disabled", func(t *testing.T) { - ethClient := evmtest.NewEthClientMockWithDefaultChain(t) + ethClient := testutils.NewEthClientMockWithDefaultChain(t) txBuilder := txmgr.NewEvmTxAttemptBuilder(*ethClient.ConfiguredChainID(), ge, kst, estimator) kst := ksmocks.NewEth(t) addresses := []gethCommon.Address{fromAddress} - kst.On("EnabledAddressesForChain", mock.Anything, &cltest.FixtureChainID).Return(addresses, nil).Once() + kst.On("EnabledAddressesForChain", mock.Anything, testutils.FixtureChainID).Return(addresses, nil).Once() ethClient.On("PendingNonceAt", mock.Anything, fromAddress).Return(uint64(0), nil).Once() txmClient := txmgr.NewEvmTxmClient(ethClient, nil) eb := txmgr.NewEvmBroadcaster(txStore, txmClient, evmTxmCfg, txmgr.NewEvmTxmFeeConfig(ge), evmcfg.EVM().Transactions(), cfg.Database().Listener(), kst, txBuilder, lggr, checkerFactory, false) @@ -1758,7 +1759,7 @@ func TestEthBroadcaster_SyncNonce(t *testing.T) { defer func() { assert.NoError(t, eb.Close()) }() - testutils.WaitForLogMessage(t, observed, "Skipping sequence auto-sync") + tests.AssertLogEventually(t, observed, "Skipping sequence auto-sync") }) } @@ -1771,11 +1772,11 @@ func TestEthBroadcaster_NonceTracker_InProgressTx(t *testing.T) { ethKeyStore := cltest.NewKeyStore(t, db).Eth() _, fromAddress := cltest.MustInsertRandomKey(t, ethKeyStore) - ethClient := evmtest.NewEthClientMockWithDefaultChain(t) + ethClient := testutils.NewEthClientMockWithDefaultChain(t) evmcfg := evmtest.NewChainScopedConfig(t, cfg) checkerFactory := &txmgr.CheckerFactory{Client: ethClient} lggr := logger.Test(t) - ctx := testutils.Context(t) + ctx := tests.Context(t) t.Run("maintains the proper nonce if there is an in-progress tx during startup", func(t *testing.T) { inProgressTxNonce := uint64(0) diff --git a/core/chains/evm/txmgr/confirmer_test.go b/core/chains/evm/txmgr/confirmer_test.go index 2ce34505234..a3ae0a0a5db 100644 --- a/core/chains/evm/txmgr/confirmer_test.go +++ b/core/chains/evm/txmgr/confirmer_test.go @@ -23,6 +23,7 @@ import ( "github.com/smartcontractkit/chainlink-common/pkg/logger" "github.com/smartcontractkit/chainlink-common/pkg/services/servicetest" + "github.com/smartcontractkit/chainlink-common/pkg/utils/tests" commonclient "github.com/smartcontractkit/chainlink/v2/common/client" commonfee "github.com/smartcontractkit/chainlink/v2/common/fee" @@ -35,11 +36,11 @@ import ( gasmocks "github.com/smartcontractkit/chainlink/v2/core/chains/evm/gas/mocks" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/keystore" ksmocks "github.com/smartcontractkit/chainlink/v2/core/chains/evm/keystore/mocks" + "github.com/smartcontractkit/chainlink/v2/core/chains/evm/testutils" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/txmgr" evmtypes "github.com/smartcontractkit/chainlink/v2/core/chains/evm/types" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/utils" "github.com/smartcontractkit/chainlink/v2/core/internal/cltest" - "github.com/smartcontractkit/chainlink/v2/core/internal/testutils" "github.com/smartcontractkit/chainlink/v2/core/internal/testutils/configtest" "github.com/smartcontractkit/chainlink/v2/core/internal/testutils/evmtest" "github.com/smartcontractkit/chainlink/v2/core/internal/testutils/pgtest" @@ -62,7 +63,7 @@ func newBroadcastLegacyEthTxAttempt(t *testing.T, etxID int64, gasPrice ...int64 } func mustTxBeInState(t *testing.T, txStore txmgr.TestEvmTxStore, tx txmgr.Tx, expectedState txmgrtypes.TxState) { - etx, err := txStore.FindTxWithAttempts(testutils.Context(t), tx.ID) + etx, err := txStore.FindTxWithAttempts(tests.Context(t), tx.ID) require.NoError(t, err) require.Equal(t, expectedState, etx.State) } @@ -70,7 +71,7 @@ func mustTxBeInState(t *testing.T, txStore txmgr.TestEvmTxStore, tx txmgr.Tx, ex func newTxReceipt(hash gethCommon.Hash, blockNumber int, txIndex uint) evmtypes.Receipt { return evmtypes.Receipt{ TxHash: hash, - BlockHash: utils.NewHash(), + BlockHash: testutils.NewHash(), BlockNumber: big.NewInt(int64(blockNumber)), TransactionIndex: txIndex, Status: uint64(1), @@ -92,7 +93,7 @@ func mustInsertInProgressEthTx(t *testing.T, txStore txmgr.TestEvmTxStore, nonce etx.State = txmgrcommon.TxInProgress n := evmtypes.Nonce(nonce) etx.Sequence = &n - require.NoError(t, txStore.InsertTx(testutils.Context(t), &etx)) + require.NoError(t, txStore.InsertTx(tests.Context(t), &etx)) return etx } @@ -105,7 +106,7 @@ func mustInsertConfirmedEthTx(t *testing.T, txStore txmgr.TestEvmTxStore, nonce now := time.Now() etx.BroadcastAt = &now etx.InitialBroadcastAt = &now - require.NoError(t, txStore.InsertTx(testutils.Context(t), &etx)) + require.NoError(t, txStore.InsertTx(tests.Context(t), &etx)) return etx } @@ -117,7 +118,7 @@ func TestEthConfirmer_Lifecycle(t *testing.T) { gconfig, config := newTestChainScopedConfig(t) txStore := newTxStore(t, db) - ethClient := evmtest.NewEthClientMockWithDefaultChain(t) + ethClient := testutils.NewEthClientMockWithDefaultChain(t) ethKeyStore := cltest.NewKeyStore(t, db).Eth() // Add some fromAddresses @@ -131,7 +132,7 @@ func TestEthConfirmer_Lifecycle(t *testing.T) { txBuilder := txmgr.NewEvmTxAttemptBuilder(*ethClient.ConfiguredChainID(), ge, ethKeyStore, feeEstimator) stuckTxDetector := txmgr.NewStuckTxDetector(lggr, testutils.FixtureChainID, "", assets.NewWei(assets.NewEth(100).ToInt()), config.EVM().Transactions().AutoPurge(), feeEstimator, txStore, ethClient) ec := txmgr.NewEvmConfirmer(txStore, txmgr.NewEvmTxmClient(ethClient, nil), txmgr.NewEvmTxmConfig(config.EVM()), txmgr.NewEvmTxmFeeConfig(ge), config.EVM().Transactions(), gconfig.Database(), ethKeyStore, txBuilder, lggr, stuckTxDetector) - ctx := testutils.Context(t) + ctx := tests.Context(t) // Can't close unstarted instance err := ec.Close() @@ -145,14 +146,14 @@ func TestEthConfirmer_Lifecycle(t *testing.T) { err = ec.Start(ctx) require.Error(t, err) head := evmtypes.Head{ - Hash: utils.NewHash(), + Hash: testutils.NewHash(), Number: 10, Parent: &evmtypes.Head{ - Hash: utils.NewHash(), + Hash: testutils.NewHash(), Number: 9, Parent: &evmtypes.Head{ Number: 8, - Hash: utils.NewHash(), + Hash: testutils.NewHash(), Parent: nil, }, }, @@ -188,7 +189,7 @@ func TestEthConfirmer_CheckForReceipts(t *testing.T) { gconfig, config := newTestChainScopedConfig(t) txStore := cltest.NewTestTxStore(t, db) - ethClient := evmtest.NewEthClientMockWithDefaultChain(t) + ethClient := testutils.NewEthClientMockWithDefaultChain(t) ethKeyStore := cltest.NewKeyStore(t, db).Eth() _, fromAddress := cltest.MustInsertRandomKey(t, ethKeyStore) @@ -196,7 +197,7 @@ func TestEthConfirmer_CheckForReceipts(t *testing.T) { ec := newEthConfirmer(t, txStore, ethClient, gconfig, config, ethKeyStore, nil) nonce := int64(0) - ctx := testutils.Context(t) + ctx := tests.Context(t) blockNum := int64(0) t.Run("only finds eth_txes in unconfirmed state with at least one broadcast attempt", func(t *testing.T) { @@ -244,8 +245,8 @@ func TestEthConfirmer_CheckForReceipts(t *testing.T) { t.Run("saves nothing if returned receipt does not match the attempt", func(t *testing.T) { txmReceipt := evmtypes.Receipt{ - TxHash: utils.NewHash(), - BlockHash: utils.NewHash(), + TxHash: testutils.NewHash(), + BlockHash: testutils.NewHash(), BlockNumber: big.NewInt(42), TransactionIndex: uint(1), } @@ -272,7 +273,7 @@ func TestEthConfirmer_CheckForReceipts(t *testing.T) { t.Run("saves nothing if query returns error", func(t *testing.T) { txmReceipt := evmtypes.Receipt{ TxHash: attempt1_1.Hash, - BlockHash: utils.NewHash(), + BlockHash: testutils.NewHash(), BlockNumber: big.NewInt(42), TransactionIndex: uint(1), } @@ -305,7 +306,7 @@ func TestEthConfirmer_CheckForReceipts(t *testing.T) { t.Run("saves eth_receipt and marks eth_tx as confirmed when geth client returns valid receipt", func(t *testing.T) { txmReceipt := evmtypes.Receipt{ TxHash: attempt1_1.Hash, - BlockHash: utils.NewHash(), + BlockHash: testutils.NewHash(), BlockNumber: big.NewInt(42), TransactionIndex: uint(1), Status: uint64(1), @@ -364,7 +365,7 @@ func TestEthConfirmer_CheckForReceipts(t *testing.T) { txmReceipt := evmtypes.Receipt{ TxHash: attempt2_2.Hash, - BlockHash: utils.NewHash(), + BlockHash: testutils.NewHash(), BlockNumber: big.NewInt(42), TransactionIndex: uint(1), Status: uint64(1), @@ -431,7 +432,7 @@ func TestEthConfirmer_CheckForReceipts(t *testing.T) { // NOTE: This should never happen, but we shouldn't panic regardless receipt := evmtypes.Receipt{ TxHash: attempt3_1.Hash, - BlockHash: utils.NewHash(), + BlockHash: testutils.NewHash(), Status: uint64(1), } ethClient.On("BatchCallContext", mock.Anything, mock.MatchedBy(func(b []rpc.BatchElem) bool { @@ -454,7 +455,7 @@ func TestEthConfirmer_CheckForReceipts(t *testing.T) { require.Len(t, attempt3_1.Receipts, 0) }) t.Run("handles case where eth_receipt already exists somehow", func(t *testing.T) { - ethReceipt := mustInsertEthReceipt(t, txStore, 42, utils.NewHash(), attempt3_1.Hash) + ethReceipt := mustInsertEthReceipt(t, txStore, 42, testutils.NewHash(), attempt3_1.Hash) txmReceipt := evmtypes.Receipt{ TxHash: attempt3_1.Hash, BlockHash: ethReceipt.BlockHash, @@ -502,7 +503,7 @@ func TestEthConfirmer_CheckForReceipts(t *testing.T) { txmReceipt := evmtypes.Receipt{ TxHash: attempt4_2.Hash, - BlockHash: utils.NewHash(), + BlockHash: testutils.NewHash(), BlockNumber: big.NewInt(42), TransactionIndex: uint(1), Status: uint64(1), @@ -550,7 +551,7 @@ func TestEthConfirmer_CheckForReceipts(t *testing.T) { t.Run("simulate on revert", func(t *testing.T) { txmReceipt := evmtypes.Receipt{ TxHash: attempt5_1.Hash, - BlockHash: utils.NewHash(), + BlockHash: testutils.NewHash(), BlockNumber: big.NewInt(42), TransactionIndex: uint(1), Status: uint64(0), @@ -604,12 +605,12 @@ func TestEthConfirmer_CheckForReceipts_batching(t *testing.T) { _, fromAddress := cltest.MustInsertRandomKeyReturningState(t, ethKeyStore) - ethClient := evmtest.NewEthClientMockWithDefaultChain(t) + ethClient := testutils.NewEthClientMockWithDefaultChain(t) evmcfg := evmtest.NewChainScopedConfig(t, cfg) ec := newEthConfirmer(t, txStore, ethClient, cfg, evmcfg, ethKeyStore, nil) - ctx := testutils.Context(t) + ctx := tests.Context(t) etx := cltest.MustInsertUnconfirmedEthTx(t, txStore, 0, fromAddress) var attempts []txmgr.TxAttempt @@ -664,12 +665,12 @@ func TestEthConfirmer_CheckForReceipts_HandlesNonFwdTxsWithForwardingEnabled(t * txStore := cltest.NewTestTxStore(t, db) ethKeyStore := cltest.NewKeyStore(t, db).Eth() - ethClient := evmtest.NewEthClientMockWithDefaultChain(t) + ethClient := testutils.NewEthClientMockWithDefaultChain(t) evmcfg := evmtest.NewChainScopedConfig(t, cfg) _, fromAddress := cltest.MustInsertRandomKeyReturningState(t, ethKeyStore) ec := newEthConfirmer(t, txStore, ethClient, cfg, evmcfg, ethKeyStore, nil) - ctx := testutils.Context(t) + ctx := tests.Context(t) // tx is not forwarded and doesn't have meta set. EthConfirmer should handle nil meta values etx := cltest.MustInsertUnconfirmedEthTx(t, txStore, 0, fromAddress) attempt := newBroadcastLegacyEthTxAttempt(t, etx.ID, 2) @@ -681,7 +682,7 @@ func TestEthConfirmer_CheckForReceipts_HandlesNonFwdTxsWithForwardingEnabled(t * txmReceipt := evmtypes.Receipt{ TxHash: attempt.Hash, - BlockHash: utils.NewHash(), + BlockHash: testutils.NewHash(), BlockNumber: big.NewInt(42), TransactionIndex: uint(1), Status: uint64(1), @@ -717,12 +718,12 @@ func TestEthConfirmer_CheckForReceipts_only_likely_confirmed(t *testing.T) { _, fromAddress := cltest.MustInsertRandomKeyReturningState(t, ethKeyStore) - ethClient := evmtest.NewEthClientMockWithDefaultChain(t) + ethClient := testutils.NewEthClientMockWithDefaultChain(t) evmcfg := evmtest.NewChainScopedConfig(t, cfg) ec := newEthConfirmer(t, txStore, ethClient, cfg, evmcfg, ethKeyStore, nil) - ctx := testutils.Context(t) + ctx := tests.Context(t) var attempts []txmgr.TxAttempt // inserting in DESC nonce order to test DB ASC ordering @@ -773,10 +774,10 @@ func TestEthConfirmer_CheckForReceipts_should_not_check_for_likely_unconfirmed(t _, fromAddress := cltest.MustInsertRandomKeyReturningState(t, ethKeyStore) - ethClient := evmtest.NewEthClientMockWithDefaultChain(t) + ethClient := testutils.NewEthClientMockWithDefaultChain(t) ec := newEthConfirmer(t, txStore, ethClient, gconfig, config, ethKeyStore, nil) - ctx := testutils.Context(t) + ctx := tests.Context(t) etx := cltest.MustInsertUnconfirmedEthTx(t, txStore, 1, fromAddress) for i := 0; i < 4; i++ { @@ -802,12 +803,12 @@ func TestEthConfirmer_CheckForReceipts_confirmed_missing_receipt_scoped_to_key(t _, fromAddress1_2 := cltest.MustInsertRandomKeyReturningState(t, ethKeyStore) _, fromAddress2_1 := cltest.MustInsertRandomKeyReturningState(t, ethKeyStore) - ethClient := evmtest.NewEthClientMockWithDefaultChain(t) + ethClient := testutils.NewEthClientMockWithDefaultChain(t) ethClient.On("SequenceAt", mock.Anything, mock.Anything, mock.Anything).Return(evmtypes.Nonce(20), nil) evmcfg := evmtest.NewChainScopedConfig(t, cfg) ec := newEthConfirmer(t, txStore, ethClient, cfg, evmcfg, ethKeyStore, nil) - ctx := testutils.Context(t) + ctx := tests.Context(t) // STATE // key 1, tx with nonce 0 is unconfirmed @@ -869,12 +870,12 @@ func TestEthConfirmer_CheckForReceipts_confirmed_missing_receipt(t *testing.T) { _, fromAddress := cltest.MustInsertRandomKeyReturningState(t, ethKeyStore) - ethClient := evmtest.NewEthClientMockWithDefaultChain(t) + ethClient := testutils.NewEthClientMockWithDefaultChain(t) evmcfg := evmtest.NewChainScopedConfig(t, cfg) ec := newEthConfirmer(t, txStore, ethClient, cfg, evmcfg, ethKeyStore, nil) - ctx := testutils.Context(t) + ctx := tests.Context(t) // STATE // eth_txes with nonce 0 has two attempts (broadcast before block 21 and 41) the first of which will get a receipt @@ -911,14 +912,14 @@ func TestEthConfirmer_CheckForReceipts_confirmed_missing_receipt(t *testing.T) { t.Run("marks buried eth_txes as 'confirmed_missing_receipt'", func(t *testing.T) { txmReceipt0 := evmtypes.Receipt{ TxHash: attempt0_2.Hash, - BlockHash: utils.NewHash(), + BlockHash: testutils.NewHash(), BlockNumber: big.NewInt(42), TransactionIndex: uint(1), Status: uint64(1), } txmReceipt3 := evmtypes.Receipt{ TxHash: attempt3_1.Hash, - BlockHash: utils.NewHash(), + BlockHash: testutils.NewHash(), BlockNumber: big.NewInt(42), TransactionIndex: uint(1), Status: uint64(1), @@ -986,7 +987,7 @@ func TestEthConfirmer_CheckForReceipts_confirmed_missing_receipt(t *testing.T) { t.Run("marks eth_txes with state 'confirmed_missing_receipt' as 'confirmed' if a receipt finally shows up", func(t *testing.T) { txmReceipt := evmtypes.Receipt{ TxHash: attempt2_1.Hash, - BlockHash: utils.NewHash(), + BlockHash: testutils.NewHash(), BlockNumber: big.NewInt(43), TransactionIndex: uint(1), Status: uint64(1), @@ -1125,12 +1126,13 @@ func TestEthConfirmer_CheckConfirmedMissingReceipt(t *testing.T) { _, fromAddress := cltest.MustInsertRandomKeyReturningState(t, ethKeyStore) - ethClient := evmtest.NewEthClientMockWithDefaultChain(t) + ethClient := testutils.NewEthClientMockWithDefaultChain(t) + ethClient.On("IsL2").Return(false).Maybe() evmcfg := evmtest.NewChainScopedConfig(t, cfg) ec := newEthConfirmer(t, txStore, ethClient, cfg, evmcfg, ethKeyStore, nil) - ctx := testutils.Context(t) + ctx := tests.Context(t) // STATE // eth_txes with nonce 0 has two attempts, the later attempt with higher gas fees @@ -1204,12 +1206,13 @@ func TestEthConfirmer_CheckConfirmedMissingReceipt_batchSendTransactions_fails(t _, fromAddress := cltest.MustInsertRandomKeyReturningState(t, ethKeyStore) - ethClient := evmtest.NewEthClientMockWithDefaultChain(t) + ethClient := testutils.NewEthClientMockWithDefaultChain(t) + ethClient.On("IsL2").Return(false).Maybe() evmcfg := evmtest.NewChainScopedConfig(t, cfg) ec := newEthConfirmer(t, txStore, ethClient, cfg, evmcfg, ethKeyStore, nil) - ctx := testutils.Context(t) + ctx := tests.Context(t) // STATE // eth_txes with nonce 0 has two attempts, the later attempt with higher gas fees @@ -1268,12 +1271,13 @@ func TestEthConfirmer_CheckConfirmedMissingReceipt_smallEvmRPCBatchSize_middleBa _, fromAddress := cltest.MustInsertRandomKeyReturningState(t, ethKeyStore) - ethClient := evmtest.NewEthClientMockWithDefaultChain(t) + ethClient := testutils.NewEthClientMockWithDefaultChain(t) + ethClient.On("IsL2").Return(false).Maybe() evmcfg := evmtest.NewChainScopedConfig(t, cfg) ec := newEthConfirmer(t, txStore, ethClient, cfg, evmcfg, ethKeyStore, nil) - ctx := testutils.Context(t) + ctx := tests.Context(t) // STATE // eth_txes with nonce 0 has two attempts, the later attempt with higher gas fees @@ -1330,9 +1334,9 @@ func TestEthConfirmer_FindTxsRequiringRebroadcast(t *testing.T) { db := pgtest.NewSqlxDB(t) cfg := configtest.NewTestGeneralConfig(t) txStore := cltest.NewTestTxStore(t, db) - ctx := testutils.Context(t) + ctx := tests.Context(t) - ethClient := evmtest.NewEthClientMockWithDefaultChain(t) + ethClient := testutils.NewEthClientMockWithDefaultChain(t) evmcfg := evmtest.NewChainScopedConfig(t, cfg) @@ -1358,7 +1362,7 @@ func TestEthConfirmer_FindTxsRequiringRebroadcast(t *testing.T) { ec := newEthConfirmer(t, txStore, ethClient, cfg, evmcfg, ethKeyStore, nil) t.Run("returns nothing when there are no transactions", func(t *testing.T) { - etxs, err := ec.FindTxsRequiringRebroadcast(testutils.Context(t), lggr, evmFromAddress, currentHead, gasBumpThreshold, 10, 0, &cltest.FixtureChainID) + etxs, err := ec.FindTxsRequiringRebroadcast(tests.Context(t), lggr, evmFromAddress, currentHead, gasBumpThreshold, 10, 0, &cltest.FixtureChainID) require.NoError(t, err) assert.Len(t, etxs, 0) @@ -1368,7 +1372,7 @@ func TestEthConfirmer_FindTxsRequiringRebroadcast(t *testing.T) { nonce++ t.Run("returns nothing when the transaction is in_progress", func(t *testing.T) { - etxs, err := ec.FindTxsRequiringRebroadcast(testutils.Context(t), lggr, evmFromAddress, currentHead, gasBumpThreshold, 10, 0, &cltest.FixtureChainID) + etxs, err := ec.FindTxsRequiringRebroadcast(tests.Context(t), lggr, evmFromAddress, currentHead, gasBumpThreshold, 10, 0, &cltest.FixtureChainID) require.NoError(t, err) assert.Len(t, etxs, 0) @@ -1379,7 +1383,7 @@ func TestEthConfirmer_FindTxsRequiringRebroadcast(t *testing.T) { nonce++ t.Run("ignores unconfirmed transactions with nil BroadcastBeforeBlockNum", func(t *testing.T) { - etxs, err := ec.FindTxsRequiringRebroadcast(testutils.Context(t), lggr, evmFromAddress, currentHead, gasBumpThreshold, 10, 0, &cltest.FixtureChainID) + etxs, err := ec.FindTxsRequiringRebroadcast(tests.Context(t), lggr, evmFromAddress, currentHead, gasBumpThreshold, 10, 0, &cltest.FixtureChainID) require.NoError(t, err) assert.Len(t, etxs, 0) @@ -1397,7 +1401,7 @@ func TestEthConfirmer_FindTxsRequiringRebroadcast(t *testing.T) { require.NoError(t, txStore.InsertTxAttempt(ctx, &attempt1_2)) t.Run("returns nothing when the transaction is unconfirmed with an attempt that is recent", func(t *testing.T) { - etxs, err := ec.FindTxsRequiringRebroadcast(testutils.Context(t), lggr, evmFromAddress, currentHead, gasBumpThreshold, 10, 0, &cltest.FixtureChainID) + etxs, err := ec.FindTxsRequiringRebroadcast(tests.Context(t), lggr, evmFromAddress, currentHead, gasBumpThreshold, 10, 0, &cltest.FixtureChainID) require.NoError(t, err) assert.Len(t, etxs, 0) @@ -1411,7 +1415,7 @@ func TestEthConfirmer_FindTxsRequiringRebroadcast(t *testing.T) { require.NoError(t, db.Get(&dbAttempt, `UPDATE evm.tx_attempts SET broadcast_before_block_num=$1 WHERE id=$2 RETURNING *`, tooNew, attempt2_1.ID)) t.Run("returns nothing when the transaction has attempts that are too new", func(t *testing.T) { - etxs, err := ec.FindTxsRequiringRebroadcast(testutils.Context(t), lggr, evmFromAddress, currentHead, gasBumpThreshold, 10, 0, &cltest.FixtureChainID) + etxs, err := ec.FindTxsRequiringRebroadcast(tests.Context(t), lggr, evmFromAddress, currentHead, gasBumpThreshold, 10, 0, &cltest.FixtureChainID) require.NoError(t, err) assert.Len(t, etxs, 0) @@ -1430,14 +1434,14 @@ func TestEthConfirmer_FindTxsRequiringRebroadcast(t *testing.T) { nonce++ t.Run("does nothing if the transaction is from a different address than the one given", func(t *testing.T) { - etxs, err := ec.FindTxsRequiringRebroadcast(testutils.Context(t), lggr, evmOtherAddress, currentHead, gasBumpThreshold, 10, 0, &cltest.FixtureChainID) + etxs, err := ec.FindTxsRequiringRebroadcast(tests.Context(t), lggr, evmOtherAddress, currentHead, gasBumpThreshold, 10, 0, &cltest.FixtureChainID) require.NoError(t, err) assert.Len(t, etxs, 0) }) t.Run("returns the transaction if it is unconfirmed and has no attempts (note that this is an invariant violation, but we handle it anyway)", func(t *testing.T) { - etxs, err := ec.FindTxsRequiringRebroadcast(testutils.Context(t), lggr, evmFromAddress, currentHead, gasBumpThreshold, 10, 0, &cltest.FixtureChainID) + etxs, err := ec.FindTxsRequiringRebroadcast(tests.Context(t), lggr, evmFromAddress, currentHead, gasBumpThreshold, 10, 0, &cltest.FixtureChainID) require.NoError(t, err) require.Len(t, etxs, 1) @@ -1445,7 +1449,7 @@ func TestEthConfirmer_FindTxsRequiringRebroadcast(t *testing.T) { }) t.Run("returns nothing for different chain id", func(t *testing.T) { - etxs, err := ec.FindTxsRequiringRebroadcast(testutils.Context(t), lggr, evmFromAddress, currentHead, gasBumpThreshold, 10, 0, big.NewInt(42)) + etxs, err := ec.FindTxsRequiringRebroadcast(tests.Context(t), lggr, evmFromAddress, currentHead, gasBumpThreshold, 10, 0, big.NewInt(42)) require.NoError(t, err) require.Len(t, etxs, 0) @@ -1466,7 +1470,7 @@ func TestEthConfirmer_FindTxsRequiringRebroadcast(t *testing.T) { require.NoError(t, db.Get(&dbAttempt, `UPDATE evm.tx_attempts SET broadcast_before_block_num=$1 WHERE id=$2 RETURNING *`, oldEnough, attemptOther1.ID)) t.Run("returns the transaction if it is unconfirmed with an attempt that is older than gasBumpThreshold blocks", func(t *testing.T) { - etxs, err := ec.FindTxsRequiringRebroadcast(testutils.Context(t), lggr, evmFromAddress, currentHead, gasBumpThreshold, 10, 0, &cltest.FixtureChainID) + etxs, err := ec.FindTxsRequiringRebroadcast(tests.Context(t), lggr, evmFromAddress, currentHead, gasBumpThreshold, 10, 0, &cltest.FixtureChainID) require.NoError(t, err) require.Len(t, etxs, 2) @@ -1475,7 +1479,7 @@ func TestEthConfirmer_FindTxsRequiringRebroadcast(t *testing.T) { }) t.Run("returns nothing if threshold is zero", func(t *testing.T) { - etxs, err := ec.FindTxsRequiringRebroadcast(testutils.Context(t), lggr, evmFromAddress, currentHead, 0, 10, 0, &cltest.FixtureChainID) + etxs, err := ec.FindTxsRequiringRebroadcast(tests.Context(t), lggr, evmFromAddress, currentHead, 0, 10, 0, &cltest.FixtureChainID) require.NoError(t, err) require.Len(t, etxs, 0) @@ -1489,13 +1493,13 @@ func TestEthConfirmer_FindTxsRequiringRebroadcast(t *testing.T) { // etxWithoutAttempts (nonce 5) // etx3 (nonce 6) - ready for bump // etx4 (nonce 7) - ready for bump - etxs, err := ec.FindTxsRequiringRebroadcast(testutils.Context(t), lggr, evmFromAddress, currentHead, gasBumpThreshold, 4, 0, &cltest.FixtureChainID) + etxs, err := ec.FindTxsRequiringRebroadcast(tests.Context(t), lggr, evmFromAddress, currentHead, gasBumpThreshold, 4, 0, &cltest.FixtureChainID) require.NoError(t, err) require.Len(t, etxs, 1) // returns etxWithoutAttempts only - eligible for gas bumping because it technically doesn't have any attempts within gasBumpThreshold blocks assert.Equal(t, etxWithoutAttempts.ID, etxs[0].ID) - etxs, err = ec.FindTxsRequiringRebroadcast(testutils.Context(t), lggr, evmFromAddress, currentHead, gasBumpThreshold, 5, 0, &cltest.FixtureChainID) + etxs, err = ec.FindTxsRequiringRebroadcast(tests.Context(t), lggr, evmFromAddress, currentHead, gasBumpThreshold, 5, 0, &cltest.FixtureChainID) require.NoError(t, err) require.Len(t, etxs, 2) // includes etxWithoutAttempts, etx3 and etx4 @@ -1503,7 +1507,7 @@ func TestEthConfirmer_FindTxsRequiringRebroadcast(t *testing.T) { assert.Equal(t, etx3.ID, etxs[1].ID) // Zero limit disables it - etxs, err = ec.FindTxsRequiringRebroadcast(testutils.Context(t), lggr, evmFromAddress, currentHead, gasBumpThreshold, 0, 0, &cltest.FixtureChainID) + etxs, err = ec.FindTxsRequiringRebroadcast(tests.Context(t), lggr, evmFromAddress, currentHead, gasBumpThreshold, 0, 0, &cltest.FixtureChainID) require.NoError(t, err) require.Len(t, etxs, 2) // includes etxWithoutAttempts, etx3 and etx4 @@ -1524,7 +1528,7 @@ func TestEthConfirmer_FindTxsRequiringRebroadcast(t *testing.T) { dbAttempt.FromTxAttempt(&aOther) require.NoError(t, db.Get(&dbAttempt, `UPDATE evm.tx_attempts SET broadcast_before_block_num=$1 WHERE id=$2 RETURNING *`, oldEnough, aOther.ID)) - etxs, err := ec.FindTxsRequiringRebroadcast(testutils.Context(t), lggr, evmFromAddress, currentHead, gasBumpThreshold, 6, 0, &cltest.FixtureChainID) + etxs, err := ec.FindTxsRequiringRebroadcast(tests.Context(t), lggr, evmFromAddress, currentHead, gasBumpThreshold, 6, 0, &cltest.FixtureChainID) require.NoError(t, err) require.Len(t, etxs, 3) // includes etxWithoutAttempts, etx3 and etx4 @@ -1539,7 +1543,7 @@ func TestEthConfirmer_FindTxsRequiringRebroadcast(t *testing.T) { require.NoError(t, txStore.InsertTxAttempt(ctx, &attempt3_2)) t.Run("returns the transaction if it is unconfirmed with two attempts that are older than gasBumpThreshold blocks", func(t *testing.T) { - etxs, err := ec.FindTxsRequiringRebroadcast(testutils.Context(t), lggr, evmFromAddress, currentHead, gasBumpThreshold, 10, 0, &cltest.FixtureChainID) + etxs, err := ec.FindTxsRequiringRebroadcast(tests.Context(t), lggr, evmFromAddress, currentHead, gasBumpThreshold, 10, 0, &cltest.FixtureChainID) require.NoError(t, err) require.Len(t, etxs, 3) @@ -1554,7 +1558,7 @@ func TestEthConfirmer_FindTxsRequiringRebroadcast(t *testing.T) { require.NoError(t, txStore.InsertTxAttempt(ctx, &attempt3_3)) t.Run("does not return the transaction if it has some older but one newer attempt", func(t *testing.T) { - etxs, err := ec.FindTxsRequiringRebroadcast(testutils.Context(t), lggr, evmFromAddress, currentHead, gasBumpThreshold, 10, 0, &cltest.FixtureChainID) + etxs, err := ec.FindTxsRequiringRebroadcast(tests.Context(t), lggr, evmFromAddress, currentHead, gasBumpThreshold, 10, 0, &cltest.FixtureChainID) require.NoError(t, err) require.Len(t, etxs, 2) @@ -1591,7 +1595,7 @@ func TestEthConfirmer_FindTxsRequiringRebroadcast(t *testing.T) { require.NoError(t, txStore.InsertTxAttempt(ctx, &attempt6_2)) t.Run("returns unique attempts requiring resubmission due to insufficient eth, ordered by nonce asc", func(t *testing.T) { - etxs, err := ec.FindTxsRequiringRebroadcast(testutils.Context(t), lggr, evmFromAddress, currentHead, gasBumpThreshold, 10, 0, &cltest.FixtureChainID) + etxs, err := ec.FindTxsRequiringRebroadcast(tests.Context(t), lggr, evmFromAddress, currentHead, gasBumpThreshold, 10, 0, &cltest.FixtureChainID) require.NoError(t, err) require.Len(t, etxs, 4) @@ -1606,7 +1610,7 @@ func TestEthConfirmer_FindTxsRequiringRebroadcast(t *testing.T) { }) t.Run("applies limit", func(t *testing.T) { - etxs, err := ec.FindTxsRequiringRebroadcast(testutils.Context(t), lggr, evmFromAddress, currentHead, gasBumpThreshold, 10, 2, &cltest.FixtureChainID) + etxs, err := ec.FindTxsRequiringRebroadcast(tests.Context(t), lggr, evmFromAddress, currentHead, gasBumpThreshold, 10, 2, &cltest.FixtureChainID) require.NoError(t, err) require.Len(t, etxs, 2) @@ -1622,7 +1626,7 @@ func TestEthConfirmer_RebroadcastWhereNecessary_WithConnectivityCheck(t *testing lggr := logger.Test(t) db := pgtest.NewSqlxDB(t) - ethClient := evmtest.NewEthClientMockWithDefaultChain(t) + ethClient := testutils.NewEthClientMockWithDefaultChain(t) t.Run("should retry previous attempt if connectivity check failed for legacy transactions", func(t *testing.T) { cfg := configtest.NewGeneralConfig(t, func(c *chainlink.Config, s *chainlink.Secrets) { @@ -1632,7 +1636,7 @@ func TestEthConfirmer_RebroadcastWhereNecessary_WithConnectivityCheck(t *testing }) ccfg := evmtest.NewChainScopedConfig(t, cfg) - ctx := testutils.Context(t) + ctx := tests.Context(t) txStore := cltest.NewTestTxStore(t, db) ethKeyStore := cltest.NewKeyStore(t, db).Eth() _, fromAddress := cltest.MustInsertRandomKeyReturningState(t, ethKeyStore) @@ -1664,7 +1668,7 @@ func TestEthConfirmer_RebroadcastWhereNecessary_WithConnectivityCheck(t *testing // Send transaction and assume success. ethClient.On("SendTransactionReturnCode", mock.Anything, mock.Anything, fromAddress).Return(commonclient.Successful, nil).Once() - err := ec.RebroadcastWhereNecessary(testutils.Context(t), currentHead) + err := ec.RebroadcastWhereNecessary(tests.Context(t), currentHead) require.NoError(t, err) etx, err = txStore.FindTxWithAttempts(ctx, etx.ID) @@ -1680,7 +1684,7 @@ func TestEthConfirmer_RebroadcastWhereNecessary_WithConnectivityCheck(t *testing }) ccfg := evmtest.NewChainScopedConfig(t, cfg) - ctx := testutils.Context(t) + ctx := tests.Context(t) txStore := cltest.NewTestTxStore(t, db) ethKeyStore := cltest.NewKeyStore(t, db).Eth() _, fromAddress := cltest.MustInsertRandomKeyReturningState(t, ethKeyStore) @@ -1712,7 +1716,7 @@ func TestEthConfirmer_RebroadcastWhereNecessary_WithConnectivityCheck(t *testing // Send transaction and assume success. ethClient.On("SendTransactionReturnCode", mock.Anything, mock.Anything, fromAddress).Return(commonclient.Successful, nil).Once() - err := ec.RebroadcastWhereNecessary(testutils.Context(t), currentHead) + err := ec.RebroadcastWhereNecessary(tests.Context(t), currentHead) require.NoError(t, err) etx, err = txStore.FindTxWithAttempts(ctx, etx.ID) @@ -1729,9 +1733,9 @@ func TestEthConfirmer_RebroadcastWhereNecessary_MaxFeeScenario(t *testing.T) { c.EVM[0].GasEstimator.PriceMax = assets.GWei(500) }) txStore := cltest.NewTestTxStore(t, db) - ctx := testutils.Context(t) + ctx := tests.Context(t) - ethClient := evmtest.NewEthClientMockWithDefaultChain(t) + ethClient := testutils.NewEthClientMockWithDefaultChain(t) ethKeyStore := cltest.NewKeyStore(t, db).Eth() evmcfg := evmtest.NewChainScopedConfig(t, cfg) @@ -1775,7 +1779,7 @@ func TestEthConfirmer_RebroadcastWhereNecessary_MaxFeeScenario(t *testing.T) { }), fromAddress).Return(commonclient.ExceedsMaxFee, errors.New("tx fee (1.10 ether) exceeds the configured cap (1.00 ether)")).Once() // Do the thing - require.NoError(t, ec.RebroadcastWhereNecessary(testutils.Context(t), currentHead)) + require.NoError(t, ec.RebroadcastWhereNecessary(tests.Context(t), currentHead)) var err error etx, err = txStore.FindTxWithAttempts(ctx, etx.ID) require.NoError(t, err) @@ -1797,9 +1801,9 @@ func TestEthConfirmer_RebroadcastWhereNecessary(t *testing.T) { c.EVM[0].GasEstimator.PriceMax = assets.GWei(500) }) txStore := cltest.NewTestTxStore(t, db) - ctx := testutils.Context(t) + ctx := tests.Context(t) - ethClient := evmtest.NewEthClientMockWithDefaultChain(t) + ethClient := testutils.NewEthClientMockWithDefaultChain(t) ethKeyStore := cltest.NewKeyStore(t, db).Eth() evmcfg := evmtest.NewChainScopedConfig(t, cfg) @@ -1817,7 +1821,7 @@ func TestEthConfirmer_RebroadcastWhereNecessary(t *testing.T) { nonce := int64(0) t.Run("does nothing if no transactions require bumping", func(t *testing.T) { - require.NoError(t, ec.RebroadcastWhereNecessary(testutils.Context(t), currentHead)) + require.NoError(t, ec.RebroadcastWhereNecessary(tests.Context(t), currentHead)) }) originalBroadcastAt := time.Unix(1616509100, 0) @@ -1836,7 +1840,7 @@ func TestEthConfirmer_RebroadcastWhereNecessary(t *testing.T) { mock.Anything).Return(nil, errors.New("signing error")).Once() // Do the thing - err := ec.RebroadcastWhereNecessary(testutils.Context(t), currentHead) + err := ec.RebroadcastWhereNecessary(tests.Context(t), currentHead) require.Error(t, err) require.Contains(t, err.Error(), "signing error") @@ -1866,7 +1870,7 @@ func TestEthConfirmer_RebroadcastWhereNecessary(t *testing.T) { }), fromAddress).Return(commonclient.Fatal, errors.New("exceeds block gas limit")).Once() // Do the thing - require.NoError(t, ec.RebroadcastWhereNecessary(testutils.Context(t), currentHead)) + require.NoError(t, ec.RebroadcastWhereNecessary(tests.Context(t), currentHead)) var err error etx, err = txStore.FindTxWithAttempts(ctx, etx.ID) require.NoError(t, err) @@ -1875,7 +1879,7 @@ func TestEthConfirmer_RebroadcastWhereNecessary(t *testing.T) { }) var attempt1_2 txmgr.TxAttempt - ethClient = evmtest.NewEthClientMockWithDefaultChain(t) + ethClient = testutils.NewEthClientMockWithDefaultChain(t) ec.XXXTestSetClient(txmgr.NewEvmTxmClient(ethClient, nil)) t.Run("creates new attempt with higher gas price if transaction has an attempt older than threshold", func(t *testing.T) { @@ -1900,7 +1904,7 @@ func TestEthConfirmer_RebroadcastWhereNecessary(t *testing.T) { }), fromAddress).Return(commonclient.Successful, nil).Once() // Do the thing - require.NoError(t, ec.RebroadcastWhereNecessary(testutils.Context(t), currentHead)) + require.NoError(t, ec.RebroadcastWhereNecessary(tests.Context(t), currentHead)) var err error etx, err = txStore.FindTxWithAttempts(ctx, etx.ID) require.NoError(t, err) @@ -1916,7 +1920,7 @@ func TestEthConfirmer_RebroadcastWhereNecessary(t *testing.T) { t.Run("does nothing if there is an attempt without BroadcastBeforeBlockNum set", func(t *testing.T) { // Do the thing - require.NoError(t, ec.RebroadcastWhereNecessary(testutils.Context(t), currentHead)) + require.NoError(t, ec.RebroadcastWhereNecessary(tests.Context(t), currentHead)) var err error etx, err = txStore.FindTxWithAttempts(ctx, etx.ID) require.NoError(t, err) @@ -1946,7 +1950,7 @@ func TestEthConfirmer_RebroadcastWhereNecessary(t *testing.T) { }), fromAddress).Return(commonclient.Successful, fmt.Errorf("known transaction: %s", ethTx.Hash().Hex())).Once() // Do the thing - require.NoError(t, ec.RebroadcastWhereNecessary(testutils.Context(t), currentHead)) + require.NoError(t, ec.RebroadcastWhereNecessary(tests.Context(t), currentHead)) var err error etx, err = txStore.FindTxWithAttempts(ctx, etx.ID) require.NoError(t, err) @@ -1986,7 +1990,7 @@ func TestEthConfirmer_RebroadcastWhereNecessary(t *testing.T) { }), fromAddress).Return(commonclient.TransactionAlreadyKnown, errors.New("nonce too low")).Once() // Do the thing - require.NoError(t, ec.RebroadcastWhereNecessary(testutils.Context(t), currentHead)) + require.NoError(t, ec.RebroadcastWhereNecessary(tests.Context(t), currentHead)) var err error etx, err = txStore.FindTxWithAttempts(ctx, etx.ID) require.NoError(t, err) @@ -2038,7 +2042,7 @@ func TestEthConfirmer_RebroadcastWhereNecessary(t *testing.T) { }), fromAddress).Return(commonclient.Unknown, errors.New("some network error")).Once() // Do the thing - err := ec.RebroadcastWhereNecessary(testutils.Context(t), currentHead) + err := ec.RebroadcastWhereNecessary(tests.Context(t), currentHead) require.Error(t, err) require.Contains(t, err.Error(), "some network error") @@ -2065,7 +2069,7 @@ func TestEthConfirmer_RebroadcastWhereNecessary(t *testing.T) { return evmtypes.Nonce(tx.Nonce()) == n && expectedBumpedGasPrice.Cmp(tx.GasPrice()) == 0 }), fromAddress).Return(commonclient.Successful, nil).Once() - require.NoError(t, ec.RebroadcastWhereNecessary(testutils.Context(t), currentHead)) + require.NoError(t, ec.RebroadcastWhereNecessary(tests.Context(t), currentHead)) // Attempt marked "broadcast" etx2, err = txStore.FindTxWithAttempts(ctx, etx2.ID) @@ -2105,7 +2109,7 @@ func TestEthConfirmer_RebroadcastWhereNecessary(t *testing.T) { }), fromAddress).Return(commonclient.TransactionAlreadyKnown, errors.New("nonce too low")).Once() // Creates new attempt as normal if currentHead is not high enough - require.NoError(t, ec.RebroadcastWhereNecessary(testutils.Context(t), currentHead)) + require.NoError(t, ec.RebroadcastWhereNecessary(tests.Context(t), currentHead)) var err error etx2, err = txStore.FindTxWithAttempts(ctx, etx2.ID) require.NoError(t, err) @@ -2146,7 +2150,7 @@ func TestEthConfirmer_RebroadcastWhereNecessary(t *testing.T) { }), fromAddress).Return(commonclient.Successful, errors.New("replacement transaction underpriced")).Once() // Do the thing - require.NoError(t, ec.RebroadcastWhereNecessary(testutils.Context(t), currentHead)) + require.NoError(t, ec.RebroadcastWhereNecessary(tests.Context(t), currentHead)) var err error etx3, err = txStore.FindTxWithAttempts(ctx, etx3.ID) require.NoError(t, err) @@ -2183,7 +2187,7 @@ func TestEthConfirmer_RebroadcastWhereNecessary(t *testing.T) { }), fromAddress).Return(commonclient.Successful, fmt.Errorf("known transaction: %s", ethTx.Hash().Hex())).Once() // Do the thing - require.NoError(t, ec.RebroadcastWhereNecessary(testutils.Context(t), currentHead)) + require.NoError(t, ec.RebroadcastWhereNecessary(tests.Context(t), currentHead)) var err error etx3, err = txStore.FindTxWithAttempts(ctx, etx3.ID) require.NoError(t, err) @@ -2222,7 +2226,7 @@ func TestEthConfirmer_RebroadcastWhereNecessary(t *testing.T) { }), fromAddress).Return(commonclient.Successful, errors.New(temporarilyUnderpricedError)).Once() // Do the thing - require.NoError(t, ec.RebroadcastWhereNecessary(testutils.Context(t), currentHead)) + require.NoError(t, ec.RebroadcastWhereNecessary(tests.Context(t), currentHead)) var err error etx3, err = txStore.FindTxWithAttempts(ctx, etx3.ID) require.NoError(t, err) @@ -2251,7 +2255,7 @@ func TestEthConfirmer_RebroadcastWhereNecessary(t *testing.T) { }), fromAddress).Return(commonclient.Successful, errors.New("already known")).Once() // we already submitted at this price, now it's time to bump and submit again but since we simply resubmitted rather than increasing gas price, geth already knows about this tx // Do the thing - require.NoError(t, ec2.RebroadcastWhereNecessary(testutils.Context(t), currentHead)) + require.NoError(t, ec2.RebroadcastWhereNecessary(tests.Context(t), currentHead)) var err error etx3, err = txStore.FindTxWithAttempts(ctx, etx3.ID) require.NoError(t, err) @@ -2281,7 +2285,7 @@ func TestEthConfirmer_RebroadcastWhereNecessary(t *testing.T) { }), fromAddress).Return(commonclient.Successful, errors.New("already known")).Once() // we already submitted at this price, now it's time to bump and submit again but since we simply resubmitted rather than increasing gas price, geth already knows about this tx // Do the thing - require.NoError(t, ec2.RebroadcastWhereNecessary(testutils.Context(t), currentHead)) + require.NoError(t, ec2.RebroadcastWhereNecessary(tests.Context(t), currentHead)) var err error etx3, err = txStore.FindTxWithAttempts(ctx, etx3.ID) require.NoError(t, err) @@ -2318,7 +2322,7 @@ func TestEthConfirmer_RebroadcastWhereNecessary(t *testing.T) { ethClient.On("SendTransactionReturnCode", mock.Anything, mock.MatchedBy(func(tx *types.Transaction) bool { return evmtypes.Nonce(tx.Nonce()) == *etx4.Sequence && gasTipCap.ToInt().Cmp(tx.GasTipCap()) == 0 }), fromAddress).Return(commonclient.Successful, nil).Once() - require.NoError(t, ec.RebroadcastWhereNecessary(testutils.Context(t), currentHead)) + require.NoError(t, ec.RebroadcastWhereNecessary(tests.Context(t), currentHead)) var err error etx4, err = txStore.FindTxWithAttempts(ctx, etx4.ID) require.NoError(t, err) @@ -2349,7 +2353,7 @@ func TestEthConfirmer_RebroadcastWhereNecessary(t *testing.T) { return evmtypes.Nonce(tx.Nonce()) == *etx4.Sequence && attempt4_2.Hash.String() == tx.Hash().String() }), fromAddress).Return(commonclient.Successful, nil).Once() - require.NoError(t, ec2.RebroadcastWhereNecessary(testutils.Context(t), currentHead)) + require.NoError(t, ec2.RebroadcastWhereNecessary(tests.Context(t), currentHead)) var err error etx4, err = txStore.FindTxWithAttempts(ctx, etx4.ID) require.NoError(t, err) @@ -2386,7 +2390,7 @@ func TestEthConfirmer_RebroadcastWhereNecessary(t *testing.T) { }), fromAddress).Return(commonclient.Successful, errors.New("replacement transaction underpriced")).Once() // Do it - require.NoError(t, ec.RebroadcastWhereNecessary(testutils.Context(t), currentHead)) + require.NoError(t, ec.RebroadcastWhereNecessary(tests.Context(t), currentHead)) var err error etx4, err = txStore.FindTxWithAttempts(ctx, etx4.ID) require.NoError(t, err) @@ -2427,7 +2431,7 @@ func TestEthConfirmer_RebroadcastWhereNecessary_TerminallyUnderpriced_ThenGoesTh nonce := int64(0) t.Run("terminally underpriced transaction with in_progress attempt is retried with more gas", func(t *testing.T) { - ethClient := evmtest.NewEthClientMockWithDefaultChain(t) + ethClient := testutils.NewEthClientMockWithDefaultChain(t) ec := newEthConfirmer(t, txStore, ethClient, cfg, evmcfg, kst, nil) originalBroadcastAt := time.Unix(1616509100, 0) @@ -2447,11 +2451,11 @@ func TestEthConfirmer_RebroadcastWhereNecessary_TerminallyUnderpriced_ThenGoesTh kst.On("SignTx", mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return( signedTx, nil, ).Once() - require.NoError(t, ec.RebroadcastWhereNecessary(testutils.Context(t), currentHead)) + require.NoError(t, ec.RebroadcastWhereNecessary(tests.Context(t), currentHead)) }) t.Run("multiple gas bumps with existing broadcast attempts are retried with more gas until success in legacy mode", func(t *testing.T) { - ethClient := evmtest.NewEthClientMockWithDefaultChain(t) + ethClient := testutils.NewEthClientMockWithDefaultChain(t) ec := newEthConfirmer(t, txStore, ethClient, cfg, evmcfg, kst, nil) etx := cltest.MustInsertUnconfirmedEthTxWithBroadcastLegacyAttempt(t, txStore, nonce, fromAddress) @@ -2475,15 +2479,15 @@ func TestEthConfirmer_RebroadcastWhereNecessary_TerminallyUnderpriced_ThenGoesTh ).Run(func(args mock.Arguments) { unsignedLegacyTx := args.Get(2).(*types.Transaction) // Use the real keystore to do the actual signing - thisSignedLegacyTx, err := ethKeyStore.SignTx(testutils.Context(t), fromAddress, unsignedLegacyTx, testutils.FixtureChainID) + thisSignedLegacyTx, err := ethKeyStore.SignTx(tests.Context(t), fromAddress, unsignedLegacyTx, testutils.FixtureChainID) require.NoError(t, err) *signedLegacyTx = *thisSignedLegacyTx }).Times(4) // 3 failures 1 success - require.NoError(t, ec.RebroadcastWhereNecessary(testutils.Context(t), currentHead)) + require.NoError(t, ec.RebroadcastWhereNecessary(tests.Context(t), currentHead)) }) t.Run("multiple gas bumps with existing broadcast attempts are retried with more gas until success in EIP-1559 mode", func(t *testing.T) { - ethClient := evmtest.NewEthClientMockWithDefaultChain(t) + ethClient := testutils.NewEthClientMockWithDefaultChain(t) ec := newEthConfirmer(t, txStore, ethClient, cfg, evmcfg, kst, nil) etx := mustInsertUnconfirmedEthTxWithBroadcastDynamicFeeAttempt(t, txStore, nonce, fromAddress) @@ -2507,11 +2511,11 @@ func TestEthConfirmer_RebroadcastWhereNecessary_TerminallyUnderpriced_ThenGoesTh ).Run(func(args mock.Arguments) { unsignedDxFeeTx := args.Get(2).(*types.Transaction) // Use the real keystore to do the actual signing - thisSignedDxFeeTx, err := ethKeyStore.SignTx(testutils.Context(t), fromAddress, unsignedDxFeeTx, testutils.FixtureChainID) + thisSignedDxFeeTx, err := ethKeyStore.SignTx(tests.Context(t), fromAddress, unsignedDxFeeTx, testutils.FixtureChainID) require.NoError(t, err) *signedDxFeeTx = *thisSignedDxFeeTx }).Times(4) // 3 failures 1 success - require.NoError(t, ec.RebroadcastWhereNecessary(testutils.Context(t), currentHead)) + require.NoError(t, ec.RebroadcastWhereNecessary(tests.Context(t), currentHead)) }) } @@ -2519,14 +2523,14 @@ func TestEthConfirmer_RebroadcastWhereNecessary_WhenOutOfEth(t *testing.T) { t.Parallel() db := pgtest.NewSqlxDB(t) txStore := cltest.NewTestTxStore(t, db) - ctx := testutils.Context(t) + ctx := tests.Context(t) - ethClient := evmtest.NewEthClientMockWithDefaultChain(t) + ethClient := testutils.NewEthClientMockWithDefaultChain(t) ethKeyStore := cltest.NewKeyStore(t, db).Eth() _, fromAddress := cltest.MustInsertRandomKeyReturningState(t, ethKeyStore) - _, err := ethKeyStore.EnabledKeysForChain(testutils.Context(t), testutils.FixtureChainID) + _, err := ethKeyStore.EnabledKeysForChain(tests.Context(t), testutils.FixtureChainID) require.NoError(t, err) require.NoError(t, err) // keyStates, err := ethKeyStore.GetStatesForKeys(keys) @@ -2558,7 +2562,7 @@ func TestEthConfirmer_RebroadcastWhereNecessary_WhenOutOfEth(t *testing.T) { }), fromAddress).Return(commonclient.InsufficientFunds, insufficientEthError).Once() // Do the thing - require.NoError(t, ec.RebroadcastWhereNecessary(testutils.Context(t), currentHead)) + require.NoError(t, ec.RebroadcastWhereNecessary(tests.Context(t), currentHead)) etx, err = txStore.FindTxWithAttempts(ctx, etx.ID) require.NoError(t, err) @@ -2584,7 +2588,7 @@ func TestEthConfirmer_RebroadcastWhereNecessary_WhenOutOfEth(t *testing.T) { }), fromAddress).Return(commonclient.InsufficientFunds, insufficientEthError).Once() // Do the thing - require.NoError(t, ec.RebroadcastWhereNecessary(testutils.Context(t), currentHead)) + require.NoError(t, ec.RebroadcastWhereNecessary(tests.Context(t), currentHead)) etx, err = txStore.FindTxWithAttempts(ctx, etx.ID) require.NoError(t, err) @@ -2609,7 +2613,7 @@ func TestEthConfirmer_RebroadcastWhereNecessary_WhenOutOfEth(t *testing.T) { }), fromAddress).Return(commonclient.Successful, nil).Once() // Do the thing - require.NoError(t, ec.RebroadcastWhereNecessary(testutils.Context(t), currentHead)) + require.NoError(t, ec.RebroadcastWhereNecessary(tests.Context(t), currentHead)) etx, err = txStore.FindTxWithAttempts(ctx, etx.ID) require.NoError(t, err) @@ -2643,7 +2647,7 @@ func TestEthConfirmer_RebroadcastWhereNecessary_WhenOutOfEth(t *testing.T) { nonce++ } - require.NoError(t, ec.RebroadcastWhereNecessary(testutils.Context(t), currentHead)) + require.NoError(t, ec.RebroadcastWhereNecessary(tests.Context(t), currentHead)) var dbAttempts []txmgr.DbEthTxAttempt @@ -2657,40 +2661,40 @@ func TestEthConfirmer_EnsureConfirmedTransactionsInLongestChain(t *testing.T) { db := pgtest.NewSqlxDB(t) txStore := cltest.NewTestTxStore(t, db) - ctx := testutils.Context(t) + ctx := tests.Context(t) ethKeyStore := cltest.NewKeyStore(t, db).Eth() _, fromAddress := cltest.MustInsertRandomKeyReturningState(t, ethKeyStore) - ethClient := evmtest.NewEthClientMockWithDefaultChain(t) + ethClient := testutils.NewEthClientMockWithDefaultChain(t) gconfig, config := newTestChainScopedConfig(t) ec := newEthConfirmer(t, txStore, ethClient, gconfig, config, ethKeyStore, nil) head := evmtypes.Head{ - Hash: utils.NewHash(), + Hash: testutils.NewHash(), Number: 10, Parent: &evmtypes.Head{ - Hash: utils.NewHash(), + Hash: testutils.NewHash(), Number: 9, Parent: &evmtypes.Head{ Number: 8, - Hash: utils.NewHash(), + Hash: testutils.NewHash(), Parent: nil, }, }, } t.Run("does nothing if there aren't any transactions", func(t *testing.T) { - require.NoError(t, ec.EnsureConfirmedTransactionsInLongestChain(testutils.Context(t), &head)) + require.NoError(t, ec.EnsureConfirmedTransactionsInLongestChain(tests.Context(t), &head)) }) t.Run("does nothing to unconfirmed transactions", func(t *testing.T) { etx := cltest.MustInsertUnconfirmedEthTxWithBroadcastLegacyAttempt(t, txStore, 0, fromAddress) // Do the thing - require.NoError(t, ec.EnsureConfirmedTransactionsInLongestChain(testutils.Context(t), &head)) + require.NoError(t, ec.EnsureConfirmedTransactionsInLongestChain(tests.Context(t), &head)) etx, err := txStore.FindTxWithAttempts(ctx, etx.ID) require.NoError(t, err) @@ -2702,7 +2706,7 @@ func TestEthConfirmer_EnsureConfirmedTransactionsInLongestChain(t *testing.T) { mustInsertEthReceipt(t, txStore, head.Number, head.Hash, etx.TxAttempts[0].Hash) // Do the thing - require.NoError(t, ec.EnsureConfirmedTransactionsInLongestChain(testutils.Context(t), &head)) + require.NoError(t, ec.EnsureConfirmedTransactionsInLongestChain(tests.Context(t), &head)) etx, err := txStore.FindTxWithAttempts(ctx, etx.ID) require.NoError(t, err) @@ -2712,10 +2716,10 @@ func TestEthConfirmer_EnsureConfirmedTransactionsInLongestChain(t *testing.T) { t.Run("does nothing to confirmed transactions that only have receipts older than the start of the chain", func(t *testing.T) { etx := cltest.MustInsertConfirmedEthTxWithLegacyAttempt(t, txStore, 3, 1, fromAddress) // Add receipt that is older than the lowest block of the chain - mustInsertEthReceipt(t, txStore, head.Parent.Parent.Number-1, utils.NewHash(), etx.TxAttempts[0].Hash) + mustInsertEthReceipt(t, txStore, head.Parent.Parent.Number-1, testutils.NewHash(), etx.TxAttempts[0].Hash) // Do the thing - require.NoError(t, ec.EnsureConfirmedTransactionsInLongestChain(testutils.Context(t), &head)) + require.NoError(t, ec.EnsureConfirmedTransactionsInLongestChain(tests.Context(t), &head)) etx, err := txStore.FindTxWithAttempts(ctx, etx.ID) require.NoError(t, err) @@ -2726,7 +2730,7 @@ func TestEthConfirmer_EnsureConfirmedTransactionsInLongestChain(t *testing.T) { etx := cltest.MustInsertConfirmedEthTxWithLegacyAttempt(t, txStore, 4, 1, fromAddress) attempt := etx.TxAttempts[0] // Include one within head height but a different block hash - mustInsertEthReceipt(t, txStore, head.Parent.Number, utils.NewHash(), attempt.Hash) + mustInsertEthReceipt(t, txStore, head.Parent.Number, testutils.NewHash(), attempt.Hash) ethClient.On("SendTransactionReturnCode", mock.Anything, mock.MatchedBy(func(tx *types.Transaction) bool { atx, err := txmgr.GetGethSignedTx(attempt.SignedRawTx) @@ -2736,7 +2740,7 @@ func TestEthConfirmer_EnsureConfirmedTransactionsInLongestChain(t *testing.T) { }), fromAddress).Return(commonclient.Successful, nil).Once() // Do the thing - require.NoError(t, ec.EnsureConfirmedTransactionsInLongestChain(testutils.Context(t), &head)) + require.NoError(t, ec.EnsureConfirmedTransactionsInLongestChain(tests.Context(t), &head)) etx, err := txStore.FindTxWithAttempts(ctx, etx.ID) require.NoError(t, err) @@ -2751,15 +2755,15 @@ func TestEthConfirmer_EnsureConfirmedTransactionsInLongestChain(t *testing.T) { attempt := etx.TxAttempts[0] attemptHash := attempt.Hash // Add receipt that is older than the lowest block of the chain - mustInsertEthReceipt(t, txStore, head.Parent.Parent.Number-1, utils.NewHash(), attemptHash) + mustInsertEthReceipt(t, txStore, head.Parent.Parent.Number-1, testutils.NewHash(), attemptHash) // Include one within head height but a different block hash - mustInsertEthReceipt(t, txStore, head.Parent.Number, utils.NewHash(), attemptHash) + mustInsertEthReceipt(t, txStore, head.Parent.Number, testutils.NewHash(), attemptHash) ethClient.On("SendTransactionReturnCode", mock.Anything, mock.Anything, fromAddress).Return( commonclient.Successful, nil).Once() // Do the thing - require.NoError(t, ec.EnsureConfirmedTransactionsInLongestChain(testutils.Context(t), &head)) + require.NoError(t, ec.EnsureConfirmedTransactionsInLongestChain(tests.Context(t), &head)) etx, err := txStore.FindTxWithAttempts(ctx, etx.ID) require.NoError(t, err) @@ -2783,9 +2787,9 @@ func TestEthConfirmer_EnsureConfirmedTransactionsInLongestChain(t *testing.T) { require.NoError(t, txStore.InsertTxAttempt(ctx, &attempt3)) // Receipt is within head height but a different block hash - mustInsertEthReceipt(t, txStore, head.Parent.Number, utils.NewHash(), attempt2.Hash) + mustInsertEthReceipt(t, txStore, head.Parent.Number, testutils.NewHash(), attempt2.Hash) // Receipt is within head height but a different block hash - mustInsertEthReceipt(t, txStore, head.Parent.Number, utils.NewHash(), attempt3.Hash) + mustInsertEthReceipt(t, txStore, head.Parent.Number, testutils.NewHash(), attempt3.Hash) ethClient.On("SendTransactionReturnCode", mock.Anything, mock.MatchedBy(func(tx *types.Transaction) bool { s, err := txmgr.GetGethSignedTx(attempt3.SignedRawTx) @@ -2794,7 +2798,7 @@ func TestEthConfirmer_EnsureConfirmedTransactionsInLongestChain(t *testing.T) { }), fromAddress).Return(commonclient.Successful, nil).Once() // Do the thing - require.NoError(t, ec.EnsureConfirmedTransactionsInLongestChain(testutils.Context(t), &head)) + require.NoError(t, ec.EnsureConfirmedTransactionsInLongestChain(tests.Context(t), &head)) etx, err := txStore.FindTxWithAttempts(ctx, etx.ID) require.NoError(t, err) @@ -2812,9 +2816,9 @@ func TestEthConfirmer_EnsureConfirmedTransactionsInLongestChain(t *testing.T) { etx := cltest.MustInsertConfirmedEthTxWithLegacyAttempt(t, txStore, 7, 1, fromAddress) attempt := etx.TxAttempts[0] // Add receipt that is higher than head - mustInsertEthReceipt(t, txStore, head.Number+1, utils.NewHash(), attempt.Hash) + mustInsertEthReceipt(t, txStore, head.Number+1, testutils.NewHash(), attempt.Hash) - require.NoError(t, ec.EnsureConfirmedTransactionsInLongestChain(testutils.Context(t), &head)) + require.NoError(t, ec.EnsureConfirmedTransactionsInLongestChain(tests.Context(t), &head)) etx, err := txStore.FindTxWithAttempts(ctx, etx.ID) require.NoError(t, err) @@ -2845,7 +2849,7 @@ func TestEthConfirmer_ForceRebroadcast(t *testing.T) { overrideGasLimit := uint64(20000) t.Run("rebroadcasts one eth_tx if it falls within in nonce range", func(t *testing.T) { - ethClient := evmtest.NewEthClientMockWithDefaultChain(t) + ethClient := testutils.NewEthClientMockWithDefaultChain(t) ec := newEthConfirmer(t, txStore, ethClient, gconfig, config, ethKeyStore, nil) ethClient.On("SendTransactionReturnCode", mock.Anything, mock.MatchedBy(func(tx *types.Transaction) bool { @@ -2856,11 +2860,11 @@ func TestEthConfirmer_ForceRebroadcast(t *testing.T) { tx.To().String() == etx1.ToAddress.String() }), mock.Anything).Return(commonclient.Successful, nil).Once() - require.NoError(t, ec.ForceRebroadcast(testutils.Context(t), []evmtypes.Nonce{1}, gasPriceWei, fromAddress, overrideGasLimit)) + require.NoError(t, ec.ForceRebroadcast(tests.Context(t), []evmtypes.Nonce{1}, gasPriceWei, fromAddress, overrideGasLimit)) }) t.Run("uses default gas limit if overrideGasLimit is 0", func(t *testing.T) { - ethClient := evmtest.NewEthClientMockWithDefaultChain(t) + ethClient := testutils.NewEthClientMockWithDefaultChain(t) ec := newEthConfirmer(t, txStore, ethClient, gconfig, config, ethKeyStore, nil) ethClient.On("SendTransactionReturnCode", mock.Anything, mock.MatchedBy(func(tx *types.Transaction) bool { @@ -2871,11 +2875,11 @@ func TestEthConfirmer_ForceRebroadcast(t *testing.T) { tx.To().String() == etx1.ToAddress.String() }), mock.Anything).Return(commonclient.Successful, nil).Once() - require.NoError(t, ec.ForceRebroadcast(testutils.Context(t), []evmtypes.Nonce{(1)}, gasPriceWei, fromAddress, 0)) + require.NoError(t, ec.ForceRebroadcast(tests.Context(t), []evmtypes.Nonce{(1)}, gasPriceWei, fromAddress, 0)) }) t.Run("rebroadcasts several eth_txes in nonce range", func(t *testing.T) { - ethClient := evmtest.NewEthClientMockWithDefaultChain(t) + ethClient := testutils.NewEthClientMockWithDefaultChain(t) ec := newEthConfirmer(t, txStore, ethClient, gconfig, config, ethKeyStore, nil) ethClient.On("SendTransactionReturnCode", mock.Anything, mock.MatchedBy(func(tx *types.Transaction) bool { @@ -2885,11 +2889,11 @@ func TestEthConfirmer_ForceRebroadcast(t *testing.T) { return tx.Nonce() == uint64(*etx2.Sequence) && tx.GasPrice().Int64() == gasPriceWei.Legacy.Int64() && tx.Gas() == overrideGasLimit }), mock.Anything).Return(commonclient.Successful, nil).Once() - require.NoError(t, ec.ForceRebroadcast(testutils.Context(t), []evmtypes.Nonce{(1), (2)}, gasPriceWei, fromAddress, overrideGasLimit)) + require.NoError(t, ec.ForceRebroadcast(tests.Context(t), []evmtypes.Nonce{(1), (2)}, gasPriceWei, fromAddress, overrideGasLimit)) }) t.Run("broadcasts zero transactions if eth_tx doesn't exist for that nonce", func(t *testing.T) { - ethClient := evmtest.NewEthClientMockWithDefaultChain(t) + ethClient := testutils.NewEthClientMockWithDefaultChain(t) ec := newEthConfirmer(t, txStore, ethClient, gconfig, config, ethKeyStore, nil) ethClient.On("SendTransactionReturnCode", mock.Anything, mock.MatchedBy(func(tx *types.Transaction) bool { @@ -2911,18 +2915,18 @@ func TestEthConfirmer_ForceRebroadcast(t *testing.T) { } nonces := []evmtypes.Nonce{(1), (2), (3), (4), (5)} - require.NoError(t, ec.ForceRebroadcast(testutils.Context(t), nonces, gasPriceWei, fromAddress, overrideGasLimit)) + require.NoError(t, ec.ForceRebroadcast(tests.Context(t), nonces, gasPriceWei, fromAddress, overrideGasLimit)) }) t.Run("zero transactions use default gas limit if override wasn't specified", func(t *testing.T) { - ethClient := evmtest.NewEthClientMockWithDefaultChain(t) + ethClient := testutils.NewEthClientMockWithDefaultChain(t) ec := newEthConfirmer(t, txStore, ethClient, gconfig, config, ethKeyStore, nil) ethClient.On("SendTransactionReturnCode", mock.Anything, mock.MatchedBy(func(tx *types.Transaction) bool { return tx.Nonce() == uint64(0) && tx.GasPrice().Int64() == gasPriceWei.Legacy.Int64() && tx.Gas() == config.EVM().GasEstimator().LimitDefault() }), mock.Anything).Return(commonclient.Successful, nil).Once() - require.NoError(t, ec.ForceRebroadcast(testutils.Context(t), []evmtypes.Nonce{(0)}, gasPriceWei, fromAddress, 0)) + require.NoError(t, ec.ForceRebroadcast(tests.Context(t), []evmtypes.Nonce{(0)}, gasPriceWei, fromAddress, 0)) }) } @@ -2937,19 +2941,19 @@ func TestEthConfirmer_ResumePendingRuns(t *testing.T) { _, fromAddress := cltest.MustInsertRandomKey(t, ethKeyStore) - ethClient := evmtest.NewEthClientMockWithDefaultChain(t) + ethClient := testutils.NewEthClientMockWithDefaultChain(t) evmcfg := evmtest.NewChainScopedConfig(t, config) head := evmtypes.Head{ - Hash: utils.NewHash(), + Hash: testutils.NewHash(), Number: 10, Parent: &evmtypes.Head{ - Hash: utils.NewHash(), + Hash: testutils.NewHash(), Number: 9, Parent: &evmtypes.Head{ Number: 8, - Hash: utils.NewHash(), + Hash: testutils.NewHash(), Parent: nil, }, }, @@ -2975,7 +2979,7 @@ func TestEthConfirmer_ResumePendingRuns(t *testing.T) { // It would only be in a state past suspended if the resume callback was called and callback_completed was set to TRUE pgtest.MustExec(t, db, `UPDATE evm.txes SET pipeline_task_run_id = $1, min_confirmations = $2, signal_callback = TRUE, callback_completed = TRUE WHERE id = $3`, &tr.ID, minConfirmations, etx.ID) - err := ec.ResumePendingTaskRuns(testutils.Context(t), &head) + err := ec.ResumePendingTaskRuns(tests.Context(t), &head) require.NoError(t, err) }) @@ -2993,7 +2997,7 @@ func TestEthConfirmer_ResumePendingRuns(t *testing.T) { pgtest.MustExec(t, db, `UPDATE evm.txes SET pipeline_task_run_id = $1, min_confirmations = $2, signal_callback = TRUE WHERE id = $3`, &tr.ID, minConfirmations, etx.ID) - err := ec.ResumePendingTaskRuns(testutils.Context(t), &head) + err := ec.ResumePendingTaskRuns(tests.Context(t), &head) require.NoError(t, err) }) @@ -3021,12 +3025,12 @@ func TestEthConfirmer_ResumePendingRuns(t *testing.T) { t.Cleanup(func() { <-done }) go func() { defer close(done) - err2 := ec.ResumePendingTaskRuns(testutils.Context(t), &head) + err2 := ec.ResumePendingTaskRuns(tests.Context(t), &head) if !assert.NoError(t, err2) { return } // Retrieve Tx to check if callback completed flag was set to true - updateTx, err3 := txStore.FindTxWithSequence(testutils.Context(t), fromAddress, nonce) + updateTx, err3 := txStore.FindTxWithSequence(tests.Context(t), fromAddress, nonce) if assert.NoError(t, err3) { assert.Equal(t, true, updateTx.CallbackCompleted) } @@ -3075,12 +3079,12 @@ func TestEthConfirmer_ResumePendingRuns(t *testing.T) { t.Cleanup(func() { <-done }) go func() { defer close(done) - err2 := ec.ResumePendingTaskRuns(testutils.Context(t), &head) + err2 := ec.ResumePendingTaskRuns(tests.Context(t), &head) if !assert.NoError(t, err2) { return } // Retrieve Tx to check if callback completed flag was set to true - updateTx, err3 := txStore.FindTxWithSequence(testutils.Context(t), fromAddress, nonce) + updateTx, err3 := txStore.FindTxWithSequence(tests.Context(t), fromAddress, nonce) if assert.NoError(t, err3) { assert.Equal(t, true, updateTx.CallbackCompleted) } @@ -3094,7 +3098,7 @@ func TestEthConfirmer_ResumePendingRuns(t *testing.T) { assert.Nil(t, data.value) - case <-testutils.AfterWaitTimeout(t): + case <-time.After(tests.WaitTimeout(t)): t.Fatal("no value received") } }) @@ -3112,11 +3116,11 @@ func TestEthConfirmer_ResumePendingRuns(t *testing.T) { mustInsertEthReceipt(t, txStore, head.Number-minConfirmations, head.Hash, etx.TxAttempts[0].Hash) pgtest.MustExec(t, db, `UPDATE evm.txes SET pipeline_task_run_id = $1, min_confirmations = $2, signal_callback = TRUE WHERE id = $3`, &tr.ID, minConfirmations, etx.ID) - err := ec.ResumePendingTaskRuns(testutils.Context(t), &head) + err := ec.ResumePendingTaskRuns(tests.Context(t), &head) require.Error(t, err) // Retrieve Tx to check if callback completed flag was left unchanged - updateTx, err := txStore.FindTxWithSequence(testutils.Context(t), fromAddress, nonce) + updateTx, err := txStore.FindTxWithSequence(tests.Context(t), fromAddress, nonce) require.NoError(t, err) require.Equal(t, false, updateTx.CallbackCompleted) }) @@ -3129,7 +3133,7 @@ func TestEthConfirmer_ProcessStuckTransactions(t *testing.T) { txStore := cltest.NewTestTxStore(t, db) ethKeyStore := cltest.NewKeyStore(t, db).Eth() _, fromAddress := cltest.MustInsertRandomKey(t, ethKeyStore) - ethClient := evmtest.NewEthClientMockWithDefaultChain(t) + ethClient := testutils.NewEthClientMockWithDefaultChain(t) ethClient.On("SendTransactionReturnCode", mock.Anything, mock.Anything, fromAddress).Return(commonclient.Successful, nil).Once() lggr := logger.Test(t) feeEstimator := gasmocks.NewEvmFeeEstimator(t) @@ -3157,7 +3161,7 @@ func TestEthConfirmer_ProcessStuckTransactions(t *testing.T) { ec := txmgr.NewEvmConfirmer(txStore, txmgr.NewEvmTxmClient(ethClient, nil), txmgr.NewEvmTxmConfig(evmcfg.EVM()), txmgr.NewEvmTxmFeeConfig(ge), evmcfg.EVM().Transactions(), cfg.Database(), ethKeyStore, txBuilder, lggr, stuckTxDetector) servicetest.Run(t, ec) - ctx := testutils.Context(t) + ctx := tests.Context(t) blockNum := int64(100) t.Run("detects and processes stuck transactions", func(t *testing.T) { @@ -3168,7 +3172,7 @@ func TestEthConfirmer_ProcessStuckTransactions(t *testing.T) { tx := mustInsertUnconfirmedTxWithBroadcastAttempts(t, txStore, nonce, fromAddress, autoPurgeMinAttempts, blockNum-int64(autoPurgeThreshold), marketGasPrice.Add(oneGwei)) head := evmtypes.Head{ - Hash: utils.NewHash(), + Hash: testutils.NewHash(), Number: blockNum, } ethClient.On("SequenceAt", mock.Anything, mock.Anything, mock.Anything).Return(evmtypes.Nonce(0), nil).Once() @@ -3192,7 +3196,7 @@ func TestEthConfirmer_ProcessStuckTransactions(t *testing.T) { require.Equal(t, bumpedFee.Legacy, latestAttempt.TxFee.Legacy) head = evmtypes.Head{ - Hash: utils.NewHash(), + Hash: testutils.NewHash(), Number: blockNum + 1, } ethClient.On("SequenceAt", mock.Anything, mock.Anything, mock.Anything).Return(evmtypes.Nonce(1), nil) @@ -3203,7 +3207,7 @@ func TestEthConfirmer_ProcessStuckTransactions(t *testing.T) { // First transaction confirmed *(elems[0].Result.(*evmtypes.Receipt)) = evmtypes.Receipt{ TxHash: latestAttempt.Hash, - BlockHash: utils.NewHash(), + BlockHash: testutils.NewHash(), BlockNumber: big.NewInt(blockNum + 1), TransactionIndex: uint(1), Status: uint64(1), diff --git a/core/chains/evm/txmgr/evm_tx_store_test.go b/core/chains/evm/txmgr/evm_tx_store_test.go index 23b8a9fde33..71b1bd52851 100644 --- a/core/chains/evm/txmgr/evm_tx_store_test.go +++ b/core/chains/evm/txmgr/evm_tx_store_test.go @@ -16,16 +16,17 @@ import ( commonconfig "github.com/smartcontractkit/chainlink-common/pkg/config" "github.com/smartcontractkit/chainlink-common/pkg/logger" "github.com/smartcontractkit/chainlink-common/pkg/sqlutil" + "github.com/smartcontractkit/chainlink-common/pkg/utils/tests" txmgrcommon "github.com/smartcontractkit/chainlink/v2/common/txmgr" txmgrtypes "github.com/smartcontractkit/chainlink/v2/common/txmgr/types" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/assets" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/gas" + "github.com/smartcontractkit/chainlink/v2/core/chains/evm/testutils" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/txmgr" evmtypes "github.com/smartcontractkit/chainlink/v2/core/chains/evm/types" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/utils" "github.com/smartcontractkit/chainlink/v2/core/internal/cltest" - "github.com/smartcontractkit/chainlink/v2/core/internal/testutils" "github.com/smartcontractkit/chainlink/v2/core/internal/testutils/configtest" "github.com/smartcontractkit/chainlink/v2/core/internal/testutils/evmtest" "github.com/smartcontractkit/chainlink/v2/core/internal/testutils/pgtest" @@ -37,7 +38,7 @@ func TestORM_TransactionsWithAttempts(t *testing.T) { db := pgtest.NewSqlxDB(t) txStore := cltest.NewTestTxStore(t, db) ethKeyStore := cltest.NewKeyStore(t, db).Eth() - ctx := testutils.Context(t) + ctx := tests.Context(t) _, from := cltest.MustInsertRandomKey(t, ethKeyStore) @@ -53,7 +54,7 @@ func TestORM_TransactionsWithAttempts(t *testing.T) { require.NoError(t, txStore.InsertTxAttempt(ctx, &attempt)) // tx 3 has no attempts - mustCreateUnstartedGeneratedTx(t, txStore, from, &cltest.FixtureChainID) + mustCreateUnstartedGeneratedTx(t, txStore, from, testutils.FixtureChainID) var count int err := db.Get(&count, `SELECT count(*) FROM evm.txes`) @@ -82,7 +83,7 @@ func TestORM_Transactions(t *testing.T) { db := pgtest.NewSqlxDB(t) txStore := cltest.NewTestTxStore(t, db) ethKeyStore := cltest.NewKeyStore(t, db).Eth() - ctx := testutils.Context(t) + ctx := tests.Context(t) _, from := cltest.MustInsertRandomKey(t, ethKeyStore) @@ -98,7 +99,7 @@ func TestORM_Transactions(t *testing.T) { require.NoError(t, txStore.InsertTxAttempt(ctx, &attempt)) // tx 3 has no attempts - mustCreateUnstartedGeneratedTx(t, txStore, from, &cltest.FixtureChainID) + mustCreateUnstartedGeneratedTx(t, txStore, from, testutils.FixtureChainID) var count int err := db.Get(&count, `SELECT count(*) FROM evm.txes`) @@ -122,7 +123,7 @@ func TestORM(t *testing.T) { keyStore := cltest.NewKeyStore(t, db) orm := cltest.NewTestTxStore(t, db) _, fromAddress := cltest.MustInsertRandomKey(t, keyStore.Eth()) - ctx := testutils.Context(t) + ctx := tests.Context(t) var etx txmgr.Tx t.Run("InsertTx", func(t *testing.T) { @@ -188,7 +189,7 @@ func TestORM_FindTxAttemptConfirmedByTxIDs(t *testing.T) { db := pgtest.NewSqlxDB(t) orm := cltest.NewTestTxStore(t, db) ethKeyStore := cltest.NewKeyStore(t, db).Eth() - ctx := testutils.Context(t) + ctx := tests.Context(t) _, from := cltest.MustInsertRandomKey(t, ethKeyStore) @@ -208,7 +209,7 @@ func TestORM_FindTxAttemptConfirmedByTxIDs(t *testing.T) { _, err := orm.InsertReceipt(ctx, &r.Receipt) require.NoError(t, err) // tx 3 has no attempts - mustCreateUnstartedGeneratedTx(t, orm, from, &cltest.FixtureChainID) + mustCreateUnstartedGeneratedTx(t, orm, from, testutils.FixtureChainID) cltest.MustInsertUnconfirmedEthTx(t, orm, 3, from) // tx4 cltest.MustInsertUnconfirmedEthTxWithBroadcastLegacyAttempt(t, orm, 4, from) // tx5 @@ -237,7 +238,7 @@ func TestORM_FindTxAttemptsRequiringResend(t *testing.T) { db := pgtest.NewSqlxDB(t) txStore := cltest.NewTestTxStore(t, db) - ctx := testutils.Context(t) + ctx := tests.Context(t) ethKeyStore := cltest.NewKeyStore(t, db).Eth() @@ -245,7 +246,7 @@ func TestORM_FindTxAttemptsRequiringResend(t *testing.T) { t.Run("returns nothing if there are no transactions", func(t *testing.T) { olderThan := time.Now() - attempts, err := txStore.FindTxAttemptsRequiringResend(testutils.Context(t), olderThan, 10, &cltest.FixtureChainID, fromAddress) + attempts, err := txStore.FindTxAttemptsRequiringResend(tests.Context(t), olderThan, 10, testutils.FixtureChainID, fromAddress) require.NoError(t, err) assert.Len(t, attempts, 0) }) @@ -288,14 +289,14 @@ func TestORM_FindTxAttemptsRequiringResend(t *testing.T) { t.Run("returns nothing if there are transactions from a different key", func(t *testing.T) { olderThan := time.Now() - attempts, err := txStore.FindTxAttemptsRequiringResend(testutils.Context(t), olderThan, 10, &cltest.FixtureChainID, utils.RandomAddress()) + attempts, err := txStore.FindTxAttemptsRequiringResend(tests.Context(t), olderThan, 10, testutils.FixtureChainID, utils.RandomAddress()) require.NoError(t, err) assert.Len(t, attempts, 0) }) t.Run("returns the highest price attempt for each transaction that was last broadcast before or on the given time", func(t *testing.T) { olderThan := time.Unix(1616509200, 0) - attempts, err := txStore.FindTxAttemptsRequiringResend(testutils.Context(t), olderThan, 0, &cltest.FixtureChainID, fromAddress) + attempts, err := txStore.FindTxAttemptsRequiringResend(tests.Context(t), olderThan, 0, testutils.FixtureChainID, fromAddress) require.NoError(t, err) assert.Len(t, attempts, 2) assert.Equal(t, attempt1_2.ID, attempts[0].ID) @@ -304,7 +305,7 @@ func TestORM_FindTxAttemptsRequiringResend(t *testing.T) { t.Run("returns the highest price attempt for EIP-1559 transactions", func(t *testing.T) { olderThan := time.Unix(1616509400, 0) - attempts, err := txStore.FindTxAttemptsRequiringResend(testutils.Context(t), olderThan, 0, &cltest.FixtureChainID, fromAddress) + attempts, err := txStore.FindTxAttemptsRequiringResend(tests.Context(t), olderThan, 0, testutils.FixtureChainID, fromAddress) require.NoError(t, err) assert.Len(t, attempts, 4) assert.Equal(t, attempt4_4.ID, attempts[3].ID) @@ -312,7 +313,7 @@ func TestORM_FindTxAttemptsRequiringResend(t *testing.T) { t.Run("applies limit", func(t *testing.T) { olderThan := time.Unix(1616509200, 0) - attempts, err := txStore.FindTxAttemptsRequiringResend(testutils.Context(t), olderThan, 1, &cltest.FixtureChainID, fromAddress) + attempts, err := txStore.FindTxAttemptsRequiringResend(tests.Context(t), olderThan, 1, testutils.FixtureChainID, fromAddress) require.NoError(t, err) assert.Len(t, attempts, 1) assert.Equal(t, attempt1_2.ID, attempts[0].ID) @@ -329,14 +330,14 @@ func TestORM_UpdateBroadcastAts(t *testing.T) { t.Run("does not update when broadcast_at is NULL", func(t *testing.T) { t.Parallel() - ctx := testutils.Context(t) - etx := mustCreateUnstartedGeneratedTx(t, orm, fromAddress, &cltest.FixtureChainID) + ctx := tests.Context(t) + etx := mustCreateUnstartedGeneratedTx(t, orm, fromAddress, testutils.FixtureChainID) var nullTime *time.Time assert.Equal(t, nullTime, etx.BroadcastAt) currTime := time.Now() - err := orm.UpdateBroadcastAts(testutils.Context(t), currTime, []int64{etx.ID}) + err := orm.UpdateBroadcastAts(tests.Context(t), currTime, []int64{etx.ID}) require.NoError(t, err) etx, err = orm.FindTxWithAttempts(ctx, etx.ID) @@ -347,7 +348,7 @@ func TestORM_UpdateBroadcastAts(t *testing.T) { t.Run("updates when broadcast_at is non-NULL", func(t *testing.T) { t.Parallel() - ctx := testutils.Context(t) + ctx := tests.Context(t) time1 := time.Now() etx := cltest.NewEthTx(fromAddress) etx.Sequence = new(evmtypes.Nonce) @@ -378,14 +379,14 @@ func TestORM_SetBroadcastBeforeBlockNum(t *testing.T) { _, fromAddress := cltest.MustInsertRandomKeyReturningState(t, ethKeyStore) etx := cltest.MustInsertUnconfirmedEthTxWithBroadcastLegacyAttempt(t, txStore, 0, fromAddress) chainID := ethClient.ConfiguredChainID() - ctx := testutils.Context(t) + ctx := tests.Context(t) headNum := int64(9000) var err error t.Run("saves block num to unconfirmed evm.tx_attempts without one", func(t *testing.T) { // Do the thing - require.NoError(t, txStore.SetBroadcastBeforeBlockNum(testutils.Context(t), headNum, chainID)) + require.NoError(t, txStore.SetBroadcastBeforeBlockNum(tests.Context(t), headNum, chainID)) etx, err = txStore.FindTxWithAttempts(ctx, etx.ID) require.NoError(t, err) @@ -402,7 +403,7 @@ func TestORM_SetBroadcastBeforeBlockNum(t *testing.T) { require.NoError(t, txStore.InsertTxAttempt(ctx, &attempt)) // Do the thing - require.NoError(t, txStore.SetBroadcastBeforeBlockNum(testutils.Context(t), headNum, chainID)) + require.NoError(t, txStore.SetBroadcastBeforeBlockNum(tests.Context(t), headNum, chainID)) etx, err = txStore.FindTxWithAttempts(ctx, etx.ID) require.NoError(t, err) @@ -413,12 +414,12 @@ func TestORM_SetBroadcastBeforeBlockNum(t *testing.T) { }) t.Run("only updates evm.tx_attempts for the current chain", func(t *testing.T) { - require.NoError(t, ethKeyStore.Add(testutils.Context(t), fromAddress, testutils.SimulatedChainID)) - require.NoError(t, ethKeyStore.Enable(testutils.Context(t), fromAddress, testutils.SimulatedChainID)) + require.NoError(t, ethKeyStore.Add(tests.Context(t), fromAddress, testutils.SimulatedChainID)) + require.NoError(t, ethKeyStore.Enable(tests.Context(t), fromAddress, testutils.SimulatedChainID)) etxThisChain := cltest.MustInsertUnconfirmedEthTxWithBroadcastLegacyAttempt(t, txStore, 1, fromAddress, cfg.EVM().ChainID()) etxOtherChain := cltest.MustInsertUnconfirmedEthTxWithBroadcastLegacyAttempt(t, txStore, 0, fromAddress, testutils.SimulatedChainID) - require.NoError(t, txStore.SetBroadcastBeforeBlockNum(testutils.Context(t), headNum, chainID)) + require.NoError(t, txStore.SetBroadcastBeforeBlockNum(tests.Context(t), headNum, chainID)) etxThisChain, err = txStore.FindTxWithAttempts(ctx, etxThisChain.ID) require.NoError(t, err) @@ -449,7 +450,7 @@ func TestORM_FindTxAttemptsConfirmedMissingReceipt(t *testing.T) { etx0 := mustInsertConfirmedMissingReceiptEthTxWithLegacyAttempt( t, txStore, 0, 1, originalBroadcastAt, fromAddress) - attempts, err := txStore.FindTxAttemptsConfirmedMissingReceipt(testutils.Context(t), ethClient.ConfiguredChainID()) + attempts, err := txStore.FindTxAttemptsConfirmedMissingReceipt(tests.Context(t), ethClient.ConfiguredChainID()) require.NoError(t, err) @@ -461,7 +462,7 @@ func TestORM_FindTxAttemptsConfirmedMissingReceipt(t *testing.T) { func TestORM_UpdateTxsUnconfirmed(t *testing.T) { t.Parallel() - ctx := testutils.Context(t) + ctx := tests.Context(t) db := pgtest.NewSqlxDB(t) txStore := cltest.NewTestTxStore(t, db) ethKeyStore := cltest.NewKeyStore(t, db).Eth() @@ -471,7 +472,7 @@ func TestORM_UpdateTxsUnconfirmed(t *testing.T) { etx0 := mustInsertConfirmedMissingReceiptEthTxWithLegacyAttempt( t, txStore, 0, 1, originalBroadcastAt, fromAddress) assert.Equal(t, etx0.State, txmgrcommon.TxConfirmedMissingReceipt) - require.NoError(t, txStore.UpdateTxsUnconfirmed(testutils.Context(t), []int64{etx0.ID})) + require.NoError(t, txStore.UpdateTxsUnconfirmed(tests.Context(t), []int64{etx0.ID})) etx0, err := txStore.FindTxWithAttempts(ctx, etx0.ID) require.NoError(t, err) @@ -491,7 +492,7 @@ func TestORM_FindTxAttemptsRequiringReceiptFetch(t *testing.T) { etx0 := mustInsertConfirmedMissingReceiptEthTxWithLegacyAttempt( t, txStore, 0, 1, originalBroadcastAt, fromAddress) - attempts, err := txStore.FindTxAttemptsRequiringReceiptFetch(testutils.Context(t), ethClient.ConfiguredChainID()) + attempts, err := txStore.FindTxAttemptsRequiringReceiptFetch(tests.Context(t), ethClient.ConfiguredChainID()) require.NoError(t, err) assert.Len(t, attempts, 1) assert.Len(t, etx0.TxAttempts, 1) @@ -506,7 +507,7 @@ func TestORM_SaveFetchedReceipts(t *testing.T) { ethKeyStore := cltest.NewKeyStore(t, db).Eth() ethClient := evmtest.NewEthClientMockWithDefaultChain(t) _, fromAddress := cltest.MustInsertRandomKeyReturningState(t, ethKeyStore) - ctx := testutils.Context(t) + ctx := tests.Context(t) originalBroadcastAt := time.Unix(1616509100, 0) etx0 := mustInsertConfirmedMissingReceiptEthTxWithLegacyAttempt( @@ -521,7 +522,7 @@ func TestORM_SaveFetchedReceipts(t *testing.T) { TransactionIndex: uint(1), } - err := txStore.SaveFetchedReceipts(testutils.Context(t), []*evmtypes.Receipt{&txmReceipt}, txmgrcommon.TxConfirmed, nil, ethClient.ConfiguredChainID()) + err := txStore.SaveFetchedReceipts(tests.Context(t), []*evmtypes.Receipt{&txmReceipt}, txmgrcommon.TxConfirmed, nil, ethClient.ConfiguredChainID()) require.NoError(t, err) etx0, err = txStore.FindTxWithAttempts(ctx, etx0.ID) @@ -540,7 +541,7 @@ func TestORM_MarkAllConfirmedMissingReceipt(t *testing.T) { ethKeyStore := cltest.NewKeyStore(t, db).Eth() _, fromAddress := cltest.MustInsertRandomKeyReturningState(t, ethKeyStore) ethClient := evmtest.NewEthClientMockWithDefaultChain(t) - ctx := testutils.Context(t) + ctx := tests.Context(t) // create transaction 0 (nonce 0) that is unconfirmed (block 7) etx0_blocknum := int64(7) @@ -555,7 +556,7 @@ func TestORM_MarkAllConfirmedMissingReceipt(t *testing.T) { assert.Equal(t, etx1.State, txmgrcommon.TxConfirmed) // mark transaction 0 confirmed_missing_receipt - err := txStore.MarkAllConfirmedMissingReceipt(testutils.Context(t), ethClient.ConfiguredChainID()) + err := txStore.MarkAllConfirmedMissingReceipt(tests.Context(t), ethClient.ConfiguredChainID()) require.NoError(t, err) etx0, err = txStore.FindTxWithAttempts(ctx, etx0.ID) require.NoError(t, err) @@ -582,7 +583,7 @@ func TestORM_PreloadTxes(t *testing.T) { attempts := []txmgr.TxAttempt{unloadedAttempt} - err := txStore.PreloadTxes(testutils.Context(t), attempts) + err := txStore.PreloadTxes(tests.Context(t), attempts) require.NoError(t, err) assert.Equal(t, etx.ID, attempts[0].Tx.ID) @@ -590,7 +591,7 @@ func TestORM_PreloadTxes(t *testing.T) { t.Run("returns nil when attempts slice is empty", func(t *testing.T) { emptyAttempts := []txmgr.TxAttempt{} - err := txStore.PreloadTxes(testutils.Context(t), emptyAttempts) + err := txStore.PreloadTxes(tests.Context(t), emptyAttempts) require.NoError(t, err) }) } @@ -608,7 +609,7 @@ func TestORM_GetInProgressTxAttempts(t *testing.T) { etx := mustInsertUnconfirmedEthTxWithAttemptState(t, txStore, int64(7), fromAddress, txmgrtypes.TxAttemptInProgress) // fetch attempt - attempts, err := txStore.GetInProgressTxAttempts(testutils.Context(t), fromAddress, ethClient.ConfiguredChainID()) + attempts, err := txStore.GetInProgressTxAttempts(tests.Context(t), fromAddress, ethClient.ConfiguredChainID()) require.NoError(t, err) assert.Len(t, attempts, 1) @@ -683,7 +684,7 @@ func TestORM_FindTxesPendingCallback(t *testing.T) { pgtest.MustExec(t, db, `UPDATE evm.txes SET min_confirmations = $1 WHERE id = $2`, minConfirmations, etx5.ID) // Search evm.txes table for tx requiring callback - receiptsPlus, err := txStore.FindTxesPendingCallback(testutils.Context(t), head.Number, ethClient.ConfiguredChainID()) + receiptsPlus, err := txStore.FindTxesPendingCallback(tests.Context(t), head.Number, ethClient.ConfiguredChainID()) require.NoError(t, err) assert.Len(t, receiptsPlus, 1) assert.Equal(t, tr1.ID, receiptsPlus[0].ID) @@ -699,7 +700,7 @@ func Test_FindTxWithIdempotencyKey(t *testing.T) { t.Run("returns nil if no results", func(t *testing.T) { idempotencyKey := "777" - etx, err := txStore.FindTxWithIdempotencyKey(testutils.Context(t), idempotencyKey, big.NewInt(0)) + etx, err := txStore.FindTxWithIdempotencyKey(tests.Context(t), idempotencyKey, big.NewInt(0)) require.NoError(t, err) assert.Nil(t, etx) }) @@ -711,7 +712,7 @@ func Test_FindTxWithIdempotencyKey(t *testing.T) { txRequestWithIdempotencyKey(idempotencyKey)) require.Equal(t, idempotencyKey, *etx.IdempotencyKey) - res, err := txStore.FindTxWithIdempotencyKey(testutils.Context(t), idempotencyKey, big.NewInt(0)) + res, err := txStore.FindTxWithIdempotencyKey(tests.Context(t), idempotencyKey, big.NewInt(0)) require.NoError(t, err) assert.Equal(t, etx.Sequence, res.Sequence) require.Equal(t, idempotencyKey, *res.IdempotencyKey) @@ -727,7 +728,7 @@ func TestORM_FindTxWithSequence(t *testing.T) { _, fromAddress := cltest.MustInsertRandomKeyReturningState(t, ethKeyStore) t.Run("returns nil if no results", func(t *testing.T) { - etx, err := txStore.FindTxWithSequence(testutils.Context(t), fromAddress, evmtypes.Nonce(777)) + etx, err := txStore.FindTxWithSequence(tests.Context(t), fromAddress, evmtypes.Nonce(777)) require.NoError(t, err) assert.Nil(t, etx) }) @@ -736,7 +737,7 @@ func TestORM_FindTxWithSequence(t *testing.T) { etx := cltest.MustInsertConfirmedEthTxWithLegacyAttempt(t, txStore, 777, 1, fromAddress) require.Equal(t, evmtypes.Nonce(777), *etx.Sequence) - res, err := txStore.FindTxWithSequence(testutils.Context(t), fromAddress, evmtypes.Nonce(777)) + res, err := txStore.FindTxWithSequence(tests.Context(t), fromAddress, evmtypes.Nonce(777)) require.NoError(t, err) assert.Equal(t, etx.Sequence, res.Sequence) }) @@ -749,7 +750,7 @@ func TestORM_UpdateTxForRebroadcast(t *testing.T) { txStore := cltest.NewTestTxStore(t, db) ethKeyStore := cltest.NewKeyStore(t, db).Eth() _, fromAddress := cltest.MustInsertRandomKeyReturningState(t, ethKeyStore) - ctx := testutils.Context(t) + ctx := tests.Context(t) t.Run("delete all receipts for eth transaction", func(t *testing.T) { etx := mustInsertConfirmedEthTxWithReceipt(t, txStore, fromAddress, 777, 1) @@ -764,7 +765,7 @@ func TestORM_UpdateTxForRebroadcast(t *testing.T) { assert.Len(t, etx.TxAttempts[0].Receipts, 1) // use exported method - err = txStore.UpdateTxForRebroadcast(testutils.Context(t), etx, attempt) + err = txStore.UpdateTxForRebroadcast(tests.Context(t), etx, attempt) require.NoError(t, err) resultTx, err := txStore.FindTxWithAttempts(ctx, etx.ID) @@ -792,7 +793,7 @@ func TestORM_IsTxFinalized(t *testing.T) { t.Run("confirmed tx not past finality_depth", func(t *testing.T) { confirmedAddr := cltest.MustGenerateRandomKey(t).Address tx := mustInsertConfirmedEthTxWithReceipt(t, txStore, confirmedAddr, 123, 1) - finalized, err := txStore.IsTxFinalized(testutils.Context(t), 2, tx.ID, ethClient.ConfiguredChainID()) + finalized, err := txStore.IsTxFinalized(tests.Context(t), 2, tx.ID, ethClient.ConfiguredChainID()) require.NoError(t, err) require.False(t, finalized) }) @@ -800,7 +801,7 @@ func TestORM_IsTxFinalized(t *testing.T) { t.Run("confirmed tx past finality_depth", func(t *testing.T) { confirmedAddr := cltest.MustGenerateRandomKey(t).Address tx := mustInsertConfirmedEthTxWithReceipt(t, txStore, confirmedAddr, 123, 1) - finalized, err := txStore.IsTxFinalized(testutils.Context(t), 10, tx.ID, ethClient.ConfiguredChainID()) + finalized, err := txStore.IsTxFinalized(tests.Context(t), 10, tx.ID, ethClient.ConfiguredChainID()) require.NoError(t, err) require.True(t, finalized) }) @@ -833,7 +834,7 @@ func TestORM_FindTransactionsConfirmedInBlockRange(t *testing.T) { etx_8 := mustInsertConfirmedEthTxWithReceipt(t, txStore, fromAddress, 700, 8) etx_9 := mustInsertConfirmedEthTxWithReceipt(t, txStore, fromAddress, 777, 9) - etxes, err := txStore.FindTransactionsConfirmedInBlockRange(testutils.Context(t), head.Number, 8, ethClient.ConfiguredChainID()) + etxes, err := txStore.FindTransactionsConfirmedInBlockRange(tests.Context(t), head.Number, 8, ethClient.ConfiguredChainID()) require.NoError(t, err) assert.Len(t, etxes, 2) assert.Equal(t, etxes[0].Sequence, etx_8.Sequence) @@ -851,14 +852,14 @@ func TestORM_FindEarliestUnconfirmedBroadcastTime(t *testing.T) { _, fromAddress := cltest.MustInsertRandomKeyReturningState(t, ethKeyStore) t.Run("no unconfirmed eth txes", func(t *testing.T) { - broadcastAt, err := txStore.FindEarliestUnconfirmedBroadcastTime(testutils.Context(t), ethClient.ConfiguredChainID()) + broadcastAt, err := txStore.FindEarliestUnconfirmedBroadcastTime(tests.Context(t), ethClient.ConfiguredChainID()) require.NoError(t, err) require.False(t, broadcastAt.Valid) }) t.Run("verify broadcast time", func(t *testing.T) { tx := cltest.MustInsertUnconfirmedEthTx(t, txStore, 123, fromAddress) - broadcastAt, err := txStore.FindEarliestUnconfirmedBroadcastTime(testutils.Context(t), ethClient.ConfiguredChainID()) + broadcastAt, err := txStore.FindEarliestUnconfirmedBroadcastTime(tests.Context(t), ethClient.ConfiguredChainID()) require.NoError(t, err) require.True(t, broadcastAt.Ptr().Equal(*tx.BroadcastAt)) }) @@ -875,7 +876,7 @@ func TestORM_FindEarliestUnconfirmedTxAttemptBlock(t *testing.T) { _, fromAddress2 := cltest.MustInsertRandomKeyReturningState(t, ethKeyStore) t.Run("no earliest unconfirmed tx block", func(t *testing.T) { - earliestBlock, err := txStore.FindEarliestUnconfirmedTxAttemptBlock(testutils.Context(t), ethClient.ConfiguredChainID()) + earliestBlock, err := txStore.FindEarliestUnconfirmedTxAttemptBlock(tests.Context(t), ethClient.ConfiguredChainID()) require.NoError(t, err) require.False(t, earliestBlock.Valid) }) @@ -884,10 +885,10 @@ func TestORM_FindEarliestUnconfirmedTxAttemptBlock(t *testing.T) { var blockNum int64 = 2 tx := mustInsertConfirmedMissingReceiptEthTxWithLegacyAttempt(t, txStore, 123, blockNum, time.Now(), fromAddress) _ = mustInsertConfirmedMissingReceiptEthTxWithLegacyAttempt(t, txStore, 123, blockNum, time.Now().Add(time.Minute), fromAddress2) - err := txStore.UpdateTxsUnconfirmed(testutils.Context(t), []int64{tx.ID}) + err := txStore.UpdateTxsUnconfirmed(tests.Context(t), []int64{tx.ID}) require.NoError(t, err) - earliestBlock, err := txStore.FindEarliestUnconfirmedTxAttemptBlock(testutils.Context(t), ethClient.ConfiguredChainID()) + earliestBlock, err := txStore.FindEarliestUnconfirmedTxAttemptBlock(tests.Context(t), ethClient.ConfiguredChainID()) require.NoError(t, err) require.True(t, earliestBlock.Valid) require.Equal(t, blockNum, earliestBlock.Int64) @@ -897,7 +898,7 @@ func TestORM_FindEarliestUnconfirmedTxAttemptBlock(t *testing.T) { func TestORM_SaveInsufficientEthAttempt(t *testing.T) { t.Parallel() - ctx := testutils.Context(t) + ctx := tests.Context(t) db := pgtest.NewSqlxDB(t) txStore := cltest.NewTestTxStore(t, db) ethKeyStore := cltest.NewKeyStore(t, db).Eth() @@ -909,7 +910,7 @@ func TestORM_SaveInsufficientEthAttempt(t *testing.T) { etx := mustInsertInProgressEthTxWithAttempt(t, txStore, 1, fromAddress) now := time.Now() - err = txStore.SaveInsufficientFundsAttempt(testutils.Context(t), defaultDuration, &etx.TxAttempts[0], now) + err = txStore.SaveInsufficientFundsAttempt(tests.Context(t), defaultDuration, &etx.TxAttempts[0], now) require.NoError(t, err) attempt, err := txStore.FindTxAttempt(ctx, etx.TxAttempts[0].Hash) @@ -921,7 +922,7 @@ func TestORM_SaveInsufficientEthAttempt(t *testing.T) { func TestORM_SaveSentAttempt(t *testing.T) { t.Parallel() - ctx := testutils.Context(t) + ctx := tests.Context(t) db := pgtest.NewSqlxDB(t) txStore := cltest.NewTestTxStore(t, db) ethKeyStore := cltest.NewKeyStore(t, db).Eth() @@ -934,7 +935,7 @@ func TestORM_SaveSentAttempt(t *testing.T) { require.Nil(t, etx.BroadcastAt) now := time.Now() - err = txStore.SaveSentAttempt(testutils.Context(t), defaultDuration, &etx.TxAttempts[0], now) + err = txStore.SaveSentAttempt(tests.Context(t), defaultDuration, &etx.TxAttempts[0], now) require.NoError(t, err) attempt, err := txStore.FindTxAttempt(ctx, etx.TxAttempts[0].Hash) @@ -946,7 +947,7 @@ func TestORM_SaveSentAttempt(t *testing.T) { func TestORM_SaveConfirmedMissingReceiptAttempt(t *testing.T) { t.Parallel() - ctx := testutils.Context(t) + ctx := tests.Context(t) db := pgtest.NewSqlxDB(t) txStore := cltest.NewTestTxStore(t, db) ethKeyStore := cltest.NewKeyStore(t, db).Eth() @@ -958,7 +959,7 @@ func TestORM_SaveConfirmedMissingReceiptAttempt(t *testing.T) { etx := mustInsertUnconfirmedEthTxWithAttemptState(t, txStore, 1, fromAddress, txmgrtypes.TxAttemptInProgress) now := time.Now() - err = txStore.SaveConfirmedMissingReceiptAttempt(testutils.Context(t), defaultDuration, &etx.TxAttempts[0], now) + err = txStore.SaveConfirmedMissingReceiptAttempt(tests.Context(t), defaultDuration, &etx.TxAttempts[0], now) require.NoError(t, err) etx, err := txStore.FindTxWithAttempts(ctx, etx.ID) @@ -971,7 +972,7 @@ func TestORM_SaveConfirmedMissingReceiptAttempt(t *testing.T) { func TestORM_DeleteInProgressAttempt(t *testing.T) { t.Parallel() - ctx := testutils.Context(t) + ctx := tests.Context(t) db := pgtest.NewSqlxDB(t) txStore := cltest.NewTestTxStore(t, db) ethKeyStore := cltest.NewKeyStore(t, db).Eth() @@ -981,7 +982,7 @@ func TestORM_DeleteInProgressAttempt(t *testing.T) { etx := mustInsertInProgressEthTxWithAttempt(t, txStore, 1, fromAddress) attempt := etx.TxAttempts[0] - err := txStore.DeleteInProgressAttempt(testutils.Context(t), etx.TxAttempts[0]) + err := txStore.DeleteInProgressAttempt(tests.Context(t), etx.TxAttempts[0]) require.NoError(t, err) nilResult, err := txStore.FindTxAttempt(ctx, attempt.Hash) @@ -993,7 +994,7 @@ func TestORM_DeleteInProgressAttempt(t *testing.T) { func TestORM_SaveInProgressAttempt(t *testing.T) { t.Parallel() - ctx := testutils.Context(t) + ctx := tests.Context(t) db := pgtest.NewSqlxDB(t) txStore := cltest.NewTestTxStore(t, db) ethKeyStore := cltest.NewKeyStore(t, db).Eth() @@ -1005,7 +1006,7 @@ func TestORM_SaveInProgressAttempt(t *testing.T) { attempt := cltest.NewLegacyEthTxAttempt(t, etx.ID) require.Equal(t, int64(0), attempt.ID) - err := txStore.SaveInProgressAttempt(testutils.Context(t), &attempt) + err := txStore.SaveInProgressAttempt(tests.Context(t), &attempt) require.NoError(t, err) attemptResult, err := txStore.FindTxAttempt(ctx, attempt.Hash) @@ -1021,7 +1022,7 @@ func TestORM_SaveInProgressAttempt(t *testing.T) { attempt.BroadcastBeforeBlockNum = nil attempt.State = txmgrtypes.TxAttemptInProgress - err := txStore.SaveInProgressAttempt(testutils.Context(t), &attempt) + err := txStore.SaveInProgressAttempt(tests.Context(t), &attempt) require.NoError(t, err) attemptResult, err := txStore.FindTxAttempt(ctx, attempt.Hash) @@ -1033,7 +1034,7 @@ func TestORM_SaveInProgressAttempt(t *testing.T) { func TestORM_FindTxsRequiringGasBump(t *testing.T) { t.Parallel() - ctx := testutils.Context(t) + ctx := tests.Context(t) db := pgtest.NewSqlxDB(t) txStore := cltest.NewTestTxStore(t, db) ethKeyStore := cltest.NewKeyStore(t, db).Eth() @@ -1044,7 +1045,7 @@ func TestORM_FindTxsRequiringGasBump(t *testing.T) { t.Run("gets txs requiring gas bump", func(t *testing.T) { etx := mustInsertUnconfirmedEthTxWithAttemptState(t, txStore, 1, fromAddress, txmgrtypes.TxAttemptBroadcast) - err := txStore.SetBroadcastBeforeBlockNum(testutils.Context(t), currentBlockNum, ethClient.ConfiguredChainID()) + err := txStore.SetBroadcastBeforeBlockNum(tests.Context(t), currentBlockNum, ethClient.ConfiguredChainID()) require.NoError(t, err) // this tx will require gas bump @@ -1057,13 +1058,13 @@ func TestORM_FindTxsRequiringGasBump(t *testing.T) { // this tx will not require gas bump mustInsertUnconfirmedEthTxWithAttemptState(t, txStore, 2, fromAddress, txmgrtypes.TxAttemptBroadcast) - err = txStore.SetBroadcastBeforeBlockNum(testutils.Context(t), currentBlockNum+1, ethClient.ConfiguredChainID()) + err = txStore.SetBroadcastBeforeBlockNum(tests.Context(t), currentBlockNum+1, ethClient.ConfiguredChainID()) require.NoError(t, err) // any tx broadcast <= 10 will require gas bump newBlock := int64(12) gasBumpThreshold := int64(2) - etxs, err := txStore.FindTxsRequiringGasBump(testutils.Context(t), fromAddress, newBlock, gasBumpThreshold, int64(0), ethClient.ConfiguredChainID()) + etxs, err := txStore.FindTxsRequiringGasBump(tests.Context(t), fromAddress, newBlock, gasBumpThreshold, int64(0), ethClient.ConfiguredChainID()) require.NoError(t, err) assert.Len(t, etxs, 1) assert.Equal(t, etx.ID, etxs[0].ID) @@ -1075,7 +1076,7 @@ func TestEthConfirmer_FindTxsRequiringResubmissionDueToInsufficientEth(t *testin db := pgtest.NewSqlxDB(t) txStore := cltest.NewTestTxStore(t, db) - ctx := testutils.Context(t) + ctx := tests.Context(t) ethKeyStore := cltest.NewKeyStore(t, db).Eth() @@ -1097,7 +1098,7 @@ func TestEthConfirmer_FindTxsRequiringResubmissionDueToInsufficientEth(t *testin mustInsertUnconfirmedEthTxWithInsufficientEthAttempt(t, txStore, 0, otherAddress) t.Run("returns all eth_txes with at least one attempt that is in insufficient_eth state", func(t *testing.T) { - etxs, err := txStore.FindTxsRequiringResubmissionDueToInsufficientFunds(testutils.Context(t), fromAddress, &cltest.FixtureChainID) + etxs, err := txStore.FindTxsRequiringResubmissionDueToInsufficientFunds(tests.Context(t), fromAddress, testutils.FixtureChainID) require.NoError(t, err) assert.Len(t, etxs, 3) @@ -1111,7 +1112,7 @@ func TestEthConfirmer_FindTxsRequiringResubmissionDueToInsufficientEth(t *testin }) t.Run("does not return eth_txes with different chain ID", func(t *testing.T) { - etxs, err := txStore.FindTxsRequiringResubmissionDueToInsufficientFunds(testutils.Context(t), fromAddress, big.NewInt(42)) + etxs, err := txStore.FindTxsRequiringResubmissionDueToInsufficientFunds(tests.Context(t), fromAddress, big.NewInt(42)) require.NoError(t, err) assert.Len(t, etxs, 0) @@ -1121,7 +1122,7 @@ func TestEthConfirmer_FindTxsRequiringResubmissionDueToInsufficientEth(t *testin pgtest.MustExec(t, db, `UPDATE evm.txes SET state='confirmed' WHERE id = $1`, etx1.ID) pgtest.MustExec(t, db, `UPDATE evm.txes SET state='fatal_error', nonce=NULL, error='foo', broadcast_at=NULL, initial_broadcast_at=NULL WHERE id = $1`, etx2.ID) - etxs, err := txStore.FindTxsRequiringResubmissionDueToInsufficientFunds(testutils.Context(t), fromAddress, &cltest.FixtureChainID) + etxs, err := txStore.FindTxsRequiringResubmissionDueToInsufficientFunds(tests.Context(t), fromAddress, testutils.FixtureChainID) require.NoError(t, err) assert.Len(t, etxs, 1) @@ -1136,7 +1137,7 @@ func TestORM_MarkOldTxesMissingReceiptAsErrored(t *testing.T) { db := pgtest.NewSqlxDB(t) txStore := cltest.NewTestTxStore(t, db) - ctx := testutils.Context(t) + ctx := tests.Context(t) ethKeyStore := cltest.NewKeyStore(t, db).Eth() ethClient := evmtest.NewEthClientMockWithDefaultChain(t) _, fromAddress := cltest.MustInsertRandomKeyReturningState(t, ethKeyStore) @@ -1146,7 +1147,7 @@ func TestORM_MarkOldTxesMissingReceiptAsErrored(t *testing.T) { t.Run("successfully mark errored transactions", func(t *testing.T) { etx := mustInsertConfirmedMissingReceiptEthTxWithLegacyAttempt(t, txStore, 1, 7, time.Now(), fromAddress) - err := txStore.MarkOldTxesMissingReceiptAsErrored(testutils.Context(t), 10, 2, ethClient.ConfiguredChainID()) + err := txStore.MarkOldTxesMissingReceiptAsErrored(tests.Context(t), 10, 2, ethClient.ConfiguredChainID()) require.NoError(t, err) etx, err = txStore.FindTxWithAttempts(ctx, etx.ID) @@ -1156,7 +1157,7 @@ func TestORM_MarkOldTxesMissingReceiptAsErrored(t *testing.T) { t.Run("successfully mark errored transactions w/ qopt passing in sql.Tx", func(t *testing.T) { etx := mustInsertConfirmedMissingReceiptEthTxWithLegacyAttempt(t, txStore, 1, 7, time.Now(), fromAddress) - err := txStore.MarkOldTxesMissingReceiptAsErrored(testutils.Context(t), 10, 2, ethClient.ConfiguredChainID()) + err := txStore.MarkOldTxesMissingReceiptAsErrored(tests.Context(t), 10, 2, ethClient.ConfiguredChainID()) require.NoError(t, err) // must run other query outside of postgres transaction so changes are committed @@ -1169,7 +1170,7 @@ func TestORM_MarkOldTxesMissingReceiptAsErrored(t *testing.T) { func TestORM_LoadEthTxesAttempts(t *testing.T) { t.Parallel() - ctx := testutils.Context(t) + ctx := tests.Context(t) db := pgtest.NewSqlxDB(t) txStore := cltest.NewTestTxStore(t, db) ethKeyStore := cltest.NewKeyStore(t, db).Eth() @@ -1222,7 +1223,7 @@ func TestORM_LoadEthTxesAttempts(t *testing.T) { func TestORM_SaveReplacementInProgressAttempt(t *testing.T) { t.Parallel() - ctx := testutils.Context(t) + ctx := tests.Context(t) db := pgtest.NewSqlxDB(t) txStore := cltest.NewTestTxStore(t, db) ethKeyStore := cltest.NewKeyStore(t, db).Eth() @@ -1233,7 +1234,7 @@ func TestORM_SaveReplacementInProgressAttempt(t *testing.T) { oldAttempt := etx.TxAttempts[0] newAttempt := cltest.NewDynamicFeeEthTxAttempt(t, etx.ID) - err := txStore.SaveReplacementInProgressAttempt(testutils.Context(t), oldAttempt, &newAttempt) + err := txStore.SaveReplacementInProgressAttempt(tests.Context(t), oldAttempt, &newAttempt) require.NoError(t, err) etx, err = txStore.FindTxWithAttempts(ctx, etx.ID) @@ -1256,14 +1257,14 @@ func TestORM_FindNextUnstartedTransactionFromAddress(t *testing.T) { t.Run("cannot find unstarted tx", func(t *testing.T) { mustInsertInProgressEthTxWithAttempt(t, txStore, 13, fromAddress) - resultEtx, err := txStore.FindNextUnstartedTransactionFromAddress(testutils.Context(t), fromAddress, ethClient.ConfiguredChainID()) + resultEtx, err := txStore.FindNextUnstartedTransactionFromAddress(tests.Context(t), fromAddress, ethClient.ConfiguredChainID()) assert.ErrorIs(t, err, sql.ErrNoRows) assert.Nil(t, resultEtx) }) t.Run("finds unstarted tx", func(t *testing.T) { - mustCreateUnstartedGeneratedTx(t, txStore, fromAddress, &cltest.FixtureChainID) - resultEtx, err := txStore.FindNextUnstartedTransactionFromAddress(testutils.Context(t), fromAddress, ethClient.ConfiguredChainID()) + mustCreateUnstartedGeneratedTx(t, txStore, fromAddress, testutils.FixtureChainID) + resultEtx, err := txStore.FindNextUnstartedTransactionFromAddress(tests.Context(t), fromAddress, ethClient.ConfiguredChainID()) require.NoError(t, err) assert.NotNil(t, resultEtx) }) @@ -1272,7 +1273,7 @@ func TestORM_FindNextUnstartedTransactionFromAddress(t *testing.T) { func TestORM_UpdateTxFatalError(t *testing.T) { t.Parallel() - ctx := testutils.Context(t) + ctx := tests.Context(t) db := pgtest.NewSqlxDB(t) txStore := cltest.NewTestTxStore(t, db) ethKeyStore := cltest.NewKeyStore(t, db).Eth() @@ -1284,7 +1285,7 @@ func TestORM_UpdateTxFatalError(t *testing.T) { etxPretendError := null.StringFrom("no more toilet paper") etx.Error = etxPretendError - err := txStore.UpdateTxFatalError(testutils.Context(t), &etx) + err := txStore.UpdateTxFatalError(tests.Context(t), &etx) require.NoError(t, err) etx, err = txStore.FindTxWithAttempts(ctx, etx.ID) require.NoError(t, err) @@ -1296,7 +1297,7 @@ func TestORM_UpdateTxFatalError(t *testing.T) { func TestORM_UpdateTxAttemptInProgressToBroadcast(t *testing.T) { t.Parallel() - ctx := testutils.Context(t) + ctx := tests.Context(t) db := pgtest.NewSqlxDB(t) txStore := cltest.NewTestTxStore(t, db) ethKeyStore := cltest.NewKeyStore(t, db).Eth() @@ -1311,7 +1312,7 @@ func TestORM_UpdateTxAttemptInProgressToBroadcast(t *testing.T) { i := int16(0) etx.BroadcastAt = &time1 etx.InitialBroadcastAt = &time1 - err := txStore.UpdateTxAttemptInProgressToBroadcast(testutils.Context(t), &etx, attempt, txmgrtypes.TxAttemptBroadcast) + err := txStore.UpdateTxAttemptInProgressToBroadcast(tests.Context(t), &etx, attempt, txmgrtypes.TxAttemptBroadcast) require.NoError(t, err) // Increment sequence i++ @@ -1327,7 +1328,7 @@ func TestORM_UpdateTxAttemptInProgressToBroadcast(t *testing.T) { func TestORM_UpdateTxUnstartedToInProgress(t *testing.T) { t.Parallel() - ctx := testutils.Context(t) + ctx := tests.Context(t) db := pgtest.NewSqlxDB(t) txStore := cltest.NewTestTxStore(t, db) ethKeyStore := cltest.NewKeyStore(t, db).Eth() @@ -1335,11 +1336,11 @@ func TestORM_UpdateTxUnstartedToInProgress(t *testing.T) { nonce := evmtypes.Nonce(123) t.Run("update successful", func(t *testing.T) { - etx := mustCreateUnstartedGeneratedTx(t, txStore, fromAddress, &cltest.FixtureChainID) + etx := mustCreateUnstartedGeneratedTx(t, txStore, fromAddress, testutils.FixtureChainID) etx.Sequence = &nonce attempt := cltest.NewLegacyEthTxAttempt(t, etx.ID) - err := txStore.UpdateTxUnstartedToInProgress(testutils.Context(t), &etx, &attempt) + err := txStore.UpdateTxUnstartedToInProgress(tests.Context(t), &etx, &attempt) require.NoError(t, err) etx, err = txStore.FindTxWithAttempts(ctx, etx.ID) @@ -1349,7 +1350,7 @@ func TestORM_UpdateTxUnstartedToInProgress(t *testing.T) { }) t.Run("update fails because tx is removed", func(t *testing.T) { - etx := mustCreateUnstartedGeneratedTx(t, txStore, fromAddress, &cltest.FixtureChainID) + etx := mustCreateUnstartedGeneratedTx(t, txStore, fromAddress, testutils.FixtureChainID) etx.Sequence = &nonce attempt := cltest.NewLegacyEthTxAttempt(t, etx.ID) @@ -1357,7 +1358,7 @@ func TestORM_UpdateTxUnstartedToInProgress(t *testing.T) { _, err := db.ExecContext(ctx, "DELETE FROM evm.txes WHERE id = $1", etx.ID) require.NoError(t, err) - err = txStore.UpdateTxUnstartedToInProgress(testutils.Context(t), &etx, &attempt) + err = txStore.UpdateTxUnstartedToInProgress(tests.Context(t), &etx, &attempt) require.ErrorContains(t, err, "tx removed") }) @@ -1385,14 +1386,14 @@ func TestORM_UpdateTxUnstartedToInProgress(t *testing.T) { err := txMgr.XXXTestAbandon(fromAddress) // mark transaction as abandoned require.NoError(t, err) - etx2 := mustCreateUnstartedGeneratedTx(t, txStore, fromAddress, &cltest.FixtureChainID) + etx2 := mustCreateUnstartedGeneratedTx(t, txStore, fromAddress, testutils.FixtureChainID) etx2.Sequence = &nonce attempt2 := cltest.NewLegacyEthTxAttempt(t, etx2.ID) attempt2.Hash = etx.TxAttempts[0].Hash // Even though this will initially fail due to idx_eth_tx_attempts_hash constraint, because the conflicting tx has been abandoned // it should succeed after removing the abandoned attempt and retrying the insert - err = txStore.UpdateTxUnstartedToInProgress(testutils.Context(t), &etx2, &attempt2) + err = txStore.UpdateTxUnstartedToInProgress(tests.Context(t), &etx2, &attempt2) require.NoError(t, err) }) @@ -1406,7 +1407,7 @@ func TestORM_UpdateTxUnstartedToInProgress(t *testing.T) { etx.State = txmgrcommon.TxUnstarted // Should fail due to idx_eth_tx_attempt_hash constraint - err := txStore.UpdateTxUnstartedToInProgress(testutils.Context(t), &etx, &etx.TxAttempts[0]) + err := txStore.UpdateTxUnstartedToInProgress(tests.Context(t), &etx, &etx.TxAttempts[0]) assert.ErrorContains(t, err, "idx_eth_tx_attempts_hash") txStore = cltest.NewTestTxStore(t, db) // current txStore is poisened now, next test will need fresh one }) @@ -1421,7 +1422,7 @@ func TestORM_GetTxInProgress(t *testing.T) { _, fromAddress := cltest.MustInsertRandomKeyReturningState(t, ethKeyStore) t.Run("gets 0 in progress eth transaction", func(t *testing.T) { - etxResult, err := txStore.GetTxInProgress(testutils.Context(t), fromAddress) + etxResult, err := txStore.GetTxInProgress(tests.Context(t), fromAddress) require.NoError(t, err) require.Nil(t, etxResult) }) @@ -1429,7 +1430,7 @@ func TestORM_GetTxInProgress(t *testing.T) { t.Run("get 1 in progress eth transaction", func(t *testing.T) { etx := mustInsertInProgressEthTxWithAttempt(t, txStore, 123, fromAddress) - etxResult, err := txStore.GetTxInProgress(testutils.Context(t), fromAddress) + etxResult, err := txStore.GetTxInProgress(tests.Context(t), fromAddress) require.NoError(t, err) assert.Equal(t, etxResult.ID, etx.ID) }) @@ -1447,7 +1448,7 @@ func TestORM_GetAbandonedTransactionsByBatch(t *testing.T) { enabledAddrs := []common.Address{enabled} t.Run("get 0 abandoned transactions", func(t *testing.T) { - txes, err := txStore.GetAbandonedTransactionsByBatch(testutils.Context(t), ethClient.ConfiguredChainID(), enabledAddrs, 0, 10) + txes, err := txStore.GetAbandonedTransactionsByBatch(tests.Context(t), ethClient.ConfiguredChainID(), enabledAddrs, 0, 10) require.NoError(t, err) require.Empty(t, txes) }) @@ -1455,7 +1456,7 @@ func TestORM_GetAbandonedTransactionsByBatch(t *testing.T) { t.Run("do not return enabled addresses", func(t *testing.T) { _ = mustInsertInProgressEthTxWithAttempt(t, txStore, 123, enabled) _ = mustCreateUnstartedGeneratedTx(t, txStore, enabled, ethClient.ConfiguredChainID()) - txes, err := txStore.GetAbandonedTransactionsByBatch(testutils.Context(t), ethClient.ConfiguredChainID(), enabledAddrs, 0, 10) + txes, err := txStore.GetAbandonedTransactionsByBatch(tests.Context(t), ethClient.ConfiguredChainID(), enabledAddrs, 0, 10) require.NoError(t, err) require.Empty(t, txes) }) @@ -1464,7 +1465,7 @@ func TestORM_GetAbandonedTransactionsByBatch(t *testing.T) { inProgressTx := mustInsertInProgressEthTxWithAttempt(t, txStore, 123, fromAddress) unstartedTx := mustCreateUnstartedGeneratedTx(t, txStore, fromAddress, ethClient.ConfiguredChainID()) - txes, err := txStore.GetAbandonedTransactionsByBatch(testutils.Context(t), ethClient.ConfiguredChainID(), enabledAddrs, 0, 10) + txes, err := txStore.GetAbandonedTransactionsByBatch(tests.Context(t), ethClient.ConfiguredChainID(), enabledAddrs, 0, 10) require.NoError(t, err) require.Len(t, txes, 2) @@ -1482,7 +1483,7 @@ func TestORM_GetAbandonedTransactionsByBatch(t *testing.T) { allTxes := make([]*txmgr.Tx, 0) err := sqlutil.Batch(func(offset, limit uint) (count uint, err error) { - batchTxes, err := txStore.GetAbandonedTransactionsByBatch(testutils.Context(t), ethClient.ConfiguredChainID(), enabledAddrs, offset, limit) + batchTxes, err := txStore.GetAbandonedTransactionsByBatch(tests.Context(t), ethClient.ConfiguredChainID(), enabledAddrs, offset, limit) require.NoError(t, err) allTxes = append(allTxes, batchTxes...) return uint(len(batchTxes)), nil @@ -1501,14 +1502,14 @@ func TestORM_GetTxByID(t *testing.T) { _, fromAddress := cltest.MustInsertRandomKeyReturningState(t, ethKeyStore) t.Run("no transaction", func(t *testing.T) { - tx, err := txStore.GetTxByID(testutils.Context(t), int64(0)) + tx, err := txStore.GetTxByID(tests.Context(t), int64(0)) require.NoError(t, err) require.Nil(t, tx) }) t.Run("get transaction by ID", func(t *testing.T) { insertedTx := mustInsertInProgressEthTxWithAttempt(t, txStore, 123, fromAddress) - tx, err := txStore.GetTxByID(testutils.Context(t), insertedTx.ID) + tx, err := txStore.GetTxByID(tests.Context(t), insertedTx.ID) require.NoError(t, err) require.NotNil(t, tx) }) @@ -1523,14 +1524,14 @@ func TestORM_GetFatalTransactions(t *testing.T) { _, fromAddress := cltest.MustInsertRandomKeyReturningState(t, ethKeyStore) t.Run("gets 0 fatal eth transactions", func(t *testing.T) { - txes, err := txStore.GetFatalTransactions(testutils.Context(t)) + txes, err := txStore.GetFatalTransactions(tests.Context(t)) require.NoError(t, err) require.Empty(t, txes) }) t.Run("get fatal transactions", func(t *testing.T) { fatalTx := mustInsertFatalErrorEthTx(t, txStore, fromAddress) - txes, err := txStore.GetFatalTransactions(testutils.Context(t)) + txes, err := txStore.GetFatalTransactions(tests.Context(t)) require.NoError(t, err) require.Equal(t, txes[0].ID, fatalTx.ID) }) @@ -1546,7 +1547,7 @@ func TestORM_HasInProgressTransaction(t *testing.T) { _, fromAddress := cltest.MustInsertRandomKeyReturningState(t, ethKeyStore) t.Run("no in progress eth transaction", func(t *testing.T) { - exists, err := txStore.HasInProgressTransaction(testutils.Context(t), fromAddress, ethClient.ConfiguredChainID()) + exists, err := txStore.HasInProgressTransaction(tests.Context(t), fromAddress, ethClient.ConfiguredChainID()) require.NoError(t, err) require.False(t, exists) }) @@ -1554,7 +1555,7 @@ func TestORM_HasInProgressTransaction(t *testing.T) { t.Run("has in progress eth transaction", func(t *testing.T) { mustInsertInProgressEthTxWithAttempt(t, txStore, 123, fromAddress) - exists, err := txStore.HasInProgressTransaction(testutils.Context(t), fromAddress, ethClient.ConfiguredChainID()) + exists, err := txStore.HasInProgressTransaction(tests.Context(t), fromAddress, ethClient.ConfiguredChainID()) require.NoError(t, err) require.True(t, exists) }) @@ -1575,7 +1576,7 @@ func TestORM_CountUnconfirmedTransactions(t *testing.T) { cltest.MustInsertUnconfirmedEthTxWithBroadcastLegacyAttempt(t, txStore, 1, fromAddress) cltest.MustInsertUnconfirmedEthTxWithBroadcastLegacyAttempt(t, txStore, 2, fromAddress) - count, err := txStore.CountUnconfirmedTransactions(testutils.Context(t), fromAddress, &cltest.FixtureChainID) + count, err := txStore.CountUnconfirmedTransactions(tests.Context(t), fromAddress, testutils.FixtureChainID) require.NoError(t, err) assert.Equal(t, int(count), 3) } @@ -1595,7 +1596,7 @@ func TestORM_CountTransactionsByState(t *testing.T) { cltest.MustInsertUnconfirmedEthTxWithBroadcastLegacyAttempt(t, txStore, 1, fromAddress2) cltest.MustInsertUnconfirmedEthTxWithBroadcastLegacyAttempt(t, txStore, 2, fromAddress3) - count, err := txStore.CountTransactionsByState(testutils.Context(t), txmgrcommon.TxUnconfirmed, &cltest.FixtureChainID) + count, err := txStore.CountTransactionsByState(tests.Context(t), txmgrcommon.TxUnconfirmed, testutils.FixtureChainID) require.NoError(t, err) assert.Equal(t, int(count), 3) } @@ -1610,12 +1611,12 @@ func TestORM_CountUnstartedTransactions(t *testing.T) { _, fromAddress := cltest.MustInsertRandomKey(t, ethKeyStore) _, otherAddress := cltest.MustInsertRandomKey(t, ethKeyStore) - mustCreateUnstartedGeneratedTx(t, txStore, fromAddress, &cltest.FixtureChainID) - mustCreateUnstartedGeneratedTx(t, txStore, fromAddress, &cltest.FixtureChainID) - mustCreateUnstartedGeneratedTx(t, txStore, otherAddress, &cltest.FixtureChainID) + mustCreateUnstartedGeneratedTx(t, txStore, fromAddress, testutils.FixtureChainID) + mustCreateUnstartedGeneratedTx(t, txStore, fromAddress, testutils.FixtureChainID) + mustCreateUnstartedGeneratedTx(t, txStore, otherAddress, testutils.FixtureChainID) cltest.MustInsertUnconfirmedEthTxWithBroadcastLegacyAttempt(t, txStore, 2, fromAddress) - count, err := txStore.CountUnstartedTransactions(testutils.Context(t), fromAddress, &cltest.FixtureChainID) + count, err := txStore.CountUnstartedTransactions(tests.Context(t), fromAddress, testutils.FixtureChainID) require.NoError(t, err) assert.Equal(t, int(count), 2) } @@ -1637,17 +1638,17 @@ func TestORM_CheckTxQueueCapacity(t *testing.T) { var maxUnconfirmedTransactions uint64 = 2 t.Run("with no eth_txes returns nil", func(t *testing.T) { - err := txStore.CheckTxQueueCapacity(testutils.Context(t), fromAddress, maxUnconfirmedTransactions, &cltest.FixtureChainID) + err := txStore.CheckTxQueueCapacity(tests.Context(t), fromAddress, maxUnconfirmedTransactions, testutils.FixtureChainID) require.NoError(t, err) }) // deliberately one extra to exceed limit for i := 0; i <= int(maxUnconfirmedTransactions); i++ { - mustCreateUnstartedTx(t, txStore, otherAddress, toAddress, encodedPayload, feeLimit, value, &cltest.FixtureChainID) + mustCreateUnstartedTx(t, txStore, otherAddress, toAddress, encodedPayload, feeLimit, value, testutils.FixtureChainID) } t.Run("with eth_txes from another address returns nil", func(t *testing.T) { - err := txStore.CheckTxQueueCapacity(testutils.Context(t), fromAddress, maxUnconfirmedTransactions, &cltest.FixtureChainID) + err := txStore.CheckTxQueueCapacity(tests.Context(t), fromAddress, maxUnconfirmedTransactions, testutils.FixtureChainID) require.NoError(t, err) }) @@ -1656,7 +1657,7 @@ func TestORM_CheckTxQueueCapacity(t *testing.T) { } t.Run("ignores fatally_errored transactions", func(t *testing.T) { - err := txStore.CheckTxQueueCapacity(testutils.Context(t), fromAddress, maxUnconfirmedTransactions, &cltest.FixtureChainID) + err := txStore.CheckTxQueueCapacity(tests.Context(t), fromAddress, maxUnconfirmedTransactions, testutils.FixtureChainID) require.NoError(t, err) }) @@ -1667,7 +1668,7 @@ func TestORM_CheckTxQueueCapacity(t *testing.T) { n++ t.Run("unconfirmed and in_progress transactions do not count", func(t *testing.T) { - err := txStore.CheckTxQueueCapacity(testutils.Context(t), fromAddress, 1, &cltest.FixtureChainID) + err := txStore.CheckTxQueueCapacity(tests.Context(t), fromAddress, 1, testutils.FixtureChainID) require.NoError(t, err) }) @@ -1678,39 +1679,39 @@ func TestORM_CheckTxQueueCapacity(t *testing.T) { } t.Run("with many confirmed eth_txes from the same address returns nil", func(t *testing.T) { - err := txStore.CheckTxQueueCapacity(testutils.Context(t), fromAddress, maxUnconfirmedTransactions, &cltest.FixtureChainID) + err := txStore.CheckTxQueueCapacity(tests.Context(t), fromAddress, maxUnconfirmedTransactions, testutils.FixtureChainID) require.NoError(t, err) }) for i := 0; i < int(maxUnconfirmedTransactions)-1; i++ { - mustCreateUnstartedTx(t, txStore, fromAddress, toAddress, encodedPayload, feeLimit, value, &cltest.FixtureChainID) + mustCreateUnstartedTx(t, txStore, fromAddress, toAddress, encodedPayload, feeLimit, value, testutils.FixtureChainID) } t.Run("with fewer unstarted eth_txes than limit returns nil", func(t *testing.T) { - err := txStore.CheckTxQueueCapacity(testutils.Context(t), fromAddress, maxUnconfirmedTransactions, &cltest.FixtureChainID) + err := txStore.CheckTxQueueCapacity(tests.Context(t), fromAddress, maxUnconfirmedTransactions, testutils.FixtureChainID) require.NoError(t, err) }) - mustCreateUnstartedTx(t, txStore, fromAddress, toAddress, encodedPayload, feeLimit, value, &cltest.FixtureChainID) + mustCreateUnstartedTx(t, txStore, fromAddress, toAddress, encodedPayload, feeLimit, value, testutils.FixtureChainID) t.Run("with equal or more unstarted eth_txes than limit returns error", func(t *testing.T) { - err := txStore.CheckTxQueueCapacity(testutils.Context(t), fromAddress, maxUnconfirmedTransactions, &cltest.FixtureChainID) + err := txStore.CheckTxQueueCapacity(tests.Context(t), fromAddress, maxUnconfirmedTransactions, testutils.FixtureChainID) require.Error(t, err) require.Contains(t, err.Error(), fmt.Sprintf("cannot create transaction; too many unstarted transactions in the queue (2/%d). WARNING: Hitting EVM.Transactions.MaxQueued", maxUnconfirmedTransactions)) - mustCreateUnstartedTx(t, txStore, fromAddress, toAddress, encodedPayload, feeLimit, value, &cltest.FixtureChainID) - err = txStore.CheckTxQueueCapacity(testutils.Context(t), fromAddress, maxUnconfirmedTransactions, &cltest.FixtureChainID) + mustCreateUnstartedTx(t, txStore, fromAddress, toAddress, encodedPayload, feeLimit, value, testutils.FixtureChainID) + err = txStore.CheckTxQueueCapacity(tests.Context(t), fromAddress, maxUnconfirmedTransactions, testutils.FixtureChainID) require.Error(t, err) require.Contains(t, err.Error(), fmt.Sprintf("cannot create transaction; too many unstarted transactions in the queue (3/%d). WARNING: Hitting EVM.Transactions.MaxQueued", maxUnconfirmedTransactions)) }) t.Run("with different chain ID ignores txes", func(t *testing.T) { - err := txStore.CheckTxQueueCapacity(testutils.Context(t), fromAddress, maxUnconfirmedTransactions, big.NewInt(42)) + err := txStore.CheckTxQueueCapacity(tests.Context(t), fromAddress, maxUnconfirmedTransactions, big.NewInt(42)) require.NoError(t, err) }) t.Run("disables check with 0 limit", func(t *testing.T) { - err := txStore.CheckTxQueueCapacity(testutils.Context(t), fromAddress, 0, &cltest.FixtureChainID) + err := txStore.CheckTxQueueCapacity(tests.Context(t), fromAddress, 0, testutils.FixtureChainID) require.NoError(t, err) }) } @@ -1733,7 +1734,7 @@ func TestORM_CreateTransaction(t *testing.T) { subject := uuid.New() strategy := newMockTxStrategy(t) strategy.On("Subject").Return(uuid.NullUUID{UUID: subject, Valid: true}) - etx, err := txStore.CreateTransaction(testutils.Context(t), txmgr.TxRequest{ + etx, err := txStore.CreateTransaction(tests.Context(t), txmgr.TxRequest{ FromAddress: fromAddress, ToAddress: toAddress, EncodedPayload: payload, @@ -1776,10 +1777,10 @@ func TestORM_CreateTransaction(t *testing.T) { PipelineTaskRunID: &id, Strategy: txmgrcommon.NewSendEveryStrategy(), } - tx1, err := txStore.CreateTransaction(testutils.Context(t), txRequest, ethClient.ConfiguredChainID()) + tx1, err := txStore.CreateTransaction(tests.Context(t), txRequest, ethClient.ConfiguredChainID()) assert.NoError(t, err) - tx2, err := txStore.CreateTransaction(testutils.Context(t), txRequest, ethClient.ConfiguredChainID()) + tx2, err := txStore.CreateTransaction(tests.Context(t), txRequest, ethClient.ConfiguredChainID()) assert.NoError(t, err) assert.Equal(t, tx1.GetID(), tx2.GetID()) @@ -1789,7 +1790,7 @@ func TestORM_CreateTransaction(t *testing.T) { subject := uuid.New() strategy := newMockTxStrategy(t) strategy.On("Subject").Return(uuid.NullUUID{UUID: subject, Valid: true}) - etx, err := txStore.CreateTransaction(testutils.Context(t), txmgr.TxRequest{ + etx, err := txStore.CreateTransaction(tests.Context(t), txmgr.TxRequest{ FromAddress: fromAddress, ToAddress: toAddress, EncodedPayload: payload, @@ -1827,7 +1828,7 @@ func TestORM_PruneUnstartedTxQueue(t *testing.T) { subject1 := uuid.New() strategy1 := txmgrcommon.NewDropOldestStrategy(subject1, uint32(5)) for i := 0; i < 5; i++ { - mustCreateUnstartedGeneratedTx(t, txStore, fromAddress, &cltest.FixtureChainID, txRequestWithStrategy(strategy1)) + mustCreateUnstartedGeneratedTx(t, txStore, fromAddress, testutils.FixtureChainID, txRequestWithStrategy(strategy1)) } AssertCountPerSubject(t, txStore, int64(4), subject1) }) @@ -1836,7 +1837,7 @@ func TestORM_PruneUnstartedTxQueue(t *testing.T) { subject2 := uuid.New() strategy2 := txmgrcommon.NewDropOldestStrategy(subject2, uint32(3)) for i := 0; i < 5; i++ { - mustCreateUnstartedGeneratedTx(t, txStore, fromAddress, &cltest.FixtureChainID, txRequestWithStrategy(strategy2)) + mustCreateUnstartedGeneratedTx(t, txStore, fromAddress, testutils.FixtureChainID, txRequestWithStrategy(strategy2)) } AssertCountPerSubject(t, txStore, int64(2), subject2) }) @@ -1848,7 +1849,7 @@ func TestORM_FindTxesWithAttemptsAndReceiptsByIdsAndState(t *testing.T) { db := pgtest.NewSqlxDB(t) txStore := cltest.NewTestTxStore(t, db) ethKeyStore := cltest.NewKeyStore(t, db).Eth() - ctx := testutils.Context(t) + ctx := tests.Context(t) _, from := cltest.MustInsertRandomKey(t, ethKeyStore) @@ -1866,7 +1867,7 @@ func TestORM_FindTxesWithAttemptsAndReceiptsByIdsAndState(t *testing.T) { func AssertCountPerSubject(t *testing.T, txStore txmgr.TestEvmTxStore, expected int64, subject uuid.UUID) { t.Helper() - count, err := txStore.CountTxesByStateAndSubject(testutils.Context(t), "unstarted", subject) + count, err := txStore.CountTxesByStateAndSubject(tests.Context(t), "unstarted", subject) require.NoError(t, err) require.Equal(t, int(expected), count) } diff --git a/core/chains/evm/txmgr/nonce_tracker_test.go b/core/chains/evm/txmgr/nonce_tracker_test.go index 17c042e375e..c9e3cbd76c3 100644 --- a/core/chains/evm/txmgr/nonce_tracker_test.go +++ b/core/chains/evm/txmgr/nonce_tracker_test.go @@ -13,12 +13,12 @@ import ( "github.com/smartcontractkit/chainlink-common/pkg/logger" "github.com/smartcontractkit/chainlink-common/pkg/services" + "github.com/smartcontractkit/chainlink-common/pkg/utils/tests" clientmock "github.com/smartcontractkit/chainlink/v2/core/chains/evm/client/mocks" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/txmgr" txstoremock "github.com/smartcontractkit/chainlink/v2/core/chains/evm/txmgr/mocks" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/types" - "github.com/smartcontractkit/chainlink/v2/core/internal/cltest" "github.com/smartcontractkit/chainlink/v2/core/internal/testutils" "github.com/smartcontractkit/chainlink/v2/core/internal/testutils/pgtest" ) @@ -26,7 +26,7 @@ import ( func TestNonceTracker_LoadSequenceMap(t *testing.T) { t.Parallel() - ctx := testutils.Context(t) + ctx := tests.Context(t) chainID := big.NewInt(0) txStore := txstoremock.NewEvmTxStore(t) @@ -77,7 +77,7 @@ func TestNonceTracker_LoadSequenceMap(t *testing.T) { func TestNonceTracker_syncOnChain(t *testing.T) { t.Parallel() - ctx := testutils.Context(t) + ctx := tests.Context(t) chainID := big.NewInt(0) txStore := txstoremock.NewEvmTxStore(t) @@ -133,7 +133,7 @@ func TestNonceTracker_syncOnChain(t *testing.T) { func TestNonceTracker_SyncSequence(t *testing.T) { t.Parallel() - ctx := testutils.Context(t) + ctx := tests.Context(t) chainID := big.NewInt(0) txStore := txstoremock.NewEvmTxStore(t) @@ -180,7 +180,7 @@ func TestNonceTracker_SyncSequence(t *testing.T) { func TestNonceTracker_GetNextSequence(t *testing.T) { t.Parallel() - ctx := testutils.Context(t) + ctx := tests.Context(t) chainID := big.NewInt(0) txStore := txstoremock.NewEvmTxStore(t) @@ -230,7 +230,7 @@ func TestNonceTracker_GetNextSequence(t *testing.T) { func TestNonceTracker_GenerateNextSequence(t *testing.T) { t.Parallel() - ctx := testutils.Context(t) + ctx := tests.Context(t) chainID := big.NewInt(0) txStore := txstoremock.NewEvmTxStore(t) @@ -259,10 +259,10 @@ func TestNonceTracker_GenerateNextSequence(t *testing.T) { func Test_SetNonceAfterInit(t *testing.T) { t.Parallel() - ctx := testutils.Context(t) + ctx := tests.Context(t) chainID := big.NewInt(0) db := pgtest.NewSqlxDB(t) - txStore := cltest.NewTestTxStore(t, db) + txStore := txmgr.NewTxStore(db, logger.Test(t)) client := clientmock.NewClient(t) client.On("ConfiguredChainID").Return(chainID) diff --git a/core/chains/evm/txmgr/resender_test.go b/core/chains/evm/txmgr/resender_test.go index 331e39d6ccf..48a1ec3af16 100644 --- a/core/chains/evm/txmgr/resender_test.go +++ b/core/chains/evm/txmgr/resender_test.go @@ -15,15 +15,14 @@ import ( commonconfig "github.com/smartcontractkit/chainlink-common/pkg/config" "github.com/smartcontractkit/chainlink-common/pkg/logger" + "github.com/smartcontractkit/chainlink-common/pkg/utils/tests" + "github.com/smartcontractkit/chainlink/v2/core/chains/evm/config/toml" + "github.com/smartcontractkit/chainlink/v2/core/chains/evm/testutils" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/txmgr" ubig "github.com/smartcontractkit/chainlink/v2/core/chains/evm/utils/big" "github.com/smartcontractkit/chainlink/v2/core/internal/cltest" - "github.com/smartcontractkit/chainlink/v2/core/internal/testutils" - "github.com/smartcontractkit/chainlink/v2/core/internal/testutils/configtest" - "github.com/smartcontractkit/chainlink/v2/core/internal/testutils/evmtest" "github.com/smartcontractkit/chainlink/v2/core/internal/testutils/pgtest" - "github.com/smartcontractkit/chainlink/v2/core/services/chainlink" ) func Test_EthResender_resendUnconfirmed(t *testing.T) { @@ -32,9 +31,9 @@ func Test_EthResender_resendUnconfirmed(t *testing.T) { db := pgtest.NewSqlxDB(t) lggr := logger.Test(t) ethKeyStore := cltest.NewKeyStore(t, db).Eth() - ethClient := evmtest.NewEthClientMockWithDefaultChain(t) - cfg := configtest.NewGeneralConfig(t, func(c *chainlink.Config, s *chainlink.Secrets) {}) - ccfg := evmtest.NewChainScopedConfig(t, cfg) + ethClient := testutils.NewEthClientMockWithDefaultChain(t) + ethClient.On("IsL2").Return(false).Maybe() + ccfg := testutils.NewTestChainScopedConfig(t, nil) _, fromAddress := cltest.MustInsertRandomKey(t, ethKeyStore) _, fromAddress2 := cltest.MustInsertRandomKey(t, ethKeyStore) @@ -102,17 +101,15 @@ func Test_EthResender_alertUnconfirmed(t *testing.T) { db := pgtest.NewSqlxDB(t) lggr, o := logger.TestObserved(t, zapcore.DebugLevel) ethKeyStore := cltest.NewKeyStore(t, db).Eth() - ethClient := evmtest.NewEthClientMockWithDefaultChain(t) + ethClient := testutils.NewEthClientMockWithDefaultChain(t) + ethClient.On("IsL2").Return(false).Maybe() // Set this to the smallest non-zero value possible for the attempt to be eligible for resend delay := commonconfig.MustNewDuration(1 * time.Nanosecond) - cfg := configtest.NewGeneralConfig(t, func(c *chainlink.Config, s *chainlink.Secrets) { - c.EVM[0] = &toml.EVMConfig{ - Chain: toml.Defaults(ubig.New(big.NewInt(0)), &toml.Chain{ - Transactions: toml.Transactions{ResendAfterThreshold: delay}, - }), - } + ccfg := testutils.NewTestChainScopedConfig(t, func(c *toml.EVMConfig) { + c.Chain = toml.Defaults(ubig.New(big.NewInt(0)), &toml.Chain{ + Transactions: toml.Transactions{ResendAfterThreshold: delay}, + }) }) - ccfg := evmtest.NewChainScopedConfig(t, cfg) _, fromAddress := cltest.MustInsertRandomKey(t, ethKeyStore) @@ -132,7 +129,7 @@ func Test_EthResender_alertUnconfirmed(t *testing.T) { err2 := er.XXXTestResendUnconfirmed() require.NoError(t, err2) - testutils.WaitForLogMessageCount(t, o, "TxAttempt has been unconfirmed for more than max duration", 1) + tests.AssertLogCountEventually(t, o, "TxAttempt has been unconfirmed for more than max duration", 1) }) } @@ -140,21 +137,22 @@ func Test_EthResender_Start(t *testing.T) { t.Parallel() db := pgtest.NewSqlxDB(t) - cfg := configtest.NewGeneralConfig(t, func(c *chainlink.Config, s *chainlink.Secrets) { + ccfg := testutils.NewTestChainScopedConfig(t, func(c *toml.EVMConfig) { // This can be anything as long as it isn't zero - c.EVM[0].Transactions.ResendAfterThreshold = commonconfig.MustNewDuration(42 * time.Hour) + c.Transactions.ResendAfterThreshold = commonconfig.MustNewDuration(42 * time.Hour) // Set batch size low to test batching - c.EVM[0].RPCDefaultBatchSize = ptr[uint32](1) + c.RPCDefaultBatchSize = ptr[uint32](1) }) + txStore := cltest.NewTestTxStore(t, db) ethKeyStore := cltest.NewKeyStore(t, db).Eth() - ccfg := evmtest.NewChainScopedConfig(t, cfg) _, fromAddress := cltest.MustInsertRandomKey(t, ethKeyStore) lggr := logger.Test(t) t.Run("resends transactions that have been languishing unconfirmed for too long", func(t *testing.T) { - ctx := testutils.Context(t) - ethClient := evmtest.NewEthClientMockWithDefaultChain(t) + ctx := tests.Context(t) + ethClient := testutils.NewEthClientMockWithDefaultChain(t) + ethClient.On("IsL2").Return(false).Maybe() er := txmgr.NewEvmResender(lggr, txStore, txmgr.NewEvmTxmClient(ethClient, nil), txmgr.NewEvmTracker(txStore, ethKeyStore, big.NewInt(0), lggr), ethKeyStore, 100*time.Millisecond, ccfg.EVM(), ccfg.EVM().Transactions()) diff --git a/core/chains/evm/txmgr/strategies_test.go b/core/chains/evm/txmgr/strategies_test.go index d7f4ceaf450..4b04009fd24 100644 --- a/core/chains/evm/txmgr/strategies_test.go +++ b/core/chains/evm/txmgr/strategies_test.go @@ -8,9 +8,10 @@ import ( "github.com/stretchr/testify/mock" "github.com/stretchr/testify/require" + "github.com/smartcontractkit/chainlink-common/pkg/utils/tests" + txmgrcommon "github.com/smartcontractkit/chainlink/v2/common/txmgr" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/txmgr/mocks" - "github.com/smartcontractkit/chainlink/v2/core/internal/testutils" ) func Test_SendEveryStrategy(t *testing.T) { @@ -20,7 +21,7 @@ func Test_SendEveryStrategy(t *testing.T) { assert.Equal(t, uuid.NullUUID{}, s.Subject()) - ids, err := s.PruneQueue(testutils.Context(t), nil) + ids, err := s.PruneQueue(tests.Context(t), nil) assert.NoError(t, err) assert.Len(t, ids, 0) } @@ -44,7 +45,7 @@ func Test_DropOldestStrategy_PruneQueue(t *testing.T) { t.Run("calls PrineUnstartedTxQueue for the given subject and queueSize, ignoring fromAddress", func(t *testing.T) { strategy1 := txmgrcommon.NewDropOldestStrategy(subject, queueSize) mockTxStore.On("PruneUnstartedTxQueue", mock.Anything, queueSize-1, subject, mock.Anything, mock.Anything).Once().Return([]int64{1, 2}, nil) - ids, err := strategy1.PruneQueue(testutils.Context(t), mockTxStore) + ids, err := strategy1.PruneQueue(tests.Context(t), mockTxStore) require.NoError(t, err) assert.Equal(t, []int64{1, 2}, ids) }) diff --git a/core/chains/evm/txmgr/stuck_tx_detector_test.go b/core/chains/evm/txmgr/stuck_tx_detector_test.go index 39c275d286f..02d34206ab9 100644 --- a/core/chains/evm/txmgr/stuck_tx_detector_test.go +++ b/core/chains/evm/txmgr/stuck_tx_detector_test.go @@ -16,17 +16,18 @@ import ( "gopkg.in/guregu/null.v4" "github.com/smartcontractkit/chainlink-common/pkg/logger" + "github.com/smartcontractkit/chainlink-common/pkg/utils/tests" + commonconfig "github.com/smartcontractkit/chainlink/v2/common/config" txmgrcommon "github.com/smartcontractkit/chainlink/v2/common/txmgr" txmgrtypes "github.com/smartcontractkit/chainlink/v2/common/txmgr/types" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/assets" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/gas" gasmocks "github.com/smartcontractkit/chainlink/v2/core/chains/evm/gas/mocks" + "github.com/smartcontractkit/chainlink/v2/core/chains/evm/testutils" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/txmgr" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/types" "github.com/smartcontractkit/chainlink/v2/core/internal/cltest" - "github.com/smartcontractkit/chainlink/v2/core/internal/testutils" - "github.com/smartcontractkit/chainlink/v2/core/internal/testutils/evmtest" "github.com/smartcontractkit/chainlink/v2/core/internal/testutils/pgtest" ) @@ -44,7 +45,7 @@ func TestStuckTxDetector_Disabled(t *testing.T) { _, fromAddress := cltest.MustInsertRandomKey(t, ethKeyStore) lggr := logger.Test(t) - ethClient := evmtest.NewEthClientMockWithDefaultChain(t) + ethClient := testutils.NewEthClientMockWithDefaultChain(t) feeEstimator := gasmocks.NewEvmFeeEstimator(t) autoPurgeCfg := testAutoPurgeConfig{ enabled: false, @@ -52,7 +53,7 @@ func TestStuckTxDetector_Disabled(t *testing.T) { stuckTxDetector := txmgr.NewStuckTxDetector(lggr, testutils.FixtureChainID, "", assets.NewWei(assets.NewEth(100).ToInt()), autoPurgeCfg, feeEstimator, txStore, ethClient) t.Run("returns empty list if auto-purge feature is disabled", func(t *testing.T) { - txs, err := stuckTxDetector.DetectStuckTransactions(testutils.Context(t), []common.Address{fromAddress}, 100) + txs, err := stuckTxDetector.DetectStuckTransactions(tests.Context(t), []common.Address{fromAddress}, 100) require.NoError(t, err) require.Len(t, txs, 0) }) @@ -64,11 +65,11 @@ func TestStuckTxDetector_LoadPurgeBlockNumMap(t *testing.T) { db := pgtest.NewSqlxDB(t) txStore := cltest.NewTestTxStore(t, db) ethKeyStore := cltest.NewKeyStore(t, db).Eth() - ctx := testutils.Context(t) + ctx := tests.Context(t) blockNum := int64(100) lggr := logger.Test(t) - ethClient := evmtest.NewEthClientMockWithDefaultChain(t) + ethClient := testutils.NewEthClientMockWithDefaultChain(t) feeEstimator := gasmocks.NewEvmFeeEstimator(t) marketGasPrice := assets.GWei(15) fee := gas.EvmFee{Legacy: marketGasPrice} @@ -109,10 +110,10 @@ func TestStuckTxDetector_FindPotentialStuckTxs(t *testing.T) { _, config := newTestChainScopedConfig(t) txStore := cltest.NewTestTxStore(t, db) ethKeyStore := cltest.NewKeyStore(t, db).Eth() - ctx := testutils.Context(t) + ctx := tests.Context(t) lggr := logger.Test(t) - ethClient := evmtest.NewEthClientMockWithDefaultChain(t) + ethClient := testutils.NewEthClientMockWithDefaultChain(t) feeEstimator := gasmocks.NewEvmFeeEstimator(t) stuckTxDetector := txmgr.NewStuckTxDetector(lggr, testutils.FixtureChainID, "", assets.NewWei(assets.NewEth(100).ToInt()), config.EVM().Transactions().AutoPurge(), feeEstimator, txStore, ethClient) @@ -162,7 +163,7 @@ func TestStuckTxDetector_DetectStuckTransactionsHeuristic(t *testing.T) { db := pgtest.NewSqlxDB(t) txStore := cltest.NewTestTxStore(t, db) ethKeyStore := cltest.NewKeyStore(t, db).Eth() - ctx := testutils.Context(t) + ctx := tests.Context(t) lggr := logger.Test(t) feeEstimator := gasmocks.NewEvmFeeEstimator(t) @@ -170,7 +171,7 @@ func TestStuckTxDetector_DetectStuckTransactionsHeuristic(t *testing.T) { marketGasPrice := tenGwei fee := gas.EvmFee{Legacy: marketGasPrice} feeEstimator.On("GetFee", mock.Anything, []byte{}, uint64(0), mock.Anything).Return(fee, uint64(0), nil) - ethClient := evmtest.NewEthClientMockWithDefaultChain(t) + ethClient := testutils.NewEthClientMockWithDefaultChain(t) autoPurgeThreshold := uint32(5) autoPurgeMinAttempts := uint32(3) autoPurgeCfg := testAutoPurgeConfig{ @@ -261,11 +262,11 @@ func TestStuckTxDetector_DetectStuckTransactionsZkEVM(t *testing.T) { db := pgtest.NewSqlxDB(t) txStore := cltest.NewTestTxStore(t, db) ethKeyStore := cltest.NewKeyStore(t, db).Eth() - ctx := testutils.Context(t) + ctx := tests.Context(t) lggr := logger.Test(t) feeEstimator := gasmocks.NewEvmFeeEstimator(t) - ethClient := evmtest.NewEthClientMockWithDefaultChain(t) + ethClient := testutils.NewEthClientMockWithDefaultChain(t) autoPurgeCfg := testAutoPurgeConfig{ enabled: true, } @@ -323,11 +324,11 @@ func TestStuckTxDetector_DetectStuckTransactionsScroll(t *testing.T) { db := pgtest.NewSqlxDB(t) txStore := cltest.NewTestTxStore(t, db) ethKeyStore := cltest.NewKeyStore(t, db).Eth() - ctx := testutils.Context(t) + ctx := tests.Context(t) lggr := logger.Test(t) feeEstimator := gasmocks.NewEvmFeeEstimator(t) - ethClient := evmtest.NewEthClientMockWithDefaultChain(t) + ethClient := testutils.NewEthClientMockWithDefaultChain(t) blockNum := int64(100) t.Run("returns stuck tx identified using the custom scroll API", func(t *testing.T) { @@ -363,7 +364,7 @@ func TestStuckTxDetector_DetectStuckTransactionsScroll(t *testing.T) { } func mustInsertUnconfirmedTxWithBroadcastAttempts(t *testing.T, txStore txmgr.TestEvmTxStore, nonce int64, fromAddress common.Address, numAttempts uint32, latestBroadcastBlockNum int64, latestGasPrice *assets.Wei) txmgr.Tx { - ctx := testutils.Context(t) + ctx := tests.Context(t) etx := cltest.MustInsertUnconfirmedEthTx(t, txStore, nonce, fromAddress) // Insert attempts from oldest to newest for i := int64(numAttempts - 1); i >= 0; i-- { @@ -390,10 +391,10 @@ func mustInsertFatalErrorTxWithError(t *testing.T, txStore txmgr.TestEvmTxStore, n := types.Nonce(nonce) etx.Sequence = &n etx.ChainID = testutils.FixtureChainID - require.NoError(t, txStore.InsertTx(testutils.Context(t), &etx)) + require.NoError(t, txStore.InsertTx(tests.Context(t), &etx)) attempt := cltest.NewLegacyEthTxAttempt(t, etx.ID) - ctx := testutils.Context(t) + ctx := tests.Context(t) attempt.State = txmgrtypes.TxAttemptBroadcast attempt.IsPurgeAttempt = true require.NoError(t, txStore.InsertTxAttempt(ctx, &attempt)) @@ -410,7 +411,7 @@ func mustInsertFatalErrorTxWithError(t *testing.T, txStore txmgr.TestEvmTxStore, func mustInsertUnconfirmedEthTxWithBroadcastPurgeAttempt(t *testing.T, txStore txmgr.TestEvmTxStore, nonce int64, fromAddress common.Address) txmgr.Tx { etx := cltest.MustInsertUnconfirmedEthTx(t, txStore, nonce, fromAddress) attempt := cltest.NewLegacyEthTxAttempt(t, etx.ID) - ctx := testutils.Context(t) + ctx := tests.Context(t) attempt.State = txmgrtypes.TxAttemptBroadcast attempt.IsPurgeAttempt = true diff --git a/core/chains/evm/txmgr/tracker_test.go b/core/chains/evm/txmgr/tracker_test.go index a0503253591..904a10d48c3 100644 --- a/core/chains/evm/txmgr/tracker_test.go +++ b/core/chains/evm/txmgr/tracker_test.go @@ -5,17 +5,18 @@ import ( "testing" "time" + "github.com/ethereum/go-ethereum/common" + "github.com/stretchr/testify/require" + + "github.com/smartcontractkit/chainlink-common/pkg/logger" + "github.com/smartcontractkit/chainlink-common/pkg/utils/tests" + "github.com/smartcontractkit/chainlink/v2/core/chains/evm/keystore" + "github.com/smartcontractkit/chainlink/v2/core/chains/evm/testutils" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/txmgr" ubig "github.com/smartcontractkit/chainlink/v2/core/chains/evm/utils/big" "github.com/smartcontractkit/chainlink/v2/core/internal/cltest" - "github.com/smartcontractkit/chainlink/v2/core/internal/testutils" - "github.com/smartcontractkit/chainlink/v2/core/internal/testutils/evmtest" "github.com/smartcontractkit/chainlink/v2/core/internal/testutils/pgtest" - "github.com/smartcontractkit/chainlink/v2/core/logger" - - "github.com/ethereum/go-ethereum/common" - "github.com/stretchr/testify/require" ) const waitTime = 5 * time.Millisecond @@ -29,7 +30,7 @@ func newTestEvmTrackerSetup(t *testing.T) (*txmgr.Tracker, txmgr.TestEvmTxStore, _, addr1 := cltest.MustInsertRandomKey(t, ethKeyStore, *ubig.NewI(chainID.Int64())) _, addr2 := cltest.MustInsertRandomKey(t, ethKeyStore, *ubig.NewI(chainID.Int64())) enabledAddresses = append(enabledAddresses, addr1, addr2) - lggr := logger.TestLogger(t) + lggr := logger.Test(t) return txmgr.NewEvmTracker(txStore, ethKeyStore, chainID, lggr), txStore, ethKeyStore, enabledAddresses } @@ -46,7 +47,7 @@ func TestEvmTracker_Initialization(t *testing.T) { t.Parallel() tracker, _, _, _ := newTestEvmTrackerSetup(t) - ctx := testutils.Context(t) + ctx := tests.Context(t) require.NoError(t, tracker.Start(ctx)) require.True(t, tracker.IsStarted()) @@ -59,10 +60,10 @@ func TestEvmTracker_Initialization(t *testing.T) { func TestEvmTracker_AddressTracking(t *testing.T) { t.Parallel() - ctx := testutils.Context(t) + ctx := tests.Context(t) t.Run("track abandoned addresses", func(t *testing.T) { - ethClient := evmtest.NewEthClientMockWithDefaultChain(t) + ethClient := testutils.NewEthClientMockWithDefaultChain(t) tracker, txStore, _, _ := newTestEvmTrackerSetup(t) inProgressAddr := cltest.MustGenerateRandomKey(t).Address unstartedAddr := cltest.MustGenerateRandomKey(t).Address @@ -119,7 +120,7 @@ func TestEvmTracker_AddressTracking(t *testing.T) { func TestEvmTracker_ExceedingTTL(t *testing.T) { t.Parallel() - ctx := testutils.Context(t) + ctx := tests.Context(t) t.Run("exceeding ttl", func(t *testing.T) { tracker, txStore, _, _ := newTestEvmTrackerSetup(t) diff --git a/core/chains/evm/txmgr/transmitchecker_test.go b/core/chains/evm/txmgr/transmitchecker_test.go index 2fce9cf7aac..af41bbfdaa6 100644 --- a/core/chains/evm/txmgr/transmitchecker_test.go +++ b/core/chains/evm/txmgr/transmitchecker_test.go @@ -14,27 +14,24 @@ import ( "github.com/ethereum/go-ethereum/rpc" pkgerrors "github.com/pkg/errors" "github.com/stretchr/testify/mock" - - "github.com/smartcontractkit/chainlink-common/pkg/logger" - - txmgrtypes "github.com/smartcontractkit/chainlink/v2/common/txmgr/types" - evmtypes "github.com/smartcontractkit/chainlink/v2/core/chains/evm/types" - "github.com/stretchr/testify/require" + "github.com/smartcontractkit/chainlink-common/pkg/logger" "github.com/smartcontractkit/chainlink-common/pkg/sqlutil" + "github.com/smartcontractkit/chainlink-common/pkg/utils/tests" + txmgrcommon "github.com/smartcontractkit/chainlink/v2/common/txmgr" + txmgrtypes "github.com/smartcontractkit/chainlink/v2/common/txmgr/types" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/assets" evmclient "github.com/smartcontractkit/chainlink/v2/core/chains/evm/client" + "github.com/smartcontractkit/chainlink/v2/core/chains/evm/testutils" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/txmgr" + evmtypes "github.com/smartcontractkit/chainlink/v2/core/chains/evm/types" v1 "github.com/smartcontractkit/chainlink/v2/core/gethwrappers/generated/solidity_vrf_coordinator_interface" - "github.com/smartcontractkit/chainlink/v2/core/internal/cltest" - "github.com/smartcontractkit/chainlink/v2/core/internal/testutils" - "github.com/smartcontractkit/chainlink/v2/core/internal/testutils/evmtest" ) func TestFactory(t *testing.T) { - client := cltest.NewEthMocksWithDefaultChain(t) + client := testutils.NewEthClientMockWithDefaultChain(t) factory := &txmgr.CheckerFactory{Client: client} t.Run("no checker", func(t *testing.T) { @@ -105,9 +102,9 @@ func TestFactory(t *testing.T) { } func TestTransmitCheckers(t *testing.T) { - client := evmtest.NewEthClientMockWithDefaultChain(t) + client := testutils.NewEthClientMockWithDefaultChain(t) log := logger.Sugared(logger.Test(t)) - ctx := testutils.Context(t) + ctx := tests.Context(t) t.Run("no checker", func(t *testing.T) { checker := txmgr.NoChecker diff --git a/core/chains/evm/txmgr/txmgr_test.go b/core/chains/evm/txmgr/txmgr_test.go index b0823c99705..de5847dc715 100644 --- a/core/chains/evm/txmgr/txmgr_test.go +++ b/core/chains/evm/txmgr/txmgr_test.go @@ -23,6 +23,7 @@ import ( "github.com/smartcontractkit/chainlink-common/pkg/logger" "github.com/smartcontractkit/chainlink-common/pkg/services/servicetest" commonutils "github.com/smartcontractkit/chainlink-common/pkg/utils" + "github.com/smartcontractkit/chainlink-common/pkg/utils/tests" txmgrcommon "github.com/smartcontractkit/chainlink/v2/common/txmgr" txmgrtypes "github.com/smartcontractkit/chainlink/v2/common/txmgr/types" @@ -35,12 +36,12 @@ import ( "github.com/smartcontractkit/chainlink/v2/core/chains/evm/keystore" ksmocks "github.com/smartcontractkit/chainlink/v2/core/chains/evm/keystore/mocks" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/logpoller" + "github.com/smartcontractkit/chainlink/v2/core/chains/evm/testutils" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/txmgr" evmtypes "github.com/smartcontractkit/chainlink/v2/core/chains/evm/types" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/utils" ubig "github.com/smartcontractkit/chainlink/v2/core/chains/evm/utils/big" "github.com/smartcontractkit/chainlink/v2/core/internal/cltest" - "github.com/smartcontractkit/chainlink/v2/core/internal/testutils" "github.com/smartcontractkit/chainlink/v2/core/internal/testutils/configtest" "github.com/smartcontractkit/chainlink/v2/core/internal/testutils/evmtest" "github.com/smartcontractkit/chainlink/v2/core/internal/testutils/pgtest" @@ -93,12 +94,12 @@ func TestTxm_SendNativeToken_DoesNotSendToZero(t *testing.T) { config, dbConfig, evmConfig := txmgr.MakeTestConfigs(t) keyStore := cltest.NewKeyStore(t, db).Eth() - ethClient := evmtest.NewEthClientMockWithDefaultChain(t) + ethClient := testutils.NewEthClientMockWithDefaultChain(t) estimator := gas.NewEstimator(logger.Test(t), ethClient, config, evmConfig.GasEstimator()) txm, err := makeTestEvmTxm(t, db, ethClient, estimator, evmConfig, evmConfig.GasEstimator(), evmConfig.Transactions(), dbConfig, dbConfig.Listener(), keyStore) require.NoError(t, err) - _, err = txm.SendNativeToken(testutils.Context(t), big.NewInt(0), from, to, *value, 21000) + _, err = txm.SendNativeToken(tests.Context(t), big.NewInt(0), from, to, *value, 21000) require.Error(t, err) require.EqualError(t, err, "cannot send native token to zero address") } @@ -117,7 +118,7 @@ func TestTxm_CreateTransaction(t *testing.T) { config, dbConfig, evmConfig := txmgr.MakeTestConfigs(t) - ethClient := evmtest.NewEthClientMockWithDefaultChain(t) + ethClient := testutils.NewEthClientMockWithDefaultChain(t) estimator := gas.NewEstimator(logger.Test(t), ethClient, config, evmConfig.GasEstimator()) txm, err := makeTestEvmTxm(t, db, ethClient, estimator, evmConfig, evmConfig.GasEstimator(), evmConfig.Transactions(), dbConfig, dbConfig.Listener(), kst.Eth()) @@ -129,7 +130,7 @@ func TestTxm_CreateTransaction(t *testing.T) { strategy.On("Subject").Return(uuid.NullUUID{UUID: subject, Valid: true}) strategy.On("PruneQueue", mock.Anything, mock.Anything).Return(nil, nil) evmConfig.MaxQueued = uint64(1) - etx, err := txm.CreateTransaction(testutils.Context(t), txmgr.TxRequest{ + etx, err := txm.CreateTransaction(tests.Context(t), txmgr.TxRequest{ FromAddress: fromAddress, ToAddress: toAddress, EncodedPayload: payload, @@ -165,7 +166,7 @@ func TestTxm_CreateTransaction(t *testing.T) { t.Run("with queue at capacity does not insert eth_tx", func(t *testing.T) { evmConfig.MaxQueued = uint64(1) - _, err := txm.CreateTransaction(testutils.Context(t), txmgr.TxRequest{ + _, err := txm.CreateTransaction(tests.Context(t), txmgr.TxRequest{ FromAddress: fromAddress, ToAddress: testutils.NewAddress(), EncodedPayload: []byte{1, 2, 3}, @@ -180,7 +181,7 @@ func TestTxm_CreateTransaction(t *testing.T) { t.Run("doesn't insert eth_tx if a matching tx already exists for that pipeline_task_run_id", func(t *testing.T) { evmConfig.MaxQueued = uint64(3) id := uuid.New() - tx1, err := txm.CreateTransaction(testutils.Context(t), txmgr.TxRequest{ + tx1, err := txm.CreateTransaction(tests.Context(t), txmgr.TxRequest{ FromAddress: fromAddress, ToAddress: testutils.NewAddress(), EncodedPayload: []byte{1, 2, 3}, @@ -190,7 +191,7 @@ func TestTxm_CreateTransaction(t *testing.T) { }) assert.NoError(t, err) - tx2, err := txm.CreateTransaction(testutils.Context(t), txmgr.TxRequest{ + tx2, err := txm.CreateTransaction(tests.Context(t), txmgr.TxRequest{ FromAddress: fromAddress, ToAddress: testutils.NewAddress(), EncodedPayload: []byte{1, 2, 3}, @@ -205,7 +206,7 @@ func TestTxm_CreateTransaction(t *testing.T) { t.Run("returns error if eth key state is missing or doesn't match chain ID", func(t *testing.T) { rndAddr := testutils.NewAddress() - _, err := txm.CreateTransaction(testutils.Context(t), txmgr.TxRequest{ + _, err := txm.CreateTransaction(tests.Context(t), txmgr.TxRequest{ FromAddress: rndAddr, ToAddress: testutils.NewAddress(), EncodedPayload: []byte{1, 2, 3}, @@ -217,7 +218,7 @@ func TestTxm_CreateTransaction(t *testing.T) { _, otherAddress := cltest.MustInsertRandomKey(t, kst.Eth(), *ubig.NewI(1337)) - _, err = txm.CreateTransaction(testutils.Context(t), txmgr.TxRequest{ + _, err = txm.CreateTransaction(tests.Context(t), txmgr.TxRequest{ FromAddress: otherAddress, ToAddress: testutils.NewAddress(), EncodedPayload: []byte{1, 2, 3}, @@ -235,7 +236,7 @@ func TestTxm_CreateTransaction(t *testing.T) { CheckerType: txmgr.TransmitCheckerTypeSimulate, } evmConfig.MaxQueued = uint64(1) - etx, err := txm.CreateTransaction(testutils.Context(t), txmgr.TxRequest{ + etx, err := txm.CreateTransaction(tests.Context(t), txmgr.TxRequest{ FromAddress: fromAddress, ToAddress: toAddress, EncodedPayload: payload, @@ -278,7 +279,7 @@ func TestTxm_CreateTransaction(t *testing.T) { CheckerType: txmgr.TransmitCheckerTypeVRFV2, VRFCoordinatorAddress: testutils.NewAddressPtr(), } - etx, err := txm.CreateTransaction(testutils.Context(t), txmgr.TxRequest{ + etx, err := txm.CreateTransaction(tests.Context(t), txmgr.TxRequest{ FromAddress: fromAddress, ToAddress: toAddress, EncodedPayload: payload, @@ -310,11 +311,11 @@ func TestTxm_CreateTransaction(t *testing.T) { // Create mock forwarder, mock authorizedsenders call. form := forwarders.NewORM(db) fwdrAddr := testutils.NewAddress() - fwdr, err := form.CreateForwarder(testutils.Context(t), fwdrAddr, ubig.Big(cltest.FixtureChainID)) + fwdr, err := form.CreateForwarder(tests.Context(t), fwdrAddr, ubig.Big(cltest.FixtureChainID)) require.NoError(t, err) require.Equal(t, fwdr.Address, fwdrAddr) - etx, err := txm.CreateTransaction(testutils.Context(t), txmgr.TxRequest{ + etx, err := txm.CreateTransaction(tests.Context(t), txmgr.TxRequest{ FromAddress: fromAddress, ToAddress: toAddress, EncodedPayload: payload, @@ -338,7 +339,7 @@ func TestTxm_CreateTransaction(t *testing.T) { evmConfig.MaxQueued = uint64(3) id := uuid.New() idempotencyKey := "1" - _, err := txm.CreateTransaction(testutils.Context(t), txmgr.TxRequest{ + _, err := txm.CreateTransaction(tests.Context(t), txmgr.TxRequest{ IdempotencyKey: &idempotencyKey, FromAddress: fromAddress, ToAddress: testutils.NewAddress(), @@ -354,7 +355,7 @@ func TestTxm_CreateTransaction(t *testing.T) { evmConfig.MaxQueued = uint64(3) id := uuid.New() idempotencyKey := "2" - tx1, err := txm.CreateTransaction(testutils.Context(t), txmgr.TxRequest{ + tx1, err := txm.CreateTransaction(tests.Context(t), txmgr.TxRequest{ IdempotencyKey: &idempotencyKey, FromAddress: fromAddress, ToAddress: testutils.NewAddress(), @@ -365,7 +366,7 @@ func TestTxm_CreateTransaction(t *testing.T) { }) assert.NoError(t, err) - tx2, err := txm.CreateTransaction(testutils.Context(t), txmgr.TxRequest{ + tx2, err := txm.CreateTransaction(tests.Context(t), txmgr.TxRequest{ IdempotencyKey: &idempotencyKey, FromAddress: fromAddress, ToAddress: testutils.NewAddress(), @@ -399,7 +400,7 @@ func TestTxm_CreateTransaction_OutOfEth(t *testing.T) { config, dbConfig, evmConfig := txmgr.MakeTestConfigs(t) - ethClient := evmtest.NewEthClientMockWithDefaultChain(t) + ethClient := testutils.NewEthClientMockWithDefaultChain(t) estimator := gas.NewEstimator(logger.Test(t), ethClient, config, evmConfig.GasEstimator()) txm, err := makeTestEvmTxm(t, db, ethClient, estimator, evmConfig, evmConfig.GasEstimator(), evmConfig.Transactions(), dbConfig, dbConfig.Listener(), etKeyStore) require.NoError(t, err) @@ -413,7 +414,7 @@ func TestTxm_CreateTransaction_OutOfEth(t *testing.T) { strategy.On("Subject").Return(uuid.NullUUID{}) strategy.On("PruneQueue", mock.Anything, mock.Anything).Return(nil, nil) - etx, err := txm.CreateTransaction(testutils.Context(t), txmgr.TxRequest{ + etx, err := txm.CreateTransaction(tests.Context(t), txmgr.TxRequest{ FromAddress: evmFromAddress, ToAddress: toAddress, EncodedPayload: payload, @@ -437,7 +438,7 @@ func TestTxm_CreateTransaction_OutOfEth(t *testing.T) { strategy.On("Subject").Return(uuid.NullUUID{}) strategy.On("PruneQueue", mock.Anything, mock.Anything).Return(nil, nil) - etx, err := txm.CreateTransaction(testutils.Context(t), txmgr.TxRequest{ + etx, err := txm.CreateTransaction(tests.Context(t), txmgr.TxRequest{ FromAddress: evmFromAddress, ToAddress: toAddress, EncodedPayload: payload, @@ -459,7 +460,7 @@ func TestTxm_CreateTransaction_OutOfEth(t *testing.T) { strategy.On("PruneQueue", mock.Anything, mock.Anything).Return(nil, nil) evmConfig.MaxQueued = uint64(1) - etx, err := txm.CreateTransaction(testutils.Context(t), txmgr.TxRequest{ + etx, err := txm.CreateTransaction(tests.Context(t), txmgr.TxRequest{ FromAddress: evmFromAddress, ToAddress: toAddress, EncodedPayload: payload, @@ -475,7 +476,7 @@ func TestTxm_CreateTransaction_OutOfEth(t *testing.T) { func TestTxm_Lifecycle(t *testing.T) { db := pgtest.NewSqlxDB(t) - ethClient := evmtest.NewEthClientMockWithDefaultChain(t) + ethClient := testutils.NewEthClientMockWithDefaultChain(t) kst := ksmocks.NewEth(t) config, dbConfig, evmConfig := txmgr.MakeTestConfigs(t) @@ -497,13 +498,13 @@ func TestTxm_Lifecycle(t *testing.T) { head := cltest.Head(42) // It should not hang or panic - txm.OnNewLongestChain(testutils.Context(t), head) + txm.OnNewLongestChain(tests.Context(t), head) evmConfig.BumpThreshold = uint64(1) - require.NoError(t, txm.Start(testutils.Context(t))) + require.NoError(t, txm.Start(tests.Context(t))) - ctx, cancel := context.WithTimeout(testutils.Context(t), 5*time.Second) + ctx, cancel := context.WithTimeout(tests.Context(t), 5*time.Second) t.Cleanup(cancel) txm.OnNewLongestChain(ctx, head) require.NoError(t, ctx.Err()) @@ -540,7 +541,7 @@ func TestTxm_Reset(t *testing.T) { cltest.MustInsertConfirmedEthTxWithLegacyAttempt(t, txStore, i, i*42+1, addr2) } - ethClient := evmtest.NewEthClientMockWithDefaultChain(t) + ethClient := testutils.NewEthClientMockWithDefaultChain(t) ethClient.On("HeadByNumber", mock.Anything, (*big.Int)(nil)).Return(nil, nil) ethClient.On("BatchCallContextAll", mock.Anything, mock.Anything).Return(nil).Maybe() ethClient.On("PendingNonceAt", mock.Anything, addr).Return(uint64(128), nil).Maybe() @@ -612,7 +613,7 @@ func newEthReceipt(blockNumber int64, blockHash common.Hash, txHash common.Hash, func mustInsertEthReceipt(t *testing.T, txStore txmgr.TestEvmTxStore, blockNumber int64, blockHash common.Hash, txHash common.Hash) txmgr.Receipt { r := newEthReceipt(blockNumber, blockHash, txHash, 0x1) - id, err := txStore.InsertReceipt(testutils.Context(t), &r.Receipt) + id, err := txStore.InsertReceipt(tests.Context(t), &r.Receipt) require.NoError(t, err) r.ID = id return r @@ -620,7 +621,7 @@ func mustInsertEthReceipt(t *testing.T, txStore txmgr.TestEvmTxStore, blockNumbe func mustInsertRevertedEthReceipt(t *testing.T, txStore txmgr.TestEvmTxStore, blockNumber int64, blockHash common.Hash, txHash common.Hash) txmgr.Receipt { r := newEthReceipt(blockNumber, blockHash, txHash, 0x0) - id, err := txStore.InsertReceipt(testutils.Context(t), &r.Receipt) + id, err := txStore.InsertReceipt(tests.Context(t), &r.Receipt) require.NoError(t, err) r.ID = id return r @@ -641,7 +642,7 @@ func mustInsertConfirmedEthTxBySaveFetchedReceipts(t *testing.T, txStore txmgr.T BlockNumber: big.NewInt(nonce), TransactionIndex: uint(1), } - err := txStore.SaveFetchedReceipts(testutils.Context(t), []*evmtypes.Receipt{&receipt}, txmgrcommon.TxConfirmed, nil, &chainID) + err := txStore.SaveFetchedReceipts(tests.Context(t), []*evmtypes.Receipt{&receipt}, txmgrcommon.TxConfirmed, nil, &chainID) require.NoError(t, err) return etx } @@ -651,14 +652,14 @@ func mustInsertFatalErrorEthTx(t *testing.T, txStore txmgr.TestEvmTxStore, fromA etx.Error = null.StringFrom("something exploded") etx.State = txmgrcommon.TxFatalError - require.NoError(t, txStore.InsertTx(testutils.Context(t), &etx)) + require.NoError(t, txStore.InsertTx(tests.Context(t), &etx)) return etx } func mustInsertUnconfirmedEthTxWithAttemptState(t *testing.T, txStore txmgr.TestEvmTxStore, nonce int64, fromAddress common.Address, txAttemptState txmgrtypes.TxAttemptState, opts ...interface{}) txmgr.Tx { etx := cltest.MustInsertUnconfirmedEthTx(t, txStore, nonce, fromAddress, opts...) attempt := cltest.NewLegacyEthTxAttempt(t, etx.ID) - ctx := testutils.Context(t) + ctx := tests.Context(t) tx := cltest.NewLegacyTransaction(uint64(nonce), testutils.NewAddress(), big.NewInt(142), 242, big.NewInt(342), []byte{1, 2, 3}) rlp := new(bytes.Buffer) @@ -676,7 +677,7 @@ func mustInsertUnconfirmedEthTxWithAttemptState(t *testing.T, txStore txmgr.Test func mustInsertUnconfirmedEthTxWithBroadcastDynamicFeeAttempt(t *testing.T, txStore txmgr.TestEvmTxStore, nonce int64, fromAddress common.Address, opts ...interface{}) txmgr.Tx { etx := cltest.MustInsertUnconfirmedEthTx(t, txStore, nonce, fromAddress, opts...) attempt := cltest.NewDynamicFeeEthTxAttempt(t, etx.ID) - ctx := testutils.Context(t) + ctx := tests.Context(t) addr := testutils.NewAddress() dtx := types.DynamicFeeTx{ @@ -705,7 +706,7 @@ func mustInsertUnconfirmedEthTxWithBroadcastDynamicFeeAttempt(t *testing.T, txSt func mustInsertUnconfirmedEthTxWithInsufficientEthAttempt(t *testing.T, txStore txmgr.TestEvmTxStore, nonce int64, fromAddress common.Address) txmgr.Tx { timeNow := time.Now() etx := cltest.NewEthTx(fromAddress) - ctx := testutils.Context(t) + ctx := tests.Context(t) etx.BroadcastAt = &timeNow etx.InitialBroadcastAt = &timeNow @@ -732,7 +733,7 @@ func mustInsertConfirmedMissingReceiptEthTxWithLegacyAttempt( t *testing.T, txStore txmgr.TestEvmTxStore, nonce int64, broadcastBeforeBlockNum int64, broadcastAt time.Time, fromAddress common.Address) txmgr.Tx { etx := cltest.NewEthTx(fromAddress) - ctx := testutils.Context(t) + ctx := tests.Context(t) etx.BroadcastAt = &broadcastAt etx.InitialBroadcastAt = &broadcastAt @@ -750,7 +751,7 @@ func mustInsertConfirmedMissingReceiptEthTxWithLegacyAttempt( func mustInsertInProgressEthTxWithAttempt(t *testing.T, txStore txmgr.TestEvmTxStore, nonce evmtypes.Nonce, fromAddress common.Address) txmgr.Tx { etx := cltest.NewEthTx(fromAddress) - ctx := testutils.Context(t) + ctx := tests.Context(t) etx.Sequence = &nonce etx.State = txmgrcommon.TxInProgress @@ -807,10 +808,10 @@ func mustCreateUnstartedTx(t testing.TB, txStore txmgr.EvmTxStore, fromAddress c } func mustCreateUnstartedTxFromEvmTxRequest(t testing.TB, txStore txmgr.EvmTxStore, txRequest txmgr.TxRequest, chainID *big.Int) (tx txmgr.Tx) { - tx, err := txStore.CreateTransaction(testutils.Context(t), txRequest, chainID) + tx, err := txStore.CreateTransaction(tests.Context(t), txRequest, chainID) require.NoError(t, err) - _, err = txRequest.Strategy.PruneQueue(testutils.Context(t), txStore) + _, err = txRequest.Strategy.PruneQueue(tests.Context(t), txStore) require.NoError(t, err) return tx diff --git a/core/internal/testutils/testutils.go b/core/internal/testutils/testutils.go index f4867eda69a..6b4388fccf4 100644 --- a/core/internal/testutils/testutils.go +++ b/core/internal/testutils/testutils.go @@ -62,11 +62,6 @@ func NewAddress() common.Address { return common.BytesToAddress(randomBytes(20)) } -func NewAddressPtr() *common.Address { - a := common.BytesToAddress(randomBytes(20)) - return &a -} - // NewPrivateKeyAndAddress returns a new private key and the corresponding address func NewPrivateKeyAndAddress(t testing.TB) (*ecdsa.PrivateKey, common.Address) { privateKey, err := crypto.GenerateKey() @@ -128,12 +123,6 @@ func WaitTimeout(t *testing.T) time.Duration { return DefaultWaitTimeout } -// AfterWaitTimeout returns a channel that will send a time value when the -// WaitTimeout is reached -func AfterWaitTimeout(t *testing.T) <-chan time.Time { - return time.After(WaitTimeout(t)) -} - // Context returns a context with the test's deadline, if available. func Context(tb testing.TB) context.Context { ctx := context.Background() From 8c75b1a5e4573da1b0c774a84891b06773009108 Mon Sep 17 00:00:00 2001 From: Cedric Date: Fri, 7 Jun 2024 14:57:50 +0100 Subject: [PATCH 26/40] [chore] Use named return values for getNodes (#13462) --- .../src/v0.8/keystone/CapabilityRegistry.sol | 10 +++--- .../keystone_capability_registry.go | 34 +++++++++++++------ ...rapper-dependency-versions-do-not-edit.txt | 2 +- 3 files changed, 30 insertions(+), 16 deletions(-) diff --git a/contracts/src/v0.8/keystone/CapabilityRegistry.sol b/contracts/src/v0.8/keystone/CapabilityRegistry.sol index 664d0920131..33cd684e471 100644 --- a/contracts/src/v0.8/keystone/CapabilityRegistry.sol +++ b/contracts/src/v0.8/keystone/CapabilityRegistry.sol @@ -574,12 +574,12 @@ contract CapabilityRegistry is OwnerIsCreator, TypeAndVersionInterface { } /// @notice Gets all nodes - /// @return NodeInfo[] All nodes in the capability registry - /// @return uint32[] All the config counts for the nodes in the capability registry - function getNodes() external view returns (NodeInfo[] memory, uint32[] memory) { + /// @return nodeInfo NodeInfo[] All nodes in the capability registry + /// @return configCounts uint32[] All the config counts for the nodes in the capability registry + function getNodes() external view returns (NodeInfo[] memory nodeInfo, uint32[] memory configCounts) { bytes32[] memory p2pIds = s_nodeP2PIds.values(); - NodeInfo[] memory nodeInfo = new NodeInfo[](p2pIds.length); - uint32[] memory configCounts = new uint32[](p2pIds.length); + nodeInfo = new NodeInfo[](p2pIds.length); + configCounts = new uint32[](p2pIds.length); for (uint256 i; i < p2pIds.length; ++i) { (nodeInfo[i], configCounts[i]) = getNode(p2pIds[i]); diff --git a/core/gethwrappers/keystone/generated/keystone_capability_registry/keystone_capability_registry.go b/core/gethwrappers/keystone/generated/keystone_capability_registry/keystone_capability_registry.go index 786c44db8ab..ead693d88dd 100644 --- a/core/gethwrappers/keystone/generated/keystone_capability_registry/keystone_capability_registry.go +++ b/core/gethwrappers/keystone/generated/keystone_capability_registry/keystone_capability_registry.go @@ -66,8 +66,8 @@ type CapabilityRegistryNodeOperator struct { } var CapabilityRegistryMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"AccessForbidden\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hashedCapabilityId\",\"type\":\"bytes32\"}],\"name\":\"CapabilityAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hashedCapabilityId\",\"type\":\"bytes32\"}],\"name\":\"CapabilityDoesNotExist\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hashedCapabilityId\",\"type\":\"bytes32\"}],\"name\":\"CapabilityIsDeprecated\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"}],\"name\":\"DONDoesNotExist\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"}],\"name\":\"DuplicateDONCapability\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"nodeP2PId\",\"type\":\"bytes32\"}],\"name\":\"DuplicateDONNode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"proposedConfigurationContract\",\"type\":\"address\"}],\"name\":\"InvalidCapabilityConfigurationContractInterface\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"f\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"nodeCount\",\"type\":\"uint256\"}],\"name\":\"InvalidFaultTolerance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"hashedCapabilityIds\",\"type\":\"bytes32[]\"}],\"name\":\"InvalidNodeCapabilities\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidNodeOperatorAdmin\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"}],\"name\":\"InvalidNodeP2PId\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidNodeSigner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"lengthOne\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lengthTwo\",\"type\":\"uint256\"}],\"name\":\"LengthMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"nodeP2PId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"}],\"name\":\"NodeDoesNotSupportCapability\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"}],\"name\":\"NodeOperatorDoesNotExist\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"nodeP2PId\",\"type\":\"bytes32\"}],\"name\":\"NodePartOfDON\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"hashedCapabilityId\",\"type\":\"bytes32\"}],\"name\":\"CapabilityConfigured\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"hashedCapabilityId\",\"type\":\"bytes32\"}],\"name\":\"CapabilityDeprecated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"configCount\",\"type\":\"uint32\"}],\"name\":\"ConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"signer\",\"type\":\"bytes32\"}],\"name\":\"NodeAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"NodeOperatorAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"}],\"name\":\"NodeOperatorRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"NodeOperatorUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"}],\"name\":\"NodeRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"signer\",\"type\":\"bytes32\"}],\"name\":\"NodeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"labelledName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"enumCapabilityRegistry.CapabilityType\",\"name\":\"capabilityType\",\"type\":\"uint8\"},{\"internalType\":\"enumCapabilityRegistry.CapabilityResponseType\",\"name\":\"responseType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"configurationContract\",\"type\":\"address\"}],\"internalType\":\"structCapabilityRegistry.Capability[]\",\"name\":\"capabilities\",\"type\":\"tuple[]\"}],\"name\":\"addCapabilities\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"nodes\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"internalType\":\"structCapabilityRegistry.CapabilityConfiguration[]\",\"name\":\"capabilityConfigurations\",\"type\":\"tuple[]\"},{\"internalType\":\"bool\",\"name\":\"isPublic\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"acceptsWorkflows\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"f\",\"type\":\"uint32\"}],\"name\":\"addDON\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"internalType\":\"structCapabilityRegistry.NodeOperator[]\",\"name\":\"nodeOperators\",\"type\":\"tuple[]\"}],\"name\":\"addNodeOperators\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"signer\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"hashedCapabilityIds\",\"type\":\"bytes32[]\"}],\"internalType\":\"structCapabilityRegistry.NodeInfo[]\",\"name\":\"nodes\",\"type\":\"tuple[]\"}],\"name\":\"addNodes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"hashedCapabilityIds\",\"type\":\"bytes32[]\"}],\"name\":\"deprecateCapabilities\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCapabilities\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"labelledName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"enumCapabilityRegistry.CapabilityType\",\"name\":\"capabilityType\",\"type\":\"uint8\"},{\"internalType\":\"enumCapabilityRegistry.CapabilityResponseType\",\"name\":\"responseType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"configurationContract\",\"type\":\"address\"}],\"internalType\":\"structCapabilityRegistry.Capability[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hashedId\",\"type\":\"bytes32\"}],\"name\":\"getCapability\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"labelledName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"enumCapabilityRegistry.CapabilityType\",\"name\":\"capabilityType\",\"type\":\"uint8\"},{\"internalType\":\"enumCapabilityRegistry.CapabilityResponseType\",\"name\":\"responseType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"configurationContract\",\"type\":\"address\"}],\"internalType\":\"structCapabilityRegistry.Capability\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"}],\"name\":\"getCapabilityConfigs\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"}],\"name\":\"getDON\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"id\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"configCount\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"f\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"isPublic\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"acceptsWorkflows\",\"type\":\"bool\"},{\"internalType\":\"bytes32[]\",\"name\":\"nodeP2PIds\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"internalType\":\"structCapabilityRegistry.CapabilityConfiguration[]\",\"name\":\"capabilityConfigurations\",\"type\":\"tuple[]\"}],\"internalType\":\"structCapabilityRegistry.DONInfo\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDONs\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"id\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"configCount\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"f\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"isPublic\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"acceptsWorkflows\",\"type\":\"bool\"},{\"internalType\":\"bytes32[]\",\"name\":\"nodeP2PIds\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"internalType\":\"structCapabilityRegistry.CapabilityConfiguration[]\",\"name\":\"capabilityConfigurations\",\"type\":\"tuple[]\"}],\"internalType\":\"structCapabilityRegistry.DONInfo[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"labelledName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"}],\"name\":\"getHashedCapabilityId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"}],\"name\":\"getNode\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"signer\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"hashedCapabilityIds\",\"type\":\"bytes32[]\"}],\"internalType\":\"structCapabilityRegistry.NodeInfo\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"configCount\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"}],\"name\":\"getNodeOperator\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"internalType\":\"structCapabilityRegistry.NodeOperator\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNodeOperators\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"internalType\":\"structCapabilityRegistry.NodeOperator[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNodes\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"signer\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"hashedCapabilityIds\",\"type\":\"bytes32[]\"}],\"internalType\":\"structCapabilityRegistry.NodeInfo[]\",\"name\":\"\",\"type\":\"tuple[]\"},{\"internalType\":\"uint32[]\",\"name\":\"\",\"type\":\"uint32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hashedCapabilityId\",\"type\":\"bytes32\"}],\"name\":\"isCapabilityDeprecated\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32[]\",\"name\":\"donIds\",\"type\":\"uint32[]\"}],\"name\":\"removeDONs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32[]\",\"name\":\"nodeOperatorIds\",\"type\":\"uint32[]\"}],\"name\":\"removeNodeOperators\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"removedNodeP2PIds\",\"type\":\"bytes32[]\"}],\"name\":\"removeNodes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"typeAndVersion\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32[]\",\"name\":\"nodes\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"internalType\":\"structCapabilityRegistry.CapabilityConfiguration[]\",\"name\":\"capabilityConfigurations\",\"type\":\"tuple[]\"},{\"internalType\":\"bool\",\"name\":\"isPublic\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"acceptsWorkflows\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"f\",\"type\":\"uint32\"}],\"name\":\"updateDON\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32[]\",\"name\":\"nodeOperatorIds\",\"type\":\"uint32[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"internalType\":\"structCapabilityRegistry.NodeOperator[]\",\"name\":\"nodeOperators\",\"type\":\"tuple[]\"}],\"name\":\"updateNodeOperators\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"signer\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"hashedCapabilityIds\",\"type\":\"bytes32[]\"}],\"internalType\":\"structCapabilityRegistry.NodeInfo[]\",\"name\":\"nodes\",\"type\":\"tuple[]\"}],\"name\":\"updateNodes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x6080604052600e80546001600160401b0319166401000000011790553480156200002857600080fd5b503380600081620000805760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420736574206f776e657220746f207a65726f000000000000000060448201526064015b60405180910390fd5b600080546001600160a01b0319166001600160a01b0384811691909117909155811615620000b357620000b381620000bc565b50505062000167565b336001600160a01b03821603620001165760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640162000077565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b614db980620001776000396000f3fe608060405234801561001057600080fd5b50600436106101ae5760003560e01c80635d83d967116100ee57806386fa4246116100975780639cb7c5f4116100715780639cb7c5f4146103ea578063ddbe4f821461040a578063e29581aa1461041f578063f2fde38b1461043557600080fd5b806386fa42461461039c5780638da5cb5b146103af57806395864d1f146103d757600080fd5b8063715f5295116100c8578063715f52951461036e57806373ac22b41461038157806379ba50971461039457600080fd5b80635d83d967146103335780635e65e3091461034657806366acaa331461035957600080fd5b806322bdbcbc1161015b5780632c01a1e8116101355780632c01a1e8146102cb578063398f3773146102de5780633f2a13c9146102f157806350c946fe1461031257600080fd5b806322bdbcbc146102785780632353740514610298578063275459f2146102b857600080fd5b8063193ec0061161018c578063193ec0061461023b5780631d05394c14610250578063214502431461026357600080fd5b80630fe5800a146101b357806312570011146101d9578063181f5a77146101fc575b600080fd5b6101c66101c1366004613bd7565b610448565b6040519081526020015b60405180910390f35b6101ec6101e7366004613c3b565b61047c565b60405190151581526020016101d0565b604080518082018252601881527f4361706162696c697479526567697374727920312e302e300000000000000000602082015290516101d09190613cc2565b61024e610249366004613d41565b610489565b005b61024e61025e366004613de6565b610553565b61026b61070f565b6040516101d09190613f50565b61028b610286366004613fd0565b610874565b6040516101d09190614028565b6102ab6102a6366004613fd0565b610961565b6040516101d0919061403b565b61024e6102c6366004613de6565b6109a5565b61024e6102d9366004613de6565b610a7c565b61024e6102ec366004613de6565b610c9f565b6103046102ff36600461404e565b610e67565b6040516101d0929190614078565b610325610320366004613c3b565b611053565b6040516101d09291906140df565b61024e610341366004613de6565b6110f8565b61024e610354366004613de6565b611246565b6103616116b8565b6040516101d09190614107565b61024e61037c366004613de6565b6118a3565b61024e61038f366004613de6565b61195e565b61024e611dcf565b61024e6103aa36600461417a565b611ecc565b60005460405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101d0565b61024e6103e53660046141e6565b612212565b6103fd6103f8366004613c3b565b6122de565b6040516101d09190614357565b6104126124e3565b6040516101d0919061436a565b6104276127e1565b6040516101d09291906143dd565b61024e6104433660046144c0565b612959565b6000828260405160200161045d929190614078565b6040516020818303038152906040528051906020012090505b92915050565b600061047660058361296d565b610491612988565b600e805460009164010000000090910463ffffffff169060046104b38361450a565b82546101009290920a63ffffffff8181021990931691831602179091558181166000818152600d602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001684179055815160a0810183529283526001908301528715159082015285151560608201529084166080820152909150610549908990899089908990612a0b565b5050505050505050565b61055b612988565b60005b8181101561070a57600083838381811061057a5761057a61452d565b905060200201602081019061058f9190613fd0565b63ffffffff8082166000908152600d60209081526040808320805464010000000090049094168084526001850190925282209394509192905b6105d1826130bb565b811015610629576106188563ffffffff16600c60006105f985876130c590919063ffffffff16565b81526020019081526020016000206004016130d190919063ffffffff16565b506106228161455c565b90506105c8565b508254640100000000900463ffffffff16600003610680576040517f2b62be9b00000000000000000000000000000000000000000000000000000000815263ffffffff851660048201526024015b60405180910390fd5b63ffffffff84166000818152600d6020908152604080832080547fffffffffffffffffffffffffffffffffffff00000000000000000000000000001690558051938452908301919091527ff264aae70bf6a9d90e68e0f9b393f4e7fbea67b063b0f336e0b36c1581703651910160405180910390a150505050806107039061455c565b905061055e565b505050565b600e54606090640100000000900463ffffffff166000610730600183614594565b63ffffffff1667ffffffffffffffff81111561074e5761074e613a71565b6040519080825280602002602001820160405280156107d557816020015b6040805160e081018252600080825260208083018290529282018190526060808301829052608083019190915260a0820181905260c082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90920191018161076c5790505b509050600060015b8363ffffffff168163ffffffff1610156108515763ffffffff8082166000908152600d6020526040902054161561084157610817816130dd565b8383815181106108295761082961452d565b60200260200101819052508161083e9061455c565b91505b61084a8161450a565b90506107dd565b5061085d600184614594565b63ffffffff16811461086d578082525b5092915050565b60408051808201909152600081526060602082015263ffffffff82166000908152600b60209081526040918290208251808401909352805473ffffffffffffffffffffffffffffffffffffffff16835260018101805491928401916108d8906145b1565b80601f0160208091040260200160405190810160405280929190818152602001828054610904906145b1565b80156109515780601f1061092657610100808354040283529160200191610951565b820191906000526020600020905b81548152906001019060200180831161093457829003601f168201915b5050505050815250509050919050565b6040805160e0810182526000808252602082018190529181018290526060808201839052608082019290925260a0810182905260c0810191909152610476826130dd565b6109ad612988565b60005b63ffffffff811682111561070a57600083838363ffffffff168181106109d8576109d861452d565b90506020020160208101906109ed9190613fd0565b63ffffffff81166000908152600b6020526040812080547fffffffffffffffffffffffff0000000000000000000000000000000000000000168155919250610a386001830182613a04565b505060405163ffffffff8216907fa59268ca81d40429e65ccea5385b59cf2d3fc6519371dee92f8eb1dae5107a7a90600090a250610a758161450a565b90506109b0565b6000805473ffffffffffffffffffffffffffffffffffffffff163314905b82811015610c99576000848483818110610ab657610ab661452d565b602090810292909201356000818152600c90935260409092206001810154929350919050610b13576040517f64e2ee9200000000000000000000000000000000000000000000000000000000815260048101839052602401610677565b6000610b21826004016130bb565b1115610b5c576040517f34a4a3f600000000000000000000000000000000000000000000000000000000815260048101839052602401610677565b83158015610b965750805463ffffffff166000908152600b602052604090205473ffffffffffffffffffffffffffffffffffffffff163314155b15610bcf576040517f9473075d000000000000000000000000000000000000000000000000000000008152336004820152602401610677565b6001810154610be0906007906130d1565b506002810154610bf2906009906130d1565b506000828152600c6020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016815560018101829055600281018290559060048201818181610c478282613a3e565b5050505050507f5254e609a97bab37b7cc79fe128f85c097bd6015c6e1624ae0ba392eb975320582604051610c7e91815260200190565b60405180910390a1505080610c929061455c565b9050610a9a565b50505050565b610ca7612988565b60005b8181101561070a576000838383818110610cc657610cc661452d565b9050602002810190610cd89190614604565b610ce190614642565b805190915073ffffffffffffffffffffffffffffffffffffffff16610d32576040517feeacd93900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600e54604080518082018252835173ffffffffffffffffffffffffffffffffffffffff908116825260208086015181840190815263ffffffff9095166000818152600b909252939020825181547fffffffffffffffffffffffff00000000000000000000000000000000000000001692169190911781559251919290916001820190610dbe90826146fa565b5050600e8054909150600090610dd99063ffffffff1661450a565b91906101000a81548163ffffffff021916908363ffffffff160217905550816000015173ffffffffffffffffffffffffffffffffffffffff168163ffffffff167f78e94ca80be2c30abc061b99e7eb8583b1254781734b1e3ce339abb57da2fe8e8460200151604051610e4c9190613cc2565b60405180910390a3505080610e609061455c565b9050610caa565b63ffffffff8083166000908152600d60209081526040808320805464010000000090049094168084526001909401825280832085845260030190915281208054606093849390929091610eb9906145b1565b80601f0160208091040260200160405190810160405280929190818152602001828054610ee5906145b1565b8015610f325780601f10610f0757610100808354040283529160200191610f32565b820191906000526020600020905b815481529060010190602001808311610f1557829003601f168201915b5050506000888152600260208190526040909120015492935060609262010000900473ffffffffffffffffffffffffffffffffffffffff16159150611045905057600086815260026020819052604091829020015490517f8318ed5d00000000000000000000000000000000000000000000000000000000815263ffffffff891660048201526201000090910473ffffffffffffffffffffffffffffffffffffffff1690638318ed5d90602401600060405180830381865afa158015610ffc573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526110429190810190614814565b90505b9093509150505b9250929050565b6040805160808101825260008082526020820181905291810191909152606080820152604080516080810182526000848152600c6020908152838220805463ffffffff8082168652600183015484870152600283015486880152640100000000909104168352600301905291822060608201906110cf906133b9565b90526000938452600c602052604090932054929364010000000090930463ffffffff1692915050565b611100612988565b60005b8181101561070a57600083838381811061111f5761111f61452d565b90506020020135905061113c81600361296d90919063ffffffff16565b611175576040517fe181733f00000000000000000000000000000000000000000000000000000000815260048101829052602401610677565b6111806005826133c6565b6111b9576040517ff7d7a29400000000000000000000000000000000000000000000000000000000815260048101829052602401610677565b6000818152600260205260408120906111d28282613a04565b6111e0600183016000613a04565b5060020180547fffffffffffffffffffff0000000000000000000000000000000000000000000016905560405181907fdcea1b78b6ddc31592a94607d537543fcaafda6cc52d6d5cc7bbfca1422baf2190600090a25061123f8161455c565b9050611103565b6000805473ffffffffffffffffffffffffffffffffffffffff163314905b82811015610c995760008484838181106112805761128061452d565b90506020028101906112929190614882565b61129b906148b6565b805163ffffffff166000908152600b602090815260408083208151808301909252805473ffffffffffffffffffffffffffffffffffffffff1682526001810180549596509394919390928401916112f1906145b1565b80601f016020809104026020016040519081016040528092919081815260200182805461131d906145b1565b801561136a5780601f1061133f5761010080835404028352916020019161136a565b820191906000526020600020905b81548152906001019060200180831161134d57829003601f168201915b50505050508152505090508315801561139a5750805173ffffffffffffffffffffffffffffffffffffffff163314155b156113d3576040517f9473075d000000000000000000000000000000000000000000000000000000008152336004820152602401610677565b6040808301516000908152600c6020522060018101546114275782604001516040517f64e2ee9200000000000000000000000000000000000000000000000000000000815260040161067791815260200190565b6020830151158061145757508260200151816001015414158015611457575060208301516114579060079061296d565b1561148e576040517f8377314600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606083015180516000036114d057806040517f3748d4c60000000000000000000000000000000000000000000000000000000081526004016106779190614989565b8154640100000000900463ffffffff168260046114ec8361450a565b82546101009290920a63ffffffff8181021990931691831602179091558354640100000000900416905060005b82518110156115e45761154f8382815181106115375761153761452d565b6020026020010151600361296d90919063ffffffff16565b61158757826040517f3748d4c60000000000000000000000000000000000000000000000000000000081526004016106779190614989565b6115d383828151811061159c5761159c61452d565b60200260200101518560030160008563ffffffff1663ffffffff1681526020019081526020016000206133c690919063ffffffff16565b506115dd8161455c565b9050611519565b50845183547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff909116178355604085015160028401556001830154602086015181146116565761163b6007826130d1565b50602086015160018501819055611654906007906133c6565b505b85516040808801516020808a015183519283529082015263ffffffff909216917f4b5b465e22eea0c3d40c30e936643245b80d19b2dcf75788c0699fe8d8db645b910160405180910390a2505050505050806116b19061455c565b9050611264565b600e5460609063ffffffff1660006116d1600183614594565b63ffffffff1667ffffffffffffffff8111156116ef576116ef613a71565b60405190808252806020026020018201604052801561173557816020015b60408051808201909152600081526060602082015281526020019060019003908161170d5790505b509050600060015b8363ffffffff168163ffffffff16101561188d5763ffffffff81166000908152600b602052604090205473ffffffffffffffffffffffffffffffffffffffff161561187d5763ffffffff81166000908152600b60209081526040918290208251808401909352805473ffffffffffffffffffffffffffffffffffffffff16835260018101805491928401916117d1906145b1565b80601f01602080910402602001604051908101604052809291908181526020018280546117fd906145b1565b801561184a5780601f1061181f5761010080835404028352916020019161184a565b820191906000526020600020905b81548152906001019060200180831161182d57829003601f168201915b5050505050815250508383815181106118655761186561452d565b60200260200101819052508161187a9061455c565b91505b6118868161450a565b905061173d565b50600e5461085d9060019063ffffffff16614594565b6118ab612988565b60005b8181101561070a5760008383838181106118ca576118ca61452d565b90506020028101906118dc919061499c565b6118e5906149df565b905060006118fb82600001518360200151610448565b90506119086003826133c6565b611941576040517febf5255100000000000000000000000000000000000000000000000000000000815260048101829052602401610677565b61194b81836133d2565b5050806119579061455c565b90506118ae565b6000805473ffffffffffffffffffffffffffffffffffffffff163314905b82811015610c995760008484838181106119985761199861452d565b90506020028101906119aa9190614882565b6119b3906148b6565b805163ffffffff166000908152600b602090815260408083208151808301909252805473ffffffffffffffffffffffffffffffffffffffff168252600181018054959650939491939092840191611a09906145b1565b80601f0160208091040260200160405190810160405280929190818152602001828054611a35906145b1565b8015611a825780601f10611a5757610100808354040283529160200191611a82565b820191906000526020600020905b815481529060010190602001808311611a6557829003601f168201915b50505091909252505081519192505073ffffffffffffffffffffffffffffffffffffffff16611ae85781516040517fadd9ae1e00000000000000000000000000000000000000000000000000000000815263ffffffff9091166004820152602401610677565b83158015611b0d5750805173ffffffffffffffffffffffffffffffffffffffff163314155b15611b46576040517f9473075d000000000000000000000000000000000000000000000000000000008152336004820152602401610677565b6040808301516000908152600c602052206001810154151580611b6b57506040830151155b15611baa5782604001516040517f64e2ee9200000000000000000000000000000000000000000000000000000000815260040161067791815260200190565b60208301511580611bc757506020830151611bc79060079061296d565b15611bfe576040517f8377314600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60608301518051600003611c4057806040517f3748d4c60000000000000000000000000000000000000000000000000000000081526004016106779190614989565b81548290600490611c5e90640100000000900463ffffffff1661450a565b82546101009290920a63ffffffff818102199093169183160217909155825464010000000090041660005b8251811015611d0557611ca78382815181106115375761153761452d565b611cdf57826040517f3748d4c60000000000000000000000000000000000000000000000000000000081526004016106779190614989565b611cf483828151811061159c5761159c61452d565b50611cfe8161455c565b9050611c89565b50845183547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff91821617845560408601516002850155602086015160018501819055611d5b91600791906133c616565b506040850151611d6d906009906133c6565b50845160408087015160208089015183519283529082015263ffffffff909216917f74becb12a5e8fd0e98077d02dfba8f647c9670c9df177e42c2418cf17a636f05910160405180910390a2505050505080611dc89061455c565b905061197c565b60015473ffffffffffffffffffffffffffffffffffffffff163314611e50576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4d7573742062652070726f706f736564206f776e6572000000000000000000006044820152606401610677565b60008054337fffffffffffffffffffffffff00000000000000000000000000000000000000008083168217845560018054909116905560405173ffffffffffffffffffffffffffffffffffffffff90921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b828114611f0f576040517fab8b67c60000000000000000000000000000000000000000000000000000000081526004810184905260248101829052604401610677565b6000805473ffffffffffffffffffffffffffffffffffffffff16905b8481101561220a576000868683818110611f4757611f4761452d565b9050602002016020810190611f5c9190613fd0565b63ffffffff81166000908152600b6020526040902080549192509073ffffffffffffffffffffffffffffffffffffffff16611fcb576040517fadd9ae1e00000000000000000000000000000000000000000000000000000000815263ffffffff83166004820152602401610677565b6000868685818110611fdf57611fdf61452d565b9050602002810190611ff19190614604565b611ffa90614642565b805190915073ffffffffffffffffffffffffffffffffffffffff1661204b576040517feeacd93900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805173ffffffffffffffffffffffffffffffffffffffff16331480159061208857503373ffffffffffffffffffffffffffffffffffffffff861614155b156120c1576040517f9473075d000000000000000000000000000000000000000000000000000000008152336004820152602401610677565b8051825473ffffffffffffffffffffffffffffffffffffffff908116911614158061213d57506020808201516040516120fa9201613cc2565b60405160208183030381529060405280519060200120826001016040516020016121249190614a85565b6040516020818303038152906040528051906020012014155b156121f657805182547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9091161782556020810151600183019061219790826146fa565b50806000015173ffffffffffffffffffffffffffffffffffffffff168363ffffffff167f86f41145bde5dd7f523305452e4aad3685508c181432ec733d5f345009358a2883602001516040516121ed9190613cc2565b60405180910390a35b505050806122039061455c565b9050611f2b565b505050505050565b61221a612988565b63ffffffff8089166000908152600d602052604081205464010000000090049091169081900361227e576040517f2b62be9b00000000000000000000000000000000000000000000000000000000815263ffffffff8a166004820152602401610677565b6122d3888888886040518060a001604052808f63ffffffff168152602001876122a69061450a565b97508763ffffffff1681526020018a1515815260200189151581526020018863ffffffff16815250612a0b565b505050505050505050565b61230e6040805160a081018252606080825260208201529081016000815260200160008152600060209091015290565b60008281526002602052604090819020815160a08101909252805482908290612336906145b1565b80601f0160208091040260200160405190810160405280929190818152602001828054612362906145b1565b80156123af5780601f10612384576101008083540402835291602001916123af565b820191906000526020600020905b81548152906001019060200180831161239257829003601f168201915b505050505081526020016001820180546123c8906145b1565b80601f01602080910402602001604051908101604052809291908181526020018280546123f4906145b1565b80156124415780601f1061241657610100808354040283529160200191612441565b820191906000526020600020905b81548152906001019060200180831161242457829003601f168201915b5050509183525050600282015460209091019060ff1660038111156124685761246861429b565b60038111156124795761247961429b565b81526020016002820160019054906101000a900460ff1660018111156124a1576124a161429b565b60018111156124b2576124b261429b565b81526002919091015462010000900473ffffffffffffffffffffffffffffffffffffffff1660209091015292915050565b606060006124f160036133b9565b905060006124ff60056130bb565b825161250b9190614b2e565b67ffffffffffffffff81111561252357612523613a71565b60405190808252806020026020018201604052801561258457816020015b6125716040805160a081018252606080825260208201529081016000815260200160008152600060209091015290565b8152602001906001900390816125415790505b5090506000805b83518110156127d85760008482815181106125a8576125a861452d565b602002602001015190506125c681600561296d90919063ffffffff16565b6127c75760008181526002602052604090819020815160a081019092528054829082906125f2906145b1565b80601f016020809104026020016040519081016040528092919081815260200182805461261e906145b1565b801561266b5780601f106126405761010080835404028352916020019161266b565b820191906000526020600020905b81548152906001019060200180831161264e57829003601f168201915b50505050508152602001600182018054612684906145b1565b80601f01602080910402602001604051908101604052809291908181526020018280546126b0906145b1565b80156126fd5780601f106126d2576101008083540402835291602001916126fd565b820191906000526020600020905b8154815290600101906020018083116126e057829003601f168201915b5050509183525050600282015460209091019060ff1660038111156127245761272461429b565b60038111156127355761273561429b565b81526020016002820160019054906101000a900460ff16600181111561275d5761275d61429b565b600181111561276e5761276e61429b565b81526002919091015462010000900473ffffffffffffffffffffffffffffffffffffffff1660209091015284518590859081106127ad576127ad61452d565b602002602001018190525082806127c39061455c565b9350505b506127d18161455c565b905061258b565b50909392505050565b60608060006127f060096133b9565b90506000815167ffffffffffffffff81111561280e5761280e613a71565b60405190808252806020026020018201604052801561287d57816020015b60408051608081018252600080825260208083018290529282015260608082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90920191018161282c5790505b5090506000825167ffffffffffffffff81111561289c5761289c613a71565b6040519080825280602002602001820160405280156128c5578160200160208202803683370190505b50905060005b835181101561294e576128f68482815181106128e9576128e961452d565b6020026020010151611053565b8483815181106129085761290861452d565b602002602001018484815181106129215761292161452d565b602002602001018263ffffffff1663ffffffff168152508290525050806129479061455c565b90506128cb565b509094909350915050565b612961612988565b61296a81613666565b50565b600081815260018301602052604081205415155b9392505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314612a09576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4f6e6c792063616c6c61626c65206279206f776e6572000000000000000000006044820152606401610677565b565b805163ffffffff9081166000908152600d602090815260408083208286015185168452600101909152902060808301519091161580612a5f575060808201518590612a57906001614b41565b63ffffffff16115b15612aab5760808201516040517fd5f5269100000000000000000000000000000000000000000000000000000000815263ffffffff909116600482015260248101869052604401610677565b6001826020015163ffffffff161115612b5757815163ffffffff166000908152600d602090815260408220908401516001918201918391612aec9190614594565b63ffffffff1663ffffffff168152602001908152602001600020905060005b612b14826130bb565b811015612b5457612b43846000015163ffffffff16600c60006105f985876000016130c590919063ffffffff16565b50612b4d8161455c565b9050612b0b565b50505b60005b85811015612c4157612b87878783818110612b7757612b7761452d565b85926020909102013590506133c6565b612be8578251878783818110612b9f57612b9f61452d565b6040517f636e405700000000000000000000000000000000000000000000000000000000815263ffffffff90941660048501526020029190910135602483015250604401610677565b8251612c309063ffffffff16600c60008a8a86818110612c0a57612c0a61452d565b9050602002013581526020019081526020016000206004016133c690919063ffffffff16565b50612c3a8161455c565b9050612b5a565b5060005b83811015612f2d5736858583818110612c6057612c6061452d565b9050602002810190612c729190614604565b9050612c806003823561296d565b612cb9576040517fe181733f00000000000000000000000000000000000000000000000000000000815281356004820152602401610677565b612cc56005823561296d565b15612cff576040517ff7d7a29400000000000000000000000000000000000000000000000000000000815281356004820152602401610677565b8035600090815260038401602052604081208054612d1c906145b1565b90501115612d685783516040517f3927d08000000000000000000000000000000000000000000000000000000000815263ffffffff909116600482015281356024820152604401610677565b60005b87811015612e7a57612e0f8235600c60008c8c86818110612d8e57612d8e61452d565b9050602002013581526020019081526020016000206003016000600c60008e8e88818110612dbe57612dbe61452d565b90506020020135815260200190815260200160002060000160049054906101000a900463ffffffff1663ffffffff1663ffffffff16815260200190815260200160002061296d90919063ffffffff16565b612e6a57888882818110612e2557612e2561452d565b6040517fa7e792500000000000000000000000000000000000000000000000000000000081526020909102929092013560048301525082356024820152604401610677565b612e738161455c565b9050612d6b565b5060028301805460018101825560009182526020918290208335910155612ea390820182614b5e565b82356000908152600386016020526040902091612ec1919083614bc3565b508351602080860151612f1c92918435908c908c90612ee290880188614b5e565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061375b92505050565b50612f268161455c565b9050612c45565b50604080830151835163ffffffff9081166000908152600d602090815284822080549415156c01000000000000000000000000027fffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff90951694909417909355606086015186518316825284822080549115156d0100000000000000000000000000027fffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff9092169190911790556080860151865183168252848220805491841668010000000000000000027fffffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffff909216919091179055918501805186518316845292849020805493909216640100000000027fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff9093169290921790558351905191517ff264aae70bf6a9d90e68e0f9b393f4e7fbea67b063b0f336e0b36c1581703651926130ab929163ffffffff92831681529116602082015260400190565b60405180910390a1505050505050565b6000610476825490565b6000612981838361383c565b60006129818383613866565b6040805160e0810182526000808252602080830182905282840182905260608084018390526080840183905260a0840181905260c084015263ffffffff8581168352600d825284832080546401000000009004909116808452600190910182528483206002810180548751818602810186019098528088529596929591949390919083018282801561318e57602002820191906000526020600020905b81548152602001906001019080831161317a575b505050505090506000815167ffffffffffffffff8111156131b1576131b1613a71565b6040519080825280602002602001820160405280156131f757816020015b6040805180820190915260008152606060208201528152602001906001900390816131cf5790505b50905060005b81518110156133185760405180604001604052808483815181106132235761322361452d565b602002602001015181526020018560030160008685815181106132485761324861452d565b602002602001015181526020019081526020016000208054613269906145b1565b80601f0160208091040260200160405190810160405280929190818152602001828054613295906145b1565b80156132e25780601f106132b7576101008083540402835291602001916132e2565b820191906000526020600020905b8154815290600101906020018083116132c557829003601f168201915b50505050508152508282815181106132fc576132fc61452d565b6020026020010181905250806133119061455c565b90506131fd565b506040805160e08101825263ffffffff8089166000818152600d60208181528683205480861687528b8616828801526801000000000000000081049095169686019690965260ff6c010000000000000000000000008504811615156060870152929091529093526d010000000000000000000000000090049091161515608082015260a081016133a7856133b9565b81526020019190915295945050505050565b6060600061298183613959565b600061298183836139b5565b608081015173ffffffffffffffffffffffffffffffffffffffff161561352057608081015173ffffffffffffffffffffffffffffffffffffffff163b15806134cb575060808101516040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527f78bea72100000000000000000000000000000000000000000000000000000000600482015273ffffffffffffffffffffffffffffffffffffffff909116906301ffc9a790602401602060405180830381865afa1580156134a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134c99190614cde565b155b156135205760808101516040517fabb5e3fd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602401610677565b60008281526002602052604090208151829190819061353f90826146fa565b506020820151600182019061355490826146fa565b5060408201516002820180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660018360038111156135965761359661429b565b021790555060608201516002820180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101008360018111156135dd576135dd61429b565b0217905550608091909101516002909101805473ffffffffffffffffffffffffffffffffffffffff90921662010000027fffffffffffffffffffff0000000000000000000000000000000000000000ffff90921691909117905560405182907f04f0a9bcf3f3a3b42a4d7ca081119755f82ebe43e0d30c8f7292c4fe0dc4a2ae90600090a25050565b3373ffffffffffffffffffffffffffffffffffffffff8216036136e5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c660000000000000000006044820152606401610677565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b6000848152600260208190526040909120015462010000900473ffffffffffffffffffffffffffffffffffffffff161561220a57600084815260026020819052604091829020015490517ffba64a7c0000000000000000000000000000000000000000000000000000000081526201000090910473ffffffffffffffffffffffffffffffffffffffff169063fba64a7c90613802908690869086908b908d90600401614cfb565b600060405180830381600087803b15801561381c57600080fd5b505af1158015613830573d6000803e3d6000fd5b50505050505050505050565b60008260000182815481106138535761385361452d565b9060005260206000200154905092915050565b6000818152600183016020526040812054801561394f57600061388a600183614b2e565b855490915060009061389e90600190614b2e565b90508181146139035760008660000182815481106138be576138be61452d565b90600052602060002001549050808760000184815481106138e1576138e161452d565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061391457613914614d7d565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610476565b6000915050610476565b6060816000018054806020026020016040519081016040528092919081815260200182805480156139a957602002820191906000526020600020905b815481526020019060010190808311613995575b50505050509050919050565b60008181526001830160205260408120546139fc57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610476565b506000610476565b508054613a10906145b1565b6000825580601f10613a20575050565b601f01602090049060005260206000209081019061296a9190613a58565b508054600082559060005260206000209081019061296a91905b5b80821115613a6d5760008155600101613a59565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516080810167ffffffffffffffff81118282101715613ac357613ac3613a71565b60405290565b60405160a0810167ffffffffffffffff81118282101715613ac357613ac3613a71565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715613b3357613b33613a71565b604052919050565b600067ffffffffffffffff821115613b5557613b55613a71565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b600082601f830112613b9257600080fd5b8135613ba5613ba082613b3b565b613aec565b818152846020838601011115613bba57600080fd5b816020850160208301376000918101602001919091529392505050565b60008060408385031215613bea57600080fd5b823567ffffffffffffffff80821115613c0257600080fd5b613c0e86838701613b81565b93506020850135915080821115613c2457600080fd5b50613c3185828601613b81565b9150509250929050565b600060208284031215613c4d57600080fd5b5035919050565b60005b83811015613c6f578181015183820152602001613c57565b50506000910152565b60008151808452613c90816020860160208601613c54565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006129816020830184613c78565b60008083601f840112613ce757600080fd5b50813567ffffffffffffffff811115613cff57600080fd5b6020830191508360208260051b850101111561104c57600080fd5b801515811461296a57600080fd5b803563ffffffff81168114613d3c57600080fd5b919050565b600080600080600080600060a0888a031215613d5c57600080fd5b873567ffffffffffffffff80821115613d7457600080fd5b613d808b838c01613cd5565b909950975060208a0135915080821115613d9957600080fd5b50613da68a828b01613cd5565b9096509450506040880135613dba81613d1a565b92506060880135613dca81613d1a565b9150613dd860808901613d28565b905092959891949750929550565b60008060208385031215613df957600080fd5b823567ffffffffffffffff811115613e1057600080fd5b613e1c85828601613cd5565b90969095509350505050565b600081518084526020808501945080840160005b83811015613e5857815187529582019590820190600101613e3c565b509495945050505050565b600063ffffffff80835116845260208181850151168186015260408281860151168187015260608501511515606087015260808501511515608087015260a0850151925060e060a0870152613ebb60e0870184613e28565b925060c085015186840360c08801528381518086528486019150848160051b870101858401935060005b82811015613f42578782037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0018452845180518352870151878301879052613f2f87840182613c78565b9588019594880194925050600101613ee5565b509998505050505050505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015613fc3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0888603018452613fb1858351613e63565b94509285019290850190600101613f77565b5092979650505050505050565b600060208284031215613fe257600080fd5b61298182613d28565b73ffffffffffffffffffffffffffffffffffffffff815116825260006020820151604060208501526140206040850182613c78565b949350505050565b6020815260006129816020830184613feb565b6020815260006129816020830184613e63565b6000806040838503121561406157600080fd5b61406a83613d28565b946020939093013593505050565b60408152600061408b6040830185613c78565b828103602084015261409d8185613c78565b95945050505050565b63ffffffff8151168252602081015160208301526040810151604083015260006060820151608060608501526140206080850182613e28565b6040815260006140f260408301856140a6565b905063ffffffff831660208301529392505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015613fc3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0888603018452614168858351613feb565b9450928501929085019060010161412e565b6000806000806040858703121561419057600080fd5b843567ffffffffffffffff808211156141a857600080fd5b6141b488838901613cd5565b909650945060208701359150808211156141cd57600080fd5b506141da87828801613cd5565b95989497509550505050565b60008060008060008060008060c0898b03121561420257600080fd5b61420b89613d28565b9750602089013567ffffffffffffffff8082111561422857600080fd5b6142348c838d01613cd5565b909950975060408b013591508082111561424d57600080fd5b5061425a8b828c01613cd5565b909650945050606089013561426e81613d1a565b9250608089013561427e81613d1a565b915061428c60a08a01613d28565b90509295985092959890939650565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6000815160a084526142df60a0850182613c78565b9050602083015184820360208601526142f88282613c78565b9150506040830151600481106143105761431061429b565b604085015260608301516002811061432a5761432a61429b565b606085015260809283015173ffffffffffffffffffffffffffffffffffffffff1692909301919091525090565b60208152600061298160208301846142ca565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015613fc3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08886030184526143cb8583516142ca565b94509285019290850190600101614391565b6000604082016040835280855180835260608501915060608160051b8601019250602080880160005b83811015614452577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08887030185526144408683516140a6565b95509382019390820190600101614406565b50508584038187015286518085528782019482019350915060005b8281101561448f57845163ffffffff168452938101939281019260010161446d565b5091979650505050505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114613d3c57600080fd5b6000602082840312156144d257600080fd5b6129818261449c565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600063ffffffff808316818103614523576145236144db565b6001019392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361458d5761458d6144db565b5060010190565b63ffffffff82811682821603908082111561086d5761086d6144db565b600181811c908216806145c557607f821691505b6020821081036145fe577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc183360301811261463857600080fd5b9190910192915050565b60006040823603121561465457600080fd5b6040516040810167ffffffffffffffff828210818311171561467857614678613a71565b816040526146858561449c565b8352602085013591508082111561469b57600080fd5b506146a836828601613b81565b60208301525092915050565b601f82111561070a57600081815260208120601f850160051c810160208610156146db5750805b601f850160051c820191505b8181101561220a578281556001016146e7565b815167ffffffffffffffff81111561471457614714613a71565b6147288161472284546145b1565b846146b4565b602080601f83116001811461477b57600084156147455750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b17855561220a565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b828110156147c8578886015182559484019460019091019084016147a9565b508582101561480457878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b60006020828403121561482657600080fd5b815167ffffffffffffffff81111561483d57600080fd5b8201601f8101841361484e57600080fd5b805161485c613ba082613b3b565b81815285602083850101111561487157600080fd5b61409d826020830160208601613c54565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8183360301811261463857600080fd5b6000608082360312156148c857600080fd5b6148d0613aa0565b6148d983613d28565b81526020808401358183015260408401356040830152606084013567ffffffffffffffff8082111561490a57600080fd5b9085019036601f83011261491d57600080fd5b81358181111561492f5761492f613a71565b8060051b9150614940848301613aec565b818152918301840191848101903684111561495a57600080fd5b938501935b838510156149785784358252938501939085019061495f565b606087015250939695505050505050565b6020815260006129816020830184613e28565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6183360301811261463857600080fd5b803560028110613d3c57600080fd5b600060a082360312156149f157600080fd5b6149f9613ac9565b823567ffffffffffffffff80821115614a1157600080fd5b614a1d36838701613b81565b83526020850135915080821115614a3357600080fd5b50614a4036828601613b81565b602083015250604083013560048110614a5857600080fd5b6040820152614a69606084016149d0565b6060820152614a7a6080840161449c565b608082015292915050565b6000602080835260008454614a99816145b1565b80848701526040600180841660008114614aba5760018114614af257614b20565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008516838a01528284151560051b8a01019550614b20565b896000528660002060005b85811015614b185781548b8201860152908301908801614afd565b8a0184019650505b509398975050505050505050565b81810381811115610476576104766144db565b63ffffffff81811683821601908082111561086d5761086d6144db565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614b9357600080fd5b83018035915067ffffffffffffffff821115614bae57600080fd5b60200191503681900382131561104c57600080fd5b67ffffffffffffffff831115614bdb57614bdb613a71565b614bef83614be983546145b1565b836146b4565b6000601f841160018114614c415760008515614c0b5750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355614cd7565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b82811015614c905786850135825560209485019460019092019101614c70565b5086821015614ccb577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b600060208284031215614cf057600080fd5b815161298181613d1a565b6080815284608082015260007f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff861115614d3457600080fd5b8560051b808860a0850137820182810360a09081016020850152614d5a90820187613c78565b91505063ffffffff80851660408401528084166060840152509695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea164736f6c6343000813000a", + ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"AccessForbidden\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hashedCapabilityId\",\"type\":\"bytes32\"}],\"name\":\"CapabilityAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hashedCapabilityId\",\"type\":\"bytes32\"}],\"name\":\"CapabilityDoesNotExist\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hashedCapabilityId\",\"type\":\"bytes32\"}],\"name\":\"CapabilityIsDeprecated\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"}],\"name\":\"DONDoesNotExist\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"}],\"name\":\"DuplicateDONCapability\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"nodeP2PId\",\"type\":\"bytes32\"}],\"name\":\"DuplicateDONNode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"proposedConfigurationContract\",\"type\":\"address\"}],\"name\":\"InvalidCapabilityConfigurationContractInterface\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"f\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"nodeCount\",\"type\":\"uint256\"}],\"name\":\"InvalidFaultTolerance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"hashedCapabilityIds\",\"type\":\"bytes32[]\"}],\"name\":\"InvalidNodeCapabilities\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidNodeOperatorAdmin\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"}],\"name\":\"InvalidNodeP2PId\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidNodeSigner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"lengthOne\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lengthTwo\",\"type\":\"uint256\"}],\"name\":\"LengthMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"nodeP2PId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"}],\"name\":\"NodeDoesNotSupportCapability\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"}],\"name\":\"NodeOperatorDoesNotExist\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"nodeP2PId\",\"type\":\"bytes32\"}],\"name\":\"NodePartOfDON\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"hashedCapabilityId\",\"type\":\"bytes32\"}],\"name\":\"CapabilityConfigured\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"hashedCapabilityId\",\"type\":\"bytes32\"}],\"name\":\"CapabilityDeprecated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"configCount\",\"type\":\"uint32\"}],\"name\":\"ConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"signer\",\"type\":\"bytes32\"}],\"name\":\"NodeAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"NodeOperatorAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"}],\"name\":\"NodeOperatorRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"NodeOperatorUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"}],\"name\":\"NodeRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"signer\",\"type\":\"bytes32\"}],\"name\":\"NodeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"labelledName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"enumCapabilityRegistry.CapabilityType\",\"name\":\"capabilityType\",\"type\":\"uint8\"},{\"internalType\":\"enumCapabilityRegistry.CapabilityResponseType\",\"name\":\"responseType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"configurationContract\",\"type\":\"address\"}],\"internalType\":\"structCapabilityRegistry.Capability[]\",\"name\":\"capabilities\",\"type\":\"tuple[]\"}],\"name\":\"addCapabilities\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"nodes\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"internalType\":\"structCapabilityRegistry.CapabilityConfiguration[]\",\"name\":\"capabilityConfigurations\",\"type\":\"tuple[]\"},{\"internalType\":\"bool\",\"name\":\"isPublic\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"acceptsWorkflows\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"f\",\"type\":\"uint32\"}],\"name\":\"addDON\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"internalType\":\"structCapabilityRegistry.NodeOperator[]\",\"name\":\"nodeOperators\",\"type\":\"tuple[]\"}],\"name\":\"addNodeOperators\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"signer\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"hashedCapabilityIds\",\"type\":\"bytes32[]\"}],\"internalType\":\"structCapabilityRegistry.NodeInfo[]\",\"name\":\"nodes\",\"type\":\"tuple[]\"}],\"name\":\"addNodes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"hashedCapabilityIds\",\"type\":\"bytes32[]\"}],\"name\":\"deprecateCapabilities\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCapabilities\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"labelledName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"enumCapabilityRegistry.CapabilityType\",\"name\":\"capabilityType\",\"type\":\"uint8\"},{\"internalType\":\"enumCapabilityRegistry.CapabilityResponseType\",\"name\":\"responseType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"configurationContract\",\"type\":\"address\"}],\"internalType\":\"structCapabilityRegistry.Capability[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hashedId\",\"type\":\"bytes32\"}],\"name\":\"getCapability\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"labelledName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"enumCapabilityRegistry.CapabilityType\",\"name\":\"capabilityType\",\"type\":\"uint8\"},{\"internalType\":\"enumCapabilityRegistry.CapabilityResponseType\",\"name\":\"responseType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"configurationContract\",\"type\":\"address\"}],\"internalType\":\"structCapabilityRegistry.Capability\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"}],\"name\":\"getCapabilityConfigs\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"}],\"name\":\"getDON\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"id\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"configCount\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"f\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"isPublic\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"acceptsWorkflows\",\"type\":\"bool\"},{\"internalType\":\"bytes32[]\",\"name\":\"nodeP2PIds\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"internalType\":\"structCapabilityRegistry.CapabilityConfiguration[]\",\"name\":\"capabilityConfigurations\",\"type\":\"tuple[]\"}],\"internalType\":\"structCapabilityRegistry.DONInfo\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDONs\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"id\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"configCount\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"f\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"isPublic\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"acceptsWorkflows\",\"type\":\"bool\"},{\"internalType\":\"bytes32[]\",\"name\":\"nodeP2PIds\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"internalType\":\"structCapabilityRegistry.CapabilityConfiguration[]\",\"name\":\"capabilityConfigurations\",\"type\":\"tuple[]\"}],\"internalType\":\"structCapabilityRegistry.DONInfo[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"labelledName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"}],\"name\":\"getHashedCapabilityId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"}],\"name\":\"getNode\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"signer\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"hashedCapabilityIds\",\"type\":\"bytes32[]\"}],\"internalType\":\"structCapabilityRegistry.NodeInfo\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"configCount\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"}],\"name\":\"getNodeOperator\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"internalType\":\"structCapabilityRegistry.NodeOperator\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNodeOperators\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"internalType\":\"structCapabilityRegistry.NodeOperator[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNodes\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"signer\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"hashedCapabilityIds\",\"type\":\"bytes32[]\"}],\"internalType\":\"structCapabilityRegistry.NodeInfo[]\",\"name\":\"nodeInfo\",\"type\":\"tuple[]\"},{\"internalType\":\"uint32[]\",\"name\":\"configCounts\",\"type\":\"uint32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hashedCapabilityId\",\"type\":\"bytes32\"}],\"name\":\"isCapabilityDeprecated\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32[]\",\"name\":\"donIds\",\"type\":\"uint32[]\"}],\"name\":\"removeDONs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32[]\",\"name\":\"nodeOperatorIds\",\"type\":\"uint32[]\"}],\"name\":\"removeNodeOperators\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"removedNodeP2PIds\",\"type\":\"bytes32[]\"}],\"name\":\"removeNodes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"typeAndVersion\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32[]\",\"name\":\"nodes\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"internalType\":\"structCapabilityRegistry.CapabilityConfiguration[]\",\"name\":\"capabilityConfigurations\",\"type\":\"tuple[]\"},{\"internalType\":\"bool\",\"name\":\"isPublic\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"acceptsWorkflows\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"f\",\"type\":\"uint32\"}],\"name\":\"updateDON\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32[]\",\"name\":\"nodeOperatorIds\",\"type\":\"uint32[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"internalType\":\"structCapabilityRegistry.NodeOperator[]\",\"name\":\"nodeOperators\",\"type\":\"tuple[]\"}],\"name\":\"updateNodeOperators\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"signer\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"hashedCapabilityIds\",\"type\":\"bytes32[]\"}],\"internalType\":\"structCapabilityRegistry.NodeInfo[]\",\"name\":\"nodes\",\"type\":\"tuple[]\"}],\"name\":\"updateNodes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", + Bin: "0x6080604052600e80546001600160401b0319166401000000011790553480156200002857600080fd5b503380600081620000805760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420736574206f776e657220746f207a65726f000000000000000060448201526064015b60405180910390fd5b600080546001600160a01b0319166001600160a01b0384811691909117909155811615620000b357620000b381620000bc565b50505062000167565b336001600160a01b03821603620001165760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640162000077565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b614db080620001776000396000f3fe608060405234801561001057600080fd5b50600436106101ae5760003560e01c80635d83d967116100ee57806386fa4246116100975780639cb7c5f4116100715780639cb7c5f4146103ea578063ddbe4f821461040a578063e29581aa1461041f578063f2fde38b1461043557600080fd5b806386fa42461461039c5780638da5cb5b146103af57806395864d1f146103d757600080fd5b8063715f5295116100c8578063715f52951461036e57806373ac22b41461038157806379ba50971461039457600080fd5b80635d83d967146103335780635e65e3091461034657806366acaa331461035957600080fd5b806322bdbcbc1161015b5780632c01a1e8116101355780632c01a1e8146102cb578063398f3773146102de5780633f2a13c9146102f157806350c946fe1461031257600080fd5b806322bdbcbc146102785780632353740514610298578063275459f2146102b857600080fd5b8063193ec0061161018c578063193ec0061461023b5780631d05394c14610250578063214502431461026357600080fd5b80630fe5800a146101b357806312570011146101d9578063181f5a77146101fc575b600080fd5b6101c66101c1366004613bce565b610448565b6040519081526020015b60405180910390f35b6101ec6101e7366004613c32565b61047c565b60405190151581526020016101d0565b604080518082018252601881527f4361706162696c697479526567697374727920312e302e300000000000000000602082015290516101d09190613cb9565b61024e610249366004613d38565b610489565b005b61024e61025e366004613ddd565b610553565b61026b61070f565b6040516101d09190613f47565b61028b610286366004613fc7565b610874565b6040516101d0919061401f565b6102ab6102a6366004613fc7565b610961565b6040516101d09190614032565b61024e6102c6366004613ddd565b6109a5565b61024e6102d9366004613ddd565b610a7c565b61024e6102ec366004613ddd565b610c9f565b6103046102ff366004614045565b610e67565b6040516101d092919061406f565b610325610320366004613c32565b611053565b6040516101d09291906140d6565b61024e610341366004613ddd565b6110f8565b61024e610354366004613ddd565b611246565b6103616116b8565b6040516101d091906140fe565b61024e61037c366004613ddd565b6118a3565b61024e61038f366004613ddd565b61195e565b61024e611dcf565b61024e6103aa366004614171565b611ecc565b60005460405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101d0565b61024e6103e53660046141dd565b612212565b6103fd6103f8366004613c32565b6122de565b6040516101d0919061434e565b6104126124e3565b6040516101d09190614361565b6104276127e1565b6040516101d09291906143d4565b61024e6104433660046144b7565b612950565b6000828260405160200161045d92919061406f565b6040516020818303038152906040528051906020012090505b92915050565b6000610476600583612964565b61049161297f565b600e805460009164010000000090910463ffffffff169060046104b383614501565b82546101009290920a63ffffffff8181021990931691831602179091558181166000818152600d602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001684179055815160a0810183529283526001908301528715159082015285151560608201529084166080820152909150610549908990899089908990612a02565b5050505050505050565b61055b61297f565b60005b8181101561070a57600083838381811061057a5761057a614524565b905060200201602081019061058f9190613fc7565b63ffffffff8082166000908152600d60209081526040808320805464010000000090049094168084526001850190925282209394509192905b6105d1826130b2565b811015610629576106188563ffffffff16600c60006105f985876130bc90919063ffffffff16565b81526020019081526020016000206004016130c890919063ffffffff16565b5061062281614553565b90506105c8565b508254640100000000900463ffffffff16600003610680576040517f2b62be9b00000000000000000000000000000000000000000000000000000000815263ffffffff851660048201526024015b60405180910390fd5b63ffffffff84166000818152600d6020908152604080832080547fffffffffffffffffffffffffffffffffffff00000000000000000000000000001690558051938452908301919091527ff264aae70bf6a9d90e68e0f9b393f4e7fbea67b063b0f336e0b36c1581703651910160405180910390a1505050508061070390614553565b905061055e565b505050565b600e54606090640100000000900463ffffffff16600061073060018361458b565b63ffffffff1667ffffffffffffffff81111561074e5761074e613a68565b6040519080825280602002602001820160405280156107d557816020015b6040805160e081018252600080825260208083018290529282018190526060808301829052608083019190915260a0820181905260c082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90920191018161076c5790505b509050600060015b8363ffffffff168163ffffffff1610156108515763ffffffff8082166000908152600d6020526040902054161561084157610817816130d4565b83838151811061082957610829614524565b60200260200101819052508161083e90614553565b91505b61084a81614501565b90506107dd565b5061085d60018461458b565b63ffffffff16811461086d578082525b5092915050565b60408051808201909152600081526060602082015263ffffffff82166000908152600b60209081526040918290208251808401909352805473ffffffffffffffffffffffffffffffffffffffff16835260018101805491928401916108d8906145a8565b80601f0160208091040260200160405190810160405280929190818152602001828054610904906145a8565b80156109515780601f1061092657610100808354040283529160200191610951565b820191906000526020600020905b81548152906001019060200180831161093457829003601f168201915b5050505050815250509050919050565b6040805160e0810182526000808252602082018190529181018290526060808201839052608082019290925260a0810182905260c0810191909152610476826130d4565b6109ad61297f565b60005b63ffffffff811682111561070a57600083838363ffffffff168181106109d8576109d8614524565b90506020020160208101906109ed9190613fc7565b63ffffffff81166000908152600b6020526040812080547fffffffffffffffffffffffff0000000000000000000000000000000000000000168155919250610a3860018301826139fb565b505060405163ffffffff8216907fa59268ca81d40429e65ccea5385b59cf2d3fc6519371dee92f8eb1dae5107a7a90600090a250610a7581614501565b90506109b0565b6000805473ffffffffffffffffffffffffffffffffffffffff163314905b82811015610c99576000848483818110610ab657610ab6614524565b602090810292909201356000818152600c90935260409092206001810154929350919050610b13576040517f64e2ee9200000000000000000000000000000000000000000000000000000000815260048101839052602401610677565b6000610b21826004016130b2565b1115610b5c576040517f34a4a3f600000000000000000000000000000000000000000000000000000000815260048101839052602401610677565b83158015610b965750805463ffffffff166000908152600b602052604090205473ffffffffffffffffffffffffffffffffffffffff163314155b15610bcf576040517f9473075d000000000000000000000000000000000000000000000000000000008152336004820152602401610677565b6001810154610be0906007906130c8565b506002810154610bf2906009906130c8565b506000828152600c6020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016815560018101829055600281018290559060048201818181610c478282613a35565b5050505050507f5254e609a97bab37b7cc79fe128f85c097bd6015c6e1624ae0ba392eb975320582604051610c7e91815260200190565b60405180910390a1505080610c9290614553565b9050610a9a565b50505050565b610ca761297f565b60005b8181101561070a576000838383818110610cc657610cc6614524565b9050602002810190610cd891906145fb565b610ce190614639565b805190915073ffffffffffffffffffffffffffffffffffffffff16610d32576040517feeacd93900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600e54604080518082018252835173ffffffffffffffffffffffffffffffffffffffff908116825260208086015181840190815263ffffffff9095166000818152600b909252939020825181547fffffffffffffffffffffffff00000000000000000000000000000000000000001692169190911781559251919290916001820190610dbe90826146f1565b5050600e8054909150600090610dd99063ffffffff16614501565b91906101000a81548163ffffffff021916908363ffffffff160217905550816000015173ffffffffffffffffffffffffffffffffffffffff168163ffffffff167f78e94ca80be2c30abc061b99e7eb8583b1254781734b1e3ce339abb57da2fe8e8460200151604051610e4c9190613cb9565b60405180910390a3505080610e6090614553565b9050610caa565b63ffffffff8083166000908152600d60209081526040808320805464010000000090049094168084526001909401825280832085845260030190915281208054606093849390929091610eb9906145a8565b80601f0160208091040260200160405190810160405280929190818152602001828054610ee5906145a8565b8015610f325780601f10610f0757610100808354040283529160200191610f32565b820191906000526020600020905b815481529060010190602001808311610f1557829003601f168201915b5050506000888152600260208190526040909120015492935060609262010000900473ffffffffffffffffffffffffffffffffffffffff16159150611045905057600086815260026020819052604091829020015490517f8318ed5d00000000000000000000000000000000000000000000000000000000815263ffffffff891660048201526201000090910473ffffffffffffffffffffffffffffffffffffffff1690638318ed5d90602401600060405180830381865afa158015610ffc573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052611042919081019061480b565b90505b9093509150505b9250929050565b6040805160808101825260008082526020820181905291810191909152606080820152604080516080810182526000848152600c6020908152838220805463ffffffff8082168652600183015484870152600283015486880152640100000000909104168352600301905291822060608201906110cf906133b0565b90526000938452600c602052604090932054929364010000000090930463ffffffff1692915050565b61110061297f565b60005b8181101561070a57600083838381811061111f5761111f614524565b90506020020135905061113c81600361296490919063ffffffff16565b611175576040517fe181733f00000000000000000000000000000000000000000000000000000000815260048101829052602401610677565b6111806005826133bd565b6111b9576040517ff7d7a29400000000000000000000000000000000000000000000000000000000815260048101829052602401610677565b6000818152600260205260408120906111d282826139fb565b6111e06001830160006139fb565b5060020180547fffffffffffffffffffff0000000000000000000000000000000000000000000016905560405181907fdcea1b78b6ddc31592a94607d537543fcaafda6cc52d6d5cc7bbfca1422baf2190600090a25061123f81614553565b9050611103565b6000805473ffffffffffffffffffffffffffffffffffffffff163314905b82811015610c9957600084848381811061128057611280614524565b90506020028101906112929190614879565b61129b906148ad565b805163ffffffff166000908152600b602090815260408083208151808301909252805473ffffffffffffffffffffffffffffffffffffffff1682526001810180549596509394919390928401916112f1906145a8565b80601f016020809104026020016040519081016040528092919081815260200182805461131d906145a8565b801561136a5780601f1061133f5761010080835404028352916020019161136a565b820191906000526020600020905b81548152906001019060200180831161134d57829003601f168201915b50505050508152505090508315801561139a5750805173ffffffffffffffffffffffffffffffffffffffff163314155b156113d3576040517f9473075d000000000000000000000000000000000000000000000000000000008152336004820152602401610677565b6040808301516000908152600c6020522060018101546114275782604001516040517f64e2ee9200000000000000000000000000000000000000000000000000000000815260040161067791815260200190565b60208301511580611457575082602001518160010154141580156114575750602083015161145790600790612964565b1561148e576040517f8377314600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606083015180516000036114d057806040517f3748d4c60000000000000000000000000000000000000000000000000000000081526004016106779190614980565b8154640100000000900463ffffffff168260046114ec83614501565b82546101009290920a63ffffffff8181021990931691831602179091558354640100000000900416905060005b82518110156115e45761154f83828151811061153757611537614524565b6020026020010151600361296490919063ffffffff16565b61158757826040517f3748d4c60000000000000000000000000000000000000000000000000000000081526004016106779190614980565b6115d383828151811061159c5761159c614524565b60200260200101518560030160008563ffffffff1663ffffffff1681526020019081526020016000206133bd90919063ffffffff16565b506115dd81614553565b9050611519565b50845183547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff909116178355604085015160028401556001830154602086015181146116565761163b6007826130c8565b50602086015160018501819055611654906007906133bd565b505b85516040808801516020808a015183519283529082015263ffffffff909216917f4b5b465e22eea0c3d40c30e936643245b80d19b2dcf75788c0699fe8d8db645b910160405180910390a2505050505050806116b190614553565b9050611264565b600e5460609063ffffffff1660006116d160018361458b565b63ffffffff1667ffffffffffffffff8111156116ef576116ef613a68565b60405190808252806020026020018201604052801561173557816020015b60408051808201909152600081526060602082015281526020019060019003908161170d5790505b509050600060015b8363ffffffff168163ffffffff16101561188d5763ffffffff81166000908152600b602052604090205473ffffffffffffffffffffffffffffffffffffffff161561187d5763ffffffff81166000908152600b60209081526040918290208251808401909352805473ffffffffffffffffffffffffffffffffffffffff16835260018101805491928401916117d1906145a8565b80601f01602080910402602001604051908101604052809291908181526020018280546117fd906145a8565b801561184a5780601f1061181f5761010080835404028352916020019161184a565b820191906000526020600020905b81548152906001019060200180831161182d57829003601f168201915b50505050508152505083838151811061186557611865614524565b60200260200101819052508161187a90614553565b91505b61188681614501565b905061173d565b50600e5461085d9060019063ffffffff1661458b565b6118ab61297f565b60005b8181101561070a5760008383838181106118ca576118ca614524565b90506020028101906118dc9190614993565b6118e5906149d6565b905060006118fb82600001518360200151610448565b90506119086003826133bd565b611941576040517febf5255100000000000000000000000000000000000000000000000000000000815260048101829052602401610677565b61194b81836133c9565b50508061195790614553565b90506118ae565b6000805473ffffffffffffffffffffffffffffffffffffffff163314905b82811015610c9957600084848381811061199857611998614524565b90506020028101906119aa9190614879565b6119b3906148ad565b805163ffffffff166000908152600b602090815260408083208151808301909252805473ffffffffffffffffffffffffffffffffffffffff168252600181018054959650939491939092840191611a09906145a8565b80601f0160208091040260200160405190810160405280929190818152602001828054611a35906145a8565b8015611a825780601f10611a5757610100808354040283529160200191611a82565b820191906000526020600020905b815481529060010190602001808311611a6557829003601f168201915b50505091909252505081519192505073ffffffffffffffffffffffffffffffffffffffff16611ae85781516040517fadd9ae1e00000000000000000000000000000000000000000000000000000000815263ffffffff9091166004820152602401610677565b83158015611b0d5750805173ffffffffffffffffffffffffffffffffffffffff163314155b15611b46576040517f9473075d000000000000000000000000000000000000000000000000000000008152336004820152602401610677565b6040808301516000908152600c602052206001810154151580611b6b57506040830151155b15611baa5782604001516040517f64e2ee9200000000000000000000000000000000000000000000000000000000815260040161067791815260200190565b60208301511580611bc757506020830151611bc790600790612964565b15611bfe576040517f8377314600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60608301518051600003611c4057806040517f3748d4c60000000000000000000000000000000000000000000000000000000081526004016106779190614980565b81548290600490611c5e90640100000000900463ffffffff16614501565b82546101009290920a63ffffffff818102199093169183160217909155825464010000000090041660005b8251811015611d0557611ca783828151811061153757611537614524565b611cdf57826040517f3748d4c60000000000000000000000000000000000000000000000000000000081526004016106779190614980565b611cf483828151811061159c5761159c614524565b50611cfe81614553565b9050611c89565b50845183547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff91821617845560408601516002850155602086015160018501819055611d5b91600791906133bd16565b506040850151611d6d906009906133bd565b50845160408087015160208089015183519283529082015263ffffffff909216917f74becb12a5e8fd0e98077d02dfba8f647c9670c9df177e42c2418cf17a636f05910160405180910390a2505050505080611dc890614553565b905061197c565b60015473ffffffffffffffffffffffffffffffffffffffff163314611e50576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4d7573742062652070726f706f736564206f776e6572000000000000000000006044820152606401610677565b60008054337fffffffffffffffffffffffff00000000000000000000000000000000000000008083168217845560018054909116905560405173ffffffffffffffffffffffffffffffffffffffff90921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b828114611f0f576040517fab8b67c60000000000000000000000000000000000000000000000000000000081526004810184905260248101829052604401610677565b6000805473ffffffffffffffffffffffffffffffffffffffff16905b8481101561220a576000868683818110611f4757611f47614524565b9050602002016020810190611f5c9190613fc7565b63ffffffff81166000908152600b6020526040902080549192509073ffffffffffffffffffffffffffffffffffffffff16611fcb576040517fadd9ae1e00000000000000000000000000000000000000000000000000000000815263ffffffff83166004820152602401610677565b6000868685818110611fdf57611fdf614524565b9050602002810190611ff191906145fb565b611ffa90614639565b805190915073ffffffffffffffffffffffffffffffffffffffff1661204b576040517feeacd93900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805173ffffffffffffffffffffffffffffffffffffffff16331480159061208857503373ffffffffffffffffffffffffffffffffffffffff861614155b156120c1576040517f9473075d000000000000000000000000000000000000000000000000000000008152336004820152602401610677565b8051825473ffffffffffffffffffffffffffffffffffffffff908116911614158061213d57506020808201516040516120fa9201613cb9565b60405160208183030381529060405280519060200120826001016040516020016121249190614a7c565b6040516020818303038152906040528051906020012014155b156121f657805182547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9091161782556020810151600183019061219790826146f1565b50806000015173ffffffffffffffffffffffffffffffffffffffff168363ffffffff167f86f41145bde5dd7f523305452e4aad3685508c181432ec733d5f345009358a2883602001516040516121ed9190613cb9565b60405180910390a35b5050508061220390614553565b9050611f2b565b505050505050565b61221a61297f565b63ffffffff8089166000908152600d602052604081205464010000000090049091169081900361227e576040517f2b62be9b00000000000000000000000000000000000000000000000000000000815263ffffffff8a166004820152602401610677565b6122d3888888886040518060a001604052808f63ffffffff168152602001876122a690614501565b97508763ffffffff1681526020018a1515815260200189151581526020018863ffffffff16815250612a02565b505050505050505050565b61230e6040805160a081018252606080825260208201529081016000815260200160008152600060209091015290565b60008281526002602052604090819020815160a08101909252805482908290612336906145a8565b80601f0160208091040260200160405190810160405280929190818152602001828054612362906145a8565b80156123af5780601f10612384576101008083540402835291602001916123af565b820191906000526020600020905b81548152906001019060200180831161239257829003601f168201915b505050505081526020016001820180546123c8906145a8565b80601f01602080910402602001604051908101604052809291908181526020018280546123f4906145a8565b80156124415780601f1061241657610100808354040283529160200191612441565b820191906000526020600020905b81548152906001019060200180831161242457829003601f168201915b5050509183525050600282015460209091019060ff16600381111561246857612468614292565b600381111561247957612479614292565b81526020016002820160019054906101000a900460ff1660018111156124a1576124a1614292565b60018111156124b2576124b2614292565b81526002919091015462010000900473ffffffffffffffffffffffffffffffffffffffff1660209091015292915050565b606060006124f160036133b0565b905060006124ff60056130b2565b825161250b9190614b25565b67ffffffffffffffff81111561252357612523613a68565b60405190808252806020026020018201604052801561258457816020015b6125716040805160a081018252606080825260208201529081016000815260200160008152600060209091015290565b8152602001906001900390816125415790505b5090506000805b83518110156127d85760008482815181106125a8576125a8614524565b602002602001015190506125c681600561296490919063ffffffff16565b6127c75760008181526002602052604090819020815160a081019092528054829082906125f2906145a8565b80601f016020809104026020016040519081016040528092919081815260200182805461261e906145a8565b801561266b5780601f106126405761010080835404028352916020019161266b565b820191906000526020600020905b81548152906001019060200180831161264e57829003601f168201915b50505050508152602001600182018054612684906145a8565b80601f01602080910402602001604051908101604052809291908181526020018280546126b0906145a8565b80156126fd5780601f106126d2576101008083540402835291602001916126fd565b820191906000526020600020905b8154815290600101906020018083116126e057829003601f168201915b5050509183525050600282015460209091019060ff16600381111561272457612724614292565b600381111561273557612735614292565b81526020016002820160019054906101000a900460ff16600181111561275d5761275d614292565b600181111561276e5761276e614292565b81526002919091015462010000900473ffffffffffffffffffffffffffffffffffffffff1660209091015284518590859081106127ad576127ad614524565b602002602001018190525082806127c390614553565b9350505b506127d181614553565b905061258b565b50909392505050565b60608060006127f060096133b0565b9050805167ffffffffffffffff81111561280c5761280c613a68565b60405190808252806020026020018201604052801561287b57816020015b60408051608081018252600080825260208083018290529282015260608082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90920191018161282a5790505b509250805167ffffffffffffffff81111561289857612898613a68565b6040519080825280602002602001820160405280156128c1578160200160208202803683370190505b50915060005b815181101561294a576128f28282815181106128e5576128e5614524565b6020026020010151611053565b85838151811061290457612904614524565b6020026020010185848151811061291d5761291d614524565b602002602001018263ffffffff1663ffffffff1681525082905250508061294390614553565b90506128c7565b50509091565b61295861297f565b6129618161365d565b50565b600081815260018301602052604081205415155b9392505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314612a00576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4f6e6c792063616c6c61626c65206279206f776e6572000000000000000000006044820152606401610677565b565b805163ffffffff9081166000908152600d602090815260408083208286015185168452600101909152902060808301519091161580612a56575060808201518590612a4e906001614b38565b63ffffffff16115b15612aa25760808201516040517fd5f5269100000000000000000000000000000000000000000000000000000000815263ffffffff909116600482015260248101869052604401610677565b6001826020015163ffffffff161115612b4e57815163ffffffff166000908152600d602090815260408220908401516001918201918391612ae3919061458b565b63ffffffff1663ffffffff168152602001908152602001600020905060005b612b0b826130b2565b811015612b4b57612b3a846000015163ffffffff16600c60006105f985876000016130bc90919063ffffffff16565b50612b4481614553565b9050612b02565b50505b60005b85811015612c3857612b7e878783818110612b6e57612b6e614524565b85926020909102013590506133bd565b612bdf578251878783818110612b9657612b96614524565b6040517f636e405700000000000000000000000000000000000000000000000000000000815263ffffffff90941660048501526020029190910135602483015250604401610677565b8251612c279063ffffffff16600c60008a8a86818110612c0157612c01614524565b9050602002013581526020019081526020016000206004016133bd90919063ffffffff16565b50612c3181614553565b9050612b51565b5060005b83811015612f245736858583818110612c5757612c57614524565b9050602002810190612c6991906145fb565b9050612c7760038235612964565b612cb0576040517fe181733f00000000000000000000000000000000000000000000000000000000815281356004820152602401610677565b612cbc60058235612964565b15612cf6576040517ff7d7a29400000000000000000000000000000000000000000000000000000000815281356004820152602401610677565b8035600090815260038401602052604081208054612d13906145a8565b90501115612d5f5783516040517f3927d08000000000000000000000000000000000000000000000000000000000815263ffffffff909116600482015281356024820152604401610677565b60005b87811015612e7157612e068235600c60008c8c86818110612d8557612d85614524565b9050602002013581526020019081526020016000206003016000600c60008e8e88818110612db557612db5614524565b90506020020135815260200190815260200160002060000160049054906101000a900463ffffffff1663ffffffff1663ffffffff16815260200190815260200160002061296490919063ffffffff16565b612e6157888882818110612e1c57612e1c614524565b6040517fa7e792500000000000000000000000000000000000000000000000000000000081526020909102929092013560048301525082356024820152604401610677565b612e6a81614553565b9050612d62565b5060028301805460018101825560009182526020918290208335910155612e9a90820182614b55565b82356000908152600386016020526040902091612eb8919083614bba565b508351602080860151612f1392918435908c908c90612ed990880188614b55565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061375292505050565b50612f1d81614553565b9050612c3c565b50604080830151835163ffffffff9081166000908152600d602090815284822080549415156c01000000000000000000000000027fffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff90951694909417909355606086015186518316825284822080549115156d0100000000000000000000000000027fffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff9092169190911790556080860151865183168252848220805491841668010000000000000000027fffffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffff909216919091179055918501805186518316845292849020805493909216640100000000027fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff9093169290921790558351905191517ff264aae70bf6a9d90e68e0f9b393f4e7fbea67b063b0f336e0b36c1581703651926130a2929163ffffffff92831681529116602082015260400190565b60405180910390a1505050505050565b6000610476825490565b60006129788383613833565b6000612978838361385d565b6040805160e0810182526000808252602080830182905282840182905260608084018390526080840183905260a0840181905260c084015263ffffffff8581168352600d825284832080546401000000009004909116808452600190910182528483206002810180548751818602810186019098528088529596929591949390919083018282801561318557602002820191906000526020600020905b815481526020019060010190808311613171575b505050505090506000815167ffffffffffffffff8111156131a8576131a8613a68565b6040519080825280602002602001820160405280156131ee57816020015b6040805180820190915260008152606060208201528152602001906001900390816131c65790505b50905060005b815181101561330f57604051806040016040528084838151811061321a5761321a614524565b6020026020010151815260200185600301600086858151811061323f5761323f614524565b602002602001015181526020019081526020016000208054613260906145a8565b80601f016020809104026020016040519081016040528092919081815260200182805461328c906145a8565b80156132d95780601f106132ae576101008083540402835291602001916132d9565b820191906000526020600020905b8154815290600101906020018083116132bc57829003601f168201915b50505050508152508282815181106132f3576132f3614524565b60200260200101819052508061330890614553565b90506131f4565b506040805160e08101825263ffffffff8089166000818152600d60208181528683205480861687528b8616828801526801000000000000000081049095169686019690965260ff6c010000000000000000000000008504811615156060870152929091529093526d010000000000000000000000000090049091161515608082015260a0810161339e856133b0565b81526020019190915295945050505050565b6060600061297883613950565b600061297883836139ac565b608081015173ffffffffffffffffffffffffffffffffffffffff161561351757608081015173ffffffffffffffffffffffffffffffffffffffff163b15806134c2575060808101516040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527f78bea72100000000000000000000000000000000000000000000000000000000600482015273ffffffffffffffffffffffffffffffffffffffff909116906301ffc9a790602401602060405180830381865afa15801561349c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134c09190614cd5565b155b156135175760808101516040517fabb5e3fd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602401610677565b60008281526002602052604090208151829190819061353690826146f1565b506020820151600182019061354b90826146f1565b5060408201516002820180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600183600381111561358d5761358d614292565b021790555060608201516002820180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101008360018111156135d4576135d4614292565b0217905550608091909101516002909101805473ffffffffffffffffffffffffffffffffffffffff90921662010000027fffffffffffffffffffff0000000000000000000000000000000000000000ffff90921691909117905560405182907f04f0a9bcf3f3a3b42a4d7ca081119755f82ebe43e0d30c8f7292c4fe0dc4a2ae90600090a25050565b3373ffffffffffffffffffffffffffffffffffffffff8216036136dc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c660000000000000000006044820152606401610677565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b6000848152600260208190526040909120015462010000900473ffffffffffffffffffffffffffffffffffffffff161561220a57600084815260026020819052604091829020015490517ffba64a7c0000000000000000000000000000000000000000000000000000000081526201000090910473ffffffffffffffffffffffffffffffffffffffff169063fba64a7c906137f9908690869086908b908d90600401614cf2565b600060405180830381600087803b15801561381357600080fd5b505af1158015613827573d6000803e3d6000fd5b50505050505050505050565b600082600001828154811061384a5761384a614524565b9060005260206000200154905092915050565b60008181526001830160205260408120548015613946576000613881600183614b25565b855490915060009061389590600190614b25565b90508181146138fa5760008660000182815481106138b5576138b5614524565b90600052602060002001549050808760000184815481106138d8576138d8614524565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061390b5761390b614d74565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610476565b6000915050610476565b6060816000018054806020026020016040519081016040528092919081815260200182805480156139a057602002820191906000526020600020905b81548152602001906001019080831161398c575b50505050509050919050565b60008181526001830160205260408120546139f357508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610476565b506000610476565b508054613a07906145a8565b6000825580601f10613a17575050565b601f0160209004906000526020600020908101906129619190613a4f565b508054600082559060005260206000209081019061296191905b5b80821115613a645760008155600101613a50565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516080810167ffffffffffffffff81118282101715613aba57613aba613a68565b60405290565b60405160a0810167ffffffffffffffff81118282101715613aba57613aba613a68565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715613b2a57613b2a613a68565b604052919050565b600067ffffffffffffffff821115613b4c57613b4c613a68565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b600082601f830112613b8957600080fd5b8135613b9c613b9782613b32565b613ae3565b818152846020838601011115613bb157600080fd5b816020850160208301376000918101602001919091529392505050565b60008060408385031215613be157600080fd5b823567ffffffffffffffff80821115613bf957600080fd5b613c0586838701613b78565b93506020850135915080821115613c1b57600080fd5b50613c2885828601613b78565b9150509250929050565b600060208284031215613c4457600080fd5b5035919050565b60005b83811015613c66578181015183820152602001613c4e565b50506000910152565b60008151808452613c87816020860160208601613c4b565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006129786020830184613c6f565b60008083601f840112613cde57600080fd5b50813567ffffffffffffffff811115613cf657600080fd5b6020830191508360208260051b850101111561104c57600080fd5b801515811461296157600080fd5b803563ffffffff81168114613d3357600080fd5b919050565b600080600080600080600060a0888a031215613d5357600080fd5b873567ffffffffffffffff80821115613d6b57600080fd5b613d778b838c01613ccc565b909950975060208a0135915080821115613d9057600080fd5b50613d9d8a828b01613ccc565b9096509450506040880135613db181613d11565b92506060880135613dc181613d11565b9150613dcf60808901613d1f565b905092959891949750929550565b60008060208385031215613df057600080fd5b823567ffffffffffffffff811115613e0757600080fd5b613e1385828601613ccc565b90969095509350505050565b600081518084526020808501945080840160005b83811015613e4f57815187529582019590820190600101613e33565b509495945050505050565b600063ffffffff80835116845260208181850151168186015260408281860151168187015260608501511515606087015260808501511515608087015260a0850151925060e060a0870152613eb260e0870184613e1f565b925060c085015186840360c08801528381518086528486019150848160051b870101858401935060005b82811015613f39578782037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0018452845180518352870151878301879052613f2687840182613c6f565b9588019594880194925050600101613edc565b509998505050505050505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015613fba577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0888603018452613fa8858351613e5a565b94509285019290850190600101613f6e565b5092979650505050505050565b600060208284031215613fd957600080fd5b61297882613d1f565b73ffffffffffffffffffffffffffffffffffffffff815116825260006020820151604060208501526140176040850182613c6f565b949350505050565b6020815260006129786020830184613fe2565b6020815260006129786020830184613e5a565b6000806040838503121561405857600080fd5b61406183613d1f565b946020939093013593505050565b6040815260006140826040830185613c6f565b82810360208401526140948185613c6f565b95945050505050565b63ffffffff8151168252602081015160208301526040810151604083015260006060820151608060608501526140176080850182613e1f565b6040815260006140e9604083018561409d565b905063ffffffff831660208301529392505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015613fba577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc088860301845261415f858351613fe2565b94509285019290850190600101614125565b6000806000806040858703121561418757600080fd5b843567ffffffffffffffff8082111561419f57600080fd5b6141ab88838901613ccc565b909650945060208701359150808211156141c457600080fd5b506141d187828801613ccc565b95989497509550505050565b60008060008060008060008060c0898b0312156141f957600080fd5b61420289613d1f565b9750602089013567ffffffffffffffff8082111561421f57600080fd5b61422b8c838d01613ccc565b909950975060408b013591508082111561424457600080fd5b506142518b828c01613ccc565b909650945050606089013561426581613d11565b9250608089013561427581613d11565b915061428360a08a01613d1f565b90509295985092959890939650565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6000815160a084526142d660a0850182613c6f565b9050602083015184820360208601526142ef8282613c6f565b91505060408301516004811061430757614307614292565b604085015260608301516002811061432157614321614292565b606085015260809283015173ffffffffffffffffffffffffffffffffffffffff1692909301919091525090565b60208152600061297860208301846142c1565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015613fba577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08886030184526143c28583516142c1565b94509285019290850190600101614388565b6000604082016040835280855180835260608501915060608160051b8601019250602080880160005b83811015614449577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa088870301855261443786835161409d565b955093820193908201906001016143fd565b50508584038187015286518085528782019482019350915060005b8281101561448657845163ffffffff1684529381019392810192600101614464565b5091979650505050505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114613d3357600080fd5b6000602082840312156144c957600080fd5b61297882614493565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600063ffffffff80831681810361451a5761451a6144d2565b6001019392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614584576145846144d2565b5060010190565b63ffffffff82811682821603908082111561086d5761086d6144d2565b600181811c908216806145bc57607f821691505b6020821081036145f5577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc183360301811261462f57600080fd5b9190910192915050565b60006040823603121561464b57600080fd5b6040516040810167ffffffffffffffff828210818311171561466f5761466f613a68565b8160405261467c85614493565b8352602085013591508082111561469257600080fd5b5061469f36828601613b78565b60208301525092915050565b601f82111561070a57600081815260208120601f850160051c810160208610156146d25750805b601f850160051c820191505b8181101561220a578281556001016146de565b815167ffffffffffffffff81111561470b5761470b613a68565b61471f8161471984546145a8565b846146ab565b602080601f831160018114614772576000841561473c5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b17855561220a565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b828110156147bf578886015182559484019460019091019084016147a0565b50858210156147fb57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b60006020828403121561481d57600080fd5b815167ffffffffffffffff81111561483457600080fd5b8201601f8101841361484557600080fd5b8051614853613b9782613b32565b81815285602083850101111561486857600080fd5b614094826020830160208601613c4b565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8183360301811261462f57600080fd5b6000608082360312156148bf57600080fd5b6148c7613a97565b6148d083613d1f565b81526020808401358183015260408401356040830152606084013567ffffffffffffffff8082111561490157600080fd5b9085019036601f83011261491457600080fd5b81358181111561492657614926613a68565b8060051b9150614937848301613ae3565b818152918301840191848101903684111561495157600080fd5b938501935b8385101561496f57843582529385019390850190614956565b606087015250939695505050505050565b6020815260006129786020830184613e1f565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6183360301811261462f57600080fd5b803560028110613d3357600080fd5b600060a082360312156149e857600080fd5b6149f0613ac0565b823567ffffffffffffffff80821115614a0857600080fd5b614a1436838701613b78565b83526020850135915080821115614a2a57600080fd5b50614a3736828601613b78565b602083015250604083013560048110614a4f57600080fd5b6040820152614a60606084016149c7565b6060820152614a7160808401614493565b608082015292915050565b6000602080835260008454614a90816145a8565b80848701526040600180841660008114614ab15760018114614ae957614b17565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008516838a01528284151560051b8a01019550614b17565b896000528660002060005b85811015614b0f5781548b8201860152908301908801614af4565b8a0184019650505b509398975050505050505050565b81810381811115610476576104766144d2565b63ffffffff81811683821601908082111561086d5761086d6144d2565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614b8a57600080fd5b83018035915067ffffffffffffffff821115614ba557600080fd5b60200191503681900382131561104c57600080fd5b67ffffffffffffffff831115614bd257614bd2613a68565b614be683614be083546145a8565b836146ab565b6000601f841160018114614c385760008515614c025750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355614cce565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b82811015614c875786850135825560209485019460019092019101614c67565b5086821015614cc2577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b600060208284031215614ce757600080fd5b815161297881613d11565b6080815284608082015260007f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff861115614d2b57600080fd5b8560051b808860a0850137820182810360a09081016020850152614d5190820187613c6f565b91505063ffffffff80851660408401528084166060840152509695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea164736f6c6343000813000a", } var CapabilityRegistryABI = CapabilityRegistryMetaData.ABI @@ -406,26 +406,33 @@ func (_CapabilityRegistry *CapabilityRegistryCallerSession) GetNodeOperators() ( return _CapabilityRegistry.Contract.GetNodeOperators(&_CapabilityRegistry.CallOpts) } -func (_CapabilityRegistry *CapabilityRegistryCaller) GetNodes(opts *bind.CallOpts) ([]CapabilityRegistryNodeInfo, []uint32, error) { +func (_CapabilityRegistry *CapabilityRegistryCaller) GetNodes(opts *bind.CallOpts) (GetNodes, + + error) { var out []interface{} err := _CapabilityRegistry.contract.Call(opts, &out, "getNodes") + outstruct := new(GetNodes) if err != nil { - return *new([]CapabilityRegistryNodeInfo), *new([]uint32), err + return *outstruct, err } - out0 := *abi.ConvertType(out[0], new([]CapabilityRegistryNodeInfo)).(*[]CapabilityRegistryNodeInfo) - out1 := *abi.ConvertType(out[1], new([]uint32)).(*[]uint32) + outstruct.NodeInfo = *abi.ConvertType(out[0], new([]CapabilityRegistryNodeInfo)).(*[]CapabilityRegistryNodeInfo) + outstruct.ConfigCounts = *abi.ConvertType(out[1], new([]uint32)).(*[]uint32) - return out0, out1, err + return *outstruct, err } -func (_CapabilityRegistry *CapabilityRegistrySession) GetNodes() ([]CapabilityRegistryNodeInfo, []uint32, error) { +func (_CapabilityRegistry *CapabilityRegistrySession) GetNodes() (GetNodes, + + error) { return _CapabilityRegistry.Contract.GetNodes(&_CapabilityRegistry.CallOpts) } -func (_CapabilityRegistry *CapabilityRegistryCallerSession) GetNodes() ([]CapabilityRegistryNodeInfo, []uint32, error) { +func (_CapabilityRegistry *CapabilityRegistryCallerSession) GetNodes() (GetNodes, + + error) { return _CapabilityRegistry.Contract.GetNodes(&_CapabilityRegistry.CallOpts) } @@ -2071,6 +2078,11 @@ func (_CapabilityRegistry *CapabilityRegistryFilterer) ParseOwnershipTransferred return event, nil } +type GetNodes struct { + NodeInfo []CapabilityRegistryNodeInfo + ConfigCounts []uint32 +} + func (_CapabilityRegistry *CapabilityRegistry) ParseLog(log types.Log) (generated.AbigenLog, error) { switch log.Topics[0] { case _CapabilityRegistry.abi.Events["CapabilityConfigured"].ID: @@ -2168,7 +2180,9 @@ type CapabilityRegistryInterface interface { GetNodeOperators(opts *bind.CallOpts) ([]CapabilityRegistryNodeOperator, error) - GetNodes(opts *bind.CallOpts) ([]CapabilityRegistryNodeInfo, []uint32, error) + GetNodes(opts *bind.CallOpts) (GetNodes, + + error) IsCapabilityDeprecated(opts *bind.CallOpts, hashedCapabilityId [32]byte) (bool, error) diff --git a/core/gethwrappers/keystone/generation/generated-wrapper-dependency-versions-do-not-edit.txt b/core/gethwrappers/keystone/generation/generated-wrapper-dependency-versions-do-not-edit.txt index 54f0035dcab..1716fed90b6 100644 --- a/core/gethwrappers/keystone/generation/generated-wrapper-dependency-versions-do-not-edit.txt +++ b/core/gethwrappers/keystone/generation/generated-wrapper-dependency-versions-do-not-edit.txt @@ -1,4 +1,4 @@ GETH_VERSION: 1.13.8 forwarder: ../../../contracts/solc/v0.8.19/KeystoneForwarder/KeystoneForwarder.abi ../../../contracts/solc/v0.8.19/KeystoneForwarder/KeystoneForwarder.bin ec6e94293700d400ca7b22989d54793e905d6febce3b84054727a58c473b9cf3 -keystone_capability_registry: ../../../contracts/solc/v0.8.19/CapabilityRegistry/CapabilityRegistry.abi ../../../contracts/solc/v0.8.19/CapabilityRegistry/CapabilityRegistry.bin 07b0d5eae760a400aaf3616201adb1ab962f92f77e05184677d94c8fc158f347 +keystone_capability_registry: ../../../contracts/solc/v0.8.19/CapabilityRegistry/CapabilityRegistry.abi ../../../contracts/solc/v0.8.19/CapabilityRegistry/CapabilityRegistry.bin be7e699bfab89cb95e8d1318dfc74c2af9465d7347478792d6d4afd06ac85402 ocr3_capability: ../../../contracts/solc/v0.8.19/OCR3Capability/OCR3Capability.abi ../../../contracts/solc/v0.8.19/OCR3Capability/OCR3Capability.bin 9dcbdf55bd5729ba266148da3f17733eb592c871c2108ccca546618628fd9ad2 From 85044f97dc3c2766e13e315dfdb52cbc61a10e10 Mon Sep 17 00:00:00 2001 From: Lukasz <120112546+lukaszcl@users.noreply.github.com> Date: Fri, 7 Jun 2024 16:16:53 +0200 Subject: [PATCH 27/40] TT-1174 Migrate automation reorg test to GethSetHead (#13463) * wip * change depth settings * Fix reorg test 1. Fund nodes with 2 eth 2. Start re-org below finality depth * Remove blockscout chain explorer app from helm deployment blockscout image cannot be found * Enable other reorg tests and update test description * Disable failing tests * require reorg block count below finality depth * Fix log trigger test * Enable all reorg tests * Do not log node config --- .../reorg/automation_reorg_test.go | 156 +++++++----------- 1 file changed, 61 insertions(+), 95 deletions(-) diff --git a/integration-tests/reorg/automation_reorg_test.go b/integration-tests/reorg/automation_reorg_test.go index 7a2215c36f0..659a7f2b2f1 100644 --- a/integration-tests/reorg/automation_reorg_test.go +++ b/integration-tests/reorg/automation_reorg_test.go @@ -12,15 +12,15 @@ import ( "go.uber.org/zap/zapcore" "github.com/smartcontractkit/chainlink-testing-framework/blockchain" + ctf_client "github.com/smartcontractkit/chainlink-testing-framework/client" ctf_config "github.com/smartcontractkit/chainlink-testing-framework/config" "github.com/smartcontractkit/chainlink-testing-framework/k8s/environment" - "github.com/smartcontractkit/chainlink-testing-framework/k8s/pkg/cdk8s/blockscout" "github.com/smartcontractkit/chainlink-testing-framework/k8s/pkg/helm/chainlink" - "github.com/smartcontractkit/chainlink-testing-framework/k8s/pkg/helm/reorg" "github.com/smartcontractkit/chainlink-testing-framework/logging" "github.com/smartcontractkit/chainlink-testing-framework/networks" "github.com/smartcontractkit/chainlink-testing-framework/utils/testcontext" + geth_helm "github.com/smartcontractkit/chainlink-testing-framework/k8s/pkg/helm/ethereum" "github.com/smartcontractkit/chainlink/integration-tests/actions" "github.com/smartcontractkit/chainlink/integration-tests/client" "github.com/smartcontractkit/chainlink/integration-tests/contracts" @@ -29,7 +29,8 @@ import ( ) var ( - baseTOML = `[Feature] + baseTOML = ` +[Feature] LogPoller = true [OCR2] @@ -38,18 +39,27 @@ Enabled = true [P2P] [P2P.V2] AnnounceAddresses = ["0.0.0.0:6690"] -ListenAddresses = ["0.0.0.0:6690"]` - networkTOML = `Enabled = true -FinalityDepth = 200 -LogPollInterval = '1s' +ListenAddresses = ["0.0.0.0:6690"] + ` + finalityDepth = 20 + historyDepth = 30 + reorgBlockCount = 10 // Number of blocks to reorg (less than finalityDepth) + networkTOML = fmt.Sprintf(` +Enabled = true +FinalityDepth = %d [EVM.HeadTracker] -HistoryDepth = 400 +HistoryDepth = %d [EVM.GasEstimator] Mode = 'FixedPrice' -LimitDefault = 5_000_000` - +LimitDefault = 5_000_000 + `, finalityDepth, historyDepth) + upkeepCount = 2 + nodeCount = 6 + nodeFundsAmount = new(big.Float).SetFloat64(2) // Each node will have 2 ETH + defaultUpkeepGasLimit = uint32(2500000) + defaultLinkFunds = int64(9e18) defaultAutomationSettings = map[string]interface{}{ "toml": "", "db": map[string]interface{}{ @@ -67,22 +77,6 @@ LimitDefault = 5_000_000` }, }, } - - defaultReorgEthereumSettings = &reorg.Props{ - NetworkName: "", - NetworkType: "geth-reorg", - Values: map[string]interface{}{ - "geth": map[string]interface{}{ - "genesis": map[string]interface{}{ - "networkId": "1337", - }, - "miner": map[string]interface{}{ - "replicas": 2, - }, - }, - }, - } - defaultOCRRegistryConfig = contracts.KeeperRegistrySettings{ PaymentPremiumPPB: uint32(200000000), FlatFeeMicroLINK: uint32(0), @@ -100,31 +94,17 @@ LimitDefault = 5_000_000` } ) -const ( - defaultUpkeepGasLimit = uint32(2500000) - defaultLinkFunds = int64(9e18) - numberOfUpkeeps = 2 - automationReorgBlocks = 50 - numberOfNodes = 6 -) - /* - * This test verifies that conditional upkeeps automatically recover from chain reorgs - * The blockchain is configured to have two separate miners and one geth node. The test starts - * with happy path where the two miners remain in sync and upkeeps are expected to be performed. - * Then reorg starts and the connection between the two geth miners is severed. This makes the - * chain unstable, however all the CL nodes get the same view of the unstable chain through the - * same geth node. + * This test verifies that conditional upkeeps automatically recover from chain reorgs. * - * Upkeeps are expected to be performed during the reorg as there are only two versions of the - * the chain, on average 1/2 performUpkeeps should go through. + * The test starts with happy path where upkeeps are expected to be performed. + * Then reorg below finality depth happens which makes the chain unstable. * - * The miner nodes are synced back after automationReorgBlocks. The syncing event can cause a - * large reorg from CL node perspective, causing existing performUpkeeps to become staleUpkeeps. - * Automation should be able to recover from this and upkeeps should continue to occur at a - * normal pace after the event. + * Upkeeps are expected to be performed during the reorg. */ func TestAutomationReorg(t *testing.T) { + require.Less(t, reorgBlockCount, finalityDepth, "Reorg block count should be less than finality depth") + t.Parallel() l := logging.GetTestLogger(t) @@ -132,8 +112,8 @@ func TestAutomationReorg(t *testing.T) { "registry_2_0": ethereum.RegistryVersion_2_0, "registry_2_1_conditional": ethereum.RegistryVersion_2_1, "registry_2_1_logtrigger": ethereum.RegistryVersion_2_1, - "registry_2_2_conditional": ethereum.RegistryVersion_2_2, - "registry_2_2_logtrigger": ethereum.RegistryVersion_2_2, + "registry_2_2_conditional": ethereum.RegistryVersion_2_2, // Works only on Chainlink Node v2.10.0 or greater + "registry_2_2_logtrigger": ethereum.RegistryVersion_2_2, // Works only on Chainlink Node v2.10.0 or greater } for n, rv := range registryVersions { @@ -148,7 +128,7 @@ func TestAutomationReorg(t *testing.T) { network := networks.MustGetSelectedNetworkConfig(config.Network)[0] - defaultAutomationSettings["replicas"] = numberOfNodes + defaultAutomationSettings["replicas"] = nodeCount defaultAutomationSettings["toml"] = networks.AddNetworkDetailedConfig(baseTOML, config.Pyroscope, networkTOML, network) var overrideFn = func(_ interface{}, target interface{}) { @@ -158,19 +138,17 @@ func TestAutomationReorg(t *testing.T) { cd := chainlink.NewWithOverride(0, defaultAutomationSettings, config.ChainlinkImage, overrideFn) - ethSetting := defaultReorgEthereumSettings - ethSetting.NetworkName = network.Name - testEnvironment := environment. New(&environment.Config{ - NamespacePrefix: fmt.Sprintf("automation-reorg-%d", automationReorgBlocks), + NamespacePrefix: fmt.Sprintf("automation-reorg-%d", reorgBlockCount), TTL: time.Hour * 1, Test: t}). - AddHelm(reorg.New(ethSetting)). - AddChart(blockscout.New(&blockscout.Props{ - Name: "geth-blockscout", - WsURL: network.URL, - HttpURL: network.HTTPURLs[0]})). + // Use Geth blockchain to simulate reorgs + AddHelm(geth_helm.New(&geth_helm.Props{ + NetworkName: network.Name, + Simulated: true, + WsURLs: network.URLs, + })). AddHelm(cd) err = testEnvironment.Run() require.NoError(t, err, "Error setting up test environment") @@ -178,6 +156,9 @@ func TestAutomationReorg(t *testing.T) { if testEnvironment.WillUseRemoteRunner() { return } + gethURL := testEnvironment.URLs["Simulated Geth_http"][0] + require.NotEmpty(t, gethURL, "Geth URL should not be empty") + gethRPCClient := ctf_client.NewRPCClient(gethURL) chainClient, err := blockchain.NewEVMClient(network, testEnvironment, l) require.NoError(t, err, "Error connecting to blockchain") @@ -193,9 +174,7 @@ func TestAutomationReorg(t *testing.T) { require.NoError(t, err, "Error tearing down environment") }) - txCost, err := chainClient.EstimateCostForChainlinkOperations(1000) - require.NoError(t, err, "Error estimating cost for Chainlink Operations") - err = actions.FundChainlinkNodes(chainlinkNodes, chainClient, txCost) + err = actions.FundChainlinkNodes(chainlinkNodes, chainClient, nodeFundsAmount) require.NoError(t, err, "Error funding Chainlink nodes") linkToken, err := contractDeployer.DeployLinkTokenContract() @@ -210,7 +189,7 @@ func TestAutomationReorg(t *testing.T) { chainClient, ) // Fund the registry with LINK - err = linkToken.Transfer(registry.Address(), big.NewInt(0).Mul(big.NewInt(1e18), big.NewInt(int64(numberOfUpkeeps)))) + err = linkToken.Transfer(registry.Address(), big.NewInt(0).Mul(big.NewInt(1e18), big.NewInt(int64(upkeepCount)))) require.NoError(t, err, "Funding keeper registry contract shouldn't fail") actions.CreateOCRKeeperJobs(t, chainlinkNodes, registry.Address(), network.ChainID, 0, registryVersion) @@ -227,8 +206,18 @@ func TestAutomationReorg(t *testing.T) { require.NoError(t, chainClient.WaitForEvents(), "Waiting for config to be set") // Use the name to determine if this is a log trigger or not - isLogTrigger := name == "registry_2_1_logtrigger" - consumers, upkeepIDs := actions.DeployConsumers(t, registry, registrar, linkToken, contractDeployer, chainClient, numberOfUpkeeps, big.NewInt(defaultLinkFunds), defaultUpkeepGasLimit, isLogTrigger, false) + isLogTrigger := name == "registry_2_1_logtrigger" || name == "registry_2_2_logtrigger" + consumers, upkeepIDs := actions.DeployConsumers(t, registry, registrar, linkToken, contractDeployer, chainClient, upkeepCount, big.NewInt(defaultLinkFunds), defaultUpkeepGasLimit, isLogTrigger, false) + + if isLogTrigger { + for i := 0; i < len(upkeepIDs); i++ { + if err := consumers[i].Start(); err != nil { + l.Error().Msg("Error when starting consumer") + return + } + l.Info().Int("Consumer index", i).Msg("Consumer started") + } + } l.Info().Msg("Waiting for all upkeeps to be performed") @@ -247,20 +236,14 @@ func TestAutomationReorg(t *testing.T) { l.Info().Msg("All upkeeps performed under happy path. Starting reorg") - rc, err := NewReorgController( - &ReorgConfig{ - FromPodLabel: reorg.TXNodesAppLabel, - ToPodLabel: reorg.MinerNodesAppLabel, - Network: chainClient, - Env: testEnvironment, - BlockConsensusThreshold: 3, - Timeout: 1800 * time.Second, - }, - ) - - require.NoError(t, err, "Error getting reorg controller") - rc.ReOrg(automationReorgBlocks) - rc.WaitReorgStarted() + l.Info(). + Str("URL", gethRPCClient.URL). + Int("BlocksBack", reorgBlockCount). + Int("FinalityDepth", finalityDepth). + Int("HistoryDepth", historyDepth). + Msg("Rewinding blocks on chain below finality depth") + err = gethRPCClient.GethSetHead(reorgBlockCount) + require.NoError(t, err, "Error rewinding blocks on chain") l.Info().Msg("Reorg started. Expecting chain to become unstable and upkeeps to still getting performed") @@ -275,23 +258,6 @@ func TestAutomationReorg(t *testing.T) { "Expected consumer counter to be greater than %d, but got %d", expect, counter.Int64()) } }, "5m", "1s").Should(gomega.Succeed()) - - l.Info().Msg("Upkeep performed during unstable chain, waiting for reorg to finish") - err = rc.WaitDepthReached() - require.NoError(t, err) - - l.Info().Msg("Reorg finished, chain should be stable now. Expecting upkeeps to keep getting performed") - gom.Eventually(func(g gomega.Gomega) { - // Check if the upkeeps are performing multiple times by analyzing their counters and checking they reach 20 - for i := 0; i < len(upkeepIDs); i++ { - counter, err := consumers[i].Counter(testcontext.Get(t)) - require.NoError(t, err, "Failed to retrieve consumer counter for upkeep at index %d", i) - expect := 20 - l.Info().Int64("Upkeeps Performed", counter.Int64()).Int("Upkeep ID", i).Msg("Number of upkeeps performed") - g.Expect(counter.Int64()).Should(gomega.BeNumerically(">=", int64(expect)), - "Expected consumer counter to be greater than %d, but got %d", expect, counter.Int64()) - } - }, "10m", "1s").Should(gomega.Succeed()) }) } } From d3b41d20960e19bbd5d172aa3c51a10f2ebcfcd7 Mon Sep 17 00:00:00 2001 From: Jordan Krage Date: Fri, 7 Jun 2024 09:26:33 -0500 Subject: [PATCH 28/40] core/services/ocr2/plugins/ocr2keeper/evmregistry/v21: short circuit on ctx; bump common for sql log improvements (#13460) * core/services/ocr2/plugins/ocr2keeper/evmregistry/v21: short circuit on ctx; bump common for sql log improvements * remove log from ignorelist * bump common --------- Co-authored-by: anirudhwarrier <12178754+anirudhwarrier@users.noreply.github.com> --- core/scripts/go.mod | 2 +- core/scripts/go.sum | 4 ++-- .../ocr2keeper/evmregistry/v21/registry_check_pipeline.go | 3 +++ go.mod | 2 +- go.sum | 4 ++-- integration-tests/docker/test_env/test_env_builder.go | 1 - integration-tests/go.mod | 2 +- integration-tests/go.sum | 4 ++-- integration-tests/load/go.mod | 2 +- integration-tests/load/go.sum | 4 ++-- 10 files changed, 15 insertions(+), 13 deletions(-) diff --git a/core/scripts/go.mod b/core/scripts/go.mod index 171751a3f0c..e87d9ada680 100644 --- a/core/scripts/go.mod +++ b/core/scripts/go.mod @@ -24,7 +24,7 @@ require ( github.com/prometheus/client_golang v1.17.0 github.com/shopspring/decimal v1.3.1 github.com/smartcontractkit/chainlink-automation v1.0.3 - github.com/smartcontractkit/chainlink-common v0.1.7-0.20240606173949-4d52ba4e3c79 + github.com/smartcontractkit/chainlink-common v0.1.7-0.20240607130706-b99591fa7e4a github.com/smartcontractkit/chainlink-vrf v0.0.0-20240222010609-cd67d123c772 github.com/smartcontractkit/chainlink/v2 v2.0.0-00010101000000-000000000000 github.com/smartcontractkit/libocr v0.0.0-20240419185742-fd3cab206b2c diff --git a/core/scripts/go.sum b/core/scripts/go.sum index 469e468bd6e..3f4a18d7e21 100644 --- a/core/scripts/go.sum +++ b/core/scripts/go.sum @@ -1212,8 +1212,8 @@ github.com/smartcontractkit/chain-selectors v1.0.10 h1:t9kJeE6B6G+hKD0GYR4kGJSCq github.com/smartcontractkit/chain-selectors v1.0.10/go.mod h1:d4Hi+E1zqjy9HqMkjBE5q1vcG9VGgxf5VxiRHfzi2kE= github.com/smartcontractkit/chainlink-automation v1.0.3 h1:h/ijT0NiyV06VxYVgcNfsE3+8OEzT3Q0Z9au0z1BPWs= github.com/smartcontractkit/chainlink-automation v1.0.3/go.mod h1:RjboV0Qd7YP+To+OrzHGXaxUxoSONveCoAK2TQ1INLU= -github.com/smartcontractkit/chainlink-common v0.1.7-0.20240606173949-4d52ba4e3c79 h1:hs8dNt80KM3iBPBJ4fo6Kp3gsHhdJUe8RVr/JpGBaQM= -github.com/smartcontractkit/chainlink-common v0.1.7-0.20240606173949-4d52ba4e3c79/go.mod h1:L32xvCpk84Nglit64OhySPMP1tM3TTBK7Tw0qZl7Sd4= +github.com/smartcontractkit/chainlink-common v0.1.7-0.20240607130706-b99591fa7e4a h1:sQB8v5zuWMVEhWjTMeMRIcgazfhFz43glfaLgVsToMM= +github.com/smartcontractkit/chainlink-common v0.1.7-0.20240607130706-b99591fa7e4a/go.mod h1:L32xvCpk84Nglit64OhySPMP1tM3TTBK7Tw0qZl7Sd4= github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20240524214833-c362c2ebbd2d h1:5tgMC5Gi2UAOKZ+m28W8ubjLeR0pQCAcrz6eQ0rW510= github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20240524214833-c362c2ebbd2d/go.mod h1:0UNuO3nDt9MFsZPaHJBEUolxVkN0iC69j1ccDp95e8k= github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240606130021-a4b7359e1580 h1:nsnLzpBTDAQWkfsOz/qd8BTlb1hUpaow1KmA1tPwTf4= diff --git a/core/services/ocr2/plugins/ocr2keeper/evmregistry/v21/registry_check_pipeline.go b/core/services/ocr2/plugins/ocr2keeper/evmregistry/v21/registry_check_pipeline.go index 5294530140b..ef0089921ce 100644 --- a/core/services/ocr2/plugins/ocr2keeper/evmregistry/v21/registry_check_pipeline.go +++ b/core/services/ocr2/plugins/ocr2keeper/evmregistry/v21/registry_check_pipeline.go @@ -188,6 +188,9 @@ func (r *EvmRegistry) checkUpkeeps(ctx context.Context, payloads []ocr2keepers.U indices := map[int]int{} for i, p := range payloads { + if ctx.Err() != nil { + return nil, context.Cause(ctx) + } block, checkHash, upkeepId := r.getBlockAndUpkeepId(p.UpkeepID, p.Trigger) state, retryable := r.verifyCheckBlock(ctx, block, upkeepId, checkHash) if state != encoding.NoPipelineError { diff --git a/go.mod b/go.mod index bd2fa774446..631e8283ebf 100644 --- a/go.mod +++ b/go.mod @@ -72,7 +72,7 @@ require ( github.com/shopspring/decimal v1.3.1 github.com/smartcontractkit/chain-selectors v1.0.10 github.com/smartcontractkit/chainlink-automation v1.0.3 - github.com/smartcontractkit/chainlink-common v0.1.7-0.20240606173949-4d52ba4e3c79 + github.com/smartcontractkit/chainlink-common v0.1.7-0.20240607130706-b99591fa7e4a github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20240524214833-c362c2ebbd2d github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240606130021-a4b7359e1580 github.com/smartcontractkit/chainlink-feeds v0.0.0-20240522213638-159fb2d99917 diff --git a/go.sum b/go.sum index 9570c21e7a5..cda013bc631 100644 --- a/go.sum +++ b/go.sum @@ -1171,8 +1171,8 @@ github.com/smartcontractkit/chain-selectors v1.0.10 h1:t9kJeE6B6G+hKD0GYR4kGJSCq github.com/smartcontractkit/chain-selectors v1.0.10/go.mod h1:d4Hi+E1zqjy9HqMkjBE5q1vcG9VGgxf5VxiRHfzi2kE= github.com/smartcontractkit/chainlink-automation v1.0.3 h1:h/ijT0NiyV06VxYVgcNfsE3+8OEzT3Q0Z9au0z1BPWs= github.com/smartcontractkit/chainlink-automation v1.0.3/go.mod h1:RjboV0Qd7YP+To+OrzHGXaxUxoSONveCoAK2TQ1INLU= -github.com/smartcontractkit/chainlink-common v0.1.7-0.20240606173949-4d52ba4e3c79 h1:hs8dNt80KM3iBPBJ4fo6Kp3gsHhdJUe8RVr/JpGBaQM= -github.com/smartcontractkit/chainlink-common v0.1.7-0.20240606173949-4d52ba4e3c79/go.mod h1:L32xvCpk84Nglit64OhySPMP1tM3TTBK7Tw0qZl7Sd4= +github.com/smartcontractkit/chainlink-common v0.1.7-0.20240607130706-b99591fa7e4a h1:sQB8v5zuWMVEhWjTMeMRIcgazfhFz43glfaLgVsToMM= +github.com/smartcontractkit/chainlink-common v0.1.7-0.20240607130706-b99591fa7e4a/go.mod h1:L32xvCpk84Nglit64OhySPMP1tM3TTBK7Tw0qZl7Sd4= github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20240524214833-c362c2ebbd2d h1:5tgMC5Gi2UAOKZ+m28W8ubjLeR0pQCAcrz6eQ0rW510= github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20240524214833-c362c2ebbd2d/go.mod h1:0UNuO3nDt9MFsZPaHJBEUolxVkN0iC69j1ccDp95e8k= github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240606130021-a4b7359e1580 h1:nsnLzpBTDAQWkfsOz/qd8BTlb1hUpaow1KmA1tPwTf4= diff --git a/integration-tests/docker/test_env/test_env_builder.go b/integration-tests/docker/test_env/test_env_builder.go index 20a551cd905..5cd700a4567 100644 --- a/integration-tests/docker/test_env/test_env_builder.go +++ b/integration-tests/docker/test_env/test_env_builder.go @@ -73,7 +73,6 @@ type CLTestEnvBuilder struct { var DefaultAllowedMessages = []testreporters.AllowedLogMessage{ testreporters.NewAllowedLogMessage("Failed to get LINK balance", "Happens only when we deploy LINK token for test purposes. Harmless.", zapcore.ErrorLevel, testreporters.WarnAboutAllowedMsgs_No), testreporters.NewAllowedLogMessage("Error stopping job service", "It's a known issue with lifecycle. There's ongoing work that will fix it.", zapcore.DPanicLevel, testreporters.WarnAboutAllowedMsgs_No), - testreporters.NewAllowedLogMessage("SLOW SQL QUERY", "Known issue in Automation Node Upgrade Test - https://smartcontract-it.atlassian.net/browse/BCF-3245", zapcore.DPanicLevel, testreporters.WarnAboutAllowedMsgs_No), } var DefaultChainlinkNodeLogScannerSettings = ChainlinkNodeLogScannerSettings{ diff --git a/integration-tests/go.mod b/integration-tests/go.mod index 9630350ccf9..23e7bcf7169 100644 --- a/integration-tests/go.mod +++ b/integration-tests/go.mod @@ -27,7 +27,7 @@ require ( github.com/shopspring/decimal v1.3.1 github.com/slack-go/slack v0.12.2 github.com/smartcontractkit/chainlink-automation v1.0.3 - github.com/smartcontractkit/chainlink-common v0.1.7-0.20240606173949-4d52ba4e3c79 + github.com/smartcontractkit/chainlink-common v0.1.7-0.20240607130706-b99591fa7e4a github.com/smartcontractkit/chainlink-testing-framework v1.30.1 github.com/smartcontractkit/chainlink-vrf v0.0.0-20231120191722-fef03814f868 github.com/smartcontractkit/chainlink/v2 v2.0.0-00010101000000-000000000000 diff --git a/integration-tests/go.sum b/integration-tests/go.sum index 7131bdf29d2..d3ece17f8ba 100644 --- a/integration-tests/go.sum +++ b/integration-tests/go.sum @@ -1512,8 +1512,8 @@ github.com/smartcontractkit/chain-selectors v1.0.10 h1:t9kJeE6B6G+hKD0GYR4kGJSCq github.com/smartcontractkit/chain-selectors v1.0.10/go.mod h1:d4Hi+E1zqjy9HqMkjBE5q1vcG9VGgxf5VxiRHfzi2kE= github.com/smartcontractkit/chainlink-automation v1.0.3 h1:h/ijT0NiyV06VxYVgcNfsE3+8OEzT3Q0Z9au0z1BPWs= github.com/smartcontractkit/chainlink-automation v1.0.3/go.mod h1:RjboV0Qd7YP+To+OrzHGXaxUxoSONveCoAK2TQ1INLU= -github.com/smartcontractkit/chainlink-common v0.1.7-0.20240606173949-4d52ba4e3c79 h1:hs8dNt80KM3iBPBJ4fo6Kp3gsHhdJUe8RVr/JpGBaQM= -github.com/smartcontractkit/chainlink-common v0.1.7-0.20240606173949-4d52ba4e3c79/go.mod h1:L32xvCpk84Nglit64OhySPMP1tM3TTBK7Tw0qZl7Sd4= +github.com/smartcontractkit/chainlink-common v0.1.7-0.20240607130706-b99591fa7e4a h1:sQB8v5zuWMVEhWjTMeMRIcgazfhFz43glfaLgVsToMM= +github.com/smartcontractkit/chainlink-common v0.1.7-0.20240607130706-b99591fa7e4a/go.mod h1:L32xvCpk84Nglit64OhySPMP1tM3TTBK7Tw0qZl7Sd4= github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20240524214833-c362c2ebbd2d h1:5tgMC5Gi2UAOKZ+m28W8ubjLeR0pQCAcrz6eQ0rW510= github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20240524214833-c362c2ebbd2d/go.mod h1:0UNuO3nDt9MFsZPaHJBEUolxVkN0iC69j1ccDp95e8k= github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240606130021-a4b7359e1580 h1:nsnLzpBTDAQWkfsOz/qd8BTlb1hUpaow1KmA1tPwTf4= diff --git a/integration-tests/load/go.mod b/integration-tests/load/go.mod index 4a36f95c84d..d99df951102 100644 --- a/integration-tests/load/go.mod +++ b/integration-tests/load/go.mod @@ -16,7 +16,7 @@ require ( github.com/rs/zerolog v1.30.0 github.com/slack-go/slack v0.12.2 github.com/smartcontractkit/chainlink-automation v1.0.3 - github.com/smartcontractkit/chainlink-common v0.1.7-0.20240606173949-4d52ba4e3c79 + github.com/smartcontractkit/chainlink-common v0.1.7-0.20240607130706-b99591fa7e4a github.com/smartcontractkit/chainlink-testing-framework v1.30.1 github.com/smartcontractkit/chainlink/integration-tests v0.0.0-20240214231432-4ad5eb95178c github.com/smartcontractkit/chainlink/v2 v2.9.0-beta0.0.20240216210048-da02459ddad8 diff --git a/integration-tests/load/go.sum b/integration-tests/load/go.sum index 16ecb5c6fb0..2ea9c2e1406 100644 --- a/integration-tests/load/go.sum +++ b/integration-tests/load/go.sum @@ -1502,8 +1502,8 @@ github.com/smartcontractkit/chain-selectors v1.0.10 h1:t9kJeE6B6G+hKD0GYR4kGJSCq github.com/smartcontractkit/chain-selectors v1.0.10/go.mod h1:d4Hi+E1zqjy9HqMkjBE5q1vcG9VGgxf5VxiRHfzi2kE= github.com/smartcontractkit/chainlink-automation v1.0.3 h1:h/ijT0NiyV06VxYVgcNfsE3+8OEzT3Q0Z9au0z1BPWs= github.com/smartcontractkit/chainlink-automation v1.0.3/go.mod h1:RjboV0Qd7YP+To+OrzHGXaxUxoSONveCoAK2TQ1INLU= -github.com/smartcontractkit/chainlink-common v0.1.7-0.20240606173949-4d52ba4e3c79 h1:hs8dNt80KM3iBPBJ4fo6Kp3gsHhdJUe8RVr/JpGBaQM= -github.com/smartcontractkit/chainlink-common v0.1.7-0.20240606173949-4d52ba4e3c79/go.mod h1:L32xvCpk84Nglit64OhySPMP1tM3TTBK7Tw0qZl7Sd4= +github.com/smartcontractkit/chainlink-common v0.1.7-0.20240607130706-b99591fa7e4a h1:sQB8v5zuWMVEhWjTMeMRIcgazfhFz43glfaLgVsToMM= +github.com/smartcontractkit/chainlink-common v0.1.7-0.20240607130706-b99591fa7e4a/go.mod h1:L32xvCpk84Nglit64OhySPMP1tM3TTBK7Tw0qZl7Sd4= github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20240524214833-c362c2ebbd2d h1:5tgMC5Gi2UAOKZ+m28W8ubjLeR0pQCAcrz6eQ0rW510= github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20240524214833-c362c2ebbd2d/go.mod h1:0UNuO3nDt9MFsZPaHJBEUolxVkN0iC69j1ccDp95e8k= github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240606130021-a4b7359e1580 h1:nsnLzpBTDAQWkfsOz/qd8BTlb1hUpaow1KmA1tPwTf4= From b09c14d0ca85678799cb108500687d0e8456205a Mon Sep 17 00:00:00 2001 From: Bolek <1416262+bolekk@users.noreply.github.com> Date: Fri, 7 Jun 2024 08:07:14 -0700 Subject: [PATCH 29/40] [Keystone] Add remote target to syncer (#13456) * [Keystone] Add remote target to syncer 1. Refactor remote target client/server to implement services.Service 2. Use service-wide context when launching NewClientRequest 3. Handle early termination in Engine 4. Logging improvements * Use updated error value; handle stop execution * Fresh common + test fixes --------- Co-authored-by: Cedric Cordenier --- .changeset/healthy-shoes-lie.md | 5 ++ core/capabilities/remote/dispatcher.go | 2 + core/capabilities/remote/target/client.go | 78 +++++++++++++------ .../capabilities/remote/target/client_test.go | 9 ++- .../remote/target/endtoend_test.go | 15 +++- .../remote/target/request/client_request.go | 4 + .../remote/target/request/server_request.go | 13 +++- .../target/request/server_request_test.go | 12 +-- core/capabilities/remote/target/server.go | 73 ++++++++++++----- .../capabilities/remote/target/server_test.go | 27 +++++-- core/capabilities/syncer.go | 68 +++++++++++++++- core/scripts/go.mod | 2 +- core/scripts/go.sum | 4 +- core/services/workflows/engine.go | 33 ++++++-- core/services/workflows/engine_test.go | 40 ++++++++++ core/services/workflows/store/models.go | 9 ++- go.mod | 2 +- go.sum | 4 +- integration-tests/go.mod | 2 +- integration-tests/go.sum | 4 +- integration-tests/load/go.mod | 2 +- integration-tests/load/go.sum | 4 +- 22 files changed, 322 insertions(+), 90 deletions(-) create mode 100644 .changeset/healthy-shoes-lie.md diff --git a/.changeset/healthy-shoes-lie.md b/.changeset/healthy-shoes-lie.md new file mode 100644 index 00000000000..85c0cc0beed --- /dev/null +++ b/.changeset/healthy-shoes-lie.md @@ -0,0 +1,5 @@ +--- +"chainlink": patch +--- + +#internal [Keystone] Add remote target to syncer diff --git a/core/capabilities/remote/dispatcher.go b/core/capabilities/remote/dispatcher.go index 44b00c035f1..63b0fad7e98 100644 --- a/core/capabilities/remote/dispatcher.go +++ b/core/capabilities/remote/dispatcher.go @@ -72,6 +72,7 @@ func (d *dispatcher) SetReceiver(capabilityId string, donId string, receiver rem return fmt.Errorf("receiver already exists for capability %s and don %s", capabilityId, donId) } d.receivers[k] = receiver + d.lggr.Debugw("receiver set", "capabilityId", capabilityId, "donId", donId) return nil } @@ -79,6 +80,7 @@ func (d *dispatcher) RemoveReceiver(capabilityId string, donId string) { d.mu.Lock() defer d.mu.Unlock() delete(d.receivers, key{capabilityId, donId}) + d.lggr.Debugw("receiver removed", "capabilityId", capabilityId, "donId", donId) } func (d *dispatcher) Send(peerID p2ptypes.PeerID, msgBody *remotetypes.MessageBody) error { diff --git a/core/capabilities/remote/target/client.go b/core/capabilities/remote/target/client.go index ceab11dfcb0..2fb11930164 100644 --- a/core/capabilities/remote/target/client.go +++ b/core/capabilities/remote/target/client.go @@ -7,8 +7,8 @@ import ( "sync" "time" - "github.com/smartcontractkit/chainlink-common/pkg/capabilities" commoncap "github.com/smartcontractkit/chainlink-common/pkg/capabilities" + "github.com/smartcontractkit/chainlink-common/pkg/services" "github.com/smartcontractkit/chainlink/v2/core/capabilities/remote/target/request" "github.com/smartcontractkit/chainlink/v2/core/capabilities/remote/types" "github.com/smartcontractkit/chainlink/v2/core/logger" @@ -22,44 +22,34 @@ import ( // // client communicates with corresponding server on remote nodes. type client struct { + services.StateMachine lggr logger.Logger remoteCapabilityInfo commoncap.CapabilityInfo - localDONInfo capabilities.DON + localDONInfo commoncap.DON dispatcher types.Dispatcher requestTimeout time.Duration messageIDToCallerRequest map[string]*request.ClientRequest mutex sync.Mutex + stopCh services.StopChan + wg sync.WaitGroup } var _ commoncap.TargetCapability = &client{} var _ types.Receiver = &client{} +var _ services.Service = &client{} -func NewClient(ctx context.Context, lggr logger.Logger, remoteCapabilityInfo commoncap.CapabilityInfo, localDonInfo capabilities.DON, dispatcher types.Dispatcher, - requestTimeout time.Duration) *client { - c := &client{ +func NewClient(remoteCapabilityInfo commoncap.CapabilityInfo, localDonInfo commoncap.DON, dispatcher types.Dispatcher, + requestTimeout time.Duration, lggr logger.Logger) *client { + return &client{ lggr: lggr, remoteCapabilityInfo: remoteCapabilityInfo, localDONInfo: localDonInfo, dispatcher: dispatcher, requestTimeout: requestTimeout, messageIDToCallerRequest: make(map[string]*request.ClientRequest), + stopCh: make(services.StopChan), } - - go func() { - ticker := time.NewTicker(requestTimeout) - defer ticker.Stop() - for { - select { - case <-ctx.Done(): - return - case <-ticker.C: - c.expireRequests() - } - } - }() - - return c } func (c *client) expireRequests() { @@ -74,6 +64,36 @@ func (c *client) expireRequests() { } } +func (c *client) Start(ctx context.Context) error { + return c.StartOnce(c.Name(), func() error { + c.wg.Add(1) + go func() { + defer c.wg.Done() + ticker := time.NewTicker(c.requestTimeout) + defer ticker.Stop() + c.lggr.Info("TargetClient started") + for { + select { + case <-c.stopCh: + return + case <-ticker.C: + c.expireRequests() + } + } + }() + return nil + }) +} + +func (c *client) Close() error { + return c.StopOnce(c.Name(), func() error { + close(c.stopCh) + c.wg.Wait() + c.lggr.Info("TargetClient closed") + return nil + }) +} + func (c *client) Info(ctx context.Context) (commoncap.CapabilityInfo, error) { return c.remoteCapabilityInfo, nil } @@ -101,7 +121,8 @@ func (c *client) Execute(ctx context.Context, capReq commoncap.CapabilityRequest return nil, fmt.Errorf("request for message ID %s already exists", messageID) } - req, err := request.NewClientRequest(ctx, c.lggr, capReq, messageID, c.remoteCapabilityInfo, c.localDONInfo, c.dispatcher, + cCtx, _ := c.stopCh.NewCtx() + req, err := request.NewClientRequest(cCtx, c.lggr, capReq, messageID, c.remoteCapabilityInfo, c.localDONInfo, c.dispatcher, c.requestTimeout) if err != nil { return nil, fmt.Errorf("failed to create client request: %w", err) @@ -115,8 +136,7 @@ func (c *client) Execute(ctx context.Context, capReq commoncap.CapabilityRequest func (c *client) Receive(msg *types.MessageBody) { c.mutex.Lock() defer c.mutex.Unlock() - // TODO should the dispatcher be passing in a context? - ctx := context.Background() + ctx, _ := c.stopCh.NewCtx() messageID := GetMessageID(msg) @@ -140,3 +160,15 @@ func GetMessageIDForRequest(req commoncap.CapabilityRequest) (string, error) { return req.Metadata.WorkflowID + req.Metadata.WorkflowExecutionID, nil } + +func (c *client) Ready() error { + return nil +} + +func (c *client) HealthReport() map[string]error { + return nil +} + +func (c *client) Name() string { + return "TargetClient" +} diff --git a/core/capabilities/remote/target/client_test.go b/core/capabilities/remote/target/client_test.go index f5c6c19ef93..8665ffe7544 100644 --- a/core/capabilities/remote/target/client_test.go +++ b/core/capabilities/remote/target/client_test.go @@ -11,6 +11,7 @@ import ( commoncap "github.com/smartcontractkit/chainlink-common/pkg/capabilities" "github.com/smartcontractkit/chainlink-common/pkg/capabilities/pb" + "github.com/smartcontractkit/chainlink-common/pkg/services" "github.com/smartcontractkit/chainlink-common/pkg/values" "github.com/smartcontractkit/chainlink/v2/core/capabilities/remote/target" remotetypes "github.com/smartcontractkit/chainlink/v2/core/capabilities/remote/types" @@ -165,11 +166,14 @@ func testClient(ctx context.Context, t *testing.T, numWorkflowPeers int, workflo } callers := make([]commoncap.TargetCapability, numWorkflowPeers) + srvcs := make([]services.Service, numWorkflowPeers) for i := 0; i < numWorkflowPeers; i++ { workflowPeerDispatcher := broker.NewDispatcherForNode(workflowPeers[i]) - caller := target.NewClient(ctx, lggr, capInfo, workflowDonInfo, workflowPeerDispatcher, workflowNodeResponseTimeout) + caller := target.NewClient(capInfo, workflowDonInfo, workflowPeerDispatcher, workflowNodeResponseTimeout, lggr) + require.NoError(t, caller.Start(ctx)) broker.RegisterReceiverNode(workflowPeers[i], caller) callers[i] = caller + srvcs[i] = caller } executeInputs, err := values.NewMap( @@ -202,6 +206,9 @@ func testClient(ctx context.Context, t *testing.T, numWorkflowPeers int, workflo } wg.Wait() + for i := 0; i < numWorkflowPeers; i++ { + require.NoError(t, srvcs[i].Close()) + } } // Simple client that only responds once it has received a message from each workflow peer diff --git a/core/capabilities/remote/target/endtoend_test.go b/core/capabilities/remote/target/endtoend_test.go index 24776960562..a5379250e5e 100644 --- a/core/capabilities/remote/target/endtoend_test.go +++ b/core/capabilities/remote/target/endtoend_test.go @@ -14,6 +14,7 @@ import ( "github.com/stretchr/testify/require" commoncap "github.com/smartcontractkit/chainlink-common/pkg/capabilities" + "github.com/smartcontractkit/chainlink-common/pkg/services" "github.com/smartcontractkit/chainlink-common/pkg/values" "github.com/smartcontractkit/chainlink/v2/core/capabilities/remote/target" remotetypes "github.com/smartcontractkit/chainlink/v2/core/capabilities/remote/types" @@ -225,22 +226,27 @@ func testRemoteTarget(ctx context.Context, t *testing.T, underlying commoncap.Ta workflowDonInfo.ID: workflowDonInfo, } + srvcs := []services.Service{} capabilityNodes := make([]remotetypes.Receiver, numCapabilityPeers) for i := 0; i < numCapabilityPeers; i++ { capabilityPeer := capabilityPeers[i] capabilityDispatcher := broker.NewDispatcherForNode(capabilityPeer) - capabilityNode := target.NewReceiver(ctx, lggr, capabilityPeer, underlying, capInfo, capDonInfo, workflowDONs, capabilityDispatcher, - capabilityNodeResponseTimeout) + capabilityNode := target.NewServer(capabilityPeer, underlying, capInfo, capDonInfo, workflowDONs, capabilityDispatcher, + capabilityNodeResponseTimeout, lggr) + require.NoError(t, capabilityNode.Start(ctx)) broker.RegisterReceiverNode(capabilityPeer, capabilityNode) capabilityNodes[i] = capabilityNode + srvcs = append(srvcs, capabilityNode) } workflowNodes := make([]commoncap.TargetCapability, numWorkflowPeers) for i := 0; i < numWorkflowPeers; i++ { workflowPeerDispatcher := broker.NewDispatcherForNode(workflowPeers[i]) - workflowNode := target.NewClient(ctx, lggr, capInfo, workflowDonInfo, workflowPeerDispatcher, workflowNodeTimeout) + workflowNode := target.NewClient(capInfo, workflowDonInfo, workflowPeerDispatcher, workflowNodeTimeout, lggr) + require.NoError(t, workflowNode.Start(ctx)) broker.RegisterReceiverNode(workflowPeers[i], workflowNode) workflowNodes[i] = workflowNode + srvcs = append(srvcs, workflowNode) } executeInputs, err := values.NewMap( @@ -272,6 +278,9 @@ func testRemoteTarget(ctx context.Context, t *testing.T, underlying commoncap.Ta } wg.Wait() + for _, srv := range srvcs { + require.NoError(t, srv.Close()) + } } type testMessageBroker struct { diff --git a/core/capabilities/remote/target/request/client_request.go b/core/capabilities/remote/target/request/client_request.go index 1355932c833..5f49040e0fb 100644 --- a/core/capabilities/remote/target/request/client_request.go +++ b/core/capabilities/remote/target/request/client_request.go @@ -59,6 +59,8 @@ func NewClientRequest(ctx context.Context, lggr logger.Logger, req commoncap.Cap return nil, fmt.Errorf("failed to get peer ID to transmission delay: %w", err) } + lggr.Debugw("sending request to peers", "execID", req.Metadata.WorkflowExecutionID, "schedule", peerIDToTransmissionDelay) + responseReceived := make(map[p2ptypes.PeerID]bool) for peerID, delay := range peerIDToTransmissionDelay { responseReceived[peerID] = false @@ -74,8 +76,10 @@ func NewClientRequest(ctx context.Context, lggr logger.Logger, req commoncap.Cap select { case <-ctx.Done(): + lggr.Debugw("context done, not sending request to peer", "execID", req.Metadata.WorkflowExecutionID, "peerID", peerID) return case <-time.After(delay): + lggr.Debugw("sending request to peer", "execID", req.Metadata.WorkflowExecutionID, "peerID", peerID) err := dispatcher.Send(peerID, message) if err != nil { lggr.Errorw("failed to send message", "peerID", peerID, "err", err) diff --git a/core/capabilities/remote/target/request/server_request.go b/core/capabilities/remote/target/request/server_request.go index 84968de9f11..bb84fda4ac0 100644 --- a/core/capabilities/remote/target/request/server_request.go +++ b/core/capabilities/remote/target/request/server_request.go @@ -10,6 +10,7 @@ import ( "github.com/smartcontractkit/chainlink-common/pkg/capabilities/pb" "github.com/smartcontractkit/chainlink/v2/core/capabilities/remote" "github.com/smartcontractkit/chainlink/v2/core/capabilities/remote/types" + "github.com/smartcontractkit/chainlink/v2/core/logger" p2ptypes "github.com/smartcontractkit/chainlink/v2/core/services/p2p/types" "github.com/smartcontractkit/chainlink-common/pkg/capabilities" @@ -42,12 +43,13 @@ type ServerRequest struct { requestMessageID string requestTimeout time.Duration - mux sync.Mutex + mux sync.Mutex + lggr logger.Logger } func NewServerRequest(capability capabilities.TargetCapability, capabilityID string, capabilityDonID string, capabilityPeerId p2ptypes.PeerID, callingDon commoncap.DON, requestMessageID string, - dispatcher types.Dispatcher, requestTimeout time.Duration) *ServerRequest { + dispatcher types.Dispatcher, requestTimeout time.Duration, lggr logger.Logger) *ServerRequest { return &ServerRequest{ capability: capability, createdTime: time.Now(), @@ -60,6 +62,7 @@ func NewServerRequest(capability capabilities.TargetCapability, capabilityID str callingDon: callingDon, requestMessageID: requestMessageID, requestTimeout: requestTimeout, + lggr: lggr, } } @@ -118,21 +121,22 @@ func (e *ServerRequest) executeRequest(ctx context.Context, payload []byte) erro return fmt.Errorf("failed to unmarshal capability request: %w", err) } + e.lggr.Debugw("executing capability", "metadata", capabilityRequest.Metadata) capResponseCh, err := e.capability.Execute(ctxWithTimeout, capabilityRequest) if err != nil { return fmt.Errorf("failed to execute capability: %w", err) } - // TODO working on the assumption that the capability will only ever return one response from its channel (for now at least) + // NOTE working on the assumption that the capability will only ever return one response from its channel capResponse := <-capResponseCh responsePayload, err := pb.MarshalCapabilityResponse(capResponse) if err != nil { return fmt.Errorf("failed to marshal capability response: %w", err) } + e.lggr.Debugw("received execution results", "metadata", capabilityRequest.Metadata, "error", capResponse.Err) e.setResult(responsePayload) - return nil } @@ -212,6 +216,7 @@ func (e *ServerRequest) sendResponse(requester p2ptypes.PeerID) error { responseMsg.Payload = e.response.response } + e.lggr.Debugw("Sending response", "receiver", requester) if err := e.dispatcher.Send(requester, &responseMsg); err != nil { return fmt.Errorf("failed to send response to dispatcher: %w", err) } diff --git a/core/capabilities/remote/target/request/server_request_test.go b/core/capabilities/remote/target/request/server_request_test.go index 0529a1e9004..fe3fdd713b5 100644 --- a/core/capabilities/remote/target/request/server_request_test.go +++ b/core/capabilities/remote/target/request/server_request_test.go @@ -16,10 +16,12 @@ import ( "github.com/smartcontractkit/chainlink-common/pkg/values" "github.com/smartcontractkit/chainlink/v2/core/capabilities/remote/target/request" "github.com/smartcontractkit/chainlink/v2/core/capabilities/remote/types" + "github.com/smartcontractkit/chainlink/v2/core/logger" p2ptypes "github.com/smartcontractkit/chainlink/v2/core/services/p2p/types" ) func Test_ServerRequest_MessageValidation(t *testing.T) { + lggr := logger.TestLogger(t) capability := TestCapability{} capabilityPeerID := NewP2PPeerID(t) @@ -57,7 +59,7 @@ func Test_ServerRequest_MessageValidation(t *testing.T) { t.Run("Send duplicate message", func(t *testing.T) { req := request.NewServerRequest(capability, "capabilityID", "capabilityDonID", - capabilityPeerID, callingDon, "requestMessageID", dispatcher, 10*time.Minute) + capabilityPeerID, callingDon, "requestMessageID", dispatcher, 10*time.Minute, lggr) err := sendValidRequest(req, workflowPeers, capabilityPeerID, rawRequest) require.NoError(t, err) @@ -67,7 +69,7 @@ func Test_ServerRequest_MessageValidation(t *testing.T) { t.Run("Send message with non calling don peer", func(t *testing.T) { req := request.NewServerRequest(capability, "capabilityID", "capabilityDonID", - capabilityPeerID, callingDon, "requestMessageID", dispatcher, 10*time.Minute) + capabilityPeerID, callingDon, "requestMessageID", dispatcher, 10*time.Minute, lggr) err := sendValidRequest(req, workflowPeers, capabilityPeerID, rawRequest) require.NoError(t, err) @@ -90,7 +92,7 @@ func Test_ServerRequest_MessageValidation(t *testing.T) { t.Run("Send message invalid payload", func(t *testing.T) { req := request.NewServerRequest(capability, "capabilityID", "capabilityDonID", - capabilityPeerID, callingDon, "requestMessageID", dispatcher, 10*time.Minute) + capabilityPeerID, callingDon, "requestMessageID", dispatcher, 10*time.Minute, lggr) err := sendValidRequest(req, workflowPeers, capabilityPeerID, rawRequest) require.NoError(t, err) @@ -115,7 +117,7 @@ func Test_ServerRequest_MessageValidation(t *testing.T) { t.Run("Send second valid request when capability errors", func(t *testing.T) { dispatcher := &testDispatcher{} req := request.NewServerRequest(TestErrorCapability{}, "capabilityID", "capabilityDonID", - capabilityPeerID, callingDon, "requestMessageID", dispatcher, 10*time.Minute) + capabilityPeerID, callingDon, "requestMessageID", dispatcher, 10*time.Minute, lggr) err := sendValidRequest(req, workflowPeers, capabilityPeerID, rawRequest) require.NoError(t, err) @@ -142,7 +144,7 @@ func Test_ServerRequest_MessageValidation(t *testing.T) { t.Run("Send second valid request", func(t *testing.T) { dispatcher := &testDispatcher{} request := request.NewServerRequest(capability, "capabilityID", "capabilityDonID", - capabilityPeerID, callingDon, "requestMessageID", dispatcher, 10*time.Minute) + capabilityPeerID, callingDon, "requestMessageID", dispatcher, 10*time.Minute, lggr) err := sendValidRequest(request, workflowPeers, capabilityPeerID, rawRequest) require.NoError(t, err) diff --git a/core/capabilities/remote/target/server.go b/core/capabilities/remote/target/server.go index bb3bc6e4edc..8ccbecf530e 100644 --- a/core/capabilities/remote/target/server.go +++ b/core/capabilities/remote/target/server.go @@ -8,11 +8,11 @@ import ( "time" commoncap "github.com/smartcontractkit/chainlink-common/pkg/capabilities" + "github.com/smartcontractkit/chainlink-common/pkg/services" "github.com/smartcontractkit/chainlink/v2/core/capabilities/remote/target/request" "github.com/smartcontractkit/chainlink/v2/core/capabilities/remote/types" p2ptypes "github.com/smartcontractkit/chainlink/v2/core/services/p2p/types" - "github.com/smartcontractkit/chainlink-common/pkg/capabilities" "github.com/smartcontractkit/chainlink/v2/core/logger" ) @@ -23,11 +23,12 @@ import ( // // server communicates with corresponding client on remote nodes. type server struct { + services.StateMachine lggr logger.Logger peerID p2ptypes.PeerID underlying commoncap.TargetCapability capInfo commoncap.CapabilityInfo - localDonInfo capabilities.DON + localDonInfo commoncap.DON workflowDONs map[string]commoncap.DON dispatcher types.Dispatcher @@ -35,13 +36,16 @@ type server struct { requestTimeout time.Duration receiveLock sync.Mutex + stopCh services.StopChan + wg sync.WaitGroup } var _ types.Receiver = &server{} +var _ services.Service = &server{} -func NewReceiver(ctx context.Context, lggr logger.Logger, peerID p2ptypes.PeerID, underlying commoncap.TargetCapability, capInfo commoncap.CapabilityInfo, localDonInfo capabilities.DON, - workflowDONs map[string]commoncap.DON, dispatcher types.Dispatcher, requestTimeout time.Duration) *server { - r := &server{ +func NewServer(peerID p2ptypes.PeerID, underlying commoncap.TargetCapability, capInfo commoncap.CapabilityInfo, localDonInfo commoncap.DON, + workflowDONs map[string]commoncap.DON, dispatcher types.Dispatcher, requestTimeout time.Duration, lggr logger.Logger) *server { + return &server{ underlying: underlying, peerID: peerID, capInfo: capInfo, @@ -52,23 +56,39 @@ func NewReceiver(ctx context.Context, lggr logger.Logger, peerID p2ptypes.PeerID requestIDToRequest: map[string]*request.ServerRequest{}, requestTimeout: requestTimeout, - lggr: lggr, + lggr: lggr, + stopCh: make(services.StopChan), } +} - go func() { - ticker := time.NewTicker(requestTimeout) - defer ticker.Stop() - for { - select { - case <-ctx.Done(): - return - case <-ticker.C: - r.expireRequests() +func (r *server) Start(ctx context.Context) error { + return r.StartOnce(r.Name(), func() error { + r.wg.Add(1) + go func() { + defer r.wg.Done() + ticker := time.NewTicker(r.requestTimeout) + defer ticker.Stop() + r.lggr.Info("TargetServer started") + for { + select { + case <-r.stopCh: + return + case <-ticker.C: + r.expireRequests() + } } - } - }() + }() + return nil + }) +} - return r +func (r *server) Close() error { + return r.StopOnce(r.Name(), func() error { + close(r.stopCh) + r.wg.Wait() + r.lggr.Info("TargetServer closed") + return nil + }) } func (r *server) expireRequests() { @@ -91,8 +111,7 @@ func (r *server) expireRequests() { func (r *server) Receive(msg *types.MessageBody) { r.receiveLock.Lock() defer r.receiveLock.Unlock() - // TODO should the dispatcher be passing in a context? - ctx := context.Background() + ctx, _ := r.stopCh.NewCtx() if msg.Method != types.MethodExecute { r.lggr.Errorw("received request for unsupported method type", "method", msg.Method) @@ -113,7 +132,7 @@ func (r *server) Receive(msg *types.MessageBody) { } r.requestIDToRequest[requestID] = request.NewServerRequest(r.underlying, r.capInfo.ID, r.localDonInfo.ID, r.peerID, - callingDon, messageId, r.dispatcher, r.requestTimeout) + callingDon, messageId, r.dispatcher, r.requestTimeout, r.lggr) } req := r.requestIDToRequest[requestID] @@ -129,3 +148,15 @@ func (r *server) Receive(msg *types.MessageBody) { func GetMessageID(msg *types.MessageBody) string { return string(msg.MessageId) } + +func (r *server) Ready() error { + return nil +} + +func (r *server) HealthReport() map[string]error { + return nil +} + +func (r *server) Name() string { + return "TargetServer" +} diff --git a/core/capabilities/remote/target/server_test.go b/core/capabilities/remote/target/server_test.go index fd7cbe0dfd1..e6d85ebff25 100644 --- a/core/capabilities/remote/target/server_test.go +++ b/core/capabilities/remote/target/server_test.go @@ -10,6 +10,7 @@ import ( commoncap "github.com/smartcontractkit/chainlink-common/pkg/capabilities" "github.com/smartcontractkit/chainlink-common/pkg/capabilities/pb" + "github.com/smartcontractkit/chainlink-common/pkg/services" "github.com/smartcontractkit/chainlink/v2/core/capabilities/remote/target" remotetypes "github.com/smartcontractkit/chainlink/v2/core/capabilities/remote/types" "github.com/smartcontractkit/chainlink/v2/core/internal/testutils" @@ -23,7 +24,7 @@ func Test_Server_RespondsAfterSufficientRequests(t *testing.T) { numCapabilityPeers := 4 - callers := testRemoteTargetServer(ctx, t, &TestCapability{}, 10, 9, numCapabilityPeers, 3, 10*time.Minute) + callers, srvcs := testRemoteTargetServer(ctx, t, &TestCapability{}, 10, 9, numCapabilityPeers, 3, 10*time.Minute) for _, caller := range callers { _, err := caller.Execute(context.Background(), @@ -42,6 +43,7 @@ func Test_Server_RespondsAfterSufficientRequests(t *testing.T) { assert.Equal(t, remotetypes.Error_OK, msg.Error) } } + closeServices(t, srvcs) } func Test_Server_InsufficientCallers(t *testing.T) { @@ -50,7 +52,7 @@ func Test_Server_InsufficientCallers(t *testing.T) { numCapabilityPeers := 4 - callers := testRemoteTargetServer(ctx, t, &TestCapability{}, 10, 10, numCapabilityPeers, 3, 100*time.Millisecond) + callers, srvcs := testRemoteTargetServer(ctx, t, &TestCapability{}, 10, 10, numCapabilityPeers, 3, 100*time.Millisecond) for _, caller := range callers { _, err := caller.Execute(context.Background(), @@ -69,6 +71,7 @@ func Test_Server_InsufficientCallers(t *testing.T) { assert.Equal(t, remotetypes.Error_TIMEOUT, msg.Error) } } + closeServices(t, srvcs) } func Test_Server_CapabilityError(t *testing.T) { @@ -77,7 +80,7 @@ func Test_Server_CapabilityError(t *testing.T) { numCapabilityPeers := 4 - callers := testRemoteTargetServer(ctx, t, &TestErrorCapability{}, 10, 9, numCapabilityPeers, 3, 100*time.Millisecond) + callers, srvcs := testRemoteTargetServer(ctx, t, &TestErrorCapability{}, 10, 9, numCapabilityPeers, 3, 100*time.Millisecond) for _, caller := range callers { _, err := caller.Execute(context.Background(), @@ -96,12 +99,13 @@ func Test_Server_CapabilityError(t *testing.T) { assert.Equal(t, remotetypes.Error_INTERNAL_ERROR, msg.Error) } } + closeServices(t, srvcs) } func testRemoteTargetServer(ctx context.Context, t *testing.T, underlying commoncap.TargetCapability, numWorkflowPeers int, workflowDonF uint8, - numCapabilityPeers int, capabilityDonF uint8, capabilityNodeResponseTimeout time.Duration) []*serverTestClient { + numCapabilityPeers int, capabilityDonF uint8, capabilityNodeResponseTimeout time.Duration) ([]*serverTestClient, []services.Service) { lggr := logger.TestLogger(t) capabilityPeers := make([]p2ptypes.PeerID, numCapabilityPeers) @@ -141,13 +145,16 @@ func testRemoteTargetServer(ctx context.Context, t *testing.T, } capabilityNodes := make([]remotetypes.Receiver, numCapabilityPeers) + srvcs := make([]services.Service, numCapabilityPeers) for i := 0; i < numCapabilityPeers; i++ { capabilityPeer := capabilityPeers[i] capabilityDispatcher := broker.NewDispatcherForNode(capabilityPeer) - capabilityNode := target.NewReceiver(ctx, lggr, capabilityPeer, underlying, capInfo, capDonInfo, workflowDONs, capabilityDispatcher, - capabilityNodeResponseTimeout) + capabilityNode := target.NewServer(capabilityPeer, underlying, capInfo, capDonInfo, workflowDONs, capabilityDispatcher, + capabilityNodeResponseTimeout, lggr) + require.NoError(t, capabilityNode.Start(ctx)) broker.RegisterReceiverNode(capabilityPeer, capabilityNode) capabilityNodes[i] = capabilityNode + srvcs[i] = capabilityNode } workflowNodes := make([]*serverTestClient, numWorkflowPeers) @@ -158,7 +165,13 @@ func testRemoteTargetServer(ctx context.Context, t *testing.T, workflowNodes[i] = workflowNode } - return workflowNodes + return workflowNodes, srvcs +} + +func closeServices(t *testing.T, srvcs []services.Service) { + for _, srv := range srvcs { + require.NoError(t, srv.Close()) + } } type serverTestClient struct { diff --git a/core/capabilities/syncer.go b/core/capabilities/syncer.go index e80ea9a13ff..17782edf601 100644 --- a/core/capabilities/syncer.go +++ b/core/capabilities/syncer.go @@ -14,6 +14,7 @@ import ( "github.com/smartcontractkit/chainlink-common/pkg/capabilities/triggers" "github.com/smartcontractkit/chainlink-common/pkg/services" "github.com/smartcontractkit/chainlink-common/pkg/types/core" + "github.com/smartcontractkit/chainlink/v2/core/capabilities/remote/target" "github.com/smartcontractkit/libocr/ragep2p" ragetypes "github.com/smartcontractkit/libocr/ragep2p/types" @@ -68,7 +69,7 @@ func NewRegistrySyncer(peerWrapper p2ptypes.PeerWrapper, registry core.Capabilit func (s *registrySyncer) Start(ctx context.Context) error { s.wg.Add(1) - go s.launch(ctx) + go s.launch(context.Background()) return nil } @@ -88,6 +89,18 @@ func (s *registrySyncer) launch(ctx context.Context) { return } + targetCapId := "write_ethereum-testnet-sepolia@0.0.1" + targetInfo, err := capabilities.NewRemoteCapabilityInfo( + targetCapId, + capabilities.CapabilityTypeTarget, + "Remote Target", + &s.networkSetup.TargetCapabilityDonInfo, + ) + if err != nil { + s.lggr.Errorw("failed to create capability info for write_ethereum-testnet-sepolia", "error", err) + return + } + myId := s.peerWrapper.GetPeer().ID() config := remotetypes.RemoteTriggerConfig{ RegistrationRefreshMs: 20000, @@ -106,15 +119,29 @@ func (s *registrySyncer) launch(ctx context.Context) { triggerCap := remote.NewTriggerSubscriber(config, triggerInfo, s.networkSetup.TriggerCapabilityDonInfo, s.networkSetup.WorkflowsDonInfo, s.dispatcher, aggregator, s.lggr) err = s.registry.Add(ctx, triggerCap) if err != nil { - s.lggr.Errorw("failed to add remote target capability to registry", "error", err) + s.lggr.Errorw("failed to add remote trigger capability to registry", "error", err) return } err = s.dispatcher.SetReceiver(capId, s.networkSetup.TriggerCapabilityDonInfo.ID, triggerCap) if err != nil { - s.lggr.Errorw("workflow DON failed to set receiver", "capabilityId", capId, "donId", s.networkSetup.TriggerCapabilityDonInfo.ID, "error", err) + s.lggr.Errorw("workflow DON failed to set receiver for trigger", "capabilityId", capId, "donId", s.networkSetup.TriggerCapabilityDonInfo.ID, "error", err) return } s.subServices = append(s.subServices, triggerCap) + + s.lggr.Info("member of a workflow DON - starting remote targets") + targetCap := target.NewClient(targetInfo, s.networkSetup.WorkflowsDonInfo, s.dispatcher, 60*time.Second, s.lggr) + err = s.registry.Add(ctx, targetCap) + if err != nil { + s.lggr.Errorw("failed to add remote target capability to registry", "error", err) + return + } + err = s.dispatcher.SetReceiver(targetCapId, s.networkSetup.TargetCapabilityDonInfo.ID, targetCap) + if err != nil { + s.lggr.Errorw("workflow DON failed to set receiver for target", "capabilityId", capId, "donId", s.networkSetup.TargetCapabilityDonInfo.ID, "error", err) + return + } + s.subServices = append(s.subServices, targetCap) } if s.networkSetup.IsTriggerDon(myId) { s.lggr.Info("member of a capability DON - starting remote publishers") @@ -162,6 +189,24 @@ func (s *registrySyncer) launch(ctx context.Context) { break } } + if s.networkSetup.IsTargetDon(myId) { + s.lggr.Info("member of a target DON - starting remote shims") + underlying, err2 := s.registry.GetTarget(ctx, targetCapId) + if err2 != nil { + s.lggr.Errorw("target not found yet", "capabilityId", targetCapId, "error", err2) + return + } + workflowDONs := map[string]capabilities.DON{ + s.networkSetup.WorkflowsDonInfo.ID: s.networkSetup.WorkflowsDonInfo, + } + targetCap := target.NewServer(myId, underlying, targetInfo, *targetInfo.DON, workflowDONs, s.dispatcher, 60*time.Second, s.lggr) + err = s.dispatcher.SetReceiver(targetCapId, s.networkSetup.TargetCapabilityDonInfo.ID, targetCap) + if err != nil { + s.lggr.Errorw("capability DON failed to set receiver", "capabilityId", capId, "donId", s.networkSetup.TargetCapabilityDonInfo.ID, "error", err) + return + } + s.subServices = append(s.subServices, targetCap) + } // NOTE: temporary service start - should be managed by capability creation for _, srv := range s.subServices { err = srv.Start(ctx) @@ -200,11 +245,13 @@ func (s *registrySyncer) Name() string { type HardcodedDonNetworkSetup struct { workflowDonPeers []string triggerDonPeers []string + targetDonPeers []string triggerDonSigners []string allPeers map[ragetypes.PeerID]p2ptypes.StreamConfig WorkflowsDonInfo capabilities.DON TriggerCapabilityDonInfo capabilities.DON + TargetCapabilityDonInfo capabilities.DON } func NewHardcodedDonNetworkSetup() (HardcodedDonNetworkSetup, error) { @@ -234,6 +281,12 @@ func NewHardcodedDonNetworkSetup() (HardcodedDonNetworkSetup, error) { "0x5d1e87d87bF2e0cD4Ea64F381a2dbF45e5f0a553", "0x91d9b0062265514f012Eb8fABA59372fD9520f56", } + result.targetDonPeers = []string{ // "cap-one" + "12D3KooWJrthXtnPHw7xyHFAxo6NxifYTvc8igKYaA6wRRRqtsMb", + "12D3KooWFQekP9sGex4XhqEJav5EScjTpDVtDqJFg1JvrePBCEGJ", + "12D3KooWFLEq4hYtdyKWwe47dXGEbSiHMZhmr5xLSJNhpfiEz8NF", + "12D3KooWN2hztiXNNS1jMQTTvvPRYcarK1C7T3Mdqk4x4gwyo5WS", + } result.allPeers = make(map[ragetypes.PeerID]p2ptypes.StreamConfig) addPeersToDONInfo := func(peers []string, donInfo *capabilities.DON) error { @@ -257,6 +310,11 @@ func NewHardcodedDonNetworkSetup() (HardcodedDonNetworkSetup, error) { return HardcodedDonNetworkSetup{}, fmt.Errorf("failed to add peers to trigger DON info: %w", err) } + result.TargetCapabilityDonInfo = capabilities.DON{ID: "targetDon1", F: 1} + if err := addPeersToDONInfo(result.targetDonPeers, &result.TargetCapabilityDonInfo); err != nil { + return HardcodedDonNetworkSetup{}, fmt.Errorf("failed to add peers to target DON info: %w", err) + } + return result, nil } @@ -268,6 +326,10 @@ func (h HardcodedDonNetworkSetup) IsTriggerDon(id p2ptypes.PeerID) bool { return slices.Contains(h.triggerDonPeers, id.String()) } +func (h HardcodedDonNetworkSetup) IsTargetDon(id p2ptypes.PeerID) bool { + return slices.Contains(h.targetDonPeers, id.String()) +} + type mockMercuryDataProducer struct { trigger *triggers.MercuryTriggerService wg sync.WaitGroup diff --git a/core/scripts/go.mod b/core/scripts/go.mod index e87d9ada680..028c1733889 100644 --- a/core/scripts/go.mod +++ b/core/scripts/go.mod @@ -24,7 +24,7 @@ require ( github.com/prometheus/client_golang v1.17.0 github.com/shopspring/decimal v1.3.1 github.com/smartcontractkit/chainlink-automation v1.0.3 - github.com/smartcontractkit/chainlink-common v0.1.7-0.20240607130706-b99591fa7e4a + github.com/smartcontractkit/chainlink-common v0.1.7-0.20240607135320-c9bc0a2ac0ce github.com/smartcontractkit/chainlink-vrf v0.0.0-20240222010609-cd67d123c772 github.com/smartcontractkit/chainlink/v2 v2.0.0-00010101000000-000000000000 github.com/smartcontractkit/libocr v0.0.0-20240419185742-fd3cab206b2c diff --git a/core/scripts/go.sum b/core/scripts/go.sum index 3f4a18d7e21..830d599a6c5 100644 --- a/core/scripts/go.sum +++ b/core/scripts/go.sum @@ -1212,8 +1212,8 @@ github.com/smartcontractkit/chain-selectors v1.0.10 h1:t9kJeE6B6G+hKD0GYR4kGJSCq github.com/smartcontractkit/chain-selectors v1.0.10/go.mod h1:d4Hi+E1zqjy9HqMkjBE5q1vcG9VGgxf5VxiRHfzi2kE= github.com/smartcontractkit/chainlink-automation v1.0.3 h1:h/ijT0NiyV06VxYVgcNfsE3+8OEzT3Q0Z9au0z1BPWs= github.com/smartcontractkit/chainlink-automation v1.0.3/go.mod h1:RjboV0Qd7YP+To+OrzHGXaxUxoSONveCoAK2TQ1INLU= -github.com/smartcontractkit/chainlink-common v0.1.7-0.20240607130706-b99591fa7e4a h1:sQB8v5zuWMVEhWjTMeMRIcgazfhFz43glfaLgVsToMM= -github.com/smartcontractkit/chainlink-common v0.1.7-0.20240607130706-b99591fa7e4a/go.mod h1:L32xvCpk84Nglit64OhySPMP1tM3TTBK7Tw0qZl7Sd4= +github.com/smartcontractkit/chainlink-common v0.1.7-0.20240607135320-c9bc0a2ac0ce h1:/CjY8L4lVJh9E8NKg3bdAgsxj+zKg9XYtXR71ZWWMXo= +github.com/smartcontractkit/chainlink-common v0.1.7-0.20240607135320-c9bc0a2ac0ce/go.mod h1:L32xvCpk84Nglit64OhySPMP1tM3TTBK7Tw0qZl7Sd4= github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20240524214833-c362c2ebbd2d h1:5tgMC5Gi2UAOKZ+m28W8ubjLeR0pQCAcrz6eQ0rW510= github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20240524214833-c362c2ebbd2d/go.mod h1:0UNuO3nDt9MFsZPaHJBEUolxVkN0iC69j1ccDp95e8k= github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240606130021-a4b7359e1580 h1:nsnLzpBTDAQWkfsOz/qd8BTlb1hUpaow1KmA1tPwTf4= diff --git a/core/services/workflows/engine.go b/core/services/workflows/engine.go index 9fb2a6beacd..47638f71434 100644 --- a/core/services/workflows/engine.go +++ b/core/services/workflows/engine.go @@ -4,6 +4,7 @@ import ( "context" "crypto/sha256" "encoding/hex" + "errors" "fmt" "sync" "time" @@ -475,7 +476,7 @@ func (e *Engine) handleStepUpdate(ctx context.Context, stepUpdate store.Workflow } switch step.Status { - case store.StatusCompleted, store.StatusErrored: + case store.StatusCompleted, store.StatusErrored, store.StatusCompletedEarlyExit: default: workflowCompleted = false } @@ -493,6 +494,7 @@ func (e *Engine) handleStepUpdate(ctx context.Context, stepUpdate store.Workflow // We haven't completed the workflow, but should we continue? // If we've been executing for too long, let's time the workflow out and stop here. if state.CreatedAt != nil && e.clock.Since(*state.CreatedAt) > e.maxExecutionDuration { + e.logger.Infow("execution timed out", "executionID", state.ExecutionID) return e.finishExecution(ctx, state.ExecutionID, store.StatusTimeout) } @@ -501,7 +503,18 @@ func (e *Engine) handleStepUpdate(ctx context.Context, stepUpdate store.Workflow for _, sd := range stepDependents { e.queueIfReady(state, sd) } + case store.StatusCompletedEarlyExit: + e.logger.Infow("execution terminated early", "executionID", state.ExecutionID) + // NOTE: even though this marks the workflow as completed, any branches of the DAG + // that don't depend on the step that signaled for an early exit will still complete. + // This is to ensure that any side effects are executed consistently, since otherwise + // the async nature of the workflow engine would provide no guarantees. + err := e.finishExecution(ctx, state.ExecutionID, store.StatusCompletedEarlyExit) + if err != nil { + return err + } case store.StatusErrored: + e.logger.Infow("execution errored", "executionID", state.ExecutionID) err := e.finishExecution(ctx, state.ExecutionID, store.StatusErrored) if err != nil { return err @@ -568,16 +581,22 @@ func (e *Engine) workerForStepRequest(ctx context.Context, msg stepRequest) { } inputs, outputs, err := e.executeStep(ctx, l, msg) - if err != nil { + var stepStatus string + switch { + case errors.Is(err, capabilities.ErrStopExecution): + l.Infow("step executed successfully with a termination") + stepStatus = store.StatusCompletedEarlyExit + case err != nil: l.Errorf("error executing step request: %s", err) - stepState.Outputs.Err = err - stepState.Status = store.StatusErrored - } else { + stepStatus = store.StatusErrored + default: l.Infow("step executed successfully", "outputs", outputs) - stepState.Outputs.Value = outputs - stepState.Status = store.StatusCompleted + stepStatus = store.StatusCompleted } + stepState.Status = stepStatus + stepState.Outputs.Value = outputs + stepState.Outputs.Err = err stepState.Inputs = inputs // Let's try and emit the stepUpdate. diff --git a/core/services/workflows/engine_test.go b/core/services/workflows/engine_test.go index 7f76db137e9..ddb08c24316 100644 --- a/core/services/workflows/engine_test.go +++ b/core/services/workflows/engine_test.go @@ -336,6 +336,21 @@ func mockFailingConsensus() *mockCapability { ) } +func mockConsensusWithEarlyTermination() *mockCapability { + return newMockCapability( + capabilities.MustNewCapabilityInfo( + "offchain_reporting@1.0.0", + capabilities.CapabilityTypeConsensus, + "an ocr3 consensus capability", + ), + func(req capabilities.CapabilityRequest) (capabilities.CapabilityResponse, error) { + return capabilities.CapabilityResponse{ + Err: capabilities.ErrStopExecution, + }, nil + }, + ) +} + func mockConsensus() *mockCapability { return newMockCapability( capabilities.MustNewCapabilityInfo( @@ -403,6 +418,31 @@ func TestEngine_ErrorsTheWorkflowIfAStepErrors(t *testing.T) { assert.Equal(t, state.Steps["evm_median"].Status, store.StatusErrored) } +func TestEngine_GracefulEarlyTermination(t *testing.T) { + t.Parallel() + ctx := testutils.Context(t) + reg := coreCap.NewRegistry(logger.TestLogger(t)) + + trigger, _ := mockTrigger(t) + + require.NoError(t, reg.Add(ctx, trigger)) + require.NoError(t, reg.Add(ctx, mockConsensusWithEarlyTermination())) + require.NoError(t, reg.Add(ctx, mockTarget())) + + eng, hooks := newTestEngine(t, reg, simpleWorkflow) + + err := eng.Start(ctx) + require.NoError(t, err) + defer eng.Close() + + eid := getExecutionId(t, eng, hooks) + state, err := eng.executionStates.Get(ctx, eid) + require.NoError(t, err) + + assert.Equal(t, state.Status, store.StatusCompletedEarlyExit) + assert.Nil(t, state.Steps["write_polygon-testnet-mumbai"]) +} + const ( multiStepWorkflow = ` triggers: diff --git a/core/services/workflows/store/models.go b/core/services/workflows/store/models.go index 27604543ede..8b4632b1f83 100644 --- a/core/services/workflows/store/models.go +++ b/core/services/workflows/store/models.go @@ -7,10 +7,11 @@ import ( ) const ( - StatusStarted = "started" - StatusErrored = "errored" - StatusTimeout = "timeout" - StatusCompleted = "completed" + StatusStarted = "started" + StatusErrored = "errored" + StatusTimeout = "timeout" + StatusCompleted = "completed" + StatusCompletedEarlyExit = "completed_early_exit" ) type StepOutput struct { diff --git a/go.mod b/go.mod index 631e8283ebf..56d50c21cb2 100644 --- a/go.mod +++ b/go.mod @@ -72,7 +72,7 @@ require ( github.com/shopspring/decimal v1.3.1 github.com/smartcontractkit/chain-selectors v1.0.10 github.com/smartcontractkit/chainlink-automation v1.0.3 - github.com/smartcontractkit/chainlink-common v0.1.7-0.20240607130706-b99591fa7e4a + github.com/smartcontractkit/chainlink-common v0.1.7-0.20240607135320-c9bc0a2ac0ce github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20240524214833-c362c2ebbd2d github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240606130021-a4b7359e1580 github.com/smartcontractkit/chainlink-feeds v0.0.0-20240522213638-159fb2d99917 diff --git a/go.sum b/go.sum index cda013bc631..08b79b92c04 100644 --- a/go.sum +++ b/go.sum @@ -1171,8 +1171,8 @@ github.com/smartcontractkit/chain-selectors v1.0.10 h1:t9kJeE6B6G+hKD0GYR4kGJSCq github.com/smartcontractkit/chain-selectors v1.0.10/go.mod h1:d4Hi+E1zqjy9HqMkjBE5q1vcG9VGgxf5VxiRHfzi2kE= github.com/smartcontractkit/chainlink-automation v1.0.3 h1:h/ijT0NiyV06VxYVgcNfsE3+8OEzT3Q0Z9au0z1BPWs= github.com/smartcontractkit/chainlink-automation v1.0.3/go.mod h1:RjboV0Qd7YP+To+OrzHGXaxUxoSONveCoAK2TQ1INLU= -github.com/smartcontractkit/chainlink-common v0.1.7-0.20240607130706-b99591fa7e4a h1:sQB8v5zuWMVEhWjTMeMRIcgazfhFz43glfaLgVsToMM= -github.com/smartcontractkit/chainlink-common v0.1.7-0.20240607130706-b99591fa7e4a/go.mod h1:L32xvCpk84Nglit64OhySPMP1tM3TTBK7Tw0qZl7Sd4= +github.com/smartcontractkit/chainlink-common v0.1.7-0.20240607135320-c9bc0a2ac0ce h1:/CjY8L4lVJh9E8NKg3bdAgsxj+zKg9XYtXR71ZWWMXo= +github.com/smartcontractkit/chainlink-common v0.1.7-0.20240607135320-c9bc0a2ac0ce/go.mod h1:L32xvCpk84Nglit64OhySPMP1tM3TTBK7Tw0qZl7Sd4= github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20240524214833-c362c2ebbd2d h1:5tgMC5Gi2UAOKZ+m28W8ubjLeR0pQCAcrz6eQ0rW510= github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20240524214833-c362c2ebbd2d/go.mod h1:0UNuO3nDt9MFsZPaHJBEUolxVkN0iC69j1ccDp95e8k= github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240606130021-a4b7359e1580 h1:nsnLzpBTDAQWkfsOz/qd8BTlb1hUpaow1KmA1tPwTf4= diff --git a/integration-tests/go.mod b/integration-tests/go.mod index 23e7bcf7169..9866bd174dc 100644 --- a/integration-tests/go.mod +++ b/integration-tests/go.mod @@ -27,7 +27,7 @@ require ( github.com/shopspring/decimal v1.3.1 github.com/slack-go/slack v0.12.2 github.com/smartcontractkit/chainlink-automation v1.0.3 - github.com/smartcontractkit/chainlink-common v0.1.7-0.20240607130706-b99591fa7e4a + github.com/smartcontractkit/chainlink-common v0.1.7-0.20240607135320-c9bc0a2ac0ce github.com/smartcontractkit/chainlink-testing-framework v1.30.1 github.com/smartcontractkit/chainlink-vrf v0.0.0-20231120191722-fef03814f868 github.com/smartcontractkit/chainlink/v2 v2.0.0-00010101000000-000000000000 diff --git a/integration-tests/go.sum b/integration-tests/go.sum index d3ece17f8ba..eb24d16f7bb 100644 --- a/integration-tests/go.sum +++ b/integration-tests/go.sum @@ -1512,8 +1512,8 @@ github.com/smartcontractkit/chain-selectors v1.0.10 h1:t9kJeE6B6G+hKD0GYR4kGJSCq github.com/smartcontractkit/chain-selectors v1.0.10/go.mod h1:d4Hi+E1zqjy9HqMkjBE5q1vcG9VGgxf5VxiRHfzi2kE= github.com/smartcontractkit/chainlink-automation v1.0.3 h1:h/ijT0NiyV06VxYVgcNfsE3+8OEzT3Q0Z9au0z1BPWs= github.com/smartcontractkit/chainlink-automation v1.0.3/go.mod h1:RjboV0Qd7YP+To+OrzHGXaxUxoSONveCoAK2TQ1INLU= -github.com/smartcontractkit/chainlink-common v0.1.7-0.20240607130706-b99591fa7e4a h1:sQB8v5zuWMVEhWjTMeMRIcgazfhFz43glfaLgVsToMM= -github.com/smartcontractkit/chainlink-common v0.1.7-0.20240607130706-b99591fa7e4a/go.mod h1:L32xvCpk84Nglit64OhySPMP1tM3TTBK7Tw0qZl7Sd4= +github.com/smartcontractkit/chainlink-common v0.1.7-0.20240607135320-c9bc0a2ac0ce h1:/CjY8L4lVJh9E8NKg3bdAgsxj+zKg9XYtXR71ZWWMXo= +github.com/smartcontractkit/chainlink-common v0.1.7-0.20240607135320-c9bc0a2ac0ce/go.mod h1:L32xvCpk84Nglit64OhySPMP1tM3TTBK7Tw0qZl7Sd4= github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20240524214833-c362c2ebbd2d h1:5tgMC5Gi2UAOKZ+m28W8ubjLeR0pQCAcrz6eQ0rW510= github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20240524214833-c362c2ebbd2d/go.mod h1:0UNuO3nDt9MFsZPaHJBEUolxVkN0iC69j1ccDp95e8k= github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240606130021-a4b7359e1580 h1:nsnLzpBTDAQWkfsOz/qd8BTlb1hUpaow1KmA1tPwTf4= diff --git a/integration-tests/load/go.mod b/integration-tests/load/go.mod index d99df951102..9405cb73a41 100644 --- a/integration-tests/load/go.mod +++ b/integration-tests/load/go.mod @@ -16,7 +16,7 @@ require ( github.com/rs/zerolog v1.30.0 github.com/slack-go/slack v0.12.2 github.com/smartcontractkit/chainlink-automation v1.0.3 - github.com/smartcontractkit/chainlink-common v0.1.7-0.20240607130706-b99591fa7e4a + github.com/smartcontractkit/chainlink-common v0.1.7-0.20240607135320-c9bc0a2ac0ce github.com/smartcontractkit/chainlink-testing-framework v1.30.1 github.com/smartcontractkit/chainlink/integration-tests v0.0.0-20240214231432-4ad5eb95178c github.com/smartcontractkit/chainlink/v2 v2.9.0-beta0.0.20240216210048-da02459ddad8 diff --git a/integration-tests/load/go.sum b/integration-tests/load/go.sum index 2ea9c2e1406..789f790b820 100644 --- a/integration-tests/load/go.sum +++ b/integration-tests/load/go.sum @@ -1502,8 +1502,8 @@ github.com/smartcontractkit/chain-selectors v1.0.10 h1:t9kJeE6B6G+hKD0GYR4kGJSCq github.com/smartcontractkit/chain-selectors v1.0.10/go.mod h1:d4Hi+E1zqjy9HqMkjBE5q1vcG9VGgxf5VxiRHfzi2kE= github.com/smartcontractkit/chainlink-automation v1.0.3 h1:h/ijT0NiyV06VxYVgcNfsE3+8OEzT3Q0Z9au0z1BPWs= github.com/smartcontractkit/chainlink-automation v1.0.3/go.mod h1:RjboV0Qd7YP+To+OrzHGXaxUxoSONveCoAK2TQ1INLU= -github.com/smartcontractkit/chainlink-common v0.1.7-0.20240607130706-b99591fa7e4a h1:sQB8v5zuWMVEhWjTMeMRIcgazfhFz43glfaLgVsToMM= -github.com/smartcontractkit/chainlink-common v0.1.7-0.20240607130706-b99591fa7e4a/go.mod h1:L32xvCpk84Nglit64OhySPMP1tM3TTBK7Tw0qZl7Sd4= +github.com/smartcontractkit/chainlink-common v0.1.7-0.20240607135320-c9bc0a2ac0ce h1:/CjY8L4lVJh9E8NKg3bdAgsxj+zKg9XYtXR71ZWWMXo= +github.com/smartcontractkit/chainlink-common v0.1.7-0.20240607135320-c9bc0a2ac0ce/go.mod h1:L32xvCpk84Nglit64OhySPMP1tM3TTBK7Tw0qZl7Sd4= github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20240524214833-c362c2ebbd2d h1:5tgMC5Gi2UAOKZ+m28W8ubjLeR0pQCAcrz6eQ0rW510= github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20240524214833-c362c2ebbd2d/go.mod h1:0UNuO3nDt9MFsZPaHJBEUolxVkN0iC69j1ccDp95e8k= github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240606130021-a4b7359e1580 h1:nsnLzpBTDAQWkfsOz/qd8BTlb1hUpaow1KmA1tPwTf4= From a4466c652b65277dc9e18234a86f9e337fc241bb Mon Sep 17 00:00:00 2001 From: Adam Hamrick Date: Fri, 7 Jun 2024 11:18:28 -0400 Subject: [PATCH 30/40] Uses Common Config to Fund Tests (#13465) * Uses config to fund * More cash --- integration-tests/smoke/forwarder_ocr_test.go | 2 +- .../smoke/forwarders_ocr2_test.go | 2 +- integration-tests/smoke/keeper_test.go | 2 +- integration-tests/smoke/ocr2_test.go | 2 +- integration-tests/smoke/ocr_test.go | 2 +- integration-tests/smoke/runlog_test.go | 2 +- integration-tests/smoke/vrf_test.go | 2 +- integration-tests/testconfig/default.toml | 43 ++++++++++--------- 8 files changed, 30 insertions(+), 27 deletions(-) diff --git a/integration-tests/smoke/forwarder_ocr_test.go b/integration-tests/smoke/forwarder_ocr_test.go index 2cae2ec3f45..1783549637b 100644 --- a/integration-tests/smoke/forwarder_ocr_test.go +++ b/integration-tests/smoke/forwarder_ocr_test.go @@ -38,7 +38,7 @@ func TestForwarderOCRBasic(t *testing.T) { WithPrivateEthereumNetwork(privateNetwork.EthereumNetworkConfig). WithMockAdapter(). WithCLNodes(6). - WithFunding(big.NewFloat(.1)). + WithFunding(big.NewFloat(*config.Common.ChainlinkNodeFunding)). WithStandardCleanup(). WithSeth(). Build() diff --git a/integration-tests/smoke/forwarders_ocr2_test.go b/integration-tests/smoke/forwarders_ocr2_test.go index a8d0e1987fe..2651a02fb4d 100644 --- a/integration-tests/smoke/forwarders_ocr2_test.go +++ b/integration-tests/smoke/forwarders_ocr2_test.go @@ -39,7 +39,7 @@ func TestForwarderOCR2Basic(t *testing.T) { WithPrivateEthereumNetwork(privateNetwork.EthereumNetworkConfig). WithMockAdapter(). WithCLNodes(6). - WithFunding(big.NewFloat(.1)). + WithFunding(big.NewFloat(*config.Common.ChainlinkNodeFunding)). WithStandardCleanup(). WithSeth(). Build() diff --git a/integration-tests/smoke/keeper_test.go b/integration-tests/smoke/keeper_test.go index 99817562c62..62a79f0347b 100644 --- a/integration-tests/smoke/keeper_test.go +++ b/integration-tests/smoke/keeper_test.go @@ -1236,7 +1236,7 @@ func setupKeeperTest(l zerolog.Logger, t *testing.T, config *tc.TestConfig) ( WithTestConfig(config). WithPrivateEthereumNetwork(privateNetwork.EthereumNetworkConfig). WithCLNodes(5). - WithFunding(big.NewFloat(.5)). + WithFunding(big.NewFloat(*config.Common.ChainlinkNodeFunding)). WithStandardCleanup(). WithSeth(). Build() diff --git a/integration-tests/smoke/ocr2_test.go b/integration-tests/smoke/ocr2_test.go index 7ca7b01fb36..d0d1e36c8ed 100644 --- a/integration-tests/smoke/ocr2_test.go +++ b/integration-tests/smoke/ocr2_test.go @@ -156,7 +156,7 @@ func prepareORCv2SmokeTestEnv(t *testing.T, testData ocr2test, l zerolog.Logger, WithMockAdapter(). WithCLNodes(clNodeCount). WithCLNodeOptions(test_env.WithNodeEnvVars(testData.env)). - WithFunding(big.NewFloat(.1)). + WithFunding(big.NewFloat(*config.Common.ChainlinkNodeFunding)). WithStandardCleanup(). WithSeth(). Build() diff --git a/integration-tests/smoke/ocr_test.go b/integration-tests/smoke/ocr_test.go index bef08493962..02d548f4763 100644 --- a/integration-tests/smoke/ocr_test.go +++ b/integration-tests/smoke/ocr_test.go @@ -94,7 +94,7 @@ func prepareORCv1SmokeTestEnv(t *testing.T, l zerolog.Logger, firstRoundResult i WithPrivateEthereumNetwork(network.EthereumNetworkConfig). WithMockAdapter(). WithCLNodes(6). - WithFunding(big.NewFloat(.5)). + WithFunding(big.NewFloat(*config.Common.ChainlinkNodeFunding)). WithStandardCleanup(). WithSeth(). Build() diff --git a/integration-tests/smoke/runlog_test.go b/integration-tests/smoke/runlog_test.go index 3e806fc690b..7090564c42e 100644 --- a/integration-tests/smoke/runlog_test.go +++ b/integration-tests/smoke/runlog_test.go @@ -39,7 +39,7 @@ func TestRunLogBasic(t *testing.T) { WithPrivateEthereumNetwork(privateNetwork.EthereumNetworkConfig). WithMockAdapter(). WithCLNodes(1). - WithFunding(big.NewFloat(.5)). + WithFunding(big.NewFloat(*config.Common.ChainlinkNodeFunding)). WithStandardCleanup(). WithSeth(). Build() diff --git a/integration-tests/smoke/vrf_test.go b/integration-tests/smoke/vrf_test.go index 1cc7bf73d69..abb619e7b0b 100644 --- a/integration-tests/smoke/vrf_test.go +++ b/integration-tests/smoke/vrf_test.go @@ -196,7 +196,7 @@ func prepareVRFtestEnv(t *testing.T, l zerolog.Logger) (*test_env.CLClusterTestE WithTestConfig(&config). WithPrivateEthereumNetwork(privateNetwork.EthereumNetworkConfig). WithCLNodes(1). - WithFunding(big.NewFloat(.5)). + WithFunding(big.NewFloat(*config.Common.ChainlinkNodeFunding)). WithStandardCleanup(). WithSeth(). Build() diff --git a/integration-tests/testconfig/default.toml b/integration-tests/testconfig/default.toml index f99c434bc4d..397fc2ee792 100644 --- a/integration-tests/testconfig/default.toml +++ b/integration-tests/testconfig/default.toml @@ -1,33 +1,36 @@ [Logging] -test_log_collect=false +test_log_collect = false [Logging.LogStream] -log_targets=["file"] -log_producer_timeout="10s" -log_producer_retry_limit=10 +log_targets = ["file"] +log_producer_timeout = "10s" +log_producer_retry_limit = 10 [ChainlinkImage] -postgres_version="15.6" -image="public.ecr.aws/chainlink/chainlink" -version="2.9.1" +postgres_version = "15.6" +image = "public.ecr.aws/chainlink/chainlink" +version = "2.12.0" + +[Common] +chainlink_node_funding = 0.5 [Network] -selected_networks=["simulated"] +selected_networks = ["simulated"] [PrivateEthereumNetwork] -ethereum_version="eth1" -execution_layer="geth" +ethereum_version = "eth1" +execution_layer = "geth" [PrivateEthereumNetwork.EthereumChainConfig] -seconds_per_slot=3 -slots_per_epoch=2 -genesis_delay=15 -validator_count=4 -chain_id=1337 -addresses_to_fund=["0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266"] +seconds_per_slot = 3 +slots_per_epoch = 2 +genesis_delay = 15 +validator_count = 4 +chain_id = 1337 +addresses_to_fund = ["0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266"] [PrivateEthereumNetwork.EthereumChainConfig.HardForkEpochs] -Deneb=500 +Deneb = 500 [NodeConfig] BaseConfigTOML = """ @@ -144,9 +147,9 @@ gas_price_estimation_tx_priority = "standard" # fallback values transfer_gas_fee = 21_000 -gas_price = 150_000_000_000 #150 gwei +gas_price = 150_000_000_000 #150 gwei gas_fee_cap = 150_000_000_000 #150 gwei -gas_tip_cap = 50_000_000_000 #50 gwei +gas_tip_cap = 50_000_000_000 #50 gwei [[Seth.networks]] name = "Anvil" @@ -405,4 +408,4 @@ gas_price_estimation_enabled = true # how many last blocks to use, when estimating gas for a transaction gas_price_estimation_blocks = 100 # priority of the transaction, can be "fast", "standard" or "slow" (the higher the priority, the higher adjustment factor will be used for gas estimation) [default: "standard"] -gas_price_estimation_tx_priority = "standard" \ No newline at end of file +gas_price_estimation_tx_priority = "standard" From 345665127bca5ada7e375b3502bf4b083efb9862 Mon Sep 17 00:00:00 2001 From: krehermann Date: Fri, 7 Jun 2024 09:20:09 -0600 Subject: [PATCH 31/40] fix workflow auto approval job finding (#13457) --- core/services/feeds/service.go | 7 +-- core/services/feeds/service_test.go | 82 ++++++++++++++++++++++++++--- 2 files changed, 76 insertions(+), 13 deletions(-) diff --git a/core/services/feeds/service.go b/core/services/feeds/service.go index e1b05a403f6..4add9ff320d 100644 --- a/core/services/feeds/service.go +++ b/core/services/feeds/service.go @@ -803,7 +803,7 @@ func (s *service) ApproveSpec(ctx context.Context, id int64, force bool) error { } } case job.Workflow: - existingJobID, txerr = findExistingWorkflowJob(ctx, *j.WorkflowSpec, tx.jobORM) + existingJobID, txerr = tx.jobORM.FindJobIDByWorkflow(ctx, *j.WorkflowSpec) if txerr != nil { // Return an error if the repository errors. If there is a not found // error we want to continue with approving the job. @@ -1108,11 +1108,6 @@ func (s *service) observeJobProposalCounts(ctx context.Context) error { return nil } -// TODO KS-205 implement this. Need to figure out how exactly how we want to handle this. -func findExistingWorkflowJob(ctx context.Context, wfSpec job.WorkflowSpec, tx job.ORM) (int32, error) { - return 0, nil -} - // findExistingJobForOCR2 looks for existing job for OCR2 func findExistingJobForOCR2(ctx context.Context, j *job.Job, tx job.ORM) (int32, error) { var contractID string diff --git a/core/services/feeds/service_test.go b/core/services/feeds/service_test.go index 7e4097a1d13..d45bc358e1d 100644 --- a/core/services/feeds/service_test.go +++ b/core/services/feeds/service_test.go @@ -685,6 +685,7 @@ targets: wfSpec = testspecs.GenerateWorkflowSpec(wfID, wfOwner, wfName, specYaml).Toml() proposalIDWF = int64(11) jobProposalSpecIdWF = int64(101) + jobIDWF = int32(1001) remoteUUIDWF = uuid.New() argsWF = &feeds.ProposeJobArgs{ FeedsManagerID: 1, @@ -698,12 +699,26 @@ targets: RemoteUUID: remoteUUIDWF, Status: feeds.JobProposalStatusPending, } + acceptedjpWF = feeds.JobProposal{ + ID: 13, + FeedsManagerID: 1, + Name: null.StringFrom("test-spec"), + RemoteUUID: remoteUUIDWF, + Status: feeds.JobProposalStatusPending, + } proposalSpecWF = feeds.JobProposalSpec{ Definition: wfSpec, Status: feeds.SpecStatusPending, Version: 1, JobProposalID: proposalIDWF, } + autoApprovableProposalSpecWF = feeds.JobProposalSpec{ + ID: jobProposalSpecIdWF, + Definition: wfSpec, + Status: feeds.SpecStatusPending, + Version: 1, + JobProposalID: proposalIDWF, + } ) testCases := []struct { @@ -714,7 +729,7 @@ targets: wantErr string }{ { - name: "Auto approve WF spec", + name: "Auto approve new WF spec", before: func(svc *TestService) { svc.orm.On("GetJobProposalByRemoteUUID", mock.Anything, argsWF.RemoteUUID).Return(new(feeds.JobProposal), sql.ErrNoRows) svc.orm.On("UpsertJobProposal", mock.Anything, &jpWF).Return(proposalIDWF, nil) @@ -727,13 +742,66 @@ targets: }) // Auto approve is really a call to ApproveJobProposal and so we have to mock that as well svc.connMgr.On("GetClient", argsWF.FeedsManagerID).Return(svc.fmsClient, nil) - svc.orm.EXPECT().GetSpec(mock.Anything, jobProposalSpecIdWF).Return(&proposalSpecWF, nil) - svc.orm.EXPECT().GetJobProposal(mock.Anything, proposalSpecWF.JobProposalID).Return(&jpWF, nil) + svc.orm.EXPECT().GetSpec(mock.Anything, jobProposalSpecIdWF).Return(&autoApprovableProposalSpecWF, nil) + svc.orm.EXPECT().GetJobProposal(mock.Anything, autoApprovableProposalSpecWF.JobProposalID).Return(&acceptedjpWF, nil) + svc.jobORM.On("AssertBridgesExist", mock.Anything, mock.IsType(pipeline.Pipeline{})).Return(nil) + + svc.jobORM.On("FindJobByExternalJobID", mock.Anything, mock.Anything).Return(job.Job{}, sql.ErrNoRows) + svc.orm.On("WithDataSource", mock.Anything).Return(feeds.ORM(svc.orm)) + svc.jobORM.On("WithDataSource", mock.Anything).Return(job.ORM(svc.jobORM)) + svc.jobORM.On("FindJobIDByWorkflow", mock.Anything, mock.Anything).Return(int32(0), sql.ErrNoRows) // no existing job + svc.spawner. + On("CreateJob", + mock.Anything, + mock.Anything, + mock.MatchedBy(func(j *job.Job) bool { + return j.WorkflowSpec.WorkflowOwner == wfOwner + }), + ). + Run(func(args mock.Arguments) { (args.Get(2).(*job.Job)).ID = 1 }). + Return(nil) + svc.orm.On("ApproveSpec", + mock.Anything, + jobProposalSpecIdWF, + mock.IsType(uuid.UUID{}), + ).Return(nil) + svc.fmsClient.On("ApprovedJob", + mock.MatchedBy(func(ctx context.Context) bool { return true }), + &proto.ApprovedJobRequest{ + Uuid: jpWF.RemoteUUID.String(), + Version: int64(proposalSpecWF.Version), + }, + ).Return(&proto.ApprovedJobResponse{}, nil) + }, + args: argsWF, + wantID: proposalIDWF, + }, + + { + name: "Auto approve existing WF spec found by FindJobIDByWorkflow", + before: func(svc *TestService) { + svc.orm.On("GetJobProposalByRemoteUUID", mock.Anything, argsWF.RemoteUUID).Return(new(feeds.JobProposal), sql.ErrNoRows) + svc.orm.On("UpsertJobProposal", mock.Anything, &jpWF).Return(proposalIDWF, nil) + svc.orm.On("CreateSpec", mock.Anything, proposalSpecWF).Return(jobProposalSpecIdWF, nil) + svc.orm.On("CountJobProposalsByStatus", mock.Anything).Return(&feeds.JobProposalCounts{}, nil) + transactCall := svc.orm.On("Transact", mock.Anything, mock.Anything) + transactCall.Run(func(args mock.Arguments) { + fn := args[1].(func(orm feeds.ORM) error) + transactCall.ReturnArguments = mock.Arguments{fn(svc.orm)} + }) + // Auto approve is really a call to ApproveJobProposal and so we have to mock that as well + svc.connMgr.On("GetClient", argsWF.FeedsManagerID).Return(svc.fmsClient, nil) + svc.orm.EXPECT().GetSpec(mock.Anything, jobProposalSpecIdWF).Return(&autoApprovableProposalSpecWF, nil) + svc.orm.EXPECT().GetJobProposal(mock.Anything, autoApprovableProposalSpecWF.JobProposalID).Return(&acceptedjpWF, nil) svc.jobORM.On("AssertBridgesExist", mock.Anything, mock.IsType(pipeline.Pipeline{})).Return(nil) - svc.jobORM.On("FindJobByExternalJobID", mock.Anything, mock.Anything).Return(job.Job{}, sql.ErrNoRows) // TODO fix the external job id in wf spec generation + svc.jobORM.On("FindJobByExternalJobID", mock.Anything, mock.Anything).Return(job.Job{}, sql.ErrNoRows) svc.orm.On("WithDataSource", mock.Anything).Return(feeds.ORM(svc.orm)) svc.jobORM.On("WithDataSource", mock.Anything).Return(job.ORM(svc.jobORM)) + svc.jobORM.On("FindJobIDByWorkflow", mock.Anything, mock.Anything).Return(jobIDWF, sql.ErrNoRows) + svc.orm.On("GetApprovedSpec", mock.Anything, acceptedjpWF.ID).Return(&autoApprovableProposalSpecWF, nil) + svc.orm.On("CancelSpec", mock.Anything, autoApprovableProposalSpecWF.ID).Return(nil) + svc.spawner.On("DeleteJob", mock.Anything, mock.Anything, jobIDWF).Return(nil) svc.spawner. On("CreateJob", mock.Anything, @@ -762,12 +830,11 @@ targets: }, { - name: "Auto approve WF spec: error creating job", + name: "Auto approve WF spec: error creating job for new spec", before: func(svc *TestService) { svc.orm.On("GetJobProposalByRemoteUUID", mock.Anything, argsWF.RemoteUUID).Return(new(feeds.JobProposal), sql.ErrNoRows) svc.orm.On("UpsertJobProposal", mock.Anything, &jpWF).Return(proposalIDWF, nil) svc.orm.On("CreateSpec", mock.Anything, proposalSpecWF).Return(jobProposalSpecIdWF, nil) - // svc.orm.On("CountJobProposalsByStatus", mock.Anything).Return(&feeds.JobProposalCounts{}, nil) transactCall := svc.orm.On("Transact", mock.Anything, mock.Anything) transactCall.Run(func(args mock.Arguments) { fn := args[1].(func(orm feeds.ORM) error) @@ -779,9 +846,10 @@ targets: svc.orm.EXPECT().GetJobProposal(mock.Anything, proposalSpecWF.JobProposalID).Return(&jpWF, nil) svc.jobORM.On("AssertBridgesExist", mock.Anything, mock.IsType(pipeline.Pipeline{})).Return(nil) - svc.jobORM.On("FindJobByExternalJobID", mock.Anything, mock.Anything).Return(job.Job{}, sql.ErrNoRows) // TODO fix the external job id in wf spec generation + svc.jobORM.On("FindJobByExternalJobID", mock.Anything, mock.Anything).Return(job.Job{}, sql.ErrNoRows) svc.orm.On("WithDataSource", mock.Anything).Return(feeds.ORM(svc.orm)) svc.jobORM.On("WithDataSource", mock.Anything).Return(job.ORM(svc.jobORM)) + svc.jobORM.On("FindJobIDByWorkflow", mock.Anything, mock.Anything).Return(int32(0), sql.ErrNoRows) // no existing job svc.spawner. On("CreateJob", mock.Anything, From 335167d9c3861459d42b6e1bd9ee98b7d27f65eb Mon Sep 17 00:00:00 2001 From: Bolek <1416262+bolekk@users.noreply.github.com> Date: Fri, 7 Jun 2024 09:17:07 -0700 Subject: [PATCH 32/40] [Keystone] Standardize all default capability versions to 1.0.0 (#13468) --- core/capabilities/syncer.go | 4 ++-- core/services/relay/evm/write_target.go | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/core/capabilities/syncer.go b/core/capabilities/syncer.go index 17782edf601..3b400646678 100644 --- a/core/capabilities/syncer.go +++ b/core/capabilities/syncer.go @@ -77,7 +77,7 @@ func (s *registrySyncer) Start(ctx context.Context) error { // that reads the configuration from chain (KS-117). func (s *registrySyncer) launch(ctx context.Context) { defer s.wg.Done() - capId := "streams-trigger@0.0.1" + capId := "streams-trigger@1.0.0" triggerInfo, err := capabilities.NewRemoteCapabilityInfo( capId, capabilities.CapabilityTypeTrigger, @@ -89,7 +89,7 @@ func (s *registrySyncer) launch(ctx context.Context) { return } - targetCapId := "write_ethereum-testnet-sepolia@0.0.1" + targetCapId := "write_ethereum-testnet-sepolia@1.0.0" targetInfo, err := capabilities.NewRemoteCapabilityInfo( targetCapId, capabilities.CapabilityTypeTarget, diff --git a/core/services/relay/evm/write_target.go b/core/services/relay/evm/write_target.go index c3df064bb4e..249c3e257fb 100644 --- a/core/services/relay/evm/write_target.go +++ b/core/services/relay/evm/write_target.go @@ -17,10 +17,10 @@ import ( func NewWriteTarget(ctx context.Context, relayer *Relayer, chain legacyevm.Chain, lggr logger.Logger) (*targets.WriteTarget, error) { // generate ID based on chain selector - id := fmt.Sprintf("write_%v@0.0.1", chain.ID()) + id := fmt.Sprintf("write_%v@1.0.0", chain.ID()) chainName, err := chainselectors.NameFromChainId(chain.ID().Uint64()) if err == nil { - id = fmt.Sprintf("write_%v@0.0.1", chainName) + id = fmt.Sprintf("write_%v@1.0.0", chainName) } // EVM-specific init From c31858378c015b927c1b4dc3523b360bae262f2e Mon Sep 17 00:00:00 2001 From: Sam Date: Fri, 7 Jun 2024 12:38:19 -0400 Subject: [PATCH 33/40] Revert "Bump chainlink-data-streams (#13446)" (#13467) This reverts commit 9bb35d40c42de1183b84f32639f8176b83478826. Change can cause liveness issues, need to adopt another approach to fixing this problem. --- core/scripts/go.mod | 2 +- core/scripts/go.sum | 4 ++-- go.mod | 2 +- go.sum | 4 ++-- integration-tests/go.mod | 2 +- integration-tests/go.sum | 4 ++-- integration-tests/load/go.mod | 2 +- integration-tests/load/go.sum | 4 ++-- 8 files changed, 12 insertions(+), 12 deletions(-) diff --git a/core/scripts/go.mod b/core/scripts/go.mod index 028c1733889..22df752d056 100644 --- a/core/scripts/go.mod +++ b/core/scripts/go.mod @@ -274,7 +274,7 @@ require ( github.com/sirupsen/logrus v1.9.3 // indirect github.com/smartcontractkit/chain-selectors v1.0.10 // indirect github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20240524214833-c362c2ebbd2d // indirect - github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240606130021-a4b7359e1580 // indirect + github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240220203239-09be0ea34540 // indirect github.com/smartcontractkit/chainlink-feeds v0.0.0-20240522213638-159fb2d99917 // indirect github.com/smartcontractkit/chainlink-solana v1.0.3-0.20240605170242-555ff582f36a // indirect github.com/smartcontractkit/chainlink-starknet/relayer v0.0.1-beta-test.0.20240531021326-99118e47f696 // indirect diff --git a/core/scripts/go.sum b/core/scripts/go.sum index 830d599a6c5..83b4c29294b 100644 --- a/core/scripts/go.sum +++ b/core/scripts/go.sum @@ -1216,8 +1216,8 @@ github.com/smartcontractkit/chainlink-common v0.1.7-0.20240607135320-c9bc0a2ac0c github.com/smartcontractkit/chainlink-common v0.1.7-0.20240607135320-c9bc0a2ac0ce/go.mod h1:L32xvCpk84Nglit64OhySPMP1tM3TTBK7Tw0qZl7Sd4= github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20240524214833-c362c2ebbd2d h1:5tgMC5Gi2UAOKZ+m28W8ubjLeR0pQCAcrz6eQ0rW510= github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20240524214833-c362c2ebbd2d/go.mod h1:0UNuO3nDt9MFsZPaHJBEUolxVkN0iC69j1ccDp95e8k= -github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240606130021-a4b7359e1580 h1:nsnLzpBTDAQWkfsOz/qd8BTlb1hUpaow1KmA1tPwTf4= -github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240606130021-a4b7359e1580/go.mod h1:KRK7KlAEpmORi+nJgT0vxQVWvlLEBQ6zgzXziZuKvUM= +github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240220203239-09be0ea34540 h1:xFSv8561jsLtF6gYZr/zW2z5qUUAkcFkApin2mnbYTo= +github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240220203239-09be0ea34540/go.mod h1:sjAmX8K2kbQhvDarZE1ZZgDgmHJ50s0BBc/66vKY2ek= github.com/smartcontractkit/chainlink-feeds v0.0.0-20240522213638-159fb2d99917 h1:MD80ZRCTvxxJ8PBmhtrKoTnky8cVNYrCrIBLVRbrOM0= github.com/smartcontractkit/chainlink-feeds v0.0.0-20240522213638-159fb2d99917/go.mod h1:jwVxhctE6BgLOSSsVq9wbREpZ8Ev34H+UBxeUhESZRs= github.com/smartcontractkit/chainlink-solana v1.0.3-0.20240605170242-555ff582f36a h1:/QIQciKjhZy+iBB74WG4pP88O2FwS1KZtSXO5COTTgI= diff --git a/go.mod b/go.mod index 56d50c21cb2..1af38913bd5 100644 --- a/go.mod +++ b/go.mod @@ -74,7 +74,7 @@ require ( github.com/smartcontractkit/chainlink-automation v1.0.3 github.com/smartcontractkit/chainlink-common v0.1.7-0.20240607135320-c9bc0a2ac0ce github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20240524214833-c362c2ebbd2d - github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240606130021-a4b7359e1580 + github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240220203239-09be0ea34540 github.com/smartcontractkit/chainlink-feeds v0.0.0-20240522213638-159fb2d99917 github.com/smartcontractkit/chainlink-solana v1.0.3-0.20240605170242-555ff582f36a github.com/smartcontractkit/chainlink-starknet/relayer v0.0.1-beta-test.0.20240531021326-99118e47f696 diff --git a/go.sum b/go.sum index 08b79b92c04..5a354d44172 100644 --- a/go.sum +++ b/go.sum @@ -1175,8 +1175,8 @@ github.com/smartcontractkit/chainlink-common v0.1.7-0.20240607135320-c9bc0a2ac0c github.com/smartcontractkit/chainlink-common v0.1.7-0.20240607135320-c9bc0a2ac0ce/go.mod h1:L32xvCpk84Nglit64OhySPMP1tM3TTBK7Tw0qZl7Sd4= github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20240524214833-c362c2ebbd2d h1:5tgMC5Gi2UAOKZ+m28W8ubjLeR0pQCAcrz6eQ0rW510= github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20240524214833-c362c2ebbd2d/go.mod h1:0UNuO3nDt9MFsZPaHJBEUolxVkN0iC69j1ccDp95e8k= -github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240606130021-a4b7359e1580 h1:nsnLzpBTDAQWkfsOz/qd8BTlb1hUpaow1KmA1tPwTf4= -github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240606130021-a4b7359e1580/go.mod h1:KRK7KlAEpmORi+nJgT0vxQVWvlLEBQ6zgzXziZuKvUM= +github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240220203239-09be0ea34540 h1:xFSv8561jsLtF6gYZr/zW2z5qUUAkcFkApin2mnbYTo= +github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240220203239-09be0ea34540/go.mod h1:sjAmX8K2kbQhvDarZE1ZZgDgmHJ50s0BBc/66vKY2ek= github.com/smartcontractkit/chainlink-feeds v0.0.0-20240522213638-159fb2d99917 h1:MD80ZRCTvxxJ8PBmhtrKoTnky8cVNYrCrIBLVRbrOM0= github.com/smartcontractkit/chainlink-feeds v0.0.0-20240522213638-159fb2d99917/go.mod h1:jwVxhctE6BgLOSSsVq9wbREpZ8Ev34H+UBxeUhESZRs= github.com/smartcontractkit/chainlink-solana v1.0.3-0.20240605170242-555ff582f36a h1:/QIQciKjhZy+iBB74WG4pP88O2FwS1KZtSXO5COTTgI= diff --git a/integration-tests/go.mod b/integration-tests/go.mod index 9866bd174dc..3a97428c1d7 100644 --- a/integration-tests/go.mod +++ b/integration-tests/go.mod @@ -377,7 +377,7 @@ require ( github.com/sirupsen/logrus v1.9.3 // indirect github.com/smartcontractkit/chain-selectors v1.0.10 // indirect github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20240524214833-c362c2ebbd2d // indirect - github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240606130021-a4b7359e1580 // indirect + github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240220203239-09be0ea34540 // indirect github.com/smartcontractkit/chainlink-feeds v0.0.0-20240522213638-159fb2d99917 // indirect github.com/smartcontractkit/chainlink-solana v1.0.3-0.20240605170242-555ff582f36a // indirect github.com/smartcontractkit/chainlink-starknet/relayer v0.0.1-beta-test.0.20240531021326-99118e47f696 // indirect diff --git a/integration-tests/go.sum b/integration-tests/go.sum index eb24d16f7bb..7d919450ff0 100644 --- a/integration-tests/go.sum +++ b/integration-tests/go.sum @@ -1516,8 +1516,8 @@ github.com/smartcontractkit/chainlink-common v0.1.7-0.20240607135320-c9bc0a2ac0c github.com/smartcontractkit/chainlink-common v0.1.7-0.20240607135320-c9bc0a2ac0ce/go.mod h1:L32xvCpk84Nglit64OhySPMP1tM3TTBK7Tw0qZl7Sd4= github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20240524214833-c362c2ebbd2d h1:5tgMC5Gi2UAOKZ+m28W8ubjLeR0pQCAcrz6eQ0rW510= github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20240524214833-c362c2ebbd2d/go.mod h1:0UNuO3nDt9MFsZPaHJBEUolxVkN0iC69j1ccDp95e8k= -github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240606130021-a4b7359e1580 h1:nsnLzpBTDAQWkfsOz/qd8BTlb1hUpaow1KmA1tPwTf4= -github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240606130021-a4b7359e1580/go.mod h1:KRK7KlAEpmORi+nJgT0vxQVWvlLEBQ6zgzXziZuKvUM= +github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240220203239-09be0ea34540 h1:xFSv8561jsLtF6gYZr/zW2z5qUUAkcFkApin2mnbYTo= +github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240220203239-09be0ea34540/go.mod h1:sjAmX8K2kbQhvDarZE1ZZgDgmHJ50s0BBc/66vKY2ek= github.com/smartcontractkit/chainlink-feeds v0.0.0-20240522213638-159fb2d99917 h1:MD80ZRCTvxxJ8PBmhtrKoTnky8cVNYrCrIBLVRbrOM0= github.com/smartcontractkit/chainlink-feeds v0.0.0-20240522213638-159fb2d99917/go.mod h1:jwVxhctE6BgLOSSsVq9wbREpZ8Ev34H+UBxeUhESZRs= github.com/smartcontractkit/chainlink-solana v1.0.3-0.20240605170242-555ff582f36a h1:/QIQciKjhZy+iBB74WG4pP88O2FwS1KZtSXO5COTTgI= diff --git a/integration-tests/load/go.mod b/integration-tests/load/go.mod index 9405cb73a41..14e3902780f 100644 --- a/integration-tests/load/go.mod +++ b/integration-tests/load/go.mod @@ -365,7 +365,7 @@ require ( github.com/sirupsen/logrus v1.9.3 // indirect github.com/smartcontractkit/chain-selectors v1.0.10 // indirect github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20240524214833-c362c2ebbd2d // indirect - github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240606130021-a4b7359e1580 // indirect + github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240220203239-09be0ea34540 // indirect github.com/smartcontractkit/chainlink-feeds v0.0.0-20240522213638-159fb2d99917 // indirect github.com/smartcontractkit/chainlink-solana v1.0.3-0.20240605170242-555ff582f36a // indirect github.com/smartcontractkit/chainlink-starknet/relayer v0.0.1-beta-test.0.20240531021326-99118e47f696 // indirect diff --git a/integration-tests/load/go.sum b/integration-tests/load/go.sum index 789f790b820..a9a975f2bb3 100644 --- a/integration-tests/load/go.sum +++ b/integration-tests/load/go.sum @@ -1506,8 +1506,8 @@ github.com/smartcontractkit/chainlink-common v0.1.7-0.20240607135320-c9bc0a2ac0c github.com/smartcontractkit/chainlink-common v0.1.7-0.20240607135320-c9bc0a2ac0ce/go.mod h1:L32xvCpk84Nglit64OhySPMP1tM3TTBK7Tw0qZl7Sd4= github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20240524214833-c362c2ebbd2d h1:5tgMC5Gi2UAOKZ+m28W8ubjLeR0pQCAcrz6eQ0rW510= github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20240524214833-c362c2ebbd2d/go.mod h1:0UNuO3nDt9MFsZPaHJBEUolxVkN0iC69j1ccDp95e8k= -github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240606130021-a4b7359e1580 h1:nsnLzpBTDAQWkfsOz/qd8BTlb1hUpaow1KmA1tPwTf4= -github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240606130021-a4b7359e1580/go.mod h1:KRK7KlAEpmORi+nJgT0vxQVWvlLEBQ6zgzXziZuKvUM= +github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240220203239-09be0ea34540 h1:xFSv8561jsLtF6gYZr/zW2z5qUUAkcFkApin2mnbYTo= +github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240220203239-09be0ea34540/go.mod h1:sjAmX8K2kbQhvDarZE1ZZgDgmHJ50s0BBc/66vKY2ek= github.com/smartcontractkit/chainlink-feeds v0.0.0-20240522213638-159fb2d99917 h1:MD80ZRCTvxxJ8PBmhtrKoTnky8cVNYrCrIBLVRbrOM0= github.com/smartcontractkit/chainlink-feeds v0.0.0-20240522213638-159fb2d99917/go.mod h1:jwVxhctE6BgLOSSsVq9wbREpZ8Ev34H+UBxeUhESZRs= github.com/smartcontractkit/chainlink-solana v1.0.3-0.20240605170242-555ff582f36a h1:/QIQciKjhZy+iBB74WG4pP88O2FwS1KZtSXO5COTTgI= From 440f25ad472b224fff175cbe1acab8d7d707fa3b Mon Sep 17 00:00:00 2001 From: krehermann Date: Fri, 7 Jun 2024 13:19:00 -0600 Subject: [PATCH 34/40] KS-311: allow 0x prefixed wf owner (#13469) --- core/services/job/models.go | 1 + core/services/job/models_test.go | 11 ++++++++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/core/services/job/models.go b/core/services/job/models.go index e1f1e652f53..5c7795a32f6 100644 --- a/core/services/job/models.go +++ b/core/services/job/models.go @@ -878,6 +878,7 @@ func (w *WorkflowSpec) Validate() error { return fmt.Errorf("%w: incorrect length for id %s: expected %d, got %d", ErrInvalidWorkflowID, w.WorkflowID, workflowIDLen, len(w.WorkflowID)) } + w.WorkflowOwner = strings.TrimPrefix(w.WorkflowOwner, "0x") _, err := hex.DecodeString(w.WorkflowOwner) if err != nil { return fmt.Errorf("%w: expected hex encoding got %s: %w", ErrInvalidWorkflowOwner, w.WorkflowOwner, err) diff --git a/core/services/job/models_test.go b/core/services/job/models_test.go index 39ac0f83c1f..a5dc12bcbc6 100644 --- a/core/services/job/models_test.go +++ b/core/services/job/models_test.go @@ -294,7 +294,14 @@ func TestWorkflowSpec_Validate(t *testing.T) { WorkflowName: "ten bytes!", }, }, - + { + name: "valid 0x prefix hex owner", + fields: fields{ + WorkflowID: "15c631d295ef5e32deb99a10ee6804bc4af1385568f9b3363f6552ac6dbb2cef", + WorkflowOwner: "0x00000000000000000000000000000000000000ff", + WorkflowName: "ten bytes!", + }, + }, { name: "not hex owner", fields: fields{ @@ -304,7 +311,6 @@ func TestWorkflowSpec_Validate(t *testing.T) { }, expectedErr: ErrInvalidWorkflowOwner, }, - { name: "not len 40 owner", fields: fields{ @@ -314,7 +320,6 @@ func TestWorkflowSpec_Validate(t *testing.T) { }, expectedErr: ErrInvalidWorkflowOwner, }, - { name: "not len 10 name", fields: fields{ From 8c98c80376c3b6d72bffeab62ee45a74449b6ef5 Mon Sep 17 00:00:00 2001 From: Christopher Dimitri Sastropranoto Date: Sun, 9 Jun 2024 21:16:50 -0700 Subject: [PATCH 35/40] KS-306: Return hashed capability ids (#13453) * return hashed capability ids * update error message when node does not exist * update wrappers --- .changeset/cool-turtles-think.md | 5 +++ .changeset/moody-dogs-begin.md | 5 +++ contracts/.changeset/long-jars-protect.md | 5 +++ contracts/.changeset/swift-ads-stare.md | 5 +++ contracts/gas-snapshots/keystone.gas-snapshot | 26 +++++------ .../src/v0.8/keystone/CapabilityRegistry.sol | 45 ++++++++++++------- .../src/v0.8/keystone/test/BaseTest.t.sol | 2 +- .../CapabilityRegistry_AddNodesTest.t.sol | 2 +- ...pabilityRegistry_GetCapabilitiesTest.t.sol | 14 +++++- .../CapabilityRegistry_RemoveNodesTest.t.sol | 4 +- .../CapabilityRegistry_UpdateNodesTest.t.sol | 4 +- .../keystone_capability_registry.go | 19 ++++---- ...rapper-dependency-versions-do-not-edit.txt | 2 +- 13 files changed, 91 insertions(+), 47 deletions(-) create mode 100644 .changeset/cool-turtles-think.md create mode 100644 .changeset/moody-dogs-begin.md create mode 100644 contracts/.changeset/long-jars-protect.md create mode 100644 contracts/.changeset/swift-ads-stare.md diff --git a/.changeset/cool-turtles-think.md b/.changeset/cool-turtles-think.md new file mode 100644 index 00000000000..87632021656 --- /dev/null +++ b/.changeset/cool-turtles-think.md @@ -0,0 +1,5 @@ +--- +"chainlink": patch +--- + +#internal return hashed capability ids diff --git a/.changeset/moody-dogs-begin.md b/.changeset/moody-dogs-begin.md new file mode 100644 index 00000000000..7b0753fd73d --- /dev/null +++ b/.changeset/moody-dogs-begin.md @@ -0,0 +1,5 @@ +--- +"chainlink": patch +--- + +#internal update error message when node does not exist diff --git a/contracts/.changeset/long-jars-protect.md b/contracts/.changeset/long-jars-protect.md new file mode 100644 index 00000000000..2e5a11e3c8b --- /dev/null +++ b/contracts/.changeset/long-jars-protect.md @@ -0,0 +1,5 @@ +--- +'@chainlink/contracts': patch +--- + +update error message when node does not exist diff --git a/contracts/.changeset/swift-ads-stare.md b/contracts/.changeset/swift-ads-stare.md new file mode 100644 index 00000000000..33a5d0cf16d --- /dev/null +++ b/contracts/.changeset/swift-ads-stare.md @@ -0,0 +1,5 @@ +--- +'@chainlink/contracts': patch +--- + +return hashed capability ids diff --git a/contracts/gas-snapshots/keystone.gas-snapshot b/contracts/gas-snapshots/keystone.gas-snapshot index d01543529cb..0cc6650f860 100644 --- a/contracts/gas-snapshots/keystone.gas-snapshot +++ b/contracts/gas-snapshots/keystone.gas-snapshot @@ -15,37 +15,37 @@ CapabilityRegistry_AddDONTest:test_RevertWhen_NodeDoesNotSupportCapability() (ga CapabilityRegistry_AddNodeOperatorsTest:test_AddNodeOperators() (gas: 184267) CapabilityRegistry_AddNodeOperatorsTest:test_RevertWhen_CalledByNonAdmin() (gas: 17624) CapabilityRegistry_AddNodeOperatorsTest:test_RevertWhen_NodeOperatorAdminAddressZero() (gas: 18520) -CapabilityRegistry_AddNodesTest:test_AddsNodeInfo() (gas: 355458) -CapabilityRegistry_AddNodesTest:test_OwnerCanAddNodes() (gas: 355446) -CapabilityRegistry_AddNodesTest:test_RevertWhen_AddingDuplicateP2PId() (gas: 301431) -CapabilityRegistry_AddNodesTest:test_RevertWhen_AddingNodeWithInvalidCapability() (gas: 55243) +CapabilityRegistry_AddNodesTest:test_AddsNodeInfo() (gas: 355444) +CapabilityRegistry_AddNodesTest:test_OwnerCanAddNodes() (gas: 355432) +CapabilityRegistry_AddNodesTest:test_RevertWhen_AddingDuplicateP2PId() (gas: 301394) +CapabilityRegistry_AddNodesTest:test_RevertWhen_AddingNodeWithInvalidCapability() (gas: 55229) CapabilityRegistry_AddNodesTest:test_RevertWhen_AddingNodeWithInvalidNodeOperator() (gas: 24962) -CapabilityRegistry_AddNodesTest:test_RevertWhen_AddingNodeWithoutCapabilities() (gas: 27738) +CapabilityRegistry_AddNodesTest:test_RevertWhen_AddingNodeWithoutCapabilities() (gas: 27724) CapabilityRegistry_AddNodesTest:test_RevertWhen_CalledByNonNodeOperatorAdminAndNonOwner() (gas: 25130) -CapabilityRegistry_AddNodesTest:test_RevertWhen_P2PIDEmpty() (gas: 27444) -CapabilityRegistry_AddNodesTest:test_RevertWhen_SignerAddressEmpty() (gas: 27083) -CapabilityRegistry_AddNodesTest:test_RevertWhen_SignerAddressNotUnique() (gas: 309850) +CapabilityRegistry_AddNodesTest:test_RevertWhen_P2PIDEmpty() (gas: 27430) +CapabilityRegistry_AddNodesTest:test_RevertWhen_SignerAddressEmpty() (gas: 27069) +CapabilityRegistry_AddNodesTest:test_RevertWhen_SignerAddressNotUnique() (gas: 309822) CapabilityRegistry_DeprecateCapabilitiesTest:test_DeprecatesCapability() (gas: 92873) CapabilityRegistry_DeprecateCapabilitiesTest:test_EmitsEvent() (gas: 93001) CapabilityRegistry_DeprecateCapabilitiesTest:test_RevertWhen_CalledByNonAdmin() (gas: 22879) CapabilityRegistry_DeprecateCapabilitiesTest:test_RevertWhen_CapabilityDoesNotExist() (gas: 16166) CapabilityRegistry_DeprecateCapabilitiesTest:test_RevertWhen_CapabilityIsDeprecated() (gas: 94265) -CapabilityRegistry_GetCapabilitiesTest:test_ExcludesDeprecatedCapabilities() (gas: 119306) -CapabilityRegistry_GetCapabilitiesTest:test_ReturnsCapabilities() (gas: 54034) +CapabilityRegistry_GetCapabilitiesTest:test_ExcludesDeprecatedCapabilities() (gas: 122065) +CapabilityRegistry_GetCapabilitiesTest:test_ReturnsCapabilities() (gas: 58327) CapabilityRegistry_GetDONsTest:test_CorrectlyFetchesDONs() (gas: 65704) CapabilityRegistry_GetDONsTest:test_DoesNotIncludeRemovedDONs() (gas: 88473) CapabilityRegistry_GetHashedCapabilityTest:test_CorrectlyGeneratesHashedCapabilityId() (gas: 11428) CapabilityRegistry_GetHashedCapabilityTest:test_DoesNotCauseIncorrectClashes() (gas: 13087) CapabilityRegistry_GetNodeOperatorsTest:test_CorrectlyFetchesNodeOperators() (gas: 36675) CapabilityRegistry_GetNodeOperatorsTest:test_DoesNotIncludeRemovedNodeOperators() (gas: 38982) -CapabilityRegistry_GetNodesTest:test_CorrectlyFetchesNodes() (gas: 59880) -CapabilityRegistry_GetNodesTest:test_DoesNotIncludeRemovedNodes() (gas: 71576) +CapabilityRegistry_GetNodesTest:test_CorrectlyFetchesNodes() (gas: 59861) +CapabilityRegistry_GetNodesTest:test_DoesNotIncludeRemovedNodes() (gas: 71561) CapabilityRegistry_RemoveDONsTest:test_RemovesDON() (gas: 60696) CapabilityRegistry_RemoveDONsTest:test_RevertWhen_CalledByNonAdmin() (gas: 15669) CapabilityRegistry_RemoveDONsTest:test_RevertWhen_DONDoesNotExist() (gas: 16540) CapabilityRegistry_RemoveNodeOperatorsTest:test_RemovesNodeOperator() (gas: 36069) CapabilityRegistry_RemoveNodeOperatorsTest:test_RevertWhen_CalledByNonOwner() (gas: 15838) -CapabilityRegistry_RemoveNodesTest:test_CanAddNodeWithSameSignerAddressAfterRemoving() (gas: 114067) +CapabilityRegistry_RemoveNodesTest:test_CanAddNodeWithSameSignerAddressAfterRemoving() (gas: 114053) CapabilityRegistry_RemoveNodesTest:test_CanRemoveWhenDONDeleted() (gas: 371521) CapabilityRegistry_RemoveNodesTest:test_CanRemoveWhenNodeNoLongerPartOfDON() (gas: 712537) CapabilityRegistry_RemoveNodesTest:test_OwnerCanRemoveNodes() (gas: 72324) diff --git a/contracts/src/v0.8/keystone/CapabilityRegistry.sol b/contracts/src/v0.8/keystone/CapabilityRegistry.sol index 33cd684e471..c2462bfecf8 100644 --- a/contracts/src/v0.8/keystone/CapabilityRegistry.sol +++ b/contracts/src/v0.8/keystone/CapabilityRegistry.sol @@ -215,7 +215,7 @@ contract CapabilityRegistry is OwnerIsCreator, TypeAndVersionInterface { error InvalidNodeOperatorAdmin(); /// @notice This error is thrown when trying to add a node with P2P ID that - /// is empty bytes or a duplicate. + /// is empty bytes /// @param p2pId The provided P2P ID error InvalidNodeP2PId(bytes32 p2pId); @@ -233,12 +233,17 @@ contract CapabilityRegistry is OwnerIsCreator, TypeAndVersionInterface { /// been used by another node error InvalidNodeSigner(); - /// @notice This error is thrown when trying add a capability that already + /// @notice This error is thrown when trying to add a capability that already /// exists. /// @param hashedCapabilityId The hashed capability ID of the capability /// that already exists error CapabilityAlreadyExists(bytes32 hashedCapabilityId); + /// @notice This error is thrown when trying to add a node that already + /// exists. + /// @param nodeP2PId The P2P ID of the node that already exists + error NodeAlreadyExists(bytes32 nodeP2PId); + /// @notice This error is thrown when trying to add a node to a DON where /// the node does not support the capability /// @param nodeP2PId The P2P ID of the node @@ -272,6 +277,11 @@ contract CapabilityRegistry is OwnerIsCreator, TypeAndVersionInterface { /// @param hashedCapabilityId The hashed ID of the capability that is deprecated. error CapabilityIsDeprecated(bytes32 hashedCapabilityId); + /// @notice This error is thrown when a node with the provided P2P ID is + /// not found. + /// @param nodeP2PId The node P2P ID used for the lookup. + error NodeDoesNotExist(bytes32 nodeP2PId); + /// @notice This error is thrown when a node operator does not exist /// @param nodeOperatorId The ID of the node operator that does not exist error NodeOperatorDoesNotExist(uint32 nodeOperatorId); @@ -469,9 +479,10 @@ contract CapabilityRegistry is OwnerIsCreator, TypeAndVersionInterface { if (!isOwner && msg.sender != nodeOperator.admin) revert AccessForbidden(msg.sender); Node storage storedNode = s_nodes[node.p2pId]; - if (storedNode.signer != bytes32("") || bytes32(node.p2pId) == bytes32("")) revert InvalidNodeP2PId(node.p2pId); + if (storedNode.signer != bytes32("")) revert NodeAlreadyExists(node.p2pId); + if (node.p2pId == bytes32("")) revert InvalidNodeP2PId(node.p2pId); - if (bytes32(node.signer) == bytes32("") || s_nodeSigners.contains(node.signer)) revert InvalidNodeSigner(); + if (node.signer == bytes32("") || s_nodeSigners.contains(node.signer)) revert InvalidNodeSigner(); bytes32[] memory capabilityIds = node.hashedCapabilityIds; if (capabilityIds.length == 0) revert InvalidNodeCapabilities(capabilityIds); @@ -503,7 +514,7 @@ contract CapabilityRegistry is OwnerIsCreator, TypeAndVersionInterface { Node storage node = s_nodes[p2pId]; - if (bytes32(node.signer) == bytes32("")) revert InvalidNodeP2PId(p2pId); + if (node.signer == bytes32("")) revert NodeDoesNotExist(p2pId); if (node.supportedDONIds.length() > 0) revert NodePartOfDON(p2pId); if (!isOwner && msg.sender != s_nodeOperators[node.nodeOperatorId].admin) revert AccessForbidden(msg.sender); @@ -526,11 +537,10 @@ contract CapabilityRegistry is OwnerIsCreator, TypeAndVersionInterface { if (!isOwner && msg.sender != nodeOperator.admin) revert AccessForbidden(msg.sender); Node storage storedNode = s_nodes[node.p2pId]; - if (storedNode.signer == bytes32("")) revert InvalidNodeP2PId(node.p2pId); + if (storedNode.signer == bytes32("")) revert NodeDoesNotExist(node.p2pId); - if ( - bytes32(node.signer) == bytes32("") || (storedNode.signer != node.signer && s_nodeSigners.contains(node.signer)) - ) revert InvalidNodeSigner(); + if (node.signer == bytes32("") || (storedNode.signer != node.signer && s_nodeSigners.contains(node.signer))) + revert InvalidNodeSigner(); bytes32[] memory supportedHashedCapabilityIds = node.hashedCapabilityIds; if (supportedHashedCapabilityIds.length == 0) revert InvalidNodeCapabilities(supportedHashedCapabilityIds); @@ -623,15 +633,17 @@ contract CapabilityRegistry is OwnerIsCreator, TypeAndVersionInterface { /// @notice Returns all capabilities. This operation will copy capabilities /// to memory, which can be quite expensive. This is designed to mostly be /// used by view accessors that are queried without any gas fees. - /// @return Capability[] An array of capabilities - function getCapabilities() external view returns (Capability[] memory) { + /// @return bytes32[] List of hashed capability Ids + /// @return Capability[] List of capabilities + function getCapabilities() external view returns (bytes32[] memory, Capability[] memory) { bytes32[] memory hashedCapabilityIds = s_hashedCapabilityIds.values(); + uint256 numSupportedCapabilities = hashedCapabilityIds.length - s_deprecatedHashedCapabilityIds.length(); + // Solidity does not support dynamic arrays in memory, so we create a // fixed-size array and copy the capabilities into it. - Capability[] memory capabilities = new Capability[]( - hashedCapabilityIds.length - s_deprecatedHashedCapabilityIds.length() - ); + Capability[] memory capabilities = new Capability[](numSupportedCapabilities); + bytes32[] memory supportedHashedCapabilityIds = new bytes32[](numSupportedCapabilities); // We need to keep track of the new index because we are skipping // deprecated capabilities. @@ -642,11 +654,12 @@ contract CapabilityRegistry is OwnerIsCreator, TypeAndVersionInterface { if (!s_deprecatedHashedCapabilityIds.contains(hashedCapabilityId)) { capabilities[newIndex] = s_capabilities[hashedCapabilityId]; - newIndex++; + supportedHashedCapabilityIds[newIndex] = hashedCapabilityId; + ++newIndex; } } - return capabilities; + return (supportedHashedCapabilityIds, capabilities); } /// @notice This functions returns a capability id that has been hashed to fit into a bytes32 for cheaper access diff --git a/contracts/src/v0.8/keystone/test/BaseTest.t.sol b/contracts/src/v0.8/keystone/test/BaseTest.t.sol index 3df0b6ca7c7..795bb40843e 100644 --- a/contracts/src/v0.8/keystone/test/BaseTest.t.sol +++ b/contracts/src/v0.8/keystone/test/BaseTest.t.sol @@ -46,7 +46,7 @@ contract BaseTest is Test, Constants { s_nonExistentHashedCapabilityId = s_capabilityRegistry.getHashedCapabilityId("non-existent-capability", "1.0.0"); } - function _getNodeOperators() internal view returns (CapabilityRegistry.NodeOperator[] memory) { + function _getNodeOperators() internal pure returns (CapabilityRegistry.NodeOperator[] memory) { CapabilityRegistry.NodeOperator[] memory nodeOperators = new CapabilityRegistry.NodeOperator[](3); nodeOperators[0] = CapabilityRegistry.NodeOperator({admin: NODE_OPERATOR_ONE_ADMIN, name: NODE_OPERATOR_ONE_NAME}); nodeOperators[1] = CapabilityRegistry.NodeOperator({admin: NODE_OPERATOR_TWO_ADMIN, name: NODE_OPERATOR_TWO_NAME}); diff --git a/contracts/src/v0.8/keystone/test/CapabilityRegistry_AddNodesTest.t.sol b/contracts/src/v0.8/keystone/test/CapabilityRegistry_AddNodesTest.t.sol index 941712edb15..7bb4eb43c4d 100644 --- a/contracts/src/v0.8/keystone/test/CapabilityRegistry_AddNodesTest.t.sol +++ b/contracts/src/v0.8/keystone/test/CapabilityRegistry_AddNodesTest.t.sol @@ -121,7 +121,7 @@ contract CapabilityRegistry_AddNodesTest is BaseTest { s_capabilityRegistry.addNodes(nodes); - vm.expectRevert(abi.encodeWithSelector(CapabilityRegistry.InvalidNodeP2PId.selector, P2P_ID)); + vm.expectRevert(abi.encodeWithSelector(CapabilityRegistry.NodeAlreadyExists.selector, P2P_ID)); s_capabilityRegistry.addNodes(nodes); } diff --git a/contracts/src/v0.8/keystone/test/CapabilityRegistry_GetCapabilitiesTest.t.sol b/contracts/src/v0.8/keystone/test/CapabilityRegistry_GetCapabilitiesTest.t.sol index 60890db3377..e2dff281252 100644 --- a/contracts/src/v0.8/keystone/test/CapabilityRegistry_GetCapabilitiesTest.t.sol +++ b/contracts/src/v0.8/keystone/test/CapabilityRegistry_GetCapabilitiesTest.t.sol @@ -14,7 +14,12 @@ contract CapabilityRegistry_GetCapabilitiesTest is BaseTest { } function test_ReturnsCapabilities() public view { - CapabilityRegistry.Capability[] memory capabilities = s_capabilityRegistry.getCapabilities(); + (bytes32[] memory hashedCapabilityIds, CapabilityRegistry.Capability[] memory capabilities) = s_capabilityRegistry + .getCapabilities(); + + assertEq(hashedCapabilityIds.length, 2); + assertEq(hashedCapabilityIds[0], keccak256(abi.encode(capabilities[0].labelledName, capabilities[0].version))); + assertEq(hashedCapabilityIds[1], keccak256(abi.encode(capabilities[1].labelledName, capabilities[1].version))); assertEq(capabilities.length, 2); @@ -43,7 +48,12 @@ contract CapabilityRegistry_GetCapabilitiesTest is BaseTest { deprecatedCapabilities[0] = hashedCapabilityId; s_capabilityRegistry.deprecateCapabilities(deprecatedCapabilities); - CapabilityRegistry.Capability[] memory capabilities = s_capabilityRegistry.getCapabilities(); + (bytes32[] memory hashedCapabilityIds, CapabilityRegistry.Capability[] memory capabilities) = s_capabilityRegistry + .getCapabilities(); + + assertEq(hashedCapabilityIds.length, 1); + assertEq(hashedCapabilityIds[0], keccak256(abi.encode(capabilities[0].labelledName, capabilities[0].version))); + assertEq(capabilities.length, 1); assertEq(capabilities[0].labelledName, "read-ethereum-mainnet-gas-price"); diff --git a/contracts/src/v0.8/keystone/test/CapabilityRegistry_RemoveNodesTest.t.sol b/contracts/src/v0.8/keystone/test/CapabilityRegistry_RemoveNodesTest.t.sol index 0c6b4a9651c..ac59435e35a 100644 --- a/contracts/src/v0.8/keystone/test/CapabilityRegistry_RemoveNodesTest.t.sol +++ b/contracts/src/v0.8/keystone/test/CapabilityRegistry_RemoveNodesTest.t.sol @@ -62,7 +62,7 @@ contract CapabilityRegistry_RemoveNodesTest is BaseTest { bytes32[] memory nodes = new bytes32[](1); nodes[0] = INVALID_P2P_ID; - vm.expectRevert(abi.encodeWithSelector(CapabilityRegistry.InvalidNodeP2PId.selector, INVALID_P2P_ID)); + vm.expectRevert(abi.encodeWithSelector(CapabilityRegistry.NodeDoesNotExist.selector, INVALID_P2P_ID)); s_capabilityRegistry.removeNodes(nodes); } @@ -71,7 +71,7 @@ contract CapabilityRegistry_RemoveNodesTest is BaseTest { bytes32[] memory nodes = new bytes32[](1); nodes[0] = bytes32(""); - vm.expectRevert(abi.encodeWithSelector(CapabilityRegistry.InvalidNodeP2PId.selector, bytes32(""))); + vm.expectRevert(abi.encodeWithSelector(CapabilityRegistry.NodeDoesNotExist.selector, bytes32(""))); s_capabilityRegistry.removeNodes(nodes); } diff --git a/contracts/src/v0.8/keystone/test/CapabilityRegistry_UpdateNodesTest.t.sol b/contracts/src/v0.8/keystone/test/CapabilityRegistry_UpdateNodesTest.t.sol index a419f2c198e..da4e811c3ec 100644 --- a/contracts/src/v0.8/keystone/test/CapabilityRegistry_UpdateNodesTest.t.sol +++ b/contracts/src/v0.8/keystone/test/CapabilityRegistry_UpdateNodesTest.t.sol @@ -75,7 +75,7 @@ contract CapabilityRegistry_UpdateNodesTest is BaseTest { hashedCapabilityIds: hashedCapabilityIds }); - vm.expectRevert(abi.encodeWithSelector(CapabilityRegistry.InvalidNodeP2PId.selector, INVALID_P2P_ID)); + vm.expectRevert(abi.encodeWithSelector(CapabilityRegistry.NodeDoesNotExist.selector, INVALID_P2P_ID)); s_capabilityRegistry.updateNodes(nodes); } @@ -93,7 +93,7 @@ contract CapabilityRegistry_UpdateNodesTest is BaseTest { hashedCapabilityIds: hashedCapabilityIds }); - vm.expectRevert(abi.encodeWithSelector(CapabilityRegistry.InvalidNodeP2PId.selector, bytes32(""))); + vm.expectRevert(abi.encodeWithSelector(CapabilityRegistry.NodeDoesNotExist.selector, bytes32(""))); s_capabilityRegistry.updateNodes(nodes); } diff --git a/core/gethwrappers/keystone/generated/keystone_capability_registry/keystone_capability_registry.go b/core/gethwrappers/keystone/generated/keystone_capability_registry/keystone_capability_registry.go index ead693d88dd..b4796e04234 100644 --- a/core/gethwrappers/keystone/generated/keystone_capability_registry/keystone_capability_registry.go +++ b/core/gethwrappers/keystone/generated/keystone_capability_registry/keystone_capability_registry.go @@ -66,8 +66,8 @@ type CapabilityRegistryNodeOperator struct { } var CapabilityRegistryMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"AccessForbidden\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hashedCapabilityId\",\"type\":\"bytes32\"}],\"name\":\"CapabilityAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hashedCapabilityId\",\"type\":\"bytes32\"}],\"name\":\"CapabilityDoesNotExist\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hashedCapabilityId\",\"type\":\"bytes32\"}],\"name\":\"CapabilityIsDeprecated\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"}],\"name\":\"DONDoesNotExist\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"}],\"name\":\"DuplicateDONCapability\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"nodeP2PId\",\"type\":\"bytes32\"}],\"name\":\"DuplicateDONNode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"proposedConfigurationContract\",\"type\":\"address\"}],\"name\":\"InvalidCapabilityConfigurationContractInterface\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"f\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"nodeCount\",\"type\":\"uint256\"}],\"name\":\"InvalidFaultTolerance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"hashedCapabilityIds\",\"type\":\"bytes32[]\"}],\"name\":\"InvalidNodeCapabilities\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidNodeOperatorAdmin\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"}],\"name\":\"InvalidNodeP2PId\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidNodeSigner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"lengthOne\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lengthTwo\",\"type\":\"uint256\"}],\"name\":\"LengthMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"nodeP2PId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"}],\"name\":\"NodeDoesNotSupportCapability\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"}],\"name\":\"NodeOperatorDoesNotExist\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"nodeP2PId\",\"type\":\"bytes32\"}],\"name\":\"NodePartOfDON\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"hashedCapabilityId\",\"type\":\"bytes32\"}],\"name\":\"CapabilityConfigured\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"hashedCapabilityId\",\"type\":\"bytes32\"}],\"name\":\"CapabilityDeprecated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"configCount\",\"type\":\"uint32\"}],\"name\":\"ConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"signer\",\"type\":\"bytes32\"}],\"name\":\"NodeAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"NodeOperatorAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"}],\"name\":\"NodeOperatorRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"NodeOperatorUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"}],\"name\":\"NodeRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"signer\",\"type\":\"bytes32\"}],\"name\":\"NodeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"labelledName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"enumCapabilityRegistry.CapabilityType\",\"name\":\"capabilityType\",\"type\":\"uint8\"},{\"internalType\":\"enumCapabilityRegistry.CapabilityResponseType\",\"name\":\"responseType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"configurationContract\",\"type\":\"address\"}],\"internalType\":\"structCapabilityRegistry.Capability[]\",\"name\":\"capabilities\",\"type\":\"tuple[]\"}],\"name\":\"addCapabilities\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"nodes\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"internalType\":\"structCapabilityRegistry.CapabilityConfiguration[]\",\"name\":\"capabilityConfigurations\",\"type\":\"tuple[]\"},{\"internalType\":\"bool\",\"name\":\"isPublic\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"acceptsWorkflows\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"f\",\"type\":\"uint32\"}],\"name\":\"addDON\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"internalType\":\"structCapabilityRegistry.NodeOperator[]\",\"name\":\"nodeOperators\",\"type\":\"tuple[]\"}],\"name\":\"addNodeOperators\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"signer\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"hashedCapabilityIds\",\"type\":\"bytes32[]\"}],\"internalType\":\"structCapabilityRegistry.NodeInfo[]\",\"name\":\"nodes\",\"type\":\"tuple[]\"}],\"name\":\"addNodes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"hashedCapabilityIds\",\"type\":\"bytes32[]\"}],\"name\":\"deprecateCapabilities\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCapabilities\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"labelledName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"enumCapabilityRegistry.CapabilityType\",\"name\":\"capabilityType\",\"type\":\"uint8\"},{\"internalType\":\"enumCapabilityRegistry.CapabilityResponseType\",\"name\":\"responseType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"configurationContract\",\"type\":\"address\"}],\"internalType\":\"structCapabilityRegistry.Capability[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hashedId\",\"type\":\"bytes32\"}],\"name\":\"getCapability\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"labelledName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"enumCapabilityRegistry.CapabilityType\",\"name\":\"capabilityType\",\"type\":\"uint8\"},{\"internalType\":\"enumCapabilityRegistry.CapabilityResponseType\",\"name\":\"responseType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"configurationContract\",\"type\":\"address\"}],\"internalType\":\"structCapabilityRegistry.Capability\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"}],\"name\":\"getCapabilityConfigs\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"}],\"name\":\"getDON\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"id\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"configCount\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"f\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"isPublic\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"acceptsWorkflows\",\"type\":\"bool\"},{\"internalType\":\"bytes32[]\",\"name\":\"nodeP2PIds\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"internalType\":\"structCapabilityRegistry.CapabilityConfiguration[]\",\"name\":\"capabilityConfigurations\",\"type\":\"tuple[]\"}],\"internalType\":\"structCapabilityRegistry.DONInfo\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDONs\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"id\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"configCount\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"f\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"isPublic\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"acceptsWorkflows\",\"type\":\"bool\"},{\"internalType\":\"bytes32[]\",\"name\":\"nodeP2PIds\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"internalType\":\"structCapabilityRegistry.CapabilityConfiguration[]\",\"name\":\"capabilityConfigurations\",\"type\":\"tuple[]\"}],\"internalType\":\"structCapabilityRegistry.DONInfo[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"labelledName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"}],\"name\":\"getHashedCapabilityId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"}],\"name\":\"getNode\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"signer\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"hashedCapabilityIds\",\"type\":\"bytes32[]\"}],\"internalType\":\"structCapabilityRegistry.NodeInfo\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"configCount\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"}],\"name\":\"getNodeOperator\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"internalType\":\"structCapabilityRegistry.NodeOperator\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNodeOperators\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"internalType\":\"structCapabilityRegistry.NodeOperator[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNodes\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"signer\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"hashedCapabilityIds\",\"type\":\"bytes32[]\"}],\"internalType\":\"structCapabilityRegistry.NodeInfo[]\",\"name\":\"nodeInfo\",\"type\":\"tuple[]\"},{\"internalType\":\"uint32[]\",\"name\":\"configCounts\",\"type\":\"uint32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hashedCapabilityId\",\"type\":\"bytes32\"}],\"name\":\"isCapabilityDeprecated\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32[]\",\"name\":\"donIds\",\"type\":\"uint32[]\"}],\"name\":\"removeDONs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32[]\",\"name\":\"nodeOperatorIds\",\"type\":\"uint32[]\"}],\"name\":\"removeNodeOperators\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"removedNodeP2PIds\",\"type\":\"bytes32[]\"}],\"name\":\"removeNodes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"typeAndVersion\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32[]\",\"name\":\"nodes\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"internalType\":\"structCapabilityRegistry.CapabilityConfiguration[]\",\"name\":\"capabilityConfigurations\",\"type\":\"tuple[]\"},{\"internalType\":\"bool\",\"name\":\"isPublic\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"acceptsWorkflows\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"f\",\"type\":\"uint32\"}],\"name\":\"updateDON\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32[]\",\"name\":\"nodeOperatorIds\",\"type\":\"uint32[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"internalType\":\"structCapabilityRegistry.NodeOperator[]\",\"name\":\"nodeOperators\",\"type\":\"tuple[]\"}],\"name\":\"updateNodeOperators\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"signer\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"hashedCapabilityIds\",\"type\":\"bytes32[]\"}],\"internalType\":\"structCapabilityRegistry.NodeInfo[]\",\"name\":\"nodes\",\"type\":\"tuple[]\"}],\"name\":\"updateNodes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x6080604052600e80546001600160401b0319166401000000011790553480156200002857600080fd5b503380600081620000805760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420736574206f776e657220746f207a65726f000000000000000060448201526064015b60405180910390fd5b600080546001600160a01b0319166001600160a01b0384811691909117909155811615620000b357620000b381620000bc565b50505062000167565b336001600160a01b03821603620001165760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640162000077565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b614db080620001776000396000f3fe608060405234801561001057600080fd5b50600436106101ae5760003560e01c80635d83d967116100ee57806386fa4246116100975780639cb7c5f4116100715780639cb7c5f4146103ea578063ddbe4f821461040a578063e29581aa1461041f578063f2fde38b1461043557600080fd5b806386fa42461461039c5780638da5cb5b146103af57806395864d1f146103d757600080fd5b8063715f5295116100c8578063715f52951461036e57806373ac22b41461038157806379ba50971461039457600080fd5b80635d83d967146103335780635e65e3091461034657806366acaa331461035957600080fd5b806322bdbcbc1161015b5780632c01a1e8116101355780632c01a1e8146102cb578063398f3773146102de5780633f2a13c9146102f157806350c946fe1461031257600080fd5b806322bdbcbc146102785780632353740514610298578063275459f2146102b857600080fd5b8063193ec0061161018c578063193ec0061461023b5780631d05394c14610250578063214502431461026357600080fd5b80630fe5800a146101b357806312570011146101d9578063181f5a77146101fc575b600080fd5b6101c66101c1366004613bce565b610448565b6040519081526020015b60405180910390f35b6101ec6101e7366004613c32565b61047c565b60405190151581526020016101d0565b604080518082018252601881527f4361706162696c697479526567697374727920312e302e300000000000000000602082015290516101d09190613cb9565b61024e610249366004613d38565b610489565b005b61024e61025e366004613ddd565b610553565b61026b61070f565b6040516101d09190613f47565b61028b610286366004613fc7565b610874565b6040516101d0919061401f565b6102ab6102a6366004613fc7565b610961565b6040516101d09190614032565b61024e6102c6366004613ddd565b6109a5565b61024e6102d9366004613ddd565b610a7c565b61024e6102ec366004613ddd565b610c9f565b6103046102ff366004614045565b610e67565b6040516101d092919061406f565b610325610320366004613c32565b611053565b6040516101d09291906140d6565b61024e610341366004613ddd565b6110f8565b61024e610354366004613ddd565b611246565b6103616116b8565b6040516101d091906140fe565b61024e61037c366004613ddd565b6118a3565b61024e61038f366004613ddd565b61195e565b61024e611dcf565b61024e6103aa366004614171565b611ecc565b60005460405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101d0565b61024e6103e53660046141dd565b612212565b6103fd6103f8366004613c32565b6122de565b6040516101d0919061434e565b6104126124e3565b6040516101d09190614361565b6104276127e1565b6040516101d09291906143d4565b61024e6104433660046144b7565b612950565b6000828260405160200161045d92919061406f565b6040516020818303038152906040528051906020012090505b92915050565b6000610476600583612964565b61049161297f565b600e805460009164010000000090910463ffffffff169060046104b383614501565b82546101009290920a63ffffffff8181021990931691831602179091558181166000818152600d602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001684179055815160a0810183529283526001908301528715159082015285151560608201529084166080820152909150610549908990899089908990612a02565b5050505050505050565b61055b61297f565b60005b8181101561070a57600083838381811061057a5761057a614524565b905060200201602081019061058f9190613fc7565b63ffffffff8082166000908152600d60209081526040808320805464010000000090049094168084526001850190925282209394509192905b6105d1826130b2565b811015610629576106188563ffffffff16600c60006105f985876130bc90919063ffffffff16565b81526020019081526020016000206004016130c890919063ffffffff16565b5061062281614553565b90506105c8565b508254640100000000900463ffffffff16600003610680576040517f2b62be9b00000000000000000000000000000000000000000000000000000000815263ffffffff851660048201526024015b60405180910390fd5b63ffffffff84166000818152600d6020908152604080832080547fffffffffffffffffffffffffffffffffffff00000000000000000000000000001690558051938452908301919091527ff264aae70bf6a9d90e68e0f9b393f4e7fbea67b063b0f336e0b36c1581703651910160405180910390a1505050508061070390614553565b905061055e565b505050565b600e54606090640100000000900463ffffffff16600061073060018361458b565b63ffffffff1667ffffffffffffffff81111561074e5761074e613a68565b6040519080825280602002602001820160405280156107d557816020015b6040805160e081018252600080825260208083018290529282018190526060808301829052608083019190915260a0820181905260c082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90920191018161076c5790505b509050600060015b8363ffffffff168163ffffffff1610156108515763ffffffff8082166000908152600d6020526040902054161561084157610817816130d4565b83838151811061082957610829614524565b60200260200101819052508161083e90614553565b91505b61084a81614501565b90506107dd565b5061085d60018461458b565b63ffffffff16811461086d578082525b5092915050565b60408051808201909152600081526060602082015263ffffffff82166000908152600b60209081526040918290208251808401909352805473ffffffffffffffffffffffffffffffffffffffff16835260018101805491928401916108d8906145a8565b80601f0160208091040260200160405190810160405280929190818152602001828054610904906145a8565b80156109515780601f1061092657610100808354040283529160200191610951565b820191906000526020600020905b81548152906001019060200180831161093457829003601f168201915b5050505050815250509050919050565b6040805160e0810182526000808252602082018190529181018290526060808201839052608082019290925260a0810182905260c0810191909152610476826130d4565b6109ad61297f565b60005b63ffffffff811682111561070a57600083838363ffffffff168181106109d8576109d8614524565b90506020020160208101906109ed9190613fc7565b63ffffffff81166000908152600b6020526040812080547fffffffffffffffffffffffff0000000000000000000000000000000000000000168155919250610a3860018301826139fb565b505060405163ffffffff8216907fa59268ca81d40429e65ccea5385b59cf2d3fc6519371dee92f8eb1dae5107a7a90600090a250610a7581614501565b90506109b0565b6000805473ffffffffffffffffffffffffffffffffffffffff163314905b82811015610c99576000848483818110610ab657610ab6614524565b602090810292909201356000818152600c90935260409092206001810154929350919050610b13576040517f64e2ee9200000000000000000000000000000000000000000000000000000000815260048101839052602401610677565b6000610b21826004016130b2565b1115610b5c576040517f34a4a3f600000000000000000000000000000000000000000000000000000000815260048101839052602401610677565b83158015610b965750805463ffffffff166000908152600b602052604090205473ffffffffffffffffffffffffffffffffffffffff163314155b15610bcf576040517f9473075d000000000000000000000000000000000000000000000000000000008152336004820152602401610677565b6001810154610be0906007906130c8565b506002810154610bf2906009906130c8565b506000828152600c6020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016815560018101829055600281018290559060048201818181610c478282613a35565b5050505050507f5254e609a97bab37b7cc79fe128f85c097bd6015c6e1624ae0ba392eb975320582604051610c7e91815260200190565b60405180910390a1505080610c9290614553565b9050610a9a565b50505050565b610ca761297f565b60005b8181101561070a576000838383818110610cc657610cc6614524565b9050602002810190610cd891906145fb565b610ce190614639565b805190915073ffffffffffffffffffffffffffffffffffffffff16610d32576040517feeacd93900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600e54604080518082018252835173ffffffffffffffffffffffffffffffffffffffff908116825260208086015181840190815263ffffffff9095166000818152600b909252939020825181547fffffffffffffffffffffffff00000000000000000000000000000000000000001692169190911781559251919290916001820190610dbe90826146f1565b5050600e8054909150600090610dd99063ffffffff16614501565b91906101000a81548163ffffffff021916908363ffffffff160217905550816000015173ffffffffffffffffffffffffffffffffffffffff168163ffffffff167f78e94ca80be2c30abc061b99e7eb8583b1254781734b1e3ce339abb57da2fe8e8460200151604051610e4c9190613cb9565b60405180910390a3505080610e6090614553565b9050610caa565b63ffffffff8083166000908152600d60209081526040808320805464010000000090049094168084526001909401825280832085845260030190915281208054606093849390929091610eb9906145a8565b80601f0160208091040260200160405190810160405280929190818152602001828054610ee5906145a8565b8015610f325780601f10610f0757610100808354040283529160200191610f32565b820191906000526020600020905b815481529060010190602001808311610f1557829003601f168201915b5050506000888152600260208190526040909120015492935060609262010000900473ffffffffffffffffffffffffffffffffffffffff16159150611045905057600086815260026020819052604091829020015490517f8318ed5d00000000000000000000000000000000000000000000000000000000815263ffffffff891660048201526201000090910473ffffffffffffffffffffffffffffffffffffffff1690638318ed5d90602401600060405180830381865afa158015610ffc573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052611042919081019061480b565b90505b9093509150505b9250929050565b6040805160808101825260008082526020820181905291810191909152606080820152604080516080810182526000848152600c6020908152838220805463ffffffff8082168652600183015484870152600283015486880152640100000000909104168352600301905291822060608201906110cf906133b0565b90526000938452600c602052604090932054929364010000000090930463ffffffff1692915050565b61110061297f565b60005b8181101561070a57600083838381811061111f5761111f614524565b90506020020135905061113c81600361296490919063ffffffff16565b611175576040517fe181733f00000000000000000000000000000000000000000000000000000000815260048101829052602401610677565b6111806005826133bd565b6111b9576040517ff7d7a29400000000000000000000000000000000000000000000000000000000815260048101829052602401610677565b6000818152600260205260408120906111d282826139fb565b6111e06001830160006139fb565b5060020180547fffffffffffffffffffff0000000000000000000000000000000000000000000016905560405181907fdcea1b78b6ddc31592a94607d537543fcaafda6cc52d6d5cc7bbfca1422baf2190600090a25061123f81614553565b9050611103565b6000805473ffffffffffffffffffffffffffffffffffffffff163314905b82811015610c9957600084848381811061128057611280614524565b90506020028101906112929190614879565b61129b906148ad565b805163ffffffff166000908152600b602090815260408083208151808301909252805473ffffffffffffffffffffffffffffffffffffffff1682526001810180549596509394919390928401916112f1906145a8565b80601f016020809104026020016040519081016040528092919081815260200182805461131d906145a8565b801561136a5780601f1061133f5761010080835404028352916020019161136a565b820191906000526020600020905b81548152906001019060200180831161134d57829003601f168201915b50505050508152505090508315801561139a5750805173ffffffffffffffffffffffffffffffffffffffff163314155b156113d3576040517f9473075d000000000000000000000000000000000000000000000000000000008152336004820152602401610677565b6040808301516000908152600c6020522060018101546114275782604001516040517f64e2ee9200000000000000000000000000000000000000000000000000000000815260040161067791815260200190565b60208301511580611457575082602001518160010154141580156114575750602083015161145790600790612964565b1561148e576040517f8377314600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606083015180516000036114d057806040517f3748d4c60000000000000000000000000000000000000000000000000000000081526004016106779190614980565b8154640100000000900463ffffffff168260046114ec83614501565b82546101009290920a63ffffffff8181021990931691831602179091558354640100000000900416905060005b82518110156115e45761154f83828151811061153757611537614524565b6020026020010151600361296490919063ffffffff16565b61158757826040517f3748d4c60000000000000000000000000000000000000000000000000000000081526004016106779190614980565b6115d383828151811061159c5761159c614524565b60200260200101518560030160008563ffffffff1663ffffffff1681526020019081526020016000206133bd90919063ffffffff16565b506115dd81614553565b9050611519565b50845183547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff909116178355604085015160028401556001830154602086015181146116565761163b6007826130c8565b50602086015160018501819055611654906007906133bd565b505b85516040808801516020808a015183519283529082015263ffffffff909216917f4b5b465e22eea0c3d40c30e936643245b80d19b2dcf75788c0699fe8d8db645b910160405180910390a2505050505050806116b190614553565b9050611264565b600e5460609063ffffffff1660006116d160018361458b565b63ffffffff1667ffffffffffffffff8111156116ef576116ef613a68565b60405190808252806020026020018201604052801561173557816020015b60408051808201909152600081526060602082015281526020019060019003908161170d5790505b509050600060015b8363ffffffff168163ffffffff16101561188d5763ffffffff81166000908152600b602052604090205473ffffffffffffffffffffffffffffffffffffffff161561187d5763ffffffff81166000908152600b60209081526040918290208251808401909352805473ffffffffffffffffffffffffffffffffffffffff16835260018101805491928401916117d1906145a8565b80601f01602080910402602001604051908101604052809291908181526020018280546117fd906145a8565b801561184a5780601f1061181f5761010080835404028352916020019161184a565b820191906000526020600020905b81548152906001019060200180831161182d57829003601f168201915b50505050508152505083838151811061186557611865614524565b60200260200101819052508161187a90614553565b91505b61188681614501565b905061173d565b50600e5461085d9060019063ffffffff1661458b565b6118ab61297f565b60005b8181101561070a5760008383838181106118ca576118ca614524565b90506020028101906118dc9190614993565b6118e5906149d6565b905060006118fb82600001518360200151610448565b90506119086003826133bd565b611941576040517febf5255100000000000000000000000000000000000000000000000000000000815260048101829052602401610677565b61194b81836133c9565b50508061195790614553565b90506118ae565b6000805473ffffffffffffffffffffffffffffffffffffffff163314905b82811015610c9957600084848381811061199857611998614524565b90506020028101906119aa9190614879565b6119b3906148ad565b805163ffffffff166000908152600b602090815260408083208151808301909252805473ffffffffffffffffffffffffffffffffffffffff168252600181018054959650939491939092840191611a09906145a8565b80601f0160208091040260200160405190810160405280929190818152602001828054611a35906145a8565b8015611a825780601f10611a5757610100808354040283529160200191611a82565b820191906000526020600020905b815481529060010190602001808311611a6557829003601f168201915b50505091909252505081519192505073ffffffffffffffffffffffffffffffffffffffff16611ae85781516040517fadd9ae1e00000000000000000000000000000000000000000000000000000000815263ffffffff9091166004820152602401610677565b83158015611b0d5750805173ffffffffffffffffffffffffffffffffffffffff163314155b15611b46576040517f9473075d000000000000000000000000000000000000000000000000000000008152336004820152602401610677565b6040808301516000908152600c602052206001810154151580611b6b57506040830151155b15611baa5782604001516040517f64e2ee9200000000000000000000000000000000000000000000000000000000815260040161067791815260200190565b60208301511580611bc757506020830151611bc790600790612964565b15611bfe576040517f8377314600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60608301518051600003611c4057806040517f3748d4c60000000000000000000000000000000000000000000000000000000081526004016106779190614980565b81548290600490611c5e90640100000000900463ffffffff16614501565b82546101009290920a63ffffffff818102199093169183160217909155825464010000000090041660005b8251811015611d0557611ca783828151811061153757611537614524565b611cdf57826040517f3748d4c60000000000000000000000000000000000000000000000000000000081526004016106779190614980565b611cf483828151811061159c5761159c614524565b50611cfe81614553565b9050611c89565b50845183547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff91821617845560408601516002850155602086015160018501819055611d5b91600791906133bd16565b506040850151611d6d906009906133bd565b50845160408087015160208089015183519283529082015263ffffffff909216917f74becb12a5e8fd0e98077d02dfba8f647c9670c9df177e42c2418cf17a636f05910160405180910390a2505050505080611dc890614553565b905061197c565b60015473ffffffffffffffffffffffffffffffffffffffff163314611e50576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4d7573742062652070726f706f736564206f776e6572000000000000000000006044820152606401610677565b60008054337fffffffffffffffffffffffff00000000000000000000000000000000000000008083168217845560018054909116905560405173ffffffffffffffffffffffffffffffffffffffff90921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b828114611f0f576040517fab8b67c60000000000000000000000000000000000000000000000000000000081526004810184905260248101829052604401610677565b6000805473ffffffffffffffffffffffffffffffffffffffff16905b8481101561220a576000868683818110611f4757611f47614524565b9050602002016020810190611f5c9190613fc7565b63ffffffff81166000908152600b6020526040902080549192509073ffffffffffffffffffffffffffffffffffffffff16611fcb576040517fadd9ae1e00000000000000000000000000000000000000000000000000000000815263ffffffff83166004820152602401610677565b6000868685818110611fdf57611fdf614524565b9050602002810190611ff191906145fb565b611ffa90614639565b805190915073ffffffffffffffffffffffffffffffffffffffff1661204b576040517feeacd93900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805173ffffffffffffffffffffffffffffffffffffffff16331480159061208857503373ffffffffffffffffffffffffffffffffffffffff861614155b156120c1576040517f9473075d000000000000000000000000000000000000000000000000000000008152336004820152602401610677565b8051825473ffffffffffffffffffffffffffffffffffffffff908116911614158061213d57506020808201516040516120fa9201613cb9565b60405160208183030381529060405280519060200120826001016040516020016121249190614a7c565b6040516020818303038152906040528051906020012014155b156121f657805182547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9091161782556020810151600183019061219790826146f1565b50806000015173ffffffffffffffffffffffffffffffffffffffff168363ffffffff167f86f41145bde5dd7f523305452e4aad3685508c181432ec733d5f345009358a2883602001516040516121ed9190613cb9565b60405180910390a35b5050508061220390614553565b9050611f2b565b505050505050565b61221a61297f565b63ffffffff8089166000908152600d602052604081205464010000000090049091169081900361227e576040517f2b62be9b00000000000000000000000000000000000000000000000000000000815263ffffffff8a166004820152602401610677565b6122d3888888886040518060a001604052808f63ffffffff168152602001876122a690614501565b97508763ffffffff1681526020018a1515815260200189151581526020018863ffffffff16815250612a02565b505050505050505050565b61230e6040805160a081018252606080825260208201529081016000815260200160008152600060209091015290565b60008281526002602052604090819020815160a08101909252805482908290612336906145a8565b80601f0160208091040260200160405190810160405280929190818152602001828054612362906145a8565b80156123af5780601f10612384576101008083540402835291602001916123af565b820191906000526020600020905b81548152906001019060200180831161239257829003601f168201915b505050505081526020016001820180546123c8906145a8565b80601f01602080910402602001604051908101604052809291908181526020018280546123f4906145a8565b80156124415780601f1061241657610100808354040283529160200191612441565b820191906000526020600020905b81548152906001019060200180831161242457829003601f168201915b5050509183525050600282015460209091019060ff16600381111561246857612468614292565b600381111561247957612479614292565b81526020016002820160019054906101000a900460ff1660018111156124a1576124a1614292565b60018111156124b2576124b2614292565b81526002919091015462010000900473ffffffffffffffffffffffffffffffffffffffff1660209091015292915050565b606060006124f160036133b0565b905060006124ff60056130b2565b825161250b9190614b25565b67ffffffffffffffff81111561252357612523613a68565b60405190808252806020026020018201604052801561258457816020015b6125716040805160a081018252606080825260208201529081016000815260200160008152600060209091015290565b8152602001906001900390816125415790505b5090506000805b83518110156127d85760008482815181106125a8576125a8614524565b602002602001015190506125c681600561296490919063ffffffff16565b6127c75760008181526002602052604090819020815160a081019092528054829082906125f2906145a8565b80601f016020809104026020016040519081016040528092919081815260200182805461261e906145a8565b801561266b5780601f106126405761010080835404028352916020019161266b565b820191906000526020600020905b81548152906001019060200180831161264e57829003601f168201915b50505050508152602001600182018054612684906145a8565b80601f01602080910402602001604051908101604052809291908181526020018280546126b0906145a8565b80156126fd5780601f106126d2576101008083540402835291602001916126fd565b820191906000526020600020905b8154815290600101906020018083116126e057829003601f168201915b5050509183525050600282015460209091019060ff16600381111561272457612724614292565b600381111561273557612735614292565b81526020016002820160019054906101000a900460ff16600181111561275d5761275d614292565b600181111561276e5761276e614292565b81526002919091015462010000900473ffffffffffffffffffffffffffffffffffffffff1660209091015284518590859081106127ad576127ad614524565b602002602001018190525082806127c390614553565b9350505b506127d181614553565b905061258b565b50909392505050565b60608060006127f060096133b0565b9050805167ffffffffffffffff81111561280c5761280c613a68565b60405190808252806020026020018201604052801561287b57816020015b60408051608081018252600080825260208083018290529282015260608082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90920191018161282a5790505b509250805167ffffffffffffffff81111561289857612898613a68565b6040519080825280602002602001820160405280156128c1578160200160208202803683370190505b50915060005b815181101561294a576128f28282815181106128e5576128e5614524565b6020026020010151611053565b85838151811061290457612904614524565b6020026020010185848151811061291d5761291d614524565b602002602001018263ffffffff1663ffffffff1681525082905250508061294390614553565b90506128c7565b50509091565b61295861297f565b6129618161365d565b50565b600081815260018301602052604081205415155b9392505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314612a00576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4f6e6c792063616c6c61626c65206279206f776e6572000000000000000000006044820152606401610677565b565b805163ffffffff9081166000908152600d602090815260408083208286015185168452600101909152902060808301519091161580612a56575060808201518590612a4e906001614b38565b63ffffffff16115b15612aa25760808201516040517fd5f5269100000000000000000000000000000000000000000000000000000000815263ffffffff909116600482015260248101869052604401610677565b6001826020015163ffffffff161115612b4e57815163ffffffff166000908152600d602090815260408220908401516001918201918391612ae3919061458b565b63ffffffff1663ffffffff168152602001908152602001600020905060005b612b0b826130b2565b811015612b4b57612b3a846000015163ffffffff16600c60006105f985876000016130bc90919063ffffffff16565b50612b4481614553565b9050612b02565b50505b60005b85811015612c3857612b7e878783818110612b6e57612b6e614524565b85926020909102013590506133bd565b612bdf578251878783818110612b9657612b96614524565b6040517f636e405700000000000000000000000000000000000000000000000000000000815263ffffffff90941660048501526020029190910135602483015250604401610677565b8251612c279063ffffffff16600c60008a8a86818110612c0157612c01614524565b9050602002013581526020019081526020016000206004016133bd90919063ffffffff16565b50612c3181614553565b9050612b51565b5060005b83811015612f245736858583818110612c5757612c57614524565b9050602002810190612c6991906145fb565b9050612c7760038235612964565b612cb0576040517fe181733f00000000000000000000000000000000000000000000000000000000815281356004820152602401610677565b612cbc60058235612964565b15612cf6576040517ff7d7a29400000000000000000000000000000000000000000000000000000000815281356004820152602401610677565b8035600090815260038401602052604081208054612d13906145a8565b90501115612d5f5783516040517f3927d08000000000000000000000000000000000000000000000000000000000815263ffffffff909116600482015281356024820152604401610677565b60005b87811015612e7157612e068235600c60008c8c86818110612d8557612d85614524565b9050602002013581526020019081526020016000206003016000600c60008e8e88818110612db557612db5614524565b90506020020135815260200190815260200160002060000160049054906101000a900463ffffffff1663ffffffff1663ffffffff16815260200190815260200160002061296490919063ffffffff16565b612e6157888882818110612e1c57612e1c614524565b6040517fa7e792500000000000000000000000000000000000000000000000000000000081526020909102929092013560048301525082356024820152604401610677565b612e6a81614553565b9050612d62565b5060028301805460018101825560009182526020918290208335910155612e9a90820182614b55565b82356000908152600386016020526040902091612eb8919083614bba565b508351602080860151612f1392918435908c908c90612ed990880188614b55565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061375292505050565b50612f1d81614553565b9050612c3c565b50604080830151835163ffffffff9081166000908152600d602090815284822080549415156c01000000000000000000000000027fffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff90951694909417909355606086015186518316825284822080549115156d0100000000000000000000000000027fffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff9092169190911790556080860151865183168252848220805491841668010000000000000000027fffffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffff909216919091179055918501805186518316845292849020805493909216640100000000027fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff9093169290921790558351905191517ff264aae70bf6a9d90e68e0f9b393f4e7fbea67b063b0f336e0b36c1581703651926130a2929163ffffffff92831681529116602082015260400190565b60405180910390a1505050505050565b6000610476825490565b60006129788383613833565b6000612978838361385d565b6040805160e0810182526000808252602080830182905282840182905260608084018390526080840183905260a0840181905260c084015263ffffffff8581168352600d825284832080546401000000009004909116808452600190910182528483206002810180548751818602810186019098528088529596929591949390919083018282801561318557602002820191906000526020600020905b815481526020019060010190808311613171575b505050505090506000815167ffffffffffffffff8111156131a8576131a8613a68565b6040519080825280602002602001820160405280156131ee57816020015b6040805180820190915260008152606060208201528152602001906001900390816131c65790505b50905060005b815181101561330f57604051806040016040528084838151811061321a5761321a614524565b6020026020010151815260200185600301600086858151811061323f5761323f614524565b602002602001015181526020019081526020016000208054613260906145a8565b80601f016020809104026020016040519081016040528092919081815260200182805461328c906145a8565b80156132d95780601f106132ae576101008083540402835291602001916132d9565b820191906000526020600020905b8154815290600101906020018083116132bc57829003601f168201915b50505050508152508282815181106132f3576132f3614524565b60200260200101819052508061330890614553565b90506131f4565b506040805160e08101825263ffffffff8089166000818152600d60208181528683205480861687528b8616828801526801000000000000000081049095169686019690965260ff6c010000000000000000000000008504811615156060870152929091529093526d010000000000000000000000000090049091161515608082015260a0810161339e856133b0565b81526020019190915295945050505050565b6060600061297883613950565b600061297883836139ac565b608081015173ffffffffffffffffffffffffffffffffffffffff161561351757608081015173ffffffffffffffffffffffffffffffffffffffff163b15806134c2575060808101516040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527f78bea72100000000000000000000000000000000000000000000000000000000600482015273ffffffffffffffffffffffffffffffffffffffff909116906301ffc9a790602401602060405180830381865afa15801561349c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134c09190614cd5565b155b156135175760808101516040517fabb5e3fd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602401610677565b60008281526002602052604090208151829190819061353690826146f1565b506020820151600182019061354b90826146f1565b5060408201516002820180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600183600381111561358d5761358d614292565b021790555060608201516002820180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101008360018111156135d4576135d4614292565b0217905550608091909101516002909101805473ffffffffffffffffffffffffffffffffffffffff90921662010000027fffffffffffffffffffff0000000000000000000000000000000000000000ffff90921691909117905560405182907f04f0a9bcf3f3a3b42a4d7ca081119755f82ebe43e0d30c8f7292c4fe0dc4a2ae90600090a25050565b3373ffffffffffffffffffffffffffffffffffffffff8216036136dc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c660000000000000000006044820152606401610677565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b6000848152600260208190526040909120015462010000900473ffffffffffffffffffffffffffffffffffffffff161561220a57600084815260026020819052604091829020015490517ffba64a7c0000000000000000000000000000000000000000000000000000000081526201000090910473ffffffffffffffffffffffffffffffffffffffff169063fba64a7c906137f9908690869086908b908d90600401614cf2565b600060405180830381600087803b15801561381357600080fd5b505af1158015613827573d6000803e3d6000fd5b50505050505050505050565b600082600001828154811061384a5761384a614524565b9060005260206000200154905092915050565b60008181526001830160205260408120548015613946576000613881600183614b25565b855490915060009061389590600190614b25565b90508181146138fa5760008660000182815481106138b5576138b5614524565b90600052602060002001549050808760000184815481106138d8576138d8614524565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061390b5761390b614d74565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610476565b6000915050610476565b6060816000018054806020026020016040519081016040528092919081815260200182805480156139a057602002820191906000526020600020905b81548152602001906001019080831161398c575b50505050509050919050565b60008181526001830160205260408120546139f357508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610476565b506000610476565b508054613a07906145a8565b6000825580601f10613a17575050565b601f0160209004906000526020600020908101906129619190613a4f565b508054600082559060005260206000209081019061296191905b5b80821115613a645760008155600101613a50565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516080810167ffffffffffffffff81118282101715613aba57613aba613a68565b60405290565b60405160a0810167ffffffffffffffff81118282101715613aba57613aba613a68565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715613b2a57613b2a613a68565b604052919050565b600067ffffffffffffffff821115613b4c57613b4c613a68565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b600082601f830112613b8957600080fd5b8135613b9c613b9782613b32565b613ae3565b818152846020838601011115613bb157600080fd5b816020850160208301376000918101602001919091529392505050565b60008060408385031215613be157600080fd5b823567ffffffffffffffff80821115613bf957600080fd5b613c0586838701613b78565b93506020850135915080821115613c1b57600080fd5b50613c2885828601613b78565b9150509250929050565b600060208284031215613c4457600080fd5b5035919050565b60005b83811015613c66578181015183820152602001613c4e565b50506000910152565b60008151808452613c87816020860160208601613c4b565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006129786020830184613c6f565b60008083601f840112613cde57600080fd5b50813567ffffffffffffffff811115613cf657600080fd5b6020830191508360208260051b850101111561104c57600080fd5b801515811461296157600080fd5b803563ffffffff81168114613d3357600080fd5b919050565b600080600080600080600060a0888a031215613d5357600080fd5b873567ffffffffffffffff80821115613d6b57600080fd5b613d778b838c01613ccc565b909950975060208a0135915080821115613d9057600080fd5b50613d9d8a828b01613ccc565b9096509450506040880135613db181613d11565b92506060880135613dc181613d11565b9150613dcf60808901613d1f565b905092959891949750929550565b60008060208385031215613df057600080fd5b823567ffffffffffffffff811115613e0757600080fd5b613e1385828601613ccc565b90969095509350505050565b600081518084526020808501945080840160005b83811015613e4f57815187529582019590820190600101613e33565b509495945050505050565b600063ffffffff80835116845260208181850151168186015260408281860151168187015260608501511515606087015260808501511515608087015260a0850151925060e060a0870152613eb260e0870184613e1f565b925060c085015186840360c08801528381518086528486019150848160051b870101858401935060005b82811015613f39578782037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0018452845180518352870151878301879052613f2687840182613c6f565b9588019594880194925050600101613edc565b509998505050505050505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015613fba577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0888603018452613fa8858351613e5a565b94509285019290850190600101613f6e565b5092979650505050505050565b600060208284031215613fd957600080fd5b61297882613d1f565b73ffffffffffffffffffffffffffffffffffffffff815116825260006020820151604060208501526140176040850182613c6f565b949350505050565b6020815260006129786020830184613fe2565b6020815260006129786020830184613e5a565b6000806040838503121561405857600080fd5b61406183613d1f565b946020939093013593505050565b6040815260006140826040830185613c6f565b82810360208401526140948185613c6f565b95945050505050565b63ffffffff8151168252602081015160208301526040810151604083015260006060820151608060608501526140176080850182613e1f565b6040815260006140e9604083018561409d565b905063ffffffff831660208301529392505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015613fba577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc088860301845261415f858351613fe2565b94509285019290850190600101614125565b6000806000806040858703121561418757600080fd5b843567ffffffffffffffff8082111561419f57600080fd5b6141ab88838901613ccc565b909650945060208701359150808211156141c457600080fd5b506141d187828801613ccc565b95989497509550505050565b60008060008060008060008060c0898b0312156141f957600080fd5b61420289613d1f565b9750602089013567ffffffffffffffff8082111561421f57600080fd5b61422b8c838d01613ccc565b909950975060408b013591508082111561424457600080fd5b506142518b828c01613ccc565b909650945050606089013561426581613d11565b9250608089013561427581613d11565b915061428360a08a01613d1f565b90509295985092959890939650565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6000815160a084526142d660a0850182613c6f565b9050602083015184820360208601526142ef8282613c6f565b91505060408301516004811061430757614307614292565b604085015260608301516002811061432157614321614292565b606085015260809283015173ffffffffffffffffffffffffffffffffffffffff1692909301919091525090565b60208152600061297860208301846142c1565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015613fba577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08886030184526143c28583516142c1565b94509285019290850190600101614388565b6000604082016040835280855180835260608501915060608160051b8601019250602080880160005b83811015614449577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa088870301855261443786835161409d565b955093820193908201906001016143fd565b50508584038187015286518085528782019482019350915060005b8281101561448657845163ffffffff1684529381019392810192600101614464565b5091979650505050505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114613d3357600080fd5b6000602082840312156144c957600080fd5b61297882614493565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600063ffffffff80831681810361451a5761451a6144d2565b6001019392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614584576145846144d2565b5060010190565b63ffffffff82811682821603908082111561086d5761086d6144d2565b600181811c908216806145bc57607f821691505b6020821081036145f5577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc183360301811261462f57600080fd5b9190910192915050565b60006040823603121561464b57600080fd5b6040516040810167ffffffffffffffff828210818311171561466f5761466f613a68565b8160405261467c85614493565b8352602085013591508082111561469257600080fd5b5061469f36828601613b78565b60208301525092915050565b601f82111561070a57600081815260208120601f850160051c810160208610156146d25750805b601f850160051c820191505b8181101561220a578281556001016146de565b815167ffffffffffffffff81111561470b5761470b613a68565b61471f8161471984546145a8565b846146ab565b602080601f831160018114614772576000841561473c5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b17855561220a565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b828110156147bf578886015182559484019460019091019084016147a0565b50858210156147fb57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b60006020828403121561481d57600080fd5b815167ffffffffffffffff81111561483457600080fd5b8201601f8101841361484557600080fd5b8051614853613b9782613b32565b81815285602083850101111561486857600080fd5b614094826020830160208601613c4b565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8183360301811261462f57600080fd5b6000608082360312156148bf57600080fd5b6148c7613a97565b6148d083613d1f565b81526020808401358183015260408401356040830152606084013567ffffffffffffffff8082111561490157600080fd5b9085019036601f83011261491457600080fd5b81358181111561492657614926613a68565b8060051b9150614937848301613ae3565b818152918301840191848101903684111561495157600080fd5b938501935b8385101561496f57843582529385019390850190614956565b606087015250939695505050505050565b6020815260006129786020830184613e1f565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6183360301811261462f57600080fd5b803560028110613d3357600080fd5b600060a082360312156149e857600080fd5b6149f0613ac0565b823567ffffffffffffffff80821115614a0857600080fd5b614a1436838701613b78565b83526020850135915080821115614a2a57600080fd5b50614a3736828601613b78565b602083015250604083013560048110614a4f57600080fd5b6040820152614a60606084016149c7565b6060820152614a7160808401614493565b608082015292915050565b6000602080835260008454614a90816145a8565b80848701526040600180841660008114614ab15760018114614ae957614b17565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008516838a01528284151560051b8a01019550614b17565b896000528660002060005b85811015614b0f5781548b8201860152908301908801614af4565b8a0184019650505b509398975050505050505050565b81810381811115610476576104766144d2565b63ffffffff81811683821601908082111561086d5761086d6144d2565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614b8a57600080fd5b83018035915067ffffffffffffffff821115614ba557600080fd5b60200191503681900382131561104c57600080fd5b67ffffffffffffffff831115614bd257614bd2613a68565b614be683614be083546145a8565b836146ab565b6000601f841160018114614c385760008515614c025750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355614cce565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b82811015614c875786850135825560209485019460019092019101614c67565b5086821015614cc2577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b600060208284031215614ce757600080fd5b815161297881613d11565b6080815284608082015260007f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff861115614d2b57600080fd5b8560051b808860a0850137820182810360a09081016020850152614d5190820187613c6f565b91505063ffffffff80851660408401528084166060840152509695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea164736f6c6343000813000a", + ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"AccessForbidden\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hashedCapabilityId\",\"type\":\"bytes32\"}],\"name\":\"CapabilityAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hashedCapabilityId\",\"type\":\"bytes32\"}],\"name\":\"CapabilityDoesNotExist\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hashedCapabilityId\",\"type\":\"bytes32\"}],\"name\":\"CapabilityIsDeprecated\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"}],\"name\":\"DONDoesNotExist\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"}],\"name\":\"DuplicateDONCapability\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"nodeP2PId\",\"type\":\"bytes32\"}],\"name\":\"DuplicateDONNode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"proposedConfigurationContract\",\"type\":\"address\"}],\"name\":\"InvalidCapabilityConfigurationContractInterface\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"f\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"nodeCount\",\"type\":\"uint256\"}],\"name\":\"InvalidFaultTolerance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"hashedCapabilityIds\",\"type\":\"bytes32[]\"}],\"name\":\"InvalidNodeCapabilities\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidNodeOperatorAdmin\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"}],\"name\":\"InvalidNodeP2PId\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidNodeSigner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"lengthOne\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lengthTwo\",\"type\":\"uint256\"}],\"name\":\"LengthMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"nodeP2PId\",\"type\":\"bytes32\"}],\"name\":\"NodeAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"nodeP2PId\",\"type\":\"bytes32\"}],\"name\":\"NodeDoesNotExist\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"nodeP2PId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"}],\"name\":\"NodeDoesNotSupportCapability\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"}],\"name\":\"NodeOperatorDoesNotExist\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"nodeP2PId\",\"type\":\"bytes32\"}],\"name\":\"NodePartOfDON\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"hashedCapabilityId\",\"type\":\"bytes32\"}],\"name\":\"CapabilityConfigured\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"hashedCapabilityId\",\"type\":\"bytes32\"}],\"name\":\"CapabilityDeprecated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"configCount\",\"type\":\"uint32\"}],\"name\":\"ConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"signer\",\"type\":\"bytes32\"}],\"name\":\"NodeAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"NodeOperatorAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"}],\"name\":\"NodeOperatorRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"NodeOperatorUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"}],\"name\":\"NodeRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"signer\",\"type\":\"bytes32\"}],\"name\":\"NodeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"labelledName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"enumCapabilityRegistry.CapabilityType\",\"name\":\"capabilityType\",\"type\":\"uint8\"},{\"internalType\":\"enumCapabilityRegistry.CapabilityResponseType\",\"name\":\"responseType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"configurationContract\",\"type\":\"address\"}],\"internalType\":\"structCapabilityRegistry.Capability[]\",\"name\":\"capabilities\",\"type\":\"tuple[]\"}],\"name\":\"addCapabilities\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"nodes\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"internalType\":\"structCapabilityRegistry.CapabilityConfiguration[]\",\"name\":\"capabilityConfigurations\",\"type\":\"tuple[]\"},{\"internalType\":\"bool\",\"name\":\"isPublic\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"acceptsWorkflows\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"f\",\"type\":\"uint32\"}],\"name\":\"addDON\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"internalType\":\"structCapabilityRegistry.NodeOperator[]\",\"name\":\"nodeOperators\",\"type\":\"tuple[]\"}],\"name\":\"addNodeOperators\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"signer\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"hashedCapabilityIds\",\"type\":\"bytes32[]\"}],\"internalType\":\"structCapabilityRegistry.NodeInfo[]\",\"name\":\"nodes\",\"type\":\"tuple[]\"}],\"name\":\"addNodes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"hashedCapabilityIds\",\"type\":\"bytes32[]\"}],\"name\":\"deprecateCapabilities\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCapabilities\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"labelledName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"enumCapabilityRegistry.CapabilityType\",\"name\":\"capabilityType\",\"type\":\"uint8\"},{\"internalType\":\"enumCapabilityRegistry.CapabilityResponseType\",\"name\":\"responseType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"configurationContract\",\"type\":\"address\"}],\"internalType\":\"structCapabilityRegistry.Capability[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hashedId\",\"type\":\"bytes32\"}],\"name\":\"getCapability\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"labelledName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"enumCapabilityRegistry.CapabilityType\",\"name\":\"capabilityType\",\"type\":\"uint8\"},{\"internalType\":\"enumCapabilityRegistry.CapabilityResponseType\",\"name\":\"responseType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"configurationContract\",\"type\":\"address\"}],\"internalType\":\"structCapabilityRegistry.Capability\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"}],\"name\":\"getCapabilityConfigs\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"}],\"name\":\"getDON\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"id\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"configCount\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"f\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"isPublic\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"acceptsWorkflows\",\"type\":\"bool\"},{\"internalType\":\"bytes32[]\",\"name\":\"nodeP2PIds\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"internalType\":\"structCapabilityRegistry.CapabilityConfiguration[]\",\"name\":\"capabilityConfigurations\",\"type\":\"tuple[]\"}],\"internalType\":\"structCapabilityRegistry.DONInfo\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDONs\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"id\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"configCount\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"f\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"isPublic\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"acceptsWorkflows\",\"type\":\"bool\"},{\"internalType\":\"bytes32[]\",\"name\":\"nodeP2PIds\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"internalType\":\"structCapabilityRegistry.CapabilityConfiguration[]\",\"name\":\"capabilityConfigurations\",\"type\":\"tuple[]\"}],\"internalType\":\"structCapabilityRegistry.DONInfo[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"labelledName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"}],\"name\":\"getHashedCapabilityId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"}],\"name\":\"getNode\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"signer\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"hashedCapabilityIds\",\"type\":\"bytes32[]\"}],\"internalType\":\"structCapabilityRegistry.NodeInfo\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"configCount\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"}],\"name\":\"getNodeOperator\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"internalType\":\"structCapabilityRegistry.NodeOperator\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNodeOperators\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"internalType\":\"structCapabilityRegistry.NodeOperator[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNodes\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"signer\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"hashedCapabilityIds\",\"type\":\"bytes32[]\"}],\"internalType\":\"structCapabilityRegistry.NodeInfo[]\",\"name\":\"nodeInfo\",\"type\":\"tuple[]\"},{\"internalType\":\"uint32[]\",\"name\":\"configCounts\",\"type\":\"uint32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hashedCapabilityId\",\"type\":\"bytes32\"}],\"name\":\"isCapabilityDeprecated\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32[]\",\"name\":\"donIds\",\"type\":\"uint32[]\"}],\"name\":\"removeDONs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32[]\",\"name\":\"nodeOperatorIds\",\"type\":\"uint32[]\"}],\"name\":\"removeNodeOperators\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"removedNodeP2PIds\",\"type\":\"bytes32[]\"}],\"name\":\"removeNodes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"typeAndVersion\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32[]\",\"name\":\"nodes\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"internalType\":\"structCapabilityRegistry.CapabilityConfiguration[]\",\"name\":\"capabilityConfigurations\",\"type\":\"tuple[]\"},{\"internalType\":\"bool\",\"name\":\"isPublic\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"acceptsWorkflows\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"f\",\"type\":\"uint32\"}],\"name\":\"updateDON\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32[]\",\"name\":\"nodeOperatorIds\",\"type\":\"uint32[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"internalType\":\"structCapabilityRegistry.NodeOperator[]\",\"name\":\"nodeOperators\",\"type\":\"tuple[]\"}],\"name\":\"updateNodeOperators\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"signer\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"hashedCapabilityIds\",\"type\":\"bytes32[]\"}],\"internalType\":\"structCapabilityRegistry.NodeInfo[]\",\"name\":\"nodes\",\"type\":\"tuple[]\"}],\"name\":\"updateNodes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", + Bin: "0x6080604052600e80546001600160401b0319166401000000011790553480156200002857600080fd5b503380600081620000805760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420736574206f776e657220746f207a65726f000000000000000060448201526064015b60405180910390fd5b600080546001600160a01b0319166001600160a01b0384811691909117909155811615620000b357620000b381620000bc565b50505062000167565b336001600160a01b03821603620001165760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640162000077565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b614e6f80620001776000396000f3fe608060405234801561001057600080fd5b50600436106101ae5760003560e01c80635d83d967116100ee57806386fa4246116100975780639cb7c5f4116100715780639cb7c5f4146103ea578063ddbe4f821461040a578063e29581aa14610420578063f2fde38b1461043657600080fd5b806386fa42461461039c5780638da5cb5b146103af57806395864d1f146103d757600080fd5b8063715f5295116100c8578063715f52951461036e57806373ac22b41461038157806379ba50971461039457600080fd5b80635d83d967146103335780635e65e3091461034657806366acaa331461035957600080fd5b806322bdbcbc1161015b5780632c01a1e8116101355780632c01a1e8146102cb578063398f3773146102de5780633f2a13c9146102f157806350c946fe1461031257600080fd5b806322bdbcbc146102785780632353740514610298578063275459f2146102b857600080fd5b8063193ec0061161018c578063193ec0061461023b5780631d05394c14610250578063214502431461026357600080fd5b80630fe5800a146101b357806312570011146101d9578063181f5a77146101fc575b600080fd5b6101c66101c1366004613c70565b610449565b6040519081526020015b60405180910390f35b6101ec6101e7366004613cd4565b61047d565b60405190151581526020016101d0565b604080518082018252601881527f4361706162696c697479526567697374727920312e302e300000000000000000602082015290516101d09190613d5b565b61024e610249366004613dda565b61048a565b005b61024e61025e366004613e7f565b610554565b61026b610710565b6040516101d09190613fe9565b61028b610286366004614069565b610875565b6040516101d091906140c1565b6102ab6102a6366004614069565b610962565b6040516101d091906140d4565b61024e6102c6366004613e7f565b6109a6565b61024e6102d9366004613e7f565b610a7d565b61024e6102ec366004613e7f565b610ca0565b6103046102ff3660046140e7565b610e68565b6040516101d0929190614111565b610325610320366004613cd4565b611054565b6040516101d0929190614178565b61024e610341366004613e7f565b6110f9565b61024e610354366004613e7f565b611247565b6103616116b9565b6040516101d091906141a0565b61024e61037c366004613e7f565b6118a4565b61024e61038f366004613e7f565b61195f565b61024e611e04565b61024e6103aa366004614213565b611f01565b60005460405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101d0565b61024e6103e536600461427f565b612247565b6103fd6103f8366004613cd4565b612313565b6040516101d091906143f0565b610412612518565b6040516101d0929190614403565b610428612883565b6040516101d0929190614493565b61024e610444366004614576565b6129f2565b6000828260405160200161045e929190614111565b6040516020818303038152906040528051906020012090505b92915050565b6000610477600583612a06565b610492612a21565b600e805460009164010000000090910463ffffffff169060046104b4836145c0565b82546101009290920a63ffffffff8181021990931691831602179091558181166000818152600d602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001684179055815160a081018352928352600190830152871515908201528515156060820152908416608082015290915061054a908990899089908990612aa4565b5050505050505050565b61055c612a21565b60005b8181101561070b57600083838381811061057b5761057b6145e3565b90506020020160208101906105909190614069565b63ffffffff8082166000908152600d60209081526040808320805464010000000090049094168084526001850190925282209394509192905b6105d282613154565b81101561062a576106198563ffffffff16600c60006105fa858761315e90919063ffffffff16565b815260200190815260200160002060040161316a90919063ffffffff16565b5061062381614612565b90506105c9565b508254640100000000900463ffffffff16600003610681576040517f2b62be9b00000000000000000000000000000000000000000000000000000000815263ffffffff851660048201526024015b60405180910390fd5b63ffffffff84166000818152600d6020908152604080832080547fffffffffffffffffffffffffffffffffffff00000000000000000000000000001690558051938452908301919091527ff264aae70bf6a9d90e68e0f9b393f4e7fbea67b063b0f336e0b36c1581703651910160405180910390a1505050508061070490614612565b905061055f565b505050565b600e54606090640100000000900463ffffffff16600061073160018361464a565b63ffffffff1667ffffffffffffffff81111561074f5761074f613b0a565b6040519080825280602002602001820160405280156107d657816020015b6040805160e081018252600080825260208083018290529282018190526060808301829052608083019190915260a0820181905260c082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90920191018161076d5790505b509050600060015b8363ffffffff168163ffffffff1610156108525763ffffffff8082166000908152600d602052604090205416156108425761081881613176565b83838151811061082a5761082a6145e3565b60200260200101819052508161083f90614612565b91505b61084b816145c0565b90506107de565b5061085e60018461464a565b63ffffffff16811461086e578082525b5092915050565b60408051808201909152600081526060602082015263ffffffff82166000908152600b60209081526040918290208251808401909352805473ffffffffffffffffffffffffffffffffffffffff16835260018101805491928401916108d990614667565b80601f016020809104026020016040519081016040528092919081815260200182805461090590614667565b80156109525780601f1061092757610100808354040283529160200191610952565b820191906000526020600020905b81548152906001019060200180831161093557829003601f168201915b5050505050815250509050919050565b6040805160e0810182526000808252602082018190529181018290526060808201839052608082019290925260a0810182905260c081019190915261047782613176565b6109ae612a21565b60005b63ffffffff811682111561070b57600083838363ffffffff168181106109d9576109d96145e3565b90506020020160208101906109ee9190614069565b63ffffffff81166000908152600b6020526040812080547fffffffffffffffffffffffff0000000000000000000000000000000000000000168155919250610a396001830182613a9d565b505060405163ffffffff8216907fa59268ca81d40429e65ccea5385b59cf2d3fc6519371dee92f8eb1dae5107a7a90600090a250610a76816145c0565b90506109b1565b6000805473ffffffffffffffffffffffffffffffffffffffff163314905b82811015610c9a576000848483818110610ab757610ab76145e3565b602090810292909201356000818152600c90935260409092206001810154929350919050610b14576040517fd82f6adb00000000000000000000000000000000000000000000000000000000815260048101839052602401610678565b6000610b2282600401613154565b1115610b5d576040517f34a4a3f600000000000000000000000000000000000000000000000000000000815260048101839052602401610678565b83158015610b975750805463ffffffff166000908152600b602052604090205473ffffffffffffffffffffffffffffffffffffffff163314155b15610bd0576040517f9473075d000000000000000000000000000000000000000000000000000000008152336004820152602401610678565b6001810154610be19060079061316a565b506002810154610bf39060099061316a565b506000828152600c6020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016815560018101829055600281018290559060048201818181610c488282613ad7565b5050505050507f5254e609a97bab37b7cc79fe128f85c097bd6015c6e1624ae0ba392eb975320582604051610c7f91815260200190565b60405180910390a1505080610c9390614612565b9050610a9b565b50505050565b610ca8612a21565b60005b8181101561070b576000838383818110610cc757610cc76145e3565b9050602002810190610cd991906146ba565b610ce2906146f8565b805190915073ffffffffffffffffffffffffffffffffffffffff16610d33576040517feeacd93900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600e54604080518082018252835173ffffffffffffffffffffffffffffffffffffffff908116825260208086015181840190815263ffffffff9095166000818152600b909252939020825181547fffffffffffffffffffffffff00000000000000000000000000000000000000001692169190911781559251919290916001820190610dbf90826147b0565b5050600e8054909150600090610dda9063ffffffff166145c0565b91906101000a81548163ffffffff021916908363ffffffff160217905550816000015173ffffffffffffffffffffffffffffffffffffffff168163ffffffff167f78e94ca80be2c30abc061b99e7eb8583b1254781734b1e3ce339abb57da2fe8e8460200151604051610e4d9190613d5b565b60405180910390a3505080610e6190614612565b9050610cab565b63ffffffff8083166000908152600d60209081526040808320805464010000000090049094168084526001909401825280832085845260030190915281208054606093849390929091610eba90614667565b80601f0160208091040260200160405190810160405280929190818152602001828054610ee690614667565b8015610f335780601f10610f0857610100808354040283529160200191610f33565b820191906000526020600020905b815481529060010190602001808311610f1657829003601f168201915b5050506000888152600260208190526040909120015492935060609262010000900473ffffffffffffffffffffffffffffffffffffffff16159150611046905057600086815260026020819052604091829020015490517f8318ed5d00000000000000000000000000000000000000000000000000000000815263ffffffff891660048201526201000090910473ffffffffffffffffffffffffffffffffffffffff1690638318ed5d90602401600060405180830381865afa158015610ffd573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261104391908101906148ca565b90505b9093509150505b9250929050565b6040805160808101825260008082526020820181905291810191909152606080820152604080516080810182526000848152600c6020908152838220805463ffffffff8082168652600183015484870152600283015486880152640100000000909104168352600301905291822060608201906110d090613452565b90526000938452600c602052604090932054929364010000000090930463ffffffff1692915050565b611101612a21565b60005b8181101561070b576000838383818110611120576111206145e3565b90506020020135905061113d816003612a0690919063ffffffff16565b611176576040517fe181733f00000000000000000000000000000000000000000000000000000000815260048101829052602401610678565b61118160058261345f565b6111ba576040517ff7d7a29400000000000000000000000000000000000000000000000000000000815260048101829052602401610678565b6000818152600260205260408120906111d38282613a9d565b6111e1600183016000613a9d565b5060020180547fffffffffffffffffffff0000000000000000000000000000000000000000000016905560405181907fdcea1b78b6ddc31592a94607d537543fcaafda6cc52d6d5cc7bbfca1422baf2190600090a25061124081614612565b9050611104565b6000805473ffffffffffffffffffffffffffffffffffffffff163314905b82811015610c9a576000848483818110611281576112816145e3565b90506020028101906112939190614938565b61129c9061496c565b805163ffffffff166000908152600b602090815260408083208151808301909252805473ffffffffffffffffffffffffffffffffffffffff1682526001810180549596509394919390928401916112f290614667565b80601f016020809104026020016040519081016040528092919081815260200182805461131e90614667565b801561136b5780601f106113405761010080835404028352916020019161136b565b820191906000526020600020905b81548152906001019060200180831161134e57829003601f168201915b50505050508152505090508315801561139b5750805173ffffffffffffffffffffffffffffffffffffffff163314155b156113d4576040517f9473075d000000000000000000000000000000000000000000000000000000008152336004820152602401610678565b6040808301516000908152600c6020522060018101546114285782604001516040517fd82f6adb00000000000000000000000000000000000000000000000000000000815260040161067891815260200190565b60208301511580611458575082602001518160010154141580156114585750602083015161145890600790612a06565b1561148f576040517f8377314600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606083015180516000036114d157806040517f3748d4c60000000000000000000000000000000000000000000000000000000081526004016106789190614a3f565b8154640100000000900463ffffffff168260046114ed836145c0565b82546101009290920a63ffffffff8181021990931691831602179091558354640100000000900416905060005b82518110156115e557611550838281518110611538576115386145e3565b60200260200101516003612a0690919063ffffffff16565b61158857826040517f3748d4c60000000000000000000000000000000000000000000000000000000081526004016106789190614a3f565b6115d483828151811061159d5761159d6145e3565b60200260200101518560030160008563ffffffff1663ffffffff16815260200190815260200160002061345f90919063ffffffff16565b506115de81614612565b905061151a565b50845183547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff909116178355604085015160028401556001830154602086015181146116575761163c60078261316a565b506020860151600185018190556116559060079061345f565b505b85516040808801516020808a015183519283529082015263ffffffff909216917f4b5b465e22eea0c3d40c30e936643245b80d19b2dcf75788c0699fe8d8db645b910160405180910390a2505050505050806116b290614612565b9050611265565b600e5460609063ffffffff1660006116d260018361464a565b63ffffffff1667ffffffffffffffff8111156116f0576116f0613b0a565b60405190808252806020026020018201604052801561173657816020015b60408051808201909152600081526060602082015281526020019060019003908161170e5790505b509050600060015b8363ffffffff168163ffffffff16101561188e5763ffffffff81166000908152600b602052604090205473ffffffffffffffffffffffffffffffffffffffff161561187e5763ffffffff81166000908152600b60209081526040918290208251808401909352805473ffffffffffffffffffffffffffffffffffffffff16835260018101805491928401916117d290614667565b80601f01602080910402602001604051908101604052809291908181526020018280546117fe90614667565b801561184b5780601f106118205761010080835404028352916020019161184b565b820191906000526020600020905b81548152906001019060200180831161182e57829003601f168201915b505050505081525050838381518110611866576118666145e3565b60200260200101819052508161187b90614612565b91505b611887816145c0565b905061173e565b50600e5461085e9060019063ffffffff1661464a565b6118ac612a21565b60005b8181101561070b5760008383838181106118cb576118cb6145e3565b90506020028101906118dd9190614a52565b6118e690614a95565b905060006118fc82600001518360200151610449565b905061190960038261345f565b611942576040517febf5255100000000000000000000000000000000000000000000000000000000815260048101829052602401610678565b61194c818361346b565b50508061195890614612565b90506118af565b6000805473ffffffffffffffffffffffffffffffffffffffff163314905b82811015610c9a576000848483818110611999576119996145e3565b90506020028101906119ab9190614938565b6119b49061496c565b805163ffffffff166000908152600b602090815260408083208151808301909252805473ffffffffffffffffffffffffffffffffffffffff168252600181018054959650939491939092840191611a0a90614667565b80601f0160208091040260200160405190810160405280929190818152602001828054611a3690614667565b8015611a835780601f10611a5857610100808354040283529160200191611a83565b820191906000526020600020905b815481529060010190602001808311611a6657829003601f168201915b50505091909252505081519192505073ffffffffffffffffffffffffffffffffffffffff16611ae95781516040517fadd9ae1e00000000000000000000000000000000000000000000000000000000815263ffffffff9091166004820152602401610678565b83158015611b0e5750805173ffffffffffffffffffffffffffffffffffffffff163314155b15611b47576040517f9473075d000000000000000000000000000000000000000000000000000000008152336004820152602401610678565b6040808301516000908152600c60205220600181015415611b9c5782604001516040517f5461848300000000000000000000000000000000000000000000000000000000815260040161067891815260200190565b6040830151611bdf5782604001516040517f64e2ee9200000000000000000000000000000000000000000000000000000000815260040161067891815260200190565b60208301511580611bfc57506020830151611bfc90600790612a06565b15611c33576040517f8377314600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60608301518051600003611c7557806040517f3748d4c60000000000000000000000000000000000000000000000000000000081526004016106789190614a3f565b81548290600490611c9390640100000000900463ffffffff166145c0565b82546101009290920a63ffffffff818102199093169183160217909155825464010000000090041660005b8251811015611d3a57611cdc838281518110611538576115386145e3565b611d1457826040517f3748d4c60000000000000000000000000000000000000000000000000000000081526004016106789190614a3f565b611d2983828151811061159d5761159d6145e3565b50611d3381614612565b9050611cbe565b50845183547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff91821617845560408601516002850155602086015160018501819055611d90916007919061345f16565b506040850151611da29060099061345f565b50845160408087015160208089015183519283529082015263ffffffff909216917f74becb12a5e8fd0e98077d02dfba8f647c9670c9df177e42c2418cf17a636f05910160405180910390a2505050505080611dfd90614612565b905061197d565b60015473ffffffffffffffffffffffffffffffffffffffff163314611e85576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4d7573742062652070726f706f736564206f776e6572000000000000000000006044820152606401610678565b60008054337fffffffffffffffffffffffff00000000000000000000000000000000000000008083168217845560018054909116905560405173ffffffffffffffffffffffffffffffffffffffff90921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b828114611f44576040517fab8b67c60000000000000000000000000000000000000000000000000000000081526004810184905260248101829052604401610678565b6000805473ffffffffffffffffffffffffffffffffffffffff16905b8481101561223f576000868683818110611f7c57611f7c6145e3565b9050602002016020810190611f919190614069565b63ffffffff81166000908152600b6020526040902080549192509073ffffffffffffffffffffffffffffffffffffffff16612000576040517fadd9ae1e00000000000000000000000000000000000000000000000000000000815263ffffffff83166004820152602401610678565b6000868685818110612014576120146145e3565b905060200281019061202691906146ba565b61202f906146f8565b805190915073ffffffffffffffffffffffffffffffffffffffff16612080576040517feeacd93900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805173ffffffffffffffffffffffffffffffffffffffff1633148015906120bd57503373ffffffffffffffffffffffffffffffffffffffff861614155b156120f6576040517f9473075d000000000000000000000000000000000000000000000000000000008152336004820152602401610678565b8051825473ffffffffffffffffffffffffffffffffffffffff9081169116141580612172575060208082015160405161212f9201613d5b565b60405160208183030381529060405280519060200120826001016040516020016121599190614b3b565b6040516020818303038152906040528051906020012014155b1561222b57805182547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909116178255602081015160018301906121cc90826147b0565b50806000015173ffffffffffffffffffffffffffffffffffffffff168363ffffffff167f86f41145bde5dd7f523305452e4aad3685508c181432ec733d5f345009358a2883602001516040516122229190613d5b565b60405180910390a35b5050508061223890614612565b9050611f60565b505050505050565b61224f612a21565b63ffffffff8089166000908152600d60205260408120546401000000009004909116908190036122b3576040517f2b62be9b00000000000000000000000000000000000000000000000000000000815263ffffffff8a166004820152602401610678565b612308888888886040518060a001604052808f63ffffffff168152602001876122db906145c0565b97508763ffffffff1681526020018a1515815260200189151581526020018863ffffffff16815250612aa4565b505050505050505050565b6123436040805160a081018252606080825260208201529081016000815260200160008152600060209091015290565b60008281526002602052604090819020815160a0810190925280548290829061236b90614667565b80601f016020809104026020016040519081016040528092919081815260200182805461239790614667565b80156123e45780601f106123b9576101008083540402835291602001916123e4565b820191906000526020600020905b8154815290600101906020018083116123c757829003601f168201915b505050505081526020016001820180546123fd90614667565b80601f016020809104026020016040519081016040528092919081815260200182805461242990614667565b80156124765780601f1061244b57610100808354040283529160200191612476565b820191906000526020600020905b81548152906001019060200180831161245957829003601f168201915b5050509183525050600282015460209091019060ff16600381111561249d5761249d614334565b60038111156124ae576124ae614334565b81526020016002820160019054906101000a900460ff1660018111156124d6576124d6614334565b60018111156124e7576124e7614334565b81526002919091015462010000900473ffffffffffffffffffffffffffffffffffffffff1660209091015292915050565b60608060006125276003613452565b905060006125356005613154565b82516125419190614be4565b905060008167ffffffffffffffff81111561255e5761255e613b0a565b6040519080825280602002602001820160405280156125bf57816020015b6125ac6040805160a081018252606080825260208201529081016000815260200160008152600060209091015290565b81526020019060019003908161257c5790505b50905060008267ffffffffffffffff8111156125dd576125dd613b0a565b604051908082528060200260200182016040528015612606578160200160208202803683370190505b5090506000805b855181101561287557600086828151811061262a5761262a6145e3565b60200260200101519050612648816005612a0690919063ffffffff16565b6128645760008181526002602052604090819020815160a0810190925280548290829061267490614667565b80601f01602080910402602001604051908101604052809291908181526020018280546126a090614667565b80156126ed5780601f106126c2576101008083540402835291602001916126ed565b820191906000526020600020905b8154815290600101906020018083116126d057829003601f168201915b5050505050815260200160018201805461270690614667565b80601f016020809104026020016040519081016040528092919081815260200182805461273290614667565b801561277f5780601f106127545761010080835404028352916020019161277f565b820191906000526020600020905b81548152906001019060200180831161276257829003601f168201915b5050509183525050600282015460209091019060ff1660038111156127a6576127a6614334565b60038111156127b7576127b7614334565b81526020016002820160019054906101000a900460ff1660018111156127df576127df614334565b60018111156127f0576127f0614334565b81526002919091015462010000900473ffffffffffffffffffffffffffffffffffffffff16602090910152855186908590811061282f5761282f6145e3565b60200260200101819052508084848151811061284d5761284d6145e3565b602090810291909101015261286183614612565b92505b5061286e81614612565b905061260d565b509096919550909350505050565b60608060006128926009613452565b9050805167ffffffffffffffff8111156128ae576128ae613b0a565b60405190808252806020026020018201604052801561291d57816020015b60408051608081018252600080825260208083018290529282015260608082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092019101816128cc5790505b509250805167ffffffffffffffff81111561293a5761293a613b0a565b604051908082528060200260200182016040528015612963578160200160208202803683370190505b50915060005b81518110156129ec57612994828281518110612987576129876145e3565b6020026020010151611054565b8583815181106129a6576129a66145e3565b602002602001018584815181106129bf576129bf6145e3565b602002602001018263ffffffff1663ffffffff168152508290525050806129e590614612565b9050612969565b50509091565b6129fa612a21565b612a03816136ff565b50565b600081815260018301602052604081205415155b9392505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314612aa2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4f6e6c792063616c6c61626c65206279206f776e6572000000000000000000006044820152606401610678565b565b805163ffffffff9081166000908152600d602090815260408083208286015185168452600101909152902060808301519091161580612af8575060808201518590612af0906001614bf7565b63ffffffff16115b15612b445760808201516040517fd5f5269100000000000000000000000000000000000000000000000000000000815263ffffffff909116600482015260248101869052604401610678565b6001826020015163ffffffff161115612bf057815163ffffffff166000908152600d602090815260408220908401516001918201918391612b85919061464a565b63ffffffff1663ffffffff168152602001908152602001600020905060005b612bad82613154565b811015612bed57612bdc846000015163ffffffff16600c60006105fa858760000161315e90919063ffffffff16565b50612be681614612565b9050612ba4565b50505b60005b85811015612cda57612c20878783818110612c1057612c106145e3565b859260209091020135905061345f565b612c81578251878783818110612c3857612c386145e3565b6040517f636e405700000000000000000000000000000000000000000000000000000000815263ffffffff90941660048501526020029190910135602483015250604401610678565b8251612cc99063ffffffff16600c60008a8a86818110612ca357612ca36145e3565b90506020020135815260200190815260200160002060040161345f90919063ffffffff16565b50612cd381614612565b9050612bf3565b5060005b83811015612fc65736858583818110612cf957612cf96145e3565b9050602002810190612d0b91906146ba565b9050612d1960038235612a06565b612d52576040517fe181733f00000000000000000000000000000000000000000000000000000000815281356004820152602401610678565b612d5e60058235612a06565b15612d98576040517ff7d7a29400000000000000000000000000000000000000000000000000000000815281356004820152602401610678565b8035600090815260038401602052604081208054612db590614667565b90501115612e015783516040517f3927d08000000000000000000000000000000000000000000000000000000000815263ffffffff909116600482015281356024820152604401610678565b60005b87811015612f1357612ea88235600c60008c8c86818110612e2757612e276145e3565b9050602002013581526020019081526020016000206003016000600c60008e8e88818110612e5757612e576145e3565b90506020020135815260200190815260200160002060000160049054906101000a900463ffffffff1663ffffffff1663ffffffff168152602001908152602001600020612a0690919063ffffffff16565b612f0357888882818110612ebe57612ebe6145e3565b6040517fa7e792500000000000000000000000000000000000000000000000000000000081526020909102929092013560048301525082356024820152604401610678565b612f0c81614612565b9050612e04565b5060028301805460018101825560009182526020918290208335910155612f3c90820182614c14565b82356000908152600386016020526040902091612f5a919083614c79565b508351602080860151612fb592918435908c908c90612f7b90880188614c14565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506137f492505050565b50612fbf81614612565b9050612cde565b50604080830151835163ffffffff9081166000908152600d602090815284822080549415156c01000000000000000000000000027fffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff90951694909417909355606086015186518316825284822080549115156d0100000000000000000000000000027fffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff9092169190911790556080860151865183168252848220805491841668010000000000000000027fffffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffff909216919091179055918501805186518316845292849020805493909216640100000000027fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff9093169290921790558351905191517ff264aae70bf6a9d90e68e0f9b393f4e7fbea67b063b0f336e0b36c158170365192613144929163ffffffff92831681529116602082015260400190565b60405180910390a1505050505050565b6000610477825490565b6000612a1a83836138d5565b6000612a1a83836138ff565b6040805160e0810182526000808252602080830182905282840182905260608084018390526080840183905260a0840181905260c084015263ffffffff8581168352600d825284832080546401000000009004909116808452600190910182528483206002810180548751818602810186019098528088529596929591949390919083018282801561322757602002820191906000526020600020905b815481526020019060010190808311613213575b505050505090506000815167ffffffffffffffff81111561324a5761324a613b0a565b60405190808252806020026020018201604052801561329057816020015b6040805180820190915260008152606060208201528152602001906001900390816132685790505b50905060005b81518110156133b15760405180604001604052808483815181106132bc576132bc6145e3565b602002602001015181526020018560030160008685815181106132e1576132e16145e3565b60200260200101518152602001908152602001600020805461330290614667565b80601f016020809104026020016040519081016040528092919081815260200182805461332e90614667565b801561337b5780601f106133505761010080835404028352916020019161337b565b820191906000526020600020905b81548152906001019060200180831161335e57829003601f168201915b5050505050815250828281518110613395576133956145e3565b6020026020010181905250806133aa90614612565b9050613296565b506040805160e08101825263ffffffff8089166000818152600d60208181528683205480861687528b8616828801526801000000000000000081049095169686019690965260ff6c010000000000000000000000008504811615156060870152929091529093526d010000000000000000000000000090049091161515608082015260a0810161344085613452565b81526020019190915295945050505050565b60606000612a1a836139f2565b6000612a1a8383613a4e565b608081015173ffffffffffffffffffffffffffffffffffffffff16156135b957608081015173ffffffffffffffffffffffffffffffffffffffff163b1580613564575060808101516040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527f78bea72100000000000000000000000000000000000000000000000000000000600482015273ffffffffffffffffffffffffffffffffffffffff909116906301ffc9a790602401602060405180830381865afa15801561353e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135629190614d94565b155b156135b95760808101516040517fabb5e3fd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602401610678565b6000828152600260205260409020815182919081906135d890826147b0565b50602082015160018201906135ed90826147b0565b5060408201516002820180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600183600381111561362f5761362f614334565b021790555060608201516002820180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661010083600181111561367657613676614334565b0217905550608091909101516002909101805473ffffffffffffffffffffffffffffffffffffffff90921662010000027fffffffffffffffffffff0000000000000000000000000000000000000000ffff90921691909117905560405182907f04f0a9bcf3f3a3b42a4d7ca081119755f82ebe43e0d30c8f7292c4fe0dc4a2ae90600090a25050565b3373ffffffffffffffffffffffffffffffffffffffff82160361377e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c660000000000000000006044820152606401610678565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b6000848152600260208190526040909120015462010000900473ffffffffffffffffffffffffffffffffffffffff161561223f57600084815260026020819052604091829020015490517ffba64a7c0000000000000000000000000000000000000000000000000000000081526201000090910473ffffffffffffffffffffffffffffffffffffffff169063fba64a7c9061389b908690869086908b908d90600401614db1565b600060405180830381600087803b1580156138b557600080fd5b505af11580156138c9573d6000803e3d6000fd5b50505050505050505050565b60008260000182815481106138ec576138ec6145e3565b9060005260206000200154905092915050565b600081815260018301602052604081205480156139e8576000613923600183614be4565b855490915060009061393790600190614be4565b905081811461399c576000866000018281548110613957576139576145e3565b906000526020600020015490508087600001848154811061397a5761397a6145e3565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806139ad576139ad614e33565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610477565b6000915050610477565b606081600001805480602002602001604051908101604052809291908181526020018280548015613a4257602002820191906000526020600020905b815481526020019060010190808311613a2e575b50505050509050919050565b6000818152600183016020526040812054613a9557508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610477565b506000610477565b508054613aa990614667565b6000825580601f10613ab9575050565b601f016020900490600052602060002090810190612a039190613af1565b5080546000825590600052602060002090810190612a0391905b5b80821115613b065760008155600101613af2565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516080810167ffffffffffffffff81118282101715613b5c57613b5c613b0a565b60405290565b60405160a0810167ffffffffffffffff81118282101715613b5c57613b5c613b0a565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715613bcc57613bcc613b0a565b604052919050565b600067ffffffffffffffff821115613bee57613bee613b0a565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b600082601f830112613c2b57600080fd5b8135613c3e613c3982613bd4565b613b85565b818152846020838601011115613c5357600080fd5b816020850160208301376000918101602001919091529392505050565b60008060408385031215613c8357600080fd5b823567ffffffffffffffff80821115613c9b57600080fd5b613ca786838701613c1a565b93506020850135915080821115613cbd57600080fd5b50613cca85828601613c1a565b9150509250929050565b600060208284031215613ce657600080fd5b5035919050565b60005b83811015613d08578181015183820152602001613cf0565b50506000910152565b60008151808452613d29816020860160208601613ced565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000612a1a6020830184613d11565b60008083601f840112613d8057600080fd5b50813567ffffffffffffffff811115613d9857600080fd5b6020830191508360208260051b850101111561104d57600080fd5b8015158114612a0357600080fd5b803563ffffffff81168114613dd557600080fd5b919050565b600080600080600080600060a0888a031215613df557600080fd5b873567ffffffffffffffff80821115613e0d57600080fd5b613e198b838c01613d6e565b909950975060208a0135915080821115613e3257600080fd5b50613e3f8a828b01613d6e565b9096509450506040880135613e5381613db3565b92506060880135613e6381613db3565b9150613e7160808901613dc1565b905092959891949750929550565b60008060208385031215613e9257600080fd5b823567ffffffffffffffff811115613ea957600080fd5b613eb585828601613d6e565b90969095509350505050565b600081518084526020808501945080840160005b83811015613ef157815187529582019590820190600101613ed5565b509495945050505050565b600063ffffffff80835116845260208181850151168186015260408281860151168187015260608501511515606087015260808501511515608087015260a0850151925060e060a0870152613f5460e0870184613ec1565b925060c085015186840360c08801528381518086528486019150848160051b870101858401935060005b82811015613fdb578782037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0018452845180518352870151878301879052613fc887840182613d11565b9588019594880194925050600101613f7e565b509998505050505050505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561405c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc088860301845261404a858351613efc565b94509285019290850190600101614010565b5092979650505050505050565b60006020828403121561407b57600080fd5b612a1a82613dc1565b73ffffffffffffffffffffffffffffffffffffffff815116825260006020820151604060208501526140b96040850182613d11565b949350505050565b602081526000612a1a6020830184614084565b602081526000612a1a6020830184613efc565b600080604083850312156140fa57600080fd5b61410383613dc1565b946020939093013593505050565b6040815260006141246040830185613d11565b82810360208401526141368185613d11565b95945050505050565b63ffffffff8151168252602081015160208301526040810151604083015260006060820151608060608501526140b96080850182613ec1565b60408152600061418b604083018561413f565b905063ffffffff831660208301529392505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561405c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0888603018452614201858351614084565b945092850192908501906001016141c7565b6000806000806040858703121561422957600080fd5b843567ffffffffffffffff8082111561424157600080fd5b61424d88838901613d6e565b9096509450602087013591508082111561426657600080fd5b5061427387828801613d6e565b95989497509550505050565b60008060008060008060008060c0898b03121561429b57600080fd5b6142a489613dc1565b9750602089013567ffffffffffffffff808211156142c157600080fd5b6142cd8c838d01613d6e565b909950975060408b01359150808211156142e657600080fd5b506142f38b828c01613d6e565b909650945050606089013561430781613db3565b9250608089013561431781613db3565b915061432560a08a01613dc1565b90509295985092959890939650565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6000815160a0845261437860a0850182613d11565b9050602083015184820360208601526143918282613d11565b9150506040830151600481106143a9576143a9614334565b60408501526060830151600281106143c3576143c3614334565b606085015260809283015173ffffffffffffffffffffffffffffffffffffffff1692909301919091525090565b602081526000612a1a6020830184614363565b6040815260006144166040830185613ec1565b6020838203818501528185518084528284019150828160051b85010183880160005b83811015614484577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0878403018552614472838351614363565b94860194925090850190600101614438565b50909998505050505050505050565b6000604082016040835280855180835260608501915060608160051b8601019250602080880160005b83811015614508577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08887030185526144f686835161413f565b955093820193908201906001016144bc565b50508584038187015286518085528782019482019350915060005b8281101561454557845163ffffffff1684529381019392810192600101614523565b5091979650505050505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114613dd557600080fd5b60006020828403121561458857600080fd5b612a1a82614552565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600063ffffffff8083168181036145d9576145d9614591565b6001019392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361464357614643614591565b5060010190565b63ffffffff82811682821603908082111561086e5761086e614591565b600181811c9082168061467b57607f821691505b6020821081036146b4577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc18336030181126146ee57600080fd5b9190910192915050565b60006040823603121561470a57600080fd5b6040516040810167ffffffffffffffff828210818311171561472e5761472e613b0a565b8160405261473b85614552565b8352602085013591508082111561475157600080fd5b5061475e36828601613c1a565b60208301525092915050565b601f82111561070b57600081815260208120601f850160051c810160208610156147915750805b601f850160051c820191505b8181101561223f5782815560010161479d565b815167ffffffffffffffff8111156147ca576147ca613b0a565b6147de816147d88454614667565b8461476a565b602080601f83116001811461483157600084156147fb5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b17855561223f565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561487e5788860151825594840194600190910190840161485f565b50858210156148ba57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156148dc57600080fd5b815167ffffffffffffffff8111156148f357600080fd5b8201601f8101841361490457600080fd5b8051614912613c3982613bd4565b81815285602083850101111561492757600080fd5b614136826020830160208601613ced565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818336030181126146ee57600080fd5b60006080823603121561497e57600080fd5b614986613b39565b61498f83613dc1565b81526020808401358183015260408401356040830152606084013567ffffffffffffffff808211156149c057600080fd5b9085019036601f8301126149d357600080fd5b8135818111156149e5576149e5613b0a565b8060051b91506149f6848301613b85565b8181529183018401918481019036841115614a1057600080fd5b938501935b83851015614a2e57843582529385019390850190614a15565b606087015250939695505050505050565b602081526000612a1a6020830184613ec1565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff618336030181126146ee57600080fd5b803560028110613dd557600080fd5b600060a08236031215614aa757600080fd5b614aaf613b62565b823567ffffffffffffffff80821115614ac757600080fd5b614ad336838701613c1a565b83526020850135915080821115614ae957600080fd5b50614af636828601613c1a565b602083015250604083013560048110614b0e57600080fd5b6040820152614b1f60608401614a86565b6060820152614b3060808401614552565b608082015292915050565b6000602080835260008454614b4f81614667565b80848701526040600180841660008114614b705760018114614ba857614bd6565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008516838a01528284151560051b8a01019550614bd6565b896000528660002060005b85811015614bce5781548b8201860152908301908801614bb3565b8a0184019650505b509398975050505050505050565b8181038181111561047757610477614591565b63ffffffff81811683821601908082111561086e5761086e614591565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614c4957600080fd5b83018035915067ffffffffffffffff821115614c6457600080fd5b60200191503681900382131561104d57600080fd5b67ffffffffffffffff831115614c9157614c91613b0a565b614ca583614c9f8354614667565b8361476a565b6000601f841160018114614cf75760008515614cc15750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355614d8d565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b82811015614d465786850135825560209485019460019092019101614d26565b5086821015614d81577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b600060208284031215614da657600080fd5b8151612a1a81613db3565b6080815284608082015260007f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff861115614dea57600080fd5b8560051b808860a0850137820182810360a09081016020850152614e1090820187613d11565b91505063ffffffff80851660408401528084166060840152509695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea164736f6c6343000813000a", } var CapabilityRegistryABI = CapabilityRegistryMetaData.ABI @@ -206,25 +206,26 @@ func (_CapabilityRegistry *CapabilityRegistryTransactorRaw) Transact(opts *bind. return _CapabilityRegistry.Contract.contract.Transact(opts, method, params...) } -func (_CapabilityRegistry *CapabilityRegistryCaller) GetCapabilities(opts *bind.CallOpts) ([]CapabilityRegistryCapability, error) { +func (_CapabilityRegistry *CapabilityRegistryCaller) GetCapabilities(opts *bind.CallOpts) ([][32]byte, []CapabilityRegistryCapability, error) { var out []interface{} err := _CapabilityRegistry.contract.Call(opts, &out, "getCapabilities") if err != nil { - return *new([]CapabilityRegistryCapability), err + return *new([][32]byte), *new([]CapabilityRegistryCapability), err } - out0 := *abi.ConvertType(out[0], new([]CapabilityRegistryCapability)).(*[]CapabilityRegistryCapability) + out0 := *abi.ConvertType(out[0], new([][32]byte)).(*[][32]byte) + out1 := *abi.ConvertType(out[1], new([]CapabilityRegistryCapability)).(*[]CapabilityRegistryCapability) - return out0, err + return out0, out1, err } -func (_CapabilityRegistry *CapabilityRegistrySession) GetCapabilities() ([]CapabilityRegistryCapability, error) { +func (_CapabilityRegistry *CapabilityRegistrySession) GetCapabilities() ([][32]byte, []CapabilityRegistryCapability, error) { return _CapabilityRegistry.Contract.GetCapabilities(&_CapabilityRegistry.CallOpts) } -func (_CapabilityRegistry *CapabilityRegistryCallerSession) GetCapabilities() ([]CapabilityRegistryCapability, error) { +func (_CapabilityRegistry *CapabilityRegistryCallerSession) GetCapabilities() ([][32]byte, []CapabilityRegistryCapability, error) { return _CapabilityRegistry.Contract.GetCapabilities(&_CapabilityRegistry.CallOpts) } @@ -2162,7 +2163,7 @@ func (_CapabilityRegistry *CapabilityRegistry) Address() common.Address { } type CapabilityRegistryInterface interface { - GetCapabilities(opts *bind.CallOpts) ([]CapabilityRegistryCapability, error) + GetCapabilities(opts *bind.CallOpts) ([][32]byte, []CapabilityRegistryCapability, error) GetCapability(opts *bind.CallOpts, hashedId [32]byte) (CapabilityRegistryCapability, error) diff --git a/core/gethwrappers/keystone/generation/generated-wrapper-dependency-versions-do-not-edit.txt b/core/gethwrappers/keystone/generation/generated-wrapper-dependency-versions-do-not-edit.txt index 1716fed90b6..605607aeb98 100644 --- a/core/gethwrappers/keystone/generation/generated-wrapper-dependency-versions-do-not-edit.txt +++ b/core/gethwrappers/keystone/generation/generated-wrapper-dependency-versions-do-not-edit.txt @@ -1,4 +1,4 @@ GETH_VERSION: 1.13.8 forwarder: ../../../contracts/solc/v0.8.19/KeystoneForwarder/KeystoneForwarder.abi ../../../contracts/solc/v0.8.19/KeystoneForwarder/KeystoneForwarder.bin ec6e94293700d400ca7b22989d54793e905d6febce3b84054727a58c473b9cf3 -keystone_capability_registry: ../../../contracts/solc/v0.8.19/CapabilityRegistry/CapabilityRegistry.abi ../../../contracts/solc/v0.8.19/CapabilityRegistry/CapabilityRegistry.bin be7e699bfab89cb95e8d1318dfc74c2af9465d7347478792d6d4afd06ac85402 +keystone_capability_registry: ../../../contracts/solc/v0.8.19/CapabilityRegistry/CapabilityRegistry.abi ../../../contracts/solc/v0.8.19/CapabilityRegistry/CapabilityRegistry.bin 2913d0d38f6a6edc6d437e16d042c7a6732171213c096259f2113170550e925e ocr3_capability: ../../../contracts/solc/v0.8.19/OCR3Capability/OCR3Capability.abi ../../../contracts/solc/v0.8.19/OCR3Capability/OCR3Capability.bin 9dcbdf55bd5729ba266148da3f17733eb592c871c2108ccca546618628fd9ad2 From 4fdfffdb4c4a6f16fcdb388fe38642398ce130da Mon Sep 17 00:00:00 2001 From: Dimitris Grigoriou Date: Mon, 10 Jun 2024 11:08:26 +0300 Subject: [PATCH 36/40] Move chaintype configs to evm (#13466) * Move chaintype configs to evm * Add changeset --- .changeset/rotten-hats-search.md | 5 +++++ common/client/mocks/config.go | 11 +--------- common/client/multi_node.go | 13 ----------- common/client/multi_node_test.go | 4 +--- common/client/node.go | 2 -- core/chains/evm/client/chain_client.go | 10 ++++----- core/chains/evm/client/config_builder.go | 4 ++-- core/chains/evm/client/config_builder_test.go | 4 ++-- core/chains/evm/client/evm_client.go | 5 +++-- core/chains/evm/client/evm_client_test.go | 3 ++- core/chains/evm/client/helpers_test.go | 8 +++---- core/chains/evm/client/tx_simulator.go | 5 +++-- core/chains/evm/config/chain_scoped.go | 4 ++-- .../chains/evm/config/chaintype}/chaintype.go | 2 +- core/chains/evm/config/config.go | 4 ++-- core/chains/evm/config/toml/config.go | 10 ++++----- core/chains/evm/config/toml/defaults.go | 4 ++-- .../chains/evm/gas/block_history_estimator.go | 6 ++--- .../evm/gas/block_history_estimator_test.go | 8 +++---- core/chains/evm/gas/chain_specific.go | 14 ++++++------ core/chains/evm/gas/helpers_test.go | 6 ++--- core/chains/evm/gas/mocks/config.go | 10 ++++----- core/chains/evm/gas/models.go | 4 ++-- core/chains/evm/gas/models_test.go | 4 ++-- .../evm/gas/rollups/arbitrum_l1_oracle.go | 6 ++--- core/chains/evm/gas/rollups/l1_oracle.go | 12 +++++----- core/chains/evm/gas/rollups/l1_oracle_test.go | 22 +++++++++---------- core/chains/evm/gas/rollups/op_l1_oracle.go | 16 +++++++------- .../evm/gas/rollups/op_l1_oracle_test.go | 12 +++++----- core/chains/evm/txmgr/config.go | 4 ++-- core/chains/evm/txmgr/mocks/config.go | 10 ++++----- core/chains/evm/txmgr/stuck_tx_detector.go | 12 +++++----- .../evm/txmgr/stuck_tx_detector_test.go | 6 ++--- core/chains/evm/txmgr/test_helpers.go | 16 +++++++------- core/chains/legacyevm/chain.go | 2 +- core/config/docs/docs_test.go | 4 ++-- core/services/chainlink/config_test.go | 4 ++-- core/services/ocr/contract_tracker.go | 8 +++---- core/services/ocr/validate.go | 4 ++-- core/services/ocrcommon/block_translator.go | 6 ++--- core/services/ocrcommon/config.go | 4 ++-- 41 files changed, 140 insertions(+), 158 deletions(-) create mode 100644 .changeset/rotten-hats-search.md rename {common/config => core/chains/evm/config/chaintype}/chaintype.go (99%) diff --git a/.changeset/rotten-hats-search.md b/.changeset/rotten-hats-search.md new file mode 100644 index 00000000000..d34a2283801 --- /dev/null +++ b/.changeset/rotten-hats-search.md @@ -0,0 +1,5 @@ +--- +"chainlink": minor +--- + +Move chaintype #internal diff --git a/common/client/mocks/config.go b/common/client/mocks/config.go index 27b717f61a0..306965a9f5d 100644 --- a/common/client/mocks/config.go +++ b/common/client/mocks/config.go @@ -1,20 +1,11 @@ package mocks -import ( - "time" - - commonconfig "github.com/smartcontractkit/chainlink/v2/common/config" -) +import "time" type ChainConfig struct { IsFinalityTagEnabled bool FinalityDepthVal uint32 NoNewHeadsThresholdVal time.Duration - ChainTypeVal commonconfig.ChainType -} - -func (t ChainConfig) ChainType() commonconfig.ChainType { - return t.ChainTypeVal } func (t ChainConfig) NodeNoNewHeadsThreshold() time.Duration { diff --git a/common/client/multi_node.go b/common/client/multi_node.go index af8ff03f534..0fc095c2931 100644 --- a/common/client/multi_node.go +++ b/common/client/multi_node.go @@ -17,7 +17,6 @@ import ( "github.com/smartcontractkit/chainlink-common/pkg/services" "github.com/smartcontractkit/chainlink-common/pkg/utils" - "github.com/smartcontractkit/chainlink/v2/common/config" feetypes "github.com/smartcontractkit/chainlink/v2/common/fee/types" "github.com/smartcontractkit/chainlink/v2/common/types" ) @@ -73,7 +72,6 @@ type MultiNode[ BatchCallContextAll(ctx context.Context, b []BATCH_ELEM) error ConfiguredChainID() CHAIN_ID - IsL2() bool } type multiNode[ @@ -95,7 +93,6 @@ type multiNode[ nodes []Node[CHAIN_ID, HEAD, RPC_CLIENT] sendonlys []SendOnlyNode[CHAIN_ID, RPC_CLIENT] chainID CHAIN_ID - chainType config.ChainType lggr logger.SugaredLogger selectionMode string noNewHeadsThreshold time.Duration @@ -137,7 +134,6 @@ func NewMultiNode[ nodes []Node[CHAIN_ID, HEAD, RPC_CLIENT], sendonlys []SendOnlyNode[CHAIN_ID, RPC_CLIENT], chainID CHAIN_ID, - chainType config.ChainType, chainFamily string, classifySendTxError func(tx TX, err error) SendTxReturnCode, sendTxSoftTimeout time.Duration, @@ -153,7 +149,6 @@ func NewMultiNode[ nodes: nodes, sendonlys: sendonlys, chainID: chainID, - chainType: chainType, lggr: logger.Sugared(lggr).Named("MultiNode").With("chainID", chainID.String()), selectionMode: selectionMode, noNewHeadsThreshold: noNewHeadsThreshold, @@ -489,10 +484,6 @@ func (c *multiNode[CHAIN_ID, SEQ, ADDR, BLOCK_HASH, TX, TX_HASH, EVENT, EVENT_OP return n.RPC().ChainID(ctx) } -func (c *multiNode[CHAIN_ID, SEQ, ADDR, BLOCK_HASH, TX, TX_HASH, EVENT, EVENT_OPS, TX_RECEIPT, FEE, HEAD, RPC_CLIENT, BATCH_ELEM]) ChainType() config.ChainType { - return c.chainType -} - func (c *multiNode[CHAIN_ID, SEQ, ADDR, BLOCK_HASH, TX, TX_HASH, EVENT, EVENT_OPS, TX_RECEIPT, FEE, HEAD, RPC_CLIENT, BATCH_ELEM]) CodeAt(ctx context.Context, account ADDR, blockNumber *big.Int) (code []byte, err error) { n, err := c.selectNode() if err != nil { @@ -521,10 +512,6 @@ func (c *multiNode[CHAIN_ID, SEQ, ADDR, BLOCK_HASH, TX, TX_HASH, EVENT, EVENT_OP return n.RPC().FilterEvents(ctx, query) } -func (c *multiNode[CHAIN_ID, SEQ, ADDR, BLOCK_HASH, TX, TX_HASH, EVENT, EVENT_OPS, TX_RECEIPT, FEE, HEAD, RPC_CLIENT, BATCH_ELEM]) IsL2() bool { - return c.ChainType().IsL2() -} - func (c *multiNode[CHAIN_ID, SEQ, ADDR, BLOCK_HASH, TX, TX_HASH, EVENT, EVENT_OPS, TX_RECEIPT, FEE, HEAD, RPC_CLIENT, BATCH_ELEM]) LatestBlockHeight(ctx context.Context) (h *big.Int, err error) { n, err := c.selectNode() if err != nil { diff --git a/common/client/multi_node_test.go b/common/client/multi_node_test.go index d602fa30afd..4504b5071e1 100644 --- a/common/client/multi_node_test.go +++ b/common/client/multi_node_test.go @@ -17,7 +17,6 @@ import ( "github.com/smartcontractkit/chainlink-common/pkg/logger" "github.com/smartcontractkit/chainlink-common/pkg/utils/tests" - "github.com/smartcontractkit/chainlink/v2/common/config" "github.com/smartcontractkit/chainlink/v2/common/types" ) @@ -37,7 +36,6 @@ type multiNodeOpts struct { nodes []Node[types.ID, types.Head[Hashable], multiNodeRPCClient] sendonlys []SendOnlyNode[types.ID, multiNodeRPCClient] chainID types.ID - chainType config.ChainType chainFamily string classifySendTxError func(tx any, err error) SendTxReturnCode sendTxSoftTimeout time.Duration @@ -51,7 +49,7 @@ func newTestMultiNode(t *testing.T, opts multiNodeOpts) testMultiNode { result := NewMultiNode[types.ID, *big.Int, Hashable, Hashable, any, Hashable, any, any, types.Receipt[Hashable, Hashable], Hashable, types.Head[Hashable], multiNodeRPCClient, any](opts.logger, opts.selectionMode, opts.leaseDuration, opts.noNewHeadsThreshold, opts.nodes, opts.sendonlys, - opts.chainID, opts.chainType, opts.chainFamily, opts.classifySendTxError, opts.sendTxSoftTimeout) + opts.chainID, opts.chainFamily, opts.classifySendTxError, opts.sendTxSoftTimeout) return testMultiNode{ result.(*multiNode[types.ID, *big.Int, Hashable, Hashable, any, Hashable, any, any, types.Receipt[Hashable, Hashable], Hashable, types.Head[Hashable], multiNodeRPCClient, any]), diff --git a/common/client/node.go b/common/client/node.go index 1d0a799321b..869ea89c039 100644 --- a/common/client/node.go +++ b/common/client/node.go @@ -15,7 +15,6 @@ import ( "github.com/smartcontractkit/chainlink-common/pkg/logger" "github.com/smartcontractkit/chainlink-common/pkg/services" - commonconfig "github.com/smartcontractkit/chainlink/v2/common/config" "github.com/smartcontractkit/chainlink/v2/common/types" ) @@ -51,7 +50,6 @@ type ChainConfig interface { NodeNoNewHeadsThreshold() time.Duration FinalityDepth() uint32 FinalityTagEnabled() bool - ChainType() commonconfig.ChainType } //go:generate mockery --quiet --name Node --structname mockNode --filename "mock_node_test.go" --inpackage --case=underscore diff --git a/core/chains/evm/client/chain_client.go b/core/chains/evm/client/chain_client.go index a28d8ab4a9f..8d1dcb6cc8c 100644 --- a/core/chains/evm/client/chain_client.go +++ b/core/chains/evm/client/chain_client.go @@ -12,10 +12,11 @@ import ( commonassets "github.com/smartcontractkit/chainlink-common/pkg/assets" "github.com/smartcontractkit/chainlink-common/pkg/logger" + commonclient "github.com/smartcontractkit/chainlink/v2/common/client" - "github.com/smartcontractkit/chainlink/v2/common/config" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/assets" evmconfig "github.com/smartcontractkit/chainlink/v2/core/chains/evm/config" + "github.com/smartcontractkit/chainlink/v2/core/chains/evm/config/chaintype" evmtypes "github.com/smartcontractkit/chainlink/v2/core/chains/evm/types" ) @@ -117,7 +118,7 @@ type chainClient struct { rpc.BatchElem, ] logger logger.SugaredLogger - chainType config.ChainType + chainType chaintype.ChainType clientErrors evmconfig.ClientErrors } @@ -129,7 +130,7 @@ func NewChainClient( nodes []commonclient.Node[*big.Int, *evmtypes.Head, RPCClient], sendonlys []commonclient.SendOnlyNode[*big.Int, RPCClient], chainID *big.Int, - chainType config.ChainType, + chainType chaintype.ChainType, clientErrors evmconfig.ClientErrors, ) Client { multiNode := commonclient.NewMultiNode( @@ -140,7 +141,6 @@ func NewChainClient( nodes, sendonlys, chainID, - chainType, "EVM", func(tx *types.Transaction, err error) commonclient.SendTxReturnCode { return ClassifySendError(err, clientErrors, logger.Sugared(logger.Nop()), tx, common.Address{}, chainType.IsL2()) @@ -254,7 +254,7 @@ func (c *chainClient) HeadByNumber(ctx context.Context, n *big.Int) (*evmtypes.H } func (c *chainClient) IsL2() bool { - return c.multiNode.IsL2() + return c.chainType.IsL2() } func (c *chainClient) LINKBalance(ctx context.Context, address common.Address, linkAddress common.Address) (*commonassets.Link, error) { diff --git a/core/chains/evm/client/config_builder.go b/core/chains/evm/client/config_builder.go index 9817879b579..ae41d40dd33 100644 --- a/core/chains/evm/client/config_builder.go +++ b/core/chains/evm/client/config_builder.go @@ -8,10 +8,10 @@ import ( "go.uber.org/multierr" commonconfig "github.com/smartcontractkit/chainlink-common/pkg/config" - "github.com/smartcontractkit/chainlink/v2/common/config" commonclient "github.com/smartcontractkit/chainlink/v2/common/client" evmconfig "github.com/smartcontractkit/chainlink/v2/core/chains/evm/config" + "github.com/smartcontractkit/chainlink/v2/core/chains/evm/config/chaintype" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/config/toml" ) @@ -56,7 +56,7 @@ func NewClientConfigs( chainConfig := &evmconfig.EVMConfig{ C: &toml.EVMConfig{ Chain: toml.Chain{ - ChainType: config.NewChainTypeConfig(chainType), + ChainType: chaintype.NewChainTypeConfig(chainType), FinalityDepth: finalityDepth, FinalityTagEnabled: finalityTagEnabled, NoNewHeadsThreshold: commonconfig.MustNewDuration(noNewHeadsThreshold), diff --git a/core/chains/evm/client/config_builder_test.go b/core/chains/evm/client/config_builder_test.go index 963cb855023..0e24161b27b 100644 --- a/core/chains/evm/client/config_builder_test.go +++ b/core/chains/evm/client/config_builder_test.go @@ -10,6 +10,7 @@ import ( "github.com/smartcontractkit/chainlink-common/pkg/logger" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/client" + "github.com/smartcontractkit/chainlink/v2/core/chains/evm/config/chaintype" ) func TestClientConfigBuilder(t *testing.T) { @@ -50,13 +51,12 @@ func TestClientConfigBuilder(t *testing.T) { require.Equal(t, *nodeConfigs[0].HTTPURL, (*nodes[0].HTTPURL).String()) // Validate chain config - require.Equal(t, chainTypeStr, string(chainCfg.ChainType())) require.Equal(t, noNewHeadsThreshold, chainCfg.NodeNoNewHeadsThreshold()) require.Equal(t, *finalityDepth, chainCfg.FinalityDepth()) require.Equal(t, *finalityTagEnabled, chainCfg.FinalityTagEnabled()) // let combiler tell us, when we do not have sufficient data to create evm client - _ = client.NewEvmClient(nodePool, chainCfg, nil, logger.Test(t), big.NewInt(10), nodes) + _ = client.NewEvmClient(nodePool, chainCfg, nil, logger.Test(t), big.NewInt(10), nodes, chaintype.ChainType(chainTypeStr)) } func TestNodeConfigs(t *testing.T) { diff --git a/core/chains/evm/client/evm_client.go b/core/chains/evm/client/evm_client.go index 98f7c99bf40..4d309440590 100644 --- a/core/chains/evm/client/evm_client.go +++ b/core/chains/evm/client/evm_client.go @@ -8,11 +8,12 @@ import ( commonclient "github.com/smartcontractkit/chainlink/v2/common/client" evmconfig "github.com/smartcontractkit/chainlink/v2/core/chains/evm/config" + "github.com/smartcontractkit/chainlink/v2/core/chains/evm/config/chaintype" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/config/toml" evmtypes "github.com/smartcontractkit/chainlink/v2/core/chains/evm/types" ) -func NewEvmClient(cfg evmconfig.NodePool, chainCfg commonclient.ChainConfig, clientErrors evmconfig.ClientErrors, lggr logger.Logger, chainID *big.Int, nodes []*toml.Node) Client { +func NewEvmClient(cfg evmconfig.NodePool, chainCfg commonclient.ChainConfig, clientErrors evmconfig.ClientErrors, lggr logger.Logger, chainID *big.Int, nodes []*toml.Node, chainType chaintype.ChainType) Client { var empty url.URL var primaries []commonclient.Node[*big.Int, *evmtypes.Head, RPCClient] var sendonlys []commonclient.SendOnlyNode[*big.Int, RPCClient] @@ -34,5 +35,5 @@ func NewEvmClient(cfg evmconfig.NodePool, chainCfg commonclient.ChainConfig, cli } return NewChainClient(lggr, cfg.SelectionMode(), cfg.LeaseDuration(), chainCfg.NodeNoNewHeadsThreshold(), - primaries, sendonlys, chainID, chainCfg.ChainType(), clientErrors) + primaries, sendonlys, chainID, chainType, clientErrors) } diff --git a/core/chains/evm/client/evm_client_test.go b/core/chains/evm/client/evm_client_test.go index 837306305a9..29113d4c3c9 100644 --- a/core/chains/evm/client/evm_client_test.go +++ b/core/chains/evm/client/evm_client_test.go @@ -9,6 +9,7 @@ import ( "github.com/smartcontractkit/chainlink-common/pkg/logger" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/client" + "github.com/smartcontractkit/chainlink/v2/core/chains/evm/config/chaintype" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/testutils" ) @@ -36,6 +37,6 @@ func TestNewEvmClient(t *testing.T) { pollFailureThreshold, pollInterval, syncThreshold, nodeIsSyncingEnabled, noNewHeadsThreshold, finalityDepth, finalityTagEnabled) require.NoError(t, err) - client := client.NewEvmClient(nodePool, chainCfg, nil, logger.Test(t), testutils.FixtureChainID, nodes) + client := client.NewEvmClient(nodePool, chainCfg, nil, logger.Test(t), testutils.FixtureChainID, nodes, chaintype.ChainType(chainTypeStr)) require.NotNil(t, client) } diff --git a/core/chains/evm/client/helpers_test.go b/core/chains/evm/client/helpers_test.go index 0fd33041896..391d580c1f6 100644 --- a/core/chains/evm/client/helpers_test.go +++ b/core/chains/evm/client/helpers_test.go @@ -13,8 +13,8 @@ import ( commonclient "github.com/smartcontractkit/chainlink/v2/common/client" clientMocks "github.com/smartcontractkit/chainlink/v2/common/client/mocks" - commonconfig "github.com/smartcontractkit/chainlink/v2/common/config" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/config" + "github.com/smartcontractkit/chainlink/v2/core/chains/evm/config/chaintype" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/config/toml" evmtypes "github.com/smartcontractkit/chainlink/v2/core/chains/evm/types" ) @@ -148,7 +148,7 @@ func NewChainClientWithTestNode( sendonlys = append(sendonlys, s) } - var chainType commonconfig.ChainType + var chainType chaintype.ChainType clientErrors := NewTestClientErrors() c := NewChainClient(lggr, nodeCfg.SelectionMode(), leaseDuration, noNewHeadsThreshold, primaries, sendonlys, chainID, chainType, &clientErrors) t.Cleanup(c.Close) @@ -164,7 +164,7 @@ func NewChainClientWithEmptyNode( ) Client { lggr := logger.Test(t) - var chainType commonconfig.ChainType + var chainType chaintype.ChainType c := NewChainClient(lggr, selectionMode, leaseDuration, noNewHeadsThreshold, nil, nil, chainID, chainType, nil) t.Cleanup(c.Close) return c @@ -180,7 +180,7 @@ func NewChainClientWithMockedRpc( ) Client { lggr := logger.Test(t) - var chainType commonconfig.ChainType + var chainType chaintype.ChainType cfg := TestNodePoolConfig{ NodeSelectionMode: commonclient.NodeSelectionModeRoundRobin, diff --git a/core/chains/evm/client/tx_simulator.go b/core/chains/evm/client/tx_simulator.go index 65e108bd227..9bd22cebac0 100644 --- a/core/chains/evm/client/tx_simulator.go +++ b/core/chains/evm/client/tx_simulator.go @@ -7,7 +7,8 @@ import ( "github.com/ethereum/go-ethereum/common/hexutil" "github.com/smartcontractkit/chainlink-common/pkg/logger" - "github.com/smartcontractkit/chainlink/v2/common/config" + + "github.com/smartcontractkit/chainlink/v2/core/chains/evm/config/chaintype" ) type simulatorClient interface { @@ -17,7 +18,7 @@ type simulatorClient interface { // ZK chains can return an out-of-counters error // This method allows a caller to determine if a tx would fail due to OOC error by simulating the transaction // Used as an entry point in case custom simulation is required across different chains -func SimulateTransaction(ctx context.Context, client simulatorClient, lggr logger.SugaredLogger, chainType config.ChainType, msg ethereum.CallMsg) *SendError { +func SimulateTransaction(ctx context.Context, client simulatorClient, lggr logger.SugaredLogger, chainType chaintype.ChainType, msg ethereum.CallMsg) *SendError { err := simulateTransactionDefault(ctx, client, msg) return NewSendError(err) } diff --git a/core/chains/evm/config/chain_scoped.go b/core/chains/evm/config/chain_scoped.go index ae14c09447b..8064e2de207 100644 --- a/core/chains/evm/config/chain_scoped.go +++ b/core/chains/evm/config/chain_scoped.go @@ -7,7 +7,7 @@ import ( "github.com/smartcontractkit/chainlink-common/pkg/assets" "github.com/smartcontractkit/chainlink-common/pkg/logger" - commonconfig "github.com/smartcontractkit/chainlink/v2/common/config" + "github.com/smartcontractkit/chainlink/v2/core/chains/evm/config/chaintype" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/config/toml" ) @@ -124,7 +124,7 @@ func (e *EVMConfig) BlockEmissionIdleWarningThreshold() time.Duration { return e.C.NoNewHeadsThreshold.Duration() } -func (e *EVMConfig) ChainType() commonconfig.ChainType { +func (e *EVMConfig) ChainType() chaintype.ChainType { if e.C.ChainType == nil { return "" } diff --git a/common/config/chaintype.go b/core/chains/evm/config/chaintype/chaintype.go similarity index 99% rename from common/config/chaintype.go rename to core/chains/evm/config/chaintype/chaintype.go index 8c89aeb4ecd..9b845969e4b 100644 --- a/common/config/chaintype.go +++ b/core/chains/evm/config/chaintype/chaintype.go @@ -1,4 +1,4 @@ -package config +package chaintype import ( "fmt" diff --git a/core/chains/evm/config/config.go b/core/chains/evm/config/config.go index e767dad9786..b44c112e204 100644 --- a/core/chains/evm/config/config.go +++ b/core/chains/evm/config/config.go @@ -9,8 +9,8 @@ import ( commonassets "github.com/smartcontractkit/chainlink-common/pkg/assets" - commonconfig "github.com/smartcontractkit/chainlink/v2/common/config" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/assets" + "github.com/smartcontractkit/chainlink/v2/core/chains/evm/config/chaintype" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/types" ) @@ -29,7 +29,7 @@ type EVM interface { BlockBackfillSkip() bool BlockEmissionIdleWarningThreshold() time.Duration ChainID() *big.Int - ChainType() commonconfig.ChainType + ChainType() chaintype.ChainType FinalityDepth() uint32 FinalityTagEnabled() bool FlagsContractAddress() string diff --git a/core/chains/evm/config/toml/config.go b/core/chains/evm/config/toml/config.go index 38385c47c27..dd724a6689c 100644 --- a/core/chains/evm/config/toml/config.go +++ b/core/chains/evm/config/toml/config.go @@ -17,8 +17,8 @@ import ( commonconfig "github.com/smartcontractkit/chainlink-common/pkg/config" commontypes "github.com/smartcontractkit/chainlink-common/pkg/types" - "github.com/smartcontractkit/chainlink/v2/common/config" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/assets" + "github.com/smartcontractkit/chainlink/v2/core/chains/evm/config/chaintype" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/types" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/utils/big" ) @@ -341,7 +341,7 @@ type Chain struct { AutoCreateKey *bool BlockBackfillDepth *uint32 BlockBackfillSkip *bool - ChainType *config.ChainTypeConfig + ChainType *chaintype.ChainTypeConfig FinalityDepth *uint32 FinalityTagEnabled *bool FlagsContractAddress *types.EIP55Address @@ -373,7 +373,7 @@ type Chain struct { func (c *Chain) ValidateConfig() (err error) { if !c.ChainType.ChainType().IsValid() { err = multierr.Append(err, commonconfig.ErrInvalid{Name: "ChainType", Value: c.ChainType.ChainType(), - Msg: config.ErrInvalidChainType.Error()}) + Msg: chaintype.ErrInvalidChainType.Error()}) } if c.GasEstimator.BumpTxDepth != nil && *c.GasEstimator.BumpTxDepth > *c.Transactions.MaxInFlight { @@ -397,7 +397,7 @@ func (c *Chain) ValidateConfig() (err error) { if c.Transactions.AutoPurge.Enabled != nil && *c.Transactions.AutoPurge.Enabled { chainType := c.ChainType.ChainType() switch chainType { - case config.ChainScroll: + case chaintype.ChainScroll: if c.Transactions.AutoPurge.DetectionApiUrl == nil { err = multierr.Append(err, commonconfig.ErrMissing{Name: "Transactions.AutoPurge.DetectionApiUrl", Msg: fmt.Sprintf("must be set for %s", chainType)}) } else if c.Transactions.AutoPurge.DetectionApiUrl.IsZero() { @@ -409,7 +409,7 @@ func (c *Chain) ValidateConfig() (err error) { err = multierr.Append(err, commonconfig.ErrInvalid{Name: "Transactions.AutoPurge.DetectionApiUrl", Value: c.Transactions.AutoPurge.DetectionApiUrl.Scheme, Msg: "must be http or https"}) } } - case config.ChainZkEvm: + case chaintype.ChainZkEvm: // No other configs are needed default: // Bump Threshold is required because the stuck tx heuristic relies on a minimum number of bump attempts to exist diff --git a/core/chains/evm/config/toml/defaults.go b/core/chains/evm/config/toml/defaults.go index 6e60454f3eb..e006babfb68 100644 --- a/core/chains/evm/config/toml/defaults.go +++ b/core/chains/evm/config/toml/defaults.go @@ -10,7 +10,7 @@ import ( cconfig "github.com/smartcontractkit/chainlink-common/pkg/config" - "github.com/smartcontractkit/chainlink/v2/common/config" + "github.com/smartcontractkit/chainlink/v2/core/chains/evm/config/chaintype" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/utils/big" ) @@ -91,7 +91,7 @@ func Defaults(chainID *big.Big, with ...*Chain) Chain { return c } -func ChainTypeForID(chainID *big.Big) (config.ChainType, bool) { +func ChainTypeForID(chainID *big.Big) (chaintype.ChainType, bool) { s := chainID.String() if d, ok := defaults[s]; ok { return d.ChainType.ChainType(), true diff --git a/core/chains/evm/gas/block_history_estimator.go b/core/chains/evm/gas/block_history_estimator.go index f6d15f7aff7..12ccedb4b3b 100644 --- a/core/chains/evm/gas/block_history_estimator.go +++ b/core/chains/evm/gas/block_history_estimator.go @@ -20,10 +20,10 @@ import ( "github.com/smartcontractkit/chainlink-common/pkg/utils/mailbox" "github.com/smartcontractkit/chainlink-common/pkg/utils/mathutil" - "github.com/smartcontractkit/chainlink/v2/common/config" commonfee "github.com/smartcontractkit/chainlink/v2/common/fee" feetypes "github.com/smartcontractkit/chainlink/v2/common/fee/types" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/assets" + "github.com/smartcontractkit/chainlink/v2/core/chains/evm/config/chaintype" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/gas/rollups" evmtypes "github.com/smartcontractkit/chainlink/v2/core/chains/evm/types" ) @@ -80,7 +80,7 @@ const BumpingHaltedLabel = "Tx gas bumping halted since price exceeds current bl var _ EvmEstimator = &BlockHistoryEstimator{} type chainConfig interface { - ChainType() config.ChainType + ChainType() chaintype.ChainType } type estimatorGasEstimatorConfig interface { @@ -843,7 +843,7 @@ func (b *BlockHistoryEstimator) setPercentileGasPrice(gasPrice *assets.Wei) { // isUsable returns true if the tx is usable both generally and specifically for // this Config. -func (b *BlockHistoryEstimator) IsUsable(tx evmtypes.Transaction, block evmtypes.Block, chainType config.ChainType, minGasPrice *assets.Wei, lggr logger.Logger) bool { +func (b *BlockHistoryEstimator) IsUsable(tx evmtypes.Transaction, block evmtypes.Block, chainType chaintype.ChainType, minGasPrice *assets.Wei, lggr logger.Logger) bool { // GasLimit 0 is impossible on Ethereum official, but IS possible // on forks/clones such as RSK. We should ignore these transactions // if they come up on any chain since they are not normal. diff --git a/core/chains/evm/gas/block_history_estimator_test.go b/core/chains/evm/gas/block_history_estimator_test.go index b38cd069c69..4f3fddd562f 100644 --- a/core/chains/evm/gas/block_history_estimator_test.go +++ b/core/chains/evm/gas/block_history_estimator_test.go @@ -21,11 +21,11 @@ import ( "github.com/smartcontractkit/chainlink-common/pkg/logger" "github.com/smartcontractkit/chainlink-common/pkg/utils/tests" - "github.com/smartcontractkit/chainlink/v2/common/config" commonfee "github.com/smartcontractkit/chainlink/v2/common/fee" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/assets" evmclient "github.com/smartcontractkit/chainlink/v2/core/chains/evm/client" evmmocks "github.com/smartcontractkit/chainlink/v2/core/chains/evm/client/mocks" + "github.com/smartcontractkit/chainlink/v2/core/chains/evm/config/chaintype" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/gas" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/gas/rollups" rollupMocks "github.com/smartcontractkit/chainlink/v2/core/chains/evm/gas/rollups/mocks" @@ -990,12 +990,12 @@ func TestBlockHistoryEstimator_Recalculate_NoEIP1559(t *testing.T) { require.Equal(t, assets.NewWeiI(11), gas.GetGasPrice(bhe)) // Set chainType to Gnosis - GasEstimator should now ignore zero priced transactions - cfg.ChainTypeF = string(config.ChainGnosis) + cfg.ChainTypeF = string(chaintype.ChainGnosis) bhe.Recalculate(testutils.Head(0)) require.Equal(t, assets.NewWeiI(80), gas.GetGasPrice(bhe)) // And for X Layer - cfg.ChainTypeF = string(config.ChainXLayer) + cfg.ChainTypeF = string(chaintype.ChainXLayer) bhe.Recalculate(testutils.Head(0)) require.Equal(t, assets.NewWeiI(80), gas.GetGasPrice(bhe)) }) @@ -1413,7 +1413,7 @@ func TestBlockHistoryEstimator_IsUsable(t *testing.T) { }) t.Run("returns false if transaction is of type 0x71 or 0xff only on zkSync", func(t *testing.T) { - cfg.ChainTypeF = string(config.ChainZkSync) + cfg.ChainTypeF = string(chaintype.ChainZkSync) tx := evmtypes.Transaction{Type: 0x71, GasPrice: assets.NewWeiI(10), GasLimit: 42, Hash: utils.NewHash()} assert.Equal(t, false, bhe.IsUsable(tx, block, cfg.ChainType(), geCfg.PriceMin(), logger.Test(t))) diff --git a/core/chains/evm/gas/chain_specific.go b/core/chains/evm/gas/chain_specific.go index f9985a6fafc..fba2eda66a0 100644 --- a/core/chains/evm/gas/chain_specific.go +++ b/core/chains/evm/gas/chain_specific.go @@ -1,15 +1,15 @@ package gas import ( - "github.com/smartcontractkit/chainlink/v2/common/config" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/assets" + "github.com/smartcontractkit/chainlink/v2/core/chains/evm/config/chaintype" evmtypes "github.com/smartcontractkit/chainlink/v2/core/chains/evm/types" ) // chainSpecificIsUsable allows for additional logic specific to a particular // Config that determines whether a transaction should be used for gas estimation -func chainSpecificIsUsable(tx evmtypes.Transaction, baseFee *assets.Wei, chainType config.ChainType, minGasPriceWei *assets.Wei) bool { - if chainType == config.ChainGnosis || chainType == config.ChainXLayer { +func chainSpecificIsUsable(tx evmtypes.Transaction, baseFee *assets.Wei, chainType chaintype.ChainType, minGasPriceWei *assets.Wei) bool { + if chainType == chaintype.ChainGnosis || chainType == chaintype.ChainXLayer { // GasPrice 0 on most chains is great since it indicates cheap/free transactions. // However, Gnosis and XLayer reserve a special type of "bridge" transaction with 0 gas // price that is always processed at top priority. Ordinary transactions @@ -19,7 +19,7 @@ func chainSpecificIsUsable(tx evmtypes.Transaction, baseFee *assets.Wei, chainTy return false } } - if chainType == config.ChainOptimismBedrock || chainType == config.ChainKroma { + if chainType == chaintype.ChainOptimismBedrock || chainType == chaintype.ChainKroma { // This is a special deposit transaction type introduced in Bedrock upgrade. // This is a system transaction that it will occur at least one time per block. // We should discard this type before even processing it to avoid flooding the @@ -29,7 +29,7 @@ func chainSpecificIsUsable(tx evmtypes.Transaction, baseFee *assets.Wei, chainTy return false } } - if chainType == config.ChainCelo { + if chainType == chaintype.ChainCelo { // Celo specific transaction types that utilize the feeCurrency field. if tx.Type == 0x7c || tx.Type == 0x7b { return false @@ -42,14 +42,14 @@ func chainSpecificIsUsable(tx evmtypes.Transaction, baseFee *assets.Wei, chainTy return false } } - if chainType == config.ChainWeMix { + if chainType == chaintype.ChainWeMix { // WeMix specific transaction types that enables fee delegation. // https://docs.wemix.com/v/en/design/fee-delegation if tx.Type == 0x16 { return false } } - if chainType == config.ChainZkSync { + if chainType == chaintype.ChainZkSync { // zKSync specific type for contract deployment & priority transactions // https://era.zksync.io/docs/reference/concepts/transactions.html#eip-712-0x71 if tx.Type == 0x71 || tx.Type == 0xff { diff --git a/core/chains/evm/gas/helpers_test.go b/core/chains/evm/gas/helpers_test.go index 420c5060a90..e64b6ad4779 100644 --- a/core/chains/evm/gas/helpers_test.go +++ b/core/chains/evm/gas/helpers_test.go @@ -6,8 +6,8 @@ import ( "github.com/stretchr/testify/require" - "github.com/smartcontractkit/chainlink/v2/common/config" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/assets" + "github.com/smartcontractkit/chainlink/v2/core/chains/evm/config/chaintype" evmtypes "github.com/smartcontractkit/chainlink/v2/core/chains/evm/types" ) @@ -119,8 +119,8 @@ func NewMockConfig() *MockConfig { return &MockConfig{} } -func (m *MockConfig) ChainType() config.ChainType { - return config.ChainType(m.ChainTypeF) +func (m *MockConfig) ChainType() chaintype.ChainType { + return chaintype.ChainType(m.ChainTypeF) } func (m *MockConfig) FinalityDepth() uint32 { diff --git a/core/chains/evm/gas/mocks/config.go b/core/chains/evm/gas/mocks/config.go index a3b6b8ee491..5daac211762 100644 --- a/core/chains/evm/gas/mocks/config.go +++ b/core/chains/evm/gas/mocks/config.go @@ -3,7 +3,7 @@ package mocks import ( - config "github.com/smartcontractkit/chainlink/v2/common/config" + chaintype "github.com/smartcontractkit/chainlink/v2/core/chains/evm/config/chaintype" mock "github.com/stretchr/testify/mock" ) @@ -14,18 +14,18 @@ type Config struct { } // ChainType provides a mock function with given fields: -func (_m *Config) ChainType() config.ChainType { +func (_m *Config) ChainType() chaintype.ChainType { ret := _m.Called() if len(ret) == 0 { panic("no return value specified for ChainType") } - var r0 config.ChainType - if rf, ok := ret.Get(0).(func() config.ChainType); ok { + var r0 chaintype.ChainType + if rf, ok := ret.Get(0).(func() chaintype.ChainType); ok { r0 = rf() } else { - r0 = ret.Get(0).(config.ChainType) + r0 = ret.Get(0).(chaintype.ChainType) } return r0 diff --git a/core/chains/evm/gas/models.go b/core/chains/evm/gas/models.go index 68fc7378d31..320834cabab 100644 --- a/core/chains/evm/gas/models.go +++ b/core/chains/evm/gas/models.go @@ -15,12 +15,12 @@ import ( "github.com/smartcontractkit/chainlink-common/pkg/services" bigmath "github.com/smartcontractkit/chainlink-common/pkg/utils/big_math" - "github.com/smartcontractkit/chainlink/v2/common/config" commonfee "github.com/smartcontractkit/chainlink/v2/common/fee" feetypes "github.com/smartcontractkit/chainlink/v2/common/fee/types" "github.com/smartcontractkit/chainlink/v2/common/headtracker" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/assets" evmconfig "github.com/smartcontractkit/chainlink/v2/core/chains/evm/config" + "github.com/smartcontractkit/chainlink/v2/core/chains/evm/config/chaintype" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/gas/rollups" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/label" evmtypes "github.com/smartcontractkit/chainlink/v2/core/chains/evm/types" @@ -338,7 +338,7 @@ func (e *evmFeeEstimator) BumpFee(ctx context.Context, originalFee EvmFee, feeLi // //go:generate mockery --quiet --name Config --output ./mocks/ --case=underscore type Config interface { - ChainType() config.ChainType + ChainType() chaintype.ChainType FinalityDepth() uint32 FinalityTagEnabled() bool } diff --git a/core/chains/evm/gas/models_test.go b/core/chains/evm/gas/models_test.go index f4366912632..059d0ed3d05 100644 --- a/core/chains/evm/gas/models_test.go +++ b/core/chains/evm/gas/models_test.go @@ -12,8 +12,8 @@ import ( "github.com/smartcontractkit/chainlink-common/pkg/logger" "github.com/smartcontractkit/chainlink-common/pkg/utils/tests" - "github.com/smartcontractkit/chainlink/v2/common/config" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/assets" + "github.com/smartcontractkit/chainlink/v2/core/chains/evm/config/chaintype" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/gas" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/gas/mocks" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/gas/rollups" @@ -65,7 +65,7 @@ func TestWrappedEvmEstimator(t *testing.T) { assert.Nil(t, l1Oracle) // expect l1Oracle - oracle := rollups.NewL1GasOracle(lggr, nil, config.ChainOptimismBedrock) + oracle := rollups.NewL1GasOracle(lggr, nil, chaintype.ChainOptimismBedrock) // cast oracle to L1Oracle interface estimator = gas.NewEvmFeeEstimator(lggr, getEst, false, geCfg) diff --git a/core/chains/evm/gas/rollups/arbitrum_l1_oracle.go b/core/chains/evm/gas/rollups/arbitrum_l1_oracle.go index d0b4c5808ad..9e15cfe4c93 100644 --- a/core/chains/evm/gas/rollups/arbitrum_l1_oracle.go +++ b/core/chains/evm/gas/rollups/arbitrum_l1_oracle.go @@ -20,9 +20,9 @@ import ( gethtypes "github.com/ethereum/go-ethereum/core/types" "github.com/smartcontractkit/chainlink/v2/common/client" - "github.com/smartcontractkit/chainlink/v2/common/config" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/assets" evmclient "github.com/smartcontractkit/chainlink/v2/core/chains/evm/client" + "github.com/smartcontractkit/chainlink/v2/core/chains/evm/config/chaintype" ) type ArbL1GasOracle interface { @@ -36,7 +36,7 @@ type arbitrumL1Oracle struct { client l1OracleClient pollPeriod time.Duration logger logger.SugaredLogger - chainType config.ChainType + chainType chaintype.ChainType l1GasPriceAddress string gasPriceMethod string @@ -94,7 +94,7 @@ func NewArbitrumL1GasOracle(lggr logger.Logger, ethClient l1OracleClient) *arbit client: ethClient, pollPeriod: PollPeriod, logger: logger.Sugared(logger.Named(lggr, "L1GasOracle(arbitrum)")), - chainType: config.ChainArbitrum, + chainType: chaintype.ChainArbitrum, l1GasPriceAddress: l1GasPriceAddress, gasPriceMethod: gasPriceMethod, diff --git a/core/chains/evm/gas/rollups/l1_oracle.go b/core/chains/evm/gas/rollups/l1_oracle.go index 05ceb720ab2..aa152e84e44 100644 --- a/core/chains/evm/gas/rollups/l1_oracle.go +++ b/core/chains/evm/gas/rollups/l1_oracle.go @@ -15,8 +15,8 @@ import ( "github.com/smartcontractkit/chainlink-common/pkg/logger" - "github.com/smartcontractkit/chainlink/v2/common/config" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/assets" + "github.com/smartcontractkit/chainlink/v2/core/chains/evm/config/chaintype" ) // L1Oracle provides interface for fetching L1-specific fee components if the chain is an L2. @@ -46,21 +46,21 @@ const ( PollPeriod = 6 * time.Second ) -var supportedChainTypes = []config.ChainType{config.ChainArbitrum, config.ChainOptimismBedrock, config.ChainKroma, config.ChainScroll} +var supportedChainTypes = []chaintype.ChainType{chaintype.ChainArbitrum, chaintype.ChainOptimismBedrock, chaintype.ChainKroma, chaintype.ChainScroll} -func IsRollupWithL1Support(chainType config.ChainType) bool { +func IsRollupWithL1Support(chainType chaintype.ChainType) bool { return slices.Contains(supportedChainTypes, chainType) } -func NewL1GasOracle(lggr logger.Logger, ethClient l1OracleClient, chainType config.ChainType) L1Oracle { +func NewL1GasOracle(lggr logger.Logger, ethClient l1OracleClient, chainType chaintype.ChainType) L1Oracle { if !IsRollupWithL1Support(chainType) { return nil } var l1Oracle L1Oracle switch chainType { - case config.ChainOptimismBedrock, config.ChainKroma, config.ChainScroll: + case chaintype.ChainOptimismBedrock, chaintype.ChainKroma, chaintype.ChainScroll: l1Oracle = NewOpStackL1GasOracle(lggr, ethClient, chainType) - case config.ChainArbitrum: + case chaintype.ChainArbitrum: l1Oracle = NewArbitrumL1GasOracle(lggr, ethClient) default: panic(fmt.Sprintf("Received unspported chaintype %s", chainType)) diff --git a/core/chains/evm/gas/rollups/l1_oracle_test.go b/core/chains/evm/gas/rollups/l1_oracle_test.go index b49f92909d6..1e35f6e6d38 100644 --- a/core/chains/evm/gas/rollups/l1_oracle_test.go +++ b/core/chains/evm/gas/rollups/l1_oracle_test.go @@ -18,8 +18,8 @@ import ( "github.com/smartcontractkit/chainlink-common/pkg/services/servicetest" "github.com/smartcontractkit/chainlink-common/pkg/utils/tests" - "github.com/smartcontractkit/chainlink/v2/common/config" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/assets" + "github.com/smartcontractkit/chainlink/v2/core/chains/evm/config/chaintype" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/gas/rollups/mocks" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/utils" ) @@ -30,7 +30,7 @@ func TestL1Oracle(t *testing.T) { t.Run("Unsupported ChainType returns nil", func(t *testing.T) { ethClient := mocks.NewL1OracleClient(t) - assert.Nil(t, NewL1GasOracle(logger.Test(t), ethClient, config.ChainCelo)) + assert.Nil(t, NewL1GasOracle(logger.Test(t), ethClient, chaintype.ChainCelo)) }) } @@ -40,7 +40,7 @@ func TestL1Oracle_GasPrice(t *testing.T) { t.Run("Calling GasPrice on unstarted L1Oracle returns error", func(t *testing.T) { ethClient := mocks.NewL1OracleClient(t) - oracle := NewL1GasOracle(logger.Test(t), ethClient, config.ChainOptimismBedrock) + oracle := NewL1GasOracle(logger.Test(t), ethClient, chaintype.ChainOptimismBedrock) _, err := oracle.GasPrice(tests.Context(t)) assert.EqualError(t, err, "L1GasOracle is not started; cannot estimate gas") @@ -62,7 +62,7 @@ func TestL1Oracle_GasPrice(t *testing.T) { assert.Nil(t, blockNumber) }).Return(common.BigToHash(l1BaseFee).Bytes(), nil) - oracle := NewL1GasOracle(logger.Test(t), ethClient, config.ChainArbitrum) + oracle := NewL1GasOracle(logger.Test(t), ethClient, chaintype.ChainArbitrum) servicetest.RunHealthy(t, oracle) gasPrice, err := oracle.GasPrice(tests.Context(t)) @@ -101,7 +101,7 @@ func TestL1Oracle_GasPrice(t *testing.T) { assert.Nil(t, blockNumber) }).Return(common.BigToHash(l1BaseFee).Bytes(), nil) - oracle := newOpStackL1GasOracle(logger.Test(t), ethClient, config.ChainKroma, KromaGasOracleAddress) + oracle := newOpStackL1GasOracle(logger.Test(t), ethClient, chaintype.ChainKroma, KromaGasOracleAddress) servicetest.RunHealthy(t, oracle) gasPrice, err := oracle.GasPrice(tests.Context(t)) @@ -140,7 +140,7 @@ func TestL1Oracle_GasPrice(t *testing.T) { assert.Nil(t, blockNumber) }).Return(common.BigToHash(l1BaseFee).Bytes(), nil) - oracle := newOpStackL1GasOracle(logger.Test(t), ethClient, config.ChainOptimismBedrock, OPGasOracleAddress) + oracle := newOpStackL1GasOracle(logger.Test(t), ethClient, chaintype.ChainOptimismBedrock, OPGasOracleAddress) servicetest.RunHealthy(t, oracle) gasPrice, err := oracle.GasPrice(tests.Context(t)) @@ -178,7 +178,7 @@ func TestL1Oracle_GasPrice(t *testing.T) { assert.Nil(t, blockNumber) }).Return(common.BigToHash(l1BaseFee).Bytes(), nil) - oracle := NewL1GasOracle(logger.Test(t), ethClient, config.ChainScroll) + oracle := NewL1GasOracle(logger.Test(t), ethClient, chaintype.ChainScroll) require.NoError(t, oracle.Start(tests.Context(t))) t.Cleanup(func() { assert.NoError(t, oracle.Close()) }) @@ -222,7 +222,7 @@ func TestL1Oracle_GetGasCost(t *testing.T) { require.Equal(t, blockNum, blockNumber) }).Return(result, nil) - oracle := NewL1GasOracle(logger.Test(t), ethClient, config.ChainArbitrum) + oracle := NewL1GasOracle(logger.Test(t), ethClient, chaintype.ChainArbitrum) gasCost, err := oracle.GetGasCost(tests.Context(t), tx, blockNum) require.NoError(t, err) @@ -234,7 +234,7 @@ func TestL1Oracle_GetGasCost(t *testing.T) { tx := types.NewTx(&types.LegacyTx{}) ethClient := mocks.NewL1OracleClient(t) - oracle := NewL1GasOracle(logger.Test(t), ethClient, config.ChainKroma) + oracle := NewL1GasOracle(logger.Test(t), ethClient, chaintype.ChainKroma) _, err := oracle.GetGasCost(tests.Context(t), tx, blockNum) require.Error(t, err, "L1 gas cost not supported for this chain: kroma") @@ -268,7 +268,7 @@ func TestL1Oracle_GetGasCost(t *testing.T) { require.Equal(t, blockNum, blockNumber) }).Return(common.BigToHash(l1GasCost).Bytes(), nil) - oracle := NewL1GasOracle(logger.Test(t), ethClient, config.ChainOptimismBedrock) + oracle := NewL1GasOracle(logger.Test(t), ethClient, chaintype.ChainOptimismBedrock) gasCost, err := oracle.GetGasCost(tests.Context(t), tx, blockNum) require.NoError(t, err) @@ -303,7 +303,7 @@ func TestL1Oracle_GetGasCost(t *testing.T) { require.Equal(t, blockNum, blockNumber) }).Return(common.BigToHash(l1GasCost).Bytes(), nil) - oracle := NewL1GasOracle(logger.Test(t), ethClient, config.ChainScroll) + oracle := NewL1GasOracle(logger.Test(t), ethClient, chaintype.ChainScroll) gasCost, err := oracle.GetGasCost(tests.Context(t), tx, blockNum) require.NoError(t, err) diff --git a/core/chains/evm/gas/rollups/op_l1_oracle.go b/core/chains/evm/gas/rollups/op_l1_oracle.go index e180777fb61..1c4db432cea 100644 --- a/core/chains/evm/gas/rollups/op_l1_oracle.go +++ b/core/chains/evm/gas/rollups/op_l1_oracle.go @@ -21,9 +21,9 @@ import ( gethtypes "github.com/ethereum/go-ethereum/core/types" "github.com/smartcontractkit/chainlink/v2/common/client" - "github.com/smartcontractkit/chainlink/v2/common/config" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/assets" evmclient "github.com/smartcontractkit/chainlink/v2/core/chains/evm/client" + "github.com/smartcontractkit/chainlink/v2/core/chains/evm/config/chaintype" ) // Reads L2-specific precompiles and caches the l1GasPrice set by the L2. @@ -32,7 +32,7 @@ type OptimismL1Oracle struct { client l1OracleClient pollPeriod time.Duration logger logger.SugaredLogger - chainType config.ChainType + chainType chaintype.ChainType l1OracleAddress string gasPriceMethod string @@ -84,14 +84,14 @@ const ( ScrollGasOracleAddress = "0x5300000000000000000000000000000000000002" ) -func NewOpStackL1GasOracle(lggr logger.Logger, ethClient l1OracleClient, chainType config.ChainType) *OptimismL1Oracle { +func NewOpStackL1GasOracle(lggr logger.Logger, ethClient l1OracleClient, chainType chaintype.ChainType) *OptimismL1Oracle { var precompileAddress string switch chainType { - case config.ChainOptimismBedrock: + case chaintype.ChainOptimismBedrock: precompileAddress = OPGasOracleAddress - case config.ChainKroma: + case chaintype.ChainKroma: precompileAddress = KromaGasOracleAddress - case config.ChainScroll: + case chaintype.ChainScroll: precompileAddress = ScrollGasOracleAddress default: panic(fmt.Sprintf("Received unspported chaintype %s", chainType)) @@ -99,7 +99,7 @@ func NewOpStackL1GasOracle(lggr logger.Logger, ethClient l1OracleClient, chainTy return newOpStackL1GasOracle(lggr, ethClient, chainType, precompileAddress) } -func newOpStackL1GasOracle(lggr logger.Logger, ethClient l1OracleClient, chainType config.ChainType, precompileAddress string) *OptimismL1Oracle { +func newOpStackL1GasOracle(lggr logger.Logger, ethClient l1OracleClient, chainType chaintype.ChainType, precompileAddress string) *OptimismL1Oracle { var l1OracleAddress, gasPriceMethod, gasCostMethod string var l1GasPriceMethodAbi, l1GasCostMethodAbi abi.ABI var gasPriceErr, gasCostErr error @@ -274,7 +274,7 @@ func (o *OptimismL1Oracle) GetGasCost(ctx context.Context, tx *gethtypes.Transac defer cancel() var callData, b []byte var err error - if o.chainType == config.ChainKroma { + if o.chainType == chaintype.ChainKroma { return nil, fmt.Errorf("L1 gas cost not supported for this chain: %s", o.chainType) } // Append rlp-encoded tx diff --git a/core/chains/evm/gas/rollups/op_l1_oracle_test.go b/core/chains/evm/gas/rollups/op_l1_oracle_test.go index 2ed8a049653..86fdbe0a62d 100644 --- a/core/chains/evm/gas/rollups/op_l1_oracle_test.go +++ b/core/chains/evm/gas/rollups/op_l1_oracle_test.go @@ -18,7 +18,7 @@ import ( "github.com/smartcontractkit/chainlink-common/pkg/logger" "github.com/smartcontractkit/chainlink-common/pkg/utils/tests" - "github.com/smartcontractkit/chainlink/v2/common/config" + "github.com/smartcontractkit/chainlink/v2/core/chains/evm/config/chaintype" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/gas/rollups/mocks" ) @@ -87,7 +87,7 @@ func TestDAPriceReader_ReadV1GasPrice(t *testing.T) { }).Return(common.BigToHash(l1BaseFee).Bytes(), nil).Once() } - oracle := newOpStackL1GasOracle(logger.Test(t), ethClient, config.ChainOptimismBedrock, oracleAddress) + oracle := newOpStackL1GasOracle(logger.Test(t), ethClient, chaintype.ChainOptimismBedrock, oracleAddress) gasPrice, err := oracle.GetDAGasPrice(tests.Context(t)) if tc.returnBadData { @@ -155,7 +155,7 @@ func TestDAPriceReader_ReadEcotoneGasPrice(t *testing.T) { rpcElements[1].Result = &res2 }).Return(nil).Once() - oracle := newOpStackL1GasOracle(logger.Test(t), ethClient, config.ChainOptimismBedrock, oracleAddress) + oracle := newOpStackL1GasOracle(logger.Test(t), ethClient, chaintype.ChainOptimismBedrock, oracleAddress) gasPrice, err := oracle.GetDAGasPrice(tests.Context(t)) require.NoError(t, err) assert.Equal(t, l1BaseFee, gasPrice) @@ -170,7 +170,7 @@ func TestDAPriceReader_ReadEcotoneGasPrice(t *testing.T) { rpcElements[1].Result = &badData }).Return(nil).Once() - oracle := newOpStackL1GasOracle(logger.Test(t), ethClient, config.ChainOptimismBedrock, oracleAddress) + oracle := newOpStackL1GasOracle(logger.Test(t), ethClient, chaintype.ChainOptimismBedrock, oracleAddress) _, err := oracle.GetDAGasPrice(tests.Context(t)) assert.Error(t, err) }) @@ -179,7 +179,7 @@ func TestDAPriceReader_ReadEcotoneGasPrice(t *testing.T) { ethClient := setupIsEcotone(t, oracleAddress) ethClient.On("BatchCallContext", mock.Anything, mock.IsType([]rpc.BatchElem{})).Return(fmt.Errorf("revert")).Once() - oracle := newOpStackL1GasOracle(logger.Test(t), ethClient, config.ChainOptimismBedrock, oracleAddress) + oracle := newOpStackL1GasOracle(logger.Test(t), ethClient, chaintype.ChainOptimismBedrock, oracleAddress) _, err := oracle.GetDAGasPrice(tests.Context(t)) assert.Error(t, err) }) @@ -193,7 +193,7 @@ func TestDAPriceReader_ReadEcotoneGasPrice(t *testing.T) { rpcElements[1].Error = fmt.Errorf("revert") }).Return(nil).Once() - oracle := newOpStackL1GasOracle(logger.Test(t), ethClient, config.ChainOptimismBedrock, oracleAddress) + oracle := newOpStackL1GasOracle(logger.Test(t), ethClient, chaintype.ChainOptimismBedrock, oracleAddress) _, err := oracle.GetDAGasPrice(tests.Context(t)) assert.Error(t, err) }) diff --git a/core/chains/evm/txmgr/config.go b/core/chains/evm/txmgr/config.go index b41753a070b..c34de17369e 100644 --- a/core/chains/evm/txmgr/config.go +++ b/core/chains/evm/txmgr/config.go @@ -5,9 +5,9 @@ import ( gethcommon "github.com/ethereum/go-ethereum/common" - "github.com/smartcontractkit/chainlink/v2/common/config" txmgrtypes "github.com/smartcontractkit/chainlink/v2/common/txmgr/types" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/assets" + "github.com/smartcontractkit/chainlink/v2/core/chains/evm/config/chaintype" ) // ChainConfig encompasses config used by txmgr package @@ -15,7 +15,7 @@ import ( // //go:generate mockery --quiet --recursive --name ChainConfig --output ./mocks/ --case=underscore --structname Config --filename config.go type ChainConfig interface { - ChainType() config.ChainType + ChainType() chaintype.ChainType FinalityDepth() uint32 FinalityTagEnabled() bool NonceAutoSync() bool diff --git a/core/chains/evm/txmgr/mocks/config.go b/core/chains/evm/txmgr/mocks/config.go index 5b8e77a69cc..5ec00e960ab 100644 --- a/core/chains/evm/txmgr/mocks/config.go +++ b/core/chains/evm/txmgr/mocks/config.go @@ -3,7 +3,7 @@ package mocks import ( - config "github.com/smartcontractkit/chainlink/v2/common/config" + chaintype "github.com/smartcontractkit/chainlink/v2/core/chains/evm/config/chaintype" mock "github.com/stretchr/testify/mock" ) @@ -13,18 +13,18 @@ type Config struct { } // ChainType provides a mock function with given fields: -func (_m *Config) ChainType() config.ChainType { +func (_m *Config) ChainType() chaintype.ChainType { ret := _m.Called() if len(ret) == 0 { panic("no return value specified for ChainType") } - var r0 config.ChainType - if rf, ok := ret.Get(0).(func() config.ChainType); ok { + var r0 chaintype.ChainType + if rf, ok := ret.Get(0).(func() chaintype.ChainType); ok { r0 = rf() } else { - r0 = ret.Get(0).(config.ChainType) + r0 = ret.Get(0).(chaintype.ChainType) } return r0 diff --git a/core/chains/evm/txmgr/stuck_tx_detector.go b/core/chains/evm/txmgr/stuck_tx_detector.go index d48cdf00e79..23cb9b2698a 100644 --- a/core/chains/evm/txmgr/stuck_tx_detector.go +++ b/core/chains/evm/txmgr/stuck_tx_detector.go @@ -14,11 +14,11 @@ import ( "github.com/ethereum/go-ethereum/rpc" "github.com/smartcontractkit/chainlink-common/pkg/logger" - "github.com/smartcontractkit/chainlink/v2/common/config" feetypes "github.com/smartcontractkit/chainlink/v2/common/fee/types" "github.com/smartcontractkit/chainlink/v2/common/txmgr" "github.com/smartcontractkit/chainlink/v2/common/txmgr/types" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/assets" + "github.com/smartcontractkit/chainlink/v2/core/chains/evm/config/chaintype" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/gas" ) @@ -44,7 +44,7 @@ type stuckTxDetectorConfig interface { type stuckTxDetector struct { lggr logger.Logger chainID *big.Int - chainType config.ChainType + chainType chaintype.ChainType maxPrice *assets.Wei cfg stuckTxDetectorConfig @@ -57,7 +57,7 @@ type stuckTxDetector struct { purgeBlockNumMap map[common.Address]int64 // Tracks the last block num a tx was purged for each from address if the PurgeOverflowTxs feature is enabled } -func NewStuckTxDetector(lggr logger.Logger, chainID *big.Int, chainType config.ChainType, maxPrice *assets.Wei, cfg stuckTxDetectorConfig, gasEstimator stuckTxDetectorGasEstimator, txStore stuckTxDetectorTxStore, chainClient stuckTxDetectorClient) *stuckTxDetector { +func NewStuckTxDetector(lggr logger.Logger, chainID *big.Int, chainType chaintype.ChainType, maxPrice *assets.Wei, cfg stuckTxDetectorConfig, gasEstimator stuckTxDetectorGasEstimator, txStore stuckTxDetectorTxStore, chainClient stuckTxDetectorClient) *stuckTxDetector { t := http.DefaultTransport.(*http.Transport).Clone() t.DisableCompression = true httpClient := &http.Client{Transport: t} @@ -124,9 +124,9 @@ func (d *stuckTxDetector) DetectStuckTransactions(ctx context.Context, enabledAd } switch d.chainType { - case config.ChainScroll: + case chaintype.ChainScroll: return d.detectStuckTransactionsScroll(ctx, txs) - case config.ChainZkEvm: + case chaintype.ChainZkEvm: return d.detectStuckTransactionsZkEVM(ctx, txs) default: return d.detectStuckTransactionsHeuristic(ctx, txs, blockNum) @@ -365,7 +365,7 @@ func (d *stuckTxDetector) SetPurgeBlockNum(fromAddress common.Address, blockNum func (d *stuckTxDetector) StuckTxFatalError() *string { var errorMsg string switch d.chainType { - case config.ChainScroll, config.ChainZkEvm: + case chaintype.ChainScroll, chaintype.ChainZkEvm: errorMsg = "transaction skipped by chain" default: errorMsg = "transaction terminally stuck" diff --git a/core/chains/evm/txmgr/stuck_tx_detector_test.go b/core/chains/evm/txmgr/stuck_tx_detector_test.go index 02d34206ab9..e980527c989 100644 --- a/core/chains/evm/txmgr/stuck_tx_detector_test.go +++ b/core/chains/evm/txmgr/stuck_tx_detector_test.go @@ -18,10 +18,10 @@ import ( "github.com/smartcontractkit/chainlink-common/pkg/logger" "github.com/smartcontractkit/chainlink-common/pkg/utils/tests" - commonconfig "github.com/smartcontractkit/chainlink/v2/common/config" txmgrcommon "github.com/smartcontractkit/chainlink/v2/common/txmgr" txmgrtypes "github.com/smartcontractkit/chainlink/v2/common/txmgr/types" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/assets" + "github.com/smartcontractkit/chainlink/v2/core/chains/evm/config/chaintype" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/gas" gasmocks "github.com/smartcontractkit/chainlink/v2/core/chains/evm/gas/mocks" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/testutils" @@ -271,7 +271,7 @@ func TestStuckTxDetector_DetectStuckTransactionsZkEVM(t *testing.T) { enabled: true, } blockNum := int64(100) - stuckTxDetector := txmgr.NewStuckTxDetector(lggr, testutils.FixtureChainID, commonconfig.ChainZkEvm, assets.NewWei(assets.NewEth(100).ToInt()), autoPurgeCfg, feeEstimator, txStore, ethClient) + stuckTxDetector := txmgr.NewStuckTxDetector(lggr, testutils.FixtureChainID, chaintype.ChainZkEvm, assets.NewWei(assets.NewEth(100).ToInt()), autoPurgeCfg, feeEstimator, txStore, ethClient) t.Run("returns empty list if no stuck transactions identified", func(t *testing.T) { _, fromAddress := cltest.MustInsertRandomKey(t, ethKeyStore) tx := mustInsertUnconfirmedTxWithBroadcastAttempts(t, txStore, 0, fromAddress, 1, blockNum, tenGwei) @@ -354,7 +354,7 @@ func TestStuckTxDetector_DetectStuckTransactionsScroll(t *testing.T) { enabled: true, detectionApiUrl: testUrl, } - stuckTxDetector := txmgr.NewStuckTxDetector(lggr, testutils.FixtureChainID, commonconfig.ChainScroll, assets.NewWei(assets.NewEth(100).ToInt()), autoPurgeCfg, feeEstimator, txStore, ethClient) + stuckTxDetector := txmgr.NewStuckTxDetector(lggr, testutils.FixtureChainID, chaintype.ChainScroll, assets.NewWei(assets.NewEth(100).ToInt()), autoPurgeCfg, feeEstimator, txStore, ethClient) txs, err := stuckTxDetector.DetectStuckTransactions(ctx, []common.Address{fromAddress1, fromAddress2}, blockNum) require.NoError(t, err) diff --git a/core/chains/evm/txmgr/test_helpers.go b/core/chains/evm/txmgr/test_helpers.go index ea19e056431..3b3584a988b 100644 --- a/core/chains/evm/txmgr/test_helpers.go +++ b/core/chains/evm/txmgr/test_helpers.go @@ -7,9 +7,9 @@ import ( "github.com/ethereum/go-ethereum/common" - commonconfig "github.com/smartcontractkit/chainlink/v2/common/config" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/assets" evmconfig "github.com/smartcontractkit/chainlink/v2/core/chains/evm/config" + "github.com/smartcontractkit/chainlink/v2/core/chains/evm/config/chaintype" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/utils" "github.com/smartcontractkit/chainlink/v2/core/config" ) @@ -63,7 +63,7 @@ func (e *TestEvmConfig) NonceAutoSync() bool { return true } func (e *TestEvmConfig) FinalityDepth() uint32 { return 42 } -func (e *TestEvmConfig) ChainType() commonconfig.ChainType { return "" } +func (e *TestEvmConfig) ChainType() chaintype.ChainType { return "" } type TestGasEstimatorConfig struct { bumpThreshold uint64 @@ -151,12 +151,12 @@ func (c *MockConfig) EVM() evmconfig.EVM { return c.EvmConfig } -func (c *MockConfig) NonceAutoSync() bool { return true } -func (c *MockConfig) ChainType() commonconfig.ChainType { return "" } -func (c *MockConfig) FinalityDepth() uint32 { return c.finalityDepth } -func (c *MockConfig) SetFinalityDepth(fd uint32) { c.finalityDepth = fd } -func (c *MockConfig) FinalityTagEnabled() bool { return c.finalityTagEnabled } -func (c *MockConfig) RPCDefaultBatchSize() uint32 { return c.RpcDefaultBatchSize } +func (c *MockConfig) NonceAutoSync() bool { return true } +func (c *MockConfig) ChainType() chaintype.ChainType { return "" } +func (c *MockConfig) FinalityDepth() uint32 { return c.finalityDepth } +func (c *MockConfig) SetFinalityDepth(fd uint32) { c.finalityDepth = fd } +func (c *MockConfig) FinalityTagEnabled() bool { return c.finalityTagEnabled } +func (c *MockConfig) RPCDefaultBatchSize() uint32 { return c.RpcDefaultBatchSize } func MakeTestConfigs(t *testing.T) (*MockConfig, *TestDatabaseConfig, *TestEvmConfig) { db := &TestDatabaseConfig{defaultQueryTimeout: utils.DefaultQueryTimeout} diff --git a/core/chains/legacyevm/chain.go b/core/chains/legacyevm/chain.go index 27e0155da52..1c94e3d7dfa 100644 --- a/core/chains/legacyevm/chain.go +++ b/core/chains/legacyevm/chain.go @@ -212,7 +212,7 @@ func newChain(ctx context.Context, cfg *evmconfig.ChainScoped, nodes []*toml.Nod if !opts.AppConfig.EVMRPCEnabled() { client = evmclient.NewNullClient(chainID, l) } else if opts.GenEthClient == nil { - client = evmclient.NewEvmClient(cfg.EVM().NodePool(), cfg.EVM(), cfg.EVM().NodePool().Errors(), l, chainID, nodes) + client = evmclient.NewEvmClient(cfg.EVM().NodePool(), cfg.EVM(), cfg.EVM().NodePool().Errors(), l, chainID, nodes, cfg.EVM().ChainType()) } else { client = opts.GenEthClient(chainID) } diff --git a/core/config/docs/docs_test.go b/core/config/docs/docs_test.go index 2e2451ab57a..8f46497cb5f 100644 --- a/core/config/docs/docs_test.go +++ b/core/config/docs/docs_test.go @@ -15,8 +15,8 @@ import ( stkcfg "github.com/smartcontractkit/chainlink-starknet/relayer/pkg/chainlink/config" "github.com/smartcontractkit/chainlink-common/pkg/config" - commonconfig "github.com/smartcontractkit/chainlink/v2/common/config" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/assets" + "github.com/smartcontractkit/chainlink/v2/core/chains/evm/config/chaintype" evmcfg "github.com/smartcontractkit/chainlink/v2/core/chains/evm/config/toml" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/types" "github.com/smartcontractkit/chainlink/v2/core/config/docs" @@ -47,7 +47,7 @@ func TestDoc(t *testing.T) { fallbackDefaults := evmcfg.Defaults(nil) docDefaults := defaults.EVM[0].Chain - require.Equal(t, commonconfig.ChainType(""), docDefaults.ChainType.ChainType()) + require.Equal(t, chaintype.ChainType(""), docDefaults.ChainType.ChainType()) docDefaults.ChainType = nil // clean up KeySpecific as a special case diff --git a/core/services/chainlink/config_test.go b/core/services/chainlink/config_test.go index 20c2dd8d57e..11fbfbea3b3 100644 --- a/core/services/chainlink/config_test.go +++ b/core/services/chainlink/config_test.go @@ -26,9 +26,9 @@ import ( stkcfg "github.com/smartcontractkit/chainlink-starknet/relayer/pkg/chainlink/config" "github.com/smartcontractkit/chainlink/v2/common/client" - commonconfig "github.com/smartcontractkit/chainlink/v2/common/config" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/assets" + "github.com/smartcontractkit/chainlink/v2/core/chains/evm/config/chaintype" evmcfg "github.com/smartcontractkit/chainlink/v2/core/chains/evm/config/toml" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/types" ubig "github.com/smartcontractkit/chainlink/v2/core/chains/evm/utils/big" @@ -495,7 +495,7 @@ func TestConfig_Marshal(t *testing.T) { }, BlockBackfillDepth: ptr[uint32](100), BlockBackfillSkip: ptr(true), - ChainType: commonconfig.NewChainTypeConfig("Optimism"), + ChainType: chaintype.NewChainTypeConfig("Optimism"), FinalityDepth: ptr[uint32](42), FinalityTagEnabled: ptr[bool](false), FlagsContractAddress: mustAddress("0xae4E781a6218A8031764928E88d457937A954fC3"), diff --git a/core/services/ocr/contract_tracker.go b/core/services/ocr/contract_tracker.go index 34852bbe74b..8da17908d11 100644 --- a/core/services/ocr/contract_tracker.go +++ b/core/services/ocr/contract_tracker.go @@ -22,8 +22,8 @@ import ( "github.com/smartcontractkit/chainlink-common/pkg/sqlutil" "github.com/smartcontractkit/chainlink-common/pkg/utils/mailbox" - "github.com/smartcontractkit/chainlink/v2/common/config" evmclient "github.com/smartcontractkit/chainlink/v2/core/chains/evm/client" + "github.com/smartcontractkit/chainlink/v2/core/chains/evm/config/chaintype" httypes "github.com/smartcontractkit/chainlink/v2/core/chains/evm/headtracker/types" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/log" evmtypes "github.com/smartcontractkit/chainlink/v2/core/chains/evm/types" @@ -217,7 +217,7 @@ func (t *OCRContractTracker) processLogs() { select { case <-t.configsMB.Notify(): // NOTE: libocr could take an arbitrary amount of time to process a - // new config. To avoid blocking the log broadcaster, we use this + // new chaintype. To avoid blocking the log broadcaster, we use this // background thread to deliver them and a mailbox as the buffer. for { cc, exists := t.configsMB.Retrieve() @@ -395,12 +395,12 @@ func (t *OCRContractTracker) ConfigFromLogs(ctx context.Context, changedInBlock // LatestBlockHeight queries the eth node for the most recent header func (t *OCRContractTracker) LatestBlockHeight(ctx context.Context) (blockheight uint64, err error) { switch t.cfg.ChainType() { - case config.ChainMetis: + case chaintype.ChainMetis: // We skip confirmation checking anyway on these L2s so there's no need to // care about the block height; we have no way of getting the L1 block // height anyway return 0, nil - case "", config.ChainArbitrum, config.ChainCelo, config.ChainGnosis, config.ChainKroma, config.ChainOptimismBedrock, config.ChainScroll, config.ChainWeMix, config.ChainXLayer, config.ChainZkEvm, config.ChainZkSync: + case "", chaintype.ChainArbitrum, chaintype.ChainCelo, chaintype.ChainGnosis, chaintype.ChainKroma, chaintype.ChainOptimismBedrock, chaintype.ChainScroll, chaintype.ChainWeMix, chaintype.ChainXLayer, chaintype.ChainZkEvm, chaintype.ChainZkSync: // continue } latestBlockHeight := t.getLatestBlockHeight() diff --git a/core/services/ocr/validate.go b/core/services/ocr/validate.go index a31994f891a..1a93dfb8b5b 100644 --- a/core/services/ocr/validate.go +++ b/core/services/ocr/validate.go @@ -10,8 +10,8 @@ import ( "github.com/smartcontractkit/libocr/offchainreporting" - "github.com/smartcontractkit/chainlink/v2/common/config" evmconfig "github.com/smartcontractkit/chainlink/v2/core/chains/evm/config" + "github.com/smartcontractkit/chainlink/v2/core/chains/evm/config/chaintype" "github.com/smartcontractkit/chainlink/v2/core/chains/evm/types" "github.com/smartcontractkit/chainlink/v2/core/chains/legacyevm" coreconfig "github.com/smartcontractkit/chainlink/v2/core/config" @@ -25,7 +25,7 @@ type GeneralConfig interface { } type ValidationConfig interface { - ChainType() config.ChainType + ChainType() chaintype.ChainType } type OCRValidationConfig interface { diff --git a/core/services/ocrcommon/block_translator.go b/core/services/ocrcommon/block_translator.go index 7bce661e692..d7ceffc5ea7 100644 --- a/core/services/ocrcommon/block_translator.go +++ b/core/services/ocrcommon/block_translator.go @@ -4,8 +4,8 @@ import ( "context" "math/big" - "github.com/smartcontractkit/chainlink/v2/common/config" evmclient "github.com/smartcontractkit/chainlink/v2/core/chains/evm/client" + "github.com/smartcontractkit/chainlink/v2/core/chains/evm/config/chaintype" evmtypes "github.com/smartcontractkit/chainlink/v2/core/chains/evm/types" "github.com/smartcontractkit/chainlink/v2/core/logger" ) @@ -19,9 +19,9 @@ type BlockTranslator interface { // NewBlockTranslator returns the block translator for the given chain func NewBlockTranslator(cfg Config, client evmclient.Client, lggr logger.Logger) BlockTranslator { switch cfg.ChainType() { - case config.ChainArbitrum: + case chaintype.ChainArbitrum: return NewArbitrumBlockTranslator(client, lggr) - case "", config.ChainCelo, config.ChainGnosis, config.ChainKroma, config.ChainMetis, config.ChainOptimismBedrock, config.ChainScroll, config.ChainWeMix, config.ChainXLayer, config.ChainZkEvm, config.ChainZkSync: + case "", chaintype.ChainCelo, chaintype.ChainGnosis, chaintype.ChainKroma, chaintype.ChainMetis, chaintype.ChainOptimismBedrock, chaintype.ChainScroll, chaintype.ChainWeMix, chaintype.ChainXLayer, chaintype.ChainZkEvm, chaintype.ChainZkSync: fallthrough default: return &l1BlockTranslator{} diff --git a/core/services/ocrcommon/config.go b/core/services/ocrcommon/config.go index 2fcc877610c..b8572ee7e78 100644 --- a/core/services/ocrcommon/config.go +++ b/core/services/ocrcommon/config.go @@ -5,11 +5,11 @@ import ( "github.com/smartcontractkit/libocr/commontypes" - "github.com/smartcontractkit/chainlink/v2/common/config" + "github.com/smartcontractkit/chainlink/v2/core/chains/evm/config/chaintype" ) type Config interface { - ChainType() config.ChainType + ChainType() chaintype.ChainType } func ParseBootstrapPeers(peers []string) (bootstrapPeers []commontypes.BootstrapperLocator, err error) { From 592b2bb5a84a0e8858f77c5faa99e881f911878c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bla=C5=BE=20Hrastnik?= Date: Mon, 10 Jun 2024 18:23:10 +0900 Subject: [PATCH 37/40] Keystone: add router and other refactors (#13426) * keystone: Split forwarder into two contracts * keystone: Add a ConfigSet event * add events to router, further changes * forwarder: Use OwnerIsCreator, ITypeAndVersion * Remove TODO * Replace _splitSignature with code * minor gas savings by caching config var * Cache array length * Remove TODO * Port over reentrancy guard optimization * Don't assign signers twice * Update gethwrappers * Address some feedback on KeystoneFeedsConsumer * Inline signer in setConfig/clearConfig * Update gethwrappers * Remove unused import * prettier format * Generate bindings for router too * Update gethwrappers * Fix keystone scripts * Add KeystoneRouter tests * Update snapshot * Remove redundant operations * Remove more variables * Remove another unnecessary conversion * Remove unnecessary version check * ConfigId bytes32 => uint64 * Slight improvement to error path with duplicate signer * Optimize clearConfig function * More micro optimizations * Inline functions * Remove dangling error * Move things around * Add reportId to ReportProcessed * Handle empty receiver address case * Side: update "f" value in CapabilityRegistry * Nit: import order * Style Guide: uint256 i = 0 * Add forwarder and router getters * Add changesets * Remove unused error * Update gethwrappers * receiverAddress -> receiver * Update gethwrappers --------- Co-authored-by: app-token-issuer-infra-releng[bot] <120227048+app-token-issuer-infra-releng[bot]@users.noreply.github.com> Co-authored-by: DeividasK --- .changeset/shy-deers-hope.md | 5 + contracts/.changeset/new-bugs-draw.md | 5 + contracts/gas-snapshots/keystone.gas-snapshot | 178 ++-- .../scripts/native_solc_compile_all_keystone | 1 + .../src/v0.8/keystone/CapabilityRegistry.sol | 12 +- .../v0.8/keystone/KeystoneFeedsConsumer.sol | 32 +- .../src/v0.8/keystone/KeystoneForwarder.sol | 222 ++-- .../src/v0.8/keystone/KeystoneRouter.sol | 76 ++ .../src/v0.8/keystone/interfaces/IRouter.sol | 22 + .../src/v0.8/keystone/test/Constants.t.sol | 2 +- .../test/KeystoneForwarderBaseTest.t.sol | 6 +- .../test/KeystoneForwarder_ReportTest.t.sol | 80 +- .../test/KeystoneRouter_AccessTest.t.sol | 56 + core/capabilities/targets/write_target.go | 8 +- .../keystone/generated/forwarder/forwarder.go | 267 ++++- .../keystone_capability_registry.go | 22 +- .../keystone/generated/router/router.go | 954 ++++++++++++++++++ ...rapper-dependency-versions-do-not-edit.txt | 5 +- core/gethwrappers/keystone/go_generate.go | 1 + .../keystone/src/01_deploy_contracts_cmd.go | 24 +- 20 files changed, 1681 insertions(+), 297 deletions(-) create mode 100644 .changeset/shy-deers-hope.md create mode 100644 contracts/.changeset/new-bugs-draw.md create mode 100644 contracts/src/v0.8/keystone/KeystoneRouter.sol create mode 100644 contracts/src/v0.8/keystone/interfaces/IRouter.sol create mode 100644 contracts/src/v0.8/keystone/test/KeystoneRouter_AccessTest.t.sol create mode 100644 core/gethwrappers/keystone/generated/router/router.go diff --git a/.changeset/shy-deers-hope.md b/.changeset/shy-deers-hope.md new file mode 100644 index 00000000000..0408383bd03 --- /dev/null +++ b/.changeset/shy-deers-hope.md @@ -0,0 +1,5 @@ +--- +"chainlink": patch +--- + +#internal diff --git a/contracts/.changeset/new-bugs-draw.md b/contracts/.changeset/new-bugs-draw.md new file mode 100644 index 00000000000..93fba83b558 --- /dev/null +++ b/contracts/.changeset/new-bugs-draw.md @@ -0,0 +1,5 @@ +--- +'@chainlink/contracts': patch +--- + +#internal diff --git a/contracts/gas-snapshots/keystone.gas-snapshot b/contracts/gas-snapshots/keystone.gas-snapshot index 0cc6650f860..fb41fa7d637 100644 --- a/contracts/gas-snapshots/keystone.gas-snapshot +++ b/contracts/gas-snapshots/keystone.gas-snapshot @@ -1,99 +1,105 @@ -CapabilityRegistry_AddCapabilitiesTest:test_AddCapability_NoConfigurationContract() (gas: 152088) -CapabilityRegistry_AddCapabilitiesTest:test_AddCapability_WithConfiguration() (gas: 176069) -CapabilityRegistry_AddCapabilitiesTest:test_RevertWhen_CalledByNonAdmin() (gas: 24678) -CapabilityRegistry_AddCapabilitiesTest:test_RevertWhen_CapabilityExists() (gas: 145679) -CapabilityRegistry_AddCapabilitiesTest:test_RevertWhen_ConfigurationContractDoesNotMatchInterface() (gas: 94561) -CapabilityRegistry_AddCapabilitiesTest:test_RevertWhen_ConfigurationContractNotDeployed() (gas: 92916) -CapabilityRegistry_AddDONTest:test_AddDON() (gas: 499044) -CapabilityRegistry_AddDONTest:test_RevertWhen_CalledByNonAdmin() (gas: 19249) -CapabilityRegistry_AddDONTest:test_RevertWhen_CapabilityDoesNotExist() (gas: 291958) -CapabilityRegistry_AddDONTest:test_RevertWhen_DeprecatedCapabilityAdded() (gas: 365106) -CapabilityRegistry_AddDONTest:test_RevertWhen_DuplicateCapabilityAdded() (gas: 375985) -CapabilityRegistry_AddDONTest:test_RevertWhen_DuplicateNodeAdded() (gas: 177974) -CapabilityRegistry_AddDONTest:test_RevertWhen_FaultToleranceIsZero() (gas: 43337) -CapabilityRegistry_AddDONTest:test_RevertWhen_NodeDoesNotSupportCapability() (gas: 306419) -CapabilityRegistry_AddNodeOperatorsTest:test_AddNodeOperators() (gas: 184267) -CapabilityRegistry_AddNodeOperatorsTest:test_RevertWhen_CalledByNonAdmin() (gas: 17624) -CapabilityRegistry_AddNodeOperatorsTest:test_RevertWhen_NodeOperatorAdminAddressZero() (gas: 18520) -CapabilityRegistry_AddNodesTest:test_AddsNodeInfo() (gas: 355444) -CapabilityRegistry_AddNodesTest:test_OwnerCanAddNodes() (gas: 355432) -CapabilityRegistry_AddNodesTest:test_RevertWhen_AddingDuplicateP2PId() (gas: 301394) -CapabilityRegistry_AddNodesTest:test_RevertWhen_AddingNodeWithInvalidCapability() (gas: 55229) -CapabilityRegistry_AddNodesTest:test_RevertWhen_AddingNodeWithInvalidNodeOperator() (gas: 24962) -CapabilityRegistry_AddNodesTest:test_RevertWhen_AddingNodeWithoutCapabilities() (gas: 27724) -CapabilityRegistry_AddNodesTest:test_RevertWhen_CalledByNonNodeOperatorAdminAndNonOwner() (gas: 25130) -CapabilityRegistry_AddNodesTest:test_RevertWhen_P2PIDEmpty() (gas: 27430) -CapabilityRegistry_AddNodesTest:test_RevertWhen_SignerAddressEmpty() (gas: 27069) -CapabilityRegistry_AddNodesTest:test_RevertWhen_SignerAddressNotUnique() (gas: 309822) -CapabilityRegistry_DeprecateCapabilitiesTest:test_DeprecatesCapability() (gas: 92873) -CapabilityRegistry_DeprecateCapabilitiesTest:test_EmitsEvent() (gas: 93001) -CapabilityRegistry_DeprecateCapabilitiesTest:test_RevertWhen_CalledByNonAdmin() (gas: 22879) -CapabilityRegistry_DeprecateCapabilitiesTest:test_RevertWhen_CapabilityDoesNotExist() (gas: 16166) -CapabilityRegistry_DeprecateCapabilitiesTest:test_RevertWhen_CapabilityIsDeprecated() (gas: 94265) -CapabilityRegistry_GetCapabilitiesTest:test_ExcludesDeprecatedCapabilities() (gas: 122065) +CapabilityRegistry_AddCapabilitiesTest:test_AddCapability_NoConfigurationContract() (gas: 152156) +CapabilityRegistry_AddCapabilitiesTest:test_AddCapability_WithConfiguration() (gas: 176137) +CapabilityRegistry_AddCapabilitiesTest:test_RevertWhen_CalledByNonAdmin() (gas: 24723) +CapabilityRegistry_AddCapabilitiesTest:test_RevertWhen_CapabilityExists() (gas: 145769) +CapabilityRegistry_AddCapabilitiesTest:test_RevertWhen_ConfigurationContractDoesNotMatchInterface() (gas: 94606) +CapabilityRegistry_AddCapabilitiesTest:test_RevertWhen_ConfigurationContractNotDeployed() (gas: 92961) +CapabilityRegistry_AddDONTest:test_AddDON() (gas: 499005) +CapabilityRegistry_AddDONTest:test_RevertWhen_CalledByNonAdmin() (gas: 19247) +CapabilityRegistry_AddDONTest:test_RevertWhen_CapabilityDoesNotExist() (gas: 291948) +CapabilityRegistry_AddDONTest:test_RevertWhen_DeprecatedCapabilityAdded() (gas: 365161) +CapabilityRegistry_AddDONTest:test_RevertWhen_DuplicateCapabilityAdded() (gas: 375975) +CapabilityRegistry_AddDONTest:test_RevertWhen_DuplicateNodeAdded() (gas: 177964) +CapabilityRegistry_AddDONTest:test_RevertWhen_FaultToleranceIsZero() (gas: 43332) +CapabilityRegistry_AddDONTest:test_RevertWhen_NodeDoesNotSupportCapability() (gas: 306409) +CapabilityRegistry_AddNodeOperatorsTest:test_AddNodeOperators() (gas: 184333) +CapabilityRegistry_AddNodeOperatorsTest:test_RevertWhen_CalledByNonAdmin() (gas: 17602) +CapabilityRegistry_AddNodeOperatorsTest:test_RevertWhen_NodeOperatorAdminAddressZero() (gas: 18498) +CapabilityRegistry_AddNodesTest:test_AddsNodeInfo() (gas: 355400) +CapabilityRegistry_AddNodesTest:test_OwnerCanAddNodes() (gas: 355388) +CapabilityRegistry_AddNodesTest:test_RevertWhen_AddingDuplicateP2PId() (gas: 301350) +CapabilityRegistry_AddNodesTest:test_RevertWhen_AddingNodeWithInvalidCapability() (gas: 55207) +CapabilityRegistry_AddNodesTest:test_RevertWhen_AddingNodeWithInvalidNodeOperator() (gas: 24940) +CapabilityRegistry_AddNodesTest:test_RevertWhen_AddingNodeWithoutCapabilities() (gas: 27702) +CapabilityRegistry_AddNodesTest:test_RevertWhen_CalledByNonNodeOperatorAdminAndNonOwner() (gas: 25108) +CapabilityRegistry_AddNodesTest:test_RevertWhen_P2PIDEmpty() (gas: 27408) +CapabilityRegistry_AddNodesTest:test_RevertWhen_SignerAddressEmpty() (gas: 27047) +CapabilityRegistry_AddNodesTest:test_RevertWhen_SignerAddressNotUnique() (gas: 309778) +CapabilityRegistry_DeprecateCapabilitiesTest:test_DeprecatesCapability() (gas: 92938) +CapabilityRegistry_DeprecateCapabilitiesTest:test_EmitsEvent() (gas: 93066) +CapabilityRegistry_DeprecateCapabilitiesTest:test_RevertWhen_CalledByNonAdmin() (gas: 22944) +CapabilityRegistry_DeprecateCapabilitiesTest:test_RevertWhen_CapabilityDoesNotExist() (gas: 16231) +CapabilityRegistry_DeprecateCapabilitiesTest:test_RevertWhen_CapabilityIsDeprecated() (gas: 94395) +CapabilityRegistry_GetCapabilitiesTest:test_ExcludesDeprecatedCapabilities() (gas: 122130) CapabilityRegistry_GetCapabilitiesTest:test_ReturnsCapabilities() (gas: 58327) -CapabilityRegistry_GetDONsTest:test_CorrectlyFetchesDONs() (gas: 65704) -CapabilityRegistry_GetDONsTest:test_DoesNotIncludeRemovedDONs() (gas: 88473) +CapabilityRegistry_GetDONsTest:test_CorrectlyFetchesDONs() (gas: 65746) +CapabilityRegistry_GetDONsTest:test_DoesNotIncludeRemovedDONs() (gas: 88461) CapabilityRegistry_GetHashedCapabilityTest:test_CorrectlyGeneratesHashedCapabilityId() (gas: 11428) CapabilityRegistry_GetHashedCapabilityTest:test_DoesNotCauseIncorrectClashes() (gas: 13087) -CapabilityRegistry_GetNodeOperatorsTest:test_CorrectlyFetchesNodeOperators() (gas: 36675) -CapabilityRegistry_GetNodeOperatorsTest:test_DoesNotIncludeRemovedNodeOperators() (gas: 38982) +CapabilityRegistry_GetNodeOperatorsTest:test_CorrectlyFetchesNodeOperators() (gas: 36653) +CapabilityRegistry_GetNodeOperatorsTest:test_DoesNotIncludeRemovedNodeOperators() (gas: 38938) CapabilityRegistry_GetNodesTest:test_CorrectlyFetchesNodes() (gas: 59861) -CapabilityRegistry_GetNodesTest:test_DoesNotIncludeRemovedNodes() (gas: 71561) -CapabilityRegistry_RemoveDONsTest:test_RemovesDON() (gas: 60696) -CapabilityRegistry_RemoveDONsTest:test_RevertWhen_CalledByNonAdmin() (gas: 15669) -CapabilityRegistry_RemoveDONsTest:test_RevertWhen_DONDoesNotExist() (gas: 16540) -CapabilityRegistry_RemoveNodeOperatorsTest:test_RemovesNodeOperator() (gas: 36069) -CapabilityRegistry_RemoveNodeOperatorsTest:test_RevertWhen_CalledByNonOwner() (gas: 15838) -CapabilityRegistry_RemoveNodesTest:test_CanAddNodeWithSameSignerAddressAfterRemoving() (gas: 114053) -CapabilityRegistry_RemoveNodesTest:test_CanRemoveWhenDONDeleted() (gas: 371521) -CapabilityRegistry_RemoveNodesTest:test_CanRemoveWhenNodeNoLongerPartOfDON() (gas: 712537) -CapabilityRegistry_RemoveNodesTest:test_OwnerCanRemoveNodes() (gas: 72324) -CapabilityRegistry_RemoveNodesTest:test_RemovesNode() (gas: 74158) -CapabilityRegistry_RemoveNodesTest:test_RevertWhen_CalledByNonNodeOperatorAdminAndNonOwner() (gas: 24871) -CapabilityRegistry_RemoveNodesTest:test_RevertWhen_NodeDoesNotExist() (gas: 18373) -CapabilityRegistry_RemoveNodesTest:test_RevertWhen_NodePartOfDON() (gas: 385126) -CapabilityRegistry_RemoveNodesTest:test_RevertWhen_P2PIDEmpty() (gas: 18385) +CapabilityRegistry_GetNodesTest:test_DoesNotIncludeRemovedNodes() (gas: 71597) +CapabilityRegistry_RemoveDONsTest:test_RemovesDON() (gas: 60669) +CapabilityRegistry_RemoveDONsTest:test_RevertWhen_CalledByNonAdmin() (gas: 15647) +CapabilityRegistry_RemoveDONsTest:test_RevertWhen_DONDoesNotExist() (gas: 16518) +CapabilityRegistry_RemoveNodeOperatorsTest:test_RemovesNodeOperator() (gas: 36122) +CapabilityRegistry_RemoveNodeOperatorsTest:test_RevertWhen_CalledByNonOwner() (gas: 15816) +CapabilityRegistry_RemoveNodesTest:test_CanAddNodeWithSameSignerAddressAfterRemoving() (gas: 114054) +CapabilityRegistry_RemoveNodesTest:test_CanRemoveWhenDONDeleted() (gas: 371555) +CapabilityRegistry_RemoveNodesTest:test_CanRemoveWhenNodeNoLongerPartOfDON() (gas: 712587) +CapabilityRegistry_RemoveNodesTest:test_OwnerCanRemoveNodes() (gas: 72342) +CapabilityRegistry_RemoveNodesTest:test_RemovesNode() (gas: 74176) +CapabilityRegistry_RemoveNodesTest:test_RevertWhen_CalledByNonNodeOperatorAdminAndNonOwner() (gas: 24916) +CapabilityRegistry_RemoveNodesTest:test_RevertWhen_NodeDoesNotExist() (gas: 18418) +CapabilityRegistry_RemoveNodesTest:test_RevertWhen_NodePartOfDON() (gas: 385167) +CapabilityRegistry_RemoveNodesTest:test_RevertWhen_P2PIDEmpty() (gas: 18430) CapabilityRegistry_TypeAndVersionTest:test_TypeAndVersion() (gas: 9796) -CapabilityRegistry_UpdateDONTest:test_RevertWhen_CalledByNonAdmin() (gas: 19406) +CapabilityRegistry_UpdateDONTest:test_RevertWhen_CalledByNonAdmin() (gas: 19411) CapabilityRegistry_UpdateDONTest:test_RevertWhen_CapabilityDoesNotExist() (gas: 157904) -CapabilityRegistry_UpdateDONTest:test_RevertWhen_DONDoesNotExist() (gas: 17826) -CapabilityRegistry_UpdateDONTest:test_RevertWhen_DeprecatedCapabilityAdded() (gas: 231052) +CapabilityRegistry_UpdateDONTest:test_RevertWhen_DONDoesNotExist() (gas: 17831) +CapabilityRegistry_UpdateDONTest:test_RevertWhen_DeprecatedCapabilityAdded() (gas: 231117) CapabilityRegistry_UpdateDONTest:test_RevertWhen_DuplicateCapabilityAdded() (gas: 241977) CapabilityRegistry_UpdateDONTest:test_RevertWhen_DuplicateNodeAdded() (gas: 103722) CapabilityRegistry_UpdateDONTest:test_RevertWhen_NodeDoesNotSupportCapability() (gas: 172410) -CapabilityRegistry_UpdateDONTest:test_UpdatesDON() (gas: 433638) -CapabilityRegistry_UpdateNodeOperatorTest:test_RevertWhen_CalledByNonAdminAndNonOwner() (gas: 20583) -CapabilityRegistry_UpdateNodeOperatorTest:test_RevertWhen_NodeOperatorAdminIsZeroAddress() (gas: 20004) -CapabilityRegistry_UpdateNodeOperatorTest:test_RevertWhen_NodeOperatorDoesNotExist() (gas: 19742) -CapabilityRegistry_UpdateNodeOperatorTest:test_RevertWhen_NodeOperatorIdAndParamLengthsMismatch() (gas: 15382) -CapabilityRegistry_UpdateNodeOperatorTest:test_UpdatesNodeOperator() (gas: 36903) -CapabilityRegistry_UpdateNodesTest:test_CanUpdateParamsIfNodeSignerAddressNoLongerUsed() (gas: 250725) -CapabilityRegistry_UpdateNodesTest:test_OwnerCanUpdateNodes() (gas: 158858) -CapabilityRegistry_UpdateNodesTest:test_RevertWhen_AddingNodeWithInvalidCapability() (gas: 35985) -CapabilityRegistry_UpdateNodesTest:test_RevertWhen_CalledByNonNodeOperatorAdminAndNonOwner() (gas: 25086) -CapabilityRegistry_UpdateNodesTest:test_RevertWhen_NodeDoesNotExist() (gas: 27325) -CapabilityRegistry_UpdateNodesTest:test_RevertWhen_NodeSignerAlreadyAssignedToAnotherNode() (gas: 29206) -CapabilityRegistry_UpdateNodesTest:test_RevertWhen_P2PIDEmpty() (gas: 27313) -CapabilityRegistry_UpdateNodesTest:test_RevertWhen_SignerAddressEmpty() (gas: 26996) -CapabilityRegistry_UpdateNodesTest:test_RevertWhen_UpdatingNodeWithoutCapabilities() (gas: 25560) -CapabilityRegistry_UpdateNodesTest:test_UpdatesNodeInfo() (gas: 158847) -KeystoneForwarder_ReportTest:test_Report_ConfigVersion() (gas: 2676465) -KeystoneForwarder_ReportTest:test_Report_SuccessfulDelivery() (gas: 150738) -KeystoneForwarder_ReportTest:test_RevertWhen_AlreadyProcessed() (gas: 158024) -KeystoneForwarder_ReportTest:test_RevertWhen_AnySignatureIsInvalid() (gas: 111634) -KeystoneForwarder_ReportTest:test_RevertWhen_AnySignerIsInvalid() (gas: 143377) -KeystoneForwarder_ReportTest:test_RevertWhen_ReportHasDuplicateSignatures() (gas: 119553) -KeystoneForwarder_ReportTest:test_RevertWhen_ReportHasIncorrectDON() (gas: 98500) -KeystoneForwarder_ReportTest:test_RevertWhen_ReportHasInexistentConfigVersion() (gas: 98757) -KeystoneForwarder_ReportTest:test_RevertWhen_ReportIsMalformed() (gas: 67777) -KeystoneForwarder_ReportTest:test_RevertWhen_TooFewSignatures() (gas: 77819) -KeystoneForwarder_ReportTest:test_RevertWhen_TooManySignatures() (gas: 78543) +CapabilityRegistry_UpdateDONTest:test_UpdatesDON() (gas: 433641) +CapabilityRegistry_UpdateNodeOperatorTest:test_RevertWhen_CalledByNonAdminAndNonOwner() (gas: 20627) +CapabilityRegistry_UpdateNodeOperatorTest:test_RevertWhen_NodeOperatorAdminIsZeroAddress() (gas: 20048) +CapabilityRegistry_UpdateNodeOperatorTest:test_RevertWhen_NodeOperatorDoesNotExist() (gas: 19786) +CapabilityRegistry_UpdateNodeOperatorTest:test_RevertWhen_NodeOperatorIdAndParamLengthsMismatch() (gas: 15426) +CapabilityRegistry_UpdateNodeOperatorTest:test_UpdatesNodeOperator() (gas: 36991) +CapabilityRegistry_UpdateNodesTest:test_CanUpdateParamsIfNodeSignerAddressNoLongerUsed() (gas: 250659) +CapabilityRegistry_UpdateNodesTest:test_OwnerCanUpdateNodes() (gas: 158814) +CapabilityRegistry_UpdateNodesTest:test_RevertWhen_AddingNodeWithInvalidCapability() (gas: 35963) +CapabilityRegistry_UpdateNodesTest:test_RevertWhen_CalledByNonNodeOperatorAdminAndNonOwner() (gas: 25064) +CapabilityRegistry_UpdateNodesTest:test_RevertWhen_NodeDoesNotExist() (gas: 27303) +CapabilityRegistry_UpdateNodesTest:test_RevertWhen_NodeSignerAlreadyAssignedToAnotherNode() (gas: 29184) +CapabilityRegistry_UpdateNodesTest:test_RevertWhen_P2PIDEmpty() (gas: 27291) +CapabilityRegistry_UpdateNodesTest:test_RevertWhen_SignerAddressEmpty() (gas: 26974) +CapabilityRegistry_UpdateNodesTest:test_RevertWhen_UpdatingNodeWithoutCapabilities() (gas: 25538) +CapabilityRegistry_UpdateNodesTest:test_UpdatesNodeInfo() (gas: 158803) +KeystoneForwarder_ReportTest:test_Report_ConfigVersion() (gas: 1807115) +KeystoneForwarder_ReportTest:test_Report_FailedDeliveryWhenReceiverInterfaceNotSupported() (gas: 132145) +KeystoneForwarder_ReportTest:test_Report_FailedDeliveryWhenReceiverNotContract() (gas: 133638) +KeystoneForwarder_ReportTest:test_Report_SuccessfulDelivery() (gas: 162153) +KeystoneForwarder_ReportTest:test_RevertWhen_AlreadyAttempted() (gas: 157192) +KeystoneForwarder_ReportTest:test_RevertWhen_AnySignatureIsInvalid() (gas: 86392) +KeystoneForwarder_ReportTest:test_RevertWhen_AnySignerIsInvalid() (gas: 118530) +KeystoneForwarder_ReportTest:test_RevertWhen_ReportHasDuplicateSignatures() (gas: 94560) +KeystoneForwarder_ReportTest:test_RevertWhen_ReportHasIncorrectDON() (gas: 75914) +KeystoneForwarder_ReportTest:test_RevertWhen_ReportHasInexistentConfigVersion() (gas: 76282) +KeystoneForwarder_ReportTest:test_RevertWhen_ReportIsMalformed() (gas: 45569) +KeystoneForwarder_ReportTest:test_RevertWhen_TooFewSignatures() (gas: 55282) +KeystoneForwarder_ReportTest:test_RevertWhen_TooManySignatures() (gas: 56028) KeystoneForwarder_SetConfigTest:test_RevertWhen_ExcessSigners() (gas: 20162) KeystoneForwarder_SetConfigTest:test_RevertWhen_FaultToleranceIsZero() (gas: 90143) KeystoneForwarder_SetConfigTest:test_RevertWhen_InsufficientSigners() (gas: 14511) KeystoneForwarder_SetConfigTest:test_RevertWhen_NotOwner() (gas: 90874) -KeystoneForwarder_SetConfigTest:test_RevertWhen_ProvidingDuplicateSigners() (gas: 847644) -KeystoneForwarder_SetConfigTest:test_SetConfig_FirstTime() (gas: 2224138) -KeystoneForwarder_SetConfigTest:test_SetConfig_WhenSignersAreRemoved() (gas: 2365984) -KeystoneForwarder_TypeAndVersionTest:test_TypeAndVersion() (gas: 9641) \ No newline at end of file +KeystoneForwarder_SetConfigTest:test_RevertWhen_ProvidingDuplicateSigners() (gas: 116644) +KeystoneForwarder_SetConfigTest:test_SetConfig_FirstTime() (gas: 1543588) +KeystoneForwarder_SetConfigTest:test_SetConfig_WhenSignersAreRemoved() (gas: 1540255) +KeystoneForwarder_TypeAndVersionTest:test_TypeAndVersion() (gas: 9641) +KeystoneRouter_SetConfigTest:test_AddForwarder_RevertWhen_NotOwner() (gas: 10956) +KeystoneRouter_SetConfigTest:test_RemoveForwarder_RevertWhen_NotOwner() (gas: 10879) +KeystoneRouter_SetConfigTest:test_Route_RevertWhen_Unauthorized() (gas: 18509) +KeystoneRouter_SetConfigTest:test_Route_Success() (gas: 75585) \ No newline at end of file diff --git a/contracts/scripts/native_solc_compile_all_keystone b/contracts/scripts/native_solc_compile_all_keystone index 1530b307dbd..5450cd654c8 100755 --- a/contracts/scripts/native_solc_compile_all_keystone +++ b/contracts/scripts/native_solc_compile_all_keystone @@ -30,4 +30,5 @@ compileContract () { compileContract keystone/CapabilityRegistry.sol compileContract keystone/KeystoneForwarder.sol +compileContract keystone/KeystoneRouter.sol compileContract keystone/OCR3Capability.sol diff --git a/contracts/src/v0.8/keystone/CapabilityRegistry.sol b/contracts/src/v0.8/keystone/CapabilityRegistry.sol index c2462bfecf8..81745f5ac9b 100644 --- a/contracts/src/v0.8/keystone/CapabilityRegistry.sol +++ b/contracts/src/v0.8/keystone/CapabilityRegistry.sol @@ -159,7 +159,7 @@ contract CapabilityRegistry is OwnerIsCreator, TypeAndVersionInterface { /// @notice The f value for the DON. This is the number of faulty nodes /// that the DON can tolerate. This can be different from the f value of /// the OCR instances that capabilities spawn. - uint32 f; + uint8 f; /// @notice True if the DON is public. A public DON means that it accepts /// external capability requests bool isPublic; @@ -177,7 +177,7 @@ contract CapabilityRegistry is OwnerIsCreator, TypeAndVersionInterface { /// @notice The f value for the DON. This is the number of faulty nodes /// that the DON can tolerate. This can be different from the f value of /// the OCR instances that capabilities spawn. - uint32 f; + uint8 f; /// @notice True if the DON is public. A public DON means that it accepts /// external capability requests bool isPublic; @@ -196,7 +196,7 @@ contract CapabilityRegistry is OwnerIsCreator, TypeAndVersionInterface { uint32 configCount; bool isPublic; bool acceptsWorkflows; - uint32 f; + uint8 f; } /// @notice This error is thrown when a caller is not allowed @@ -265,7 +265,7 @@ contract CapabilityRegistry is OwnerIsCreator, TypeAndVersionInterface { /// fault tolerance value. /// @param f The proposed fault tolerance value /// @param nodeCount The proposed number of nodes in the DON - error InvalidFaultTolerance(uint32 f, uint256 nodeCount); + error InvalidFaultTolerance(uint8 f, uint256 nodeCount); /// @notice This error is thrown when a capability with the provided hashed ID is /// not found. @@ -689,7 +689,7 @@ contract CapabilityRegistry is OwnerIsCreator, TypeAndVersionInterface { CapabilityConfiguration[] calldata capabilityConfigurations, bool isPublic, bool acceptsWorkflows, - uint32 f + uint8 f ) external onlyOwner { uint32 id = s_nextDONId++; s_dons[id].id = id; @@ -715,7 +715,7 @@ contract CapabilityRegistry is OwnerIsCreator, TypeAndVersionInterface { CapabilityConfiguration[] calldata capabilityConfigurations, bool isPublic, bool acceptsWorkflows, - uint32 f + uint8 f ) external onlyOwner { uint32 configCount = s_dons[donId].configCount; if (configCount == 0) revert DONDoesNotExist(donId); diff --git a/contracts/src/v0.8/keystone/KeystoneFeedsConsumer.sol b/contracts/src/v0.8/keystone/KeystoneFeedsConsumer.sol index e886c6011dc..3b2d151ed32 100644 --- a/contracts/src/v0.8/keystone/KeystoneFeedsConsumer.sol +++ b/contracts/src/v0.8/keystone/KeystoneFeedsConsumer.sol @@ -2,17 +2,15 @@ pragma solidity ^0.8.19; import {IReceiver} from "./interfaces/IReceiver.sol"; -import {ConfirmedOwner} from "../shared/access/ConfirmedOwner.sol"; +import {OwnerIsCreator} from "../shared/access/OwnerIsCreator.sol"; -contract KeystoneFeedsConsumer is IReceiver, ConfirmedOwner { +contract KeystoneFeedsConsumer is IReceiver, OwnerIsCreator { event FeedReceived(bytes32 indexed feedId, int192 price, uint32 timestamp); error UnauthorizedSender(address sender); error UnauthorizedWorkflowOwner(address workflowOwner); error UnauthorizedWorkflowName(bytes10 workflowName); - constructor() ConfirmedOwner(msg.sender) {} - struct ReceivedFeedReport { bytes32 FeedId; int192 Price; @@ -26,55 +24,55 @@ contract KeystoneFeedsConsumer is IReceiver, ConfirmedOwner { mapping(bytes32 feedId => StoredFeedReport feedReport) internal s_feedReports; address[] internal s_allowedSendersList; - mapping(address => bool) internal s_allowedSenders; + mapping(address sender => bool) internal s_allowedSenders; address[] internal s_allowedWorkflowOwnersList; - mapping(address => bool) internal s_allowedWorkflowOwners; + mapping(address owner => bool) internal s_allowedWorkflowOwners; bytes10[] internal s_allowedWorkflowNamesList; - mapping(bytes10 => bool) internal s_allowedWorkflowNames; + mapping(bytes10 workflowName => bool) internal s_allowedWorkflowNames; function setConfig( address[] calldata _allowedSendersList, address[] calldata _allowedWorkflowOwnersList, bytes10[] calldata _allowedWorkflowNamesList ) external onlyOwner { - for (uint32 i = 0; i < s_allowedSendersList.length; i++) { + for (uint32 i = 0; i < s_allowedSendersList.length; ++i) { s_allowedSenders[s_allowedSendersList[i]] = false; } - for (uint32 i = 0; i < _allowedSendersList.length; i++) { + for (uint32 i = 0; i < _allowedSendersList.length; ++i) { s_allowedSenders[_allowedSendersList[i]] = true; } s_allowedSendersList = _allowedSendersList; - for (uint32 i = 0; i < s_allowedWorkflowOwnersList.length; i++) { + for (uint32 i = 0; i < s_allowedWorkflowOwnersList.length; ++i) { s_allowedWorkflowOwners[s_allowedWorkflowOwnersList[i]] = false; } - for (uint32 i = 0; i < _allowedWorkflowOwnersList.length; i++) { + for (uint32 i = 0; i < _allowedWorkflowOwnersList.length; ++i) { s_allowedWorkflowOwners[_allowedWorkflowOwnersList[i]] = true; } s_allowedWorkflowOwnersList = _allowedWorkflowOwnersList; - for (uint32 i = 0; i < s_allowedWorkflowNamesList.length; i++) { + for (uint32 i = 0; i < s_allowedWorkflowNamesList.length; ++i) { s_allowedWorkflowNames[s_allowedWorkflowNamesList[i]] = false; } - for (uint32 i = 0; i < _allowedWorkflowNamesList.length; i++) { + for (uint32 i = 0; i < _allowedWorkflowNamesList.length; ++i) { s_allowedWorkflowNames[_allowedWorkflowNamesList[i]] = true; } s_allowedWorkflowNamesList = _allowedWorkflowNamesList; } function onReport(bytes calldata metadata, bytes calldata rawReport) external { - if (s_allowedSenders[msg.sender] == false) { + if (!s_allowedSenders[msg.sender]) { revert UnauthorizedSender(msg.sender); } (bytes10 workflowName, address workflowOwner) = _getInfo(metadata); - if (s_allowedWorkflowNames[workflowName] == false) { + if (!s_allowedWorkflowNames[workflowName]) { revert UnauthorizedWorkflowName(workflowName); } - if (s_allowedWorkflowOwners[workflowOwner] == false) { + if (!s_allowedWorkflowOwners[workflowOwner]) { revert UnauthorizedWorkflowOwner(workflowOwner); } ReceivedFeedReport[] memory feeds = abi.decode(rawReport, (ReceivedFeedReport[])); - for (uint32 i = 0; i < feeds.length; i++) { + for (uint256 i = 0; i < feeds.length; ++i) { s_feedReports[feeds[i].FeedId] = StoredFeedReport(feeds[i].Price, feeds[i].Timestamp); emit FeedReceived(feeds[i].FeedId, feeds[i].Price, feeds[i].Timestamp); } diff --git a/contracts/src/v0.8/keystone/KeystoneForwarder.sol b/contracts/src/v0.8/keystone/KeystoneForwarder.sol index e8885bb7543..644f4842be7 100644 --- a/contracts/src/v0.8/keystone/KeystoneForwarder.sol +++ b/contracts/src/v0.8/keystone/KeystoneForwarder.sol @@ -1,25 +1,21 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.19; +import {ITypeAndVersion} from "../shared/interfaces/ITypeAndVersion.sol"; +import {IRouter} from "./interfaces/IRouter.sol"; import {IForwarder} from "./interfaces/IForwarder.sol"; -import {IReceiver} from "./interfaces/IReceiver.sol"; -import {ConfirmedOwner} from "../shared/access/ConfirmedOwner.sol"; -import {TypeAndVersionInterface} from "../interfaces/TypeAndVersionInterface.sol"; + +import {OwnerIsCreator} from "../shared/access/OwnerIsCreator.sol"; /// @notice This is an entry point for `write_${chain}` Target capability. It /// allows nodes to determine if reports have been processed (successfully or /// not) in a decentralized and product-agnostic way by recording processed /// reports. -contract KeystoneForwarder is IForwarder, ConfirmedOwner, TypeAndVersionInterface { - error ReentrantCall(); - +contract KeystoneForwarder is IForwarder, OwnerIsCreator, ITypeAndVersion { /// @notice This error is returned when the report is shorter than /// REPORT_METADATA_LENGTH, which is the minimum length of a report. error InvalidReport(); - /// @notice This error is returned when the metadata version is not supported. - error InvalidVersion(uint8 version); - /// @notice This error is thrown whenever trying to set a config with a fault /// tolerance of 0. error FaultToleranceMustBePositive(); @@ -49,9 +45,8 @@ contract KeystoneForwarder is IForwarder, ConfirmedOwner, TypeAndVersionInterfac /// @notice This error is thrown whenever a report specifies a configuration that /// does not exist. - /// @param donId The DON ID that was provided in the report - /// @param configVersion The config version that was provided in the report - error InvalidConfig(uint32 donId, uint32 configVersion); + /// @param configId (uint64(donId) << 32) | configVersion + error InvalidConfig(uint64 configId); /// @notice This error is thrown whenever a signer address is not in the /// configuration. @@ -62,37 +57,35 @@ contract KeystoneForwarder is IForwarder, ConfirmedOwner, TypeAndVersionInterfac /// @param signature The signature that was invalid error InvalidSignature(bytes signature); - /// @notice This error is thrown whenever a message has already been processed. - /// @param messageId The ID of the message that was already processed - error AlreadyProcessed(bytes32 messageId); - - bool internal s_reentrancyGuard; // guard against reentrancy - /// @notice Contains the signing address of each oracle struct OracleSet { uint8 f; // Number of faulty nodes allowed address[] signers; - mapping(address => uint256) _positions; // 1-indexed to detect unset values + mapping(address signer => uint256 position) _positions; // 1-indexed to detect unset values } - /// @notice Contains the configuration for each DON ID - // @param configId keccak256(donId, donConfigVersion) - mapping(bytes32 configId => OracleSet) internal s_configs; + address internal s_router; - struct DeliveryStatus { - address transmitter; - bool success; - } + /// @notice Contains the configuration for each DON ID + // @param configId (uint64(donId) << 32) | configVersion + mapping(uint64 configId => OracleSet) internal s_configs; - mapping(bytes32 reportId => DeliveryStatus status) internal s_reports; + event ConfigSet(uint32 indexed donId, uint32 indexed configVersion, uint8 f, address[] signers); /// @notice Emitted when a report is processed - /// @param receiver The address of the receiver contract - /// @param workflowExecutionId The ID of the workflow execution /// @param result The result of the attempted delivery. True if successful. - event ReportProcessed(address indexed receiver, bytes32 indexed workflowExecutionId, bool result); + event ReportProcessed( + address indexed receiver, + bytes32 indexed workflowExecutionId, + bytes2 indexed reportId, + bool result + ); + + string public constant override typeAndVersion = "KeystoneForwarder 1.0.0"; - constructor() ConfirmedOwner(msg.sender) {} + constructor(address router) OwnerIsCreator() { + s_router = router; + } uint256 internal constant MAX_ORACLES = 31; uint256 internal constant METADATA_LENGTH = 109; @@ -104,145 +97,124 @@ contract KeystoneForwarder is IForwarder, ConfirmedOwner, TypeAndVersionInterfac if (signers.length > MAX_ORACLES) revert ExcessSigners(signers.length, MAX_ORACLES); if (signers.length <= 3 * f) revert InsufficientSigners(signers.length, 3 * f + 1); - bytes32 configId = keccak256(abi.encode(donId, configVersion)); + uint64 configId = (uint64(donId) << 32) | configVersion; // remove any old signer addresses - for (uint256 i; i < s_configs[configId].signers.length; ++i) { - address signer = s_configs[configId].signers[i]; - delete s_configs[configId]._positions[signer]; + for (uint256 i = 0; i < s_configs[configId].signers.length; ++i) { + delete s_configs[configId]._positions[s_configs[configId].signers[i]]; } // add new signer addresses - s_configs[configId].signers = signers; - for (uint256 i; i < signers.length; ++i) { + for (uint256 i = 0; i < signers.length; ++i) { // assign indices, detect duplicates address signer = signers[i]; if (s_configs[configId]._positions[signer] != 0) revert DuplicateSigner(signer); - s_configs[configId]._positions[signer] = uint8(i) + 1; - s_configs[configId].signers.push(signer); + s_configs[configId]._positions[signer] = i + 1; } + s_configs[configId].signers = signers; s_configs[configId].f = f; + + emit ConfigSet(donId, configVersion, f, signers); } function clearConfig(uint32 donId, uint32 configVersion) external onlyOwner { - bytes32 configId = keccak256(abi.encode(donId, configVersion)); - - // remove any old signer addresses - for (uint256 i; i < s_configs[configId].signers.length; ++i) { - address signer = s_configs[configId].signers[i]; - delete s_configs[configId]._positions[signer]; - } + // We are not removing old signer positions, because it is sufficient to + // clear the f value for `report` function. If we decide to restore + // the configId in the future, the setConfig function clears the positions. + s_configs[(uint64(donId) << 32) | configVersion].f = 0; - s_configs[configId].f = 0; + emit ConfigSet(donId, configVersion, 0, new address[](0)); } // send a report to receiver function report( - address receiverAddress, + address receiver, bytes calldata rawReport, bytes calldata reportContext, bytes[] calldata signatures - ) external nonReentrant { + ) external { if (rawReport.length < METADATA_LENGTH) { revert InvalidReport(); } bytes32 workflowExecutionId; bytes2 reportId; - bytes32 configId; { - uint32 donId; - uint32 configVersion; - (workflowExecutionId, donId, configVersion, reportId) = _getMetadata(rawReport); - - configId = keccak256(abi.encode(donId, configVersion)); + uint64 configId; + (workflowExecutionId, configId, reportId) = _getMetadata(rawReport); + OracleSet storage config = s_configs[configId]; - uint8 f = s_configs[configId].f; + uint8 f = config.f; // f can never be 0, so this means the config doesn't actually exist - if (f == 0) revert InvalidConfig(donId, configVersion); + if (f == 0) revert InvalidConfig(configId); if (f + 1 != signatures.length) revert InvalidSignatureCount(f + 1, signatures.length); - } - - bytes32 combinedId = _combinedId(receiverAddress, workflowExecutionId, reportId); - if (s_reports[combinedId].transmitter != address(0)) revert AlreadyProcessed(combinedId); - // validate signatures - { + // validate signatures bytes32 completeHash = keccak256(abi.encodePacked(keccak256(rawReport), reportContext)); - - address[MAX_ORACLES] memory signed; - uint8 index; - for (uint256 i; i < signatures.length; ++i) { - (bytes32 r, bytes32 s, uint8 v) = _splitSignature(signatures[i]); - address signer = ecrecover(completeHash, v + 27, r, s); + address[MAX_ORACLES + 1] memory signed; + for (uint256 i = 0; i < signatures.length; ++i) { + bytes calldata signature = signatures[i]; + if (signature.length != SIGNATURE_LENGTH) revert InvalidSignature(signature); + address signer = ecrecover( + completeHash, + uint8(signature[64]) + 27, + bytes32(signature[0:32]), + bytes32(signature[32:64]) + ); // validate signer is trusted and signature is unique - index = uint8(s_configs[configId]._positions[signer]); + uint256 index = config._positions[signer]; if (index == 0) revert InvalidSigner(signer); // index is 1-indexed so we can detect unset signers - index -= 1; if (signed[index] != address(0)) revert DuplicateSigner(signer); signed[index] = signer; } } - bool success; - try - IReceiver(receiverAddress).onReport( - rawReport[FORWARDER_METADATA_LENGTH:METADATA_LENGTH], - rawReport[METADATA_LENGTH:] - ) - { - success = true; - } catch { - // Do nothing, success is already false - } - - s_reports[combinedId] = DeliveryStatus(msg.sender, success); - emit ReportProcessed(receiverAddress, workflowExecutionId, success); - } + bool success = IRouter(s_router).route( + getTransmissionId(receiver, workflowExecutionId, reportId), + msg.sender, + receiver, + rawReport[FORWARDER_METADATA_LENGTH:METADATA_LENGTH], + rawReport[METADATA_LENGTH:] + ); - function _combinedId(address receiver, bytes32 workflowExecutionId, bytes2 reportId) internal pure returns (bytes32) { - // TODO: gas savings: could we just use a bytes key and avoid another keccak256 call - return keccak256(bytes.concat(bytes20(uint160(receiver)), workflowExecutionId, reportId)); + emit ReportProcessed(receiver, workflowExecutionId, reportId, success); } - // get transmitter of a given report or 0x0 if it wasn't transmitted yet function getTransmitter( address receiver, bytes32 workflowExecutionId, bytes2 reportId ) external view returns (address) { - bytes32 combinedId = _combinedId(receiver, workflowExecutionId, reportId); - return s_reports[combinedId].transmitter; + return IRouter(s_router).getTransmitter(getTransmissionId(receiver, workflowExecutionId, reportId)); } - // solhint-disable-next-line chainlink-solidity/explicit-returns - function _splitSignature(bytes memory sig) internal pure returns (bytes32 r, bytes32 s, uint8 v) { - if (sig.length != SIGNATURE_LENGTH) revert InvalidSignature(sig); - - assembly { - /* - First 32 bytes stores the length of the signature - - add(sig, 32) = pointer of sig + 32 - effectively, skips first 32 bytes of signature + function getTransmissionState( + address receiver, + bytes32 workflowExecutionId, + bytes2 reportId + ) external view returns (IRouter.TransmissionState) { + return IRouter(s_router).getTransmissionState(getTransmissionId(receiver, workflowExecutionId, reportId)); + } - mload(p) loads next 32 bytes starting at the memory address p into memory - */ + function getTransmissionId( + address receiver, + bytes32 workflowExecutionId, + bytes2 reportId + ) public pure returns (bytes32) { + // This is slightly cheaper compared to + // keccak256(abi.encode(receiver, workflowExecutionId, reportId)); + return keccak256(bytes.concat(bytes20(uint160(receiver)), workflowExecutionId, reportId)); + } - // first 32 bytes, after the length prefix - r := mload(add(sig, 32)) - // second 32 bytes - s := mload(add(sig, 64)) - // final byte (first byte of the next 32 bytes) - v := byte(0, mload(add(sig, 96))) - } + function getRouter() external view returns (address) { + return s_router; } // solhint-disable-next-line chainlink-solidity/explicit-returns function _getMetadata( bytes memory rawReport - ) internal pure returns (bytes32 workflowExecutionId, uint32 donId, uint32 donConfigVersion, bytes2 reportId) { + ) internal pure returns (bytes32 workflowExecutionId, uint64 configId, bytes2 reportId) { // (first 32 bytes of memory contain length of the report) // version // offset 32, size 1 // workflow_execution_id // offset 33, size 32 @@ -252,32 +224,12 @@ contract KeystoneForwarder is IForwarder, ConfirmedOwner, TypeAndVersionInterfac // workflow_cid // offset 77, size 32 // workflow_name // offset 109, size 10 // workflow_owner // offset 119, size 20 - // report_name // offset 139, size 2 - if (uint8(rawReport[0]) != 1) { - revert InvalidVersion(uint8(rawReport[0])); - } + // report_id // offset 139, size 2 assembly { workflowExecutionId := mload(add(rawReport, 33)) - // shift right by 28 bytes to get the actual value - donId := shr(mul(28, 8), mload(add(rawReport, 69))) - // shift right by 28 bytes to get the actual value - donConfigVersion := shr(mul(28, 8), mload(add(rawReport, 73))) + // shift right by 24 bytes to get the combined don_id and don_config_version + configId := shr(mul(24, 8), mload(add(rawReport, 69))) reportId := mload(add(rawReport, 139)) } } - - /// @inheritdoc TypeAndVersionInterface - function typeAndVersion() external pure override returns (string memory) { - return "KeystoneForwarder 1.0.0"; - } - - /** - * @dev replicates Open Zeppelin's ReentrancyGuard but optimized to fit our storage - */ - modifier nonReentrant() { - if (s_reentrancyGuard) revert ReentrantCall(); - s_reentrancyGuard = true; - _; - s_reentrancyGuard = false; - } } diff --git a/contracts/src/v0.8/keystone/KeystoneRouter.sol b/contracts/src/v0.8/keystone/KeystoneRouter.sol new file mode 100644 index 00000000000..aacb83d8c6a --- /dev/null +++ b/contracts/src/v0.8/keystone/KeystoneRouter.sol @@ -0,0 +1,76 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.19; + +import {ITypeAndVersion} from "../shared/interfaces/ITypeAndVersion.sol"; +import {IRouter} from "./interfaces/IRouter.sol"; +import {IReceiver} from "./interfaces/IReceiver.sol"; + +import {OwnerIsCreator} from "../shared/access/OwnerIsCreator.sol"; + +contract KeystoneRouter is IRouter, OwnerIsCreator, ITypeAndVersion { + error Unauthorized(); + error AlreadyAttempted(bytes32 transmissionId); + + event ForwarderAdded(address indexed forwarder); + event ForwarderRemoved(address indexed forwarder); + + mapping(address forwarder => bool) internal s_forwarders; + mapping(bytes32 transmissionId => TransmissionInfo) internal s_transmissions; + + string public constant override typeAndVersion = "KeystoneRouter 1.0.0"; + + struct TransmissionInfo { + address transmitter; + bool state; + } + + function addForwarder(address forwarder) external onlyOwner { + s_forwarders[forwarder] = true; + emit ForwarderAdded(forwarder); + } + + function removeForwarder(address forwarder) external onlyOwner { + s_forwarders[forwarder] = false; + emit ForwarderRemoved(forwarder); + } + + function route( + bytes32 transmissionId, + address transmitter, + address receiver, + bytes calldata metadata, + bytes calldata report + ) external returns (bool) { + if (!s_forwarders[msg.sender]) { + revert Unauthorized(); + } + + if (s_transmissions[transmissionId].transmitter != address(0)) revert AlreadyAttempted(transmissionId); + s_transmissions[transmissionId].transmitter = transmitter; + + if (receiver.code.length == 0) return false; + + try IReceiver(receiver).onReport(metadata, report) { + s_transmissions[transmissionId].state = true; + return true; + } catch { + return false; + } + } + + /// @notice Get transmitter of a given report or 0x0 if it wasn't transmitted yet + function getTransmitter(bytes32 transmissionId) external view returns (address) { + return s_transmissions[transmissionId].transmitter; + } + + /// @notice Get delivery status of a given report + function getTransmissionState(bytes32 transmissionId) external view returns (IRouter.TransmissionState) { + if (s_transmissions[transmissionId].transmitter == address(0)) return IRouter.TransmissionState.NOT_ATTEMPTED; + return + s_transmissions[transmissionId].state ? IRouter.TransmissionState.SUCCEEDED : IRouter.TransmissionState.FAILED; + } + + function isForwarder(address forwarder) external view returns (bool) { + return s_forwarders[forwarder]; + } +} diff --git a/contracts/src/v0.8/keystone/interfaces/IRouter.sol b/contracts/src/v0.8/keystone/interfaces/IRouter.sol new file mode 100644 index 00000000000..63ddd865c21 --- /dev/null +++ b/contracts/src/v0.8/keystone/interfaces/IRouter.sol @@ -0,0 +1,22 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.19; + +/// @title IRouter - delivers keystone reports to receiver +interface IRouter { + enum TransmissionState { + NOT_ATTEMPTED, + SUCCEEDED, + FAILED + } + + function route( + bytes32 transmissionId, + address transmitter, + address receiver, + bytes calldata metadata, + bytes calldata report + ) external returns (bool); + + function getTransmitter(bytes32 transmissionId) external view returns (address); + function getTransmissionState(bytes32 transmissionId) external view returns (TransmissionState); +} diff --git a/contracts/src/v0.8/keystone/test/Constants.t.sol b/contracts/src/v0.8/keystone/test/Constants.t.sol index 9b13bd91f58..23c80eea9f1 100644 --- a/contracts/src/v0.8/keystone/test/Constants.t.sol +++ b/contracts/src/v0.8/keystone/test/Constants.t.sol @@ -23,7 +23,7 @@ contract Constants { bytes32 internal constant NODE_OPERATOR_THREE_SIGNER_ADDRESS = bytes32(abi.encodePacked(address(5555))); bytes32 internal constant P2P_ID_THREE = hex"f53415859707d90ed4dc534ad730f187a17b0c368e1beec2e9b995587c4b0a06"; - uint32 internal constant F_VALUE = 1; + uint8 internal constant F_VALUE = 1; uint32 internal constant DON_ID = 1; uint32 internal constant DON_ID_TWO = 2; diff --git a/contracts/src/v0.8/keystone/test/KeystoneForwarderBaseTest.t.sol b/contracts/src/v0.8/keystone/test/KeystoneForwarderBaseTest.t.sol index fc5c3a160d5..2b1adfb9622 100644 --- a/contracts/src/v0.8/keystone/test/KeystoneForwarderBaseTest.t.sol +++ b/contracts/src/v0.8/keystone/test/KeystoneForwarderBaseTest.t.sol @@ -3,6 +3,7 @@ pragma solidity ^0.8.19; import {Test} from "forge-std/Test.sol"; import {Receiver} from "./mocks/Receiver.sol"; +import {KeystoneRouter} from "../KeystoneRouter.sol"; import {KeystoneForwarder} from "../KeystoneForwarder.sol"; contract BaseTest is Test { @@ -20,11 +21,14 @@ contract BaseTest is Test { Signer[MAX_ORACLES] internal s_signers; KeystoneForwarder internal s_forwarder; + KeystoneRouter internal s_router; Receiver internal s_receiver; function setUp() public virtual { vm.startPrank(ADMIN); - s_forwarder = new KeystoneForwarder(); + s_router = new KeystoneRouter(); + s_forwarder = new KeystoneForwarder(address(s_router)); + s_router.addForwarder(address(s_forwarder)); s_receiver = new Receiver(); uint256 seed = 0; diff --git a/contracts/src/v0.8/keystone/test/KeystoneForwarder_ReportTest.t.sol b/contracts/src/v0.8/keystone/test/KeystoneForwarder_ReportTest.t.sol index f68917ba85a..cf9d1ad3eee 100644 --- a/contracts/src/v0.8/keystone/test/KeystoneForwarder_ReportTest.t.sol +++ b/contracts/src/v0.8/keystone/test/KeystoneForwarder_ReportTest.t.sol @@ -2,11 +2,18 @@ pragma solidity ^0.8.19; import {BaseTest} from "./KeystoneForwarderBaseTest.t.sol"; +import {KeystoneRouter} from "../KeystoneRouter.sol"; +import {IRouter} from "../interfaces/IRouter.sol"; import {KeystoneForwarder} from "../KeystoneForwarder.sol"; contract KeystoneForwarder_ReportTest is BaseTest { event MessageReceived(bytes metadata, bytes[] mercuryReports); - event ReportProcessed(address indexed receiver, bytes32 indexed workflowExecutionId, bool result); + event ReportProcessed( + address indexed receiver, + bytes32 indexed workflowExecutionId, + bytes2 indexed reportId, + bool result + ); uint8 internal version = 1; uint32 internal timestamp = 0; @@ -28,6 +35,9 @@ contract KeystoneForwarder_ReportTest is BaseTest { BaseTest.setUp(); s_forwarder.setConfig(DON_ID, CONFIG_VERSION, F, _getSignerAddresses()); + s_router.addForwarder(address(s_forwarder)); + + assertEq(s_forwarder.getRouter(), address(s_router), "router mismatch"); mercuryReports[0] = hex"010203"; mercuryReports[1] = hex"aabbccdd"; @@ -57,7 +67,8 @@ contract KeystoneForwarder_ReportTest is BaseTest { rawReports ); - vm.expectRevert(abi.encodeWithSelector(KeystoneForwarder.InvalidConfig.selector, invalidDONId, CONFIG_VERSION)); + uint64 configId = (uint64(invalidDONId) << 32) | CONFIG_VERSION; + vm.expectRevert(abi.encodeWithSelector(KeystoneForwarder.InvalidConfig.selector, configId)); s_forwarder.report(address(s_receiver), reportWithInvalidDONId, reportContext, signatures); } @@ -75,7 +86,8 @@ contract KeystoneForwarder_ReportTest is BaseTest { rawReports ); - vm.expectRevert(abi.encodeWithSelector(KeystoneForwarder.InvalidConfig.selector, DON_ID, CONFIG_VERSION + 1)); + uint64 configId = (uint64(DON_ID) << 32) | (CONFIG_VERSION + 1); + vm.expectRevert(abi.encodeWithSelector(KeystoneForwarder.InvalidConfig.selector, configId)); s_forwarder.report(address(s_receiver), reportWithInvalidDONId, reportContext, signatures); } @@ -132,11 +144,11 @@ contract KeystoneForwarder_ReportTest is BaseTest { s_forwarder.report(address(s_receiver), report, reportContext, signatures); } - function test_RevertWhen_AlreadyProcessed() public { + function test_RevertWhen_AlreadyAttempted() public { s_forwarder.report(address(s_receiver), report, reportContext, signatures); - bytes32 combinedId = keccak256(bytes.concat(bytes20(uint160(address(s_receiver))), executionId, reportId)); - vm.expectRevert(abi.encodeWithSelector(KeystoneForwarder.AlreadyProcessed.selector, combinedId)); + bytes32 transmissionId = s_forwarder.getTransmissionId(address(s_receiver), executionId, reportId); + vm.expectRevert(abi.encodeWithSelector(KeystoneRouter.AlreadyAttempted.selector, transmissionId)); s_forwarder.report(address(s_receiver), report, reportContext, signatures); } @@ -145,13 +157,54 @@ contract KeystoneForwarder_ReportTest is BaseTest { emit MessageReceived(metadata, mercuryReports); vm.expectEmit(address(s_forwarder)); - emit ReportProcessed(address(s_receiver), executionId, true); + emit ReportProcessed(address(s_receiver), executionId, reportId, true); s_forwarder.report(address(s_receiver), report, reportContext, signatures); - // validate transmitter was recorded - address transmitter = s_forwarder.getTransmitter(address(s_receiver), executionId, reportId); - assertEq(transmitter, TRANSMITTER, "transmitter mismatch"); + assertEq( + s_forwarder.getTransmitter(address(s_receiver), executionId, reportId), + TRANSMITTER, + "transmitter mismatch" + ); + assertEq( + uint8(s_forwarder.getTransmissionState(address(s_receiver), executionId, reportId)), + uint8(IRouter.TransmissionState.SUCCEEDED), + "TransmissionState mismatch" + ); + } + + function test_Report_FailedDeliveryWhenReceiverNotContract() public { + // Receiver is not a contract + address receiver = address(404); + + vm.expectEmit(address(s_forwarder)); + emit ReportProcessed(receiver, executionId, reportId, false); + + s_forwarder.report(receiver, report, reportContext, signatures); + + assertEq(s_forwarder.getTransmitter(receiver, executionId, reportId), TRANSMITTER, "transmitter mismatch"); + assertEq( + uint8(s_forwarder.getTransmissionState(receiver, executionId, reportId)), + uint8(IRouter.TransmissionState.FAILED), + "TransmissionState mismatch" + ); + } + + function test_Report_FailedDeliveryWhenReceiverInterfaceNotSupported() public { + // Receiver is a contract but doesn't implement the required interface + address receiver = address(s_forwarder); + + vm.expectEmit(address(s_forwarder)); + emit ReportProcessed(receiver, executionId, reportId, false); + + s_forwarder.report(receiver, report, reportContext, signatures); + + assertEq(s_forwarder.getTransmitter(receiver, executionId, reportId), TRANSMITTER, "transmitter mismatch"); + assertEq( + uint8(s_forwarder.getTransmissionState(receiver, executionId, reportId)), + uint8(IRouter.TransmissionState.FAILED), + "TransmissionState mismatch" + ); } function test_Report_ConfigVersion() public { @@ -165,7 +218,7 @@ contract KeystoneForwarder_ReportTest is BaseTest { emit MessageReceived(metadata, mercuryReports); vm.expectEmit(address(s_forwarder)); - emit ReportProcessed(address(s_receiver), executionId, true); + emit ReportProcessed(address(s_receiver), executionId, reportId, true); vm.prank(TRANSMITTER); s_forwarder.report(address(s_receiver), report, reportContext, signatures); @@ -174,7 +227,8 @@ contract KeystoneForwarder_ReportTest is BaseTest { vm.prank(ADMIN); s_forwarder.clearConfig(DON_ID, CONFIG_VERSION); - vm.expectRevert(abi.encodeWithSelector(KeystoneForwarder.InvalidConfig.selector, DON_ID, CONFIG_VERSION)); + uint64 configId = (uint64(DON_ID) << 32) | CONFIG_VERSION; + vm.expectRevert(abi.encodeWithSelector(KeystoneForwarder.InvalidConfig.selector, configId)); vm.prank(TRANSMITTER); s_forwarder.report(address(s_receiver), report, reportContext, signatures); @@ -197,7 +251,7 @@ contract KeystoneForwarder_ReportTest is BaseTest { emit MessageReceived(newMetadata, mercuryReports); vm.expectEmit(address(s_forwarder)); - emit ReportProcessed(address(s_receiver), newExecutionId, true); + emit ReportProcessed(address(s_receiver), newExecutionId, reportId, true); vm.prank(TRANSMITTER); s_forwarder.report(address(s_receiver), newReport, reportContext, newSignatures); diff --git a/contracts/src/v0.8/keystone/test/KeystoneRouter_AccessTest.t.sol b/contracts/src/v0.8/keystone/test/KeystoneRouter_AccessTest.t.sol new file mode 100644 index 00000000000..60c40eec573 --- /dev/null +++ b/contracts/src/v0.8/keystone/test/KeystoneRouter_AccessTest.t.sol @@ -0,0 +1,56 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.19; + +import {Test} from "forge-std/Test.sol"; +import {IReceiver} from "../interfaces/IReceiver.sol"; +import {KeystoneRouter} from "../KeystoneRouter.sol"; + +contract KeystoneRouter_SetConfigTest is Test { + address internal ADMIN = address(1); + address internal constant STRANGER = address(2); + address internal constant FORWARDER = address(99); + address internal constant TRANSMITTER = address(50); + address internal constant RECEIVER = address(51); + + bytes internal metadata = hex"01020304"; + bytes internal report = hex"9998"; + bytes32 internal id = hex"6d795f657865637574696f6e5f69640000000000000000000000000000000000"; + + KeystoneRouter internal s_router; + + function setUp() public virtual { + vm.prank(ADMIN); + s_router = new KeystoneRouter(); + } + + function test_AddForwarder_RevertWhen_NotOwner() public { + vm.prank(STRANGER); + vm.expectRevert(); + s_router.addForwarder(FORWARDER); + } + + function test_RemoveForwarder_RevertWhen_NotOwner() public { + vm.prank(STRANGER); + vm.expectRevert(); + s_router.removeForwarder(FORWARDER); + } + + function test_Route_RevertWhen_Unauthorized() public { + vm.prank(STRANGER); + vm.expectRevert(KeystoneRouter.Unauthorized.selector); + s_router.route(id, TRANSMITTER, RECEIVER, metadata, report); + } + + function test_Route_Success() public { + assertEq(s_router.isForwarder(FORWARDER), false); + + vm.prank(ADMIN); + s_router.addForwarder(FORWARDER); + assertEq(s_router.isForwarder(FORWARDER), true); + + vm.prank(FORWARDER); + vm.mockCall(RECEIVER, abi.encodeCall(IReceiver.onReport, (metadata, report)), abi.encode()); + vm.expectCall(RECEIVER, abi.encodeCall(IReceiver.onReport, (metadata, report))); + s_router.route(id, TRANSMITTER, RECEIVER, metadata, report); + } +} diff --git a/core/capabilities/targets/write_target.go b/core/capabilities/targets/write_target.go index 913551d20b0..6f377c0f84d 100644 --- a/core/capabilities/targets/write_target.go +++ b/core/capabilities/targets/write_target.go @@ -131,10 +131,10 @@ func (cap *WriteTarget) Execute(ctx context.Context, request capabilities.Capabi // `nil` values, including for slices. Until the bug is fixed we need to ensure that there are no // `nil` values passed in the request. req := struct { - ReceiverAddress string - RawReport []byte - ReportContext []byte - Signatures [][]byte + Receiver string + RawReport []byte + ReportContext []byte + Signatures [][]byte }{reqConfig.Address, inputs.Report, inputs.Context, inputs.Signatures} if req.RawReport == nil { diff --git a/core/gethwrappers/keystone/generated/forwarder/forwarder.go b/core/gethwrappers/keystone/generated/forwarder/forwarder.go index b4f209f1c32..eeeb322d96e 100644 --- a/core/gethwrappers/keystone/generated/forwarder/forwarder.go +++ b/core/gethwrappers/keystone/generated/forwarder/forwarder.go @@ -31,15 +31,15 @@ var ( ) var KeystoneForwarderMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"}],\"name\":\"AlreadyProcessed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"}],\"name\":\"DuplicateSigner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numSigners\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxSigners\",\"type\":\"uint256\"}],\"name\":\"ExcessSigners\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FaultToleranceMustBePositive\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numSigners\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minSigners\",\"type\":\"uint256\"}],\"name\":\"InsufficientSigners\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"configVersion\",\"type\":\"uint32\"}],\"name\":\"InvalidConfig\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidReport\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"InvalidSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"InvalidSignatureCount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"}],\"name\":\"InvalidSigner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"InvalidVersion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrantCall\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"workflowExecutionId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"name\":\"ReportProcessed\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"configVersion\",\"type\":\"uint32\"}],\"name\":\"clearConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"workflowExecutionId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes2\",\"name\":\"reportId\",\"type\":\"bytes2\"}],\"name\":\"getTransmitter\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiverAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"rawReport\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"reportContext\",\"type\":\"bytes\"},{\"internalType\":\"bytes[]\",\"name\":\"signatures\",\"type\":\"bytes[]\"}],\"name\":\"report\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"configVersion\",\"type\":\"uint32\"},{\"internalType\":\"uint8\",\"name\":\"f\",\"type\":\"uint8\"},{\"internalType\":\"address[]\",\"name\":\"signers\",\"type\":\"address[]\"}],\"name\":\"setConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"typeAndVersion\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}]", - Bin: "0x608060405234801561001057600080fd5b5033806000816100675760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420736574206f776e657220746f207a65726f000000000000000060448201526064015b60405180910390fd5b600080546001600160a01b0319166001600160a01b0384811691909117909155811615610097576100978161009f565b505050610148565b336001600160a01b038216036100f75760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640161005e565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b611786806101576000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c80638da5cb5b1161005b5780638da5cb5b146101cb578063ee59d26c146101e9578063ef6e17a0146101fc578063f2fde38b1461020f57600080fd5b8063112895651461008d578063181f5a77146100a257806379ba5097146100ea5780638864b864146100f2575b600080fd5b6100a061009b3660046112e6565b610222565b005b604080518082018252601781527f4b657973746f6e65466f7277617264657220312e302e30000000000000000000602082015290516100e191906113f5565b60405180910390f35b6100a0610983565b6101a661010036600461140f565b6040805160609490941b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001660208086019190915260348501939093527fffff000000000000000000000000000000000000000000000000000000000000919091166054840152805160368185030181526056909301815282519282019290922060009081526003909152205473ffffffffffffffffffffffffffffffffffffffff1690565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100e1565b60005473ffffffffffffffffffffffffffffffffffffffff166101a6565b6100a06101f7366004611488565b610a80565b6100a061020a366004611506565b610de5565b6100a061021d366004611539565b610ee5565b60015474010000000000000000000000000000000000000000900460ff1615610277576040517f37ed32e800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055606d8510156102f1576040517fb55ac75400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008060008060006103388b8b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610ef992505050565b6040805163ffffffff808616602083015284169181019190915293985096509093509150606001604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181528151602092830120600081815260029093529082205490945060ff16908190036103f8576040517f16c0791600000000000000000000000000000000000000000000000000000000815263ffffffff8085166004830152831660248201526044015b60405180910390fd5b86610404826001611583565b60ff161461045657610417816001611583565b6040517fd6022e8e00000000000000000000000000000000000000000000000000000000815260ff9091166004820152602481018890526044016103ef565b50506040805160608d901b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016602080830191909152603482018790527fffff0000000000000000000000000000000000000000000000000000000000008616605483015282516036818403018152605690920190925280519101206000915060008181526003602052604090205490915073ffffffffffffffffffffffffffffffffffffffff1615610538576040517f1a20d3e6000000000000000000000000000000000000000000000000000000008152600481018290526024016103ef565b60008a8a60405161054a9291906115a2565b604051908190038120610563918b908b906020016115b2565b604051602081830303815290604052805190602001209050610583611173565b6000805b888110156107ea5760008060006105f58d8d868181106105a9576105a96115cc565b90506020028101906105bb91906115fb565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610f9b92505050565b91945092509050600060018861060c84601b611583565b6040805160008152602081018083529390935260ff90911690820152606081018690526080810185905260a0016020604051602081039080840390855afa15801561065b573d6000803e3d6000fd5b5050604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015160008d81526002602081815284832073ffffffffffffffffffffffffffffffffffffffff851684529091019052918220549850925060ff88169003905061070f576040517fbf18af4300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821660048201526024016103ef565b61071a600187611660565b955060008760ff8816601f8110610733576107336115cc565b602002015173ffffffffffffffffffffffffffffffffffffffff161461079d576040517fe021c4f200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821660048201526024016103ef565b80878760ff16601f81106107b3576107b36115cc565b73ffffffffffffffffffffffffffffffffffffffff9092166020929092020152506107e392508391506116799050565b9050610587565b5050505060008b73ffffffffffffffffffffffffffffffffffffffff1663805f21328c8c602d90606d92610820939291906116b1565b8e8e606d908092610833939291906116b1565b6040518563ffffffff1660e01b81526004016108529493929190611724565b600060405180830381600087803b15801561086c57600080fd5b505af192505050801561087d575060015b15610886575060015b604080518082018252338152821515602080830191825260008681526003909152839020915182549151151574010000000000000000000000000000000000000000027fffffffffffffffffffffff00000000000000000000000000000000000000000090921673ffffffffffffffffffffffffffffffffffffffff9182161791909117909155905186918e16907fbe015fd2fd7c1a00158e111095c794ae7030eb413d2a0990e5b78d3114df1d499061094590851515815260200190565b60405180910390a35050600180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16905550505050505050505050565b60015473ffffffffffffffffffffffffffffffffffffffff163314610a04576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4d7573742062652070726f706f736564206f776e65720000000000000000000060448201526064016103ef565b60008054337fffffffffffffffffffffffff00000000000000000000000000000000000000008083168217845560018054909116905560405173ffffffffffffffffffffffffffffffffffffffff90921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b610a88610ffb565b8260ff16600003610ac5576040517f0743bae600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b601f811115610b0a576040517f61750f4000000000000000000000000000000000000000000000000000000000815260048101829052601f60248201526044016103ef565b610b15836003611756565b60ff168111610b735780610b2a846003611756565b610b35906001611583565b6040517f9dd9e6d8000000000000000000000000000000000000000000000000000000008152600481019290925260ff1660248201526044016103ef565b6040805163ffffffff878116602080840191909152908716828401528251808303840181526060909201909252805191012060005b600082815260026020526040902060010154811015610c32576000828152600260205260408120600101805483908110610be457610be46115cc565b60009182526020808320909101548583526002808352604080852073ffffffffffffffffffffffffffffffffffffffff9093168552910190915281205550610c2b81611679565b9050610ba8565b506000818152600260205260409020610c4f906001018484611192565b5060005b82811015610d9f576000848483818110610c6f57610c6f6115cc565b9050602002016020810190610c849190611539565b600084815260026020818152604080842073ffffffffffffffffffffffffffffffffffffffff86168552909201905290205490915015610d08576040517fe021c4f200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821660048201526024016103ef565b610d13826001611583565b600084815260026020818152604080842073ffffffffffffffffffffffffffffffffffffffff909616808552868401835290842060ff959095169094559081526001938401805494850181558252902090910180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169091179055610d9881611679565b9050610c53565b50600090815260026020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff949094169390931790925550505050565b610ded610ffb565b6040805163ffffffff848116602080840191909152908416828401528251808303840181526060909201909252805191012060005b600082815260026020526040902060010154811015610eac576000828152600260205260408120600101805483908110610e5e57610e5e6115cc565b60009182526020808320909101548583526002808352604080852073ffffffffffffffffffffffffffffffffffffffff9093168552910190915281205550610ea581611679565b9050610e22565b50600090815260026020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555050565b610eed610ffb565b610ef68161107e565b50565b60008060008084600081518110610f1257610f126115cc565b60209101015160f81c600114610f735784600081518110610f3557610f356115cc565b01602001516040517f7207be2000000000000000000000000000000000000000000000000000000000815260f89190911c60048201526024016103ef565b50505050602181015160458201516049830151608b90930151919360e091821c9390911c9190565b60008060006041845114610fdd57836040517f2adfdc300000000000000000000000000000000000000000000000000000000081526004016103ef91906113f5565b50505060208101516040820151606090920151909260009190911a90565b60005473ffffffffffffffffffffffffffffffffffffffff16331461107c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4f6e6c792063616c6c61626c65206279206f776e65720000000000000000000060448201526064016103ef565b565b3373ffffffffffffffffffffffffffffffffffffffff8216036110fd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c6600000000000000000060448201526064016103ef565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b604051806103e00160405280601f906020820280368337509192915050565b82805482825590600052602060002090810192821561120a579160200282015b8281111561120a5781547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8435161782556020909201916001909101906111b2565b5061121692915061121a565b5090565b5b80821115611216576000815560010161121b565b803573ffffffffffffffffffffffffffffffffffffffff8116811461125357600080fd5b919050565b60008083601f84011261126a57600080fd5b50813567ffffffffffffffff81111561128257600080fd5b60208301915083602082850101111561129a57600080fd5b9250929050565b60008083601f8401126112b357600080fd5b50813567ffffffffffffffff8111156112cb57600080fd5b6020830191508360208260051b850101111561129a57600080fd5b60008060008060008060006080888a03121561130157600080fd5b61130a8861122f565b9650602088013567ffffffffffffffff8082111561132757600080fd5b6113338b838c01611258565b909850965060408a013591508082111561134c57600080fd5b6113588b838c01611258565b909650945060608a013591508082111561137157600080fd5b5061137e8a828b016112a1565b989b979a50959850939692959293505050565b6000815180845260005b818110156113b75760208185018101518683018201520161139b565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b6020815260006114086020830184611391565b9392505050565b60008060006060848603121561142457600080fd5b61142d8461122f565b92506020840135915060408401357fffff0000000000000000000000000000000000000000000000000000000000008116811461146957600080fd5b809150509250925092565b803563ffffffff8116811461125357600080fd5b6000806000806000608086880312156114a057600080fd5b6114a986611474565b94506114b760208701611474565b9350604086013560ff811681146114cd57600080fd5b9250606086013567ffffffffffffffff8111156114e957600080fd5b6114f5888289016112a1565b969995985093965092949392505050565b6000806040838503121561151957600080fd5b61152283611474565b915061153060208401611474565b90509250929050565b60006020828403121561154b57600080fd5b6114088261122f565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60ff818116838216019081111561159c5761159c611554565b92915050565b8183823760009101908152919050565b838152818360208301376000910160200190815292915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261163057600080fd5b83018035915067ffffffffffffffff82111561164b57600080fd5b60200191503681900382131561129a57600080fd5b60ff828116828216039081111561159c5761159c611554565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036116aa576116aa611554565b5060010190565b600080858511156116c157600080fd5b838611156116ce57600080fd5b5050820193919092039150565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b6040815260006117386040830186886116db565b828103602084015261174b8185876116db565b979650505050505050565b60ff818116838216029081169081811461177257611772611554565b509291505056fea164736f6c6343000813000a", + ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"router\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"}],\"name\":\"DuplicateSigner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numSigners\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxSigners\",\"type\":\"uint256\"}],\"name\":\"ExcessSigners\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FaultToleranceMustBePositive\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numSigners\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minSigners\",\"type\":\"uint256\"}],\"name\":\"InsufficientSigners\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"configId\",\"type\":\"uint64\"}],\"name\":\"InvalidConfig\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidReport\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"InvalidSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"InvalidSignatureCount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"}],\"name\":\"InvalidSigner\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"},{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"configVersion\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"f\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"signers\",\"type\":\"address[]\"}],\"name\":\"ConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"workflowExecutionId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes2\",\"name\":\"reportId\",\"type\":\"bytes2\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"name\":\"ReportProcessed\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"configVersion\",\"type\":\"uint32\"}],\"name\":\"clearConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRouter\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"workflowExecutionId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes2\",\"name\":\"reportId\",\"type\":\"bytes2\"}],\"name\":\"getTransmissionId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"workflowExecutionId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes2\",\"name\":\"reportId\",\"type\":\"bytes2\"}],\"name\":\"getTransmissionState\",\"outputs\":[{\"internalType\":\"enumIRouter.TransmissionState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"workflowExecutionId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes2\",\"name\":\"reportId\",\"type\":\"bytes2\"}],\"name\":\"getTransmitter\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"rawReport\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"reportContext\",\"type\":\"bytes\"},{\"internalType\":\"bytes[]\",\"name\":\"signatures\",\"type\":\"bytes[]\"}],\"name\":\"report\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"configVersion\",\"type\":\"uint32\"},{\"internalType\":\"uint8\",\"name\":\"f\",\"type\":\"uint8\"},{\"internalType\":\"address[]\",\"name\":\"signers\",\"type\":\"address[]\"}],\"name\":\"setConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"typeAndVersion\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", + Bin: "0x60806040523480156200001157600080fd5b5060405162001b4a38038062001b4a833981016040819052620000349162000193565b33806000816200008b5760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420736574206f776e657220746f207a65726f000000000000000060448201526064015b60405180910390fd5b600080546001600160a01b0319166001600160a01b0384811691909117909155811615620000be57620000be81620000e8565b5050600280546001600160a01b0319166001600160a01b03939093169290921790915550620001c5565b336001600160a01b03821603620001425760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640162000082565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b600060208284031215620001a657600080fd5b81516001600160a01b0381168114620001be57600080fd5b9392505050565b61197580620001d56000396000f3fe608060405234801561001057600080fd5b50600436106100c95760003560e01c80638864b86411610081578063ee59d26c1161005b578063ee59d26c14610270578063ef6e17a014610283578063f2fde38b1461029657600080fd5b80638864b864146101fc5780638da5cb5b14610234578063b0f479a11461025257600080fd5b8063354bdd66116100b2578063354bdd661461013557806343c16467146101d457806379ba5097146101f457600080fd5b806311289565146100ce578063181f5a77146100e3575b600080fd5b6100e16100dc3660046112ec565b6102a9565b005b61011f6040518060400160405280601781526020017f4b657973746f6e65466f7277617264657220312e302e3000000000000000000081525081565b60405161012c9190611399565b60405180910390f35b6101c6610143366004611405565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606085901b166020820152603481018390527fffff000000000000000000000000000000000000000000000000000000000000821660548201526000906056016040516020818303038152906040528051906020012090509392505050565b60405190815260200161012c565b6101e76101e2366004611405565b610891565b60405161012c919061146c565b6100e16109a6565b61020f61020a366004611405565b610aa3565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161012c565b60005473ffffffffffffffffffffffffffffffffffffffff1661020f565b60025473ffffffffffffffffffffffffffffffffffffffff1661020f565b6100e161027e3660046114c6565b610bb0565b6100e1610291366004611544565b610f39565b6100e16102a4366004611577565b610fd9565b606d8510156102e4576040517fb55ac75400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080600061032889898080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610fed92505050565b67ffffffffffffffff8216600090815260036020526040812080549497509195509193509160ff169081900361039b576040517fdf3b81ea00000000000000000000000000000000000000000000000000000000815267ffffffffffffffff841660048201526024015b60405180910390fd5b856103a78260016115ca565b60ff16146103f9576103ba8160016115ca565b6040517fd6022e8e00000000000000000000000000000000000000000000000000000000815260ff909116600482015260248101879052604401610392565b60008b8b60405161040b9291906115e9565b604051908190038120610424918c908c906020016115f9565b604051602081830303815290604052805190602001209050610444611180565b60005b888110156106cd573660008b8b8481811061046457610464611613565b90506020028101906104769190611642565b9092509050604181146104b95781816040517f2adfdc300000000000000000000000000000000000000000000000000000000081526004016103929291906116f0565b6000600186848460408181106104d1576104d1611613565b6104e392013560f81c9050601b6115ca565b6104f1602060008789611704565b6104fa9161172e565b61050860406020888a611704565b6105119161172e565b6040805160008152602081018083529590955260ff909316928401929092526060830152608082015260a0016020604051602081039080840390855afa15801561055f573d6000803e3d6000fd5b5050604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015173ffffffffffffffffffffffffffffffffffffffff8116600090815260028c01602052918220549093509150819003610605576040517fbf18af4300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83166004820152602401610392565b600086826020811061061957610619611613565b602002015173ffffffffffffffffffffffffffffffffffffffff1614610683576040517fe021c4f200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83166004820152602401610392565b8186826020811061069657610696611613565b73ffffffffffffffffffffffffffffffffffffffff9092166020929092020152506106c6925083915061176a9050565b9050610447565b50506002546000945073ffffffffffffffffffffffffffffffffffffffff16925063233fd52d915061078090508c86866040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606085901b166020820152603481018390527fffff000000000000000000000000000000000000000000000000000000000000821660548201526000906056016040516020818303038152906040528051906020012090509392505050565b338d8d8d602d90606d9261079693929190611704565b8f8f606d9080926107a993929190611704565b6040518863ffffffff1660e01b81526004016107cb97969594939291906117a2565b6020604051808303816000875af11580156107ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061080e9190611803565b9050817dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916838b73ffffffffffffffffffffffffffffffffffffffff167f3617b009e9785c42daebadb6d3fb553243a4bf586d07ea72d65d80013ce116b58460405161087d911515815260200190565b60405180910390a450505050505050505050565b600254604080517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606087901b16602080830191909152603482018690527fffff0000000000000000000000000000000000000000000000000000000000008516605483015282518083036036018152605683019384905280519101207f516db40800000000000000000000000000000000000000000000000000000000909252605a81019190915260009173ffffffffffffffffffffffffffffffffffffffff169063516db40890607a01602060405180830381865afa15801561097a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099e9190611825565b949350505050565b60015473ffffffffffffffffffffffffffffffffffffffff163314610a27576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4d7573742062652070726f706f736564206f776e6572000000000000000000006044820152606401610392565b60008054337fffffffffffffffffffffffff00000000000000000000000000000000000000008083168217845560018054909116905560405173ffffffffffffffffffffffffffffffffffffffff90921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b600254604080517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606087901b16602080830191909152603482018690527fffff0000000000000000000000000000000000000000000000000000000000008516605483015282518083036036018152605683019384905280519101207fe6b7145800000000000000000000000000000000000000000000000000000000909252605a81019190915260009173ffffffffffffffffffffffffffffffffffffffff169063e6b7145890607a01602060405180830381865afa158015610b8c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099e9190611846565b610bb8611008565b8260ff16600003610bf5576040517f0743bae600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b601f811115610c3a576040517f61750f4000000000000000000000000000000000000000000000000000000000815260048101829052601f6024820152604401610392565b610c45836003611863565b60ff168111610ca35780610c5a846003611863565b610c659060016115ca565b6040517f9dd9e6d8000000000000000000000000000000000000000000000000000000008152600481019290925260ff166024820152604401610392565b67ffffffff00000000602086901b1663ffffffff85161760005b67ffffffffffffffff8216600090815260036020526040902060010154811015610d595767ffffffffffffffff821660009081526003602052604081206001810180546002909201929184908110610d1757610d17611613565b600091825260208083209091015473ffffffffffffffffffffffffffffffffffffffff168352820192909252604001812055610d528161176a565b9050610cbd565b5060005b82811015610e7b576000848483818110610d7957610d79611613565b9050602002016020810190610d8e9190611577565b67ffffffffffffffff8416600090815260036020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845260020190915290205490915015610e1e576040517fe021c4f200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602401610392565b610e29826001611886565b67ffffffffffffffff8416600090815260036020908152604080832073ffffffffffffffffffffffffffffffffffffffff9095168352600290940190529190912055610e748161176a565b9050610d5d565b5067ffffffffffffffff81166000908152600360205260409020610ea390600101848461119f565b5067ffffffffffffffff81166000908152600360205260409081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff87161790555163ffffffff86811691908816907f4120bd3b23957dd423555817d55654d4481b438aa15485c21b4180c784f1a45590610f2990889088908890611899565b60405180910390a3505050505050565b610f41611008565b63ffffffff818116602084811b67ffffffff00000000168217600090815260038252604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690558051828152928301905291928516917f4120bd3b23957dd423555817d55654d4481b438aa15485c21b4180c784f1a45591604051610fcd929190611901565b60405180910390a35050565b610fe1611008565b610fea8161108b565b50565b60218101516045820151608b90920151909260c09290921c91565b60005473ffffffffffffffffffffffffffffffffffffffff163314611089576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4f6e6c792063616c6c61626c65206279206f776e6572000000000000000000006044820152606401610392565b565b3373ffffffffffffffffffffffffffffffffffffffff82160361110a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c660000000000000000006044820152606401610392565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b6040518061040001604052806020906020820280368337509192915050565b828054828255906000526020600020908101928215611217579160200282015b828111156112175781547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8435161782556020909201916001909101906111bf565b50611223929150611227565b5090565b5b808211156112235760008155600101611228565b73ffffffffffffffffffffffffffffffffffffffff81168114610fea57600080fd5b60008083601f84011261127057600080fd5b50813567ffffffffffffffff81111561128857600080fd5b6020830191508360208285010111156112a057600080fd5b9250929050565b60008083601f8401126112b957600080fd5b50813567ffffffffffffffff8111156112d157600080fd5b6020830191508360208260051b85010111156112a057600080fd5b60008060008060008060006080888a03121561130757600080fd5b87356113128161123c565b9650602088013567ffffffffffffffff8082111561132f57600080fd5b61133b8b838c0161125e565b909850965060408a013591508082111561135457600080fd5b6113608b838c0161125e565b909650945060608a013591508082111561137957600080fd5b506113868a828b016112a7565b989b979a50959850939692959293505050565b600060208083528351808285015260005b818110156113c6578581018301518582016040015282016113aa565b5060006040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b60008060006060848603121561141a57600080fd5b83356114258161123c565b92506020840135915060408401357fffff0000000000000000000000000000000000000000000000000000000000008116811461146157600080fd5b809150509250925092565b60208101600383106114a7577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b803563ffffffff811681146114c157600080fd5b919050565b6000806000806000608086880312156114de57600080fd5b6114e7866114ad565b94506114f5602087016114ad565b9350604086013560ff8116811461150b57600080fd5b9250606086013567ffffffffffffffff81111561152757600080fd5b611533888289016112a7565b969995985093965092949392505050565b6000806040838503121561155757600080fd5b611560836114ad565b915061156e602084016114ad565b90509250929050565b60006020828403121561158957600080fd5b81356115948161123c565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60ff81811683821601908111156115e3576115e361159b565b92915050565b8183823760009101908152919050565b838152818360208301376000910160200190815292915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261167757600080fd5b83018035915067ffffffffffffffff82111561169257600080fd5b6020019150368190038213156112a057600080fd5b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b60208152600061099e6020830184866116a7565b6000808585111561171457600080fd5b8386111561172157600080fd5b5050820193919092039150565b803560208310156115e3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361179b5761179b61159b565b5060010190565b878152600073ffffffffffffffffffffffffffffffffffffffff808916602084015280881660408401525060a060608301526117e260a0830186886116a7565b82810360808401526117f58185876116a7565b9a9950505050505050505050565b60006020828403121561181557600080fd5b8151801515811461159457600080fd5b60006020828403121561183757600080fd5b81516003811061159457600080fd5b60006020828403121561185857600080fd5b81516115948161123c565b60ff818116838216029081169081811461187f5761187f61159b565b5092915050565b808201808211156115e3576115e361159b565b60ff8416815260406020808301829052908201839052600090849060608401835b868110156118f55783356118cd8161123c565b73ffffffffffffffffffffffffffffffffffffffff16825292820192908201906001016118ba565b50979650505050505050565b60006040820160ff851683526020604081850152818551808452606086019150828701935060005b8181101561195b57845173ffffffffffffffffffffffffffffffffffffffff1683529383019391830191600101611929565b509097965050505050505056fea164736f6c6343000813000a", } var KeystoneForwarderABI = KeystoneForwarderMetaData.ABI var KeystoneForwarderBin = KeystoneForwarderMetaData.Bin -func DeployKeystoneForwarder(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *KeystoneForwarder, error) { +func DeployKeystoneForwarder(auth *bind.TransactOpts, backend bind.ContractBackend, router common.Address) (common.Address, *types.Transaction, *KeystoneForwarder, error) { parsed, err := KeystoneForwarderMetaData.GetAbi() if err != nil { return common.Address{}, nil, nil, err @@ -48,7 +48,7 @@ func DeployKeystoneForwarder(auth *bind.TransactOpts, backend bind.ContractBacke return common.Address{}, nil, nil, errors.New("GetABI returned nil") } - address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(KeystoneForwarderBin), backend) + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(KeystoneForwarderBin), backend, router) if err != nil { return common.Address{}, nil, nil, err } @@ -171,6 +171,72 @@ func (_KeystoneForwarder *KeystoneForwarderTransactorRaw) Transact(opts *bind.Tr return _KeystoneForwarder.Contract.contract.Transact(opts, method, params...) } +func (_KeystoneForwarder *KeystoneForwarderCaller) GetRouter(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _KeystoneForwarder.contract.Call(opts, &out, "getRouter") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +func (_KeystoneForwarder *KeystoneForwarderSession) GetRouter() (common.Address, error) { + return _KeystoneForwarder.Contract.GetRouter(&_KeystoneForwarder.CallOpts) +} + +func (_KeystoneForwarder *KeystoneForwarderCallerSession) GetRouter() (common.Address, error) { + return _KeystoneForwarder.Contract.GetRouter(&_KeystoneForwarder.CallOpts) +} + +func (_KeystoneForwarder *KeystoneForwarderCaller) GetTransmissionId(opts *bind.CallOpts, receiver common.Address, workflowExecutionId [32]byte, reportId [2]byte) ([32]byte, error) { + var out []interface{} + err := _KeystoneForwarder.contract.Call(opts, &out, "getTransmissionId", receiver, workflowExecutionId, reportId) + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +func (_KeystoneForwarder *KeystoneForwarderSession) GetTransmissionId(receiver common.Address, workflowExecutionId [32]byte, reportId [2]byte) ([32]byte, error) { + return _KeystoneForwarder.Contract.GetTransmissionId(&_KeystoneForwarder.CallOpts, receiver, workflowExecutionId, reportId) +} + +func (_KeystoneForwarder *KeystoneForwarderCallerSession) GetTransmissionId(receiver common.Address, workflowExecutionId [32]byte, reportId [2]byte) ([32]byte, error) { + return _KeystoneForwarder.Contract.GetTransmissionId(&_KeystoneForwarder.CallOpts, receiver, workflowExecutionId, reportId) +} + +func (_KeystoneForwarder *KeystoneForwarderCaller) GetTransmissionState(opts *bind.CallOpts, receiver common.Address, workflowExecutionId [32]byte, reportId [2]byte) (uint8, error) { + var out []interface{} + err := _KeystoneForwarder.contract.Call(opts, &out, "getTransmissionState", receiver, workflowExecutionId, reportId) + + if err != nil { + return *new(uint8), err + } + + out0 := *abi.ConvertType(out[0], new(uint8)).(*uint8) + + return out0, err + +} + +func (_KeystoneForwarder *KeystoneForwarderSession) GetTransmissionState(receiver common.Address, workflowExecutionId [32]byte, reportId [2]byte) (uint8, error) { + return _KeystoneForwarder.Contract.GetTransmissionState(&_KeystoneForwarder.CallOpts, receiver, workflowExecutionId, reportId) +} + +func (_KeystoneForwarder *KeystoneForwarderCallerSession) GetTransmissionState(receiver common.Address, workflowExecutionId [32]byte, reportId [2]byte) (uint8, error) { + return _KeystoneForwarder.Contract.GetTransmissionState(&_KeystoneForwarder.CallOpts, receiver, workflowExecutionId, reportId) +} + func (_KeystoneForwarder *KeystoneForwarderCaller) GetTransmitter(opts *bind.CallOpts, receiver common.Address, workflowExecutionId [32]byte, reportId [2]byte) (common.Address, error) { var out []interface{} err := _KeystoneForwarder.contract.Call(opts, &out, "getTransmitter", receiver, workflowExecutionId, reportId) @@ -261,16 +327,16 @@ func (_KeystoneForwarder *KeystoneForwarderTransactorSession) ClearConfig(donId return _KeystoneForwarder.Contract.ClearConfig(&_KeystoneForwarder.TransactOpts, donId, configVersion) } -func (_KeystoneForwarder *KeystoneForwarderTransactor) Report(opts *bind.TransactOpts, receiverAddress common.Address, rawReport []byte, reportContext []byte, signatures [][]byte) (*types.Transaction, error) { - return _KeystoneForwarder.contract.Transact(opts, "report", receiverAddress, rawReport, reportContext, signatures) +func (_KeystoneForwarder *KeystoneForwarderTransactor) Report(opts *bind.TransactOpts, receiver common.Address, rawReport []byte, reportContext []byte, signatures [][]byte) (*types.Transaction, error) { + return _KeystoneForwarder.contract.Transact(opts, "report", receiver, rawReport, reportContext, signatures) } -func (_KeystoneForwarder *KeystoneForwarderSession) Report(receiverAddress common.Address, rawReport []byte, reportContext []byte, signatures [][]byte) (*types.Transaction, error) { - return _KeystoneForwarder.Contract.Report(&_KeystoneForwarder.TransactOpts, receiverAddress, rawReport, reportContext, signatures) +func (_KeystoneForwarder *KeystoneForwarderSession) Report(receiver common.Address, rawReport []byte, reportContext []byte, signatures [][]byte) (*types.Transaction, error) { + return _KeystoneForwarder.Contract.Report(&_KeystoneForwarder.TransactOpts, receiver, rawReport, reportContext, signatures) } -func (_KeystoneForwarder *KeystoneForwarderTransactorSession) Report(receiverAddress common.Address, rawReport []byte, reportContext []byte, signatures [][]byte) (*types.Transaction, error) { - return _KeystoneForwarder.Contract.Report(&_KeystoneForwarder.TransactOpts, receiverAddress, rawReport, reportContext, signatures) +func (_KeystoneForwarder *KeystoneForwarderTransactorSession) Report(receiver common.Address, rawReport []byte, reportContext []byte, signatures [][]byte) (*types.Transaction, error) { + return _KeystoneForwarder.Contract.Report(&_KeystoneForwarder.TransactOpts, receiver, rawReport, reportContext, signatures) } func (_KeystoneForwarder *KeystoneForwarderTransactor) SetConfig(opts *bind.TransactOpts, donId uint32, configVersion uint32, f uint8, signers []common.Address) (*types.Transaction, error) { @@ -297,6 +363,144 @@ func (_KeystoneForwarder *KeystoneForwarderTransactorSession) TransferOwnership( return _KeystoneForwarder.Contract.TransferOwnership(&_KeystoneForwarder.TransactOpts, to) } +type KeystoneForwarderConfigSetIterator struct { + Event *KeystoneForwarderConfigSet + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *KeystoneForwarderConfigSetIterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(KeystoneForwarderConfigSet) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(KeystoneForwarderConfigSet) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *KeystoneForwarderConfigSetIterator) Error() error { + return it.fail +} + +func (it *KeystoneForwarderConfigSetIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type KeystoneForwarderConfigSet struct { + DonId uint32 + ConfigVersion uint32 + F uint8 + Signers []common.Address + Raw types.Log +} + +func (_KeystoneForwarder *KeystoneForwarderFilterer) FilterConfigSet(opts *bind.FilterOpts, donId []uint32, configVersion []uint32) (*KeystoneForwarderConfigSetIterator, error) { + + var donIdRule []interface{} + for _, donIdItem := range donId { + donIdRule = append(donIdRule, donIdItem) + } + var configVersionRule []interface{} + for _, configVersionItem := range configVersion { + configVersionRule = append(configVersionRule, configVersionItem) + } + + logs, sub, err := _KeystoneForwarder.contract.FilterLogs(opts, "ConfigSet", donIdRule, configVersionRule) + if err != nil { + return nil, err + } + return &KeystoneForwarderConfigSetIterator{contract: _KeystoneForwarder.contract, event: "ConfigSet", logs: logs, sub: sub}, nil +} + +func (_KeystoneForwarder *KeystoneForwarderFilterer) WatchConfigSet(opts *bind.WatchOpts, sink chan<- *KeystoneForwarderConfigSet, donId []uint32, configVersion []uint32) (event.Subscription, error) { + + var donIdRule []interface{} + for _, donIdItem := range donId { + donIdRule = append(donIdRule, donIdItem) + } + var configVersionRule []interface{} + for _, configVersionItem := range configVersion { + configVersionRule = append(configVersionRule, configVersionItem) + } + + logs, sub, err := _KeystoneForwarder.contract.WatchLogs(opts, "ConfigSet", donIdRule, configVersionRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(KeystoneForwarderConfigSet) + if err := _KeystoneForwarder.contract.UnpackLog(event, "ConfigSet", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_KeystoneForwarder *KeystoneForwarderFilterer) ParseConfigSet(log types.Log) (*KeystoneForwarderConfigSet, error) { + event := new(KeystoneForwarderConfigSet) + if err := _KeystoneForwarder.contract.UnpackLog(event, "ConfigSet", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + type KeystoneForwarderOwnershipTransferRequestedIterator struct { Event *KeystoneForwarderOwnershipTransferRequested @@ -632,11 +836,12 @@ func (it *KeystoneForwarderReportProcessedIterator) Close() error { type KeystoneForwarderReportProcessed struct { Receiver common.Address WorkflowExecutionId [32]byte + ReportId [2]byte Result bool Raw types.Log } -func (_KeystoneForwarder *KeystoneForwarderFilterer) FilterReportProcessed(opts *bind.FilterOpts, receiver []common.Address, workflowExecutionId [][32]byte) (*KeystoneForwarderReportProcessedIterator, error) { +func (_KeystoneForwarder *KeystoneForwarderFilterer) FilterReportProcessed(opts *bind.FilterOpts, receiver []common.Address, workflowExecutionId [][32]byte, reportId [][2]byte) (*KeystoneForwarderReportProcessedIterator, error) { var receiverRule []interface{} for _, receiverItem := range receiver { @@ -646,15 +851,19 @@ func (_KeystoneForwarder *KeystoneForwarderFilterer) FilterReportProcessed(opts for _, workflowExecutionIdItem := range workflowExecutionId { workflowExecutionIdRule = append(workflowExecutionIdRule, workflowExecutionIdItem) } + var reportIdRule []interface{} + for _, reportIdItem := range reportId { + reportIdRule = append(reportIdRule, reportIdItem) + } - logs, sub, err := _KeystoneForwarder.contract.FilterLogs(opts, "ReportProcessed", receiverRule, workflowExecutionIdRule) + logs, sub, err := _KeystoneForwarder.contract.FilterLogs(opts, "ReportProcessed", receiverRule, workflowExecutionIdRule, reportIdRule) if err != nil { return nil, err } return &KeystoneForwarderReportProcessedIterator{contract: _KeystoneForwarder.contract, event: "ReportProcessed", logs: logs, sub: sub}, nil } -func (_KeystoneForwarder *KeystoneForwarderFilterer) WatchReportProcessed(opts *bind.WatchOpts, sink chan<- *KeystoneForwarderReportProcessed, receiver []common.Address, workflowExecutionId [][32]byte) (event.Subscription, error) { +func (_KeystoneForwarder *KeystoneForwarderFilterer) WatchReportProcessed(opts *bind.WatchOpts, sink chan<- *KeystoneForwarderReportProcessed, receiver []common.Address, workflowExecutionId [][32]byte, reportId [][2]byte) (event.Subscription, error) { var receiverRule []interface{} for _, receiverItem := range receiver { @@ -664,8 +873,12 @@ func (_KeystoneForwarder *KeystoneForwarderFilterer) WatchReportProcessed(opts * for _, workflowExecutionIdItem := range workflowExecutionId { workflowExecutionIdRule = append(workflowExecutionIdRule, workflowExecutionIdItem) } + var reportIdRule []interface{} + for _, reportIdItem := range reportId { + reportIdRule = append(reportIdRule, reportIdItem) + } - logs, sub, err := _KeystoneForwarder.contract.WatchLogs(opts, "ReportProcessed", receiverRule, workflowExecutionIdRule) + logs, sub, err := _KeystoneForwarder.contract.WatchLogs(opts, "ReportProcessed", receiverRule, workflowExecutionIdRule, reportIdRule) if err != nil { return nil, err } @@ -708,6 +921,8 @@ func (_KeystoneForwarder *KeystoneForwarderFilterer) ParseReportProcessed(log ty func (_KeystoneForwarder *KeystoneForwarder) ParseLog(log types.Log) (generated.AbigenLog, error) { switch log.Topics[0] { + case _KeystoneForwarder.abi.Events["ConfigSet"].ID: + return _KeystoneForwarder.ParseConfigSet(log) case _KeystoneForwarder.abi.Events["OwnershipTransferRequested"].ID: return _KeystoneForwarder.ParseOwnershipTransferRequested(log) case _KeystoneForwarder.abi.Events["OwnershipTransferred"].ID: @@ -720,6 +935,10 @@ func (_KeystoneForwarder *KeystoneForwarder) ParseLog(log types.Log) (generated. } } +func (KeystoneForwarderConfigSet) Topic() common.Hash { + return common.HexToHash("0x4120bd3b23957dd423555817d55654d4481b438aa15485c21b4180c784f1a455") +} + func (KeystoneForwarderOwnershipTransferRequested) Topic() common.Hash { return common.HexToHash("0xed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae1278") } @@ -729,7 +948,7 @@ func (KeystoneForwarderOwnershipTransferred) Topic() common.Hash { } func (KeystoneForwarderReportProcessed) Topic() common.Hash { - return common.HexToHash("0xbe015fd2fd7c1a00158e111095c794ae7030eb413d2a0990e5b78d3114df1d49") + return common.HexToHash("0x3617b009e9785c42daebadb6d3fb553243a4bf586d07ea72d65d80013ce116b5") } func (_KeystoneForwarder *KeystoneForwarder) Address() common.Address { @@ -737,6 +956,12 @@ func (_KeystoneForwarder *KeystoneForwarder) Address() common.Address { } type KeystoneForwarderInterface interface { + GetRouter(opts *bind.CallOpts) (common.Address, error) + + GetTransmissionId(opts *bind.CallOpts, receiver common.Address, workflowExecutionId [32]byte, reportId [2]byte) ([32]byte, error) + + GetTransmissionState(opts *bind.CallOpts, receiver common.Address, workflowExecutionId [32]byte, reportId [2]byte) (uint8, error) + GetTransmitter(opts *bind.CallOpts, receiver common.Address, workflowExecutionId [32]byte, reportId [2]byte) (common.Address, error) Owner(opts *bind.CallOpts) (common.Address, error) @@ -747,12 +972,18 @@ type KeystoneForwarderInterface interface { ClearConfig(opts *bind.TransactOpts, donId uint32, configVersion uint32) (*types.Transaction, error) - Report(opts *bind.TransactOpts, receiverAddress common.Address, rawReport []byte, reportContext []byte, signatures [][]byte) (*types.Transaction, error) + Report(opts *bind.TransactOpts, receiver common.Address, rawReport []byte, reportContext []byte, signatures [][]byte) (*types.Transaction, error) SetConfig(opts *bind.TransactOpts, donId uint32, configVersion uint32, f uint8, signers []common.Address) (*types.Transaction, error) TransferOwnership(opts *bind.TransactOpts, to common.Address) (*types.Transaction, error) + FilterConfigSet(opts *bind.FilterOpts, donId []uint32, configVersion []uint32) (*KeystoneForwarderConfigSetIterator, error) + + WatchConfigSet(opts *bind.WatchOpts, sink chan<- *KeystoneForwarderConfigSet, donId []uint32, configVersion []uint32) (event.Subscription, error) + + ParseConfigSet(log types.Log) (*KeystoneForwarderConfigSet, error) + FilterOwnershipTransferRequested(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*KeystoneForwarderOwnershipTransferRequestedIterator, error) WatchOwnershipTransferRequested(opts *bind.WatchOpts, sink chan<- *KeystoneForwarderOwnershipTransferRequested, from []common.Address, to []common.Address) (event.Subscription, error) @@ -765,9 +996,9 @@ type KeystoneForwarderInterface interface { ParseOwnershipTransferred(log types.Log) (*KeystoneForwarderOwnershipTransferred, error) - FilterReportProcessed(opts *bind.FilterOpts, receiver []common.Address, workflowExecutionId [][32]byte) (*KeystoneForwarderReportProcessedIterator, error) + FilterReportProcessed(opts *bind.FilterOpts, receiver []common.Address, workflowExecutionId [][32]byte, reportId [][2]byte) (*KeystoneForwarderReportProcessedIterator, error) - WatchReportProcessed(opts *bind.WatchOpts, sink chan<- *KeystoneForwarderReportProcessed, receiver []common.Address, workflowExecutionId [][32]byte) (event.Subscription, error) + WatchReportProcessed(opts *bind.WatchOpts, sink chan<- *KeystoneForwarderReportProcessed, receiver []common.Address, workflowExecutionId [][32]byte, reportId [][2]byte) (event.Subscription, error) ParseReportProcessed(log types.Log) (*KeystoneForwarderReportProcessed, error) diff --git a/core/gethwrappers/keystone/generated/keystone_capability_registry/keystone_capability_registry.go b/core/gethwrappers/keystone/generated/keystone_capability_registry/keystone_capability_registry.go index b4796e04234..f68d29f8009 100644 --- a/core/gethwrappers/keystone/generated/keystone_capability_registry/keystone_capability_registry.go +++ b/core/gethwrappers/keystone/generated/keystone_capability_registry/keystone_capability_registry.go @@ -46,7 +46,7 @@ type CapabilityRegistryCapabilityConfiguration struct { type CapabilityRegistryDONInfo struct { Id uint32 ConfigCount uint32 - F uint32 + F uint8 IsPublic bool AcceptsWorkflows bool NodeP2PIds [][32]byte @@ -66,8 +66,8 @@ type CapabilityRegistryNodeOperator struct { } var CapabilityRegistryMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"AccessForbidden\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hashedCapabilityId\",\"type\":\"bytes32\"}],\"name\":\"CapabilityAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hashedCapabilityId\",\"type\":\"bytes32\"}],\"name\":\"CapabilityDoesNotExist\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hashedCapabilityId\",\"type\":\"bytes32\"}],\"name\":\"CapabilityIsDeprecated\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"}],\"name\":\"DONDoesNotExist\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"}],\"name\":\"DuplicateDONCapability\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"nodeP2PId\",\"type\":\"bytes32\"}],\"name\":\"DuplicateDONNode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"proposedConfigurationContract\",\"type\":\"address\"}],\"name\":\"InvalidCapabilityConfigurationContractInterface\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"f\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"nodeCount\",\"type\":\"uint256\"}],\"name\":\"InvalidFaultTolerance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"hashedCapabilityIds\",\"type\":\"bytes32[]\"}],\"name\":\"InvalidNodeCapabilities\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidNodeOperatorAdmin\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"}],\"name\":\"InvalidNodeP2PId\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidNodeSigner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"lengthOne\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lengthTwo\",\"type\":\"uint256\"}],\"name\":\"LengthMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"nodeP2PId\",\"type\":\"bytes32\"}],\"name\":\"NodeAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"nodeP2PId\",\"type\":\"bytes32\"}],\"name\":\"NodeDoesNotExist\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"nodeP2PId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"}],\"name\":\"NodeDoesNotSupportCapability\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"}],\"name\":\"NodeOperatorDoesNotExist\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"nodeP2PId\",\"type\":\"bytes32\"}],\"name\":\"NodePartOfDON\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"hashedCapabilityId\",\"type\":\"bytes32\"}],\"name\":\"CapabilityConfigured\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"hashedCapabilityId\",\"type\":\"bytes32\"}],\"name\":\"CapabilityDeprecated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"configCount\",\"type\":\"uint32\"}],\"name\":\"ConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"signer\",\"type\":\"bytes32\"}],\"name\":\"NodeAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"NodeOperatorAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"}],\"name\":\"NodeOperatorRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"NodeOperatorUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"}],\"name\":\"NodeRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"signer\",\"type\":\"bytes32\"}],\"name\":\"NodeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"labelledName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"enumCapabilityRegistry.CapabilityType\",\"name\":\"capabilityType\",\"type\":\"uint8\"},{\"internalType\":\"enumCapabilityRegistry.CapabilityResponseType\",\"name\":\"responseType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"configurationContract\",\"type\":\"address\"}],\"internalType\":\"structCapabilityRegistry.Capability[]\",\"name\":\"capabilities\",\"type\":\"tuple[]\"}],\"name\":\"addCapabilities\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"nodes\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"internalType\":\"structCapabilityRegistry.CapabilityConfiguration[]\",\"name\":\"capabilityConfigurations\",\"type\":\"tuple[]\"},{\"internalType\":\"bool\",\"name\":\"isPublic\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"acceptsWorkflows\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"f\",\"type\":\"uint32\"}],\"name\":\"addDON\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"internalType\":\"structCapabilityRegistry.NodeOperator[]\",\"name\":\"nodeOperators\",\"type\":\"tuple[]\"}],\"name\":\"addNodeOperators\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"signer\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"hashedCapabilityIds\",\"type\":\"bytes32[]\"}],\"internalType\":\"structCapabilityRegistry.NodeInfo[]\",\"name\":\"nodes\",\"type\":\"tuple[]\"}],\"name\":\"addNodes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"hashedCapabilityIds\",\"type\":\"bytes32[]\"}],\"name\":\"deprecateCapabilities\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCapabilities\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"labelledName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"enumCapabilityRegistry.CapabilityType\",\"name\":\"capabilityType\",\"type\":\"uint8\"},{\"internalType\":\"enumCapabilityRegistry.CapabilityResponseType\",\"name\":\"responseType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"configurationContract\",\"type\":\"address\"}],\"internalType\":\"structCapabilityRegistry.Capability[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hashedId\",\"type\":\"bytes32\"}],\"name\":\"getCapability\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"labelledName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"enumCapabilityRegistry.CapabilityType\",\"name\":\"capabilityType\",\"type\":\"uint8\"},{\"internalType\":\"enumCapabilityRegistry.CapabilityResponseType\",\"name\":\"responseType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"configurationContract\",\"type\":\"address\"}],\"internalType\":\"structCapabilityRegistry.Capability\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"}],\"name\":\"getCapabilityConfigs\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"}],\"name\":\"getDON\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"id\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"configCount\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"f\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"isPublic\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"acceptsWorkflows\",\"type\":\"bool\"},{\"internalType\":\"bytes32[]\",\"name\":\"nodeP2PIds\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"internalType\":\"structCapabilityRegistry.CapabilityConfiguration[]\",\"name\":\"capabilityConfigurations\",\"type\":\"tuple[]\"}],\"internalType\":\"structCapabilityRegistry.DONInfo\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDONs\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"id\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"configCount\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"f\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"isPublic\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"acceptsWorkflows\",\"type\":\"bool\"},{\"internalType\":\"bytes32[]\",\"name\":\"nodeP2PIds\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"internalType\":\"structCapabilityRegistry.CapabilityConfiguration[]\",\"name\":\"capabilityConfigurations\",\"type\":\"tuple[]\"}],\"internalType\":\"structCapabilityRegistry.DONInfo[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"labelledName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"}],\"name\":\"getHashedCapabilityId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"}],\"name\":\"getNode\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"signer\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"hashedCapabilityIds\",\"type\":\"bytes32[]\"}],\"internalType\":\"structCapabilityRegistry.NodeInfo\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"configCount\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"}],\"name\":\"getNodeOperator\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"internalType\":\"structCapabilityRegistry.NodeOperator\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNodeOperators\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"internalType\":\"structCapabilityRegistry.NodeOperator[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNodes\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"signer\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"hashedCapabilityIds\",\"type\":\"bytes32[]\"}],\"internalType\":\"structCapabilityRegistry.NodeInfo[]\",\"name\":\"nodeInfo\",\"type\":\"tuple[]\"},{\"internalType\":\"uint32[]\",\"name\":\"configCounts\",\"type\":\"uint32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hashedCapabilityId\",\"type\":\"bytes32\"}],\"name\":\"isCapabilityDeprecated\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32[]\",\"name\":\"donIds\",\"type\":\"uint32[]\"}],\"name\":\"removeDONs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32[]\",\"name\":\"nodeOperatorIds\",\"type\":\"uint32[]\"}],\"name\":\"removeNodeOperators\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"removedNodeP2PIds\",\"type\":\"bytes32[]\"}],\"name\":\"removeNodes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"typeAndVersion\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32[]\",\"name\":\"nodes\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"internalType\":\"structCapabilityRegistry.CapabilityConfiguration[]\",\"name\":\"capabilityConfigurations\",\"type\":\"tuple[]\"},{\"internalType\":\"bool\",\"name\":\"isPublic\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"acceptsWorkflows\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"f\",\"type\":\"uint32\"}],\"name\":\"updateDON\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32[]\",\"name\":\"nodeOperatorIds\",\"type\":\"uint32[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"internalType\":\"structCapabilityRegistry.NodeOperator[]\",\"name\":\"nodeOperators\",\"type\":\"tuple[]\"}],\"name\":\"updateNodeOperators\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"signer\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"hashedCapabilityIds\",\"type\":\"bytes32[]\"}],\"internalType\":\"structCapabilityRegistry.NodeInfo[]\",\"name\":\"nodes\",\"type\":\"tuple[]\"}],\"name\":\"updateNodes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x6080604052600e80546001600160401b0319166401000000011790553480156200002857600080fd5b503380600081620000805760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420736574206f776e657220746f207a65726f000000000000000060448201526064015b60405180910390fd5b600080546001600160a01b0319166001600160a01b0384811691909117909155811615620000b357620000b381620000bc565b50505062000167565b336001600160a01b03821603620001165760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640162000077565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b614e6f80620001776000396000f3fe608060405234801561001057600080fd5b50600436106101ae5760003560e01c80635d83d967116100ee57806386fa4246116100975780639cb7c5f4116100715780639cb7c5f4146103ea578063ddbe4f821461040a578063e29581aa14610420578063f2fde38b1461043657600080fd5b806386fa42461461039c5780638da5cb5b146103af57806395864d1f146103d757600080fd5b8063715f5295116100c8578063715f52951461036e57806373ac22b41461038157806379ba50971461039457600080fd5b80635d83d967146103335780635e65e3091461034657806366acaa331461035957600080fd5b806322bdbcbc1161015b5780632c01a1e8116101355780632c01a1e8146102cb578063398f3773146102de5780633f2a13c9146102f157806350c946fe1461031257600080fd5b806322bdbcbc146102785780632353740514610298578063275459f2146102b857600080fd5b8063193ec0061161018c578063193ec0061461023b5780631d05394c14610250578063214502431461026357600080fd5b80630fe5800a146101b357806312570011146101d9578063181f5a77146101fc575b600080fd5b6101c66101c1366004613c70565b610449565b6040519081526020015b60405180910390f35b6101ec6101e7366004613cd4565b61047d565b60405190151581526020016101d0565b604080518082018252601881527f4361706162696c697479526567697374727920312e302e300000000000000000602082015290516101d09190613d5b565b61024e610249366004613dda565b61048a565b005b61024e61025e366004613e7f565b610554565b61026b610710565b6040516101d09190613fe9565b61028b610286366004614069565b610875565b6040516101d091906140c1565b6102ab6102a6366004614069565b610962565b6040516101d091906140d4565b61024e6102c6366004613e7f565b6109a6565b61024e6102d9366004613e7f565b610a7d565b61024e6102ec366004613e7f565b610ca0565b6103046102ff3660046140e7565b610e68565b6040516101d0929190614111565b610325610320366004613cd4565b611054565b6040516101d0929190614178565b61024e610341366004613e7f565b6110f9565b61024e610354366004613e7f565b611247565b6103616116b9565b6040516101d091906141a0565b61024e61037c366004613e7f565b6118a4565b61024e61038f366004613e7f565b61195f565b61024e611e04565b61024e6103aa366004614213565b611f01565b60005460405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101d0565b61024e6103e536600461427f565b612247565b6103fd6103f8366004613cd4565b612313565b6040516101d091906143f0565b610412612518565b6040516101d0929190614403565b610428612883565b6040516101d0929190614493565b61024e610444366004614576565b6129f2565b6000828260405160200161045e929190614111565b6040516020818303038152906040528051906020012090505b92915050565b6000610477600583612a06565b610492612a21565b600e805460009164010000000090910463ffffffff169060046104b4836145c0565b82546101009290920a63ffffffff8181021990931691831602179091558181166000818152600d602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001684179055815160a081018352928352600190830152871515908201528515156060820152908416608082015290915061054a908990899089908990612aa4565b5050505050505050565b61055c612a21565b60005b8181101561070b57600083838381811061057b5761057b6145e3565b90506020020160208101906105909190614069565b63ffffffff8082166000908152600d60209081526040808320805464010000000090049094168084526001850190925282209394509192905b6105d282613154565b81101561062a576106198563ffffffff16600c60006105fa858761315e90919063ffffffff16565b815260200190815260200160002060040161316a90919063ffffffff16565b5061062381614612565b90506105c9565b508254640100000000900463ffffffff16600003610681576040517f2b62be9b00000000000000000000000000000000000000000000000000000000815263ffffffff851660048201526024015b60405180910390fd5b63ffffffff84166000818152600d6020908152604080832080547fffffffffffffffffffffffffffffffffffff00000000000000000000000000001690558051938452908301919091527ff264aae70bf6a9d90e68e0f9b393f4e7fbea67b063b0f336e0b36c1581703651910160405180910390a1505050508061070490614612565b905061055f565b505050565b600e54606090640100000000900463ffffffff16600061073160018361464a565b63ffffffff1667ffffffffffffffff81111561074f5761074f613b0a565b6040519080825280602002602001820160405280156107d657816020015b6040805160e081018252600080825260208083018290529282018190526060808301829052608083019190915260a0820181905260c082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90920191018161076d5790505b509050600060015b8363ffffffff168163ffffffff1610156108525763ffffffff8082166000908152600d602052604090205416156108425761081881613176565b83838151811061082a5761082a6145e3565b60200260200101819052508161083f90614612565b91505b61084b816145c0565b90506107de565b5061085e60018461464a565b63ffffffff16811461086e578082525b5092915050565b60408051808201909152600081526060602082015263ffffffff82166000908152600b60209081526040918290208251808401909352805473ffffffffffffffffffffffffffffffffffffffff16835260018101805491928401916108d990614667565b80601f016020809104026020016040519081016040528092919081815260200182805461090590614667565b80156109525780601f1061092757610100808354040283529160200191610952565b820191906000526020600020905b81548152906001019060200180831161093557829003601f168201915b5050505050815250509050919050565b6040805160e0810182526000808252602082018190529181018290526060808201839052608082019290925260a0810182905260c081019190915261047782613176565b6109ae612a21565b60005b63ffffffff811682111561070b57600083838363ffffffff168181106109d9576109d96145e3565b90506020020160208101906109ee9190614069565b63ffffffff81166000908152600b6020526040812080547fffffffffffffffffffffffff0000000000000000000000000000000000000000168155919250610a396001830182613a9d565b505060405163ffffffff8216907fa59268ca81d40429e65ccea5385b59cf2d3fc6519371dee92f8eb1dae5107a7a90600090a250610a76816145c0565b90506109b1565b6000805473ffffffffffffffffffffffffffffffffffffffff163314905b82811015610c9a576000848483818110610ab757610ab76145e3565b602090810292909201356000818152600c90935260409092206001810154929350919050610b14576040517fd82f6adb00000000000000000000000000000000000000000000000000000000815260048101839052602401610678565b6000610b2282600401613154565b1115610b5d576040517f34a4a3f600000000000000000000000000000000000000000000000000000000815260048101839052602401610678565b83158015610b975750805463ffffffff166000908152600b602052604090205473ffffffffffffffffffffffffffffffffffffffff163314155b15610bd0576040517f9473075d000000000000000000000000000000000000000000000000000000008152336004820152602401610678565b6001810154610be19060079061316a565b506002810154610bf39060099061316a565b506000828152600c6020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016815560018101829055600281018290559060048201818181610c488282613ad7565b5050505050507f5254e609a97bab37b7cc79fe128f85c097bd6015c6e1624ae0ba392eb975320582604051610c7f91815260200190565b60405180910390a1505080610c9390614612565b9050610a9b565b50505050565b610ca8612a21565b60005b8181101561070b576000838383818110610cc757610cc76145e3565b9050602002810190610cd991906146ba565b610ce2906146f8565b805190915073ffffffffffffffffffffffffffffffffffffffff16610d33576040517feeacd93900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600e54604080518082018252835173ffffffffffffffffffffffffffffffffffffffff908116825260208086015181840190815263ffffffff9095166000818152600b909252939020825181547fffffffffffffffffffffffff00000000000000000000000000000000000000001692169190911781559251919290916001820190610dbf90826147b0565b5050600e8054909150600090610dda9063ffffffff166145c0565b91906101000a81548163ffffffff021916908363ffffffff160217905550816000015173ffffffffffffffffffffffffffffffffffffffff168163ffffffff167f78e94ca80be2c30abc061b99e7eb8583b1254781734b1e3ce339abb57da2fe8e8460200151604051610e4d9190613d5b565b60405180910390a3505080610e6190614612565b9050610cab565b63ffffffff8083166000908152600d60209081526040808320805464010000000090049094168084526001909401825280832085845260030190915281208054606093849390929091610eba90614667565b80601f0160208091040260200160405190810160405280929190818152602001828054610ee690614667565b8015610f335780601f10610f0857610100808354040283529160200191610f33565b820191906000526020600020905b815481529060010190602001808311610f1657829003601f168201915b5050506000888152600260208190526040909120015492935060609262010000900473ffffffffffffffffffffffffffffffffffffffff16159150611046905057600086815260026020819052604091829020015490517f8318ed5d00000000000000000000000000000000000000000000000000000000815263ffffffff891660048201526201000090910473ffffffffffffffffffffffffffffffffffffffff1690638318ed5d90602401600060405180830381865afa158015610ffd573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261104391908101906148ca565b90505b9093509150505b9250929050565b6040805160808101825260008082526020820181905291810191909152606080820152604080516080810182526000848152600c6020908152838220805463ffffffff8082168652600183015484870152600283015486880152640100000000909104168352600301905291822060608201906110d090613452565b90526000938452600c602052604090932054929364010000000090930463ffffffff1692915050565b611101612a21565b60005b8181101561070b576000838383818110611120576111206145e3565b90506020020135905061113d816003612a0690919063ffffffff16565b611176576040517fe181733f00000000000000000000000000000000000000000000000000000000815260048101829052602401610678565b61118160058261345f565b6111ba576040517ff7d7a29400000000000000000000000000000000000000000000000000000000815260048101829052602401610678565b6000818152600260205260408120906111d38282613a9d565b6111e1600183016000613a9d565b5060020180547fffffffffffffffffffff0000000000000000000000000000000000000000000016905560405181907fdcea1b78b6ddc31592a94607d537543fcaafda6cc52d6d5cc7bbfca1422baf2190600090a25061124081614612565b9050611104565b6000805473ffffffffffffffffffffffffffffffffffffffff163314905b82811015610c9a576000848483818110611281576112816145e3565b90506020028101906112939190614938565b61129c9061496c565b805163ffffffff166000908152600b602090815260408083208151808301909252805473ffffffffffffffffffffffffffffffffffffffff1682526001810180549596509394919390928401916112f290614667565b80601f016020809104026020016040519081016040528092919081815260200182805461131e90614667565b801561136b5780601f106113405761010080835404028352916020019161136b565b820191906000526020600020905b81548152906001019060200180831161134e57829003601f168201915b50505050508152505090508315801561139b5750805173ffffffffffffffffffffffffffffffffffffffff163314155b156113d4576040517f9473075d000000000000000000000000000000000000000000000000000000008152336004820152602401610678565b6040808301516000908152600c6020522060018101546114285782604001516040517fd82f6adb00000000000000000000000000000000000000000000000000000000815260040161067891815260200190565b60208301511580611458575082602001518160010154141580156114585750602083015161145890600790612a06565b1561148f576040517f8377314600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606083015180516000036114d157806040517f3748d4c60000000000000000000000000000000000000000000000000000000081526004016106789190614a3f565b8154640100000000900463ffffffff168260046114ed836145c0565b82546101009290920a63ffffffff8181021990931691831602179091558354640100000000900416905060005b82518110156115e557611550838281518110611538576115386145e3565b60200260200101516003612a0690919063ffffffff16565b61158857826040517f3748d4c60000000000000000000000000000000000000000000000000000000081526004016106789190614a3f565b6115d483828151811061159d5761159d6145e3565b60200260200101518560030160008563ffffffff1663ffffffff16815260200190815260200160002061345f90919063ffffffff16565b506115de81614612565b905061151a565b50845183547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff909116178355604085015160028401556001830154602086015181146116575761163c60078261316a565b506020860151600185018190556116559060079061345f565b505b85516040808801516020808a015183519283529082015263ffffffff909216917f4b5b465e22eea0c3d40c30e936643245b80d19b2dcf75788c0699fe8d8db645b910160405180910390a2505050505050806116b290614612565b9050611265565b600e5460609063ffffffff1660006116d260018361464a565b63ffffffff1667ffffffffffffffff8111156116f0576116f0613b0a565b60405190808252806020026020018201604052801561173657816020015b60408051808201909152600081526060602082015281526020019060019003908161170e5790505b509050600060015b8363ffffffff168163ffffffff16101561188e5763ffffffff81166000908152600b602052604090205473ffffffffffffffffffffffffffffffffffffffff161561187e5763ffffffff81166000908152600b60209081526040918290208251808401909352805473ffffffffffffffffffffffffffffffffffffffff16835260018101805491928401916117d290614667565b80601f01602080910402602001604051908101604052809291908181526020018280546117fe90614667565b801561184b5780601f106118205761010080835404028352916020019161184b565b820191906000526020600020905b81548152906001019060200180831161182e57829003601f168201915b505050505081525050838381518110611866576118666145e3565b60200260200101819052508161187b90614612565b91505b611887816145c0565b905061173e565b50600e5461085e9060019063ffffffff1661464a565b6118ac612a21565b60005b8181101561070b5760008383838181106118cb576118cb6145e3565b90506020028101906118dd9190614a52565b6118e690614a95565b905060006118fc82600001518360200151610449565b905061190960038261345f565b611942576040517febf5255100000000000000000000000000000000000000000000000000000000815260048101829052602401610678565b61194c818361346b565b50508061195890614612565b90506118af565b6000805473ffffffffffffffffffffffffffffffffffffffff163314905b82811015610c9a576000848483818110611999576119996145e3565b90506020028101906119ab9190614938565b6119b49061496c565b805163ffffffff166000908152600b602090815260408083208151808301909252805473ffffffffffffffffffffffffffffffffffffffff168252600181018054959650939491939092840191611a0a90614667565b80601f0160208091040260200160405190810160405280929190818152602001828054611a3690614667565b8015611a835780601f10611a5857610100808354040283529160200191611a83565b820191906000526020600020905b815481529060010190602001808311611a6657829003601f168201915b50505091909252505081519192505073ffffffffffffffffffffffffffffffffffffffff16611ae95781516040517fadd9ae1e00000000000000000000000000000000000000000000000000000000815263ffffffff9091166004820152602401610678565b83158015611b0e5750805173ffffffffffffffffffffffffffffffffffffffff163314155b15611b47576040517f9473075d000000000000000000000000000000000000000000000000000000008152336004820152602401610678565b6040808301516000908152600c60205220600181015415611b9c5782604001516040517f5461848300000000000000000000000000000000000000000000000000000000815260040161067891815260200190565b6040830151611bdf5782604001516040517f64e2ee9200000000000000000000000000000000000000000000000000000000815260040161067891815260200190565b60208301511580611bfc57506020830151611bfc90600790612a06565b15611c33576040517f8377314600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60608301518051600003611c7557806040517f3748d4c60000000000000000000000000000000000000000000000000000000081526004016106789190614a3f565b81548290600490611c9390640100000000900463ffffffff166145c0565b82546101009290920a63ffffffff818102199093169183160217909155825464010000000090041660005b8251811015611d3a57611cdc838281518110611538576115386145e3565b611d1457826040517f3748d4c60000000000000000000000000000000000000000000000000000000081526004016106789190614a3f565b611d2983828151811061159d5761159d6145e3565b50611d3381614612565b9050611cbe565b50845183547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff91821617845560408601516002850155602086015160018501819055611d90916007919061345f16565b506040850151611da29060099061345f565b50845160408087015160208089015183519283529082015263ffffffff909216917f74becb12a5e8fd0e98077d02dfba8f647c9670c9df177e42c2418cf17a636f05910160405180910390a2505050505080611dfd90614612565b905061197d565b60015473ffffffffffffffffffffffffffffffffffffffff163314611e85576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4d7573742062652070726f706f736564206f776e6572000000000000000000006044820152606401610678565b60008054337fffffffffffffffffffffffff00000000000000000000000000000000000000008083168217845560018054909116905560405173ffffffffffffffffffffffffffffffffffffffff90921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b828114611f44576040517fab8b67c60000000000000000000000000000000000000000000000000000000081526004810184905260248101829052604401610678565b6000805473ffffffffffffffffffffffffffffffffffffffff16905b8481101561223f576000868683818110611f7c57611f7c6145e3565b9050602002016020810190611f919190614069565b63ffffffff81166000908152600b6020526040902080549192509073ffffffffffffffffffffffffffffffffffffffff16612000576040517fadd9ae1e00000000000000000000000000000000000000000000000000000000815263ffffffff83166004820152602401610678565b6000868685818110612014576120146145e3565b905060200281019061202691906146ba565b61202f906146f8565b805190915073ffffffffffffffffffffffffffffffffffffffff16612080576040517feeacd93900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805173ffffffffffffffffffffffffffffffffffffffff1633148015906120bd57503373ffffffffffffffffffffffffffffffffffffffff861614155b156120f6576040517f9473075d000000000000000000000000000000000000000000000000000000008152336004820152602401610678565b8051825473ffffffffffffffffffffffffffffffffffffffff9081169116141580612172575060208082015160405161212f9201613d5b565b60405160208183030381529060405280519060200120826001016040516020016121599190614b3b565b6040516020818303038152906040528051906020012014155b1561222b57805182547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909116178255602081015160018301906121cc90826147b0565b50806000015173ffffffffffffffffffffffffffffffffffffffff168363ffffffff167f86f41145bde5dd7f523305452e4aad3685508c181432ec733d5f345009358a2883602001516040516122229190613d5b565b60405180910390a35b5050508061223890614612565b9050611f60565b505050505050565b61224f612a21565b63ffffffff8089166000908152600d60205260408120546401000000009004909116908190036122b3576040517f2b62be9b00000000000000000000000000000000000000000000000000000000815263ffffffff8a166004820152602401610678565b612308888888886040518060a001604052808f63ffffffff168152602001876122db906145c0565b97508763ffffffff1681526020018a1515815260200189151581526020018863ffffffff16815250612aa4565b505050505050505050565b6123436040805160a081018252606080825260208201529081016000815260200160008152600060209091015290565b60008281526002602052604090819020815160a0810190925280548290829061236b90614667565b80601f016020809104026020016040519081016040528092919081815260200182805461239790614667565b80156123e45780601f106123b9576101008083540402835291602001916123e4565b820191906000526020600020905b8154815290600101906020018083116123c757829003601f168201915b505050505081526020016001820180546123fd90614667565b80601f016020809104026020016040519081016040528092919081815260200182805461242990614667565b80156124765780601f1061244b57610100808354040283529160200191612476565b820191906000526020600020905b81548152906001019060200180831161245957829003601f168201915b5050509183525050600282015460209091019060ff16600381111561249d5761249d614334565b60038111156124ae576124ae614334565b81526020016002820160019054906101000a900460ff1660018111156124d6576124d6614334565b60018111156124e7576124e7614334565b81526002919091015462010000900473ffffffffffffffffffffffffffffffffffffffff1660209091015292915050565b60608060006125276003613452565b905060006125356005613154565b82516125419190614be4565b905060008167ffffffffffffffff81111561255e5761255e613b0a565b6040519080825280602002602001820160405280156125bf57816020015b6125ac6040805160a081018252606080825260208201529081016000815260200160008152600060209091015290565b81526020019060019003908161257c5790505b50905060008267ffffffffffffffff8111156125dd576125dd613b0a565b604051908082528060200260200182016040528015612606578160200160208202803683370190505b5090506000805b855181101561287557600086828151811061262a5761262a6145e3565b60200260200101519050612648816005612a0690919063ffffffff16565b6128645760008181526002602052604090819020815160a0810190925280548290829061267490614667565b80601f01602080910402602001604051908101604052809291908181526020018280546126a090614667565b80156126ed5780601f106126c2576101008083540402835291602001916126ed565b820191906000526020600020905b8154815290600101906020018083116126d057829003601f168201915b5050505050815260200160018201805461270690614667565b80601f016020809104026020016040519081016040528092919081815260200182805461273290614667565b801561277f5780601f106127545761010080835404028352916020019161277f565b820191906000526020600020905b81548152906001019060200180831161276257829003601f168201915b5050509183525050600282015460209091019060ff1660038111156127a6576127a6614334565b60038111156127b7576127b7614334565b81526020016002820160019054906101000a900460ff1660018111156127df576127df614334565b60018111156127f0576127f0614334565b81526002919091015462010000900473ffffffffffffffffffffffffffffffffffffffff16602090910152855186908590811061282f5761282f6145e3565b60200260200101819052508084848151811061284d5761284d6145e3565b602090810291909101015261286183614612565b92505b5061286e81614612565b905061260d565b509096919550909350505050565b60608060006128926009613452565b9050805167ffffffffffffffff8111156128ae576128ae613b0a565b60405190808252806020026020018201604052801561291d57816020015b60408051608081018252600080825260208083018290529282015260608082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092019101816128cc5790505b509250805167ffffffffffffffff81111561293a5761293a613b0a565b604051908082528060200260200182016040528015612963578160200160208202803683370190505b50915060005b81518110156129ec57612994828281518110612987576129876145e3565b6020026020010151611054565b8583815181106129a6576129a66145e3565b602002602001018584815181106129bf576129bf6145e3565b602002602001018263ffffffff1663ffffffff168152508290525050806129e590614612565b9050612969565b50509091565b6129fa612a21565b612a03816136ff565b50565b600081815260018301602052604081205415155b9392505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314612aa2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4f6e6c792063616c6c61626c65206279206f776e6572000000000000000000006044820152606401610678565b565b805163ffffffff9081166000908152600d602090815260408083208286015185168452600101909152902060808301519091161580612af8575060808201518590612af0906001614bf7565b63ffffffff16115b15612b445760808201516040517fd5f5269100000000000000000000000000000000000000000000000000000000815263ffffffff909116600482015260248101869052604401610678565b6001826020015163ffffffff161115612bf057815163ffffffff166000908152600d602090815260408220908401516001918201918391612b85919061464a565b63ffffffff1663ffffffff168152602001908152602001600020905060005b612bad82613154565b811015612bed57612bdc846000015163ffffffff16600c60006105fa858760000161315e90919063ffffffff16565b50612be681614612565b9050612ba4565b50505b60005b85811015612cda57612c20878783818110612c1057612c106145e3565b859260209091020135905061345f565b612c81578251878783818110612c3857612c386145e3565b6040517f636e405700000000000000000000000000000000000000000000000000000000815263ffffffff90941660048501526020029190910135602483015250604401610678565b8251612cc99063ffffffff16600c60008a8a86818110612ca357612ca36145e3565b90506020020135815260200190815260200160002060040161345f90919063ffffffff16565b50612cd381614612565b9050612bf3565b5060005b83811015612fc65736858583818110612cf957612cf96145e3565b9050602002810190612d0b91906146ba565b9050612d1960038235612a06565b612d52576040517fe181733f00000000000000000000000000000000000000000000000000000000815281356004820152602401610678565b612d5e60058235612a06565b15612d98576040517ff7d7a29400000000000000000000000000000000000000000000000000000000815281356004820152602401610678565b8035600090815260038401602052604081208054612db590614667565b90501115612e015783516040517f3927d08000000000000000000000000000000000000000000000000000000000815263ffffffff909116600482015281356024820152604401610678565b60005b87811015612f1357612ea88235600c60008c8c86818110612e2757612e276145e3565b9050602002013581526020019081526020016000206003016000600c60008e8e88818110612e5757612e576145e3565b90506020020135815260200190815260200160002060000160049054906101000a900463ffffffff1663ffffffff1663ffffffff168152602001908152602001600020612a0690919063ffffffff16565b612f0357888882818110612ebe57612ebe6145e3565b6040517fa7e792500000000000000000000000000000000000000000000000000000000081526020909102929092013560048301525082356024820152604401610678565b612f0c81614612565b9050612e04565b5060028301805460018101825560009182526020918290208335910155612f3c90820182614c14565b82356000908152600386016020526040902091612f5a919083614c79565b508351602080860151612fb592918435908c908c90612f7b90880188614c14565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506137f492505050565b50612fbf81614612565b9050612cde565b50604080830151835163ffffffff9081166000908152600d602090815284822080549415156c01000000000000000000000000027fffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff90951694909417909355606086015186518316825284822080549115156d0100000000000000000000000000027fffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff9092169190911790556080860151865183168252848220805491841668010000000000000000027fffffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffff909216919091179055918501805186518316845292849020805493909216640100000000027fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff9093169290921790558351905191517ff264aae70bf6a9d90e68e0f9b393f4e7fbea67b063b0f336e0b36c158170365192613144929163ffffffff92831681529116602082015260400190565b60405180910390a1505050505050565b6000610477825490565b6000612a1a83836138d5565b6000612a1a83836138ff565b6040805160e0810182526000808252602080830182905282840182905260608084018390526080840183905260a0840181905260c084015263ffffffff8581168352600d825284832080546401000000009004909116808452600190910182528483206002810180548751818602810186019098528088529596929591949390919083018282801561322757602002820191906000526020600020905b815481526020019060010190808311613213575b505050505090506000815167ffffffffffffffff81111561324a5761324a613b0a565b60405190808252806020026020018201604052801561329057816020015b6040805180820190915260008152606060208201528152602001906001900390816132685790505b50905060005b81518110156133b15760405180604001604052808483815181106132bc576132bc6145e3565b602002602001015181526020018560030160008685815181106132e1576132e16145e3565b60200260200101518152602001908152602001600020805461330290614667565b80601f016020809104026020016040519081016040528092919081815260200182805461332e90614667565b801561337b5780601f106133505761010080835404028352916020019161337b565b820191906000526020600020905b81548152906001019060200180831161335e57829003601f168201915b5050505050815250828281518110613395576133956145e3565b6020026020010181905250806133aa90614612565b9050613296565b506040805160e08101825263ffffffff8089166000818152600d60208181528683205480861687528b8616828801526801000000000000000081049095169686019690965260ff6c010000000000000000000000008504811615156060870152929091529093526d010000000000000000000000000090049091161515608082015260a0810161344085613452565b81526020019190915295945050505050565b60606000612a1a836139f2565b6000612a1a8383613a4e565b608081015173ffffffffffffffffffffffffffffffffffffffff16156135b957608081015173ffffffffffffffffffffffffffffffffffffffff163b1580613564575060808101516040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527f78bea72100000000000000000000000000000000000000000000000000000000600482015273ffffffffffffffffffffffffffffffffffffffff909116906301ffc9a790602401602060405180830381865afa15801561353e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135629190614d94565b155b156135b95760808101516040517fabb5e3fd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602401610678565b6000828152600260205260409020815182919081906135d890826147b0565b50602082015160018201906135ed90826147b0565b5060408201516002820180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600183600381111561362f5761362f614334565b021790555060608201516002820180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661010083600181111561367657613676614334565b0217905550608091909101516002909101805473ffffffffffffffffffffffffffffffffffffffff90921662010000027fffffffffffffffffffff0000000000000000000000000000000000000000ffff90921691909117905560405182907f04f0a9bcf3f3a3b42a4d7ca081119755f82ebe43e0d30c8f7292c4fe0dc4a2ae90600090a25050565b3373ffffffffffffffffffffffffffffffffffffffff82160361377e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c660000000000000000006044820152606401610678565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b6000848152600260208190526040909120015462010000900473ffffffffffffffffffffffffffffffffffffffff161561223f57600084815260026020819052604091829020015490517ffba64a7c0000000000000000000000000000000000000000000000000000000081526201000090910473ffffffffffffffffffffffffffffffffffffffff169063fba64a7c9061389b908690869086908b908d90600401614db1565b600060405180830381600087803b1580156138b557600080fd5b505af11580156138c9573d6000803e3d6000fd5b50505050505050505050565b60008260000182815481106138ec576138ec6145e3565b9060005260206000200154905092915050565b600081815260018301602052604081205480156139e8576000613923600183614be4565b855490915060009061393790600190614be4565b905081811461399c576000866000018281548110613957576139576145e3565b906000526020600020015490508087600001848154811061397a5761397a6145e3565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806139ad576139ad614e33565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610477565b6000915050610477565b606081600001805480602002602001604051908101604052809291908181526020018280548015613a4257602002820191906000526020600020905b815481526020019060010190808311613a2e575b50505050509050919050565b6000818152600183016020526040812054613a9557508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610477565b506000610477565b508054613aa990614667565b6000825580601f10613ab9575050565b601f016020900490600052602060002090810190612a039190613af1565b5080546000825590600052602060002090810190612a0391905b5b80821115613b065760008155600101613af2565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516080810167ffffffffffffffff81118282101715613b5c57613b5c613b0a565b60405290565b60405160a0810167ffffffffffffffff81118282101715613b5c57613b5c613b0a565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715613bcc57613bcc613b0a565b604052919050565b600067ffffffffffffffff821115613bee57613bee613b0a565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b600082601f830112613c2b57600080fd5b8135613c3e613c3982613bd4565b613b85565b818152846020838601011115613c5357600080fd5b816020850160208301376000918101602001919091529392505050565b60008060408385031215613c8357600080fd5b823567ffffffffffffffff80821115613c9b57600080fd5b613ca786838701613c1a565b93506020850135915080821115613cbd57600080fd5b50613cca85828601613c1a565b9150509250929050565b600060208284031215613ce657600080fd5b5035919050565b60005b83811015613d08578181015183820152602001613cf0565b50506000910152565b60008151808452613d29816020860160208601613ced565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000612a1a6020830184613d11565b60008083601f840112613d8057600080fd5b50813567ffffffffffffffff811115613d9857600080fd5b6020830191508360208260051b850101111561104d57600080fd5b8015158114612a0357600080fd5b803563ffffffff81168114613dd557600080fd5b919050565b600080600080600080600060a0888a031215613df557600080fd5b873567ffffffffffffffff80821115613e0d57600080fd5b613e198b838c01613d6e565b909950975060208a0135915080821115613e3257600080fd5b50613e3f8a828b01613d6e565b9096509450506040880135613e5381613db3565b92506060880135613e6381613db3565b9150613e7160808901613dc1565b905092959891949750929550565b60008060208385031215613e9257600080fd5b823567ffffffffffffffff811115613ea957600080fd5b613eb585828601613d6e565b90969095509350505050565b600081518084526020808501945080840160005b83811015613ef157815187529582019590820190600101613ed5565b509495945050505050565b600063ffffffff80835116845260208181850151168186015260408281860151168187015260608501511515606087015260808501511515608087015260a0850151925060e060a0870152613f5460e0870184613ec1565b925060c085015186840360c08801528381518086528486019150848160051b870101858401935060005b82811015613fdb578782037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0018452845180518352870151878301879052613fc887840182613d11565b9588019594880194925050600101613f7e565b509998505050505050505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561405c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc088860301845261404a858351613efc565b94509285019290850190600101614010565b5092979650505050505050565b60006020828403121561407b57600080fd5b612a1a82613dc1565b73ffffffffffffffffffffffffffffffffffffffff815116825260006020820151604060208501526140b96040850182613d11565b949350505050565b602081526000612a1a6020830184614084565b602081526000612a1a6020830184613efc565b600080604083850312156140fa57600080fd5b61410383613dc1565b946020939093013593505050565b6040815260006141246040830185613d11565b82810360208401526141368185613d11565b95945050505050565b63ffffffff8151168252602081015160208301526040810151604083015260006060820151608060608501526140b96080850182613ec1565b60408152600061418b604083018561413f565b905063ffffffff831660208301529392505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561405c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0888603018452614201858351614084565b945092850192908501906001016141c7565b6000806000806040858703121561422957600080fd5b843567ffffffffffffffff8082111561424157600080fd5b61424d88838901613d6e565b9096509450602087013591508082111561426657600080fd5b5061427387828801613d6e565b95989497509550505050565b60008060008060008060008060c0898b03121561429b57600080fd5b6142a489613dc1565b9750602089013567ffffffffffffffff808211156142c157600080fd5b6142cd8c838d01613d6e565b909950975060408b01359150808211156142e657600080fd5b506142f38b828c01613d6e565b909650945050606089013561430781613db3565b9250608089013561431781613db3565b915061432560a08a01613dc1565b90509295985092959890939650565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6000815160a0845261437860a0850182613d11565b9050602083015184820360208601526143918282613d11565b9150506040830151600481106143a9576143a9614334565b60408501526060830151600281106143c3576143c3614334565b606085015260809283015173ffffffffffffffffffffffffffffffffffffffff1692909301919091525090565b602081526000612a1a6020830184614363565b6040815260006144166040830185613ec1565b6020838203818501528185518084528284019150828160051b85010183880160005b83811015614484577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0878403018552614472838351614363565b94860194925090850190600101614438565b50909998505050505050505050565b6000604082016040835280855180835260608501915060608160051b8601019250602080880160005b83811015614508577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08887030185526144f686835161413f565b955093820193908201906001016144bc565b50508584038187015286518085528782019482019350915060005b8281101561454557845163ffffffff1684529381019392810192600101614523565b5091979650505050505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114613dd557600080fd5b60006020828403121561458857600080fd5b612a1a82614552565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600063ffffffff8083168181036145d9576145d9614591565b6001019392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361464357614643614591565b5060010190565b63ffffffff82811682821603908082111561086e5761086e614591565b600181811c9082168061467b57607f821691505b6020821081036146b4577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc18336030181126146ee57600080fd5b9190910192915050565b60006040823603121561470a57600080fd5b6040516040810167ffffffffffffffff828210818311171561472e5761472e613b0a565b8160405261473b85614552565b8352602085013591508082111561475157600080fd5b5061475e36828601613c1a565b60208301525092915050565b601f82111561070b57600081815260208120601f850160051c810160208610156147915750805b601f850160051c820191505b8181101561223f5782815560010161479d565b815167ffffffffffffffff8111156147ca576147ca613b0a565b6147de816147d88454614667565b8461476a565b602080601f83116001811461483157600084156147fb5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b17855561223f565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561487e5788860151825594840194600190910190840161485f565b50858210156148ba57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156148dc57600080fd5b815167ffffffffffffffff8111156148f357600080fd5b8201601f8101841361490457600080fd5b8051614912613c3982613bd4565b81815285602083850101111561492757600080fd5b614136826020830160208601613ced565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818336030181126146ee57600080fd5b60006080823603121561497e57600080fd5b614986613b39565b61498f83613dc1565b81526020808401358183015260408401356040830152606084013567ffffffffffffffff808211156149c057600080fd5b9085019036601f8301126149d357600080fd5b8135818111156149e5576149e5613b0a565b8060051b91506149f6848301613b85565b8181529183018401918481019036841115614a1057600080fd5b938501935b83851015614a2e57843582529385019390850190614a15565b606087015250939695505050505050565b602081526000612a1a6020830184613ec1565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff618336030181126146ee57600080fd5b803560028110613dd557600080fd5b600060a08236031215614aa757600080fd5b614aaf613b62565b823567ffffffffffffffff80821115614ac757600080fd5b614ad336838701613c1a565b83526020850135915080821115614ae957600080fd5b50614af636828601613c1a565b602083015250604083013560048110614b0e57600080fd5b6040820152614b1f60608401614a86565b6060820152614b3060808401614552565b608082015292915050565b6000602080835260008454614b4f81614667565b80848701526040600180841660008114614b705760018114614ba857614bd6565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008516838a01528284151560051b8a01019550614bd6565b896000528660002060005b85811015614bce5781548b8201860152908301908801614bb3565b8a0184019650505b509398975050505050505050565b8181038181111561047757610477614591565b63ffffffff81811683821601908082111561086e5761086e614591565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614c4957600080fd5b83018035915067ffffffffffffffff821115614c6457600080fd5b60200191503681900382131561104d57600080fd5b67ffffffffffffffff831115614c9157614c91613b0a565b614ca583614c9f8354614667565b8361476a565b6000601f841160018114614cf75760008515614cc15750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355614d8d565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b82811015614d465786850135825560209485019460019092019101614d26565b5086821015614d81577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b600060208284031215614da657600080fd5b8151612a1a81613db3565b6080815284608082015260007f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff861115614dea57600080fd5b8560051b808860a0850137820182810360a09081016020850152614e1090820187613d11565b91505063ffffffff80851660408401528084166060840152509695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea164736f6c6343000813000a", + ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"AccessForbidden\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hashedCapabilityId\",\"type\":\"bytes32\"}],\"name\":\"CapabilityAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hashedCapabilityId\",\"type\":\"bytes32\"}],\"name\":\"CapabilityDoesNotExist\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hashedCapabilityId\",\"type\":\"bytes32\"}],\"name\":\"CapabilityIsDeprecated\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"}],\"name\":\"DONDoesNotExist\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"}],\"name\":\"DuplicateDONCapability\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"nodeP2PId\",\"type\":\"bytes32\"}],\"name\":\"DuplicateDONNode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"proposedConfigurationContract\",\"type\":\"address\"}],\"name\":\"InvalidCapabilityConfigurationContractInterface\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"f\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"nodeCount\",\"type\":\"uint256\"}],\"name\":\"InvalidFaultTolerance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"hashedCapabilityIds\",\"type\":\"bytes32[]\"}],\"name\":\"InvalidNodeCapabilities\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidNodeOperatorAdmin\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"}],\"name\":\"InvalidNodeP2PId\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidNodeSigner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"lengthOne\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lengthTwo\",\"type\":\"uint256\"}],\"name\":\"LengthMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"nodeP2PId\",\"type\":\"bytes32\"}],\"name\":\"NodeAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"nodeP2PId\",\"type\":\"bytes32\"}],\"name\":\"NodeDoesNotExist\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"nodeP2PId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"}],\"name\":\"NodeDoesNotSupportCapability\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"}],\"name\":\"NodeOperatorDoesNotExist\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"nodeP2PId\",\"type\":\"bytes32\"}],\"name\":\"NodePartOfDON\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"hashedCapabilityId\",\"type\":\"bytes32\"}],\"name\":\"CapabilityConfigured\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"hashedCapabilityId\",\"type\":\"bytes32\"}],\"name\":\"CapabilityDeprecated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"configCount\",\"type\":\"uint32\"}],\"name\":\"ConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"signer\",\"type\":\"bytes32\"}],\"name\":\"NodeAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"NodeOperatorAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"}],\"name\":\"NodeOperatorRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"NodeOperatorUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"}],\"name\":\"NodeRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"signer\",\"type\":\"bytes32\"}],\"name\":\"NodeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"labelledName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"enumCapabilityRegistry.CapabilityType\",\"name\":\"capabilityType\",\"type\":\"uint8\"},{\"internalType\":\"enumCapabilityRegistry.CapabilityResponseType\",\"name\":\"responseType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"configurationContract\",\"type\":\"address\"}],\"internalType\":\"structCapabilityRegistry.Capability[]\",\"name\":\"capabilities\",\"type\":\"tuple[]\"}],\"name\":\"addCapabilities\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"nodes\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"internalType\":\"structCapabilityRegistry.CapabilityConfiguration[]\",\"name\":\"capabilityConfigurations\",\"type\":\"tuple[]\"},{\"internalType\":\"bool\",\"name\":\"isPublic\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"acceptsWorkflows\",\"type\":\"bool\"},{\"internalType\":\"uint8\",\"name\":\"f\",\"type\":\"uint8\"}],\"name\":\"addDON\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"internalType\":\"structCapabilityRegistry.NodeOperator[]\",\"name\":\"nodeOperators\",\"type\":\"tuple[]\"}],\"name\":\"addNodeOperators\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"signer\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"hashedCapabilityIds\",\"type\":\"bytes32[]\"}],\"internalType\":\"structCapabilityRegistry.NodeInfo[]\",\"name\":\"nodes\",\"type\":\"tuple[]\"}],\"name\":\"addNodes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"hashedCapabilityIds\",\"type\":\"bytes32[]\"}],\"name\":\"deprecateCapabilities\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCapabilities\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"labelledName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"enumCapabilityRegistry.CapabilityType\",\"name\":\"capabilityType\",\"type\":\"uint8\"},{\"internalType\":\"enumCapabilityRegistry.CapabilityResponseType\",\"name\":\"responseType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"configurationContract\",\"type\":\"address\"}],\"internalType\":\"structCapabilityRegistry.Capability[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hashedId\",\"type\":\"bytes32\"}],\"name\":\"getCapability\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"labelledName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"enumCapabilityRegistry.CapabilityType\",\"name\":\"capabilityType\",\"type\":\"uint8\"},{\"internalType\":\"enumCapabilityRegistry.CapabilityResponseType\",\"name\":\"responseType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"configurationContract\",\"type\":\"address\"}],\"internalType\":\"structCapabilityRegistry.Capability\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"}],\"name\":\"getCapabilityConfigs\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"}],\"name\":\"getDON\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"id\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"configCount\",\"type\":\"uint32\"},{\"internalType\":\"uint8\",\"name\":\"f\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"isPublic\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"acceptsWorkflows\",\"type\":\"bool\"},{\"internalType\":\"bytes32[]\",\"name\":\"nodeP2PIds\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"internalType\":\"structCapabilityRegistry.CapabilityConfiguration[]\",\"name\":\"capabilityConfigurations\",\"type\":\"tuple[]\"}],\"internalType\":\"structCapabilityRegistry.DONInfo\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDONs\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"id\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"configCount\",\"type\":\"uint32\"},{\"internalType\":\"uint8\",\"name\":\"f\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"isPublic\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"acceptsWorkflows\",\"type\":\"bool\"},{\"internalType\":\"bytes32[]\",\"name\":\"nodeP2PIds\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"internalType\":\"structCapabilityRegistry.CapabilityConfiguration[]\",\"name\":\"capabilityConfigurations\",\"type\":\"tuple[]\"}],\"internalType\":\"structCapabilityRegistry.DONInfo[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"labelledName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"}],\"name\":\"getHashedCapabilityId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"}],\"name\":\"getNode\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"signer\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"hashedCapabilityIds\",\"type\":\"bytes32[]\"}],\"internalType\":\"structCapabilityRegistry.NodeInfo\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"configCount\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"}],\"name\":\"getNodeOperator\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"internalType\":\"structCapabilityRegistry.NodeOperator\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNodeOperators\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"internalType\":\"structCapabilityRegistry.NodeOperator[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNodes\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"signer\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"hashedCapabilityIds\",\"type\":\"bytes32[]\"}],\"internalType\":\"structCapabilityRegistry.NodeInfo[]\",\"name\":\"nodeInfo\",\"type\":\"tuple[]\"},{\"internalType\":\"uint32[]\",\"name\":\"configCounts\",\"type\":\"uint32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hashedCapabilityId\",\"type\":\"bytes32\"}],\"name\":\"isCapabilityDeprecated\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32[]\",\"name\":\"donIds\",\"type\":\"uint32[]\"}],\"name\":\"removeDONs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32[]\",\"name\":\"nodeOperatorIds\",\"type\":\"uint32[]\"}],\"name\":\"removeNodeOperators\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"removedNodeP2PIds\",\"type\":\"bytes32[]\"}],\"name\":\"removeNodes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"typeAndVersion\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"donId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32[]\",\"name\":\"nodes\",\"type\":\"bytes32[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"capabilityId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"config\",\"type\":\"bytes\"}],\"internalType\":\"structCapabilityRegistry.CapabilityConfiguration[]\",\"name\":\"capabilityConfigurations\",\"type\":\"tuple[]\"},{\"internalType\":\"bool\",\"name\":\"isPublic\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"acceptsWorkflows\",\"type\":\"bool\"},{\"internalType\":\"uint8\",\"name\":\"f\",\"type\":\"uint8\"}],\"name\":\"updateDON\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32[]\",\"name\":\"nodeOperatorIds\",\"type\":\"uint32[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"internalType\":\"structCapabilityRegistry.NodeOperator[]\",\"name\":\"nodeOperators\",\"type\":\"tuple[]\"}],\"name\":\"updateNodeOperators\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"nodeOperatorId\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"signer\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"p2pId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"hashedCapabilityIds\",\"type\":\"bytes32[]\"}],\"internalType\":\"structCapabilityRegistry.NodeInfo[]\",\"name\":\"nodes\",\"type\":\"tuple[]\"}],\"name\":\"updateNodes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", + Bin: "0x6080604052600e80546001600160401b0319166401000000011790553480156200002857600080fd5b503380600081620000805760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420736574206f776e657220746f207a65726f000000000000000060448201526064015b60405180910390fd5b600080546001600160a01b0319166001600160a01b0384811691909117909155811615620000b357620000b381620000bc565b50505062000167565b336001600160a01b03821603620001165760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640162000077565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b614e4980620001776000396000f3fe608060405234801561001057600080fd5b50600436106101ae5760003560e01c80635e65e309116100ee5780638da5cb5b11610097578063d8bc7b6811610071578063d8bc7b68146103f7578063ddbe4f821461040a578063e29581aa14610420578063f2fde38b1461043657600080fd5b80638da5cb5b1461039c5780639cb7c5f4146103c4578063d59a79f6146103e457600080fd5b806373ac22b4116100c857806373ac22b41461036e57806379ba50971461038157806386fa42461461038957600080fd5b80635e65e3091461033357806366acaa3314610346578063715f52951461035b57600080fd5b8063235374051161015b578063398f377311610135578063398f3773146102cb5780633f2a13c9146102de57806350c946fe146102ff5780635d83d9671461032057600080fd5b80632353740514610285578063275459f2146102a55780632c01a1e8146102b857600080fd5b80631d05394c1161018c5780631d05394c1461023b578063214502431461025057806322bdbcbc1461026557600080fd5b80630fe5800a146101b357806312570011146101d9578063181f5a77146101fc575b600080fd5b6101c66101c1366004613c5d565b610449565b6040519081526020015b60405180910390f35b6101ec6101e7366004613cc1565b61047d565b60405190151581526020016101d0565b604080518082018252601881527f4361706162696c697479526567697374727920312e302e300000000000000000602082015290516101d09190613d48565b61024e610249366004613da0565b61048a565b005b610258610646565b6040516101d09190613f00565b610278610273366004613f99565b6107ab565b6040516101d09190613ff1565b610298610293366004613f99565b610898565b6040516101d09190614004565b61024e6102b3366004613da0565b6108dc565b61024e6102c6366004613da0565b6109b3565b61024e6102d9366004613da0565b610bd6565b6102f16102ec366004614017565b610d9e565b6040516101d0929190614041565b61031261030d366004613cc1565b610f8a565b6040516101d092919061409f565b61024e61032e366004613da0565b61102f565b61024e610341366004613da0565b61117d565b61034e6115ef565b6040516101d091906140c7565b61024e610369366004613da0565b6117da565b61024e61037c366004613da0565b611895565b61024e611d3a565b61024e61039736600461413a565b611e37565b60005460405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101d0565b6103d76103d2366004613cc1565b61217d565b6040516101d09190614262565b61024e6103f2366004614294565b612382565b61024e610405366004614349565b61244b565b610412612515565b6040516101d09291906143ee565b610428612880565b6040516101d092919061447e565b61024e610444366004614554565b6129ef565b6000828260405160200161045e929190614041565b6040516020818303038152906040528051906020012090505b92915050565b6000610477600583612a03565b610492612a1e565b60005b818110156106415760008383838181106104b1576104b161456f565b90506020020160208101906104c69190613f99565b63ffffffff8082166000908152600d60209081526040808320805464010000000090049094168084526001850190925282209394509192905b61050882612aa1565b8110156105605761054f8563ffffffff16600c60006105308587612aab90919063ffffffff16565b8152602001908152602001600020600401612ab790919063ffffffff16565b50610559816145cd565b90506104ff565b508254640100000000900463ffffffff166000036105b7576040517f2b62be9b00000000000000000000000000000000000000000000000000000000815263ffffffff851660048201526024015b60405180910390fd5b63ffffffff84166000818152600d6020908152604080832080547fffffffffffffffffffffffffffffffffffffffffff00000000000000000000001690558051938452908301919091527ff264aae70bf6a9d90e68e0f9b393f4e7fbea67b063b0f336e0b36c1581703651910160405180910390a1505050508061063a906145cd565b9050610495565b505050565b600e54606090640100000000900463ffffffff166000610667600183614605565b63ffffffff1667ffffffffffffffff81111561068557610685613af7565b60405190808252806020026020018201604052801561070c57816020015b6040805160e081018252600080825260208083018290529282018190526060808301829052608083019190915260a0820181905260c082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092019101816106a35790505b509050600060015b8363ffffffff168163ffffffff1610156107885763ffffffff8082166000908152600d602052604090205416156107785761074e81612ac3565b8383815181106107605761076061456f565b602002602001018190525081610775906145cd565b91505b61078181614622565b9050610714565b50610794600184614605565b63ffffffff1681146107a4578082525b5092915050565b60408051808201909152600081526060602082015263ffffffff82166000908152600b60209081526040918290208251808401909352805473ffffffffffffffffffffffffffffffffffffffff168352600181018054919284019161080f90614645565b80601f016020809104026020016040519081016040528092919081815260200182805461083b90614645565b80156108885780601f1061085d57610100808354040283529160200191610888565b820191906000526020600020905b81548152906001019060200180831161086b57829003601f168201915b5050505050815250509050919050565b6040805160e0810182526000808252602082018190529181018290526060808201839052608082019290925260a0810182905260c081019190915261047782612ac3565b6108e4612a1e565b60005b63ffffffff811682111561064157600083838363ffffffff1681811061090f5761090f61456f565b90506020020160208101906109249190613f99565b63ffffffff81166000908152600b6020526040812080547fffffffffffffffffffffffff000000000000000000000000000000000000000016815591925061096f6001830182613a8a565b505060405163ffffffff8216907fa59268ca81d40429e65ccea5385b59cf2d3fc6519371dee92f8eb1dae5107a7a90600090a2506109ac81614622565b90506108e7565b6000805473ffffffffffffffffffffffffffffffffffffffff163314905b82811015610bd05760008484838181106109ed576109ed61456f565b602090810292909201356000818152600c90935260409092206001810154929350919050610a4a576040517fd82f6adb000000000000000000000000000000000000000000000000000000008152600481018390526024016105ae565b6000610a5882600401612aa1565b1115610a93576040517f34a4a3f6000000000000000000000000000000000000000000000000000000008152600481018390526024016105ae565b83158015610acd5750805463ffffffff166000908152600b602052604090205473ffffffffffffffffffffffffffffffffffffffff163314155b15610b06576040517f9473075d0000000000000000000000000000000000000000000000000000000081523360048201526024016105ae565b6001810154610b1790600790612ab7565b506002810154610b2990600990612ab7565b506000828152600c6020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016815560018101829055600281018290559060048201818181610b7e8282613ac4565b5050505050507f5254e609a97bab37b7cc79fe128f85c097bd6015c6e1624ae0ba392eb975320582604051610bb591815260200190565b60405180910390a1505080610bc9906145cd565b90506109d1565b50505050565b610bde612a1e565b60005b81811015610641576000838383818110610bfd57610bfd61456f565b9050602002810190610c0f9190614698565b610c18906146d6565b805190915073ffffffffffffffffffffffffffffffffffffffff16610c69576040517feeacd93900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600e54604080518082018252835173ffffffffffffffffffffffffffffffffffffffff908116825260208086015181840190815263ffffffff9095166000818152600b909252939020825181547fffffffffffffffffffffffff00000000000000000000000000000000000000001692169190911781559251919290916001820190610cf5908261478e565b5050600e8054909150600090610d109063ffffffff16614622565b91906101000a81548163ffffffff021916908363ffffffff160217905550816000015173ffffffffffffffffffffffffffffffffffffffff168163ffffffff167f78e94ca80be2c30abc061b99e7eb8583b1254781734b1e3ce339abb57da2fe8e8460200151604051610d839190613d48565b60405180910390a3505080610d97906145cd565b9050610be1565b63ffffffff8083166000908152600d60209081526040808320805464010000000090049094168084526001909401825280832085845260030190915281208054606093849390929091610df090614645565b80601f0160208091040260200160405190810160405280929190818152602001828054610e1c90614645565b8015610e695780601f10610e3e57610100808354040283529160200191610e69565b820191906000526020600020905b815481529060010190602001808311610e4c57829003601f168201915b5050506000888152600260208190526040909120015492935060609262010000900473ffffffffffffffffffffffffffffffffffffffff16159150610f7c905057600086815260026020819052604091829020015490517f8318ed5d00000000000000000000000000000000000000000000000000000000815263ffffffff891660048201526201000090910473ffffffffffffffffffffffffffffffffffffffff1690638318ed5d90602401600060405180830381865afa158015610f33573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610f7991908101906148a8565b90505b9093509150505b9250929050565b6040805160808101825260008082526020820181905291810191909152606080820152604080516080810182526000848152600c6020908152838220805463ffffffff80821686526001830154848701526002830154868801526401000000009091041683526003019052918220606082019061100690612d97565b90526000938452600c602052604090932054929364010000000090930463ffffffff1692915050565b611037612a1e565b60005b818110156106415760008383838181106110565761105661456f565b905060200201359050611073816003612a0390919063ffffffff16565b6110ac576040517fe181733f000000000000000000000000000000000000000000000000000000008152600481018290526024016105ae565b6110b7600582612da4565b6110f0576040517ff7d7a294000000000000000000000000000000000000000000000000000000008152600481018290526024016105ae565b6000818152600260205260408120906111098282613a8a565b611117600183016000613a8a565b5060020180547fffffffffffffffffffff0000000000000000000000000000000000000000000016905560405181907fdcea1b78b6ddc31592a94607d537543fcaafda6cc52d6d5cc7bbfca1422baf2190600090a250611176816145cd565b905061103a565b6000805473ffffffffffffffffffffffffffffffffffffffff163314905b82811015610bd05760008484838181106111b7576111b761456f565b90506020028101906111c99190614916565b6111d29061494a565b805163ffffffff166000908152600b602090815260408083208151808301909252805473ffffffffffffffffffffffffffffffffffffffff16825260018101805495965093949193909284019161122890614645565b80601f016020809104026020016040519081016040528092919081815260200182805461125490614645565b80156112a15780601f10611276576101008083540402835291602001916112a1565b820191906000526020600020905b81548152906001019060200180831161128457829003601f168201915b5050505050815250509050831580156112d15750805173ffffffffffffffffffffffffffffffffffffffff163314155b1561130a576040517f9473075d0000000000000000000000000000000000000000000000000000000081523360048201526024016105ae565b6040808301516000908152600c60205220600181015461135e5782604001516040517fd82f6adb0000000000000000000000000000000000000000000000000000000081526004016105ae91815260200190565b6020830151158061138e5750826020015181600101541415801561138e5750602083015161138e90600790612a03565b156113c5576040517f8377314600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6060830151805160000361140757806040517f3748d4c60000000000000000000000000000000000000000000000000000000081526004016105ae9190614a1d565b8154640100000000900463ffffffff1682600461142383614622565b82546101009290920a63ffffffff8181021990931691831602179091558354640100000000900416905060005b825181101561151b5761148683828151811061146e5761146e61456f565b60200260200101516003612a0390919063ffffffff16565b6114be57826040517f3748d4c60000000000000000000000000000000000000000000000000000000081526004016105ae9190614a1d565b61150a8382815181106114d3576114d361456f565b60200260200101518560030160008563ffffffff1663ffffffff168152602001908152602001600020612da490919063ffffffff16565b50611514816145cd565b9050611450565b50845183547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff9091161783556040850151600284015560018301546020860151811461158d57611572600782612ab7565b5060208601516001850181905561158b90600790612da4565b505b85516040808801516020808a015183519283529082015263ffffffff909216917f4b5b465e22eea0c3d40c30e936643245b80d19b2dcf75788c0699fe8d8db645b910160405180910390a2505050505050806115e8906145cd565b905061119b565b600e5460609063ffffffff166000611608600183614605565b63ffffffff1667ffffffffffffffff81111561162657611626613af7565b60405190808252806020026020018201604052801561166c57816020015b6040805180820190915260008152606060208201528152602001906001900390816116445790505b509050600060015b8363ffffffff168163ffffffff1610156117c45763ffffffff81166000908152600b602052604090205473ffffffffffffffffffffffffffffffffffffffff16156117b45763ffffffff81166000908152600b60209081526040918290208251808401909352805473ffffffffffffffffffffffffffffffffffffffff168352600181018054919284019161170890614645565b80601f016020809104026020016040519081016040528092919081815260200182805461173490614645565b80156117815780601f1061175657610100808354040283529160200191611781565b820191906000526020600020905b81548152906001019060200180831161176457829003601f168201915b50505050508152505083838151811061179c5761179c61456f565b6020026020010181905250816117b1906145cd565b91505b6117bd81614622565b9050611674565b50600e546107949060019063ffffffff16614605565b6117e2612a1e565b60005b818110156106415760008383838181106118015761180161456f565b90506020028101906118139190614a30565b61181c90614a73565b9050600061183282600001518360200151610449565b905061183f600382612da4565b611878576040517febf52551000000000000000000000000000000000000000000000000000000008152600481018290526024016105ae565b6118828183612db0565b50508061188e906145cd565b90506117e5565b6000805473ffffffffffffffffffffffffffffffffffffffff163314905b82811015610bd05760008484838181106118cf576118cf61456f565b90506020028101906118e19190614916565b6118ea9061494a565b805163ffffffff166000908152600b602090815260408083208151808301909252805473ffffffffffffffffffffffffffffffffffffffff16825260018101805495965093949193909284019161194090614645565b80601f016020809104026020016040519081016040528092919081815260200182805461196c90614645565b80156119b95780601f1061198e576101008083540402835291602001916119b9565b820191906000526020600020905b81548152906001019060200180831161199c57829003601f168201915b50505091909252505081519192505073ffffffffffffffffffffffffffffffffffffffff16611a1f5781516040517fadd9ae1e00000000000000000000000000000000000000000000000000000000815263ffffffff90911660048201526024016105ae565b83158015611a445750805173ffffffffffffffffffffffffffffffffffffffff163314155b15611a7d576040517f9473075d0000000000000000000000000000000000000000000000000000000081523360048201526024016105ae565b6040808301516000908152600c60205220600181015415611ad25782604001516040517f546184830000000000000000000000000000000000000000000000000000000081526004016105ae91815260200190565b6040830151611b155782604001516040517f64e2ee920000000000000000000000000000000000000000000000000000000081526004016105ae91815260200190565b60208301511580611b3257506020830151611b3290600790612a03565b15611b69576040517f8377314600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60608301518051600003611bab57806040517f3748d4c60000000000000000000000000000000000000000000000000000000081526004016105ae9190614a1d565b81548290600490611bc990640100000000900463ffffffff16614622565b82546101009290920a63ffffffff818102199093169183160217909155825464010000000090041660005b8251811015611c7057611c1283828151811061146e5761146e61456f565b611c4a57826040517f3748d4c60000000000000000000000000000000000000000000000000000000081526004016105ae9190614a1d565b611c5f8382815181106114d3576114d361456f565b50611c69816145cd565b9050611bf4565b50845183547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff91821617845560408601516002850155602086015160018501819055611cc69160079190612da416565b506040850151611cd890600990612da4565b50845160408087015160208089015183519283529082015263ffffffff909216917f74becb12a5e8fd0e98077d02dfba8f647c9670c9df177e42c2418cf17a636f05910160405180910390a2505050505080611d33906145cd565b90506118b3565b60015473ffffffffffffffffffffffffffffffffffffffff163314611dbb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4d7573742062652070726f706f736564206f776e65720000000000000000000060448201526064016105ae565b60008054337fffffffffffffffffffffffff00000000000000000000000000000000000000008083168217845560018054909116905560405173ffffffffffffffffffffffffffffffffffffffff90921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b828114611e7a576040517fab8b67c600000000000000000000000000000000000000000000000000000000815260048101849052602481018290526044016105ae565b6000805473ffffffffffffffffffffffffffffffffffffffff16905b84811015612175576000868683818110611eb257611eb261456f565b9050602002016020810190611ec79190613f99565b63ffffffff81166000908152600b6020526040902080549192509073ffffffffffffffffffffffffffffffffffffffff16611f36576040517fadd9ae1e00000000000000000000000000000000000000000000000000000000815263ffffffff831660048201526024016105ae565b6000868685818110611f4a57611f4a61456f565b9050602002810190611f5c9190614698565b611f65906146d6565b805190915073ffffffffffffffffffffffffffffffffffffffff16611fb6576040517feeacd93900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805173ffffffffffffffffffffffffffffffffffffffff163314801590611ff357503373ffffffffffffffffffffffffffffffffffffffff861614155b1561202c576040517f9473075d0000000000000000000000000000000000000000000000000000000081523360048201526024016105ae565b8051825473ffffffffffffffffffffffffffffffffffffffff90811691161415806120a857506020808201516040516120659201613d48565b604051602081830303815290604052805190602001208260010160405160200161208f9190614b19565b6040516020818303038152906040528051906020012014155b1561216157805182547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff90911617825560208101516001830190612102908261478e565b50806000015173ffffffffffffffffffffffffffffffffffffffff168363ffffffff167f86f41145bde5dd7f523305452e4aad3685508c181432ec733d5f345009358a2883602001516040516121589190613d48565b60405180910390a35b5050508061216e906145cd565b9050611e96565b505050505050565b6121ad6040805160a081018252606080825260208201529081016000815260200160008152600060209091015290565b60008281526002602052604090819020815160a081019092528054829082906121d590614645565b80601f016020809104026020016040519081016040528092919081815260200182805461220190614645565b801561224e5780601f106122235761010080835404028352916020019161224e565b820191906000526020600020905b81548152906001019060200180831161223157829003601f168201915b5050505050815260200160018201805461226790614645565b80601f016020809104026020016040519081016040528092919081815260200182805461229390614645565b80156122e05780601f106122b5576101008083540402835291602001916122e0565b820191906000526020600020905b8154815290600101906020018083116122c357829003601f168201915b5050509183525050600282015460209091019060ff166003811115612307576123076141a6565b6003811115612318576123186141a6565b81526020016002820160019054906101000a900460ff166001811115612340576123406141a6565b6001811115612351576123516141a6565b81526002919091015462010000900473ffffffffffffffffffffffffffffffffffffffff1660209091015292915050565b61238a612a1e565b63ffffffff8089166000908152600d60205260408120546401000000009004909116908190036123ee576040517f2b62be9b00000000000000000000000000000000000000000000000000000000815263ffffffff8a1660048201526024016105ae565b612440888888886040518060a001604052808f63ffffffff1681526020018761241690614622565b97508763ffffffff1681526020018a1515815260200189151581526020018860ff16815250613044565b505050505050505050565b612453612a1e565b600e805460009164010000000090910463ffffffff1690600461247583614622565b82546101009290920a63ffffffff81810219909316918316021790915581166000818152600d602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001684179055815160a08101835292835260019083015286151590820152841515606082015260ff8416608082015290915061250b908990899089908990613044565b5050505050505050565b60608060006125246003612d97565b905060006125326005612aa1565b825161253e9190614bc2565b905060008167ffffffffffffffff81111561255b5761255b613af7565b6040519080825280602002602001820160405280156125bc57816020015b6125a96040805160a081018252606080825260208201529081016000815260200160008152600060209091015290565b8152602001906001900390816125795790505b50905060008267ffffffffffffffff8111156125da576125da613af7565b604051908082528060200260200182016040528015612603578160200160208202803683370190505b5090506000805b85518110156128725760008682815181106126275761262761456f565b60200260200101519050612645816005612a0390919063ffffffff16565b6128615760008181526002602052604090819020815160a0810190925280548290829061267190614645565b80601f016020809104026020016040519081016040528092919081815260200182805461269d90614645565b80156126ea5780601f106126bf576101008083540402835291602001916126ea565b820191906000526020600020905b8154815290600101906020018083116126cd57829003601f168201915b5050505050815260200160018201805461270390614645565b80601f016020809104026020016040519081016040528092919081815260200182805461272f90614645565b801561277c5780601f106127515761010080835404028352916020019161277c565b820191906000526020600020905b81548152906001019060200180831161275f57829003601f168201915b5050509183525050600282015460209091019060ff1660038111156127a3576127a36141a6565b60038111156127b4576127b46141a6565b81526020016002820160019054906101000a900460ff1660018111156127dc576127dc6141a6565b60018111156127ed576127ed6141a6565b81526002919091015462010000900473ffffffffffffffffffffffffffffffffffffffff16602090910152855186908590811061282c5761282c61456f565b60200260200101819052508084848151811061284a5761284a61456f565b602090810291909101015261285e836145cd565b92505b5061286b816145cd565b905061260a565b509096919550909350505050565b606080600061288f6009612d97565b9050805167ffffffffffffffff8111156128ab576128ab613af7565b60405190808252806020026020018201604052801561291a57816020015b60408051608081018252600080825260208083018290529282015260608082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092019101816128c95790505b509250805167ffffffffffffffff81111561293757612937613af7565b604051908082528060200260200182016040528015612960578160200160208202803683370190505b50915060005b81518110156129e9576129918282815181106129845761298461456f565b6020026020010151610f8a565b8583815181106129a3576129a361456f565b602002602001018584815181106129bc576129bc61456f565b602002602001018263ffffffff1663ffffffff168152508290525050806129e2906145cd565b9050612966565b50509091565b6129f7612a1e565b612a00816136ec565b50565b600081815260018301602052604081205415155b9392505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314612a9f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4f6e6c792063616c6c61626c65206279206f776e65720000000000000000000060448201526064016105ae565b565b6000610477825490565b6000612a1783836137e1565b6000612a17838361380b565b6040805160e0810182526000808252602080830182905282840182905260608084018390526080840183905260a0840181905260c084015263ffffffff8581168352600d8252848320805464010000000090049091168084526001909101825284832060028101805487518186028101860190985280885295969295919493909190830182828015612b7457602002820191906000526020600020905b815481526020019060010190808311612b60575b505050505090506000815167ffffffffffffffff811115612b9757612b97613af7565b604051908082528060200260200182016040528015612bdd57816020015b604080518082019091526000815260606020820152815260200190600190039081612bb55790505b50905060005b8151811015612cfe576040518060400160405280848381518110612c0957612c0961456f565b60200260200101518152602001856003016000868581518110612c2e57612c2e61456f565b602002602001015181526020019081526020016000208054612c4f90614645565b80601f0160208091040260200160405190810160405280929190818152602001828054612c7b90614645565b8015612cc85780601f10612c9d57610100808354040283529160200191612cc8565b820191906000526020600020905b815481529060010190602001808311612cab57829003601f168201915b5050505050815250828281518110612ce257612ce261456f565b602002602001018190525080612cf7906145cd565b9050612be3565b506040805160e08101825263ffffffff8089166000818152600d6020818152868320548086168752948b168187015260ff680100000000000000008604811697870197909752690100000000000000000085048716151560608701529290915290526a010000000000000000000090049091161515608082015260a08101612d8585612d97565b81526020019190915295945050505050565b60606000612a17836138fe565b6000612a17838361395a565b608081015173ffffffffffffffffffffffffffffffffffffffff1615612efe57608081015173ffffffffffffffffffffffffffffffffffffffff163b1580612ea9575060808101516040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527f78bea72100000000000000000000000000000000000000000000000000000000600482015273ffffffffffffffffffffffffffffffffffffffff909116906301ffc9a790602401602060405180830381865afa158015612e83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ea79190614bd5565b155b15612efe5760808101516040517fabb5e3fd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911660048201526024016105ae565b600082815260026020526040902081518291908190612f1d908261478e565b5060208201516001820190612f32908261478e565b5060408201516002820180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001836003811115612f7457612f746141a6565b021790555060608201516002820180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16610100836001811115612fbb57612fbb6141a6565b0217905550608091909101516002909101805473ffffffffffffffffffffffffffffffffffffffff90921662010000027fffffffffffffffffffff0000000000000000000000000000000000000000ffff90921691909117905560405182907f04f0a9bcf3f3a3b42a4d7ca081119755f82ebe43e0d30c8f7292c4fe0dc4a2ae90600090a25050565b805163ffffffff9081166000908152600d602090815260408083208286015190941683526001909301905220608082015160ff161580613096575060808201518590613091906001614bf2565b60ff16115b156130df5760808201516040517f25b4d61800000000000000000000000000000000000000000000000000000000815260ff9091166004820152602481018690526044016105ae565b6001826020015163ffffffff16111561318b57815163ffffffff166000908152600d6020908152604082209084015160019182019183916131209190614605565b63ffffffff1663ffffffff168152602001908152602001600020905060005b61314882612aa1565b81101561318857613177846000015163ffffffff16600c60006105308587600001612aab90919063ffffffff16565b50613181816145cd565b905061313f565b50505b60005b85811015613275576131bb8787838181106131ab576131ab61456f565b8592602090910201359050612da4565b61321c5782518787838181106131d3576131d361456f565b6040517f636e405700000000000000000000000000000000000000000000000000000000815263ffffffff909416600485015260200291909101356024830152506044016105ae565b82516132649063ffffffff16600c60008a8a8681811061323e5761323e61456f565b905060200201358152602001908152602001600020600401612da490919063ffffffff16565b5061326e816145cd565b905061318e565b5060005b8381101561356157368585838181106132945761329461456f565b90506020028101906132a69190614698565b90506132b460038235612a03565b6132ed576040517fe181733f000000000000000000000000000000000000000000000000000000008152813560048201526024016105ae565b6132f960058235612a03565b15613333576040517ff7d7a294000000000000000000000000000000000000000000000000000000008152813560048201526024016105ae565b803560009081526003840160205260408120805461335090614645565b9050111561339c5783516040517f3927d08000000000000000000000000000000000000000000000000000000000815263ffffffff9091166004820152813560248201526044016105ae565b60005b878110156134ae576134438235600c60008c8c868181106133c2576133c261456f565b9050602002013581526020019081526020016000206003016000600c60008e8e888181106133f2576133f261456f565b90506020020135815260200190815260200160002060000160049054906101000a900463ffffffff1663ffffffff1663ffffffff168152602001908152602001600020612a0390919063ffffffff16565b61349e578888828181106134595761345961456f565b6040517fa7e7925000000000000000000000000000000000000000000000000000000000815260209091029290920135600483015250823560248201526044016105ae565b6134a7816145cd565b905061339f565b50600283018054600181018255600091825260209182902083359101556134d790820182614c0b565b823560009081526003860160205260409020916134f5919083614c70565b50835160208086015161355092918435908c908c9061351690880188614c0b565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506139a992505050565b5061355a816145cd565b9050613279565b50604080830151835163ffffffff9081166000908152600d602090815284822080549415156901000000000000000000027fffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff90951694909417909355606086015186518316825284822080549115156a0100000000000000000000027fffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff9092169190911790556080860151865183168252848220805460ff9290921668010000000000000000027fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff909216919091179055918501805186518316845292849020805493909216640100000000027fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff9093169290921790558351905191517ff264aae70bf6a9d90e68e0f9b393f4e7fbea67b063b0f336e0b36c1581703651926136dc929163ffffffff92831681529116602082015260400190565b60405180910390a1505050505050565b3373ffffffffffffffffffffffffffffffffffffffff82160361376b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c6600000000000000000060448201526064016105ae565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b60008260000182815481106137f8576137f861456f565b9060005260206000200154905092915050565b600081815260018301602052604081205480156138f457600061382f600183614bc2565b855490915060009061384390600190614bc2565b90508181146138a85760008660000182815481106138635761386361456f565b90600052602060002001549050808760000184815481106138865761388661456f565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806138b9576138b9614d8b565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610477565b6000915050610477565b60608160000180548060200260200160405190810160405280929190818152602001828054801561394e57602002820191906000526020600020905b81548152602001906001019080831161393a575b50505050509050919050565b60008181526001830160205260408120546139a157508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610477565b506000610477565b6000848152600260208190526040909120015462010000900473ffffffffffffffffffffffffffffffffffffffff161561217557600084815260026020819052604091829020015490517ffba64a7c0000000000000000000000000000000000000000000000000000000081526201000090910473ffffffffffffffffffffffffffffffffffffffff169063fba64a7c90613a50908690869086908b908d90600401614dba565b600060405180830381600087803b158015613a6a57600080fd5b505af1158015613a7e573d6000803e3d6000fd5b50505050505050505050565b508054613a9690614645565b6000825580601f10613aa6575050565b601f016020900490600052602060002090810190612a009190613ade565b5080546000825590600052602060002090810190612a0091905b5b80821115613af35760008155600101613adf565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516080810167ffffffffffffffff81118282101715613b4957613b49613af7565b60405290565b60405160a0810167ffffffffffffffff81118282101715613b4957613b49613af7565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715613bb957613bb9613af7565b604052919050565b600067ffffffffffffffff821115613bdb57613bdb613af7565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b600082601f830112613c1857600080fd5b8135613c2b613c2682613bc1565b613b72565b818152846020838601011115613c4057600080fd5b816020850160208301376000918101602001919091529392505050565b60008060408385031215613c7057600080fd5b823567ffffffffffffffff80821115613c8857600080fd5b613c9486838701613c07565b93506020850135915080821115613caa57600080fd5b50613cb785828601613c07565b9150509250929050565b600060208284031215613cd357600080fd5b5035919050565b60005b83811015613cf5578181015183820152602001613cdd565b50506000910152565b60008151808452613d16816020860160208601613cda565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000612a176020830184613cfe565b60008083601f840112613d6d57600080fd5b50813567ffffffffffffffff811115613d8557600080fd5b6020830191508360208260051b8501011115610f8357600080fd5b60008060208385031215613db357600080fd5b823567ffffffffffffffff811115613dca57600080fd5b613dd685828601613d5b565b90969095509350505050565b600081518084526020808501945080840160005b83811015613e1257815187529582019590820190600101613df6565b509495945050505050565b600081518084526020808501808196508360051b8101915082860160005b85811015613e795782840389528151805185528501516040868601819052613e6581870183613cfe565b9a87019a9550505090840190600101613e3b565b5091979650505050505050565b600063ffffffff8083511684528060208401511660208501525060ff604083015116604084015260608201511515606084015260808201511515608084015260a082015160e060a0850152613ede60e0850182613de2565b905060c083015184820360c0860152613ef78282613e1d565b95945050505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015613f73577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0888603018452613f61858351613e86565b94509285019290850190600101613f27565b5092979650505050505050565b803563ffffffff81168114613f9457600080fd5b919050565b600060208284031215613fab57600080fd5b612a1782613f80565b73ffffffffffffffffffffffffffffffffffffffff81511682526000602082015160406020850152613fe96040850182613cfe565b949350505050565b602081526000612a176020830184613fb4565b602081526000612a176020830184613e86565b6000806040838503121561402a57600080fd5b61403383613f80565b946020939093013593505050565b6040815260006140546040830185613cfe565b8281036020840152613ef78185613cfe565b63ffffffff815116825260208101516020830152604081015160408301526000606082015160806060850152613fe96080850182613de2565b6040815260006140b26040830185614066565b905063ffffffff831660208301529392505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015613f73577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0888603018452614128858351613fb4565b945092850192908501906001016140ee565b6000806000806040858703121561415057600080fd5b843567ffffffffffffffff8082111561416857600080fd5b61417488838901613d5b565b9096509450602087013591508082111561418d57600080fd5b5061419a87828801613d5b565b95989497509550505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6000815160a084526141ea60a0850182613cfe565b9050602083015184820360208601526142038282613cfe565b91505060408301516004811061421b5761421b6141a6565b6040850152606083015160028110614235576142356141a6565b606085015260809283015173ffffffffffffffffffffffffffffffffffffffff1692909301919091525090565b602081526000612a1760208301846141d5565b8015158114612a0057600080fd5b803560ff81168114613f9457600080fd5b60008060008060008060008060c0898b0312156142b057600080fd5b6142b989613f80565b9750602089013567ffffffffffffffff808211156142d657600080fd5b6142e28c838d01613d5b565b909950975060408b01359150808211156142fb57600080fd5b506143088b828c01613d5b565b909650945050606089013561431c81614275565b9250608089013561432c81614275565b915061433a60a08a01614283565b90509295985092959890939650565b600080600080600080600060a0888a03121561436457600080fd5b873567ffffffffffffffff8082111561437c57600080fd5b6143888b838c01613d5b565b909950975060208a01359150808211156143a157600080fd5b506143ae8a828b01613d5b565b90965094505060408801356143c281614275565b925060608801356143d281614275565b91506143e060808901614283565b905092959891949750929550565b6040815260006144016040830185613de2565b6020838203818501528185518084528284019150828160051b85010183880160005b8381101561446f577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe087840301855261445d8383516141d5565b94860194925090850190600101614423565b50909998505050505050505050565b6000604082016040835280855180835260608501915060608160051b8601019250602080880160005b838110156144f3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08887030185526144e1868351614066565b955093820193908201906001016144a7565b50508584038187015286518085528782019482019350915060005b82811015613e7957845163ffffffff168452938101939281019260010161450e565b803573ffffffffffffffffffffffffffffffffffffffff81168114613f9457600080fd5b60006020828403121561456657600080fd5b612a1782614530565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036145fe576145fe61459e565b5060010190565b63ffffffff8281168282160390808211156107a4576107a461459e565b600063ffffffff80831681810361463b5761463b61459e565b6001019392505050565b600181811c9082168061465957607f821691505b602082108103614692577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc18336030181126146cc57600080fd5b9190910192915050565b6000604082360312156146e857600080fd5b6040516040810167ffffffffffffffff828210818311171561470c5761470c613af7565b8160405261471985614530565b8352602085013591508082111561472f57600080fd5b5061473c36828601613c07565b60208301525092915050565b601f82111561064157600081815260208120601f850160051c8101602086101561476f5750805b601f850160051c820191505b818110156121755782815560010161477b565b815167ffffffffffffffff8111156147a8576147a8613af7565b6147bc816147b68454614645565b84614748565b602080601f83116001811461480f57600084156147d95750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555612175565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561485c5788860151825594840194600190910190840161483d565b508582101561489857878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156148ba57600080fd5b815167ffffffffffffffff8111156148d157600080fd5b8201601f810184136148e257600080fd5b80516148f0613c2682613bc1565b81815285602083850101111561490557600080fd5b613ef7826020830160208601613cda565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818336030181126146cc57600080fd5b60006080823603121561495c57600080fd5b614964613b26565b61496d83613f80565b81526020808401358183015260408401356040830152606084013567ffffffffffffffff8082111561499e57600080fd5b9085019036601f8301126149b157600080fd5b8135818111156149c3576149c3613af7565b8060051b91506149d4848301613b72565b81815291830184019184810190368411156149ee57600080fd5b938501935b83851015614a0c578435825293850193908501906149f3565b606087015250939695505050505050565b602081526000612a176020830184613de2565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff618336030181126146cc57600080fd5b803560028110613f9457600080fd5b600060a08236031215614a8557600080fd5b614a8d613b4f565b823567ffffffffffffffff80821115614aa557600080fd5b614ab136838701613c07565b83526020850135915080821115614ac757600080fd5b50614ad436828601613c07565b602083015250604083013560048110614aec57600080fd5b6040820152614afd60608401614a64565b6060820152614b0e60808401614530565b608082015292915050565b6000602080835260008454614b2d81614645565b80848701526040600180841660008114614b4e5760018114614b8657614bb4565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008516838a01528284151560051b8a01019550614bb4565b896000528660002060005b85811015614bac5781548b8201860152908301908801614b91565b8a0184019650505b509398975050505050505050565b818103818111156104775761047761459e565b600060208284031215614be757600080fd5b8151612a1781614275565b60ff81811683821601908111156104775761047761459e565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614c4057600080fd5b83018035915067ffffffffffffffff821115614c5b57600080fd5b602001915036819003821315610f8357600080fd5b67ffffffffffffffff831115614c8857614c88613af7565b614c9c83614c968354614645565b83614748565b6000601f841160018114614cee5760008515614cb85750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355614d84565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b82811015614d3d5786850135825560209485019460019092019101614d1d565b5086821015614d78577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b6080815284608082015260007f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff861115614df357600080fd5b8560051b808860a0850137820182810360a09081016020850152614e1990820187613cfe565b91505063ffffffff8085166040840152808416606084015250969550505050505056fea164736f6c6343000813000a", } var CapabilityRegistryABI = CapabilityRegistryMetaData.ABI @@ -527,15 +527,15 @@ func (_CapabilityRegistry *CapabilityRegistryTransactorSession) AddCapabilities( return _CapabilityRegistry.Contract.AddCapabilities(&_CapabilityRegistry.TransactOpts, capabilities) } -func (_CapabilityRegistry *CapabilityRegistryTransactor) AddDON(opts *bind.TransactOpts, nodes [][32]byte, capabilityConfigurations []CapabilityRegistryCapabilityConfiguration, isPublic bool, acceptsWorkflows bool, f uint32) (*types.Transaction, error) { +func (_CapabilityRegistry *CapabilityRegistryTransactor) AddDON(opts *bind.TransactOpts, nodes [][32]byte, capabilityConfigurations []CapabilityRegistryCapabilityConfiguration, isPublic bool, acceptsWorkflows bool, f uint8) (*types.Transaction, error) { return _CapabilityRegistry.contract.Transact(opts, "addDON", nodes, capabilityConfigurations, isPublic, acceptsWorkflows, f) } -func (_CapabilityRegistry *CapabilityRegistrySession) AddDON(nodes [][32]byte, capabilityConfigurations []CapabilityRegistryCapabilityConfiguration, isPublic bool, acceptsWorkflows bool, f uint32) (*types.Transaction, error) { +func (_CapabilityRegistry *CapabilityRegistrySession) AddDON(nodes [][32]byte, capabilityConfigurations []CapabilityRegistryCapabilityConfiguration, isPublic bool, acceptsWorkflows bool, f uint8) (*types.Transaction, error) { return _CapabilityRegistry.Contract.AddDON(&_CapabilityRegistry.TransactOpts, nodes, capabilityConfigurations, isPublic, acceptsWorkflows, f) } -func (_CapabilityRegistry *CapabilityRegistryTransactorSession) AddDON(nodes [][32]byte, capabilityConfigurations []CapabilityRegistryCapabilityConfiguration, isPublic bool, acceptsWorkflows bool, f uint32) (*types.Transaction, error) { +func (_CapabilityRegistry *CapabilityRegistryTransactorSession) AddDON(nodes [][32]byte, capabilityConfigurations []CapabilityRegistryCapabilityConfiguration, isPublic bool, acceptsWorkflows bool, f uint8) (*types.Transaction, error) { return _CapabilityRegistry.Contract.AddDON(&_CapabilityRegistry.TransactOpts, nodes, capabilityConfigurations, isPublic, acceptsWorkflows, f) } @@ -623,15 +623,15 @@ func (_CapabilityRegistry *CapabilityRegistryTransactorSession) TransferOwnershi return _CapabilityRegistry.Contract.TransferOwnership(&_CapabilityRegistry.TransactOpts, to) } -func (_CapabilityRegistry *CapabilityRegistryTransactor) UpdateDON(opts *bind.TransactOpts, donId uint32, nodes [][32]byte, capabilityConfigurations []CapabilityRegistryCapabilityConfiguration, isPublic bool, acceptsWorkflows bool, f uint32) (*types.Transaction, error) { +func (_CapabilityRegistry *CapabilityRegistryTransactor) UpdateDON(opts *bind.TransactOpts, donId uint32, nodes [][32]byte, capabilityConfigurations []CapabilityRegistryCapabilityConfiguration, isPublic bool, acceptsWorkflows bool, f uint8) (*types.Transaction, error) { return _CapabilityRegistry.contract.Transact(opts, "updateDON", donId, nodes, capabilityConfigurations, isPublic, acceptsWorkflows, f) } -func (_CapabilityRegistry *CapabilityRegistrySession) UpdateDON(donId uint32, nodes [][32]byte, capabilityConfigurations []CapabilityRegistryCapabilityConfiguration, isPublic bool, acceptsWorkflows bool, f uint32) (*types.Transaction, error) { +func (_CapabilityRegistry *CapabilityRegistrySession) UpdateDON(donId uint32, nodes [][32]byte, capabilityConfigurations []CapabilityRegistryCapabilityConfiguration, isPublic bool, acceptsWorkflows bool, f uint8) (*types.Transaction, error) { return _CapabilityRegistry.Contract.UpdateDON(&_CapabilityRegistry.TransactOpts, donId, nodes, capabilityConfigurations, isPublic, acceptsWorkflows, f) } -func (_CapabilityRegistry *CapabilityRegistryTransactorSession) UpdateDON(donId uint32, nodes [][32]byte, capabilityConfigurations []CapabilityRegistryCapabilityConfiguration, isPublic bool, acceptsWorkflows bool, f uint32) (*types.Transaction, error) { +func (_CapabilityRegistry *CapabilityRegistryTransactorSession) UpdateDON(donId uint32, nodes [][32]byte, capabilityConfigurations []CapabilityRegistryCapabilityConfiguration, isPublic bool, acceptsWorkflows bool, f uint8) (*types.Transaction, error) { return _CapabilityRegistry.Contract.UpdateDON(&_CapabilityRegistry.TransactOpts, donId, nodes, capabilityConfigurations, isPublic, acceptsWorkflows, f) } @@ -2195,7 +2195,7 @@ type CapabilityRegistryInterface interface { AddCapabilities(opts *bind.TransactOpts, capabilities []CapabilityRegistryCapability) (*types.Transaction, error) - AddDON(opts *bind.TransactOpts, nodes [][32]byte, capabilityConfigurations []CapabilityRegistryCapabilityConfiguration, isPublic bool, acceptsWorkflows bool, f uint32) (*types.Transaction, error) + AddDON(opts *bind.TransactOpts, nodes [][32]byte, capabilityConfigurations []CapabilityRegistryCapabilityConfiguration, isPublic bool, acceptsWorkflows bool, f uint8) (*types.Transaction, error) AddNodeOperators(opts *bind.TransactOpts, nodeOperators []CapabilityRegistryNodeOperator) (*types.Transaction, error) @@ -2211,7 +2211,7 @@ type CapabilityRegistryInterface interface { TransferOwnership(opts *bind.TransactOpts, to common.Address) (*types.Transaction, error) - UpdateDON(opts *bind.TransactOpts, donId uint32, nodes [][32]byte, capabilityConfigurations []CapabilityRegistryCapabilityConfiguration, isPublic bool, acceptsWorkflows bool, f uint32) (*types.Transaction, error) + UpdateDON(opts *bind.TransactOpts, donId uint32, nodes [][32]byte, capabilityConfigurations []CapabilityRegistryCapabilityConfiguration, isPublic bool, acceptsWorkflows bool, f uint8) (*types.Transaction, error) UpdateNodeOperators(opts *bind.TransactOpts, nodeOperatorIds []uint32, nodeOperators []CapabilityRegistryNodeOperator) (*types.Transaction, error) diff --git a/core/gethwrappers/keystone/generated/router/router.go b/core/gethwrappers/keystone/generated/router/router.go new file mode 100644 index 00000000000..5c58af890bc --- /dev/null +++ b/core/gethwrappers/keystone/generated/router/router.go @@ -0,0 +1,954 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package router + +import ( + "errors" + "fmt" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" + "github.com/smartcontractkit/chainlink/v2/core/gethwrappers/generated" +) + +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +var KeystoneRouterMetaData = &bind.MetaData{ + ABI: "[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"transmissionId\",\"type\":\"bytes32\"}],\"name\":\"AlreadyAttempted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"forwarder\",\"type\":\"address\"}],\"name\":\"ForwarderAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"forwarder\",\"type\":\"address\"}],\"name\":\"ForwarderRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"forwarder\",\"type\":\"address\"}],\"name\":\"addForwarder\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"transmissionId\",\"type\":\"bytes32\"}],\"name\":\"getTransmissionState\",\"outputs\":[{\"internalType\":\"enumIRouter.TransmissionState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"transmissionId\",\"type\":\"bytes32\"}],\"name\":\"getTransmitter\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"forwarder\",\"type\":\"address\"}],\"name\":\"isForwarder\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"forwarder\",\"type\":\"address\"}],\"name\":\"removeForwarder\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"transmissionId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"transmitter\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"report\",\"type\":\"bytes\"}],\"name\":\"route\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"typeAndVersion\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", + Bin: "0x608060405234801561001057600080fd5b5033806000816100675760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420736574206f776e657220746f207a65726f000000000000000060448201526064015b60405180910390fd5b600080546001600160a01b0319166001600160a01b0384811691909117909155811615610097576100978161009f565b505050610148565b336001600160a01b038216036100f75760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640161005e565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b610aa6806101576000396000f3fe608060405234801561001057600080fd5b50600436106100be5760003560e01c806379ba509711610076578063abcef5541161005b578063abcef554146101c7578063e6b7145814610200578063f2fde38b1461023657600080fd5b806379ba5097146101805780638da5cb5b1461018857600080fd5b80634d93172d116100a75780634d93172d14610138578063516db4081461014d5780635c41d2fe1461016d57600080fd5b8063181f5a77146100c3578063233fd52d14610115575b600080fd5b6100ff6040518060400160405280601481526020017f4b657973746f6e65526f7574657220312e302e3000000000000000000000000081525081565b60405161010c9190610834565b60405180910390f35b610128610123366004610912565b610249565b604051901515815260200161010c565b61014b6101463660046109ad565b610441565b005b61016061015b3660046109cf565b6104bd565b60405161010c91906109e8565b61014b61017b3660046109ad565b61052c565b61014b6105ab565b60005473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161010c565b6101286101d53660046109ad565b73ffffffffffffffffffffffffffffffffffffffff1660009081526002602052604090205460ff1690565b6101a261020e3660046109cf565b60009081526003602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b61014b6102443660046109ad565b6106a8565b3360009081526002602052604081205460ff16610292576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008881526003602052604090205473ffffffffffffffffffffffffffffffffffffffff16156102f6576040517fa53dc8ca000000000000000000000000000000000000000000000000000000008152600481018990526024015b60405180910390fd5b600088815260036020526040812080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8a81169190911790915587163b900361035857506000610436565b6040517f805f213200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff87169063805f2132906103b0908890889088908890600401610a72565b600060405180830381600087803b1580156103ca57600080fd5b505af19250505080156103db575060015b6103e757506000610436565b50600087815260036020526040902080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000017905560015b979650505050505050565b6104496106bc565b73ffffffffffffffffffffffffffffffffffffffff811660008181526002602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055517fb96d15bf9258c7b8df062753a6a262864611fc7b060a5ee2e57e79b85f898d389190a250565b60008181526003602052604081205473ffffffffffffffffffffffffffffffffffffffff166104ee57506000919050565b60008281526003602052604090205474010000000000000000000000000000000000000000900460ff16610523576002610526565b60015b92915050565b6105346106bc565b73ffffffffffffffffffffffffffffffffffffffff811660008181526002602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055517f0ea0ce2c048ff45a4a95f2947879de3fb94abec2f152190400cab2d1272a68e79190a250565b60015473ffffffffffffffffffffffffffffffffffffffff16331461062c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4d7573742062652070726f706f736564206f776e65720000000000000000000060448201526064016102ed565b60008054337fffffffffffffffffffffffff00000000000000000000000000000000000000008083168217845560018054909116905560405173ffffffffffffffffffffffffffffffffffffffff90921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b6106b06106bc565b6106b98161073f565b50565b60005473ffffffffffffffffffffffffffffffffffffffff16331461073d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4f6e6c792063616c6c61626c65206279206f776e65720000000000000000000060448201526064016102ed565b565b3373ffffffffffffffffffffffffffffffffffffffff8216036107be576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c6600000000000000000060448201526064016102ed565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b600060208083528351808285015260005b8181101561086157858101830151858201604001528201610845565b5060006040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b803573ffffffffffffffffffffffffffffffffffffffff811681146108c457600080fd5b919050565b60008083601f8401126108db57600080fd5b50813567ffffffffffffffff8111156108f357600080fd5b60208301915083602082850101111561090b57600080fd5b9250929050565b600080600080600080600060a0888a03121561092d57600080fd5b8735965061093d602089016108a0565b955061094b604089016108a0565b9450606088013567ffffffffffffffff8082111561096857600080fd5b6109748b838c016108c9565b909650945060808a013591508082111561098d57600080fd5b5061099a8a828b016108c9565b989b979a50959850939692959293505050565b6000602082840312156109bf57600080fd5b6109c8826108a0565b9392505050565b6000602082840312156109e157600080fd5b5035919050565b6020810160038310610a23577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b604081526000610a86604083018688610a29565b8281036020840152610436818587610a2956fea164736f6c6343000813000a", +} + +var KeystoneRouterABI = KeystoneRouterMetaData.ABI + +var KeystoneRouterBin = KeystoneRouterMetaData.Bin + +func DeployKeystoneRouter(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *KeystoneRouter, error) { + parsed, err := KeystoneRouterMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(KeystoneRouterBin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &KeystoneRouter{address: address, abi: *parsed, KeystoneRouterCaller: KeystoneRouterCaller{contract: contract}, KeystoneRouterTransactor: KeystoneRouterTransactor{contract: contract}, KeystoneRouterFilterer: KeystoneRouterFilterer{contract: contract}}, nil +} + +type KeystoneRouter struct { + address common.Address + abi abi.ABI + KeystoneRouterCaller + KeystoneRouterTransactor + KeystoneRouterFilterer +} + +type KeystoneRouterCaller struct { + contract *bind.BoundContract +} + +type KeystoneRouterTransactor struct { + contract *bind.BoundContract +} + +type KeystoneRouterFilterer struct { + contract *bind.BoundContract +} + +type KeystoneRouterSession struct { + Contract *KeystoneRouter + CallOpts bind.CallOpts + TransactOpts bind.TransactOpts +} + +type KeystoneRouterCallerSession struct { + Contract *KeystoneRouterCaller + CallOpts bind.CallOpts +} + +type KeystoneRouterTransactorSession struct { + Contract *KeystoneRouterTransactor + TransactOpts bind.TransactOpts +} + +type KeystoneRouterRaw struct { + Contract *KeystoneRouter +} + +type KeystoneRouterCallerRaw struct { + Contract *KeystoneRouterCaller +} + +type KeystoneRouterTransactorRaw struct { + Contract *KeystoneRouterTransactor +} + +func NewKeystoneRouter(address common.Address, backend bind.ContractBackend) (*KeystoneRouter, error) { + abi, err := abi.JSON(strings.NewReader(KeystoneRouterABI)) + if err != nil { + return nil, err + } + contract, err := bindKeystoneRouter(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &KeystoneRouter{address: address, abi: abi, KeystoneRouterCaller: KeystoneRouterCaller{contract: contract}, KeystoneRouterTransactor: KeystoneRouterTransactor{contract: contract}, KeystoneRouterFilterer: KeystoneRouterFilterer{contract: contract}}, nil +} + +func NewKeystoneRouterCaller(address common.Address, caller bind.ContractCaller) (*KeystoneRouterCaller, error) { + contract, err := bindKeystoneRouter(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &KeystoneRouterCaller{contract: contract}, nil +} + +func NewKeystoneRouterTransactor(address common.Address, transactor bind.ContractTransactor) (*KeystoneRouterTransactor, error) { + contract, err := bindKeystoneRouter(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &KeystoneRouterTransactor{contract: contract}, nil +} + +func NewKeystoneRouterFilterer(address common.Address, filterer bind.ContractFilterer) (*KeystoneRouterFilterer, error) { + contract, err := bindKeystoneRouter(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &KeystoneRouterFilterer{contract: contract}, nil +} + +func bindKeystoneRouter(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := KeystoneRouterMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +func (_KeystoneRouter *KeystoneRouterRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _KeystoneRouter.Contract.KeystoneRouterCaller.contract.Call(opts, result, method, params...) +} + +func (_KeystoneRouter *KeystoneRouterRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _KeystoneRouter.Contract.KeystoneRouterTransactor.contract.Transfer(opts) +} + +func (_KeystoneRouter *KeystoneRouterRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _KeystoneRouter.Contract.KeystoneRouterTransactor.contract.Transact(opts, method, params...) +} + +func (_KeystoneRouter *KeystoneRouterCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _KeystoneRouter.Contract.contract.Call(opts, result, method, params...) +} + +func (_KeystoneRouter *KeystoneRouterTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _KeystoneRouter.Contract.contract.Transfer(opts) +} + +func (_KeystoneRouter *KeystoneRouterTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _KeystoneRouter.Contract.contract.Transact(opts, method, params...) +} + +func (_KeystoneRouter *KeystoneRouterCaller) GetTransmissionState(opts *bind.CallOpts, transmissionId [32]byte) (uint8, error) { + var out []interface{} + err := _KeystoneRouter.contract.Call(opts, &out, "getTransmissionState", transmissionId) + + if err != nil { + return *new(uint8), err + } + + out0 := *abi.ConvertType(out[0], new(uint8)).(*uint8) + + return out0, err + +} + +func (_KeystoneRouter *KeystoneRouterSession) GetTransmissionState(transmissionId [32]byte) (uint8, error) { + return _KeystoneRouter.Contract.GetTransmissionState(&_KeystoneRouter.CallOpts, transmissionId) +} + +func (_KeystoneRouter *KeystoneRouterCallerSession) GetTransmissionState(transmissionId [32]byte) (uint8, error) { + return _KeystoneRouter.Contract.GetTransmissionState(&_KeystoneRouter.CallOpts, transmissionId) +} + +func (_KeystoneRouter *KeystoneRouterCaller) GetTransmitter(opts *bind.CallOpts, transmissionId [32]byte) (common.Address, error) { + var out []interface{} + err := _KeystoneRouter.contract.Call(opts, &out, "getTransmitter", transmissionId) + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +func (_KeystoneRouter *KeystoneRouterSession) GetTransmitter(transmissionId [32]byte) (common.Address, error) { + return _KeystoneRouter.Contract.GetTransmitter(&_KeystoneRouter.CallOpts, transmissionId) +} + +func (_KeystoneRouter *KeystoneRouterCallerSession) GetTransmitter(transmissionId [32]byte) (common.Address, error) { + return _KeystoneRouter.Contract.GetTransmitter(&_KeystoneRouter.CallOpts, transmissionId) +} + +func (_KeystoneRouter *KeystoneRouterCaller) IsForwarder(opts *bind.CallOpts, forwarder common.Address) (bool, error) { + var out []interface{} + err := _KeystoneRouter.contract.Call(opts, &out, "isForwarder", forwarder) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +func (_KeystoneRouter *KeystoneRouterSession) IsForwarder(forwarder common.Address) (bool, error) { + return _KeystoneRouter.Contract.IsForwarder(&_KeystoneRouter.CallOpts, forwarder) +} + +func (_KeystoneRouter *KeystoneRouterCallerSession) IsForwarder(forwarder common.Address) (bool, error) { + return _KeystoneRouter.Contract.IsForwarder(&_KeystoneRouter.CallOpts, forwarder) +} + +func (_KeystoneRouter *KeystoneRouterCaller) Owner(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _KeystoneRouter.contract.Call(opts, &out, "owner") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +func (_KeystoneRouter *KeystoneRouterSession) Owner() (common.Address, error) { + return _KeystoneRouter.Contract.Owner(&_KeystoneRouter.CallOpts) +} + +func (_KeystoneRouter *KeystoneRouterCallerSession) Owner() (common.Address, error) { + return _KeystoneRouter.Contract.Owner(&_KeystoneRouter.CallOpts) +} + +func (_KeystoneRouter *KeystoneRouterCaller) TypeAndVersion(opts *bind.CallOpts) (string, error) { + var out []interface{} + err := _KeystoneRouter.contract.Call(opts, &out, "typeAndVersion") + + if err != nil { + return *new(string), err + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return out0, err + +} + +func (_KeystoneRouter *KeystoneRouterSession) TypeAndVersion() (string, error) { + return _KeystoneRouter.Contract.TypeAndVersion(&_KeystoneRouter.CallOpts) +} + +func (_KeystoneRouter *KeystoneRouterCallerSession) TypeAndVersion() (string, error) { + return _KeystoneRouter.Contract.TypeAndVersion(&_KeystoneRouter.CallOpts) +} + +func (_KeystoneRouter *KeystoneRouterTransactor) AcceptOwnership(opts *bind.TransactOpts) (*types.Transaction, error) { + return _KeystoneRouter.contract.Transact(opts, "acceptOwnership") +} + +func (_KeystoneRouter *KeystoneRouterSession) AcceptOwnership() (*types.Transaction, error) { + return _KeystoneRouter.Contract.AcceptOwnership(&_KeystoneRouter.TransactOpts) +} + +func (_KeystoneRouter *KeystoneRouterTransactorSession) AcceptOwnership() (*types.Transaction, error) { + return _KeystoneRouter.Contract.AcceptOwnership(&_KeystoneRouter.TransactOpts) +} + +func (_KeystoneRouter *KeystoneRouterTransactor) AddForwarder(opts *bind.TransactOpts, forwarder common.Address) (*types.Transaction, error) { + return _KeystoneRouter.contract.Transact(opts, "addForwarder", forwarder) +} + +func (_KeystoneRouter *KeystoneRouterSession) AddForwarder(forwarder common.Address) (*types.Transaction, error) { + return _KeystoneRouter.Contract.AddForwarder(&_KeystoneRouter.TransactOpts, forwarder) +} + +func (_KeystoneRouter *KeystoneRouterTransactorSession) AddForwarder(forwarder common.Address) (*types.Transaction, error) { + return _KeystoneRouter.Contract.AddForwarder(&_KeystoneRouter.TransactOpts, forwarder) +} + +func (_KeystoneRouter *KeystoneRouterTransactor) RemoveForwarder(opts *bind.TransactOpts, forwarder common.Address) (*types.Transaction, error) { + return _KeystoneRouter.contract.Transact(opts, "removeForwarder", forwarder) +} + +func (_KeystoneRouter *KeystoneRouterSession) RemoveForwarder(forwarder common.Address) (*types.Transaction, error) { + return _KeystoneRouter.Contract.RemoveForwarder(&_KeystoneRouter.TransactOpts, forwarder) +} + +func (_KeystoneRouter *KeystoneRouterTransactorSession) RemoveForwarder(forwarder common.Address) (*types.Transaction, error) { + return _KeystoneRouter.Contract.RemoveForwarder(&_KeystoneRouter.TransactOpts, forwarder) +} + +func (_KeystoneRouter *KeystoneRouterTransactor) Route(opts *bind.TransactOpts, transmissionId [32]byte, transmitter common.Address, receiver common.Address, metadata []byte, report []byte) (*types.Transaction, error) { + return _KeystoneRouter.contract.Transact(opts, "route", transmissionId, transmitter, receiver, metadata, report) +} + +func (_KeystoneRouter *KeystoneRouterSession) Route(transmissionId [32]byte, transmitter common.Address, receiver common.Address, metadata []byte, report []byte) (*types.Transaction, error) { + return _KeystoneRouter.Contract.Route(&_KeystoneRouter.TransactOpts, transmissionId, transmitter, receiver, metadata, report) +} + +func (_KeystoneRouter *KeystoneRouterTransactorSession) Route(transmissionId [32]byte, transmitter common.Address, receiver common.Address, metadata []byte, report []byte) (*types.Transaction, error) { + return _KeystoneRouter.Contract.Route(&_KeystoneRouter.TransactOpts, transmissionId, transmitter, receiver, metadata, report) +} + +func (_KeystoneRouter *KeystoneRouterTransactor) TransferOwnership(opts *bind.TransactOpts, to common.Address) (*types.Transaction, error) { + return _KeystoneRouter.contract.Transact(opts, "transferOwnership", to) +} + +func (_KeystoneRouter *KeystoneRouterSession) TransferOwnership(to common.Address) (*types.Transaction, error) { + return _KeystoneRouter.Contract.TransferOwnership(&_KeystoneRouter.TransactOpts, to) +} + +func (_KeystoneRouter *KeystoneRouterTransactorSession) TransferOwnership(to common.Address) (*types.Transaction, error) { + return _KeystoneRouter.Contract.TransferOwnership(&_KeystoneRouter.TransactOpts, to) +} + +type KeystoneRouterForwarderAddedIterator struct { + Event *KeystoneRouterForwarderAdded + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *KeystoneRouterForwarderAddedIterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(KeystoneRouterForwarderAdded) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(KeystoneRouterForwarderAdded) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *KeystoneRouterForwarderAddedIterator) Error() error { + return it.fail +} + +func (it *KeystoneRouterForwarderAddedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type KeystoneRouterForwarderAdded struct { + Forwarder common.Address + Raw types.Log +} + +func (_KeystoneRouter *KeystoneRouterFilterer) FilterForwarderAdded(opts *bind.FilterOpts, forwarder []common.Address) (*KeystoneRouterForwarderAddedIterator, error) { + + var forwarderRule []interface{} + for _, forwarderItem := range forwarder { + forwarderRule = append(forwarderRule, forwarderItem) + } + + logs, sub, err := _KeystoneRouter.contract.FilterLogs(opts, "ForwarderAdded", forwarderRule) + if err != nil { + return nil, err + } + return &KeystoneRouterForwarderAddedIterator{contract: _KeystoneRouter.contract, event: "ForwarderAdded", logs: logs, sub: sub}, nil +} + +func (_KeystoneRouter *KeystoneRouterFilterer) WatchForwarderAdded(opts *bind.WatchOpts, sink chan<- *KeystoneRouterForwarderAdded, forwarder []common.Address) (event.Subscription, error) { + + var forwarderRule []interface{} + for _, forwarderItem := range forwarder { + forwarderRule = append(forwarderRule, forwarderItem) + } + + logs, sub, err := _KeystoneRouter.contract.WatchLogs(opts, "ForwarderAdded", forwarderRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(KeystoneRouterForwarderAdded) + if err := _KeystoneRouter.contract.UnpackLog(event, "ForwarderAdded", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_KeystoneRouter *KeystoneRouterFilterer) ParseForwarderAdded(log types.Log) (*KeystoneRouterForwarderAdded, error) { + event := new(KeystoneRouterForwarderAdded) + if err := _KeystoneRouter.contract.UnpackLog(event, "ForwarderAdded", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +type KeystoneRouterForwarderRemovedIterator struct { + Event *KeystoneRouterForwarderRemoved + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *KeystoneRouterForwarderRemovedIterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(KeystoneRouterForwarderRemoved) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(KeystoneRouterForwarderRemoved) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *KeystoneRouterForwarderRemovedIterator) Error() error { + return it.fail +} + +func (it *KeystoneRouterForwarderRemovedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type KeystoneRouterForwarderRemoved struct { + Forwarder common.Address + Raw types.Log +} + +func (_KeystoneRouter *KeystoneRouterFilterer) FilterForwarderRemoved(opts *bind.FilterOpts, forwarder []common.Address) (*KeystoneRouterForwarderRemovedIterator, error) { + + var forwarderRule []interface{} + for _, forwarderItem := range forwarder { + forwarderRule = append(forwarderRule, forwarderItem) + } + + logs, sub, err := _KeystoneRouter.contract.FilterLogs(opts, "ForwarderRemoved", forwarderRule) + if err != nil { + return nil, err + } + return &KeystoneRouterForwarderRemovedIterator{contract: _KeystoneRouter.contract, event: "ForwarderRemoved", logs: logs, sub: sub}, nil +} + +func (_KeystoneRouter *KeystoneRouterFilterer) WatchForwarderRemoved(opts *bind.WatchOpts, sink chan<- *KeystoneRouterForwarderRemoved, forwarder []common.Address) (event.Subscription, error) { + + var forwarderRule []interface{} + for _, forwarderItem := range forwarder { + forwarderRule = append(forwarderRule, forwarderItem) + } + + logs, sub, err := _KeystoneRouter.contract.WatchLogs(opts, "ForwarderRemoved", forwarderRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(KeystoneRouterForwarderRemoved) + if err := _KeystoneRouter.contract.UnpackLog(event, "ForwarderRemoved", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_KeystoneRouter *KeystoneRouterFilterer) ParseForwarderRemoved(log types.Log) (*KeystoneRouterForwarderRemoved, error) { + event := new(KeystoneRouterForwarderRemoved) + if err := _KeystoneRouter.contract.UnpackLog(event, "ForwarderRemoved", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +type KeystoneRouterOwnershipTransferRequestedIterator struct { + Event *KeystoneRouterOwnershipTransferRequested + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *KeystoneRouterOwnershipTransferRequestedIterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(KeystoneRouterOwnershipTransferRequested) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(KeystoneRouterOwnershipTransferRequested) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *KeystoneRouterOwnershipTransferRequestedIterator) Error() error { + return it.fail +} + +func (it *KeystoneRouterOwnershipTransferRequestedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type KeystoneRouterOwnershipTransferRequested struct { + From common.Address + To common.Address + Raw types.Log +} + +func (_KeystoneRouter *KeystoneRouterFilterer) FilterOwnershipTransferRequested(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*KeystoneRouterOwnershipTransferRequestedIterator, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _KeystoneRouter.contract.FilterLogs(opts, "OwnershipTransferRequested", fromRule, toRule) + if err != nil { + return nil, err + } + return &KeystoneRouterOwnershipTransferRequestedIterator{contract: _KeystoneRouter.contract, event: "OwnershipTransferRequested", logs: logs, sub: sub}, nil +} + +func (_KeystoneRouter *KeystoneRouterFilterer) WatchOwnershipTransferRequested(opts *bind.WatchOpts, sink chan<- *KeystoneRouterOwnershipTransferRequested, from []common.Address, to []common.Address) (event.Subscription, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _KeystoneRouter.contract.WatchLogs(opts, "OwnershipTransferRequested", fromRule, toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(KeystoneRouterOwnershipTransferRequested) + if err := _KeystoneRouter.contract.UnpackLog(event, "OwnershipTransferRequested", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_KeystoneRouter *KeystoneRouterFilterer) ParseOwnershipTransferRequested(log types.Log) (*KeystoneRouterOwnershipTransferRequested, error) { + event := new(KeystoneRouterOwnershipTransferRequested) + if err := _KeystoneRouter.contract.UnpackLog(event, "OwnershipTransferRequested", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +type KeystoneRouterOwnershipTransferredIterator struct { + Event *KeystoneRouterOwnershipTransferred + + contract *bind.BoundContract + event string + + logs chan types.Log + sub ethereum.Subscription + done bool + fail error +} + +func (it *KeystoneRouterOwnershipTransferredIterator) Next() bool { + + if it.fail != nil { + return false + } + + if it.done { + select { + case log := <-it.logs: + it.Event = new(KeystoneRouterOwnershipTransferred) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + + select { + case log := <-it.logs: + it.Event = new(KeystoneRouterOwnershipTransferred) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +func (it *KeystoneRouterOwnershipTransferredIterator) Error() error { + return it.fail +} + +func (it *KeystoneRouterOwnershipTransferredIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +type KeystoneRouterOwnershipTransferred struct { + From common.Address + To common.Address + Raw types.Log +} + +func (_KeystoneRouter *KeystoneRouterFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*KeystoneRouterOwnershipTransferredIterator, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _KeystoneRouter.contract.FilterLogs(opts, "OwnershipTransferred", fromRule, toRule) + if err != nil { + return nil, err + } + return &KeystoneRouterOwnershipTransferredIterator{contract: _KeystoneRouter.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil +} + +func (_KeystoneRouter *KeystoneRouterFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *KeystoneRouterOwnershipTransferred, from []common.Address, to []common.Address) (event.Subscription, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _KeystoneRouter.contract.WatchLogs(opts, "OwnershipTransferred", fromRule, toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + + event := new(KeystoneRouterOwnershipTransferred) + if err := _KeystoneRouter.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +func (_KeystoneRouter *KeystoneRouterFilterer) ParseOwnershipTransferred(log types.Log) (*KeystoneRouterOwnershipTransferred, error) { + event := new(KeystoneRouterOwnershipTransferred) + if err := _KeystoneRouter.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +func (_KeystoneRouter *KeystoneRouter) ParseLog(log types.Log) (generated.AbigenLog, error) { + switch log.Topics[0] { + case _KeystoneRouter.abi.Events["ForwarderAdded"].ID: + return _KeystoneRouter.ParseForwarderAdded(log) + case _KeystoneRouter.abi.Events["ForwarderRemoved"].ID: + return _KeystoneRouter.ParseForwarderRemoved(log) + case _KeystoneRouter.abi.Events["OwnershipTransferRequested"].ID: + return _KeystoneRouter.ParseOwnershipTransferRequested(log) + case _KeystoneRouter.abi.Events["OwnershipTransferred"].ID: + return _KeystoneRouter.ParseOwnershipTransferred(log) + + default: + return nil, fmt.Errorf("abigen wrapper received unknown log topic: %v", log.Topics[0]) + } +} + +func (KeystoneRouterForwarderAdded) Topic() common.Hash { + return common.HexToHash("0x0ea0ce2c048ff45a4a95f2947879de3fb94abec2f152190400cab2d1272a68e7") +} + +func (KeystoneRouterForwarderRemoved) Topic() common.Hash { + return common.HexToHash("0xb96d15bf9258c7b8df062753a6a262864611fc7b060a5ee2e57e79b85f898d38") +} + +func (KeystoneRouterOwnershipTransferRequested) Topic() common.Hash { + return common.HexToHash("0xed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae1278") +} + +func (KeystoneRouterOwnershipTransferred) Topic() common.Hash { + return common.HexToHash("0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0") +} + +func (_KeystoneRouter *KeystoneRouter) Address() common.Address { + return _KeystoneRouter.address +} + +type KeystoneRouterInterface interface { + GetTransmissionState(opts *bind.CallOpts, transmissionId [32]byte) (uint8, error) + + GetTransmitter(opts *bind.CallOpts, transmissionId [32]byte) (common.Address, error) + + IsForwarder(opts *bind.CallOpts, forwarder common.Address) (bool, error) + + Owner(opts *bind.CallOpts) (common.Address, error) + + TypeAndVersion(opts *bind.CallOpts) (string, error) + + AcceptOwnership(opts *bind.TransactOpts) (*types.Transaction, error) + + AddForwarder(opts *bind.TransactOpts, forwarder common.Address) (*types.Transaction, error) + + RemoveForwarder(opts *bind.TransactOpts, forwarder common.Address) (*types.Transaction, error) + + Route(opts *bind.TransactOpts, transmissionId [32]byte, transmitter common.Address, receiver common.Address, metadata []byte, report []byte) (*types.Transaction, error) + + TransferOwnership(opts *bind.TransactOpts, to common.Address) (*types.Transaction, error) + + FilterForwarderAdded(opts *bind.FilterOpts, forwarder []common.Address) (*KeystoneRouterForwarderAddedIterator, error) + + WatchForwarderAdded(opts *bind.WatchOpts, sink chan<- *KeystoneRouterForwarderAdded, forwarder []common.Address) (event.Subscription, error) + + ParseForwarderAdded(log types.Log) (*KeystoneRouterForwarderAdded, error) + + FilterForwarderRemoved(opts *bind.FilterOpts, forwarder []common.Address) (*KeystoneRouterForwarderRemovedIterator, error) + + WatchForwarderRemoved(opts *bind.WatchOpts, sink chan<- *KeystoneRouterForwarderRemoved, forwarder []common.Address) (event.Subscription, error) + + ParseForwarderRemoved(log types.Log) (*KeystoneRouterForwarderRemoved, error) + + FilterOwnershipTransferRequested(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*KeystoneRouterOwnershipTransferRequestedIterator, error) + + WatchOwnershipTransferRequested(opts *bind.WatchOpts, sink chan<- *KeystoneRouterOwnershipTransferRequested, from []common.Address, to []common.Address) (event.Subscription, error) + + ParseOwnershipTransferRequested(log types.Log) (*KeystoneRouterOwnershipTransferRequested, error) + + FilterOwnershipTransferred(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*KeystoneRouterOwnershipTransferredIterator, error) + + WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *KeystoneRouterOwnershipTransferred, from []common.Address, to []common.Address) (event.Subscription, error) + + ParseOwnershipTransferred(log types.Log) (*KeystoneRouterOwnershipTransferred, error) + + ParseLog(log types.Log) (generated.AbigenLog, error) + + Address() common.Address +} diff --git a/core/gethwrappers/keystone/generation/generated-wrapper-dependency-versions-do-not-edit.txt b/core/gethwrappers/keystone/generation/generated-wrapper-dependency-versions-do-not-edit.txt index 605607aeb98..75b743316ac 100644 --- a/core/gethwrappers/keystone/generation/generated-wrapper-dependency-versions-do-not-edit.txt +++ b/core/gethwrappers/keystone/generation/generated-wrapper-dependency-versions-do-not-edit.txt @@ -1,4 +1,5 @@ GETH_VERSION: 1.13.8 -forwarder: ../../../contracts/solc/v0.8.19/KeystoneForwarder/KeystoneForwarder.abi ../../../contracts/solc/v0.8.19/KeystoneForwarder/KeystoneForwarder.bin ec6e94293700d400ca7b22989d54793e905d6febce3b84054727a58c473b9cf3 -keystone_capability_registry: ../../../contracts/solc/v0.8.19/CapabilityRegistry/CapabilityRegistry.abi ../../../contracts/solc/v0.8.19/CapabilityRegistry/CapabilityRegistry.bin 2913d0d38f6a6edc6d437e16d042c7a6732171213c096259f2113170550e925e +forwarder: ../../../contracts/solc/v0.8.19/KeystoneForwarder/KeystoneForwarder.abi ../../../contracts/solc/v0.8.19/KeystoneForwarder/KeystoneForwarder.bin eb51d0a17d036385b840872d73022269a26ce79f3515a7f4adeefe07bdf4bdcd +keystone_capability_registry: ../../../contracts/solc/v0.8.19/CapabilityRegistry/CapabilityRegistry.abi ../../../contracts/solc/v0.8.19/CapabilityRegistry/CapabilityRegistry.bin 334fdeb3953509130edeeb3db63ed0c82e3ff0f86a884f2a11368963a617812b ocr3_capability: ../../../contracts/solc/v0.8.19/OCR3Capability/OCR3Capability.abi ../../../contracts/solc/v0.8.19/OCR3Capability/OCR3Capability.bin 9dcbdf55bd5729ba266148da3f17733eb592c871c2108ccca546618628fd9ad2 +router: ../../../contracts/solc/v0.8.19/KeystoneRouter/KeystoneRouter.abi ../../../contracts/solc/v0.8.19/KeystoneRouter/KeystoneRouter.bin d579702bbbe3c03caf2336a9d097f691e3c9033139480e97945b1e4c5f989523 diff --git a/core/gethwrappers/keystone/go_generate.go b/core/gethwrappers/keystone/go_generate.go index 679b678b8f2..e6287906443 100644 --- a/core/gethwrappers/keystone/go_generate.go +++ b/core/gethwrappers/keystone/go_generate.go @@ -5,5 +5,6 @@ package gethwrappers // Keystone //go:generate go run ../generation/generate/wrap.go ../../../contracts/solc/v0.8.19/KeystoneForwarder/KeystoneForwarder.abi ../../../contracts/solc/v0.8.19/KeystoneForwarder/KeystoneForwarder.bin KeystoneForwarder forwarder +//go:generate go run ../generation/generate/wrap.go ../../../contracts/solc/v0.8.19/KeystoneRouter/KeystoneRouter.abi ../../../contracts/solc/v0.8.19/KeystoneRouter/KeystoneRouter.bin KeystoneRouter router //go:generate go run ../generation/generate/wrap.go ../../../contracts/solc/v0.8.19/OCR3Capability/OCR3Capability.abi ../../../contracts/solc/v0.8.19/OCR3Capability/OCR3Capability.bin OCR3Capability ocr3_capability //go:generate go run ../generation/generate/wrap.go ../../../contracts/solc/v0.8.19/CapabilityRegistry/CapabilityRegistry.abi ../../../contracts/solc/v0.8.19/CapabilityRegistry/CapabilityRegistry.bin CapabilityRegistry keystone_capability_registry diff --git a/core/scripts/keystone/src/01_deploy_contracts_cmd.go b/core/scripts/keystone/src/01_deploy_contracts_cmd.go index 2ca60bdfaf2..34b8143f082 100644 --- a/core/scripts/keystone/src/01_deploy_contracts_cmd.go +++ b/core/scripts/keystone/src/01_deploy_contracts_cmd.go @@ -14,10 +14,12 @@ import ( helpers "github.com/smartcontractkit/chainlink/core/scripts/common" "github.com/smartcontractkit/chainlink/v2/core/gethwrappers/keystone/generated/forwarder" "github.com/smartcontractkit/chainlink/v2/core/gethwrappers/keystone/generated/ocr3_capability" + "github.com/smartcontractkit/chainlink/v2/core/gethwrappers/keystone/generated/router" ) type deployedContracts struct { OCRContract common.Address `json:"ocrContract"` + RouterContract common.Address `json:"routerContract"` ForwarderContract common.Address `json:"forwarderContract"` // The block number of the transaction that set the config on the OCR3 contract. We use this to replay blocks from this point on // when we load the OCR3 job specs on the nodes. @@ -107,12 +109,15 @@ func deploy( fmt.Println("Deploying keystone ocr3 contract...") ocrContract := DeployKeystoneOCR3Capability(env) + fmt.Println("Deploying keystone router contract...") + routerContract := DeployRouter(env) fmt.Println("Deploying keystone forwarder contract...") - forwarderContract := DeployForwarder(env) + forwarderContract := DeployForwarder(env, routerContract.Address()) fmt.Println("Writing deployed contract addresses to file...") contracts := deployedContracts{ OCRContract: ocrContract.Address(), + RouterContract: routerContract.Address(), ForwarderContract: forwarderContract.Address(), } jsonBytes, err := json.Marshal(contracts) @@ -121,6 +126,11 @@ func deploy( err = os.WriteFile(DeployedContractsFilePath(), jsonBytes, 0600) PanicErr(err) + // Add forwarder to router allow list + tx, err := routerContract.AddForwarder(env.Owner, forwarderContract.Address()) + PanicErr(err) + _ = helpers.ConfirmTXMined(context.Background(), env.Ec, tx, env.ChainID) + setOCR3Config(env, ocrConfig) if skipFunding { @@ -189,8 +199,16 @@ func DeployedContractsFilePath() string { return filepath.Join(artefactsDir, deployedContractsJSON) } -func DeployForwarder(e helpers.Environment) *forwarder.KeystoneForwarder { - _, tx, contract, err := forwarder.DeployKeystoneForwarder(e.Owner, e.Ec) +func DeployRouter(e helpers.Environment) *router.KeystoneRouter { + _, tx, contract, err := router.DeployKeystoneRouter(e.Owner, e.Ec) + PanicErr(err) + helpers.ConfirmContractDeployed(context.Background(), e.Ec, tx, e.ChainID) + + return contract +} + +func DeployForwarder(e helpers.Environment, routerAddress common.Address) *forwarder.KeystoneForwarder { + _, tx, contract, err := forwarder.DeployKeystoneForwarder(e.Owner, e.Ec, routerAddress) PanicErr(err) helpers.ConfirmContractDeployed(context.Background(), e.Ec, tx, e.ChainID) From af2a46f022e8bfb6cd69cc763874b75a286ea0ab Mon Sep 17 00:00:00 2001 From: Bartek Tofel Date: Mon, 10 Jun 2024 12:24:19 +0200 Subject: [PATCH 38/40] [TT-1259] Save PostgresDB logs (#13464) * connect log stream also to postgresdb * go mod tidy * use tagged CTF * use boring solution --- integration-tests/docker/test_env/cl_node.go | 12 ++++-------- integration-tests/docker/test_env/test_env.go | 5 ++--- integration-tests/go.mod | 2 +- integration-tests/go.sum | 4 ++-- integration-tests/load/go.mod | 2 +- integration-tests/load/go.sum | 4 ++-- 6 files changed, 12 insertions(+), 17 deletions(-) diff --git a/integration-tests/docker/test_env/cl_node.go b/integration-tests/docker/test_env/cl_node.go index 8bb83cc8ee4..90b237ac6a1 100644 --- a/integration-tests/docker/test_env/cl_node.go +++ b/integration-tests/docker/test_env/cl_node.go @@ -96,12 +96,6 @@ func WithDbContainerName(name string) ClNodeOption { } } -func WithLogStream(ls *logstream.LogStream) ClNodeOption { - return func(c *ClNode) { - c.LogStream = ls - } -} - func WithImage(image string) ClNodeOption { return func(c *ClNode) { c.ContainerImage = image @@ -124,10 +118,11 @@ func WithPgDBOptions(opts ...test_env.PostgresDbOption) ClNodeOption { } } -func NewClNode(networks []string, imageName, imageVersion string, nodeConfig *chainlink.Config, opts ...ClNodeOption) (*ClNode, error) { +func NewClNode(networks []string, imageName, imageVersion string, nodeConfig *chainlink.Config, logStream *logstream.LogStream, opts ...ClNodeOption) (*ClNode, error) { nodeDefaultCName := fmt.Sprintf("%s-%s", "cl-node", uuid.NewString()[0:8]) pgDefaultCName := fmt.Sprintf("pg-%s", nodeDefaultCName) - pgDb, err := test_env.NewPostgresDb(networks, test_env.WithPostgresDbContainerName(pgDefaultCName)) + + pgDb, err := test_env.NewPostgresDb(networks, test_env.WithPostgresDbContainerName(pgDefaultCName), test_env.WithPostgresDbLogStream(logStream)) if err != nil { return nil, err } @@ -137,6 +132,7 @@ func NewClNode(networks []string, imageName, imageVersion string, nodeConfig *ch ContainerImage: imageName, ContainerVersion: imageVersion, Networks: networks, + LogStream: logStream, }, UserEmail: "local@local.com", UserPassword: "localdevpassword", diff --git a/integration-tests/docker/test_env/test_env.go b/integration-tests/docker/test_env/test_env.go index e50c7700f55..c25cac12e67 100644 --- a/integration-tests/docker/test_env/test_env.go +++ b/integration-tests/docker/test_env/test_env.go @@ -131,7 +131,6 @@ func (te *CLClusterTestEnv) StartMockAdapter() error { return te.MockAdapter.StartContainer() } -// pass config here func (te *CLClusterTestEnv) StartClCluster(nodeConfig *chainlink.Config, count int, secretsConfig string, testconfig ctf_config.GlobalTestConfig, opts ...ClNodeOption) error { if te.Cfg != nil && te.Cfg.ClCluster != nil { te.ClCluster = te.Cfg.ClCluster @@ -144,10 +143,10 @@ func (te *CLClusterTestEnv) StartClCluster(nodeConfig *chainlink.Config, count i }, }, opts...) } - opts = append(opts, WithSecrets(secretsConfig), WithLogStream(te.LogStream)) + opts = append(opts, WithSecrets(secretsConfig)) te.ClCluster = &ClCluster{} for i := 0; i < count; i++ { - ocrNode, err := NewClNode([]string{te.DockerNetwork.Name}, *testconfig.GetChainlinkImageConfig().Image, *testconfig.GetChainlinkImageConfig().Version, nodeConfig, opts...) + ocrNode, err := NewClNode([]string{te.DockerNetwork.Name}, *testconfig.GetChainlinkImageConfig().Image, *testconfig.GetChainlinkImageConfig().Version, nodeConfig, te.LogStream, opts...) if err != nil { return err } diff --git a/integration-tests/go.mod b/integration-tests/go.mod index 3a97428c1d7..44b38596857 100644 --- a/integration-tests/go.mod +++ b/integration-tests/go.mod @@ -28,7 +28,7 @@ require ( github.com/slack-go/slack v0.12.2 github.com/smartcontractkit/chainlink-automation v1.0.3 github.com/smartcontractkit/chainlink-common v0.1.7-0.20240607135320-c9bc0a2ac0ce - github.com/smartcontractkit/chainlink-testing-framework v1.30.1 + github.com/smartcontractkit/chainlink-testing-framework v1.30.2 github.com/smartcontractkit/chainlink-vrf v0.0.0-20231120191722-fef03814f868 github.com/smartcontractkit/chainlink/v2 v2.0.0-00010101000000-000000000000 github.com/smartcontractkit/libocr v0.0.0-20240419185742-fd3cab206b2c diff --git a/integration-tests/go.sum b/integration-tests/go.sum index 7d919450ff0..b0350814045 100644 --- a/integration-tests/go.sum +++ b/integration-tests/go.sum @@ -1524,8 +1524,8 @@ github.com/smartcontractkit/chainlink-solana v1.0.3-0.20240605170242-555ff582f36 github.com/smartcontractkit/chainlink-solana v1.0.3-0.20240605170242-555ff582f36a/go.mod h1:QqcZSwLgEIn7YraAIRmomnBMAuVFephiHrIWVlkWbFI= github.com/smartcontractkit/chainlink-starknet/relayer v0.0.1-beta-test.0.20240531021326-99118e47f696 h1:h1E87+z+JcUEfvbJVF56SnZA/YUFE5ewUE61MaR/Ewg= github.com/smartcontractkit/chainlink-starknet/relayer v0.0.1-beta-test.0.20240531021326-99118e47f696/go.mod h1:OiWUTrrpSLLTMh7FINWjEh6mmDJCVPaC4yEsDCVaWdU= -github.com/smartcontractkit/chainlink-testing-framework v1.30.1 h1:JFoeSuOvdx8Rmfh5Z4KOH0FnjiLw3M2p7T4GLzTPLMk= -github.com/smartcontractkit/chainlink-testing-framework v1.30.1/go.mod h1:oEIggLGWyWfLkjWvuXLol8inUT4YbBb06fJx/S60gQ4= +github.com/smartcontractkit/chainlink-testing-framework v1.30.2 h1:PKAg0nVT6clcTYebm3Q0rhTId+5xE9wYyvFxxSg4+lI= +github.com/smartcontractkit/chainlink-testing-framework v1.30.2/go.mod h1:oEIggLGWyWfLkjWvuXLol8inUT4YbBb06fJx/S60gQ4= github.com/smartcontractkit/chainlink-testing-framework/grafana v0.0.0-20240328204215-ac91f55f1449 h1:fX/xmGm1GBsD1ZZnooNT+eWA0hiTAqFlHzOC5CY4dy8= github.com/smartcontractkit/chainlink-testing-framework/grafana v0.0.0-20240328204215-ac91f55f1449/go.mod h1:DC8sQMyTlI/44UCTL8QWFwb0bYNoXCfjwCv2hMivYZU= github.com/smartcontractkit/chainlink-vrf v0.0.0-20231120191722-fef03814f868 h1:FFdvEzlYwcuVHkdZ8YnZR/XomeMGbz5E2F2HZI3I3w8= diff --git a/integration-tests/load/go.mod b/integration-tests/load/go.mod index 14e3902780f..adc04c66955 100644 --- a/integration-tests/load/go.mod +++ b/integration-tests/load/go.mod @@ -17,7 +17,7 @@ require ( github.com/slack-go/slack v0.12.2 github.com/smartcontractkit/chainlink-automation v1.0.3 github.com/smartcontractkit/chainlink-common v0.1.7-0.20240607135320-c9bc0a2ac0ce - github.com/smartcontractkit/chainlink-testing-framework v1.30.1 + github.com/smartcontractkit/chainlink-testing-framework v1.30.2 github.com/smartcontractkit/chainlink/integration-tests v0.0.0-20240214231432-4ad5eb95178c github.com/smartcontractkit/chainlink/v2 v2.9.0-beta0.0.20240216210048-da02459ddad8 github.com/smartcontractkit/libocr v0.0.0-20240419185742-fd3cab206b2c diff --git a/integration-tests/load/go.sum b/integration-tests/load/go.sum index a9a975f2bb3..fd121a53f06 100644 --- a/integration-tests/load/go.sum +++ b/integration-tests/load/go.sum @@ -1514,8 +1514,8 @@ github.com/smartcontractkit/chainlink-solana v1.0.3-0.20240605170242-555ff582f36 github.com/smartcontractkit/chainlink-solana v1.0.3-0.20240605170242-555ff582f36a/go.mod h1:QqcZSwLgEIn7YraAIRmomnBMAuVFephiHrIWVlkWbFI= github.com/smartcontractkit/chainlink-starknet/relayer v0.0.1-beta-test.0.20240531021326-99118e47f696 h1:h1E87+z+JcUEfvbJVF56SnZA/YUFE5ewUE61MaR/Ewg= github.com/smartcontractkit/chainlink-starknet/relayer v0.0.1-beta-test.0.20240531021326-99118e47f696/go.mod h1:OiWUTrrpSLLTMh7FINWjEh6mmDJCVPaC4yEsDCVaWdU= -github.com/smartcontractkit/chainlink-testing-framework v1.30.1 h1:JFoeSuOvdx8Rmfh5Z4KOH0FnjiLw3M2p7T4GLzTPLMk= -github.com/smartcontractkit/chainlink-testing-framework v1.30.1/go.mod h1:oEIggLGWyWfLkjWvuXLol8inUT4YbBb06fJx/S60gQ4= +github.com/smartcontractkit/chainlink-testing-framework v1.30.2 h1:PKAg0nVT6clcTYebm3Q0rhTId+5xE9wYyvFxxSg4+lI= +github.com/smartcontractkit/chainlink-testing-framework v1.30.2/go.mod h1:oEIggLGWyWfLkjWvuXLol8inUT4YbBb06fJx/S60gQ4= github.com/smartcontractkit/chainlink-testing-framework/grafana v0.0.0-20240328204215-ac91f55f1449 h1:fX/xmGm1GBsD1ZZnooNT+eWA0hiTAqFlHzOC5CY4dy8= github.com/smartcontractkit/chainlink-testing-framework/grafana v0.0.0-20240328204215-ac91f55f1449/go.mod h1:DC8sQMyTlI/44UCTL8QWFwb0bYNoXCfjwCv2hMivYZU= github.com/smartcontractkit/chainlink-vrf v0.0.0-20231120191722-fef03814f868 h1:FFdvEzlYwcuVHkdZ8YnZR/XomeMGbz5E2F2HZI3I3w8= From 3151a1f78287f3d50e4ace400e091554a668af2d Mon Sep 17 00:00:00 2001 From: Njegos Railic Date: Mon, 10 Jun 2024 12:59:37 +0200 Subject: [PATCH 39/40] Bumping the crib-chainlink-cluster version devspace values (#13442) --- crib/devspace.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crib/devspace.yaml b/crib/devspace.yaml index a7530d58945..a6d118a3c87 100644 --- a/crib/devspace.yaml +++ b/crib/devspace.yaml @@ -132,7 +132,7 @@ deployments: releaseName: "app" chart: name: ${CHAINLINK_CLUSTER_HELM_CHART_URI} - version: "1.1.0" + version: "1.2.2" # for simplicity, we define all the values here # they can be defined the same way in values.yml # devspace merges these "values" with the "values.yaml" before deploy From 399af4109b13bef778a4271ee485d8ad4e70c990 Mon Sep 17 00:00:00 2001 From: Dmytro Haidashenko Date: Mon, 10 Jun 2024 17:37:54 +0200 Subject: [PATCH 40/40] Move deathDeclarationDelay to config --- common/client/multi_node.go | 3 +- common/client/multi_node_test.go | 23 +++--- common/client/node.go | 1 + common/client/node_test.go | 5 ++ core/chains/evm/client/chain_client.go | 2 + core/chains/evm/client/config_builder.go | 2 + core/chains/evm/client/config_builder_test.go | 4 +- core/chains/evm/client/evm_client.go | 2 +- core/chains/evm/client/evm_client_test.go | 3 +- core/chains/evm/client/helpers_test.go | 11 ++- .../evm/config/chain_scoped_node_pool.go | 4 ++ core/chains/evm/config/config.go | 1 + core/chains/evm/config/config_test.go | 1 + core/chains/evm/config/toml/config.go | 5 ++ .../evm/config/toml/defaults/fallback.toml | 1 + core/config/docs/chains-evm.toml | 8 +++ core/services/chainlink/config_test.go | 2 + .../chainlink/testdata/config-full.toml | 1 + .../config-multi-chain-effective.toml | 3 + core/web/resolver/testdata/config-full.toml | 1 + .../config-multi-chain-effective.toml | 3 + docs/CONFIG.md | 72 +++++++++++++++++++ .../disk-based-logging-disabled.txtar | 1 + .../validate/disk-based-logging-no-dir.txtar | 1 + .../node/validate/disk-based-logging.txtar | 1 + testdata/scripts/node/validate/invalid.txtar | 1 + testdata/scripts/node/validate/valid.txtar | 1 + 27 files changed, 145 insertions(+), 18 deletions(-) diff --git a/common/client/multi_node.go b/common/client/multi_node.go index 4502bb40edd..82837f983bf 100644 --- a/common/client/multi_node.go +++ b/common/client/multi_node.go @@ -138,6 +138,7 @@ func NewMultiNode[ chainFamily string, classifySendTxError func(tx TX, err error) SendTxReturnCode, sendTxSoftTimeout time.Duration, + deathDeclarationDelay time.Duration, ) MultiNode[CHAIN_ID, SEQ, ADDR, BLOCK_HASH, TX, TX_HASH, EVENT, EVENT_OPS, TX_RECEIPT, FEE, HEAD, RPC_CLIENT, BATCH_ELEM] { nodeSelector := newNodeSelector(selectionMode, nodes) // Prometheus' default interval is 15s, set this to under 7.5s to avoid @@ -159,7 +160,7 @@ func NewMultiNode[ chainFamily: chainFamily, classifySendTxError: classifySendTxError, reportInterval: reportInterval, - deathDeclarationDelay: reportInterval, + deathDeclarationDelay: deathDeclarationDelay, sendTxSoftTimeout: sendTxSoftTimeout, } diff --git a/common/client/multi_node_test.go b/common/client/multi_node_test.go index 6d41325425a..dc280e0e178 100644 --- a/common/client/multi_node_test.go +++ b/common/client/multi_node_test.go @@ -29,16 +29,17 @@ type testMultiNode struct { } type multiNodeOpts struct { - logger logger.Logger - selectionMode string - leaseDuration time.Duration - noNewHeadsThreshold time.Duration - nodes []Node[types.ID, types.Head[Hashable], multiNodeRPCClient] - sendonlys []SendOnlyNode[types.ID, multiNodeRPCClient] - chainID types.ID - chainFamily string - classifySendTxError func(tx any, err error) SendTxReturnCode - sendTxSoftTimeout time.Duration + logger logger.Logger + selectionMode string + leaseDuration time.Duration + noNewHeadsThreshold time.Duration + nodes []Node[types.ID, types.Head[Hashable], multiNodeRPCClient] + sendonlys []SendOnlyNode[types.ID, multiNodeRPCClient] + chainID types.ID + chainFamily string + classifySendTxError func(tx any, err error) SendTxReturnCode + sendTxSoftTimeout time.Duration + deathDeclarationDelay time.Duration } func newTestMultiNode(t *testing.T, opts multiNodeOpts) testMultiNode { @@ -49,7 +50,7 @@ func newTestMultiNode(t *testing.T, opts multiNodeOpts) testMultiNode { result := NewMultiNode[types.ID, *big.Int, Hashable, Hashable, any, Hashable, any, any, types.Receipt[Hashable, Hashable], Hashable, types.Head[Hashable], multiNodeRPCClient, any](opts.logger, opts.selectionMode, opts.leaseDuration, opts.noNewHeadsThreshold, opts.nodes, opts.sendonlys, - opts.chainID, opts.chainFamily, opts.classifySendTxError, opts.sendTxSoftTimeout) + opts.chainID, opts.chainFamily, opts.classifySendTxError, opts.sendTxSoftTimeout, opts.deathDeclarationDelay) return testMultiNode{ result.(*multiNode[types.ID, *big.Int, Hashable, Hashable, any, Hashable, any, any, types.Receipt[Hashable, Hashable], Hashable, types.Head[Hashable], multiNodeRPCClient, any]), diff --git a/common/client/node.go b/common/client/node.go index e8eaa94c5cb..cc97d7980f7 100644 --- a/common/client/node.go +++ b/common/client/node.go @@ -44,6 +44,7 @@ type NodeConfig interface { NodeIsSyncingEnabled() bool FinalizedBlockPollInterval() time.Duration EnforceRepeatableRead() bool + DeathDeclarationDelay() time.Duration } type ChainConfig interface { diff --git a/common/client/node_test.go b/common/client/node_test.go index 4a8531197ec..3b971e84902 100644 --- a/common/client/node_test.go +++ b/common/client/node_test.go @@ -19,6 +19,7 @@ type testNodeConfig struct { nodeIsSyncingEnabled bool enforceRepeatableRead bool finalizedBlockPollInterval time.Duration + deathDeclarationDelay time.Duration } func (n testNodeConfig) PollFailureThreshold() uint32 { @@ -49,6 +50,10 @@ func (n testNodeConfig) EnforceRepeatableRead() bool { return n.enforceRepeatableRead } +func (n testNodeConfig) DeathDeclarationDelay() time.Duration { + return n.deathDeclarationDelay +} + type testNode struct { *node[types.ID, Head, NodeClient[types.ID, Head]] } diff --git a/core/chains/evm/client/chain_client.go b/core/chains/evm/client/chain_client.go index b16b7df1002..0fb465f816a 100644 --- a/core/chains/evm/client/chain_client.go +++ b/core/chains/evm/client/chain_client.go @@ -132,6 +132,7 @@ func NewChainClient( chainID *big.Int, chainType chaintype.ChainType, clientErrors evmconfig.ClientErrors, + deathDeclarationDelay time.Duration, ) Client { multiNode := commonclient.NewMultiNode( lggr, @@ -146,6 +147,7 @@ func NewChainClient( return ClassifySendError(err, clientErrors, logger.Sugared(logger.Nop()), tx, common.Address{}, chainType.IsL2()) }, 0, // use the default value provided by the implementation + deathDeclarationDelay, ) return &chainClient{ multiNode: multiNode, diff --git a/core/chains/evm/client/config_builder.go b/core/chains/evm/client/config_builder.go index a88dadde090..115d660a90f 100644 --- a/core/chains/evm/client/config_builder.go +++ b/core/chains/evm/client/config_builder.go @@ -40,6 +40,7 @@ func NewClientConfigs( finalityTagEnabled *bool, finalityBlockOffset *uint32, enforceRepeatableRead *bool, + deathDeclarationDelay time.Duration, ) (commonclient.ChainConfig, evmconfig.NodePool, []*toml.Node, error) { nodes, err := parseNodeConfigs(nodeCfgs) @@ -54,6 +55,7 @@ func NewClientConfigs( SyncThreshold: syncThreshold, NodeIsSyncingEnabled: nodeIsSyncingEnabled, EnforceRepeatableRead: enforceRepeatableRead, + DeathDeclarationDelay: commonconfig.MustNewDuration(deathDeclarationDelay), } nodePoolCfg := &evmconfig.NodePoolConfig{C: nodePool} chainConfig := &evmconfig.EVMConfig{ diff --git a/core/chains/evm/client/config_builder_test.go b/core/chains/evm/client/config_builder_test.go index c488511c839..7c08bf18c1d 100644 --- a/core/chains/evm/client/config_builder_test.go +++ b/core/chains/evm/client/config_builder_test.go @@ -25,6 +25,7 @@ func TestClientConfigBuilder(t *testing.T) { chainTypeStr := "" finalizedBlockOffset := ptr[uint32](16) enforceRepeatableRead := ptr(true) + deathDeclarationDelay := time.Second * 3 nodeConfigs := []client.NodeConfig{ { Name: ptr("foo"), @@ -37,7 +38,7 @@ func TestClientConfigBuilder(t *testing.T) { noNewHeadsThreshold := time.Second chainCfg, nodePool, nodes, err := client.NewClientConfigs(selectionMode, leaseDuration, chainTypeStr, nodeConfigs, pollFailureThreshold, pollInterval, syncThreshold, nodeIsSyncingEnabled, noNewHeadsThreshold, finalityDepth, - finalityTagEnabled, finalizedBlockOffset, enforceRepeatableRead) + finalityTagEnabled, finalizedBlockOffset, enforceRepeatableRead, deathDeclarationDelay) require.NoError(t, err) // Validate node pool configs @@ -48,6 +49,7 @@ func TestClientConfigBuilder(t *testing.T) { require.Equal(t, *syncThreshold, nodePool.SyncThreshold()) require.Equal(t, *nodeIsSyncingEnabled, nodePool.NodeIsSyncingEnabled()) require.Equal(t, *enforceRepeatableRead, nodePool.EnforceRepeatableRead()) + require.Equal(t, deathDeclarationDelay, nodePool.DeathDeclarationDelay()) // Validate node configs require.Equal(t, *nodeConfigs[0].Name, *nodes[0].Name) diff --git a/core/chains/evm/client/evm_client.go b/core/chains/evm/client/evm_client.go index 4d309440590..fd7fa5868a4 100644 --- a/core/chains/evm/client/evm_client.go +++ b/core/chains/evm/client/evm_client.go @@ -35,5 +35,5 @@ func NewEvmClient(cfg evmconfig.NodePool, chainCfg commonclient.ChainConfig, cli } return NewChainClient(lggr, cfg.SelectionMode(), cfg.LeaseDuration(), chainCfg.NodeNoNewHeadsThreshold(), - primaries, sendonlys, chainID, chainType, clientErrors) + primaries, sendonlys, chainID, chainType, clientErrors, cfg.DeathDeclarationDelay()) } diff --git a/core/chains/evm/client/evm_client_test.go b/core/chains/evm/client/evm_client_test.go index 9c8f9d66619..9ad25f96025 100644 --- a/core/chains/evm/client/evm_client_test.go +++ b/core/chains/evm/client/evm_client_test.go @@ -26,6 +26,7 @@ func TestNewEvmClient(t *testing.T) { chainTypeStr := "" finalizedBlockOffset := ptr[uint32](16) enforceRepeatableRead := ptr(true) + deathDeclarationDelay := time.Second * 3 nodeConfigs := []client.NodeConfig{ { Name: ptr("foo"), @@ -37,7 +38,7 @@ func TestNewEvmClient(t *testing.T) { finalityTagEnabled := ptr(true) chainCfg, nodePool, nodes, err := client.NewClientConfigs(selectionMode, leaseDuration, chainTypeStr, nodeConfigs, pollFailureThreshold, pollInterval, syncThreshold, nodeIsSyncingEnabled, noNewHeadsThreshold, finalityDepth, - finalityTagEnabled, finalizedBlockOffset, enforceRepeatableRead) + finalityTagEnabled, finalizedBlockOffset, enforceRepeatableRead, deathDeclarationDelay) require.NoError(t, err) client := client.NewEvmClient(nodePool, chainCfg, nil, logger.Test(t), testutils.FixtureChainID, nodes, chaintype.ChainType(chainTypeStr)) diff --git a/core/chains/evm/client/helpers_test.go b/core/chains/evm/client/helpers_test.go index 39c66271a31..e1017a5564f 100644 --- a/core/chains/evm/client/helpers_test.go +++ b/core/chains/evm/client/helpers_test.go @@ -88,6 +88,7 @@ type TestNodePoolConfig struct { NodeFinalizedBlockPollInterval time.Duration NodeErrors config.ClientErrors EnforceRepeatableReadVal bool + NodeDeathDeclarationDelay time.Duration } func (tc TestNodePoolConfig) PollFailureThreshold() uint32 { return tc.NodePollFailureThreshold } @@ -114,6 +115,10 @@ func (tc TestNodePoolConfig) EnforceRepeatableRead() bool { return tc.EnforceRepeatableReadVal } +func (tc TestNodePoolConfig) DeathDeclarationDelay() time.Duration { + return tc.NodeDeathDeclarationDelay +} + func NewChainClientWithTestNode( t *testing.T, nodeCfg commonclient.NodeConfig, @@ -155,7 +160,7 @@ func NewChainClientWithTestNode( var chainType chaintype.ChainType clientErrors := NewTestClientErrors() - c := NewChainClient(lggr, nodeCfg.SelectionMode(), leaseDuration, noNewHeadsThreshold, primaries, sendonlys, chainID, chainType, &clientErrors) + c := NewChainClient(lggr, nodeCfg.SelectionMode(), leaseDuration, noNewHeadsThreshold, primaries, sendonlys, chainID, chainType, &clientErrors, 0) t.Cleanup(c.Close) return c, nil } @@ -170,7 +175,7 @@ func NewChainClientWithEmptyNode( lggr := logger.Test(t) var chainType chaintype.ChainType - c := NewChainClient(lggr, selectionMode, leaseDuration, noNewHeadsThreshold, nil, nil, chainID, chainType, nil) + c := NewChainClient(lggr, selectionMode, leaseDuration, noNewHeadsThreshold, nil, nil, chainID, chainType, nil, 0) t.Cleanup(c.Close) return c } @@ -196,7 +201,7 @@ func NewChainClientWithMockedRpc( cfg, clientMocks.ChainConfig{NoNewHeadsThresholdVal: noNewHeadsThreshold}, lggr, *parsed, nil, "eth-primary-node-0", 1, chainID, 1, rpc, "EVM") primaries := []commonclient.Node[*big.Int, *evmtypes.Head, RPCClient]{n} clientErrors := NewTestClientErrors() - c := NewChainClient(lggr, selectionMode, leaseDuration, noNewHeadsThreshold, primaries, nil, chainID, chainType, &clientErrors) + c := NewChainClient(lggr, selectionMode, leaseDuration, noNewHeadsThreshold, primaries, nil, chainID, chainType, &clientErrors, 0) t.Cleanup(c.Close) return c } diff --git a/core/chains/evm/config/chain_scoped_node_pool.go b/core/chains/evm/config/chain_scoped_node_pool.go index 3a6d5602589..a4974366486 100644 --- a/core/chains/evm/config/chain_scoped_node_pool.go +++ b/core/chains/evm/config/chain_scoped_node_pool.go @@ -43,3 +43,7 @@ func (n *NodePoolConfig) Errors() ClientErrors { return &clientErrorsConfig{c: n func (n *NodePoolConfig) EnforceRepeatableRead() bool { return *n.C.EnforceRepeatableRead } + +func (n *NodePoolConfig) DeathDeclarationDelay() time.Duration { + return n.C.DeathDeclarationDelay.Duration() +} diff --git a/core/chains/evm/config/config.go b/core/chains/evm/config/config.go index f0287e65431..ffb2a496baf 100644 --- a/core/chains/evm/config/config.go +++ b/core/chains/evm/config/config.go @@ -172,6 +172,7 @@ type NodePool interface { FinalizedBlockPollInterval() time.Duration Errors() ClientErrors EnforceRepeatableRead() bool + DeathDeclarationDelay() time.Duration } // TODO BCF-2509 does the chainscopedconfig really need the entire app config? diff --git a/core/chains/evm/config/config_test.go b/core/chains/evm/config/config_test.go index 8f1921f551f..ba362bda981 100644 --- a/core/chains/evm/config/config_test.go +++ b/core/chains/evm/config/config_test.go @@ -327,6 +327,7 @@ func TestNodePoolConfig(t *testing.T) { require.Equal(t, uint32(5), cfg.EVM().NodePool().PollFailureThreshold()) require.Equal(t, false, cfg.EVM().NodePool().NodeIsSyncingEnabled()) require.Equal(t, false, cfg.EVM().NodePool().EnforceRepeatableRead()) + require.Equal(t, time.Duration(10000000000), cfg.EVM().NodePool().DeathDeclarationDelay()) } func TestClientErrorsConfig(t *testing.T) { diff --git a/core/chains/evm/config/toml/config.go b/core/chains/evm/config/toml/config.go index b16b3e469ac..394cc403472 100644 --- a/core/chains/evm/config/toml/config.go +++ b/core/chains/evm/config/toml/config.go @@ -848,6 +848,7 @@ type NodePool struct { FinalizedBlockPollInterval *commonconfig.Duration Errors ClientErrors `toml:",omitempty"` EnforceRepeatableRead *bool + DeathDeclarationDelay *commonconfig.Duration } func (p *NodePool) setFrom(f *NodePool) { @@ -876,6 +877,10 @@ func (p *NodePool) setFrom(f *NodePool) { if v := f.EnforceRepeatableRead; v != nil { p.EnforceRepeatableRead = v } + + if v := f.DeathDeclarationDelay; v != nil { + p.DeathDeclarationDelay = v + } p.Errors.setFrom(&f.Errors) } diff --git a/core/chains/evm/config/toml/defaults/fallback.toml b/core/chains/evm/config/toml/defaults/fallback.toml index b207dd6c0dd..a11e646e08b 100644 --- a/core/chains/evm/config/toml/defaults/fallback.toml +++ b/core/chains/evm/config/toml/defaults/fallback.toml @@ -70,6 +70,7 @@ LeaseDuration = '0s' NodeIsSyncingEnabled = false FinalizedBlockPollInterval = '5s' EnforceRepeatableRead = false +DeathDeclarationDelay = '10s' [OCR] ContractConfirmations = 4 diff --git a/core/config/docs/chains-evm.toml b/core/config/docs/chains-evm.toml index 0170d37f51c..19c74913bf3 100644 --- a/core/config/docs/chains-evm.toml +++ b/core/config/docs/chains-evm.toml @@ -88,6 +88,9 @@ RPCBlockQueryDelay = 1 # Default # FinalizedBlockOffset defines the number of blocks by which the latest finalized block will be shifted. E.g if RPC returns block 100 as latest finalized, node will treat block `100 - FinalizedBlockOffset` as the latest finalized block. # In case of `FinalityTagEnabled = false` Node will treat block `latest - FinalityDepth - FinalizedBlockOffset` as the latest finalized block. # With `EnforceRepeatableRead = true`, RPC is considered healthy only if its most recent finalized block is larger or equal to the highest finalized block observed by the Node minus `FinalizedBlockOffset`. +# CAUTION: Setting this to values higher than 0 increases the number of RPCs considered healthy but can delay transaction production. +# PoS chains with FinalityTags enabled (e.g., Ethereum Mainnet) must be handled with special care, as blocks are finalized in batches (epochs). +# Thus, the `FinalizedBlockOffset=1` configuration will result in larger delays (e.g., 32 blocks for Ethereum Mainnet). FinalizedBlockOffset = 0 # Default [EVM.Transactions] @@ -378,6 +381,11 @@ FinalizedBlockPollInterval = '5s' # Default # # Set false to disable EnforceRepeatableRead = false # Default +# DeathDeclarationDelay defines the minimum duration an RPC must be in unhealthy state before producing an error log message. +# Larger values might be helpful to reduce the noisiness of health checks like `EnforceRepeatableRead = true', which might be falsely +# trigger declaration of `FinalizedBlockOutOfSync` due to insignificant network delays in broadcasting of the finalized state among RPCs. +# RPC will not be picked to handle a request even if this option is set to a nonzero value. +DeathDeclarationDelay = '10s' # Default # **ADVANCED** # Errors enable the node to provide custom regex patterns to match against error messages from RPCs. diff --git a/core/services/chainlink/config_test.go b/core/services/chainlink/config_test.go index f413c4959e9..dc9bd9d5cc0 100644 --- a/core/services/chainlink/config_test.go +++ b/core/services/chainlink/config_test.go @@ -591,6 +591,7 @@ func TestConfig_Marshal(t *testing.T) { NodeIsSyncingEnabled: ptr(true), FinalizedBlockPollInterval: &second, EnforceRepeatableRead: ptr(true), + DeathDeclarationDelay: &minute, Errors: evmcfg.ClientErrors{ NonceTooLow: ptr[string]("(: |^)nonce too low"), NonceTooHigh: ptr[string]("(: |^)nonce too high"), @@ -1060,6 +1061,7 @@ LeaseDuration = '0s' NodeIsSyncingEnabled = true FinalizedBlockPollInterval = '1s' EnforceRepeatableRead = true +DeathDeclarationDelay = '1m0s' [EVM.NodePool.Errors] NonceTooLow = '(: |^)nonce too low' diff --git a/core/services/chainlink/testdata/config-full.toml b/core/services/chainlink/testdata/config-full.toml index 07f80d94fcd..c76ae58f425 100644 --- a/core/services/chainlink/testdata/config-full.toml +++ b/core/services/chainlink/testdata/config-full.toml @@ -354,6 +354,7 @@ LeaseDuration = '0s' NodeIsSyncingEnabled = true FinalizedBlockPollInterval = '1s' EnforceRepeatableRead = true +DeathDeclarationDelay = '1m0s' [EVM.NodePool.Errors] NonceTooLow = '(: |^)nonce too low' diff --git a/core/services/chainlink/testdata/config-multi-chain-effective.toml b/core/services/chainlink/testdata/config-multi-chain-effective.toml index 5a1657dc1c4..6bffb85de86 100644 --- a/core/services/chainlink/testdata/config-multi-chain-effective.toml +++ b/core/services/chainlink/testdata/config-multi-chain-effective.toml @@ -325,6 +325,7 @@ LeaseDuration = '0s' NodeIsSyncingEnabled = false FinalizedBlockPollInterval = '5s' EnforceRepeatableRead = false +DeathDeclarationDelay = '10s' [EVM.OCR] ContractConfirmations = 4 @@ -423,6 +424,7 @@ LeaseDuration = '0s' NodeIsSyncingEnabled = false FinalizedBlockPollInterval = '5s' EnforceRepeatableRead = false +DeathDeclarationDelay = '10s' [EVM.OCR] ContractConfirmations = 4 @@ -515,6 +517,7 @@ LeaseDuration = '0s' NodeIsSyncingEnabled = false FinalizedBlockPollInterval = '5s' EnforceRepeatableRead = false +DeathDeclarationDelay = '10s' [EVM.OCR] ContractConfirmations = 4 diff --git a/core/web/resolver/testdata/config-full.toml b/core/web/resolver/testdata/config-full.toml index fbecbc2d8a7..a3c3dd4aa1d 100644 --- a/core/web/resolver/testdata/config-full.toml +++ b/core/web/resolver/testdata/config-full.toml @@ -353,6 +353,7 @@ LeaseDuration = '0s' NodeIsSyncingEnabled = false FinalizedBlockPollInterval = '5s' EnforceRepeatableRead = false +DeathDeclarationDelay = '10s' [EVM.NodePool.Errors] NonceTooLow = '(: |^)nonce too low' diff --git a/core/web/resolver/testdata/config-multi-chain-effective.toml b/core/web/resolver/testdata/config-multi-chain-effective.toml index 815d78e7682..22469c5a166 100644 --- a/core/web/resolver/testdata/config-multi-chain-effective.toml +++ b/core/web/resolver/testdata/config-multi-chain-effective.toml @@ -325,6 +325,7 @@ LeaseDuration = '0s' NodeIsSyncingEnabled = false FinalizedBlockPollInterval = '5s' EnforceRepeatableRead = false +DeathDeclarationDelay = '10s' [EVM.OCR] ContractConfirmations = 4 @@ -423,6 +424,7 @@ LeaseDuration = '0s' NodeIsSyncingEnabled = false FinalizedBlockPollInterval = '5s' EnforceRepeatableRead = false +DeathDeclarationDelay = '10s' [EVM.OCR] ContractConfirmations = 4 @@ -515,6 +517,7 @@ LeaseDuration = '0s' NodeIsSyncingEnabled = false FinalizedBlockPollInterval = '5s' EnforceRepeatableRead = false +DeathDeclarationDelay = '10s' [EVM.OCR] ContractConfirmations = 4 diff --git a/docs/CONFIG.md b/docs/CONFIG.md index 4a69f114547..ef2c3a5a1b6 100644 --- a/docs/CONFIG.md +++ b/docs/CONFIG.md @@ -1805,6 +1805,7 @@ LeaseDuration = '0s' NodeIsSyncingEnabled = false FinalizedBlockPollInterval = '5s' EnforceRepeatableRead = false +DeathDeclarationDelay = '10s' [OCR] ContractConfirmations = 4 @@ -1897,6 +1898,7 @@ LeaseDuration = '0s' NodeIsSyncingEnabled = false FinalizedBlockPollInterval = '5s' EnforceRepeatableRead = false +DeathDeclarationDelay = '10s' [OCR] ContractConfirmations = 4 @@ -1989,6 +1991,7 @@ LeaseDuration = '0s' NodeIsSyncingEnabled = false FinalizedBlockPollInterval = '5s' EnforceRepeatableRead = false +DeathDeclarationDelay = '10s' [OCR] ContractConfirmations = 4 @@ -2081,6 +2084,7 @@ LeaseDuration = '0s' NodeIsSyncingEnabled = false FinalizedBlockPollInterval = '5s' EnforceRepeatableRead = false +DeathDeclarationDelay = '10s' [OCR] ContractConfirmations = 4 @@ -2174,6 +2178,7 @@ LeaseDuration = '0s' NodeIsSyncingEnabled = false FinalizedBlockPollInterval = '5s' EnforceRepeatableRead = false +DeathDeclarationDelay = '10s' [OCR] ContractConfirmations = 1 @@ -2266,6 +2271,7 @@ LeaseDuration = '0s' NodeIsSyncingEnabled = false FinalizedBlockPollInterval = '5s' EnforceRepeatableRead = false +DeathDeclarationDelay = '10s' [OCR] ContractConfirmations = 4 @@ -2358,6 +2364,7 @@ LeaseDuration = '0s' NodeIsSyncingEnabled = false FinalizedBlockPollInterval = '5s' EnforceRepeatableRead = false +DeathDeclarationDelay = '10s' [OCR] ContractConfirmations = 4 @@ -2451,6 +2458,7 @@ LeaseDuration = '0s' NodeIsSyncingEnabled = false FinalizedBlockPollInterval = '5s' EnforceRepeatableRead = false +DeathDeclarationDelay = '10s' [OCR] ContractConfirmations = 4 @@ -2543,6 +2551,7 @@ LeaseDuration = '0s' NodeIsSyncingEnabled = false FinalizedBlockPollInterval = '5s' EnforceRepeatableRead = false +DeathDeclarationDelay = '10s' [OCR] ContractConfirmations = 4 @@ -2634,6 +2643,7 @@ LeaseDuration = '0s' NodeIsSyncingEnabled = false FinalizedBlockPollInterval = '5s' EnforceRepeatableRead = false +DeathDeclarationDelay = '10s' [OCR] ContractConfirmations = 4 @@ -2725,6 +2735,7 @@ LeaseDuration = '0s' NodeIsSyncingEnabled = false FinalizedBlockPollInterval = '5s' EnforceRepeatableRead = false +DeathDeclarationDelay = '10s' [OCR] ContractConfirmations = 4 @@ -2817,6 +2828,7 @@ LeaseDuration = '0s' NodeIsSyncingEnabled = false FinalizedBlockPollInterval = '5s' EnforceRepeatableRead = false +DeathDeclarationDelay = '10s' [OCR] ContractConfirmations = 4 @@ -2910,6 +2922,7 @@ LeaseDuration = '0s' NodeIsSyncingEnabled = false FinalizedBlockPollInterval = '5s' EnforceRepeatableRead = false +DeathDeclarationDelay = '10s' [OCR] ContractConfirmations = 4 @@ -3002,6 +3015,7 @@ LeaseDuration = '0s' NodeIsSyncingEnabled = false FinalizedBlockPollInterval = '5s' EnforceRepeatableRead = false +DeathDeclarationDelay = '10s' [OCR] ContractConfirmations = 4 @@ -3094,6 +3108,7 @@ LeaseDuration = '0s' NodeIsSyncingEnabled = false FinalizedBlockPollInterval = '5s' EnforceRepeatableRead = false +DeathDeclarationDelay = '10s' [OCR] ContractConfirmations = 4 @@ -3186,6 +3201,7 @@ LeaseDuration = '0s' NodeIsSyncingEnabled = false FinalizedBlockPollInterval = '5s' EnforceRepeatableRead = false +DeathDeclarationDelay = '10s' [OCR] ContractConfirmations = 1 @@ -3278,6 +3294,7 @@ LeaseDuration = '0s' NodeIsSyncingEnabled = false FinalizedBlockPollInterval = '5s' EnforceRepeatableRead = false +DeathDeclarationDelay = '10s' [OCR] ContractConfirmations = 1 @@ -3370,6 +3387,7 @@ LeaseDuration = '0s' NodeIsSyncingEnabled = false FinalizedBlockPollInterval = '5s' EnforceRepeatableRead = false +DeathDeclarationDelay = '10s' [OCR] ContractConfirmations = 4 @@ -3462,6 +3480,7 @@ LeaseDuration = '0s' NodeIsSyncingEnabled = false FinalizedBlockPollInterval = '5s' EnforceRepeatableRead = false +DeathDeclarationDelay = '10s' [OCR] ContractConfirmations = 1 @@ -3554,6 +3573,7 @@ LeaseDuration = '0s' NodeIsSyncingEnabled = false FinalizedBlockPollInterval = '5s' EnforceRepeatableRead = false +DeathDeclarationDelay = '10s' [OCR] ContractConfirmations = 4 @@ -3646,6 +3666,7 @@ LeaseDuration = '0s' NodeIsSyncingEnabled = false FinalizedBlockPollInterval = '5s' EnforceRepeatableRead = false +DeathDeclarationDelay = '10s' [OCR] ContractConfirmations = 4 @@ -3738,6 +3759,7 @@ LeaseDuration = '0s' NodeIsSyncingEnabled = false FinalizedBlockPollInterval = '5s' EnforceRepeatableRead = false +DeathDeclarationDelay = '10s' [OCR] ContractConfirmations = 4 @@ -3831,6 +3853,7 @@ LeaseDuration = '0s' NodeIsSyncingEnabled = false FinalizedBlockPollInterval = '5s' EnforceRepeatableRead = false +DeathDeclarationDelay = '10s' [OCR] ContractConfirmations = 1 @@ -3923,6 +3946,7 @@ LeaseDuration = '0s' NodeIsSyncingEnabled = false FinalizedBlockPollInterval = '5s' EnforceRepeatableRead = false +DeathDeclarationDelay = '10s' [OCR] ContractConfirmations = 1 @@ -4014,6 +4038,7 @@ LeaseDuration = '0s' NodeIsSyncingEnabled = false FinalizedBlockPollInterval = '5s' EnforceRepeatableRead = false +DeathDeclarationDelay = '10s' [OCR] ContractConfirmations = 1 @@ -4106,6 +4131,7 @@ LeaseDuration = '0s' NodeIsSyncingEnabled = false FinalizedBlockPollInterval = '5s' EnforceRepeatableRead = false +DeathDeclarationDelay = '10s' [OCR] ContractConfirmations = 1 @@ -4198,6 +4224,7 @@ LeaseDuration = '0s' NodeIsSyncingEnabled = false FinalizedBlockPollInterval = '5s' EnforceRepeatableRead = false +DeathDeclarationDelay = '10s' [OCR] ContractConfirmations = 1 @@ -4290,6 +4317,7 @@ LeaseDuration = '0s' NodeIsSyncingEnabled = false FinalizedBlockPollInterval = '5s' EnforceRepeatableRead = false +DeathDeclarationDelay = '10s' [OCR] ContractConfirmations = 1 @@ -4382,6 +4410,7 @@ LeaseDuration = '0s' NodeIsSyncingEnabled = false FinalizedBlockPollInterval = '5s' EnforceRepeatableRead = false +DeathDeclarationDelay = '10s' [OCR] ContractConfirmations = 1 @@ -4473,6 +4502,7 @@ LeaseDuration = '0s' NodeIsSyncingEnabled = false FinalizedBlockPollInterval = '5s' EnforceRepeatableRead = false +DeathDeclarationDelay = '10s' [OCR] ContractConfirmations = 1 @@ -4565,6 +4595,7 @@ LeaseDuration = '0s' NodeIsSyncingEnabled = false FinalizedBlockPollInterval = '5s' EnforceRepeatableRead = false +DeathDeclarationDelay = '10s' [OCR] ContractConfirmations = 1 @@ -4657,6 +4688,7 @@ LeaseDuration = '0s' NodeIsSyncingEnabled = false FinalizedBlockPollInterval = '5s' EnforceRepeatableRead = false +DeathDeclarationDelay = '10s' [OCR] ContractConfirmations = 1 @@ -4749,6 +4781,7 @@ LeaseDuration = '0s' NodeIsSyncingEnabled = false FinalizedBlockPollInterval = '5s' EnforceRepeatableRead = false +DeathDeclarationDelay = '10s' [OCR] ContractConfirmations = 1 @@ -4841,6 +4874,7 @@ LeaseDuration = '0s' NodeIsSyncingEnabled = false FinalizedBlockPollInterval = '5s' EnforceRepeatableRead = false +DeathDeclarationDelay = '10s' [OCR] ContractConfirmations = 4 @@ -4932,6 +4966,7 @@ LeaseDuration = '0s' NodeIsSyncingEnabled = false FinalizedBlockPollInterval = '5s' EnforceRepeatableRead = false +DeathDeclarationDelay = '10s' [OCR] ContractConfirmations = 1 @@ -5024,6 +5059,7 @@ LeaseDuration = '0s' NodeIsSyncingEnabled = false FinalizedBlockPollInterval = '5s' EnforceRepeatableRead = false +DeathDeclarationDelay = '10s' [OCR] ContractConfirmations = 1 @@ -5116,6 +5152,7 @@ LeaseDuration = '0s' NodeIsSyncingEnabled = false FinalizedBlockPollInterval = '5s' EnforceRepeatableRead = false +DeathDeclarationDelay = '10s' [OCR] ContractConfirmations = 4 @@ -5209,6 +5246,7 @@ LeaseDuration = '0s' NodeIsSyncingEnabled = false FinalizedBlockPollInterval = '5s' EnforceRepeatableRead = false +DeathDeclarationDelay = '10s' [OCR] ContractConfirmations = 1 @@ -5301,6 +5339,7 @@ LeaseDuration = '0s' NodeIsSyncingEnabled = false FinalizedBlockPollInterval = '5s' EnforceRepeatableRead = false +DeathDeclarationDelay = '10s' [OCR] ContractConfirmations = 1 @@ -5393,6 +5432,7 @@ LeaseDuration = '0s' NodeIsSyncingEnabled = false FinalizedBlockPollInterval = '5s' EnforceRepeatableRead = false +DeathDeclarationDelay = '10s' [OCR] ContractConfirmations = 1 @@ -5485,6 +5525,7 @@ LeaseDuration = '0s' NodeIsSyncingEnabled = false FinalizedBlockPollInterval = '5s' EnforceRepeatableRead = false +DeathDeclarationDelay = '10s' [OCR] ContractConfirmations = 1 @@ -5577,6 +5618,7 @@ LeaseDuration = '0s' NodeIsSyncingEnabled = false FinalizedBlockPollInterval = '5s' EnforceRepeatableRead = false +DeathDeclarationDelay = '10s' [OCR] ContractConfirmations = 1 @@ -5668,6 +5710,7 @@ LeaseDuration = '0s' NodeIsSyncingEnabled = false FinalizedBlockPollInterval = '5s' EnforceRepeatableRead = false +DeathDeclarationDelay = '10s' [OCR] ContractConfirmations = 4 @@ -5759,6 +5802,7 @@ LeaseDuration = '0s' NodeIsSyncingEnabled = false FinalizedBlockPollInterval = '5s' EnforceRepeatableRead = false +DeathDeclarationDelay = '10s' [OCR] ContractConfirmations = 4 @@ -5850,6 +5894,7 @@ LeaseDuration = '0s' NodeIsSyncingEnabled = false FinalizedBlockPollInterval = '5s' EnforceRepeatableRead = false +DeathDeclarationDelay = '10s' [OCR] ContractConfirmations = 4 @@ -5942,6 +5987,7 @@ LeaseDuration = '0s' NodeIsSyncingEnabled = false FinalizedBlockPollInterval = '5s' EnforceRepeatableRead = false +DeathDeclarationDelay = '10s' [OCR] ContractConfirmations = 1 @@ -6034,6 +6080,7 @@ LeaseDuration = '0s' NodeIsSyncingEnabled = false FinalizedBlockPollInterval = '5s' EnforceRepeatableRead = false +DeathDeclarationDelay = '10s' [OCR] ContractConfirmations = 4 @@ -6125,6 +6172,7 @@ LeaseDuration = '0s' NodeIsSyncingEnabled = false FinalizedBlockPollInterval = '5s' EnforceRepeatableRead = false +DeathDeclarationDelay = '10s' [OCR] ContractConfirmations = 4 @@ -6217,6 +6265,7 @@ LeaseDuration = '0s' NodeIsSyncingEnabled = false FinalizedBlockPollInterval = '5s' EnforceRepeatableRead = false +DeathDeclarationDelay = '10s' [OCR] ContractConfirmations = 1 @@ -6309,6 +6358,7 @@ LeaseDuration = '0s' NodeIsSyncingEnabled = false FinalizedBlockPollInterval = '5s' EnforceRepeatableRead = false +DeathDeclarationDelay = '10s' [OCR] ContractConfirmations = 1 @@ -6402,6 +6452,7 @@ LeaseDuration = '0s' NodeIsSyncingEnabled = false FinalizedBlockPollInterval = '5s' EnforceRepeatableRead = false +DeathDeclarationDelay = '10s' [OCR] ContractConfirmations = 1 @@ -6495,6 +6546,7 @@ LeaseDuration = '0s' NodeIsSyncingEnabled = false FinalizedBlockPollInterval = '5s' EnforceRepeatableRead = false +DeathDeclarationDelay = '10s' [OCR] ContractConfirmations = 1 @@ -6587,6 +6639,7 @@ LeaseDuration = '0s' NodeIsSyncingEnabled = false FinalizedBlockPollInterval = '5s' EnforceRepeatableRead = false +DeathDeclarationDelay = '10s' [OCR] ContractConfirmations = 1 @@ -6679,6 +6732,7 @@ LeaseDuration = '0s' NodeIsSyncingEnabled = false FinalizedBlockPollInterval = '5s' EnforceRepeatableRead = false +DeathDeclarationDelay = '10s' [OCR] ContractConfirmations = 1 @@ -6771,6 +6825,7 @@ LeaseDuration = '0s' NodeIsSyncingEnabled = false FinalizedBlockPollInterval = '5s' EnforceRepeatableRead = false +DeathDeclarationDelay = '10s' [OCR] ContractConfirmations = 1 @@ -6863,6 +6918,7 @@ LeaseDuration = '0s' NodeIsSyncingEnabled = false FinalizedBlockPollInterval = '5s' EnforceRepeatableRead = false +DeathDeclarationDelay = '10s' [OCR] ContractConfirmations = 4 @@ -6955,6 +7011,7 @@ LeaseDuration = '0s' NodeIsSyncingEnabled = false FinalizedBlockPollInterval = '5s' EnforceRepeatableRead = false +DeathDeclarationDelay = '10s' [OCR] ContractConfirmations = 1 @@ -7047,6 +7104,7 @@ LeaseDuration = '0s' NodeIsSyncingEnabled = false FinalizedBlockPollInterval = '5s' EnforceRepeatableRead = false +DeathDeclarationDelay = '10s' [OCR] ContractConfirmations = 4 @@ -7139,6 +7197,7 @@ LeaseDuration = '0s' NodeIsSyncingEnabled = false FinalizedBlockPollInterval = '5s' EnforceRepeatableRead = false +DeathDeclarationDelay = '10s' [OCR] ContractConfirmations = 4 @@ -7334,6 +7393,9 @@ FinalizedBlockOffset = 0 # Default FinalizedBlockOffset defines the number of blocks by which the latest finalized block will be shifted. E.g if RPC returns block 100 as latest finalized, node will treat block `100 - FinalizedBlockOffset` as the latest finalized block. In case of `FinalityTagEnabled = false` Node will treat block `latest - FinalityDepth - FinalizedBlockOffset` as the latest finalized block. With `EnforceRepeatableRead = true`, RPC is considered healthy only if its most recent finalized block is larger or equal to the highest finalized block observed by the Node minus `FinalizedBlockOffset`. +CAUTION: Setting this to values higher than 0 increases the number of RPCs considered healthy but can delay transaction production. +PoS chains with FinalityTags enabled (e.g., Ethereum Mainnet) must be handled with special care, as blocks are finalized in batches (epochs). +Thus, the `FinalizedBlockOffset=1` configuration will result in larger delays (e.g., 32 blocks for Ethereum Mainnet). ## EVM.Transactions ```toml @@ -7843,6 +7905,7 @@ LeaseDuration = '0s' # Default NodeIsSyncingEnabled = false # Default FinalizedBlockPollInterval = '5s' # Default EnforceRepeatableRead = false # Default +DeathDeclarationDelay = '10s' # Default ``` The node pool manages multiple RPC endpoints. @@ -7926,6 +7989,15 @@ block. Set false to disable +### DeathDeclarationDelay +```toml +DeathDeclarationDelay = '10s' # Default +``` +DeathDeclarationDelay defines the minimum duration an RPC must be in unhealthy state before producing an error log message. +Larger values might be helpful to reduce the noisiness of health checks like `EnforceRepeatableRead = true', which might be falsely +trigger declaration of `FinalizedBlockOutOfSync` due to insignificant network delays in broadcasting of the finalized state among RPCs. +RPC will not be picked to handle a request even if this option is set to a nonzero value. + ## EVM.NodePool.Errors :warning: **_ADVANCED_**: _Do not change these settings unless you know what you are doing._ ```toml diff --git a/testdata/scripts/node/validate/disk-based-logging-disabled.txtar b/testdata/scripts/node/validate/disk-based-logging-disabled.txtar index bd6e6b2e0b4..0454b9c4e6e 100644 --- a/testdata/scripts/node/validate/disk-based-logging-disabled.txtar +++ b/testdata/scripts/node/validate/disk-based-logging-disabled.txtar @@ -381,6 +381,7 @@ LeaseDuration = '0s' NodeIsSyncingEnabled = false FinalizedBlockPollInterval = '5s' EnforceRepeatableRead = false +DeathDeclarationDelay = '10s' [EVM.OCR] ContractConfirmations = 4 diff --git a/testdata/scripts/node/validate/disk-based-logging-no-dir.txtar b/testdata/scripts/node/validate/disk-based-logging-no-dir.txtar index 1fa25e25e21..9b9a939b970 100644 --- a/testdata/scripts/node/validate/disk-based-logging-no-dir.txtar +++ b/testdata/scripts/node/validate/disk-based-logging-no-dir.txtar @@ -381,6 +381,7 @@ LeaseDuration = '0s' NodeIsSyncingEnabled = false FinalizedBlockPollInterval = '5s' EnforceRepeatableRead = false +DeathDeclarationDelay = '10s' [EVM.OCR] ContractConfirmations = 4 diff --git a/testdata/scripts/node/validate/disk-based-logging.txtar b/testdata/scripts/node/validate/disk-based-logging.txtar index b07d5092854..69a166f9e40 100644 --- a/testdata/scripts/node/validate/disk-based-logging.txtar +++ b/testdata/scripts/node/validate/disk-based-logging.txtar @@ -381,6 +381,7 @@ LeaseDuration = '0s' NodeIsSyncingEnabled = false FinalizedBlockPollInterval = '5s' EnforceRepeatableRead = false +DeathDeclarationDelay = '10s' [EVM.OCR] ContractConfirmations = 4 diff --git a/testdata/scripts/node/validate/invalid.txtar b/testdata/scripts/node/validate/invalid.txtar index 72bfbfa4952..fefe6b3a627 100644 --- a/testdata/scripts/node/validate/invalid.txtar +++ b/testdata/scripts/node/validate/invalid.txtar @@ -371,6 +371,7 @@ LeaseDuration = '0s' NodeIsSyncingEnabled = false FinalizedBlockPollInterval = '5s' EnforceRepeatableRead = false +DeathDeclarationDelay = '10s' [EVM.OCR] ContractConfirmations = 4 diff --git a/testdata/scripts/node/validate/valid.txtar b/testdata/scripts/node/validate/valid.txtar index 33775f52e3f..9f59e065f41 100644 --- a/testdata/scripts/node/validate/valid.txtar +++ b/testdata/scripts/node/validate/valid.txtar @@ -378,6 +378,7 @@ LeaseDuration = '0s' NodeIsSyncingEnabled = false FinalizedBlockPollInterval = '5s' EnforceRepeatableRead = false +DeathDeclarationDelay = '10s' [EVM.OCR] ContractConfirmations = 4

    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�`HeOk91BF61W(;{QO{IJ2a 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%0Aagh+-AN~3Qjv$LBtYs1#@%vU% z>XsTk6bv4InAmv!Eqs3x{(A*DsCC3OxbH1^v$E&BLmRW1&~iTaqhr< z5?HYzC8Ig9vnXRN9_{LsR^s%_Al6wdd$bwnN zQc{YI)EEskCFL}6GYu4y779rdW*z&C(-vNm7O*h#c_dZ5@tf^?uhgI8NU1qDpyN3| zU~@xAKq6BTeIL;-qb_j74s8ZM<~-l^UOjhW59Y>zg7W)gBd2mSOh!=2os5w9PbAh) zv|RJ(kOQfQUOaZt=Auu84gGjomXrQDB(rEN$66Uzbq2E#G!b8iO?mE z;`7UdE*)^bjU^7_^M$U`sWSHm&i#RPd``RG-o{U>-8{eAxY)lEc>3{f=E+XGwR0hg z`q%Ll?W5M|X%YxHc|%ig$fm(R-HWnj0x)sJzYHktM2v(dFbw<8X!YiwZW&cxliK>m&V4V-suu_W%HDt z2fSutKU8pBljbaWAO+8Zz4n5CF7l>)uj18?iH-|6Tn!CfG-^Czt0GDxVH=cN0GjYFMjViOC1LtAJ5E9IdG8}Op+E4# z8h?#`q+75;pzz9@qOKRW7NR64p3PhSVnJ~#RgNbP_n5{t>oIy|=Tu__Q;C&zf(olP zVFd^T73zi~<@4H*l9p_(m~b$f8htVIOxLlTJmmmwpfKwb{$^df;uTCzZT6JN0Zfi0 z3!vqkO0O=w=V_iUT%a8e%z@0kpP(SL<13HzEKe7P`GldZm~RlDjb+5VcmQ5V^A9%t z$&iLN{$_VzkH^YZ3cQlRgv|xm2s{VLUR9KCGUb6<1t;Q(Qzv?m=EfVmP7QAj$~3W* zEqr}_9gNU~=*!bKHc3CJH|`kp>|txA*CcG|KJ>>(0|#86GXqLb-q$ZN;!e zCsJG!rS=kcQmc*F(c0}>Q>?_Ak9Y|zwwoGaC1RMEltW3b2v4&jCjc7-@CW$%6nq)1 z=JPg>Mm*5^hE#+IL%LEJGE)_5vXhN&2{C5_8B)±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

    4J0+-})x>8(0F4nWpm;kMao0?N&tHjv*gn zMbvFxbUT99ljKlFw-NQHx(lhh&>r!Sx{Eo&B%2|12frQRj?TD|0D_CG_-T$;^_dYj z9r)fLFS&I_B!VgZ!u-2zoNc)z?}J|{Do|=zmd$Hr!?G+juHUDFM zdcA8-gJ#|vD?5lK^#YGfvf?I4GeCNRXp+lMo4VC57iW8hXEGz@%Z9_R-RX~)qQS}( z4HkXA6umgI!+o`)-Crk(k290qym~|%0TrfG|hv1q~qVuazCTvTx1md9kpd#z!Z^^MCe@9F} zs!+D%>n*LeWJ?E3k}hC?Wl0Z^gqM9|?}Z^prP3WNTeNhyN_Xa^L+Ts*&!;jOVMQ_> zH1UZ&D$_?rI(=<}*&29Lu!fkf;mX;w142^5F~Xbnl(3C1$I|0zOev}PEN3C7QWVwn zG)9Vg{aqNy^gDKbZya7_Ou*xjG4bPo$*92>KVc6wiN_N}JO1#ALq2*6x50jm(46G7 zqpB-mJWf~C);8RibInA~dq>8c7Dlw=GY1oUq(GEs@I~Peu#bY4>%~t4Rz)$9P>pYE z_zP2lWs!+0X*ART#Eo!soc3XGDOQxRFMMkV`xpFK)Vnih zH5wYT!<0(hkm^7zFD81}=!n9A_u;}Xp>n3VNyXx+#+)gcxgqt6#vHw|S6X97)EJ66 zrfz>8&9gsiwr5gFo1+ZlAh@Hm)}g@IN|j&;>_CKU;{V?aK#sE`BiV}NFIZ<+C!@t7 z?U<$(v$RvhETz(O$whiVH(kF&M+?4trN74cXR-lx>A7Mz${e*6@S$^CE{BSUyx$5 zw*xDn^#_heJh0ELKrVf3x_r9XFTj@Gq@2-oj*py!pA>NpE9#dGQZoohs3R{Xx}b6d z+(=SmQ)46!<>Z)++}iDW@hEu{b~%V3-K})HNwnKlRMa3ooSd>Vb?C{%96^E11C=97 zd2W*)Cim#COPrOd#dD$+W@mKlTilb!VU6Nb$^)cLpY}nsIes%GWff!UvbEWa3Y(^$ zWIi=6`8QD4V*D3UVULJ~1HM2*d}89gk7z|r3#tnlq(@O~6xh44UN}?FE9=R3|H~2S zB4gz)y@<7#%dd-#L=|X7oKFgPT}c3v;3*FHa(jvcAP`i5p~PGBLKtEG`p=sw;qCatVUT2?UelZohnGS-+~_L@i~Ed)QqBPAt3Y6^&P?UmWB z8MZO89`4nc(`v-xrt)9ubYio9W!T4Q(!e;`-qp?%~GKUa=%(RGB=x;(A zdsBDzH8Xo$(G|5+C4zt#KaWi5Q26^XgRYO6{cjtgJ^^n|CDDN8{1k_kY-c`&9eGl} zX9cCYLica9B`klVEC2RZ)v_tf8w&St__{_~#|>r0jd(b)Er`10kMle~;QVF-i( z)x``|d4Hvr+LEbJJ+&)SlUnMAOw4MDoi&*%R;JVq6E3#8o#D!V{&TZpJ^yV)e5JKw zfrw*!d%I=YSuDqGAkaH1VbSGJb5m?{vD-xpSO1`ezShFZeHW)N*wsF6zaMmYV^Jq) zmd}YQqzsKvSn5)Ej3~;*Fe4c8>otRegnTUUakHus;9VR#gXMmXeG=wh<(%US!FW@U%=IPMcPKWJHsAHt-1k%iu zqNmTB*rLRo=fmT+lmcQh?s)UZTJ5+D*714FP@%BuR*@nfusRd1^+Cvw+fp@@Np&G< zY7P01wOVquuU8igHV=gi2u=1rC&hF9X1!TN?63B%3J$6^xatUwS6D2gt?nSQEb~K3 z5}dS>>q=tbb<->iw7ppa?elEOkTzH^xD-)}u~y5uBcDH6aDJIU>G zVUtyx>~68oU2YZIZ3OM^eWU^~Q>zVWv!pPaXg)`If(R>U4YIAGB!xnfh`@($((9-? z4V1~YMM1gCJdj|9MA>Wuve`~mq%|I0IohQDc8mlV3PzStT`d5=(@7Y(!oZeZzd_$0 z(#d?ti8{xJ`WV0El;hHzB^eD12j%?^P3gY$=M;7q70$KYOE|TA(YI;7N*sz9XqU~5 zfhRR)dASUG$jLiL%2V$=n(AEZDE1A=An3R1{ahqAVSH?V8+0-t7WcORe!9D}SD!*{ zhex*GXtd?gHjZRGb<7JbhKLwdreR#BEr_lqvd31iMbthe^lNb)zbS0rqCpVTJRz_u z5MK2q_Q%o&rKq3m6dlQKGCQ*}>e)xn_qIcuoDmvI9~hh54@nl>-yhKS}Ha+LO?x&otuf=~Y*2&BMC-3x_ zuz%TOk?qELk{YHIMpM8m>=s`+nJ`ot*uo5AH5M7ACrG7V(3)Zt8d{e89Y^A$@24U& z%w{q#Rc>E$o<8fh?f|Aq|7Tx@ZvUzpCK0jP7)>kR=AB-nVOfEieWpkHIuFAm;eeP( zrR>E~c4n9?V40Pdi9wWSi0ZT4BI%28ra&aM|{3kUUxRbOuGML7CIdG#+&a%4uSwt@;Ey76Igg#%R2v=PP5pR z_|%yKDo5@)#qVEC<7gyu##wI0ic?XeebhLWDsn4oBz~d{KZIflwj6S>0T-y)KFzI2 zvK%K&BpqT=1R};H!r2OA7jf}5|35iA#e#YN@bp{t?tbOaSeGx4Bu~R2-O99y5dxG# z*@^zHc-mpMiPSKyd_az7tIe{yt2u+K86s9~Amg2_WMIPkP>@#`4o{lWM?J4%QO(>o zq>$FbJv0*&pGsG*rDYv=ejQiVFl3WK*~f(IB;W+j9TR zk?Pw2bRV?X)1k#-0WEg^o1w*@?t>P`1T78#E&fGj`(GsjcpSiN-==kc1ug!C#}oYq z6|^`uRmXuzq~|55_}(U^TdD*VOSjw2C!^3I+TAdW7kk7_er4J*QRcPRDNq&vP@IA& zfXDr{ZUsCR1Uwcz8^19%ym5Q20vvn#O=|x`w4TJx{a4VFt_CWkhhPdoxs(I__UE6W zDCagh4Wv{p*T9sDF6R-$d>p2-82ubzAAy`CZK7g8Xh33RCIb-8n=jpc<5#&pKP@q2bUG z?B*$V*qQB~oN2~r$J~S*r&f-6wtM2~MObyT-NqtxyVeQ8^kS*=?3X%A9y~8p?irPX zhv#Smo94RCQdsCLLA@000x9=rM(NX|@6A_W(pX<(*FbC?JJat~=MkQGHj*3V%QKQ3 z2B**&&lIAxw_(~hXU3UwpwsgLJkaQj^l<>t0V*jox7&AjFw{+`2pJtltiJ&oBao8Q zPhWb$JzCuiv2FDL&8W=>m7(~-PREU_u2}d61 zsI*Ly6(N!q(rR^78G+^xIhI3q)R5z9$c`FvP9y|@9M;T`bEM1D(TD6!580DLc4^3N zeaJ3sNrmZJzdOBYK16)oZ+>7pBIl{e#Fprk_WI&I>_jKoDV5#gs}(QN&7olwX5~I+ zG*v|G`bC-J=LU+24h61cWufi1=ucU4e;O;3_*x{y6D6XhERL5(!B{a>q1mtbea%YK zWWu!!)PQ~2nHZu;2l6!kCw>n=qZ3h??G~^D&~c_MPQ<0Ho=PcmE#=kvgni}sIZ~&4 znQ6IJtZKSCnSj-|RI87a+t>|6;w0`_;5wls*7EYp%iEdEaoB%lirgh$1DT>iz zd3_6!OSChBj9Fpd&9y>g#M~%?gkI3w?P$Nn+g(Gjgu$pM1$-mT=z4c&yqQdOx^sv>hn2 zO0?a3g_CCG%U0noGlU8t#7ew|_+)irg9{kzwR`rEJkLN%pVBk_n;s%>hwv-u6fK0X{aIp&BZr9J ziWxbASoNu{X-Bo@5=7*6Vh9r#A*0DEI?2%rt(M<8hWMEpA$;(qoIt2~b|ktWJ&~Jp zA&6N`HFydrhr>T^(0N_&)4lb9+#NW$*vsjO;c;>KN>0yjf>LYMr|QIN{~;pe?D!WU zXWy9SuzJG+nSvd*3w&F2;@hKBD>k>H6HhiEe~?}Ntr5bMQJxY2Xh4_0=E}%mi)qt~bO*5rU=VOnM*%P9kF)cdqoQK}hnR6wUMnXhOj-Szd6)JZZY?#Y|DSsE6=CYs6T3HHG=mw?1C={6CFn#DZ zF1g1br2>MRZMEydZ38!;L+W=mHDP(h@%*+sh+pJsv&jOGyS{&Id~HF2SDzr&6zBr~ z-B&Z9bEf`INQ)R6t-{(W3l5{mH$xYZ!@9u~Z)72O;^_vsicXP-_=-C0jJwdUTrKxlT zOehQA)7xK))kt7}P*d)Sw8R42TR}|$(3%De2kI3TJ73rvm#`WPz}2`0Tvb~mRVXbA zrL<4L(}YNtn4~b&w(iM@LJ^!|NDd~QBG4r@h*A4ZY&b9+xdjG1l5CZ(J=$_h0JvIj z=CqL4vuGjcN*K6nyA*C|QP_zJGAWi8D#T=`l&s5HmK|ecFLv?KKln+J?m6vYVE;gv zk8Vgja2~vIZgJ!OFS>94@{U3Cyu3^g+`NBw*HkDZ?l#@QnJA$h+`$i#yn*K3-Mu$c zzk%^1s6=I~FuP*6^r0-*cw_$SCl=C|JbQ{2n@=%t1>SP>P2GvnH+8iqEq29Q>{iJO zjA#);glRWeJjJ5o*5c3}C5yx4)TFe~;xcno6-VT6PVSXrM0a;r+x!wR7+GSQ>fGJkZu98r zrAapXy7wln&R8Ufio-I!09Uw89wOF8w-lc-7j0T2lereZWmo)`u2U$llUWl$ct!pe z{Vt{t^D4^yv7uIdhceI~riv?2PnY%zf8W5i2}UOA_$d7hFkR4!19{{J>2>Itl@uJT z-BSv)WIS3~p=g2+>lC#dD9lJunSK&3T*$7OEP>O)OA)fcGLSjZGMbJGLRZ4!+RpS! zTw8?q*4FX8J$9)-M}~HnM~FyjG|s4DNXeF$(J85!cV9|gVo!BO@2rQ;JjG$AI`dR# z8UL_B&HGZnLUrcTzNFE}8;ze|i3A#=wgYOu#-(tOKNzMzkZ)4>3ZF~$SsVA^z&{oU z&@mbPJttOW@=wySr~U>i{X+e9)nD?2ii=%5mxXNd-gEhsp3&felRJ2>9+vPGls=i* zIm2SQFbS0r&8wX?7=_YPDIK!hW9Y;C)#DclS0iM086FmCJ8fr-NE>=QAb5%C9N=TyoG3B3>P&sIxS@yE~ue zx_$7Uml3QUHB=U^u*8!Io-L6+r!EeU;M=P2-Q0)w19?f6DX!jPkuNVHXtQt$C39AL zl@Y~QfK{kN1~18sqiv%UMUI>dDpOXkOFJnLvw*n=F%2PIMXbymPWI;nGAzM1Zz&K; zh^m|iq%3ZvO@us}mEbHPR*tS|#fAXn*fjsnIm~EijXQ(F=T(6gXy96<7Ah4DN^ORs zRJX(V*SGW{woK)paqSKW&Z6FN1HBDUDPOhE+sf3 zLa`1}Wm6}ZKL{6mJQZ%oSGq8S+sW03JV z)pJzO>6=z!c)AsYN2fkJ@E^k&Sjn5$IqHCcjTJRrFr8PZXHBI8;5$)y(=@e_lGSpz zVqyzdgq^K{zXdh{ad}HL8NLblm_JBP+*9uVktUtiAl!7fb-|d9{ikF|rUGBjpx7@0I zJH16OUNjZTu0opZN*`@{Q zlN1pPO=$j@n+P*x-Oe(_!ORr>`au?@;%&A926S^XMYMK7Y&MLBmW5qcxlH`t zHQCC}hxbdbg7js)VlqYEE)pVWcap@3#z8ce)bNpTGvO_z`DhG$erhj)N3A@B64+%b z!Ye^>d2DHPTQJWvq8SREz*~xmU`UP%(m(7ybmGPDT_%1%VPf*a5dF1!@^6*gttY=x z$?xjP-&Jz2mi*+CO5Ug^w^ee#p8QTFuh)}XDtWcu<+)03*OOnXfEdp7WYuk*kG$Iw%TT^9k$wKt39^5%2xYqb&d5`S-;QvYplP{`WtMG*oH4} z_-8TRxtSO%Crkg|f1>{+|M5?)6?2d!w|{4sU&_wLVX+zOwA!l$ztrT&F!pfCgm-ML z+}_^aHuv_Lp7+<`U%R`TmzSGq`j`FJmoHzASJ=x7!x(oAlhHq-bs>R8s+orxp!%}X z!&M$%_~DXTiBt2B>nKJ5Aknyp9lSitd!UGhE4&1fa2h?=}QGC%*o zhQ4)d4qiT&zu50vaxC8L0b^IpNm-#067j4V$;{`!!2qGklY*MXSL_v;d2?$dMOG!t zH`C}K+G^^9vmPE?GpZ;<1H1MfUOn_#RoaU#&|B3)kw6s$?S^sUDFi)odxXeb7V^w? zo+i>={4^m8C)oWcDVIs+vyge*eHH>17Mer3c=t)d(WBqq7H_tfoi>c^NV^6^7dASFpB&Uo+W8EK zNP|EFv_8e+zv&ROFyu)hI`Xhl&~NGW|GTBNTN>AH>8zuF3O;u4Ep-;%QfI*}b*67= zI(17^+5zgfG_^f!F!fvd^8s^;V%-%tZCZ`;;xWFE;QA>C0v=v+o+}5!-_j5x&oZ3y z9R#*ZzJnGqAht+)+UG89>OJlfyuc+)g0Q_47pz*CKiz?pI5>&muvzBB$|24=27zRA z3UU&pfcQHl1;kr(2q_X=E&P>)lP-?wuVark)v=|Ho2q+aiGvZv zY)ZVwXJnRW#^g@Wb37JX4xJTBfE1NG1DuZ+FBNUq`|)YHAkTDgeHMhmh?co)3VS54 zhi`ec<;>1w?j|r(WT_XspKz^q+ZgHYCxtO# zYalJ3^kHU&y#vWiUcWR!WPl3YGiL?Q17aa}YH&?=?wgj?w7a_-s}fx6APCC{LEmCI z#8qlJL~J+JeK@D{R9XP2woA1gS$pPW!#Ssl7op%rya!N1D!-@`*a%W>=HU1T8k$&DuEpAD+$T4k3T6C}%(%O=qvkd`+E9&2oKlzpufOdlx&_F<_H(@&ib}gIo9= zQoMw^-yt$heam0@9b(+zxV*tmaf9QU-{AtVT=M%$ze7~lB>G2whkD4cBur8f!-d}= zVckwgIv$8pE@ALuk>deo2?b6)IKI#EuqHhRWVy&R$HRr@cyJaw9(s!%51q>KP@5@l z3{BgU#qw6p?lG3g1DbR3v1df~F9?}I!><|Hzd*aWY#1I7n#i(+l{aJ4+)C^*)&eef zc#W~1b`gjyapp0?JEyGE!lFWeuH2xhSsc7I60*0;FnlZw?(UYCC4r)QcNcCE<{!N^ z8X@wB09f&mz59%yr=0^M063FH*S26ji3Nf-?t{6IvTHaaj8CQkf0E#Qec<_W!560sMPu$UBaE`wb6)#p27^z=3yB$6NRSM^5=Cl;aLlOC% z%lC3o0QgL-b}V(4LIgg?Q?c6cM#8HaD}WoOEq^bk*s)1@HiEJ|TSq`#s8aHrte)*}oCw&?Fxb zONI%Ei(GRv;VyYv-tLhX36GmjJb1A8zzeCuj1|GkM4^tL_U#g3`G_!jJ|e@Vx}oA* zX>CG^E3guKY{hJZS8^z>Um6nz3EkM-OziXNwO!68*4fM&B4wiz#9DB+jCf+7TZ!#k zF=3X__6K8BwH^H1wmX{>p3{i2md>r%I-9LjuhQL=mnF60*~MTOvvZ5yQbayx$|?>f zdm+>OySq%u`6y?e_e2k*yixQ>dS(_MN=QqK`Nb{UB)(|R;;t2weY~>V%g(ZY*I86_7Ex!J)|n$aGxF)32^MDp zm1HP>-lPMQxUQ#Su~Qj~o!ZmSmMtmy^_%*9(UPaaNPJ&shZC~C$27lt^qy02djjcl zibq|e0JIKkF@!a!&E}4L{+`I_fg_?-!bX_nCrc4>GOUR63nROH4LRu_D}L6wFpD^{jJOPiT}RwkVlNpHdTPm}R; z2k0$kh{+9|wg;G;O3b`7$wAaHggC}5*uO9tR-LRY5l$5tPZyX>6}Xu$;7=9!A`6sw z!`kZSex0*f%{gbG&Y7Bph$?B`Oq5U0M5ITCA9JSOf{8~L0b7PANKIUgM$%~9ub@U# zm$;E==9C4@1Pvq}=&gB322^3=QG{fq*^W}Z=CUngg+`h$nY!pK9oP^Yg zzxPIpst=0GG|R4&%(-xi;>M(_CRt~gsP=2ievtAgZA%iokjbqj0h^%LoE!cRBVk3= zDQuAKf`=tA%|d8P4|tl5opCHZdIpU2Fd3xVts&_*lU*QJZ1F7?TRgV}kyX`&6oC3n zip*m87`kQoa|Rh}L!>F#t@k=>vvIL^i5iWHcN9(fifYs~VYirW1VF38DYam{>hdNe zHtiwSOesgpiEKA1uW2xaFn#qf>rvnv*Y6FJ9l=wyk|yp7{f^j*C(>+%Ol|3F?CNv+ zfmp=fhS6(yc7Vs6>Kxuq1cIo5>u@4MirlUg1@odH8eC8k+7M80LBKz1wHv;yHS{@; zH;r}!kYtWlo}Y45ia}Y zEOs;2ZudK#e!JJlTByU?ola}5)opiHS-0O=+gNL@_E~#lZLQnsul2fArn|n@>$H07 z8%*rJXPtJhySl!<-e$ed#>RTPztLyw?bWqzYYm2+-rDNg`UbVK)>>cP=&r4@PJg}E zUG1&*S+CvdcGvrBUDj`RI-ORl+hOY)-SxHhT6crBJL_VNwbxti*82Ktug%)+Zg*{C zqt(MVtc7kjSbL-0Zgn=+`mEFIwR^2ThTdA=Xs@oV^|i6~*4yhFt!}HwRyTUkHT-(KsVnoM-W z;;Y+iWAE8*v-Sp|(7Hri2ktsVle2a8zqQ)``uF^A^|W@A5AIt82enVa++gz~RK4&?g8TJLw>yu|^5yFOJPks(HFa38!~=@{n^`;k!ZfcR$|HpMwOYVRHnJavq&nLvb>U5DboVIoFmg*y_`x5`SNno zXe6BHFmgh|C*a&=(cN8Y0%mF~>qC^IxVx*TMM}-)aDNy(p!mVQRi zg~ZiPDf9`&9wNKj+v(Q=D^-_-6u>X=}oSQHWM#@fcw2tXxN8A(=_{ ztp9_Sow?#lrAUl~34093p6%1Wg8q%kZ7b{v{e6fDOd|nZSUj-d>}Oy!B}H?U^C^mkc&_w7N{! zDJh zyswWGA(V0C?3(>#JM0U)U^ncLK6yV$`*Vjh2P6LJt??6}AG|IJj&`sz!_h5WGjE4x z;8K)RqEwV!ylt|ZsuTo3r*f~0+>9zu7(MEF_+pHdUzBD2t_(PF z7x?V`lun9En5oBQHE-*3U|F8*B0up?*|k{)#hu}0_)?a2w-8JbTqlukk9qH_h3li1Sh|8J2bRJql+a)xCfVf5RX^7j#$!+=#%%mAbCO zU{i!IDPWSGf92-Ob#8|olvCLd&hZ=)q7Fd4O?12P~?jZ0=N8j~V?EH6Zz(aPMaWf*%H6k@9t_@k)1Xpl{IY9 zO6WPcY(a>H_a#sX5xfyLMY)s00LXR|$?F`LL*m}0_$$!T92&+ChfsZAr5sP2q#xlu zrikV_rSR;kQiSIc?pH&OAtjC)mRgh+k=9%)ML~0wbgm^?s;a1}8ZJ+)cK>N=ZUH8S zpSiSzYh&1zV+fnBx#@0)bFy(FZZkwS0=Q{eF~5(LEKL(bT($RFC=_Q3+>WHD{{7uBt}=s{ZCzY)0mv+6MN`qo!Zw zhpF2LGHs2mOasyd&^ut_YmasMYxOcM$x}>4_L+F|9agg065v{KXkt3!el;nb(WLaZ zjDPkqEseNFmllGGZq}BS@Waq3DU1s!HF2b;C&?+B=yEibTmPfnnx7=6c%Sl<1axl` zzIQIU6HpToUQ;)9#H9UgWKGPv-X4u^c2}iyE7QP0UOut{f-xHr&?eX;mT6W%5a582 zpYF-0x4^5z%EemdDTkJEK9g9x-S;U3mTWIIV%m?v0w(k+IlQ$Eg6EOGc0`+xsJ{7# z)aHW%PzdDNhpbJ`#r1B1u`}w7=VeW~8HrQ?)p`dzlSA0viMuSb19;AXH{h9lZe^si z?H35kXB{9~>~kxpbVG_c+~UK<{bmdaYVI{tCa(635^{THLw#XH_&^CuJF}f8qM(tC z9{_gyO_WQy*F3{I;A&5?E$R*A_L!`UvVpK@AS6-j*gB(UJ+;t4z{Q7;Mg&4?7)eEx zgA)orLW78tMU)r;agIc;bP>s0noljN-#;qk_t&`!`TcV6G1*yq8DCBuY5~!|U(S*s zx;RV(d2E~|x6EB~!f~7g+1ce%cILnX6GWL4L=^SAl*N-cjK{a&d3TmViXoQK!HEcC z*P#|-f5{7+apGJqiI7k~DS8<>sqnz?N7A0?EgCO5OX^XRWlyc*6IJnby}jQm z`C~o#jY@uAOa7J=;!*ATUH*2z@lhvD4lXC5m||31kssSxJk$+Y^n21h`zVTd_^gu} zO+3D__K56cwA(I8L*aCoLm8?whPLE}A745y&SI>Ti3;YxU@}TcqxTK3xxu07v=CV99vEdi5+YQN*8^9`#0tz$(EBq zS$pp@&e(euMR(b0cklaC#6!H3UAP z<$fq5s-u~~S3bIV(o0ccCZy6VNfTL04FiDw=GZ@28);k8zj#cQtC-plmFEDwi}C@b z(x7ap49djkP3n>F4&@#9X@dx?)SmloMZ)yZg~GE+UgO2d{8n@k)ksmYbPmnP3Srg) z*DyhuOM?`eoI=w^iQ>x($x9(0%zE>Y9FuZXX?fi*$5;A@gMvt$XymS`GxsbRqWpOC zGcck8rt30gU%$))+62LM0kj$2tG{;!wF9`W=Y6;8s9ZgQ5Lc{W%o;1ljL5m7J-fMV zIe~M*fZLZM#*vAd~&xDwI^JPL;L3dpc-HBq4YBIobh?0aeWC*M`eJQQ%r7Z z@P#W9eVJI7u5;ulXSHWLaX-_Ed+LPIs@a==vjd!D!m7qd*XR~hjg|CCk-pd{1sWBj z@{fOby~gq?e*R$d7v{%o;pl!!%JBm*fk@1)6}5&I9BsonhH~aoI7P1pN}cmWTg;Ii zzh|k7ylE2m@Zd@FGi6~cdSCTYmI2atL+s-_NvyVQC#n%^x_)iRCabCz@gE-0&7Q=P zq7@ZBXRljYLR~aimMaP*eBN`UC-k~ywRLS&oz{Gp6+S$CgpBZcRa9*ZH_cPe*%FeGdu2`Oym4oe45_~S*;79=@|NmC z4T@`H2Jf9VVQa`R_bDwf(!wGw+mJ619(wJ{D&3sH^&sT8EpokfHi;7M;Q=pJIGbFo zMAk+Qmk=ll#dVY5J}4tS$6$>Fs-H++Eu42Uc8>&Ey%y=1^6J?&=cwgq%)V}tUbO;X z(^?^@q(2ma+*W0kG}9iS@8-4@lRvxaZr)R_^EdeX6*5qU(IQ5XlFU?bJS>{-ReRfP z&F^ic1a(&CvzKo#eElyiFfZ%_Sb5`Ch9N*iK5jh;qUVE@S>1v>8d8W zs!64)iCNVVstR;v5(pWUod*}rRcFvO06z}Cfm@a1S#A2;lf-#L-M?X_e?zl> zpLPFY+vX{#)P5_%K2R z@8s?fKVx_JYSGTnTvgi8!f7Zrord7CUFfCaQd)4Ri+=Pa#mEZ+xYKZ1htdR32^O;| zD1eCufCeUW>ff|vnpdXf@u~FA67Tx(+$3`s)!wOW&wT02SkGze#Z%Sia$a~#6ZfzT z-0Hxc4!qNWu?~FEfnyyw(ScJP_^Jcnbl|%V^oo9nvPVT|R|kS3$}ggHAk=|a2T~o# zbYP+bA9Ubj(XI|$=|H3deI2;gfm{c6bYM>h_I2Pu2M%@MNC#f%z-Jx!QH-k?;U^t< zuLGMpu%!c+#o&u#f9b$k(R~7^5Y7O9%_*?*sDq$7r@Rj~wi-6q}j zXOL<@*+p7sW5Y~v)`MwJ52tFv-o4on&P`kLdC@GMZ|epQMn5CD6rbH_8er{vVD&)9^e5DV8P z^h3bAJJI*rT*$a@I5c4}u0v=&T@4msi`F;Rfl_DZRWgBb^ zc9Wqi!koqAJPhl-0U~$q*^n={a1g=c`)ived@L_&JFpRI@kedN$9!->ghJy>mf&O> z3i!WUZAluMN|6)wARufQAjEF`^_m=CiPwr}R{O8lWd97G4-aHf8X>zuVEZ0Sn!NRF zquH)E+ai0TDY3`|K|dwM>iVVw#rFo2t^H_L8nW6fAZyVd%}RrXP)m`gy=DQ|YC5PU zK20F~^v&12_D5&y692$7_biM+zFE?tmOgXOFq?P}A2-;jxo*4x1*qS~?K1m}=zyXL zHa>;nBpl%W@*VNSC?08#0Pp zbVGf3CbW~5tWiW)1m+Ro;lWrYbbP1*9lw(iu4krjMe-|2!Gb2CdhXpCMa z|69Gpp=0uU&O6eJK;`26#{ACZ6qvP!Ur4knC9QnO8y-Ghs71&oEVsD&tmUcm-I(r* zQn4cSzT&LOd~Ti?D?2iexY+xE#Ynd2#N2lhKGE>CRZLso;$KIy2~Ng7vVNt|6@N*V zv_~ujUSZX5u_4bB0Jg)$edd$LOOPLLz1eQ^;)H+S<4R@Rz}HFL%Up5a0?-G+pv?3& zEBZ^U){w`yms_XSTe|S3#tjd}d7mN+I!^ zPJH_sUWzhxZI!y>R7qg)H)ca8-Ht`5(7=xoj|TOaf3} z+U}T6OnzqZH*0jZ&I!YAvcZPNmptLQ4<1chIG+7u!itp}WdXZaEKPm@(xpNXlG3?h zyif9o!7pjR6lnX$!3R=3-+z-zd`pfcRxC}3`ugI*ZRNc3@xRO4J<}>sw>W$<0Ik&S+ zakov}Up+GL$8w>?h7u?ix3`F(Aw8U6oL(nL{?;-~!~K6e&;37e#TC5lOa{#c?E{Mq zt_9VHAL$TrTL`MNO9Eb1w~0Xdp&X4_pj8PVJBl}$Z4c)6oT!7Hz&6Y9vF*YFJdoq6 zrs+X`S9D;J4D|>N%?Z)Q#9*R8{lxw2va`3apG)aFxwpbnt9{hdE^4WiF!m@Hm`Qc6 z$jlYVT#=g)kOWW}7TrOuCP$w;pJdMK_YBbVV~J3ok+}W0T;(gW@#FLlh}e(&WN0rc zJdKbCZtjFo5Yjs$8GZ;EF`z8Mj1SxZ0q@}_pv2$fZ3)go; zM*wz<-@EL#dRrXvzGc-b-fOV@1~W2ecW&qezyhm-oZ#iXWp#-W@6wH($OdxQwmXzL zIJve7cjYa8PlF1f4RfT&YsL+u8{tJ0{H0CKU7bFmQ-AOaw6o) z`#&3yaVwV!J6_ z`=bkMs=DTdQ4vSQh5eJnAfP-}HKAL?KeM)~^RoIxC+|M3w!B8r$l8+BvY0^;%B?9-}$0zJ{2}iN0%EY4-(%Y zH0G(Zul-TPj>SdvmWja^ zrfyXNGpxDR!oJhOwNoO8lMfp6Xkgx-2A2QZ0~4*?e{Dc#&l-?N%&c9{f;=&DU2mh& zu59)GpShi*P;u;z8+>s;Ht8%rmg*wEQ`mB7bkvX1cDAC-7sq>2*O-I==gU&aXH$qCZ z?V;h=CPx*}sDkRK-tbjv(epG1Ze>*Q%&1~Ls&LA;?HOKi=BS3ns3MFil%opesD^FZ z)}SQ|!+K=ShVYMq8{VhemCTLVbJG1(X3yHer^tzt8 zQ+sl!hAp>O%EmjMkxzf?372(x&#R-n2uAa-f%0%)-UJ&~DQn7{t9h~}X)#yInVMF4 z3G{I_oO2BfT^6|JWsuHCf#tw=a}jRk;i8+=YGNO@#LD@wsumKjW0rYh{SwY zc2mw}bcdyHbuRL1_V6$}9R~jr+)5{%tNio`7l>aPGX3O*zVHX`3Xj}nzU{UeuP*sO zGFuRk?AM8w0DEq8k&H|l_;W&FBzR!AZiC;sBR%@t?p?>WZ!I=xa;kp4e^$MPiIc86*pEoH?U`E2UOOGqgud0U7JwEv~Zt?tRC$`?z*C7V%-9n`M<^^@*4;`pFetJfnf$z5cFS}p3jjjFn4{0E%hg86)` zjVYw%MM>nOX}P|R*jPH1C`PX48f;RXj{?$ab(Ms;8j2+?t`;P&u2g8zr7)3~LP(`? z!n?VI_)sqG2L~_$7!<}GCvVvR0786XbsCH0$)s+J>iaQtxoUn$zo&8x+OSoV&PB!u ztgjDfdl=*u`eoy81 zD1Xn$j{=LnrI-@*=!b-!d^A>_!r;Lp+QJ>sBj<1RNQU^4Nd_K&E;!3^?~m`l@E4Bx z(t9z^2lX&YvwXq7_lI!a9woQlkd6mK7lLv~3JjrHagV^Esw%l0O35WjBpyrY>EcOo z`jnE_*_Ci=9R#jl!oT&H2q*H0Nm5-OM#1nbl8UBcarLdv!120+s+{fw&a8o|cOdK4 z(z%Y;9dTl4J%ISkD4!6`yxZuVa`xlk1t%o~rBECyN(u zX;}1Uje-lSW^Et4eZ}I+8Zdg=`2CUH35vV%K3SnRh#di^;=u7GqG6#nB^@S-JYeWR zGKoUj!L~gzFH&M2Q`1nmo}!LOAzKFXP3u^ho_|7o?AN=-U&S};lWao-DPRJRdhA2K8V+FKz7J{ zox*_%0kn0Z4S#Zf1keAD=9zwU)ZX-{y{h1+KOfmg34g@?2L^?0?)Y_lCbp8j3;fO< z-zK72==B2pCJSF^VRQV3Hk7oU=`@PDN5)KM9O#Sq0Zxh{zGC9rSGt56yLO6I_uE$@ zNKPLfqU^KxnWaGdp-{uxXtdLA17eSKy|K}3p9-ckah=BkrSbpA9%&*on#gn$S+$8w zHj!1E$flZr+O3K^kV4`6KRdF9(I~O-W-l{4eVJPA`uuov8r;sG25|RRP{STwjpY~7 z`(g1G5msA&_s*m-ad8ohLIzYPq{)>IYJuDlBW$%;FlA$oHzKIDvQ)!$6(XbY;lrk# z6)36i=yT&4(FM|-N<2I?Vf-x_qsVAPMWF}Qoc?*POx$R-bEh|AR)I4_)oduq%aDoKcN`WwRO zw}s<%ms`-<^j&dw!h|=L{)+{fIN$&Xy6$#B=<$yow=v*Wp&zwifYkb2XyL1S+J zyr(Eca4MJEO)dtv48-6Kj!IIvD8No5uIKB7i7GQv#oV@IRWjyF+e;Qt(Hn}e?U*mw zODdUuE!jIgdWfm=8S4{f5FVoWdhVWa94B*091LUfI4#L<0y4Qd8Z!vA5B4o1tofnd z9(%Y+B6HahhFEK2Vd3S9boJ{Zvyl#IM3ux@h8T9=p>uX4nuyP9<7vL_8Ce~OnJ2&2H zI^eq<9KvH5+fdiGxwt!I13m!#F2A+7xctBd^r-Mdr3Lcmtwl=QuOa1#Exx;jCBWh$ zr2`kDF4MUl_obiZ_G>mI8eZ0OM@~de(RY_@#Ctq|TZI^WLk50N9Xvf@J*RJ3d~226 zb3$w>GFaB{qb+dy0-b}{1UxVdRF;G7ndN{)a*;b@tQ|Eh=}Ag(h?nF=o{y~(&PCne zc9S&vmBhI>G;zK3EljVoUv@M}?$0xZ11M6Q0zlp)=axRyS1{Dw@(8>1>OKA0+QuJ` znALChSxOiO(6E_quT2nklj?Qjc2jA9MN0d$Wwj}a?ZN{2vfLp?|9Zu;eou971lx24 zwy?8Lk4@gn%$I*s^^W41oCew)tH7rH@ttX1%m&!|F|Eqn31B617=AaGj+Gx4Of zPH2+a&v!8x7O&?!P-#8Y=`jUBurZIsjFYpaBU zNqk|&FR^l~ylr%ro^-p;i=Wl|3}}Mgsi>Z{fqwxVN4)9YdIGmB&k5i*VG~W{(OY~m zm0KaMnVzId$ExDj5oJr4QBWZ`9@R)0))U7^jeb|XV5Lx%L3DvT_C^^TSGkONPCFDYxVh(J^# z%{x{`D$7UNidgCMs<8g&V_My5gbH#A$8GJeLW5f|*zCWCjy8H1t{aC~7D(U_$tvb%(@cBaL?T2(hIu`^|La4V_RSkDaz z)oHPOSK%;$oFBV)==SQLuH^kjC#T6I4j9>nQ_;E`TAYpDfF$;h)Has2jUTCPENhEp zZNG5=kV3hLD>GQJdP&RPN~6h#67p7Ady3UNN?BWZ%OjnFZoKGKU@VSLA9rV`8@wQ9 zY00hWgye1x!U+lLCyC90L>1A!gnKR-4n|hD*=P_C0J$^YhfJCfUMUPfP%fqlKPt5# z3hDz07m9*woG3l=YWzV|X_4E6@1AgeL~Mma|4ktL@~+G$fa3WPu{CUbh^jXwWl67~ z#Fo=(^NjS)RaHD$-(N8?et{X}SsibKdEkAH@SX1fval_j7ZIVb!F=ye>9WfdrMktG zkA7+y{j&-{YTZ!^(u38eq<#3%I}!h(2;=;jXX;Dt%9Ol3@fb7x5CioPJ*;i$rqMey zXiS8I=g>C_Zi~uSxC`N3Zyap;|?}EL*j(-UEt2)+F_pFwP9dn z*aQNqDU%8nkFTt*5@>){vGn9e?pv-aXg5x!Z?2n9Zj3%m%sxzT_b8mHw=7^2O`I!h z!*qcu6wrhV)E3#eJY2|+=j#!FgQEqo+hX8t;%ajNF*Sy0+SQW^Wrh?v(A)}BT@lr; zh=0%(L0u8_pX!RZ{7B>G(B$}12s=;n78y!6JaMu8LzXihbB7*aQiZ=bKKwUGHuwQQ zEM!OSo95eQO*lhx=NYcAH+8+e53IF{OarUi zU4;y-*;skA+-gwN`uZE5$%=DlNGK0w#kr~&1o36XL-|WroU4k%vf^A-eC@_BGyc;} zUuOK&jb3K_!1Z2c{LoEaX1pQkP=4BO{BpuiZ8v>6;Rm)Gy`1nv5MWO%h=11 ztHt~7&-L}UyyuSWzRhl3)>;GSV(rxGc2_K$-MehLSvx?f*U-41uCF)W@H_X?X4~$; z`ueJ6vlExCG~TY(4y|tYjm3Mm8&KUr%@w=5{LXfJ^!wnN1-z#s@#jTlO_|TT-BAkh ztPlkiU;=PpFQgr$nJvxfr+`zp*b>=D<34&T6g>1okO)Z%noY*zB+VB-A0D6XzB)Pl zdb+!Sh-~35$_EQk>?b3bja+(haJi67@_vG!@F32>7_T~+89lO;odFiKxI9$!=bf1o zw_=J%hCJldRagTSmJjfF0FVmzs_Tfy6EK9-aVYE<{Pq4SRN}DE)m;=*U5se8HM%IC z*+u_PU7Vqor7qeD$V%)K8qt}KMkUP02(XCsk7!h`D*I2+E-eaY=ei_W7Pk@=qN6s< z71}x%g>wh{lnP$4aMJ7I@WP18oiG_!ARPMIClpEH2m+~lf6V{~ci3l<^Q}*(0AxU$ zznov!D#zwEv)c7$U8W$$yCR5VXZxB#DL;{bgpu>3ug@G(*((n?9we9GcXfsH;aXl2 z`q1pIt`P_ixL?bzH%g^Djp4m)LpWP{FpBAM6?78=CVFSGO2XZ2g0u#tvWcpgB=5Rv z?VRDl>|;?1{nsq#dSDgQaJGJAYv(LWoR$!B@I^@j~bX}-04=eVJ~@q6Fs zJkje!bQw{zI?`};9x4BEb;cyET%8lgKaVaXC^rar=37!pTLD!qboNrsbRJ!tdl$H9 zK=x+Z1s{PiQ-f9k28KSR(w58N0kx7yGZTSx&6JQgW9c z7W|xhQnoH6Z-F^E-v7Y~u>mX8>h4H0@alkgfb*(nrJ61UpkglyUQNO_;4(EnjpET$<|dA(nTTf5J{QmQEZ3i};g} ze8r;dV?D-AwYNh?8^r!rtEo^=uGNB2f5dG{H51yciJe=hW}W zclolFSKgHHTq!DO+omtw%-(wiSw=esWF)SM@18?J=K1yXsUnW^s33rWhtGZs)s2`NrA^q?pG~y zx*R>>_A(_2gGc+fi0D6+NNiXUh=~YD@gE=@k^-^eTyfY|NOXcZX7_(c#&vl2l#FZl zKP2O#j;lu?obQo53;!z;ui{Z!rr--Tf~P}1A?Qy3Gt#d){eC>bm>S2=GkDF)En}Wb znP(6-FT=@SVW&b#+UO|L0YoH5J+q>Ajb&E~+o`eu>Y~N?;UTP?Nk6OUG0?|~usk8X zwhYg^fjX{{FnmxR*BI&yrt7TLpyGu$m#4hB#tlpsK^~=WK?Zcd_~JYOQ3AK^sVMTj zhdD~EHrrn;Gs-w#djOL)Bdn7u0MCVw&9LlmWRwYwGTL0bVyg}N#(V0nFZ+gniXo&j zE;WW=L^*zE;)WFlyyK@R+?D&DagBL;zUZai^hCtHU~-_``2tCr@!0)^Cr;#C8~iKP zd%axOp^qlt%KToQ8h|6T4}+Pik?R4xUf#pGbdIS58oDaY9R^zx#E8Os({(MkqdEQ1 z_>f1JOjdjSo<#&LlNiDcJ28bZN}cN)_n0S1lpyA0o_i059J-Qt625X>KT4qd*zU~@ zJzvjyNtrZ1z_&Y6nW9UcHplKP_NDnj#}eY2iXDyFSu9a|s9YiXh|PJj^Gr}2YK4W` zE(Fi*^bPIHms@yl!8_nRk&#gK02YFt5tNXQk8LEJhPe+ZEvVztfR9|t1X$$aK0;08 z!Dr&i1@AP#g2)Sme4m@nvbJL$!xpUcgEWmjiG2JTN0x)L7c_so`zo`-9nP=mU&LE9 zmKy>Nw~;GGUzi8zPT06CzP?VTXy{9fbmHKFFEAv{rf3mf! zN^4W~tZu;AJyzoJ9-KYVgUFv(-&v&x^HPh}%sKS#`TP{hk(b;o7qaM=Sn$1} zKN)(3&6laq15>=|($Jf?k>Qv(am{^9v*AHRHzD(m#-f{495)IQ`=GGfBnLdl>jstD z$F2m&`~H&!%7!2zvR9ZNPOXYq^2d$`eoT9SBS=pv7LPxodJ+#QsYpE~TD^4E@xND} z1Kj>q$;WYdj@9W*Rcell4A4~zwnrisk9hh#v?JbZ$t~!K`awhvnN59;*0DE7>lj3d>jaul+@W)@IKMty#aEyXRa~teaXZbbKBrSJ2h!9)`Gr({JP_|& zozl2gH!;VkMBgo|&f2A`aVaH@ZioTrjb(zljNL}{20C_|RU^Hz>#TNWeST7M18)4$ z)&%yyReKZ5IN&@y*mg<=%*H_nkzr@-rgrGMjSXkD9lm0z9a_KP-|F+Bn-Nuf--Qiz zeQ3QL^YOZ~y3wz@t(VD5Hm*CXR(sraR%saplT?WU-fSe0i-;JdjtuDsH9gN@v$pOsas ziS#`qkWnIqXW6-b;b!N49i)f&VY|kY;kNCgH|M>|$xR)Cd*+mRG3!=>tsHjPY zylf%LGborv3OeB|PeD_>kcoUDPZoCej!#Z6PqvRXk2g=Z`9g1!QyDK`7z!`T7m`?% z>SpMdovAWJrkgE{CRt9Z>w$MWRf06qg#ZQE-|?}YsZ~?C`NQ|*@FO*RuN;2#?+$-| z^UtHNXxE);k-3APRmWFWn_tfXqNp5adSbW`Oh%*oiuZ9kA02$Z>i1ykXM6*>$Rnrx zWy{2o>^%cM1lEzE_7chH+|dc0UNIqq$U{U#gmSiMf)Y70Nn5mFg|H3@*X zS0Nj6)nP$y1x1I$ZL0PZgL=2i!nr^uAO0~Yt#SGoH%vlY?-__w%|-=r>T0gIM|vz( zWIYOi;NJZNops;hcW#4Uy7#)!UH7tM+jrKY@cNA1y7%XI7t+imCJ9~NE%{Pz`K{yg zf+OKGU2Ubs5iH3k#&X@acppa5K#8^rL=p64EPEnwNC3RXSofsY9d&HGr+PAQ$LGBZ zX-zWQ6X{-Kur=UHE)Am|?TL?`{FcOb>N!s4-3E-Sz{*O~;(*!vvPTxvA$@2M4@Z~! zC*&fi96)=i(P|aI`1^C+>kP~T(=JJ39?*$VVgo` zEFkj*R|MNEFkkJT#H3Bb9geVw=4fzx6&7}Fzho`CAX*tw^F3Tgx^M~vP(f%s!Bk^+ zl%5u|f@~A4ASrzAq>PB!UfdCD4m+2TuHzOW?m z=7u@}@Q?K-`8-o}D#k<47wpx4pF1x%{`=xppD!(e`X&y<&%=-{u_X(De^g>vM*m+# zGpJvN?$VNER=(V2MLUTtDOM|y4Zs?~?bWQwS^{E$@0vwwxD0gk}52AVQu3czF|I9yZVN9_`SpOxAYI6 z0QfV-Kd|%jxdQ6MpNNnW{j$Rl__>=eSP>Q3O`g^9M>2_+X_<_q7Y#zD2~c6oiSzA| zg+}p`<<5|_#kn(5f2R#1FWFKM-9~{}=-n^;5^18X7@=YwDpm7H{T*m~I*?k4#-@94 z4bm8LJ}-jg$?ptYSM2_pYJ6DO(pAOO(P%P0ujGFO~#5qmSA)M_FdVB4HCnye$-)0D9< zEwVe@r#G|MpdKkgXtT%Ekf3f0BWGdQNPXB4*)@?xPdI!)+l_T`dru$!2Gd>eHe?;` z1E>Zda2a8o=JU1M;(f}}4KbYu$V8lEft4w8^GpCXGHS%F+V8?!e#UNg`{!8rxd;{j z7aZD43*&)DfNIG?PvDFnM*T@Dg3dw`5APR3c%x8W-|;Ptb={CO%lA->^es-V-J848 za{?{NUW(TDGkA09>)g z-a?EzCA!q7794OveEQ`P_0*tLO(l_1OEt-?hoU?c)gag?;pJ>hx(XhfFhUb3N6G;u z-3dWu<4_7(RKVfvzGiZ8V+<}Ls&WjjA&HYU)F;rJ`f6}=hW5{6V|YO^(H^OLcs?wI z5*JP%@&?sJMaA^vUpTfLB!L(%Bx!()-t4hOI1*pHSID`>4KklM{O|qB4m~Ra+>fWB z=ZgEuL@(8*^lw;_$svbSs$nJVNYpj6wVoqIHr4Y};))ZP7mro5J%!&$9_hh0-qy^? zDKJh>p@9`xIXQ)ooSZV%;Arj%3dim)E>F|*I-NS54E|F9PlIP4UH*E?3L9VfdhUc| z)s{Q`b;9BJTWhsb3CHK${n5ckYO#N@CmdTMa%_?RDaV%F>2uk-ZN~-Lep+cQGh564 zGp*I@vAX-^Q)8Q$txf)&*5K+T)YwubQqQNxHqUYA-)*g4Pdjl}vc>#GBuqT5$5uP- z#yT$Ng2#1O+!+xHNm>cOfEp;Iev{}$4W4zbvBa1DeF8VX)vvQ zHqyq{Z_n{I*e$xiMt0`-mh1?jqJ`3O_7Laj;Sl&4_;YJX;!h@epnMc-FF@6Y`%#1U z`Iz5=!|5#nVPcj9^(Mc?xxPn@40I#j{6-WVP;a`Cuey;jZ}1-Pn~h*X`t@nE-Y@^q z%dAt%2F99CeoU$YBFuC1>I#vVE5uv9s1NQ*%g7`62N+AU#{onKNQ)ltIl}cI|L_!+ z3J^cV=R*eg&Td(%W7|WyI)-i&+a>xja{mgIzkgJ9Nr^(^YT8ClI^9ZR~Eo zbo2)uHtx^E3%jUvoZPVqzXQr;O8gSH(7E}rMF=fEs?|c*9TA-0z#Z|CyR*kemeq+R z142Nv28PW5|C9&tA)Jy5>ltmb4ZTz_ZL%Gh6Q}u<8K+#x8(f-cW|=zUWf}L~y=^8w zzTvQmeXmTcKEAfBjr|)Yg6|AokznFh=#u-Fu$C3LB26;u;o;*xp%R007`{Y_Jck)w0YmDXzNB;el2TvN z$NQ2JkjdkHiK#D_@DiivvbJV9hgZ@A$@xeDMqSPowKH)#B}8;KflLf`WsU%4r?Q-m8t*%4g0I3KKU3 z7fjMMwzjTB6kCNu4a~&R|c7iIOU5I>C?P*LsUBnxCLu%B=JJQXkCvBBwqt(C@}Q%F3^Pp&g0u?cP&av1MB*7lBHQ}*Qt$=ED)vTU`Z5YpkL zB~B#XJa(`{N*-_RhxYYFQH*Eq*WL2h&=m)SrpYH*JT>uylG($M1-szhPf6-2b&?73 zohO9BcX-3j`m(yAG^Yk-%n&Cz&|8<89k)5 zGNe=ui3D)muMBDCNno4*^3Ld^xNS;*Vq^54EA~#GJ9_VVqt_>RbBdUAWaWuDqNKR7 zIg_P}vq#H}-YoNCv$U*@xGk+vJf_NVv7Zy+doHI)?hGOY$Kq=S179tti{kU9oFT3+ zSJQ(PmgB&JBO6+3zLBSu-DR8!q-pRslyvr|1+;+_`e-!=1O;e2W(;&tr)+he*$p3qEwx zA<#yy^|uqF``Jd+j^u(+KJmGIFCGyZ>fMuEI0FXQ1ZzrLJrr7PI)x{6hQp*Bw5+Z= z?qVr9!@Te++t2EsybR>o;W7rUxDv>n5?s0CIk#G(Kzn|OV+E6v?wMrJ}y;|+&3mbBBpauwvw$X!G)(~eD5)Dbia!*-h4V|7eFoJo5%m?R#J32Q= z{6DH5o^gc2+AwHSJRn8Rx+<$C3}5B7)fIvd_cmhui)#$(wqt@Q1%vFbF9ck(ZK)g; zOUnKcqgcZ6*9EQibWZQ*BRP2;w)Zff!Y4~8=0{Lx!HrXM8chE5S|%3hOiOr6B|>}r zmGB%4jpU#LoLF=_+uy$2e*aPSVdYf> zW$N+v{@#JA$S}?;bguI*vxA-l}-}jZ(=It|VW%R0J=k#TIreVWeGgx`1 ztH7>B?h|6nfW(*q{Rc57&u5Vr3eWjq)~_hSm-~428C9Rre}aoJa9Q;5&8+t9+5MaTVhb@=Jmd?7AuZ!f$)f zOi2;2X#{KshMDksQ|VcLtPmf0=ir|C4%o0M(8Ddum3kJHvH^Vy7BTwU(`YZQ8*EIR zpbenjO1GYPRv|sBkp7brChRAb<#Zw+QDkba9XO@*@m0J zqm46jXb(G;XPehOt4n!oJK_JV1-`ik(MmThGNv+D>iF=$#>jERfuv2=x!#a$QL3hT zU5cna-;>8{ua0*`P?LXtF1mG8naV0tsuI$i-x7pp>TUhgXD%Jc3Bz!)Va}h|w1d6I z4t9I(vip5}d$%W~tGPXJ6))cITbAFRDEhnQ6=eB2o7U86r?Y7-op$9?40-gKS<1R+ z6N-w@sBnnBy_;$ye5``7tY9{wMZi8hzul#pZ&34xshV#dtNBLOj0$EGike@{scu;h z=+~UY6`lBLPU4zQ{5~gfRkwLaqq*Yw?Iwk;d49VuN67QrEehT7{C1B*?|6Ruo`IY#yM>po6)^?|E>m|0fQqgTUJ4stg z_oukuBvyWf0j?<->`l;_hle3z;35Wwx=eyt&9&QAKDt)9pA2kQ;LycWqHB_Oq^d70 zbknoi_rE0)ctr(YQVhbZ$G84goH}r)RShmAztN=AKaZU8#qWw~-w@bhv&Mb8C9h)O zM_yllYN=kf^m}M}{|=4)aJ>PZiST@g)9&CEdo-g2M6I0fAt%*kC0|tKP%pi!Rk8)% zOrxdBu6C7US1VbPoL&(Mi_lGPhE-{na7h&9bRgD&10C4cfiF66tOK8l3X8@>5$fwe zqytwva9!jnawj@4E(V|jsSdm-YAlMK=)kECL11-s!-m4s7YbdmY%( zfe$*cs{?yF@KFbjbl`^$eAR((I`CZw{?dUn9k?vsSusMt2n~u*T!e;2XjDGRA~Y^S zS4HT$2z{0oaEDc(&8v9M8fD7nKcwDxu#l%-oP|j`A`i_41}iPkhUq2IY<}M&+ZfYg zeJ?A28$d4^;Np%LV63CXKQeGL* z9!+hGbQ`08uZ^B=gXCY5c(PW*#qerJu?wDkWG(o-D zL+%2^E@#ID?mNuKCL}R==mk!%8<-w?fxOrTjt{Te zf?#}HEPrw{2KY~-GwBY_Q@eT5nbUISo4On>i;3lPzU)X#fp4Ts%M)^#Txg{MnZ-YTQznAlFJ zSE>VOzweqg-|Cv_I@DL!A+nU{mq6o;K<8B7MrGSw@8Ka@Ppn$)EYwIkBMn3jZY|GE zDqu@ji7~HAT-%)HK2*qki*WYx0!~^u*D%dE2?#ppzR=T=daj@ky*A(gw2E->12x{P zSsPN6EgDBwTgSdFV?RrC7H!A}6}PTpIAo;jF7(@4!JX3cPD#O?lA0}*3U0G^h0-fU zG1~Rb%C{$QaFq2$%4Y)gMO0t(M17H}Z&{Bu*FXol?#UJr8vM+pmXuQ0rc)2DNSx#q zIbIw61MczZfC)+RHXojx4%y;}>0?W8&7jEn13^x6g+S9XSV85EzwTyO$4EZy z^xRyg`IOdm=@cZ>0#_1x`8tn4o?xBOy#tv?=(Ld1P(IXYp<8fOE+`(Z@dw64a!p5H zoYp@<=P%ye(|X;1Q3!Zf4m5kx^4eR7c+(5%60BULWz>+7u*J-E4Lny}3A7G0(a5q;^@LR6Ia*;nQXYbb`$lqh^Df>S*iBDxwgLETPEr_0taIW-aZGO$Gt5h@c&9M`~v078D#_dJn z|Al?TsdB$v`Sauj#k<}i40ny?&JuU$tHi;J39DTq#xIf+eTT?C5FPwK0Nk1A$Nt!~Z7cKVUga8t_hR-L1*O<>wb(k9op#si04+w&_Pk9H-ASku?nQhx0AR zw=C%vTgBD*U@6jZdFW0)ASWLJR-zC4mE3Xy-gA9|6S#GK@}e5Kr$dH~mER+Di%?